pulseed 0.5.3 → 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 (512) 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/interface/chat/chat-history.d.ts +129 -0
  14. package/dist/interface/chat/chat-history.d.ts.map +1 -1
  15. package/dist/interface/chat/chat-history.js +135 -0
  16. package/dist/interface/chat/chat-history.js.map +1 -1
  17. package/dist/interface/chat/chat-runner-command-helpers.d.ts +50 -0
  18. package/dist/interface/chat/chat-runner-command-helpers.d.ts.map +1 -0
  19. package/dist/interface/chat/chat-runner-command-helpers.js +189 -0
  20. package/dist/interface/chat/chat-runner-command-helpers.js.map +1 -0
  21. package/dist/interface/chat/chat-runner-commands.d.ts +76 -0
  22. package/dist/interface/chat/chat-runner-commands.d.ts.map +1 -0
  23. package/dist/interface/chat/chat-runner-commands.js +814 -0
  24. package/dist/interface/chat/chat-runner-commands.js.map +1 -0
  25. package/dist/interface/chat/chat-runner-event-bridge.d.ts +53 -0
  26. package/dist/interface/chat/chat-runner-event-bridge.d.ts.map +1 -0
  27. package/dist/interface/chat/chat-runner-event-bridge.js +311 -0
  28. package/dist/interface/chat/chat-runner-event-bridge.js.map +1 -0
  29. package/dist/interface/chat/chat-runner-routes.d.ts +67 -0
  30. package/dist/interface/chat/chat-runner-routes.d.ts.map +1 -0
  31. package/dist/interface/chat/chat-runner-routes.js +594 -0
  32. package/dist/interface/chat/chat-runner-routes.js.map +1 -0
  33. package/dist/interface/chat/chat-runner-runtime.d.ts +37 -0
  34. package/dist/interface/chat/chat-runner-runtime.d.ts.map +1 -0
  35. package/dist/interface/chat/chat-runner-runtime.js +236 -0
  36. package/dist/interface/chat/chat-runner-runtime.js.map +1 -0
  37. package/dist/interface/chat/chat-runner-state.d.ts +20 -0
  38. package/dist/interface/chat/chat-runner-state.d.ts.map +1 -0
  39. package/dist/interface/chat/chat-runner-state.js +157 -0
  40. package/dist/interface/chat/chat-runner-state.js.map +1 -0
  41. package/dist/interface/chat/chat-runner-support.d.ts +15 -0
  42. package/dist/interface/chat/chat-runner-support.d.ts.map +1 -0
  43. package/dist/interface/chat/chat-runner-support.js +116 -0
  44. package/dist/interface/chat/chat-runner-support.js.map +1 -0
  45. package/dist/interface/chat/chat-runner.d.ts +10 -153
  46. package/dist/interface/chat/chat-runner.d.ts.map +1 -1
  47. package/dist/interface/chat/chat-runner.js +299 -2642
  48. package/dist/interface/chat/chat-runner.js.map +1 -1
  49. package/dist/interface/chat/chat-session-store.d.ts +32 -0
  50. package/dist/interface/chat/chat-session-store.d.ts.map +1 -1
  51. package/dist/interface/chat/chat-session-store.js +100 -10
  52. package/dist/interface/chat/chat-session-store.js.map +1 -1
  53. package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
  54. package/dist/interface/chat/cross-platform-session.js +2 -5
  55. package/dist/interface/chat/cross-platform-session.js.map +1 -1
  56. package/dist/interface/chat/event-subscriber.d.ts.map +1 -1
  57. package/dist/interface/chat/event-subscriber.js +41 -0
  58. package/dist/interface/chat/event-subscriber.js.map +1 -1
  59. package/dist/interface/chat/ingress-router.d.ts +0 -25
  60. package/dist/interface/chat/ingress-router.d.ts.map +1 -1
  61. package/dist/interface/chat/ingress-router.js +12 -85
  62. package/dist/interface/chat/ingress-router.js.map +1 -1
  63. package/dist/interface/chat/tend-command.d.ts.map +1 -1
  64. package/dist/interface/chat/tend-command.js +2 -0
  65. package/dist/interface/chat/tend-command.js.map +1 -1
  66. package/dist/interface/cli/commands/daemon-shared.d.ts +32 -0
  67. package/dist/interface/cli/commands/daemon-shared.d.ts.map +1 -0
  68. package/dist/interface/cli/commands/daemon-shared.js +120 -0
  69. package/dist/interface/cli/commands/daemon-shared.js.map +1 -0
  70. package/dist/interface/cli/commands/daemon.d.ts +2 -2
  71. package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
  72. package/dist/interface/cli/commands/daemon.js +4 -120
  73. package/dist/interface/cli/commands/daemon.js.map +1 -1
  74. package/dist/interface/cli/commands/schedule/history.d.ts.map +1 -1
  75. package/dist/interface/cli/commands/schedule/history.js +5 -1
  76. package/dist/interface/cli/commands/schedule/history.js.map +1 -1
  77. package/dist/interface/cli/commands/schedule.js +34 -4
  78. package/dist/interface/cli/commands/schedule.js.map +1 -1
  79. package/dist/interface/tui/app.d.ts.map +1 -1
  80. package/dist/interface/tui/app.js +14 -1
  81. package/dist/interface/tui/app.js.map +1 -1
  82. package/dist/interface/tui/chat/suggestions.d.ts.map +1 -1
  83. package/dist/interface/tui/chat/suggestions.js +118 -4
  84. package/dist/interface/tui/chat/suggestions.js.map +1 -1
  85. package/dist/interface/tui/entry-approval.d.ts +8 -0
  86. package/dist/interface/tui/entry-approval.d.ts.map +1 -0
  87. package/dist/interface/tui/entry-approval.js +59 -0
  88. package/dist/interface/tui/entry-approval.js.map +1 -0
  89. package/dist/interface/tui/entry-daemon.d.ts +12 -0
  90. package/dist/interface/tui/entry-daemon.d.ts.map +1 -0
  91. package/dist/interface/tui/entry-daemon.js +74 -0
  92. package/dist/interface/tui/entry-daemon.js.map +1 -0
  93. package/dist/interface/tui/entry-deps.d.ts +22 -0
  94. package/dist/interface/tui/entry-deps.d.ts.map +1 -0
  95. package/dist/interface/tui/entry-deps.js +409 -0
  96. package/dist/interface/tui/entry-deps.js.map +1 -0
  97. package/dist/interface/tui/entry.d.ts +2 -4
  98. package/dist/interface/tui/entry.d.ts.map +1 -1
  99. package/dist/interface/tui/entry.js +10 -557
  100. package/dist/interface/tui/entry.js.map +1 -1
  101. package/dist/interface/tui/fullscreen-chat-render.d.ts +127 -0
  102. package/dist/interface/tui/fullscreen-chat-render.d.ts.map +1 -0
  103. package/dist/interface/tui/fullscreen-chat-render.js +667 -0
  104. package/dist/interface/tui/fullscreen-chat-render.js.map +1 -0
  105. package/dist/interface/tui/fullscreen-chat.d.ts +2 -111
  106. package/dist/interface/tui/fullscreen-chat.d.ts.map +1 -1
  107. package/dist/interface/tui/fullscreen-chat.js +4 -663
  108. package/dist/interface/tui/fullscreen-chat.js.map +1 -1
  109. package/dist/interface/tui/help-overlay.d.ts.map +1 -1
  110. package/dist/interface/tui/help-overlay.js +1 -1
  111. package/dist/interface/tui/help-overlay.js.map +1 -1
  112. package/dist/interface/tui/intent-recognizer.js +2 -2
  113. package/dist/interface/tui/intent-recognizer.js.map +1 -1
  114. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts.map +1 -1
  115. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js +8 -0
  116. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js.map +1 -1
  117. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.d.ts.map +1 -1
  118. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.js +2 -1
  119. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-router.js.map +1 -1
  120. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts +2 -0
  121. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts.map +1 -1
  122. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js +31 -0
  123. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js.map +1 -1
  124. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts +1 -0
  125. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts.map +1 -1
  126. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.js.map +1 -1
  127. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts +1 -0
  128. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts.map +1 -1
  129. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js +36 -2
  130. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js.map +1 -1
  131. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -1
  132. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +2 -1
  133. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -1
  134. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts +19 -0
  135. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts.map +1 -1
  136. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js +164 -14
  137. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js.map +1 -1
  138. package/dist/orchestrator/execution/reflection-generator.d.ts +1 -0
  139. package/dist/orchestrator/execution/reflection-generator.d.ts.map +1 -1
  140. package/dist/orchestrator/execution/reflection-generator.js +10 -1
  141. package/dist/orchestrator/execution/reflection-generator.js.map +1 -1
  142. package/dist/orchestrator/execution/task/task-context-enricher.d.ts +2 -0
  143. package/dist/orchestrator/execution/task/task-context-enricher.d.ts.map +1 -1
  144. package/dist/orchestrator/execution/task/task-context-enricher.js +9 -4
  145. package/dist/orchestrator/execution/task/task-context-enricher.js.map +1 -1
  146. package/dist/orchestrator/execution/task/task-execution-helpers-internal.d.ts +5 -0
  147. package/dist/orchestrator/execution/task/task-execution-helpers-internal.d.ts.map +1 -0
  148. package/dist/orchestrator/execution/task/task-execution-helpers-internal.js +6 -0
  149. package/dist/orchestrator/execution/task/task-execution-helpers-internal.js.map +1 -0
  150. package/dist/orchestrator/execution/task/task-generation.d.ts.map +1 -1
  151. package/dist/orchestrator/execution/task/task-generation.js +8 -3
  152. package/dist/orchestrator/execution/task/task-generation.js.map +1 -1
  153. package/dist/orchestrator/execution/task/task-lifecycle-runner.d.ts +73 -0
  154. package/dist/orchestrator/execution/task/task-lifecycle-runner.d.ts.map +1 -0
  155. package/dist/orchestrator/execution/task/task-lifecycle-runner.js +184 -0
  156. package/dist/orchestrator/execution/task/task-lifecycle-runner.js.map +1 -0
  157. package/dist/orchestrator/execution/task/task-lifecycle.d.ts +7 -7
  158. package/dist/orchestrator/execution/task/task-lifecycle.d.ts.map +1 -1
  159. package/dist/orchestrator/execution/task/task-lifecycle.js +37 -181
  160. package/dist/orchestrator/execution/task/task-lifecycle.js.map +1 -1
  161. package/dist/orchestrator/execution/task/task-verifier-internal.d.ts +2 -0
  162. package/dist/orchestrator/execution/task/task-verifier-internal.d.ts.map +1 -0
  163. package/dist/orchestrator/execution/task/task-verifier-internal.js +2 -0
  164. package/dist/orchestrator/execution/task/task-verifier-internal.js.map +1 -0
  165. package/dist/orchestrator/goal/goal-negotiator.d.ts.map +1 -1
  166. package/dist/orchestrator/goal/goal-negotiator.js +23 -3
  167. package/dist/orchestrator/goal/goal-negotiator.js.map +1 -1
  168. package/dist/orchestrator/loop/core-loop/contracts.d.ts +1 -0
  169. package/dist/orchestrator/loop/core-loop/contracts.d.ts.map +1 -1
  170. package/dist/orchestrator/loop/core-loop/contracts.js.map +1 -1
  171. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.d.ts +7 -0
  172. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.d.ts.map +1 -0
  173. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.js +43 -0
  174. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.js.map +1 -0
  175. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.d.ts +14 -0
  176. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.d.ts.map +1 -0
  177. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.js +41 -0
  178. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.js.map +1 -0
  179. package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts +3 -2
  180. package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts.map +1 -1
  181. package/dist/orchestrator/loop/core-loop/iteration-kernel.js +16 -87
  182. package/dist/orchestrator/loop/core-loop/iteration-kernel.js.map +1 -1
  183. package/dist/orchestrator/loop/core-loop/phase-policy.js +5 -5
  184. package/dist/orchestrator/loop/core-loop/task-cycle-stall.d.ts +9 -0
  185. package/dist/orchestrator/loop/core-loop/task-cycle-stall.d.ts.map +1 -0
  186. package/dist/orchestrator/loop/core-loop/task-cycle-stall.js +297 -0
  187. package/dist/orchestrator/loop/core-loop/task-cycle-stall.js.map +1 -0
  188. package/dist/orchestrator/loop/core-loop/task-cycle-wait.d.ts +11 -0
  189. package/dist/orchestrator/loop/core-loop/task-cycle-wait.d.ts.map +1 -0
  190. package/dist/orchestrator/loop/core-loop/task-cycle-wait.js +176 -0
  191. package/dist/orchestrator/loop/core-loop/task-cycle-wait.js.map +1 -0
  192. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts +3 -15
  193. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts.map +1 -1
  194. package/dist/orchestrator/loop/core-loop/task-cycle.js +10 -444
  195. package/dist/orchestrator/loop/core-loop/task-cycle.js.map +1 -1
  196. package/dist/orchestrator/loop/core-loop.d.ts +3 -0
  197. package/dist/orchestrator/loop/core-loop.d.ts.map +1 -1
  198. package/dist/orchestrator/loop/core-loop.js +4 -0
  199. package/dist/orchestrator/loop/core-loop.js.map +1 -1
  200. package/dist/orchestrator/strategy/portfolio-manager.d.ts +3 -2
  201. package/dist/orchestrator/strategy/portfolio-manager.d.ts.map +1 -1
  202. package/dist/orchestrator/strategy/portfolio-manager.js +16 -11
  203. package/dist/orchestrator/strategy/portfolio-manager.js.map +1 -1
  204. package/dist/orchestrator/strategy/portfolio-rebalance.d.ts +1 -1
  205. package/dist/orchestrator/strategy/portfolio-rebalance.d.ts.map +1 -1
  206. package/dist/orchestrator/strategy/portfolio-rebalance.js +31 -9
  207. package/dist/orchestrator/strategy/portfolio-rebalance.js.map +1 -1
  208. package/dist/orchestrator/strategy/strategy-manager-base.d.ts +12 -2
  209. package/dist/orchestrator/strategy/strategy-manager-base.d.ts.map +1 -1
  210. package/dist/orchestrator/strategy/strategy-manager-base.js +23 -7
  211. package/dist/orchestrator/strategy/strategy-manager-base.js.map +1 -1
  212. package/dist/orchestrator/strategy/strategy-manager.d.ts +1 -11
  213. package/dist/orchestrator/strategy/strategy-manager.d.ts.map +1 -1
  214. package/dist/orchestrator/strategy/strategy-manager.js +78 -19
  215. package/dist/orchestrator/strategy/strategy-manager.js.map +1 -1
  216. package/dist/platform/dream/dream-consolidator/fs-metrics.d.ts +18 -0
  217. package/dist/platform/dream/dream-consolidator/fs-metrics.d.ts.map +1 -0
  218. package/dist/platform/dream/dream-consolidator/fs-metrics.js +130 -0
  219. package/dist/platform/dream/dream-consolidator/fs-metrics.js.map +1 -0
  220. package/dist/platform/dream/dream-consolidator.d.ts +4 -14
  221. package/dist/platform/dream/dream-consolidator.d.ts.map +1 -1
  222. package/dist/platform/dream/dream-consolidator.js +46 -166
  223. package/dist/platform/dream/dream-consolidator.js.map +1 -1
  224. package/dist/platform/dream/dream-soil-sync.d.ts +1 -0
  225. package/dist/platform/dream/dream-soil-sync.d.ts.map +1 -1
  226. package/dist/platform/dream/dream-soil-sync.js +8 -1
  227. package/dist/platform/dream/dream-soil-sync.js.map +1 -1
  228. package/dist/platform/dream/dream-types.d.ts +5 -0
  229. package/dist/platform/dream/dream-types.d.ts.map +1 -1
  230. package/dist/platform/dream/dream-types.js +1 -0
  231. package/dist/platform/dream/dream-types.js.map +1 -1
  232. package/dist/platform/dream/playbook-memory.d.ts +4 -4
  233. package/dist/platform/drive/stall-detector/analysis.d.ts +5 -0
  234. package/dist/platform/drive/stall-detector/analysis.d.ts.map +1 -0
  235. package/dist/platform/drive/stall-detector/analysis.js +55 -0
  236. package/dist/platform/drive/stall-detector/analysis.js.map +1 -0
  237. package/dist/platform/drive/stall-detector/repetitive.d.ts +3 -0
  238. package/dist/platform/drive/stall-detector/repetitive.d.ts.map +1 -0
  239. package/dist/platform/drive/stall-detector/repetitive.js +72 -0
  240. package/dist/platform/drive/stall-detector/repetitive.js.map +1 -0
  241. package/dist/platform/drive/stall-detector/thresholds.d.ts +10 -0
  242. package/dist/platform/drive/stall-detector/thresholds.d.ts.map +1 -0
  243. package/dist/platform/drive/stall-detector/thresholds.js +61 -0
  244. package/dist/platform/drive/stall-detector/thresholds.js.map +1 -0
  245. package/dist/platform/drive/stall-detector.d.ts +2 -20
  246. package/dist/platform/drive/stall-detector.d.ts.map +1 -1
  247. package/dist/platform/drive/stall-detector.js +9 -202
  248. package/dist/platform/drive/stall-detector.js.map +1 -1
  249. package/dist/platform/knowledge/knowledge-manager-agent-memory.d.ts +55 -0
  250. package/dist/platform/knowledge/knowledge-manager-agent-memory.d.ts.map +1 -0
  251. package/dist/platform/knowledge/knowledge-manager-agent-memory.js +232 -0
  252. package/dist/platform/knowledge/knowledge-manager-agent-memory.js.map +1 -0
  253. package/dist/platform/knowledge/knowledge-manager-internals.d.ts +10 -0
  254. package/dist/platform/knowledge/knowledge-manager-internals.d.ts.map +1 -0
  255. package/dist/platform/knowledge/knowledge-manager-internals.js +43 -0
  256. package/dist/platform/knowledge/knowledge-manager-internals.js.map +1 -0
  257. package/dist/platform/knowledge/knowledge-manager-store.d.ts +13 -0
  258. package/dist/platform/knowledge/knowledge-manager-store.d.ts.map +1 -0
  259. package/dist/platform/knowledge/knowledge-manager-store.js +67 -0
  260. package/dist/platform/knowledge/knowledge-manager-store.js.map +1 -0
  261. package/dist/platform/knowledge/knowledge-manager.d.ts +6 -2
  262. package/dist/platform/knowledge/knowledge-manager.d.ts.map +1 -1
  263. package/dist/platform/knowledge/knowledge-manager.js +43 -344
  264. package/dist/platform/knowledge/knowledge-manager.js.map +1 -1
  265. package/dist/platform/knowledge/memory/memory-lifecycle-storage.d.ts +4 -0
  266. package/dist/platform/knowledge/memory/memory-lifecycle-storage.d.ts.map +1 -0
  267. package/dist/platform/knowledge/memory/memory-lifecycle-storage.js +106 -0
  268. package/dist/platform/knowledge/memory/memory-lifecycle-storage.js.map +1 -0
  269. package/dist/platform/knowledge/memory/memory-lifecycle.d.ts.map +1 -1
  270. package/dist/platform/knowledge/memory/memory-lifecycle.js +6 -112
  271. package/dist/platform/knowledge/memory/memory-lifecycle.js.map +1 -1
  272. package/dist/platform/observation/capability-detector/prompts.d.ts +18 -0
  273. package/dist/platform/observation/capability-detector/prompts.d.ts.map +1 -0
  274. package/dist/platform/observation/capability-detector/prompts.js +80 -0
  275. package/dist/platform/observation/capability-detector/prompts.js.map +1 -0
  276. package/dist/platform/observation/capability-detector/recommendations.d.ts +5 -0
  277. package/dist/platform/observation/capability-detector/recommendations.d.ts.map +1 -0
  278. package/dist/platform/observation/capability-detector/recommendations.js +76 -0
  279. package/dist/platform/observation/capability-detector/recommendations.js.map +1 -0
  280. package/dist/platform/observation/capability-detector/types.d.ts +112 -0
  281. package/dist/platform/observation/capability-detector/types.d.ts.map +1 -0
  282. package/dist/platform/observation/capability-detector/types.js +75 -0
  283. package/dist/platform/observation/capability-detector/types.js.map +1 -0
  284. package/dist/platform/observation/capability-detector.d.ts +4 -9
  285. package/dist/platform/observation/capability-detector.d.ts.map +1 -1
  286. package/dist/platform/observation/capability-detector.js +12 -212
  287. package/dist/platform/observation/capability-detector.js.map +1 -1
  288. package/dist/platform/observation/context-provider/collector.d.ts +13 -0
  289. package/dist/platform/observation/context-provider/collector.d.ts.map +1 -0
  290. package/dist/platform/observation/context-provider/collector.js +259 -0
  291. package/dist/platform/observation/context-provider/collector.js.map +1 -0
  292. package/dist/platform/observation/context-provider/search-terms.d.ts +2 -0
  293. package/dist/platform/observation/context-provider/search-terms.d.ts.map +1 -0
  294. package/dist/platform/observation/context-provider/search-terms.js +24 -0
  295. package/dist/platform/observation/context-provider/search-terms.js.map +1 -0
  296. package/dist/platform/observation/context-provider/shared.d.ts +17 -0
  297. package/dist/platform/observation/context-provider/shared.d.ts.map +1 -0
  298. package/dist/platform/observation/context-provider/shared.js +87 -0
  299. package/dist/platform/observation/context-provider/shared.js.map +1 -0
  300. package/dist/platform/observation/context-provider.d.ts +3 -28
  301. package/dist/platform/observation/context-provider.d.ts.map +1 -1
  302. package/dist/platform/observation/context-provider.js +7 -395
  303. package/dist/platform/observation/context-provider.js.map +1 -1
  304. package/dist/platform/soil/compiled-memory-projections.d.ts +2 -0
  305. package/dist/platform/soil/compiled-memory-projections.d.ts.map +1 -1
  306. package/dist/platform/soil/compiled-memory-projections.js +59 -0
  307. package/dist/platform/soil/compiled-memory-projections.js.map +1 -1
  308. package/dist/platform/soil/contracts.d.ts +2 -2
  309. package/dist/platform/soil/retriever.d.ts +25 -0
  310. package/dist/platform/soil/retriever.d.ts.map +1 -1
  311. package/dist/platform/soil/retriever.js +94 -5
  312. package/dist/platform/soil/retriever.js.map +1 -1
  313. package/dist/platform/soil/sqlite-repository-helpers.d.ts +80 -0
  314. package/dist/platform/soil/sqlite-repository-helpers.d.ts.map +1 -0
  315. package/dist/platform/soil/sqlite-repository-helpers.js +143 -0
  316. package/dist/platform/soil/sqlite-repository-helpers.js.map +1 -0
  317. package/dist/platform/soil/sqlite-repository-search.d.ts +8 -0
  318. package/dist/platform/soil/sqlite-repository-search.d.ts.map +1 -0
  319. package/dist/platform/soil/sqlite-repository-search.js +367 -0
  320. package/dist/platform/soil/sqlite-repository-search.js.map +1 -0
  321. package/dist/platform/soil/sqlite-repository-storage.d.ts +8 -0
  322. package/dist/platform/soil/sqlite-repository-storage.d.ts.map +1 -0
  323. package/dist/platform/soil/sqlite-repository-storage.js +278 -0
  324. package/dist/platform/soil/sqlite-repository-storage.js.map +1 -0
  325. package/dist/platform/soil/sqlite-repository.d.ts +1 -4
  326. package/dist/platform/soil/sqlite-repository.d.ts.map +1 -1
  327. package/dist/platform/soil/sqlite-repository.js +26 -820
  328. package/dist/platform/soil/sqlite-repository.js.map +1 -1
  329. package/dist/runtime/daemon/index.d.ts +1 -1
  330. package/dist/runtime/daemon/index.d.ts.map +1 -1
  331. package/dist/runtime/daemon/index.js +1 -1
  332. package/dist/runtime/daemon/index.js.map +1 -1
  333. package/dist/runtime/daemon/maintenance.d.ts +2 -10
  334. package/dist/runtime/daemon/maintenance.d.ts.map +1 -1
  335. package/dist/runtime/daemon/maintenance.js +14 -45
  336. package/dist/runtime/daemon/maintenance.js.map +1 -1
  337. package/dist/runtime/daemon/runner-bootstrap.d.ts +25 -0
  338. package/dist/runtime/daemon/runner-bootstrap.d.ts.map +1 -0
  339. package/dist/runtime/daemon/runner-bootstrap.js +77 -0
  340. package/dist/runtime/daemon/runner-bootstrap.js.map +1 -0
  341. package/dist/runtime/daemon/runner-commands.d.ts +7 -7
  342. package/dist/runtime/daemon/runner-commands.d.ts.map +1 -1
  343. package/dist/runtime/daemon/runner-commands.js +35 -20
  344. package/dist/runtime/daemon/runner-commands.js.map +1 -1
  345. package/dist/runtime/daemon/runner-goal-cycle.d.ts.map +1 -1
  346. package/dist/runtime/daemon/runner-goal-cycle.js +3 -5
  347. package/dist/runtime/daemon/runner-goal-cycle.js.map +1 -1
  348. package/dist/runtime/daemon/runner-resident-curiosity.d.ts +12 -0
  349. package/dist/runtime/daemon/runner-resident-curiosity.d.ts.map +1 -0
  350. package/dist/runtime/daemon/runner-resident-curiosity.js +155 -0
  351. package/dist/runtime/daemon/runner-resident-curiosity.js.map +1 -0
  352. package/dist/runtime/daemon/runner-resident-dream.d.ts +20 -0
  353. package/dist/runtime/daemon/runner-resident-dream.d.ts.map +1 -0
  354. package/dist/runtime/daemon/runner-resident-dream.js +148 -0
  355. package/dist/runtime/daemon/runner-resident-dream.js.map +1 -0
  356. package/dist/runtime/daemon/runner-resident-proactive.d.ts +4 -0
  357. package/dist/runtime/daemon/runner-resident-proactive.d.ts.map +1 -0
  358. package/dist/runtime/daemon/runner-resident-proactive.js +113 -0
  359. package/dist/runtime/daemon/runner-resident-proactive.js.map +1 -0
  360. package/dist/runtime/daemon/runner-resident-shared.d.ts +40 -0
  361. package/dist/runtime/daemon/runner-resident-shared.d.ts.map +1 -0
  362. package/dist/runtime/daemon/runner-resident-shared.js +101 -0
  363. package/dist/runtime/daemon/runner-resident-shared.js.map +1 -0
  364. package/dist/runtime/daemon/runner-resident.d.ts +4 -68
  365. package/dist/runtime/daemon/runner-resident.d.ts.map +1 -1
  366. package/dist/runtime/daemon/runner-resident.js +4 -506
  367. package/dist/runtime/daemon/runner-resident.js.map +1 -1
  368. package/dist/runtime/daemon/runner-runtime.d.ts +12 -0
  369. package/dist/runtime/daemon/runner-runtime.d.ts.map +1 -0
  370. package/dist/runtime/daemon/runner-runtime.js +43 -0
  371. package/dist/runtime/daemon/runner-runtime.js.map +1 -0
  372. package/dist/runtime/daemon/runner-startup.js +3 -4
  373. package/dist/runtime/daemon/runner-startup.js.map +1 -1
  374. package/dist/runtime/daemon/runner.d.ts +10 -23
  375. package/dist/runtime/daemon/runner.d.ts.map +1 -1
  376. package/dist/runtime/daemon/runner.js +27 -110
  377. package/dist/runtime/daemon/runner.js.map +1 -1
  378. package/dist/runtime/daemon/wait-deadline-resolver.d.ts +5 -2
  379. package/dist/runtime/daemon/wait-deadline-resolver.d.ts.map +1 -1
  380. package/dist/runtime/daemon/wait-deadline-resolver.js +55 -35
  381. package/dist/runtime/daemon/wait-deadline-resolver.js.map +1 -1
  382. package/dist/runtime/event/dispatcher.d.ts +0 -2
  383. package/dist/runtime/event/dispatcher.d.ts.map +1 -1
  384. package/dist/runtime/event/dispatcher.js +0 -4
  385. package/dist/runtime/event/dispatcher.js.map +1 -1
  386. package/dist/runtime/executor/goal-worker.d.ts +2 -1
  387. package/dist/runtime/executor/goal-worker.d.ts.map +1 -1
  388. package/dist/runtime/executor/goal-worker.js +2 -1
  389. package/dist/runtime/executor/goal-worker.js.map +1 -1
  390. package/dist/runtime/executor/loop-supervisor.d.ts +3 -0
  391. package/dist/runtime/executor/loop-supervisor.d.ts.map +1 -1
  392. package/dist/runtime/executor/loop-supervisor.js +37 -11
  393. package/dist/runtime/executor/loop-supervisor.js.map +1 -1
  394. package/dist/runtime/schedule/engine-cron-reflection.d.ts +31 -0
  395. package/dist/runtime/schedule/engine-cron-reflection.d.ts.map +1 -0
  396. package/dist/runtime/schedule/engine-cron-reflection.js +229 -0
  397. package/dist/runtime/schedule/engine-cron-reflection.js.map +1 -0
  398. package/dist/runtime/schedule/engine-execution.d.ts +47 -0
  399. package/dist/runtime/schedule/engine-execution.d.ts.map +1 -0
  400. package/dist/runtime/schedule/engine-execution.js +424 -0
  401. package/dist/runtime/schedule/engine-execution.js.map +1 -0
  402. package/dist/runtime/schedule/engine-heartbeat.d.ts +5 -0
  403. package/dist/runtime/schedule/engine-heartbeat.d.ts.map +1 -0
  404. package/dist/runtime/schedule/engine-heartbeat.js +104 -0
  405. package/dist/runtime/schedule/engine-heartbeat.js.map +1 -0
  406. package/dist/runtime/schedule/engine-layers.d.ts +2 -0
  407. package/dist/runtime/schedule/engine-layers.d.ts.map +1 -1
  408. package/dist/runtime/schedule/engine-layers.js +12 -228
  409. package/dist/runtime/schedule/engine-layers.js.map +1 -1
  410. package/dist/runtime/schedule/engine-mutations.d.ts +37 -0
  411. package/dist/runtime/schedule/engine-mutations.d.ts.map +1 -0
  412. package/dist/runtime/schedule/engine-mutations.js +263 -0
  413. package/dist/runtime/schedule/engine-mutations.js.map +1 -0
  414. package/dist/runtime/schedule/engine.d.ts +11 -38
  415. package/dist/runtime/schedule/engine.d.ts.map +1 -1
  416. package/dist/runtime/schedule/engine.js +65 -810
  417. package/dist/runtime/schedule/engine.js.map +1 -1
  418. package/dist/runtime/schedule/history.d.ts +16 -0
  419. package/dist/runtime/schedule/history.d.ts.map +1 -1
  420. package/dist/runtime/schedule/history.js +8 -0
  421. package/dist/runtime/schedule/history.js.map +1 -1
  422. package/dist/runtime/schedule/index.d.ts +1 -0
  423. package/dist/runtime/schedule/index.d.ts.map +1 -1
  424. package/dist/runtime/schedule/index.js +1 -0
  425. package/dist/runtime/schedule/index.js.map +1 -1
  426. package/dist/runtime/schedule/legacy-cron-migration.d.ts +9 -0
  427. package/dist/runtime/schedule/legacy-cron-migration.d.ts.map +1 -0
  428. package/dist/runtime/schedule/legacy-cron-migration.js +89 -0
  429. package/dist/runtime/schedule/legacy-cron-migration.js.map +1 -0
  430. package/dist/runtime/schedule/wait-projection.d.ts +6 -0
  431. package/dist/runtime/schedule/wait-projection.d.ts.map +1 -0
  432. package/dist/runtime/schedule/wait-projection.js +102 -0
  433. package/dist/runtime/schedule/wait-projection.js.map +1 -0
  434. package/dist/runtime/session-registry/registry-helpers.d.ts +34 -0
  435. package/dist/runtime/session-registry/registry-helpers.d.ts.map +1 -0
  436. package/dist/runtime/session-registry/registry-helpers.js +241 -0
  437. package/dist/runtime/session-registry/registry-helpers.js.map +1 -0
  438. package/dist/runtime/session-registry/registry.d.ts.map +1 -1
  439. package/dist/runtime/session-registry/registry.js +14 -243
  440. package/dist/runtime/session-registry/registry.js.map +1 -1
  441. package/dist/runtime/session-registry/types.d.ts +36 -36
  442. package/dist/runtime/store/runtime-operation-schemas.d.ts +36 -36
  443. package/dist/runtime/store/runtime-schemas.d.ts +2 -2
  444. package/dist/runtime/types/daemon.d.ts +10 -0
  445. package/dist/runtime/types/daemon.d.ts.map +1 -1
  446. package/dist/runtime/types/daemon.js +2 -0
  447. package/dist/runtime/types/daemon.js.map +1 -1
  448. package/dist/runtime/types/schedule.d.ts +65 -0
  449. package/dist/runtime/types/schedule.d.ts.map +1 -1
  450. package/dist/runtime/types/schedule.js +5 -0
  451. package/dist/runtime/types/schedule.js.map +1 -1
  452. package/dist/tools/builtin/exports.d.ts +1 -0
  453. package/dist/tools/builtin/exports.d.ts.map +1 -1
  454. package/dist/tools/builtin/exports.js +1 -0
  455. package/dist/tools/builtin/exports.js.map +1 -1
  456. package/dist/tools/builtin/factory.d.ts +2 -0
  457. package/dist/tools/builtin/factory.d.ts.map +1 -1
  458. package/dist/tools/builtin/factory.js +8 -1
  459. package/dist/tools/builtin/factory.js.map +1 -1
  460. package/dist/tools/fs/FileValidationTool/protected-path-policy.d.ts +1 -0
  461. package/dist/tools/fs/FileValidationTool/protected-path-policy.d.ts.map +1 -1
  462. package/dist/tools/fs/FileValidationTool/protected-path-policy.js +17 -4
  463. package/dist/tools/fs/FileValidationTool/protected-path-policy.js.map +1 -1
  464. package/dist/tools/fs/ListDirTool/ListDirTool.js +1 -1
  465. package/dist/tools/fs/ListDirTool/ListDirTool.js.map +1 -1
  466. package/dist/tools/kaggle/paths.d.ts.map +1 -1
  467. package/dist/tools/kaggle/paths.js +6 -0
  468. package/dist/tools/kaggle/paths.js.map +1 -1
  469. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.d.ts.map +1 -1
  470. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.js +23 -2
  471. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.js.map +1 -1
  472. package/dist/tools/query/CodeSearchTool/CodeSearchTool.d.ts.map +1 -1
  473. package/dist/tools/query/CodeSearchTool/CodeSearchTool.js +24 -2
  474. package/dist/tools/query/CodeSearchTool/CodeSearchTool.js.map +1 -1
  475. package/dist/tools/query/SoilQueryTool/SoilQueryTool.d.ts.map +1 -1
  476. package/dist/tools/query/SoilQueryTool/SoilQueryTool.js +43 -9
  477. package/dist/tools/query/SoilQueryTool/SoilQueryTool.js.map +1 -1
  478. package/dist/tools/query/code-search-root.d.ts +8 -0
  479. package/dist/tools/query/code-search-root.d.ts.map +1 -0
  480. package/dist/tools/query/code-search-root.js +41 -0
  481. package/dist/tools/query/code-search-root.js.map +1 -0
  482. package/dist/tools/query/runtime-session-tools.d.ts +560 -0
  483. package/dist/tools/query/runtime-session-tools.d.ts.map +1 -0
  484. package/dist/tools/query/runtime-session-tools.js +1015 -0
  485. package/dist/tools/query/runtime-session-tools.js.map +1 -0
  486. package/dist/tools/runtime/LongRunningRuntimeTools.d.ts +821 -0
  487. package/dist/tools/runtime/LongRunningRuntimeTools.d.ts.map +1 -0
  488. package/dist/tools/runtime/LongRunningRuntimeTools.js +845 -0
  489. package/dist/tools/runtime/LongRunningRuntimeTools.js.map +1 -0
  490. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.d.ts +1 -0
  491. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.d.ts.map +1 -1
  492. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.js +11 -0
  493. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.js.map +1 -1
  494. package/dist/tools/system/ShellTool/ShellTool.d.ts.map +1 -1
  495. package/dist/tools/system/ShellTool/ShellTool.js +2 -1
  496. package/dist/tools/system/ShellTool/ShellTool.js.map +1 -1
  497. package/dist/tools/types.d.ts +2 -0
  498. package/dist/tools/types.d.ts.map +1 -1
  499. package/dist/tools/types.js.map +1 -1
  500. package/package.json +1 -1
  501. package/dist/base/types/cron.d.ts +0 -2
  502. package/dist/base/types/cron.d.ts.map +0 -1
  503. package/dist/base/types/cron.js +0 -3
  504. package/dist/base/types/cron.js.map +0 -1
  505. package/dist/runtime/cron-scheduler.d.ts +0 -13
  506. package/dist/runtime/cron-scheduler.d.ts.map +0 -1
  507. package/dist/runtime/cron-scheduler.js +0 -90
  508. package/dist/runtime/cron-scheduler.js.map +0 -1
  509. package/dist/runtime/types/cron.d.ts +0 -59
  510. package/dist/runtime/types/cron.d.ts.map +0 -1
  511. package/dist/runtime/types/cron.js +0 -13
  512. package/dist/runtime/types/cron.js.map +0 -1
