@code-yeongyu/senpi-agent-core 2026.9.5 → 2026.9.7-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +3 -1
- package/dist/agent.js.map +1 -1
- package/dist/harness/agent-harness.d.ts.map +1 -1
- package/dist/harness/agent-harness.js +17 -0
- package/dist/harness/agent-harness.js.map +1 -1
- package/dist/harness/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/harness/compaction/branch-summarization.js +1 -0
- package/dist/harness/compaction/branch-summarization.js.map +1 -1
- package/dist/harness/compaction/compaction.d.ts.map +1 -1
- package/dist/harness/compaction/compaction.js +1 -0
- package/dist/harness/compaction/compaction.js.map +1 -1
- package/dist/harness/reducer.d.ts.map +1 -1
- package/dist/harness/reducer.js +6 -0
- package/dist/harness/reducer.js.map +1 -1
- package/dist/harness/session/context.d.ts +2 -1
- package/dist/harness/session/context.d.ts.map +1 -1
- package/dist/harness/session/context.js +5 -1
- package/dist/harness/session/context.js.map +1 -1
- package/dist/harness/session/jsonl/codec.d.ts.map +1 -1
- package/dist/harness/session/jsonl/codec.js +1 -0
- package/dist/harness/session/jsonl/codec.js.map +1 -1
- package/dist/harness/session/types.d.ts +7 -1
- package/dist/harness/session/types.d.ts.map +1 -1
- package/dist/harness/session/types.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,OAAO,EACP,YAAY,EACZ,OAAO,EAEP,mBAAmB,EAEnB,eAAe,EACf,SAAS,EACT,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,KAAK,EACX,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,UAAU,EAEV,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,SAAS,EACT,0BAA0B,EAC1B,QAAQ,
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.js
CHANGED
|
@@ -31,6 +31,7 @@ function createMutableAgentState(initialState) {
|
|
|
31
31
|
systemPrompt: initialState?.systemPrompt ?? "",
|
|
32
32
|
model: initialState?.model ?? DEFAULT_MODEL,
|
|
33
33
|
thinkingLevel: initialState?.thinkingLevel ?? "off",
|
|
34
|
+
reasoningBaseline: initialState?.reasoningBaseline,
|
|
34
35
|
get tools() {
|
|
35
36
|
return tools;
|
|
36
37
|
},
|
|
@@ -339,9 +340,10 @@ export class Agent {
|
|
|
339
340
|
let steeringQueueGeneration = this.steeringQueue.getClearGeneration();
|
|
340
341
|
let followUpQueueGeneration = this.followUpQueue.getClearGeneration();
|
|
341
342
|
const shouldStopAfterTurn = this.shouldStopAfterTurn;
|
|
343
|
+
const reasoning = this._state.reasoningBaseline ?? this._state.thinkingLevel;
|
|
342
344
|
return {
|
|
343
345
|
model: this._state.model,
|
|
344
|
-
reasoning:
|
|
346
|
+
reasoning: reasoning === "off" ? undefined : reasoning,
|
|
345
347
|
thinkingSelection: this._state.thinkingSelection,
|
|
346
348
|
sessionId: this.sessionId,
|
|
347
349
|
onPayload: this.onPayload,
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tContext,\n\tImageContent,\n\tMessage,\n\tModel,\n\tSimpleStreamOptions,\n\tTextContent,\n\tThinkingBudgets,\n\tTransport,\n} from \"@earendil-works/pi-ai\";\nimport {\n\tbuildProviderContext as buildProviderContextFromAgentContext,\n\trunAgentLoop,\n\trunAgentLoopContinue,\n} from \"./agent-loop.ts\";\nimport { ProviderRetryWatchdogAbortError } from \"./assistant-terminal-state.ts\";\nimport { getDefaultStreamFn } from \"./stream-fn.ts\";\nimport type {\n\tAfterToolCallContext,\n\tAfterToolCallResult,\n\tAgentContext,\n\tAgentEvent,\n\tAgentLoopConfig,\n\tAgentLoopTurnUpdate,\n\tAgentMessage,\n\tAgentState,\n\tAgentTool,\n\tBeforeToolCallContext,\n\tBeforeToolCallResult,\n\tPrepareNextTurnContext,\n\tQueueMode,\n\tShouldStopAfterTurnContext,\n\tStreamFn,\n\tToolExecutionMode,\n} from \"./types.ts\";\n\nexport type { QueueMode } from \"./types.ts\";\n\nfunction defaultConvertToLlm(messages: AgentMessage[]): Message[] {\n\treturn messages.filter(\n\t\t(message) => message.role === \"user\" || message.role === \"assistant\" || message.role === \"toolResult\",\n\t);\n}\n\nconst EMPTY_USAGE = {\n\tinput: 0,\n\toutput: 0,\n\tcacheRead: 0,\n\tcacheWrite: 0,\n\ttotalTokens: 0,\n\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n};\n\nconst DEFAULT_MODEL = {\n\tid: \"unknown\",\n\tname: \"unknown\",\n\tapi: \"unknown\",\n\tprovider: \"unknown\",\n\tbaseUrl: \"\",\n\treasoning: false,\n\tinput: [],\n\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\tcontextWindow: 0,\n\tmaxTokens: 0,\n} satisfies Model<any>;\n\ntype MutableAgentState = Omit<AgentState, \"isStreaming\" | \"streamingMessage\" | \"pendingToolCalls\" | \"errorMessage\"> & {\n\tisStreaming: boolean;\n\tstreamingMessage?: AgentMessage;\n\tpendingToolCalls: Set<string>;\n\terrorMessage?: string;\n};\n\nfunction createMutableAgentState(\n\tinitialState?: Partial<Omit<AgentState, \"pendingToolCalls\" | \"isStreaming\" | \"streamingMessage\" | \"errorMessage\">>,\n): MutableAgentState {\n\tlet tools = initialState?.tools?.slice() ?? [];\n\tlet messages = initialState?.messages?.slice() ?? [];\n\n\treturn {\n\t\tsystemPrompt: initialState?.systemPrompt ?? \"\",\n\t\tmodel: initialState?.model ?? DEFAULT_MODEL,\n\t\tthinkingLevel: initialState?.thinkingLevel ?? \"off\",\n\t\tget tools() {\n\t\t\treturn tools;\n\t\t},\n\t\tset tools(nextTools: AgentTool<any>[]) {\n\t\t\ttools = nextTools.slice();\n\t\t},\n\t\tget messages() {\n\t\t\treturn messages;\n\t\t},\n\t\tset messages(nextMessages: AgentMessage[]) {\n\t\t\tmessages = nextMessages.slice();\n\t\t},\n\t\tisStreaming: false,\n\t\tstreamingMessage: undefined,\n\t\tpendingToolCalls: new Set<string>(),\n\t\terrorMessage: undefined,\n\t};\n}\n\n/** Options for constructing an {@link Agent}. */\nexport interface AgentOptions {\n\tinitialState?: Partial<Omit<AgentState, \"pendingToolCalls\" | \"isStreaming\" | \"streamingMessage\" | \"errorMessage\">>;\n\tconvertToLlm?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;\n\ttransformContext?: (messages: AgentMessage[], signal?: AbortSignal) => Promise<AgentMessage[]>;\n\tstreamFn: StreamFn;\n\tgetApiKey?: (provider: string) => Promise<string | undefined> | string | undefined;\n\tonPayload?: SimpleStreamOptions[\"onPayload\"];\n\tonResponse?: SimpleStreamOptions[\"onResponse\"];\n\tbeforeToolCall?: (context: BeforeToolCallContext, signal?: AbortSignal) => Promise<BeforeToolCallResult | undefined>;\n\tafterToolCall?: (context: AfterToolCallContext, signal?: AbortSignal) => Promise<AfterToolCallResult | undefined>;\n\tshouldStopAfterTurn?: (context: ShouldStopAfterTurnContext, signal?: AbortSignal) => boolean | Promise<boolean>;\n\tprepareNextTurn?: (\n\t\tsignal?: AbortSignal,\n\t) => Promise<AgentLoopTurnUpdate | undefined> | AgentLoopTurnUpdate | undefined;\n\tprepareNextTurnWithContext?: (\n\t\tcontext: PrepareNextTurnContext,\n\t\tsignal?: AbortSignal,\n\t) => Promise<AgentLoopTurnUpdate | undefined> | AgentLoopTurnUpdate | undefined;\n\tsteeringMode?: QueueMode;\n\tfollowUpMode?: QueueMode;\n\tsessionId?: string;\n\tthinkingBudgets?: ThinkingBudgets;\n\ttransport?: Transport;\n\ttimeoutMs?: number;\n\tstreamStartTimeoutMs?: number;\n\tmaxRetryDelayMs?: number;\n\ttoolExecution?: ToolExecutionMode;\n\tremovedToolHints?: Record<string, string>;\n\tresolveUnknownToolCall?: AgentLoopConfig[\"resolveUnknownToolCall\"];\n\tabortServerSideFallback?: boolean;\n\t/** Cursor exec-channel tool handlers; see {@link AgentLoopConfig.cursorExecHandlers}. */\n\tcursorExecHandlers?: AgentLoopConfig[\"cursorExecHandlers\"];\n}\n\nexport interface AgentContinuationOptions {\n\t/** Keep queued steering and follow-up input out of the continuation's first provider request only. */\n\tdeferQueuedMessages?: boolean;\n\t/** Override the provider stream idle timeout for the continuation's first provider request only. */\n\ttimeoutMs?: number;\n\t/** Override the provider stream-start timeout for the continuation's first provider request only. */\n\tstreamStartTimeoutMs?: number;\n}\n\nclass PendingMessageQueue {\n\tprivate messages: AgentMessage[] = [];\n\tprivate clearGeneration = 0;\n\tpublic mode: QueueMode;\n\n\tconstructor(mode: QueueMode) {\n\t\tthis.mode = mode;\n\t}\n\n\tenqueue(message: AgentMessage): void {\n\t\tthis.messages.push(message);\n\t}\n\n\thasItems(): boolean {\n\t\treturn this.messages.length > 0;\n\t}\n\n\tgetClearGeneration(): number {\n\t\treturn this.clearGeneration;\n\t}\n\n\tdrain(): AgentMessage[] {\n\t\tif (this.mode === \"all\") {\n\t\t\tconst drained = this.messages.slice();\n\t\t\tthis.messages = [];\n\t\t\treturn drained;\n\t\t}\n\n\t\tconst first = this.messages[0];\n\t\tif (!first) {\n\t\t\treturn [];\n\t\t}\n\t\tthis.messages = this.messages.slice(1);\n\t\treturn [first];\n\t}\n\n\tprepend(messages: AgentMessage[]): void {\n\t\tthis.messages = [...messages, ...this.messages];\n\t}\n\n\tclear(): void {\n\t\tthis.messages = [];\n\t\tthis.clearGeneration++;\n\t}\n}\n\ntype ActiveRun = {\n\tpromise: Promise<void>;\n\tresolve: () => void;\n\tabortController: AbortController;\n\tsuppressQueuedMessageDrain: boolean;\n};\n\n/**\n * Stateful wrapper around the low-level agent loop.\n *\n * `Agent` owns the current transcript, emits lifecycle events, executes tools,\n * and exposes queueing APIs for steering and follow-up messages.\n */\nexport class Agent {\n\tprivate _state: MutableAgentState;\n\tprivate readonly listeners = new Set<(event: AgentEvent, signal: AbortSignal) => Promise<void> | void>();\n\tprivate readonly steeringQueue: PendingMessageQueue;\n\tprivate readonly followUpQueue: PendingMessageQueue;\n\n\tpublic convertToLlm: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;\n\tpublic transformContext?: (messages: AgentMessage[], signal?: AbortSignal) => Promise<AgentMessage[]>;\n\tpublic streamFunction: StreamFn;\n\tpublic getApiKey?: (provider: string) => Promise<string | undefined> | string | undefined;\n\tpublic onPayload?: SimpleStreamOptions[\"onPayload\"];\n\tpublic onResponse?: SimpleStreamOptions[\"onResponse\"];\n\tpublic beforeToolCall?: (\n\t\tcontext: BeforeToolCallContext,\n\t\tsignal?: AbortSignal,\n\t) => Promise<BeforeToolCallResult | undefined>;\n\tpublic afterToolCall?: (\n\t\tcontext: AfterToolCallContext,\n\t\tsignal?: AbortSignal,\n\t) => Promise<AfterToolCallResult | undefined>;\n\tpublic shouldStopAfterTurn?: (\n\t\tcontext: ShouldStopAfterTurnContext,\n\t\tsignal?: AbortSignal,\n\t) => boolean | Promise<boolean>;\n\tpublic prepareNextTurn?: (\n\t\tsignal?: AbortSignal,\n\t) => Promise<AgentLoopTurnUpdate | undefined> | AgentLoopTurnUpdate | undefined;\n\tpublic prepareNextTurnWithContext?: (\n\t\tcontext: PrepareNextTurnContext,\n\t\tsignal?: AbortSignal,\n\t) => Promise<AgentLoopTurnUpdate | undefined> | AgentLoopTurnUpdate | undefined;\n\tprivate activeRun?: ActiveRun;\n\t/** Session identifier forwarded to providers for cache-aware backends. */\n\tpublic sessionId?: string;\n\t/** Optional per-level thinking token budgets forwarded to the stream function. */\n\tpublic thinkingBudgets?: ThinkingBudgets;\n\t/** Preferred transport forwarded to the stream function. */\n\tpublic transport: Transport;\n\tpublic timeoutMs?: number;\n\t/** Optional bound on the wait for the first provider stream event. */\n\tpublic streamStartTimeoutMs?: number;\n\t/** Optional cap for provider-requested retry delays. */\n\tpublic maxRetryDelayMs?: number;\n\t/** Tool execution strategy for assistant messages that contain multiple tool calls. */\n\tpublic toolExecution: ToolExecutionMode;\n\t/** Migration guidance returned when a removed tool name is called. */\n\tpublic removedToolHints: Record<string, string>;\n\t/** Optional call-time resolver for tools absent from the request context. */\n\tpublic resolveUnknownToolCall?: AgentLoopConfig[\"resolveUnknownToolCall\"];\n\t/** Forwarded to the stream function; providers without server-side fallback ignore it. */\n\tpublic abortServerSideFallback?: boolean;\n\t/** Cursor exec-channel tool handlers; see {@link AgentLoopConfig.cursorExecHandlers}. */\n\tpublic cursorExecHandlers?: AgentLoopConfig[\"cursorExecHandlers\"];\n\n\tasync buildProviderContext(context: AgentContext, signal?: AbortSignal): Promise<Context> {\n\t\treturn buildProviderContextFromAgentContext(\n\t\t\tcontext,\n\t\t\t{ convertToLlm: this.convertToLlm, transformContext: this.transformContext },\n\t\t\tsignal,\n\t\t);\n\t}\n\n\tconstructor(options: AgentOptions) {\n\t\t// Older compiled consumers may omit options or streamFn even though the current API requires them.\n\t\tconst runtimeOptions: Partial<AgentOptions> = options ?? {};\n\t\tthis._state = createMutableAgentState(runtimeOptions.initialState);\n\t\tthis.convertToLlm = runtimeOptions.convertToLlm ?? defaultConvertToLlm;\n\t\tthis.transformContext = runtimeOptions.transformContext;\n\t\tthis.streamFunction = runtimeOptions.streamFn ?? getDefaultStreamFn();\n\t\tthis.getApiKey = runtimeOptions.getApiKey;\n\t\tthis.onPayload = runtimeOptions.onPayload;\n\t\tthis.onResponse = runtimeOptions.onResponse;\n\t\tthis.beforeToolCall = runtimeOptions.beforeToolCall;\n\t\tthis.afterToolCall = runtimeOptions.afterToolCall;\n\t\tthis.shouldStopAfterTurn = runtimeOptions.shouldStopAfterTurn;\n\t\tthis.prepareNextTurn = runtimeOptions.prepareNextTurn;\n\t\tthis.prepareNextTurnWithContext = runtimeOptions.prepareNextTurnWithContext;\n\t\tthis.steeringQueue = new PendingMessageQueue(runtimeOptions.steeringMode ?? \"one-at-a-time\");\n\t\tthis.followUpQueue = new PendingMessageQueue(runtimeOptions.followUpMode ?? \"one-at-a-time\");\n\t\tthis.sessionId = runtimeOptions.sessionId;\n\t\tthis.thinkingBudgets = runtimeOptions.thinkingBudgets;\n\t\tthis.transport = runtimeOptions.transport ?? \"auto\";\n\t\tthis.timeoutMs = runtimeOptions.timeoutMs;\n\t\tthis.streamStartTimeoutMs = runtimeOptions.streamStartTimeoutMs;\n\t\tthis.maxRetryDelayMs = runtimeOptions.maxRetryDelayMs;\n\t\tthis.toolExecution = runtimeOptions.toolExecution ?? \"parallel\";\n\t\tthis.removedToolHints = runtimeOptions.removedToolHints ?? {};\n\t\tthis.resolveUnknownToolCall = runtimeOptions.resolveUnknownToolCall;\n\t\tthis.abortServerSideFallback = runtimeOptions.abortServerSideFallback;\n\t\tthis.cursorExecHandlers = runtimeOptions.cursorExecHandlers;\n\t}\n\n\t/**\n\t * Subscribe to agent lifecycle events.\n\t *\n\t * Listener promises are awaited in subscription order and are included in\n\t * the current run's settlement. Listeners also receive the active abort\n\t * signal for the current run.\n\t *\n\t * `agent_end` is the final emitted event for a run, but the agent does not\n\t * become idle until all awaited listeners for that event have settled.\n\t */\n\tsubscribe(listener: (event: AgentEvent, signal: AbortSignal) => Promise<void> | void): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => this.listeners.delete(listener);\n\t}\n\n\t/**\n\t * Current agent state.\n\t *\n\t * Assigning `state.tools` or `state.messages` copies the provided top-level array.\n\t */\n\tget state(): AgentState {\n\t\treturn this._state;\n\t}\n\n\t/** Controls how queued steering messages are drained. */\n\tset steeringMode(mode: QueueMode) {\n\t\tthis.steeringQueue.mode = mode;\n\t}\n\n\tget steeringMode(): QueueMode {\n\t\treturn this.steeringQueue.mode;\n\t}\n\n\t/** Controls how queued follow-up messages are drained. */\n\tset followUpMode(mode: QueueMode) {\n\t\tthis.followUpQueue.mode = mode;\n\t}\n\n\tget followUpMode(): QueueMode {\n\t\treturn this.followUpQueue.mode;\n\t}\n\n\t/** Queue a message to be injected after the current assistant turn finishes. */\n\tsteer(message: AgentMessage): void {\n\t\tthis.steeringQueue.enqueue(message);\n\t}\n\n\t/** Queue a message to run only after the agent would otherwise stop. */\n\tfollowUp(message: AgentMessage): void {\n\t\tthis.followUpQueue.enqueue(message);\n\t}\n\n\t/** Remove all queued steering messages. */\n\tclearSteeringQueue(): void {\n\t\tthis.steeringQueue.clear();\n\t}\n\n\t/** Remove all queued follow-up messages. */\n\tclearFollowUpQueue(): void {\n\t\tthis.followUpQueue.clear();\n\t}\n\n\t/** Remove all queued steering and follow-up messages. */\n\tclearAllQueues(): void {\n\t\tthis.clearSteeringQueue();\n\t\tthis.clearFollowUpQueue();\n\t}\n\n\t/** Returns true when either queue still contains pending messages. */\n\thasQueuedMessages(): boolean {\n\t\treturn this.steeringQueue.hasItems() || this.followUpQueue.hasItems();\n\t}\n\n\t/** Active abort signal for the current run, if any. */\n\tget signal(): AbortSignal | undefined {\n\t\treturn this.activeRun?.abortController.signal;\n\t}\n\n\t/** Abort the current run, if one is active. */\n\tabort(reason?: unknown): void {\n\t\tthis.activeRun?.abortController.abort(reason);\n\t}\n\n\t/**\n\t * Keep queued steering and follow-up messages for an external owner after\n\t * this run reaches agent_end, without changing the active abort signal.\n\t * This is ownership suppression for one active run; terminal error/abort\n\t * parking is a separate stop-reason policy enforced by the run lifecycle.\n\t */\n\tsuppressQueuedMessageDrain(): void {\n\t\tif (this.activeRun) {\n\t\t\tthis.activeRun.suppressQueuedMessageDrain = true;\n\t\t}\n\t}\n\n\t/**\n\t * Resolve when the current run and all awaited event listeners have finished.\n\t *\n\t * This resolves after `agent_end` listeners settle.\n\t */\n\twaitForIdle(): Promise<void> {\n\t\treturn this.activeRun?.promise ?? Promise.resolve();\n\t}\n\n\t/** Clear transcript state, runtime state, and queued messages. */\n\treset(): void {\n\t\tif (this.activeRun) {\n\t\t\tthrow new Error(\"Agent is already processing. Wait for completion before resetting.\");\n\t\t}\n\n\t\tthis._state.messages = [];\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamingMessage = undefined;\n\t\tthis._state.pendingToolCalls = new Set<string>();\n\t\tthis._state.errorMessage = undefined;\n\t\tthis.clearFollowUpQueue();\n\t\tthis.clearSteeringQueue();\n\t}\n\n\t/** Start a new prompt from text, a single message, or a batch of messages. */\n\tasync prompt(message: AgentMessage | AgentMessage[]): Promise<void>;\n\tasync prompt(input: string, images?: ImageContent[]): Promise<void>;\n\tasync prompt(input: string | AgentMessage | AgentMessage[], images?: ImageContent[]): Promise<void> {\n\t\tif (this.activeRun) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Agent is already processing a prompt. Use steer() or followUp() to queue messages, or wait for completion.\",\n\t\t\t);\n\t\t}\n\t\tconst messages = this.normalizePromptInput(input, images);\n\t\tawait this.runPromptMessages(messages);\n\t}\n\n\t/**\n\t * Continue by delivering queued input first when a compaction leaves custom context at the tail.\n\t * Queue-first recovery takes precedence over `deferQueuedMessages`: the selected queued message is\n\t * the continuation input, while timeout overrides still apply to its first provider request.\n\t */\n\tasync continueWithQueuedMessages(options: AgentContinuationOptions = {}): Promise<void> {\n\t\tif (this.activeRun) {\n\t\t\tthrow new Error(\"Agent is already processing. Wait for completion before continuing.\");\n\t\t}\n\n\t\tif (this._state.messages[this._state.messages.length - 1]?.role === \"assistant\") {\n\t\t\tawait this.continue(options);\n\t\t\treturn;\n\t\t}\n\n\t\tconst queuedSteering = this.steeringQueue.drain();\n\t\tif (queuedSteering.length > 0) {\n\t\t\tawait this.runPromptMessages(queuedSteering, {\n\t\t\t\tskipInitialSteeringPoll: true,\n\t\t\t\tinitialRequestTimeoutMs: options.timeoutMs,\n\t\t\t\tinitialRequestStreamStartTimeoutMs: options.streamStartTimeoutMs,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst queuedFollowUps = this.followUpQueue.drain();\n\t\tif (queuedFollowUps.length > 0) {\n\t\t\tawait this.runPromptMessages(queuedFollowUps, {\n\t\t\t\tinitialRequestTimeoutMs: options.timeoutMs,\n\t\t\t\tinitialRequestStreamStartTimeoutMs: options.streamStartTimeoutMs,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tawait this.continue(options);\n\t}\n\n\t/**\n\t * Continue from the current transcript. The last message must be a user or tool-result message.\n\t * Queue deferral and timeout overrides apply only to the first provider request; later requests in\n\t * the same run and later runs use the configured Agent defaults.\n\t */\n\tasync continue(options: AgentContinuationOptions = {}): Promise<void> {\n\t\tif (this.activeRun) {\n\t\t\tthrow new Error(\"Agent is already processing. Wait for completion before continuing.\");\n\t\t}\n\n\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\tif (!lastMessage) {\n\t\t\tthrow new Error(\"No messages to continue from\");\n\t\t}\n\n\t\tif (lastMessage.role === \"assistant\") {\n\t\t\tconst queuedSteering = this.steeringQueue.drain();\n\t\t\tif (queuedSteering.length > 0) {\n\t\t\t\tawait this.runPromptMessages(queuedSteering, {\n\t\t\t\t\tskipInitialSteeringPoll: true,\n\t\t\t\t\tinitialRequestTimeoutMs: options.timeoutMs,\n\t\t\t\t\tinitialRequestStreamStartTimeoutMs: options.streamStartTimeoutMs,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst queuedFollowUps = this.followUpQueue.drain();\n\t\t\tif (queuedFollowUps.length > 0) {\n\t\t\t\tawait this.runPromptMessages(queuedFollowUps, {\n\t\t\t\t\tinitialRequestTimeoutMs: options.timeoutMs,\n\t\t\t\t\tinitialRequestStreamStartTimeoutMs: options.streamStartTimeoutMs,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthrow new Error(\"Cannot continue from message role: assistant\");\n\t\t}\n\n\t\tawait this.runContinuation(options);\n\t}\n\n\tprivate normalizePromptInput(\n\t\tinput: string | AgentMessage | AgentMessage[],\n\t\timages?: ImageContent[],\n\t): AgentMessage[] {\n\t\tif (Array.isArray(input)) {\n\t\t\treturn input;\n\t\t}\n\n\t\tif (typeof input !== \"string\") {\n\t\t\treturn [input];\n\t\t}\n\n\t\tconst content: Array<TextContent | ImageContent> = [{ type: \"text\", text: input }];\n\t\tif (images && images.length > 0) {\n\t\t\tcontent.push(...images);\n\t\t}\n\t\treturn [{ role: \"user\", content, timestamp: Date.now() }];\n\t}\n\n\tprivate async runPromptMessages(\n\t\tmessages: AgentMessage[],\n\t\toptions: {\n\t\t\tskipInitialSteeringPoll?: boolean;\n\t\t\tinitialRequestTimeoutMs?: number;\n\t\t\tinitialRequestStreamStartTimeoutMs?: number;\n\t\t} = {},\n\t): Promise<void> {\n\t\tawait this.runWithLifecycle(async (signal) => {\n\t\t\tawait runAgentLoop(\n\t\t\t\tmessages,\n\t\t\t\tthis.createContextSnapshot(),\n\t\t\t\tthis.createLoopConfig(options),\n\t\t\t\t(event) => this.processEvents(event),\n\t\t\t\tsignal,\n\t\t\t\tthis.streamFunction,\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate async runContinuation(options: AgentContinuationOptions = {}): Promise<void> {\n\t\tawait this.runWithLifecycle(async (signal) => {\n\t\t\tawait runAgentLoopContinue(\n\t\t\t\tthis.createContextSnapshot(),\n\t\t\t\tthis.createLoopConfig({\n\t\t\t\t\tskipInitialSteeringPoll: options.deferQueuedMessages,\n\t\t\t\t\tinitialRequestTimeoutMs: options.timeoutMs,\n\t\t\t\t\tinitialRequestStreamStartTimeoutMs: options.streamStartTimeoutMs,\n\t\t\t\t}),\n\t\t\t\t(event) => this.processEvents(event),\n\t\t\t\tsignal,\n\t\t\t\tthis.streamFunction,\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate createContextSnapshot(): AgentContext {\n\t\treturn {\n\t\t\tsystemPrompt: this._state.systemPrompt,\n\t\t\tmessages: this._state.messages.slice(),\n\t\t\ttools: this._state.tools.slice(),\n\t\t};\n\t}\n\n\tprivate createLoopConfig(\n\t\toptions: {\n\t\t\tskipInitialSteeringPoll?: boolean;\n\t\t\tinitialRequestTimeoutMs?: number;\n\t\t\tinitialRequestStreamStartTimeoutMs?: number;\n\t\t} = {},\n\t): AgentLoopConfig {\n\t\tlet skipInitialSteeringPoll = options.skipInitialSteeringPoll === true;\n\t\tlet steeringQueueGeneration = this.steeringQueue.getClearGeneration();\n\t\tlet followUpQueueGeneration = this.followUpQueue.getClearGeneration();\n\t\tconst shouldStopAfterTurn = this.shouldStopAfterTurn;\n\t\treturn {\n\t\t\tmodel: this._state.model,\n\t\t\treasoning: this._state.thinkingLevel === \"off\" ? undefined : this._state.thinkingLevel,\n\t\t\tthinkingSelection: this._state.thinkingSelection,\n\t\t\tsessionId: this.sessionId,\n\t\t\tonPayload: this.onPayload,\n\t\t\tonResponse: this.onResponse,\n\t\t\ttransport: this.transport,\n\t\t\tthinkingBudgets: this.thinkingBudgets,\n\t\t\ttimeoutMs: this.timeoutMs,\n\t\t\tstreamStartTimeoutMs: this.streamStartTimeoutMs,\n\t\t\tinitialRequestTimeoutMs: options.initialRequestTimeoutMs,\n\t\t\tinitialRequestStreamStartTimeoutMs: options.initialRequestStreamStartTimeoutMs,\n\t\t\tmaxRetryDelayMs: this.maxRetryDelayMs,\n\t\t\tabortServerSideFallback: this.abortServerSideFallback,\n\t\t\tcursorExecHandlers: this.cursorExecHandlers,\n\t\t\ttoolExecution: this.toolExecution,\n\t\t\tremovedToolHints: this.removedToolHints,\n\t\t\tresolveUnknownToolCall: this.resolveUnknownToolCall,\n\t\t\tbeforeToolCall: this.beforeToolCall,\n\t\t\tafterToolCall: this.afterToolCall,\n\t\t\tshouldStopAfterTurn: shouldStopAfterTurn\n\t\t\t\t? async (context) => await shouldStopAfterTurn(context, this.signal)\n\t\t\t\t: undefined,\n\t\t\tprepareNextTurn:\n\t\t\t\tthis.prepareNextTurnWithContext || this.prepareNextTurn\n\t\t\t\t\t? async (context) => {\n\t\t\t\t\t\t\tif (this.prepareNextTurnWithContext) {\n\t\t\t\t\t\t\t\treturn await this.prepareNextTurnWithContext(context, this.signal);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn await this.prepareNextTurn?.(this.signal);\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\tconvertToLlm: this.convertToLlm,\n\t\t\ttransformContext: this.transformContext,\n\t\t\tgetApiKey: this.getApiKey,\n\t\t\tgetSteeringMessages: async () => {\n\t\t\t\tif (skipInitialSteeringPoll) {\n\t\t\t\t\tskipInitialSteeringPoll = false;\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t\tsteeringQueueGeneration = this.steeringQueue.getClearGeneration();\n\t\t\t\treturn this.steeringQueue.drain();\n\t\t\t},\n\t\t\tgetFollowUpMessages: async () => {\n\t\t\t\tfollowUpQueueGeneration = this.followUpQueue.getClearGeneration();\n\t\t\t\treturn this.followUpQueue.drain();\n\t\t\t},\n\t\t\trestorePendingMessages: (queue, messages) => {\n\t\t\t\tif (queue === \"steering\") {\n\t\t\t\t\tif (this.steeringQueue.getClearGeneration() !== steeringQueueGeneration) return;\n\t\t\t\t\tthis.steeringQueue.prepend(messages);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.followUpQueue.getClearGeneration() !== followUpQueueGeneration) return;\n\t\t\t\tthis.followUpQueue.prepend(messages);\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate async runWithLifecycle(executor: (signal: AbortSignal) => Promise<void>): Promise<void> {\n\t\tif (this.activeRun) {\n\t\t\tthrow new Error(\"Agent is already processing.\");\n\t\t}\n\n\t\tconst abortController = new AbortController();\n\t\tlet resolvePromise = () => {};\n\t\tconst promise = new Promise<void>((resolve) => {\n\t\t\tresolvePromise = resolve;\n\t\t});\n\t\tthis.activeRun = { promise, resolve: resolvePromise, abortController, suppressQueuedMessageDrain: false };\n\n\t\tthis._state.isStreaming = true;\n\t\tthis._state.streamingMessage = undefined;\n\t\tthis._state.errorMessage = undefined;\n\n\t\ttry {\n\t\t\tawait executor(abortController.signal);\n\t\t\t// A provider-returned terminal error/abort has no safe implicit owner for\n\t\t\t// queued work. Park it until an external retry/compaction owner continues,\n\t\t\t// or until a later admitted prompt drains it through the normal queue poll.\n\t\t\twhile (\n\t\t\t\t!abortController.signal.aborted &&\n\t\t\t\t!this.activeRun?.suppressQueuedMessageDrain &&\n\t\t\t\tthis.canDrainQueuedMessagesAfterRun() &&\n\t\t\t\tthis.hasQueuedMessages()\n\t\t\t) {\n\t\t\t\tawait this.runQueuedMessagesAfterAgentEnd(abortController.signal);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tawait this.handleRunFailure(error, abortController.signal.aborted);\n\t\t} finally {\n\t\t\tthis.finishRun();\n\t\t}\n\t}\n\n\tprivate canDrainQueuedMessagesAfterRun(): boolean {\n\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\treturn (\n\t\t\tlastMessage?.role !== \"assistant\" ||\n\t\t\t(lastMessage.stopReason !== \"error\" && lastMessage.stopReason !== \"aborted\")\n\t\t);\n\t}\n\n\tprivate async runQueuedMessagesAfterAgentEnd(signal: AbortSignal): Promise<void> {\n\t\tconst queuedSteering = this.steeringQueue.drain();\n\t\tif (queuedSteering.length > 0) {\n\t\t\tawait runAgentLoop(\n\t\t\t\tqueuedSteering,\n\t\t\t\tthis.createContextSnapshot(),\n\t\t\t\tthis.createLoopConfig({ skipInitialSteeringPoll: true }),\n\t\t\t\t(event) => this.processEvents(event),\n\t\t\t\tsignal,\n\t\t\t\tthis.streamFunction,\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst queuedFollowUps = this.followUpQueue.drain();\n\t\tif (queuedFollowUps.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait runAgentLoop(\n\t\t\tqueuedFollowUps,\n\t\t\tthis.createContextSnapshot(),\n\t\t\tthis.createLoopConfig(),\n\t\t\t(event) => this.processEvents(event),\n\t\t\tsignal,\n\t\t\tthis.streamFunction,\n\t\t);\n\t}\n\n\tprivate async handleRunFailure(error: unknown, aborted: boolean): Promise<void> {\n\t\tconst failureMessage = {\n\t\t\trole: \"assistant\",\n\t\t\tcontent: [{ type: \"text\", text: \"\" }],\n\t\t\tapi: this._state.model.api,\n\t\t\tprovider: this._state.model.provider,\n\t\t\tmodel: this._state.model.id,\n\t\t\tusage: EMPTY_USAGE,\n\t\t\tstopReason: aborted ? \"aborted\" : \"error\",\n\t\t\terrorMessage: error instanceof Error ? error.message : String(error),\n\t\t\t...(error instanceof ProviderRetryWatchdogAbortError ? { abortSource: \"provider\" as const } : {}),\n\t\t\ttimestamp: Date.now(),\n\t\t} satisfies AgentMessage;\n\t\tawait this.processEvents({ type: \"message_start\", message: failureMessage });\n\t\tawait this.processEvents({ type: \"message_end\", message: failureMessage });\n\t\tawait this.processEvents({ type: \"turn_end\", message: failureMessage, toolResults: [] });\n\t\tawait this.processEvents({ type: \"agent_end\", messages: [failureMessage] });\n\t}\n\n\tprivate finishRun(): void {\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamingMessage = undefined;\n\t\tthis._state.pendingToolCalls = new Set<string>();\n\t\tthis.activeRun?.resolve();\n\t\tthis.activeRun = undefined;\n\t}\n\n\t/**\n\t * Reduce internal state for a loop event, then await listeners.\n\t *\n\t * `agent_end` only means no further loop events will be emitted. The run is\n\t * considered idle later, after all awaited listeners for `agent_end` finish\n\t * and `finishRun()` clears runtime-owned state.\n\t */\n\tprivate async processEvents(event: AgentEvent): Promise<void> {\n\t\tswitch (event.type) {\n\t\t\tcase \"message_start\":\n\t\t\t\tthis._state.streamingMessage = event.message;\n\t\t\t\tbreak;\n\n\t\t\tcase \"message_update\":\n\t\t\t\tthis._state.streamingMessage = event.message;\n\t\t\t\tbreak;\n\n\t\t\tcase \"message_end\":\n\t\t\t\tthis._state.streamingMessage = undefined;\n\t\t\t\tthis._state.messages.push(event.message);\n\t\t\t\tbreak;\n\n\t\t\tcase \"tool_execution_start\": {\n\t\t\t\tconst pendingToolCalls = new Set(this._state.pendingToolCalls);\n\t\t\t\tpendingToolCalls.add(event.toolCallId);\n\t\t\t\tthis._state.pendingToolCalls = pendingToolCalls;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"tool_execution_end\": {\n\t\t\t\tconst pendingToolCalls = new Set(this._state.pendingToolCalls);\n\t\t\t\tpendingToolCalls.delete(event.toolCallId);\n\t\t\t\tthis._state.pendingToolCalls = pendingToolCalls;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"turn_end\":\n\t\t\t\tif (event.message.role === \"assistant\" && event.message.errorMessage) {\n\t\t\t\t\tthis._state.errorMessage = event.message.errorMessage;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"agent_end\":\n\t\t\t\tthis._state.streamingMessage = undefined;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst signal = this.activeRun?.abortController.signal;\n\t\tif (!signal) {\n\t\t\tthrow new Error(\"Agent listener invoked outside active run\");\n\t\t}\n\t\tfor (const listener of this.listeners) {\n\t\t\tawait listener(event, signal);\n\t\t}\n\t}\n\n\t/**\n\t * Emit a host-generated event through the normal listener pipeline.\n\t *\n\t * Used by the Cursor exec bridge: bridge-run tools execute inside the\n\t * provider stream, outside the loop's executor, so their\n\t * `tool_execution_start`/`tool_execution_end` lifecycle must be injected\n\t * here or the live tool card for a synthesized call never resolves.\n\t * A bridge execution may settle after an aborted run has already ended; its\n\t * late lifecycle event belongs to that finished run and must be discarded.\n\t */\n\tasync emitExternalEvent(event: AgentEvent, runSignal?: AbortSignal): Promise<void> {\n\t\tconst activeSignal = this.activeRun?.abortController.signal;\n\t\tif (!activeSignal || (runSignal && runSignal !== activeSignal)) return;\n\t\tawait this.processEvents(event);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tContext,\n\tImageContent,\n\tMessage,\n\tModel,\n\tSimpleStreamOptions,\n\tTextContent,\n\tThinkingBudgets,\n\tTransport,\n} from \"@earendil-works/pi-ai\";\nimport {\n\tbuildProviderContext as buildProviderContextFromAgentContext,\n\trunAgentLoop,\n\trunAgentLoopContinue,\n} from \"./agent-loop.ts\";\nimport { ProviderRetryWatchdogAbortError } from \"./assistant-terminal-state.ts\";\nimport { getDefaultStreamFn } from \"./stream-fn.ts\";\nimport type {\n\tAfterToolCallContext,\n\tAfterToolCallResult,\n\tAgentContext,\n\tAgentEvent,\n\tAgentLoopConfig,\n\tAgentLoopTurnUpdate,\n\tAgentMessage,\n\tAgentState,\n\tAgentTool,\n\tBeforeToolCallContext,\n\tBeforeToolCallResult,\n\tPrepareNextTurnContext,\n\tQueueMode,\n\tShouldStopAfterTurnContext,\n\tStreamFn,\n\tThinkingLevel,\n\tToolExecutionMode,\n} from \"./types.ts\";\n\nexport type { QueueMode } from \"./types.ts\";\n\nfunction defaultConvertToLlm(messages: AgentMessage[]): Message[] {\n\treturn messages.filter(\n\t\t(message) => message.role === \"user\" || message.role === \"assistant\" || message.role === \"toolResult\",\n\t);\n}\n\nconst EMPTY_USAGE = {\n\tinput: 0,\n\toutput: 0,\n\tcacheRead: 0,\n\tcacheWrite: 0,\n\ttotalTokens: 0,\n\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n};\n\nconst DEFAULT_MODEL = {\n\tid: \"unknown\",\n\tname: \"unknown\",\n\tapi: \"unknown\",\n\tprovider: \"unknown\",\n\tbaseUrl: \"\",\n\treasoning: false,\n\tinput: [],\n\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\tcontextWindow: 0,\n\tmaxTokens: 0,\n} satisfies Model<any>;\n\ntype MutableAgentState = Omit<AgentState, \"isStreaming\" | \"streamingMessage\" | \"pendingToolCalls\" | \"errorMessage\"> & {\n\tisStreaming: boolean;\n\tstreamingMessage?: AgentMessage;\n\tpendingToolCalls: Set<string>;\n\terrorMessage?: string;\n};\n\nfunction createMutableAgentState(\n\tinitialState?: Partial<Omit<AgentState, \"pendingToolCalls\" | \"isStreaming\" | \"streamingMessage\" | \"errorMessage\">>,\n): MutableAgentState {\n\tlet tools = initialState?.tools?.slice() ?? [];\n\tlet messages = initialState?.messages?.slice() ?? [];\n\n\treturn {\n\t\tsystemPrompt: initialState?.systemPrompt ?? \"\",\n\t\tmodel: initialState?.model ?? DEFAULT_MODEL,\n\t\tthinkingLevel: initialState?.thinkingLevel ?? \"off\",\n\t\treasoningBaseline: initialState?.reasoningBaseline,\n\t\tget tools() {\n\t\t\treturn tools;\n\t\t},\n\t\tset tools(nextTools: AgentTool<any>[]) {\n\t\t\ttools = nextTools.slice();\n\t\t},\n\t\tget messages() {\n\t\t\treturn messages;\n\t\t},\n\t\tset messages(nextMessages: AgentMessage[]) {\n\t\t\tmessages = nextMessages.slice();\n\t\t},\n\t\tisStreaming: false,\n\t\tstreamingMessage: undefined,\n\t\tpendingToolCalls: new Set<string>(),\n\t\terrorMessage: undefined,\n\t};\n}\n\n/** Options for constructing an {@link Agent}. */\nexport interface AgentOptions {\n\tinitialState?: Partial<Omit<AgentState, \"pendingToolCalls\" | \"isStreaming\" | \"streamingMessage\" | \"errorMessage\">>;\n\tconvertToLlm?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;\n\ttransformContext?: (messages: AgentMessage[], signal?: AbortSignal) => Promise<AgentMessage[]>;\n\tstreamFn: StreamFn;\n\tgetApiKey?: (provider: string) => Promise<string | undefined> | string | undefined;\n\tonPayload?: SimpleStreamOptions[\"onPayload\"];\n\tonResponse?: SimpleStreamOptions[\"onResponse\"];\n\tbeforeToolCall?: (context: BeforeToolCallContext, signal?: AbortSignal) => Promise<BeforeToolCallResult | undefined>;\n\tafterToolCall?: (context: AfterToolCallContext, signal?: AbortSignal) => Promise<AfterToolCallResult | undefined>;\n\tshouldStopAfterTurn?: (context: ShouldStopAfterTurnContext, signal?: AbortSignal) => boolean | Promise<boolean>;\n\tprepareNextTurn?: (\n\t\tsignal?: AbortSignal,\n\t) => Promise<AgentLoopTurnUpdate | undefined> | AgentLoopTurnUpdate | undefined;\n\tprepareNextTurnWithContext?: (\n\t\tcontext: PrepareNextTurnContext,\n\t\tsignal?: AbortSignal,\n\t) => Promise<AgentLoopTurnUpdate | undefined> | AgentLoopTurnUpdate | undefined;\n\tsteeringMode?: QueueMode;\n\tfollowUpMode?: QueueMode;\n\tsessionId?: string;\n\tthinkingBudgets?: ThinkingBudgets;\n\ttransport?: Transport;\n\ttimeoutMs?: number;\n\tstreamStartTimeoutMs?: number;\n\tmaxRetryDelayMs?: number;\n\ttoolExecution?: ToolExecutionMode;\n\tremovedToolHints?: Record<string, string>;\n\tresolveUnknownToolCall?: AgentLoopConfig[\"resolveUnknownToolCall\"];\n\tabortServerSideFallback?: boolean;\n\t/** Cursor exec-channel tool handlers; see {@link AgentLoopConfig.cursorExecHandlers}. */\n\tcursorExecHandlers?: AgentLoopConfig[\"cursorExecHandlers\"];\n}\n\nexport interface AgentContinuationOptions {\n\t/** Keep queued steering and follow-up input out of the continuation's first provider request only. */\n\tdeferQueuedMessages?: boolean;\n\t/** Override the provider stream idle timeout for the continuation's first provider request only. */\n\ttimeoutMs?: number;\n\t/** Override the provider stream-start timeout for the continuation's first provider request only. */\n\tstreamStartTimeoutMs?: number;\n}\n\nclass PendingMessageQueue {\n\tprivate messages: AgentMessage[] = [];\n\tprivate clearGeneration = 0;\n\tpublic mode: QueueMode;\n\n\tconstructor(mode: QueueMode) {\n\t\tthis.mode = mode;\n\t}\n\n\tenqueue(message: AgentMessage): void {\n\t\tthis.messages.push(message);\n\t}\n\n\thasItems(): boolean {\n\t\treturn this.messages.length > 0;\n\t}\n\n\tgetClearGeneration(): number {\n\t\treturn this.clearGeneration;\n\t}\n\n\tdrain(): AgentMessage[] {\n\t\tif (this.mode === \"all\") {\n\t\t\tconst drained = this.messages.slice();\n\t\t\tthis.messages = [];\n\t\t\treturn drained;\n\t\t}\n\n\t\tconst first = this.messages[0];\n\t\tif (!first) {\n\t\t\treturn [];\n\t\t}\n\t\tthis.messages = this.messages.slice(1);\n\t\treturn [first];\n\t}\n\n\tprepend(messages: AgentMessage[]): void {\n\t\tthis.messages = [...messages, ...this.messages];\n\t}\n\n\tclear(): void {\n\t\tthis.messages = [];\n\t\tthis.clearGeneration++;\n\t}\n}\n\ntype ActiveRun = {\n\tpromise: Promise<void>;\n\tresolve: () => void;\n\tabortController: AbortController;\n\tsuppressQueuedMessageDrain: boolean;\n};\n\n/**\n * Stateful wrapper around the low-level agent loop.\n *\n * `Agent` owns the current transcript, emits lifecycle events, executes tools,\n * and exposes queueing APIs for steering and follow-up messages.\n */\nexport class Agent {\n\tprivate _state: MutableAgentState;\n\tprivate readonly listeners = new Set<(event: AgentEvent, signal: AbortSignal) => Promise<void> | void>();\n\tprivate readonly steeringQueue: PendingMessageQueue;\n\tprivate readonly followUpQueue: PendingMessageQueue;\n\n\tpublic convertToLlm: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;\n\tpublic transformContext?: (messages: AgentMessage[], signal?: AbortSignal) => Promise<AgentMessage[]>;\n\tpublic streamFunction: StreamFn;\n\tpublic getApiKey?: (provider: string) => Promise<string | undefined> | string | undefined;\n\tpublic onPayload?: SimpleStreamOptions[\"onPayload\"];\n\tpublic onResponse?: SimpleStreamOptions[\"onResponse\"];\n\tpublic beforeToolCall?: (\n\t\tcontext: BeforeToolCallContext,\n\t\tsignal?: AbortSignal,\n\t) => Promise<BeforeToolCallResult | undefined>;\n\tpublic afterToolCall?: (\n\t\tcontext: AfterToolCallContext,\n\t\tsignal?: AbortSignal,\n\t) => Promise<AfterToolCallResult | undefined>;\n\tpublic shouldStopAfterTurn?: (\n\t\tcontext: ShouldStopAfterTurnContext,\n\t\tsignal?: AbortSignal,\n\t) => boolean | Promise<boolean>;\n\tpublic prepareNextTurn?: (\n\t\tsignal?: AbortSignal,\n\t) => Promise<AgentLoopTurnUpdate | undefined> | AgentLoopTurnUpdate | undefined;\n\tpublic prepareNextTurnWithContext?: (\n\t\tcontext: PrepareNextTurnContext,\n\t\tsignal?: AbortSignal,\n\t) => Promise<AgentLoopTurnUpdate | undefined> | AgentLoopTurnUpdate | undefined;\n\tprivate activeRun?: ActiveRun;\n\t/** Session identifier forwarded to providers for cache-aware backends. */\n\tpublic sessionId?: string;\n\t/** Optional per-level thinking token budgets forwarded to the stream function. */\n\tpublic thinkingBudgets?: ThinkingBudgets;\n\t/** Preferred transport forwarded to the stream function. */\n\tpublic transport: Transport;\n\tpublic timeoutMs?: number;\n\t/** Optional bound on the wait for the first provider stream event. */\n\tpublic streamStartTimeoutMs?: number;\n\t/** Optional cap for provider-requested retry delays. */\n\tpublic maxRetryDelayMs?: number;\n\t/** Tool execution strategy for assistant messages that contain multiple tool calls. */\n\tpublic toolExecution: ToolExecutionMode;\n\t/** Migration guidance returned when a removed tool name is called. */\n\tpublic removedToolHints: Record<string, string>;\n\t/** Optional call-time resolver for tools absent from the request context. */\n\tpublic resolveUnknownToolCall?: AgentLoopConfig[\"resolveUnknownToolCall\"];\n\t/** Forwarded to the stream function; providers without server-side fallback ignore it. */\n\tpublic abortServerSideFallback?: boolean;\n\t/** Cursor exec-channel tool handlers; see {@link AgentLoopConfig.cursorExecHandlers}. */\n\tpublic cursorExecHandlers?: AgentLoopConfig[\"cursorExecHandlers\"];\n\n\tasync buildProviderContext(context: AgentContext, signal?: AbortSignal): Promise<Context> {\n\t\treturn buildProviderContextFromAgentContext(\n\t\t\tcontext,\n\t\t\t{ convertToLlm: this.convertToLlm, transformContext: this.transformContext },\n\t\t\tsignal,\n\t\t);\n\t}\n\n\tconstructor(options: AgentOptions) {\n\t\t// Older compiled consumers may omit options or streamFn even though the current API requires them.\n\t\tconst runtimeOptions: Partial<AgentOptions> = options ?? {};\n\t\tthis._state = createMutableAgentState(runtimeOptions.initialState);\n\t\tthis.convertToLlm = runtimeOptions.convertToLlm ?? defaultConvertToLlm;\n\t\tthis.transformContext = runtimeOptions.transformContext;\n\t\tthis.streamFunction = runtimeOptions.streamFn ?? getDefaultStreamFn();\n\t\tthis.getApiKey = runtimeOptions.getApiKey;\n\t\tthis.onPayload = runtimeOptions.onPayload;\n\t\tthis.onResponse = runtimeOptions.onResponse;\n\t\tthis.beforeToolCall = runtimeOptions.beforeToolCall;\n\t\tthis.afterToolCall = runtimeOptions.afterToolCall;\n\t\tthis.shouldStopAfterTurn = runtimeOptions.shouldStopAfterTurn;\n\t\tthis.prepareNextTurn = runtimeOptions.prepareNextTurn;\n\t\tthis.prepareNextTurnWithContext = runtimeOptions.prepareNextTurnWithContext;\n\t\tthis.steeringQueue = new PendingMessageQueue(runtimeOptions.steeringMode ?? \"one-at-a-time\");\n\t\tthis.followUpQueue = new PendingMessageQueue(runtimeOptions.followUpMode ?? \"one-at-a-time\");\n\t\tthis.sessionId = runtimeOptions.sessionId;\n\t\tthis.thinkingBudgets = runtimeOptions.thinkingBudgets;\n\t\tthis.transport = runtimeOptions.transport ?? \"auto\";\n\t\tthis.timeoutMs = runtimeOptions.timeoutMs;\n\t\tthis.streamStartTimeoutMs = runtimeOptions.streamStartTimeoutMs;\n\t\tthis.maxRetryDelayMs = runtimeOptions.maxRetryDelayMs;\n\t\tthis.toolExecution = runtimeOptions.toolExecution ?? \"parallel\";\n\t\tthis.removedToolHints = runtimeOptions.removedToolHints ?? {};\n\t\tthis.resolveUnknownToolCall = runtimeOptions.resolveUnknownToolCall;\n\t\tthis.abortServerSideFallback = runtimeOptions.abortServerSideFallback;\n\t\tthis.cursorExecHandlers = runtimeOptions.cursorExecHandlers;\n\t}\n\n\t/**\n\t * Subscribe to agent lifecycle events.\n\t *\n\t * Listener promises are awaited in subscription order and are included in\n\t * the current run's settlement. Listeners also receive the active abort\n\t * signal for the current run.\n\t *\n\t * `agent_end` is the final emitted event for a run, but the agent does not\n\t * become idle until all awaited listeners for that event have settled.\n\t */\n\tsubscribe(listener: (event: AgentEvent, signal: AbortSignal) => Promise<void> | void): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => this.listeners.delete(listener);\n\t}\n\n\t/**\n\t * Current agent state.\n\t *\n\t * Assigning `state.tools` or `state.messages` copies the provided top-level array.\n\t */\n\tget state(): AgentState {\n\t\treturn this._state;\n\t}\n\n\t/** Controls how queued steering messages are drained. */\n\tset steeringMode(mode: QueueMode) {\n\t\tthis.steeringQueue.mode = mode;\n\t}\n\n\tget steeringMode(): QueueMode {\n\t\treturn this.steeringQueue.mode;\n\t}\n\n\t/** Controls how queued follow-up messages are drained. */\n\tset followUpMode(mode: QueueMode) {\n\t\tthis.followUpQueue.mode = mode;\n\t}\n\n\tget followUpMode(): QueueMode {\n\t\treturn this.followUpQueue.mode;\n\t}\n\n\t/** Queue a message to be injected after the current assistant turn finishes. */\n\tsteer(message: AgentMessage): void {\n\t\tthis.steeringQueue.enqueue(message);\n\t}\n\n\t/** Queue a message to run only after the agent would otherwise stop. */\n\tfollowUp(message: AgentMessage): void {\n\t\tthis.followUpQueue.enqueue(message);\n\t}\n\n\t/** Remove all queued steering messages. */\n\tclearSteeringQueue(): void {\n\t\tthis.steeringQueue.clear();\n\t}\n\n\t/** Remove all queued follow-up messages. */\n\tclearFollowUpQueue(): void {\n\t\tthis.followUpQueue.clear();\n\t}\n\n\t/** Remove all queued steering and follow-up messages. */\n\tclearAllQueues(): void {\n\t\tthis.clearSteeringQueue();\n\t\tthis.clearFollowUpQueue();\n\t}\n\n\t/** Returns true when either queue still contains pending messages. */\n\thasQueuedMessages(): boolean {\n\t\treturn this.steeringQueue.hasItems() || this.followUpQueue.hasItems();\n\t}\n\n\t/** Active abort signal for the current run, if any. */\n\tget signal(): AbortSignal | undefined {\n\t\treturn this.activeRun?.abortController.signal;\n\t}\n\n\t/** Abort the current run, if one is active. */\n\tabort(reason?: unknown): void {\n\t\tthis.activeRun?.abortController.abort(reason);\n\t}\n\n\t/**\n\t * Keep queued steering and follow-up messages for an external owner after\n\t * this run reaches agent_end, without changing the active abort signal.\n\t * This is ownership suppression for one active run; terminal error/abort\n\t * parking is a separate stop-reason policy enforced by the run lifecycle.\n\t */\n\tsuppressQueuedMessageDrain(): void {\n\t\tif (this.activeRun) {\n\t\t\tthis.activeRun.suppressQueuedMessageDrain = true;\n\t\t}\n\t}\n\n\t/**\n\t * Resolve when the current run and all awaited event listeners have finished.\n\t *\n\t * This resolves after `agent_end` listeners settle.\n\t */\n\twaitForIdle(): Promise<void> {\n\t\treturn this.activeRun?.promise ?? Promise.resolve();\n\t}\n\n\t/** Clear transcript state, runtime state, and queued messages. */\n\treset(): void {\n\t\tif (this.activeRun) {\n\t\t\tthrow new Error(\"Agent is already processing. Wait for completion before resetting.\");\n\t\t}\n\n\t\tthis._state.messages = [];\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamingMessage = undefined;\n\t\tthis._state.pendingToolCalls = new Set<string>();\n\t\tthis._state.errorMessage = undefined;\n\t\tthis.clearFollowUpQueue();\n\t\tthis.clearSteeringQueue();\n\t}\n\n\t/** Start a new prompt from text, a single message, or a batch of messages. */\n\tasync prompt(message: AgentMessage | AgentMessage[]): Promise<void>;\n\tasync prompt(input: string, images?: ImageContent[]): Promise<void>;\n\tasync prompt(input: string | AgentMessage | AgentMessage[], images?: ImageContent[]): Promise<void> {\n\t\tif (this.activeRun) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Agent is already processing a prompt. Use steer() or followUp() to queue messages, or wait for completion.\",\n\t\t\t);\n\t\t}\n\t\tconst messages = this.normalizePromptInput(input, images);\n\t\tawait this.runPromptMessages(messages);\n\t}\n\n\t/**\n\t * Continue by delivering queued input first when a compaction leaves custom context at the tail.\n\t * Queue-first recovery takes precedence over `deferQueuedMessages`: the selected queued message is\n\t * the continuation input, while timeout overrides still apply to its first provider request.\n\t */\n\tasync continueWithQueuedMessages(options: AgentContinuationOptions = {}): Promise<void> {\n\t\tif (this.activeRun) {\n\t\t\tthrow new Error(\"Agent is already processing. Wait for completion before continuing.\");\n\t\t}\n\n\t\tif (this._state.messages[this._state.messages.length - 1]?.role === \"assistant\") {\n\t\t\tawait this.continue(options);\n\t\t\treturn;\n\t\t}\n\n\t\tconst queuedSteering = this.steeringQueue.drain();\n\t\tif (queuedSteering.length > 0) {\n\t\t\tawait this.runPromptMessages(queuedSteering, {\n\t\t\t\tskipInitialSteeringPoll: true,\n\t\t\t\tinitialRequestTimeoutMs: options.timeoutMs,\n\t\t\t\tinitialRequestStreamStartTimeoutMs: options.streamStartTimeoutMs,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst queuedFollowUps = this.followUpQueue.drain();\n\t\tif (queuedFollowUps.length > 0) {\n\t\t\tawait this.runPromptMessages(queuedFollowUps, {\n\t\t\t\tinitialRequestTimeoutMs: options.timeoutMs,\n\t\t\t\tinitialRequestStreamStartTimeoutMs: options.streamStartTimeoutMs,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tawait this.continue(options);\n\t}\n\n\t/**\n\t * Continue from the current transcript. The last message must be a user or tool-result message.\n\t * Queue deferral and timeout overrides apply only to the first provider request; later requests in\n\t * the same run and later runs use the configured Agent defaults.\n\t */\n\tasync continue(options: AgentContinuationOptions = {}): Promise<void> {\n\t\tif (this.activeRun) {\n\t\t\tthrow new Error(\"Agent is already processing. Wait for completion before continuing.\");\n\t\t}\n\n\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\tif (!lastMessage) {\n\t\t\tthrow new Error(\"No messages to continue from\");\n\t\t}\n\n\t\tif (lastMessage.role === \"assistant\") {\n\t\t\tconst queuedSteering = this.steeringQueue.drain();\n\t\t\tif (queuedSteering.length > 0) {\n\t\t\t\tawait this.runPromptMessages(queuedSteering, {\n\t\t\t\t\tskipInitialSteeringPoll: true,\n\t\t\t\t\tinitialRequestTimeoutMs: options.timeoutMs,\n\t\t\t\t\tinitialRequestStreamStartTimeoutMs: options.streamStartTimeoutMs,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst queuedFollowUps = this.followUpQueue.drain();\n\t\t\tif (queuedFollowUps.length > 0) {\n\t\t\t\tawait this.runPromptMessages(queuedFollowUps, {\n\t\t\t\t\tinitialRequestTimeoutMs: options.timeoutMs,\n\t\t\t\t\tinitialRequestStreamStartTimeoutMs: options.streamStartTimeoutMs,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthrow new Error(\"Cannot continue from message role: assistant\");\n\t\t}\n\n\t\tawait this.runContinuation(options);\n\t}\n\n\tprivate normalizePromptInput(\n\t\tinput: string | AgentMessage | AgentMessage[],\n\t\timages?: ImageContent[],\n\t): AgentMessage[] {\n\t\tif (Array.isArray(input)) {\n\t\t\treturn input;\n\t\t}\n\n\t\tif (typeof input !== \"string\") {\n\t\t\treturn [input];\n\t\t}\n\n\t\tconst content: Array<TextContent | ImageContent> = [{ type: \"text\", text: input }];\n\t\tif (images && images.length > 0) {\n\t\t\tcontent.push(...images);\n\t\t}\n\t\treturn [{ role: \"user\", content, timestamp: Date.now() }];\n\t}\n\n\tprivate async runPromptMessages(\n\t\tmessages: AgentMessage[],\n\t\toptions: {\n\t\t\tskipInitialSteeringPoll?: boolean;\n\t\t\tinitialRequestTimeoutMs?: number;\n\t\t\tinitialRequestStreamStartTimeoutMs?: number;\n\t\t} = {},\n\t): Promise<void> {\n\t\tawait this.runWithLifecycle(async (signal) => {\n\t\t\tawait runAgentLoop(\n\t\t\t\tmessages,\n\t\t\t\tthis.createContextSnapshot(),\n\t\t\t\tthis.createLoopConfig(options),\n\t\t\t\t(event) => this.processEvents(event),\n\t\t\t\tsignal,\n\t\t\t\tthis.streamFunction,\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate async runContinuation(options: AgentContinuationOptions = {}): Promise<void> {\n\t\tawait this.runWithLifecycle(async (signal) => {\n\t\t\tawait runAgentLoopContinue(\n\t\t\t\tthis.createContextSnapshot(),\n\t\t\t\tthis.createLoopConfig({\n\t\t\t\t\tskipInitialSteeringPoll: options.deferQueuedMessages,\n\t\t\t\t\tinitialRequestTimeoutMs: options.timeoutMs,\n\t\t\t\t\tinitialRequestStreamStartTimeoutMs: options.streamStartTimeoutMs,\n\t\t\t\t}),\n\t\t\t\t(event) => this.processEvents(event),\n\t\t\t\tsignal,\n\t\t\t\tthis.streamFunction,\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate createContextSnapshot(): AgentContext {\n\t\treturn {\n\t\t\tsystemPrompt: this._state.systemPrompt,\n\t\t\tmessages: this._state.messages.slice(),\n\t\t\ttools: this._state.tools.slice(),\n\t\t};\n\t}\n\n\tprivate createLoopConfig(\n\t\toptions: {\n\t\t\tskipInitialSteeringPoll?: boolean;\n\t\t\tinitialRequestTimeoutMs?: number;\n\t\t\tinitialRequestStreamStartTimeoutMs?: number;\n\t\t} = {},\n\t): AgentLoopConfig {\n\t\tlet skipInitialSteeringPoll = options.skipInitialSteeringPoll === true;\n\t\tlet steeringQueueGeneration = this.steeringQueue.getClearGeneration();\n\t\tlet followUpQueueGeneration = this.followUpQueue.getClearGeneration();\n\t\tconst shouldStopAfterTurn = this.shouldStopAfterTurn;\n\t\tconst reasoning = (this._state.reasoningBaseline as ThinkingLevel | undefined) ?? this._state.thinkingLevel;\n\t\treturn {\n\t\t\tmodel: this._state.model,\n\t\t\treasoning: reasoning === \"off\" ? undefined : reasoning,\n\t\t\tthinkingSelection: this._state.thinkingSelection,\n\t\t\tsessionId: this.sessionId,\n\t\t\tonPayload: this.onPayload,\n\t\t\tonResponse: this.onResponse,\n\t\t\ttransport: this.transport,\n\t\t\tthinkingBudgets: this.thinkingBudgets,\n\t\t\ttimeoutMs: this.timeoutMs,\n\t\t\tstreamStartTimeoutMs: this.streamStartTimeoutMs,\n\t\t\tinitialRequestTimeoutMs: options.initialRequestTimeoutMs,\n\t\t\tinitialRequestStreamStartTimeoutMs: options.initialRequestStreamStartTimeoutMs,\n\t\t\tmaxRetryDelayMs: this.maxRetryDelayMs,\n\t\t\tabortServerSideFallback: this.abortServerSideFallback,\n\t\t\tcursorExecHandlers: this.cursorExecHandlers,\n\t\t\ttoolExecution: this.toolExecution,\n\t\t\tremovedToolHints: this.removedToolHints,\n\t\t\tresolveUnknownToolCall: this.resolveUnknownToolCall,\n\t\t\tbeforeToolCall: this.beforeToolCall,\n\t\t\tafterToolCall: this.afterToolCall,\n\t\t\tshouldStopAfterTurn: shouldStopAfterTurn\n\t\t\t\t? async (context) => await shouldStopAfterTurn(context, this.signal)\n\t\t\t\t: undefined,\n\t\t\tprepareNextTurn:\n\t\t\t\tthis.prepareNextTurnWithContext || this.prepareNextTurn\n\t\t\t\t\t? async (context) => {\n\t\t\t\t\t\t\tif (this.prepareNextTurnWithContext) {\n\t\t\t\t\t\t\t\treturn await this.prepareNextTurnWithContext(context, this.signal);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn await this.prepareNextTurn?.(this.signal);\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\tconvertToLlm: this.convertToLlm,\n\t\t\ttransformContext: this.transformContext,\n\t\t\tgetApiKey: this.getApiKey,\n\t\t\tgetSteeringMessages: async () => {\n\t\t\t\tif (skipInitialSteeringPoll) {\n\t\t\t\t\tskipInitialSteeringPoll = false;\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t\tsteeringQueueGeneration = this.steeringQueue.getClearGeneration();\n\t\t\t\treturn this.steeringQueue.drain();\n\t\t\t},\n\t\t\tgetFollowUpMessages: async () => {\n\t\t\t\tfollowUpQueueGeneration = this.followUpQueue.getClearGeneration();\n\t\t\t\treturn this.followUpQueue.drain();\n\t\t\t},\n\t\t\trestorePendingMessages: (queue, messages) => {\n\t\t\t\tif (queue === \"steering\") {\n\t\t\t\t\tif (this.steeringQueue.getClearGeneration() !== steeringQueueGeneration) return;\n\t\t\t\t\tthis.steeringQueue.prepend(messages);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.followUpQueue.getClearGeneration() !== followUpQueueGeneration) return;\n\t\t\t\tthis.followUpQueue.prepend(messages);\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate async runWithLifecycle(executor: (signal: AbortSignal) => Promise<void>): Promise<void> {\n\t\tif (this.activeRun) {\n\t\t\tthrow new Error(\"Agent is already processing.\");\n\t\t}\n\n\t\tconst abortController = new AbortController();\n\t\tlet resolvePromise = () => {};\n\t\tconst promise = new Promise<void>((resolve) => {\n\t\t\tresolvePromise = resolve;\n\t\t});\n\t\tthis.activeRun = { promise, resolve: resolvePromise, abortController, suppressQueuedMessageDrain: false };\n\n\t\tthis._state.isStreaming = true;\n\t\tthis._state.streamingMessage = undefined;\n\t\tthis._state.errorMessage = undefined;\n\n\t\ttry {\n\t\t\tawait executor(abortController.signal);\n\t\t\t// A provider-returned terminal error/abort has no safe implicit owner for\n\t\t\t// queued work. Park it until an external retry/compaction owner continues,\n\t\t\t// or until a later admitted prompt drains it through the normal queue poll.\n\t\t\twhile (\n\t\t\t\t!abortController.signal.aborted &&\n\t\t\t\t!this.activeRun?.suppressQueuedMessageDrain &&\n\t\t\t\tthis.canDrainQueuedMessagesAfterRun() &&\n\t\t\t\tthis.hasQueuedMessages()\n\t\t\t) {\n\t\t\t\tawait this.runQueuedMessagesAfterAgentEnd(abortController.signal);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tawait this.handleRunFailure(error, abortController.signal.aborted);\n\t\t} finally {\n\t\t\tthis.finishRun();\n\t\t}\n\t}\n\n\tprivate canDrainQueuedMessagesAfterRun(): boolean {\n\t\tconst lastMessage = this._state.messages[this._state.messages.length - 1];\n\t\treturn (\n\t\t\tlastMessage?.role !== \"assistant\" ||\n\t\t\t(lastMessage.stopReason !== \"error\" && lastMessage.stopReason !== \"aborted\")\n\t\t);\n\t}\n\n\tprivate async runQueuedMessagesAfterAgentEnd(signal: AbortSignal): Promise<void> {\n\t\tconst queuedSteering = this.steeringQueue.drain();\n\t\tif (queuedSteering.length > 0) {\n\t\t\tawait runAgentLoop(\n\t\t\t\tqueuedSteering,\n\t\t\t\tthis.createContextSnapshot(),\n\t\t\t\tthis.createLoopConfig({ skipInitialSteeringPoll: true }),\n\t\t\t\t(event) => this.processEvents(event),\n\t\t\t\tsignal,\n\t\t\t\tthis.streamFunction,\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst queuedFollowUps = this.followUpQueue.drain();\n\t\tif (queuedFollowUps.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait runAgentLoop(\n\t\t\tqueuedFollowUps,\n\t\t\tthis.createContextSnapshot(),\n\t\t\tthis.createLoopConfig(),\n\t\t\t(event) => this.processEvents(event),\n\t\t\tsignal,\n\t\t\tthis.streamFunction,\n\t\t);\n\t}\n\n\tprivate async handleRunFailure(error: unknown, aborted: boolean): Promise<void> {\n\t\tconst failureMessage = {\n\t\t\trole: \"assistant\",\n\t\t\tcontent: [{ type: \"text\", text: \"\" }],\n\t\t\tapi: this._state.model.api,\n\t\t\tprovider: this._state.model.provider,\n\t\t\tmodel: this._state.model.id,\n\t\t\tusage: EMPTY_USAGE,\n\t\t\tstopReason: aborted ? \"aborted\" : \"error\",\n\t\t\terrorMessage: error instanceof Error ? error.message : String(error),\n\t\t\t...(error instanceof ProviderRetryWatchdogAbortError ? { abortSource: \"provider\" as const } : {}),\n\t\t\ttimestamp: Date.now(),\n\t\t} satisfies AgentMessage;\n\t\tawait this.processEvents({ type: \"message_start\", message: failureMessage });\n\t\tawait this.processEvents({ type: \"message_end\", message: failureMessage });\n\t\tawait this.processEvents({ type: \"turn_end\", message: failureMessage, toolResults: [] });\n\t\tawait this.processEvents({ type: \"agent_end\", messages: [failureMessage] });\n\t}\n\n\tprivate finishRun(): void {\n\t\tthis._state.isStreaming = false;\n\t\tthis._state.streamingMessage = undefined;\n\t\tthis._state.pendingToolCalls = new Set<string>();\n\t\tthis.activeRun?.resolve();\n\t\tthis.activeRun = undefined;\n\t}\n\n\t/**\n\t * Reduce internal state for a loop event, then await listeners.\n\t *\n\t * `agent_end` only means no further loop events will be emitted. The run is\n\t * considered idle later, after all awaited listeners for `agent_end` finish\n\t * and `finishRun()` clears runtime-owned state.\n\t */\n\tprivate async processEvents(event: AgentEvent): Promise<void> {\n\t\tswitch (event.type) {\n\t\t\tcase \"message_start\":\n\t\t\t\tthis._state.streamingMessage = event.message;\n\t\t\t\tbreak;\n\n\t\t\tcase \"message_update\":\n\t\t\t\tthis._state.streamingMessage = event.message;\n\t\t\t\tbreak;\n\n\t\t\tcase \"message_end\":\n\t\t\t\tthis._state.streamingMessage = undefined;\n\t\t\t\tthis._state.messages.push(event.message);\n\t\t\t\tbreak;\n\n\t\t\tcase \"tool_execution_start\": {\n\t\t\t\tconst pendingToolCalls = new Set(this._state.pendingToolCalls);\n\t\t\t\tpendingToolCalls.add(event.toolCallId);\n\t\t\t\tthis._state.pendingToolCalls = pendingToolCalls;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"tool_execution_end\": {\n\t\t\t\tconst pendingToolCalls = new Set(this._state.pendingToolCalls);\n\t\t\t\tpendingToolCalls.delete(event.toolCallId);\n\t\t\t\tthis._state.pendingToolCalls = pendingToolCalls;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"turn_end\":\n\t\t\t\tif (event.message.role === \"assistant\" && event.message.errorMessage) {\n\t\t\t\t\tthis._state.errorMessage = event.message.errorMessage;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"agent_end\":\n\t\t\t\tthis._state.streamingMessage = undefined;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst signal = this.activeRun?.abortController.signal;\n\t\tif (!signal) {\n\t\t\tthrow new Error(\"Agent listener invoked outside active run\");\n\t\t}\n\t\tfor (const listener of this.listeners) {\n\t\t\tawait listener(event, signal);\n\t\t}\n\t}\n\n\t/**\n\t * Emit a host-generated event through the normal listener pipeline.\n\t *\n\t * Used by the Cursor exec bridge: bridge-run tools execute inside the\n\t * provider stream, outside the loop's executor, so their\n\t * `tool_execution_start`/`tool_execution_end` lifecycle must be injected\n\t * here or the live tool card for a synthesized call never resolves.\n\t * A bridge execution may settle after an aborted run has already ended; its\n\t * late lifecycle event belongs to that finished run and must be discarded.\n\t */\n\tasync emitExternalEvent(event: AgentEvent, runSignal?: AbortSignal): Promise<void> {\n\t\tconst activeSignal = this.activeRun?.abortController.signal;\n\t\tif (!activeSignal || (runSignal && runSignal !== activeSignal)) return;\n\t\tawait this.processEvents(event);\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-harness.d.ts","sourceRoot":"","sources":["../../src/harness/agent-harness.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-harness.d.ts","sourceRoot":"","sources":["../../src/harness/agent-harness.ts"],"names":[],"mappings":"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"}
|
|
@@ -155,7 +155,24 @@ export class AgentHarness {
|
|
|
155
155
|
return this.thinkingLevel;
|
|
156
156
|
}
|
|
157
157
|
async setThinkingLevel(level) {
|
|
158
|
+
if (this.closed)
|
|
159
|
+
throw new HarnessClosed();
|
|
160
|
+
if (level === this.thinkingLevel)
|
|
161
|
+
return;
|
|
158
162
|
this.thinkingLevel = level;
|
|
163
|
+
if (this.model.id !== "gpt-6-astra" ||
|
|
164
|
+
(this.model.provider !== "openai" && this.model.provider !== "openai-codex")) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const leaf = await this.durableSession.getLeafId();
|
|
168
|
+
const latest = leaf === null ? undefined : await this.durableSession.findEntryOnBranch({ start: leaf });
|
|
169
|
+
if (latest?.type === "configuration_update" && latest.reasoning.effort === level)
|
|
170
|
+
return;
|
|
171
|
+
await this.durableSession.appendEntry({
|
|
172
|
+
type: "configuration_update",
|
|
173
|
+
id: crypto.randomUUID(),
|
|
174
|
+
reasoning: { effort: level },
|
|
175
|
+
}, "main");
|
|
159
176
|
}
|
|
160
177
|
async getActiveTools() {
|
|
161
178
|
return [...this.activeToolNames];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-harness.js","sourceRoot":"","sources":["../../src/harness/agent-harness.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tApi,\n\tAssistantMessage,\n\tDeferredHandle,\n\tImageContent,\n\tMessage,\n\tModel,\n\tModels,\n\tRetryPolicy,\n\tSimpleStreamOptions,\n\tUsage,\n} from \"@earendil-works/pi-ai\";\nimport type { AgentMessage, AgentTool, QueueMode, ThinkingLevel } from \"../types.ts\";\nimport type { CompactionSettings } from \"./compaction/compaction.ts\";\nimport { type Result as ResultValue, TaggedError } from \"./result.ts\";\nimport type {\n\tBranchSummaryEntry,\n\tCompactionEntry,\n\tEntry,\n\tJsonValue,\n\tProvisionedEntry,\n\tSession,\n\tSessionTree,\n} from \"./session/index.ts\";\nimport type { TelemetryContext } from \"./telemetry.ts\";\nimport type { AgentHarnessResources, PromptTemplate, Skill } from \"./types.ts\";\n\nexport class LaneBusy extends TaggedError(\"LaneBusy\")<{\n\tlane: string;\n\toperationId: string;\n\toperationKind: \"run\" | \"compaction\" | \"navigation\";\n\tmessage: string;\n}> {}\nexport class MissingIdentities extends TaggedError(\"MissingIdentities\")<{\n\tlane: string;\n\ttools: string[];\n\tmodels: string[];\n\tmessage: string;\n}> {}\nexport class NoActiveRun extends TaggedError(\"NoActiveRun\")<{ lane: string; message: string }> {}\nexport class NoActiveOperation extends TaggedError(\"NoActiveOperation\")<{ lane: string; message: string }> {}\nexport class NothingToResume extends TaggedError(\"NothingToResume\")<{ lane: string; message: string }> {}\nexport class InvalidMessage extends TaggedError(\"InvalidMessage\")<{ lane: string; reason: string; message: string }> {}\nexport class UnknownSkill extends TaggedError(\"UnknownSkill\")<{ name: string; message: string }> {}\nexport class UnknownTemplate extends TaggedError(\"UnknownTemplate\")<{ name: string; message: string }> {}\nexport class UnknownTarget extends TaggedError(\"UnknownTarget\")<{ targetId: string; message: string }> {}\nexport class UnknownQueueItem extends TaggedError(\"UnknownQueueItem\")<{\n\tlane: string;\n\tentryId: string;\n\tmessage: string;\n}> {}\nexport class LaneExists extends TaggedError(\"LaneExists\")<{ lane: string; message: string }> {}\nexport class InvalidLane extends TaggedError(\"InvalidLane\")<{ lane: string; reason: string; message: string }> {}\nexport class NothingToCompact extends TaggedError(\"NothingToCompact\")<{ lane: string; message: string }> {}\nexport class Closed extends TaggedError(\"Closed\")<{ message: string }> {}\n\nexport class HarnessFault extends Error {\n\treadonly cause: unknown;\n\n\tconstructor(message: string, cause: unknown) {\n\t\tsuper(message);\n\t\tthis.name = \"HarnessFault\";\n\t\tthis.cause = cause;\n\t}\n}\n\nexport class HarnessClosed extends Error {\n\tconstructor() {\n\t\tsuper(\"AgentHarness was closed while the operation was active\");\n\t\tthis.name = \"HarnessClosed\";\n\t}\n}\n\nexport class HarnessNotImplemented extends Error {\n\treadonly operation: string;\n\n\tconstructor(operation: string) {\n\t\tsuper(`AgentHarness.${operation} is not implemented yet`);\n\t\tthis.name = \"HarnessNotImplemented\";\n\t\tthis.operation = operation;\n\t}\n}\n\nexport interface OperationError {\n\tcode: string;\n\tmessage: string;\n}\n\nexport type RunOutcome =\n\t| { kind: \"completed\"; leafId: string; finalEntryId: string; finalMessage: AssistantMessage }\n\t| { kind: \"aborted\"; leafId: string; finalEntryId: string; finalMessage: AssistantMessage }\n\t| { kind: \"failed\"; leafId: string; error: OperationError; finalEntryId?: string; finalMessage?: AssistantMessage }\n\t| { kind: \"suspended\"; leafId: string; finalEntryId: string; deferred: DeferredHandle };\n\nexport type CompactionOutcome =\n\t| { kind: \"completed\"; leafId: string; entry: CompactionEntry }\n\t| { kind: \"declined\" | \"aborted\"; leafId: string }\n\t| { kind: \"failed\"; leafId: string; error: OperationError };\n\nexport type NavigationOutcome =\n\t| { kind: \"completed\"; newLeafId: string | null; summaryEntry?: BranchSummaryEntry }\n\t| { kind: \"declined\" | \"aborted\"; leafId: string | null }\n\t| { kind: \"failed\"; leafId: string | null; error: OperationError };\n\nexport type RunRejected = LaneBusy | InvalidMessage | UnknownSkill | UnknownTemplate | Closed;\nexport type CompactionRejected = LaneBusy | NothingToCompact | Closed;\nexport type NavigationRejected = LaneBusy | UnknownTarget | Closed;\nexport type ResumeRejected = LaneBusy | NothingToResume | MissingIdentities | Closed;\nexport type QueueRejected = NoActiveRun | InvalidMessage | Closed;\nexport type CancelQueuedRejected = UnknownQueueItem | Closed;\nexport type AbortRejected = NoActiveOperation | Closed;\n\nexport type RunResult = ResultValue<{ runId: string } & RunOutcome, RunRejected>;\nexport type CompactionResult = ResultValue<{ runId: string } & CompactionOutcome, CompactionRejected>;\nexport type NavigationResult = ResultValue<{ runId: string } & NavigationOutcome, NavigationRejected>;\nexport type QueueResult = ResultValue<{ entryId: string }, QueueRejected>;\nexport type CancelQueuedResult = ResultValue<\n\t{ outcome: \"cancelled\" | \"already_consumed\" | \"already_cleared\" },\n\tCancelQueuedRejected\n>;\nexport type RecordUsageResult = ResultValue<void, Closed>;\nexport type AbortResult = ResultValue<\n\t{ runId: string; steer: AgentMessage[]; followUp: AgentMessage[] },\n\tAbortRejected\n>;\n\nexport type ResumeOutcome =\n\t| ({ operation: \"run\"; runId: string } & RunOutcome)\n\t| ({ operation: \"compaction\"; runId: string } & CompactionOutcome)\n\t| ({ operation: \"navigation\"; runId: string } & NavigationOutcome);\nexport type ResumeResult = ResultValue<ResumeOutcome, ResumeRejected>;\nexport type CreateLaneResult = ResultValue<AgentLane, LaneExists | InvalidLane | UnknownTarget | Closed>;\n\nexport interface NavigateOptions {\n\tsummarize?: boolean;\n\tcustomInstructions?: string;\n\tlabel?: string;\n}\n\nexport interface SuspendedOperation {\n\tlane: string;\n\tkind: \"run\" | \"compaction\" | \"navigation\";\n\tid: string;\n\tstartedAt: number;\n\treason: \"crash\" | \"deferred\";\n\tprompt?: AgentMessage[];\n\tdeferred?: DeferredHandle;\n\taborting?: { steer: AgentMessage[]; followUp: AgentMessage[] };\n\tmissing: { tools: string[]; models: string[] };\n}\n\nexport interface LaneInfo {\n\tname: string;\n\tleafId: string | null;\n\toperation: null | {\n\t\tid: string;\n\t\tkind: \"run\" | \"compaction\" | \"navigation\";\n\t\tstatus: \"running\" | \"suspended\" | \"aborting\";\n\t};\n}\n\nexport interface QueuedItem {\n\tentryId: string;\n\tmessage: AgentMessage;\n}\n\nexport interface LaneSnapshot {\n\tlane: string;\n\ttranscript: Entry[];\n\tleafId: string | null;\n\toperation: LaneInfo[\"operation\"];\n\tqueues: { steer: QueuedItem[]; followUp: QueuedItem[]; nextRun: QueuedItem[] };\n\tpendingWrites: { id: string; entry: ProvisionedEntry }[];\n\tfaulted: boolean;\n}\n\nexport interface SessionSnapshot {\n\tlanes: (LaneInfo & { suspended?: SuspendedOperation })[];\n\tfaulted: boolean;\n}\n\nexport type ActionInfo =\n\t| { kind: \"append_entry\"; entryType: Entry[\"type\"]; entryId: string }\n\t| { kind: \"append_record\"; recordType: string }\n\t| { kind: \"move_lane\"; to: string | null }\n\t| { kind: \"set_fact\"; fact: \"name\" | \"label\" }\n\t| { kind: \"try_finish_run\"; outcome: \"completed\" | \"failed\" }\n\t| { kind: \"finish_operation\"; outcome: \"completed\" | \"declined\" | \"failed\" | \"aborted\" }\n\t| { kind: \"commit_follow_up\" }\n\t| { kind: \"consume_queue_item\"; queue: \"steer\" | \"followUp\"; entryId: string }\n\t| { kind: \"apply_pending_write\"; entryId: string }\n\t| { kind: \"stream_assistant\"; step: \"assistant\" | \"compaction\" | \"branch_summary\"; attempt: number }\n\t| { kind: \"execute_tool\"; toolCallId: string; toolName: string }\n\t| { kind: \"fetch_deferred\" | \"cancel_deferred\"; provider: string; id: string }\n\t| { kind: \"hook\"; name: HookName }\n\t| { kind: \"sleep\"; delayMs: number };\n\nexport type HookName =\n\t| \"before_run\"\n\t| \"before_resume\"\n\t| \"before_run_end\"\n\t| \"transform_context\"\n\t| \"before_request\"\n\t| \"before_payload\"\n\t| \"after_response\"\n\t| \"before_tool\"\n\t| \"after_tool\"\n\t| \"before_compaction\"\n\t| \"before_navigation\";\n\nexport interface Hooks {\n\ton(name: HookName, handler: (event: unknown) => unknown | Promise<unknown>, options?: { id?: string }): () => void;\n}\n\nexport interface Events {\n\ton(type: string, listener: (event: unknown) => void | Promise<void>): () => void;\n}\n\nclass UnavailableRegistry implements Hooks, Events {\n\tprivate readonly operation: string;\n\tprivate readonly isClosed: () => boolean;\n\n\tconstructor(operation: string, isClosed: () => boolean) {\n\t\tthis.operation = operation;\n\t\tthis.isClosed = isClosed;\n\t}\n\n\ton(\n\t\t_name: HookName | string,\n\t\t_handler: (event: unknown) => unknown | Promise<unknown>,\n\t\t_options?: { id?: string },\n\t): () => void {\n\t\tthrow this.isClosed() ? new HarnessClosed() : new HarnessNotImplemented(this.operation);\n\t}\n}\n\nexport type HarnessTool = AgentTool & { replay?: \"never\" | \"safe\" };\nexport type Resources = AgentHarnessResources<Skill, PromptTemplate>;\nexport type StreamOptions = SimpleStreamOptions;\nexport type StreamOptionsPatch = Partial<SimpleStreamOptions>;\nexport type EntryProjector = (entry: Entry) => AgentMessage[] | Promise<AgentMessage[]>;\n\nexport interface AgentHarnessOptions {\n\tsession: Session;\n\tmodels: Models;\n\tmodel: Model<Api>;\n\tthinkingLevel?: ThinkingLevel;\n\tactiveToolNames?: string[];\n\ttools?: HarnessTool[];\n\ttoolContext?: object | (() => object | Promise<object>);\n\tsystemPrompt?: string | (() => string | Promise<string>);\n\tresources?: Resources;\n\tstreamOptions?: StreamOptions;\n\tretry?: RetryPolicy;\n\tcompaction?: CompactionSettings;\n\tsteeringMode?: QueueMode;\n\tfollowUpMode?: QueueMode;\n\ttoolExecution?: \"sequential\" | \"parallel\";\n\tdrive?: \"automatic\" | \"manual\";\n\ttoProviderMessages?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;\n\tentryProjectors?: Record<string, EntryProjector>;\n\tcontext?: TelemetryContext;\n}\n\nexport interface WatchHandle<TSnapshot> {\n\tsnapshot: TSnapshot;\n\tstart(listener: (event: unknown) => void): void;\n\tunsubscribe(): void;\n}\n\nexport interface AgentLane {\n\treadonly name: string;\n\tgetLeafId(): Promise<string | null>;\n\tprompt(text: string, images?: ImageContent[]): Promise<RunResult>;\n\tprompt(message: AgentMessage | AgentMessage[]): Promise<RunResult>;\n\tskill(name: string, additionalInstructions?: string): Promise<RunResult>;\n\tpromptFromTemplate(name: string, args?: string[]): Promise<RunResult>;\n\tcompact(options?: { customInstructions?: string }): Promise<CompactionResult>;\n\tnavigateTree(targetId: string | null, options?: NavigateOptions): Promise<NavigationResult>;\n\tresume(): Promise<ResumeResult>;\n\tabort(): Promise<AbortResult>;\n\tsteer(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tsteer(message: AgentMessage): Promise<QueueResult>;\n\tfollowUp(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tfollowUp(message: AgentMessage): Promise<QueueResult>;\n\tnextRun(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tnextRun(message: AgentMessage): Promise<QueueResult>;\n\tcancelQueued(entryId: string): Promise<CancelQueuedResult>;\n\trecordUsage(usage: Usage, options?: { entryId?: string; details?: JsonValue }): Promise<RecordUsageResult>;\n\twaitForIdle(): Promise<void>;\n\trunWhenIdle(callback: () => void | Promise<void>): Promise<void>;\n\tpeekAction(): Promise<ActionInfo | undefined>;\n\texecuteAction(): Promise<ActionInfo | undefined>;\n\trunToCompletion(): Promise<void>;\n\tgetModel(): Promise<Model<Api>>;\n\tsetModel(model: Model<Api>): Promise<void>;\n\tgetThinkingLevel(): Promise<ThinkingLevel>;\n\tsetThinkingLevel(level: ThinkingLevel): Promise<void>;\n\tgetActiveTools(): Promise<string[]>;\n\tsetActiveTools(names: string[]): Promise<void>;\n\treadonly session: SessionTree;\n\twatch(): Promise<WatchHandle<LaneSnapshot>>;\n}\n\nexport class AgentHarness implements AgentLane {\n\treadonly name = \"main\";\n\treadonly session: SessionTree;\n\treadonly hooks: Hooks;\n\treadonly events: Events;\n\tprivate readonly durableSession: Session;\n\tprivate model: Model<Api>;\n\tprivate thinkingLevel: ThinkingLevel;\n\tprivate activeToolNames: string[];\n\tprivate tools: HarnessTool[];\n\tprivate resources: Resources;\n\tprivate streamOptions: StreamOptions;\n\tprivate retryPolicy: RetryPolicy;\n\tprivate compactionSettings: CompactionSettings;\n\tprivate steeringMode: QueueMode;\n\tprivate followUpMode: QueueMode;\n\tprivate closed = false;\n\n\tprivate constructor(options: AgentHarnessOptions) {\n\t\tthis.durableSession = options.session;\n\t\tthis.session = options.session;\n\t\tthis.hooks = new UnavailableRegistry(\"hooks.on\", () => this.closed);\n\t\tthis.events = new UnavailableRegistry(\"events.on\", () => this.closed);\n\t\tthis.model = options.model;\n\t\tthis.thinkingLevel = options.thinkingLevel ?? \"off\";\n\t\tthis.activeToolNames = [...(options.activeToolNames ?? options.tools?.map((tool) => tool.name) ?? [])];\n\t\tthis.tools = [...(options.tools ?? [])];\n\t\tthis.resources = {\n\t\t\tskills: options.resources?.skills ? [...options.resources.skills] : undefined,\n\t\t\tpromptTemplates: options.resources?.promptTemplates ? [...options.resources.promptTemplates] : undefined,\n\t\t};\n\t\tthis.streamOptions = { ...(options.streamOptions ?? {}) };\n\t\tthis.retryPolicy = options.retry ?? { enabled: false, maxRetries: 0, baseDelayMs: 1000 };\n\t\tthis.compactionSettings = options.compaction ?? {\n\t\t\tenabled: true,\n\t\t\treserveTokens: 16384,\n\t\t\tkeepRecentTokens: 20000,\n\t\t};\n\t\tthis.steeringMode = options.steeringMode ?? \"one-at-a-time\";\n\t\tthis.followUpMode = options.followUpMode ?? \"one-at-a-time\";\n\t}\n\n\tstatic async create(\n\t\toptions: AgentHarnessOptions,\n\t): Promise<{ harness: AgentHarness; suspended: SuspendedOperation[] }> {\n\t\tconst [record] = await options.session.findRecords({ limit: 1 });\n\t\tif (record !== undefined) throw new HarnessNotImplemented(\"create.restore\");\n\t\treturn { harness: new AgentHarness(options), suspended: [] };\n\t}\n\n\tprivate unavailable<T>(operation: string): Promise<T> {\n\t\treturn Promise.reject(this.closed ? new HarnessClosed() : new HarnessNotImplemented(operation));\n\t}\n\n\tasync getLeafId(): Promise<string | null> {\n\t\treturn this.durableSession.getLeafId();\n\t}\n\n\tasync prompt(_text: string, _images?: ImageContent[]): Promise<RunResult>;\n\tasync prompt(_message: AgentMessage | AgentMessage[]): Promise<RunResult>;\n\tasync prompt(_input: string | AgentMessage | AgentMessage[], _images?: ImageContent[]): Promise<RunResult> {\n\t\treturn this.unavailable(\"prompt\");\n\t}\n\tasync skill(_name: string, _additionalInstructions?: string): Promise<RunResult> {\n\t\treturn this.unavailable(\"skill\");\n\t}\n\tasync promptFromTemplate(_name: string, _args?: string[]): Promise<RunResult> {\n\t\treturn this.unavailable(\"promptFromTemplate\");\n\t}\n\tasync compact(_options?: { customInstructions?: string }): Promise<CompactionResult> {\n\t\treturn this.unavailable(\"compact\");\n\t}\n\tasync navigateTree(_targetId: string | null, _options?: NavigateOptions): Promise<NavigationResult> {\n\t\treturn this.unavailable(\"navigateTree\");\n\t}\n\tasync resume(): Promise<ResumeResult> {\n\t\treturn this.unavailable(\"resume\");\n\t}\n\tasync abort(): Promise<AbortResult> {\n\t\treturn this.unavailable(\"abort\");\n\t}\n\tasync steer(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync steer(_message: AgentMessage): Promise<QueueResult>;\n\tasync steer(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"steer\");\n\t}\n\tasync followUp(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync followUp(_message: AgentMessage): Promise<QueueResult>;\n\tasync followUp(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"followUp\");\n\t}\n\tasync nextRun(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync nextRun(_message: AgentMessage): Promise<QueueResult>;\n\tasync nextRun(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"nextRun\");\n\t}\n\tasync cancelQueued(_entryId: string): Promise<CancelQueuedResult> {\n\t\treturn this.unavailable(\"cancelQueued\");\n\t}\n\tasync recordUsage(_usage: Usage, _options?: { entryId?: string; details?: JsonValue }): Promise<RecordUsageResult> {\n\t\treturn this.unavailable(\"recordUsage\");\n\t}\n\tasync waitForIdle(): Promise<void> {\n\t\treturn this.unavailable(\"waitForIdle\");\n\t}\n\tasync runWhenIdle(_callback: () => void | Promise<void>): Promise<void> {\n\t\treturn this.unavailable(\"runWhenIdle\");\n\t}\n\tasync peekAction(): Promise<ActionInfo | undefined> {\n\t\treturn this.unavailable(\"peekAction\");\n\t}\n\tasync executeAction(): Promise<ActionInfo | undefined> {\n\t\treturn this.unavailable(\"executeAction\");\n\t}\n\tasync runToCompletion(): Promise<void> {\n\t\treturn this.unavailable(\"runToCompletion\");\n\t}\n\tasync getModel(): Promise<Model<Api>> {\n\t\treturn this.model;\n\t}\n\tasync setModel(model: Model<Api>): Promise<void> {\n\t\tthis.model = model;\n\t}\n\tasync getThinkingLevel(): Promise<ThinkingLevel> {\n\t\treturn this.thinkingLevel;\n\t}\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tthis.thinkingLevel = level;\n\t}\n\tasync getActiveTools(): Promise<string[]> {\n\t\treturn [...this.activeToolNames];\n\t}\n\tasync setActiveTools(names: string[]): Promise<void> {\n\t\tthis.activeToolNames = [...names];\n\t}\n\tasync watch(): Promise<WatchHandle<LaneSnapshot>> {\n\t\treturn this.unavailable(\"watch\");\n\t}\n\n\tasync lane(_name: string): Promise<AgentLane | undefined> {\n\t\treturn this.unavailable(\"lane\");\n\t}\n\tasync createLane(_name: string, _at: string | null): Promise<CreateLaneResult> {\n\t\treturn this.unavailable(\"createLane\");\n\t}\n\tasync lanes(): Promise<LaneInfo[]> {\n\t\treturn this.unavailable(\"lanes\");\n\t}\n\tasync getTools(): Promise<HarnessTool[]> {\n\t\treturn [...this.tools];\n\t}\n\tasync setTools(tools: HarnessTool[], activeNames?: string[]): Promise<void> {\n\t\tthis.tools = [...tools];\n\t\tthis.activeToolNames = [...(activeNames ?? tools.map((tool) => tool.name))];\n\t}\n\tasync getResources(): Promise<Resources> {\n\t\treturn {\n\t\t\tskills: this.resources.skills ? [...this.resources.skills] : undefined,\n\t\t\tpromptTemplates: this.resources.promptTemplates ? [...this.resources.promptTemplates] : undefined,\n\t\t};\n\t}\n\tasync setResources(resources: Resources): Promise<void> {\n\t\tthis.resources = {\n\t\t\tskills: resources.skills ? [...resources.skills] : undefined,\n\t\t\tpromptTemplates: resources.promptTemplates ? [...resources.promptTemplates] : undefined,\n\t\t};\n\t}\n\tasync getStreamOptions(): Promise<StreamOptions> {\n\t\treturn { ...this.streamOptions };\n\t}\n\tasync setStreamOptions(options: StreamOptions): Promise<void> {\n\t\tthis.streamOptions = { ...options };\n\t}\n\tasync getRetryPolicy(): Promise<RetryPolicy> {\n\t\treturn { ...this.retryPolicy };\n\t}\n\tasync setRetryPolicy(policy: RetryPolicy): Promise<void> {\n\t\tthis.retryPolicy = { ...policy };\n\t}\n\tasync getCompactionSettings(): Promise<CompactionSettings> {\n\t\treturn { ...this.compactionSettings };\n\t}\n\tasync setCompactionSettings(settings: CompactionSettings): Promise<void> {\n\t\tthis.compactionSettings = { ...settings };\n\t}\n\tasync getSteeringMode(): Promise<QueueMode> {\n\t\treturn this.steeringMode;\n\t}\n\tasync setSteeringMode(mode: QueueMode): Promise<void> {\n\t\tthis.steeringMode = mode;\n\t}\n\tasync getFollowUpMode(): Promise<QueueMode> {\n\t\treturn this.followUpMode;\n\t}\n\tasync setFollowUpMode(mode: QueueMode): Promise<void> {\n\t\tthis.followUpMode = mode;\n\t}\n\tasync watchSession(): Promise<WatchHandle<SessionSnapshot>> {\n\t\treturn this.unavailable(\"watchSession\");\n\t}\n\tasync close(): Promise<void> {\n\t\tthis.closed = true;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"agent-harness.js","sourceRoot":"","sources":["../../src/harness/agent-harness.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tApi,\n\tAssistantMessage,\n\tDeferredHandle,\n\tImageContent,\n\tMessage,\n\tModel,\n\tModels,\n\tRetryPolicy,\n\tSimpleStreamOptions,\n\tUsage,\n} from \"@earendil-works/pi-ai\";\nimport type { AgentMessage, AgentTool, QueueMode, ThinkingLevel } from \"../types.ts\";\nimport type { CompactionSettings } from \"./compaction/compaction.ts\";\nimport { type Result as ResultValue, TaggedError } from \"./result.ts\";\nimport type {\n\tBranchSummaryEntry,\n\tCompactionEntry,\n\tEntry,\n\tJsonValue,\n\tProvisionedEntry,\n\tSession,\n\tSessionTree,\n} from \"./session/index.ts\";\nimport type { TelemetryContext } from \"./telemetry.ts\";\nimport type { AgentHarnessResources, PromptTemplate, Skill } from \"./types.ts\";\n\nexport class LaneBusy extends TaggedError(\"LaneBusy\")<{\n\tlane: string;\n\toperationId: string;\n\toperationKind: \"run\" | \"compaction\" | \"navigation\";\n\tmessage: string;\n}> {}\nexport class MissingIdentities extends TaggedError(\"MissingIdentities\")<{\n\tlane: string;\n\ttools: string[];\n\tmodels: string[];\n\tmessage: string;\n}> {}\nexport class NoActiveRun extends TaggedError(\"NoActiveRun\")<{ lane: string; message: string }> {}\nexport class NoActiveOperation extends TaggedError(\"NoActiveOperation\")<{ lane: string; message: string }> {}\nexport class NothingToResume extends TaggedError(\"NothingToResume\")<{ lane: string; message: string }> {}\nexport class InvalidMessage extends TaggedError(\"InvalidMessage\")<{ lane: string; reason: string; message: string }> {}\nexport class UnknownSkill extends TaggedError(\"UnknownSkill\")<{ name: string; message: string }> {}\nexport class UnknownTemplate extends TaggedError(\"UnknownTemplate\")<{ name: string; message: string }> {}\nexport class UnknownTarget extends TaggedError(\"UnknownTarget\")<{ targetId: string; message: string }> {}\nexport class UnknownQueueItem extends TaggedError(\"UnknownQueueItem\")<{\n\tlane: string;\n\tentryId: string;\n\tmessage: string;\n}> {}\nexport class LaneExists extends TaggedError(\"LaneExists\")<{ lane: string; message: string }> {}\nexport class InvalidLane extends TaggedError(\"InvalidLane\")<{ lane: string; reason: string; message: string }> {}\nexport class NothingToCompact extends TaggedError(\"NothingToCompact\")<{ lane: string; message: string }> {}\nexport class Closed extends TaggedError(\"Closed\")<{ message: string }> {}\n\nexport class HarnessFault extends Error {\n\treadonly cause: unknown;\n\n\tconstructor(message: string, cause: unknown) {\n\t\tsuper(message);\n\t\tthis.name = \"HarnessFault\";\n\t\tthis.cause = cause;\n\t}\n}\n\nexport class HarnessClosed extends Error {\n\tconstructor() {\n\t\tsuper(\"AgentHarness was closed while the operation was active\");\n\t\tthis.name = \"HarnessClosed\";\n\t}\n}\n\nexport class HarnessNotImplemented extends Error {\n\treadonly operation: string;\n\n\tconstructor(operation: string) {\n\t\tsuper(`AgentHarness.${operation} is not implemented yet`);\n\t\tthis.name = \"HarnessNotImplemented\";\n\t\tthis.operation = operation;\n\t}\n}\n\nexport interface OperationError {\n\tcode: string;\n\tmessage: string;\n}\n\nexport type RunOutcome =\n\t| { kind: \"completed\"; leafId: string; finalEntryId: string; finalMessage: AssistantMessage }\n\t| { kind: \"aborted\"; leafId: string; finalEntryId: string; finalMessage: AssistantMessage }\n\t| { kind: \"failed\"; leafId: string; error: OperationError; finalEntryId?: string; finalMessage?: AssistantMessage }\n\t| { kind: \"suspended\"; leafId: string; finalEntryId: string; deferred: DeferredHandle };\n\nexport type CompactionOutcome =\n\t| { kind: \"completed\"; leafId: string; entry: CompactionEntry }\n\t| { kind: \"declined\" | \"aborted\"; leafId: string }\n\t| { kind: \"failed\"; leafId: string; error: OperationError };\n\nexport type NavigationOutcome =\n\t| { kind: \"completed\"; newLeafId: string | null; summaryEntry?: BranchSummaryEntry }\n\t| { kind: \"declined\" | \"aborted\"; leafId: string | null }\n\t| { kind: \"failed\"; leafId: string | null; error: OperationError };\n\nexport type RunRejected = LaneBusy | InvalidMessage | UnknownSkill | UnknownTemplate | Closed;\nexport type CompactionRejected = LaneBusy | NothingToCompact | Closed;\nexport type NavigationRejected = LaneBusy | UnknownTarget | Closed;\nexport type ResumeRejected = LaneBusy | NothingToResume | MissingIdentities | Closed;\nexport type QueueRejected = NoActiveRun | InvalidMessage | Closed;\nexport type CancelQueuedRejected = UnknownQueueItem | Closed;\nexport type AbortRejected = NoActiveOperation | Closed;\n\nexport type RunResult = ResultValue<{ runId: string } & RunOutcome, RunRejected>;\nexport type CompactionResult = ResultValue<{ runId: string } & CompactionOutcome, CompactionRejected>;\nexport type NavigationResult = ResultValue<{ runId: string } & NavigationOutcome, NavigationRejected>;\nexport type QueueResult = ResultValue<{ entryId: string }, QueueRejected>;\nexport type CancelQueuedResult = ResultValue<\n\t{ outcome: \"cancelled\" | \"already_consumed\" | \"already_cleared\" },\n\tCancelQueuedRejected\n>;\nexport type RecordUsageResult = ResultValue<void, Closed>;\nexport type AbortResult = ResultValue<\n\t{ runId: string; steer: AgentMessage[]; followUp: AgentMessage[] },\n\tAbortRejected\n>;\n\nexport type ResumeOutcome =\n\t| ({ operation: \"run\"; runId: string } & RunOutcome)\n\t| ({ operation: \"compaction\"; runId: string } & CompactionOutcome)\n\t| ({ operation: \"navigation\"; runId: string } & NavigationOutcome);\nexport type ResumeResult = ResultValue<ResumeOutcome, ResumeRejected>;\nexport type CreateLaneResult = ResultValue<AgentLane, LaneExists | InvalidLane | UnknownTarget | Closed>;\n\nexport interface NavigateOptions {\n\tsummarize?: boolean;\n\tcustomInstructions?: string;\n\tlabel?: string;\n}\n\nexport interface SuspendedOperation {\n\tlane: string;\n\tkind: \"run\" | \"compaction\" | \"navigation\";\n\tid: string;\n\tstartedAt: number;\n\treason: \"crash\" | \"deferred\";\n\tprompt?: AgentMessage[];\n\tdeferred?: DeferredHandle;\n\taborting?: { steer: AgentMessage[]; followUp: AgentMessage[] };\n\tmissing: { tools: string[]; models: string[] };\n}\n\nexport interface LaneInfo {\n\tname: string;\n\tleafId: string | null;\n\toperation: null | {\n\t\tid: string;\n\t\tkind: \"run\" | \"compaction\" | \"navigation\";\n\t\tstatus: \"running\" | \"suspended\" | \"aborting\";\n\t};\n}\n\nexport interface QueuedItem {\n\tentryId: string;\n\tmessage: AgentMessage;\n}\n\nexport interface LaneSnapshot {\n\tlane: string;\n\ttranscript: Entry[];\n\tleafId: string | null;\n\toperation: LaneInfo[\"operation\"];\n\tqueues: { steer: QueuedItem[]; followUp: QueuedItem[]; nextRun: QueuedItem[] };\n\tpendingWrites: { id: string; entry: ProvisionedEntry }[];\n\tfaulted: boolean;\n}\n\nexport interface SessionSnapshot {\n\tlanes: (LaneInfo & { suspended?: SuspendedOperation })[];\n\tfaulted: boolean;\n}\n\nexport type ActionInfo =\n\t| { kind: \"append_entry\"; entryType: Entry[\"type\"]; entryId: string }\n\t| { kind: \"append_record\"; recordType: string }\n\t| { kind: \"move_lane\"; to: string | null }\n\t| { kind: \"set_fact\"; fact: \"name\" | \"label\" }\n\t| { kind: \"try_finish_run\"; outcome: \"completed\" | \"failed\" }\n\t| { kind: \"finish_operation\"; outcome: \"completed\" | \"declined\" | \"failed\" | \"aborted\" }\n\t| { kind: \"commit_follow_up\" }\n\t| { kind: \"consume_queue_item\"; queue: \"steer\" | \"followUp\"; entryId: string }\n\t| { kind: \"apply_pending_write\"; entryId: string }\n\t| { kind: \"stream_assistant\"; step: \"assistant\" | \"compaction\" | \"branch_summary\"; attempt: number }\n\t| { kind: \"execute_tool\"; toolCallId: string; toolName: string }\n\t| { kind: \"fetch_deferred\" | \"cancel_deferred\"; provider: string; id: string }\n\t| { kind: \"hook\"; name: HookName }\n\t| { kind: \"sleep\"; delayMs: number };\n\nexport type HookName =\n\t| \"before_run\"\n\t| \"before_resume\"\n\t| \"before_run_end\"\n\t| \"transform_context\"\n\t| \"before_request\"\n\t| \"before_payload\"\n\t| \"after_response\"\n\t| \"before_tool\"\n\t| \"after_tool\"\n\t| \"before_compaction\"\n\t| \"before_navigation\";\n\nexport interface Hooks {\n\ton(name: HookName, handler: (event: unknown) => unknown | Promise<unknown>, options?: { id?: string }): () => void;\n}\n\nexport interface Events {\n\ton(type: string, listener: (event: unknown) => void | Promise<void>): () => void;\n}\n\nclass UnavailableRegistry implements Hooks, Events {\n\tprivate readonly operation: string;\n\tprivate readonly isClosed: () => boolean;\n\n\tconstructor(operation: string, isClosed: () => boolean) {\n\t\tthis.operation = operation;\n\t\tthis.isClosed = isClosed;\n\t}\n\n\ton(\n\t\t_name: HookName | string,\n\t\t_handler: (event: unknown) => unknown | Promise<unknown>,\n\t\t_options?: { id?: string },\n\t): () => void {\n\t\tthrow this.isClosed() ? new HarnessClosed() : new HarnessNotImplemented(this.operation);\n\t}\n}\n\nexport type HarnessTool = AgentTool & { replay?: \"never\" | \"safe\" };\nexport type Resources = AgentHarnessResources<Skill, PromptTemplate>;\nexport type StreamOptions = SimpleStreamOptions;\nexport type StreamOptionsPatch = Partial<SimpleStreamOptions>;\nexport type EntryProjector = (entry: Entry) => AgentMessage[] | Promise<AgentMessage[]>;\n\nexport interface AgentHarnessOptions {\n\tsession: Session;\n\tmodels: Models;\n\tmodel: Model<Api>;\n\tthinkingLevel?: ThinkingLevel;\n\tactiveToolNames?: string[];\n\ttools?: HarnessTool[];\n\ttoolContext?: object | (() => object | Promise<object>);\n\tsystemPrompt?: string | (() => string | Promise<string>);\n\tresources?: Resources;\n\tstreamOptions?: StreamOptions;\n\tretry?: RetryPolicy;\n\tcompaction?: CompactionSettings;\n\tsteeringMode?: QueueMode;\n\tfollowUpMode?: QueueMode;\n\ttoolExecution?: \"sequential\" | \"parallel\";\n\tdrive?: \"automatic\" | \"manual\";\n\ttoProviderMessages?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;\n\tentryProjectors?: Record<string, EntryProjector>;\n\tcontext?: TelemetryContext;\n}\n\nexport interface WatchHandle<TSnapshot> {\n\tsnapshot: TSnapshot;\n\tstart(listener: (event: unknown) => void): void;\n\tunsubscribe(): void;\n}\n\nexport interface AgentLane {\n\treadonly name: string;\n\tgetLeafId(): Promise<string | null>;\n\tprompt(text: string, images?: ImageContent[]): Promise<RunResult>;\n\tprompt(message: AgentMessage | AgentMessage[]): Promise<RunResult>;\n\tskill(name: string, additionalInstructions?: string): Promise<RunResult>;\n\tpromptFromTemplate(name: string, args?: string[]): Promise<RunResult>;\n\tcompact(options?: { customInstructions?: string }): Promise<CompactionResult>;\n\tnavigateTree(targetId: string | null, options?: NavigateOptions): Promise<NavigationResult>;\n\tresume(): Promise<ResumeResult>;\n\tabort(): Promise<AbortResult>;\n\tsteer(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tsteer(message: AgentMessage): Promise<QueueResult>;\n\tfollowUp(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tfollowUp(message: AgentMessage): Promise<QueueResult>;\n\tnextRun(text: string, images?: ImageContent[]): Promise<QueueResult>;\n\tnextRun(message: AgentMessage): Promise<QueueResult>;\n\tcancelQueued(entryId: string): Promise<CancelQueuedResult>;\n\trecordUsage(usage: Usage, options?: { entryId?: string; details?: JsonValue }): Promise<RecordUsageResult>;\n\twaitForIdle(): Promise<void>;\n\trunWhenIdle(callback: () => void | Promise<void>): Promise<void>;\n\tpeekAction(): Promise<ActionInfo | undefined>;\n\texecuteAction(): Promise<ActionInfo | undefined>;\n\trunToCompletion(): Promise<void>;\n\tgetModel(): Promise<Model<Api>>;\n\tsetModel(model: Model<Api>): Promise<void>;\n\tgetThinkingLevel(): Promise<ThinkingLevel>;\n\tsetThinkingLevel(level: ThinkingLevel): Promise<void>;\n\tgetActiveTools(): Promise<string[]>;\n\tsetActiveTools(names: string[]): Promise<void>;\n\treadonly session: SessionTree;\n\twatch(): Promise<WatchHandle<LaneSnapshot>>;\n}\n\nexport class AgentHarness implements AgentLane {\n\treadonly name = \"main\";\n\treadonly session: SessionTree;\n\treadonly hooks: Hooks;\n\treadonly events: Events;\n\tprivate readonly durableSession: Session;\n\tprivate model: Model<Api>;\n\tprivate thinkingLevel: ThinkingLevel;\n\tprivate activeToolNames: string[];\n\tprivate tools: HarnessTool[];\n\tprivate resources: Resources;\n\tprivate streamOptions: StreamOptions;\n\tprivate retryPolicy: RetryPolicy;\n\tprivate compactionSettings: CompactionSettings;\n\tprivate steeringMode: QueueMode;\n\tprivate followUpMode: QueueMode;\n\tprivate closed = false;\n\n\tprivate constructor(options: AgentHarnessOptions) {\n\t\tthis.durableSession = options.session;\n\t\tthis.session = options.session;\n\t\tthis.hooks = new UnavailableRegistry(\"hooks.on\", () => this.closed);\n\t\tthis.events = new UnavailableRegistry(\"events.on\", () => this.closed);\n\t\tthis.model = options.model;\n\t\tthis.thinkingLevel = options.thinkingLevel ?? \"off\";\n\t\tthis.activeToolNames = [...(options.activeToolNames ?? options.tools?.map((tool) => tool.name) ?? [])];\n\t\tthis.tools = [...(options.tools ?? [])];\n\t\tthis.resources = {\n\t\t\tskills: options.resources?.skills ? [...options.resources.skills] : undefined,\n\t\t\tpromptTemplates: options.resources?.promptTemplates ? [...options.resources.promptTemplates] : undefined,\n\t\t};\n\t\tthis.streamOptions = { ...(options.streamOptions ?? {}) };\n\t\tthis.retryPolicy = options.retry ?? { enabled: false, maxRetries: 0, baseDelayMs: 1000 };\n\t\tthis.compactionSettings = options.compaction ?? {\n\t\t\tenabled: true,\n\t\t\treserveTokens: 16384,\n\t\t\tkeepRecentTokens: 20000,\n\t\t};\n\t\tthis.steeringMode = options.steeringMode ?? \"one-at-a-time\";\n\t\tthis.followUpMode = options.followUpMode ?? \"one-at-a-time\";\n\t}\n\n\tstatic async create(\n\t\toptions: AgentHarnessOptions,\n\t): Promise<{ harness: AgentHarness; suspended: SuspendedOperation[] }> {\n\t\tconst [record] = await options.session.findRecords({ limit: 1 });\n\t\tif (record !== undefined) throw new HarnessNotImplemented(\"create.restore\");\n\t\treturn { harness: new AgentHarness(options), suspended: [] };\n\t}\n\n\tprivate unavailable<T>(operation: string): Promise<T> {\n\t\treturn Promise.reject(this.closed ? new HarnessClosed() : new HarnessNotImplemented(operation));\n\t}\n\n\tasync getLeafId(): Promise<string | null> {\n\t\treturn this.durableSession.getLeafId();\n\t}\n\n\tasync prompt(_text: string, _images?: ImageContent[]): Promise<RunResult>;\n\tasync prompt(_message: AgentMessage | AgentMessage[]): Promise<RunResult>;\n\tasync prompt(_input: string | AgentMessage | AgentMessage[], _images?: ImageContent[]): Promise<RunResult> {\n\t\treturn this.unavailable(\"prompt\");\n\t}\n\tasync skill(_name: string, _additionalInstructions?: string): Promise<RunResult> {\n\t\treturn this.unavailable(\"skill\");\n\t}\n\tasync promptFromTemplate(_name: string, _args?: string[]): Promise<RunResult> {\n\t\treturn this.unavailable(\"promptFromTemplate\");\n\t}\n\tasync compact(_options?: { customInstructions?: string }): Promise<CompactionResult> {\n\t\treturn this.unavailable(\"compact\");\n\t}\n\tasync navigateTree(_targetId: string | null, _options?: NavigateOptions): Promise<NavigationResult> {\n\t\treturn this.unavailable(\"navigateTree\");\n\t}\n\tasync resume(): Promise<ResumeResult> {\n\t\treturn this.unavailable(\"resume\");\n\t}\n\tasync abort(): Promise<AbortResult> {\n\t\treturn this.unavailable(\"abort\");\n\t}\n\tasync steer(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync steer(_message: AgentMessage): Promise<QueueResult>;\n\tasync steer(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"steer\");\n\t}\n\tasync followUp(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync followUp(_message: AgentMessage): Promise<QueueResult>;\n\tasync followUp(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"followUp\");\n\t}\n\tasync nextRun(_text: string, _images?: ImageContent[]): Promise<QueueResult>;\n\tasync nextRun(_message: AgentMessage): Promise<QueueResult>;\n\tasync nextRun(_input: string | AgentMessage, _images?: ImageContent[]): Promise<QueueResult> {\n\t\treturn this.unavailable(\"nextRun\");\n\t}\n\tasync cancelQueued(_entryId: string): Promise<CancelQueuedResult> {\n\t\treturn this.unavailable(\"cancelQueued\");\n\t}\n\tasync recordUsage(_usage: Usage, _options?: { entryId?: string; details?: JsonValue }): Promise<RecordUsageResult> {\n\t\treturn this.unavailable(\"recordUsage\");\n\t}\n\tasync waitForIdle(): Promise<void> {\n\t\treturn this.unavailable(\"waitForIdle\");\n\t}\n\tasync runWhenIdle(_callback: () => void | Promise<void>): Promise<void> {\n\t\treturn this.unavailable(\"runWhenIdle\");\n\t}\n\tasync peekAction(): Promise<ActionInfo | undefined> {\n\t\treturn this.unavailable(\"peekAction\");\n\t}\n\tasync executeAction(): Promise<ActionInfo | undefined> {\n\t\treturn this.unavailable(\"executeAction\");\n\t}\n\tasync runToCompletion(): Promise<void> {\n\t\treturn this.unavailable(\"runToCompletion\");\n\t}\n\tasync getModel(): Promise<Model<Api>> {\n\t\treturn this.model;\n\t}\n\tasync setModel(model: Model<Api>): Promise<void> {\n\t\tthis.model = model;\n\t}\n\tasync getThinkingLevel(): Promise<ThinkingLevel> {\n\t\treturn this.thinkingLevel;\n\t}\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tif (this.closed) throw new HarnessClosed();\n\t\tif (level === this.thinkingLevel) return;\n\t\tthis.thinkingLevel = level;\n\t\tif (\n\t\t\tthis.model.id !== \"gpt-6-astra\" ||\n\t\t\t(this.model.provider !== \"openai\" && this.model.provider !== \"openai-codex\")\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst leaf = await this.durableSession.getLeafId();\n\t\tconst latest = leaf === null ? undefined : await this.durableSession.findEntryOnBranch({ start: leaf });\n\t\tif (latest?.type === \"configuration_update\" && latest.reasoning.effort === level) return;\n\t\tawait this.durableSession.appendEntry(\n\t\t\t{\n\t\t\t\ttype: \"configuration_update\",\n\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\treasoning: { effort: level },\n\t\t\t},\n\t\t\t\"main\",\n\t\t);\n\t}\n\tasync getActiveTools(): Promise<string[]> {\n\t\treturn [...this.activeToolNames];\n\t}\n\tasync setActiveTools(names: string[]): Promise<void> {\n\t\tthis.activeToolNames = [...names];\n\t}\n\tasync watch(): Promise<WatchHandle<LaneSnapshot>> {\n\t\treturn this.unavailable(\"watch\");\n\t}\n\n\tasync lane(_name: string): Promise<AgentLane | undefined> {\n\t\treturn this.unavailable(\"lane\");\n\t}\n\tasync createLane(_name: string, _at: string | null): Promise<CreateLaneResult> {\n\t\treturn this.unavailable(\"createLane\");\n\t}\n\tasync lanes(): Promise<LaneInfo[]> {\n\t\treturn this.unavailable(\"lanes\");\n\t}\n\tasync getTools(): Promise<HarnessTool[]> {\n\t\treturn [...this.tools];\n\t}\n\tasync setTools(tools: HarnessTool[], activeNames?: string[]): Promise<void> {\n\t\tthis.tools = [...tools];\n\t\tthis.activeToolNames = [...(activeNames ?? tools.map((tool) => tool.name))];\n\t}\n\tasync getResources(): Promise<Resources> {\n\t\treturn {\n\t\t\tskills: this.resources.skills ? [...this.resources.skills] : undefined,\n\t\t\tpromptTemplates: this.resources.promptTemplates ? [...this.resources.promptTemplates] : undefined,\n\t\t};\n\t}\n\tasync setResources(resources: Resources): Promise<void> {\n\t\tthis.resources = {\n\t\t\tskills: resources.skills ? [...resources.skills] : undefined,\n\t\t\tpromptTemplates: resources.promptTemplates ? [...resources.promptTemplates] : undefined,\n\t\t};\n\t}\n\tasync getStreamOptions(): Promise<StreamOptions> {\n\t\treturn { ...this.streamOptions };\n\t}\n\tasync setStreamOptions(options: StreamOptions): Promise<void> {\n\t\tthis.streamOptions = { ...options };\n\t}\n\tasync getRetryPolicy(): Promise<RetryPolicy> {\n\t\treturn { ...this.retryPolicy };\n\t}\n\tasync setRetryPolicy(policy: RetryPolicy): Promise<void> {\n\t\tthis.retryPolicy = { ...policy };\n\t}\n\tasync getCompactionSettings(): Promise<CompactionSettings> {\n\t\treturn { ...this.compactionSettings };\n\t}\n\tasync setCompactionSettings(settings: CompactionSettings): Promise<void> {\n\t\tthis.compactionSettings = { ...settings };\n\t}\n\tasync getSteeringMode(): Promise<QueueMode> {\n\t\treturn this.steeringMode;\n\t}\n\tasync setSteeringMode(mode: QueueMode): Promise<void> {\n\t\tthis.steeringMode = mode;\n\t}\n\tasync getFollowUpMode(): Promise<QueueMode> {\n\t\treturn this.followUpMode;\n\t}\n\tasync setFollowUpMode(mode: QueueMode): Promise<void> {\n\t\tthis.followUpMode = mode;\n\t}\n\tasync watchSession(): Promise<WatchHandle<SessionSnapshot>> {\n\t\treturn this.unavailable(\"watchSession\");\n\t}\n\tasync close(): Promise<void> {\n\t\tthis.closed = true;\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-summarization.d.ts","sourceRoot":"","sources":["../../../src/harness/compaction/branch-summarization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAgB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAW,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAKN,KAAK,cAAc,EAGnB,MAAM,YAAY,CAAC;AAEpB,qFAAqF;AACrF,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACpC,wDAAwD;IACxD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,4DAA4D;IAC5D,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IACjC,gDAAgD;IAChD,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,iDAAiD;IACjD,OAAO,EAAE,cAAc,CAAC;IACxB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACpC,mDAAmD;IACnD,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,0EAA0E;IAC1E,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,+CAA+C;AAC/C,MAAM,WAAW,4BAA4B;IAC5C,wFAAwF;IACxF,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,kDAAkD;IAClD,MAAM,EAAE,WAAW,CAAC;IACpB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,qGAAqG;AACrG,wBAAsB,8BAA8B,CACnD,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC,CAyB/B;
|
|
1
|
+
{"version":3,"file":"branch-summarization.d.ts","sourceRoot":"","sources":["../../../src/harness/compaction/branch-summarization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAgB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAW,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAKN,KAAK,cAAc,EAGnB,MAAM,YAAY,CAAC;AAEpB,qFAAqF;AACrF,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACpC,wDAAwD;IACxD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,4DAA4D;IAC5D,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IACjC,gDAAgD;IAChD,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,iDAAiD;IACjD,OAAO,EAAE,cAAc,CAAC;IACxB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACpC,mDAAmD;IACnD,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,0EAA0E;IAC1E,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,+CAA+C;AAC/C,MAAM,WAAW,4BAA4B;IAC5C,wFAAwF;IACxF,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,kDAAkD;IAClD,MAAM,EAAE,WAAW,CAAC;IACpB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,qGAAqG;AACrG,wBAAsB,8BAA8B,CACnD,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC,CAyB/B;AAqBD,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,WAAW,GAAE,MAAU,GAAG,iBAAiB,CAuCjG;AAoCD,uDAAuD;AACvD,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,KAAK,EAAE,EAChB,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAqE1D"}
|
|
@@ -40,6 +40,7 @@ function getMessageFromEntry(entry) {
|
|
|
40
40
|
case "compaction":
|
|
41
41
|
return createCompactionSummaryMessage(entry.summary, entry.tokensBefore, entry.timestamp);
|
|
42
42
|
case "thinking_level_change":
|
|
43
|
+
case "configuration_update":
|
|
43
44
|
case "model_change":
|
|
44
45
|
case "active_tools_change":
|
|
45
46
|
case "custom":
|