From 35a19df57d670dd778b6420897eec388b2ad88a0 Mon Sep 17 00:00:00 2001 From: Shoubhit Dash Date: Fri, 24 Apr 2026 16:38:37 +0530 Subject: [PATCH] fix(scout): widen repo tool schema types --- packages/opencode/src/tool/repo_clone.ts | 9 +++++++-- packages/opencode/src/tool/repo_overview.ts | 12 +++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/packages/opencode/src/tool/repo_clone.ts b/packages/opencode/src/tool/repo_clone.ts index 108890c998..1d3c80a413 100644 --- a/packages/opencode/src/tool/repo_clone.ts +++ b/packages/opencode/src/tool/repo_clone.ts @@ -8,7 +8,12 @@ import DESCRIPTION from "./repo_clone.txt" import * as Tool from "./tool" import { parseRepositoryReference, repositoryCachePath, sameRepositoryReference } from "@/util/repository" -const parameters = z.object({ +type Parameters = { + repository: string + refresh?: boolean +} + +const parameters: z.ZodType = z.object({ repository: z .string() .describe("Repository to clone, as a git URL, host/path reference, or GitHub owner/repo shorthand"), @@ -53,7 +58,7 @@ export const RepoCloneTool = Tool.define, ctx: Tool.Context) => + execute: (params: Parameters, ctx: Tool.Context) => Effect.gen(function* () { const reference = parseRepositoryReference(params.repository) if (!reference) throw new Error("Repository must be a git URL, host/path reference, or GitHub owner/repo shorthand") diff --git a/packages/opencode/src/tool/repo_overview.ts b/packages/opencode/src/tool/repo_overview.ts index 77f65e3488..f991a2e0fa 100644 --- a/packages/opencode/src/tool/repo_overview.ts +++ b/packages/opencode/src/tool/repo_overview.ts @@ -9,7 +9,13 @@ import * as Tool from "./tool" import { parseRepositoryReference, repositoryCachePath } from "@/util/repository" import { Instance } from "@/project/instance" -const parameters = z +type Parameters = { + repository?: string + path?: string + depth?: number +} + +const parameters: z.ZodType = z .object({ repository: z .string() @@ -84,7 +90,7 @@ export const RepoOverviewTool = Tool.define) { + const resolveTarget = Effect.fn("RepoOverviewTool.resolveTarget")(function* (params: Parameters) { if (params.path) { const full = path.isAbsolute(params.path) ? params.path : path.resolve(Instance.directory, params.path) return { path: full, repository: params.repository } @@ -147,7 +153,7 @@ export const RepoOverviewTool = Tool.define, ctx: Tool.Context) => + execute: (params: Parameters, ctx: Tool.Context) => Effect.gen(function* () { const target = yield* resolveTarget(params) const depth = params.depth ?? 3