@bastani/atomic 0.9.21-alpha.1 → 0.9.21-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/builtin/intercom/package.json +1 -1
  3. package/dist/builtin/mcp/package.json +1 -1
  4. package/dist/builtin/subagents/CHANGELOG.md +11 -0
  5. package/dist/builtin/subagents/package.json +1 -1
  6. package/dist/builtin/subagents/src/extension/index.bundle.mjs +292 -60
  7. package/dist/builtin/web-access/package.json +1 -1
  8. package/dist/builtin/workflows/CHANGELOG.md +11 -0
  9. package/dist/builtin/workflows/builtin/adversarial-verification.js +3 -3
  10. package/dist/builtin/workflows/builtin/{chunk-cw86srkf.js → chunk-632fxeb8.js} +1 -1
  11. package/dist/builtin/workflows/builtin/{chunk-w18kbz63.js → chunk-94f8zfz1.js} +1 -1
  12. package/dist/builtin/workflows/builtin/{chunk-kspvwc24.js → chunk-9cm2ckq2.js} +1 -1
  13. package/dist/builtin/workflows/builtin/{chunk-jaj27rqc.js → chunk-a1ar035d.js} +1 -1
  14. package/dist/builtin/workflows/builtin/{chunk-wh19f5ee.js → chunk-d3xhj946.js} +5 -4
  15. package/dist/builtin/workflows/builtin/{chunk-crw7q5g1.js → chunk-gyjck9z8.js} +1 -1
  16. package/dist/builtin/workflows/builtin/{chunk-maqv731g.js → chunk-hj8mh07f.js} +10 -6
  17. package/dist/builtin/workflows/builtin/{chunk-0nrgfbag.js → chunk-kb7s3gx2.js} +1 -1
  18. package/dist/builtin/workflows/builtin/{chunk-73c5tayt.js → chunk-kgn5wz1c.js} +19 -1
  19. package/dist/builtin/workflows/builtin/{chunk-2hak3b7g.js → chunk-nkj4qhj6.js} +1 -1
  20. package/dist/builtin/workflows/builtin/{chunk-bzdvx2xr.js → chunk-r97ndfvt.js} +1 -1
  21. package/dist/builtin/workflows/builtin/{chunk-vkmpdat4.js → chunk-wf876n16.js} +1 -1
  22. package/dist/builtin/workflows/builtin/classify-and-act.js +3 -3
  23. package/dist/builtin/workflows/builtin/fan-out-and-synthesize.js +3 -3
  24. package/dist/builtin/workflows/builtin/generate-and-filter.js +3 -3
  25. package/dist/builtin/workflows/builtin/goal.js +4 -4
  26. package/dist/builtin/workflows/builtin/index.js +12 -12
  27. package/dist/builtin/workflows/builtin/loop-until-done.js +3 -3
  28. package/dist/builtin/workflows/builtin/open-claude-design.js +3 -3
  29. package/dist/builtin/workflows/builtin/ralph.js +4 -4
  30. package/dist/builtin/workflows/builtin/steering-context.js +1 -1
  31. package/dist/builtin/workflows/builtin/tournament.js +3 -3
  32. package/dist/builtin/workflows/package.json +1 -1
  33. package/dist/builtin/workflows/src/extension/index.bundle.mjs +40 -11
  34. package/dist/builtin/workflows/src/index.js +9 -3
  35. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +6 -1
  36. package/dist/cli/auth-command.js +5 -0
  37. package/dist/cli/auth-command.js.map +1 -1
  38. package/dist/cli/credential-print.js +2 -0
  39. package/dist/cli/credential-print.js.map +1 -1
  40. package/dist/cli/experimental/command.js +5 -2
  41. package/dist/cli/experimental/command.js.map +1 -1
  42. package/dist/cli.js +1 -1
  43. package/dist/cli.js.map +1 -1
  44. package/dist/config.d.ts +4 -4
  45. package/dist/config.js +4 -4
  46. package/dist/config.js.map +1 -1
  47. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  48. package/dist/core/agent-session-extension-bindings.js +9 -4
  49. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  50. package/dist/core/agent-session-methods.d.ts +4 -4
  51. package/dist/core/agent-session-methods.d.ts.map +1 -1
  52. package/dist/core/agent-session-methods.js.map +1 -1
  53. package/dist/core/agent-session-prompt.d.ts +4 -4
  54. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  55. package/dist/core/agent-session-prompt.js +38 -15
  56. package/dist/core/agent-session-prompt.js.map +1 -1
  57. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  58. package/dist/core/agent-session-runtime.js +14 -9
  59. package/dist/core/agent-session-runtime.js.map +1 -1
  60. package/dist/core/agent-session-types.d.ts +4 -1
  61. package/dist/core/agent-session-types.d.ts.map +1 -1
  62. package/dist/core/agent-session-types.js.map +1 -1
  63. package/dist/core/agent-session.d.ts +1 -1
  64. package/dist/core/agent-session.d.ts.map +1 -1
  65. package/dist/core/agent-session.js +140 -95
  66. package/dist/core/agent-session.js.map +1 -1
  67. package/dist/core/auth-storage-backends.js +2 -3
  68. package/dist/core/auth-storage-backends.js.map +1 -1
  69. package/dist/core/auth-storage.js +4 -1
  70. package/dist/core/auth-storage.js.map +1 -1
  71. package/dist/core/builtin-resource-loader.js +9 -0
  72. package/dist/core/builtin-resource-loader.js.map +1 -1
  73. package/dist/core/cache-warmer.js +8 -1
  74. package/dist/core/cache-warmer.js.map +1 -1
  75. package/dist/core/compaction/range-planner.js +6 -0
  76. package/dist/core/compaction/range-planner.js.map +1 -1
  77. package/dist/core/execution-model-router.d.ts +13 -3
  78. package/dist/core/execution-model-router.d.ts.map +1 -1
  79. package/dist/core/execution-model-router.js +227 -131
  80. package/dist/core/execution-model-router.js.map +1 -1
  81. package/dist/core/export-html/template-js/entries-navigation.js +16 -6
  82. package/dist/core/export-html/template-js/initialization.js +34 -11
  83. package/dist/core/export-html/template.css +10 -0
  84. package/dist/core/export-html/template.js +50 -17
  85. package/dist/core/extensions/context-types.d.ts +2 -0
  86. package/dist/core/extensions/context-types.d.ts.map +1 -1
  87. package/dist/core/extensions/context-types.js.map +1 -1
  88. package/dist/core/extensions/host-input.js +8 -4
  89. package/dist/core/extensions/host-input.js.map +1 -1
  90. package/dist/core/extensions/reactive-widget.js +1 -0
  91. package/dist/core/extensions/reactive-widget.js.map +1 -1
  92. package/dist/core/extensions/runner-context.d.ts +1 -0
  93. package/dist/core/extensions/runner-context.d.ts.map +1 -1
  94. package/dist/core/extensions/runner-context.js +4 -0
  95. package/dist/core/extensions/runner-context.js.map +1 -1
  96. package/dist/core/extensions/runner.d.ts +1 -0
  97. package/dist/core/extensions/runner.d.ts.map +1 -1
  98. package/dist/core/extensions/runner.js +48 -30
  99. package/dist/core/extensions/runner.js.map +1 -1
  100. package/dist/core/extensions/runtime-types.d.ts +1 -0
  101. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  102. package/dist/core/extensions/runtime-types.js.map +1 -1
  103. package/dist/core/extensions/workflow-activity-hub.js +9 -7
  104. package/dist/core/extensions/workflow-activity-hub.js.map +1 -1
  105. package/dist/core/footer-data-provider.js +24 -23
  106. package/dist/core/footer-data-provider.js.map +1 -1
  107. package/dist/core/keybindings.js +1 -0
  108. package/dist/core/keybindings.js.map +1 -1
  109. package/dist/core/mandatory-resource-loader.js +4 -1
  110. package/dist/core/mandatory-resource-loader.js.map +1 -1
  111. package/dist/core/model-config.js +2 -0
  112. package/dist/core/model-config.js.map +1 -1
  113. package/dist/core/model-registry.js +1 -0
  114. package/dist/core/model-registry.js.map +1 -1
  115. package/dist/core/{model-routing-task.d.ts → model-routing-bytes.d.ts} +1 -4
  116. package/dist/core/model-routing-bytes.d.ts.map +1 -0
  117. package/dist/core/model-routing-bytes.js +33 -0
  118. package/dist/core/model-routing-bytes.js.map +1 -0
  119. package/dist/core/model-routing-candidates.d.ts +42 -0
  120. package/dist/core/model-routing-candidates.d.ts.map +1 -0
  121. package/dist/core/model-routing-candidates.js +309 -0
  122. package/dist/core/model-routing-candidates.js.map +1 -0
  123. package/dist/core/model-routing-constraints.d.ts +4 -0
  124. package/dist/core/model-routing-constraints.d.ts.map +1 -1
  125. package/dist/core/model-routing-constraints.js +13 -1
  126. package/dist/core/model-routing-constraints.js.map +1 -1
  127. package/dist/core/model-routing-debug.d.ts +9 -0
  128. package/dist/core/model-routing-debug.d.ts.map +1 -0
  129. package/dist/core/model-routing-debug.js +14 -0
  130. package/dist/core/model-routing-debug.js.map +1 -0
  131. package/dist/core/model-routing-evals.d.ts +50 -0
  132. package/dist/core/model-routing-evals.d.ts.map +1 -0
  133. package/dist/core/model-routing-evals.js +190 -0
  134. package/dist/core/model-routing-evals.js.map +1 -0
  135. package/dist/core/model-routing-needs.d.ts +75 -0
  136. package/dist/core/model-routing-needs.d.ts.map +1 -0
  137. package/dist/core/model-routing-needs.js +176 -0
  138. package/dist/core/model-routing-needs.js.map +1 -0
  139. package/dist/core/model-runtime-streaming.js +3 -0
  140. package/dist/core/model-runtime-streaming.js.map +1 -1
  141. package/dist/core/model-runtime.js +26 -14
  142. package/dist/core/model-runtime.js.map +1 -1
  143. package/dist/core/models-store.js +2 -3
  144. package/dist/core/models-store.js.map +1 -1
  145. package/dist/core/output-guard.js +1 -0
  146. package/dist/core/output-guard.js.map +1 -1
  147. package/dist/core/package-manager-paths.d.ts +2 -1
  148. package/dist/core/package-manager-paths.d.ts.map +1 -1
  149. package/dist/core/package-manager-paths.js +4 -3
  150. package/dist/core/package-manager-paths.js.map +1 -1
  151. package/dist/core/package-manager.js +1 -0
  152. package/dist/core/package-manager.js.map +1 -1
  153. package/dist/core/resource-loader-assets.d.ts.map +1 -1
  154. package/dist/core/resource-loader-assets.js +9 -7
  155. package/dist/core/resource-loader-assets.js.map +1 -1
  156. package/dist/core/resource-loader-core.js +49 -0
  157. package/dist/core/resource-loader-core.js.map +1 -1
  158. package/dist/core/runtime-credentials.js +2 -1
  159. package/dist/core/runtime-credentials.js.map +1 -1
  160. package/dist/core/session-cwd.js +1 -0
  161. package/dist/core/session-cwd.js.map +1 -1
  162. package/dist/core/session-manager-archive.d.ts.map +1 -1
  163. package/dist/core/session-manager-archive.js +4 -2
  164. package/dist/core/session-manager-archive.js.map +1 -1
  165. package/dist/core/session-manager-core.js +11 -7
  166. package/dist/core/session-manager-core.js.map +1 -1
  167. package/dist/core/session-manager-storage.d.ts +10 -4
  168. package/dist/core/session-manager-storage.d.ts.map +1 -1
  169. package/dist/core/session-manager-storage.js +12 -6
  170. package/dist/core/session-manager-storage.js.map +1 -1
  171. package/dist/core/settings-manager-basic-accessors.d.ts +2 -1
  172. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  173. package/dist/core/settings-manager-basic-accessors.js +21 -0
  174. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  175. package/dist/core/settings-manager-core.js +13 -7
  176. package/dist/core/settings-manager-core.js.map +1 -1
  177. package/dist/core/settings-manager.d.ts +1 -1
  178. package/dist/core/settings-manager.d.ts.map +1 -1
  179. package/dist/core/settings-manager.js.map +1 -1
  180. package/dist/core/settings-storage.js +6 -0
  181. package/dist/core/settings-storage.js.map +1 -1
  182. package/dist/core/settings-types.d.ts +8 -0
  183. package/dist/core/settings-types.d.ts.map +1 -1
  184. package/dist/core/settings-types.js.map +1 -1
  185. package/dist/core/structured-output/index.d.ts.map +1 -1
  186. package/dist/core/structured-output/index.js +4 -1
  187. package/dist/core/structured-output/index.js.map +1 -1
  188. package/dist/core/structured-output/invalid-output.js +1 -0
  189. package/dist/core/structured-output/invalid-output.js.map +1 -1
  190. package/dist/core/tasks/agent-adapter.js +5 -3
  191. package/dist/core/tasks/agent-adapter.js.map +1 -1
  192. package/dist/core/tasks/child-command-owner.js +3 -7
  193. package/dist/core/tasks/child-command-owner.js.map +1 -1
  194. package/dist/core/tasks/completion.js +5 -1
  195. package/dist/core/tasks/completion.js.map +1 -1
  196. package/dist/core/tasks/owner-store.js +12 -8
  197. package/dist/core/tasks/owner-store.js.map +1 -1
  198. package/dist/core/tasks/supervisor.js +14 -35
  199. package/dist/core/tasks/supervisor.js.map +1 -1
  200. package/dist/core/tools/ask-user-question/state/build-questionnaire.js +13 -4
  201. package/dist/core/tools/ask-user-question/state/build-questionnaire.js.map +1 -1
  202. package/dist/core/tools/ask-user-question/state/questionnaire-session.js +11 -1
  203. package/dist/core/tools/ask-user-question/state/questionnaire-session.js.map +1 -1
  204. package/dist/core/tools/ask-user-question/view/components/chat-row-view.js +1 -0
  205. package/dist/core/tools/ask-user-question/view/components/chat-row-view.js.map +1 -1
  206. package/dist/core/tools/ask-user-question/view/components/multi-select-view.js +1 -0
  207. package/dist/core/tools/ask-user-question/view/components/multi-select-view.js.map +1 -1
  208. package/dist/core/tools/ask-user-question/view/components/option-list-view.js +1 -0
  209. package/dist/core/tools/ask-user-question/view/components/option-list-view.js.map +1 -1
  210. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.js +5 -0
  211. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.js.map +1 -1
  212. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.js +2 -0
  213. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.js.map +1 -1
  214. package/dist/core/tools/ask-user-question/view/components/preview/preview-pane.js +13 -8
  215. package/dist/core/tools/ask-user-question/view/components/preview/preview-pane.js.map +1 -1
  216. package/dist/core/tools/ask-user-question/view/components/submit-picker.js +1 -0
  217. package/dist/core/tools/ask-user-question/view/components/submit-picker.js.map +1 -1
  218. package/dist/core/tools/ask-user-question/view/components/tab-bar.js +1 -0
  219. package/dist/core/tools/ask-user-question/view/components/tab-bar.js.map +1 -1
  220. package/dist/core/tools/ask-user-question/view/components/wrapping-select.js +30 -24
  221. package/dist/core/tools/ask-user-question/view/components/wrapping-select.js.map +1 -1
  222. package/dist/core/tools/ask-user-question/view/dialog-builder.js +5 -0
  223. package/dist/core/tools/ask-user-question/view/dialog-builder.js.map +1 -1
  224. package/dist/core/tools/ask-user-question/view/props-adapter.js +8 -0
  225. package/dist/core/tools/ask-user-question/view/props-adapter.js.map +1 -1
  226. package/dist/core/tools/ask-user-question/view/tab-content-strategy.js +4 -4
  227. package/dist/core/tools/ask-user-question/view/tab-content-strategy.js.map +1 -1
  228. package/dist/core/tools/bash.js +5 -8
  229. package/dist/core/tools/bash.js.map +1 -1
  230. package/dist/core/tools/edit-batch.js +4 -0
  231. package/dist/core/tools/edit-batch.js.map +1 -1
  232. package/dist/core/tools/edit.js +2 -0
  233. package/dist/core/tools/edit.js.map +1 -1
  234. package/dist/core/tools/file-mutation-coordinator.js +9 -0
  235. package/dist/core/tools/file-mutation-coordinator.js.map +1 -1
  236. package/dist/core/tools/find.js +1 -1
  237. package/dist/core/tools/find.js.map +1 -1
  238. package/dist/core/tools/hashline-engine/fs.js +1 -1
  239. package/dist/core/tools/hashline-engine/fs.js.map +1 -1
  240. package/dist/core/tools/hashline-engine/input.js +4 -0
  241. package/dist/core/tools/hashline-engine/input.js.map +1 -1
  242. package/dist/core/tools/hashline-engine/mismatch.js +6 -0
  243. package/dist/core/tools/hashline-engine/mismatch.js.map +1 -1
  244. package/dist/core/tools/hashline-engine/patcher.js +13 -0
  245. package/dist/core/tools/hashline-engine/patcher.js.map +1 -1
  246. package/dist/core/tools/hashline-engine/recovery.js +1 -0
  247. package/dist/core/tools/hashline-engine/recovery.js.map +1 -1
  248. package/dist/core/tools/output-accumulator.js +20 -13
  249. package/dist/core/tools/output-accumulator.js.map +1 -1
  250. package/dist/core/tools/persisted-output-file.js +9 -3
  251. package/dist/core/tools/persisted-output-file.js.map +1 -1
  252. package/dist/core/tools/resource-selectors.js +1 -0
  253. package/dist/core/tools/resource-selectors.js.map +1 -1
  254. package/dist/core/tools/write.js +1 -0
  255. package/dist/core/tools/write.js.map +1 -1
  256. package/dist/core/trust-manager.js +1 -0
  257. package/dist/core/trust-manager.js.map +1 -1
  258. package/dist/core/workflow-stage-admission.js +17 -10
  259. package/dist/core/workflow-stage-admission.js.map +1 -1
  260. package/dist/extensions/llama/client.js +2 -0
  261. package/dist/extensions/llama/client.js.map +1 -1
  262. package/dist/extensions/llama/huggingface-ui.js +17 -9
  263. package/dist/extensions/llama/huggingface-ui.js.map +1 -1
  264. package/dist/extensions/llama/huggingface.js +2 -0
  265. package/dist/extensions/llama/huggingface.js.map +1 -1
  266. package/dist/extensions/llama/ui.js +11 -3
  267. package/dist/extensions/llama/ui.js.map +1 -1
  268. package/dist/index.d.ts +4 -2
  269. package/dist/index.d.ts.map +1 -1
  270. package/dist/index.js +3 -1
  271. package/dist/index.js.map +1 -1
  272. package/dist/modes/interactive/components/armin.js +10 -6
  273. package/dist/modes/interactive/components/armin.js.map +1 -1
  274. package/dist/modes/interactive/components/assistant-message.js +10 -2
  275. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  276. package/dist/modes/interactive/components/atomic-working-status.js +10 -2
  277. package/dist/modes/interactive/components/atomic-working-status.js.map +1 -1
  278. package/dist/modes/interactive/components/bash-execution.js +9 -4
  279. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  280. package/dist/modes/interactive/components/bordered-loader.js +3 -0
  281. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  282. package/dist/modes/interactive/components/branch-summary-message.js +4 -1
  283. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  284. package/dist/modes/interactive/components/chat-message-renderer.js +2 -1
  285. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  286. package/dist/modes/interactive/components/chat-session-host-state.js +63 -31
  287. package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
  288. package/dist/modes/interactive/components/chat-session-host.js +8 -1
  289. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  290. package/dist/modes/interactive/components/chat-transcript.js +24 -14
  291. package/dist/modes/interactive/components/chat-transcript.js.map +1 -1
  292. package/dist/modes/interactive/components/compaction-boundary-message.js +2 -1
  293. package/dist/modes/interactive/components/compaction-boundary-message.js.map +1 -1
  294. package/dist/modes/interactive/components/config-selector-list.js +15 -6
  295. package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
  296. package/dist/modes/interactive/components/config-selector.js +7 -1
  297. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  298. package/dist/modes/interactive/components/countdown-timer.js +2 -0
  299. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  300. package/dist/modes/interactive/components/custom-editor.js +21 -1
  301. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  302. package/dist/modes/interactive/components/custom-entry.js +4 -1
  303. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  304. package/dist/modes/interactive/components/custom-message.js +9 -1
  305. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  306. package/dist/modes/interactive/components/daxnuts.js +8 -6
  307. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  308. package/dist/modes/interactive/components/dynamic-border.js +1 -0
  309. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  310. package/dist/modes/interactive/components/extension-editor.js +7 -1
  311. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  312. package/dist/modes/interactive/components/extension-input.js +8 -2
  313. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  314. package/dist/modes/interactive/components/extension-selector.js +9 -1
  315. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  316. package/dist/modes/interactive/components/first-time-setup.js +4 -2
  317. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  318. package/dist/modes/interactive/components/footer.js +5 -2
  319. package/dist/modes/interactive/components/footer.js.map +1 -1
  320. package/dist/modes/interactive/components/host-input-form.js +13 -2
  321. package/dist/modes/interactive/components/host-input-form.js.map +1 -1
  322. package/dist/modes/interactive/components/login-dialog.js +9 -3
  323. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  324. package/dist/modes/interactive/components/model-selector.js +24 -12
  325. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  326. package/dist/modes/interactive/components/oauth-selector.js +12 -3
  327. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  328. package/dist/modes/interactive/components/reserved-bottom-overlay.js +11 -2
  329. package/dist/modes/interactive/components/reserved-bottom-overlay.js.map +1 -1
  330. package/dist/modes/interactive/components/scoped-models-selector.js +13 -8
  331. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  332. package/dist/modes/interactive/components/scroll-widget.js +4 -0
  333. package/dist/modes/interactive/components/scroll-widget.js.map +1 -1
  334. package/dist/modes/interactive/components/session-selector-header.js +11 -7
  335. package/dist/modes/interactive/components/session-selector-header.js.map +1 -1
  336. package/dist/modes/interactive/components/session-selector-list.js +25 -12
  337. package/dist/modes/interactive/components/session-selector-list.js.map +1 -1
  338. package/dist/modes/interactive/components/session-selector.js +23 -15
  339. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  340. package/dist/modes/interactive/components/settings-selector-submenus.js +19 -1
  341. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  342. package/dist/modes/interactive/components/settings-selector.js +1 -0
  343. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  344. package/dist/modes/interactive/components/show-images-selector.js +1 -0
  345. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  346. package/dist/modes/interactive/components/skill-invocation-message.js +4 -1
  347. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  348. package/dist/modes/interactive/components/startup-identity.js +8 -3
  349. package/dist/modes/interactive/components/startup-identity.js.map +1 -1
  350. package/dist/modes/interactive/components/task-completion-message.js +2 -0
  351. package/dist/modes/interactive/components/task-completion-message.js.map +1 -1
  352. package/dist/modes/interactive/components/task-detail.js +2 -0
  353. package/dist/modes/interactive/components/task-detail.js.map +1 -1
  354. package/dist/modes/interactive/components/task-inspector.js +22 -12
  355. package/dist/modes/interactive/components/task-inspector.js.map +1 -1
  356. package/dist/modes/interactive/components/task-list.js +2 -0
  357. package/dist/modes/interactive/components/task-list.js.map +1 -1
  358. package/dist/modes/interactive/components/task-live-transcript.js +8 -3
  359. package/dist/modes/interactive/components/task-live-transcript.js.map +1 -1
  360. package/dist/modes/interactive/components/task-navigation.js +5 -2
  361. package/dist/modes/interactive/components/task-navigation.js.map +1 -1
  362. package/dist/modes/interactive/components/task-row.js +2 -0
  363. package/dist/modes/interactive/components/task-row.js.map +1 -1
  364. package/dist/modes/interactive/components/theme-selector.js +2 -0
  365. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  366. package/dist/modes/interactive/components/thinking-selector.js +7 -1
  367. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  368. package/dist/modes/interactive/components/tool-execution.js +25 -10
  369. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  370. package/dist/modes/interactive/components/transcript-follow-indicator.js +1 -0
  371. package/dist/modes/interactive/components/transcript-follow-indicator.js.map +1 -1
  372. package/dist/modes/interactive/components/tree-selector-component.js +7 -3
  373. package/dist/modes/interactive/components/tree-selector-component.js.map +1 -1
  374. package/dist/modes/interactive/components/tree-selector-help.js +1 -0
  375. package/dist/modes/interactive/components/tree-selector-help.js.map +1 -1
  376. package/dist/modes/interactive/components/tree-selector-label-input.js +6 -2
  377. package/dist/modes/interactive/components/tree-selector-label-input.js.map +1 -1
  378. package/dist/modes/interactive/components/tree-selector-list.js +4 -0
  379. package/dist/modes/interactive/components/tree-selector-list.js.map +1 -1
  380. package/dist/modes/interactive/components/trust-selector.js +6 -0
  381. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  382. package/dist/modes/interactive/components/user-message-selector.js +6 -3
  383. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  384. package/dist/modes/interactive/components/user-message.js +5 -0
  385. package/dist/modes/interactive/components/user-message.js.map +1 -1
  386. package/dist/modes/interactive/components/working-status.js +1 -0
  387. package/dist/modes/interactive/components/working-status.js.map +1 -1
  388. package/dist/modes/interactive/interactive-autocomplete.js +2 -0
  389. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
  390. package/dist/modes/interactive/interactive-extension-runtime.js +1 -0
  391. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  392. package/dist/modes/interactive/interactive-mode-base.js +162 -120
  393. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  394. package/dist/modes/interactive/interactive-mode-helpers.js +3 -0
  395. package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
  396. package/dist/modes/interactive/interactive-mode-surface.d.ts +0 -6
  397. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  398. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  399. package/dist/modes/interactive/interactive-resource-disclosure.js +0 -4
  400. package/dist/modes/interactive/interactive-resource-disclosure.js.map +1 -1
  401. package/dist/modes/interactive/interactive-resource-rendering.js +0 -12
  402. package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
  403. package/dist/modes/interactive/interactive-startup-chat-container.js +1 -4
  404. package/dist/modes/interactive/interactive-startup-chat-container.js.map +1 -1
  405. package/dist/modes/interactive/model-catalog-refresh.js +1 -3
  406. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
  407. package/dist/modes/interactive/theme/color-utils.d.ts +5 -0
  408. package/dist/modes/interactive/theme/color-utils.d.ts.map +1 -1
  409. package/dist/modes/interactive/theme/color-utils.js +11 -0
  410. package/dist/modes/interactive/theme/color-utils.js.map +1 -1
  411. package/dist/modes/interactive/theme/global-theme.d.ts.map +1 -1
  412. package/dist/modes/interactive/theme/global-theme.js +4 -3
  413. package/dist/modes/interactive/theme/global-theme.js.map +1 -1
  414. package/dist/modes/interactive/theme/theme-class.js +7 -0
  415. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  416. package/dist/modes/interactive/theme/theme-controller.js +9 -2
  417. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  418. package/dist/modes/interactive-engine/activity-watchdog.js +8 -3
  419. package/dist/modes/interactive-engine/activity-watchdog.js.map +1 -1
  420. package/dist/modes/interactive-engine/engine-custom-ui.js +12 -8
  421. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  422. package/dist/modes/interactive-engine/engine-dialog-host.js +7 -3
  423. package/dist/modes/interactive-engine/engine-dialog-host.js.map +1 -1
  424. package/dist/modes/interactive-engine/engine-health.js +23 -13
  425. package/dist/modes/interactive-engine/engine-health.js.map +1 -1
  426. package/dist/modes/interactive-engine/engine-input-form.js +3 -2
  427. package/dist/modes/interactive-engine/engine-input-form.js.map +1 -1
  428. package/dist/modes/interactive-engine/engine-monitor.js +13 -1
  429. package/dist/modes/interactive-engine/engine-monitor.js.map +1 -1
  430. package/dist/modes/interactive-engine/engine-project-trust.js +2 -1
  431. package/dist/modes/interactive-engine/engine-project-trust.js.map +1 -1
  432. package/dist/modes/interactive-engine/engine-render-service.js +7 -4
  433. package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
  434. package/dist/modes/interactive-engine/engine-session-picker.js +3 -2
  435. package/dist/modes/interactive-engine/engine-session-picker.js.map +1 -1
  436. package/dist/modes/interactive-engine/input-form-host.js +5 -1
  437. package/dist/modes/interactive-engine/input-form-host.js.map +1 -1
  438. package/dist/modes/interactive-engine/isolated-runtime.js +37 -23
  439. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  440. package/dist/modes/interactive-engine/remote-command-catalog.js +4 -3
  441. package/dist/modes/interactive-engine/remote-command-catalog.js.map +1 -1
  442. package/dist/modes/interactive-engine/remote-component.js +24 -12
  443. package/dist/modes/interactive-engine/remote-component.js.map +1 -1
  444. package/dist/modes/interactive-engine/remote-frame-clamp.js +3 -3
  445. package/dist/modes/interactive-engine/remote-frame-clamp.js.map +1 -1
  446. package/dist/modes/interactive-engine/remote-model-catalog.js +5 -4
  447. package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -1
  448. package/dist/modes/interactive-engine/remote-queue-pause.js +3 -1
  449. package/dist/modes/interactive-engine/remote-queue-pause.js.map +1 -1
  450. package/dist/modes/interactive-engine/remote-renderer.js +24 -13
  451. package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
  452. package/dist/modes/interactive-engine/resource-readiness-error.js +1 -0
  453. package/dist/modes/interactive-engine/resource-readiness-error.js.map +1 -1
  454. package/dist/modes/interactive-engine/session-picker-host.js +5 -1
  455. package/dist/modes/interactive-engine/session-picker-host.js.map +1 -1
  456. package/dist/modes/interactive-engine/terminal-mode-controller.js +2 -1
  457. package/dist/modes/interactive-engine/terminal-mode-controller.js.map +1 -1
  458. package/dist/modes/rpc/queued-writer.js +13 -4
  459. package/dist/modes/rpc/queued-writer.js.map +1 -1
  460. package/dist/modes/rpc/rpc-bash-request-owners.js +2 -1
  461. package/dist/modes/rpc/rpc-bash-request-owners.js.map +1 -1
  462. package/dist/modes/rpc/rpc-client-api.d.ts +8 -4
  463. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
  464. package/dist/modes/rpc/rpc-client-api.js +10 -3
  465. package/dist/modes/rpc/rpc-client-api.js.map +1 -1
  466. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  467. package/dist/modes/rpc/rpc-client.js +35 -22
  468. package/dist/modes/rpc/rpc-client.js.map +1 -1
  469. package/dist/modes/rpc/rpc-command-handler.js +6 -6
  470. package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
  471. package/dist/modes/rpc/rpc-event-buffer.js +3 -1
  472. package/dist/modes/rpc/rpc-event-buffer.js.map +1 -1
  473. package/dist/modes/rpc/rpc-generation-buffer.js +1 -3
  474. package/dist/modes/rpc/rpc-generation-buffer.js.map +1 -1
  475. package/dist/modes/rpc/rpc-keybindings-reload.js +4 -1
  476. package/dist/modes/rpc/rpc-keybindings-reload.js.map +1 -1
  477. package/dist/modes/rpc/rpc-output-buffer.js +3 -4
  478. package/dist/modes/rpc/rpc-output-buffer.js.map +1 -1
  479. package/dist/modes/rpc/rpc-pending-requests.js +1 -3
  480. package/dist/modes/rpc/rpc-pending-requests.js.map +1 -1
  481. package/dist/modes/rpc/rpc-provider-auth.js +3 -1
  482. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
  483. package/dist/modes/rpc/rpc-resource-readiness.js +4 -5
  484. package/dist/modes/rpc/rpc-resource-readiness.js.map +1 -1
  485. package/dist/modes/rpc/rpc-session-binding.js +15 -0
  486. package/dist/modes/rpc/rpc-session-binding.js.map +1 -1
  487. package/dist/modes/rpc/rpc-terminal-drain.js +3 -0
  488. package/dist/modes/rpc/rpc-terminal-drain.js.map +1 -1
  489. package/dist/modes/rpc/rpc-types.d.ts +10 -1
  490. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  491. package/dist/modes/rpc/rpc-types.js.map +1 -1
  492. package/docs/models/evals.md +883 -39
  493. package/docs/models/model-selection.md +7 -8
  494. package/docs/rpc/examples.md +1 -1
  495. package/docs/rpc/protocol.md +9 -3
  496. package/docs/sdk/structured-decisions.md +1 -1
  497. package/docs/sdk.md +3 -3
  498. package/docs/settings.md +24 -3
  499. package/docs/subagents/reference.md +22 -4
  500. package/docs/subagents.md +2 -0
  501. package/docs/usage.md +3 -3
  502. package/docs/workflows/api-reference.md +1 -1
  503. package/docs/workflows/authoring.md +1 -7
  504. package/docs/workflows/builtins.md +1 -1
  505. package/docs/workflows/reliable-design.md +1 -1
  506. package/examples/extensions/custom-provider-gitlab-duo/test.ts +5 -5
  507. package/examples/extensions/gondolin/package.json +1 -1
  508. package/examples/rpc-client.ts +1 -1
  509. package/examples/rpc-extension-ui.ts +1 -1
  510. package/npm-shrinkwrap.json +70 -33
  511. package/package.json +6 -7
  512. package/dist/core/model-routing-task.d.ts.map +0 -1
  513. package/dist/core/model-routing-task.js +0 -120
  514. package/dist/core/model-routing-task.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-runtime.js","sourceRoot":"","sources":["../../src/core/agent-session-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport { constants, copyFileSync, existsSync, mkdirSync } from \"node:fs\";\nimport { basename, join, parse, resolve } from \"node:path\";\nimport type { AuthInteraction } from \"@bastani/pi-ai\";\nimport { type Api, type Model, modelsAreEqual } from \"@bastani/pi-ai/compat\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { AgentSession } from \"./agent-session.js\";\nimport type { AgentSessionInternalSurface } from \"./agent-session-methods.ts\";\nimport { type AtomicOAuthLoginCallbacks, loginRuntimeOAuthProvider } from \"./agent-session-runtime-auth.ts\";\nimport type { AgentSessionRuntimeDiagnostic, AgentSessionServices } from \"./agent-session-services.ts\";\nimport type {\n\tProjectTrustContext,\n\tReplacedSessionContext,\n\tSessionShutdownEvent,\n\tSessionStartEvent,\n} from \"./extensions/index.js\";\nimport { emitSessionShutdownEvent } from \"./extensions/runner.ts\";\nimport type { ModelFallbackReason } from \"./model-resolver-types.ts\";\nimport type { AuthStatus } from \"./provider-composer.ts\";\nimport type { CreateAgentSessionResult } from \"./sdk.ts\";\nimport { assertSessionCwdExists } from \"./session-cwd.ts\";\nimport { sessionLifecycleCreation, sessionLifecycleScopes } from \"./session-lifecycle-scope.ts\";\nimport {\n\tdrainSessionWork,\n\thasCallingSessionWork,\n\tregisterSessionRetirement,\n\ttrackSessionWork,\n} from \"./session-lifecycle-work.ts\";\nimport { SessionManager } from \"./session-manager.ts\";\n\n/**\n * Result returned by runtime creation.\n *\n * The caller gets the created session, its cwd-bound services, and all\n * diagnostics collected during setup.\n */\nexport interface CreateAgentSessionRuntimeResult extends CreateAgentSessionResult {\n\tservices: AgentSessionServices;\n\tdiagnostics: AgentSessionRuntimeDiagnostic[];\n}\n\nexport interface LogoutProviderResult {\n\tprovider: string;\n\tauthStatus: AuthStatus;\n\tmodels: Model<Api>[];\n\tscopedModels?: Array<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>;\n}\n\n/**\n * Creates a full runtime for a target cwd and session manager.\n *\n * The factory closes over process-global fixed inputs, recreates cwd-bound\n * services for the effective cwd, resolves session options against those\n * services, and finally creates the AgentSession.\n */\nexport interface CreateAgentSessionRuntimeOptions {\n\tcwd: string;\n\tagentDir: string;\n\tsessionManager: SessionManager;\n\tsessionStartEvent?: SessionStartEvent;\n\tprojectTrustContext?: ProjectTrustContext;\n}\n\nexport type CreateAgentSessionRuntimeFactory = {\n\t(options: CreateAgentSessionRuntimeOptions): Promise<CreateAgentSessionRuntimeResult>;\n\tprepareResume?: (\n\t\toptions: CreateAgentSessionRuntimeOptions,\n\t) => Promise<() => Promise<CreateAgentSessionRuntimeResult>>;\n};\n\nconst SESSION_REPLACEMENT_UI_PROMPT_SETTLEMENT_TIMEOUT_MS = 1_000;\n\n/**\n * Thrown when /import references a JSONL file path that does not exist.\n */\nexport class SessionImportFileNotFoundError extends Error {\n\treadonly filePath: string;\n\n\tconstructor(filePath: string) {\n\t\tsuper(`File not found: ${filePath}`);\n\t\tthis.name = \"SessionImportFileNotFoundError\";\n\t\tthis.filePath = filePath;\n\t}\n}\n\nfunction extractUserMessageText(content: string | Array<{ type: string; text?: string }>): string {\n\tif (typeof content === \"string\") {\n\t\treturn content;\n\t}\n\n\treturn content\n\t\t.filter((part): part is { type: \"text\"; text: string } => part.type === \"text\" && typeof part.text === \"string\")\n\t\t.map((part) => part.text)\n\t\t.join(\"\");\n}\n\n/**\n * Owns the current AgentSession plus its cwd-bound services.\n *\n * Session replacement methods tear down the current runtime first, then create\n * and apply the next runtime. If creation fails, the error is propagated to the\n * caller. The caller is responsible for user-facing error handling.\n */\nexport class AgentSessionRuntime {\n\tprivate rebindSession?: (session: AgentSession) => Promise<void>;\n\tprivate beforeSessionInvalidate?: () => void;\n\tprivate projectTrustContextFactory?: (cwd: string) => ProjectTrustContext;\n\tprivate closed = false;\n\tprivate closing?: Promise<void>;\n\tprivate cleanupFailures: unknown[] = [];\n\tprivate candidates = new Set<AgentSession>();\n\tprivate replacements = 0;\n\tprivate publication: Promise<void> = Promise.resolve();\n\tprivate publicationContext = new AsyncLocalStorage<{ active: boolean }>();\n\tprivate retained = new Set<AgentSession>();\n\tprivate retirementCleanup = new Set<Promise<void>>();\n\n\tprivate retainRetirementCleanup(cleanup: Promise<void>): void {\n\t\tconst receipt = cleanup.catch((error) => {\n\t\t\tthis.cleanupFailures.push(error);\n\t\t});\n\t\tthis.retirementCleanup.add(receipt);\n\t\tvoid receipt.then(() => this.retirementCleanup.delete(receipt));\n\t}\n\n\tprivate async finalizeRetained(): Promise<void> {\n\t\tconst session = this.session;\n\t\tif (!this.retained.delete(session)) return;\n\t\tconst finalize = async () => {\n\t\t\tawait emitSessionShutdownEvent(session.extensionRunner, { type: \"session_shutdown\", reason: \"quit\" });\n\t\t};\n\t\tif (hasCallingSessionWork(session)) {\n\t\t\tthis.retainRetirementCleanup(\n\t\t\t\tsession.dispose().then(finalize, async (error) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait finalize();\n\t\t\t\t\t} catch (failure) {\n\t\t\t\t\t\tthrow new AggregateError([error, failure], \"Retained cleanup failed\");\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tawait finalize();\n\t}\n\n\tprivate replace<T>(operation: () => Promise<T>): Promise<T> {\n\t\tregisterSessionRetirement(this.session);\n\t\treturn this.admit(async () => {\n\t\t\tthis.replacements++;\n\t\t\tlet outcome: { value: T } | { error: unknown };\n\t\t\ttry {\n\t\t\t\toutcome = { value: await operation() };\n\t\t\t} catch (error) {\n\t\t\t\toutcome = { error };\n\t\t\t\tthis.retainCleanupFailures(error);\n\t\t\t}\n\t\t\tthis.replacements--;\n\t\t\tif (this.replacements === 0 && (this.session as unknown as AgentSessionInternalSurface)._disposed) {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.finalizeRetained();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t\t\tthrow Object.assign(\n\t\t\t\t\t\tnew AggregateError(\n\t\t\t\t\t\t\t\"error\" in outcome ? [outcome.error, error] : [error],\n\t\t\t\t\t\t\t\"Retained session cleanup failed\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{ code: \"ShutdownFailed\" },\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (\"error\" in outcome) throw outcome.error;\n\t\t\treturn outcome.value;\n\t\t});\n\t}\n\n\tprivate assertOpen(): void {\n\t\tif (this.closed) throw Object.assign(new Error(\"Session is closed\"), { code: \"SessionClosed\" });\n\t}\n\n\tprivate admit<T>(operation: () => Promise<T>): Promise<T> {\n\t\ttry {\n\t\t\tthis.assertOpen();\n\t\t} catch (error) {\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\treturn trackSessionWork(this, operation);\n\t}\n\n\t/** Bind a process-local trust UI; closures never cross the engine RPC boundary. */\n\tsetProjectTrustContextFactory(factory: (cwd: string) => ProjectTrustContext): void {\n\t\tthis.projectTrustContextFactory = factory;\n\t}\n\n\t/** Return false for ordinary startup; otherwise finish the safe session in place. */\n\tasync completeStartup(): Promise<boolean> {\n\t\treturn this.admit(async () => {\n\t\t\tconst complete = this.services.completeStartup;\n\t\t\tif (!complete) return false;\n\t\t\tif (!this.projectTrustContextFactory) throw new Error(\"Startup trust requires a bound session UI\");\n\t\t\tawait complete(this.projectTrustContextFactory(this.services.cwd));\n\t\t\treturn true;\n\t\t});\n\t}\n\n\tprivate declare _session: AgentSession;\n\tprivate declare _services: AgentSessionServices;\n\tprivate declare readonly createRuntime: CreateAgentSessionRuntimeFactory;\n\tprivate declare _diagnostics: AgentSessionRuntimeDiagnostic[];\n\tprivate declare _modelFallbackMessage?: string;\n\tprivate declare _modelFallbackReason?: ModelFallbackReason;\n\n\tconstructor(\n\t\t_session: AgentSession,\n\t\t_services: AgentSessionServices,\n\t\tcreateRuntime: CreateAgentSessionRuntimeFactory,\n\t\t_diagnostics: AgentSessionRuntimeDiagnostic[] = [],\n\t\t_modelFallbackMessage?: string,\n\t\t_modelFallbackReason?: ModelFallbackReason,\n\t) {\n\t\tthis._session = _session;\n\t\tthis._services = _services;\n\t\tconst scope = sessionLifecycleScopes.get(_session) ?? {};\n\t\tconst context = () => {\n\t\t\tconst current = this._session as unknown as AgentSessionInternalSurface;\n\t\t\treturn {\n\t\t\t\tscope,\n\t\t\t\treplacement: true,\n\t\t\t\tbindings: {\n\t\t\t\t\t...this._session.extensionRunner.getChildHostBindings(),\n\t\t\t\t\tuiContext: current._extensionUIContext,\n\t\t\t\t\tmode: current._extensionMode,\n\t\t\t\t\tcommandContextActions: current._extensionCommandContextActions,\n\t\t\t\t\tshutdownHandler: current._extensionShutdownHandler,\n\t\t\t\t\tonError: current._extensionErrorListener,\n\t\t\t\t},\n\t\t\t};\n\t\t};\n\t\tthis.createRuntime = (options) =>\n\t\t\tthis.createReplacement(() => sessionLifecycleCreation.run(context(), () => createRuntime(options)));\n\t\tthis.createRuntime.prepareResume = (options) =>\n\t\t\tsessionLifecycleCreation.run(context(), async () => {\n\t\t\t\tconst complete = createRuntime.prepareResume\n\t\t\t\t\t? await createRuntime.prepareResume(options)\n\t\t\t\t\t: () => createRuntime(options);\n\t\t\t\treturn () => this.createReplacement(() => sessionLifecycleCreation.run(context(), complete));\n\t\t\t});\n\t\tthis._diagnostics = _diagnostics;\n\t\tthis._modelFallbackMessage = _modelFallbackMessage;\n\t\tthis._modelFallbackReason = _modelFallbackReason;\n\t}\n\n\tprivate retainCleanupFailures(error: unknown): void {\n\t\tif (error instanceof Error && \"code\" in error && error.code === \"ShutdownFailed\") {\n\t\t\tthis.cleanupFailures.push(error);\n\t\t} else if (error instanceof AggregateError) {\n\t\t\tfor (const nested of error.errors) this.retainCleanupFailures(nested);\n\t\t}\n\t}\n\n\tprivate async createReplacement(\n\t\tcreate: () => Promise<CreateAgentSessionRuntimeResult>,\n\t): Promise<CreateAgentSessionRuntimeResult> {\n\t\ttry {\n\t\t\tthis.assertOpen();\n\t\t\tconst candidate = await create();\n\t\t\tthis.candidates.add(candidate.session);\n\t\t\tif (this.closed) {\n\t\t\t\ttry {\n\t\t\t\t\tawait candidate.session.dispose();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t\t}\n\t\t\t\tthis.candidates.delete(candidate.session);\n\t\t\t\tthis.assertOpen();\n\t\t\t}\n\t\t\treturn candidate;\n\t\t} catch (cause) {\n\t\t\tthis.retainCleanupFailures(cause);\n\t\t\t// The last admitted replacement finalizes retained scope only if no\n\t\t\t// live successor exists. A failed peer must not shut down a winner.\n\t\t\tthrow cause;\n\t\t}\n\t}\n\n\tget services(): AgentSessionServices {\n\t\treturn this._services;\n\t}\n\n\tget session(): AgentSession {\n\t\treturn this._session;\n\t}\n\n\tget cwd(): string {\n\t\treturn this._services.cwd;\n\t}\n\n\tget diagnostics(): readonly AgentSessionRuntimeDiagnostic[] {\n\t\treturn this._diagnostics;\n\t}\n\n\tget modelFallbackMessage(): string | undefined {\n\t\treturn this._modelFallbackMessage;\n\t}\n\n\tget modelFallbackReason(): ModelFallbackReason | undefined {\n\t\treturn this._modelFallbackReason;\n\t}\n\n\treplaceModelFallback(message?: string, reason?: ModelFallbackReason): void {\n\t\tthis._modelFallbackMessage = message;\n\t\tthis._modelFallbackReason = reason;\n\t}\n\n\tresolveModelFallback(): void {\n\t\tthis.replaceModelFallback();\n\t}\n\n\tresolveModelFallbackAfterExplicitModelSelection(\n\t\tpreviousModel: Model<Api> | undefined,\n\t\tselectedModel: Model<Api> | null | undefined,\n\t): void {\n\t\tif (selectedModel && !modelsAreEqual(previousModel, selectedModel)) this.resolveModelFallback();\n\t}\n\n\tasync loginOAuthProvider(\n\t\tprovider: string,\n\t\tcallbacks: AtomicOAuthLoginCallbacks,\n\t): Promise<{ modelsRefreshed: boolean }> {\n\t\treturn this.admit(async () => {\n\t\t\tawait loginRuntimeOAuthProvider(this.session, provider, callbacks);\n\t\t\treturn { modelsRefreshed: true };\n\t\t});\n\t}\n\n\tasync loginApiKeyProvider(provider: string, interaction: AuthInteraction): Promise<{ modelsRefreshed: boolean }> {\n\t\treturn this.admit(async () => {\n\t\t\tawait this.session.modelRuntime.login(provider, \"api_key\", interaction);\n\t\t\treturn { modelsRefreshed: true };\n\t\t});\n\t}\n\n\tasync logoutProvider(provider: string): Promise<LogoutProviderResult> {\n\t\treturn this.admit(async () => {\n\t\t\tconst registry = this.session.modelRuntime;\n\t\t\tawait registry.logout(provider);\n\t\t\tconst availableIds = new Set(registry.getAvailableSnapshot().map((model) => `${model.provider}\\0${model.id}`));\n\t\t\tconst scopedModels = this.session.scopedModels.filter(({ model }) =>\n\t\t\t\tavailableIds.has(`${model.provider}\\0${model.id}`),\n\t\t\t);\n\t\t\tthis.session.setScopedModels([...scopedModels]);\n\t\t\tthis.session.refreshCurrentModelFromRegistry();\n\t\t\treturn {\n\t\t\t\tprovider,\n\t\t\t\tauthStatus: registry.getProviderAuthStatus(provider),\n\t\t\t\tmodels: [...registry.getAvailableSnapshot()],\n\t\t\t\tscopedModels: [...scopedModels],\n\t\t\t};\n\t\t});\n\t}\n\n\tsetRebindSession(rebindSession?: (session: AgentSession) => Promise<void>): void {\n\t\tthis.rebindSession = rebindSession;\n\t}\n\n\t/**\n\t * Set a synchronous callback that runs after `session_shutdown` handlers finish\n\t * but before the current session is invalidated.\n\t *\n\t * This is for host-owned UI teardown that must not yield to the event loop,\n\t * such as detaching extension-provided TUI components before the old extension\n\t * context becomes stale.\n\t */\n\tsetBeforeSessionInvalidate(beforeSessionInvalidate?: () => void): void {\n\t\tthis.beforeSessionInvalidate = beforeSessionInvalidate;\n\t}\n\n\tprivate async emitBeforeSwitch(\n\t\treason: \"new\" | \"resume\",\n\t\ttargetSessionFile?: string,\n\t): Promise<{ cancelled: boolean }> {\n\t\tconst runner = this.session.extensionRunner;\n\t\tif (!runner.hasHandlers(\"session_before_switch\")) {\n\t\t\treturn { cancelled: false };\n\t\t}\n\n\t\tconst result = await runner.emit({\n\t\t\ttype: \"session_before_switch\",\n\t\t\treason,\n\t\t\ttargetSessionFile,\n\t\t});\n\t\tthis.assertOpen();\n\t\treturn { cancelled: result?.cancel === true };\n\t}\n\n\tprivate async emitBeforeFork(\n\t\tentryId: string,\n\t\toptions: { position: \"before\" | \"at\" },\n\t): Promise<{ cancelled: boolean }> {\n\t\tconst runner = this.session.extensionRunner;\n\t\tif (!runner.hasHandlers(\"session_before_fork\")) {\n\t\t\treturn { cancelled: false };\n\t\t}\n\n\t\tconst result = await runner.emit({\n\t\t\ttype: \"session_before_fork\",\n\t\t\tentryId,\n\t\t\t...options,\n\t\t});\n\t\tthis.assertOpen();\n\t\treturn { cancelled: result?.cancel === true };\n\t}\n\n\tprivate disposeCurrentSession(event: SessionShutdownEvent): Promise<void> {\n\t\tconst session = this.session;\n\t\tif (event.reason !== \"quit\") this.retained.add(session);\n\t\tconst receipt = (session as unknown as AgentSessionInternalSurface)._close(event, this.beforeSessionInvalidate);\n\t\tif (event.reason !== \"quit\" && hasCallingSessionWork(session)) this.retainRetirementCleanup(session.dispose());\n\t\treturn receipt;\n\t}\n\n\t/**\n\t * Settle an active response before the session it belongs to is replaced, so the\n\t * aborted turn (including its tool results) is persisted to the outgoing session\n\t * rather than stranded.\n\t *\n\t * Overridable because the isolated engine must not re-enter its cooperative\n\t * abort wait here: the child engine settles its own turn before it reports the\n\t * replacement, and the host facade's `abort()` is an unbounded round trip that\n\t * would hang teardown on an unresponsive or dead engine.\n\t */\n\tprotected async settleActiveResponseBeforeTeardown(): Promise<void> {\n\t\tif (!this.session.isStreaming) return;\n\t\tawait this.session.abort();\n\t}\n\n\tprivate async serializePublication(operation: () => Promise<void>): Promise<void> {\n\t\t// Host callbacks may themselves await another supported replacement.\n\t\tif (this.publicationContext.getStore()?.active) return operation();\n\t\tconst previous = this.publication;\n\t\tlet release!: () => void;\n\t\tthis.publication = new Promise<void>((resolve) => {\n\t\t\trelease = resolve;\n\t\t});\n\t\tconst context = { active: true };\n\t\ttry {\n\t\t\tawait previous;\n\t\t\tawait this.publicationContext.run(context, operation);\n\t\t} finally {\n\t\t\tcontext.active = false;\n\t\t\trelease();\n\t\t}\n\t}\n\tprivate async teardownCurrent(reason: SessionShutdownEvent[\"reason\"], targetSessionFile?: string): Promise<void> {\n\t\treturn this.serializePublication(async () => {\n\t\t\tthis.assertOpen();\n\t\t\tawait this.settleActiveResponseBeforeTeardown();\n\t\t\tthis.assertOpen();\n\t\t\tconst { timedOut } = await this.session.extensionRunner.flushUIPromptNotifications(\n\t\t\t\tSESSION_REPLACEMENT_UI_PROMPT_SETTLEMENT_TIMEOUT_MS,\n\t\t\t);\n\t\t\tthis.assertOpen();\n\t\t\tif (timedOut) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Warning: UI prompt observers did not settle within 1,000 ms; continuing session replacement.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tawait this.disposeCurrentSession({ type: \"session_shutdown\", reason, targetSessionFile });\n\t\t});\n\t}\n\n\tprivate async apply(\n\t\tresult: CreateAgentSessionRuntimeResult,\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>,\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>,\n\t): Promise<void> {\n\t\treturn this.serializePublication(async () => {\n\t\t\ttry {\n\t\t\t\tthis.assertOpen();\n\t\t\t\t// A concurrently admitted factory may have published since preflight.\n\t\t\t\t// Retire that successor before displacing it, retaining workflow lineage.\n\t\t\t\tawait this.disposeCurrentSession({ type: \"session_shutdown\", reason: \"new\" });\n\t\t\t\tthis.assertOpen();\n\t\t\t\tthis.candidates.delete(result.session);\n\t\t\t\tthis.retained.delete(this.session);\n\t\t\t\tthis._session = result.session;\n\t\t\t\tthis._services = result.services;\n\t\t\t\tthis._diagnostics = result.diagnostics;\n\t\t\t\tthis._modelFallbackMessage = result.modelFallbackMessage;\n\t\t\t\tthis._modelFallbackReason = result.modelFallbackReason;\n\t\t\t\tif (setup) {\n\t\t\t\t\tawait setup(result.session.sessionManager);\n\t\t\t\t\tthis.assertOpen();\n\t\t\t\t\tif (this.session !== result.session) return;\n\t\t\t\t\tresult.session.refreshContext();\n\t\t\t\t}\n\t\t\t\tif (this.rebindSession) {\n\t\t\t\t\tawait this.rebindSession(result.session);\n\t\t\t\t\tthis.assertOpen();\n\t\t\t\t\tif (this.session !== result.session) return;\n\t\t\t\t}\n\t\t\t\tif (withSession) await withSession(result.session.createReplacedSessionContext());\n\t\t\t} catch (cause) {\n\t\t\t\tif (this.candidates.delete(result.session)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait (result.session as unknown as AgentSessionInternalSurface)._close({\n\t\t\t\t\t\t\ttype: \"session_shutdown\",\n\t\t\t\t\t\t\treason: this.closed ? \"quit\" : \"new\",\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t\t\t\tthrow Object.assign(\n\t\t\t\t\t\t\tnew AggregateError([cause, error], \"Replacement publication and candidate cleanup failed\"),\n\t\t\t\t\t\t\t{ code: \"ShutdownFailed\" },\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthrow cause;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: {\n\t\t\tcwdOverride?: string;\n\t\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t\t\tprojectTrustContextFactory?: (cwd: string) => ProjectTrustContext;\n\t\t},\n\t): Promise<{ cancelled: boolean }> {\n\t\treturn this.replace(async () => {\n\t\t\tconst beforeResult = await this.emitBeforeSwitch(\"resume\", sessionPath);\n\t\t\tthis.assertOpen();\n\t\t\tif (beforeResult.cancelled) {\n\t\t\t\treturn beforeResult;\n\t\t\t}\n\n\t\t\tconst previousSessionFile = this.session.sessionFile;\n\t\t\tconst sessionManager = SessionManager.open(sessionPath, undefined, options?.cwdOverride);\n\t\t\tassertSessionCwdExists(sessionManager, this.cwd);\n\t\t\tconst runtimeOptions: CreateAgentSessionRuntimeOptions = {\n\t\t\t\tcwd: sessionManager.getCwd(),\n\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\tsessionManager,\n\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"resume\", previousSessionFile },\n\t\t\t\tprojectTrustContext: (options?.projectTrustContextFactory ?? this.projectTrustContextFactory)?.(\n\t\t\t\t\tsessionManager.getCwd(),\n\t\t\t\t),\n\t\t\t};\n\t\t\tawait this.settleActiveResponseBeforeTeardown();\n\t\t\tthis.assertOpen();\n\t\t\tconst complete = await this.createRuntime.prepareResume?.(runtimeOptions);\n\t\t\tthis.assertOpen();\n\t\t\tawait this.teardownCurrent(\"resume\", sessionManager.getSessionFile());\n\t\t\tawait this.apply(await (complete ? complete() : this.createRuntime(runtimeOptions)), options?.withSession);\n\t\t\treturn { cancelled: false };\n\t\t});\n\t}\n\n\tasync newSession(options?: {\n\t\tparentSession?: string;\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>;\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t}): Promise<{ cancelled: boolean }> {\n\t\treturn this.replace(async () => {\n\t\t\tconst beforeResult = await this.emitBeforeSwitch(\"new\");\n\t\t\tthis.assertOpen();\n\t\t\tif (beforeResult.cancelled) {\n\t\t\t\treturn beforeResult;\n\t\t\t}\n\n\t\t\tconst previousSessionFile = this.session.sessionFile;\n\t\t\tconst sessionDir = this.session.sessionManager.getSessionDir();\n\t\t\tconst sessionManager = SessionManager.create(this.cwd, sessionDir);\n\t\t\tif (options?.parentSession) {\n\t\t\t\tsessionManager.newSession({ parentSession: options.parentSession });\n\t\t\t}\n\n\t\t\tawait this.teardownCurrent(\"new\", sessionManager.getSessionFile());\n\t\t\tawait this.apply(\n\t\t\t\tawait this.createRuntime({\n\t\t\t\t\tcwd: this.cwd,\n\t\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\t\tsessionManager,\n\t\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"new\", previousSessionFile },\n\t\t\t\t}),\n\t\t\t\toptions?.withSession,\n\t\t\t\toptions?.setup,\n\t\t\t);\n\t\t\treturn { cancelled: false };\n\t\t});\n\t}\n\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\"; withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\treturn this.replace(async () => {\n\t\t\tconst position = options?.position ?? \"before\";\n\t\t\tconst beforeResult = await this.emitBeforeFork(entryId, { position });\n\t\t\tthis.assertOpen();\n\t\t\tif (beforeResult.cancelled) {\n\t\t\t\treturn { cancelled: true };\n\t\t\t}\n\t\t\tlet targetLeafId: string | null;\n\t\t\tlet selectedText: string | undefined;\n\n\t\t\tconst selectedEntry = this.session.sessionManager.getEntry(entryId);\n\t\t\tif (!selectedEntry) {\n\t\t\t\tthrow new Error(\"Invalid entry ID for forking\");\n\t\t\t}\n\n\t\t\tif (position === \"at\") {\n\t\t\t\ttargetLeafId = selectedEntry.id;\n\t\t\t} else {\n\t\t\t\tif (selectedEntry.type !== \"message\" || selectedEntry.message.role !== \"user\") {\n\t\t\t\t\tthrow new Error(\"Invalid entry ID for forking\");\n\t\t\t\t}\n\t\t\t\ttargetLeafId = selectedEntry.parentId;\n\t\t\t\tselectedText = extractUserMessageText(selectedEntry.message.content);\n\t\t\t}\n\n\t\t\tconst previousSessionFile = this.session.sessionFile;\n\t\t\tif (this.session.sessionManager.isPersisted()) {\n\t\t\t\tconst currentSessionFile = this.session.sessionFile;\n\t\t\t\tif (!currentSessionFile) {\n\t\t\t\t\tthrow new Error(\"Persisted session is missing a session file\");\n\t\t\t\t}\n\t\t\t\tconst sessionDir = this.session.sessionManager.getSessionDir();\n\t\t\t\tif (!targetLeafId) {\n\t\t\t\t\tconst sessionManager = SessionManager.create(this.cwd, sessionDir);\n\t\t\t\t\tsessionManager.newSession({ parentSession: currentSessionFile });\n\t\t\t\t\tawait this.teardownCurrent(\"fork\", sessionManager.getSessionFile());\n\t\t\t\t\tawait this.apply(\n\t\t\t\t\t\tawait this.createRuntime({\n\t\t\t\t\t\t\tcwd: this.cwd,\n\t\t\t\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"fork\", previousSessionFile },\n\t\t\t\t\t\t}),\n\t\t\t\t\t\toptions?.withSession,\n\t\t\t\t\t);\n\t\t\t\t\treturn { cancelled: false, selectedText };\n\t\t\t\t}\n\n\t\t\t\tif (!existsSync(currentSessionFile)) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"This session has not been saved yet. Wait for the first assistant response before cloning or forking it.\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst sessionManager = SessionManager.open(currentSessionFile, sessionDir);\n\t\t\t\tconst forkedSessionPath = sessionManager.createBranchedSession(targetLeafId);\n\t\t\t\tif (!forkedSessionPath) {\n\t\t\t\t\tthrow new Error(\"Failed to create forked session\");\n\t\t\t\t}\n\t\t\t\tawait this.teardownCurrent(\"fork\", sessionManager.getSessionFile());\n\t\t\t\tawait this.apply(\n\t\t\t\t\tawait this.createRuntime({\n\t\t\t\t\t\tcwd: sessionManager.getCwd(),\n\t\t\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"fork\", previousSessionFile },\n\t\t\t\t\t}),\n\t\t\t\t\toptions?.withSession,\n\t\t\t\t);\n\t\t\t\treturn { cancelled: false, selectedText };\n\t\t\t}\n\n\t\t\tconst sessionManager = this.session.sessionManager;\n\t\t\tawait this.teardownCurrent(\"fork\", sessionManager.getSessionFile());\n\t\t\tif (!targetLeafId) {\n\t\t\t\tsessionManager.newSession({ parentSession: previousSessionFile });\n\t\t\t} else {\n\t\t\t\tsessionManager.createBranchedSession(targetLeafId);\n\t\t\t}\n\t\t\tawait this.apply(\n\t\t\t\tawait this.createRuntime({\n\t\t\t\t\tcwd: this.cwd,\n\t\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\t\tsessionManager,\n\t\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"fork\", previousSessionFile },\n\t\t\t\t}),\n\t\t\t\toptions?.withSession,\n\t\t\t);\n\t\t\treturn { cancelled: false, selectedText };\n\t\t});\n\t}\n\n\t/**\n\t * Import a session JSONL file and switch runtime state to the imported session.\n\t *\n\t * @returns `{ cancelled: true }` when cancelled by `session_before_switch`, otherwise `{ cancelled: false }`.\n\t * @throws {SessionImportFileNotFoundError} When the input path does not exist.\n\t * @throws {MissingSessionCwdError} When the imported session cwd cannot be resolved and no override is provided.\n\t */\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.replace(async () => {\n\t\t\tconst resolvedPath = resolvePath(inputPath);\n\t\t\tif (!existsSync(resolvedPath)) {\n\t\t\t\tthrow new SessionImportFileNotFoundError(resolvedPath);\n\t\t\t}\n\n\t\t\tconst sessionDir = this.session.sessionManager.getSessionDir();\n\t\t\tif (!existsSync(sessionDir)) {\n\t\t\t\tmkdirSync(sessionDir, { recursive: true });\n\t\t\t}\n\n\t\t\tlet destinationPath = join(sessionDir, basename(resolvedPath));\n\t\t\tconst sourceAlreadyStored = resolve(destinationPath) === resolvedPath;\n\t\t\tif (!sourceAlreadyStored) {\n\t\t\t\tconst { name, ext } = parse(destinationPath);\n\t\t\t\tlet suffix = 1;\n\t\t\t\twhile (existsSync(destinationPath)) {\n\t\t\t\t\tdestinationPath = join(sessionDir, `${name}-${suffix++}${ext}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst beforeResult = await this.emitBeforeSwitch(\"resume\", destinationPath);\n\t\t\tthis.assertOpen();\n\t\t\tif (beforeResult.cancelled) {\n\t\t\t\treturn beforeResult;\n\t\t\t}\n\n\t\t\tconst previousSessionFile = this.session.sessionFile;\n\t\t\tif (!sourceAlreadyStored) {\n\t\t\t\tcopyFileSync(resolvedPath, destinationPath, constants.COPYFILE_EXCL);\n\t\t\t}\n\n\t\t\tconst sessionManager = SessionManager.open(destinationPath, sessionDir, cwdOverride);\n\t\t\tassertSessionCwdExists(sessionManager, this.cwd);\n\t\t\tawait this.teardownCurrent(\"resume\", sessionManager.getSessionFile());\n\t\t\tawait this.apply(\n\t\t\t\tawait this.createRuntime({\n\t\t\t\t\tcwd: sessionManager.getCwd(),\n\t\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\t\tsessionManager,\n\t\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"resume\", previousSessionFile },\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn { cancelled: false };\n\t\t});\n\t}\n\n\tdispose(): Promise<void> {\n\t\tif (this.closing) return this.closing;\n\t\tthis.closed = true;\n\t\tconst current = this.disposeCurrentSession({ type: \"session_shutdown\", reason: \"quit\" });\n\t\tvoid current.catch(() => {});\n\t\tthis.closing = (async () => {\n\t\t\tawait drainSessionWork(this);\n\t\t\tfor (const candidate of this.candidates) {\n\t\t\t\ttry {\n\t\t\t\t\tawait candidate.dispose();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.candidates.clear();\n\t\t\ttry {\n\t\t\t\tawait current;\n\t\t\t} catch (error) {\n\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t}\n\t\t\twhile (this.retirementCleanup.size) await Promise.all(this.retirementCleanup);\n\t\t\ttry {\n\t\t\t\tawait this.finalizeRetained();\n\t\t\t} catch (error) {\n\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t}\n\t\t\tif (this.cleanupFailures.length)\n\t\t\t\tthrow Object.assign(new AggregateError(this.cleanupFailures, \"Runtime shutdown failed\"), {\n\t\t\t\t\tcode: \"ShutdownFailed\",\n\t\t\t\t});\n\t\t})();\n\t\treturn this.closing;\n\t}\n}\n\n/**\n * Create the initial runtime from a runtime factory and initial session target.\n *\n * The same factory is stored on the returned AgentSessionRuntime and reused for\n * later /new, /resume, /fork, and import flows.\n */\nexport async function createAgentSessionRuntime(\n\tcreateRuntime: CreateAgentSessionRuntimeFactory,\n\toptions: {\n\t\tcwd: string;\n\t\tagentDir: string;\n\t\tsessionManager: SessionManager;\n\t\tsessionStartEvent?: SessionStartEvent;\n\t},\n): Promise<AgentSessionRuntime> {\n\tassertSessionCwdExists(options.sessionManager, options.cwd);\n\tconst result = await sessionLifecycleCreation.run({ scope: {} }, () => createRuntime(options));\n\treturn new AgentSessionRuntime(\n\t\tresult.session,\n\t\tresult.services,\n\t\tcreateRuntime,\n\t\tresult.diagnostics,\n\t\tresult.modelFallbackMessage,\n\t\tresult.modelFallbackReason,\n\t);\n}\n\nexport {\n\ttype AgentSessionRuntimeDiagnostic,\n\ttype AgentSessionServices,\n\ttype CreateAgentSessionFromServicesOptions,\n\ttype CreateAgentSessionServicesOptions,\n\tcreateAgentSessionFromServices,\n\tcreateAgentSessionServices,\n} from \"./agent-session-services.ts\";\n"]}