@@ -4,431 +4,18 @@
4
4
  // Reads daemon_mode from global config and routes to:
5
5
  // - Standalone mode (default): wires all deps in-process
6
6
  // - Daemon mode: connects to a running PulSeed daemon via SSE
7
- import os from "os";
8
- import path from "path";
9
- import { randomUUID } from "node:crypto";
10
- import * as fs from "node:fs/promises";
11
7
  import { StateManager } from "../../base/state/state-manager.js";
12
8
  import { loadProviderConfig } from "../../base/llm/provider-config.js";
13
9
  import { getPulseedDirPath } from "../../base/utils/paths.js";
14
10
  import { App } from "./app.js";
15
- import { isSafeBashCommand } from "./bash-mode.js";
16
11
  import { getCliLogger } from "../cli/cli-logger.js";
17
12
  import { ensureProviderConfig } from "../cli/ensure-api-key.js";
18
13
  import { isNoFlickerEnabled, isMouseTrackingEnabled, AlternateScreen, MouseTracking } from "./flicker/index.js";
19
14
  import { DEFAULT_CURSOR_STYLE, HIDE_CURSOR, SHOW_CURSOR, STEADY_BAR_CURSOR } from "./flicker/dec.js";
20
15
  import { setTrustedTuiControlStream } from "./terminal-output.js";
