@bastani/atomic 0.9.45 → 0.9.46

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.
Files changed (214) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/dist/builtin/intercom/CHANGELOG.md +22 -0
  3. package/dist/builtin/intercom/broker/broker.ts +124 -10
  4. package/dist/builtin/intercom/broker/client.ts +177 -25
  5. package/dist/builtin/intercom/broker/multinode-router.ts +228 -27
  6. package/dist/builtin/intercom/broker/multinode-state-store.ts +10 -0
  7. package/dist/builtin/intercom/broker/recipient-receipts.ts +38 -4
  8. package/dist/builtin/intercom/broker/send-handler.ts +9 -2
  9. package/dist/builtin/intercom/broker/sql-outbox-store.ts +29 -4
  10. package/dist/builtin/intercom/group.ts +25 -0
  11. package/dist/builtin/intercom/index.bundle.mjs +177 -35
  12. package/dist/builtin/intercom/package.json +1 -1
  13. package/dist/builtin/intercom/retry-policy.ts +7 -0
  14. package/dist/builtin/intercom/types.ts +21 -0
  15. package/dist/builtin/mcp/package.json +1 -1
  16. package/dist/builtin/subagents/CHANGELOG.md +21 -0
  17. package/dist/builtin/subagents/package.json +1 -1
  18. package/dist/builtin/subagents/src/extension/index.bundle.mjs +152 -56
  19. package/dist/builtin/web-access/package.json +1 -1
  20. package/dist/builtin/workflows/CHANGELOG.md +79 -0
  21. package/dist/builtin/workflows/builtin/{chunk-6901nsd6.js → chunk-6jpwc09k.js} +1 -1
  22. package/dist/builtin/workflows/builtin/{chunk-vwx023ge.js → chunk-qhm35ntx.js} +1 -1
  23. package/dist/builtin/workflows/builtin/{chunk-jvna28mq.js → chunk-zhyqnf5g.js} +331 -68
  24. package/dist/builtin/workflows/builtin/goal.js +2 -2
  25. package/dist/builtin/workflows/builtin/index.js +3 -3
  26. package/dist/builtin/workflows/builtin/ralph.js +2 -2
  27. package/dist/builtin/workflows/package.json +1 -1
  28. package/dist/builtin/workflows/skills/prompt-engineer/SKILL.md +1 -0
  29. package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_6.md +2 -2
  30. package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_6_1_sol.md +2 -2
  31. package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_6_1_terra.md +77 -0
  32. package/dist/builtin/workflows/src/authoring.d.ts +1 -1
  33. package/dist/builtin/workflows/src/durable/journal/internal.d.ts +2 -0
  34. package/dist/builtin/workflows/src/extension/index.bundle.mjs +7104 -3387
  35. package/dist/builtin/workflows/src/extension/local-worker-entry.mjs +11105 -7264
  36. package/dist/builtin/workflows/src/index.js +6796 -3606
  37. package/dist/builtin/workflows/src/local-worker-entry.mjs +11105 -7264
  38. package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +19 -0
  39. package/dist/core/agent-session-boundaries.d.ts.map +1 -1
  40. package/dist/core/agent-session-boundaries.js +1 -0
  41. package/dist/core/agent-session-boundaries.js.map +1 -1
  42. package/dist/core/agent-session-events.d.ts.map +1 -1
  43. package/dist/core/agent-session-events.js +2 -1
  44. package/dist/core/agent-session-events.js.map +1 -1
  45. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  46. package/dist/core/agent-session-extension-bindings.js +15 -2
  47. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  48. package/dist/core/agent-session-methods.d.ts +3 -2
  49. package/dist/core/agent-session-methods.d.ts.map +1 -1
  50. package/dist/core/agent-session-methods.js.map +1 -1
  51. package/dist/core/agent-session-prompt.d.ts +4 -2
  52. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  53. package/dist/core/agent-session-prompt.js +13 -8
  54. package/dist/core/agent-session-prompt.js.map +1 -1
  55. package/dist/core/agent-session-recovery.d.ts.map +1 -1
  56. package/dist/core/agent-session-recovery.js +92 -1
  57. package/dist/core/agent-session-recovery.js.map +1 -1
  58. package/dist/core/agent-session-tasks.d.ts.map +1 -1
  59. package/dist/core/agent-session-tasks.js +8 -1
  60. package/dist/core/agent-session-tasks.js.map +1 -1
  61. package/dist/core/agent-session-transfer.d.ts.map +1 -1
  62. package/dist/core/agent-session-transfer.js +5 -0
  63. package/dist/core/agent-session-transfer.js.map +1 -1
  64. package/dist/core/agent-session.d.ts +2 -0
  65. package/dist/core/agent-session.d.ts.map +1 -1
  66. package/dist/core/agent-session.js +2 -0
  67. package/dist/core/agent-session.js.map +1 -1
  68. package/dist/core/copilot-errors.d.ts +6 -0
  69. package/dist/core/copilot-errors.d.ts.map +1 -0
  70. package/dist/core/copilot-errors.js +17 -0
  71. package/dist/core/copilot-errors.js.map +1 -0
  72. package/dist/core/execution-model-router.d.ts.map +1 -1
  73. package/dist/core/execution-model-router.js +12 -2
  74. package/dist/core/execution-model-router.js.map +1 -1
  75. package/dist/core/extensions/context-types.d.ts +7 -0
  76. package/dist/core/extensions/context-types.d.ts.map +1 -1
  77. package/dist/core/extensions/context-types.js.map +1 -1
  78. package/dist/core/extensions/runner-context.d.ts.map +1 -1
  79. package/dist/core/extensions/runner-context.js +6 -0
  80. package/dist/core/extensions/runner-context.js.map +1 -1
  81. package/dist/core/extensions/ui-types.d.ts +9 -1
  82. package/dist/core/extensions/ui-types.d.ts.map +1 -1
  83. package/dist/core/extensions/ui-types.js.map +1 -1
  84. package/dist/core/extensions/workflow-activity-hub.d.ts +4 -0
  85. package/dist/core/extensions/workflow-activity-hub.d.ts.map +1 -1
  86. package/dist/core/extensions/workflow-activity-hub.js +26 -5
  87. package/dist/core/extensions/workflow-activity-hub.js.map +1 -1
  88. package/dist/core/extensions/workflow-events.d.ts +5 -0
  89. package/dist/core/extensions/workflow-events.d.ts.map +1 -1
  90. package/dist/core/extensions/workflow-events.js.map +1 -1
  91. package/dist/core/messages.d.ts +5 -0
  92. package/dist/core/messages.d.ts.map +1 -1
  93. package/dist/core/messages.js +1 -1
  94. package/dist/core/messages.js.map +1 -1
  95. package/dist/core/model-fallback-failures.d.ts +1 -1
  96. package/dist/core/model-fallback-failures.d.ts.map +1 -1
  97. package/dist/core/model-fallback-failures.js +37 -3
  98. package/dist/core/model-fallback-failures.js.map +1 -1
  99. package/dist/core/model-resolver-defaults.js +2 -2
  100. package/dist/core/model-resolver-defaults.js.map +1 -1
  101. package/dist/core/model-runtime-streaming.js +2 -2
  102. package/dist/core/model-runtime-streaming.js.map +1 -1
  103. package/dist/core/package-manager-npm.d.ts.map +1 -1
  104. package/dist/core/package-manager-npm.js +7 -3
  105. package/dist/core/package-manager-npm.js.map +1 -1
  106. package/dist/core/provider-composer.d.ts.map +1 -1
  107. package/dist/core/provider-composer.js +19 -11
  108. package/dist/core/provider-composer.js.map +1 -1
  109. package/dist/core/provider-rate-limits.d.ts +55 -6
  110. package/dist/core/provider-rate-limits.d.ts.map +1 -1
  111. package/dist/core/provider-rate-limits.js +182 -29
  112. package/dist/core/provider-rate-limits.js.map +1 -1
  113. package/dist/core/provider-request-admission.d.ts.map +1 -1
  114. package/dist/core/provider-request-admission.js +42 -18
  115. package/dist/core/provider-request-admission.js.map +1 -1
  116. package/dist/core/storage/node-sqlite.d.ts.map +1 -1
  117. package/dist/core/storage/node-sqlite.js +176 -19
  118. package/dist/core/storage/node-sqlite.js.map +1 -1
  119. package/dist/core/storage/provider.d.ts +4 -2
  120. package/dist/core/storage/provider.d.ts.map +1 -1
  121. package/dist/core/storage/provider.js +94 -5
  122. package/dist/core/storage/provider.js.map +1 -1
  123. package/dist/core/structured-output/index.d.ts.map +1 -1
  124. package/dist/core/structured-output/index.js +15 -8
  125. package/dist/core/structured-output/index.js.map +1 -1
  126. package/dist/core/structured-output/provider-failure.d.ts +17 -0
  127. package/dist/core/structured-output/provider-failure.d.ts.map +1 -0
  128. package/dist/core/structured-output/provider-failure.js +28 -0
  129. package/dist/core/structured-output/provider-failure.js.map +1 -0
  130. package/dist/core/tasks/completion.d.ts +6 -1
  131. package/dist/core/tasks/completion.d.ts.map +1 -1
  132. package/dist/core/tasks/completion.js +33 -18
  133. package/dist/core/tasks/completion.js.map +1 -1
  134. package/dist/core/tasks/pause.d.ts +2 -1
  135. package/dist/core/tasks/pause.d.ts.map +1 -1
  136. package/dist/core/tasks/pause.js +3 -2
  137. package/dist/core/tasks/pause.js.map +1 -1
  138. package/dist/core/tools/bash.d.ts.map +1 -1
  139. package/dist/core/tools/bash.js +13 -7
  140. package/dist/core/tools/bash.js.map +1 -1
  141. package/dist/core/tools/grep.d.ts.map +1 -1
  142. package/dist/core/tools/grep.js +6 -4
  143. package/dist/core/tools/grep.js.map +1 -1
  144. package/dist/core/tools/shell-task-render.d.ts +1 -0
  145. package/dist/core/tools/shell-task-render.d.ts.map +1 -1
  146. package/dist/core/tools/shell-task-render.js +7 -2
  147. package/dist/core/tools/shell-task-render.js.map +1 -1
  148. package/dist/core/tools/shell-task-status.d.ts.map +1 -1
  149. package/dist/core/tools/shell-task-status.js +2 -1
  150. package/dist/core/tools/shell-task-status.js.map +1 -1
  151. package/dist/extensions/tool-search/tool.d.ts +5 -0
  152. package/dist/extensions/tool-search/tool.d.ts.map +1 -1
  153. package/dist/extensions/tool-search/tool.js +38 -5
  154. package/dist/extensions/tool-search/tool.js.map +1 -1
  155. package/dist/index.d.ts +1 -1
  156. package/dist/index.d.ts.map +1 -1
  157. package/dist/index.js +1 -1
  158. package/dist/index.js.map +1 -1
  159. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  160. package/dist/modes/interactive/components/assistant-message.js +20 -12
  161. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  162. package/dist/modes/interactive/components/chat-session-host-actions.js +3 -2
  163. package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
  164. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  165. package/dist/modes/interactive/components/login-dialog.js +42 -14
  166. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  167. package/dist/modes/interactive/interactive-extension-context.js +2 -1
  168. package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
  169. package/dist/modes/interactive/interactive-extension-custom-ui.js +1 -1
  170. package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
  171. package/dist/modes/interactive/interactive-extension-dialogs.js +10 -4
  172. package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
  173. package/dist/modes/interactive/interactive-mode-surface.d.ts +1 -0
  174. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  175. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  176. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  177. package/dist/modes/interactive/interactive-startup.js +5 -6
  178. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  179. package/dist/modes/interactive-engine/engine-custom-ui.d.ts +3 -0
  180. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
  181. package/dist/modes/interactive-engine/engine-custom-ui.js +1 -0
  182. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  183. package/dist/modes/interactive-engine/protocol.d.ts +6 -0
  184. package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
  185. package/dist/modes/interactive-engine/protocol.js +9 -0
  186. package/dist/modes/interactive-engine/protocol.js.map +1 -1
  187. package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -1
  188. package/dist/modes/interactive-engine/remote-component.js +3 -2
  189. package/dist/modes/interactive-engine/remote-component.js.map +1 -1
  190. package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
  191. package/dist/modes/rpc/rpc-client-process.js +8 -1
  192. package/dist/modes/rpc/rpc-client-process.js.map +1 -1
  193. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  194. package/dist/modes/rpc/rpc-client.js +7 -1
  195. package/dist/modes/rpc/rpc-client.js.map +1 -1
  196. package/dist/utils/ansi.d.ts +2 -0
  197. package/dist/utils/ansi.d.ts.map +1 -1
  198. package/dist/utils/ansi.js +5 -0
  199. package/dist/utils/ansi.js.map +1 -1
  200. package/docs/codemode.md +1 -1
  201. package/docs/intercom/reference.md +3 -3
  202. package/docs/llama-cpp.md +25 -14
  203. package/docs/models/evals.md +31 -12
  204. package/docs/models/reference.md +23 -51
  205. package/docs/models.md +3 -4
  206. package/docs/providers.md +5 -15
  207. package/docs/settings.md +1 -1
  208. package/docs/storage.md +2 -2
  209. package/docs/tools.md +1 -1
  210. package/docs/tui.md +2 -0
  211. package/docs/workflows/api-reference.md +20 -1
  212. package/docs/workflows/operations.md +17 -4
  213. package/npm-shrinkwrap.json +64 -44
  214. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-methods.js","sourceRoot":"","sources":["../../src/core/agent-session-methods.ts"],"names":[],"mappings":"","sourcesContent":["import type { ProviderHeaders } from \"@bastani/pi-ai\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tImageContent,\n\tMessage,\n\tModel,\n\tTextContent,\n\tToolResultMessage,\n} from \"@bastani/pi-ai/compat\";\nimport type {\n\tAgent,\n\tAgentEvent,\n\tAgentMessage,\n\tAgentState,\n\tAgentTool,\n\tThinkingLevel,\n} from \"@earendil-works/pi-agent-core\";\nimport type { PendingPostToolCompactionGuard } from \"./agent-session-post-tool-compaction.ts\";\nimport type { RecordedToolLoadout } from \"./agent-session-state.ts\";\nimport type {\n\tAgentSessionEvent,\n\tAgentSessionEventListener,\n\tAgentSessionReloadOptions,\n\tClearQueueOptions,\n\tDrainedAgentQueues,\n\tExtensionBindings,\n\tInterruptQueueHold,\n\tModelCycleResult,\n\tModelMutationOptions,\n\tPromptDisposition,\n\tPromptOptions,\n\tQueuedInputDisposition,\n\tSessionRecoveryReport,\n\tSessionStats,\n\tToolDefinitionEntry,\n} from \"./agent-session-types.js\";\nimport type { BashResult } from \"./bash-executor.ts\";\nimport type {\n\tCompactionUrgency,\n\tPlannerAuth,\n\tVerbatimCompactionParameters,\n\tVerbatimCompactionResult,\n} from \"./compaction/index.ts\";\nimport type {\n\tAgentActivityOutcome,\n\tBoundaryContextPreview,\n\tContextUsage,\n\tExtensionCommandContextActions,\n\tExtensionErrorListener,\n\tExtensionMode,\n\tExtensionRunner,\n\tExtensionUIContext,\n\tOrchestrationContext,\n\tReplacedSessionContext,\n\tSendMessageOptions,\n\tSendMessagesOptions,\n\tSessionBoundaryDraft,\n\tSessionRecoveryReason,\n\tSessionStartEvent,\n\tToolDefinition,\n\tToolInfo,\n} from \"./extensions/index.js\";\nimport type { SessionWorkflows } from \"./extensions/workflow-run-control.js\";\nimport type { SessionWorkflowsHandle } from \"./extensions/workflow-run-control-hub.js\";\nimport type { BashExecutionMessage, CustomMessage } from \"./messages.ts\";\nimport type { ExtensionProviderTransaction, ModelRuntime } from \"./model-runtime.js\";\nimport type { PathMetadata } from \"./package-manager.ts\";\nimport type { PromptTemplate } from \"./prompt-templates.ts\";\nimport type { ResourceLoader } from \"./resource-loader.ts\";\nimport type { BranchSummaryEntry, SessionEntry, SessionManager, SessionSummaryEntry } from \"./session-manager.ts\";\nimport type { SettingsManager } from \"./settings-manager.ts\";\nimport type { NormalizedBuildSystemPromptOptions } from \"./system-prompt.ts\";\nimport type { ToolStatusReport } from \"./tool-status.js\";\nimport type { BashOperations } from \"./tools/bash.js\";\nimport type { ToolExecutionScheduler } from \"./tools/tool-concurrency.ts\";\n\nexport interface SessionCompactOptions extends Partial<VerbatimCompactionParameters> {\n\t/** Exact `provider/model` ID for this run only; overrides the `compactionModel` setting without saving it. */\n\tcompactionModel?: string;\n}\n\nexport interface VerbatimCompactionApplyOptions {\n\t/** Per-model planner credentials; a borrowed fallback uses its own, never the session model's. */\n\tresolvePlannerAuth: (model: Model<Api>) => Promise<PlannerAuth | undefined>;\n\tabortController: AbortController;\n\tbackupLabel: string;\n\tcompression_ratio?: number;\n\tpreserve_recent?: number;\n\tquery?: string;\n\tcompactionModel?: string;\n\treason: \"manual\" | \"threshold\" | \"overflow\";\n\t/** Reports when a session_before_compact override becomes the active compaction source. */\n\tonCompactionSource?: (fromExtension: boolean) => void;\n\t/** Only `load_bearing` may reach the context-destroying fresh rung. */\n\turgency: CompactionUrgency;\n\t/**\n\t * Admit a compactable region below the planner minimum.\n\t *\n\t * Narrow on purpose. Overflow recovery sets it because a real provider\n\t * overflow is already known, and the post-tool preflight sets it only when its\n\t * projected context is genuinely over the provider hard input limit. A\n\t * threshold crossing that still fits must not clear context: the follow-up\n\t * request can be sent as-is.\n\t */\n\tallowSmallRegion?: boolean;\n}\n\n/** Outcome of an automatic compaction admission and persistence attempt. */\nexport type AutoCompactionRunOutcome = \"compacted\" | \"not_compactable\" | \"deferred\" | \"failed\";\n\nexport interface ExtensionResourcePathEntry {\n\tpath: string;\n\textensionPath: string;\n}\n\nexport interface ExtensionResourcePathResult {\n\tpath: string;\n\tmetadata: PathMetadata;\n}\n\nexport interface RuntimeBuildOptions {\n\tactiveToolNames?: string[];\n\tflagValues?: Map<string, boolean | string>;\n\tincludeAllExtensionTools?: boolean;\n\tpreserveRunner?: boolean;\n}\n\nexport interface AgentSessionQueuePauseControl {\n\treadonly queuedMessagesPaused: boolean;\n\tpauseQueuedMessages(): void;\n\t/** Release the hold without starting a turn; true means raw queued work was released. */\n\tresumeQueuedMessages(beforeRelease?: () => void): Promise<boolean>;\n}\n\nexport interface AgentSessionMethodSurface extends AgentSessionQueuePauseControl {\n\treadonly orchestrationContext: import(\"./extensions/index.js\").OrchestrationContext | undefined;\n\treadonly modelRuntime: ModelRuntime;\n\treadonly state: AgentState;\n\treadonly model: Model<Api> | undefined;\n\treadonly thinkingLevel: ThinkingLevel;\n\treadonly isStreaming: boolean;\n\treadonly systemPrompt: string;\n\treadonly retryAttempt: number;\n\treadonly isCompacting: boolean;\n\treadonly compactionReason?: import(\"./agent-session-types.js\").CompactionReason;\n\treadonly messages: AgentMessage[];\n\treadonly steeringMode: \"all\" | \"one-at-a-time\";\n\treadonly followUpMode: \"all\" | \"one-at-a-time\";\n\treadonly sessionFile: string | undefined;\n\treadonly sessionId: string;\n\treadonly sessionName: string | undefined;\n\treadonly sessionSummary: SessionSummaryEntry | undefined;\n\treadonly scopedModels: ReadonlyArray<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>;\n\treadonly promptTemplates: ReadonlyArray<PromptTemplate>;\n\treadonly pendingMessageCount: number;\n\treadonly resourceLoader: ResourceLoader;\n\treadonly autoCompactionEnabled: boolean;\n\treadonly isRetrying: boolean;\n\treadonly autoRetryEnabled: boolean;\n\treadonly isBashRunning: boolean;\n\treadonly hasPendingBashMessages: boolean;\n\treadonly extensionRunner: ExtensionRunner;\n\t/** Typed management of the workflow runs this session owns. */\n\treadonly workflows: SessionWorkflows;\n\n\t_handleAgentEvent(event: AgentEvent): Promise<void> | void;\n\t_getRequiredRequestAuth(\n\t\tmodel: Model<Api>,\n\t\tsignal?: AbortSignal,\n\t): Promise<{ apiKey?: string; headers?: ProviderHeaders; baseUrl?: string }>;\n\t_installAgentToolHooks(): void;\n\t_installAgentNextTurnRefresh(): void;\n\t_installAgentRequestProjection(): void;\n\t_installAgentBoundaryHooks(): void;\n\t_refreshFinalizedContext(): void;\n\t_projectFinalizedMessages(): AgentMessage[];\n\trefreshContext(): void;\n\t_dispatchTurnEndBoundary(\n\t\tmessage: AssistantMessage,\n\t\ttoolResults: ToolResultMessage[],\n\t\tawaitPersistence?: boolean,\n\t): Promise<boolean>;\n\t_applyBoundaryDrafts(manager: SessionManager, drafts: SessionBoundaryDraft[]): Promise<SessionEntry[]>;\n\t_createBoundaryPreviewManager(drafts: SessionBoundaryDraft[]): Promise<SessionManager>;\n\t_getPendingBoundaryMessages(): AgentMessage[];\n\t_buildBoundaryContext(\n\t\tdrafts: SessionBoundaryDraft[],\n\t\tboundary: \"turn_end\" | \"agent_before_settle\",\n\t): Promise<BoundaryContextPreview>;\n\t_commitBoundaryDrafts(drafts: SessionBoundaryDraft[]): Promise<void>;\n\t_reportInvalidBoundaryContinuation(event: \"turn_end\" | \"agent_before_settle\"): void;\n\t_findPersistedMessageEntryId(message: AgentMessage): string | undefined;\n\t_omitRecoveryAttempt(message: AssistantMessage, toolResults?: AgentMessage[]): Promise<void>;\n\t_omitTrailingAssistantAttempt(accept?: (message: AssistantMessage) => boolean): Promise<boolean>;\n\t_runBeforeSettleBoundary(): Promise<boolean>;\n\t_emit(event: AgentSessionEvent): void;\n\t_emitQueueUpdate(): void;\n\t_createRetryPromiseForAgentEnd(event: AgentEvent): void;\n\t_findLastAssistantInMessages(messages: AgentMessage[]): AssistantMessage | undefined;\n\t_processAgentEvent(event: AgentEvent): Promise<void>;\n\t_applyInterruptAbortMessage(event: AgentEvent): void;\n\t_applyProviderErrorGuidance(event: AgentEvent): void;\n\t_resolveRetry(): void;\n\t_getUserMessageText(message: Message): string;\n\t_findLastAssistantMessage(): AssistantMessage | undefined;\n\t_replaceMessageInPlace(target: AgentMessage, replacement: AgentMessage): void;\n\t_emitExtensionEvent(event: AgentEvent): Promise<void>;\n\tsubscribe(listener: AgentSessionEventListener): () => void;\n\t_disconnectFromAgent(): void;\n\tdispose(): Promise<void>;\n\tgetAgentTaskHost(): import(\"./tasks/agent-adapter.js\").AgentTaskHost;\n\t_getCommandTaskOwner(): import(\"./tools/bash-pty-native.js\").SupervisedCommandOwner | undefined;\n\tcloseSessionTasks(): Promise<void>;\n\t/** Internal workflow pause: cancel owned execution without closing message admission. */\n\tpauseTasks(): Promise<void>;\n\tresumeTasks(): void;\n\n\tgetActiveToolNames(): string[];\n\tgetCallableToolNames(): string[];\n\tgetAllTools(): ToolInfo[];\n\tgetToolDefinition(name: string): ToolDefinition | undefined;\n\t/** Explain which tools are active, which are not (and why), and which selected names nothing registered. */\n\tgetToolStatus(): ToolStatusReport;\n\tsetActiveToolsByName(toolNames: string[]): void;\n\t_setActiveTools(toolNames: string[]): void;\n\tsetScopedModels(scopedModels: Array<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>): void;\n\t_normalizePromptSnippet(text: string | undefined): string | undefined;\n\t_normalizePromptGuidelines(guidelines: string[] | undefined): string[];\n\t_rebuildSystemPrompt(toolNames: string[]): void;\n\t_preparePromptAndToolLoadout(\n\t\toptions: NormalizedBuildSystemPromptOptions,\n\t\tmessages?: AgentMessage[],\n\t): import(\"@bastani/pi-ai\").SystemMessage | undefined;\n\t_restoreToolsFromTranscript(options?: { startup?: boolean }): void;\n\t_refreshBaseSystemPromptFromActiveTools(): void;\n\n\tprompt(text: string, options?: PromptOptions): Promise<void>;\n\t_runAgentPrompt(\n\t\tmessages: AgentMessage | AgentMessage[],\n\t\tpromptStarted?: () => void,\n\t\treportDispatch?: (disposition: PromptDisposition) => void,\n\t\tprepared?: boolean,\n\t\tcustomStarter?: CustomMessage,\n\t): Promise<void>;\n\t_runAgentContinue(): Promise<void>;\n\t_continueQueuedAgentMessages(): Promise<void>;\n\t_tryExecuteExtensionCommand(text: string): Promise<boolean>;\n\t_expandSkillCommand(text: string): string;\n\tsteer(\n\t\ttext: string,\n\t\timages?: ImageContent[],\n\t\toptions?: Pick<PromptOptions, \"source\">,\n\t): Promise<QueuedInputDisposition>;\n\tfollowUp(\n\t\ttext: string,\n\t\timages?: ImageContent[],\n\t\toptions?: Pick<PromptOptions, \"source\">,\n\t): Promise<QueuedInputDisposition>;\n\tsendUserMessage(\n\t\tcontent: string | (TextContent | ImageContent)[],\n\t\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n\t): Promise<void>;\n\n\t_queueSteer(text: string, images?: ImageContent[]): Promise<void>;\n\t_queueFollowUp(text: string, images?: ImageContent[]): Promise<void>;\n\t_throwIfExtensionCommand(text: string): void;\n\tsendCustomMessage<T = unknown>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): Promise<void>;\n\tsendCustomMessages<T = unknown>(\n\t\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\t\toptions?: SendMessagesOptions,\n\t): Promise<void>;\n\t_commitAdmittedCustomMessage<T>(message: CustomMessage<T>, options?: SendMessageOptions): Promise<void>;\n\t_commitAdmittedCustomMessages<T>(messages: CustomMessage<T>[], options?: SendMessagesOptions): Promise<void>;\n\t_appendCustomMessage<T>(message: CustomMessage<T>): Promise<void>;\n\t_flushPendingCustomMessages(): Promise<void>;\n\t_enqueueInterruptCustomMessage<T>(message: CustomMessage<T>, options?: SendMessageOptions): Promise<void>;\n\t_sendInterruptCustomMessageNow<T>(message: CustomMessage<T>, options?: SendMessageOptions): Promise<void>;\n\t_ensureActiveInterruptQueueHold(): InterruptQueueHold;\n\t_restoreAndClearActiveInterruptQueueHold(): void;\n\t_queueAgentMessage(message: AgentMessage, delivery: \"steer\" | \"followUp\" | \"interrupt\"): void;\n\t_drainQueuedAgentMessages(): DrainedAgentQueues;\n\t_restoreQueuedAgentMessages(queues: DrainedAgentQueues): void;\n\tclearQueue(options?: ClearQueueOptions): { steering: string[]; followUp: string[] };\n\tgetSteeringMessages(): readonly string[];\n\tgetFollowUpMessages(): readonly string[];\n\tabort(): Promise<void>;\n\tsetSteeringMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tsetFollowUpMode(mode: \"all\" | \"one-at-a-time\"): void;\n\n\t_emitModelChanged(\n\t\tnextModel: Model<Api>,\n\t\tpreviousModel: Model<Api> | undefined,\n\t\tsource: \"set\" | \"cycle\" | \"restore\" | \"fallback\",\n\t): void;\n\t_emitModelSelect(\n\t\tnextModel: Model<Api>,\n\t\tpreviousModel: Model<Api> | undefined,\n\t\tsource: \"set\" | \"cycle\" | \"restore\" | \"fallback\",\n\t): Promise<void>;\n\tsetModel(model: Model<Api>, options?: ModelMutationOptions): Promise<void>;\n\tcycleModel(\n\t\tdirection?: \"forward\" | \"backward\",\n\t\toptions?: ModelMutationOptions,\n\t): Promise<ModelCycleResult | undefined>;\n\t_cycleScopedModel(\n\t\tdirection: \"forward\" | \"backward\",\n\t\toptions: ModelMutationOptions,\n\t): Promise<ModelCycleResult | undefined>;\n\t_cycleAvailableModel(\n\t\tdirection: \"forward\" | \"backward\",\n\t\toptions: ModelMutationOptions,\n\t): Promise<ModelCycleResult | undefined>;\n\tsetThinkingLevel(level: ThinkingLevel, options?: ModelMutationOptions): Promise<void>;\n\tcycleThinkingLevel(options?: ModelMutationOptions): Promise<ThinkingLevel | undefined>;\n\tgetAvailableThinkingLevels(): ThinkingLevel[];\n\tsupportsThinking(): boolean;\n\t_getThinkingLevelForModelSwitch(targetModel?: Model<Api>, explicitLevel?: ThinkingLevel): ThinkingLevel;\n\t_clampThinkingLevel(level: ThinkingLevel, availableLevels: ThinkingLevel[]): ThinkingLevel;\n\n\t_applyVerbatimCompaction(options: VerbatimCompactionApplyOptions): Promise<VerbatimCompactionResult | undefined>;\n\tcompact(options?: SessionCompactOptions): Promise<VerbatimCompactionResult>;\n\tabortCompaction(): void;\n\tabortBranchSummary(): void;\n\tabortSessionSummary(): void;\n\t_maybeGenerateSessionSummary(): Promise<void>;\n\t_checkCompaction(assistantMessage: AssistantMessage, skipAbortedCheck?: boolean): Promise<void>;\n\t_dropTrailingAutoCompactionRetryAssistantIfPresent(): void;\n\t_schedulePostAutoCompactionContinuationProbe(reason: \"overflow\" | \"threshold\", willRetry: boolean): void;\n\t_awaitPendingPostCompactionContinuation(): Promise<void>;\n\t_resumeAfterAutoCompaction(): Promise<void>;\n\t_resumeAfterLengthTruncation(): void;\n\t_runAutoCompaction(\n\t\treason: \"overflow\" | \"threshold\",\n\t\twillRetry: boolean,\n\t\turgency?: CompactionUrgency,\n\t): Promise<AutoCompactionRunOutcome>;\n\t_preflightPostToolContext(messages: AgentMessage[], signal?: AbortSignal): Promise<AgentMessage[]>;\n\t_finishPostToolCompactionPreflight(messages: AgentMessage[]): AgentMessage[];\n\tsetAutoCompactionEnabled(enabled: boolean): void;\n\n\tbindExtensions(bindings: ExtensionBindings): Promise<void>;\n\tstartPendingRecovery(reason?: SessionRecoveryReason): Promise<SessionRecoveryReport>;\n\t_waitForExtensionStart(): Promise<void>;\n\textendResourcesFromExtensions(reason: \"startup\" | \"reload\"): Promise<void>;\n\tbuildExtensionResourcePaths(entries: ExtensionResourcePathEntry[]): ExtensionResourcePathResult[];\n\tgetExtensionSourceLabel(extensionPath: string): string;\n\t_applyExtensionBindings(runner: ExtensionRunner): void;\n\t_refreshCurrentModelFromRegistry(): Promise<void>;\n\trefreshCurrentModelFromRegistry(): Promise<void>;\n\t_bindExtensionCore(\n\t\trunner: ExtensionRunner,\n\t\tpublication?: {\n\t\t\tresourceLoader: ResourceLoader;\n\t\t\tproviderTransaction: ExtensionProviderTransaction;\n\t\t\tproviderIds: Set<string>;\n\t\t\tdefer(effect: () => void | Promise<void>): void;\n\t\t},\n\t\tstartupToolNames?: readonly string[],\n\t\tstartupLoadout?: RecordedToolLoadout,\n\t): void;\n\t_refreshToolRegistry(options?: { activeToolNames?: string[]; includeAllExtensionTools?: boolean }): void;\n\t_buildRuntime(options: RuntimeBuildOptions): void;\n\treload(options?: AgentSessionReloadOptions): Promise<void>;\n\tcompleteStartupResources(resourceLoader: ResourceLoader): Promise<void>;\n\n\t_isRetryableError(message: AssistantMessage): boolean;\n\t_isFallbackableError(message: AssistantMessage): boolean;\n\t_isEmptyCompletion(message: AssistantMessage): boolean;\n\t_isSafetyRefusal(message: AssistantMessage): boolean;\n\t_handleRetryableError(message: AssistantMessage): Promise<boolean>;\n\t_trySwitchToFallbackModel(message: AssistantMessage): Promise<boolean>;\n\t_beginFallbackModelScope(): void;\n\t_clearFallbackModelScope(): void;\n\t_settleFallbackModelScope(): Promise<boolean>;\n\tabortRetry(): void;\n\twaitForRetry(): Promise<void>;\n\tsetAutoRetryEnabled(enabled: boolean): void;\n\n\texecuteBash(\n\t\tcommand: string,\n\t\tonChunk?: (chunk: string, channel: \"stdout\" | \"stderr\") => void,\n\t\toptions?: {\n\t\t\texcludeFromContext?: boolean;\n\t\t\tid?: string;\n\t\t\toperations?: BashOperations;\n\t\t\tpty?: boolean;\n\t\t\temitEvent?: boolean;\n\t\t\trecordResult?: boolean;\n\t\t},\n\t): Promise<BashResult>;\n\trecordBashResult(\n\t\tcommand: string,\n\t\tresult: BashResult,\n\t\toptions?: { excludeFromContext?: boolean; persist?: boolean; defer?: boolean },\n\t): Promise<void>;\n\tabortBash(id?: string): void;\n\t_flushPendingBashMessages(): Promise<void>;\n\n\tsetSessionName(name: string): Promise<void>;\n\tnavigateTree(\n\t\ttargetId: string,\n\t\toptions?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string },\n\t): Promise<{ editorText?: string; cancelled: boolean; aborted?: boolean; summaryEntry?: BranchSummaryEntry }>;\n\tgetUserMessagesForForking(): Array<{ entryId: string; text: string }>;\n\t_extractUserMessageText(content: string | Array<{ type: string; text?: string }>): string;\n\n\tgetSessionStats(): SessionStats;\n\tgetContextUsage(): ContextUsage | undefined;\n\texportToHtml(outputPath?: string, options?: { themeName?: string }): Promise<string>;\n\texportToJsonl(outputPath?: string, options?: { includeShareContext?: boolean }): string;\n\tgetLastAssistantText(): string | undefined;\n\tcreateReplacedSessionContext(): ReplacedSessionContext;\n\tsealWorkflowStageGeneration(): void;\n\tcloseWorkflowStageGeneration(): Promise<void>;\n\ttransferWorkflowStageDeliveriesTo(target: object): void;\n\thasExtensionHandlers(eventType: string): boolean;\n}\n\nexport interface AgentSessionPublicSurface\n\textends Pick<\n\t\tAgentSessionMethodSurface,\n\t\t| \"orchestrationContext\"\n\t\t| \"getAgentTaskHost\"\n\t\t| \"closeSessionTasks\"\n\t\t| \"modelRuntime\"\n\t\t| \"state\"\n\t\t| \"model\"\n\t\t| \"thinkingLevel\"\n\t\t| \"isStreaming\"\n\t\t| \"systemPrompt\"\n\t\t| \"retryAttempt\"\n\t\t| \"isCompacting\"\n\t\t| \"compactionReason\"\n\t\t| \"messages\"\n\t\t| \"steeringMode\"\n\t\t| \"followUpMode\"\n\t\t| \"sessionFile\"\n\t\t| \"sessionId\"\n\t\t| \"sessionName\"\n\t\t| \"sessionSummary\"\n\t\t| \"scopedModels\"\n\t\t| \"promptTemplates\"\n\t\t| \"pendingMessageCount\"\n\t\t| \"resourceLoader\"\n\t\t| \"autoCompactionEnabled\"\n\t\t| \"isRetrying\"\n\t\t| \"autoRetryEnabled\"\n\t\t| \"abortSessionSummary\"\n\t\t| \"isBashRunning\"\n\t\t| \"hasPendingBashMessages\"\n\t\t| \"extensionRunner\"\n\t\t| \"workflows\"\n\t\t| \"queuedMessagesPaused\"\n\t\t| \"pauseQueuedMessages\"\n\t\t| \"resumeQueuedMessages\"\n\t\t| \"subscribe\"\n\t\t| \"dispose\"\n\t\t| \"getActiveToolNames\"\n\t\t| \"getCallableToolNames\"\n\t\t| \"getAllTools\"\n\t\t| \"getToolDefinition\"\n\t\t| \"getToolStatus\"\n\t\t| \"setActiveToolsByName\"\n\t\t| \"setScopedModels\"\n\t\t| \"prompt\"\n\t\t| \"steer\"\n\t\t| \"followUp\"\n\t\t| \"sendCustomMessage\"\n\t\t| \"sendUserMessage\"\n\t\t| \"clearQueue\"\n\t\t| \"getSteeringMessages\"\n\t\t| \"getFollowUpMessages\"\n\t\t| \"abort\"\n\t\t| \"setModel\"\n\t\t| \"cycleModel\"\n\t\t| \"setThinkingLevel\"\n\t\t| \"cycleThinkingLevel\"\n\t\t| \"getAvailableThinkingLevels\"\n\t\t| \"supportsThinking\"\n\t\t| \"setSteeringMode\"\n\t\t| \"setFollowUpMode\"\n\t\t| \"compact\"\n\t\t| \"abortCompaction\"\n\t\t| \"abortBranchSummary\"\n\t\t| \"setAutoCompactionEnabled\"\n\t\t| \"bindExtensions\"\n\t\t| \"startPendingRecovery\"\n\t\t| \"refreshCurrentModelFromRegistry\"\n\t\t| \"reload\"\n\t\t| \"completeStartupResources\"\n\t\t| \"abortRetry\"\n\t\t| \"setAutoRetryEnabled\"\n\t\t| \"executeBash\"\n\t\t| \"recordBashResult\"\n\t\t| \"abortBash\"\n\t\t| \"setSessionName\"\n\t\t| \"navigateTree\"\n\t\t| \"getUserMessagesForForking\"\n\t\t| \"getSessionStats\"\n\t\t| \"getContextUsage\"\n\t\t| \"refreshContext\"\n\t\t| \"exportToHtml\"\n\t\t| \"exportToJsonl\"\n\t\t| \"getLastAssistantText\"\n\t\t| \"createReplacedSessionContext\"\n\t\t| \"hasExtensionHandlers\"\n\t> {\n\treadonly agent: Agent;\n\treadonly sessionManager: SessionManager;\n\treadonly settingsManager: SettingsManager;\n}\n\nexport interface AgentSessionInternalSurface extends AgentSessionMethodSurface, AgentSessionPublicSurface {\n\t_scopedModels: Array<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>;\n\t_fallbackModels: string[];\n\t_isFallbackModelAllowed?: (model: Model<Api>, effort: string | undefined) => boolean;\n\t_fallbackAttemptedKeys: Set<string>;\n\t_fallbackBlockedModels: Array<Model<Api>>;\n\t_fallbackOriginModel: Model<Api> | undefined;\n\t_fallbackOriginThinkingLevel: ThinkingLevel | undefined;\n\t_fallbackScopeGeneration: number;\n\t_fallbackOriginGeneration: number | undefined;\n\t_fallbackRestoreError: string | undefined;\n\n\t_unsubscribeAgent?: () => void;\n\t_eventListeners: AgentSessionEventListener[];\n\t_agentEventQueue: Promise<void>;\n\t_steeringMessages: string[];\n\t_followUpMessages: string[];\n\t_interruptDeliveryQueue: Promise<void>;\n\t_pendingPostCompactionContinuation: Promise<void> | undefined;\n\t_postCompactionContinuationToken: number;\n\t_lengthContinuationAttempts: number;\n\t_outputBudgetErrorContinuationAttempts: number;\n\t_postToolCompactionPreflightError: string | undefined;\n\t_pendingPostToolCompactionGuard: PendingPostToolCompactionGuard | undefined;\n\t_terminatingToolCallIds: Set<string>;\n\t_stopAfterTurnBlockedContinuation: boolean;\n\t_pendingInterruptDeliveries: number;\n\t_priorityInterruptPending: boolean;\n\t_activePromptCount: number;\n\t_isPreparingRun: false | \"user\" | \"custom\";\n\t_agentRunAbortRequested: boolean;\n\t_cacheWarmer?: import(\"./cache-warmer.ts\").CacheWarmer;\n\t_activeInterruptQueueHold: InterruptQueueHold | undefined;\n\t_queuedMessagesPaused: boolean;\n\t_queuedMessagesPauseAbortBoundary: Promise<void> | undefined;\n\t_admittedQueuedMessageAwaitingReply: string | undefined;\n\t_admittedRecoveryTurn: Promise<void> | undefined;\n\t_workflowStageDeliveryForwardTarget: AgentSessionInternalSurface | undefined;\n\t_activeInterruptAbortMessage: string | undefined;\n\t_pendingNextTurnMessages: CustomMessage[];\n\t_pendingCustomMessages: CustomMessage[];\n\t_protectedStreamingCustomMessages: Array<{\n\t\tmessage: CustomMessage;\n\t\tdelivery: \"steer\" | \"followUp\";\n\t\tphase: \"queued\" | \"consumed-unpersisted\" | \"persistence-failed\";\n\t}>;\n\t_compactionAbortController: AbortController | undefined;\n\t_manualCompactionPromise: Promise<VerbatimCompactionResult> | undefined;\n\t_autoCompactionAbortController: AbortController | undefined;\n\t_autoCompactionCompletion: Promise<void> | undefined;\n\t_compactionReason: import(\"./agent-session-types.js\").CompactionReason | undefined;\n\t_overflowRecoveryAttempted: boolean;\n\t_recoverableLengthRecoveryAttempted: boolean;\n\t_contextOverflowUnresolved: boolean;\n\t_branchSummaryAbortController: AbortController | undefined;\n\t_branchSummaryCompletion: Promise<void> | undefined;\n\t_retryAbortController: AbortController | undefined;\n\t_retryAttempt: number;\n\t_retryPromise: Promise<void> | undefined;\n\t_retryResolve: (() => void) | undefined;\n\t_bashAbortControllers: Map<string | symbol, Set<AbortController>>;\n\t_pendingBashMessages: BashExecutionMessage[];\n\t_extensionRunner: ExtensionRunner;\n\t_workflows?: SessionWorkflowsHandle;\n\t_turnIndex: number;\n\treadonly _entryIdsByMessage: WeakMap<object, string>;\n\treadonly _boundaryDispatchedMessages: WeakSet<object>;\n\treadonly _messagesAwaitingPersistence: WeakSet<object>;\n\t_lastAssistantToolResults: AgentMessage[];\n\t_lastActivityOutcome: AgentActivityOutcome;\n\t_isBeforeSettle: boolean;\n\t_abortDuringBeforeSettle: boolean;\n\t_isEmittingAgentSettled: boolean;\n\treadonly _deferredSettledActions: Array<() => Promise<void>>;\n\t_callerReplacedNextRequestContext: boolean;\n\t_resourceLoader: ResourceLoader;\n\t_customTools: ToolDefinition[];\n\t_baseToolDefinitions: Map<string, ToolDefinition>;\n\t_cwd: string;\n\t_extensionRunnerRef?: { current?: ExtensionRunner };\n\t_initialActiveToolNames?: string[];\n\t_pendingToolNames: Set<string>;\n\t_usesDefaultTools: boolean;\n\t_defaultToolModifiers: string[];\n\t_appliedDefaultTools: Set<string>;\n\t_allowedToolNames?: Set<string>;\n\t_excludedToolNames?: Set<string>;\n\t_allowedTools?: (name: string) => boolean;\n\t_excludedTools?: (name: string) => boolean;\n\t_childSessionOptions?: import(\"./child-session-options.ts\").ChildSessionOptionsResolver;\n\t_workflowJournal?: import(\"./storage/provider.js\").RunJournalOption;\n\t_storageAgentDir?: string;\n\t_baseToolsOverride?: Record<string, AgentTool>;\n\t_sessionStartEvent: SessionStartEvent;\n\t_orchestrationContext?: OrchestrationContext;\n\t_subagentPolicy?: import(\"./extensions/index.js\").SubagentChildPolicy;\n\t_subagentMessageAdmission?: import(\"./workflow-stage-admission.ts\").WorkflowStageAdmissionBoundary;\n\t_extensionUIContext?: ExtensionUIContext;\n\t_extensionHumanInput?: import(\"./extensions/host-input.js\").HostInput | null;\n\t_extensionDiagnosticListener?: (diagnostic: import(\"./extensions/host-input.js\").HostDiagnostic) => void;\n\t_extensionMode: ExtensionMode;\n\t_disposed: boolean;\n\t_close(event: import(\"./extensions/types.ts\").SessionShutdownEvent, beforeInvalidate?: () => void): Promise<void>;\n\t_sessionSummaryAbortController: AbortController | undefined;\n\t_sessionSummaryToken: number;\n\t_sessionSummaryRun: import(\"./agent-session-summary.ts\").SessionSummaryRun | undefined;\n\t_lastSummarizedMessageId: string | undefined;\n\t_extensionCommandContextActions?: ExtensionCommandContextActions;\n\t_extensionShutdownHandler?: () => void;\n\t_extensionErrorListener?: ExtensionErrorListener;\n\t_extensionErrorUnsubscriber?: () => void;\n\t_modelRuntime: ModelRuntime;\n\t_extensionProviderIds: Set<string>;\n\t_toolRegistry: Map<string, AgentTool>;\n\t_toolExecutionScheduler: ToolExecutionScheduler;\n\t_toolDefinitions: Map<string, ToolDefinitionEntry>;\n\t_toolPromptSnippets: Map<string, string>;\n\t_toolPromptGuidelines: Map<string, string[]>;\n\t_baseSystemPromptOptions: NormalizedBuildSystemPromptOptions;\n\t_systemPromptTransform?: (prompt: string) => string;\n\t_contextProjectionTransform?: (messages: AgentMessage[]) => AgentMessage[];\n\t_runSystemPromptOptions?: NormalizedBuildSystemPromptOptions;\n\t_lastAssistantMessage: AssistantMessage | undefined;\n\t_tempStorageLease: import(\"./tools/session-temp-dir.ts\").ProtectedPathLease | undefined;\n\t_workflowStageAdmission: import(\"./workflow-stage-admission.ts\").WorkflowStageAdmissionBoundary | undefined;\n\t_workflowStageAwaitingFirstPrompt: boolean;\n\t_agentTaskHost: import(\"./tasks/agent-adapter.js\").AgentTaskHost | undefined;\n\t_parentCommandTaskOwner: import(\"./tasks/child-command-owner.js\").ChildCommandTaskOwner | undefined;\n\t_resourceAdmission: import(\"./sdk-types.ts\").ResourceAdmission | undefined;\n\t_childTaskWaits: import(\"./tasks/child-command-owner.js\").ChildTaskWaits;\n\t_taskCompletionOutbox: import(\"./tasks/completion.js\").TaskCompletionOutbox | undefined;\n\t_taskAdmission: import(\"./workflow-stage-admission.ts\").WorkflowStageAdmissionBoundary | undefined;\n}\n"]}
