Jelajahi Sumber

chore: generate

opencode-agent[bot] 1 Minggu lalu
induk
melakukan
59d08683ea
2 mengubah file dengan 37 tambahan dan 36 penghapusan
  1. 36 33
      packages/opencode/src/tool/bash.ts
  2. 1 3
      packages/opencode/test/tool/bash.test.ts

+ 36 - 33
packages/opencode/src/tool/bash.ts

@@ -182,7 +182,6 @@ function prefix(text: string) {
   return text.slice(0, match.index)
 }
 
-
 function pathArgs(list: Part[], ps: boolean) {
   if (!ps) {
     return list
@@ -210,7 +209,6 @@ function pathArgs(list: Part[], ps: boolean) {
   return out
 }
 
-
 function preview(text: string) {
   if (text.length <= MAX_METADATA_LENGTH) return text
   return text.slice(0, MAX_METADATA_LENGTH) + "\n\n..."
@@ -249,7 +247,6 @@ const ask = Effect.fn("BashTool.ask")(function* (ctx: Tool.Context, scan: Scan)
   )
 })
 
-
 function cmd(shell: string, name: string, command: string, cwd: string, env: NodeJS.ProcessEnv) {
   if (process.platform === "win32" && PS.has(name)) {
     return ChildProcess.make(shell, ["-NoLogo", "-NoProfile", "-NonInteractive", "-Command", command], {
@@ -269,7 +266,6 @@ function cmd(shell: string, name: string, command: string, cwd: string, env: Nod
   })
 }
 
-
 const parser = lazy(async () => {
   const { Parser } = await import("web-tree-sitter")
   const { default: treeWasm } = await import("web-tree-sitter/tree-sitter.wasm" as string, {
@@ -306,9 +302,9 @@ export const BashTool = Tool.defineEffect(
     const plugin = yield* Plugin.Service
 
     const cygpath = Effect.fn("BashTool.cygpath")(function* (shell: string, text: string) {
-      const lines = yield* spawner.lines(
-        ChildProcess.make(shell, ["-lc", 'cygpath -w -- "$1"', "_", text]),
-      ).pipe(Effect.catch(() => Effect.succeed([] as string[])))
+      const lines = yield* spawner
+        .lines(ChildProcess.make(shell, ["-lc", 'cygpath -w -- "$1"', "_", text]))
+        .pipe(Effect.catch(() => Effect.succeed([] as string[])))
       const file = lines[0]?.trim()
       if (!file) return
       return AppFileSystem.normalizePath(file)
@@ -366,7 +362,11 @@ export const BashTool = Tool.defineEffect(
     })
 
     const shellEnv = Effect.fn("BashTool.shellEnv")(function* (ctx: Tool.Context, cwd: string) {
-      const extra = yield* plugin.trigger("shell.env", { cwd, sessionID: ctx.sessionID, callID: ctx.callID }, { env: {} })
+      const extra = yield* plugin.trigger(
+        "shell.env",
+        { cwd, sessionID: ctx.sessionID, callID: ctx.callID },
+        { env: {} },
+      )
       return {
         ...process.env,
         ...extra.env,
@@ -477,31 +477,34 @@ export const BashTool = Tool.defineEffect(
           .replaceAll("${maxLines}", String(Truncate.MAX_LINES))
           .replaceAll("${maxBytes}", String(Truncate.MAX_BYTES)),
         parameters: Parameters,
-      execute: (params: z.infer<typeof Parameters>, ctx: Tool.Context) =>
-        Effect.gen(function* () {
-          const cwd = params.workdir
-            ? yield* resolvePath(params.workdir, Instance.directory, shell)
-            : Instance.directory
-          if (params.timeout !== undefined && params.timeout < 0) {
-            throw new Error(`Invalid timeout value: ${params.timeout}. Timeout must be a positive number.`)
-          }
-          const timeout = params.timeout ?? DEFAULT_TIMEOUT
-          const ps = PS.has(name)
-          const root = yield* parse(params.command, ps)
-          const scan = yield* collect(root, cwd, ps, shell)
-          if (!Instance.containsPath(cwd)) scan.dirs.add(cwd)
-          yield* ask(ctx, scan)
-
-          return yield* run({
-            shell,
-            name,
-            command: params.command,
-            cwd,
-            env: yield* shellEnv(ctx, cwd),
-            timeout,
-            description: params.description,
-          }, ctx)
-        }).pipe(Effect.orDie, Effect.runPromise),
+        execute: (params: z.infer<typeof Parameters>, ctx: Tool.Context) =>
+          Effect.gen(function* () {
+            const cwd = params.workdir
+              ? yield* resolvePath(params.workdir, Instance.directory, shell)
+              : Instance.directory
+            if (params.timeout !== undefined && params.timeout < 0) {
+              throw new Error(`Invalid timeout value: ${params.timeout}. Timeout must be a positive number.`)
+            }
+            const timeout = params.timeout ?? DEFAULT_TIMEOUT
+            const ps = PS.has(name)
+            const root = yield* parse(params.command, ps)
+            const scan = yield* collect(root, cwd, ps, shell)
+            if (!Instance.containsPath(cwd)) scan.dirs.add(cwd)
+            yield* ask(ctx, scan)
+
+            return yield* run(
+              {
+                shell,
+                name,
+                command: params.command,
+                cwd,
+                env: yield* shellEnv(ctx, cwd),
+                timeout,
+                description: params.description,
+              },
+              ctx,
+            )
+          }).pipe(Effect.orDie, Effect.runPromise),
       }
     }
   }),

+ 1 - 3
packages/opencode/test/tool/bash.test.ts

@@ -19,9 +19,7 @@ const runtime = ManagedRuntime.make(
 )
 
 function initBash() {
-  return runtime.runPromise(
-    BashTool.pipe(Effect.flatMap((info) => Effect.promise(() => info.init()))),
-  )
+  return runtime.runPromise(BashTool.pipe(Effect.flatMap((info) => Effect.promise(() => info.init()))))
 }
 
 const ctx = {