pulseed 0.5.2 → 0.5.4

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 (824) hide show
  1. package/dist/base/state/state-manager-goal-state.d.ts +40 -0
  2. package/dist/base/state/state-manager-goal-state.d.ts.map +1 -0
  3. package/dist/base/state/state-manager-goal-state.js +235 -0
  4. package/dist/base/state/state-manager-goal-state.js.map +1 -0
  5. package/dist/base/state/state-manager.d.ts +0 -5
  6. package/dist/base/state/state-manager.d.ts.map +1 -1
  7. package/dist/base/state/state-manager.js +27 -273
  8. package/dist/base/state/state-manager.js.map +1 -1
  9. package/dist/base/types/goal-activation.d.ts +25 -0
  10. package/dist/base/types/goal-activation.d.ts.map +1 -0
  11. package/dist/base/types/goal-activation.js +9 -0
  12. package/dist/base/types/goal-activation.js.map +1 -0
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/interface/chat/chat-event-state.d.ts +10 -0
  18. package/dist/interface/chat/chat-event-state.d.ts.map +1 -1
  19. package/dist/interface/chat/chat-event-state.js +184 -9
  20. package/dist/interface/chat/chat-event-state.js.map +1 -1
  21. package/dist/interface/chat/chat-events.d.ts +3 -1
  22. package/dist/interface/chat/chat-events.d.ts.map +1 -1
  23. package/dist/interface/chat/chat-history.d.ts +129 -0
  24. package/dist/interface/chat/chat-history.d.ts.map +1 -1
  25. package/dist/interface/chat/chat-history.js +135 -0
  26. package/dist/interface/chat/chat-history.js.map +1 -1
  27. package/dist/interface/chat/chat-runner-command-helpers.d.ts +50 -0
  28. package/dist/interface/chat/chat-runner-command-helpers.d.ts.map +1 -0
  29. package/dist/interface/chat/chat-runner-command-helpers.js +189 -0
  30. package/dist/interface/chat/chat-runner-command-helpers.js.map +1 -0
  31. package/dist/interface/chat/chat-runner-commands.d.ts +76 -0
  32. package/dist/interface/chat/chat-runner-commands.d.ts.map +1 -0
  33. package/dist/interface/chat/chat-runner-commands.js +814 -0
  34. package/dist/interface/chat/chat-runner-commands.js.map +1 -0
  35. package/dist/interface/chat/chat-runner-event-bridge.d.ts +53 -0
  36. package/dist/interface/chat/chat-runner-event-bridge.d.ts.map +1 -0
  37. package/dist/interface/chat/chat-runner-event-bridge.js +311 -0
  38. package/dist/interface/chat/chat-runner-event-bridge.js.map +1 -0
  39. package/dist/interface/chat/chat-runner-routes.d.ts +67 -0
  40. package/dist/interface/chat/chat-runner-routes.d.ts.map +1 -0
  41. package/dist/interface/chat/chat-runner-routes.js +594 -0
  42. package/dist/interface/chat/chat-runner-routes.js.map +1 -0
  43. package/dist/interface/chat/chat-runner-runtime.d.ts +37 -0
  44. package/dist/interface/chat/chat-runner-runtime.d.ts.map +1 -0
  45. package/dist/interface/chat/chat-runner-runtime.js +236 -0
  46. package/dist/interface/chat/chat-runner-runtime.js.map +1 -0
  47. package/dist/interface/chat/chat-runner-state.d.ts +20 -0
  48. package/dist/interface/chat/chat-runner-state.d.ts.map +1 -0
  49. package/dist/interface/chat/chat-runner-state.js +157 -0
  50. package/dist/interface/chat/chat-runner-state.js.map +1 -0
  51. package/dist/interface/chat/chat-runner-support.d.ts +15 -0
  52. package/dist/interface/chat/chat-runner-support.d.ts.map +1 -0
  53. package/dist/interface/chat/chat-runner-support.js +116 -0
  54. package/dist/interface/chat/chat-runner-support.js.map +1 -0
  55. package/dist/interface/chat/chat-runner.d.ts +13 -133
  56. package/dist/interface/chat/chat-runner.d.ts.map +1 -1
  57. package/dist/interface/chat/chat-runner.js +242 -1974
  58. package/dist/interface/chat/chat-runner.js.map +1 -1
  59. package/dist/interface/chat/chat-session-store.d.ts +32 -0
  60. package/dist/interface/chat/chat-session-store.d.ts.map +1 -1
  61. package/dist/interface/chat/chat-session-store.js +100 -10
  62. package/dist/interface/chat/chat-session-store.js.map +1 -1
  63. package/dist/interface/chat/chat-verifier.d.ts +3 -1
  64. package/dist/interface/chat/chat-verifier.d.ts.map +1 -1
  65. package/dist/interface/chat/chat-verifier.js +2 -2
  66. package/dist/interface/chat/chat-verifier.js.map +1 -1
  67. package/dist/interface/chat/cross-platform-session.d.ts +1 -0
  68. package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
  69. package/dist/interface/chat/cross-platform-session.js +23 -2
  70. package/dist/interface/chat/cross-platform-session.js.map +1 -1
  71. package/dist/interface/chat/event-subscriber.d.ts.map +1 -1
  72. package/dist/interface/chat/event-subscriber.js +41 -0
  73. package/dist/interface/chat/event-subscriber.js.map +1 -1
  74. package/dist/interface/chat/failure-recovery.d.ts +11 -0
  75. package/dist/interface/chat/failure-recovery.d.ts.map +1 -0
  76. package/dist/interface/chat/failure-recovery.js +115 -0
  77. package/dist/interface/chat/failure-recovery.js.map +1 -0
  78. package/dist/interface/chat/ingress-router.d.ts +0 -16
  79. package/dist/interface/chat/ingress-router.d.ts.map +1 -1
  80. package/dist/interface/chat/ingress-router.js +12 -51
  81. package/dist/interface/chat/ingress-router.js.map +1 -1
  82. package/dist/interface/chat/tend-command.d.ts +8 -0
  83. package/dist/interface/chat/tend-command.d.ts.map +1 -1
  84. package/dist/interface/chat/tend-command.js +82 -4
  85. package/dist/interface/chat/tend-command.js.map +1 -1
  86. package/dist/interface/cli/cli-command-registry.d.ts.map +1 -1
  87. package/dist/interface/cli/cli-command-registry.js +4 -0
  88. package/dist/interface/cli/cli-command-registry.js.map +1 -1
  89. package/dist/interface/cli/commands/daemon-shared.d.ts +32 -0
  90. package/dist/interface/cli/commands/daemon-shared.d.ts.map +1 -0
  91. package/dist/interface/cli/commands/daemon-shared.js +120 -0
  92. package/dist/interface/cli/commands/daemon-shared.js.map +1 -0
  93. package/dist/interface/cli/commands/daemon.d.ts +2 -2
  94. package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
  95. package/dist/interface/cli/commands/daemon.js +4 -120
  96. package/dist/interface/cli/commands/daemon.js.map +1 -1
  97. package/dist/interface/cli/commands/runtime.d.ts +3 -0
  98. package/dist/interface/cli/commands/runtime.d.ts.map +1 -0
  99. package/dist/interface/cli/commands/runtime.js +231 -0
  100. package/dist/interface/cli/commands/runtime.js.map +1 -0
  101. package/dist/interface/cli/commands/schedule/history.d.ts.map +1 -1
  102. package/dist/interface/cli/commands/schedule/history.js +5 -1
  103. package/dist/interface/cli/commands/schedule/history.js.map +1 -1
  104. package/dist/interface/cli/commands/schedule.js +34 -4
  105. package/dist/interface/cli/commands/schedule.js.map +1 -1
  106. package/dist/interface/cli/utils.d.ts.map +1 -1
  107. package/dist/interface/cli/utils.js +4 -0
  108. package/dist/interface/cli/utils.js.map +1 -1
  109. package/dist/interface/tui/app.d.ts.map +1 -1
  110. package/dist/interface/tui/app.js +35 -1
  111. package/dist/interface/tui/app.js.map +1 -1
  112. package/dist/interface/tui/chat/scroll.d.ts +3 -0
  113. package/dist/interface/tui/chat/scroll.d.ts.map +1 -1
  114. package/dist/interface/tui/chat/scroll.js +15 -0
  115. package/dist/interface/tui/chat/scroll.js.map +1 -1
  116. package/dist/interface/tui/chat/suggestions.d.ts.map +1 -1
  117. package/dist/interface/tui/chat/suggestions.js +118 -4
  118. package/dist/interface/tui/chat/suggestions.js.map +1 -1
  119. package/dist/interface/tui/chat/types.d.ts +1 -1
  120. package/dist/interface/tui/chat/types.d.ts.map +1 -1
  121. package/dist/interface/tui/chat/viewport.d.ts.map +1 -1
  122. package/dist/interface/tui/chat/viewport.js +8 -2
  123. package/dist/interface/tui/chat/viewport.js.map +1 -1
  124. package/dist/interface/tui/chat-surface.d.ts +2 -0
  125. package/dist/interface/tui/chat-surface.d.ts.map +1 -1
  126. package/dist/interface/tui/chat-surface.js +11 -0
  127. package/dist/interface/tui/chat-surface.js.map +1 -1
  128. package/dist/interface/tui/chat.d.ts.map +1 -1
  129. package/dist/interface/tui/chat.js +15 -7
  130. package/dist/interface/tui/chat.js.map +1 -1
  131. package/dist/interface/tui/clipboard.d.ts +6 -1
  132. package/dist/interface/tui/clipboard.d.ts.map +1 -1
  133. package/dist/interface/tui/clipboard.js +24 -5
  134. package/dist/interface/tui/clipboard.js.map +1 -1
  135. package/dist/interface/tui/entry-approval.d.ts +8 -0
  136. package/dist/interface/tui/entry-approval.d.ts.map +1 -0
  137. package/dist/interface/tui/entry-approval.js +59 -0
  138. package/dist/interface/tui/entry-approval.js.map +1 -0
  139. package/dist/interface/tui/entry-daemon.d.ts +12 -0
  140. package/dist/interface/tui/entry-daemon.d.ts.map +1 -0
  141. package/dist/interface/tui/entry-daemon.js +74 -0
  142. package/dist/interface/tui/entry-daemon.js.map +1 -0
  143. package/dist/interface/tui/entry-deps.d.ts +22 -0
  144. package/dist/interface/tui/entry-deps.d.ts.map +1 -0
  145. package/dist/interface/tui/entry-deps.js +409 -0
  146. package/dist/interface/tui/entry-deps.js.map +1 -0
  147. package/dist/interface/tui/entry.d.ts +2 -4
  148. package/dist/interface/tui/entry.d.ts.map +1 -1
  149. package/dist/interface/tui/entry.js +15 -550
  150. package/dist/interface/tui/entry.js.map +1 -1
  151. package/dist/interface/tui/flicker/MouseTracking.d.ts +1 -1
  152. package/dist/interface/tui/flicker/MouseTracking.d.ts.map +1 -1
  153. package/dist/interface/tui/flicker/MouseTracking.js +8 -4
  154. package/dist/interface/tui/flicker/MouseTracking.js.map +1 -1
  155. package/dist/interface/tui/fullscreen-chat-render.d.ts +127 -0
  156. package/dist/interface/tui/fullscreen-chat-render.d.ts.map +1 -0
  157. package/dist/interface/tui/fullscreen-chat-render.js +667 -0
  158. package/dist/interface/tui/fullscreen-chat-render.js.map +1 -0
  159. package/dist/interface/tui/fullscreen-chat.d.ts +1 -29
  160. package/dist/interface/tui/fullscreen-chat.d.ts.map +1 -1
  161. package/dist/interface/tui/fullscreen-chat.js +306 -411
  162. package/dist/interface/tui/fullscreen-chat.js.map +1 -1
  163. package/dist/interface/tui/help-overlay.d.ts.map +1 -1
  164. package/dist/interface/tui/help-overlay.js +1 -1
  165. package/dist/interface/tui/help-overlay.js.map +1 -1
  166. package/dist/interface/tui/intent-recognizer.js +2 -2
  167. package/dist/interface/tui/intent-recognizer.js.map +1 -1
  168. package/dist/interface/tui/markdown-renderer.d.ts.map +1 -1
  169. package/dist/interface/tui/markdown-renderer.js +40 -12
  170. package/dist/interface/tui/markdown-renderer.js.map +1 -1
  171. package/dist/interface/tui/test-entry.js +1 -1
  172. package/dist/interface/tui/test-entry.js.map +1 -1
  173. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts.map +1 -1
  174. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js +1 -0
  175. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js.map +1 -1
  176. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts.map +1 -1
  177. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js +35 -13
  178. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js.map +1 -1
  179. package/dist/orchestrator/execution/agent-loop/agent-loop-dogfood-benchmark.d.ts.map +1 -1
  180. package/dist/orchestrator/execution/agent-loop/agent-loop-dogfood-benchmark.js +7 -4
  181. package/dist/orchestrator/execution/agent-loop/agent-loop-dogfood-benchmark.js.map +1 -1
  182. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.d.ts.map +1 -1
  183. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.js +2 -1
  184. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.js.map +1 -1
  185. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts +2 -0
  186. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts.map +1 -1
  187. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js +31 -0
  188. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js.map +1 -1
  189. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts +1 -0
  190. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts.map +1 -1
  191. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.js.map +1 -1
  192. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts +1 -0
  193. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts.map +1 -1
  194. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js +42 -2
  195. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js.map +1 -1
  196. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts +1 -0
  197. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -1
  198. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +3 -1
  199. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -1
  200. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts +19 -0
  201. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts.map +1 -1
  202. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js +164 -14
  203. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js.map +1 -1
  204. package/dist/orchestrator/execution/agent-loop/index.d.ts +1 -0
  205. package/dist/orchestrator/execution/agent-loop/index.d.ts.map +1 -1
  206. package/dist/orchestrator/execution/agent-loop/index.js +1 -0
  207. package/dist/orchestrator/execution/agent-loop/index.js.map +1 -1
  208. package/dist/orchestrator/execution/agent-loop/kaggle-training-benchmark.d.ts +34 -0
  209. package/dist/orchestrator/execution/agent-loop/kaggle-training-benchmark.d.ts.map +1 -0
  210. package/dist/orchestrator/execution/agent-loop/kaggle-training-benchmark.js +54 -0
  211. package/dist/orchestrator/execution/agent-loop/kaggle-training-benchmark.js.map +1 -0
  212. package/dist/orchestrator/execution/reflection-generator.d.ts +1 -0
  213. package/dist/orchestrator/execution/reflection-generator.d.ts.map +1 -1
  214. package/dist/orchestrator/execution/reflection-generator.js +10 -1
  215. package/dist/orchestrator/execution/reflection-generator.js.map +1 -1
  216. package/dist/orchestrator/execution/task/task-context-enricher.d.ts +2 -0
  217. package/dist/orchestrator/execution/task/task-context-enricher.d.ts.map +1 -1
  218. package/dist/orchestrator/execution/task/task-context-enricher.js +9 -4
  219. package/dist/orchestrator/execution/task/task-context-enricher.js.map +1 -1
  220. package/dist/orchestrator/execution/task/task-execution-helpers-internal.d.ts +5 -0
  221. package/dist/orchestrator/execution/task/task-execution-helpers-internal.d.ts.map +1 -0
  222. package/dist/orchestrator/execution/task/task-execution-helpers-internal.js +6 -0
  223. package/dist/orchestrator/execution/task/task-execution-helpers-internal.js.map +1 -0
  224. package/dist/orchestrator/execution/task/task-generation.d.ts.map +1 -1
  225. package/dist/orchestrator/execution/task/task-generation.js +8 -3
  226. package/dist/orchestrator/execution/task/task-generation.js.map +1 -1
  227. package/dist/orchestrator/execution/task/task-lifecycle-runner.d.ts +73 -0
  228. package/dist/orchestrator/execution/task/task-lifecycle-runner.d.ts.map +1 -0
  229. package/dist/orchestrator/execution/task/task-lifecycle-runner.js +184 -0
  230. package/dist/orchestrator/execution/task/task-lifecycle-runner.js.map +1 -0
  231. package/dist/orchestrator/execution/task/task-lifecycle.d.ts +7 -7
  232. package/dist/orchestrator/execution/task/task-lifecycle.d.ts.map +1 -1
  233. package/dist/orchestrator/execution/task/task-lifecycle.js +37 -181
  234. package/dist/orchestrator/execution/task/task-lifecycle.js.map +1 -1
  235. package/dist/orchestrator/execution/task/task-verifier-internal.d.ts +2 -0
  236. package/dist/orchestrator/execution/task/task-verifier-internal.d.ts.map +1 -0
  237. package/dist/orchestrator/execution/task/task-verifier-internal.js +2 -0
  238. package/dist/orchestrator/execution/task/task-verifier-internal.js.map +1 -0
  239. package/dist/orchestrator/goal/goal-negotiator.d.ts.map +1 -1
  240. package/dist/orchestrator/goal/goal-negotiator.js +23 -3
  241. package/dist/orchestrator/goal/goal-negotiator.js.map +1 -1
  242. package/dist/orchestrator/loop/core-loop/contracts.d.ts +1 -0
  243. package/dist/orchestrator/loop/core-loop/contracts.d.ts.map +1 -1
  244. package/dist/orchestrator/loop/core-loop/contracts.js.map +1 -1
  245. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.d.ts +7 -0
  246. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.d.ts.map +1 -0
  247. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.js +43 -0
  248. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.js.map +1 -0
  249. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.d.ts +14 -0
  250. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.d.ts.map +1 -0
  251. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.js +41 -0
  252. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.js.map +1 -0
  253. package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts +3 -2
  254. package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts.map +1 -1
  255. package/dist/orchestrator/loop/core-loop/iteration-kernel.js +16 -87
  256. package/dist/orchestrator/loop/core-loop/iteration-kernel.js.map +1 -1
  257. package/dist/orchestrator/loop/core-loop/phase-policy.d.ts.map +1 -1
  258. package/dist/orchestrator/loop/core-loop/phase-policy.js +8 -5
  259. package/dist/orchestrator/loop/core-loop/phase-policy.js.map +1 -1
  260. package/dist/orchestrator/loop/core-loop/task-cycle-stall.d.ts +9 -0
  261. package/dist/orchestrator/loop/core-loop/task-cycle-stall.d.ts.map +1 -0
  262. package/dist/orchestrator/loop/core-loop/task-cycle-stall.js +297 -0
  263. package/dist/orchestrator/loop/core-loop/task-cycle-stall.js.map +1 -0
  264. package/dist/orchestrator/loop/core-loop/task-cycle-wait.d.ts +11 -0
  265. package/dist/orchestrator/loop/core-loop/task-cycle-wait.d.ts.map +1 -0
  266. package/dist/orchestrator/loop/core-loop/task-cycle-wait.js +176 -0
  267. package/dist/orchestrator/loop/core-loop/task-cycle-wait.js.map +1 -0
  268. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts +3 -15
  269. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts.map +1 -1
  270. package/dist/orchestrator/loop/core-loop/task-cycle.js +10 -444
  271. package/dist/orchestrator/loop/core-loop/task-cycle.js.map +1 -1
  272. package/dist/orchestrator/loop/core-loop.d.ts +3 -0
  273. package/dist/orchestrator/loop/core-loop.d.ts.map +1 -1
  274. package/dist/orchestrator/loop/core-loop.js +4 -0
  275. package/dist/orchestrator/loop/core-loop.js.map +1 -1
  276. package/dist/orchestrator/strategy/portfolio-manager.d.ts +3 -2
  277. package/dist/orchestrator/strategy/portfolio-manager.d.ts.map +1 -1
  278. package/dist/orchestrator/strategy/portfolio-manager.js +16 -11
  279. package/dist/orchestrator/strategy/portfolio-manager.js.map +1 -1
  280. package/dist/orchestrator/strategy/portfolio-rebalance.d.ts +1 -1
  281. package/dist/orchestrator/strategy/portfolio-rebalance.d.ts.map +1 -1
  282. package/dist/orchestrator/strategy/portfolio-rebalance.js +31 -9
  283. package/dist/orchestrator/strategy/portfolio-rebalance.js.map +1 -1
  284. package/dist/orchestrator/strategy/strategy-manager-base.d.ts +12 -2
  285. package/dist/orchestrator/strategy/strategy-manager-base.d.ts.map +1 -1
  286. package/dist/orchestrator/strategy/strategy-manager-base.js +23 -7
  287. package/dist/orchestrator/strategy/strategy-manager-base.js.map +1 -1
  288. package/dist/orchestrator/strategy/strategy-manager.d.ts +1 -11
  289. package/dist/orchestrator/strategy/strategy-manager.d.ts.map +1 -1
  290. package/dist/orchestrator/strategy/strategy-manager.js +78 -19
  291. package/dist/orchestrator/strategy/strategy-manager.js.map +1 -1
  292. package/dist/platform/code-search/candidate-normalizer.d.ts +3 -0
  293. package/dist/platform/code-search/candidate-normalizer.d.ts.map +1 -0
  294. package/dist/platform/code-search/candidate-normalizer.js +61 -0
  295. package/dist/platform/code-search/candidate-normalizer.js.map +1 -0
  296. package/dist/platform/code-search/candidate.d.ts +25 -0
  297. package/dist/platform/code-search/candidate.d.ts.map +1 -0
  298. package/dist/platform/code-search/candidate.js +61 -0
  299. package/dist/platform/code-search/candidate.js.map +1 -0
  300. package/dist/platform/code-search/contracts.d.ts +275 -0
  301. package/dist/platform/code-search/contracts.d.ts.map +1 -0
  302. package/dist/platform/code-search/contracts.js +22 -0
  303. package/dist/platform/code-search/contracts.js.map +1 -0
  304. package/dist/platform/code-search/eval/fixtures.d.ts +14 -0
  305. package/dist/platform/code-search/eval/fixtures.d.ts.map +1 -0
  306. package/dist/platform/code-search/eval/fixtures.js +24 -0
  307. package/dist/platform/code-search/eval/fixtures.js.map +1 -0
  308. package/dist/platform/code-search/eval/metrics.d.ts +10 -0
  309. package/dist/platform/code-search/eval/metrics.d.ts.map +1 -0
  310. package/dist/platform/code-search/eval/metrics.js +20 -0
  311. package/dist/platform/code-search/eval/metrics.js.map +1 -0
  312. package/dist/platform/code-search/eval/runner.d.ts +3 -0
  313. package/dist/platform/code-search/eval/runner.d.ts.map +1 -0
  314. package/dist/platform/code-search/eval/runner.js +13 -0
  315. package/dist/platform/code-search/eval/runner.js.map +1 -0
  316. package/dist/platform/code-search/fusion.d.ts +6 -0
  317. package/dist/platform/code-search/fusion.d.ts.map +1 -0
  318. package/dist/platform/code-search/fusion.js +12 -0
  319. package/dist/platform/code-search/fusion.js.map +1 -0
  320. package/dist/platform/code-search/generated-detector.d.ts +15 -0
  321. package/dist/platform/code-search/generated-detector.d.ts.map +1 -0
  322. package/dist/platform/code-search/generated-detector.js +42 -0
  323. package/dist/platform/code-search/generated-detector.js.map +1 -0
  324. package/dist/platform/code-search/indexes/call-graph.d.ts +3 -0
  325. package/dist/platform/code-search/indexes/call-graph.d.ts.map +1 -0
  326. package/dist/platform/code-search/indexes/call-graph.js +13 -0
  327. package/dist/platform/code-search/indexes/call-graph.js.map +1 -0
  328. package/dist/platform/code-search/indexes/config-index.d.ts +3 -0
  329. package/dist/platform/code-search/indexes/config-index.d.ts.map +1 -0
  330. package/dist/platform/code-search/indexes/config-index.js +7 -0
  331. package/dist/platform/code-search/indexes/config-index.js.map +1 -0
  332. package/dist/platform/code-search/indexes/file-index.d.ts +5 -0
  333. package/dist/platform/code-search/indexes/file-index.d.ts.map +1 -0
  334. package/dist/platform/code-search/indexes/file-index.js +106 -0
  335. package/dist/platform/code-search/indexes/file-index.js.map +1 -0
  336. package/dist/platform/code-search/indexes/index-store.d.ts +6 -0
  337. package/dist/platform/code-search/indexes/index-store.d.ts.map +1 -0
  338. package/dist/platform/code-search/indexes/index-store.js +14 -0
  339. package/dist/platform/code-search/indexes/index-store.js.map +1 -0
  340. package/dist/platform/code-search/indexes/indexer.d.ts +3 -0
  341. package/dist/platform/code-search/indexes/indexer.d.ts.map +1 -0
  342. package/dist/platform/code-search/indexes/indexer.js +27 -0
  343. package/dist/platform/code-search/indexes/indexer.js.map +1 -0
  344. package/dist/platform/code-search/indexes/package-graph.d.ts +3 -0
  345. package/dist/platform/code-search/indexes/package-graph.d.ts.map +1 -0
  346. package/dist/platform/code-search/indexes/package-graph.js +26 -0
  347. package/dist/platform/code-search/indexes/package-graph.js.map +1 -0
  348. package/dist/platform/code-search/indexes/repo-map-index.d.ts +3 -0
  349. package/dist/platform/code-search/indexes/repo-map-index.d.ts.map +1 -0
  350. package/dist/platform/code-search/indexes/repo-map-index.js +26 -0
  351. package/dist/platform/code-search/indexes/repo-map-index.js.map +1 -0
  352. package/dist/platform/code-search/indexes/semantic-index.d.ts +3 -0
  353. package/dist/platform/code-search/indexes/semantic-index.d.ts.map +1 -0
  354. package/dist/platform/code-search/indexes/semantic-index.js +4 -0
  355. package/dist/platform/code-search/indexes/semantic-index.js.map +1 -0
  356. package/dist/platform/code-search/indexes/symbol-index.d.ts +3 -0
  357. package/dist/platform/code-search/indexes/symbol-index.d.ts.map +1 -0
  358. package/dist/platform/code-search/indexes/symbol-index.js +84 -0
  359. package/dist/platform/code-search/indexes/symbol-index.js.map +1 -0
  360. package/dist/platform/code-search/indexes/test-index.d.ts +3 -0
  361. package/dist/platform/code-search/indexes/test-index.d.ts.map +1 -0
  362. package/dist/platform/code-search/indexes/test-index.js +22 -0
  363. package/dist/platform/code-search/indexes/test-index.js.map +1 -0
  364. package/dist/platform/code-search/orchestrator.d.ts +9 -0
  365. package/dist/platform/code-search/orchestrator.d.ts.map +1 -0
  366. package/dist/platform/code-search/orchestrator.js +81 -0
  367. package/dist/platform/code-search/orchestrator.js.map +1 -0
  368. package/dist/platform/code-search/path-policy.d.ts +6 -0
  369. package/dist/platform/code-search/path-policy.d.ts.map +1 -0
  370. package/dist/platform/code-search/path-policy.js +60 -0
  371. package/dist/platform/code-search/path-policy.js.map +1 -0
  372. package/dist/platform/code-search/progressive-reader.d.ts +8 -0
  373. package/dist/platform/code-search/progressive-reader.d.ts.map +1 -0
  374. package/dist/platform/code-search/progressive-reader.js +173 -0
  375. package/dist/platform/code-search/progressive-reader.js.map +1 -0
  376. package/dist/platform/code-search/query-planner.d.ts +4 -0
  377. package/dist/platform/code-search/query-planner.d.ts.map +1 -0
  378. package/dist/platform/code-search/query-planner.js +107 -0
  379. package/dist/platform/code-search/query-planner.js.map +1 -0
  380. package/dist/platform/code-search/reranker.d.ts +4 -0
  381. package/dist/platform/code-search/reranker.d.ts.map +1 -0
  382. package/dist/platform/code-search/reranker.js +57 -0
  383. package/dist/platform/code-search/reranker.js.map +1 -0
  384. package/dist/platform/code-search/retrievers/callgraph-retriever.d.ts +6 -0
  385. package/dist/platform/code-search/retrievers/callgraph-retriever.d.ts.map +1 -0
  386. package/dist/platform/code-search/retrievers/callgraph-retriever.js +31 -0
  387. package/dist/platform/code-search/retrievers/callgraph-retriever.js.map +1 -0
  388. package/dist/platform/code-search/retrievers/config-retriever.d.ts +6 -0
  389. package/dist/platform/code-search/retrievers/config-retriever.d.ts.map +1 -0
  390. package/dist/platform/code-search/retrievers/config-retriever.js +23 -0
  391. package/dist/platform/code-search/retrievers/config-retriever.js.map +1 -0
  392. package/dist/platform/code-search/retrievers/lexical-retriever.d.ts +6 -0
  393. package/dist/platform/code-search/retrievers/lexical-retriever.d.ts.map +1 -0
  394. package/dist/platform/code-search/retrievers/lexical-retriever.js +49 -0
  395. package/dist/platform/code-search/retrievers/lexical-retriever.js.map +1 -0
  396. package/dist/platform/code-search/retrievers/package-retriever.d.ts +6 -0
  397. package/dist/platform/code-search/retrievers/package-retriever.d.ts.map +1 -0
  398. package/dist/platform/code-search/retrievers/package-retriever.js +29 -0
  399. package/dist/platform/code-search/retrievers/package-retriever.js.map +1 -0
  400. package/dist/platform/code-search/retrievers/repo-map-retriever.d.ts +6 -0
  401. package/dist/platform/code-search/retrievers/repo-map-retriever.d.ts.map +1 -0
  402. package/dist/platform/code-search/retrievers/repo-map-retriever.js +30 -0
  403. package/dist/platform/code-search/retrievers/repo-map-retriever.js.map +1 -0
  404. package/dist/platform/code-search/retrievers/semantic-retriever.d.ts +6 -0
  405. package/dist/platform/code-search/retrievers/semantic-retriever.d.ts.map +1 -0
  406. package/dist/platform/code-search/retrievers/semantic-retriever.js +18 -0
  407. package/dist/platform/code-search/retrievers/semantic-retriever.js.map +1 -0
  408. package/dist/platform/code-search/retrievers/stacktrace-retriever.d.ts +6 -0
  409. package/dist/platform/code-search/retrievers/stacktrace-retriever.d.ts.map +1 -0
  410. package/dist/platform/code-search/retrievers/stacktrace-retriever.js +30 -0
  411. package/dist/platform/code-search/retrievers/stacktrace-retriever.js.map +1 -0
  412. package/dist/platform/code-search/retrievers/symbol-retriever.d.ts +6 -0
  413. package/dist/platform/code-search/retrievers/symbol-retriever.d.ts.map +1 -0
  414. package/dist/platform/code-search/retrievers/symbol-retriever.js +32 -0
  415. package/dist/platform/code-search/retrievers/symbol-retriever.js.map +1 -0
  416. package/dist/platform/code-search/retrievers/test-retriever.d.ts +6 -0
  417. package/dist/platform/code-search/retrievers/test-retriever.d.ts.map +1 -0
  418. package/dist/platform/code-search/retrievers/test-retriever.js +30 -0
  419. package/dist/platform/code-search/retrievers/test-retriever.js.map +1 -0
  420. package/dist/platform/code-search/session-store.d.ts +11 -0
  421. package/dist/platform/code-search/session-store.d.ts.map +1 -0
  422. package/dist/platform/code-search/session-store.js +41 -0
  423. package/dist/platform/code-search/session-store.js.map +1 -0
  424. package/dist/platform/code-search/trace.d.ts +9 -0
  425. package/dist/platform/code-search/trace.d.ts.map +1 -0
  426. package/dist/platform/code-search/trace.js +25 -0
  427. package/dist/platform/code-search/trace.js.map +1 -0
  428. package/dist/platform/code-search/verification-retrieval.d.ts +3 -0
  429. package/dist/platform/code-search/verification-retrieval.d.ts.map +1 -0
  430. package/dist/platform/code-search/verification-retrieval.js +33 -0
  431. package/dist/platform/code-search/verification-retrieval.js.map +1 -0
  432. package/dist/platform/dream/dream-consolidator/fs-metrics.d.ts +18 -0
  433. package/dist/platform/dream/dream-consolidator/fs-metrics.d.ts.map +1 -0
  434. package/dist/platform/dream/dream-consolidator/fs-metrics.js +130 -0
  435. package/dist/platform/dream/dream-consolidator/fs-metrics.js.map +1 -0
  436. package/dist/platform/dream/dream-consolidator.d.ts +4 -14
  437. package/dist/platform/dream/dream-consolidator.d.ts.map +1 -1
  438. package/dist/platform/dream/dream-consolidator.js +46 -166
  439. package/dist/platform/dream/dream-consolidator.js.map +1 -1
  440. package/dist/platform/dream/dream-soil-sync.d.ts +1 -0
  441. package/dist/platform/dream/dream-soil-sync.d.ts.map +1 -1
  442. package/dist/platform/dream/dream-soil-sync.js +8 -1
  443. package/dist/platform/dream/dream-soil-sync.js.map +1 -1
  444. package/dist/platform/dream/dream-types.d.ts +5 -0
  445. package/dist/platform/dream/dream-types.d.ts.map +1 -1
  446. package/dist/platform/dream/dream-types.js +1 -0
  447. package/dist/platform/dream/dream-types.js.map +1 -1
  448. package/dist/platform/dream/playbook-memory.d.ts +4 -4
  449. package/dist/platform/drive/stall-detector/analysis.d.ts +5 -0
  450. package/dist/platform/drive/stall-detector/analysis.d.ts.map +1 -0
  451. package/dist/platform/drive/stall-detector/analysis.js +55 -0
  452. package/dist/platform/drive/stall-detector/analysis.js.map +1 -0
  453. package/dist/platform/drive/stall-detector/repetitive.d.ts +3 -0
  454. package/dist/platform/drive/stall-detector/repetitive.d.ts.map +1 -0
  455. package/dist/platform/drive/stall-detector/repetitive.js +72 -0
  456. package/dist/platform/drive/stall-detector/repetitive.js.map +1 -0
  457. package/dist/platform/drive/stall-detector/thresholds.d.ts +10 -0
  458. package/dist/platform/drive/stall-detector/thresholds.d.ts.map +1 -0
  459. package/dist/platform/drive/stall-detector/thresholds.js +61 -0
  460. package/dist/platform/drive/stall-detector/thresholds.js.map +1 -0
  461. package/dist/platform/drive/stall-detector.d.ts +2 -20
  462. package/dist/platform/drive/stall-detector.d.ts.map +1 -1
  463. package/dist/platform/drive/stall-detector.js +9 -202
  464. package/dist/platform/drive/stall-detector.js.map +1 -1
  465. package/dist/platform/knowledge/knowledge-manager-agent-memory.d.ts +55 -0
  466. package/dist/platform/knowledge/knowledge-manager-agent-memory.d.ts.map +1 -0
  467. package/dist/platform/knowledge/knowledge-manager-agent-memory.js +232 -0
  468. package/dist/platform/knowledge/knowledge-manager-agent-memory.js.map +1 -0
  469. package/dist/platform/knowledge/knowledge-manager-internals.d.ts +10 -0
  470. package/dist/platform/knowledge/knowledge-manager-internals.d.ts.map +1 -0
  471. package/dist/platform/knowledge/knowledge-manager-internals.js +43 -0
  472. package/dist/platform/knowledge/knowledge-manager-internals.js.map +1 -0
  473. package/dist/platform/knowledge/knowledge-manager-store.d.ts +13 -0
  474. package/dist/platform/knowledge/knowledge-manager-store.d.ts.map +1 -0
  475. package/dist/platform/knowledge/knowledge-manager-store.js +67 -0
  476. package/dist/platform/knowledge/knowledge-manager-store.js.map +1 -0
  477. package/dist/platform/knowledge/knowledge-manager.d.ts +6 -2
  478. package/dist/platform/knowledge/knowledge-manager.d.ts.map +1 -1
  479. package/dist/platform/knowledge/knowledge-manager.js +43 -344
  480. package/dist/platform/knowledge/knowledge-manager.js.map +1 -1
  481. package/dist/platform/knowledge/memory/memory-lifecycle-storage.d.ts +4 -0
  482. package/dist/platform/knowledge/memory/memory-lifecycle-storage.d.ts.map +1 -0
  483. package/dist/platform/knowledge/memory/memory-lifecycle-storage.js +106 -0
  484. package/dist/platform/knowledge/memory/memory-lifecycle-storage.js.map +1 -0
  485. package/dist/platform/knowledge/memory/memory-lifecycle.d.ts.map +1 -1
  486. package/dist/platform/knowledge/memory/memory-lifecycle.js +6 -112
  487. package/dist/platform/knowledge/memory/memory-lifecycle.js.map +1 -1
  488. package/dist/platform/observation/capability-detector/prompts.d.ts +18 -0
  489. package/dist/platform/observation/capability-detector/prompts.d.ts.map +1 -0
  490. package/dist/platform/observation/capability-detector/prompts.js +80 -0
  491. package/dist/platform/observation/capability-detector/prompts.js.map +1 -0
  492. package/dist/platform/observation/capability-detector/recommendations.d.ts +5 -0
  493. package/dist/platform/observation/capability-detector/recommendations.d.ts.map +1 -0
  494. package/dist/platform/observation/capability-detector/recommendations.js +76 -0
  495. package/dist/platform/observation/capability-detector/recommendations.js.map +1 -0
  496. package/dist/platform/observation/capability-detector/types.d.ts +112 -0
  497. package/dist/platform/observation/capability-detector/types.d.ts.map +1 -0
  498. package/dist/platform/observation/capability-detector/types.js +75 -0
  499. package/dist/platform/observation/capability-detector/types.js.map +1 -0
  500. package/dist/platform/observation/capability-detector.d.ts +4 -9
  501. package/dist/platform/observation/capability-detector.d.ts.map +1 -1
  502. package/dist/platform/observation/capability-detector.js +12 -212
  503. package/dist/platform/observation/capability-detector.js.map +1 -1
  504. package/dist/platform/observation/context-provider/collector.d.ts +13 -0
  505. package/dist/platform/observation/context-provider/collector.d.ts.map +1 -0
  506. package/dist/platform/observation/context-provider/collector.js +259 -0
  507. package/dist/platform/observation/context-provider/collector.js.map +1 -0
  508. package/dist/platform/observation/context-provider/search-terms.d.ts +2 -0
  509. package/dist/platform/observation/context-provider/search-terms.d.ts.map +1 -0
  510. package/dist/platform/observation/context-provider/search-terms.js +24 -0
  511. package/dist/platform/observation/context-provider/search-terms.js.map +1 -0
  512. package/dist/platform/observation/context-provider/shared.d.ts +17 -0
  513. package/dist/platform/observation/context-provider/shared.d.ts.map +1 -0
  514. package/dist/platform/observation/context-provider/shared.js +87 -0
  515. package/dist/platform/observation/context-provider/shared.js.map +1 -0
  516. package/dist/platform/observation/context-provider.d.ts +3 -28
  517. package/dist/platform/observation/context-provider.d.ts.map +1 -1
  518. package/dist/platform/observation/context-provider.js +7 -358
  519. package/dist/platform/observation/context-provider.js.map +1 -1
  520. package/dist/platform/observation/workspace-context.d.ts.map +1 -1
  521. package/dist/platform/observation/workspace-context.js +27 -0
  522. package/dist/platform/observation/workspace-context.js.map +1 -1
  523. package/dist/platform/soil/compiled-memory-projections.d.ts +2 -0
  524. package/dist/platform/soil/compiled-memory-projections.d.ts.map +1 -1
  525. package/dist/platform/soil/compiled-memory-projections.js +59 -0
  526. package/dist/platform/soil/compiled-memory-projections.js.map +1 -1
  527. package/dist/platform/soil/contracts.d.ts +2 -2
  528. package/dist/platform/soil/retriever.d.ts +25 -0
  529. package/dist/platform/soil/retriever.d.ts.map +1 -1
  530. package/dist/platform/soil/retriever.js +94 -5
  531. package/dist/platform/soil/retriever.js.map +1 -1
  532. package/dist/platform/soil/sqlite-repository-helpers.d.ts +80 -0
  533. package/dist/platform/soil/sqlite-repository-helpers.d.ts.map +1 -0
  534. package/dist/platform/soil/sqlite-repository-helpers.js +143 -0
  535. package/dist/platform/soil/sqlite-repository-helpers.js.map +1 -0
  536. package/dist/platform/soil/sqlite-repository-search.d.ts +8 -0
  537. package/dist/platform/soil/sqlite-repository-search.d.ts.map +1 -0
  538. package/dist/platform/soil/sqlite-repository-search.js +367 -0
  539. package/dist/platform/soil/sqlite-repository-search.js.map +1 -0
  540. package/dist/platform/soil/sqlite-repository-storage.d.ts +8 -0
  541. package/dist/platform/soil/sqlite-repository-storage.d.ts.map +1 -0
  542. package/dist/platform/soil/sqlite-repository-storage.js +278 -0
  543. package/dist/platform/soil/sqlite-repository-storage.js.map +1 -0
  544. package/dist/platform/soil/sqlite-repository.d.ts +1 -4
  545. package/dist/platform/soil/sqlite-repository.d.ts.map +1 -1
  546. package/dist/platform/soil/sqlite-repository.js +26 -820
  547. package/dist/platform/soil/sqlite-repository.js.map +1 -1
  548. package/dist/runtime/daemon/client.d.ts +13 -1
  549. package/dist/runtime/daemon/client.d.ts.map +1 -1
  550. package/dist/runtime/daemon/client.js +2 -2
  551. package/dist/runtime/daemon/client.js.map +1 -1
  552. package/dist/runtime/daemon/index.d.ts +1 -1
  553. package/dist/runtime/daemon/index.d.ts.map +1 -1
  554. package/dist/runtime/daemon/index.js +1 -1
  555. package/dist/runtime/daemon/index.js.map +1 -1
  556. package/dist/runtime/daemon/maintenance.d.ts +2 -10
  557. package/dist/runtime/daemon/maintenance.d.ts.map +1 -1
  558. package/dist/runtime/daemon/maintenance.js +14 -45
  559. package/dist/runtime/daemon/maintenance.js.map +1 -1
  560. package/dist/runtime/daemon/runner-bootstrap.d.ts +25 -0
  561. package/dist/runtime/daemon/runner-bootstrap.d.ts.map +1 -0
  562. package/dist/runtime/daemon/runner-bootstrap.js +77 -0
  563. package/dist/runtime/daemon/runner-bootstrap.js.map +1 -0
  564. package/dist/runtime/daemon/runner-commands.d.ts +14 -6
  565. package/dist/runtime/daemon/runner-commands.d.ts.map +1 -1
  566. package/dist/runtime/daemon/runner-commands.js +63 -17
  567. package/dist/runtime/daemon/runner-commands.js.map +1 -1
  568. package/dist/runtime/daemon/runner-goal-cycle.d.ts.map +1 -1
  569. package/dist/runtime/daemon/runner-goal-cycle.js +3 -5
  570. package/dist/runtime/daemon/runner-goal-cycle.js.map +1 -1
  571. package/dist/runtime/daemon/runner-resident-curiosity.d.ts +12 -0
  572. package/dist/runtime/daemon/runner-resident-curiosity.d.ts.map +1 -0
  573. package/dist/runtime/daemon/runner-resident-curiosity.js +155 -0
  574. package/dist/runtime/daemon/runner-resident-curiosity.js.map +1 -0
  575. package/dist/runtime/daemon/runner-resident-dream.d.ts +20 -0
  576. package/dist/runtime/daemon/runner-resident-dream.d.ts.map +1 -0
  577. package/dist/runtime/daemon/runner-resident-dream.js +148 -0
  578. package/dist/runtime/daemon/runner-resident-dream.js.map +1 -0
  579. package/dist/runtime/daemon/runner-resident-proactive.d.ts +4 -0
  580. package/dist/runtime/daemon/runner-resident-proactive.d.ts.map +1 -0
  581. package/dist/runtime/daemon/runner-resident-proactive.js +113 -0
  582. package/dist/runtime/daemon/runner-resident-proactive.js.map +1 -0
  583. package/dist/runtime/daemon/runner-resident-shared.d.ts +40 -0
  584. package/dist/runtime/daemon/runner-resident-shared.d.ts.map +1 -0
  585. package/dist/runtime/daemon/runner-resident-shared.js +101 -0
  586. package/dist/runtime/daemon/runner-resident-shared.js.map +1 -0
  587. package/dist/runtime/daemon/runner-resident.d.ts +4 -68
  588. package/dist/runtime/daemon/runner-resident.d.ts.map +1 -1
  589. package/dist/runtime/daemon/runner-resident.js +4 -506
  590. package/dist/runtime/daemon/runner-resident.js.map +1 -1
  591. package/dist/runtime/daemon/runner-runtime.d.ts +12 -0
  592. package/dist/runtime/daemon/runner-runtime.d.ts.map +1 -0
  593. package/dist/runtime/daemon/runner-runtime.js +43 -0
  594. package/dist/runtime/daemon/runner-runtime.js.map +1 -0
  595. package/dist/runtime/daemon/runner-startup.d.ts.map +1 -1
  596. package/dist/runtime/daemon/runner-startup.js +23 -3
  597. package/dist/runtime/daemon/runner-startup.js.map +1 -1
  598. package/dist/runtime/daemon/runner.d.ts +10 -23
  599. package/dist/runtime/daemon/runner.d.ts.map +1 -1
  600. package/dist/runtime/daemon/runner.js +29 -111
  601. package/dist/runtime/daemon/runner.js.map +1 -1
  602. package/dist/runtime/daemon/runtime-root.d.ts +5 -0
  603. package/dist/runtime/daemon/runtime-root.d.ts.map +1 -0
  604. package/dist/runtime/daemon/runtime-root.js +60 -0
  605. package/dist/runtime/daemon/runtime-root.js.map +1 -0
  606. package/dist/runtime/daemon/wait-deadline-resolver.d.ts +5 -2
  607. package/dist/runtime/daemon/wait-deadline-resolver.d.ts.map +1 -1
  608. package/dist/runtime/daemon/wait-deadline-resolver.js +55 -35
  609. package/dist/runtime/daemon/wait-deadline-resolver.js.map +1 -1
  610. package/dist/runtime/event/dispatcher.d.ts +0 -2
  611. package/dist/runtime/event/dispatcher.d.ts.map +1 -1
  612. package/dist/runtime/event/dispatcher.js +0 -4
  613. package/dist/runtime/event/dispatcher.js.map +1 -1
  614. package/dist/runtime/event/server-command-handler.d.ts.map +1 -1
  615. package/dist/runtime/event/server-command-handler.js +47 -3
  616. package/dist/runtime/event/server-command-handler.js.map +1 -1
  617. package/dist/runtime/executor/goal-worker.d.ts +3 -1
  618. package/dist/runtime/executor/goal-worker.d.ts.map +1 -1
  619. package/dist/runtime/executor/goal-worker.js +3 -1
  620. package/dist/runtime/executor/goal-worker.js.map +1 -1
  621. package/dist/runtime/executor/loop-supervisor.d.ts +27 -1
  622. package/dist/runtime/executor/loop-supervisor.d.ts.map +1 -1
  623. package/dist/runtime/executor/loop-supervisor.js +218 -13
  624. package/dist/runtime/executor/loop-supervisor.js.map +1 -1
  625. package/dist/runtime/gateway/telegram-gateway-adapter.d.ts.map +1 -1
  626. package/dist/runtime/gateway/telegram-gateway-adapter.js +2 -1
  627. package/dist/runtime/gateway/telegram-gateway-adapter.js.map +1 -1
  628. package/dist/runtime/schedule/engine-cron-reflection.d.ts +31 -0
  629. package/dist/runtime/schedule/engine-cron-reflection.d.ts.map +1 -0
  630. package/dist/runtime/schedule/engine-cron-reflection.js +229 -0
  631. package/dist/runtime/schedule/engine-cron-reflection.js.map +1 -0
  632. package/dist/runtime/schedule/engine-execution.d.ts +47 -0
  633. package/dist/runtime/schedule/engine-execution.d.ts.map +1 -0
  634. package/dist/runtime/schedule/engine-execution.js +424 -0
  635. package/dist/runtime/schedule/engine-execution.js.map +1 -0
  636. package/dist/runtime/schedule/engine-heartbeat.d.ts +5 -0
  637. package/dist/runtime/schedule/engine-heartbeat.d.ts.map +1 -0
  638. package/dist/runtime/schedule/engine-heartbeat.js +104 -0
  639. package/dist/runtime/schedule/engine-heartbeat.js.map +1 -0
  640. package/dist/runtime/schedule/engine-layers.d.ts +2 -0
  641. package/dist/runtime/schedule/engine-layers.d.ts.map +1 -1
  642. package/dist/runtime/schedule/engine-layers.js +12 -228
  643. package/dist/runtime/schedule/engine-layers.js.map +1 -1
  644. package/dist/runtime/schedule/engine-mutations.d.ts +37 -0
  645. package/dist/runtime/schedule/engine-mutations.d.ts.map +1 -0
  646. package/dist/runtime/schedule/engine-mutations.js +263 -0
  647. package/dist/runtime/schedule/engine-mutations.js.map +1 -0
  648. package/dist/runtime/schedule/engine.d.ts +11 -38
  649. package/dist/runtime/schedule/engine.d.ts.map +1 -1
  650. package/dist/runtime/schedule/engine.js +65 -810
  651. package/dist/runtime/schedule/engine.js.map +1 -1
  652. package/dist/runtime/schedule/history.d.ts +16 -0
  653. package/dist/runtime/schedule/history.d.ts.map +1 -1
  654. package/dist/runtime/schedule/history.js +8 -0
  655. package/dist/runtime/schedule/history.js.map +1 -1
  656. package/dist/runtime/schedule/index.d.ts +1 -0
  657. package/dist/runtime/schedule/index.d.ts.map +1 -1
  658. package/dist/runtime/schedule/index.js +1 -0
  659. package/dist/runtime/schedule/index.js.map +1 -1
  660. package/dist/runtime/schedule/legacy-cron-migration.d.ts +9 -0
  661. package/dist/runtime/schedule/legacy-cron-migration.d.ts.map +1 -0
  662. package/dist/runtime/schedule/legacy-cron-migration.js +89 -0
  663. package/dist/runtime/schedule/legacy-cron-migration.js.map +1 -0
  664. package/dist/runtime/schedule/wait-projection.d.ts +6 -0
  665. package/dist/runtime/schedule/wait-projection.d.ts.map +1 -0
  666. package/dist/runtime/schedule/wait-projection.js +102 -0
  667. package/dist/runtime/schedule/wait-projection.js.map +1 -0
  668. package/dist/runtime/session-registry/index.d.ts +3 -0
  669. package/dist/runtime/session-registry/index.d.ts.map +1 -0
  670. package/dist/runtime/session-registry/index.js +3 -0
  671. package/dist/runtime/session-registry/index.js.map +1 -0
  672. package/dist/runtime/session-registry/registry-helpers.d.ts +34 -0
  673. package/dist/runtime/session-registry/registry-helpers.d.ts.map +1 -0
  674. package/dist/runtime/session-registry/registry-helpers.js +241 -0
  675. package/dist/runtime/session-registry/registry-helpers.js.map +1 -0
  676. package/dist/runtime/session-registry/registry.d.ts +39 -0
  677. package/dist/runtime/session-registry/registry.d.ts.map +1 -0
  678. package/dist/runtime/session-registry/registry.js +532 -0
  679. package/dist/runtime/session-registry/registry.js.map +1 -0
  680. package/dist/runtime/session-registry/types.d.ts +985 -0
  681. package/dist/runtime/session-registry/types.d.ts.map +1 -0
  682. package/dist/runtime/session-registry/types.js +108 -0
  683. package/dist/runtime/session-registry/types.js.map +1 -0
  684. package/dist/runtime/store/background-run-store.d.ts +75 -0
  685. package/dist/runtime/store/background-run-store.d.ts.map +1 -0
  686. package/dist/runtime/store/background-run-store.js +157 -0
  687. package/dist/runtime/store/background-run-store.js.map +1 -0
  688. package/dist/runtime/store/index.d.ts +2 -0
  689. package/dist/runtime/store/index.d.ts.map +1 -1
  690. package/dist/runtime/store/index.js +1 -0
  691. package/dist/runtime/store/index.js.map +1 -1
  692. package/dist/runtime/store/runtime-operation-schemas.d.ts +12 -12
  693. package/dist/runtime/store/runtime-paths.d.ts +2 -0
  694. package/dist/runtime/store/runtime-paths.d.ts.map +1 -1
  695. package/dist/runtime/store/runtime-paths.js +6 -0
  696. package/dist/runtime/store/runtime-paths.js.map +1 -1
  697. package/dist/runtime/store/runtime-schemas.d.ts +2 -2
  698. package/dist/runtime/types/daemon.d.ts +13 -0
  699. package/dist/runtime/types/daemon.d.ts.map +1 -1
  700. package/dist/runtime/types/daemon.js +3 -0
  701. package/dist/runtime/types/daemon.js.map +1 -1
  702. package/dist/runtime/types/schedule.d.ts +65 -0
  703. package/dist/runtime/types/schedule.d.ts.map +1 -1
  704. package/dist/runtime/types/schedule.js +5 -0
  705. package/dist/runtime/types/schedule.js.map +1 -1
  706. package/dist/tools/builtin/exports.d.ts +5 -0
  707. package/dist/tools/builtin/exports.d.ts.map +1 -1
  708. package/dist/tools/builtin/exports.js +5 -0
  709. package/dist/tools/builtin/exports.js.map +1 -1
  710. package/dist/tools/builtin/factory.d.ts +2 -0
  711. package/dist/tools/builtin/factory.d.ts.map +1 -1
  712. package/dist/tools/builtin/factory.js +26 -1
  713. package/dist/tools/builtin/factory.js.map +1 -1
  714. package/dist/tools/fs/FileValidationTool/protected-path-policy.d.ts +1 -0
  715. package/dist/tools/fs/FileValidationTool/protected-path-policy.d.ts.map +1 -1
  716. package/dist/tools/fs/FileValidationTool/protected-path-policy.js +17 -4
  717. package/dist/tools/fs/FileValidationTool/protected-path-policy.js.map +1 -1
  718. package/dist/tools/fs/GlobTool/GlobTool.js +2 -2
  719. package/dist/tools/fs/GlobTool/GlobTool.js.map +1 -1
  720. package/dist/tools/fs/GrepTool/GrepTool.js +2 -2
  721. package/dist/tools/fs/GrepTool/GrepTool.js.map +1 -1
  722. package/dist/tools/fs/ListDirTool/ListDirTool.js +1 -1
  723. package/dist/tools/fs/ListDirTool/ListDirTool.js.map +1 -1
  724. package/dist/tools/fs/ReadTool/ReadTool.js +2 -2
  725. package/dist/tools/fs/ReadTool/ReadTool.js.map +1 -1
  726. package/dist/tools/kaggle/KaggleExperimentTools.d.ts +395 -0
  727. package/dist/tools/kaggle/KaggleExperimentTools.d.ts.map +1 -0
  728. package/dist/tools/kaggle/KaggleExperimentTools.js +923 -0
  729. package/dist/tools/kaggle/KaggleExperimentTools.js.map +1 -0
  730. package/dist/tools/kaggle/KaggleSubmissionTools.d.ts +241 -0
  731. package/dist/tools/kaggle/KaggleSubmissionTools.d.ts.map +1 -0
  732. package/dist/tools/kaggle/KaggleSubmissionTools.js +558 -0
  733. package/dist/tools/kaggle/KaggleSubmissionTools.js.map +1 -0
  734. package/dist/tools/kaggle/KaggleWorkspacePrepareTool.d.ts +105 -0
  735. package/dist/tools/kaggle/KaggleWorkspacePrepareTool.d.ts.map +1 -0
  736. package/dist/tools/kaggle/KaggleWorkspacePrepareTool.js +135 -0
  737. package/dist/tools/kaggle/KaggleWorkspacePrepareTool.js.map +1 -0
  738. package/dist/tools/kaggle/index.d.ts +6 -0
  739. package/dist/tools/kaggle/index.d.ts.map +1 -0
  740. package/dist/tools/kaggle/index.js +6 -0
  741. package/dist/tools/kaggle/index.js.map +1 -0
  742. package/dist/tools/kaggle/metrics.d.ts +89 -0
  743. package/dist/tools/kaggle/metrics.d.ts.map +1 -0
  744. package/dist/tools/kaggle/metrics.js +51 -0
  745. package/dist/tools/kaggle/metrics.js.map +1 -0
  746. package/dist/tools/kaggle/paths.d.ts +15 -0
  747. package/dist/tools/kaggle/paths.d.ts.map +1 -0
  748. package/dist/tools/kaggle/paths.js +142 -0
  749. package/dist/tools/kaggle/paths.js.map +1 -0
  750. package/dist/tools/network/GitHubCliTool/GitHubCliTool.d.ts +2 -2
  751. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.d.ts +801 -0
  752. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.d.ts.map +1 -0
  753. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.js +147 -0
  754. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.js.map +1 -0
  755. package/dist/tools/query/CodeReadContextTool/constants.d.ts +5 -0
  756. package/dist/tools/query/CodeReadContextTool/constants.d.ts.map +1 -0
  757. package/dist/tools/query/CodeReadContextTool/constants.js +5 -0
  758. package/dist/tools/query/CodeReadContextTool/constants.js.map +1 -0
  759. package/dist/tools/query/CodeReadContextTool/prompt.d.ts +2 -0
  760. package/dist/tools/query/CodeReadContextTool/prompt.d.ts.map +1 -0
  761. package/dist/tools/query/CodeReadContextTool/prompt.js +6 -0
  762. package/dist/tools/query/CodeReadContextTool/prompt.js.map +1 -0
  763. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.d.ts +125 -0
  764. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.d.ts.map +1 -0
  765. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.js +118 -0
  766. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.js.map +1 -0
  767. package/dist/tools/query/CodeSearchRepairTool/constants.d.ts +5 -0
  768. package/dist/tools/query/CodeSearchRepairTool/constants.d.ts.map +1 -0
  769. package/dist/tools/query/CodeSearchRepairTool/constants.js +5 -0
  770. package/dist/tools/query/CodeSearchRepairTool/constants.js.map +1 -0
  771. package/dist/tools/query/CodeSearchRepairTool/prompt.d.ts +2 -0
  772. package/dist/tools/query/CodeSearchRepairTool/prompt.d.ts.map +1 -0
  773. package/dist/tools/query/CodeSearchRepairTool/prompt.js +5 -0
  774. package/dist/tools/query/CodeSearchRepairTool/prompt.js.map +1 -0
  775. package/dist/tools/query/CodeSearchTool/CodeSearchTool.d.ts +123 -0
  776. package/dist/tools/query/CodeSearchTool/CodeSearchTool.d.ts.map +1 -0
  777. package/dist/tools/query/CodeSearchTool/CodeSearchTool.js +117 -0
  778. package/dist/tools/query/CodeSearchTool/CodeSearchTool.js.map +1 -0
  779. package/dist/tools/query/CodeSearchTool/constants.d.ts +5 -0
  780. package/dist/tools/query/CodeSearchTool/constants.d.ts.map +1 -0
  781. package/dist/tools/query/CodeSearchTool/constants.js +5 -0
  782. package/dist/tools/query/CodeSearchTool/constants.js.map +1 -0
  783. package/dist/tools/query/CodeSearchTool/prompt.d.ts +2 -0
  784. package/dist/tools/query/CodeSearchTool/prompt.d.ts.map +1 -0
  785. package/dist/tools/query/CodeSearchTool/prompt.js +6 -0
  786. package/dist/tools/query/CodeSearchTool/prompt.js.map +1 -0
  787. package/dist/tools/query/SoilQueryTool/SoilQueryTool.d.ts.map +1 -1
  788. package/dist/tools/query/SoilQueryTool/SoilQueryTool.js +43 -9
  789. package/dist/tools/query/SoilQueryTool/SoilQueryTool.js.map +1 -1
  790. package/dist/tools/query/code-search-root.d.ts +8 -0
  791. package/dist/tools/query/code-search-root.d.ts.map +1 -0
  792. package/dist/tools/query/code-search-root.js +41 -0
  793. package/dist/tools/query/code-search-root.js.map +1 -0
  794. package/dist/tools/query/runtime-session-tools.d.ts +560 -0
  795. package/dist/tools/query/runtime-session-tools.d.ts.map +1 -0
  796. package/dist/tools/query/runtime-session-tools.js +1015 -0
  797. package/dist/tools/query/runtime-session-tools.js.map +1 -0
  798. package/dist/tools/runtime/LongRunningRuntimeTools.d.ts +821 -0
  799. package/dist/tools/runtime/LongRunningRuntimeTools.d.ts.map +1 -0
  800. package/dist/tools/runtime/LongRunningRuntimeTools.js +845 -0
  801. package/dist/tools/runtime/LongRunningRuntimeTools.js.map +1 -0
  802. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.d.ts +1 -0
  803. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.d.ts.map +1 -1
  804. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.js +11 -0
  805. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.js.map +1 -1
  806. package/dist/tools/system/ShellTool/ShellTool.d.ts.map +1 -1
  807. package/dist/tools/system/ShellTool/ShellTool.js +2 -1
  808. package/dist/tools/system/ShellTool/ShellTool.js.map +1 -1
  809. package/dist/tools/types.d.ts +2 -0
  810. package/dist/tools/types.d.ts.map +1 -1
  811. package/dist/tools/types.js.map +1 -1
  812. package/package.json +2 -1
  813. package/dist/base/types/cron.d.ts +0 -2
  814. package/dist/base/types/cron.d.ts.map +0 -1
  815. package/dist/base/types/cron.js +0 -3
  816. package/dist/base/types/cron.js.map +0 -1
  817. package/dist/runtime/cron-scheduler.d.ts +0 -13
  818. package/dist/runtime/cron-scheduler.d.ts.map +0 -1
  819. package/dist/runtime/cron-scheduler.js +0 -90
  820. package/dist/runtime/cron-scheduler.js.map +0 -1
  821. package/dist/runtime/types/cron.d.ts +0 -59
  822. package/dist/runtime/types/cron.d.ts.map +0 -1
  823. package/dist/runtime/types/cron.js +0 -13
  824. package/dist/runtime/types/cron.js.map +0 -1
