Browse Source

ignore: rm

Aiden Cline 3 months ago
parent
commit
7265cdf817
1 changed files with 45 additions and 23 deletions
  1. 45 23
      packages/opencode/src/session/prompt.ts

+ 45 - 23
packages/opencode/src/session/prompt.ts

@@ -286,7 +286,11 @@ export namespace SessionPrompt {
             OUTPUT_TOKEN_MAX,
           ),
           abortSignal: abort.signal,
-          providerOptions: ProviderTransform.providerOptions(model.npm, model.providerID, params.options),
+          providerOptions: ProviderTransform.providerOptions(
+            model.npm,
+            model.providerID,
+            params.options,
+          ),
           stopWhen: stepCountIs(1),
           temperature: params.temperature,
           topP: params.topP,
@@ -321,7 +325,11 @@ export namespace SessionPrompt {
                 async transformParams(args) {
                   if (args.type === "stream") {
                     // @ts-expect-error
-                    args.params.prompt = ProviderTransform.message(args.params.prompt, model.providerID, model.modelID)
+                    args.params.prompt = ProviderTransform.message(
+                      args.params.prompt,
+                      model.providerID,
+                      model.modelID,
+                    )
                   }
                   return args.params
                 },
@@ -504,7 +512,11 @@ export namespace SessionPrompt {
     )
     for (const item of await ToolRegistry.tools(input.providerID, input.modelID)) {
       if (Wildcard.all(item.id, enabledTools) === false) continue
-      const schema = ProviderTransform.schema(input.providerID, input.modelID, z.toJSONSchema(item.parameters))
+      const schema = ProviderTransform.schema(
+        input.providerID,
+        input.modelID,
+        z.toJSONSchema(item.parameters),
+      )
       tools[item.id] = tool({
         id: item.id as any,
         description: item.description,
@@ -585,17 +597,7 @@ export namespace SessionPrompt {
             args,
           },
         )
-        const result = await execute(args, opts).catch((err: unknown) => {
-          log.error("Error executing tool", { error: err, tool: key })
-          return {
-            content: [
-              {
-                type: "text",
-                text: `Failed to execute tool: ${err instanceof Error ? err.message : String(err)}`,
-              },
-            ],
-          }
-        })
+        const result = await execute(args, opts)
 
         await Plugin.trigger(
           "tool.execute.after",
@@ -809,7 +811,9 @@ export namespace SessionPrompt {
                   messageID: info.id,
                   sessionID: input.sessionID,
                   type: "file",
-                  url: `data:${part.mime};base64,` + Buffer.from(await file.bytes()).toString("base64"),
+                  url:
+                    `data:${part.mime};base64,` +
+                    Buffer.from(await file.bytes()).toString("base64"),
                   mime: part.mime,
                   filename: part.filename!,
                   source: part.source,
@@ -883,7 +887,9 @@ export namespace SessionPrompt {
         synthetic: true,
       })
     }
-    const wasPlan = input.messages.some((msg) => msg.info.role === "assistant" && msg.info.mode === "plan")
+    const wasPlan = input.messages.some(
+      (msg) => msg.info.role === "assistant" && msg.info.mode === "plan",
+    )
     if (wasPlan && input.agent.name === "build") {
       userMessage.parts.push({
         id: Identifier.ascending("part"),
@@ -963,7 +969,10 @@ export namespace SessionPrompt {
       partFromToolCall(toolCallID: string) {
         return toolcalls[toolCallID]
       },
-      async process(stream: StreamTextResult<Record<string, AITool>, never>, retries: { count: number; max: number }) {
+      async process(
+        stream: StreamTextResult<Record<string, AITool>, never>,
+        retries: { count: number; max: number },
+      ) {
         log.info("process")
         if (!assistantMsg) throw new Error("call next() first before processing")
         let shouldRetry = false
@@ -1094,7 +1103,10 @@ export namespace SessionPrompt {
                       status: "error",
                       input: value.input,
                       error: (value.error as any).toString(),
-                      metadata: value.error instanceof Permission.RejectedError ? value.error.metadata : undefined,
+                      metadata:
+                        value.error instanceof Permission.RejectedError
+                          ? value.error.metadata
+                          : undefined,
                       time: {
                         start: match.state.time.start,
                         end: Date.now(),
@@ -1218,7 +1230,11 @@ export namespace SessionPrompt {
             error: e,
           })
           const error = MessageV2.fromError(e, { providerID: input.providerID })
-          if (retries.count < retries.max && MessageV2.APIError.isInstance(error) && error.data.isRetryable) {
+          if (
+            retries.count < retries.max &&
+            MessageV2.APIError.isInstance(error) &&
+            error.data.isRetryable
+          ) {
             shouldRetry = true
             await Session.updatePart({
               id: Identifier.ascending("part"),
@@ -1241,7 +1257,11 @@ export namespace SessionPrompt {
         }
         const p = await Session.getParts(assistantMsg.id)
         for (const part of p) {
-          if (part.type === "tool" && part.state.status !== "completed" && part.state.status !== "error") {
+          if (
+            part.type === "tool" &&
+            part.state.status !== "completed" &&
+            part.state.status !== "error"
+          ) {
             Session.updatePart({
               ...part,
               state: {
@@ -1705,11 +1725,13 @@ export namespace SessionPrompt {
     if (input.session.parentID) return
     if (!Session.isDefaultTitle(input.session.title)) return
     const isFirst =
-      input.history.filter((m) => m.info.role === "user" && !m.parts.every((p) => "synthetic" in p && p.synthetic))
-        .length === 1
+      input.history.filter(
+        (m) => m.info.role === "user" && !m.parts.every((p) => "synthetic" in p && p.synthetic),
+      ).length === 1
     if (!isFirst) return
     const small =
-      (await Provider.getSmallModel(input.providerID)) ?? (await Provider.getModel(input.providerID, input.modelID))
+      (await Provider.getSmallModel(input.providerID)) ??
+      (await Provider.getModel(input.providerID, input.modelID))
     const options = {
       ...ProviderTransform.options(small.providerID, small.modelID, input.session.id),
       ...small.info.options,