summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/config/config.ts17
1 files changed, 14 insertions, 3 deletions
diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts
index 9bc9882f0..786ddcc65 100644
--- a/packages/opencode/src/config/config.ts
+++ b/packages/opencode/src/config/config.ts
@@ -118,16 +118,27 @@ export namespace Config {
// Load command markdown files
result.command = result.command || {}
const markdownCommands = [
- ...(await Filesystem.globUp("command/*.md", Global.Path.config, Global.Path.config)),
- ...(await Filesystem.globUp(".opencode/command/*.md", Instance.directory, Instance.worktree)),
+ ...(await Filesystem.globUp("command/**/*.md", Global.Path.config, Global.Path.config)),
+ ...(await Filesystem.globUp(".opencode/command/**/*.md", Instance.directory, Instance.worktree)),
]
for (const item of markdownCommands) {
const content = await Bun.file(item).text()
const md = matter(content)
if (!md.data) continue
+ const name = (() => {
+ const patterns = ["/.opencode/command/", "/command/"]
+ const pattern = patterns.find((p) => item.includes(p))
+
+ if (pattern) {
+ const index = item.indexOf(pattern)
+ return item.slice(index + pattern.length, -3)
+ }
+ return path.basename(item, ".md")
+ })()
+
const config = {
- name: path.basename(item, ".md"),
+ name,
...md.data,
template: md.content.trim(),
}