@@ -0,0 +1,814 @@
1
+ import { ChatHistory } from "./chat-history.js";
2
+ import { ChatSessionCatalog } from "./chat-session-store.js";
3
+ import { resolveGitRoot } from "../../platform/observation/context-provider.js";
4
+ import { TendCommand } from "./tend-command.js";
5
+ import { EventSubscriber } from "./event-subscriber.js";
6
+ import { createRuntimeSessionRegistry } from "../../runtime/session-registry/index.js";
7
+ import { activeGoals, buildGoalUsageSummary, buildScheduleUsageSummary, deterministicChatSummary, findTask, formatConfig, formatGoalLine, formatHistory, formatTask, formatTaskLine, formatUsageCounter, hasUsage, loadGoals, normalizeUsageCounter, parseTaskArgs, readProviderConfigSummary, readTasksForGoalFromState, resolveGoalForTasks, usageFromLLMResponse, zeroUsageCounter, } from "./chat-runner-command-helpers.js";
8
+ import { checkGitChanges } from "./chat-runner-support.js";
9
+ import { formatFailureRecovery } from "./failure-recovery.js";
10
+ import { summarizeExecutionPolicy, withExecutionPolicyOverrides, } from "../../orchestrator/execution/agent-loop/execution-policy.js";
11
+ import { formatRoute, formatRuntimeSessionsList, formatRuntimeStatus } from "./chat-runner-runtime.js";
12
+ export const COMMAND_HELP = `Available commands:
13
+ Session
14
+ /help Show this help message
15
+ /clear Clear conversation history
16
+ /sessions List prior chat sessions
17
+ /history [id|title] Show saved chat history
18
+ /title <title> Rename the current session
19
+ /resume [id|title] Resume native agentloop state for the current or selected session
20
+ /cleanup [--dry-run] Clean up stale chat sessions
21
+ /compact Summarize older chat turns and keep the latest turns
22
+ /context Show active working context and session assumptions
23
+ /exit Exit chat mode
24
+
25
+ Goals and tasks
26
+ /status [goal-id] Show active goal status, or one goal when an id is provided
27
+ /goals List goals
28
+ /tasks [goal-id] List tasks for a goal; uses the only active goal when unambiguous
29
+ /task <task-id> [goal-id]
30
+ Show one task; searches goals when no goal id is provided
31
+ /track Promote session to Tier 2 goal pursuit (not yet implemented)
32
+ /tend Generate a goal from chat history and start autonomous daemon execution
33
+
34
+ Configuration
35
+ /config Show provider configuration with secrets masked
36
+ /model Show the active provider/model/adapter
37
+ /permissions [args] Show or update session execution policy
38
+ /plugins List installed plugins when plugin metadata is available
39
+ /usage [scope] Show usage summary (session, goal <id>, daemon <goal-id>, schedule [7d|24h|2w])
40
+
41
+ Review and branching
42
+ /review Show current diff summary and verification context
43
+ /fork [title] Fork the current chat session into a new session
44
+ /undo Remove the latest chat turn from session history
45
+
46
+ Deferred
47
+ /retry is intentionally not supported yet.`;
48
+ export class ChatRunnerCommandHandler {
49
+ host;
50
+ constructor(host) {
51
+ this.host = host;
52
+ }
53
+ parseResumeCommand(input) {
54
+ const trimmed = input.trim();
55
+ const match = /^\/resume(?:\s+(.+))?$/i.exec(trimmed);
56
+ if (!match)
57
+ return null;
58
+ const selector = match[1]?.trim();
59
+ return selector ? { selector } : {};
60
+ }
61
+ async handleCommand(input, cwd) {
62
+ const trimmed = input.trim();
63
+ if (!trimmed.startsWith("/"))
64
+ return null;
65
+ const cmd = trimmed.toLowerCase().split(/\s+/)[0];
66
+ const start = Date.now();
67
+ if (cmd === "/help") {
68
+ return { success: true, output: COMMAND_HELP, elapsed_ms: Date.now() - start };
69
+ }
70
+ if (cmd === "/clear") {
71
+ await this.host.getHistory()?.clear();
72
+ return { success: true, output: "Conversation history cleared.", elapsed_ms: Date.now() - start };
73
+ }
74
+ if (cmd === "/sessions") {
75
+ const registry = createRuntimeSessionRegistry({ stateManager: this.host.deps.stateManager });
76
+ const snapshot = await registry.snapshot();
77
+ return { success: true, output: formatRuntimeSessionsList(snapshot), elapsed_ms: Date.now() - start };
78
+ }
79
+ if (cmd === "/history") {
80
+ const catalog = new ChatSessionCatalog(this.host.deps.stateManager);
81
+ const selector = trimmed.slice("/history".length).trim();
82
+ const history = this.host.getHistory();
83
+ const session = selector
84
+ ? await catalog.loadSessionBySelector(selector)
85
+ : history
86
+ ? await catalog.loadSession(history.getSessionId())
87
+ : null;
88
+ if (!session) {
89
+ return { success: false, output: "No chat session history found.", elapsed_ms: Date.now() - start };
90
+ }
91
+ return { success: true, output: this.formatHistory(session), elapsed_ms: Date.now() - start };
92
+ }
93
+ if (cmd === "/title") {
94
+ const title = trimmed.slice("/title".length).trim();
95
+ if (!title) {
96
+ return { success: false, output: "Usage: /title <title>", elapsed_ms: Date.now() - start };
97
+ }
98
+ const history = this.host.getHistory();
99
+ if (!history) {
100
+ return { success: false, output: "No active chat session to rename.", elapsed_ms: Date.now() - start };
101
+ }
102
+ const catalog = new ChatSessionCatalog(this.host.deps.stateManager);
103
+ history.setTitle(title);
104
+ await history.persist();
105
+ await catalog.renameSession(history.getSessionId(), title);
106
+ return { success: true, output: `Renamed chat session to "${title}".`, elapsed_ms: Date.now() - start };
107
+ }
108
+ if (cmd === "/cleanup") {
109
+ const catalog = new ChatSessionCatalog(this.host.deps.stateManager);
110
+ const dryRun = trimmed.includes("--dry-run");
111
+ const report = await catalog.cleanupSessions({
112
+ dryRun,
113
+ activeSessionId: this.host.getHistory()?.getSessionId(),
114
+ });
115
+ const verb = dryRun ? "would remove" : "removed";
116
+ return {
117
+ success: true,
118
+ output: `Chat session cleanup ${verb} ${report.removedSessionIds.length} session(s).`,
119
+ elapsed_ms: Date.now() - start,
120
+ };
121
+ }
122
+ if (cmd === "/compact") {
123
+ return this.handleCompact(start);
124
+ }
125
+ if (cmd === "/status") {
126
+ return this.handleStatus(trimmed.slice("/status".length).trim(), start);
127
+ }
128
+ if (cmd === "/goals") {
129
+ return this.handleGoals(start);
130
+ }
131
+ if (cmd === "/tasks") {
132
+ return this.handleTasks(trimmed.slice("/tasks".length).trim(), start);
133
+ }
134
+ if (cmd === "/task") {
135
+ return this.handleTask(trimmed.slice("/task".length).trim(), start);
136
+ }
137
+ if (cmd === "/config") {
138
+ return this.handleConfig(start);
139
+ }
140
+ if (cmd === "/model") {
141
+ return this.handleModel(start);
142
+ }
143
+ if (cmd === "/permissions") {
144
+ return this.handlePermissions(trimmed.slice("/permissions".length).trim(), start);
145
+ }
146
+ if (cmd === "/plugins") {
147
+ return this.handlePlugins(start);
148
+ }
149
+ if (cmd === "/usage") {
150
+ return this.handleUsage(trimmed.slice("/usage".length).trim(), start);
151
+ }
152
+ if (cmd === "/context" || cmd === "/working-memory") {
153
+ return this.handleContext(start, cwd);
154
+ }
155
+ if (cmd === "/review") {
156
+ return this.handleReview(start);
157
+ }
158
+ if (cmd === "/fork") {
159
+ return this.handleFork(trimmed.slice("/fork".length).trim(), start);
160
+ }
161
+ if (cmd === "/undo") {
162
+ return this.handleUndo(start);
163
+ }
164
+ if (cmd === "/retry") {
165
+ return {
166
+ success: false,
167
+ output: [
168
+ "/retry is not supported yet.",
169
+ "",
170
+ formatFailureRecovery({
171
+ kind: "runtime_interruption",
172
+ label: "Retry unavailable",
173
+ summary: "PulSeed does not yet have a safe replay contract for the previous turn.",
174
+ nextActions: [
175
+ "Use /review to inspect any current diff before continuing.",
176
+ "Use /resume when PulSeed reports resumable agent-loop state.",
177
+ "Ask for the exact next step to rerun instead of replaying the full turn.",
178
+ ],
179
+ }),
180
+ ].join("\n"),
181
+ elapsed_ms: Date.now() - start,
182
+ };
183
+ }
184
+ if (cmd === "/exit") {
185
+ return { success: true, output: "Exiting chat mode.", elapsed_ms: Date.now() - start };
186
+ }
187
+ if (cmd === "/track") {
188
+ return this.handleTrack(start);
189
+ }
190
+ if (cmd === "/tend") {
191
+ const args = trimmed.slice("/tend".length).trim();
192
+ return this.handleTend(args, start);
193
+ }
194
+ if (this.host.getPendingTend() !== null) {
195
+ return this.handleTendConfirmation(trimmed, start);
196
+ }
197
+ return {
198
+ success: false,
199
+ output: `Unknown command: ${input.trim()}. Type /help for available commands.`,
200
+ elapsed_ms: Date.now() - start,
201
+ };
202
+ }
203
+ async handleTendConfirmation(input, start) {
204
+ const pending = this.host.getPendingTend();
205
+ this.host.setPendingTend(null);
206
+ const normalized = input.trim().toLowerCase();
207
+ const confirmed = normalized === "" || normalized === "y" || normalized === "yes";
208
+ if (!confirmed) {
209
+ return {
210
+ success: true,
211
+ output: "Tend cancelled. Continue chatting to refine your goal, then try /tend again.",
212
+ elapsed_ms: Date.now() - start,
213
+ };
214
+ }
215
+ if (!this.host.deps.daemonClient) {
216
+ return {
217
+ success: false,
218
+ output: "Daemon client not available.",
219
+ elapsed_ms: Date.now() - start,
220
+ };
221
+ }
222
+ const { goalId, maxIterations } = pending;
223
+ let subscriber = null;
224
+ if (this.host.deps.daemonBaseUrl && !this.host.getActiveSubscribers().has(goalId)) {
225
+ subscriber = new EventSubscriber(this.host.deps.daemonBaseUrl, goalId, "normal");
226
+ this.host.getActiveSubscribers().set(goalId, subscriber);
227
+ subscriber.on("notification", (notification) => {
228
+ const n = notification;
229
+ this.host.deps.onNotification?.(n.message);
230
+ this.host.onNotification?.(n.message);
231
+ });
232
+ subscriber.on("chat_event", (event) => {
233
+ this.host.emitEvent(event);
234
+ });
235
+ try {
236
+ await subscriber.subscribeReady();
237
+ }
238
+ catch (err) {
239
+ subscriber.unsubscribe();
240
+ this.host.getActiveSubscribers().delete(goalId);
241
+ const msg = err instanceof Error ? err.message : String(err);
242
+ return {
243
+ success: false,
244
+ output: `Daemon event stream unavailable: ${msg}. Goal was not started.`,
245
+ elapsed_ms: Date.now() - start,
246
+ };
247
+ }
248
+ }
249
+ try {
250
+ const tendDeps = this.buildTendDeps(this.host.deps.llmClient, this.host.deps.goalNegotiator, this.host.deps.daemonClient);
251
+ const result = await new TendCommand().startAcceptedGoal(goalId, maxIterations, tendDeps);
252
+ if (!result.success) {
253
+ if (subscriber) {
254
+ subscriber.unsubscribe();
255
+ this.host.getActiveSubscribers().delete(goalId);
256
+ }
257
+ return {
258
+ success: false,
259
+ output: result.message,
260
+ elapsed_ms: Date.now() - start,
261
+ };
262
+ }
263
+ const shortId = goalId.length > 12 ? goalId.slice(0, 12) : goalId;
264
+ return {
265
+ success: true,
266
+ output: `[tend] ${shortId}: Started — daemon is now tending your goal${maxIterations !== undefined ? ` (max ${maxIterations} iterations)` : ""}.\nBackground run: ${result.backgroundRunId}\nRun 'pulseed status' to check progress.`,
267
+ elapsed_ms: Date.now() - start,
268
+ };
269
+ }
270
+ catch (err) {
271
+ if (subscriber) {
272
+ subscriber.unsubscribe();
273
+ this.host.getActiveSubscribers().delete(goalId);
274
+ }
275
+ const msg = err instanceof Error ? err.message : String(err);
276
+ return {
277
+ success: false,
278
+ output: `Daemon unavailable: ${msg}. Start the daemon with 'pulseed daemon start' first.`,
279
+ elapsed_ms: Date.now() - start,
280
+ };
281
+ }
282
+ }
283
+ formatHistory(session) {
284
+ return formatHistory(session);
285
+ }
286
+ async loadGoals() {
287
+ return loadGoals(this.host.deps.stateManager);
288
+ }
289
+ activeGoals(goals) {
290
+ return activeGoals(goals);
291
+ }
292
+ formatGoalLine(goal) {
293
+ return formatGoalLine(goal);
294
+ }
295
+ async handleStatus(args, start) {
296
+ if (args) {
297
+ const goal = await this.host.deps.stateManager.loadGoal(args);
298
+ if (!goal) {
299
+ return { success: false, output: `Goal not found: ${args}`, elapsed_ms: Date.now() - start };
300
+ }
301
+ const lines = [
302
+ `Goal status: ${goal.title}`,
303
+ `ID: ${goal.id}`,
304
+ `Status: ${goal.status}`,
305
+ `Loop: ${goal.loop_status}`,
306
+ `Updated: ${goal.updated_at}`,
307
+ `Children: ${goal.children_ids.length}`,
308
+ `Dimensions:`,
309
+ ...goal.dimensions.map((dimension) => `- ${dimension.name}: current=${String(dimension.current_value)}, threshold=${JSON.stringify(dimension.threshold)}, confidence=${dimension.confidence}`),
310
+ ];
311
+ return { success: true, output: lines.join("\n"), elapsed_ms: Date.now() - start };
312
+ }
313
+ const registry = createRuntimeSessionRegistry({ stateManager: this.host.deps.stateManager });
314
+ const [goals, runtimeSnapshot] = await Promise.all([
315
+ this.loadGoals(),
316
+ registry.snapshot(),
317
+ ]);
318
+ const active = this.activeGoals(goals);
319
+ const runtimeStatus = formatRuntimeStatus(runtimeSnapshot);
320
+ if (active.length === 0) {
321
+ return { success: true, output: `No active goals found.\n\n${runtimeStatus}`, elapsed_ms: Date.now() - start };
322
+ }
323
+ return {
324
+ success: true,
325
+ output: `Active goals:\n${active.map((goal) => this.formatGoalLine(goal)).join("\n")}\n\n${runtimeStatus}`,
326
+ elapsed_ms: Date.now() - start,
327
+ };
328
+ }
329
+ async handleGoals(start) {
330
+ const goals = await this.loadGoals();
331
+ if (goals.length === 0) {
332
+ return { success: true, output: "No goals found.", elapsed_ms: Date.now() - start };
333
+ }
334
+ return {
335
+ success: true,
336
+ output: `Goals:\n${goals.map((goal) => this.formatGoalLine(goal)).join("\n")}`,
337
+ elapsed_ms: Date.now() - start,
338
+ };
339
+ }
340
+ async readTasksForGoal(goalId) {
341
+ return readTasksForGoalFromState(this.host.deps.stateManager, goalId);
342
+ }
343
+ async resolveGoalForTasks(selector) {
344
+ return resolveGoalForTasks(this.host.deps.stateManager, selector);
345
+ }
346
+ formatTaskLine(task) {
347
+ return formatTaskLine(task);
348
+ }
349
+ async handleTasks(args, start) {
350
+ const resolved = await this.resolveGoalForTasks(args);
351
+ if (resolved.error || !resolved.goalId) {
352
+ return { success: false, output: resolved.error ?? "Usage: /tasks <goal-id>", elapsed_ms: Date.now() - start };
353
+ }
354
+ const tasks = await this.readTasksForGoal(resolved.goalId);
355
+ if (tasks.length === 0) {
356
+ return { success: true, output: `No tasks found for goal "${resolved.goalId}".`, elapsed_ms: Date.now() - start };
357
+ }
358
+ return {
359
+ success: true,
360
+ output: `Tasks for goal ${resolved.goalId}:\n${tasks.map((task) => this.formatTaskLine(task)).join("\n")}`,
361
+ elapsed_ms: Date.now() - start,
362
+ };
363
+ }
364
+ parseTaskArgs(args) {
365
+ return parseTaskArgs(args);
366
+ }
367
+ async findTask(taskId, goalId) {
368
+ return findTask(this.host.deps.stateManager, taskId, goalId);
369
+ }
370
+ formatTask(task) {
371
+ return formatTask(task);
372
+ }
373
+ async handleTask(args, start) {
374
+ const { taskId, goalId } = this.parseTaskArgs(args);
375
+ if (!taskId) {
376
+ return { success: false, output: "Usage: /task <task-id> [goal-id]", elapsed_ms: Date.now() - start };
377
+ }
378
+ const found = await this.findTask(taskId, goalId);
379
+ if (found.matches.length > 1) {
380
+ return {
381
+ success: false,
382
+ output: `Task selector "${taskId}" matched multiple goals. Use /task ${taskId} <goal-id>.\n${found.matches.map((match) => `- ${match.goalId}`).join("\n")}`,
383
+ elapsed_ms: Date.now() - start,
384
+ };
385
+ }
386
+ if (!found.task) {
387
+ const suffix = goalId ? ` for goal "${goalId}"` : "";
388
+ return { success: false, output: `Task not found: ${taskId}${suffix}`, elapsed_ms: Date.now() - start };
389
+ }
390
+ return { success: true, output: this.formatTask(found.task), elapsed_ms: Date.now() - start };
391
+ }
392
+ async readProviderConfigSummary() {
393
+ return readProviderConfigSummary(this.host.deps.stateManager);
394
+ }
395
+ formatConfig(config) {
396
+ return formatConfig(config);
397
+ }
398
+ async handleConfig(start) {
399
+ const config = await this.readProviderConfigSummary();
400
+ return { success: true, output: `Provider configuration:\n${this.formatConfig(config)}`, elapsed_ms: Date.now() - start };
401
+ }
402
+ async handleModel(start) {
403
+ const config = await this.readProviderConfigSummary();
404
+ return {
405
+ success: true,
406
+ output: `Model: ${config.model}\nProvider: ${config.provider}\nAdapter: ${config.adapter}`,
407
+ elapsed_ms: Date.now() - start,
408
+ };
409
+ }
410
+ async handlePlugins(start) {
411
+ if (!this.host.deps.pluginLoader) {
412
+ return { success: true, output: "Plugin information is not available in this chat session.", elapsed_ms: Date.now() - start };
413
+ }
414
+ try {
415
+ const plugins = await this.host.deps.pluginLoader.loadAll();
416
+ if (plugins.length === 0) {
417
+ return { success: true, output: "No plugins found.", elapsed_ms: Date.now() - start };
418
+ }
419
+ return {
420
+ success: true,
421
+ output: `Plugins:\n${plugins.map((plugin) => `${plugin.name} - ${plugin.type ?? "unknown"} - ${plugin.enabled === false ? "disabled" : "enabled"}`).join("\n")}`,
422
+ elapsed_ms: Date.now() - start,
423
+ };
424
+ }
425
+ catch (err) {
426
+ const message = err instanceof Error ? err.message : String(err);
427
+ return { success: true, output: `Plugin information is unavailable: ${message}`, elapsed_ms: Date.now() - start };
428
+ }
429
+ }
430
+ zeroUsageCounter() {
431
+ return zeroUsageCounter();
432
+ }
433
+ normalizeUsageCounter(usage) {
434
+ return normalizeUsageCounter(usage);
435
+ }
436
+ usageFromLLMResponse(response) {
437
+ return usageFromLLMResponse(response);
438
+ }
439
+ hasUsage(usage) {
440
+ return hasUsage(usage);
441
+ }
442
+ formatUsageCounter(prefix, usage) {
443
+ return formatUsageCounter(prefix, usage);
444
+ }
445
+ async handleUsage(args, start) {
446
+ const tokens = args.trim().split(/\s+/).filter(Boolean);
447
+ const scope = tokens[0]?.toLowerCase();
448
+ if (!scope || scope === "session") {
449
+ const history = this.host.getHistory();
450
+ if (!history) {
451
+ return { success: false, output: "No active chat session. Start a session and run work before /usage.", elapsed_ms: Date.now() - start };
452
+ }
453
+ const session = history.getSessionData();
454
+ const totals = this.normalizeUsageCounter(session.usage?.totals ?? this.zeroUsageCounter());
455
+ const lines = [
456
+ `Usage summary (session ${session.id})`,
457
+ ...this.formatUsageCounter("Session", totals),
458
+ ];
459
+ const phaseEntries = Object.entries(session.usage?.byPhase ?? {})
460
+ .map(([phase, usage]) => ({ phase, usage: this.normalizeUsageCounter(usage) }))
461
+ .filter((entry) => this.hasUsage(entry.usage))
462
+ .sort((left, right) => right.usage.totalTokens - left.usage.totalTokens);
463
+ if (phaseEntries.length > 0) {
464
+ lines.push("");
465
+ lines.push("By phase:");
466
+ for (const entry of phaseEntries) {
467
+ lines.push(`- ${entry.phase}: ${entry.usage.totalTokens} (in=${entry.usage.inputTokens}, out=${entry.usage.outputTokens})`);
468
+ }
469
+ }
470
+ return { success: true, output: lines.join("\n"), elapsed_ms: Date.now() - start };
471
+ }
472
+ if (scope === "goal" || scope === "daemon") {
473
+ const goalId = tokens[1] ?? this.host.deps.goalId;
474
+ if (!goalId) {
475
+ return { success: false, output: "Usage: /usage goal <goal-id>", elapsed_ms: Date.now() - start };
476
+ }
477
+ const lines = await buildGoalUsageSummary(this.host.deps.stateManager, goalId);
478
+ return { success: true, output: lines.join("\n"), elapsed_ms: Date.now() - start };
479
+ }
480
+ if (scope === "schedule") {
481
+ const period = tokens[1] ?? "7d";
482
+ try {
483
+ const lines = await buildScheduleUsageSummary(this.host.deps.stateManager, period);
484
+ return { success: true, output: lines.join("\n"), elapsed_ms: Date.now() - start };
485
+ }
486
+ catch (err) {
487
+ const message = err instanceof Error ? err.message : String(err);
488
+ return { success: false, output: `Usage: /usage schedule [24h|7d|2w]\nError: ${message}`, elapsed_ms: Date.now() - start };
489
+ }
490
+ }
491
+ return {
492
+ success: false,
493
+ output: "Usage: /usage [session|goal <goal-id>|daemon <goal-id>|schedule [24h|7d|2w]]",
494
+ elapsed_ms: Date.now() - start,
495
+ };
496
+ }
497
+ deterministicChatSummary(messages) {
498
+ return deterministicChatSummary(messages);
499
+ }
500
+ async summarizeChatForCompaction(messages, existingSummary) {
501
+ const content = [
502
+ existingSummary ? `Previous summary:\n${existingSummary}` : "",
503
+ `Messages to summarize:\n${messages.map((message) => `${message.role}: ${message.content}`).join("\n")}`,
504
+ ].filter(Boolean).join("\n\n");
505
+ if (this.host.deps.llmClient) {
506
+ try {
507
+ const response = await this.host.deps.llmClient.sendMessage([
508
+ { role: "user", content: `Summarize this chat history for later continuation. Preserve decisions, open tasks, constraints, and user preferences. Keep it concise.\n\n${content}` },
509
+ ], { max_tokens: 700, model_tier: "light" });
510
+ if (response.content.trim())
511
+ return { summary: response.content.trim(), usedLlm: true };
512
+ }
513
+ catch {
514
+ // Fall back to deterministic summary below.
515
+ }
516
+ }
517
+ const fallback = [
518
+ existingSummary ? `Previous summary:\n${existingSummary}` : "",
519
+ "Extractive summary:",
520
+ this.deterministicChatSummary(messages),
521
+ ].filter(Boolean).join("\n\n");
522
+ return { summary: fallback, usedLlm: false };
523
+ }
524
+ async handleCompact(start) {
525
+ const history = this.host.getHistory();
526
+ if (!history) {
527
+ return { success: false, output: "No active chat session to compact.", elapsed_ms: Date.now() - start };
528
+ }
529
+ const session = history.getSessionData();
530
+ if (session.messages.length <= 4) {
531
+ return { success: true, output: "Chat history is already compact. No messages were removed.", elapsed_ms: Date.now() - start };
532
+ }
533
+ const olderMessages = session.messages.slice(0, -4);
534
+ const { summary, usedLlm } = await this.summarizeChatForCompaction(olderMessages, session.compactionSummary);
535
+ const { before, after } = await history.compact(summary, 4);
536
+ const method = usedLlm ? "LLM summary" : "deterministic summary";
537
+ return {
538
+ success: true,
539
+ output: `Compacted chat history with ${method}. Persisted ${before} message(s) down to ${after}; the latest user/assistant turns were kept.`,
540
+ elapsed_ms: Date.now() - start,
541
+ };
542
+ }
543
+ async handleContext(start, cwdOverride) {
544
+ const cwd = this.host.getSessionCwd() ?? (cwdOverride ? resolveGitRoot(cwdOverride) : process.cwd());
545
+ const session = this.host.getHistory()?.getSessionData() ?? null;
546
+ const messages = session?.messages ?? [];
547
+ const policy = await this.host.getSessionExecutionPolicy();
548
+ const recentMessages = messages.slice(-6);
549
+ const userTurns = messages.filter((message) => message.role === "user").length;
550
+ const assistantTurns = messages.filter((message) => message.role === "assistant").length;
551
+ const compactionSummary = session?.compactionSummary?.trim() ?? "";
552
+ const agentLoopPath = this.host.getNativeAgentLoopStatePath() ?? session?.agentLoopStatePath ?? null;
553
+ const replyTarget = this.host.getRuntimeControlContext()?.replyTarget ?? this.host.deps.runtimeReplyTarget ?? null;
554
+ const routeCapabilities = {
555
+ hasAgentLoop: this.host.deps.chatAgentLoopRunner !== undefined,
556
+ hasToolLoop: this.host.deps.llmClient !== undefined,
557
+ hasRuntimeControlService: this.host.deps.runtimeControlService !== undefined,
558
+ };
559
+ const replyTargetParts = replyTarget
560
+ ? [replyTarget.surface, replyTarget.platform, replyTarget.conversation_id].filter(Boolean)
561
+ : [];
562
+ const contextLines = [
563
+ "Working context",
564
+ "",
565
+ "Session",
566
+ `- session_id: ${this.host.getHistory()?.getSessionId() ?? "none"}`,
567
+ `- cwd: ${cwd}`,
568
+ `- messages: ${messages.length} (${userTurns} user, ${assistantTurns} assistant)`,
569
+ `- recent_turns_retained: ${recentMessages.length}`,
570
+ `- compaction_summary: ${compactionSummary ? "present" : "none"}`,
571
+ `- agentloop_state_path: ${agentLoopPath ?? "none"}`,
572
+ "",
573
+ "Turn context",
574
+ `- last_selected_route: ${formatRoute(this.host.getLastSelectedRoute())}`,
575
+ `- reply_target: ${replyTargetParts.length > 0 ? replyTargetParts.join(":") : "none"}`,
576
+ `- route_capabilities: agent_loop=${routeCapabilities.hasAgentLoop}, tool_loop=${routeCapabilities.hasToolLoop}, runtime_control=${routeCapabilities.hasRuntimeControlService}`,
577
+ "",
578
+ "Working assumptions",
579
+ "- this view exposes operational context, not hidden reasoning",
580
+ "- last_selected_route describes the most recent non-command turn in this ChatRunner",
581
+ "- future turns may select a different route based on the next input",
582
+ "",
583
+ "Active constraints",
584
+ ...summarizeExecutionPolicy(policy).split("\n").map((line) => `- ${line}`),
585
+ "",
586
+ "Included context",
587
+ "- current session cwd and execution policy because they constrain tool and route behavior",
588
+ `- ${recentMessages.length} latest persisted message(s)`,
589
+ `- ${compactionSummary ? "compacted older chat summary because older turns were summarized" : "no compacted older chat summary because none is stored"}`,
590
+ `- ${agentLoopPath ? "native agent-loop resume path because this session can persist agent-loop state" : "no native agent-loop resume path because none is active"}`,
591
+ "",
592
+ "Not included",
593
+ "- hidden reasoning or private model chain-of-thought",
594
+ "- raw state files unless a command explicitly reads them",
595
+ "- older chat turns beyond the retained window unless compacted into the session summary",
596
+ ];
597
+ return {
598
+ success: true,
599
+ output: contextLines.join("\n"),
600
+ elapsed_ms: Date.now() - start,
601
+ };
602
+ }
603
+ async handleTrack(start) {
604
+ if (!this.host.deps.escalationHandler) {
605
+ return {
606
+ success: false,
607
+ output: "Escalation not available — missing LLM configuration",
608
+ elapsed_ms: Date.now() - start,
609
+ };
610
+ }
611
+ if (!this.host.getHistory() || this.host.getHistory().getMessages().length === 0) {
612
+ return {
613
+ success: false,
614
+ output: "No conversation to escalate. Chat first, then /track.",
615
+ elapsed_ms: Date.now() - start,
616
+ };
617
+ }
618
+ try {
619
+ const result = await this.host.deps.escalationHandler.escalateToGoal(this.host.getHistory());
620
+ return {
621
+ success: true,
622
+ output: `Goal created: ${result.title} (ID: ${result.goalId})\nRun: pulseed run --goal ${result.goalId} --yes`,
623
+ elapsed_ms: Date.now() - start,
624
+ };
625
+ }
626
+ catch (err) {
627
+ const message = err instanceof Error ? err.message : String(err);
628
+ return {
629
+ success: false,
630
+ output: `Escalation failed: ${message}`,
631
+ elapsed_ms: Date.now() - start,
632
+ };
633
+ }
634
+ }
635
+ async handlePermissions(args, start) {
636
+ const policy = await this.host.getSessionExecutionPolicy();
637
+ if (!args) {
638
+ return {
639
+ success: true,
640
+ output: summarizeExecutionPolicy(policy),
641
+ elapsed_ms: Date.now() - start,
642
+ };
643
+ }
644
+ const tokens = args.toLowerCase().split(/\s+/).filter(Boolean);
645
+ let nextPolicy = policy;
646
+ for (let index = 0; index < tokens.length; index++) {
647
+ const token = tokens[index];
648
+ if (token === "read-only" || token === "readonly" || token === "read_only") {
649
+ nextPolicy = withExecutionPolicyOverrides(nextPolicy, { sandboxMode: "read_only" });
650
+ continue;
651
+ }
652
+ if (token === "workspace-write" || token === "workspace_write") {
653
+ nextPolicy = withExecutionPolicyOverrides(nextPolicy, { sandboxMode: "workspace_write" });
654
+ continue;
655
+ }
656
+ if (token === "full-access" || token === "danger-full-access" || token === "danger_full_access") {
657
+ nextPolicy = withExecutionPolicyOverrides(nextPolicy, { sandboxMode: "danger_full_access" });
658
+ continue;
659
+ }
660
+ if (token === "network" && tokens[index + 1]) {
661
+ nextPolicy = withExecutionPolicyOverrides(nextPolicy, { networkAccess: tokens[index + 1] === "on" });
662
+ index += 1;
663
+ continue;
664
+ }
665
+ if (token === "approval" && tokens[index + 1]) {
666
+ const approvalPolicy = tokens[index + 1];
667
+ if (approvalPolicy === "never" || approvalPolicy === "on_request" || approvalPolicy === "untrusted") {
668
+ nextPolicy = withExecutionPolicyOverrides(nextPolicy, { approvalPolicy });
669
+ index += 1;
670
+ continue;
671
+ }
672
+ }
673
+ return {
674
+ success: false,
675
+ output: "Usage: /permissions [read-only|workspace-write|full-access] [network on|off] [approval on_request|never|untrusted]",
676
+ elapsed_ms: Date.now() - start,
677
+ };
678
+ }
679
+ const runner = this.host;
680
+ if (typeof runner.setSessionExecutionPolicy === "function") {
681
+ runner.setSessionExecutionPolicy(nextPolicy);
682
+ }
683
+ else {
684
+ runner.sessionExecutionPolicy = nextPolicy;
685
+ }
686
+ return {
687
+ success: true,
688
+ output: summarizeExecutionPolicy(nextPolicy),
689
+ elapsed_ms: Date.now() - start,
690
+ };
691
+ }
692
+ async handleReview(start) {
693
+ const cwd = this.host.getSessionCwd() ?? process.cwd();
694
+ const diffStat = await checkGitChanges(cwd);
695
+ const reviewPolicy = withExecutionPolicyOverrides(await this.host.getSessionExecutionPolicy(), {
696
+ sandboxMode: "read_only",
697
+ approvalPolicy: "never",
698
+ });
699
+ if (this.host.deps.reviewAgentLoopRunner) {
700
+ const review = await this.host.deps.reviewAgentLoopRunner.execute({
701
+ cwd,
702
+ diffStat,
703
+ executionPolicy: reviewPolicy,
704
+ });
705
+ return { success: review.success, output: review.output, elapsed_ms: Date.now() - start };
706
+ }
707
+ const output = [
708
+ "Review summary",
709
+ diffStat ? diffStat : "No uncommitted changes detected.",
710
+ "",
711
+ "Execution policy",
712
+ summarizeExecutionPolicy(reviewPolicy),
713
+ ].join("\n");
714
+ return { success: true, output, elapsed_ms: Date.now() - start };
715
+ }
716
+ async handleFork(title, start) {
717
+ const cwd = this.host.getSessionCwd() ?? process.cwd();
718
+ const sessionId = crypto.randomUUID();
719
+ const baseSession = this.host.getHistory()?.getSessionData() ?? {
720
+ id: sessionId,
721
+ cwd,
722
+ createdAt: new Date().toISOString(),
723
+ updatedAt: new Date().toISOString(),
724
+ messages: [],
725
+ };
726
+ const now = new Date().toISOString();
727
+ const forkedSession = {
728
+ ...baseSession,
729
+ id: sessionId,
730
+ createdAt: now,
731
+ updatedAt: now,
732
+ title: title || (baseSession.title ? `${baseSession.title} (fork)` : "Forked session"),
733
+ };
734
+ this.host.setHistory(ChatHistory.fromSession(this.host.deps.stateManager, forkedSession));
735
+ this.host.setSessionCwd(resolveGitRoot(cwd));
736
+ this.host.setSessionActive(true);
737
+ this.host.setNativeAgentLoopStatePath(`chat/agentloop/${sessionId}.state.json`);
738
+ this.host.getHistory().resetAgentLoopState(this.host.getNativeAgentLoopStatePath());
739
+ await this.host.getHistory().persist();
740
+ const runner = this.host;
741
+ runner.resetSessionExecutionPolicy?.();
742
+ return {
743
+ success: true,
744
+ output: `Forked chat session as ${sessionId}.`,
745
+ elapsed_ms: Date.now() - start,
746
+ };
747
+ }
748
+ async handleUndo(start) {
749
+ const history = this.host.getHistory();
750
+ if (!history) {
751
+ return { success: false, output: "No active chat session to undo.", elapsed_ms: Date.now() - start };
752
+ }
753
+ const removed = await history.removeLastTurn();
754
+ if (removed === 0) {
755
+ return { success: false, output: "No chat turn to undo.", elapsed_ms: Date.now() - start };
756
+ }
757
+ return {
758
+ success: true,
759
+ output: `Removed ${removed} message(s) from chat history. File changes were not reverted.`,
760
+ elapsed_ms: Date.now() - start,
761
+ };
762
+ }
763
+ async handleTend(args, start) {
764
+ if (!this.host.deps.llmClient) {
765
+ return {
766
+ success: false,
767
+ output: "Tend not available — missing LLM configuration",
768
+ elapsed_ms: Date.now() - start,
769
+ };
770
+ }
771
+ if (!this.host.deps.goalNegotiator) {
772
+ return {
773
+ success: false,
774
+ output: "Tend not available — missing goal negotiator",
775
+ elapsed_ms: Date.now() - start,
776
+ };
777
+ }
778
+ if (!this.host.deps.daemonClient) {
779
+ return {
780
+ success: false,
781
+ output: "Tend not available — daemon client not configured. Start the daemon with 'pulseed daemon start' first.",
782
+ elapsed_ms: Date.now() - start,
783
+ };
784
+ }
785
+ const tendCommand = new TendCommand();
786
+ const result = await tendCommand.execute(args, this.buildTendDeps(this.host.deps.llmClient, this.host.deps.goalNegotiator, this.host.deps.daemonClient));
787
+ if (result.needsConfirmation && result.goalId) {
788
+ this.host.setPendingTend({ goalId: result.goalId, maxIterations: result.maxIterations });
789
+ return {
790
+ success: true,
791
+ output: result.confirmation ?? result.message,
792
+ elapsed_ms: Date.now() - start,
793
+ };
794
+ }
795
+ return {
796
+ success: result.success,
797
+ output: result.message,
798
+ elapsed_ms: Date.now() - start,
799
+ };
800
+ }
801
+ buildTendDeps(llmClient, goalNegotiator, daemonClient) {
802
+ return {
803
+ llmClient,
804
+ goalNegotiator,
805
+ daemonClient,
806
+ stateManager: this.host.deps.stateManager,
807
+ chatHistory: this.host.getHistory()?.getMessages() ?? [],
808
+ sessionId: this.host.getHistory()?.getSessionId() ?? null,
809
+ workspace: this.host.getSessionCwd() ?? process.cwd(),
810
+ replyTarget: this.host.getRuntimeControlContext()?.replyTarget ?? this.host.deps.runtimeReplyTarget ?? null,
811
+ };
812
+ }
813
+ }
814
+ //# sourceMappingURL=chat-runner-commands.js.map