@ponythewhite/base-context 1.0.0 → 1.0.1

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 (285) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/NOTICE +0 -5
  3. package/README.md +44 -27
  4. package/dist/NOTICE +0 -5
  5. package/dist/base-context-runtime/pyproject.toml +1 -1
  6. package/dist/base-context-runtime/src/rlm/__init__.py +7 -5
  7. package/dist/base-context-runtime/test/test_subagent_registry.py +28 -1
  8. package/dist/base-context-runtime/uv.lock +1 -1
  9. package/dist/build-info.json +1 -1
  10. package/dist/bundle/amazon-bedrock.js +21 -0
  11. package/dist/bundle/{anthropic-YY4S534V.js → anthropic-UV5GZDGU.js} +5 -5
  12. package/dist/bundle/{azure-openai-responses-JRP6MIM3.js → azure-openai-responses-WSNPXLYC.js} +6 -6
  13. package/dist/bundle/{bundled-modules-P5HARVZA.js → bundled-modules-TXUMJ2XQ.js} +71 -16
  14. package/dist/bundle/chunk-27QCJ2AZ.js +2578 -0
  15. package/dist/bundle/{chunk-MZHTNNVA.js → chunk-4GXPNXOJ.js} +8 -0
  16. package/dist/bundle/{chunk-SC5KG5R4.js → chunk-DGNX7HQ3.js} +1 -7
  17. package/dist/bundle/{chunk-A53O363M.js → chunk-GRJFXLBM.js} +0 -1
  18. package/dist/bundle/chunk-HKINIBP4.js +29 -0
  19. package/dist/bundle/{chunk-UDSW6FNG.js → chunk-KTNETTHI.js} +1 -1
  20. package/dist/bundle/{chunk-BYVP7LWV.js → chunk-S3INFPZZ.js} +1861 -4662
  21. package/dist/bundle/{chunk-73DCPU3D.js → chunk-V3L54UD6.js} +1019 -3427
  22. package/dist/bundle/{chunk-U7AUVG3B.js → chunk-VSIYFWYI.js} +24 -6
  23. package/dist/bundle/{chunk-IW77OXFS.js → chunk-W46VZFI6.js} +0 -2099
  24. package/dist/bundle/{cli-main-O4X7GFGY.js → cli-main-BYMSRPH6.js} +8 -6
  25. package/dist/bundle/cli.js +2 -2
  26. package/dist/bundle/{google-AUTVGDGZ.js → google-T32FMD4G.js} +6 -6
  27. package/dist/bundle/{google-vertex-Q75D7RKS.js → google-vertex-56KP6I3B.js} +3 -3
  28. package/dist/bundle/{main-XKOW2BV6.js → main-ODOYCEQC.js} +7 -5
  29. package/dist/bundle/{mistral-7ESB7QUD.js → mistral-WGBMYIVU.js} +5 -5
  30. package/dist/bundle/{openai-codex-responses-LV3QRPN4.js → openai-codex-responses-PIV2RQ3G.js} +6 -6
  31. package/dist/bundle/{openai-completions-OJECLPXJ.js → openai-completions-64C3JPR4.js} +11 -22
  32. package/dist/bundle/{openai-responses-FN6HZMBC.js → openai-responses-UI7RSTDV.js} +6 -6
  33. package/dist/cli/args.d.ts.map +1 -1
  34. package/dist/cli/args.js +108 -59
  35. package/dist/cli/args.js.map +1 -1
  36. package/dist/cli/daemon-ps.d.ts +4 -3
  37. package/dist/cli/daemon-ps.d.ts.map +1 -1
  38. package/dist/cli/daemon-ps.js +6 -1
  39. package/dist/cli/daemon-ps.js.map +1 -1
  40. package/dist/cli/product-doctor.d.ts +0 -1
  41. package/dist/cli/product-doctor.d.ts.map +1 -1
  42. package/dist/cli/product-doctor.js +6 -3
  43. package/dist/cli/product-doctor.js.map +1 -1
  44. package/dist/config.d.ts +0 -3
  45. package/dist/config.d.ts.map +1 -1
  46. package/dist/config.js +0 -8
  47. package/dist/config.js.map +1 -1
  48. package/dist/core/agent-session-config.d.ts +1 -2
  49. package/dist/core/agent-session-config.d.ts.map +1 -1
  50. package/dist/core/agent-session-config.js +0 -3
  51. package/dist/core/agent-session-config.js.map +1 -1
  52. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  53. package/dist/core/agent-session-runtime.js +5 -4
  54. package/dist/core/agent-session-runtime.js.map +1 -1
  55. package/dist/core/agent-session-services.d.ts +5 -3
  56. package/dist/core/agent-session-services.d.ts.map +1 -1
  57. package/dist/core/agent-session-services.js +2 -27
  58. package/dist/core/agent-session-services.js.map +1 -1
  59. package/dist/core/agent-session.d.ts +10 -6
  60. package/dist/core/agent-session.d.ts.map +1 -1
  61. package/dist/core/agent-session.js +107 -107
  62. package/dist/core/agent-session.js.map +1 -1
  63. package/dist/core/auth-storage.d.ts +8 -35
  64. package/dist/core/auth-storage.d.ts.map +1 -1
  65. package/dist/core/auth-storage.js +33 -243
  66. package/dist/core/auth-storage.js.map +1 -1
  67. package/dist/core/cron-jobs.d.ts.map +1 -1
  68. package/dist/core/cron-jobs.js +7 -1
  69. package/dist/core/cron-jobs.js.map +1 -1
  70. package/dist/core/inference-coordinator.d.ts +6 -1
  71. package/dist/core/inference-coordinator.d.ts.map +1 -1
  72. package/dist/core/inference-coordinator.js +18 -2
  73. package/dist/core/inference-coordinator.js.map +1 -1
  74. package/dist/core/kernel/bootstrap.d.ts.map +1 -1
  75. package/dist/core/kernel/bootstrap.js +2 -2
  76. package/dist/core/kernel/bootstrap.js.map +1 -1
  77. package/dist/core/kernel/repl-manager.d.ts +2 -0
  78. package/dist/core/kernel/repl-manager.d.ts.map +1 -1
  79. package/dist/core/kernel/repl-manager.js +44 -1
  80. package/dist/core/kernel/repl-manager.js.map +1 -1
  81. package/dist/core/logging.d.ts +4 -3
  82. package/dist/core/logging.d.ts.map +1 -1
  83. package/dist/core/logging.js +6 -6
  84. package/dist/core/logging.js.map +1 -1
  85. package/dist/core/mcp/mcp-manager.d.ts.map +1 -1
  86. package/dist/core/mcp/mcp-manager.js +3 -3
  87. package/dist/core/mcp/mcp-manager.js.map +1 -1
  88. package/dist/core/model-registry.d.ts +1 -16
  89. package/dist/core/model-registry.d.ts.map +1 -1
  90. package/dist/core/model-registry.js +88 -196
  91. package/dist/core/model-registry.js.map +1 -1
  92. package/dist/core/model-resolver.d.ts +2 -19
  93. package/dist/core/model-resolver.d.ts.map +1 -1
  94. package/dist/core/model-resolver.js +36 -266
  95. package/dist/core/model-resolver.js.map +1 -1
  96. package/dist/core/provider-contracts.d.ts +5 -6
  97. package/dist/core/provider-contracts.d.ts.map +1 -1
  98. package/dist/core/provider-contracts.js +25 -36
  99. package/dist/core/provider-contracts.js.map +1 -1
  100. package/dist/core/provider-display-names.d.ts.map +1 -1
  101. package/dist/core/provider-display-names.js +0 -2
  102. package/dist/core/provider-display-names.js.map +1 -1
  103. package/dist/core/rlm-max-subagents.d.ts +32 -0
  104. package/dist/core/rlm-max-subagents.d.ts.map +1 -0
  105. package/dist/core/rlm-max-subagents.js +50 -0
  106. package/dist/core/rlm-max-subagents.js.map +1 -0
  107. package/dist/core/rlm-runtime.d.ts +3 -3
  108. package/dist/core/rlm-runtime.d.ts.map +1 -1
  109. package/dist/core/rlm-runtime.js.map +1 -1
  110. package/dist/core/sdk.d.ts +4 -3
  111. package/dist/core/sdk.d.ts.map +1 -1
  112. package/dist/core/sdk.js +27 -14
  113. package/dist/core/sdk.js.map +1 -1
  114. package/dist/core/settings-manager.d.ts +3 -16
  115. package/dist/core/settings-manager.d.ts.map +1 -1
  116. package/dist/core/settings-manager.js +12 -44
  117. package/dist/core/settings-manager.js.map +1 -1
  118. package/dist/core/slash-commands.d.ts.map +1 -1
  119. package/dist/core/slash-commands.js +6 -6
  120. package/dist/core/slash-commands.js.map +1 -1
  121. package/dist/index.d.ts +1 -1
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js.map +1 -1
  124. package/dist/installer.mjs +2 -3
  125. package/dist/main.d.ts.map +1 -1
  126. package/dist/main.js +39 -34
  127. package/dist/main.js.map +1 -1
  128. package/dist/modes/acp/acp-mode.d.ts.map +1 -1
  129. package/dist/modes/acp/acp-mode.js +1 -1
  130. package/dist/modes/acp/acp-mode.js.map +1 -1
  131. package/dist/modes/agent-connection/daemon-agent-connection.d.ts +6 -2
  132. package/dist/modes/agent-connection/daemon-agent-connection.d.ts.map +1 -1
  133. package/dist/modes/agent-connection/daemon-agent-connection.js +13 -2
  134. package/dist/modes/agent-connection/daemon-agent-connection.js.map +1 -1
  135. package/dist/modes/agent-connection/in-process-agent-connection.d.ts +2 -0
  136. package/dist/modes/agent-connection/in-process-agent-connection.d.ts.map +1 -1
  137. package/dist/modes/agent-connection/in-process-agent-connection.js +6 -0
  138. package/dist/modes/agent-connection/in-process-agent-connection.js.map +1 -1
  139. package/dist/modes/agent-connection/types.d.ts +3 -0
  140. package/dist/modes/agent-connection/types.d.ts.map +1 -1
  141. package/dist/modes/agent-connection/types.js.map +1 -1
  142. package/dist/modes/agents-view/agents-view-mode.d.ts.map +1 -1
  143. package/dist/modes/agents-view/agents-view-mode.js +2 -19
  144. package/dist/modes/agents-view/agents-view-mode.js.map +1 -1
  145. package/dist/modes/daemon/daemon-mode.d.ts +5 -0
  146. package/dist/modes/daemon/daemon-mode.d.ts.map +1 -1
  147. package/dist/modes/daemon/daemon-mode.js +107 -12
  148. package/dist/modes/daemon/daemon-mode.js.map +1 -1
  149. package/dist/modes/daemon/daemon-protocol.d.ts +194 -165
  150. package/dist/modes/daemon/daemon-protocol.d.ts.map +1 -1
  151. package/dist/modes/daemon/daemon-protocol.js +16 -11
  152. package/dist/modes/daemon/daemon-protocol.js.map +1 -1
  153. package/dist/modes/daemon/daemon-rlm-capacity-coordinator.d.ts +19 -0
  154. package/dist/modes/daemon/daemon-rlm-capacity-coordinator.d.ts.map +1 -0
  155. package/dist/modes/daemon/daemon-rlm-capacity-coordinator.js +74 -0
  156. package/dist/modes/daemon/daemon-rlm-capacity-coordinator.js.map +1 -0
  157. package/dist/modes/daemon/daemon-rlm-capacity.d.ts +19 -0
  158. package/dist/modes/daemon/daemon-rlm-capacity.d.ts.map +1 -0
  159. package/dist/modes/daemon/daemon-rlm-capacity.js +85 -0
  160. package/dist/modes/daemon/daemon-rlm-capacity.js.map +1 -0
  161. package/dist/modes/daemon/daemon-session-summarizer.d.ts +2 -3
  162. package/dist/modes/daemon/daemon-session-summarizer.d.ts.map +1 -1
  163. package/dist/modes/daemon/daemon-session-summarizer.js +32 -23
  164. package/dist/modes/daemon/daemon-session-summarizer.js.map +1 -1
  165. package/dist/modes/daemon/daemon-state-root.d.ts +15 -0
  166. package/dist/modes/daemon/daemon-state-root.d.ts.map +1 -0
  167. package/dist/modes/daemon/daemon-state-root.js +40 -0
  168. package/dist/modes/daemon/daemon-state-root.js.map +1 -0
  169. package/dist/modes/daemon/daemon-supervisor-ownership.d.ts +2 -0
  170. package/dist/modes/daemon/daemon-supervisor-ownership.d.ts.map +1 -1
  171. package/dist/modes/daemon/daemon-supervisor-ownership.js +27 -0
  172. package/dist/modes/daemon/daemon-supervisor-ownership.js.map +1 -1
  173. package/dist/modes/daemon/daemon-supervisor.d.ts +10 -1
  174. package/dist/modes/daemon/daemon-supervisor.d.ts.map +1 -1
  175. package/dist/modes/daemon/daemon-supervisor.js +213 -20
  176. package/dist/modes/daemon/daemon-supervisor.js.map +1 -1
  177. package/dist/modes/daemon/daemon-worker-protocol.d.ts +28 -1
  178. package/dist/modes/daemon/daemon-worker-protocol.d.ts.map +1 -1
  179. package/dist/modes/daemon/daemon-worker-protocol.js +16 -2
  180. package/dist/modes/daemon/daemon-worker-protocol.js.map +1 -1
  181. package/dist/modes/daemon/saved-session-catalog.d.ts.map +1 -1
  182. package/dist/modes/daemon/saved-session-catalog.js +2 -0
  183. package/dist/modes/daemon/saved-session-catalog.js.map +1 -1
  184. package/dist/modes/interactive/auth-flows.d.ts +0 -6
  185. package/dist/modes/interactive/auth-flows.d.ts.map +1 -1
  186. package/dist/modes/interactive/auth-flows.js +6 -126
  187. package/dist/modes/interactive/auth-flows.js.map +1 -1
  188. package/dist/modes/interactive/components/configuration-menu.d.ts +3 -0
  189. package/dist/modes/interactive/components/configuration-menu.d.ts.map +1 -1
  190. package/dist/modes/interactive/components/configuration-menu.js +13 -2
  191. package/dist/modes/interactive/components/configuration-menu.js.map +1 -1
  192. package/dist/modes/interactive/components/footer.d.ts +1 -1
  193. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  194. package/dist/modes/interactive/components/footer.js +2 -2
  195. package/dist/modes/interactive/components/footer.js.map +1 -1
  196. package/dist/modes/interactive/components/index.d.ts +0 -1
  197. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  198. package/dist/modes/interactive/components/index.js +0 -1
  199. package/dist/modes/interactive/components/index.js.map +1 -1
  200. package/dist/modes/interactive/components/login-dialog.d.ts +0 -1
  201. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  202. package/dist/modes/interactive/components/login-dialog.js +3 -40
  203. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  204. package/dist/modes/interactive/components/model-selector.d.ts +2 -0
  205. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  206. package/dist/modes/interactive/components/model-selector.js +13 -2
  207. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  208. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  209. package/dist/modes/interactive/components/oauth-selector.js +2 -11
  210. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  211. package/dist/modes/interactive/feature-hints.d.ts.map +1 -1
  212. package/dist/modes/interactive/feature-hints.js +0 -4
  213. package/dist/modes/interactive/feature-hints.js.map +1 -1
  214. package/dist/modes/interactive/interactive-mode.d.ts +3 -12
  215. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  216. package/dist/modes/interactive/interactive-mode.js +81 -507
  217. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  218. package/dist/modes/interactive/onboarding.d.ts +0 -3
  219. package/dist/modes/interactive/onboarding.d.ts.map +1 -1
  220. package/dist/modes/interactive/onboarding.js +0 -17
  221. package/dist/modes/interactive/onboarding.js.map +1 -1
  222. package/dist/modes/rpc/rpc-client.d.ts +2 -1
  223. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  224. package/dist/modes/rpc/rpc-client.js +24 -11
  225. package/dist/modes/rpc/rpc-client.js.map +1 -1
  226. package/dist/node/amazon-bedrock.d.ts +2 -0
  227. package/dist/node/amazon-bedrock.d.ts.map +1 -0
  228. package/dist/node/amazon-bedrock.js +6 -0
  229. package/dist/node/amazon-bedrock.js.map +1 -0
  230. package/dist/product-identity.d.ts +0 -1
  231. package/dist/product-identity.d.ts.map +1 -1
  232. package/dist/product-identity.js +0 -1
  233. package/dist/product-identity.js.map +1 -1
  234. package/docs/development.md +1 -1
  235. package/docs/fork-philosophy.md +4 -8
  236. package/docs/installation.md +83 -62
  237. package/docs/providers.md +23 -25
  238. package/docs/quickstart.md +19 -10
  239. package/docs/rlm-runtime.md +13 -5
  240. package/docs/rpc.md +4 -4
  241. package/docs/sdk.md +20 -11
  242. package/docs/sessions.md +0 -1
  243. package/docs/settings.md +9 -42
  244. package/docs/skills.md +0 -1
  245. package/docs/upstream-0.9.5.md +171 -0
  246. package/docs/usage.md +14 -10
  247. package/package.json +4 -4
  248. package/dist/core/agent-traces.d.ts +0 -149
  249. package/dist/core/agent-traces.d.ts.map +0 -1
  250. package/dist/core/agent-traces.js +0 -904
  251. package/dist/core/agent-traces.js.map +0 -1
  252. package/dist/core/prime-inference-auth.d.ts +0 -70
  253. package/dist/core/prime-inference-auth.d.ts.map +0 -1
  254. package/dist/core/prime-inference-auth.js +0 -352
  255. package/dist/core/prime-inference-auth.js.map +0 -1
  256. package/dist/core/prime-inference-model-selection.d.ts +0 -16
  257. package/dist/core/prime-inference-model-selection.d.ts.map +0 -1
  258. package/dist/core/prime-inference-model-selection.js +0 -16
  259. package/dist/core/prime-inference-model-selection.js.map +0 -1
  260. package/dist/core/prime-inference-models.d.ts +0 -6
  261. package/dist/core/prime-inference-models.d.ts.map +0 -1
  262. package/dist/core/prime-inference-models.js +0 -62
  263. package/dist/core/prime-inference-models.js.map +0 -1
  264. package/dist/core/telemetry.d.ts +0 -95
  265. package/dist/core/telemetry.d.ts.map +0 -1
  266. package/dist/core/telemetry.js +0 -637
  267. package/dist/core/telemetry.js.map +0 -1
  268. package/dist/modes/interactive/components/prime-onboarding-splash.d.ts +0 -39
  269. package/dist/modes/interactive/components/prime-onboarding-splash.d.ts.map +0 -1
  270. package/dist/modes/interactive/components/prime-onboarding-splash.js +0 -286
  271. package/dist/modes/interactive/components/prime-onboarding-splash.js.map +0 -1
  272. package/dist/modes/interactive/components/prime-team-selector.d.ts +0 -30
  273. package/dist/modes/interactive/components/prime-team-selector.d.ts.map +0 -1
  274. package/dist/modes/interactive/components/prime-team-selector.js +0 -166
  275. package/dist/modes/interactive/components/prime-team-selector.js.map +0 -1
  276. package/dist/skills/prime-intellect/SKILL.md +0 -87
  277. package/dist/skills/prime-intellect/references/compute.md +0 -45
  278. package/dist/skills/prime-intellect/references/environments.md +0 -73
  279. package/dist/skills/prime-intellect/references/inference.md +0 -47
  280. package/dist/skills/prime-intellect/references/sandboxes.md +0 -75
  281. package/skills/prime-intellect/SKILL.md +0 -87
  282. package/skills/prime-intellect/references/compute.md +0 -45
  283. package/skills/prime-intellect/references/environments.md +0 -73
  284. package/skills/prime-intellect/references/inference.md +0 -47
  285. package/skills/prime-intellect/references/sandboxes.md +0 -75