1
+ {"version":3,"file":"agent-session-runtime.js","sourceRoot":"","sources":["../../src/core/agent-session-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport { constants, copyFileSync, existsSync, mkdirSync } from \"node:fs\";\nimport { basename, join, parse, resolve } from \"node:path\";\nimport type { AuthInteraction } from \"@bastani/pi-ai\";\nimport { type Api, type Model, modelsAreEqual } from \"@bastani/pi-ai/compat\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { AgentSession } from \"./agent-session.js\";\nimport type { AgentSessionInternalSurface } from \"./agent-session-methods.ts\";\nimport { type AtomicOAuthLoginCallbacks, loginRuntimeOAuthProvider } from \"./agent-session-runtime-auth.ts\";\nimport type { AgentSessionRuntimeDiagnostic, AgentSessionServices } from \"./agent-session-services.ts\";\nimport type {\n\tProjectTrustContext,\n\tReplacedSessionContext,\n\tSessionShutdownEvent,\n\tSessionStartEvent,\n} from \"./extensions/index.js\";\nimport { emitSessionShutdownEvent } from \"./extensions/runner.ts\";\nimport type { ModelFallbackReason } from \"./model-resolver-types.ts\";\nimport type { AuthStatus } from \"./provider-composer.ts\";\nimport type { CreateAgentSessionResult } from \"./sdk.ts\";\nimport { assertSessionCwdExists } from \"./session-cwd.ts\";\nimport { sessionLifecycleCreation, sessionLifecycleScopes } from \"./session-lifecycle-scope.ts\";\nimport {\n\tdrainSessionWork,\n\thasCallingSessionWork,\n\tregisterSessionRetirement,\n\ttrackSessionWork,\n} from \"./session-lifecycle-work.ts\";\nimport { SessionManager } from \"./session-manager.ts\";\n\n/**\n * Result returned by runtime creation.\n *\n * The caller gets the created session, its cwd-bound services, and all\n * diagnostics collected during setup.\n */\nexport interface CreateAgentSessionRuntimeResult extends CreateAgentSessionResult {\n\tservices: AgentSessionServices;\n\tdiagnostics: AgentSessionRuntimeDiagnostic[];\n}\n\nexport interface LogoutProviderResult {\n\tprovider: string;\n\tauthStatus: AuthStatus;\n\tmodels: Model<Api>[];\n\tscopedModels?: Array<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>;\n}\n\n/**\n * Creates a full runtime for a target cwd and session manager.\n *\n * The factory closes over process-global fixed inputs, recreates cwd-bound\n * services for the effective cwd, resolves session options against those\n * services, and finally creates the AgentSession.\n */\nexport interface CreateAgentSessionRuntimeOptions {\n\tcwd: string;\n\tagentDir: string;\n\tsessionManager: SessionManager;\n\tsessionStartEvent?: SessionStartEvent;\n\tprojectTrustContext?: ProjectTrustContext;\n}\n\nexport type CreateAgentSessionRuntimeFactory = {\n\t(options: CreateAgentSessionRuntimeOptions): Promise<CreateAgentSessionRuntimeResult>;\n\tprepareResume?: (\n\t\toptions: CreateAgentSessionRuntimeOptions,\n\t) => Promise<() => Promise<CreateAgentSessionRuntimeResult>>;\n};\n\nconst SESSION_REPLACEMENT_UI_PROMPT_SETTLEMENT_TIMEOUT_MS = 1_000;\n\n/**\n * Thrown when /import references a JSONL file path that does not exist.\n */\nexport class SessionImportFileNotFoundError extends Error {\n\treadonly filePath: string;\n\n\tconstructor(filePath: string) {\n\t\tsuper(`File not found: ${filePath}`);\n\t\tthis.name = \"SessionImportFileNotFoundError\";\n\t\tthis.filePath = filePath;\n\t}\n}\n\nfunction extractUserMessageText(content: string | Array<{ type: string; text?: string }>): string {\n\tif (typeof content === \"string\") {\n\t\treturn content;\n\t}\n\n\treturn content\n\t\t.filter((part): part is { type: \"text\"; text: string } => part.type === \"text\" && typeof part.text === \"string\")\n\t\t.map((part) => part.text)\n\t\t.join(\"\");\n}\n\n/**\n * Owns the current AgentSession plus its cwd-bound services.\n *\n * Session replacement methods tear down the current runtime first, then create\n * and apply the next runtime. If creation fails, the error is propagated to the\n * caller. The caller is responsible for user-facing error handling.\n */\nexport class AgentSessionRuntime {\n\tprivate rebindSession?: (session: AgentSession) => Promise<void>;\n\tprivate beforeSessionInvalidate?: () => void;\n\tprivate projectTrustContextFactory?: (cwd: string) => ProjectTrustContext;\n\tprivate closed = false;\n\tprivate closing?: Promise<void>;\n\tprivate cleanupFailures: unknown[] = [];\n\tprivate candidates = new Set<AgentSession>();\n\tprivate replacements = 0;\n\tprivate publication: Promise<void> = Promise.resolve();\n\tprivate publicationContext = new AsyncLocalStorage<{ active: boolean }>();\n\tprivate retained = new Set<AgentSession>();\n\tprivate retirementCleanup = new Set<Promise<void>>();\n\n\tprivate retainRetirementCleanup(cleanup: Promise<void>): void {\n\t\tconst receipt = cleanup.catch((error) => {\n\t\t\tthis.cleanupFailures.push(error);\n\t\t});\n\t\tthis.retirementCleanup.add(receipt);\n\t\tvoid receipt.then(() => this.retirementCleanup.delete(receipt));\n\t}\n\n\tprivate async finalizeRetained(): Promise<void> {\n\t\tconst session = this.session;\n\t\tif (!this.retained.delete(session)) return;\n\t\tconst finalize = async () => {\n\t\t\tawait emitSessionShutdownEvent(session.extensionRunner, { type: \"session_shutdown\", reason: \"quit\" });\n\t\t};\n\t\tif (hasCallingSessionWork(session)) {\n\t\t\tthis.retainRetirementCleanup(\n\t\t\t\tsession.dispose().then(finalize, async (error) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait finalize();\n\t\t\t\t\t} catch (failure) {\n\t\t\t\t\t\tthrow new AggregateError([error, failure], \"Retained cleanup failed\");\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tawait finalize();\n\t}\n\n\tprivate replace<T>(operation: () => Promise<T>): Promise<T> {\n\t\tregisterSessionRetirement(this.session);\n\t\treturn this.admit(async () => {\n\t\t\tthis.replacements++;\n\t\t\tlet outcome: { value: T } | { error: unknown };\n\t\t\ttry {\n\t\t\t\toutcome = { value: await operation() };\n\t\t\t} catch (error) {\n\t\t\t\toutcome = { error };\n\t\t\t\tthis.retainCleanupFailures(error);\n\t\t\t}\n\t\t\tthis.replacements--;\n\t\t\tif (this.replacements === 0 && (this.session as unknown as AgentSessionInternalSurface)._disposed) {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.finalizeRetained();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t\t\tthrow Object.assign(\n\t\t\t\t\t\tnew AggregateError(\n\t\t\t\t\t\t\t\"error\" in outcome ? [outcome.error, error] : [error],\n\t\t\t\t\t\t\t\"Retained session cleanup failed\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{ code: \"ShutdownFailed\" },\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (\"error\" in outcome) throw outcome.error;\n\t\t\treturn outcome.value;\n\t\t});\n\t}\n\n\tprivate assertOpen(): void {\n\t\tif (this.closed) throw Object.assign(new Error(\"Session is closed\"), { code: \"SessionClosed\" });\n\t}\n\n\tprivate admit<T>(operation: () => Promise<T>): Promise<T> {\n\t\ttry {\n\t\t\tthis.assertOpen();\n\t\t} catch (error) {\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\treturn trackSessionWork(this, operation);\n\t}\n\n\t/** Bind a process-local trust UI; closures never cross the engine RPC boundary. */\n\tsetProjectTrustContextFactory(factory: (cwd: string) => ProjectTrustContext): void {\n\t\tthis.projectTrustContextFactory = factory;\n\t}\n\n\t/** Return false for ordinary startup; otherwise finish the safe session in place. */\n\tasync completeStartup(): Promise<boolean> {\n\t\treturn this.admit(async () => {\n\t\t\tconst complete = this.services.completeStartup;\n\t\t\tif (!complete) return false;\n\t\t\tif (!this.projectTrustContextFactory) throw new Error(\"Startup trust requires a bound session UI\");\n\t\t\tawait complete(this.projectTrustContextFactory(this.services.cwd));\n\t\t\treturn true;\n\t\t});\n\t}\n\n\tprivate declare _session: AgentSession;\n\tprivate declare _services: AgentSessionServices;\n\tprivate declare readonly createRuntime: CreateAgentSessionRuntimeFactory;\n\tprivate declare _diagnostics: AgentSessionRuntimeDiagnostic[];\n\tprivate declare _modelFallbackMessage?: string;\n\tprivate declare _modelFallbackReason?: ModelFallbackReason;\n\n\tconstructor(\n\t\t_session: AgentSession,\n\t\t_services: AgentSessionServices,\n\t\tcreateRuntime: CreateAgentSessionRuntimeFactory,\n\t\t_diagnostics: AgentSessionRuntimeDiagnostic[] = [],\n\t\t_modelFallbackMessage?: string,\n\t\t_modelFallbackReason?: ModelFallbackReason,\n\t) {\n\t\tthis._session = _session;\n\t\tthis._services = _services;\n\t\tconst scope = sessionLifecycleScopes.get(_session) ?? {};\n\t\tconst context = () => {\n\t\t\tconst current = this._session as unknown as AgentSessionInternalSurface;\n\t\t\treturn {\n\t\t\t\tscope,\n\t\t\t\treplacement: true,\n\t\t\t\tbindings: {\n\t\t\t\t\t...this._session.extensionRunner.getChildHostBindings(),\n\t\t\t\t\tuiContext: current._extensionUIContext,\n\t\t\t\t\tmode: current._extensionMode,\n\t\t\t\t\tcommandContextActions: current._extensionCommandContextActions,\n\t\t\t\t\tshutdownHandler: current._extensionShutdownHandler,\n\t\t\t\t\tonError: current._extensionErrorListener,\n\t\t\t\t},\n\t\t\t};\n\t\t};\n\t\tthis.createRuntime = (options) =>\n\t\t\tthis.createReplacement(() => sessionLifecycleCreation.run(context(), () => createRuntime(options)));\n\t\tthis.createRuntime.prepareResume = (options) =>\n\t\t\tsessionLifecycleCreation.run(context(), async () => {\n\t\t\t\tconst complete = createRuntime.prepareResume\n\t\t\t\t\t? await createRuntime.prepareResume(options)\n\t\t\t\t\t: () => createRuntime(options);\n\t\t\t\treturn () => this.createReplacement(() => sessionLifecycleCreation.run(context(), complete));\n\t\t\t});\n\t\tthis._diagnostics = _diagnostics;\n\t\tthis._modelFallbackMessage = _modelFallbackMessage;\n\t\tthis._modelFallbackReason = _modelFallbackReason;\n\t}\n\n\tprivate retainCleanupFailures(error: unknown): void {\n\t\tif (error instanceof Error && \"code\" in error && error.code === \"ShutdownFailed\") {\n\t\t\tthis.cleanupFailures.push(error);\n\t\t} else if (error instanceof AggregateError) {\n\t\t\tfor (const nested of error.errors) this.retainCleanupFailures(nested);\n\t\t}\n\t}\n\n\tprivate async createReplacement(\n\t\tcreate: () => Promise<CreateAgentSessionRuntimeResult>,\n\t): Promise<CreateAgentSessionRuntimeResult> {\n\t\ttry {\n\t\t\tthis.assertOpen();\n\t\t\tconst candidate = await create();\n\t\t\tthis.candidates.add(candidate.session);\n\t\t\tif (this.closed) {\n\t\t\t\ttry {\n\t\t\t\t\tawait candidate.session.dispose();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t\t}\n\t\t\t\tthis.candidates.delete(candidate.session);\n\t\t\t\tthis.assertOpen();\n\t\t\t}\n\t\t\treturn candidate;\n\t\t} catch (cause) {\n\t\t\tthis.retainCleanupFailures(cause);\n\t\t\t// The last admitted replacement finalizes retained scope only if no\n\t\t\t// live successor exists. A failed peer must not shut down a winner.\n\t\t\tthrow cause;\n\t\t}\n\t}\n\n\tget services(): AgentSessionServices {\n\t\treturn this._services;\n\t}\n\n\tget session(): AgentSession {\n\t\treturn this._session;\n\t}\n\n\tget cwd(): string {\n\t\treturn this._services.cwd;\n\t}\n\n\tget diagnostics(): readonly AgentSessionRuntimeDiagnostic[] {\n\t\treturn this._diagnostics;\n\t}\n\n\tget modelFallbackMessage(): string | undefined {\n\t\treturn this._modelFallbackMessage;\n\t}\n\n\tget modelFallbackReason(): ModelFallbackReason | undefined {\n\t\treturn this._modelFallbackReason;\n\t}\n\n\treplaceModelFallback(message?: string, reason?: ModelFallbackReason): void {\n\t\tthis._modelFallbackMessage = message;\n\t\tthis._modelFallbackReason = reason;\n\t}\n\n\tresolveModelFallback(): void {\n\t\tthis.replaceModelFallback();\n\t}\n\n\tresolveModelFallbackAfterExplicitModelSelection(\n\t\tpreviousModel: Model<Api> | undefined,\n\t\tselectedModel: Model<Api> | null | undefined,\n\t): void {\n\t\tif (selectedModel && !modelsAreEqual(previousModel, selectedModel)) this.resolveModelFallback();\n\t}\n\n\tasync loginOAuthProvider(\n\t\tprovider: string,\n\t\tcallbacks: AtomicOAuthLoginCallbacks,\n\t): Promise<{ modelsRefreshed: boolean }> {\n\t\treturn this.admit(async () => {\n\t\t\tawait loginRuntimeOAuthProvider(this.session, provider, callbacks);\n\t\t\treturn { modelsRefreshed: true };\n\t\t});\n\t}\n\n\tasync loginApiKeyProvider(provider: string, interaction: AuthInteraction): Promise<{ modelsRefreshed: boolean }> {\n\t\treturn this.admit(async () => {\n\t\t\tawait this.session.modelRuntime.login(provider, \"api_key\", interaction);\n\t\t\treturn { modelsRefreshed: true };\n\t\t});\n\t}\n\n\tasync logoutProvider(provider: string): Promise<LogoutProviderResult> {\n\t\treturn this.admit(async () => {\n\t\t\tconst registry = this.session.modelRuntime;\n\t\t\tawait registry.logout(provider);\n\t\t\tconst availableIds = new Set(registry.getAvailableSnapshot().map((model) => `${model.provider}\\0${model.id}`));\n\t\t\tconst scopedModels = this.session.scopedModels.filter(({ model }) =>\n\t\t\t\tavailableIds.has(`${model.provider}\\0${model.id}`),\n\t\t\t);\n\t\t\tthis.session.setScopedModels([...scopedModels]);\n\t\t\tthis.session.refreshCurrentModelFromRegistry();\n\t\t\treturn {\n\t\t\t\tprovider,\n\t\t\t\tauthStatus: registry.getProviderAuthStatus(provider),\n\t\t\t\tmodels: [...registry.getAvailableSnapshot()],\n\t\t\t\tscopedModels: [...scopedModels],\n\t\t\t};\n\t\t});\n\t}\n\n\tsetRebindSession(rebindSession?: (session: AgentSession) => Promise<void>): void {\n\t\tthis.rebindSession = rebindSession;\n\t}\n\n\t/**\n\t * Set a synchronous callback that runs after `session_shutdown` handlers finish\n\t * but before the current session is invalidated.\n\t *\n\t * This is for host-owned UI teardown that must not yield to the event loop,\n\t * such as detaching extension-provided TUI components before the old extension\n\t * context becomes stale.\n\t */\n\tsetBeforeSessionInvalidate(beforeSessionInvalidate?: () => void): void {\n\t\tthis.beforeSessionInvalidate = beforeSessionInvalidate;\n\t}\n\n\tprivate async emitBeforeSwitch(\n\t\treason: \"new\" | \"resume\",\n\t\ttargetSessionFile?: string,\n\t): Promise<{ cancelled: boolean }> {\n\t\tconst runner = this.session.extensionRunner;\n\t\tif (!runner.hasHandlers(\"session_before_switch\")) {\n\t\t\treturn { cancelled: false };\n\t\t}\n\n\t\tconst result = await runner.emit({\n\t\t\ttype: \"session_before_switch\",\n\t\t\treason,\n\t\t\ttargetSessionFile,\n\t\t});\n\t\tthis.assertOpen();\n\t\treturn { cancelled: result?.cancel === true };\n\t}\n\n\tprivate async emitBeforeFork(\n\t\tentryId: string,\n\t\toptions: { position: \"before\" | \"at\" },\n\t): Promise<{ cancelled: boolean }> {\n\t\tconst runner = this.session.extensionRunner;\n\t\tif (!runner.hasHandlers(\"session_before_fork\")) {\n\t\t\treturn { cancelled: false };\n\t\t}\n\n\t\tconst result = await runner.emit({\n\t\t\ttype: \"session_before_fork\",\n\t\t\tentryId,\n\t\t\t...options,\n\t\t});\n\t\tthis.assertOpen();\n\t\treturn { cancelled: result?.cancel === true };\n\t}\n\n\tprivate disposeCurrentSession(event: SessionShutdownEvent): Promise<void> {\n\t\tconst session = this.session;\n\t\tif (event.reason !== \"quit\") this.retained.add(session);\n\t\tconst receipt = (session as unknown as AgentSessionInternalSurface)._close(event, this.beforeSessionInvalidate);\n\t\tif (event.reason !== \"quit\" && hasCallingSessionWork(session)) this.retainRetirementCleanup(session.dispose());\n\t\treturn receipt;\n\t}\n\n\t/**\n\t * Settle an active response before the session it belongs to is replaced, so the\n\t * aborted turn (including its tool results) is persisted to the outgoing session\n\t * rather than stranded.\n\t *\n\t * Overridable because the isolated engine must not re-enter its cooperative\n\t * abort wait here: the child engine settles its own turn before it reports the\n\t * replacement, and the host facade's `abort()` is an unbounded round trip that\n\t * would hang teardown on an unresponsive or dead engine.\n\t */\n\tprotected async settleActiveResponseBeforeTeardown(): Promise<void> {\n\t\tif (!this.session.isStreaming) return;\n\t\tawait this.session.abort();\n\t}\n\n\tprivate async serializePublication(operation: () => Promise<void>): Promise<void> {\n\t\t// Host callbacks may themselves await another supported replacement.\n\t\tif (this.publicationContext.getStore()?.active) return operation();\n\t\tconst previous = this.publication;\n\t\tlet release!: () => void;\n\t\tthis.publication = new Promise<void>((resolve) => {\n\t\t\trelease = resolve;\n\t\t});\n\t\tconst context = { active: true };\n\t\ttry {\n\t\t\tawait previous;\n\t\t\tawait this.publicationContext.run(context, operation);\n\t\t} finally {\n\t\t\tcontext.active = false;\n\t\t\trelease();\n\t\t}\n\t}\n\tprivate async teardownCurrent(reason: SessionShutdownEvent[\"reason\"], targetSessionFile?: string): Promise<void> {\n\t\treturn this.serializePublication(async () => {\n\t\t\tthis.assertOpen();\n\t\t\tawait this.settleActiveResponseBeforeTeardown();\n\t\t\tthis.assertOpen();\n\t\t\tconst { timedOut } = await this.session.extensionRunner.flushUIPromptNotifications(\n\t\t\t\tSESSION_REPLACEMENT_UI_PROMPT_SETTLEMENT_TIMEOUT_MS,\n\t\t\t);\n\t\t\tthis.assertOpen();\n\t\t\tif (timedOut) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Warning: UI prompt observers did not settle within 1,000 ms; continuing session replacement.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tawait this.disposeCurrentSession({ type: \"session_shutdown\", reason, targetSessionFile });\n\t\t});\n\t}\n\n\tprivate async apply(\n\t\tresult: CreateAgentSessionRuntimeResult,\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>,\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>,\n\t): Promise<void> {\n\t\treturn this.serializePublication(async () => {\n\t\t\ttry {\n\t\t\t\tthis.assertOpen();\n\t\t\t\t// A concurrently admitted factory may have published since preflight.\n\t\t\t\t// Retire that successor before displacing it, retaining workflow lineage.\n\t\t\t\tawait this.disposeCurrentSession({ type: \"session_shutdown\", reason: \"new\" });\n\t\t\t\tthis.assertOpen();\n\t\t\t\tthis.candidates.delete(result.session);\n\t\t\t\tthis.retained.delete(this.session);\n\t\t\t\tthis._session = result.session;\n\t\t\t\tthis._services = result.services;\n\t\t\t\tthis._diagnostics = result.diagnostics;\n\t\t\t\tthis._modelFallbackMessage = result.modelFallbackMessage;\n\t\t\t\tthis._modelFallbackReason = result.modelFallbackReason;\n\t\t\t\tif (setup) {\n\t\t\t\t\tawait setup(result.session.sessionManager);\n\t\t\t\t\tthis.assertOpen();\n\t\t\t\t\tif (this.session !== result.session) return;\n\t\t\t\t\tresult.session.refreshContext();\n\t\t\t\t}\n\t\t\t\tif (this.rebindSession) {\n\t\t\t\t\tawait this.rebindSession(result.session);\n\t\t\t\t\tthis.assertOpen();\n\t\t\t\t\tif (this.session !== result.session) return;\n\t\t\t\t}\n\t\t\t\tif (withSession) await withSession(result.session.createReplacedSessionContext());\n\t\t\t} catch (cause) {\n\t\t\t\tif (this.candidates.delete(result.session)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait (result.session as unknown as AgentSessionInternalSurface)._close({\n\t\t\t\t\t\t\ttype: \"session_shutdown\",\n\t\t\t\t\t\t\treason: this.closed ? \"quit\" : \"new\",\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t\t\t\tthrow Object.assign(\n\t\t\t\t\t\t\tnew AggregateError([cause, error], \"Replacement publication and candidate cleanup failed\"),\n\t\t\t\t\t\t\t{ code: \"ShutdownFailed\" },\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthrow cause;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: {\n\t\t\tcwdOverride?: string;\n\t\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t\t\tprojectTrustContextFactory?: (cwd: string) => ProjectTrustContext;\n\t\t},\n\t): Promise<{ cancelled: boolean }> {\n\t\treturn this.replace(async () => {\n\t\t\tconst beforeResult = await this.emitBeforeSwitch(\"resume\", sessionPath);\n\t\t\tthis.assertOpen();\n\t\t\tif (beforeResult.cancelled) {\n\t\t\t\treturn beforeResult;\n\t\t\t}\n\n\t\t\tconst previousSessionFile = this.session.sessionFile;\n\t\t\tconst sessionManager = SessionManager.open(sessionPath, undefined, options?.cwdOverride);\n\t\t\tassertSessionCwdExists(sessionManager, this.cwd);\n\t\t\tconst runtimeOptions: CreateAgentSessionRuntimeOptions = {\n\t\t\t\tcwd: sessionManager.getCwd(),\n\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\tsessionManager,\n\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"resume\", previousSessionFile },\n\t\t\t\tprojectTrustContext: (options?.projectTrustContextFactory ?? this.projectTrustContextFactory)?.(\n\t\t\t\t\tsessionManager.getCwd(),\n\t\t\t\t),\n\t\t\t};\n\t\t\tawait this.settleActiveResponseBeforeTeardown();\n\t\t\tthis.assertOpen();\n\t\t\tconst complete = await this.createRuntime.prepareResume?.(runtimeOptions);\n\t\t\tthis.assertOpen();\n\t\t\tawait this.teardownCurrent(\"resume\", sessionManager.getSessionFile());\n\t\t\tawait this.apply(await (complete ? complete() : this.createRuntime(runtimeOptions)), options?.withSession);\n\t\t\treturn { cancelled: false };\n\t\t});\n\t}\n\n\tasync newSession(options?: {\n\t\tparentSession?: string;\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>;\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t}): Promise<{ cancelled: boolean }> {\n\t\treturn this.replace(async () => {\n\t\t\tconst beforeResult = await this.emitBeforeSwitch(\"new\");\n\t\t\tthis.assertOpen();\n\t\t\tif (beforeResult.cancelled) {\n\t\t\t\treturn beforeResult;\n\t\t\t}\n\n\t\t\tconst previousSessionFile = this.session.sessionFile;\n\t\t\tconst sessionDir = this.session.sessionManager.getSessionDir();\n\t\t\tconst sessionManager = SessionManager.create(this.cwd, sessionDir);\n\t\t\tif (options?.parentSession) {\n\t\t\t\tsessionManager.newSession({ parentSession: options.parentSession });\n\t\t\t}\n\n\t\t\tawait this.teardownCurrent(\"new\", sessionManager.getSessionFile());\n\t\t\tawait this.apply(\n\t\t\t\tawait this.createRuntime({\n\t\t\t\t\tcwd: this.cwd,\n\t\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\t\tsessionManager,\n\t\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"new\", previousSessionFile },\n\t\t\t\t}),\n\t\t\t\toptions?.withSession,\n\t\t\t\toptions?.setup,\n\t\t\t);\n\t\t\treturn { cancelled: false };\n\t\t});\n\t}\n\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\"; withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\treturn this.replace(async () => {\n\t\t\tconst position = options?.position ?? \"before\";\n\t\t\tconst beforeResult = await this.emitBeforeFork(entryId, { position });\n\t\t\tthis.assertOpen();\n\t\t\tif (beforeResult.cancelled) {\n\t\t\t\treturn { cancelled: true };\n\t\t\t}\n\t\t\tlet targetLeafId: string | null;\n\t\t\tlet selectedText: string | undefined;\n\n\t\t\tconst selectedEntry = this.session.sessionManager.getEntry(entryId);\n\t\t\tif (!selectedEntry) {\n\t\t\t\tthrow new Error(\"Invalid entry ID for forking\");\n\t\t\t}\n\n\t\t\tif (position === \"at\") {\n\t\t\t\ttargetLeafId = selectedEntry.id;\n\t\t\t} else {\n\t\t\t\tif (selectedEntry.type !== \"message\" || selectedEntry.message.role !== \"user\") {\n\t\t\t\t\tthrow new Error(\"Invalid entry ID for forking\");\n\t\t\t\t}\n\t\t\t\ttargetLeafId = selectedEntry.parentId;\n\t\t\t\tselectedText = extractUserMessageText(selectedEntry.message.content);\n\t\t\t}\n\n\t\t\tconst previousSessionFile = this.session.sessionFile;\n\t\t\tif (this.session.sessionManager.isPersisted()) {\n\t\t\t\tconst currentSessionFile = this.session.sessionFile;\n\t\t\t\tif (!currentSessionFile) {\n\t\t\t\t\tthrow new Error(\"Persisted session is missing a session file\");\n\t\t\t\t}\n\t\t\t\tconst sessionDir = this.session.sessionManager.getSessionDir();\n\t\t\t\tif (!targetLeafId) {\n\t\t\t\t\tconst sessionManager = SessionManager.create(this.cwd, sessionDir);\n\t\t\t\t\tsessionManager.newSession({ parentSession: currentSessionFile });\n\t\t\t\t\tawait this.teardownCurrent(\"fork\", sessionManager.getSessionFile());\n\t\t\t\t\tawait this.apply(\n\t\t\t\t\t\tawait this.createRuntime({\n\t\t\t\t\t\t\tcwd: this.cwd,\n\t\t\t\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"fork\", previousSessionFile },\n\t\t\t\t\t\t}),\n\t\t\t\t\t\toptions?.withSession,\n\t\t\t\t\t);\n\t\t\t\t\treturn { cancelled: false, selectedText };\n\t\t\t\t}\n\n\t\t\t\tif (!existsSync(currentSessionFile)) {\n\t\t\t\t\tthrow new Error(\"This session has not been saved yet. Send a message before cloning or forking it.\");\n\t\t\t\t}\n\t\t\t\tconst sessionManager = SessionManager.open(currentSessionFile, sessionDir);\n\t\t\t\tconst forkedSessionPath = sessionManager.createBranchedSession(targetLeafId);\n\t\t\t\tif (!forkedSessionPath) {\n\t\t\t\t\tthrow new Error(\"Failed to create forked session\");\n\t\t\t\t}\n\t\t\t\tawait this.teardownCurrent(\"fork\", sessionManager.getSessionFile());\n\t\t\t\tawait this.apply(\n\t\t\t\t\tawait this.createRuntime({\n\t\t\t\t\t\tcwd: sessionManager.getCwd(),\n\t\t\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"fork\", previousSessionFile },\n\t\t\t\t\t}),\n\t\t\t\t\toptions?.withSession,\n\t\t\t\t);\n\t\t\t\treturn { cancelled: false, selectedText };\n\t\t\t}\n\n\t\t\tconst sessionManager = this.session.sessionManager;\n\t\t\tawait this.teardownCurrent(\"fork\", sessionManager.getSessionFile());\n\t\t\tif (!targetLeafId) {\n\t\t\t\tsessionManager.newSession({ parentSession: previousSessionFile });\n\t\t\t} else {\n\t\t\t\tsessionManager.createBranchedSession(targetLeafId);\n\t\t\t}\n\t\t\tawait this.apply(\n\t\t\t\tawait this.createRuntime({\n\t\t\t\t\tcwd: this.cwd,\n\t\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\t\tsessionManager,\n\t\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"fork\", previousSessionFile },\n\t\t\t\t}),\n\t\t\t\toptions?.withSession,\n\t\t\t);\n\t\t\treturn { cancelled: false, selectedText };\n\t\t});\n\t}\n\n\t/**\n\t * Import a session JSONL file and switch runtime state to the imported session.\n\t *\n\t * @returns `{ cancelled: true }` when cancelled by `session_before_switch`, otherwise `{ cancelled: false }`.\n\t * @throws {SessionImportFileNotFoundError} When the input path does not exist.\n\t * @throws {MissingSessionCwdError} When the imported session cwd cannot be resolved and no override is provided.\n\t */\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.replace(async () => {\n\t\t\tconst resolvedPath = resolvePath(inputPath);\n\t\t\tif (!existsSync(resolvedPath)) {\n\t\t\t\tthrow new SessionImportFileNotFoundError(resolvedPath);\n\t\t\t}\n\n\t\t\tconst sessionDir = this.session.sessionManager.getSessionDir();\n\t\t\tif (!existsSync(sessionDir)) {\n\t\t\t\tmkdirSync(sessionDir, { recursive: true });\n\t\t\t}\n\n\t\t\tlet destinationPath = join(sessionDir, basename(resolvedPath));\n\t\t\tconst sourceAlreadyStored = resolve(destinationPath) === resolvedPath;\n\t\t\tif (!sourceAlreadyStored) {\n\t\t\t\tconst { name, ext } = parse(destinationPath);\n\t\t\t\tlet suffix = 1;\n\t\t\t\twhile (existsSync(destinationPath)) {\n\t\t\t\t\tdestinationPath = join(sessionDir, `${name}-${suffix++}${ext}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst beforeResult = await this.emitBeforeSwitch(\"resume\", destinationPath);\n\t\t\tthis.assertOpen();\n\t\t\tif (beforeResult.cancelled) {\n\t\t\t\treturn beforeResult;\n\t\t\t}\n\n\t\t\tconst previousSessionFile = this.session.sessionFile;\n\t\t\tif (!sourceAlreadyStored) {\n\t\t\t\tcopyFileSync(resolvedPath, destinationPath, constants.COPYFILE_EXCL);\n\t\t\t}\n\n\t\t\tconst sessionManager = SessionManager.open(destinationPath, sessionDir, cwdOverride);\n\t\t\tassertSessionCwdExists(sessionManager, this.cwd);\n\t\t\tawait this.teardownCurrent(\"resume\", sessionManager.getSessionFile());\n\t\t\tawait this.apply(\n\t\t\t\tawait this.createRuntime({\n\t\t\t\t\tcwd: sessionManager.getCwd(),\n\t\t\t\t\tagentDir: this.services.agentDir,\n\t\t\t\t\tsessionManager,\n\t\t\t\t\tsessionStartEvent: { type: \"session_start\", reason: \"resume\", previousSessionFile },\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn { cancelled: false };\n\t\t});\n\t}\n\n\tdispose(): Promise<void> {\n\t\tif (this.closing) return this.closing;\n\t\tthis.closed = true;\n\t\tconst current = this.disposeCurrentSession({ type: \"session_shutdown\", reason: \"quit\" });\n\t\tvoid current.catch(() => {});\n\t\tthis.closing = (async () => {\n\t\t\tawait drainSessionWork(this);\n\t\t\tfor (const candidate of this.candidates) {\n\t\t\t\ttry {\n\t\t\t\t\tawait candidate.dispose();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.candidates.clear();\n\t\t\ttry {\n\t\t\t\tawait current;\n\t\t\t} catch (error) {\n\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t}\n\t\t\twhile (this.retirementCleanup.size) await Promise.all(this.retirementCleanup);\n\t\t\ttry {\n\t\t\t\tawait this.finalizeRetained();\n\t\t\t} catch (error) {\n\t\t\t\tthis.cleanupFailures.push(error);\n\t\t\t}\n\t\t\tif (this.cleanupFailures.length)\n\t\t\t\tthrow Object.assign(new AggregateError(this.cleanupFailures, \"Runtime shutdown failed\"), {\n\t\t\t\t\tcode: \"ShutdownFailed\",\n\t\t\t\t});\n\t\t})();\n\t\treturn this.closing;\n\t}\n}\n\n/**\n * Create the initial runtime from a runtime factory and initial session target.\n *\n * The same factory is stored on the returned AgentSessionRuntime and reused for\n * later /new, /resume, /fork, and import flows.\n */\nexport async function createAgentSessionRuntime(\n\tcreateRuntime: CreateAgentSessionRuntimeFactory,\n\toptions: {\n\t\tcwd: string;\n\t\tagentDir: string;\n\t\tsessionManager: SessionManager;\n\t\tsessionStartEvent?: SessionStartEvent;\n\t},\n): Promise<AgentSessionRuntime> {\n\tassertSessionCwdExists(options.sessionManager, options.cwd);\n\tconst result = await sessionLifecycleCreation.run({ scope: {} }, () => createRuntime(options));\n\treturn new AgentSessionRuntime(\n\t\tresult.session,\n\t\tresult.services,\n\t\tcreateRuntime,\n\t\tresult.diagnostics,\n\t\tresult.modelFallbackMessage,\n\t\tresult.modelFallbackReason,\n\t);\n}\n\nexport {\n\ttype AgentSessionRuntimeDiagnostic,\n\ttype AgentSessionServices,\n\ttype CreateAgentSessionFromServicesOptions,\n\ttype CreateAgentSessionServicesOptions,\n\tcreateAgentSessionFromServices,\n\tcreateAgentSessionServices,\n} from \"./agent-session-services.ts\";\n"]}
@@ -171,13 +171,16 @@ export interface AgentSessionReloadOptions {
171
171
  /** Leave the existing extension runner active unless every extension factory loaded successfully. */
172
172
  failOnExtensionErrors?: boolean;
173
173
  }
