fix: ensure disabling OPENCODE_DISABLE_CLAUDE_CODE_SKILLS doesnt disable external skills too (#25123)
This commit is contained in:
parent
375444a149
commit
ffe0314c47
2 changed files with 9 additions and 4 deletions
|
|
@ -47,7 +47,7 @@ export const Flag = {
|
||||||
OPENCODE_DISABLE_CLAUDE_CODE,
|
OPENCODE_DISABLE_CLAUDE_CODE,
|
||||||
OPENCODE_DISABLE_CLAUDE_CODE_PROMPT: OPENCODE_DISABLE_CLAUDE_CODE || truthy("OPENCODE_DISABLE_CLAUDE_CODE_PROMPT"),
|
OPENCODE_DISABLE_CLAUDE_CODE_PROMPT: OPENCODE_DISABLE_CLAUDE_CODE || truthy("OPENCODE_DISABLE_CLAUDE_CODE_PROMPT"),
|
||||||
OPENCODE_DISABLE_CLAUDE_CODE_SKILLS,
|
OPENCODE_DISABLE_CLAUDE_CODE_SKILLS,
|
||||||
OPENCODE_DISABLE_EXTERNAL_SKILLS: OPENCODE_DISABLE_CLAUDE_CODE_SKILLS || truthy("OPENCODE_DISABLE_EXTERNAL_SKILLS"),
|
OPENCODE_DISABLE_EXTERNAL_SKILLS: truthy("OPENCODE_DISABLE_EXTERNAL_SKILLS"),
|
||||||
OPENCODE_FAKE_VCS: process.env["OPENCODE_FAKE_VCS"],
|
OPENCODE_FAKE_VCS: process.env["OPENCODE_FAKE_VCS"],
|
||||||
OPENCODE_SERVER_PASSWORD: process.env["OPENCODE_SERVER_PASSWORD"],
|
OPENCODE_SERVER_PASSWORD: process.env["OPENCODE_SERVER_PASSWORD"],
|
||||||
OPENCODE_SERVER_USERNAME: process.env["OPENCODE_SERVER_USERNAME"],
|
OPENCODE_SERVER_USERNAME: process.env["OPENCODE_SERVER_USERNAME"],
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@ import * as Log from "@opencode-ai/core/util/log"
|
||||||
import { Discovery } from "./discovery"
|
import { Discovery } from "./discovery"
|
||||||
|
|
||||||
const log = Log.create({ service: "skill" })
|
const log = Log.create({ service: "skill" })
|
||||||
const EXTERNAL_DIRS = [".claude", ".agents"]
|
const CLAUDE_EXTERNAL_DIR = ".claude"
|
||||||
|
const AGENTS_EXTERNAL_DIR = ".agents"
|
||||||
const EXTERNAL_SKILL_PATTERN = "skills/**/SKILL.md"
|
const EXTERNAL_SKILL_PATTERN = "skills/**/SKILL.md"
|
||||||
const OPENCODE_SKILL_PATTERN = "{skill,skills}/**/SKILL.md"
|
const OPENCODE_SKILL_PATTERN = "{skill,skills}/**/SKILL.md"
|
||||||
const SKILL_PATTERN = "**/SKILL.md"
|
const SKILL_PATTERN = "**/SKILL.md"
|
||||||
|
|
@ -152,15 +153,19 @@ const discoverSkills = Effect.fnUntraced(function* (
|
||||||
) {
|
) {
|
||||||
const state: ScanState = { matches: new Set(), dirs: new Set() }
|
const state: ScanState = { matches: new Set(), dirs: new Set() }
|
||||||
|
|
||||||
|
const externalDirs: string[] = []
|
||||||
if (!Flag.OPENCODE_DISABLE_EXTERNAL_SKILLS) {
|
if (!Flag.OPENCODE_DISABLE_EXTERNAL_SKILLS) {
|
||||||
for (const dir of EXTERNAL_DIRS) {
|
if (!Flag.OPENCODE_DISABLE_CLAUDE_CODE_SKILLS) externalDirs.push(CLAUDE_EXTERNAL_DIR)
|
||||||
|
externalDirs.push(AGENTS_EXTERNAL_DIR)
|
||||||
|
|
||||||
|
for (const dir of externalDirs) {
|
||||||
const root = path.join(Global.Path.home, dir)
|
const root = path.join(Global.Path.home, dir)
|
||||||
if (!(yield* fsys.isDir(root))) continue
|
if (!(yield* fsys.isDir(root))) continue
|
||||||
yield* scan(state, root, EXTERNAL_SKILL_PATTERN, { dot: true, scope: "global" })
|
yield* scan(state, root, EXTERNAL_SKILL_PATTERN, { dot: true, scope: "global" })
|
||||||
}
|
}
|
||||||
|
|
||||||
const upDirs = yield* fsys
|
const upDirs = yield* fsys
|
||||||
.up({ targets: EXTERNAL_DIRS, start: directory, stop: worktree })
|
.up({ targets: externalDirs, start: directory, stop: worktree })
|
||||||
.pipe(Effect.catch(() => Effect.succeed([] as string[])))
|
.pipe(Effect.catch(() => Effect.succeed([] as string[])))
|
||||||
|
|
||||||
for (const root of upDirs) {
|
for (const root of upDirs) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue