@qduc/term2 0.26.1 → 0.28.0

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 (976) hide show
  1. package/README.md +9 -7
  2. package/dist/acp-v2/session-backend.d.ts +0 -1
  3. package/dist/acp-v2/session-backend.d.ts.map +1 -1
  4. package/dist/acp-v2/session-backend.js +0 -1
  5. package/dist/acp-v2/session-backend.js.map +1 -1
  6. package/dist/agent.d.ts +4 -1
  7. package/dist/agent.d.ts.map +1 -1
  8. package/dist/agent.js +6 -2
  9. package/dist/agent.js.map +1 -1
  10. package/dist/app-helpers.d.ts +0 -2
  11. package/dist/app-helpers.d.ts.map +1 -1
  12. package/dist/app-helpers.js +1 -1
  13. package/dist/app-helpers.js.map +1 -1
  14. package/dist/app.d.ts +9 -2
  15. package/dist/app.d.ts.map +1 -1
  16. package/dist/app.js +67 -13
  17. package/dist/app.js.map +1 -1
  18. package/dist/build-info.json +6 -0
  19. package/dist/cli.js +203 -42
  20. package/dist/cli.js.map +1 -1
  21. package/dist/commands/auto-approve-command.d.ts.map +1 -1
  22. package/dist/commands/auto-approve-command.js +2 -6
  23. package/dist/commands/auto-approve-command.js.map +1 -1
  24. package/dist/commands/effort-command.js +1 -1
  25. package/dist/commands/effort-command.js.map +1 -1
  26. package/dist/commands/goal-command.d.ts +8 -0
  27. package/dist/commands/goal-command.d.ts.map +1 -0
  28. package/dist/commands/goal-command.js +49 -0
  29. package/dist/commands/goal-command.js.map +1 -0
  30. package/dist/commands/handoff-command.js +1 -1
  31. package/dist/commands/handoff-command.js.map +1 -1
  32. package/dist/commands/mode-commands.d.ts +5 -1
  33. package/dist/commands/mode-commands.d.ts.map +1 -1
  34. package/dist/commands/mode-commands.js +14 -2
  35. package/dist/commands/mode-commands.js.map +1 -1
  36. package/dist/commands/model-command.js +1 -1
  37. package/dist/commands/model-command.js.map +1 -1
  38. package/dist/commands/resume-command.d.ts +1 -1
  39. package/dist/commands/resume-command.d.ts.map +1 -1
  40. package/dist/commands/resume-command.js +1 -1
  41. package/dist/commands/resume-command.js.map +1 -1
  42. package/dist/commands/rewind-command.d.ts.map +1 -1
  43. package/dist/commands/rewind-command.js +8 -4
  44. package/dist/commands/rewind-command.js.map +1 -1
  45. package/dist/commands/sandbox-command.js +1 -1
  46. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  47. package/dist/components/ErrorBoundary.js +5 -5
  48. package/dist/components/ErrorBoundary.js.map +1 -1
  49. package/dist/components/InputBox.d.ts +4 -2
  50. package/dist/components/InputBox.d.ts.map +1 -1
  51. package/dist/components/InputBox.js +57 -42
  52. package/dist/components/InputBox.js.map +1 -1
  53. package/dist/components/MarkdownRenderer.js +1 -1
  54. package/dist/components/MarkdownRenderer.js.map +1 -1
  55. package/dist/components/common/Divider.d.ts +11 -0
  56. package/dist/components/common/Divider.d.ts.map +1 -0
  57. package/dist/components/common/Divider.js +11 -0
  58. package/dist/components/common/Divider.js.map +1 -0
  59. package/dist/components/common/MenuContainer.d.ts +3 -1
  60. package/dist/components/common/MenuContainer.d.ts.map +1 -1
  61. package/dist/components/common/MenuContainer.js +10 -16
  62. package/dist/components/common/MenuContainer.js.map +1 -1
  63. package/dist/components/input/ApplicationInputSurface.d.ts +2 -2
  64. package/dist/components/input/ApplicationInputSurface.d.ts.map +1 -1
  65. package/dist/components/input/ApplicationInputSurface.js +7 -3
  66. package/dist/components/input/ApplicationInputSurface.js.map +1 -1
  67. package/dist/components/input/FirstRunSetupPrompt.d.ts.map +1 -1
  68. package/dist/components/input/FirstRunSetupPrompt.js +3 -4
  69. package/dist/components/input/FirstRunSetupPrompt.js.map +1 -1
  70. package/dist/components/input/MenuSurface.d.ts.map +1 -1
  71. package/dist/components/input/MenuSurface.js +9 -3
  72. package/dist/components/input/MenuSurface.js.map +1 -1
  73. package/dist/components/input/PendingQueueList.d.ts +6 -0
  74. package/dist/components/input/PendingQueueList.d.ts.map +1 -1
  75. package/dist/components/input/PendingQueueList.js +42 -37
  76. package/dist/components/input/PendingQueueList.js.map +1 -1
  77. package/dist/components/input/ResumeMenuSession.d.ts.map +1 -1
  78. package/dist/components/input/ResumeMenuSession.js +2 -2
  79. package/dist/components/input/ResumeMenuSession.js.map +1 -1
  80. package/dist/components/input/menu-bindings.d.ts.map +1 -1
  81. package/dist/components/input/menu-bindings.js +1 -1
  82. package/dist/components/input/menu-bindings.js.map +1 -1
  83. package/dist/components/input/menu-registry.d.ts +0 -3
  84. package/dist/components/input/menu-registry.d.ts.map +1 -1
  85. package/dist/components/input/menu-registry.js +0 -3
  86. package/dist/components/input/menu-registry.js.map +1 -1
  87. package/dist/components/input/triggers.d.ts +0 -1
  88. package/dist/components/input/triggers.d.ts.map +1 -1
  89. package/dist/components/input/triggers.js +1 -1
  90. package/dist/components/input/triggers.js.map +1 -1
  91. package/dist/components/layout/BackgroundTaskManager.d.ts.map +1 -1
  92. package/dist/components/layout/BackgroundTaskManager.js +8 -5
  93. package/dist/components/layout/BackgroundTaskManager.js.map +1 -1
  94. package/dist/components/layout/BackgroundTasksPanel.d.ts +0 -2
  95. package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
  96. package/dist/components/layout/BackgroundTasksPanel.js +0 -1
  97. package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
  98. package/dist/components/layout/Banner.d.ts.map +1 -1
  99. package/dist/components/layout/Banner.js +2 -1
  100. package/dist/components/layout/Banner.js.map +1 -1
  101. package/dist/components/layout/BottomArea.d.ts +1 -1
  102. package/dist/components/layout/BottomArea.d.ts.map +1 -1
  103. package/dist/components/layout/BottomArea.js +34 -12
  104. package/dist/components/layout/BottomArea.js.map +1 -1
  105. package/dist/components/layout/DiffView.d.ts +1 -1
  106. package/dist/components/layout/DiffView.d.ts.map +1 -1
  107. package/dist/components/layout/DiffView.js +1 -1
  108. package/dist/components/layout/DiffView.js.map +1 -1
  109. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  110. package/dist/components/layout/StatusBar.js +14 -11
  111. package/dist/components/layout/StatusBar.js.map +1 -1
  112. package/dist/components/menu/CopyMenu.d.ts.map +1 -1
  113. package/dist/components/menu/CopyMenu.js +8 -3
  114. package/dist/components/menu/CopyMenu.js.map +1 -1
  115. package/dist/components/menu/McpSelectionMenu.d.ts.map +1 -1
  116. package/dist/components/menu/McpSelectionMenu.js +13 -8
  117. package/dist/components/menu/McpSelectionMenu.js.map +1 -1
  118. package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
  119. package/dist/components/menu/ModelSelectionMenu.js +4 -1
  120. package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
  121. package/dist/components/menu/PathSelectionMenu.d.ts.map +1 -1
  122. package/dist/components/menu/PathSelectionMenu.js +10 -7
  123. package/dist/components/menu/PathSelectionMenu.js.map +1 -1
  124. package/dist/components/menu/ProfileSelectionMenu.d.ts.map +1 -1
  125. package/dist/components/menu/ProfileSelectionMenu.js +6 -4
  126. package/dist/components/menu/ProfileSelectionMenu.js.map +1 -1
  127. package/dist/components/menu/ProviderSelectionMenu.d.ts.map +1 -1
  128. package/dist/components/menu/ProviderSelectionMenu.js +60 -25
  129. package/dist/components/menu/ProviderSelectionMenu.js.map +1 -1
  130. package/dist/components/menu/ResumeSelectionMenu.d.ts +2 -0
  131. package/dist/components/menu/ResumeSelectionMenu.d.ts.map +1 -1
  132. package/dist/components/menu/ResumeSelectionMenu.js +39 -6
  133. package/dist/components/menu/ResumeSelectionMenu.js.map +1 -1
  134. package/dist/components/menu/RewindMenu.d.ts.map +1 -1
  135. package/dist/components/menu/RewindMenu.js +10 -5
  136. package/dist/components/menu/RewindMenu.js.map +1 -1
  137. package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
  138. package/dist/components/menu/SettingsSelectionMenu.js +16 -21
  139. package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
  140. package/dist/components/menu/SettingsValueSelectionMenu.d.ts.map +1 -1
  141. package/dist/components/menu/SettingsValueSelectionMenu.js +21 -25
  142. package/dist/components/menu/SettingsValueSelectionMenu.js.map +1 -1
  143. package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
  144. package/dist/components/menu/SkillSelectionMenu.js +6 -4
  145. package/dist/components/menu/SkillSelectionMenu.js.map +1 -1
  146. package/dist/components/menu/StandaloneModelPickerApp.d.ts +1 -1
  147. package/dist/components/menu/StandaloneModelPickerApp.d.ts.map +1 -1
  148. package/dist/components/menu/StandaloneModelPickerApp.js +1 -1
  149. package/dist/components/menu/StandaloneModelPickerApp.js.map +1 -1
  150. package/dist/components/menu/SubagentPoolSelectionMenu.d.ts +1 -1
  151. package/dist/components/menu/SubagentPoolSelectionMenu.d.ts.map +1 -1
  152. package/dist/components/menu/SubagentPoolSelectionMenu.js +46 -25
  153. package/dist/components/menu/SubagentPoolSelectionMenu.js.map +1 -1
  154. package/dist/components/menu/settings-value-formatter.d.ts +0 -1
  155. package/dist/components/menu/settings-value-formatter.d.ts.map +1 -1
  156. package/dist/components/menu/settings-value-formatter.js +7 -1
  157. package/dist/components/menu/settings-value-formatter.js.map +1 -1
  158. package/dist/components/message/ChatMessage.d.ts.map +1 -1
  159. package/dist/components/message/ChatMessage.js +7 -2
  160. package/dist/components/message/ChatMessage.js.map +1 -1
  161. package/dist/components/message/CommandMessage.d.ts.map +1 -1
  162. package/dist/components/message/CommandMessage.js +23 -4
  163. package/dist/components/message/CommandMessage.js.map +1 -1
  164. package/dist/components/message/MemoryRenderer.d.ts.map +1 -1
  165. package/dist/components/message/MemoryRenderer.js +11 -11
  166. package/dist/components/message/MemoryRenderer.js.map +1 -1
  167. package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
  168. package/dist/components/message/SubagentActivityMessage.js +3 -3
  169. package/dist/components/message/SubagentActivityMessage.js.map +1 -1
  170. package/dist/components/message/command-message-helpers.d.ts +8 -5
  171. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  172. package/dist/components/message/command-message-helpers.js +19 -0
  173. package/dist/components/message/command-message-helpers.js.map +1 -1
  174. package/dist/components/prompt/ApprovalPrompt.d.ts +1 -0
  175. package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
  176. package/dist/components/prompt/ApprovalPrompt.js +139 -69
  177. package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
  178. package/dist/components/prompt/ConfirmPrompt.d.ts +17 -0
  179. package/dist/components/prompt/ConfirmPrompt.d.ts.map +1 -0
  180. package/dist/components/prompt/ConfirmPrompt.js +54 -0
  181. package/dist/components/prompt/ConfirmPrompt.js.map +1 -0
  182. package/dist/components/prompt/HandoffConfirmationPrompt.d.ts.map +1 -1
  183. package/dist/components/prompt/HandoffConfirmationPrompt.js +3 -37
  184. package/dist/components/prompt/HandoffConfirmationPrompt.js.map +1 -1
  185. package/dist/components/prompt/InputSurgeConfirmationPrompt.d.ts.map +1 -1
  186. package/dist/components/prompt/InputSurgeConfirmationPrompt.js +3 -43
  187. package/dist/components/prompt/InputSurgeConfirmationPrompt.js.map +1 -1
  188. package/dist/components/prompt/LargeUncachedConfirmationPrompt.d.ts.map +1 -1
  189. package/dist/components/prompt/LargeUncachedConfirmationPrompt.js +5 -44
  190. package/dist/components/prompt/LargeUncachedConfirmationPrompt.js.map +1 -1
  191. package/dist/components/prompt/ModeSwitchConfirmationPrompt.d.ts.map +1 -1
  192. package/dist/components/prompt/ModeSwitchConfirmationPrompt.js +5 -46
  193. package/dist/components/prompt/ModeSwitchConfirmationPrompt.js.map +1 -1
  194. package/dist/components/prompt/QueuePausedPrompt.d.ts.map +1 -1
  195. package/dist/components/prompt/QueuePausedPrompt.js +16 -19
  196. package/dist/components/prompt/QueuePausedPrompt.js.map +1 -1
  197. package/dist/components/prompt/StandardModeConfirmationPrompt.d.ts.map +1 -1
  198. package/dist/components/prompt/StandardModeConfirmationPrompt.js +3 -37
  199. package/dist/components/prompt/StandardModeConfirmationPrompt.js.map +1 -1
  200. package/dist/components/theme.d.ts +5 -3
  201. package/dist/components/theme.d.ts.map +1 -1
  202. package/dist/components/theme.js +5 -3
  203. package/dist/components/theme.js.map +1 -1
  204. package/dist/context/InputContext.d.ts +1 -2
  205. package/dist/context/InputContext.d.ts.map +1 -1
  206. package/dist/context/InputContext.js +1 -1
  207. package/dist/context/InputContext.js.map +1 -1
  208. package/dist/contracts/conversation-items.d.ts +3 -1
  209. package/dist/contracts/conversation-items.d.ts.map +1 -1
  210. package/dist/contracts/conversation.d.ts +2 -2
  211. package/dist/contracts/conversation.d.ts.map +1 -1
  212. package/dist/contracts/conversation.js +0 -2
  213. package/dist/contracts/conversation.js.map +1 -1
  214. package/dist/contracts/provider-input.d.ts +1 -0
  215. package/dist/contracts/provider-input.d.ts.map +1 -1
  216. package/dist/contracts/streamed-model-turn.d.ts +2 -0
  217. package/dist/contracts/streamed-model-turn.d.ts.map +1 -1
  218. package/dist/gateway/assertion.d.ts +0 -1
  219. package/dist/gateway/assertion.d.ts.map +1 -1
  220. package/dist/gateway/assertion.js +1 -2
  221. package/dist/gateway/assertion.js.map +1 -1
  222. package/dist/gateway/gateway.d.ts +1 -2
  223. package/dist/gateway/gateway.d.ts.map +1 -1
  224. package/dist/gateway/gateway.js +1 -2
  225. package/dist/gateway/gateway.js.map +1 -1
  226. package/dist/gateway/persistence/retention.d.ts +0 -1
  227. package/dist/gateway/persistence/retention.d.ts.map +1 -1
  228. package/dist/gateway/persistence/retention.js +1 -1
  229. package/dist/gateway/persistence/retention.js.map +1 -1
  230. package/dist/gateway/persistence/session-snapshot.d.ts +0 -1
  231. package/dist/gateway/persistence/session-snapshot.d.ts.map +1 -1
  232. package/dist/gateway/persistence/session-snapshot.js +1 -1
  233. package/dist/gateway/persistence/session-snapshot.js.map +1 -1
  234. package/dist/gateway/persistence/storage.d.ts +0 -3
  235. package/dist/gateway/persistence/storage.d.ts.map +1 -1
  236. package/dist/gateway/persistence/storage.js +2 -2
  237. package/dist/gateway/persistence/storage.js.map +1 -1
  238. package/dist/gateway/runtime-factory.d.ts +0 -2
  239. package/dist/gateway/runtime-factory.d.ts.map +1 -1
  240. package/dist/gateway/runtime-factory.js +2 -2
  241. package/dist/gateway/runtime-factory.js.map +1 -1
  242. package/dist/gateway/safe-log.d.ts +0 -1
  243. package/dist/gateway/safe-log.d.ts.map +1 -1
  244. package/dist/gateway/safe-log.js +1 -4
  245. package/dist/gateway/safe-log.js.map +1 -1
  246. package/dist/gateway/settings-rpc.d.ts +2 -15
  247. package/dist/gateway/settings-rpc.d.ts.map +1 -1
  248. package/dist/gateway/settings-rpc.js +5 -5
  249. package/dist/gateway/settings-rpc.js.map +1 -1
  250. package/dist/gateway/worker-boundary.d.ts +0 -4
  251. package/dist/gateway/worker-boundary.d.ts.map +1 -1
  252. package/dist/gateway/worker-boundary.js +2 -2
  253. package/dist/gateway/worker-boundary.js.map +1 -1
  254. package/dist/hooks/path-completion-filter.d.ts +1 -1
  255. package/dist/hooks/path-completion-filter.d.ts.map +1 -1
  256. package/dist/hooks/path-completion-filter.js +1 -1
  257. package/dist/hooks/path-completion-filter.js.map +1 -1
  258. package/dist/hooks/settings-completion-logic.d.ts.map +1 -1
  259. package/dist/hooks/settings-completion-logic.js +5 -1
  260. package/dist/hooks/settings-completion-logic.js.map +1 -1
  261. package/dist/hooks/use-app-commands.d.ts +6 -7
  262. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  263. package/dist/hooks/use-app-commands.js +21 -8
  264. package/dist/hooks/use-app-commands.js.map +1 -1
  265. package/dist/hooks/use-app-keyboard-shortcuts.d.ts +2 -1
  266. package/dist/hooks/use-app-keyboard-shortcuts.d.ts.map +1 -1
  267. package/dist/hooks/use-app-keyboard-shortcuts.js +38 -1
  268. package/dist/hooks/use-app-keyboard-shortcuts.js.map +1 -1
  269. package/dist/hooks/use-conversation.d.ts +7 -2
  270. package/dist/hooks/use-conversation.d.ts.map +1 -1
  271. package/dist/hooks/use-conversation.js +39 -5
  272. package/dist/hooks/use-conversation.js.map +1 -1
  273. package/dist/hooks/use-escape-key.js +1 -1
  274. package/dist/hooks/use-escape-key.js.map +1 -1
  275. package/dist/hooks/use-first-run-setup.d.ts +0 -1
  276. package/dist/hooks/use-first-run-setup.d.ts.map +1 -1
  277. package/dist/hooks/use-first-run-setup.js +0 -2
  278. package/dist/hooks/use-first-run-setup.js.map +1 -1
  279. package/dist/hooks/use-input-history.d.ts +1 -0
  280. package/dist/hooks/use-input-history.d.ts.map +1 -1
  281. package/dist/hooks/use-input-history.js +1 -0
  282. package/dist/hooks/use-input-history.js.map +1 -1
  283. package/dist/hooks/use-resume-selection.d.ts +3 -2
  284. package/dist/hooks/use-resume-selection.d.ts.map +1 -1
  285. package/dist/hooks/use-resume-selection.js +26 -2
  286. package/dist/hooks/use-resume-selection.js.map +1 -1
  287. package/dist/hooks/use-rewind-selection.d.ts +0 -26
  288. package/dist/hooks/use-rewind-selection.d.ts.map +1 -1
  289. package/dist/hooks/use-rewind-selection.js +0 -94
  290. package/dist/hooks/use-rewind-selection.js.map +1 -1
  291. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  292. package/dist/hooks/use-settings-completion.js +2 -1
  293. package/dist/hooks/use-settings-completion.js.map +1 -1
  294. package/dist/hooks/use-skill-selection.d.ts +0 -1
  295. package/dist/hooks/use-skill-selection.d.ts.map +1 -1
  296. package/dist/hooks/use-skill-selection.js +0 -1
  297. package/dist/hooks/use-skill-selection.js.map +1 -1
  298. package/dist/hooks/use-subagent-pool-selection.d.ts +11 -1
  299. package/dist/hooks/use-subagent-pool-selection.d.ts.map +1 -1
  300. package/dist/hooks/use-subagent-pool-selection.js +26 -15
  301. package/dist/hooks/use-subagent-pool-selection.js.map +1 -1
  302. package/dist/lib/agent-chat-service.d.ts +2 -0
  303. package/dist/lib/agent-chat-service.d.ts.map +1 -1
  304. package/dist/lib/agent-chat-service.js +14 -0
  305. package/dist/lib/agent-chat-service.js.map +1 -1
  306. package/dist/lib/agent-client.d.ts +14 -2
  307. package/dist/lib/agent-client.d.ts.map +1 -1
  308. package/dist/lib/agent-client.js +62 -22
  309. package/dist/lib/agent-client.js.map +1 -1
  310. package/dist/lib/agent-configuration.d.ts +2 -0
  311. package/dist/lib/agent-configuration.d.ts.map +1 -1
  312. package/dist/lib/agent-configuration.js +3 -0
  313. package/dist/lib/agent-configuration.js.map +1 -1
  314. package/dist/lib/agent-factory.d.ts +3 -0
  315. package/dist/lib/agent-factory.d.ts.map +1 -1
  316. package/dist/lib/agent-factory.js +3 -1
  317. package/dist/lib/agent-factory.js.map +1 -1
  318. package/dist/non-interactive.d.ts +4 -2
  319. package/dist/non-interactive.d.ts.map +1 -1
  320. package/dist/non-interactive.js +27 -2
  321. package/dist/non-interactive.js.map +1 -1
  322. package/dist/prompts/durable-goal-context.d.ts +4 -0
  323. package/dist/prompts/durable-goal-context.d.ts.map +1 -0
  324. package/dist/prompts/durable-goal-context.js +24 -0
  325. package/dist/prompts/durable-goal-context.js.map +1 -0
  326. package/dist/prompts/durable-goal-context.test.ts +56 -0
  327. package/dist/prompts/durable-goal-context.ts +27 -0
  328. package/dist/prompts/memory-recall-notice.d.ts +28 -0
  329. package/dist/prompts/memory-recall-notice.d.ts.map +1 -0
  330. package/dist/prompts/memory-recall-notice.js +59 -0
  331. package/dist/prompts/memory-recall-notice.js.map +1 -0
  332. package/dist/prompts/memory-recall-notice.test.ts +50 -0
  333. package/dist/prompts/memory-recall-notice.ts +69 -0
  334. package/dist/prompts/memory.md +1 -1
  335. package/dist/prompts/prompt-constructor.test.ts +5 -4
  336. package/dist/providers/ai-sdk-streamed-model.d.ts +0 -5
  337. package/dist/providers/ai-sdk-streamed-model.d.ts.map +1 -1
  338. package/dist/providers/ai-sdk-streamed-model.js +1 -1
  339. package/dist/providers/ai-sdk-streamed-model.js.map +1 -1
  340. package/dist/providers/codex-auth.d.ts +1 -18
  341. package/dist/providers/codex-auth.d.ts.map +1 -1
  342. package/dist/providers/codex-auth.js +6 -19
  343. package/dist/providers/codex-auth.js.map +1 -1
  344. package/dist/providers/codex-compact.js +1 -1
  345. package/dist/providers/codex-compact.js.map +1 -1
  346. package/dist/providers/codex-responses-model.d.ts +1 -2
  347. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  348. package/dist/providers/codex-responses-model.js +3 -2
  349. package/dist/providers/codex-responses-model.js.map +1 -1
  350. package/dist/providers/codex-turn-converter.d.ts +1 -3
  351. package/dist/providers/codex-turn-converter.d.ts.map +1 -1
  352. package/dist/providers/codex-turn-converter.js +2 -2
  353. package/dist/providers/codex-turn-converter.js.map +1 -1
  354. package/dist/providers/codex.provider.d.ts +1 -1
  355. package/dist/providers/codex.provider.d.ts.map +1 -1
  356. package/dist/providers/codex.provider.js +1 -1
  357. package/dist/providers/codex.provider.js.map +1 -1
  358. package/dist/providers/common/openai-compatible-messages.d.ts +0 -1
  359. package/dist/providers/common/openai-compatible-messages.d.ts.map +1 -1
  360. package/dist/providers/common/openai-compatible-messages.js +0 -30
  361. package/dist/providers/common/openai-compatible-messages.js.map +1 -1
  362. package/dist/providers/common/openai-compatible-utils.d.ts +0 -8
  363. package/dist/providers/common/openai-compatible-utils.d.ts.map +1 -1
  364. package/dist/providers/common/openai-compatible-utils.js +0 -23
  365. package/dist/providers/common/openai-compatible-utils.js.map +1 -1
  366. package/dist/providers/grok-auth.d.ts +1 -33
  367. package/dist/providers/grok-auth.d.ts.map +1 -1
  368. package/dist/providers/grok-auth.js +9 -9
  369. package/dist/providers/grok-auth.js.map +1 -1
  370. package/dist/providers/grok.provider.d.ts +0 -1
  371. package/dist/providers/grok.provider.d.ts.map +1 -1
  372. package/dist/providers/grok.provider.js +1 -1
  373. package/dist/providers/grok.provider.js.map +1 -1
  374. package/dist/providers/llama-cpp.provider.d.ts +0 -1
  375. package/dist/providers/llama-cpp.provider.d.ts.map +1 -1
  376. package/dist/providers/llama-cpp.provider.js +1 -1
  377. package/dist/providers/llama-cpp.provider.js.map +1 -1
  378. package/dist/providers/oauth-account-store.d.ts +0 -11
  379. package/dist/providers/oauth-account-store.d.ts.map +1 -1
  380. package/dist/providers/oauth-account-store.js +1 -1
  381. package/dist/providers/oauth-account-store.js.map +1 -1
  382. package/dist/providers/openai-compatible-middleware.d.ts +0 -1
  383. package/dist/providers/openai-compatible-middleware.d.ts.map +1 -1
  384. package/dist/providers/openai-compatible-middleware.js +0 -17
  385. package/dist/providers/openai-compatible-middleware.js.map +1 -1
  386. package/dist/providers/openai-compatible.provider.d.ts +0 -1
  387. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  388. package/dist/providers/openai-compatible.provider.js +1 -1
  389. package/dist/providers/openai-compatible.provider.js.map +1 -1
  390. package/dist/providers/openai-request-prefix-binding.d.ts +0 -1
  391. package/dist/providers/openai-request-prefix-binding.d.ts.map +1 -1
  392. package/dist/providers/openai-request-prefix-binding.js +0 -3
  393. package/dist/providers/openai-request-prefix-binding.js.map +1 -1
  394. package/dist/providers/openai-responses-model.d.ts +1 -6
  395. package/dist/providers/openai-responses-model.d.ts.map +1 -1
  396. package/dist/providers/openai-responses-model.js +2 -1
  397. package/dist/providers/openai-responses-model.js.map +1 -1
  398. package/dist/providers/opencode-go-usage.d.ts +0 -2
  399. package/dist/providers/opencode-go-usage.d.ts.map +1 -1
  400. package/dist/providers/opencode-go-usage.js +1 -1
  401. package/dist/providers/opencode-go-usage.js.map +1 -1
  402. package/dist/providers/opencode-session.d.ts +0 -6
  403. package/dist/providers/opencode-session.d.ts.map +1 -1
  404. package/dist/providers/opencode-session.js +2 -2
  405. package/dist/providers/opencode-session.js.map +1 -1
  406. package/dist/providers/provider-opaque-compatibility.d.ts +3 -1
  407. package/dist/providers/provider-opaque-compatibility.d.ts.map +1 -1
  408. package/dist/providers/provider-opaque-compatibility.js +19 -2
  409. package/dist/providers/provider-opaque-compatibility.js.map +1 -1
  410. package/dist/providers/provider-service.d.ts +0 -2
  411. package/dist/providers/provider-service.d.ts.map +1 -1
  412. package/dist/providers/provider-service.js +1 -1
  413. package/dist/providers/provider-service.js.map +1 -1
  414. package/dist/providers/responses-websocket-sessions.d.ts +0 -1
  415. package/dist/providers/responses-websocket-sessions.d.ts.map +1 -1
  416. package/dist/providers/responses-websocket-sessions.js +1 -1
  417. package/dist/providers/responses-websocket-sessions.js.map +1 -1
  418. package/dist/providers/web-search/exa.provider.d.ts +2 -3
  419. package/dist/providers/web-search/exa.provider.d.ts.map +1 -1
  420. package/dist/providers/web-search/exa.provider.js +1 -1
  421. package/dist/providers/web-search/exa.provider.js.map +1 -1
  422. package/dist/providers/web-search/index.d.ts +1 -1
  423. package/dist/providers/web-search/index.d.ts.map +1 -1
  424. package/dist/providers/web-search/index.js +1 -1
  425. package/dist/providers/web-search/index.js.map +1 -1
  426. package/dist/providers/web-search/tavily.provider.d.ts +2 -3
  427. package/dist/providers/web-search/tavily.provider.d.ts.map +1 -1
  428. package/dist/providers/web-search/tavily.provider.js +1 -1
  429. package/dist/providers/web-search/tavily.provider.js.map +1 -1
  430. package/dist/providers/websocket-abort-race.d.ts +0 -2
  431. package/dist/providers/websocket-abort-race.d.ts.map +1 -1
  432. package/dist/providers/websocket-abort-race.js +1 -1
  433. package/dist/providers/websocket-abort-race.js.map +1 -1
  434. package/dist/services/agent-runtime/application-run-loop.d.ts +15 -3
  435. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  436. package/dist/services/agent-runtime/application-run-loop.js +224 -429
  437. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  438. package/dist/services/agent-runtime/context-compaction/index.d.ts +0 -1
  439. package/dist/services/agent-runtime/context-compaction/index.d.ts.map +1 -1
  440. package/dist/services/agent-runtime/context-compaction/index.js +1 -1
  441. package/dist/services/agent-runtime/context-compaction/index.js.map +1 -1
  442. package/dist/services/agent-runtime/generation-guard.d.ts +0 -4
  443. package/dist/services/agent-runtime/generation-guard.d.ts.map +1 -1
  444. package/dist/services/agent-runtime/generation-guard.js +2 -2
  445. package/dist/services/agent-runtime/generation-guard.js.map +1 -1
  446. package/dist/services/agent-runtime/index.d.ts +2 -3
  447. package/dist/services/agent-runtime/index.d.ts.map +1 -1
  448. package/dist/services/agent-runtime/index.js +0 -4
  449. package/dist/services/agent-runtime/index.js.map +1 -1
  450. package/dist/services/agent-runtime/model-resolver.d.ts +16 -3
  451. package/dist/services/agent-runtime/model-resolver.d.ts.map +1 -1
  452. package/dist/services/agent-runtime/model-resolver.js +37 -14
  453. package/dist/services/agent-runtime/model-resolver.js.map +1 -1
  454. package/dist/services/agent-runtime/scope-resolver.d.ts +0 -5
  455. package/dist/services/agent-runtime/scope-resolver.d.ts.map +1 -1
  456. package/dist/services/agent-runtime/scope-resolver.js +0 -7
  457. package/dist/services/agent-runtime/scope-resolver.js.map +1 -1
  458. package/dist/services/agent-runtime/tool-call-execution.d.ts +65 -0
  459. package/dist/services/agent-runtime/tool-call-execution.d.ts.map +1 -0
  460. package/dist/services/agent-runtime/tool-call-execution.js +250 -0
  461. package/dist/services/agent-runtime/tool-call-execution.js.map +1 -0
  462. package/dist/services/agent-runtime/turn-input-mailbox.d.ts +33 -0
  463. package/dist/services/agent-runtime/turn-input-mailbox.d.ts.map +1 -0
  464. package/dist/services/agent-runtime/turn-input-mailbox.js +98 -0
  465. package/dist/services/agent-runtime/turn-input-mailbox.js.map +1 -0
  466. package/dist/services/agent-stream.d.ts +2 -0
  467. package/dist/services/agent-stream.d.ts.map +1 -1
  468. package/dist/services/agent-stream.js.map +1 -1
  469. package/dist/services/approval/non-interactive-approval-policy.d.ts +0 -1
  470. package/dist/services/approval/non-interactive-approval-policy.d.ts.map +1 -1
  471. package/dist/services/approval/non-interactive-approval-policy.js +1 -1
  472. package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
  473. package/dist/services/approval/session-read-access.d.ts +0 -1
  474. package/dist/services/approval/session-read-access.d.ts.map +1 -1
  475. package/dist/services/approval/session-read-access.js +1 -1
  476. package/dist/services/approval/session-read-access.js.map +1 -1
  477. package/dist/services/approval/shell-auto-approval-evaluator.d.ts.map +1 -1
  478. package/dist/services/approval/shell-auto-approval-evaluator.js +2 -4
  479. package/dist/services/approval/shell-auto-approval-evaluator.js.map +1 -1
  480. package/dist/services/approval/shell-auto-approval-resolver.d.ts +0 -3
  481. package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
  482. package/dist/services/approval/shell-auto-approval-resolver.js +3 -7
  483. package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
  484. package/dist/services/approval/tool-approval-policy-registry.d.ts +1 -0
  485. package/dist/services/approval/tool-approval-policy-registry.d.ts.map +1 -1
  486. package/dist/services/approval/tool-approval-policy-registry.js +4 -2
  487. package/dist/services/approval/tool-approval-policy-registry.js.map +1 -1
  488. package/dist/services/control-socket/control-command.d.ts +6 -0
  489. package/dist/services/control-socket/control-command.d.ts.map +1 -0
  490. package/dist/services/control-socket/control-command.js +161 -0
  491. package/dist/services/control-socket/control-command.js.map +1 -0
  492. package/dist/services/control-socket/control-session-port.d.ts +24 -0
  493. package/dist/services/control-socket/control-session-port.d.ts.map +1 -0
  494. package/dist/services/control-socket/control-session-port.js +185 -0
  495. package/dist/services/control-socket/control-session-port.js.map +1 -0
  496. package/dist/services/control-socket/control-socket.d.ts +130 -0
  497. package/dist/services/control-socket/control-socket.d.ts.map +1 -0
  498. package/dist/services/control-socket/control-socket.js +600 -0
  499. package/dist/services/control-socket/control-socket.js.map +1 -0
  500. package/dist/services/conversation/conversation-adapter.d.ts +0 -4
  501. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  502. package/dist/services/conversation/conversation-adapter.js +7 -2
  503. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  504. package/dist/services/conversation/conversation-checkpoint-provenance.d.ts +17 -0
  505. package/dist/services/conversation/conversation-checkpoint-provenance.d.ts.map +1 -0
  506. package/dist/services/conversation/conversation-checkpoint-provenance.js +130 -0
  507. package/dist/services/conversation/conversation-checkpoint-provenance.js.map +1 -0
  508. package/dist/services/conversation/conversation-decoder.d.ts +4 -0
  509. package/dist/services/conversation/conversation-decoder.d.ts.map +1 -1
  510. package/dist/services/conversation/conversation-decoder.js +86 -2
  511. package/dist/services/conversation/conversation-decoder.js.map +1 -1
  512. package/dist/services/conversation/conversation-events.d.ts +9 -1
  513. package/dist/services/conversation/conversation-events.d.ts.map +1 -1
  514. package/dist/services/conversation/conversation-events.js +5 -0
  515. package/dist/services/conversation/conversation-events.js.map +1 -1
  516. package/dist/services/conversation/conversation-message-projection.d.ts +0 -1
  517. package/dist/services/conversation/conversation-message-projection.d.ts.map +1 -1
  518. package/dist/services/conversation/conversation-message-projection.js +4 -3
  519. package/dist/services/conversation/conversation-message-projection.js.map +1 -1
  520. package/dist/services/conversation/conversation-orchestrator.d.ts +9 -0
  521. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  522. package/dist/services/conversation/conversation-orchestrator.js +111 -37
  523. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  524. package/dist/services/conversation/conversation-persistence.d.ts +17 -7
  525. package/dist/services/conversation/conversation-persistence.d.ts.map +1 -1
  526. package/dist/services/conversation/conversation-persistence.js +92 -42
  527. package/dist/services/conversation/conversation-persistence.js.map +1 -1
  528. package/dist/services/conversation/conversation-replay.d.ts +1 -0
  529. package/dist/services/conversation/conversation-replay.d.ts.map +1 -1
  530. package/dist/services/conversation/conversation-replay.js +32 -6
  531. package/dist/services/conversation/conversation-replay.js.map +1 -1
  532. package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
  533. package/dist/services/conversation/conversation-result-builder.js +7 -1
  534. package/dist/services/conversation/conversation-result-builder.js.map +1 -1
  535. package/dist/services/conversation/conversation-runtime-factory.d.ts +2 -2
  536. package/dist/services/conversation/conversation-runtime-factory.d.ts.map +1 -1
  537. package/dist/services/conversation/conversation-service.d.ts +10 -1
  538. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  539. package/dist/services/conversation/conversation-service.js +11 -3
  540. package/dist/services/conversation/conversation-service.js.map +1 -1
  541. package/dist/services/conversation/conversation-state-projector.d.ts +0 -1
  542. package/dist/services/conversation/conversation-state-projector.d.ts.map +1 -1
  543. package/dist/services/conversation/conversation-state-projector.js +1 -1
  544. package/dist/services/conversation/conversation-state-projector.js.map +1 -1
  545. package/dist/services/conversation/conversation-state-schema.d.ts +0 -20
  546. package/dist/services/conversation/conversation-state-schema.d.ts.map +1 -1
  547. package/dist/services/conversation/conversation-state-schema.js +1 -1
  548. package/dist/services/conversation/conversation-state-schema.js.map +1 -1
  549. package/dist/services/conversation/conversation-turn-items.d.ts +0 -10
  550. package/dist/services/conversation/conversation-turn-items.d.ts.map +1 -1
  551. package/dist/services/conversation/conversation-turn-items.js +4 -13
  552. package/dist/services/conversation/conversation-turn-items.js.map +1 -1
  553. package/dist/services/conversation/durable-goal.d.ts +4 -0
  554. package/dist/services/conversation/durable-goal.d.ts.map +1 -0
  555. package/dist/services/conversation/durable-goal.js +21 -0
  556. package/dist/services/conversation/durable-goal.js.map +1 -0
  557. package/dist/services/conversation/local-checkpoint-projection.d.ts +18 -0
  558. package/dist/services/conversation/local-checkpoint-projection.d.ts.map +1 -0
  559. package/dist/services/conversation/local-checkpoint-projection.js +230 -0
  560. package/dist/services/conversation/local-checkpoint-projection.js.map +1 -0
  561. package/dist/services/conversation/recent-conversations.d.ts +35 -0
  562. package/dist/services/conversation/recent-conversations.d.ts.map +1 -0
  563. package/dist/services/conversation/recent-conversations.js +54 -0
  564. package/dist/services/conversation/recent-conversations.js.map +1 -0
  565. package/dist/services/conversation/run-item-normalizer.d.ts.map +1 -1
  566. package/dist/services/conversation/run-item-normalizer.js +7 -1
  567. package/dist/services/conversation/run-item-normalizer.js.map +1 -1
  568. package/dist/services/conversation/semantic-replay-classification.d.ts +11 -0
  569. package/dist/services/conversation/semantic-replay-classification.d.ts.map +1 -0
  570. package/dist/services/conversation/semantic-replay-classification.js +13 -0
  571. package/dist/services/conversation/semantic-replay-classification.js.map +1 -0
  572. package/dist/services/conversation/semantic-replay-projection.d.ts +20 -0
  573. package/dist/services/conversation/semantic-replay-projection.d.ts.map +1 -0
  574. package/dist/services/conversation/semantic-replay-projection.js +145 -0
  575. package/dist/services/conversation/semantic-replay-projection.js.map +1 -0
  576. package/dist/services/conversation/session-browser.d.ts +10 -2
  577. package/dist/services/conversation/session-browser.d.ts.map +1 -1
  578. package/dist/services/conversation/session-browser.js +27 -5
  579. package/dist/services/conversation/session-browser.js.map +1 -1
  580. package/dist/services/conversation/session-index/session-index-database.d.ts.map +1 -1
  581. package/dist/services/conversation/session-index/session-index-database.js +40 -28
  582. package/dist/services/conversation/session-index/session-index-database.js.map +1 -1
  583. package/dist/services/conversation/session-index/session-index-schema.d.ts +1 -2
  584. package/dist/services/conversation/session-index/session-index-schema.d.ts.map +1 -1
  585. package/dist/services/conversation/session-index/session-index-schema.js +3 -2
  586. package/dist/services/conversation/session-index/session-index-schema.js.map +1 -1
  587. package/dist/services/conversation/session-index/session-index-service.d.ts +0 -1
  588. package/dist/services/conversation/session-index/session-index-service.d.ts.map +1 -1
  589. package/dist/services/conversation/session-index/session-index-service.js +1 -1
  590. package/dist/services/conversation/session-index/session-index-service.js.map +1 -1
  591. package/dist/services/conversation/session-index/session-index-worker-client.d.ts +15 -3
  592. package/dist/services/conversation/session-index/session-index-worker-client.d.ts.map +1 -1
  593. package/dist/services/conversation/session-index/session-index-worker-client.js +32 -6
  594. package/dist/services/conversation/session-index/session-index-worker-client.js.map +1 -1
  595. package/dist/services/conversation/session-index/session-index-worker.d.ts +6 -0
  596. package/dist/services/conversation/session-index/session-index-worker.d.ts.map +1 -1
  597. package/dist/services/conversation/session-index/session-index-worker.js +14 -0
  598. package/dist/services/conversation/session-index/session-index-worker.js.map +1 -1
  599. package/dist/services/conversation/session-knowledge-candidates.d.ts +15 -0
  600. package/dist/services/conversation/session-knowledge-candidates.d.ts.map +1 -0
  601. package/dist/services/conversation/session-knowledge-candidates.js +66 -0
  602. package/dist/services/conversation/session-knowledge-candidates.js.map +1 -0
  603. package/dist/services/conversation/session-log-lifecycle.d.ts +5 -0
  604. package/dist/services/conversation/session-log-lifecycle.d.ts.map +1 -0
  605. package/dist/services/conversation/session-log-lifecycle.js +7 -0
  606. package/dist/services/conversation/session-log-lifecycle.js.map +1 -0
  607. package/dist/services/conversation-agent-client.d.ts +8 -2
  608. package/dist/services/conversation-agent-client.d.ts.map +1 -1
  609. package/dist/services/decision-shadow/decision-client.d.ts +0 -1
  610. package/dist/services/decision-shadow/decision-client.d.ts.map +1 -1
  611. package/dist/services/decision-shadow/decision-client.js +1 -1
  612. package/dist/services/decision-shadow/decision-client.js.map +1 -1
  613. package/dist/services/file-service.d.ts +0 -2
  614. package/dist/services/file-service.d.ts.map +1 -1
  615. package/dist/services/file-service.js +1 -2
  616. package/dist/services/file-service.js.map +1 -1
  617. package/dist/services/hooks/hook-contracts.d.ts +2 -4
  618. package/dist/services/hooks/hook-contracts.d.ts.map +1 -1
  619. package/dist/services/hooks/hook-contracts.js +3 -4
  620. package/dist/services/hooks/hook-contracts.js.map +1 -1
  621. package/dist/services/hooks/hook-discovery.d.ts +0 -1
  622. package/dist/services/hooks/hook-discovery.d.ts.map +1 -1
  623. package/dist/services/hooks/hook-discovery.js +0 -1
  624. package/dist/services/hooks/hook-discovery.js.map +1 -1
  625. package/dist/services/hooks/hook-editor-shim.d.ts +0 -2
  626. package/dist/services/hooks/hook-editor-shim.d.ts.map +1 -1
  627. package/dist/services/hooks/hook-editor-shim.js +2 -2
  628. package/dist/services/hooks/hook-editor-shim.js.map +1 -1
  629. package/dist/services/hooks/hook-module-loader.d.ts +0 -3
  630. package/dist/services/hooks/hook-module-loader.d.ts.map +1 -1
  631. package/dist/services/hooks/hook-module-loader.js +0 -1
  632. package/dist/services/hooks/hook-module-loader.js.map +1 -1
  633. package/dist/services/hooks/hook-registry.d.ts +0 -1
  634. package/dist/services/hooks/hook-registry.d.ts.map +1 -1
  635. package/dist/services/hooks/hook-registry.js +1 -1
  636. package/dist/services/hooks/hook-registry.js.map +1 -1
  637. package/dist/services/input-surge-guard.d.ts +0 -1
  638. package/dist/services/input-surge-guard.d.ts.map +1 -1
  639. package/dist/services/input-surge-guard.js +1 -1
  640. package/dist/services/input-surge-guard.js.map +1 -1
  641. package/dist/services/logging/conversation-log-events.d.ts +46 -1
  642. package/dist/services/logging/conversation-log-events.d.ts.map +1 -1
  643. package/dist/services/logging/conversation-log-events.js.map +1 -1
  644. package/dist/services/logging/conversation-log-writer.d.ts +3 -11
  645. package/dist/services/logging/conversation-log-writer.d.ts.map +1 -1
  646. package/dist/services/logging/conversation-log-writer.js +51 -45
  647. package/dist/services/logging/conversation-log-writer.js.map +1 -1
  648. package/dist/services/logging/conversation-logger.d.ts +4 -1
  649. package/dist/services/logging/conversation-logger.d.ts.map +1 -1
  650. package/dist/services/logging/conversation-logger.js +25 -1
  651. package/dist/services/logging/conversation-logger.js.map +1 -1
  652. package/dist/services/logging/provider-traffic.d.ts +0 -7
  653. package/dist/services/logging/provider-traffic.d.ts.map +1 -1
  654. package/dist/services/logging/provider-traffic.js +3 -3
  655. package/dist/services/logging/provider-traffic.js.map +1 -1
  656. package/dist/services/mcp/mcp-oauth-provider.d.ts +0 -2
  657. package/dist/services/mcp/mcp-oauth-provider.d.ts.map +1 -1
  658. package/dist/services/mcp/mcp-oauth-provider.js +1 -1
  659. package/dist/services/mcp/mcp-oauth-provider.js.map +1 -1
  660. package/dist/services/mcp/mcp-oauth-store.d.ts +0 -21
  661. package/dist/services/mcp/mcp-oauth-store.d.ts.map +1 -1
  662. package/dist/services/mcp/mcp-oauth-store.js +2 -2
  663. package/dist/services/mcp/mcp-oauth-store.js.map +1 -1
  664. package/dist/services/mcp/mcp-status.d.ts +0 -7
  665. package/dist/services/mcp/mcp-status.d.ts.map +1 -1
  666. package/dist/services/mcp/mcp-status.js +1 -1
  667. package/dist/services/mcp/mcp-status.js.map +1 -1
  668. package/dist/services/memory/automatic-memory-canary.d.ts +20 -0
  669. package/dist/services/memory/automatic-memory-canary.d.ts.map +1 -0
  670. package/dist/services/memory/automatic-memory-canary.js +36 -0
  671. package/dist/services/memory/automatic-memory-canary.js.map +1 -0
  672. package/dist/services/memory/distiller/path-safety.d.ts +3 -0
  673. package/dist/services/memory/distiller/path-safety.d.ts.map +1 -0
  674. package/dist/services/memory/distiller/path-safety.js +7 -0
  675. package/dist/services/memory/distiller/path-safety.js.map +1 -0
  676. package/dist/services/memory/distiller/promotion-policy.d.ts +26 -0
  677. package/dist/services/memory/distiller/promotion-policy.d.ts.map +1 -0
  678. package/dist/services/memory/distiller/promotion-policy.js +40 -0
  679. package/dist/services/memory/distiller/promotion-policy.js.map +1 -0
  680. package/dist/services/memory/distiller/secret-redaction.d.ts +3 -0
  681. package/dist/services/memory/distiller/secret-redaction.d.ts.map +1 -0
  682. package/dist/services/memory/distiller/secret-redaction.js +40 -0
  683. package/dist/services/memory/distiller/secret-redaction.js.map +1 -0
  684. package/dist/services/memory/memory-capabilities.d.ts +26 -0
  685. package/dist/services/memory/memory-capabilities.d.ts.map +1 -1
  686. package/dist/services/memory/memory-capabilities.js +95 -33
  687. package/dist/services/memory/memory-capabilities.js.map +1 -1
  688. package/dist/services/memory/memory-search.d.ts +0 -1
  689. package/dist/services/memory/memory-search.d.ts.map +1 -1
  690. package/dist/services/memory/memory-search.js +1 -1
  691. package/dist/services/memory/memory-search.js.map +1 -1
  692. package/dist/services/memory/memory-store.d.ts +24 -12
  693. package/dist/services/memory/memory-store.d.ts.map +1 -1
  694. package/dist/services/memory/memory-store.js +111 -7
  695. package/dist/services/memory/memory-store.js.map +1 -1
  696. package/dist/services/models/model-nicknames.d.ts +0 -16
  697. package/dist/services/models/model-nicknames.d.ts.map +1 -1
  698. package/dist/services/models/model-nicknames.js +1 -1
  699. package/dist/services/models/model-nicknames.js.map +1 -1
  700. package/dist/services/models/model-resolution.js +2 -2
  701. package/dist/services/models/model-resolution.js.map +1 -1
  702. package/dist/services/profiles/profile-transition.d.ts +0 -2
  703. package/dist/services/profiles/profile-transition.d.ts.map +1 -1
  704. package/dist/services/profiles/profile-transition.js +1 -1
  705. package/dist/services/profiles/profile-transition.js.map +1 -1
  706. package/dist/services/profiles/registry.d.ts +1 -11
  707. package/dist/services/profiles/registry.d.ts.map +1 -1
  708. package/dist/services/profiles/registry.js +6 -12
  709. package/dist/services/profiles/registry.js.map +1 -1
  710. package/dist/services/profiles/resolver.d.ts +1 -7
  711. package/dist/services/profiles/resolver.d.ts.map +1 -1
  712. package/dist/services/profiles/resolver.js +0 -45
  713. package/dist/services/profiles/resolver.js.map +1 -1
  714. package/dist/services/profiles/schema.d.ts +0 -950
  715. package/dist/services/profiles/schema.d.ts.map +1 -1
  716. package/dist/services/profiles/schema.js +5 -5
  717. package/dist/services/profiles/schema.js.map +1 -1
  718. package/dist/services/retry/conversation-retry-policy.d.ts +0 -5
  719. package/dist/services/retry/conversation-retry-policy.d.ts.map +1 -1
  720. package/dist/services/retry/conversation-retry-policy.js +0 -3
  721. package/dist/services/retry/conversation-retry-policy.js.map +1 -1
  722. package/dist/services/retry/retry-recovery-budget.d.ts +0 -10
  723. package/dist/services/retry/retry-recovery-budget.d.ts.map +1 -1
  724. package/dist/services/retry/retry-recovery-budget.js +1 -1
  725. package/dist/services/retry/retry-recovery-budget.js.map +1 -1
  726. package/dist/services/runtime-setting-router.d.ts +0 -1
  727. package/dist/services/runtime-setting-router.d.ts.map +1 -1
  728. package/dist/services/runtime-setting-router.js +1 -1
  729. package/dist/services/runtime-setting-router.js.map +1 -1
  730. package/dist/services/session/background-task-control.d.ts +1 -1
  731. package/dist/services/session/background-task-control.d.ts.map +1 -1
  732. package/dist/services/session/background-task-control.js +1 -1
  733. package/dist/services/session/background-task-control.js.map +1 -1
  734. package/dist/services/session/initial-input-preparer.d.ts.map +1 -1
  735. package/dist/services/session/initial-input-preparer.js +37 -1
  736. package/dist/services/session/initial-input-preparer.js.map +1 -1
  737. package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
  738. package/dist/services/session/initial-turn-recovery-handler.js +2 -1
  739. package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
  740. package/dist/services/session/pending-interaction-state.d.ts +6 -0
  741. package/dist/services/session/pending-interaction-state.d.ts.map +1 -1
  742. package/dist/services/session/pending-interaction-state.js +1 -1
  743. package/dist/services/session/pending-interaction-state.js.map +1 -1
  744. package/dist/services/session/session-client-factory.d.ts +1 -11
  745. package/dist/services/session/session-client-factory.d.ts.map +1 -1
  746. package/dist/services/session/session-client-factory.js +1 -6
  747. package/dist/services/session/session-client-factory.js.map +1 -1
  748. package/dist/services/session/session-composition.d.ts +17 -5
  749. package/dist/services/session/session-composition.d.ts.map +1 -1
  750. package/dist/services/session/session-composition.js +57 -34
  751. package/dist/services/session/session-composition.js.map +1 -1
  752. package/dist/services/session/session-input-planner.d.ts +5 -0
  753. package/dist/services/session/session-input-planner.d.ts.map +1 -1
  754. package/dist/services/session/session-input-planner.js +36 -0
  755. package/dist/services/session/session-input-planner.js.map +1 -1
  756. package/dist/services/session/session-stream-processor.d.ts.map +1 -1
  757. package/dist/services/session/session-stream-processor.js +6 -2
  758. package/dist/services/session/session-stream-processor.js.map +1 -1
  759. package/dist/services/session/turn-attempt-factory.d.ts +2 -0
  760. package/dist/services/session/turn-attempt-factory.d.ts.map +1 -1
  761. package/dist/services/session/turn-attempt-factory.js.map +1 -1
  762. package/dist/services/session/turn-attempt.d.ts +5 -0
  763. package/dist/services/session/turn-attempt.d.ts.map +1 -1
  764. package/dist/services/session/turn-attempt.js +9 -0
  765. package/dist/services/session/turn-attempt.js.map +1 -1
  766. package/dist/services/session/turn-coordinator.d.ts +5 -2
  767. package/dist/services/session/turn-coordinator.d.ts.map +1 -1
  768. package/dist/services/session/turn-coordinator.js +47 -0
  769. package/dist/services/session/turn-coordinator.js.map +1 -1
  770. package/dist/services/session/turn-workflow.d.ts +0 -3
  771. package/dist/services/session/turn-workflow.d.ts.map +1 -1
  772. package/dist/services/session/turn-workflow.js +54 -36
  773. package/dist/services/session/turn-workflow.js.map +1 -1
  774. package/dist/services/session-rollover/session-rollover-brief.d.ts +0 -1
  775. package/dist/services/session-rollover/session-rollover-brief.d.ts.map +1 -1
  776. package/dist/services/session-rollover/session-rollover-brief.js +3 -1
  777. package/dist/services/session-rollover/session-rollover-brief.js.map +1 -1
  778. package/dist/services/settings/custom-provider-normalization.d.ts +0 -1
  779. package/dist/services/settings/custom-provider-normalization.d.ts.map +1 -1
  780. package/dist/services/settings/custom-provider-normalization.js +1 -1
  781. package/dist/services/settings/custom-provider-normalization.js.map +1 -1
  782. package/dist/services/settings/setting-schema-utils.d.ts +0 -2
  783. package/dist/services/settings/setting-schema-utils.d.ts.map +1 -1
  784. package/dist/services/settings/setting-schema-utils.js +0 -11
  785. package/dist/services/settings/setting-schema-utils.js.map +1 -1
  786. package/dist/services/settings/settings-merger.d.ts +0 -4
  787. package/dist/services/settings/settings-merger.d.ts.map +1 -1
  788. package/dist/services/settings/settings-merger.js +1 -1
  789. package/dist/services/settings/settings-merger.js.map +1 -1
  790. package/dist/services/settings/settings-schema.d.ts +41 -25
  791. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  792. package/dist/services/settings/settings-schema.js +11 -5
  793. package/dist/services/settings/settings-schema.js.map +1 -1
  794. package/dist/services/settings/settings-ui-metadata.d.ts +0 -5
  795. package/dist/services/settings/settings-ui-metadata.d.ts.map +1 -1
  796. package/dist/services/settings/settings-ui-metadata.js +2 -2
  797. package/dist/services/settings/settings-ui-metadata.js.map +1 -1
  798. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +0 -1
  799. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  800. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +0 -44
  801. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  802. package/dist/services/ssh-service.d.ts +0 -23
  803. package/dist/services/ssh-service.d.ts.map +1 -1
  804. package/dist/services/ssh-service.js +1 -1
  805. package/dist/services/ssh-service.js.map +1 -1
  806. package/dist/services/subagents/role-loader.d.ts +0 -6
  807. package/dist/services/subagents/role-loader.d.ts.map +1 -1
  808. package/dist/services/subagents/role-loader.js +12 -6
  809. package/dist/services/subagents/role-loader.js.map +1 -1
  810. package/dist/services/subagents/subagent-notification-store.d.ts +0 -2
  811. package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -1
  812. package/dist/services/subagents/subagent-notification-store.js +1 -1
  813. package/dist/services/subagents/subagent-notification-store.js.map +1 -1
  814. package/dist/services/subagents/subagent-pool-config.d.ts +0 -21
  815. package/dist/services/subagents/subagent-pool-config.d.ts.map +1 -1
  816. package/dist/services/subagents/subagent-pool-config.js +2 -2
  817. package/dist/services/subagents/subagent-pool-config.js.map +1 -1
  818. package/dist/services/subagents/subagent-role-pool-selector.d.ts +5 -4
  819. package/dist/services/subagents/subagent-role-pool-selector.d.ts.map +1 -1
  820. package/dist/services/subagents/subagent-role-pool-selector.js +16 -11
  821. package/dist/services/subagents/subagent-role-pool-selector.js.map +1 -1
  822. package/dist/services/subagents/tool-policy.d.ts +0 -1
  823. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  824. package/dist/services/subagents/tool-policy.js +1 -1
  825. package/dist/services/subagents/tool-policy.js.map +1 -1
  826. package/dist/services/subagents/types.d.ts +1 -2
  827. package/dist/services/subagents/types.d.ts.map +1 -1
  828. package/dist/services/subagents/types.js +0 -1
  829. package/dist/services/subagents/types.js.map +1 -1
  830. package/dist/services/subagents/utils.d.ts +0 -3
  831. package/dist/services/subagents/utils.d.ts.map +1 -1
  832. package/dist/services/subagents/utils.js +3 -3
  833. package/dist/services/subagents/utils.js.map +1 -1
  834. package/dist/services/tool-call-arguments.d.ts +0 -1
  835. package/dist/services/tool-call-arguments.d.ts.map +1 -1
  836. package/dist/services/tool-call-arguments.js +0 -15
  837. package/dist/services/tool-call-arguments.js.map +1 -1
  838. package/dist/services/tool-execution-ledger.d.ts +0 -4
  839. package/dist/services/tool-execution-ledger.d.ts.map +1 -1
  840. package/dist/services/tool-execution-ledger.js +3 -3
  841. package/dist/services/tool-execution-ledger.js.map +1 -1
  842. package/dist/services/tool-toggles.d.ts +0 -1
  843. package/dist/services/tool-toggles.d.ts.map +1 -1
  844. package/dist/services/tool-toggles.js +0 -3
  845. package/dist/services/tool-toggles.js.map +1 -1
  846. package/dist/services/workspace/active-workspace-root.d.ts +0 -4
  847. package/dist/services/workspace/active-workspace-root.d.ts.map +1 -1
  848. package/dist/services/workspace/active-workspace-root.js +1 -1
  849. package/dist/services/workspace/active-workspace-root.js.map +1 -1
  850. package/dist/services/workspace/worktree-transition.d.ts +0 -2
  851. package/dist/services/workspace/worktree-transition.d.ts.map +1 -1
  852. package/dist/services/workspace/worktree-transition.js +1 -1
  853. package/dist/services/workspace/worktree-transition.js.map +1 -1
  854. package/dist/tools/agent/ask-user-constants.d.ts +0 -2
  855. package/dist/tools/agent/ask-user-constants.d.ts.map +1 -1
  856. package/dist/tools/agent/ask-user-constants.js +0 -2
  857. package/dist/tools/agent/ask-user-constants.js.map +1 -1
  858. package/dist/tools/file/apply-patch.d.ts +0 -4
  859. package/dist/tools/file/apply-patch.d.ts.map +1 -1
  860. package/dist/tools/file/apply-patch.js +3 -5
  861. package/dist/tools/file/apply-patch.js.map +1 -1
  862. package/dist/tools/file/glob.d.ts +1 -2
  863. package/dist/tools/file/glob.d.ts.map +1 -1
  864. package/dist/tools/file/glob.js +0 -1
  865. package/dist/tools/file/glob.js.map +1 -1
  866. package/dist/tools/file/grep.d.ts +1 -2
  867. package/dist/tools/file/grep.d.ts.map +1 -1
  868. package/dist/tools/file/grep.js +1 -3
  869. package/dist/tools/file/grep.js.map +1 -1
  870. package/dist/tools/file/search-replace.d.ts.map +1 -1
  871. package/dist/tools/file/search-replace.js +3 -4
  872. package/dist/tools/file/search-replace.js.map +1 -1
  873. package/dist/tools/memory/memory-tools.d.ts.map +1 -1
  874. package/dist/tools/memory/memory-tools.js +55 -20
  875. package/dist/tools/memory/memory-tools.js.map +1 -1
  876. package/dist/tools/session-browser/session-browser-tools.js +1 -1
  877. package/dist/tools/session-browser/session-browser-tools.js.map +1 -1
  878. package/dist/tools/session-rollover/session-rollover-tool.d.ts.map +1 -1
  879. package/dist/tools/session-rollover/session-rollover-tool.js +12 -4
  880. package/dist/tools/session-rollover/session-rollover-tool.js.map +1 -1
  881. package/dist/tools/system/run-code/index.d.ts +4 -4
  882. package/dist/tools/system/run-code/index.d.ts.map +1 -1
  883. package/dist/tools/system/run-code/index.js +1 -4
  884. package/dist/tools/system/run-code/index.js.map +1 -1
  885. package/dist/tools/system/run-code/run-code-execution.d.ts +1 -0
  886. package/dist/tools/system/run-code/run-code-execution.d.ts.map +1 -1
  887. package/dist/tools/system/run-code/run-code-execution.js.map +1 -1
  888. package/dist/tools/system/run-code/run-code-runtime-contract.d.ts +1 -0
  889. package/dist/tools/system/run-code/run-code-runtime-contract.d.ts.map +1 -1
  890. package/dist/tools/system/run-code/run-code-runtime.d.ts +0 -3
  891. package/dist/tools/system/run-code/run-code-runtime.d.ts.map +1 -1
  892. package/dist/tools/system/run-code/run-code-runtime.js +7 -6
  893. package/dist/tools/system/run-code/run-code-runtime.js.map +1 -1
  894. package/dist/tools/system/run-code/run-code.d.ts +1 -1
  895. package/dist/tools/system/run-code/run-code.d.ts.map +1 -1
  896. package/dist/tools/system/run-code/run-code.js +5 -1
  897. package/dist/tools/system/run-code/run-code.js.map +1 -1
  898. package/dist/tools/system/shell.d.ts +1 -2
  899. package/dist/tools/system/shell.d.ts.map +1 -1
  900. package/dist/tools/system/shell.js +5 -4
  901. package/dist/tools/system/shell.js.map +1 -1
  902. package/dist/tools/system/worktree.d.ts +2 -2
  903. package/dist/tools/system/worktree.d.ts.map +1 -1
  904. package/dist/tools/system/worktree.js +1 -2
  905. package/dist/tools/system/worktree.js.map +1 -1
  906. package/dist/tools/types.d.ts +1 -1
  907. package/dist/tools/types.d.ts.map +1 -1
  908. package/dist/types/message.d.ts +2 -1
  909. package/dist/types/message.d.ts.map +1 -1
  910. package/dist/types/message.js +0 -1
  911. package/dist/types/message.js.map +1 -1
  912. package/dist/types/user-turn.d.ts +6 -0
  913. package/dist/types/user-turn.d.ts.map +1 -1
  914. package/dist/types/user-turn.js +1 -0
  915. package/dist/types/user-turn.js.map +1 -1
  916. package/dist/utils/conversation/conversation-event-handler.d.ts.map +1 -1
  917. package/dist/utils/conversation/conversation-event-handler.js +11 -0
  918. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  919. package/dist/utils/conversation/conversation-utils.d.ts.map +1 -1
  920. package/dist/utils/conversation/conversation-utils.js +1 -2
  921. package/dist/utils/conversation/conversation-utils.js.map +1 -1
  922. package/dist/utils/conversation/static-commit-policy.d.ts.map +1 -1
  923. package/dist/utils/conversation/static-commit-policy.js +1 -0
  924. package/dist/utils/conversation/static-commit-policy.js.map +1 -1
  925. package/dist/utils/ink-render-options.d.ts +1 -0
  926. package/dist/utils/ink-render-options.d.ts.map +1 -1
  927. package/dist/utils/ink-render-options.js +1 -1
  928. package/dist/utils/ink-render-options.js.map +1 -1
  929. package/dist/utils/output/log-truncation.d.ts +0 -1
  930. package/dist/utils/output/log-truncation.d.ts.map +1 -1
  931. package/dist/utils/output/log-truncation.js +0 -3
  932. package/dist/utils/output/log-truncation.js.map +1 -1
  933. package/dist/utils/project-scope.d.ts +16 -0
  934. package/dist/utils/project-scope.d.ts.map +1 -0
  935. package/dist/utils/project-scope.js +62 -0
  936. package/dist/utils/project-scope.js.map +1 -0
  937. package/dist/utils/settings-command.d.ts.map +1 -1
  938. package/dist/utils/settings-command.js +5 -3
  939. package/dist/utils/settings-command.js.map +1 -1
  940. package/dist/utils/shell/sandbox/docker-host-control-grants.d.ts +0 -2
  941. package/dist/utils/shell/sandbox/docker-host-control-grants.d.ts.map +1 -1
  942. package/dist/utils/shell/sandbox/docker-host-control-grants.js +0 -1
  943. package/dist/utils/shell/sandbox/docker-host-control-grants.js.map +1 -1
  944. package/dist/utils/shell/temp-dir.d.ts +0 -1
  945. package/dist/utils/shell/temp-dir.d.ts.map +1 -1
  946. package/dist/utils/shell/temp-dir.js +0 -4
  947. package/dist/utils/shell/temp-dir.js.map +1 -1
  948. package/dist/utils/slash-command-dispatch.d.ts +1 -1
  949. package/dist/utils/slash-command-dispatch.d.ts.map +1 -1
  950. package/dist/utils/slash-command-dispatch.js +35 -3
  951. package/dist/utils/slash-command-dispatch.js.map +1 -1
  952. package/dist/utils/streaming/streaming-speed-tracker.d.ts +0 -9
  953. package/dist/utils/streaming/streaming-speed-tracker.d.ts.map +1 -1
  954. package/dist/utils/streaming/streaming-speed-tracker.js +1 -1
  955. package/dist/utils/streaming/streaming-speed-tracker.js.map +1 -1
  956. package/dist/utils/value-suggestions.d.ts +6 -0
  957. package/dist/utils/value-suggestions.d.ts.map +1 -1
  958. package/dist/utils/value-suggestions.js +23 -6
  959. package/dist/utils/value-suggestions.js.map +1 -1
  960. package/package.json +2 -3
  961. package/dist/gateway/index.d.ts +0 -22
  962. package/dist/gateway/index.d.ts.map +0 -1
  963. package/dist/gateway/index.js +0 -22
  964. package/dist/gateway/index.js.map +0 -1
  965. package/dist/providers/openrouter.d.ts +0 -2
  966. package/dist/providers/openrouter.d.ts.map +0 -1
  967. package/dist/providers/openrouter.js +0 -2
  968. package/dist/providers/openrouter.js.map +0 -1
  969. package/dist/services/agent-runtime/internal.d.ts +0 -15
  970. package/dist/services/agent-runtime/internal.d.ts.map +0 -1
  971. package/dist/services/agent-runtime/internal.js +0 -13
  972. package/dist/services/agent-runtime/internal.js.map +0 -1
  973. package/dist/services/openai-root-selector-parity-observer.d.ts +0 -53
  974. package/dist/services/openai-root-selector-parity-observer.d.ts.map +0 -1
  975. package/dist/services/openai-root-selector-parity-observer.js +0 -62
  976. package/dist/services/openai-root-selector-parity-observer.js.map +0 -1
package/dist/cli.js CHANGED
@@ -3,6 +3,7 @@ import './env-setup.js';
3
3
  import React from 'react';
4
4
  import { render } from 'ink';
5
5
  import meow from 'meow';
6
+ import { createRequire } from 'node:module';
6
7
  import App from './app.js';
7
8
  import { getInkRenderOptions } from './utils/ink-render-options.js';
8
9
  import { AgentClient } from './lib/agent-client.js';
@@ -16,10 +17,13 @@ import { HistoryService } from './services/history-service.js';
16
17
  import { SSHService } from './services/ssh-service.js';
17
18
  import { ExecutionContext } from './services/execution-context.js';
18
19
  import { resolveSSHHost } from './utils/ssh-config-parser.js';
20
+ import { resolveSettingsDirectory } from './services/settings/settings-path.js';
19
21
  import { createUsageAccumulator, formatSessionUsageBreakdown } from './utils/ai/token-usage.js';
20
22
  import { createSessionCostAccumulator, formatModelUsageBreakdown, formatUsdMicros, } from './services/cost/model-cost.js';
21
23
  import { buildProjectFolderTitle, setTerminalTitle } from './utils/output/terminal-title.js';
22
- import { generateId, collectOrphanedDeltaSidecars, getConversationsDir, getResumeCommand, loadConversationForProject, loadLastConversation, forkConversation, isConversationLocked, listConversations, deleteConversation, hasConversationContent, } from './services/conversation/conversation-persistence.js';
24
+ import { generateId, collectOrphanedDeltaSidecars, getConversationsDir, getConversationLockPath, getResumeCommand, loadConversationForProject, loadLastConversation, forkConversation, isConversationLocked, deleteConversation, hasConversationContent, } from './services/conversation/conversation-persistence.js';
25
+ import { listRecentConversations } from './services/conversation/recent-conversations.js';
26
+ import { rotateSessionLog } from './services/conversation/session-log-lifecycle.js';
23
27
  import { formatResumeList } from './utils/resume-list.js';
24
28
  import { killLiveShellChildren } from './utils/shell/execute-shell.js';
25
29
  import { createConversationLogWriter, LockConflictError } from './services/logging/conversation-log-writer.js';
@@ -42,6 +46,31 @@ import { loadMcpConfig } from './services/mcp/mcp-config.js';
42
46
  import { McpConnectionManager } from './services/mcp/mcp-connection-manager.js';
43
47
  import { McpOAuthStore } from './services/mcp/mcp-oauth-store.js';
44
48
  import { McpConfigController } from './services/mcp/mcp-config-controller.js';
49
+ import { MemoryCapabilityBuilder } from './services/memory/memory-capabilities.js';
50
+ import { AutomaticMemoryCanary } from './services/memory/automatic-memory-canary.js';
51
+ import { ControlSocketServer, isControlSocketName } from './services/control-socket/control-socket.js';
52
+ import { runControlCommand } from './services/control-socket/control-command.js';
53
+ import { createDurableGoal } from './services/conversation/durable-goal.js';
54
+ const controlArgv = [];
55
+ let controlSocketRequested = false;
56
+ let controlSocketName;
57
+ let controlSocketNameRejected = false;
58
+ for (const arg of process.argv.slice(2)) {
59
+ if (arg === '--control-socket') {
60
+ controlSocketRequested = true;
61
+ controlSocketName ??= String(process.pid);
62
+ }
63
+ else if (arg.startsWith('--control-socket=')) {
64
+ controlSocketRequested = true;
65
+ const name = arg.slice('--control-socket='.length);
66
+ controlSocketName = name;
67
+ if (!isControlSocketName(name))
68
+ controlSocketNameRejected = true;
69
+ }
70
+ else {
71
+ controlArgv.push(arg);
72
+ }
73
+ }
45
74
  const sessionUsageAccumulator = createUsageAccumulator();
46
75
  const subagentUsageAccumulator = createUsageAccumulator();
47
76
  const sessionCostAccumulator = createSessionCostAccumulator();
@@ -69,11 +98,20 @@ const printUsageOnce = () => {
69
98
  return;
70
99
  usagePrinted = true;
71
100
  printUsage();
101
+ if (effectiveSessionId && effectiveHasConversationContent && !sessionSummaryPrinted) {
102
+ sessionSummaryPrinted = true;
103
+ // Only reachable once the session id exists, after SSH setup has run.
104
+ const resumeCommand = getResumeCommand(effectiveSessionId, sshFlag, sshInfo?.remoteDir, cli.flags.sshPort);
105
+ process.stdout.write(`\nSession: ${effectiveSessionId}\nTo resume this conversation: ${resumeCommand}\n`);
106
+ }
72
107
  };
73
108
  let activeLogWriter = null;
74
109
  let activeSessionBrowser = null;
75
110
  let activeMcpManager = null;
111
+ let activeControlSocketServer = null;
76
112
  let effectiveSessionId;
113
+ let effectiveHasConversationContent = false;
114
+ let sessionSummaryPrinted = false;
77
115
  // Global Ctrl+C handler for immediate exit paths outside Ink's input handling.
78
116
  process.on('SIGINT', () => {
79
117
  if (process.stdout.isTTY) {
@@ -83,6 +121,7 @@ process.on('SIGINT', () => {
83
121
  activeLogWriter ? activeLogWriter.flush() : Promise.resolve(),
84
122
  activeSessionBrowser ? activeSessionBrowser.close() : Promise.resolve(),
85
123
  activeMcpManager ? activeMcpManager.close() : Promise.resolve(),
124
+ activeControlSocketServer ? activeControlSocketServer.close() : Promise.resolve(),
86
125
  ]).finally(() => {
87
126
  printUsageOnce();
88
127
  process.exit(130);
@@ -96,6 +135,7 @@ process.on('SIGTERM', () => {
96
135
  activeLogWriter ? activeLogWriter.flush() : Promise.resolve(),
97
136
  activeSessionBrowser ? activeSessionBrowser.close() : Promise.resolve(),
98
137
  activeMcpManager ? activeMcpManager.close() : Promise.resolve(),
138
+ activeControlSocketServer ? activeControlSocketServer.close() : Promise.resolve(),
99
139
  ]).finally(() => {
100
140
  process.exit(143);
101
141
  });
@@ -135,15 +175,36 @@ process.on('exit', () => {
135
175
  /* ignore */
136
176
  }
137
177
  });
178
+ const require = createRequire(import.meta.url);
179
+ let reportedVersion;
180
+ try {
181
+ const buildInfo = require('./build-info.json');
182
+ if (buildInfo.version)
183
+ reportedVersion = buildInfo.version;
184
+ }
185
+ catch {
186
+ // Source checkouts and older/test builds have no generated build identity.
187
+ }
138
188
  const cli = meow(`
189
+ Everyday usage
190
+ $ term2
191
+ $ term2 "explain this function"
192
+ $ term2 --resume
193
+ $ term2 --resume <conversation-id>
194
+ $ term2 --help
195
+
139
196
  Usage
140
197
  $ term2 [options] [prompt...]
141
198
  $ term2 [options] --resume [conversation-id|ls]
142
199
 
200
+ In a chat, type / to see available commands.
201
+
143
202
  Options
144
203
  -m, --model <model> Model pattern or ID, supports provider/id and optional :<thinking>
145
204
  -p, --provider <provider> Override the configured provider (e.g. openai, openrouter)
146
205
  -r, --reasoning <effort> Set reasoning effort (default, none, minimal, low, medium, high, xhigh)
206
+ --goal <text> Persist a user-authored session outcome (max 2,000 characters)
207
+ --goal-criteria <text> Optional success criteria (max 2,000 characters; requires --goal)
147
208
  -l, --lite Start in lite mode (minimal context, session-only)
148
209
  --auto-approve Allow tool execution for a non-interactive prompt
149
210
  -q, --quiet Suppress non-error diagnostics on stderr in non-interactive mode
@@ -152,15 +213,19 @@ const cli = meow(`
152
213
  --ssh <user@host> Enable SSH mode for a remote host
153
214
  --remote-dir <path> Remote working directory (required for non-lite SSH sessions)
154
215
  --ssh-port <port> SSH port (default: 22)
216
+ --control-socket[=<name>] Enable a local socket for the interactive TUI
155
217
  --grok-login Log in to Grok in a browser (OAuth) and exit
156
218
  --codex-login Log in to Codex/ChatGPT in a browser (OAuth) and exit
157
219
  --list-models [search] Print available models grouped by provider, filtered by an optional search term
158
220
  --refresh With --list-models, bypass the model catalog cache and re-fetch before listing
159
221
  -R, --resume [conversation-id|ls] Resume the last conversation, a specific ID, or list recent conversations
160
- --fork Fork the resumed conversation into a new session (requires --resume)
222
+ --fork Fork the resumed conversation into a new session (requires --resume)
161
223
  -h, --help Show help
162
224
  -v, --version Show version
163
225
 
226
+ Settings
227
+ Settings file: ${path.join(resolveSettingsDirectory(), 'settings.json')}
228
+
164
229
  Notes
165
230
  A prompt passed on the command line runs non-interactively. Tool execution is disabled by default;
166
231
  use --auto-approve to allow tools to run without interactive confirmation.
@@ -168,10 +233,10 @@ const cli = meow(`
168
233
  -m/--model with no value (bare --model/-m, or followed only by another flag) opens an
169
234
  interactive picker in a TTY session with no prompt; the same picker also opens for an
170
235
  ambiguous or unmatched pattern. Elsewhere (no TTY, --json, or a prompt on the line) it is a
171
- no-op. A value right after -m/--model is always the model, exactly as before.
236
+ no-op. If no model is selected, term2 starts with the configured default.
172
237
 
173
238
  Gateway launcher (term2 serve)
174
- Runs the private web gateway for the ChatForge BFF until SIGINT/SIGTERM.
239
+ Runs the local web gateway until SIGINT/SIGTERM.
175
240
 
176
241
  $ term2 serve --local-owner <userId> [--state-dir <dir>] [--socket <path>]
177
242
  [--listen <host:port> --tls-cert <pem> --tls-key <pem>] [--allow-remote]
@@ -196,9 +261,7 @@ const cli = meow(`
196
261
  and --auto-approve is rejected. --model is resolved against the model catalog
197
262
  non-interactively, so it needs an exact model id or <provider>/<model>.
198
263
 
199
- Examples
200
- $ term2
201
- $ term2 "explain this function"
264
+ More examples
202
265
  $ term2 --model gpt-5.4 --provider openai
203
266
  $ term2 --model
204
267
  $ term2 --lite
@@ -217,13 +280,19 @@ const cli = meow(`
217
280
  $ term2 --list-models --refresh
218
281
  $ term2 --ssh user@host --remote-dir /path/to/project
219
282
  $ term2 --ssh user@host --remote-dir /path/to/project --ssh-port 2222
283
+ $ term2 --control-socket=worker-1
284
+ $ term2 control status worker-1 --json
220
285
  `, {
286
+ ...(reportedVersion ? { version: reportedVersion } : {}),
221
287
  importMeta: import.meta,
288
+ argv: controlArgv,
222
289
  flags: {
223
290
  model: {
224
291
  type: 'string',
225
292
  alias: 'm',
226
293
  },
294
+ help: { type: 'boolean', alias: 'h', default: false },
295
+ version: { type: 'boolean', alias: 'v', default: false },
227
296
  provider: {
228
297
  type: 'string',
229
298
  alias: 'p',
@@ -232,6 +301,8 @@ const cli = meow(`
232
301
  type: 'string',
233
302
  alias: 'r',
234
303
  },
304
+ goal: { type: 'string' },
305
+ goalCriteria: { type: 'string' },
235
306
  lite: {
236
307
  type: 'boolean',
237
308
  alias: 'l',
@@ -290,7 +361,12 @@ const cli = meow(`
290
361
  default: false,
291
362
  },
292
363
  },
364
+ allowUnknownFlags: controlArgv[0] === 'control' || process.argv[2] === 'serve' || process.argv[2] === 'acp',
293
365
  });
366
+ if (cli.input[0] === 'control') {
367
+ const exitCode = await runControlCommand(controlArgv.slice(1), process.stdout, process.stderr);
368
+ process.exit(exitCode);
369
+ }
294
370
  function oauthLoginIo(providerLabel) {
295
371
  return {
296
372
  pasteInput: process.stdin.isTTY ? process.stdin : undefined,
@@ -411,7 +487,7 @@ if (resumeRequested && cli.input.length > 1) {
411
487
  process.exit(1);
412
488
  }
413
489
  if (resumeRequested && (resumeTarget === 'ls' || resumeTarget === 'list')) {
414
- const conversations = listConversations(resumeProjectPath, expectedSshHost).slice(0, 10);
490
+ const conversations = await listRecentConversations(resumeProjectPath, expectedSshHost, 10);
415
491
  const formatted = formatResumeList(conversations);
416
492
  console.log(formatted);
417
493
  process.exit(0);
@@ -422,6 +498,18 @@ if (forkRequested && !resumeRequested) {
422
498
  }
423
499
  const positionalPrompt = resumeRequested ? '' : cli.input.join(' ').trim();
424
500
  const hasPositionalPrompt = positionalPrompt.length > 0;
501
+ let launchGoal;
502
+ try {
503
+ if (cli.flags.goalCriteria !== undefined && cli.flags.goal === undefined) {
504
+ throw new Error('--goal-criteria requires --goal.');
505
+ }
506
+ if (cli.flags.goal !== undefined)
507
+ launchGoal = createDurableGoal(cli.flags.goal, cli.flags.goalCriteria);
508
+ }
509
+ catch (error) {
510
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
511
+ process.exit(1);
512
+ }
425
513
  // If the user passed an explicit empty prompt (e.g. `term2 ""`), show help.
426
514
  if (!resumeRequested && cli.input.length > 0 && !hasPositionalPrompt) {
427
515
  cli.showHelp(0);
@@ -493,6 +581,7 @@ if (resumeRequested) {
493
581
  }
494
582
  if (result.status === 'project_mismatch') {
495
583
  console.error(`Error: Conversation ${resumeTarget} belongs to a different project path (${result.conversation.projectPath ?? 'unknown'}).`);
584
+ console.error(`Resume it from that project directory with: term2 --resume ${resumeTarget}`);
496
585
  console.error(`Current project path: ${resumeProjectPath ?? 'unknown'}`);
497
586
  if (result.conversation.sshHost || expectedSshHost) {
498
587
  console.error(`Conversation SSH Host: ${result.conversation.sshHost ?? 'none'}`);
@@ -550,9 +639,6 @@ if (resumedConversation) {
550
639
  };
551
640
  }
552
641
  }
553
- if (modelFlag) {
554
- cliOverrides.agent = { ...cliOverrides.agent, model: modelFlag };
555
- }
556
642
  if (providerFlag) {
557
643
  cliOverrides.agent = { ...cliOverrides.agent, provider: providerFlag };
558
644
  }
@@ -592,12 +678,12 @@ if (modelFlagGivenWithoutValue && canUseInteractiveModelPicker) {
592
678
  const { runModelPickerHost } = await import('./services/models/model-picker-host.js');
593
679
  const picked = await runModelPickerHost({ settingsService: settings, loggingService: logger });
594
680
  if (picked.status === 'cancelled') {
595
- console.error('Cancelled.');
596
- process.exit(1);
681
+ // Escape keeps the configured (or resumed) model and continues startup.
682
+ }
683
+ else {
684
+ settings.set('agent.model', picked.selection.modelId, { persist: false });
685
+ settings.set('agent.provider', picked.selection.provider, { persist: false });
597
686
  }
598
- // Same session-only override contract as the --model <pattern> path below.
599
- settings.set('agent.model', picked.selection.modelId, { persist: false });
600
- settings.set('agent.provider', picked.selection.provider, { persist: false });
601
687
  }
602
688
  if (modelFlag) {
603
689
  const { resolveModelFlag } = await import('./services/models/model-resolution.js');
@@ -627,24 +713,29 @@ if (modelFlag) {
627
713
  process.exit(1);
628
714
  }
629
715
  if (resolution.status === 'cancelled') {
630
- console.error('Cancelled.');
631
- process.exit(1);
632
- }
633
- // Surfaces provider catalogs that failed to load while resolution still
634
- // proceeded, so a partial outage never silently narrows what was matched.
635
- if ('warnings' in resolution && resolution.warnings) {
636
- for (const warning of resolution.warnings) {
637
- console.error(warning);
716
+ if (!canUseInteractiveModelPicker) {
717
+ console.error('Cancelled.');
718
+ process.exit(1);
638
719
  }
720
+ // Escape returns to the configured default model instead of aborting startup.
639
721
  }
640
- // --model is a per-session override like every other CLI flag; it must not
641
- // rewrite the user's persisted defaults (set() persists by default).
642
- settings.set('agent.model', resolution.modelId, { persist: false });
643
- if (resolution.provider) {
644
- settings.set('agent.provider', resolution.provider, { persist: false });
645
- }
646
- if (resolution.reasoningEffort && !validatedReasoningEffort) {
647
- settings.set('agent.reasoningEffort', resolution.reasoningEffort, { persist: false });
722
+ else {
723
+ // Surfaces provider catalogs that failed to load while resolution still
724
+ // proceeded, so a partial outage never silently narrows what was matched.
725
+ if ('warnings' in resolution && resolution.warnings) {
726
+ for (const warning of resolution.warnings) {
727
+ console.error(warning);
728
+ }
729
+ }
730
+ // --model is a per-session override like every other CLI flag; it must not
731
+ // rewrite the user's persisted defaults (set() persists by default).
732
+ settings.set('agent.model', resolution.modelId, { persist: false });
733
+ if (resolution.provider) {
734
+ settings.set('agent.provider', resolution.provider, { persist: false });
735
+ }
736
+ if (resolution.reasoningEffort && !validatedReasoningEffort) {
737
+ settings.set('agent.reasoningEffort', resolution.reasoningEffort, { persist: false });
738
+ }
648
739
  }
649
740
  }
650
741
  // Fresh sessions honor --lite/non-interactive defaults. Resumed sessions keep
@@ -842,6 +933,9 @@ const localHookRuntime = createRootHookRuntime({
842
933
  });
843
934
  const { hookService } = localHookRuntime;
844
935
  await hookService.initialize();
936
+ // Shared by the owned root client and the interactive goal command callback.
937
+ // Mutations become visible to later provider requests only after the event append succeeds.
938
+ const currentGoalState = { current: resumedConversation?.goal };
845
939
  const sessionClientFactory = createOwnedSessionClientFactory(settings, (_sessionId, toolOwnership, postExecutePauseCapability, access, continuationProjectionMode, _continuity, requestCapture, toolLifecycle, backgroundShellRegistry, allowBackgroundShell, backgroundShellOutput, allowAskUser) => {
846
940
  const agentClient = new AgentClient({
847
941
  model: settings.get('agent.model'),
@@ -851,6 +945,7 @@ const sessionClientFactory = createOwnedSessionClientFactory(settings, (_session
851
945
  deps: {
852
946
  logger: logger,
853
947
  settings: settings,
948
+ getGoal: () => currentGoalState.current,
854
949
  executionContext: executionContext,
855
950
  sessionContextService,
856
951
  skillsService,
@@ -886,6 +981,10 @@ if (hasPositionalPrompt) {
886
981
  hookLifecycle: hookService,
887
982
  mcpAllowlist: mcpConfig.nonInteractiveAllow,
888
983
  mcpToolSource: mcpManager,
984
+ initialGoal: launchGoal,
985
+ onGoalPersisted: (goal) => {
986
+ currentGoalState.current = goal;
987
+ },
889
988
  });
890
989
  process.exit(exitCode);
891
990
  }
@@ -895,7 +994,6 @@ effectiveSessionId = generateId();
895
994
  let effectiveCreatedAt = new Date().toISOString();
896
995
  let initialMessages = [];
897
996
  let restoredStaticMessageIds = [];
898
- let effectiveHasConversationContent = false;
899
997
  if (resumedConversation) {
900
998
  effectiveSessionId = resumedConversation.id;
901
999
  effectiveCreatedAt = resumedConversation.createdAt;
@@ -925,7 +1023,7 @@ if (!forkRequested) {
925
1023
  const lockInfo = isConversationLocked(effectiveSessionId);
926
1024
  if (lockInfo !== null) {
927
1025
  if (lockInfo.status === 'corrupt') {
928
- console.error(`Conversation ${effectiveSessionId} has a corrupt lockfile.\n` +
1026
+ console.error(`Conversation ${effectiveSessionId} has a corrupt lockfile at ${getConversationLockPath(effectiveSessionId)}.\n` +
929
1027
  `- If another terminal still has it open, close that one first.\n` +
930
1028
  `- Otherwise delete the lockfile manually, or fork into a new\n` +
931
1029
  ` conversation that branches from the same state:\n` +
@@ -951,6 +1049,13 @@ if (!forkRequested) {
951
1049
  }
952
1050
  const conversationService = new ConversationService({
953
1051
  sessionClientFactory,
1052
+ ...(process.env.TERM2_AUTOMATIC_MEMORY_CANARY === '1' &&
1053
+ settings.get('memory.enabled') &&
1054
+ !executionContext.isRemote()
1055
+ ? {
1056
+ automaticMemory: new AutomaticMemoryCanary(new MemoryCapabilityBuilder(settings).projectStore(executionContext.getCwd())),
1057
+ }
1058
+ : {}),
954
1059
  sessionId: effectiveSessionId,
955
1060
  sessionStartedAt: effectiveCreatedAt,
956
1061
  deps: {
@@ -992,7 +1097,10 @@ const logWriterDir = getConversationsDir();
992
1097
  collectOrphanedDeltaSidecars();
993
1098
  const logWriter = createConversationLogWriter({ sessionId: effectiveSessionId, dir: logWriterDir, logger });
994
1099
  function buildInitMeta(id, createdAt, rolloverFrom) {
995
- const cwd = executionContext?.getCwd();
1100
+ // Persist under the session's home workspace, the same scope SessionBrowser
1101
+ // and --resume read from. The live cwd moves into a worktree during work, so
1102
+ // a rollover or /clear there used to hide the successor from its own scope.
1103
+ const cwd = executionContext?.getHomeWorkspace();
996
1104
  const persistedRolloverFrom = rolloverFrom ?? (resumedConversation?.id === id ? resumedConversation.rolloverFrom : undefined);
997
1105
  const activeProfileId = settings.get('app.activeProfileId');
998
1106
  return {
@@ -1024,6 +1132,17 @@ catch (err) {
1024
1132
  }
1025
1133
  throw err;
1026
1134
  }
1135
+ if (launchGoal) {
1136
+ try {
1137
+ logWriter.append({ type: 'goal_changed', version: 1, goal: launchGoal });
1138
+ currentGoalState.current = launchGoal;
1139
+ }
1140
+ catch (error) {
1141
+ console.error(`Unable to persist requested goal: ${error instanceof Error ? error.message : String(error)}`);
1142
+ await logWriter.close().catch(() => undefined);
1143
+ process.exit(1);
1144
+ }
1145
+ }
1027
1146
  activeLogWriter = logWriter;
1028
1147
  conversationService.setLogSink((event) => logWriter.append(event));
1029
1148
  // Persist agent-affecting settings changes as they happen.
@@ -1038,18 +1157,64 @@ import { InputProvider } from './context/InputContext.js';
1038
1157
  // natively (node_modules/ink/build/write-synchronized.js). Re-wrapping each
1039
1158
  // individual write() breaks that frame-level atomicity and makes the terminal
1040
1159
  // paint blank/partial intermediate frames — visible flicker while streaming.
1160
+ if (!hasPositionalPrompt && (!nodeStdin.isTTY || !nodeStdout.isTTY)) {
1161
+ console.error('term2 needs an interactive terminal; for one-shot use: term2 "<prompt>"');
1162
+ process.exit(1);
1163
+ }
1164
+ let controlStartupNotice;
1165
+ let controlSocket;
1166
+ if (controlSocketRequested) {
1167
+ if (controlSocketNameRejected || !controlSocketName) {
1168
+ controlStartupNotice = `Control socket name rejected: ${controlSocketName ?? ''}`;
1169
+ }
1170
+ else {
1171
+ try {
1172
+ controlSocket = new ControlSocketServer({
1173
+ name: controlSocketName,
1174
+ sessionId: () => effectiveSessionId ?? conversationService.sessionId,
1175
+ });
1176
+ await controlSocket.listen();
1177
+ activeControlSocketServer = controlSocket;
1178
+ controlStartupNotice = `Control socket on: ${controlSocket.name} (pid ${process.pid})`;
1179
+ }
1180
+ catch (error) {
1181
+ const reason = error instanceof Error ? error.message : String(error);
1182
+ controlStartupNotice = `Control socket off: ${reason}`;
1183
+ if (controlSocket)
1184
+ await controlSocket.close().catch(() => undefined);
1185
+ controlSocket = undefined;
1186
+ }
1187
+ }
1188
+ }
1041
1189
  const { waitUntilExit } = render((React.createElement(InputProvider, null,
1042
- React.createElement(App, { conversationService: conversationService, settingsService: settings, historyService: history, loggingService: logger, skillsService: skillsService, sshInfo: sshInfo, sshService: sshService, usageAccumulator: sessionUsageAccumulator, subagentUsageAccumulator: subagentUsageAccumulator, costAccumulator: sessionCostAccumulator, onPrintUsage: printUsage, onExitUsage: printUsageOnce, sessionId: effectiveSessionId, initialMessages: initialMessages, restoredStaticMessageIds: restoredStaticMessageIds, logWriter: logWriter, onRotateWriter: (newId, createdAt, rolloverFrom) => {
1043
- logWriter.append({ type: 'session_cleared' });
1044
- logWriter.rotate(newId, buildInitMeta(newId, createdAt ?? new Date().toISOString(), rolloverFrom));
1190
+ React.createElement(App, { conversationService: conversationService, controlSocket: controlSocket, controlStartupNotice: controlStartupNotice, controlSessionMetadata: () => ({
1191
+ workspaceRoot: executionContext?.getHomeWorkspace() ?? null,
1192
+ version: String(cli.pkg.version ?? ''),
1193
+ createdAt: effectiveCreatedAt,
1194
+ logPath: path.join(logWriterDir, `${effectiveSessionId ?? conversationService.sessionId}.jsonl`),
1195
+ }), settingsService: settings, historyService: history, loggingService: logger, skillsService: skillsService, sshInfo: sshInfo, sshService: sshService, usageAccumulator: sessionUsageAccumulator, subagentUsageAccumulator: subagentUsageAccumulator, costAccumulator: sessionCostAccumulator, onPrintUsage: printUsage, onExitUsage: printUsageOnce, sessionId: effectiveSessionId, initialMessages: initialMessages, initialGoal: launchGoal ?? resumedConversation?.goal, appendGoal: (goal) => {
1196
+ logWriter.append({ type: 'goal_changed', version: 1, goal });
1197
+ currentGoalState.current = goal;
1198
+ }, onGoalRestore: (goal) => {
1199
+ currentGoalState.current = goal;
1200
+ }, restoredStaticMessageIds: restoredStaticMessageIds, logWriter: logWriter, onRotateWriter: (newId, createdAt, rolloverFrom, rolloverGoal) => {
1201
+ rotateSessionLog(logWriter, newId, buildInitMeta(newId, createdAt ?? new Date().toISOString(), rolloverFrom), rolloverGoal);
1202
+ if (rolloverFrom && rolloverGoal) {
1203
+ currentGoalState.current = rolloverGoal;
1204
+ }
1045
1205
  effectiveHasConversationContent = false;
1046
1206
  }, generateId: generateId, onSessionIdChange: (newId, createdAt) => {
1047
1207
  effectiveSessionId = newId;
1048
1208
  effectiveCreatedAt = createdAt;
1209
+ controlSocket?.refreshAdvertisement();
1049
1210
  }, onHasConversationContent: (hasContent) => {
1050
1211
  effectiveHasConversationContent = hasContent;
1051
1212
  }, terminalTitleBase: terminalTitleBase, mcpManager: mcpManager, mcpOAuthStore: mcpOAuthStore, mcpConfigController: mcpConfigController, mcpStartupNotices: mcpStartupNotices, mcpUserConfigPath: mcpConfig.userConfigPath }))), getInkRenderOptions());
1052
1213
  await waitUntilExit();
1214
+ if (controlSocket) {
1215
+ await controlSocket.close();
1216
+ activeControlSocketServer = null;
1217
+ }
1053
1218
  if (conversationService.hookEvents) {
1054
1219
  await hookService.emit(conversationService.hookEvents.create('session.end', {
1055
1220
  reason: 'normal',
@@ -1062,10 +1227,6 @@ await sessionBrowser.close();
1062
1227
  activeSessionBrowser = null;
1063
1228
  await logWriter.close();
1064
1229
  activeLogWriter = null;
1065
- const resumeCmd = getResumeCommand(effectiveSessionId, sshFlag, sshInfo?.remoteDir, cli.flags.sshPort);
1066
1230
  printUsageOnce();
1067
- if (effectiveHasConversationContent) {
1068
- console.log(`\nTo resume this conversation: ${resumeCmd}`);
1069
- }
1070
1231
  process.exit(0);
1071
1232
  //# sourceMappingURL=cli.js.map