1
+ {"version":3,"file":"agent-session-methods.js","sourceRoot":"","sources":["../../src/core/agent-session-methods.ts"],"names":[],"mappings":"","sourcesContent":["import type { ProviderHeaders } from \"@bastani/pi-ai\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tImageContent,\n\tMessage,\n\tModel,\n\tTextContent,\n\tToolResultMessage,\n} from \"@bastani/pi-ai/compat\";\nimport type {\n\tAgent,\n\tAgentEvent,\n\tAgentMessage,\n\tAgentState,\n\tAgentTool,\n\tThinkingLevel,\n} from \"@earendil-works/pi-agent-core\";\nimport type { PendingPostToolCompactionGuard } from \"./agent-session-post-tool-compaction.ts\";\nimport type { RecordedToolLoadout } from \"./agent-session-state.ts\";\nimport type {\n\tAgentSessionEvent,\n\tAgentSessionEventListener,\n\tAgentSessionReloadOptions,\n\tClearQueueOptions,\n\tDrainedAgentQueues,\n\tExtensionBindings,\n\tInterruptQueueHold,\n\tModelCycleResult,\n\tModelMutationOptions,\n\tPromptDisposition,\n\tPromptOptions,\n\tQueuedInputDisposition,\n\tSessionRecoveryReport,\n\tSessionStats,\n\tToolDefinitionEntry,\n} from \"./agent-session-types.js\";\nimport type { BashResult } from \"./bash-executor.ts\";\nimport type {\n\tCompactionUrgency,\n\tPlannerAuth,\n\tVerbatimCompactionParameters,\n\tVerbatimCompactionResult,\n} from \"./compaction/index.ts\";\nimport type {\n\tAgentActivityOutcome,\n\tBoundaryContextPreview,\n\tContextUsage,\n\tExtensionCommandContextActions,\n\tExtensionErrorListener,\n\tExtensionMode,\n\tExtensionRunner,\n\tExtensionUIContext,\n\tOrchestrationContext,\n\tReplacedSessionContext,\n\tSendMessageOptions,\n\tSendMessagesOptions,\n\tSessionBoundaryDraft,\n\tSessionRecoveryReason,\n\tSessionStartEvent,\n\tToolDefinition,\n\tToolInfo,\n} from \"./extensions/index.js\";\nimport type { SessionWorkflows } from \"./extensions/workflow-run-control.js\";\nimport type { SessionWorkflowsHandle } from \"./extensions/workflow-run-control-hub.js\";\nimport type { BashExecutionMessage, CustomMessage } from \"./messages.ts\";\nimport type { ExtensionProviderTransaction, ModelRuntime } from \"./model-runtime.js\";\nimport type { PathMetadata } from \"./package-manager.ts\";\nimport type { PromptTemplate } from \"./prompt-templates.ts\";\nimport type { ResourceLoader } from \"./resource-loader.ts\";\nimport type { BranchSummaryEntry, SessionEntry, SessionManager, SessionSummaryEntry } from \"./session-manager.ts\";\nimport type { SettingsManager } from \"./settings-manager.ts\";\nimport type { NormalizedBuildSystemPromptOptions } from \"./system-prompt.ts\";\nimport type { ToolStatusReport } from \"./tool-status.js\";\nimport type { BashOperations } from \"./tools/bash.js\";\nimport type { ToolExecutionScheduler } from \"./tools/tool-concurrency.ts\";\n\nexport interface SessionCompactOptions extends Partial<VerbatimCompactionParameters> {\n\t/** Exact `provider/model` ID for this run only; overrides the `compactionModel` setting without saving it. */\n\tcompactionModel?: string;\n}\n\nexport interface VerbatimCompactionApplyOptions {\n\t/** Per-model planner credentials; a borrowed fallback uses its own, never the session model's. */\n\tresolvePlannerAuth: (model: Model<Api>) => Promise<PlannerAuth | undefined>;\n\tabortController: AbortController;\n\tbackupLabel: string;\n\tcompression_ratio?: number;\n\tpreserve_recent?: number;\n\tquery?: string;\n\tcompactionModel?: string;\n\treason: \"manual\" | \"threshold\" | \"overflow\";\n\t/** Reports when a session_before_compact override becomes the active compaction source. */\n\tonCompactionSource?: (fromExtension: boolean) => void;\n\t/** Only `load_bearing` may reach the context-destroying fresh rung. */\n\turgency: CompactionUrgency;\n\t/**\n\t * Admit a compactable region below the planner minimum.\n\t *\n\t * Narrow on purpose. Overflow recovery sets it because a real provider\n\t * overflow is already known, and the post-tool preflight sets it only when its\n\t * projected context is genuinely over the provider hard input limit. A\n\t * threshold crossing that still fits must not clear context: the follow-up\n\t * request can be sent as-is.\n\t */\n\tallowSmallRegion?: boolean;\n}\n\n/** Outcome of an automatic compaction admission and persistence attempt. */\nexport type AutoCompactionRunOutcome = \"compacted\" | \"not_compactable\" | \"deferred\" | \"failed\";\n\nexport interface ExtensionResourcePathEntry {\n\tpath: string;\n\textensionPath: string;\n}\n\nexport interface ExtensionResourcePathResult {\n\tpath: string;\n\tmetadata: PathMetadata;\n}\n\nexport interface RuntimeBuildOptions {\n\tactiveToolNames?: string[];\n\tflagValues?: Map<string, boolean | string>;\n\tincludeAllExtensionTools?: boolean;\n\tpreserveRunner?: boolean;\n}\n\nexport interface AgentSessionQueuePauseControl {\n\treadonly queuedMessagesPaused: boolean;\n\tpauseQueuedMessages(): void;\n\t/** Release the hold without starting a turn; true means raw queued work was released. */\n\tresumeQueuedMessages(beforeRelease?: () => void): Promise<boolean>;\n}\n\nexport interface AgentSessionMethodSurface extends AgentSessionQueuePauseControl {\n\treadonly orchestrationContext: import(\"./extensions/index.js\").OrchestrationContext | undefined;\n\treadonly modelRuntime: ModelRuntime;\n\treadonly state: AgentState;\n\treadonly model: Model<Api> | undefined;\n\treadonly thinkingLevel: ThinkingLevel;\n\treadonly isStreaming: boolean;\n\treadonly systemPrompt: string;\n\treadonly retryAttempt: number;\n\treadonly isCompacting: boolean;\n\treadonly compactionReason?: import(\"./agent-session-types.js\").CompactionReason;\n\treadonly messages: AgentMessage[];\n\treadonly steeringMode: \"all\" | \"one-at-a-time\";\n\treadonly followUpMode: \"all\" | \"one-at-a-time\";\n\treadonly sessionFile: string | undefined;\n\treadonly sessionId: string;\n\treadonly sessionName: string | undefined;\n\treadonly sessionSummary: SessionSummaryEntry | undefined;\n\treadonly scopedModels: ReadonlyArray<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>;\n\treadonly promptTemplates: ReadonlyArray<PromptTemplate>;\n\treadonly pendingMessageCount: number;\n\treadonly resourceLoader: ResourceLoader;\n\treadonly autoCompactionEnabled: boolean;\n\treadonly isRetrying: boolean;\n\treadonly autoRetryEnabled: boolean;\n\treadonly isBashRunning: boolean;\n\treadonly hasPendingBashMessages: boolean;\n\treadonly extensionRunner: ExtensionRunner;\n\t/** Typed management of the workflow runs this session owns. */\n\treadonly workflows: SessionWorkflows;\n\n\t_handleAgentEvent(event: AgentEvent): Promise<void> | void;\n\t_getRequiredRequestAuth(\n\t\tmodel: Model<Api>,\n\t\tsignal?: AbortSignal,\n\t): Promise<{ apiKey?: string; headers?: ProviderHeaders; baseUrl?: string }>;\n\t_installAgentToolHooks(): void;\n\t_installAgentNextTurnRefresh(): void;\n\t_installAgentRequestProjection(): void;\n\t_installAgentBoundaryHooks(): void;\n\t_refreshFinalizedContext(): void;\n\t_projectFinalizedMessages(): AgentMessage[];\n\trefreshContext(): void;\n\t_dispatchTurnEndBoundary(\n\t\tmessage: AssistantMessage,\n\t\ttoolResults: ToolResultMessage[],\n\t\tawaitPersistence?: boolean,\n\t): Promise<boolean>;\n\t_applyBoundaryDrafts(manager: SessionManager, drafts: SessionBoundaryDraft[]): Promise<SessionEntry[]>;\n\t_createBoundaryPreviewManager(drafts: SessionBoundaryDraft[]): Promise<SessionManager>;\n\t_getPendingBoundaryMessages(): AgentMessage[];\n\t_buildBoundaryContext(\n\t\tdrafts: SessionBoundaryDraft[],\n\t\tboundary: \"turn_end\" | \"agent_before_settle\",\n\t): Promise<BoundaryContextPreview>;\n\t_commitBoundaryDrafts(drafts: SessionBoundaryDraft[]): Promise<void>;\n\t_reportInvalidBoundaryContinuation(event: \"turn_end\" | \"agent_before_settle\"): void;\n\t_findPersistedMessageEntryId(message: AgentMessage): string | undefined;\n\t_omitRecoveryAttempt(message: AssistantMessage, toolResults?: AgentMessage[]): Promise<void>;\n\t_omitTrailingAssistantAttempt(accept?: (message: AssistantMessage) => boolean): Promise<boolean>;\n\t_runBeforeSettleBoundary(): Promise<boolean>;\n\t_emit(event: AgentSessionEvent): void;\n\t_emitQueueUpdate(): void;\n\t_createRetryPromiseForAgentEnd(event: AgentEvent): void;\n\t_findLastAssistantInMessages(messages: AgentMessage[]): AssistantMessage | undefined;\n\t_processAgentEvent(event: AgentEvent): Promise<void>;\n\t_applyInterruptAbortMessage(event: AgentEvent): void;\n\t_applyProviderErrorGuidance(event: AgentEvent): void;\n\t_resolveRetry(): void;\n\t_getUserMessageText(message: Message): string;\n\t_findLastAssistantMessage(): AssistantMessage | undefined;\n\t_replaceMessageInPlace(target: AgentMessage, replacement: AgentMessage): void;\n\t_emitExtensionEvent(event: AgentEvent): Promise<void>;\n\tsubscribe(listener: AgentSessionEventListener): () => void;\n\t_disconnectFromAgent(): void;\n\tdispose(): Promise<void>;\n\tgetAgentTaskHost(): import(\"./tasks/agent-adapter.js\").AgentTaskHost;\n\t_getCommandTaskOwner(): import(\"./tools/bash-pty-native.js\").SupervisedCommandOwner | undefined;\n\tcloseSessionTasks(): Promise<void>;\n\t/** Internal workflow pause: cancel owned execution without closing message admission. */\n\tpauseTasks(): Promise<void>;\n\tresumeTasks(): void;\n\n\tgetActiveToolNames(): string[];\n\tgetCallableToolNames(): string[];\n\tgetAllTools(): ToolInfo[];\n\tgetToolDefinition(name: string): ToolDefinition | undefined;\n\t/** Explain which tools are active, which are not (and why), and which selected names nothing registered. */\n\tgetToolStatus(): ToolStatusReport;\n\tsetActiveToolsByName(toolNames: string[]): void;\n\t_setActiveTools(toolNames: string[]): void;\n\tsetScopedModels(scopedModels: Array<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>): void;\n\t_normalizePromptSnippet(text: string | undefined): string | undefined;\n\t_normalizePromptGuidelines(guidelines: string[] | undefined): string[];\n\t_rebuildSystemPrompt(toolNames: string[]): void;\n\t_preparePromptAndToolLoadout(\n\t\toptions: NormalizedBuildSystemPromptOptions,\n\t\tmessages?: AgentMessage[],\n\t): import(\"@bastani/pi-ai\").SystemMessage | undefined;\n\t_restoreToolsFromTranscript(options?: { startup?: boolean }): void;\n\t_refreshBaseSystemPromptFromActiveTools(): void;\n\n\tprompt(text: string, options?: PromptOptions): Promise<void>;\n\t_runAgentPrompt(\n\t\tmessages: AgentMessage | AgentMessage[],\n\t\tpromptStarted?: () => void,\n\t\treportDispatch?: (disposition: PromptDisposition) => void,\n\t\tprepared?: boolean,\n\t\tcustomStarter?: CustomMessage,\n\t): Promise<void>;\n\t_runAgentContinue(): Promise<void>;\n\t_continueQueuedAgentMessages(): Promise<void>;\n\t_tryExecuteExtensionCommand(text: string): Promise<boolean>;\n\t_expandSkillCommand(text: string): string;\n\tsteer(\n\t\ttext: string,\n\t\timages?: ImageContent[],\n\t\toptions?: Pick<PromptOptions, \"source\" | \"expandPromptTemplates\">,\n\t): Promise<QueuedInputDisposition>;\n\tfollowUp(\n\t\ttext: string,\n\t\timages?: ImageContent[],\n\t\toptions?: Pick<PromptOptions, \"source\" | \"expandPromptTemplates\">,\n\t): Promise<QueuedInputDisposition>;\n\tsendUserMessage(\n\t\tcontent: string | (TextContent | ImageContent)[],\n\t\toptions?: { deliverAs?: \"steer\" | \"followUp\"; expandPromptTemplates?: boolean },\n\t): Promise<void>;\n\n\t_queueSteer(text: string, images?: ImageContent[]): Promise<void>;\n\t_queueFollowUp(text: string, images?: ImageContent[]): Promise<void>;\n\t_throwIfExtensionCommand(text: string): void;\n\tsendCustomMessage<T = unknown>(\n\t\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\t\toptions?: SendMessageOptions,\n\t): Promise<void>;\n\tsendCustomMessages<T = unknown>(\n\t\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\t\toptions?: SendMessagesOptions,\n\t): Promise<void>;\n\t_commitAdmittedCustomMessage<T>(message: CustomMessage<T>, options?: SendMessageOptions): Promise<void>;\n\t_commitAdmittedCustomMessages<T>(messages: CustomMessage<T>[], options?: SendMessagesOptions): Promise<void>;\n\t_appendCustomMessage<T>(message: CustomMessage<T>): Promise<void>;\n\t_flushPendingCustomMessages(): Promise<void>;\n\t_enqueueInterruptCustomMessage<T>(message: CustomMessage<T>, options?: SendMessageOptions): Promise<void>;\n\t_sendInterruptCustomMessageNow<T>(message: CustomMessage<T>, options?: SendMessageOptions): Promise<void>;\n\t_ensureActiveInterruptQueueHold(): InterruptQueueHold;\n\t_restoreAndClearActiveInterruptQueueHold(): void;\n\t_queueAgentMessage(message: AgentMessage, delivery: \"steer\" | \"followUp\" | \"interrupt\"): void;\n\t_drainQueuedAgentMessages(): DrainedAgentQueues;\n\t_restoreQueuedAgentMessages(queues: DrainedAgentQueues): void;\n\tclearQueue(options?: ClearQueueOptions): { steering: string[]; followUp: string[] };\n\tgetSteeringMessages(): readonly string[];\n\tgetFollowUpMessages(): readonly string[];\n\tabort(): Promise<void>;\n\tsetSteeringMode(mode: \"all\" | \"one-at-a-time\"): void;\n\tsetFollowUpMode(mode: \"all\" | \"one-at-a-time\"): void;\n\n\t_emitModelChanged(\n\t\tnextModel: Model<Api>,\n\t\tpreviousModel: Model<Api> | undefined,\n\t\tsource: \"set\" | \"cycle\" | \"restore\" | \"fallback\",\n\t): void;\n\t_emitModelSelect(\n\t\tnextModel: Model<Api>,\n\t\tpreviousModel: Model<Api> | undefined,\n\t\tsource: \"set\" | \"cycle\" | \"restore\" | \"fallback\",\n\t): Promise<void>;\n\tsetModel(model: Model<Api>, options?: ModelMutationOptions): Promise<void>;\n\tcycleModel(\n\t\tdirection?: \"forward\" | \"backward\",\n\t\toptions?: ModelMutationOptions,\n\t): Promise<ModelCycleResult | undefined>;\n\t_cycleScopedModel(\n\t\tdirection: \"forward\" | \"backward\",\n\t\toptions: ModelMutationOptions,\n\t): Promise<ModelCycleResult | undefined>;\n\t_cycleAvailableModel(\n\t\tdirection: \"forward\" | \"backward\",\n\t\toptions: ModelMutationOptions,\n\t): Promise<ModelCycleResult | undefined>;\n\tsetThinkingLevel(level: ThinkingLevel, options?: ModelMutationOptions): Promise<void>;\n\tcycleThinkingLevel(options?: ModelMutationOptions): Promise<ThinkingLevel | undefined>;\n\tgetAvailableThinkingLevels(): ThinkingLevel[];\n\tsupportsThinking(): boolean;\n\t_getThinkingLevelForModelSwitch(targetModel?: Model<Api>, explicitLevel?: ThinkingLevel): ThinkingLevel;\n\t_clampThinkingLevel(level: ThinkingLevel, availableLevels: ThinkingLevel[]): ThinkingLevel;\n\n\t_applyVerbatimCompaction(options: VerbatimCompactionApplyOptions): Promise<VerbatimCompactionResult | undefined>;\n\tcompact(options?: SessionCompactOptions): Promise<VerbatimCompactionResult>;\n\tabortCompaction(): void;\n\tabortBranchSummary(): void;\n\tabortSessionSummary(): void;\n\t_maybeGenerateSessionSummary(): Promise<void>;\n\t_checkCompaction(assistantMessage: AssistantMessage, skipAbortedCheck?: boolean): Promise<void>;\n\t_dropTrailingAutoCompactionRetryAssistantIfPresent(): void;\n\t_schedulePostAutoCompactionContinuationProbe(reason: \"overflow\" | \"threshold\", willRetry: boolean): void;\n\t_awaitPendingPostCompactionContinuation(): Promise<void>;\n\t_resumeAfterAutoCompaction(): Promise<void>;\n\t_resumeAfterLengthTruncation(): void;\n\t_runAutoCompaction(\n\t\treason: \"overflow\" | \"threshold\",\n\t\twillRetry: boolean,\n\t\turgency?: CompactionUrgency,\n\t): Promise<AutoCompactionRunOutcome>;\n\t_preflightPostToolContext(messages: AgentMessage[], signal?: AbortSignal): Promise<AgentMessage[]>;\n\t_finishPostToolCompactionPreflight(messages: AgentMessage[]): AgentMessage[];\n\tsetAutoCompactionEnabled(enabled: boolean): void;\n\n\tbindExtensions(bindings: ExtensionBindings): Promise<void>;\n\tstartPendingRecovery(reason?: SessionRecoveryReason): Promise<SessionRecoveryReport>;\n\t_waitForExtensionStart(): Promise<void>;\n\textendResourcesFromExtensions(reason: \"startup\" | \"reload\"): Promise<void>;\n\tbuildExtensionResourcePaths(entries: ExtensionResourcePathEntry[]): ExtensionResourcePathResult[];\n\tgetExtensionSourceLabel(extensionPath: string): string;\n\t_applyExtensionBindings(runner: ExtensionRunner): void;\n\t_refreshCurrentModelFromRegistry(): Promise<void>;\n\trefreshCurrentModelFromRegistry(): Promise<void>;\n\t_bindExtensionCore(\n\t\trunner: ExtensionRunner,\n\t\tpublication?: {\n\t\t\tresourceLoader: ResourceLoader;\n\t\t\tproviderTransaction: ExtensionProviderTransaction;\n\t\t\tproviderIds: Set<string>;\n\t\t\tdefer(effect: () => void | Promise<void>): void;\n\t\t},\n\t\tstartupToolNames?: readonly string[],\n\t\tstartupLoadout?: RecordedToolLoadout,\n\t): void;\n\t_refreshToolRegistry(options?: { activeToolNames?: string[]; includeAllExtensionTools?: boolean }): void;\n\t_buildRuntime(options: RuntimeBuildOptions): void;\n\treload(options?: AgentSessionReloadOptions): Promise<void>;\n\tcompleteStartupResources(resourceLoader: ResourceLoader): Promise<void>;\n\n\t_isRetryableError(message: AssistantMessage): boolean;\n\t_isFallbackableError(message: AssistantMessage): boolean;\n\t_isEmptyCompletion(message: AssistantMessage): boolean;\n\t_isSafetyRefusal(message: AssistantMessage): boolean;\n\t_handleRetryableError(message: AssistantMessage): Promise<boolean>;\n\t_trySwitchToFallbackModel(message: AssistantMessage): Promise<boolean>;\n\t_beginFallbackModelScope(): void;\n\t_clearFallbackModelScope(): void;\n\t_settleFallbackModelScope(): Promise<boolean>;\n\tabortRetry(): void;\n\twaitForRetry(): Promise<void>;\n\tsetAutoRetryEnabled(enabled: boolean): void;\n\n\texecuteBash(\n\t\tcommand: string,\n\t\tonChunk?: (chunk: string, channel: \"stdout\" | \"stderr\") => void,\n\t\toptions?: {\n\t\t\texcludeFromContext?: boolean;\n\t\t\tid?: string;\n\t\t\toperations?: BashOperations;\n\t\t\tpty?: boolean;\n\t\t\temitEvent?: boolean;\n\t\t\trecordResult?: boolean;\n\t\t},\n\t): Promise<BashResult>;\n\trecordBashResult(\n\t\tcommand: string,\n\t\tresult: BashResult,\n\t\toptions?: { excludeFromContext?: boolean; persist?: boolean; defer?: boolean },\n\t): Promise<void>;\n\tabortBash(id?: string): void;\n\t_flushPendingBashMessages(): Promise<void>;\n\n\tsetSessionName(name: string): Promise<void>;\n\tnavigateTree(\n\t\ttargetId: string,\n\t\toptions?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string },\n\t): Promise<{ editorText?: string; cancelled: boolean; aborted?: boolean; summaryEntry?: BranchSummaryEntry }>;\n\tgetUserMessagesForForking(): Array<{ entryId: string; text: string }>;\n\t_extractUserMessageText(content: string | Array<{ type: string; text?: string }>): string;\n\n\tgetSessionStats(): SessionStats;\n\tgetContextUsage(): ContextUsage | undefined;\n\texportToHtml(outputPath?: string, options?: { themeName?: string }): Promise<string>;\n\texportToJsonl(outputPath?: string, options?: { includeShareContext?: boolean }): string;\n\tgetLastAssistantText(): string | undefined;\n\tcreateReplacedSessionContext(): ReplacedSessionContext;\n\tsealWorkflowStageGeneration(): void;\n\tcloseWorkflowStageGeneration(): Promise<void>;\n\ttransferWorkflowStageDeliveriesTo(target: object): void;\n\thasExtensionHandlers(eventType: string): boolean;\n}\n\nexport interface AgentSessionPublicSurface\n\textends Pick<\n\t\tAgentSessionMethodSurface,\n\t\t| \"orchestrationContext\"\n\t\t| \"getAgentTaskHost\"\n\t\t| \"closeSessionTasks\"\n\t\t| \"modelRuntime\"\n\t\t| \"state\"\n\t\t| \"model\"\n\t\t| \"thinkingLevel\"\n\t\t| \"isStreaming\"\n\t\t| \"systemPrompt\"\n\t\t| \"retryAttempt\"\n\t\t| \"isCompacting\"\n\t\t| \"compactionReason\"\n\t\t| \"messages\"\n\t\t| \"steeringMode\"\n\t\t| \"followUpMode\"\n\t\t| \"sessionFile\"\n\t\t| \"sessionId\"\n\t\t| \"sessionName\"\n\t\t| \"sessionSummary\"\n\t\t| \"scopedModels\"\n\t\t| \"promptTemplates\"\n\t\t| \"pendingMessageCount\"\n\t\t| \"resourceLoader\"\n\t\t| \"autoCompactionEnabled\"\n\t\t| \"isRetrying\"\n\t\t| \"autoRetryEnabled\"\n\t\t| \"abortSessionSummary\"\n\t\t| \"isBashRunning\"\n\t\t| \"hasPendingBashMessages\"\n\t\t| \"extensionRunner\"\n\t\t| \"workflows\"\n\t\t| \"queuedMessagesPaused\"\n\t\t| \"pauseQueuedMessages\"\n\t\t| \"resumeQueuedMessages\"\n\t\t| \"subscribe\"\n\t\t| \"dispose\"\n\t\t| \"getActiveToolNames\"\n\t\t| \"getCallableToolNames\"\n\t\t| \"getAllTools\"\n\t\t| \"getToolDefinition\"\n\t\t| \"getToolStatus\"\n\t\t| \"setActiveToolsByName\"\n\t\t| \"setScopedModels\"\n\t\t| \"prompt\"\n\t\t| \"steer\"\n\t\t| \"followUp\"\n\t\t| \"sendCustomMessage\"\n\t\t| \"sendUserMessage\"\n\t\t| \"clearQueue\"\n\t\t| \"getSteeringMessages\"\n\t\t| \"getFollowUpMessages\"\n\t\t| \"abort\"\n\t\t| \"setModel\"\n\t\t| \"cycleModel\"\n\t\t| \"setThinkingLevel\"\n\t\t| \"cycleThinkingLevel\"\n\t\t| \"getAvailableThinkingLevels\"\n\t\t| \"supportsThinking\"\n\t\t| \"setSteeringMode\"\n\t\t| \"setFollowUpMode\"\n\t\t| \"compact\"\n\t\t| \"abortCompaction\"\n\t\t| \"abortBranchSummary\"\n\t\t| \"setAutoCompactionEnabled\"\n\t\t| \"bindExtensions\"\n\t\t| \"startPendingRecovery\"\n\t\t| \"refreshCurrentModelFromRegistry\"\n\t\t| \"reload\"\n\t\t| \"completeStartupResources\"\n\t\t| \"abortRetry\"\n\t\t| \"setAutoRetryEnabled\"\n\t\t| \"executeBash\"\n\t\t| \"recordBashResult\"\n\t\t| \"abortBash\"\n\t\t| \"setSessionName\"\n\t\t| \"navigateTree\"\n\t\t| \"getUserMessagesForForking\"\n\t\t| \"getSessionStats\"\n\t\t| \"getContextUsage\"\n\t\t| \"refreshContext\"\n\t\t| \"exportToHtml\"\n\t\t| \"exportToJsonl\"\n\t\t| \"getLastAssistantText\"\n\t\t| \"createReplacedSessionContext\"\n\t\t| \"hasExtensionHandlers\"\n\t> {\n\treadonly agent: Agent;\n\treadonly sessionManager: SessionManager;\n\treadonly settingsManager: SettingsManager;\n}\n\nexport interface AgentSessionInternalSurface extends AgentSessionMethodSurface, AgentSessionPublicSurface {\n\t_scopedModels: Array<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>;\n\t_fallbackModels: string[];\n\t_isFallbackModelAllowed?: (model: Model<Api>, effort: string | undefined) => boolean;\n\t_fallbackAttemptedKeys: Set<string>;\n\t_fallbackBlockedModels: Array<Model<Api>>;\n\t_fallbackOriginModel: Model<Api> | undefined;\n\t_fallbackOriginThinkingLevel: ThinkingLevel | undefined;\n\t_fallbackScopeGeneration: number;\n\t_fallbackOriginGeneration: number | undefined;\n\t_fallbackRestoreError: string | undefined;\n\n\t_unsubscribeAgent?: () => void;\n\t_eventListeners: AgentSessionEventListener[];\n\t_agentEventQueue: Promise<void>;\n\t_steeringMessages: string[];\n\t_followUpMessages: string[];\n\t_interruptDeliveryQueue: Promise<void>;\n\t_pendingPostCompactionContinuation: Promise<void> | undefined;\n\t_postCompactionContinuationToken: number;\n\t_lengthContinuationAttempts: number;\n\t_outputBudgetErrorContinuationAttempts: number;\n\t_postToolCompactionPreflightError: string | undefined;\n\t_pendingPostToolCompactionGuard: PendingPostToolCompactionGuard | undefined;\n\t_terminatingToolCallIds: Set<string>;\n\t_stopAfterTurnBlockedContinuation: boolean;\n\t_pendingInterruptDeliveries: number;\n\t_priorityInterruptPending: boolean;\n\t_activePromptCount: number;\n\t_isPreparingRun: false | \"user\" | \"custom\";\n\t_agentRunAbortRequested: boolean;\n\t_cacheWarmer?: import(\"./cache-warmer.ts\").CacheWarmer;\n\t_activeInterruptQueueHold: InterruptQueueHold | undefined;\n\t_queuedMessagesPaused: boolean;\n\t_queuedMessagesPauseAbortBoundary: Promise<void> | undefined;\n\t_admittedQueuedMessageAwaitingReply: string | undefined;\n\t_admittedRecoveryTurn: Promise<void> | undefined;\n\t_workflowStageDeliveryForwardTarget: AgentSessionInternalSurface | undefined;\n\t_activeInterruptAbortMessage: string | undefined;\n\t_pendingNextTurnMessages: CustomMessage[];\n\t_pendingCustomMessages: CustomMessage[];\n\t_protectedStreamingCustomMessages: Array<{\n\t\tmessage: CustomMessage;\n\t\tdelivery: \"steer\" | \"followUp\";\n\t\tphase: \"queued\" | \"consumed-unpersisted\" | \"persistence-failed\";\n\t}>;\n\t_compactionAbortController: AbortController | undefined;\n\t_manualCompactionPromise: Promise<VerbatimCompactionResult> | undefined;\n\t_autoCompactionAbortController: AbortController | undefined;\n\t_autoCompactionCompletion: Promise<void> | undefined;\n\t_compactionReason: import(\"./agent-session-types.js\").CompactionReason | undefined;\n\t_overflowRecoveryAttempted: boolean;\n\t_recoverableLengthRecoveryAttempted: boolean;\n\t_contextOverflowUnresolved: boolean;\n\t_branchSummaryAbortController: AbortController | undefined;\n\t_branchSummaryCompletion: Promise<void> | undefined;\n\t_retryAbortController: AbortController | undefined;\n\t_retryAttempt: number;\n\t_retryPromise: Promise<void> | undefined;\n\t_retryResolve: (() => void) | undefined;\n\t_bashAbortControllers: Map<string | symbol, Set<AbortController>>;\n\t_pendingBashMessages: BashExecutionMessage[];\n\t_extensionRunner: ExtensionRunner;\n\t_workflows?: SessionWorkflowsHandle;\n\t_turnIndex: number;\n\treadonly _entryIdsByMessage: WeakMap<object, string>;\n\treadonly _boundaryDispatchedMessages: WeakSet<object>;\n\treadonly _messagesAwaitingPersistence: WeakSet<object>;\n\treadonly _reissuedToolCallIds: Set<string>;\n\t_lastAssistantToolResults: AgentMessage[];\n\t_lastActivityOutcome: AgentActivityOutcome;\n\t_isBeforeSettle: boolean;\n\t_abortDuringBeforeSettle: boolean;\n\t_isEmittingAgentSettled: boolean;\n\treadonly _deferredSettledActions: Array<() => Promise<void>>;\n\t_callerReplacedNextRequestContext: boolean;\n\t_resourceLoader: ResourceLoader;\n\t_customTools: ToolDefinition[];\n\t_baseToolDefinitions: Map<string, ToolDefinition>;\n\t_cwd: string;\n\t_extensionRunnerRef?: { current?: ExtensionRunner };\n\t_initialActiveToolNames?: string[];\n\t_pendingToolNames: Set<string>;\n\t_usesDefaultTools: boolean;\n\t_defaultToolModifiers: string[];\n\t_appliedDefaultTools: Set<string>;\n\t_allowedToolNames?: Set<string>;\n\t_excludedToolNames?: Set<string>;\n\t_allowedTools?: (name: string) => boolean;\n\t_excludedTools?: (name: string) => boolean;\n\t_childSessionOptions?: import(\"./child-session-options.ts\").ChildSessionOptionsResolver;\n\t_workflowJournal?: import(\"./storage/provider.js\").RunJournalOption;\n\t_storageAgentDir?: string;\n\t_baseToolsOverride?: Record<string, AgentTool>;\n\t_sessionStartEvent: SessionStartEvent;\n\t_orchestrationContext?: OrchestrationContext;\n\t_subagentPolicy?: import(\"./extensions/index.js\").SubagentChildPolicy;\n\t_subagentMessageAdmission?: import(\"./workflow-stage-admission.ts\").WorkflowStageAdmissionBoundary;\n\t_extensionUIContext?: ExtensionUIContext;\n\t_extensionHumanInput?: import(\"./extensions/host-input.js\").HostInput | null;\n\t_extensionDiagnosticListener?: (diagnostic: import(\"./extensions/host-input.js\").HostDiagnostic) => void;\n\t_extensionMode: ExtensionMode;\n\t_disposed: boolean;\n\t_close(event: import(\"./extensions/types.ts\").SessionShutdownEvent, beforeInvalidate?: () => void): Promise<void>;\n\t_sessionSummaryAbortController: AbortController | undefined;\n\t_sessionSummaryToken: number;\n\t_sessionSummaryRun: import(\"./agent-session-summary.ts\").SessionSummaryRun | undefined;\n\t_lastSummarizedMessageId: string | undefined;\n\t_extensionCommandContextActions?: ExtensionCommandContextActions;\n\t_extensionShutdownHandler?: () => void;\n\t_extensionErrorListener?: ExtensionErrorListener;\n\t_extensionErrorUnsubscriber?: () => void;\n\t_modelRuntime: ModelRuntime;\n\t_extensionProviderIds: Set<string>;\n\t_toolRegistry: Map<string, AgentTool>;\n\t_toolExecutionScheduler: ToolExecutionScheduler;\n\t_toolDefinitions: Map<string, ToolDefinitionEntry>;\n\t_toolPromptSnippets: Map<string, string>;\n\t_toolPromptGuidelines: Map<string, string[]>;\n\t_baseSystemPromptOptions: NormalizedBuildSystemPromptOptions;\n\t_systemPromptTransform?: (prompt: string) => string;\n\t_contextProjectionTransform?: (messages: AgentMessage[]) => AgentMessage[];\n\t_runSystemPromptOptions?: NormalizedBuildSystemPromptOptions;\n\t_lastAssistantMessage: AssistantMessage | undefined;\n\t_tempStorageLease: import(\"./tools/session-temp-dir.ts\").ProtectedPathLease | undefined;\n\t_workflowStageAdmission: import(\"./workflow-stage-admission.ts\").WorkflowStageAdmissionBoundary | undefined;\n\t_workflowStageAwaitingFirstPrompt: boolean;\n\t_agentTaskHost: import(\"./tasks/agent-adapter.js\").AgentTaskHost | undefined;\n\t_parentCommandTaskOwner: import(\"./tasks/child-command-owner.js\").ChildCommandTaskOwner | undefined;\n\t_resourceAdmission: import(\"./sdk-types.ts\").ResourceAdmission | undefined;\n\t_childTaskWaits: import(\"./tasks/child-command-owner.js\").ChildTaskWaits;\n\t_taskCompletionOutbox: import(\"./tasks/completion.js\").TaskCompletionOutbox | undefined;\n\t_taskAdmission: import(\"./workflow-stage-admission.ts\").WorkflowStageAdmissionBoundary | undefined;\n}\n"]}
@@ -38,18 +38,20 @@ export declare function deliverQueuedInputIfIdle(session: AgentSession, options?
38
38
  * Delivered after the current assistant turn finishes executing its tool calls,
39
39
  * before the next LLM call.
40
40
  * Expands skill commands and prompt templates. Errors on extension commands.
41
+ * With `expandPromptTemplates: false` the text is queued literally and never refused as a command.
41
42
  * @param images Optional image attachments to include with the message
42
43
  * @throws Error if text is an extension command
43
44
  */
44
- export declare function steer(this: AgentSession, text: string, images?: ImageContent[], options?: Pick<PromptOptions, "source">): Promise<QueuedInputDisposition>;
45
+ export declare function steer(this: AgentSession, text: string, images?: ImageContent[], options?: Pick<PromptOptions, "source" | "expandPromptTemplates">): Promise<QueuedInputDisposition>;
45
46
  /**
46
47
  * Queue a follow-up message to be processed after the agent finishes.
47
48
  * Delivered only when agent has no more tool calls or steering messages.
48
49
  * Expands skill commands and prompt templates. Errors on extension commands.
50
+ * With `expandPromptTemplates: false` the text is queued literally and never refused as a command.
49
51
  * @param images Optional image attachments to include with the message
50
52
  * @throws Error if text is an extension command
51
53
  */
52
- export declare function followUp(this: AgentSession, text: string, images?: ImageContent[], options?: Pick<PromptOptions, "source">): Promise<QueuedInputDisposition>;
54
+ export declare function followUp(this: AgentSession, text: string, images?: ImageContent[], options?: Pick<PromptOptions, "source" | "expandPromptTemplates">): Promise<QueuedInputDisposition>;
53
55
  /**
54
56
  * Send a user message and trigger a turn.
55
57
  *
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-prompt.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session-prompt.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-prompt.ts"],"names":[],"mappings":"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"}
@@ -754,16 +754,17 @@ export function _expandSkillCommand(text) {
754
754
  return text; // Return original on error
755
755
  }
756
756
  }
757
- async function queueUserInput(session, text, images, behavior, source) {
757
+ async function queueUserInput(session, text, images, behavior, source, expandPromptTemplates = true) {
758
758
  assertSessionOpen(session);
759
759
  const owner = resolveWorkflowStageDeliveryTarget(session);
760
760
  if (owner !== session)
761
- return queueUserInput(owner, text, images, behavior, source);
762
- return trackSessionWork(session, () => admittedQueueUserInput(session, text, images, behavior, source));
761
+ return queueUserInput(owner, text, images, behavior, source, expandPromptTemplates);
762
+ return trackSessionWork(session, () => admittedQueueUserInput(session, text, images, behavior, source, expandPromptTemplates));
763
763
  }
764
- async function admittedQueueUserInput(session, text, images, behavior, source) {
764
+ async function admittedQueueUserInput(session, text, images, behavior, source, expandPromptTemplates) {
765
765
  const lifetime = sessionLifetime(session);
766
- if (text.startsWith("/"))
766
+ // Literal text is never a command, so it is never refused for looking like one.
767
+ if (expandPromptTemplates && text.startsWith("/"))
767
768
  session._throwIfExtensionCommand(text);
768
769
  const admission = source === "extension" ? UNORDERED_ADMISSION : reserveQueuedInputAdmission(session, behavior, lifetime);
769
770
  try {
@@ -779,7 +780,9 @@ async function admittedQueueUserInput(session, text, images, behavior, source) {
779
780
  images = result.images ?? images;
780
781
  }
781
782
  }
782
- const expandedText = expandPromptTemplate(session._expandSkillCommand(text), [...session.promptTemplates]);
783
+ const expandedText = expandPromptTemplates
784
+ ? expandPromptTemplate(session._expandSkillCommand(text), [...session.promptTemplates])
785
+ : text;
783
786
  const earlierAdmissions = admission.waitForTurn();
784
787
  if (earlierAdmissions)
785
788
  await earlierAdmissions;
@@ -858,21 +861,23 @@ export function deliverQueuedInputIfIdle(session, options) {
858
861
  * Delivered after the current assistant turn finishes executing its tool calls,
859
862
  * before the next LLM call.
860
863
  * Expands skill commands and prompt templates. Errors on extension commands.
864
+ * With `expandPromptTemplates: false` the text is queued literally and never refused as a command.
861
865
  * @param images Optional image attachments to include with the message
862
866
  * @throws Error if text is an extension command
863
867
  */
864
868
  export async function steer(text, images, options) {
865
- return queueUserInput(this, text, images, "steer", options?.source ?? "interactive");
869
+ return queueUserInput(this, text, images, "steer", options?.source ?? "interactive", options?.expandPromptTemplates ?? true);
866
870
  }
867
871
  /**
868
872
  * Queue a follow-up message to be processed after the agent finishes.
869
873
  * Delivered only when agent has no more tool calls or steering messages.
870
874
  * Expands skill commands and prompt templates. Errors on extension commands.
875
+ * With `expandPromptTemplates: false` the text is queued literally and never refused as a command.
871
876
  * @param images Optional image attachments to include with the message
872
877
  * @throws Error if text is an extension command
873
878
  */
874
879
  export async function followUp(text, images, options) {
875
- return queueUserInput(this, text, images, "followUp", options?.source ?? "interactive");
880
+ return queueUserInput(this, text, images, "followUp", options?.source ?? "interactive", options?.expandPromptTemplates ?? true);
876
881
  }
877
882
  /**
878
883
  * Send a user message and trigger a turn.