fix(slashcommand): discover nested opencode commands

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
YeonGyu-Kim
2026-03-26 12:15:47 +09:00
parent 12a4318439
commit b20a34bfa7
2 changed files with 36 additions and 2 deletions
+16 -2
View File
@@ -18,17 +18,31 @@ export interface CommandDiscoveryOptions {
enabledPluginsOverride?: Record<string, boolean>
}
function discoverCommandsFromDir(commandsDir: string, scope: CommandScope): CommandInfo[] {
function discoverCommandsFromDir(
commandsDir: string,
scope: CommandScope,
prefix = "",
): CommandInfo[] {
if (!existsSync(commandsDir)) return []
const entries = readdirSync(commandsDir, { withFileTypes: true })
const commands: CommandInfo[] = []
for (const entry of entries) {
if (entry.isDirectory()) {
if (entry.name.startsWith(".")) continue
const nestedPrefix = prefix ? `${prefix}:${entry.name}` : entry.name
commands.push(
...discoverCommandsFromDir(join(commandsDir, entry.name), scope, nestedPrefix),
)
continue
}
if (!isMarkdownFile(entry)) continue
const commandPath = join(commandsDir, entry.name)
const commandName = basename(entry.name, ".md")
const baseCommandName = basename(entry.name, ".md")
const commandName = prefix ? `${prefix}:${baseCommandName}` : baseCommandName
try {
const content = readFileSync(commandPath, "utf-8")