diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index 450ec53f8f..5917240cdb 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -351,19 +351,17 @@ export const layer = Layer.effect( description: referenceDescription(resolved), permission: Permission.merge( agents.scout.permission, - Permission.fromConfig( - { - repo_clone: "deny", - ...(localPath - ? { - external_directory: { - [localPath]: "allow", - [path.join(localPath, "*")]: "allow", - }, - } - : {}), - }, - ), + Permission.fromConfig({ + repo_clone: "deny", + ...(localPath + ? { + external_directory: { + [localPath]: "allow", + [path.join(localPath, "*")]: "allow", + }, + } + : {}), + }), ), prompt: referencePrompt(resolved), options: { reference: cfg.reference?.[resolved.name], resolved }, diff --git a/packages/opencode/src/reference/reference.ts b/packages/opencode/src/reference/reference.ts index b62da96f27..09e0a825d8 100644 --- a/packages/opencode/src/reference/reference.ts +++ b/packages/opencode/src/reference/reference.ts @@ -90,7 +90,12 @@ function containsReferencePath(referencePath: string, target: string) { return AppFileSystem.contains(normalizedTarget(referencePath) ?? referencePath, target) } -export function resolve(input: { name: string; reference: ReferenceEntry; directory: string; worktree: string }): Resolved { +export function resolve(input: { + name: string + reference: ReferenceEntry + directory: string + worktree: string +}): Resolved { if (typeof input.reference === "string") { if (input.reference.startsWith(".") || input.reference.startsWith("/") || input.reference.startsWith("~")) { return { name: input.name, kind: "local", path: referencePath({ ...input, value: input.reference }) } @@ -142,7 +147,11 @@ export const layer = Layer.effect( const state = yield* InstanceState.make( Effect.fn("Reference.state")(function* (ctx) { const cfg = yield* config.get() - const references = resolveAll({ references: cfg.reference ?? {}, directory: ctx.directory, worktree: ctx.worktree }) + const references = resolveAll({ + references: cfg.reference ?? {}, + directory: ctx.directory, + worktree: ctx.worktree, + }) const seenPath = new Set() const gitReferences = references.filter((reference): reference is Extract => { if (reference.kind !== "git") return false diff --git a/packages/opencode/src/reference/repository-cache.ts b/packages/opencode/src/reference/repository-cache.ts index 521f64369e..d31db8ab5f 100644 --- a/packages/opencode/src/reference/repository-cache.ts +++ b/packages/opencode/src/reference/repository-cache.ts @@ -87,15 +87,7 @@ export const ensure = Effect.fn("RepositoryCache.ensure")(function* ( if (status === "cloned") { const clone = yield* services.git.run( - [ - "clone", - "--depth", - "100", - ...(input.branch ? ["--branch", input.branch] : []), - "--", - remote, - localPath, - ], + ["clone", "--depth", "100", ...(input.branch ? ["--branch", input.branch] : []), "--", remote, localPath], { cwd: path.dirname(localPath) }, ) if (clone.exitCode !== 0) { diff --git a/packages/opencode/test/agent/agent.test.ts b/packages/opencode/test/agent/agent.test.ts index d2d571bbbe..cb6f60503f 100644 --- a/packages/opencode/test/agent/agent.test.ts +++ b/packages/opencode/test/agent/agent.test.ts @@ -174,7 +174,9 @@ test("reference config creates scout-backed subagents", async () => { expect(effect).toBeDefined() expect(effect?.mode).toBe("subagent") expect(effect?.prompt).toContain("Repository: github.com/effect/effect-smol") - expect(effect?.prompt).toContain(`Cached directory: ${path.join(Global.Path.repos, "github.com", "effect", "effect-smol")}`) + expect(effect?.prompt).toContain( + `Cached directory: ${path.join(Global.Path.repos, "github.com", "effect", "effect-smol")}`, + ) expect(effect?.prompt).toContain("Do not call repo_clone") expect(evalPerm(effect, "repo_clone")).toBe("deny") diff --git a/packages/opencode/test/reference/reference.test.ts b/packages/opencode/test/reference/reference.test.ts index bd3f08e462..4717c61d25 100644 --- a/packages/opencode/test/reference/reference.test.ts +++ b/packages/opencode/test/reference/reference.test.ts @@ -15,12 +15,7 @@ afterEach(async () => { }) const it = testEffect( - Layer.mergeAll( - AppFileSystem.defaultLayer, - CrossSpawnSpawner.defaultLayer, - Git.defaultLayer, - Reference.defaultLayer, - ), + Layer.mergeAll(AppFileSystem.defaultLayer, CrossSpawnSpawner.defaultLayer, Git.defaultLayer, Reference.defaultLayer), ) const experimentalScout = (self: Effect.Effect) =>