From 7265cdf817196e60c85cf172e66147145d8dd43b Mon Sep 17 00:00:00 2001 From: Aiden Cline Date: Wed, 29 Oct 2025 10:19:02 -0500 Subject: [PATCH] ignore: rm --- packages/opencode/src/session/prompt.ts | 68 ++++++++++++++++--------- 1 file changed, 45 insertions(+), 23 deletions(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 144d61d1..f403ef22 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/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, never>, retries: { count: number; max: number }) { + async process( + stream: StreamTextResult, 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,