diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 747da7f82c..22539e5c87 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -54,7 +54,7 @@ import { SessionTable } from "./session.sql" import { SessionReminders } from "./reminders" import { SessionTools } from "./tools" import { LLMEvent } from "@opencode-ai/llm" -import { SessionPromptParts } from "./prompt/parts" +import { PromptParts } from "./prompt/parts" // @ts-ignore globalThis.AI_SDK_LOG_WARNINGS = false @@ -118,7 +118,7 @@ export const layer = Layer.effect( const ops = Effect.fn("SessionPrompt.ops")(function* () { return { cancel: (sessionID: SessionID) => cancel(sessionID), - resolvePromptParts: (template: string) => SessionPromptParts.resolvePromptParts(template, services), + resolvePromptParts: (template: string) => PromptParts.fromTemplate(template, services), prompt: (input: PromptInput) => prompt(input).pipe(Effect.catch(Effect.die)), loop: (input: LoopInput) => loop(input), } satisfies TaskPromptOps @@ -649,7 +649,7 @@ export const layer = Layer.effect( } yield* Effect.addFinalizer(() => instruction.clear(info.id)) - const resolved = yield* SessionPromptParts.resolveMessageParts({ prompt: input, info, agent: ag }, services) + const resolved = yield* PromptParts.fromPrompt({ prompt: input, info, agent: ag }, services) yield* sessions.updateMessage(info) for (const part of resolved.parts) yield* sessions.updatePart(part) // TODO(v2): Temporary dual-write while migrating session messages to v2 events. @@ -1038,7 +1038,7 @@ export const layer = Layer.effect( throw error } - const templateParts = yield* SessionPromptParts.resolvePromptParts(template, services) + const templateParts = yield* PromptParts.fromTemplate(template, services) const isSubtask = (agent.mode === "subagent" && cmd.subtask !== false) || cmd.subtask === true const parts = isSubtask ? [ @@ -1089,7 +1089,7 @@ export const layer = Layer.effect( loop, shell, command, - resolvePromptParts: (template) => SessionPromptParts.resolvePromptParts(template, services), + resolvePromptParts: (template) => PromptParts.fromTemplate(template, services), }) }), ) diff --git a/packages/opencode/src/session/prompt/parts.ts b/packages/opencode/src/session/prompt/parts.ts index df5aca4dc6..94fbe3baf2 100644 --- a/packages/opencode/src/session/prompt/parts.ts +++ b/packages/opencode/src/session/prompt/parts.ts @@ -43,14 +43,11 @@ type Services = { registry: ToolRegistry.Interface } -export const resolvePromptParts = Effect.fn("SessionPromptParts.resolvePromptParts")(function* ( - template: string, - services: Services, -) { +export const fromTemplate = Effect.fn("PromptParts.fromTemplate")(function* (template: string, services: Services) { return yield* resolveTemplateParts(template, services) }) -export const resolveMessageParts = Effect.fn("SessionPromptParts.resolveMessageParts")(function* ( +export const fromPrompt = Effect.fn("PromptParts.fromPrompt")(function* ( input: { prompt: PromptInput info: MessageV2.User @@ -88,8 +85,8 @@ export const resolveMessageParts = Effect.fn("SessionPromptParts.resolveMessageP }) }) - const resolvePart: (part: PromptInput["parts"][number]) => Effect.Effect[]> = Effect.fn( - "SessionPromptParts.resolveUserPart", + const fromPart: (part: PromptInput["parts"][number]) => Effect.Effect[]> = Effect.fn( + "PromptParts.fromPart", )(function* (part) { if (part.type === "file") { if (part.source?.type === "resource") { @@ -369,7 +366,7 @@ export const resolveMessageParts = Effect.fn("SessionPromptParts.resolveMessageP return [{ ...part, messageID: input.info.id, sessionID: input.prompt.sessionID }] }) - const resolvedParts = yield* Effect.forEach(input.prompt.parts, resolvePart, { concurrency: "unbounded" }).pipe( + const resolvedParts = yield* Effect.forEach(input.prompt.parts, fromPart, { concurrency: "unbounded" }).pipe( Effect.map((x) => x.flat().map(assign)), ) @@ -593,4 +590,4 @@ function nextPrompt(parts: MessageV2.Part[]) { ) } -export * as SessionPromptParts from "./parts" +export * as PromptParts from "./parts"