21
- import { getGitBranch } from "./git-branch.js";
22
16
  import { createNoFlickerOutputController } from "./output-controller.js";
23
- import { PIDManager } from "../../runtime/pid-manager.js";
24
- import { probeDaemonHealth, readDaemonAuthToken } from "../../runtime/daemon/client.js";
25
- import { DEFAULT_PORT } from "../../runtime/port-utils.js";
26
- // ─── Breadcrumb helpers ───
27
- const EXISTING_DAEMON_HEALTH_TIMEOUT_MS = 10_000;
28
- const EXISTING_DAEMON_HEALTH_POLL_MS = 250;
29
- function getCwd() {
30
- const raw = process.cwd();
31
- const home = os.homedir();
32
- return raw.startsWith(home) ? "~" + raw.slice(home.length) : raw;
33
- }
34
- // ─── Daemon auto-start helpers ───
35
- async function startDaemonDetached(baseDir) {
36
- const { spawn } = await import("node:child_process");
37
- const scriptPath = path.resolve(path.dirname(new URL(import.meta.url).pathname), "..", "cli", "cli-runner.js");
38
- const child = spawn(process.execPath, [scriptPath, "daemon", "start", "--detach"], {
39
- detached: true,
40
- stdio: "ignore",
41
- env: { ...process.env, PULSEED_HOME: baseDir },
42
- });
43
- child.unref();
44
- }
45
- async function readDaemonPort(baseDir) {
46
- try {
47
- const configPath = path.join(baseDir, "daemon.json");
48
- const raw = await fs.readFile(configPath, "utf-8");
49
- const parsed = JSON.parse(raw);
50
- const port = parsed.event_server_port;
51
- return typeof port === "number" && Number.isInteger(port) && port > 0 ? port : DEFAULT_PORT;
52
- }
53
- catch {
54
- return DEFAULT_PORT;
55
- }
56
- }
57
- export async function resolveRunningDaemonConnection(baseDir) {
58
- const pidManager = new PIDManager(baseDir);
59
- const status = await pidManager.inspect();
60
- if (status.running) {
61
- const port = await readDaemonPort(baseDir);
62
- const authToken = readDaemonAuthToken(baseDir, port);
63
- const deadline = Date.now() + EXISTING_DAEMON_HEALTH_TIMEOUT_MS;
64
- while (Date.now() < deadline) {
65
- const probe = await probeDaemonHealth({ host: "127.0.0.1", port });
66
- if (probe.ok) {
67
- return { port, authToken };
68
- }
69
- const refreshed = await pidManager.inspect();
70
- if (!refreshed.running)
71
- break;
72
- await new Promise((resolve) => setTimeout(resolve, EXISTING_DAEMON_HEALTH_POLL_MS));
73
- }
74
- }
75
- const { isDaemonRunning } = await import("../../runtime/daemon/client.js");
76
- const running = await isDaemonRunning(baseDir);
77
- if (!running.running)
78
- return null;
79
- return {
80
- port: running.port,
81
- authToken: running.authToken ?? readDaemonAuthToken(baseDir, running.port),
82
- };
83
- }
84
- async function waitForDaemon(baseDir, timeoutMs) {
85
- const { isDaemonRunning } = await import("../../runtime/daemon/client.js");
86
- const deadline = Date.now() + timeoutMs;
87
- while (Date.now() < deadline) {
88
- const { running, port, authToken } = await isDaemonRunning(baseDir);
89
- if (running)
90
- return { port, authToken };
91
- await new Promise((r) => setTimeout(r, 500));
92
- }
93
- throw new Error("Daemon failed to start within timeout");
94
- }
95
- // ─── Standalone dep wiring ───
96
- async function buildDeps() {
97
- const { buildLLMClient, buildAdapterRegistry } = await import("../../base/llm/provider-factory.js");
98
- const { createWorkspaceContextProvider } = await import("../../platform/observation/workspace-context.js");
99
- const { TrustManager } = await import("../../platform/traits/trust-manager.js");
100
- const { DriveSystem } = await import("../../platform/drive/drive-system.js");
101
- const { ObservationEngine } = await import("../../platform/observation/observation-engine.js");
102
- const { StallDetector } = await import("../../platform/drive/stall-detector.js");
103
- const { ProgressPredictor } = await import("../../platform/drive/progress-predictor.js");
104
- const { SatisficingJudge } = await import("../../platform/drive/satisficing-judge.js");
105
- const { EthicsGate } = await import("../../platform/traits/ethics-gate.js");
106
- const { SessionManager } = await import("../../orchestrator/execution/session-manager.js");
107
- const { StrategyManager } = await import("../../orchestrator/strategy/strategy-manager.js");
108
- const { GoalNegotiator } = await import("../../orchestrator/goal/goal-negotiator.js");
109
- const { TaskLifecycle } = await import("../../orchestrator/execution/task/task-lifecycle.js");
110
- const { ReportingEngine } = await import("../../reporting/reporting-engine.js");
111
- const { CoreLoop } = await import("../../orchestrator/loop/core-loop.js");
112
- const { GoalTreeManager } = await import("../../orchestrator/goal/goal-tree-manager.js");
113
- const { StateAggregator } = await import("../../orchestrator/goal/state-aggregator.js");
114
- const { GoalDependencyGraph } = await import("../../orchestrator/goal/goal-dependency-graph.js");
115
- const { TreeLoopOrchestrator } = await import("../../orchestrator/goal/tree-loop-orchestrator.js");
116
- const { ScheduleEngine } = await import("../../runtime/schedule/engine.js");
117
- const { MemoryLifecycleManager, DriveScoreAdapter } = await import("../../platform/knowledge/memory/memory-lifecycle.js");
118
- const { KnowledgeManager } = await import("../../platform/knowledge/knowledge-manager.js");
119
- const { CharacterConfigManager } = await import("../../platform/traits/character-config.js");
120
- const { SharedManagerTuiChatSurface } = await import("./chat-surface.js");
121
- const { ToolRegistry, ToolExecutor, ToolPermissionManager, ConcurrencyController, createBuiltinTools } = await import("../../tools/index.js");
122
- const { buildCliDataSourceRegistry } = await import("../cli/data-source-bootstrap.js");
123
- const { createNativeCorePhaseRunner, createNativeChatAgentLoopRunner, createNativeReviewAgentLoopRunner, createNativeTaskAgentLoopRunner, shouldUseNativeTaskAgentLoop, } = await import("../../orchestrator/execution/agent-loop/index.js");
124
- const { ActionHandler } = await import("./actions.js");
125
- const { IntentRecognizer } = await import("./intent-recognizer.js");
126
- const GapCalculator = await import("../../platform/drive/gap-calculator.js");
127
- const DriveScorer = await import("../../platform/drive/drive-scorer.js");
128
- const stateManager = new StateManager();
129
- const characterConfigManager = new CharacterConfigManager(stateManager);
130
- const characterConfig = await characterConfigManager.load();
131
- const llmClient = await buildLLMClient();
132
- const providerConfig = await loadProviderConfig();
133
- const trustManager = new TrustManager(stateManager);
134
- const driveSystem = new DriveSystem(stateManager);
135
- const dataSourceRegistry = await buildCliDataSourceRegistry(process.cwd(), getCliLogger());
136
- const toolRegistry = new ToolRegistry();
137
- const registerToolIfMissing = (tool) => {
138
- if (!toolRegistry.get(tool.metadata.name)) {
139
- toolRegistry.register(tool);
140
- }
141
- };
142
- for (const tool of createBuiltinTools({ stateManager, trustManager, registry: toolRegistry })) {
143
- registerToolIfMissing(tool);
144
- }
145
- const contextProvider = createWorkspaceContextProvider({ workDir: process.cwd() }, async (goalId) => {
146
- try {
147
- const goal = await stateManager.loadGoal(goalId);
148
- if (!goal)
149
- return undefined;
150
- let desc = goal.title + "\n" + goal.description;
151
- if (goal.parent_id) {
152
- const parent = await stateManager.loadGoal(goal.parent_id);
153
- if (parent?.description) {
154
- desc = `${desc}\n${parent.description}`;
155
- }
156
- }
157
- return desc;
158
- }
159
- catch (err) {
160
- getCliLogger().error(`[pulseed] Failed to resolve goal description for "${goalId}": ${err instanceof Error ? err.message : String(err)}`);
161
- return undefined;
162
- }
163
- }, async (goalId) => {
164
- try {
165
- const goal = await stateManager.loadGoal(goalId);
166
- return goal?.constraints;
167
- }
168
- catch (err) {
169
- getCliLogger().error(`[pulseed] Failed to resolve goal constraints for "${goalId}": ${err instanceof Error ? err.message : String(err)}`);
170
- return undefined;
171
- }
172
- });
173
- const observationEngine = new ObservationEngine(stateManager, dataSourceRegistry.getAllSources(), llmClient, contextProvider);
174
- const progressPredictor = new ProgressPredictor();
175
- const stallDetector = new StallDetector(stateManager, characterConfig, progressPredictor);
176
- const satisficingJudge = new SatisficingJudge(stateManager);
177
- const ethicsGate = new EthicsGate(stateManager, llmClient);
178
- const goalDependencyGraph = new GoalDependencyGraph(stateManager, llmClient, undefined, getCliLogger());
179
- const sessionManager = new SessionManager(stateManager, goalDependencyGraph);
180
- const strategyManager = new StrategyManager(stateManager, llmClient);
181
- const adapterRegistry = await buildAdapterRegistry(llmClient);
182
- const permissionManager = new ToolPermissionManager({
183
- trustManager,
184
- allowRules: [
185
- {
186
- toolName: "shell",
187
- inputMatcher: (input) => typeof input === "object" &&
188
- input !== null &&
189
- typeof input["command"] === "string" &&
190
- isSafeBashCommand(input["command"]),
191
- reason: "safe shell command",
192
- },
193
- ],
194
- });
195
- const toolExecutor = new ToolExecutor({
196
- registry: toolRegistry,
197
- permissionManager,
198
- concurrency: new ConcurrencyController(),
199
- });
200
- // TUI approval: routed through ApprovalOverlay in the Ink render loop.
201
- let requestApproval = null;
202
- const pendingApprovals = [];
203
- const enqueueApproval = (task) => {
204
- return new Promise((resolve) => {
205
- const request = { task, resolve };
206
- if (requestApproval) {
207
- requestApproval(request);
208
- }
209
- else {
210
- pendingApprovals.push(request);
211
- }
212
- });
213
- };
214
- const approvalFn = (task) => enqueueApproval(task);
215
- const chatToolApprovalFn = async (description) => {
216
- return enqueueApproval({
217
- id: randomUUID(),
218
- goal_id: "chat-tool-approval",
219
- strategy_id: null,
220
- target_dimensions: ["approval"],
221
- primary_dimension: "approval",
222
- work_description: description,
223
- rationale: "Requested by chat tool execution",
224
- approach: "Wait for explicit approval before continuing the chat tool call.",
225
- success_criteria: [],
226
- scope_boundary: {
227
- in_scope: ["Approve or reject the pending chat tool action."],
228
- out_of_scope: ["Execute any work beyond the requested chat tool action."],
229
- blast_radius: "Limited to whether the pending chat tool call proceeds.",
230
- },
231
- constraints: [],
232
- plateau_until: null,
233
- estimated_duration: null,
234
- consecutive_failure_count: 0,
235
- reversibility: "unknown",
236
- task_category: "normal",
237
- status: "pending",
238
- started_at: null,
239
- completed_at: null,
240
- timeout_at: null,
241
- heartbeat_at: null,
242
- created_at: new Date().toISOString(),
243
- });
244
- };
245
- const reportingEngine = new ReportingEngine(stateManager, undefined, characterConfig);
246
- const goalTreeManager = new GoalTreeManager(stateManager, llmClient, ethicsGate, goalDependencyGraph);
247
- const stateAggregator = new StateAggregator(stateManager, satisficingJudge);
248
- const treeLoopOrchestrator = new TreeLoopOrchestrator(stateManager, goalTreeManager, stateAggregator, satisficingJudge);
249
- const pulseedBaseDir = getPulseedDirPath();
250
- let memoryLifecycleManager;
251
- let driveScoreAdapter;
252
- try {
253
- driveScoreAdapter = new DriveScoreAdapter();
254
- memoryLifecycleManager = new MemoryLifecycleManager(pulseedBaseDir, llmClient, undefined, undefined, undefined, driveScoreAdapter);
255
- memoryLifecycleManager.initializeDirectories();
256
- }
257
- catch (err) {
258
- getCliLogger().warn(`[pulseed] MemoryLifecycleManager init failed — memory features disabled: ${err instanceof Error ? err.message : String(err)}`);
259
- memoryLifecycleManager = undefined;
260
- driveScoreAdapter = undefined;
261
- }
262
- const knowledgeManager = new KnowledgeManager(stateManager, llmClient);
263
- const soilPrefetch = memoryLifecycleManager
264
- ? async (query) => {
265
- const lessons = await memoryLifecycleManager.searchCrossGoalLessons(query.query, query.limit);
266
- if (lessons.length === 0)
267
- return null;
268
- return {
269
- content: [
270
- "Soil cross-goal lessons:",
271
- ...lessons.map((lesson, index) => `${index + 1}. ${lesson.lesson}`),
272
- ].join("\n"),
273
- soilIds: lessons.map((lesson) => lesson.lesson_id),
274
- retrievalSource: "manifest",
275
- };
276
- }
277
- : undefined;
278
- const agentLoopRunner = shouldUseNativeTaskAgentLoop(providerConfig, llmClient)
279
- ? createNativeTaskAgentLoopRunner({
280
- llmClient,
281
- stateManager,
282
- providerConfig,
283
- toolRegistry,
284
- toolExecutor,
285
- cwd: process.cwd(),
286
- traceBaseDir: stateManager.getBaseDir(),
287
- soilPrefetch,
288
- defaultWorktreePolicy: providerConfig.agent_loop?.worktree
289
- ? {
290
- enabled: providerConfig.agent_loop.worktree.enabled,
291
- baseDir: providerConfig.agent_loop.worktree.base_dir,
292
- keepForDebug: providerConfig.agent_loop.worktree.keep_for_debug,
293
- cleanupPolicy: providerConfig.agent_loop.worktree.cleanup_policy,
294
- }
295
- : undefined,
296
- })
297
- : undefined;
298
- const corePhaseRunner = shouldUseNativeTaskAgentLoop(providerConfig, llmClient)
299
- ? createNativeCorePhaseRunner({
300
- llmClient,
301
- stateManager,
302
- providerConfig,
303
- toolRegistry,
304
- toolExecutor,
305
- cwd: process.cwd(),
306
- traceBaseDir: stateManager.getBaseDir(),
307
- soilPrefetch,
308
- })
309
- : undefined;
310
- const taskLifecycle = new TaskLifecycle({
311
- stateManager,
312
- llmClient,
313
- sessionManager,
314
- trustManager,
315
- strategyManager,
316
- stallDetector,
317
- options: {
318
- approvalFn,
319
- toolExecutor,
320
- agentLoopRunner,
321
- revertCwd: process.cwd(),
322
- healthCheckCwd: process.cwd(),
323
- },
324
- });
325
- const gapCalculator = {
326
- calculateGapVector: GapCalculator.calculateGapVector,
327
- aggregateGaps: GapCalculator.aggregateGaps,
328
- };
329
- const driveScorer = {
330
- scoreAllDimensions: (gapVector, context, _config) => DriveScorer.scoreAllDimensions(gapVector, context),
331
- rankDimensions: DriveScorer.rankDimensions,
332
- };
333
- const coreLoop = new CoreLoop({
334
- stateManager,
335
- observationEngine,
336
- gapCalculator,
337
- driveScorer,
338
- taskLifecycle,
339
- satisficingJudge,
340
- stallDetector,
341
- strategyManager,
342
- reportingEngine,
343
- driveSystem,
344
- adapterRegistry,
345
- goalTreeManager,
346
- stateAggregator,
347
- treeLoopOrchestrator,
348
- goalDependencyGraph,
349
- memoryLifecycleManager,
350
- driveScoreAdapter,
351
- contextProvider,
352
- corePhaseRunner,
353
- });
354
- const scheduleEngine = new ScheduleEngine({
355
- baseDir: stateManager.getBaseDir(),
356
- dataSourceRegistry,
357
- llmClient,
358
- coreLoop,
359
- stateManager,
360
- reportingEngine,
361
- memoryLifecycle: memoryLifecycleManager,
362
- knowledgeManager,
363
- });
364
- await scheduleEngine.loadEntries();
365
- for (const tool of createBuiltinTools({
366
- stateManager,
367
- trustManager,
368
- registry: toolRegistry,
369
- scheduleEngine,
370
- adapterRegistry,
371
- sessionManager,
372
- observationEngine,
373
- knowledgeManager,
374
- })) {
375
- registerToolIfMissing(tool);
376
- }
377
- const goalNegotiator = new GoalNegotiator(stateManager, llmClient, ethicsGate, observationEngine, characterConfig, satisficingJudge, goalTreeManager, adapterRegistry.getAdapterCapabilities());
378
- const setRequestApproval = (fn) => {
379
- requestApproval = fn;
380
- while (pendingApprovals.length > 0) {
381
- const pending = pendingApprovals.shift();
382
- requestApproval(pending);
383
- }
384
- };
385
- let chatRunner;
386
- try {
387
- const adapterType = providerConfig.adapter ?? "claude_code_cli";
388
- const adapter = adapterRegistry.getAdapter(adapterType);
389
- const chatAgentLoopRunner = shouldUseNativeTaskAgentLoop(providerConfig, llmClient)
390
- ? createNativeChatAgentLoopRunner({
391
- llmClient,
392
- providerConfig,
393
- toolRegistry,
394
- toolExecutor,
395
- cwd: process.cwd(),
396
- traceBaseDir: stateManager.getBaseDir(),
397
- })
398
- : undefined;
399
- const reviewAgentLoopRunner = shouldUseNativeTaskAgentLoop(providerConfig, llmClient)
400
- ? createNativeReviewAgentLoopRunner({
401
- llmClient,
402
- providerConfig,
403
- toolRegistry,
404
- toolExecutor,
405
- cwd: process.cwd(),
406
- traceBaseDir: stateManager.getBaseDir(),
407
- })
408
- : undefined;
409
- chatRunner = new SharedManagerTuiChatSurface({
410
- stateManager,
411
- adapter,
412
- llmClient,
413
- trustManager,
414
- registry: toolRegistry,
415
- toolExecutor,
416
- chatAgentLoopRunner,
417
- reviewAgentLoopRunner,
418
- approvalFn: chatToolApprovalFn,
419
- });
420
- }
421
- catch (err) {
422
- getCliLogger().warn(`[pulseed] ChatRunner init failed — free-form chat disabled: ${err instanceof Error ? err.message : String(err)}`);
423
- }
424
- const actionHandler = new ActionHandler({
425
- stateManager,
426
- goalNegotiator,
427
- reportingEngine,
428
- });
429
- const intentRecognizer = new IntentRecognizer(llmClient);
430
- return { stateManager, llmClient, trustManager, coreLoop, goalNegotiator, reportingEngine, setRequestApproval, chatRunner, actionHandler, intentRecognizer, toolExecutor };
431
- }
17
+ import { buildDaemonModeChatSurface, buildStandaloneTuiDeps, } from "./entry-deps.js";
18
+ import { getDisplayCwd, resolveRunningDaemonConnection, startDaemonDetached, waitForDaemon, } from "./entry-daemon.js";
432
19
  // ─── Standalone mode ───