174
+ export type QueuedInputDisposition = "handled" | "queued";
175
+ export type PromptDisposition = QueuedInputDisposition | "started";
174
176
  export interface PromptOptions {
175
177
  /** Whether to dispatch extension commands and expand skill commands and prompt templates (default: true) */
176
178
  expandPromptTemplates?: boolean;
177
179
  images?: ImageContent[];
178
180
  streamingBehavior?: "steer" | "followUp";
179
181
  source?: InputSource;
180
- preflightResult?: (success: boolean) => void;
182
+ /** Called once when preflight accepts (`true`, with how the prompt was dispatched) or rejects (`false`) the prompt. */
183
+ preflightResult?: (success: boolean, disposition?: PromptDisposition) => void;
181
184
  }
182
185
  export interface ModelMutationOptions {
183
186
  persist?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-types.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session-types.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-types.js","sourceRoot":"","sources":["../../src/core/agent-session-types.ts"],"names":[],"mappings":"AAiGA,gFAAgF;AAChF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAA8B,CAAC;AAM5E,MAAM,UAAU,sBAAsB,CAAC,KAA2C;IACjF,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,OAAO,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAyB;IACvE,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,OAAO,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC/C,MAAM,UAAU,GAAG,KAAK;SACtB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxB,OAAO,CACN,UAAU,KAAK,mBAAmB;QAClC,UAAU,KAAK,2BAA2B;QAC1C,UAAU,KAAK,qBAAqB;QACpC,UAAU,KAAK,4BAA4B;QAC3C,UAAU,KAAK,6BAA6B,CAC5C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAAgB;IAC/D,OAAO,CACN,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACtB,OAAO,CAAC,MAAM,KAAK,CAAC;QACpB,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ;QAC9B,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI;QAClB,OAAO,CAAC,CAAC,CAAwB,CAAC,IAAI,KAAK,MAAM;QAClD,OAAQ,OAAO,CAAC,CAAC,CAAwB,CAAC,IAAI,KAAK,QAAQ;QAC3D,kBAAkB,CAAE,OAAO,CAAC,CAAC,CAAsB,CAAC,IAAI,CAAC,CACzD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IACnD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC;AA+FD,MAAM,CAAC,MAAM,eAAe,GAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAE5G,MAAM,UAAU,4BAA4B,CAAC,OAAsB;IAClE,OAAQ,OAA4D,CAAC,kBAAkB,KAAK,IAAI,CAAC;AAClG,CAAC","sourcesContent":["import type { Api, AssistantMessage, ImageContent, Model, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { Agent, AgentEvent, AgentMessage, AgentTool, ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { VerbatimCompactionResult } from \"./compaction/index.ts\";\nimport type {\n\tContextUsage,\n\tExtensionCommandContextActions,\n\tExtensionErrorListener,\n\tExtensionMode,\n\tExtensionUIContext,\n\tInputSource,\n\tOrchestrationContext,\n\tSessionStartEvent,\n\tShutdownHandler,\n\tSubagentChildPolicy,\n\tToolDefinition,\n} from \"./extensions/index.js\";\nimport type { CustomMessage } from \"./messages.ts\";\nimport type { ModelRuntime } from \"./model-runtime.js\";\nimport type { ResourceLoader } from \"./resource-loader.ts\";\nimport type { SessionManager } from \"./session-manager.ts\";\nimport type { SettingsManager } from \"./settings-manager.ts\";\nimport type { SourceInfo } from \"./source-info.ts\";\nexport type CompactionReason = \"manual\" | \"threshold\" | \"overflow\" | \"branchSummary\";\n\nexport type AgentSessionEvent =\n\t| AgentEvent\n\t| { type: \"agent_settled\" }\n\t| { type: \"entry_appended\"; entry: import(\"./session-manager.ts\").SessionEntry }\n\t| {\n\t\t\ttype: \"queue_update\";\n\t\t\tsteering: readonly string[];\n\t\t\tfollowUp: readonly string[];\n\t }\n\t| { type: \"compaction_start\"; reason: \"manual\" | \"threshold\" | \"overflow\"; midTurn?: boolean }\n\t| { type: \"session_info_changed\"; name: string | undefined }\n\t| {\n\t\t\ttype: \"model_changed\";\n\t\t\tmodel: Model<Api>;\n\t\t\tpreviousModel: Model<Api> | undefined;\n\t\t\tsource: \"set\" | \"cycle\" | \"restore\" | \"fallback\";\n\t }\n\t| { type: \"thinking_level_changed\"; level: ThinkingLevel }\n\t| {\n\t\t\ttype: \"compaction_end\";\n\t\t\treason: \"manual\" | \"threshold\" | \"overflow\";\n\t\t\tresult: VerbatimCompactionResult | undefined;\n\t\t\taborted: boolean;\n\t\t\twillRetry: boolean;\n\t\t\tunresolvedOverflow?: boolean;\n\t\t\terrorMessage?: string;\n\t\t\tmidTurn?: boolean;\n\t\t\t/** A manual request has claimed ownership and will emit its own completion. */\n\t\t\tmanualTakeoverPending?: boolean;\n\t }\n\t| { type: \"agent_continue_error\"; source: \"post_compaction\"; errorMessage: string }\n\t| { type: \"auto_retry_start\"; attempt: number; maxAttempts: number; delayMs: number; errorMessage: string }\n\t| { type: \"auto_retry_end\"; success: boolean; attempt: number; finalError?: string }\n\t| {\n\t\t\ttype: \"summarization_retry_scheduled\";\n\t\t\tattempt: number;\n\t\t\tmaxAttempts: number;\n\t\t\tdelayMs: number;\n\t\t\terrorMessage: string;\n\t }\n\t| { type: \"summarization_retry_attempt_start\"; source: \"branchSummary\" }\n\t| {\n\t\t\ttype: \"summarization_retry_attempt_start\";\n\t\t\tsource: \"compaction\";\n\t\t\treason: \"manual\" | \"threshold\" | \"overflow\";\n\t }\n\t| { type: \"summarization_retry_finished\" }\n\t| { type: \"bash_execution_update\"; id?: string; channel: \"stdout\" | \"stderr\"; delta: string }\n\t| { type: \"model_fallback_start\"; from: string; to: string; reason: string; attempt: number }\n\t| { type: \"model_fallback_end\"; success: boolean; from?: string; to?: string; finalError?: string };\n\nexport type AgentSessionEventListener = (event: AgentSessionEvent) => void;\n\nexport interface PendingAgentMessageQueue {\n\thasItems(): boolean;\n\tdrain(): AgentMessage[];\n}\n\nexport interface AgentQueueAccess {\n\treadonly steeringQueue?: PendingAgentMessageQueue;\n\treadonly followUpQueue?: PendingAgentMessageQueue;\n}\n\nexport interface DrainedAgentQueues {\n\treadonly steering: AgentMessage[];\n\treadonly followUp: AgentMessage[];\n}\n\nexport interface InterruptQueueHold {\n\treadonly steering: AgentMessage[];\n\treadonly followUp: AgentMessage[];\n}\n\n/** Insertion boundary after already admitted priority input in a queue hold. */\nexport const priorityHoldCounts = new WeakMap<InterruptQueueHold, number>();\n\nexport interface ClearQueueOptions {\n\tpreserveUnprotectedCustomMessages?: boolean;\n}\n\nexport function drainAgentMessageQueue(queue: PendingAgentMessageQueue | undefined): AgentMessage[] {\n\tif (!queue) return [];\n\tconst drained: AgentMessage[] = [];\n\twhile (queue.hasItems()) {\n\t\tdrained.push(...queue.drain());\n\t}\n\treturn drained;\n}\n\nexport function normalizeInterruptAbortMessage(value: string | undefined): string | undefined {\n\tconst trimmed = value?.trim();\n\treturn trimmed && trimmed.length > 0 ? trimmed : undefined;\n}\n\nexport function isGenericAbortText(value: string): boolean {\n\tconst normalized = value\n\t\t.trim()\n\t\t.toLowerCase()\n\t\t.replace(/[.!]+$/, \"\");\n\treturn (\n\t\tnormalized === \"operation aborted\" ||\n\t\tnormalized === \"the operation was aborted\" ||\n\t\tnormalized === \"request was aborted\" ||\n\t\tnormalized === \"this operation was aborted\" ||\n\t\tnormalized === \"extension custom ui aborted\"\n\t);\n}\n\nexport function isSingleGenericAbortTextContent(content: unknown): boolean {\n\treturn (\n\t\tArray.isArray(content) &&\n\t\tcontent.length === 1 &&\n\t\ttypeof content[0] === \"object\" &&\n\t\tcontent[0] !== null &&\n\t\t(content[0] as { type?: unknown }).type === \"text\" &&\n\t\ttypeof (content[0] as { text?: unknown }).text === \"string\" &&\n\t\tisGenericAbortText((content[0] as { text: string }).text)\n\t);\n}\n\nexport function replacementAbortContent(text: string): TextContent[] {\n\treturn [{ type: \"text\", text }];\n}\n\nexport interface AgentSessionConfig {\n\tagent: Agent;\n\tsessionManager: SessionManager;\n\tsettingsManager: SettingsManager;\n\tcwd: string;\n\tscopedModels?: Array<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>;\n\tfallbackModels?: string[];\n\tisFallbackModelAllowed?: (model: Model<Api>, effort: string | undefined) => boolean;\n\tresourceLoader: ResourceLoader;\n\tcustomTools?: ToolDefinition[];\n\tmodelRuntime: ModelRuntime;\n\tcacheWarmer?: import(\"./cache-warmer.ts\").CacheWarmer;\n\tchildSessionOptions?: import(\"./child-session-options.ts\").ChildSessionOptionsResolver;\n\tinitialActiveToolNames?: string[];\n\tallowedToolNames?: string[];\n\texcludedToolNames?: string[];\n\tbaseToolsOverride?: Record<string, AgentTool>;\n\textensionRunnerRef?: { current?: import(\"./extensions/index.js\").ExtensionRunner };\n\tsessionStartEvent?: SessionStartEvent;\n\tsubagentPolicy?: SubagentChildPolicy;\n\t/** Parent-issued shell task owner for an in-process subagent child. */\n\tparentCommandTaskOwner?: import(\"./tasks/child-command-owner.js\").ChildCommandTaskOwner;\n\tsystemPromptTransform?: (prompt: string) => string;\n\t/**\n\t * Transform the canonical session projection whenever it becomes the finalized\n\t * context (session construction, provider requests, boundaries, recovery). The\n\t * durable transcript stays unchanged; only derived context is filtered.\n\t */\n\tcontextProjectionTransform?: (messages: AgentMessage[]) => AgentMessage[];\n\torchestrationContext?: OrchestrationContext;\n}\n\nexport interface ExtensionBindings {\n\thumanInput?: import(\"./extensions/host-input.js\").HostInput | null;\n\tonDiagnostic?: (diagnostic: import(\"./extensions/host-input.js\").HostDiagnostic) => void;\n\tuiContext?: ExtensionUIContext;\n\tmode?: ExtensionMode;\n\tcommandContextActions?: ExtensionCommandContextActions;\n\tshutdownHandler?: ShutdownHandler;\n\tonError?: ExtensionErrorListener;\n}\n\nexport interface AgentSessionReloadOptions {\n\treason?: \"startup\" | \"reload\";\n\t/** Runs after resources and the extension runtime are rebuilt, immediately before session_start. */\n\tbeforeSessionStart?: () => void | Promise<void>;\n\t/** Leave the existing extension runner active unless every extension factory loaded successfully. */\n\tfailOnExtensionErrors?: boolean;\n}\n\nexport interface PromptOptions {\n\t/** Whether to dispatch extension commands and expand skill commands and prompt templates (default: true) */\n\texpandPromptTemplates?: boolean;\n\timages?: ImageContent[];\n\tstreamingBehavior?: \"steer\" | \"followUp\";\n\tsource?: InputSource;\n\tpreflightResult?: (success: boolean) => void;\n}\n\nexport interface ModelMutationOptions {\n\tpersist?: boolean;\n}\n\nexport interface ModelCycleResult {\n\tmodel: Model<Api>;\n\tthinkingLevel: ThinkingLevel;\n\tisScoped: boolean;\n}\n\nexport interface SessionStats {\n\tsessionFile: string | undefined;\n\tsessionId: string;\n\tuserMessages: number;\n\tassistantMessages: number;\n\ttoolCalls: number;\n\ttoolResults: number;\n\ttotalMessages: number;\n\ttokens: {\n\t\tinput: number;\n\t\toutput: number;\n\t\tcacheRead: number;\n\t\tcacheWrite: number;\n\t\ttotal: number;\n\t};\n\tcost: number;\n\tcontextUsage?: ContextUsage;\n}\n\nexport interface ToolDefinitionEntry {\n\tdefinition: ToolDefinition;\n\tsourceInfo: SourceInfo;\n}\n\nexport const THINKING_LEVELS: ThinkingLevel[] = [\"off\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"];\n\nexport function customMessageExcludesContext(message: CustomMessage): boolean {\n\treturn (message as CustomMessage & { excludeFromContext?: boolean }).excludeFromContext === true;\n}\n\nexport type AssistantMessageWithError = AssistantMessage;\n"]}
1
+ {"version":3,"file":"agent-session-types.js","sourceRoot":"","sources":["../../src/core/agent-session-types.ts"],"names":[],"mappings":"AAiGA,gFAAgF;AAChF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAA8B,CAAC;AAM5E,MAAM,UAAU,sBAAsB,CAAC,KAA2C;IACjF,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,OAAO,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAyB;IACvE,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,OAAO,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC/C,MAAM,UAAU,GAAG,KAAK;SACtB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxB,OAAO,CACN,UAAU,KAAK,mBAAmB;QAClC,UAAU,KAAK,2BAA2B;QAC1C,UAAU,KAAK,qBAAqB;QACpC,UAAU,KAAK,4BAA4B;QAC3C,UAAU,KAAK,6BAA6B,CAC5C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAAgB;IAC/D,OAAO,CACN,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACtB,OAAO,CAAC,MAAM,KAAK,CAAC;QACpB,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ;QAC9B,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI;QAClB,OAAO,CAAC,CAAC,CAAwB,CAAC,IAAI,KAAK,MAAM;QAClD,OAAQ,OAAO,CAAC,CAAC,CAAwB,CAAC,IAAI,KAAK,QAAQ;QAC3D,kBAAkB,CAAE,OAAO,CAAC,CAAC,CAAsB,CAAC,IAAI,CAAC,CACzD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IACnD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC;AAmGD,MAAM,CAAC,MAAM,eAAe,GAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAE5G,MAAM,UAAU,4BAA4B,CAAC,OAAsB;IAClE,OAAQ,OAA4D,CAAC,kBAAkB,KAAK,IAAI,CAAC;AAClG,CAAC","sourcesContent":["import type { Api, AssistantMessage, ImageContent, Model, TextContent } from \"@bastani/pi-ai/compat\";\nimport type { Agent, AgentEvent, AgentMessage, AgentTool, ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { VerbatimCompactionResult } from \"./compaction/index.ts\";\nimport type {\n\tContextUsage,\n\tExtensionCommandContextActions,\n\tExtensionErrorListener,\n\tExtensionMode,\n\tExtensionUIContext,\n\tInputSource,\n\tOrchestrationContext,\n\tSessionStartEvent,\n\tShutdownHandler,\n\tSubagentChildPolicy,\n\tToolDefinition,\n} from \"./extensions/index.js\";\nimport type { CustomMessage } from \"./messages.ts\";\nimport type { ModelRuntime } from \"./model-runtime.js\";\nimport type { ResourceLoader } from \"./resource-loader.ts\";\nimport type { SessionManager } from \"./session-manager.ts\";\nimport type { SettingsManager } from \"./settings-manager.ts\";\nimport type { SourceInfo } from \"./source-info.ts\";\nexport type CompactionReason = \"manual\" | \"threshold\" | \"overflow\" | \"branchSummary\";\n\nexport type AgentSessionEvent =\n\t| AgentEvent\n\t| { type: \"agent_settled\" }\n\t| { type: \"entry_appended\"; entry: import(\"./session-manager.ts\").SessionEntry }\n\t| {\n\t\t\ttype: \"queue_update\";\n\t\t\tsteering: readonly string[];\n\t\t\tfollowUp: readonly string[];\n\t }\n\t| { type: \"compaction_start\"; reason: \"manual\" | \"threshold\" | \"overflow\"; midTurn?: boolean }\n\t| { type: \"session_info_changed\"; name: string | undefined }\n\t| {\n\t\t\ttype: \"model_changed\";\n\t\t\tmodel: Model<Api>;\n\t\t\tpreviousModel: Model<Api> | undefined;\n\t\t\tsource: \"set\" | \"cycle\" | \"restore\" | \"fallback\";\n\t }\n\t| { type: \"thinking_level_changed\"; level: ThinkingLevel }\n\t| {\n\t\t\ttype: \"compaction_end\";\n\t\t\treason: \"manual\" | \"threshold\" | \"overflow\";\n\t\t\tresult: VerbatimCompactionResult | undefined;\n\t\t\taborted: boolean;\n\t\t\twillRetry: boolean;\n\t\t\tunresolvedOverflow?: boolean;\n\t\t\terrorMessage?: string;\n\t\t\tmidTurn?: boolean;\n\t\t\t/** A manual request has claimed ownership and will emit its own completion. */\n\t\t\tmanualTakeoverPending?: boolean;\n\t }\n\t| { type: \"agent_continue_error\"; source: \"post_compaction\"; errorMessage: string }\n\t| { type: \"auto_retry_start\"; attempt: number; maxAttempts: number; delayMs: number; errorMessage: string }\n\t| { type: \"auto_retry_end\"; success: boolean; attempt: number; finalError?: string }\n\t| {\n\t\t\ttype: \"summarization_retry_scheduled\";\n\t\t\tattempt: number;\n\t\t\tmaxAttempts: number;\n\t\t\tdelayMs: number;\n\t\t\terrorMessage: string;\n\t }\n\t| { type: \"summarization_retry_attempt_start\"; source: \"branchSummary\" }\n\t| {\n\t\t\ttype: \"summarization_retry_attempt_start\";\n\t\t\tsource: \"compaction\";\n\t\t\treason: \"manual\" | \"threshold\" | \"overflow\";\n\t }\n\t| { type: \"summarization_retry_finished\" }\n\t| { type: \"bash_execution_update\"; id?: string; channel: \"stdout\" | \"stderr\"; delta: string }\n\t| { type: \"model_fallback_start\"; from: string; to: string; reason: string; attempt: number }\n\t| { type: \"model_fallback_end\"; success: boolean; from?: string; to?: string; finalError?: string };\n\nexport type AgentSessionEventListener = (event: AgentSessionEvent) => void;\n\nexport interface PendingAgentMessageQueue {\n\thasItems(): boolean;\n\tdrain(): AgentMessage[];\n}\n\nexport interface AgentQueueAccess {\n\treadonly steeringQueue?: PendingAgentMessageQueue;\n\treadonly followUpQueue?: PendingAgentMessageQueue;\n}\n\nexport interface DrainedAgentQueues {\n\treadonly steering: AgentMessage[];\n\treadonly followUp: AgentMessage[];\n}\n\nexport interface InterruptQueueHold {\n\treadonly steering: AgentMessage[];\n\treadonly followUp: AgentMessage[];\n}\n\n/** Insertion boundary after already admitted priority input in a queue hold. */\nexport const priorityHoldCounts = new WeakMap<InterruptQueueHold, number>();\n\nexport interface ClearQueueOptions {\n\tpreserveUnprotectedCustomMessages?: boolean;\n}\n\nexport function drainAgentMessageQueue(queue: PendingAgentMessageQueue | undefined): AgentMessage[] {\n\tif (!queue) return [];\n\tconst drained: AgentMessage[] = [];\n\twhile (queue.hasItems()) {\n\t\tdrained.push(...queue.drain());\n\t}\n\treturn drained;\n}\n\nexport function normalizeInterruptAbortMessage(value: string | undefined): string | undefined {\n\tconst trimmed = value?.trim();\n\treturn trimmed && trimmed.length > 0 ? trimmed : undefined;\n}\n\nexport function isGenericAbortText(value: string): boolean {\n\tconst normalized = value\n\t\t.trim()\n\t\t.toLowerCase()\n\t\t.replace(/[.!]+$/, \"\");\n\treturn (\n\t\tnormalized === \"operation aborted\" ||\n\t\tnormalized === \"the operation was aborted\" ||\n\t\tnormalized === \"request was aborted\" ||\n\t\tnormalized === \"this operation was aborted\" ||\n\t\tnormalized === \"extension custom ui aborted\"\n\t);\n}\n\nexport function isSingleGenericAbortTextContent(content: unknown): boolean {\n\treturn (\n\t\tArray.isArray(content) &&\n\t\tcontent.length === 1 &&\n\t\ttypeof content[0] === \"object\" &&\n\t\tcontent[0] !== null &&\n\t\t(content[0] as { type?: unknown }).type === \"text\" &&\n\t\ttypeof (content[0] as { text?: unknown }).text === \"string\" &&\n\t\tisGenericAbortText((content[0] as { text: string }).text)\n\t);\n}\n\nexport function replacementAbortContent(text: string): TextContent[] {\n\treturn [{ type: \"text\", text }];\n}\n\nexport interface AgentSessionConfig {\n\tagent: Agent;\n\tsessionManager: SessionManager;\n\tsettingsManager: SettingsManager;\n\tcwd: string;\n\tscopedModels?: Array<{ model: Model<Api>; thinkingLevel?: ThinkingLevel }>;\n\tfallbackModels?: string[];\n\tisFallbackModelAllowed?: (model: Model<Api>, effort: string | undefined) => boolean;\n\tresourceLoader: ResourceLoader;\n\tcustomTools?: ToolDefinition[];\n\tmodelRuntime: ModelRuntime;\n\tcacheWarmer?: import(\"./cache-warmer.ts\").CacheWarmer;\n\tchildSessionOptions?: import(\"./child-session-options.ts\").ChildSessionOptionsResolver;\n\tinitialActiveToolNames?: string[];\n\tallowedToolNames?: string[];\n\texcludedToolNames?: string[];\n\tbaseToolsOverride?: Record<string, AgentTool>;\n\textensionRunnerRef?: { current?: import(\"./extensions/index.js\").ExtensionRunner };\n\tsessionStartEvent?: SessionStartEvent;\n\tsubagentPolicy?: SubagentChildPolicy;\n\t/** Parent-issued shell task owner for an in-process subagent child. */\n\tparentCommandTaskOwner?: import(\"./tasks/child-command-owner.js\").ChildCommandTaskOwner;\n\tsystemPromptTransform?: (prompt: string) => string;\n\t/**\n\t * Transform the canonical session projection whenever it becomes the finalized\n\t * context (session construction, provider requests, boundaries, recovery). The\n\t * durable transcript stays unchanged; only derived context is filtered.\n\t */\n\tcontextProjectionTransform?: (messages: AgentMessage[]) => AgentMessage[];\n\torchestrationContext?: OrchestrationContext;\n}\n\nexport interface ExtensionBindings {\n\thumanInput?: import(\"./extensions/host-input.js\").HostInput | null;\n\tonDiagnostic?: (diagnostic: import(\"./extensions/host-input.js\").HostDiagnostic) => void;\n\tuiContext?: ExtensionUIContext;\n\tmode?: ExtensionMode;\n\tcommandContextActions?: ExtensionCommandContextActions;\n\tshutdownHandler?: ShutdownHandler;\n\tonError?: ExtensionErrorListener;\n}\n\nexport interface AgentSessionReloadOptions {\n\treason?: \"startup\" | \"reload\";\n\t/** Runs after resources and the extension runtime are rebuilt, immediately before session_start. */\n\tbeforeSessionStart?: () => void | Promise<void>;\n\t/** Leave the existing extension runner active unless every extension factory loaded successfully. */\n\tfailOnExtensionErrors?: boolean;\n}\n\nexport type QueuedInputDisposition = \"handled\" | \"queued\";\nexport type PromptDisposition = QueuedInputDisposition | \"started\";\n\nexport interface PromptOptions {\n\t/** Whether to dispatch extension commands and expand skill commands and prompt templates (default: true) */\n\texpandPromptTemplates?: boolean;\n\timages?: ImageContent[];\n\tstreamingBehavior?: \"steer\" | \"followUp\";\n\tsource?: InputSource;\n\t/** Called once when preflight accepts (`true`, with how the prompt was dispatched) or rejects (`false`) the prompt. */\n\tpreflightResult?: (success: boolean, disposition?: PromptDisposition) => void;\n}\n\nexport interface ModelMutationOptions {\n\tpersist?: boolean;\n}\n\nexport interface ModelCycleResult {\n\tmodel: Model<Api>;\n\tthinkingLevel: ThinkingLevel;\n\tisScoped: boolean;\n}\n\nexport interface SessionStats {\n\tsessionFile: string | undefined;\n\tsessionId: string;\n\tuserMessages: number;\n\tassistantMessages: number;\n\ttoolCalls: number;\n\ttoolResults: number;\n\ttotalMessages: number;\n\ttokens: {\n\t\tinput: number;\n\t\toutput: number;\n\t\tcacheRead: number;\n\t\tcacheWrite: number;\n\t\ttotal: number;\n\t};\n\tcost: number;\n\tcontextUsage?: ContextUsage;\n}\n\nexport interface ToolDefinitionEntry {\n\tdefinition: ToolDefinition;\n\tsourceInfo: SourceInfo;\n}\n\nexport const THINKING_LEVELS: ThinkingLevel[] = [\"off\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"];\n\nexport function customMessageExcludesContext(message: CustomMessage): boolean {\n\treturn (message as CustomMessage & { excludeFromContext?: boolean }).excludeFromContext === true;\n}\n\nexport type AssistantMessageWithError = AssistantMessage;\n"]}
@@ -25,7 +25,7 @@ import { ToolExecutionScheduler } from "./tools/tool-concurrency.ts";
25
25
  import { WorkflowStageAdmissionBoundary } from "./workflow-stage-admission.ts";
26
26
  export type { ParsedSkillBlock } from "./agent-session-skill-block.ts";
27
27
  export { parseSkillBlock } from "./agent-session-skill-block.ts";
28
- export type { AgentSessionConfig, AgentSessionEvent, AgentSessionEventListener, CompactionReason, ExtensionBindings, ModelCycleResult, PromptOptions, SessionStats, } from "./agent-session-types.js";
28
+ export type { AgentSessionConfig, AgentSessionEvent, AgentSessionEventListener, CompactionReason, ExtensionBindings, ModelCycleResult, PromptDisposition, PromptOptions, QueuedInputDisposition, SessionStats, } from "./agent-session-types.js";
29
29
  declare class AgentSessionBase {
30
30
  readonly agent: Agent;
31
31
  readonly sessionManager: SessionManager;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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"}