@@ -126,6 +126,8 @@ export declare class InProcessAgentConnection implements AgentConnection {
126
126
  exportToHtml(outputPath?: string): Promise<string>;
127
127
  exportToJsonl(outputPath?: string): Promise<string>;
128
128
  setSessionName(name: string): Promise<void>;
129
+ getRlmMaxSubagentsStatus(): Promise<import("../../index.js").RlmMaxSubagentsStatus>;
130
+ setRlmMaxSubagents(maxSubagents: number): Promise<import("../../index.js").RlmMaxSubagentsStatus>;
129
131
  getRlmMaxDepthStatus(): Promise<import("../../core/rlm-max-depth.js").RlmMaxDepthStatus>;
130
132
  setRlmMaxDepth(maxDepth: number, options?: {
131
133
  global?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"in-process-agent-connection.d.ts","sourceRoot":"","sources":["../../../src/modes/agent-connection/in-process-agent-connection.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from \"node:path\";\nimport { type AgentMessage, AgentOutputLimitError, type ThinkingLevel } from \"@ponythewhite/base-context-agent\";\nimport type { ImageContent, ServiceTier, Transport } from \"@ponythewhite/base-context-ai\";\nimport type { AgentSessionMessageReceipt, AgentSessionMessageSafetyStatus } from \"../../core/agent-messages.js\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.js\";\nimport type { AgentAutonomousStatus } from \"../../core/autonomous.js\";\nimport type { BashResult } from \"../../core/bash-executor.js\";\nimport type { CompactionResult } from \"../../core/compaction/index.js\";\nimport type { ContextTreeNode } from \"../../core/context-tree.js\";\nimport type {\n\tAgentCronJob,\n\tAgentHeartbeatDeliveryMode,\n\tAgentHeartbeatManagementAction,\n\tAgentHeartbeatUpdateAction,\n} from \"../../core/cron-jobs.js\";\nimport type { ExtensionUIContext } from \"../../core/extensions/types.js\";\nimport type { AcpMcpServerConfig } from \"../../core/mcp/acp-mcp-types.js\";\nimport type { RefinementResult } from \"../../core/refinement/index.js\";\nimport { type DeleteSessionFileResult, deleteSessionFile } from \"../../core/session-file-actions.js\";\nimport { readUserMessagesForForking } from \"../../core/session-fork-messages.js\";\nimport { SessionManager } from \"../../core/session-manager.js\";\nimport type { SessionStats } from \"../../core/session-stats.js\";\nimport { readSessionTree } from \"../../core/session-tree.js\";\nimport { type SideQuestionRun, startSideQuestion } from \"../../core/side-question.js\";\nimport { waitForHeadlessCompletion } from \"../headless-completion.js\";\nimport {\n\tcreateAgentConnectionCommands,\n\tcreateAgentConnectionResourceSnapshot,\n\tcreateAgentConnectionSnapshot,\n\tcreateAgentConnectionState,\n} from \"./snapshot.js\";\nimport { createAgentConnectionToolDefinition } from \"./tool-definition.js\";\nimport type {\n\tAgentConnection,\n\tAgentConnectionBeforeSessionInvalidateListener,\n\tAgentConnectionEvent,\n\tAgentConnectionEventListener,\n\tAgentConnectionExecuteBashOptions,\n\tAgentConnectionExtensionUiResponse,\n\tAgentConnectionForkOptions,\n\tAgentConnectionHeadlessCompletionOptions,\n\tAgentConnectionHeartbeat,\n\tAgentConnectionModel,\n\tAgentConnectionModelCatalog,\n\tAgentConnectionModelCycleResult,\n\tAgentConnectionNavigateTreeOptions,\n\tAgentConnectionNavigateTreeResult,\n\tAgentConnectionNewSessionOptions,\n\tAgentConnectionPromptOptions,\n\tAgentConnectionQueuedMessageLane,\n\tAgentConnectionQueuedMessageMutation,\n\tAgentConnectionQueuedMessageMutationStatus,\n\tAgentConnectionQueueMode,\n\tAgentConnectionQueueState,\n\tAgentConnectionResourceSnapshot,\n\tAgentConnectionRlmChildAgentSnapshot,\n\tAgentConnectionSavedSessionInfo,\n\tAgentConnectionSavedSessionScope,\n\tAgentConnectionScopedModel,\n\tAgentConnectionSessionContext,\n\tAgentConnectionSessionHeader,\n\tAgentConnectionSessionInputPause,\n\tAgentConnectionSessionListCallbacks,\n\tAgentConnectionSessionTreeNode,\n\tAgentConnectionSessionWatcher,\n\tAgentConnectionSideQuestionTurn,\n\tAgentConnectionSlashCommand,\n\tAgentConnectionSnapshot,\n\tAgentConnectionState,\n\tAgentConnectionSwitchSessionOptions,\n\tAgentConnectionToolDefinition,\n\tAgentConnectionUserMessage,\n} from \"./types.js\";\n\nexport interface InProcessHeadlessExtensionOptions {\n\tuiContext?: ExtensionUIContext;\n\tshutdownHandler?: () => void;\n}\n\nexport class InProcessAgentConnection implements AgentConnection {\n\tprivate readonly listeners = new Set<AgentConnectionEventListener>();\n\tprivate readonly beforeSessionInvalidateListeners = new Set<AgentConnectionBeforeSessionInvalidateListener>();\n\tprivate readonly sideQuestionRuns = new Map<string, SideQuestionRun>();\n\tprivate readonly sessionInputPauses = new Map<string, AgentConnectionSessionInputPause>();\n\tprivate headlessExtensionOptions: InProcessHeadlessExtensionOptions | undefined;\n\tprivate unsubscribeSessionEvents: (() => void) | undefined;\n\n\tconstructor(private readonly runtimeHost: AgentSessionRuntime) {\n\t\tthis.bindCurrentSessionEvents();\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(() => {\n\t\t\t\tthis.abortAllSideQuestions();\n\t\t\t\tfor (const listener of [...this.beforeSessionInvalidateListeners]) {\n\t\t\t\t\tlistener();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(async () => {\n\t\t\tthis.bindCurrentSessionEvents();\n\t\t\tif (this.headlessExtensionOptions) {\n\t\t\t\tawait this.bindCurrentSessionExtensions();\n\t\t\t}\n\t\t\tconst state = createAgentConnectionState(this.runtimeHost);\n\t\t\tconst messages = [...this.runtimeHost.session.messages];\n\t\t\tawait this.emit({\n\t\t\t\ttype: \"session_replaced\",\n\t\t\t\tstate: await state,\n\t\t\t\tmessages,\n\t\t\t});\n\t\t});\n\t}\n\n\tasync bindHeadlessExtensions(options: InProcessHeadlessExtensionOptions = {}): Promise<void> {\n\t\tthis.headlessExtensionOptions = options;\n\t\tawait this.bindCurrentSessionExtensions();\n\t}\n\n\tsupportsAcpMcpServers(): boolean {\n\t\treturn true;\n\t}\n\n\tasync replaceAcpMcpServers(servers: readonly AcpMcpServerConfig[], ownerId: string): Promise<void> {\n\t\tthis.runtimeHost.session.replaceAcpMcpServers(servers, ownerId);\n\t}\n\n\tasync releaseAcpMcpServers(ownerId: string, serverNames: readonly string[]): Promise<void> {\n\t\tawait this.runtimeHost.session.releaseAcpMcpServers(ownerId, serverNames);\n\t}\n\n\tsubscribe(listener: AgentConnectionEventListener): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tonBeforeSessionInvalidate(listener: AgentConnectionBeforeSessionInvalidateListener): () => void {\n\t\tthis.beforeSessionInvalidateListeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.beforeSessionInvalidateListeners.delete(listener);\n\t\t};\n\t}\n\n\tasync getState(): Promise<AgentConnectionState> {\n\t\treturn createAgentConnectionState(this.runtimeHost);\n\t}\n\n\tasync getInitialSnapshot(): Promise<AgentConnectionSnapshot> {\n\t\treturn createAgentConnectionSnapshot(this.runtimeHost);\n\t}\n\n\tasync getRlmChildSnapshots(): Promise<AgentConnectionRlmChildAgentSnapshot[]> {\n\t\treturn this.session.getRlmChildSnapshots();\n\t}\n\n\tasync getMessages(): Promise<AgentMessage[]> {\n\t\treturn this.session.state.messages;\n\t}\n\n\tasync getSessionHeader(): Promise<AgentConnectionSessionHeader | undefined> {\n\t\treturn this.session.sessionManager.getHeader() ?? undefined;\n\t}\n\n\tasync getCommands(): Promise<AgentConnectionSlashCommand[]> {\n\t\treturn createAgentConnectionCommands(this.session);\n\t}\n\n\tasync getResourceSnapshot(): Promise<AgentConnectionResourceSnapshot> {\n\t\treturn createAgentConnectionResourceSnapshot(this.session);\n\t}\n\n\tasync getAvailableModels(): Promise<AgentConnectionModel[]> {\n\t\treturn this.session.modelRegistry.refreshAvailableModels();\n\t}\n\n\tasync getModelCatalog(): Promise<AgentConnectionModelCatalog> {\n\t\treturn this.session.modelRegistry.refreshModelCatalog();\n\t}\n\n\tasync getSessionStats(): Promise<SessionStats> {\n\t\treturn this.session.getSessionStats();\n\t}\n\n\tasync getContextTree(): Promise<ContextTreeNode> {\n\t\treturn this.session.getContextTree();\n\t}\n\n\tasync getSessionContext(): Promise<AgentConnectionSessionContext> {\n\t\treturn this.session.buildSessionContext();\n\t}\n\n\tasync getSessionTree(): Promise<{ tree: AgentConnectionSessionTreeNode[]; leafId: string | null }> {\n\t\treturn readSessionTree(this.session.sessionManager);\n\t}\n\n\tasync listSavedSessions(\n\t\tscope: AgentConnectionSavedSessionScope,\n\t\tcallbacks?: AgentConnectionSessionListCallbacks,\n\t): Promise<AgentConnectionSavedSessionInfo[]> {\n\t\t// In-memory managers hold \"\" for \"no explicit session dir\"; pass undefined so\n\t\t// list()/listAll() fall back to the default directories instead of scanning \"\".\n\t\tconst sessionDir = this.session.sessionManager.getSessionDir() || undefined;\n\t\tif (scope === \"current\") {\n\t\t\treturn SessionManager.list(this.session.sessionManager.getCwd(), sessionDir, callbacks);\n\t\t}\n\t\treturn SessionManager.listAll(callbacks, sessionDir);\n\t}\n\n\tasync getQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn {\n\t\t\tsteering: [...this.session.getSteeringMessagePreviews()],\n\t\t\tfollowUp: [...this.session.getFollowUpMessagePreviews()],\n\t\t};\n\t}\n\n\tasync mutateQueuedMessage(\n\t\tlane: AgentConnectionQueuedMessageLane,\n\t\tindex: number,\n\t\texpectedText: string,\n\t\tmutation: AgentConnectionQueuedMessageMutation,\n\t): Promise<AgentConnectionQueuedMessageMutationStatus> {\n\t\treturn this.session.mutateQueuedMessage(lane, index, expectedText, mutation);\n\t}\n\n\tasync clearQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn this.session.clearQueue();\n\t}\n\n\tasync abortAndClearQueue(): Promise<AgentConnectionQueueState> {\n\t\tconst queue = this.session.clearQueue();\n\t\tthis.session.requestAbort();\n\t\treturn queue;\n\t}\n\n\tasync acquireSessionInputPause(leaseKey: string): Promise<AgentConnectionSessionInputPause> {\n\t\tconst existing = this.sessionInputPauses.get(leaseKey);\n\t\tif (existing) return existing;\n\t\tconst pause = this.session.acquireSessionInputPause();\n\t\tlet released = false;\n\t\tconst lease: AgentConnectionSessionInputPause = {\n\t\t\trelease: async () => {\n\t\t\t\tif (released) return;\n\t\t\t\tpause.release();\n\t\t\t\treleased = true;\n\t\t\t\tif (this.sessionInputPauses.get(leaseKey) === lease) this.sessionInputPauses.delete(leaseKey);\n\t\t\t},\n\t\t};\n\t\tthis.sessionInputPauses.set(leaseKey, lease);\n\t\treturn lease;\n\t}\n\n\tasync listCronJobs(_options: { includeInactive?: boolean } = {}): Promise<AgentCronJob[]> {\n\t\treturn [];\n\t}\n\n\tasync listHeartbeats(): Promise<AgentConnectionHeartbeat[]> {\n\t\treturn [];\n\t}\n\n\tasync manageHeartbeat(\n\t\t_activeSessionId: string,\n\t\t_jobId: string,\n\t\t_action: AgentHeartbeatManagementAction,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync addCronJob(_schedule: string, _prompt: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync cancelCronJob(_jobId: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync getHeartbeat(): Promise<AgentCronJob | undefined> {\n\t\treturn undefined;\n\t}\n\n\tasync setHeartbeat(\n\t\t_schedule: string,\n\t\t_instruction: string,\n\t\t_deliveryMode?: AgentHeartbeatDeliveryMode,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync updateHeartbeat(_action: AgentHeartbeatUpdateAction): Promise<AgentCronJob | undefined> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync sendAgentMessage(_targetActiveSessionId: string, _message: string): Promise<AgentSessionMessageReceipt> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getAgentMessageStatus(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync pauseAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync resumeAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync clearAgentMessages(): Promise<number> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getUserMessagesForForking(): Promise<AgentConnectionUserMessage[]> {\n\t\treturn readUserMessagesForForking(this.session.sessionManager);\n\t}\n\n\tasync getLastAssistantText(): Promise<string | undefined> {\n\t\treturn this.session.getLastAssistantText();\n\t}\n\n\tasync getSystemPrompt(): Promise<string> {\n\t\treturn this.session.systemPrompt;\n\t}\n\n\tasync getToolDefinition(name: string): Promise<AgentConnectionToolDefinition | undefined> {\n\t\treturn createAgentConnectionToolDefinition(this.session.getToolDefinition(name));\n\t}\n\n\tasync setSessionEntryLabel(entryId: string, label: string | undefined): Promise<void> {\n\t\tawait this.session.sessionManager.appendLabelChange(entryId, label);\n\t}\n\n\tasync respondToExtensionUiRequest(_requestId: string, _response: AgentConnectionExtensionUiResponse): Promise<void> {\n\t\t// In-process extension UI requests are handled directly by InteractiveMode.\n\t}\n\n\tasync prompt(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tlet accepted = false;\n\t\t\tconst resolveOnce = () => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst rejectOnce = (error: unknown) => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst prompt = this.session.prompt(message, {\n\t\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\tpreflightResult: (success) => {\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\taccepted = true;\n\t\t\t\t\t\tresolveOnce();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t\tvoid prompt.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (accepted) resolveOnce();\n\t\t\t\t\telse rejectOnce(new Error(\"Prompt was not accepted by the session.\"));\n\t\t\t\t},\n\t\t\t\t(error: unknown) => {\n\t\t\t\t\tif (!accepted) rejectOnce(error);\n\t\t\t\t\t// Output-limit refusals already have their own refusal-only agent_end.\n\t\t\t\t\telse if (!(error instanceof AgentOutputLimitError)) {\n\t\t\t\t\t\tvoid this.emit({\n\t\t\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\t\t\textensionPath: \"<session-input>\",\n\t\t\t\t\t\t\tevent: \"prompt_completion\",\n\t\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tasync promptAndWait(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait this.session.promptAndWait(message, {\n\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t});\n\t}\n\n\tasync startSideQuestion(\n\t\tid: string,\n\t\tquestion: string,\n\t\tpreviousTurns?: AgentConnectionSideQuestionTurn[],\n\t): Promise<void> {\n\t\tif (this.sideQuestionRuns.has(id)) {\n\t\t\tthrow new Error(`Side question already exists: ${id}`);\n\t\t}\n\t\tconst run = startSideQuestion(\n\t\t\tthis.session.agent,\n\t\t\tid,\n\t\t\tquestion,\n\t\t\t(event) => this.emit({ type: \"side_question_event\", event }),\n\t\t\tpreviousTurns,\n\t\t);\n\t\tthis.sideQuestionRuns.set(id, run);\n\t\tconst removeRun = () => {\n\t\t\tthis.sideQuestionRuns.delete(id);\n\t\t};\n\t\tvoid run.done.then(removeRun, removeRun);\n\t}\n\n\tasync abortSideQuestion(id: string): Promise<boolean> {\n\t\tconst run = this.sideQuestionRuns.get(id);\n\t\tif (!run) {\n\t\t\treturn false;\n\t\t}\n\t\trun.abort();\n\t\treturn true;\n\t}\n\n\tasync steer(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.steer(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync followUp(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.followUp(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync abort(): Promise<void> {\n\t\tthis.session.requestAbort();\n\t}\n\n\tasync cancelRlmChild(childId: string): Promise<boolean> {\n\t\treturn this.session.cancelRlmChildRun(childId);\n\t}\n\n\tasync waitForIdle(): Promise<void> {\n\t\tawait this.session.waitForIdle();\n\t}\n\n\tasync waitForHeadlessCompletion(options?: AgentConnectionHeadlessCompletionOptions): Promise<AgentAutonomousStatus> {\n\t\treturn waitForHeadlessCompletion(this.session, options);\n\t}\n\n\tasync executeBash(command: string, options?: AgentConnectionExecuteBashOptions): Promise<void> {\n\t\tawait this.session.runUserBash(command, options);\n\t}\n\n\tasync executeBashAndWait(command: string): Promise<BashResult> {\n\t\treturn this.session.executeBash(command);\n\t}\n\n\tasync abortBash(): Promise<void> {\n\t\tthis.session.abortBash();\n\t}\n\n\tasync setModel(provider: string, modelId: string): Promise<AgentConnectionModel> {\n\t\tconst availableModels = await this.session.modelRegistry.refreshAvailableModels();\n\t\tconst model = availableModels.find((candidate) => {\n\t\t\treturn candidate.provider === provider && candidate.id === modelId;\n\t\t});\n\t\tif (!model) {\n\t\t\tthrow new Error(`Model not found: ${provider}/${modelId}`);\n\t\t}\n\t\tawait this.session.setModel(model);\n\t\treturn model;\n\t}\n\n\tasync cycleModel(\n\t\tdirection: \"forward\" | \"backward\" = \"forward\",\n\t): Promise<AgentConnectionModelCycleResult | undefined> {\n\t\treturn this.session.cycleModel(direction);\n\t}\n\n\tasync setScopedModels(scopedModels: AgentConnectionScopedModel[]): Promise<void> {\n\t\tthis.session.setScopedModels(scopedModels);\n\t}\n\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tawait this.session.setThinkingLevel(level);\n\t}\n\n\tasync setServiceTier(serviceTier: ServiceTier): Promise<void> {\n\t\tawait this.session.setServiceTier(serviceTier);\n\t}\n\n\tasync cycleThinkingLevel(): Promise<ThinkingLevel | undefined> {\n\t\treturn this.session.cycleThinkingLevel();\n\t}\n\n\tasync setTransport(transport: Transport): Promise<void> {\n\t\tthis.session.settingsManager.setTransport(transport);\n\t\tthis.session.agent.transport = transport;\n\t}\n\n\tasync setSteeringMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setSteeringMode(mode);\n\t}\n\n\tasync setFollowUpMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setFollowUpMode(mode);\n\t}\n\n\tasync setAutoCompactionEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoCompactionEnabled(enabled);\n\t}\n\n\tasync setAutoRetryEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoRetryEnabled(enabled);\n\t}\n\n\tasync compact(customInstructions?: string): Promise<CompactionResult> {\n\t\treturn this.session.compact(customInstructions);\n\t}\n\n\tasync refine(\n\t\toptions: { instructions?: string; rollbackId?: string; global?: boolean } = {},\n\t): Promise<RefinementResult> {\n\t\treturn this.session.refine(options);\n\t}\n\n\tasync abortCompaction(): Promise<void> {\n\t\tthis.session.abortCompaction();\n\t}\n\n\tasync abortBranchSummary(): Promise<void> {\n\t\tthis.session.abortBranchSummary();\n\t}\n\n\tasync abortRetry(): Promise<void> {\n\t\tthis.session.abortRetry();\n\t}\n\n\tasync reload(): Promise<void> {\n\t\tawait this.session.reload();\n\t}\n\n\tasync newSession(options?: AgentConnectionNewSessionOptions): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.newSession(options);\n\t}\n\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: AgentConnectionSwitchSessionOptions,\n\t): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.switchSession(sessionPath, options);\n\t}\n\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: AgentConnectionForkOptions,\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\treturn this.runtimeHost.fork(entryId, options);\n\t}\n\n\tasync navigateTree(\n\t\ttargetId: string,\n\t\toptions?: AgentConnectionNavigateTreeOptions,\n\t): Promise<AgentConnectionNavigateTreeResult> {\n\t\treturn this.session.navigateTree(targetId, options);\n\t}\n\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.importFromJsonl(inputPath, cwdOverride);\n\t}\n\n\tasync exportToHtml(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToHtml(outputPath);\n\t}\n\n\tasync exportToJsonl(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToJsonl(outputPath);\n\t}\n\n\tasync setSessionName(name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tawait this.session.setSessionName(trimmedName);\n\t}\n\n\tasync getRlmMaxDepthStatus() {\n\t\treturn this.session.getRlmMaxDepthStatus();\n\t}\n\n\tasync setRlmMaxDepth(maxDepth: number, options?: { global?: boolean }) {\n\t\treturn this.session.setRlmMaxDepth(maxDepth, options);\n\t}\n\n\tasync renameSavedSession(sessionPath: string, name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tconst currentSessionFile = this.session.sessionFile;\n\t\tif (currentSessionFile && resolve(currentSessionFile) === resolve(sessionPath)) {\n\t\t\tawait this.session.setSessionName(trimmedName);\n\t\t\treturn;\n\t\t}\n\t\tconst manager = await SessionManager.open(sessionPath);\n\t\ttry {\n\t\t\tawait manager.appendSessionInfo(trimmedName);\n\t\t} finally {\n\t\t\tawait manager.close();\n\t\t}\n\t}\n\n\tasync deleteSavedSession(sessionPath: string): Promise<DeleteSessionFileResult> {\n\t\treturn deleteSessionFile(sessionPath);\n\t}\n\n\tasync watchSession(childId: string): Promise<AgentConnectionSessionWatcher | undefined> {\n\t\tconst child = this.session.getRlmChildSession(childId);\n\t\tif (!child) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst unsubscribes = new Set<() => void>();\n\t\treturn {\n\t\t\tgetMessages: async () => child.messages,\n\t\t\tgetCommands: async () => createAgentConnectionCommands(child),\n\t\t\tsubscribe: (listener) => {\n\t\t\t\tconst unsubscribe = child.subscribe((event) => void listener({ type: \"session_event\", event }));\n\t\t\t\tunsubscribes.add(unsubscribe);\n\t\t\t\treturn () => {\n\t\t\t\t\tunsubscribes.delete(unsubscribe);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetToolDefinition: async (name) => createAgentConnectionToolDefinition(child.getToolDefinition(name)),\n\t\t\tclose: async () => {\n\t\t\t\tfor (const unsubscribe of unsubscribes) {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t}\n\t\t\t\tunsubscribes.clear();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync dispose(): Promise<void> {\n\t\tthis.abortAllSideQuestions();\n\t\tawait Promise.allSettled([...this.sessionInputPauses.values()].map((pause) => pause.release()));\n\t\tthis.sessionInputPauses.clear();\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = undefined;\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(undefined);\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(undefined);\n\t\tawait this.runtimeHost.dispose();\n\t}\n\n\tprivate get session() {\n\t\treturn this.runtimeHost.session;\n\t}\n\n\tprivate bindCurrentSessionEvents(): void {\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = this.session.subscribe((event) => {\n\t\t\tvoid this.emit({ type: \"session_event\", event });\n\t\t});\n\t}\n\n\tprivate async bindCurrentSessionExtensions(): Promise<void> {\n\t\tconst session = this.session;\n\t\tawait session.bindExtensions({\n\t\t\tuiContext: this.headlessExtensionOptions?.uiContext,\n\t\t\tcommandContextActions: {\n\t\t\t\twaitForIdle: () => session.waitForIdle(),\n\t\t\t\tnewSession: (options) => this.runtimeHost.newSession(options),\n\t\t\t\tfork: async (entryId, options) => {\n\t\t\t\t\tconst result = await this.runtimeHost.fork(entryId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tnavigateTree: async (targetId, options) => {\n\t\t\t\t\tconst result = await session.navigateTree(targetId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tswitchSession: (sessionPath, options) => this.runtimeHost.switchSession(sessionPath, options),\n\t\t\t\treload: () => session.reload(),\n\t\t\t},\n\t\t\tshutdownHandler: this.headlessExtensionOptions?.shutdownHandler,\n\t\t\tonError: (error) => {\n\t\t\t\tvoid this.emit({\n\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\textensionPath: error.extensionPath,\n\t\t\t\t\tevent: error.event,\n\t\t\t\t\terror: error.error,\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate abortAllSideQuestions(): void {\n\t\tfor (const run of this.sideQuestionRuns.values()) {\n\t\t\trun.abort();\n\t\t}\n\t\tthis.sideQuestionRuns.clear();\n\t}\n\n\tprivate async emit(event: AgentConnectionEvent): Promise<void> {\n\t\tfor (const listener of [...this.listeners]) {\n\t\t\tawait listener(event);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"in-process-agent-connection.d.ts","sourceRoot":"","sources":["../../../src/modes/agent-connection/in-process-agent-connection.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from \"node:path\";\nimport { type AgentMessage, AgentOutputLimitError, type ThinkingLevel } from \"@ponythewhite/base-context-agent\";\nimport type { ImageContent, ServiceTier, Transport } from \"@ponythewhite/base-context-ai\";\nimport type { AgentSessionMessageReceipt, AgentSessionMessageSafetyStatus } from \"../../core/agent-messages.js\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.js\";\nimport type { AgentAutonomousStatus } from \"../../core/autonomous.js\";\nimport type { BashResult } from \"../../core/bash-executor.js\";\nimport type { CompactionResult } from \"../../core/compaction/index.js\";\nimport type { ContextTreeNode } from \"../../core/context-tree.js\";\nimport type {\n\tAgentCronJob,\n\tAgentHeartbeatDeliveryMode,\n\tAgentHeartbeatManagementAction,\n\tAgentHeartbeatUpdateAction,\n} from \"../../core/cron-jobs.js\";\nimport type { ExtensionUIContext } from \"../../core/extensions/types.js\";\nimport type { AcpMcpServerConfig } from \"../../core/mcp/acp-mcp-types.js\";\nimport type { RefinementResult } from \"../../core/refinement/index.js\";\nimport { type DeleteSessionFileResult, deleteSessionFile } from \"../../core/session-file-actions.js\";\nimport { readUserMessagesForForking } from \"../../core/session-fork-messages.js\";\nimport { SessionManager } from \"../../core/session-manager.js\";\nimport type { SessionStats } from \"../../core/session-stats.js\";\nimport { readSessionTree } from \"../../core/session-tree.js\";\nimport { type SideQuestionRun, startSideQuestion } from \"../../core/side-question.js\";\nimport { waitForHeadlessCompletion } from \"../headless-completion.js\";\nimport {\n\tcreateAgentConnectionCommands,\n\tcreateAgentConnectionResourceSnapshot,\n\tcreateAgentConnectionSnapshot,\n\tcreateAgentConnectionState,\n} from \"./snapshot.js\";\nimport { createAgentConnectionToolDefinition } from \"./tool-definition.js\";\nimport type {\n\tAgentConnection,\n\tAgentConnectionBeforeSessionInvalidateListener,\n\tAgentConnectionEvent,\n\tAgentConnectionEventListener,\n\tAgentConnectionExecuteBashOptions,\n\tAgentConnectionExtensionUiResponse,\n\tAgentConnectionForkOptions,\n\tAgentConnectionHeadlessCompletionOptions,\n\tAgentConnectionHeartbeat,\n\tAgentConnectionModel,\n\tAgentConnectionModelCatalog,\n\tAgentConnectionModelCycleResult,\n\tAgentConnectionNavigateTreeOptions,\n\tAgentConnectionNavigateTreeResult,\n\tAgentConnectionNewSessionOptions,\n\tAgentConnectionPromptOptions,\n\tAgentConnectionQueuedMessageLane,\n\tAgentConnectionQueuedMessageMutation,\n\tAgentConnectionQueuedMessageMutationStatus,\n\tAgentConnectionQueueMode,\n\tAgentConnectionQueueState,\n\tAgentConnectionResourceSnapshot,\n\tAgentConnectionRlmChildAgentSnapshot,\n\tAgentConnectionSavedSessionInfo,\n\tAgentConnectionSavedSessionScope,\n\tAgentConnectionScopedModel,\n\tAgentConnectionSessionContext,\n\tAgentConnectionSessionHeader,\n\tAgentConnectionSessionInputPause,\n\tAgentConnectionSessionListCallbacks,\n\tAgentConnectionSessionTreeNode,\n\tAgentConnectionSessionWatcher,\n\tAgentConnectionSideQuestionTurn,\n\tAgentConnectionSlashCommand,\n\tAgentConnectionSnapshot,\n\tAgentConnectionState,\n\tAgentConnectionSwitchSessionOptions,\n\tAgentConnectionToolDefinition,\n\tAgentConnectionUserMessage,\n} from \"./types.js\";\n\nexport interface InProcessHeadlessExtensionOptions {\n\tuiContext?: ExtensionUIContext;\n\tshutdownHandler?: () => void;\n}\n\nexport class InProcessAgentConnection implements AgentConnection {\n\tprivate readonly listeners = new Set<AgentConnectionEventListener>();\n\tprivate readonly beforeSessionInvalidateListeners = new Set<AgentConnectionBeforeSessionInvalidateListener>();\n\tprivate readonly sideQuestionRuns = new Map<string, SideQuestionRun>();\n\tprivate readonly sessionInputPauses = new Map<string, AgentConnectionSessionInputPause>();\n\tprivate headlessExtensionOptions: InProcessHeadlessExtensionOptions | undefined;\n\tprivate unsubscribeSessionEvents: (() => void) | undefined;\n\n\tconstructor(private readonly runtimeHost: AgentSessionRuntime) {\n\t\tthis.bindCurrentSessionEvents();\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(() => {\n\t\t\t\tthis.abortAllSideQuestions();\n\t\t\t\tfor (const listener of [...this.beforeSessionInvalidateListeners]) {\n\t\t\t\t\tlistener();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(async () => {\n\t\t\tthis.bindCurrentSessionEvents();\n\t\t\tif (this.headlessExtensionOptions) {\n\t\t\t\tawait this.bindCurrentSessionExtensions();\n\t\t\t}\n\t\t\tconst state = createAgentConnectionState(this.runtimeHost);\n\t\t\tconst messages = [...this.runtimeHost.session.messages];\n\t\t\tawait this.emit({\n\t\t\t\ttype: \"session_replaced\",\n\t\t\t\tstate: await state,\n\t\t\t\tmessages,\n\t\t\t});\n\t\t});\n\t}\n\n\tasync bindHeadlessExtensions(options: InProcessHeadlessExtensionOptions = {}): Promise<void> {\n\t\tthis.headlessExtensionOptions = options;\n\t\tawait this.bindCurrentSessionExtensions();\n\t}\n\n\tsupportsAcpMcpServers(): boolean {\n\t\treturn true;\n\t}\n\n\tasync replaceAcpMcpServers(servers: readonly AcpMcpServerConfig[], ownerId: string): Promise<void> {\n\t\tthis.runtimeHost.session.replaceAcpMcpServers(servers, ownerId);\n\t}\n\n\tasync releaseAcpMcpServers(ownerId: string, serverNames: readonly string[]): Promise<void> {\n\t\tawait this.runtimeHost.session.releaseAcpMcpServers(ownerId, serverNames);\n\t}\n\n\tsubscribe(listener: AgentConnectionEventListener): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tonBeforeSessionInvalidate(listener: AgentConnectionBeforeSessionInvalidateListener): () => void {\n\t\tthis.beforeSessionInvalidateListeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.beforeSessionInvalidateListeners.delete(listener);\n\t\t};\n\t}\n\n\tasync getState(): Promise<AgentConnectionState> {\n\t\treturn createAgentConnectionState(this.runtimeHost);\n\t}\n\n\tasync getInitialSnapshot(): Promise<AgentConnectionSnapshot> {\n\t\treturn createAgentConnectionSnapshot(this.runtimeHost);\n\t}\n\n\tasync getRlmChildSnapshots(): Promise<AgentConnectionRlmChildAgentSnapshot[]> {\n\t\treturn this.session.getRlmChildSnapshots();\n\t}\n\n\tasync getMessages(): Promise<AgentMessage[]> {\n\t\treturn this.session.state.messages;\n\t}\n\n\tasync getSessionHeader(): Promise<AgentConnectionSessionHeader | undefined> {\n\t\treturn this.session.sessionManager.getHeader() ?? undefined;\n\t}\n\n\tasync getCommands(): Promise<AgentConnectionSlashCommand[]> {\n\t\treturn createAgentConnectionCommands(this.session);\n\t}\n\n\tasync getResourceSnapshot(): Promise<AgentConnectionResourceSnapshot> {\n\t\treturn createAgentConnectionResourceSnapshot(this.session);\n\t}\n\n\tasync getAvailableModels(): Promise<AgentConnectionModel[]> {\n\t\treturn this.session.modelRegistry.refreshAvailableModels();\n\t}\n\n\tasync getModelCatalog(): Promise<AgentConnectionModelCatalog> {\n\t\treturn this.session.modelRegistry.refreshModelCatalog();\n\t}\n\n\tasync getSessionStats(): Promise<SessionStats> {\n\t\treturn this.session.getSessionStats();\n\t}\n\n\tasync getContextTree(): Promise<ContextTreeNode> {\n\t\treturn this.session.getContextTree();\n\t}\n\n\tasync getSessionContext(): Promise<AgentConnectionSessionContext> {\n\t\treturn this.session.buildSessionContext();\n\t}\n\n\tasync getSessionTree(): Promise<{ tree: AgentConnectionSessionTreeNode[]; leafId: string | null }> {\n\t\treturn readSessionTree(this.session.sessionManager);\n\t}\n\n\tasync listSavedSessions(\n\t\tscope: AgentConnectionSavedSessionScope,\n\t\tcallbacks?: AgentConnectionSessionListCallbacks,\n\t): Promise<AgentConnectionSavedSessionInfo[]> {\n\t\t// In-memory managers hold \"\" for \"no explicit session dir\"; pass undefined so\n\t\t// list()/listAll() fall back to the default directories instead of scanning \"\".\n\t\tconst sessionDir = this.session.sessionManager.getSessionDir() || undefined;\n\t\tif (scope === \"current\") {\n\t\t\treturn SessionManager.list(this.session.sessionManager.getCwd(), sessionDir, callbacks);\n\t\t}\n\t\treturn SessionManager.listAll(callbacks, sessionDir);\n\t}\n\n\tasync getQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn {\n\t\t\tsteering: [...this.session.getSteeringMessagePreviews()],\n\t\t\tfollowUp: [...this.session.getFollowUpMessagePreviews()],\n\t\t};\n\t}\n\n\tasync mutateQueuedMessage(\n\t\tlane: AgentConnectionQueuedMessageLane,\n\t\tindex: number,\n\t\texpectedText: string,\n\t\tmutation: AgentConnectionQueuedMessageMutation,\n\t): Promise<AgentConnectionQueuedMessageMutationStatus> {\n\t\treturn this.session.mutateQueuedMessage(lane, index, expectedText, mutation);\n\t}\n\n\tasync clearQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn this.session.clearQueue();\n\t}\n\n\tasync abortAndClearQueue(): Promise<AgentConnectionQueueState> {\n\t\tconst queue = this.session.clearQueue();\n\t\tthis.session.requestAbort();\n\t\treturn queue;\n\t}\n\n\tasync acquireSessionInputPause(leaseKey: string): Promise<AgentConnectionSessionInputPause> {\n\t\tconst existing = this.sessionInputPauses.get(leaseKey);\n\t\tif (existing) return existing;\n\t\tconst pause = this.session.acquireSessionInputPause();\n\t\tlet released = false;\n\t\tconst lease: AgentConnectionSessionInputPause = {\n\t\t\trelease: async () => {\n\t\t\t\tif (released) return;\n\t\t\t\tpause.release();\n\t\t\t\treleased = true;\n\t\t\t\tif (this.sessionInputPauses.get(leaseKey) === lease) this.sessionInputPauses.delete(leaseKey);\n\t\t\t},\n\t\t};\n\t\tthis.sessionInputPauses.set(leaseKey, lease);\n\t\treturn lease;\n\t}\n\n\tasync listCronJobs(_options: { includeInactive?: boolean } = {}): Promise<AgentCronJob[]> {\n\t\treturn [];\n\t}\n\n\tasync listHeartbeats(): Promise<AgentConnectionHeartbeat[]> {\n\t\treturn [];\n\t}\n\n\tasync manageHeartbeat(\n\t\t_activeSessionId: string,\n\t\t_jobId: string,\n\t\t_action: AgentHeartbeatManagementAction,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync addCronJob(_schedule: string, _prompt: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync cancelCronJob(_jobId: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync getHeartbeat(): Promise<AgentCronJob | undefined> {\n\t\treturn undefined;\n\t}\n\n\tasync setHeartbeat(\n\t\t_schedule: string,\n\t\t_instruction: string,\n\t\t_deliveryMode?: AgentHeartbeatDeliveryMode,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync updateHeartbeat(_action: AgentHeartbeatUpdateAction): Promise<AgentCronJob | undefined> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync sendAgentMessage(_targetActiveSessionId: string, _message: string): Promise<AgentSessionMessageReceipt> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getAgentMessageStatus(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync pauseAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync resumeAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync clearAgentMessages(): Promise<number> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getUserMessagesForForking(): Promise<AgentConnectionUserMessage[]> {\n\t\treturn readUserMessagesForForking(this.session.sessionManager);\n\t}\n\n\tasync getLastAssistantText(): Promise<string | undefined> {\n\t\treturn this.session.getLastAssistantText();\n\t}\n\n\tasync getSystemPrompt(): Promise<string> {\n\t\treturn this.session.systemPrompt;\n\t}\n\n\tasync getToolDefinition(name: string): Promise<AgentConnectionToolDefinition | undefined> {\n\t\treturn createAgentConnectionToolDefinition(this.session.getToolDefinition(name));\n\t}\n\n\tasync setSessionEntryLabel(entryId: string, label: string | undefined): Promise<void> {\n\t\tawait this.session.sessionManager.appendLabelChange(entryId, label);\n\t}\n\n\tasync respondToExtensionUiRequest(_requestId: string, _response: AgentConnectionExtensionUiResponse): Promise<void> {\n\t\t// In-process extension UI requests are handled directly by InteractiveMode.\n\t}\n\n\tasync prompt(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tlet accepted = false;\n\t\t\tconst resolveOnce = () => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst rejectOnce = (error: unknown) => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst prompt = this.session.prompt(message, {\n\t\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\tpreflightResult: (success) => {\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\taccepted = true;\n\t\t\t\t\t\tresolveOnce();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t\tvoid prompt.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (accepted) resolveOnce();\n\t\t\t\t\telse rejectOnce(new Error(\"Prompt was not accepted by the session.\"));\n\t\t\t\t},\n\t\t\t\t(error: unknown) => {\n\t\t\t\t\tif (!accepted) rejectOnce(error);\n\t\t\t\t\t// Output-limit refusals already have their own refusal-only agent_end.\n\t\t\t\t\telse if (!(error instanceof AgentOutputLimitError)) {\n\t\t\t\t\t\tvoid this.emit({\n\t\t\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\t\t\textensionPath: \"<session-input>\",\n\t\t\t\t\t\t\tevent: \"prompt_completion\",\n\t\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tasync promptAndWait(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait this.session.promptAndWait(message, {\n\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t});\n\t}\n\n\tasync startSideQuestion(\n\t\tid: string,\n\t\tquestion: string,\n\t\tpreviousTurns?: AgentConnectionSideQuestionTurn[],\n\t): Promise<void> {\n\t\tif (this.sideQuestionRuns.has(id)) {\n\t\t\tthrow new Error(`Side question already exists: ${id}`);\n\t\t}\n\t\tconst run = startSideQuestion(\n\t\t\tthis.session.agent,\n\t\t\tid,\n\t\t\tquestion,\n\t\t\t(event) => this.emit({ type: \"side_question_event\", event }),\n\t\t\tpreviousTurns,\n\t\t);\n\t\tthis.sideQuestionRuns.set(id, run);\n\t\tconst removeRun = () => {\n\t\t\tthis.sideQuestionRuns.delete(id);\n\t\t};\n\t\tvoid run.done.then(removeRun, removeRun);\n\t}\n\n\tasync abortSideQuestion(id: string): Promise<boolean> {\n\t\tconst run = this.sideQuestionRuns.get(id);\n\t\tif (!run) {\n\t\t\treturn false;\n\t\t}\n\t\trun.abort();\n\t\treturn true;\n\t}\n\n\tasync steer(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.steer(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync followUp(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.followUp(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync abort(): Promise<void> {\n\t\tthis.session.requestAbort();\n\t}\n\n\tasync cancelRlmChild(childId: string): Promise<boolean> {\n\t\treturn this.session.cancelRlmChildRun(childId);\n\t}\n\n\tasync waitForIdle(): Promise<void> {\n\t\tawait this.session.waitForIdle();\n\t}\n\n\tasync waitForHeadlessCompletion(options?: AgentConnectionHeadlessCompletionOptions): Promise<AgentAutonomousStatus> {\n\t\treturn waitForHeadlessCompletion(this.session, options);\n\t}\n\n\tasync executeBash(command: string, options?: AgentConnectionExecuteBashOptions): Promise<void> {\n\t\tawait this.session.runUserBash(command, options);\n\t}\n\n\tasync executeBashAndWait(command: string): Promise<BashResult> {\n\t\treturn this.session.executeBash(command);\n\t}\n\n\tasync abortBash(): Promise<void> {\n\t\tthis.session.abortBash();\n\t}\n\n\tasync setModel(provider: string, modelId: string): Promise<AgentConnectionModel> {\n\t\tconst availableModels = await this.session.modelRegistry.refreshAvailableModels();\n\t\tconst model = availableModels.find((candidate) => {\n\t\t\treturn candidate.provider === provider && candidate.id === modelId;\n\t\t});\n\t\tif (!model) {\n\t\t\tthrow new Error(`Model not found: ${provider}/${modelId}`);\n\t\t}\n\t\tawait this.session.setModel(model);\n\t\treturn model;\n\t}\n\n\tasync cycleModel(\n\t\tdirection: \"forward\" | \"backward\" = \"forward\",\n\t): Promise<AgentConnectionModelCycleResult | undefined> {\n\t\treturn this.session.cycleModel(direction);\n\t}\n\n\tasync setScopedModels(scopedModels: AgentConnectionScopedModel[]): Promise<void> {\n\t\tthis.session.setScopedModels(scopedModels);\n\t}\n\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tawait this.session.setThinkingLevel(level);\n\t}\n\n\tasync setServiceTier(serviceTier: ServiceTier): Promise<void> {\n\t\tawait this.session.setServiceTier(serviceTier);\n\t}\n\n\tasync cycleThinkingLevel(): Promise<ThinkingLevel | undefined> {\n\t\treturn this.session.cycleThinkingLevel();\n\t}\n\n\tasync setTransport(transport: Transport): Promise<void> {\n\t\tthis.session.settingsManager.setTransport(transport);\n\t\tthis.session.agent.transport = transport;\n\t}\n\n\tasync setSteeringMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setSteeringMode(mode);\n\t}\n\n\tasync setFollowUpMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setFollowUpMode(mode);\n\t}\n\n\tasync setAutoCompactionEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoCompactionEnabled(enabled);\n\t}\n\n\tasync setAutoRetryEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoRetryEnabled(enabled);\n\t}\n\n\tasync compact(customInstructions?: string): Promise<CompactionResult> {\n\t\treturn this.session.compact(customInstructions);\n\t}\n\n\tasync refine(\n\t\toptions: { instructions?: string; rollbackId?: string; global?: boolean } = {},\n\t): Promise<RefinementResult> {\n\t\treturn this.session.refine(options);\n\t}\n\n\tasync abortCompaction(): Promise<void> {\n\t\tthis.session.abortCompaction();\n\t}\n\n\tasync abortBranchSummary(): Promise<void> {\n\t\tthis.session.abortBranchSummary();\n\t}\n\n\tasync abortRetry(): Promise<void> {\n\t\tthis.session.abortRetry();\n\t}\n\n\tasync reload(): Promise<void> {\n\t\tawait this.session.reload();\n\t}\n\n\tasync newSession(options?: AgentConnectionNewSessionOptions): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.newSession(options);\n\t}\n\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: AgentConnectionSwitchSessionOptions,\n\t): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.switchSession(sessionPath, options);\n\t}\n\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: AgentConnectionForkOptions,\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\treturn this.runtimeHost.fork(entryId, options);\n\t}\n\n\tasync navigateTree(\n\t\ttargetId: string,\n\t\toptions?: AgentConnectionNavigateTreeOptions,\n\t): Promise<AgentConnectionNavigateTreeResult> {\n\t\treturn this.session.navigateTree(targetId, options);\n\t}\n\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.importFromJsonl(inputPath, cwdOverride);\n\t}\n\n\tasync exportToHtml(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToHtml(outputPath);\n\t}\n\n\tasync exportToJsonl(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToJsonl(outputPath);\n\t}\n\n\tasync setSessionName(name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tawait this.session.setSessionName(trimmedName);\n\t}\n\n\tasync getRlmMaxSubagentsStatus() {\n\t\treturn this.session.getRlmMaxSubagentsStatus();\n\t}\n\n\tasync setRlmMaxSubagents(maxSubagents: number) {\n\t\treturn this.session.setRlmMaxSubagents(maxSubagents);\n\t}\n\n\tasync getRlmMaxDepthStatus() {\n\t\treturn this.session.getRlmMaxDepthStatus();\n\t}\n\n\tasync setRlmMaxDepth(maxDepth: number, options?: { global?: boolean }) {\n\t\treturn this.session.setRlmMaxDepth(maxDepth, options);\n\t}\n\n\tasync renameSavedSession(sessionPath: string, name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tconst currentSessionFile = this.session.sessionFile;\n\t\tif (currentSessionFile && resolve(currentSessionFile) === resolve(sessionPath)) {\n\t\t\tawait this.session.setSessionName(trimmedName);\n\t\t\treturn;\n\t\t}\n\t\tconst manager = await SessionManager.open(sessionPath);\n\t\ttry {\n\t\t\tawait manager.appendSessionInfo(trimmedName);\n\t\t} finally {\n\t\t\tawait manager.close();\n\t\t}\n\t}\n\n\tasync deleteSavedSession(sessionPath: string): Promise<DeleteSessionFileResult> {\n\t\treturn deleteSessionFile(sessionPath);\n\t}\n\n\tasync watchSession(childId: string): Promise<AgentConnectionSessionWatcher | undefined> {\n\t\tconst child = this.session.getRlmChildSession(childId);\n\t\tif (!child) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst unsubscribes = new Set<() => void>();\n\t\treturn {\n\t\t\tgetMessages: async () => child.messages,\n\t\t\tgetCommands: async () => createAgentConnectionCommands(child),\n\t\t\tsubscribe: (listener) => {\n\t\t\t\tconst unsubscribe = child.subscribe((event) => void listener({ type: \"session_event\", event }));\n\t\t\t\tunsubscribes.add(unsubscribe);\n\t\t\t\treturn () => {\n\t\t\t\t\tunsubscribes.delete(unsubscribe);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetToolDefinition: async (name) => createAgentConnectionToolDefinition(child.getToolDefinition(name)),\n\t\t\tclose: async () => {\n\t\t\t\tfor (const unsubscribe of unsubscribes) {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t}\n\t\t\t\tunsubscribes.clear();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync dispose(): Promise<void> {\n\t\tthis.abortAllSideQuestions();\n\t\tawait Promise.allSettled([...this.sessionInputPauses.values()].map((pause) => pause.release()));\n\t\tthis.sessionInputPauses.clear();\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = undefined;\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(undefined);\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(undefined);\n\t\tawait this.runtimeHost.dispose();\n\t}\n\n\tprivate get session() {\n\t\treturn this.runtimeHost.session;\n\t}\n\n\tprivate bindCurrentSessionEvents(): void {\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = this.session.subscribe((event) => {\n\t\t\tvoid this.emit({ type: \"session_event\", event });\n\t\t});\n\t}\n\n\tprivate async bindCurrentSessionExtensions(): Promise<void> {\n\t\tconst session = this.session;\n\t\tawait session.bindExtensions({\n\t\t\tuiContext: this.headlessExtensionOptions?.uiContext,\n\t\t\tcommandContextActions: {\n\t\t\t\twaitForIdle: () => session.waitForIdle(),\n\t\t\t\tnewSession: (options) => this.runtimeHost.newSession(options),\n\t\t\t\tfork: async (entryId, options) => {\n\t\t\t\t\tconst result = await this.runtimeHost.fork(entryId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tnavigateTree: async (targetId, options) => {\n\t\t\t\t\tconst result = await session.navigateTree(targetId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tswitchSession: (sessionPath, options) => this.runtimeHost.switchSession(sessionPath, options),\n\t\t\t\treload: () => session.reload(),\n\t\t\t},\n\t\t\tshutdownHandler: this.headlessExtensionOptions?.shutdownHandler,\n\t\t\tonError: (error) => {\n\t\t\t\tvoid this.emit({\n\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\textensionPath: error.extensionPath,\n\t\t\t\t\tevent: error.event,\n\t\t\t\t\terror: error.error,\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate abortAllSideQuestions(): void {\n\t\tfor (const run of this.sideQuestionRuns.values()) {\n\t\t\trun.abort();\n\t\t}\n\t\tthis.sideQuestionRuns.clear();\n\t}\n\n\tprivate async emit(event: AgentConnectionEvent): Promise<void> {\n\t\tfor (const listener of [...this.listeners]) {\n\t\t\tawait listener(event);\n\t\t}\n\t}\n}\n"]}
@@ -399,6 +399,12 @@ export class InProcessAgentConnection {
399
399
  }
400
400
  await this.session.setSessionName(trimmedName);
401
401
  }
402
+ async getRlmMaxSubagentsStatus() {
403
+ return this.session.getRlmMaxSubagentsStatus();
404
+ }
405
+ async setRlmMaxSubagents(maxSubagents) {
406
+ return this.session.setRlmMaxSubagents(maxSubagents);
407
+ }
402
408
  async getRlmMaxDepthStatus() {
403
409
  return this.session.getRlmMaxDepthStatus();
404
410
  }
@@ -1 +1 @@
1
- {"version":3,"file":"in-process-agent-connection.js","sourceRoot":"","sources":["../../../src/modes/agent-connection/in-process-agent-connection.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from \"node:path\";\nimport { type AgentMessage, AgentOutputLimitError, type ThinkingLevel } from \"@ponythewhite/base-context-agent\";\nimport type { ImageContent, ServiceTier, Transport } from \"@ponythewhite/base-context-ai\";\nimport type { AgentSessionMessageReceipt, AgentSessionMessageSafetyStatus } from \"../../core/agent-messages.js\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.js\";\nimport type { AgentAutonomousStatus } from \"../../core/autonomous.js\";\nimport type { BashResult } from \"../../core/bash-executor.js\";\nimport type { CompactionResult } from \"../../core/compaction/index.js\";\nimport type { ContextTreeNode } from \"../../core/context-tree.js\";\nimport type {\n\tAgentCronJob,\n\tAgentHeartbeatDeliveryMode,\n\tAgentHeartbeatManagementAction,\n\tAgentHeartbeatUpdateAction,\n} from \"../../core/cron-jobs.js\";\nimport type { ExtensionUIContext } from \"../../core/extensions/types.js\";\nimport type { AcpMcpServerConfig } from \"../../core/mcp/acp-mcp-types.js\";\nimport type { RefinementResult } from \"../../core/refinement/index.js\";\nimport { type DeleteSessionFileResult, deleteSessionFile } from \"../../core/session-file-actions.js\";\nimport { readUserMessagesForForking } from \"../../core/session-fork-messages.js\";\nimport { SessionManager } from \"../../core/session-manager.js\";\nimport type { SessionStats } from \"../../core/session-stats.js\";\nimport { readSessionTree } from \"../../core/session-tree.js\";\nimport { type SideQuestionRun, startSideQuestion } from \"../../core/side-question.js\";\nimport { waitForHeadlessCompletion } from \"../headless-completion.js\";\nimport {\n\tcreateAgentConnectionCommands,\n\tcreateAgentConnectionResourceSnapshot,\n\tcreateAgentConnectionSnapshot,\n\tcreateAgentConnectionState,\n} from \"./snapshot.js\";\nimport { createAgentConnectionToolDefinition } from \"./tool-definition.js\";\nimport type {\n\tAgentConnection,\n\tAgentConnectionBeforeSessionInvalidateListener,\n\tAgentConnectionEvent,\n\tAgentConnectionEventListener,\n\tAgentConnectionExecuteBashOptions,\n\tAgentConnectionExtensionUiResponse,\n\tAgentConnectionForkOptions,\n\tAgentConnectionHeadlessCompletionOptions,\n\tAgentConnectionHeartbeat,\n\tAgentConnectionModel,\n\tAgentConnectionModelCatalog,\n\tAgentConnectionModelCycleResult,\n\tAgentConnectionNavigateTreeOptions,\n\tAgentConnectionNavigateTreeResult,\n\tAgentConnectionNewSessionOptions,\n\tAgentConnectionPromptOptions,\n\tAgentConnectionQueuedMessageLane,\n\tAgentConnectionQueuedMessageMutation,\n\tAgentConnectionQueuedMessageMutationStatus,\n\tAgentConnectionQueueMode,\n\tAgentConnectionQueueState,\n\tAgentConnectionResourceSnapshot,\n\tAgentConnectionRlmChildAgentSnapshot,\n\tAgentConnectionSavedSessionInfo,\n\tAgentConnectionSavedSessionScope,\n\tAgentConnectionScopedModel,\n\tAgentConnectionSessionContext,\n\tAgentConnectionSessionHeader,\n\tAgentConnectionSessionInputPause,\n\tAgentConnectionSessionListCallbacks,\n\tAgentConnectionSessionTreeNode,\n\tAgentConnectionSessionWatcher,\n\tAgentConnectionSideQuestionTurn,\n\tAgentConnectionSlashCommand,\n\tAgentConnectionSnapshot,\n\tAgentConnectionState,\n\tAgentConnectionSwitchSessionOptions,\n\tAgentConnectionToolDefinition,\n\tAgentConnectionUserMessage,\n} from \"./types.js\";\n\nexport interface InProcessHeadlessExtensionOptions {\n\tuiContext?: ExtensionUIContext;\n\tshutdownHandler?: () => void;\n}\n\nexport class InProcessAgentConnection implements AgentConnection {\n\tprivate readonly listeners = new Set<AgentConnectionEventListener>();\n\tprivate readonly beforeSessionInvalidateListeners = new Set<AgentConnectionBeforeSessionInvalidateListener>();\n\tprivate readonly sideQuestionRuns = new Map<string, SideQuestionRun>();\n\tprivate readonly sessionInputPauses = new Map<string, AgentConnectionSessionInputPause>();\n\tprivate headlessExtensionOptions: InProcessHeadlessExtensionOptions | undefined;\n\tprivate unsubscribeSessionEvents: (() => void) | undefined;\n\n\tconstructor(private readonly runtimeHost: AgentSessionRuntime) {\n\t\tthis.bindCurrentSessionEvents();\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(() => {\n\t\t\t\tthis.abortAllSideQuestions();\n\t\t\t\tfor (const listener of [...this.beforeSessionInvalidateListeners]) {\n\t\t\t\t\tlistener();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(async () => {\n\t\t\tthis.bindCurrentSessionEvents();\n\t\t\tif (this.headlessExtensionOptions) {\n\t\t\t\tawait this.bindCurrentSessionExtensions();\n\t\t\t}\n\t\t\tconst state = createAgentConnectionState(this.runtimeHost);\n\t\t\tconst messages = [...this.runtimeHost.session.messages];\n\t\t\tawait this.emit({\n\t\t\t\ttype: \"session_replaced\",\n\t\t\t\tstate: await state,\n\t\t\t\tmessages,\n\t\t\t});\n\t\t});\n\t}\n\n\tasync bindHeadlessExtensions(options: InProcessHeadlessExtensionOptions = {}): Promise<void> {\n\t\tthis.headlessExtensionOptions = options;\n\t\tawait this.bindCurrentSessionExtensions();\n\t}\n\n\tsupportsAcpMcpServers(): boolean {\n\t\treturn true;\n\t}\n\n\tasync replaceAcpMcpServers(servers: readonly AcpMcpServerConfig[], ownerId: string): Promise<void> {\n\t\tthis.runtimeHost.session.replaceAcpMcpServers(servers, ownerId);\n\t}\n\n\tasync releaseAcpMcpServers(ownerId: string, serverNames: readonly string[]): Promise<void> {\n\t\tawait this.runtimeHost.session.releaseAcpMcpServers(ownerId, serverNames);\n\t}\n\n\tsubscribe(listener: AgentConnectionEventListener): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tonBeforeSessionInvalidate(listener: AgentConnectionBeforeSessionInvalidateListener): () => void {\n\t\tthis.beforeSessionInvalidateListeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.beforeSessionInvalidateListeners.delete(listener);\n\t\t};\n\t}\n\n\tasync getState(): Promise<AgentConnectionState> {\n\t\treturn createAgentConnectionState(this.runtimeHost);\n\t}\n\n\tasync getInitialSnapshot(): Promise<AgentConnectionSnapshot> {\n\t\treturn createAgentConnectionSnapshot(this.runtimeHost);\n\t}\n\n\tasync getRlmChildSnapshots(): Promise<AgentConnectionRlmChildAgentSnapshot[]> {\n\t\treturn this.session.getRlmChildSnapshots();\n\t}\n\n\tasync getMessages(): Promise<AgentMessage[]> {\n\t\treturn this.session.state.messages;\n\t}\n\n\tasync getSessionHeader(): Promise<AgentConnectionSessionHeader | undefined> {\n\t\treturn this.session.sessionManager.getHeader() ?? undefined;\n\t}\n\n\tasync getCommands(): Promise<AgentConnectionSlashCommand[]> {\n\t\treturn createAgentConnectionCommands(this.session);\n\t}\n\n\tasync getResourceSnapshot(): Promise<AgentConnectionResourceSnapshot> {\n\t\treturn createAgentConnectionResourceSnapshot(this.session);\n\t}\n\n\tasync getAvailableModels(): Promise<AgentConnectionModel[]> {\n\t\treturn this.session.modelRegistry.refreshAvailableModels();\n\t}\n\n\tasync getModelCatalog(): Promise<AgentConnectionModelCatalog> {\n\t\treturn this.session.modelRegistry.refreshModelCatalog();\n\t}\n\n\tasync getSessionStats(): Promise<SessionStats> {\n\t\treturn this.session.getSessionStats();\n\t}\n\n\tasync getContextTree(): Promise<ContextTreeNode> {\n\t\treturn this.session.getContextTree();\n\t}\n\n\tasync getSessionContext(): Promise<AgentConnectionSessionContext> {\n\t\treturn this.session.buildSessionContext();\n\t}\n\n\tasync getSessionTree(): Promise<{ tree: AgentConnectionSessionTreeNode[]; leafId: string | null }> {\n\t\treturn readSessionTree(this.session.sessionManager);\n\t}\n\n\tasync listSavedSessions(\n\t\tscope: AgentConnectionSavedSessionScope,\n\t\tcallbacks?: AgentConnectionSessionListCallbacks,\n\t): Promise<AgentConnectionSavedSessionInfo[]> {\n\t\t// In-memory managers hold \"\" for \"no explicit session dir\"; pass undefined so\n\t\t// list()/listAll() fall back to the default directories instead of scanning \"\".\n\t\tconst sessionDir = this.session.sessionManager.getSessionDir() || undefined;\n\t\tif (scope === \"current\") {\n\t\t\treturn SessionManager.list(this.session.sessionManager.getCwd(), sessionDir, callbacks);\n\t\t}\n\t\treturn SessionManager.listAll(callbacks, sessionDir);\n\t}\n\n\tasync getQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn {\n\t\t\tsteering: [...this.session.getSteeringMessagePreviews()],\n\t\t\tfollowUp: [...this.session.getFollowUpMessagePreviews()],\n\t\t};\n\t}\n\n\tasync mutateQueuedMessage(\n\t\tlane: AgentConnectionQueuedMessageLane,\n\t\tindex: number,\n\t\texpectedText: string,\n\t\tmutation: AgentConnectionQueuedMessageMutation,\n\t): Promise<AgentConnectionQueuedMessageMutationStatus> {\n\t\treturn this.session.mutateQueuedMessage(lane, index, expectedText, mutation);\n\t}\n\n\tasync clearQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn this.session.clearQueue();\n\t}\n\n\tasync abortAndClearQueue(): Promise<AgentConnectionQueueState> {\n\t\tconst queue = this.session.clearQueue();\n\t\tthis.session.requestAbort();\n\t\treturn queue;\n\t}\n\n\tasync acquireSessionInputPause(leaseKey: string): Promise<AgentConnectionSessionInputPause> {\n\t\tconst existing = this.sessionInputPauses.get(leaseKey);\n\t\tif (existing) return existing;\n\t\tconst pause = this.session.acquireSessionInputPause();\n\t\tlet released = false;\n\t\tconst lease: AgentConnectionSessionInputPause = {\n\t\t\trelease: async () => {\n\t\t\t\tif (released) return;\n\t\t\t\tpause.release();\n\t\t\t\treleased = true;\n\t\t\t\tif (this.sessionInputPauses.get(leaseKey) === lease) this.sessionInputPauses.delete(leaseKey);\n\t\t\t},\n\t\t};\n\t\tthis.sessionInputPauses.set(leaseKey, lease);\n\t\treturn lease;\n\t}\n\n\tasync listCronJobs(_options: { includeInactive?: boolean } = {}): Promise<AgentCronJob[]> {\n\t\treturn [];\n\t}\n\n\tasync listHeartbeats(): Promise<AgentConnectionHeartbeat[]> {\n\t\treturn [];\n\t}\n\n\tasync manageHeartbeat(\n\t\t_activeSessionId: string,\n\t\t_jobId: string,\n\t\t_action: AgentHeartbeatManagementAction,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync addCronJob(_schedule: string, _prompt: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync cancelCronJob(_jobId: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync getHeartbeat(): Promise<AgentCronJob | undefined> {\n\t\treturn undefined;\n\t}\n\n\tasync setHeartbeat(\n\t\t_schedule: string,\n\t\t_instruction: string,\n\t\t_deliveryMode?: AgentHeartbeatDeliveryMode,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync updateHeartbeat(_action: AgentHeartbeatUpdateAction): Promise<AgentCronJob | undefined> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync sendAgentMessage(_targetActiveSessionId: string, _message: string): Promise<AgentSessionMessageReceipt> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getAgentMessageStatus(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync pauseAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync resumeAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync clearAgentMessages(): Promise<number> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getUserMessagesForForking(): Promise<AgentConnectionUserMessage[]> {\n\t\treturn readUserMessagesForForking(this.session.sessionManager);\n\t}\n\n\tasync getLastAssistantText(): Promise<string | undefined> {\n\t\treturn this.session.getLastAssistantText();\n\t}\n\n\tasync getSystemPrompt(): Promise<string> {\n\t\treturn this.session.systemPrompt;\n\t}\n\n\tasync getToolDefinition(name: string): Promise<AgentConnectionToolDefinition | undefined> {\n\t\treturn createAgentConnectionToolDefinition(this.session.getToolDefinition(name));\n\t}\n\n\tasync setSessionEntryLabel(entryId: string, label: string | undefined): Promise<void> {\n\t\tawait this.session.sessionManager.appendLabelChange(entryId, label);\n\t}\n\n\tasync respondToExtensionUiRequest(_requestId: string, _response: AgentConnectionExtensionUiResponse): Promise<void> {\n\t\t// In-process extension UI requests are handled directly by InteractiveMode.\n\t}\n\n\tasync prompt(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tlet accepted = false;\n\t\t\tconst resolveOnce = () => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst rejectOnce = (error: unknown) => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst prompt = this.session.prompt(message, {\n\t\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\tpreflightResult: (success) => {\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\taccepted = true;\n\t\t\t\t\t\tresolveOnce();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t\tvoid prompt.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (accepted) resolveOnce();\n\t\t\t\t\telse rejectOnce(new Error(\"Prompt was not accepted by the session.\"));\n\t\t\t\t},\n\t\t\t\t(error: unknown) => {\n\t\t\t\t\tif (!accepted) rejectOnce(error);\n\t\t\t\t\t// Output-limit refusals already have their own refusal-only agent_end.\n\t\t\t\t\telse if (!(error instanceof AgentOutputLimitError)) {\n\t\t\t\t\t\tvoid this.emit({\n\t\t\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\t\t\textensionPath: \"<session-input>\",\n\t\t\t\t\t\t\tevent: \"prompt_completion\",\n\t\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tasync promptAndWait(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait this.session.promptAndWait(message, {\n\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t});\n\t}\n\n\tasync startSideQuestion(\n\t\tid: string,\n\t\tquestion: string,\n\t\tpreviousTurns?: AgentConnectionSideQuestionTurn[],\n\t): Promise<void> {\n\t\tif (this.sideQuestionRuns.has(id)) {\n\t\t\tthrow new Error(`Side question already exists: ${id}`);\n\t\t}\n\t\tconst run = startSideQuestion(\n\t\t\tthis.session.agent,\n\t\t\tid,\n\t\t\tquestion,\n\t\t\t(event) => this.emit({ type: \"side_question_event\", event }),\n\t\t\tpreviousTurns,\n\t\t);\n\t\tthis.sideQuestionRuns.set(id, run);\n\t\tconst removeRun = () => {\n\t\t\tthis.sideQuestionRuns.delete(id);\n\t\t};\n\t\tvoid run.done.then(removeRun, removeRun);\n\t}\n\n\tasync abortSideQuestion(id: string): Promise<boolean> {\n\t\tconst run = this.sideQuestionRuns.get(id);\n\t\tif (!run) {\n\t\t\treturn false;\n\t\t}\n\t\trun.abort();\n\t\treturn true;\n\t}\n\n\tasync steer(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.steer(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync followUp(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.followUp(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync abort(): Promise<void> {\n\t\tthis.session.requestAbort();\n\t}\n\n\tasync cancelRlmChild(childId: string): Promise<boolean> {\n\t\treturn this.session.cancelRlmChildRun(childId);\n\t}\n\n\tasync waitForIdle(): Promise<void> {\n\t\tawait this.session.waitForIdle();\n\t}\n\n\tasync waitForHeadlessCompletion(options?: AgentConnectionHeadlessCompletionOptions): Promise<AgentAutonomousStatus> {\n\t\treturn waitForHeadlessCompletion(this.session, options);\n\t}\n\n\tasync executeBash(command: string, options?: AgentConnectionExecuteBashOptions): Promise<void> {\n\t\tawait this.session.runUserBash(command, options);\n\t}\n\n\tasync executeBashAndWait(command: string): Promise<BashResult> {\n\t\treturn this.session.executeBash(command);\n\t}\n\n\tasync abortBash(): Promise<void> {\n\t\tthis.session.abortBash();\n\t}\n\n\tasync setModel(provider: string, modelId: string): Promise<AgentConnectionModel> {\n\t\tconst availableModels = await this.session.modelRegistry.refreshAvailableModels();\n\t\tconst model = availableModels.find((candidate) => {\n\t\t\treturn candidate.provider === provider && candidate.id === modelId;\n\t\t});\n\t\tif (!model) {\n\t\t\tthrow new Error(`Model not found: ${provider}/${modelId}`);\n\t\t}\n\t\tawait this.session.setModel(model);\n\t\treturn model;\n\t}\n\n\tasync cycleModel(\n\t\tdirection: \"forward\" | \"backward\" = \"forward\",\n\t): Promise<AgentConnectionModelCycleResult | undefined> {\n\t\treturn this.session.cycleModel(direction);\n\t}\n\n\tasync setScopedModels(scopedModels: AgentConnectionScopedModel[]): Promise<void> {\n\t\tthis.session.setScopedModels(scopedModels);\n\t}\n\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tawait this.session.setThinkingLevel(level);\n\t}\n\n\tasync setServiceTier(serviceTier: ServiceTier): Promise<void> {\n\t\tawait this.session.setServiceTier(serviceTier);\n\t}\n\n\tasync cycleThinkingLevel(): Promise<ThinkingLevel | undefined> {\n\t\treturn this.session.cycleThinkingLevel();\n\t}\n\n\tasync setTransport(transport: Transport): Promise<void> {\n\t\tthis.session.settingsManager.setTransport(transport);\n\t\tthis.session.agent.transport = transport;\n\t}\n\n\tasync setSteeringMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setSteeringMode(mode);\n\t}\n\n\tasync setFollowUpMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setFollowUpMode(mode);\n\t}\n\n\tasync setAutoCompactionEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoCompactionEnabled(enabled);\n\t}\n\n\tasync setAutoRetryEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoRetryEnabled(enabled);\n\t}\n\n\tasync compact(customInstructions?: string): Promise<CompactionResult> {\n\t\treturn this.session.compact(customInstructions);\n\t}\n\n\tasync refine(\n\t\toptions: { instructions?: string; rollbackId?: string; global?: boolean } = {},\n\t): Promise<RefinementResult> {\n\t\treturn this.session.refine(options);\n\t}\n\n\tasync abortCompaction(): Promise<void> {\n\t\tthis.session.abortCompaction();\n\t}\n\n\tasync abortBranchSummary(): Promise<void> {\n\t\tthis.session.abortBranchSummary();\n\t}\n\n\tasync abortRetry(): Promise<void> {\n\t\tthis.session.abortRetry();\n\t}\n\n\tasync reload(): Promise<void> {\n\t\tawait this.session.reload();\n\t}\n\n\tasync newSession(options?: AgentConnectionNewSessionOptions): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.newSession(options);\n\t}\n\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: AgentConnectionSwitchSessionOptions,\n\t): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.switchSession(sessionPath, options);\n\t}\n\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: AgentConnectionForkOptions,\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\treturn this.runtimeHost.fork(entryId, options);\n\t}\n\n\tasync navigateTree(\n\t\ttargetId: string,\n\t\toptions?: AgentConnectionNavigateTreeOptions,\n\t): Promise<AgentConnectionNavigateTreeResult> {\n\t\treturn this.session.navigateTree(targetId, options);\n\t}\n\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.importFromJsonl(inputPath, cwdOverride);\n\t}\n\n\tasync exportToHtml(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToHtml(outputPath);\n\t}\n\n\tasync exportToJsonl(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToJsonl(outputPath);\n\t}\n\n\tasync setSessionName(name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tawait this.session.setSessionName(trimmedName);\n\t}\n\n\tasync getRlmMaxDepthStatus() {\n\t\treturn this.session.getRlmMaxDepthStatus();\n\t}\n\n\tasync setRlmMaxDepth(maxDepth: number, options?: { global?: boolean }) {\n\t\treturn this.session.setRlmMaxDepth(maxDepth, options);\n\t}\n\n\tasync renameSavedSession(sessionPath: string, name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tconst currentSessionFile = this.session.sessionFile;\n\t\tif (currentSessionFile && resolve(currentSessionFile) === resolve(sessionPath)) {\n\t\t\tawait this.session.setSessionName(trimmedName);\n\t\t\treturn;\n\t\t}\n\t\tconst manager = await SessionManager.open(sessionPath);\n\t\ttry {\n\t\t\tawait manager.appendSessionInfo(trimmedName);\n\t\t} finally {\n\t\t\tawait manager.close();\n\t\t}\n\t}\n\n\tasync deleteSavedSession(sessionPath: string): Promise<DeleteSessionFileResult> {\n\t\treturn deleteSessionFile(sessionPath);\n\t}\n\n\tasync watchSession(childId: string): Promise<AgentConnectionSessionWatcher | undefined> {\n\t\tconst child = this.session.getRlmChildSession(childId);\n\t\tif (!child) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst unsubscribes = new Set<() => void>();\n\t\treturn {\n\t\t\tgetMessages: async () => child.messages,\n\t\t\tgetCommands: async () => createAgentConnectionCommands(child),\n\t\t\tsubscribe: (listener) => {\n\t\t\t\tconst unsubscribe = child.subscribe((event) => void listener({ type: \"session_event\", event }));\n\t\t\t\tunsubscribes.add(unsubscribe);\n\t\t\t\treturn () => {\n\t\t\t\t\tunsubscribes.delete(unsubscribe);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetToolDefinition: async (name) => createAgentConnectionToolDefinition(child.getToolDefinition(name)),\n\t\t\tclose: async () => {\n\t\t\t\tfor (const unsubscribe of unsubscribes) {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t}\n\t\t\t\tunsubscribes.clear();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync dispose(): Promise<void> {\n\t\tthis.abortAllSideQuestions();\n\t\tawait Promise.allSettled([...this.sessionInputPauses.values()].map((pause) => pause.release()));\n\t\tthis.sessionInputPauses.clear();\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = undefined;\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(undefined);\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(undefined);\n\t\tawait this.runtimeHost.dispose();\n\t}\n\n\tprivate get session() {\n\t\treturn this.runtimeHost.session;\n\t}\n\n\tprivate bindCurrentSessionEvents(): void {\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = this.session.subscribe((event) => {\n\t\t\tvoid this.emit({ type: \"session_event\", event });\n\t\t});\n\t}\n\n\tprivate async bindCurrentSessionExtensions(): Promise<void> {\n\t\tconst session = this.session;\n\t\tawait session.bindExtensions({\n\t\t\tuiContext: this.headlessExtensionOptions?.uiContext,\n\t\t\tcommandContextActions: {\n\t\t\t\twaitForIdle: () => session.waitForIdle(),\n\t\t\t\tnewSession: (options) => this.runtimeHost.newSession(options),\n\t\t\t\tfork: async (entryId, options) => {\n\t\t\t\t\tconst result = await this.runtimeHost.fork(entryId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tnavigateTree: async (targetId, options) => {\n\t\t\t\t\tconst result = await session.navigateTree(targetId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tswitchSession: (sessionPath, options) => this.runtimeHost.switchSession(sessionPath, options),\n\t\t\t\treload: () => session.reload(),\n\t\t\t},\n\t\t\tshutdownHandler: this.headlessExtensionOptions?.shutdownHandler,\n\t\t\tonError: (error) => {\n\t\t\t\tvoid this.emit({\n\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\textensionPath: error.extensionPath,\n\t\t\t\t\tevent: error.event,\n\t\t\t\t\terror: error.error,\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate abortAllSideQuestions(): void {\n\t\tfor (const run of this.sideQuestionRuns.values()) {\n\t\t\trun.abort();\n\t\t}\n\t\tthis.sideQuestionRuns.clear();\n\t}\n\n\tprivate async emit(event: AgentConnectionEvent): Promise<void> {\n\t\tfor (const listener of [...this.listeners]) {\n\t\t\tawait listener(event);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"in-process-agent-connection.js","sourceRoot":"","sources":["../../../src/modes/agent-connection/in-process-agent-connection.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from \"node:path\";\nimport { type AgentMessage, AgentOutputLimitError, type ThinkingLevel } from \"@ponythewhite/base-context-agent\";\nimport type { ImageContent, ServiceTier, Transport } from \"@ponythewhite/base-context-ai\";\nimport type { AgentSessionMessageReceipt, AgentSessionMessageSafetyStatus } from \"../../core/agent-messages.js\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.js\";\nimport type { AgentAutonomousStatus } from \"../../core/autonomous.js\";\nimport type { BashResult } from \"../../core/bash-executor.js\";\nimport type { CompactionResult } from \"../../core/compaction/index.js\";\nimport type { ContextTreeNode } from \"../../core/context-tree.js\";\nimport type {\n\tAgentCronJob,\n\tAgentHeartbeatDeliveryMode,\n\tAgentHeartbeatManagementAction,\n\tAgentHeartbeatUpdateAction,\n} from \"../../core/cron-jobs.js\";\nimport type { ExtensionUIContext } from \"../../core/extensions/types.js\";\nimport type { AcpMcpServerConfig } from \"../../core/mcp/acp-mcp-types.js\";\nimport type { RefinementResult } from \"../../core/refinement/index.js\";\nimport { type DeleteSessionFileResult, deleteSessionFile } from \"../../core/session-file-actions.js\";\nimport { readUserMessagesForForking } from \"../../core/session-fork-messages.js\";\nimport { SessionManager } from \"../../core/session-manager.js\";\nimport type { SessionStats } from \"../../core/session-stats.js\";\nimport { readSessionTree } from \"../../core/session-tree.js\";\nimport { type SideQuestionRun, startSideQuestion } from \"../../core/side-question.js\";\nimport { waitForHeadlessCompletion } from \"../headless-completion.js\";\nimport {\n\tcreateAgentConnectionCommands,\n\tcreateAgentConnectionResourceSnapshot,\n\tcreateAgentConnectionSnapshot,\n\tcreateAgentConnectionState,\n} from \"./snapshot.js\";\nimport { createAgentConnectionToolDefinition } from \"./tool-definition.js\";\nimport type {\n\tAgentConnection,\n\tAgentConnectionBeforeSessionInvalidateListener,\n\tAgentConnectionEvent,\n\tAgentConnectionEventListener,\n\tAgentConnectionExecuteBashOptions,\n\tAgentConnectionExtensionUiResponse,\n\tAgentConnectionForkOptions,\n\tAgentConnectionHeadlessCompletionOptions,\n\tAgentConnectionHeartbeat,\n\tAgentConnectionModel,\n\tAgentConnectionModelCatalog,\n\tAgentConnectionModelCycleResult,\n\tAgentConnectionNavigateTreeOptions,\n\tAgentConnectionNavigateTreeResult,\n\tAgentConnectionNewSessionOptions,\n\tAgentConnectionPromptOptions,\n\tAgentConnectionQueuedMessageLane,\n\tAgentConnectionQueuedMessageMutation,\n\tAgentConnectionQueuedMessageMutationStatus,\n\tAgentConnectionQueueMode,\n\tAgentConnectionQueueState,\n\tAgentConnectionResourceSnapshot,\n\tAgentConnectionRlmChildAgentSnapshot,\n\tAgentConnectionSavedSessionInfo,\n\tAgentConnectionSavedSessionScope,\n\tAgentConnectionScopedModel,\n\tAgentConnectionSessionContext,\n\tAgentConnectionSessionHeader,\n\tAgentConnectionSessionInputPause,\n\tAgentConnectionSessionListCallbacks,\n\tAgentConnectionSessionTreeNode,\n\tAgentConnectionSessionWatcher,\n\tAgentConnectionSideQuestionTurn,\n\tAgentConnectionSlashCommand,\n\tAgentConnectionSnapshot,\n\tAgentConnectionState,\n\tAgentConnectionSwitchSessionOptions,\n\tAgentConnectionToolDefinition,\n\tAgentConnectionUserMessage,\n} from \"./types.js\";\n\nexport interface InProcessHeadlessExtensionOptions {\n\tuiContext?: ExtensionUIContext;\n\tshutdownHandler?: () => void;\n}\n\nexport class InProcessAgentConnection implements AgentConnection {\n\tprivate readonly listeners = new Set<AgentConnectionEventListener>();\n\tprivate readonly beforeSessionInvalidateListeners = new Set<AgentConnectionBeforeSessionInvalidateListener>();\n\tprivate readonly sideQuestionRuns = new Map<string, SideQuestionRun>();\n\tprivate readonly sessionInputPauses = new Map<string, AgentConnectionSessionInputPause>();\n\tprivate headlessExtensionOptions: InProcessHeadlessExtensionOptions | undefined;\n\tprivate unsubscribeSessionEvents: (() => void) | undefined;\n\n\tconstructor(private readonly runtimeHost: AgentSessionRuntime) {\n\t\tthis.bindCurrentSessionEvents();\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(() => {\n\t\t\t\tthis.abortAllSideQuestions();\n\t\t\t\tfor (const listener of [...this.beforeSessionInvalidateListeners]) {\n\t\t\t\t\tlistener();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(async () => {\n\t\t\tthis.bindCurrentSessionEvents();\n\t\t\tif (this.headlessExtensionOptions) {\n\t\t\t\tawait this.bindCurrentSessionExtensions();\n\t\t\t}\n\t\t\tconst state = createAgentConnectionState(this.runtimeHost);\n\t\t\tconst messages = [...this.runtimeHost.session.messages];\n\t\t\tawait this.emit({\n\t\t\t\ttype: \"session_replaced\",\n\t\t\t\tstate: await state,\n\t\t\t\tmessages,\n\t\t\t});\n\t\t});\n\t}\n\n\tasync bindHeadlessExtensions(options: InProcessHeadlessExtensionOptions = {}): Promise<void> {\n\t\tthis.headlessExtensionOptions = options;\n\t\tawait this.bindCurrentSessionExtensions();\n\t}\n\n\tsupportsAcpMcpServers(): boolean {\n\t\treturn true;\n\t}\n\n\tasync replaceAcpMcpServers(servers: readonly AcpMcpServerConfig[], ownerId: string): Promise<void> {\n\t\tthis.runtimeHost.session.replaceAcpMcpServers(servers, ownerId);\n\t}\n\n\tasync releaseAcpMcpServers(ownerId: string, serverNames: readonly string[]): Promise<void> {\n\t\tawait this.runtimeHost.session.releaseAcpMcpServers(ownerId, serverNames);\n\t}\n\n\tsubscribe(listener: AgentConnectionEventListener): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tonBeforeSessionInvalidate(listener: AgentConnectionBeforeSessionInvalidateListener): () => void {\n\t\tthis.beforeSessionInvalidateListeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.beforeSessionInvalidateListeners.delete(listener);\n\t\t};\n\t}\n\n\tasync getState(): Promise<AgentConnectionState> {\n\t\treturn createAgentConnectionState(this.runtimeHost);\n\t}\n\n\tasync getInitialSnapshot(): Promise<AgentConnectionSnapshot> {\n\t\treturn createAgentConnectionSnapshot(this.runtimeHost);\n\t}\n\n\tasync getRlmChildSnapshots(): Promise<AgentConnectionRlmChildAgentSnapshot[]> {\n\t\treturn this.session.getRlmChildSnapshots();\n\t}\n\n\tasync getMessages(): Promise<AgentMessage[]> {\n\t\treturn this.session.state.messages;\n\t}\n\n\tasync getSessionHeader(): Promise<AgentConnectionSessionHeader | undefined> {\n\t\treturn this.session.sessionManager.getHeader() ?? undefined;\n\t}\n\n\tasync getCommands(): Promise<AgentConnectionSlashCommand[]> {\n\t\treturn createAgentConnectionCommands(this.session);\n\t}\n\n\tasync getResourceSnapshot(): Promise<AgentConnectionResourceSnapshot> {\n\t\treturn createAgentConnectionResourceSnapshot(this.session);\n\t}\n\n\tasync getAvailableModels(): Promise<AgentConnectionModel[]> {\n\t\treturn this.session.modelRegistry.refreshAvailableModels();\n\t}\n\n\tasync getModelCatalog(): Promise<AgentConnectionModelCatalog> {\n\t\treturn this.session.modelRegistry.refreshModelCatalog();\n\t}\n\n\tasync getSessionStats(): Promise<SessionStats> {\n\t\treturn this.session.getSessionStats();\n\t}\n\n\tasync getContextTree(): Promise<ContextTreeNode> {\n\t\treturn this.session.getContextTree();\n\t}\n\n\tasync getSessionContext(): Promise<AgentConnectionSessionContext> {\n\t\treturn this.session.buildSessionContext();\n\t}\n\n\tasync getSessionTree(): Promise<{ tree: AgentConnectionSessionTreeNode[]; leafId: string | null }> {\n\t\treturn readSessionTree(this.session.sessionManager);\n\t}\n\n\tasync listSavedSessions(\n\t\tscope: AgentConnectionSavedSessionScope,\n\t\tcallbacks?: AgentConnectionSessionListCallbacks,\n\t): Promise<AgentConnectionSavedSessionInfo[]> {\n\t\t// In-memory managers hold \"\" for \"no explicit session dir\"; pass undefined so\n\t\t// list()/listAll() fall back to the default directories instead of scanning \"\".\n\t\tconst sessionDir = this.session.sessionManager.getSessionDir() || undefined;\n\t\tif (scope === \"current\") {\n\t\t\treturn SessionManager.list(this.session.sessionManager.getCwd(), sessionDir, callbacks);\n\t\t}\n\t\treturn SessionManager.listAll(callbacks, sessionDir);\n\t}\n\n\tasync getQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn {\n\t\t\tsteering: [...this.session.getSteeringMessagePreviews()],\n\t\t\tfollowUp: [...this.session.getFollowUpMessagePreviews()],\n\t\t};\n\t}\n\n\tasync mutateQueuedMessage(\n\t\tlane: AgentConnectionQueuedMessageLane,\n\t\tindex: number,\n\t\texpectedText: string,\n\t\tmutation: AgentConnectionQueuedMessageMutation,\n\t): Promise<AgentConnectionQueuedMessageMutationStatus> {\n\t\treturn this.session.mutateQueuedMessage(lane, index, expectedText, mutation);\n\t}\n\n\tasync clearQueue(): Promise<AgentConnectionQueueState> {\n\t\treturn this.session.clearQueue();\n\t}\n\n\tasync abortAndClearQueue(): Promise<AgentConnectionQueueState> {\n\t\tconst queue = this.session.clearQueue();\n\t\tthis.session.requestAbort();\n\t\treturn queue;\n\t}\n\n\tasync acquireSessionInputPause(leaseKey: string): Promise<AgentConnectionSessionInputPause> {\n\t\tconst existing = this.sessionInputPauses.get(leaseKey);\n\t\tif (existing) return existing;\n\t\tconst pause = this.session.acquireSessionInputPause();\n\t\tlet released = false;\n\t\tconst lease: AgentConnectionSessionInputPause = {\n\t\t\trelease: async () => {\n\t\t\t\tif (released) return;\n\t\t\t\tpause.release();\n\t\t\t\treleased = true;\n\t\t\t\tif (this.sessionInputPauses.get(leaseKey) === lease) this.sessionInputPauses.delete(leaseKey);\n\t\t\t},\n\t\t};\n\t\tthis.sessionInputPauses.set(leaseKey, lease);\n\t\treturn lease;\n\t}\n\n\tasync listCronJobs(_options: { includeInactive?: boolean } = {}): Promise<AgentCronJob[]> {\n\t\treturn [];\n\t}\n\n\tasync listHeartbeats(): Promise<AgentConnectionHeartbeat[]> {\n\t\treturn [];\n\t}\n\n\tasync manageHeartbeat(\n\t\t_activeSessionId: string,\n\t\t_jobId: string,\n\t\t_action: AgentHeartbeatManagementAction,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync addCronJob(_schedule: string, _prompt: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync cancelCronJob(_jobId: string): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Cron jobs require daemon mode\");\n\t}\n\n\tasync getHeartbeat(): Promise<AgentCronJob | undefined> {\n\t\treturn undefined;\n\t}\n\n\tasync setHeartbeat(\n\t\t_schedule: string,\n\t\t_instruction: string,\n\t\t_deliveryMode?: AgentHeartbeatDeliveryMode,\n\t): Promise<AgentCronJob> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync updateHeartbeat(_action: AgentHeartbeatUpdateAction): Promise<AgentCronJob | undefined> {\n\t\tthrow new Error(\"Heartbeats require daemon mode\");\n\t}\n\n\tasync sendAgentMessage(_targetActiveSessionId: string, _message: string): Promise<AgentSessionMessageReceipt> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getAgentMessageStatus(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync pauseAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync resumeAgentMessages(): Promise<AgentSessionMessageSafetyStatus> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync clearAgentMessages(): Promise<number> {\n\t\tthrow new Error(\"Agent messaging requires daemon mode\");\n\t}\n\n\tasync getUserMessagesForForking(): Promise<AgentConnectionUserMessage[]> {\n\t\treturn readUserMessagesForForking(this.session.sessionManager);\n\t}\n\n\tasync getLastAssistantText(): Promise<string | undefined> {\n\t\treturn this.session.getLastAssistantText();\n\t}\n\n\tasync getSystemPrompt(): Promise<string> {\n\t\treturn this.session.systemPrompt;\n\t}\n\n\tasync getToolDefinition(name: string): Promise<AgentConnectionToolDefinition | undefined> {\n\t\treturn createAgentConnectionToolDefinition(this.session.getToolDefinition(name));\n\t}\n\n\tasync setSessionEntryLabel(entryId: string, label: string | undefined): Promise<void> {\n\t\tawait this.session.sessionManager.appendLabelChange(entryId, label);\n\t}\n\n\tasync respondToExtensionUiRequest(_requestId: string, _response: AgentConnectionExtensionUiResponse): Promise<void> {\n\t\t// In-process extension UI requests are handled directly by InteractiveMode.\n\t}\n\n\tasync prompt(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tlet accepted = false;\n\t\t\tconst resolveOnce = () => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst rejectOnce = (error: unknown) => {\n\t\t\t\tif (!settled) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst prompt = this.session.prompt(message, {\n\t\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t\t\tpreflightResult: (success) => {\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\taccepted = true;\n\t\t\t\t\t\tresolveOnce();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t\tvoid prompt.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (accepted) resolveOnce();\n\t\t\t\t\telse rejectOnce(new Error(\"Prompt was not accepted by the session.\"));\n\t\t\t\t},\n\t\t\t\t(error: unknown) => {\n\t\t\t\t\tif (!accepted) rejectOnce(error);\n\t\t\t\t\t// Output-limit refusals already have their own refusal-only agent_end.\n\t\t\t\t\telse if (!(error instanceof AgentOutputLimitError)) {\n\t\t\t\t\t\tvoid this.emit({\n\t\t\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\t\t\textensionPath: \"<session-input>\",\n\t\t\t\t\t\t\tevent: \"prompt_completion\",\n\t\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tasync promptAndWait(message: string, options?: AgentConnectionPromptOptions): Promise<void> {\n\t\tawait this.session.promptAndWait(message, {\n\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior, resumeIfIdle: true } : {}),\n\t\t\t...(options?.queueIfBusy !== undefined ? { queueIfBusy: options.queueIfBusy } : {}),\n\t\t\t...(options?.source ? { source: options.source } : {}),\n\t\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t});\n\t}\n\n\tasync startSideQuestion(\n\t\tid: string,\n\t\tquestion: string,\n\t\tpreviousTurns?: AgentConnectionSideQuestionTurn[],\n\t): Promise<void> {\n\t\tif (this.sideQuestionRuns.has(id)) {\n\t\t\tthrow new Error(`Side question already exists: ${id}`);\n\t\t}\n\t\tconst run = startSideQuestion(\n\t\t\tthis.session.agent,\n\t\t\tid,\n\t\t\tquestion,\n\t\t\t(event) => this.emit({ type: \"side_question_event\", event }),\n\t\t\tpreviousTurns,\n\t\t);\n\t\tthis.sideQuestionRuns.set(id, run);\n\t\tconst removeRun = () => {\n\t\t\tthis.sideQuestionRuns.delete(id);\n\t\t};\n\t\tvoid run.done.then(removeRun, removeRun);\n\t}\n\n\tasync abortSideQuestion(id: string): Promise<boolean> {\n\t\tconst run = this.sideQuestionRuns.get(id);\n\t\tif (!run) {\n\t\t\treturn false;\n\t\t}\n\t\trun.abort();\n\t\treturn true;\n\t}\n\n\tasync steer(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.steer(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync followUp(message: string, images?: ImageContent[]): Promise<void> {\n\t\tawait this.session.followUp(message, images, { resumeIfIdle: true });\n\t}\n\n\tasync abort(): Promise<void> {\n\t\tthis.session.requestAbort();\n\t}\n\n\tasync cancelRlmChild(childId: string): Promise<boolean> {\n\t\treturn this.session.cancelRlmChildRun(childId);\n\t}\n\n\tasync waitForIdle(): Promise<void> {\n\t\tawait this.session.waitForIdle();\n\t}\n\n\tasync waitForHeadlessCompletion(options?: AgentConnectionHeadlessCompletionOptions): Promise<AgentAutonomousStatus> {\n\t\treturn waitForHeadlessCompletion(this.session, options);\n\t}\n\n\tasync executeBash(command: string, options?: AgentConnectionExecuteBashOptions): Promise<void> {\n\t\tawait this.session.runUserBash(command, options);\n\t}\n\n\tasync executeBashAndWait(command: string): Promise<BashResult> {\n\t\treturn this.session.executeBash(command);\n\t}\n\n\tasync abortBash(): Promise<void> {\n\t\tthis.session.abortBash();\n\t}\n\n\tasync setModel(provider: string, modelId: string): Promise<AgentConnectionModel> {\n\t\tconst availableModels = await this.session.modelRegistry.refreshAvailableModels();\n\t\tconst model = availableModels.find((candidate) => {\n\t\t\treturn candidate.provider === provider && candidate.id === modelId;\n\t\t});\n\t\tif (!model) {\n\t\t\tthrow new Error(`Model not found: ${provider}/${modelId}`);\n\t\t}\n\t\tawait this.session.setModel(model);\n\t\treturn model;\n\t}\n\n\tasync cycleModel(\n\t\tdirection: \"forward\" | \"backward\" = \"forward\",\n\t): Promise<AgentConnectionModelCycleResult | undefined> {\n\t\treturn this.session.cycleModel(direction);\n\t}\n\n\tasync setScopedModels(scopedModels: AgentConnectionScopedModel[]): Promise<void> {\n\t\tthis.session.setScopedModels(scopedModels);\n\t}\n\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tawait this.session.setThinkingLevel(level);\n\t}\n\n\tasync setServiceTier(serviceTier: ServiceTier): Promise<void> {\n\t\tawait this.session.setServiceTier(serviceTier);\n\t}\n\n\tasync cycleThinkingLevel(): Promise<ThinkingLevel | undefined> {\n\t\treturn this.session.cycleThinkingLevel();\n\t}\n\n\tasync setTransport(transport: Transport): Promise<void> {\n\t\tthis.session.settingsManager.setTransport(transport);\n\t\tthis.session.agent.transport = transport;\n\t}\n\n\tasync setSteeringMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setSteeringMode(mode);\n\t}\n\n\tasync setFollowUpMode(mode: AgentConnectionQueueMode): Promise<void> {\n\t\tthis.session.setFollowUpMode(mode);\n\t}\n\n\tasync setAutoCompactionEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoCompactionEnabled(enabled);\n\t}\n\n\tasync setAutoRetryEnabled(enabled: boolean): Promise<void> {\n\t\tthis.session.setAutoRetryEnabled(enabled);\n\t}\n\n\tasync compact(customInstructions?: string): Promise<CompactionResult> {\n\t\treturn this.session.compact(customInstructions);\n\t}\n\n\tasync refine(\n\t\toptions: { instructions?: string; rollbackId?: string; global?: boolean } = {},\n\t): Promise<RefinementResult> {\n\t\treturn this.session.refine(options);\n\t}\n\n\tasync abortCompaction(): Promise<void> {\n\t\tthis.session.abortCompaction();\n\t}\n\n\tasync abortBranchSummary(): Promise<void> {\n\t\tthis.session.abortBranchSummary();\n\t}\n\n\tasync abortRetry(): Promise<void> {\n\t\tthis.session.abortRetry();\n\t}\n\n\tasync reload(): Promise<void> {\n\t\tawait this.session.reload();\n\t}\n\n\tasync newSession(options?: AgentConnectionNewSessionOptions): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.newSession(options);\n\t}\n\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: AgentConnectionSwitchSessionOptions,\n\t): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.switchSession(sessionPath, options);\n\t}\n\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: AgentConnectionForkOptions,\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\treturn this.runtimeHost.fork(entryId, options);\n\t}\n\n\tasync navigateTree(\n\t\ttargetId: string,\n\t\toptions?: AgentConnectionNavigateTreeOptions,\n\t): Promise<AgentConnectionNavigateTreeResult> {\n\t\treturn this.session.navigateTree(targetId, options);\n\t}\n\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.runtimeHost.importFromJsonl(inputPath, cwdOverride);\n\t}\n\n\tasync exportToHtml(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToHtml(outputPath);\n\t}\n\n\tasync exportToJsonl(outputPath?: string): Promise<string> {\n\t\treturn this.session.exportToJsonl(outputPath);\n\t}\n\n\tasync setSessionName(name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tawait this.session.setSessionName(trimmedName);\n\t}\n\n\tasync getRlmMaxSubagentsStatus() {\n\t\treturn this.session.getRlmMaxSubagentsStatus();\n\t}\n\n\tasync setRlmMaxSubagents(maxSubagents: number) {\n\t\treturn this.session.setRlmMaxSubagents(maxSubagents);\n\t}\n\n\tasync getRlmMaxDepthStatus() {\n\t\treturn this.session.getRlmMaxDepthStatus();\n\t}\n\n\tasync setRlmMaxDepth(maxDepth: number, options?: { global?: boolean }) {\n\t\treturn this.session.setRlmMaxDepth(maxDepth, options);\n\t}\n\n\tasync renameSavedSession(sessionPath: string, name: string): Promise<void> {\n\t\tconst trimmedName = name.trim();\n\t\tif (!trimmedName) {\n\t\t\tthrow new Error(\"Session name cannot be empty\");\n\t\t}\n\t\tconst currentSessionFile = this.session.sessionFile;\n\t\tif (currentSessionFile && resolve(currentSessionFile) === resolve(sessionPath)) {\n\t\t\tawait this.session.setSessionName(trimmedName);\n\t\t\treturn;\n\t\t}\n\t\tconst manager = await SessionManager.open(sessionPath);\n\t\ttry {\n\t\t\tawait manager.appendSessionInfo(trimmedName);\n\t\t} finally {\n\t\t\tawait manager.close();\n\t\t}\n\t}\n\n\tasync deleteSavedSession(sessionPath: string): Promise<DeleteSessionFileResult> {\n\t\treturn deleteSessionFile(sessionPath);\n\t}\n\n\tasync watchSession(childId: string): Promise<AgentConnectionSessionWatcher | undefined> {\n\t\tconst child = this.session.getRlmChildSession(childId);\n\t\tif (!child) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst unsubscribes = new Set<() => void>();\n\t\treturn {\n\t\t\tgetMessages: async () => child.messages,\n\t\t\tgetCommands: async () => createAgentConnectionCommands(child),\n\t\t\tsubscribe: (listener) => {\n\t\t\t\tconst unsubscribe = child.subscribe((event) => void listener({ type: \"session_event\", event }));\n\t\t\t\tunsubscribes.add(unsubscribe);\n\t\t\t\treturn () => {\n\t\t\t\t\tunsubscribes.delete(unsubscribe);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetToolDefinition: async (name) => createAgentConnectionToolDefinition(child.getToolDefinition(name)),\n\t\t\tclose: async () => {\n\t\t\t\tfor (const unsubscribe of unsubscribes) {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t}\n\t\t\t\tunsubscribes.clear();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync dispose(): Promise<void> {\n\t\tthis.abortAllSideQuestions();\n\t\tawait Promise.allSettled([...this.sessionInputPauses.values()].map((pause) => pause.release()));\n\t\tthis.sessionInputPauses.clear();\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = undefined;\n\t\tif (typeof this.runtimeHost.setBeforeSessionInvalidate === \"function\") {\n\t\t\tthis.runtimeHost.setBeforeSessionInvalidate(undefined);\n\t\t}\n\t\tthis.runtimeHost.setRebindSession(undefined);\n\t\tawait this.runtimeHost.dispose();\n\t}\n\n\tprivate get session() {\n\t\treturn this.runtimeHost.session;\n\t}\n\n\tprivate bindCurrentSessionEvents(): void {\n\t\tthis.unsubscribeSessionEvents?.();\n\t\tthis.unsubscribeSessionEvents = this.session.subscribe((event) => {\n\t\t\tvoid this.emit({ type: \"session_event\", event });\n\t\t});\n\t}\n\n\tprivate async bindCurrentSessionExtensions(): Promise<void> {\n\t\tconst session = this.session;\n\t\tawait session.bindExtensions({\n\t\t\tuiContext: this.headlessExtensionOptions?.uiContext,\n\t\t\tcommandContextActions: {\n\t\t\t\twaitForIdle: () => session.waitForIdle(),\n\t\t\t\tnewSession: (options) => this.runtimeHost.newSession(options),\n\t\t\t\tfork: async (entryId, options) => {\n\t\t\t\t\tconst result = await this.runtimeHost.fork(entryId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tnavigateTree: async (targetId, options) => {\n\t\t\t\t\tconst result = await session.navigateTree(targetId, options);\n\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t},\n\t\t\t\tswitchSession: (sessionPath, options) => this.runtimeHost.switchSession(sessionPath, options),\n\t\t\t\treload: () => session.reload(),\n\t\t\t},\n\t\t\tshutdownHandler: this.headlessExtensionOptions?.shutdownHandler,\n\t\t\tonError: (error) => {\n\t\t\t\tvoid this.emit({\n\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\textensionPath: error.extensionPath,\n\t\t\t\t\tevent: error.event,\n\t\t\t\t\terror: error.error,\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate abortAllSideQuestions(): void {\n\t\tfor (const run of this.sideQuestionRuns.values()) {\n\t\t\trun.abort();\n\t\t}\n\t\tthis.sideQuestionRuns.clear();\n\t}\n\n\tprivate async emit(event: AgentConnectionEvent): Promise<void> {\n\t\tfor (const listener of [...this.listeners]) {\n\t\t\tawait listener(event);\n\t\t}\n\t}\n}\n"]}
@@ -14,6 +14,7 @@ import type { KernelSentAgentMessage } from "../../core/kernel/index.js";
14
14
  import type { AcpMcpServerConfig } from "../../core/mcp/acp-mcp-types.js";
15
15
  import type { RefinementResult } from "../../core/refinement/index.js";
16
16
  import type { RlmMaxDepthStatus, SetRlmMaxDepthResult } from "../../core/rlm-max-depth.js";
17
+ import type { RlmMaxSubagentsStatus } from "../../core/rlm-max-subagents.js";
17
18
  import type { QueuedMessageLane, QueuedMessageMutation, QueuedMessageMutationStatus, SessionActionSnapshot } from "../../core/session-action-store.js";
18
19
  import type { DeleteSessionFileResult } from "../../core/session-file-actions.js";
19
20
  import type { SessionStats } from "../../core/session-stats.js";
@@ -710,6 +711,8 @@ export interface AgentConnection {
710
711
  exportToHtml(outputPath?: string): Promise<string>;
711
712
  exportToJsonl(outputPath?: string): Promise<string>;
712
713
  setSessionName(name: string): Promise<void>;
714
+ getRlmMaxSubagentsStatus(): Promise<RlmMaxSubagentsStatus>;
715
+ setRlmMaxSubagents(maxSubagents: number): Promise<RlmMaxSubagentsStatus>;
713
716
  getRlmMaxDepthStatus(): Promise<RlmMaxDepthStatus>;
714
717
  setRlmMaxDepth(maxDepth: number, options?: {
715
718
  global?: boolean;