433
20
  async function startTUIStandaloneMode() {
434
21
  const noFlicker = await isNoFlickerEnabled();
@@ -449,7 +36,7 @@ async function startTUIStandaloneMode() {
449
36
  try {
450
37
  let deps;
451
38
  try {
452
- deps = await buildDeps();
39
+ deps = await buildStandaloneTuiDeps();
453
40
  }
454
41
  catch (err) {
455
42
  cleanup();
@@ -457,12 +44,12 @@ async function startTUIStandaloneMode() {
457
44
  getCliLogger().error(`Error: Failed to initialise dependencies: ${message}`);
458
45
  process.exit(1);
459
46
  }
460
- const { stateManager, llmClient, trustManager, coreLoop, actionHandler, intentRecognizer, setRequestApproval, chatRunner } = deps;
47
+ const { stateManager, trustManager, coreLoop, actionHandler, intentRecognizer, setRequestApproval, chatRunner } = deps;
461
48
  process.on("SIGTERM", () => { coreLoop.stop(); process.exit(0); });
462
49
  const providerConfig = await loadProviderConfig();
463
50
  const breadcrumb = {
464
- cwd: getCwd(),
465
- gitBranch: getGitBranch(),
51
+ cwd: getDisplayCwd(),
52
+ gitBranch: (await import("./git-branch.js")).getGitBranch(),
466
53
  providerName: providerConfig.provider,
467
54
  };
468
55
  const { render } = await import("ink");
@@ -498,6 +85,7 @@ async function startTUIStandaloneMode() {
498
85
  cleanup();
499
86
  }
500
87
  }
88
+ export { resolveRunningDaemonConnection };
501
89
  // ─── Daemon mode ───
502
90
  async function startTUIDaemonMode() {
503
91
  const { DaemonClient } = await import("../../runtime/daemon/client.js");
@@ -542,146 +130,11 @@ async function startTUIDaemonMode() {
542
130
  }
543
131
  const stateManager = new StateManager(baseDir);
544
132
  await stateManager.init();
545
- let chatRunner;
546
- const { TrustManager } = await import("../../platform/traits/trust-manager.js");
547
- const { ScheduleEngine } = await import("../../runtime/schedule/engine.js");
548
- const { buildCliDataSourceRegistry } = await import("../cli/data-source-bootstrap.js");
549
- const { ToolRegistry, ToolExecutor, ToolPermissionManager, ConcurrencyController, createBuiltinTools } = await import("../../tools/index.js");
550
- const trustManager = new TrustManager(stateManager);
551
- const toolRegistry = new ToolRegistry();
552
- const dataSourceRegistry = await buildCliDataSourceRegistry(process.cwd(), getCliLogger());
553
- const scheduleEngine = new ScheduleEngine({ baseDir, dataSourceRegistry });
554
- await scheduleEngine.loadEntries();
555
- for (const tool of createBuiltinTools({ stateManager, trustManager, registry: toolRegistry, scheduleEngine })) {
556
- toolRegistry.register(tool);
557
- }
558
- const permissionManager = new ToolPermissionManager({
559
- trustManager,
560
- allowRules: [
561
- {
562
- toolName: "shell",
563
- inputMatcher: (input) => typeof input === "object" &&
564
- input !== null &&
565
- typeof input["command"] === "string" &&
566
- isSafeBashCommand(input["command"]),
567
- reason: "safe shell command",
568
- },
569
- ],
570
- });
571
- const toolExecutor = new ToolExecutor({
572
- registry: toolRegistry,
573
- permissionManager,
574
- concurrency: new ConcurrencyController(),
575
- });
576
- let requestApproval = null;
577
- const pendingApprovals = [];
578
- const enqueueApproval = (task) => {
579
- return new Promise((resolve) => {
580
- const request = { task, resolve };
581
- if (requestApproval) {
582
- requestApproval(request);
583
- }
584
- else {
585
- pendingApprovals.push(request);
586
- }
587
- });
588
- };
589
- const chatToolApprovalFn = async (description) => {
590
- return enqueueApproval({
591
- id: randomUUID(),
592
- goal_id: "chat-tool-approval",
593
- strategy_id: null,
594
- target_dimensions: ["approval"],
595
- primary_dimension: "approval",
596
- work_description: description,
597
- rationale: "Requested by chat tool execution",
598
- approach: "Wait for explicit approval before continuing the chat tool call.",
599
- success_criteria: [],
600
- scope_boundary: {
601
- in_scope: ["Approve or reject the pending chat tool action."],
602
- out_of_scope: ["Execute any work beyond the requested chat tool action."],
603
- blast_radius: "Limited to whether the pending chat tool call proceeds.",
604
- },
605
- constraints: [],
606
- plateau_until: null,
607
- estimated_duration: null,
608
- consecutive_failure_count: 0,
609
- reversibility: "unknown",
610
- task_category: "normal",
611
- status: "pending",
612
- started_at: null,
613
- completed_at: null,
614
- timeout_at: null,
615
- heartbeat_at: null,
616
- created_at: new Date().toISOString(),
617
- });
618
- };
619
- const setRequestApproval = (fn) => {
620
- requestApproval = fn;
621
- while (pendingApprovals.length > 0) {
622
- const pending = pendingApprovals.shift();
623
- if (pending)
624
- requestApproval(pending);
625
- }
626
- };
133
+ const { chatRunner, setRequestApproval } = await buildDaemonModeChatSurface(baseDir, stateManager, daemonClient, daemonPort);
627
134
  const providerConfig = await loadProviderConfig();
628
- const cwd = getCwd();
629
- const gitBranch = getGitBranch();
135
+ const cwd = getDisplayCwd();
136
+ const gitBranch = (await import("./git-branch.js")).getGitBranch();
630
137
  const providerName = providerConfig.provider;
631
- try {
632
- const { SharedManagerTuiChatSurface } = await import("./chat-surface.js");
633
- const { buildLLMClient, buildAdapterRegistry } = await import("../../base/llm/provider-factory.js");
634
- const { createNativeChatAgentLoopRunner, createNativeReviewAgentLoopRunner, shouldUseNativeTaskAgentLoop, } = await import("../../orchestrator/execution/agent-loop/index.js");
635
- const { GoalNegotiator } = await import("../../orchestrator/goal/goal-negotiator.js");
636
- const { EthicsGate } = await import("../../platform/traits/ethics-gate.js");
637
- const { ObservationEngine } = await import("../../platform/observation/observation-engine.js");
638
- const llmClient = await buildLLMClient();
639
- const adapterRegistry = await buildAdapterRegistry(llmClient);
640
- const observationEngine = new ObservationEngine(stateManager, dataSourceRegistry.getAllSources(), llmClient);
641
- const ethicsGate = new EthicsGate(stateManager, llmClient);
642
- const goalNegotiator = new GoalNegotiator(stateManager, llmClient, ethicsGate, observationEngine, undefined, undefined, undefined, adapterRegistry.getAdapterCapabilities());
643
- const adapterType = providerConfig.adapter ?? "claude_code_cli";
644
- const adapter = adapterRegistry.getAdapter(adapterType);
645
- const chatAgentLoopRunner = shouldUseNativeTaskAgentLoop(providerConfig, llmClient)
646
- ? createNativeChatAgentLoopRunner({
647
- llmClient,
648
- providerConfig,
649
- toolRegistry,
650
- toolExecutor,
651
- cwd: process.cwd(),
652
- traceBaseDir: stateManager.getBaseDir(),
653
- })
654
- : undefined;
655
- const reviewAgentLoopRunner = shouldUseNativeTaskAgentLoop(providerConfig, llmClient)
656
- ? createNativeReviewAgentLoopRunner({
657
- llmClient,
658
- providerConfig,
659
- toolRegistry,
660
- toolExecutor,
661
- cwd: process.cwd(),
662
- traceBaseDir: stateManager.getBaseDir(),
663
- })
664
- : undefined;
665
- chatRunner = new SharedManagerTuiChatSurface({
666
- stateManager,
667
- adapter,
668
- llmClient,
669
- trustManager,
670
- registry: toolRegistry,
671
- toolExecutor,
672
- chatAgentLoopRunner,
673
- reviewAgentLoopRunner,
674
- goalNegotiator,
675
- daemonClient,
676
- daemonBaseUrl: `http://127.0.0.1:${daemonPort}`,
677
- approvalFn: chatToolApprovalFn,
678
- });
679
- }
680
- catch (err) {
681
- const message = err instanceof Error ? err.message : String(err);
682
- getCliLogger().warn(`[pulseed] Daemon-mode ChatRunner init failed — free-form chat disabled: ${message}`);
683
- chatRunner = undefined;
684
- }
685
138
  process.on("SIGTERM", () => {
686
139
  daemonClient.disconnect();
687
140
  process.exit(0);