pulseed 0.4.6 → 0.4.7

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 (275) hide show
  1. package/README.md +4 -0
  2. package/dist/adapters/agents/openclaw-acp.d.ts +32 -0
  3. package/dist/adapters/agents/openclaw-acp.d.ts.map +1 -0
  4. package/dist/adapters/agents/openclaw-acp.js +212 -0
  5. package/dist/adapters/agents/openclaw-acp.js.map +1 -0
  6. package/dist/adapters/datasources/openclaw-datasource.d.ts +33 -0
  7. package/dist/adapters/datasources/openclaw-datasource.d.ts.map +1 -0
  8. package/dist/adapters/datasources/openclaw-datasource.js +176 -0
  9. package/dist/adapters/datasources/openclaw-datasource.js.map +1 -0
  10. package/dist/base/state/state-lock.d.ts +3 -1
  11. package/dist/base/state/state-lock.d.ts.map +1 -1
  12. package/dist/base/state/state-lock.js +52 -10
  13. package/dist/base/state/state-lock.js.map +1 -1
  14. package/dist/base/state/state-manager-goal-write.d.ts +4 -0
  15. package/dist/base/state/state-manager-goal-write.d.ts.map +1 -1
  16. package/dist/base/state/state-manager-goal-write.js +45 -3
  17. package/dist/base/state/state-manager-goal-write.js.map +1 -1
  18. package/dist/base/state/state-manager-wal.d.ts.map +1 -1
  19. package/dist/base/state/state-manager-wal.js +12 -0
  20. package/dist/base/state/state-manager-wal.js.map +1 -1
  21. package/dist/base/state/state-manager.d.ts +1 -1
  22. package/dist/base/state/state-manager.d.ts.map +1 -1
  23. package/dist/base/state/state-manager.js +129 -88
  24. package/dist/base/state/state-manager.js.map +1 -1
  25. package/dist/index.d.ts +6 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/interface/chat/chat-event-state.d.ts.map +1 -1
  30. package/dist/interface/chat/chat-event-state.js +12 -24
  31. package/dist/interface/chat/chat-event-state.js.map +1 -1
  32. package/dist/interface/chat/chat-events.d.ts +9 -1
  33. package/dist/interface/chat/chat-events.d.ts.map +1 -1
  34. package/dist/interface/chat/chat-runner.d.ts +19 -0
  35. package/dist/interface/chat/chat-runner.d.ts.map +1 -1
  36. package/dist/interface/chat/chat-runner.js +101 -5
  37. package/dist/interface/chat/chat-runner.js.map +1 -1
  38. package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
  39. package/dist/interface/chat/cross-platform-session.js +36 -0
  40. package/dist/interface/chat/cross-platform-session.js.map +1 -1
  41. package/dist/interface/cli/commands/chat.d.ts.map +1 -1
  42. package/dist/interface/cli/commands/chat.js +9 -0
  43. package/dist/interface/cli/commands/chat.js.map +1 -1
  44. package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
  45. package/dist/interface/cli/commands/daemon.js +14 -0
  46. package/dist/interface/cli/commands/daemon.js.map +1 -1
  47. package/dist/interface/cli/commands/doctor.d.ts +3 -0
  48. package/dist/interface/cli/commands/doctor.d.ts.map +1 -1
  49. package/dist/interface/cli/commands/doctor.js +136 -1
  50. package/dist/interface/cli/commands/doctor.js.map +1 -1
  51. package/dist/interface/cli/commands/setup/import/apply.d.ts +3 -0
  52. package/dist/interface/cli/commands/setup/import/apply.d.ts.map +1 -0
  53. package/dist/interface/cli/commands/setup/import/apply.js +140 -0
  54. package/dist/interface/cli/commands/setup/import/apply.js.map +1 -0
  55. package/dist/interface/cli/commands/setup/import/constants.d.ts +5 -0
  56. package/dist/interface/cli/commands/setup/import/constants.d.ts.map +1 -0
  57. package/dist/interface/cli/commands/setup/import/constants.js +19 -0
  58. package/dist/interface/cli/commands/setup/import/constants.js.map +1 -0
  59. package/dist/interface/cli/commands/setup/import/discovery.d.ts +3 -0
  60. package/dist/interface/cli/commands/setup/import/discovery.d.ts.map +1 -0
  61. package/dist/interface/cli/commands/setup/import/discovery.js +140 -0
  62. package/dist/interface/cli/commands/setup/import/discovery.js.map +1 -0
  63. package/dist/interface/cli/commands/setup/import/flow.d.ts +5 -0
  64. package/dist/interface/cli/commands/setup/import/flow.d.ts.map +1 -0
  65. package/dist/interface/cli/commands/setup/import/flow.js +138 -0
  66. package/dist/interface/cli/commands/setup/import/flow.js.map +1 -0
  67. package/dist/interface/cli/commands/setup/import/fs-utils.d.ts +9 -0
  68. package/dist/interface/cli/commands/setup/import/fs-utils.d.ts.map +1 -0
  69. package/dist/interface/cli/commands/setup/import/fs-utils.js +83 -0
  70. package/dist/interface/cli/commands/setup/import/fs-utils.js.map +1 -0
  71. package/dist/interface/cli/commands/setup/import/mcp.d.ts +4 -0
  72. package/dist/interface/cli/commands/setup/import/mcp.d.ts.map +1 -0
  73. package/dist/interface/cli/commands/setup/import/mcp.js +71 -0
  74. package/dist/interface/cli/commands/setup/import/mcp.js.map +1 -0
  75. package/dist/interface/cli/commands/setup/import/parse.d.ts +7 -0
  76. package/dist/interface/cli/commands/setup/import/parse.d.ts.map +1 -0
  77. package/dist/interface/cli/commands/setup/import/parse.js +40 -0
  78. package/dist/interface/cli/commands/setup/import/parse.js.map +1 -0
  79. package/dist/interface/cli/commands/setup/import/provider.d.ts +4 -0
  80. package/dist/interface/cli/commands/setup/import/provider.d.ts.map +1 -0
  81. package/dist/interface/cli/commands/setup/import/provider.js +142 -0
  82. package/dist/interface/cli/commands/setup/import/provider.js.map +1 -0
  83. package/dist/interface/cli/commands/setup/import/types.d.ts +53 -0
  84. package/dist/interface/cli/commands/setup/import/types.d.ts.map +1 -0
  85. package/dist/interface/cli/commands/setup/import/types.js +2 -0
  86. package/dist/interface/cli/commands/setup/import/types.js.map +1 -0
  87. package/dist/interface/cli/commands/setup/steps-adapter.d.ts +1 -1
  88. package/dist/interface/cli/commands/setup/steps-adapter.d.ts.map +1 -1
  89. package/dist/interface/cli/commands/setup/steps-adapter.js +32 -5
  90. package/dist/interface/cli/commands/setup/steps-adapter.js.map +1 -1
  91. package/dist/interface/cli/commands/setup/steps-identity.d.ts +2 -2
  92. package/dist/interface/cli/commands/setup/steps-identity.d.ts.map +1 -1
  93. package/dist/interface/cli/commands/setup/steps-identity.js +10 -4
  94. package/dist/interface/cli/commands/setup/steps-identity.js.map +1 -1
  95. package/dist/interface/cli/commands/setup/steps-provider.d.ts +4 -4
  96. package/dist/interface/cli/commands/setup/steps-provider.d.ts.map +1 -1
  97. package/dist/interface/cli/commands/setup/steps-provider.js +58 -10
  98. package/dist/interface/cli/commands/setup/steps-provider.js.map +1 -1
  99. package/dist/interface/cli/commands/setup/steps-runtime.d.ts.map +1 -1
  100. package/dist/interface/cli/commands/setup/steps-runtime.js +2 -3
  101. package/dist/interface/cli/commands/setup/steps-runtime.js.map +1 -1
  102. package/dist/interface/cli/commands/setup-wizard.d.ts.map +1 -1
  103. package/dist/interface/cli/commands/setup-wizard.js +309 -62
  104. package/dist/interface/cli/commands/setup-wizard.js.map +1 -1
  105. package/dist/interface/cli/setup.d.ts.map +1 -1
  106. package/dist/interface/cli/setup.js +1 -1
  107. package/dist/interface/cli/setup.js.map +1 -1
  108. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts +1 -0
  109. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts.map +1 -1
  110. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js +91 -1
  111. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js.map +1 -1
  112. package/dist/orchestrator/execution/pipeline-executor.d.ts +1 -0
  113. package/dist/orchestrator/execution/pipeline-executor.d.ts.map +1 -1
  114. package/dist/orchestrator/execution/pipeline-executor.js +39 -8
  115. package/dist/orchestrator/execution/pipeline-executor.js.map +1 -1
  116. package/dist/orchestrator/execution/result-reconciler.d.ts.map +1 -1
  117. package/dist/orchestrator/execution/result-reconciler.js +79 -54
  118. package/dist/orchestrator/execution/result-reconciler.js.map +1 -1
  119. package/dist/orchestrator/execution/task/task-execution-helpers.d.ts +2 -1
  120. package/dist/orchestrator/execution/task/task-execution-helpers.d.ts.map +1 -1
  121. package/dist/orchestrator/execution/task/task-execution-helpers.js +11 -1
  122. package/dist/orchestrator/execution/task/task-execution-helpers.js.map +1 -1
  123. package/dist/orchestrator/execution/task/task-lifecycle.d.ts +1 -1
  124. package/dist/orchestrator/execution/task/task-lifecycle.d.ts.map +1 -1
  125. package/dist/orchestrator/execution/task/task-lifecycle.js +33 -0
  126. package/dist/orchestrator/execution/task/task-lifecycle.js.map +1 -1
  127. package/dist/orchestrator/goal/goal-dependency-graph.d.ts.map +1 -1
  128. package/dist/orchestrator/goal/goal-dependency-graph.js +20 -8
  129. package/dist/orchestrator/goal/goal-dependency-graph.js.map +1 -1
  130. package/dist/orchestrator/goal/goal-refiner.d.ts +3 -5
  131. package/dist/orchestrator/goal/goal-refiner.d.ts.map +1 -1
  132. package/dist/orchestrator/goal/goal-refiner.js +3 -5
  133. package/dist/orchestrator/goal/goal-refiner.js.map +1 -1
  134. package/dist/orchestrator/knowledge/memory/memory-lifecycle.d.ts +2 -0
  135. package/dist/orchestrator/knowledge/memory/memory-lifecycle.d.ts.map +1 -0
  136. package/dist/orchestrator/knowledge/memory/memory-lifecycle.js +2 -0
  137. package/dist/orchestrator/knowledge/memory/memory-lifecycle.js.map +1 -0
  138. package/dist/orchestrator/strategy/cross-goal-portfolio.d.ts.map +1 -1
  139. package/dist/orchestrator/strategy/cross-goal-portfolio.js +20 -12
  140. package/dist/orchestrator/strategy/cross-goal-portfolio.js.map +1 -1
  141. package/dist/orchestrator/strategy/portfolio-manager.d.ts.map +1 -1
  142. package/dist/orchestrator/strategy/portfolio-manager.js +8 -4
  143. package/dist/orchestrator/strategy/portfolio-manager.js.map +1 -1
  144. package/dist/orchestrator/strategy/strategy-manager-base.d.ts.map +1 -1
  145. package/dist/orchestrator/strategy/strategy-manager-base.js +29 -24
  146. package/dist/orchestrator/strategy/strategy-manager-base.js.map +1 -1
  147. package/dist/platform/dream/dream-soil-sync.d.ts +2 -0
  148. package/dist/platform/dream/dream-soil-sync.d.ts.map +1 -1
  149. package/dist/platform/dream/dream-soil-sync.js +19 -0
  150. package/dist/platform/dream/dream-soil-sync.js.map +1 -1
  151. package/dist/platform/drive/satisficing-judge.d.ts.map +1 -1
  152. package/dist/platform/drive/satisficing-judge.js +20 -6
  153. package/dist/platform/drive/satisficing-judge.js.map +1 -1
  154. package/dist/platform/knowledge/knowledge-manager-lint.d.ts.map +1 -1
  155. package/dist/platform/knowledge/knowledge-manager-lint.js +4 -3
  156. package/dist/platform/knowledge/knowledge-manager-lint.js.map +1 -1
  157. package/dist/platform/knowledge/knowledge-manager.d.ts.map +1 -1
  158. package/dist/platform/knowledge/knowledge-manager.js +2 -1
  159. package/dist/platform/knowledge/knowledge-manager.js.map +1 -1
  160. package/dist/platform/knowledge/knowledge-search.d.ts.map +1 -1
  161. package/dist/platform/knowledge/knowledge-search.js +15 -3
  162. package/dist/platform/knowledge/knowledge-search.js.map +1 -1
  163. package/dist/platform/knowledge/learning/learning-cross-goal.d.ts.map +1 -1
  164. package/dist/platform/knowledge/learning/learning-cross-goal.js +9 -5
  165. package/dist/platform/knowledge/learning/learning-cross-goal.js.map +1 -1
  166. package/dist/platform/observation/observation-apply.d.ts.map +1 -1
  167. package/dist/platform/observation/observation-apply.js +93 -99
  168. package/dist/platform/observation/observation-apply.js.map +1 -1
  169. package/dist/platform/soil/compiled-memory-projections.d.ts +12 -0
  170. package/dist/platform/soil/compiled-memory-projections.d.ts.map +1 -0
  171. package/dist/platform/soil/compiled-memory-projections.js +238 -0
  172. package/dist/platform/soil/compiled-memory-projections.js.map +1 -0
  173. package/dist/platform/soil/content-projections.d.ts +3 -7
  174. package/dist/platform/soil/content-projections.d.ts.map +1 -1
  175. package/dist/platform/soil/content-projections.js +67 -105
  176. package/dist/platform/soil/content-projections.js.map +1 -1
  177. package/dist/platform/soil/context-compiler.d.ts +34 -0
  178. package/dist/platform/soil/context-compiler.d.ts.map +1 -0
  179. package/dist/platform/soil/context-compiler.js +298 -0
  180. package/dist/platform/soil/context-compiler.js.map +1 -0
  181. package/dist/platform/soil/context-evaluation.d.ts +63 -0
  182. package/dist/platform/soil/context-evaluation.d.ts.map +1 -0
  183. package/dist/platform/soil/context-evaluation.js +90 -0
  184. package/dist/platform/soil/context-evaluation.js.map +1 -0
  185. package/dist/platform/soil/contracts.d.ts +269 -30
  186. package/dist/platform/soil/contracts.d.ts.map +1 -1
  187. package/dist/platform/soil/contracts.js +87 -0
  188. package/dist/platform/soil/contracts.js.map +1 -1
  189. package/dist/platform/soil/doctor.d.ts +5 -1
  190. package/dist/platform/soil/doctor.d.ts.map +1 -1
  191. package/dist/platform/soil/doctor.js +94 -1
  192. package/dist/platform/soil/doctor.js.map +1 -1
  193. package/dist/platform/soil/feedback-store.d.ts +10 -0
  194. package/dist/platform/soil/feedback-store.d.ts.map +1 -0
  195. package/dist/platform/soil/feedback-store.js +38 -0
  196. package/dist/platform/soil/feedback-store.js.map +1 -0
  197. package/dist/platform/soil/health.d.ts +35 -0
  198. package/dist/platform/soil/health.d.ts.map +1 -0
  199. package/dist/platform/soil/health.js +126 -0
  200. package/dist/platform/soil/health.js.map +1 -0
  201. package/dist/platform/soil/index-store.d.ts.map +1 -1
  202. package/dist/platform/soil/index-store.js +10 -1
  203. package/dist/platform/soil/index-store.js.map +1 -1
  204. package/dist/platform/soil/index.d.ts +4 -0
  205. package/dist/platform/soil/index.d.ts.map +1 -1
  206. package/dist/platform/soil/index.js +4 -0
  207. package/dist/platform/soil/index.js.map +1 -1
  208. package/dist/platform/soil/projection-support.d.ts +48 -0
  209. package/dist/platform/soil/projection-support.d.ts.map +1 -0
  210. package/dist/platform/soil/projection-support.js +107 -0
  211. package/dist/platform/soil/projection-support.js.map +1 -0
  212. package/dist/platform/soil/runtime-rebuild.d.ts.map +1 -1
  213. package/dist/platform/soil/runtime-rebuild.js +1 -2
  214. package/dist/platform/soil/runtime-rebuild.js.map +1 -1
  215. package/dist/platform/soil/sqlite-repository.d.ts.map +1 -1
  216. package/dist/platform/soil/sqlite-repository.js +51 -15
  217. package/dist/platform/soil/sqlite-repository.js.map +1 -1
  218. package/dist/runtime/command-dispatcher.d.ts +2 -0
  219. package/dist/runtime/command-dispatcher.d.ts.map +1 -1
  220. package/dist/runtime/command-dispatcher.js +11 -0
  221. package/dist/runtime/command-dispatcher.js.map +1 -1
  222. package/dist/runtime/control/daemon-runtime-control-executor.d.ts +13 -0
  223. package/dist/runtime/control/daemon-runtime-control-executor.d.ts.map +1 -0
  224. package/dist/runtime/control/daemon-runtime-control-executor.js +46 -0
  225. package/dist/runtime/control/daemon-runtime-control-executor.js.map +1 -0
  226. package/dist/runtime/control/index.d.ts +7 -0
  227. package/dist/runtime/control/index.d.ts.map +1 -0
  228. package/dist/runtime/control/index.js +4 -0
  229. package/dist/runtime/control/index.js.map +1 -0
  230. package/dist/runtime/control/runtime-control-intent.d.ts +7 -0
  231. package/dist/runtime/control/runtime-control-intent.d.ts.map +1 -0
  232. package/dist/runtime/control/runtime-control-intent.js +31 -0
  233. package/dist/runtime/control/runtime-control-intent.js.map +1 -0
  234. package/dist/runtime/control/runtime-control-service.d.ts +44 -0
  235. package/dist/runtime/control/runtime-control-service.d.ts.map +1 -0
  236. package/dist/runtime/control/runtime-control-service.js +143 -0
  237. package/dist/runtime/control/runtime-control-service.js.map +1 -0
  238. package/dist/runtime/daemon/client.d.ts +4 -0
  239. package/dist/runtime/daemon/client.d.ts.map +1 -1
  240. package/dist/runtime/daemon/client.js +9 -5
  241. package/dist/runtime/daemon/client.js.map +1 -1
  242. package/dist/runtime/daemon/runner.d.ts +2 -0
  243. package/dist/runtime/daemon/runner.d.ts.map +1 -1
  244. package/dist/runtime/daemon/runner.js +72 -1
  245. package/dist/runtime/daemon/runner.js.map +1 -1
  246. package/dist/runtime/event/server.d.ts +1 -0
  247. package/dist/runtime/event/server.d.ts.map +1 -1
  248. package/dist/runtime/event/server.js +36 -0
  249. package/dist/runtime/event/server.js.map +1 -1
  250. package/dist/runtime/store/index.d.ts +3 -0
  251. package/dist/runtime/store/index.d.ts.map +1 -1
  252. package/dist/runtime/store/index.js +2 -0
  253. package/dist/runtime/store/index.js.map +1 -1
  254. package/dist/runtime/store/runtime-operation-schemas.d.ts +213 -0
  255. package/dist/runtime/store/runtime-operation-schemas.d.ts.map +1 -0
  256. package/dist/runtime/store/runtime-operation-schemas.js +62 -0
  257. package/dist/runtime/store/runtime-operation-schemas.js.map +1 -0
  258. package/dist/runtime/store/runtime-operation-store.d.ts +17 -0
  259. package/dist/runtime/store/runtime-operation-store.d.ts.map +1 -0
  260. package/dist/runtime/store/runtime-operation-store.js +57 -0
  261. package/dist/runtime/store/runtime-operation-store.js.map +1 -0
  262. package/dist/runtime/store/runtime-schemas.d.ts +2 -2
  263. package/dist/runtime/types/daemon.d.ts +3 -0
  264. package/dist/runtime/types/daemon.d.ts.map +1 -1
  265. package/dist/runtime/types/daemon.js +1 -0
  266. package/dist/runtime/types/daemon.js.map +1 -1
  267. package/dist/tools/execution/RunAdapterTool/RunAdapterTool.d.ts.map +1 -1
  268. package/dist/tools/execution/RunAdapterTool/RunAdapterTool.js +20 -0
  269. package/dist/tools/execution/RunAdapterTool/RunAdapterTool.js.map +1 -1
  270. package/dist/tools/execution/SoilDoctorTool/prompt.d.ts +1 -1
  271. package/dist/tools/execution/SoilDoctorTool/prompt.d.ts.map +1 -1
  272. package/dist/tools/execution/SoilDoctorTool/prompt.js +1 -1
  273. package/dist/tools/execution/SoilDoctorTool/prompt.js.map +1 -1
  274. package/dist/tools/system/EnvTool/EnvTool.d.ts +4 -4
  275. package/package.json +1 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-event-state.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/chat-event-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;CACxD;AAoBD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,MAAM,GAClB,iBAAiB,EAAE,CAoErB"}
1
+ {"version":3,"file":"chat-event-state.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/chat-event-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;CACxD;AAgBD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,MAAM,GAClB,iBAAiB,EAAE,CA4DrB"}
@@ -7,9 +7,6 @@ function upsertMessage(messages, nextMessage, maxMessages) {
7
7
  }
8
8
  return [...next, nextMessage].slice(-maxMessages);
9
9
  }
10
- function toolMessageType(success) {
11
- return success ? "info" : "error";
12
- }
13
10
  export function applyChatEventToMessages(messages, event, maxMessages) {
14
11
  const timestamp = new Date(event.createdAt);
15
12
  if (event.type === "assistant_delta") {
@@ -30,6 +27,15 @@ export function applyChatEventToMessages(messages, event, maxMessages) {
30
27
  messageType: event.persisted ? "info" : "warning",
31
28
  }, maxMessages);
32
29
  }
30
+ if (event.type === "activity") {
31
+ return upsertMessage(messages, {
32
+ id: `activity:${event.turnId}`,
33
+ role: "pulseed",
34
+ text: event.message,
35
+ timestamp,
36
+ messageType: "info",
37
+ }, maxMessages);
38
+ }
33
39
  if (event.type === "lifecycle_error") {
34
40
  const messageId = event.partialText ? event.turnId : `error:${event.runId}`;
35
41
  const text = event.partialText
@@ -44,31 +50,13 @@ export function applyChatEventToMessages(messages, event, maxMessages) {
44
50
  }, maxMessages);
45
51
  }
46
52
  if (event.type === "tool_start") {
47
- return upsertMessage(messages, {
48
- id: `tool:${event.toolCallId}`,
49
- role: "pulseed",
50
- text: `[tool:${event.toolName}] started`,
51
- timestamp,
52
- messageType: "info",
53
- }, maxMessages);
53
+ return messages;
54
54
  }
55
55
  if (event.type === "tool_update") {
56
- return upsertMessage(messages, {
57
- id: `tool:${event.toolCallId}`,
58
- role: "pulseed",
59
- text: `[tool:${event.toolName}] ${event.status}: ${event.message}`,
60
- timestamp,
61
- messageType: event.status === "awaiting_approval" ? "warning" : "info",
62
- }, maxMessages);
56
+ return messages;
63
57
  }
64
58
  if (event.type === "tool_end") {
65
- return upsertMessage(messages, {
66
- id: `tool:${event.toolCallId}`,
67
- role: "pulseed",
68
- text: `[tool:${event.toolName}] ${event.success ? "done" : "failed"}: ${event.summary}`,
69
- timestamp,
70
- messageType: toolMessageType(event.success),
71
- }, maxMessages);
59
+ return messages;
72
60
  }
73
61
  return messages;
74
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat-event-state.js","sourceRoot":"","sources":["../../../src/interface/chat/chat-event-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-event-state.js","sourceRoot":"","sources":["../../../src/interface/chat/chat-event-state.ts"],"names":[],"mappings":"AAUA,SAAS,aAAa,CACpB,QAA6B,EAC7B,WAA8B,EAC9B,WAAmB;IAEnB,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC;IACzE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,QAA6B,EAC7B,KAAgB,EAChB,WAAmB;IAEnB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE5C,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACrC,OAAO,aAAa,CAAC,QAAQ,EAAE;YAC7B,EAAE,EAAE,KAAK,CAAC,MAAM;YAChB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS;YACT,WAAW,EAAE,MAAM;SACpB,EAAE,WAAW,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACrC,OAAO,aAAa,CAAC,QAAQ,EAAE;YAC7B,EAAE,EAAE,KAAK,CAAC,MAAM;YAChB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS;YACT,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAClD,EAAE,WAAW,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,aAAa,CAAC,QAAQ,EAAE;YAC7B,EAAE,EAAE,YAAY,KAAK,CAAC,MAAM,EAAE;YAC9B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK,CAAC,OAAO;YACnB,SAAS;YACT,WAAW,EAAE,MAAM;SACpB,EAAE,WAAW,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW;YAC5B,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,qBAAqB,KAAK,CAAC,KAAK,GAAG;YACzD,CAAC,CAAC,UAAU,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAC,QAAQ,EAAE;YAC7B,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,SAAS;YACf,IAAI;YACJ,SAAS;YACT,WAAW,EAAE,OAAO;SACrB,EAAE,WAAW,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -17,6 +17,14 @@ export interface AssistantFinalEvent extends ChatEventBase {
17
17
  text: string;
18
18
  persisted: boolean;
19
19
  }
20
+ export type ActivityKind = "lifecycle" | "commentary" | "tool" | "plugin" | "skill";
21
+ export interface ActivityEvent extends ChatEventBase {
22
+ type: "activity";
23
+ kind: ActivityKind;
24
+ message: string;
25
+ sourceId?: string;
26
+ transient?: boolean;
27
+ }
20
28
  export interface ToolStartEvent extends ChatEventBase {
21
29
  type: "tool_start";
22
30
  toolCallId: string;
@@ -50,7 +58,7 @@ export interface LifecycleErrorEvent extends ChatEventBase {
50
58
  partialText: string;
51
59
  persisted: false;
52
60
  }
53
- export type ChatEvent = LifecycleStartEvent | AssistantDeltaEvent | AssistantFinalEvent | ToolStartEvent | ToolUpdateEvent | ToolEndEvent | LifecycleEndEvent | LifecycleErrorEvent;
61
+ export type ChatEvent = LifecycleStartEvent | AssistantDeltaEvent | AssistantFinalEvent | ActivityEvent | ToolStartEvent | ToolUpdateEvent | ToolEndEvent | LifecycleEndEvent | LifecycleErrorEvent;
54
62
  export type ChatEventHandler = (event: ChatEvent) => Promise<void> | void;
55
63
  export interface ChatEventContext {
56
64
  runId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-events.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/chat-events.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,mBAAmB,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,MAAM,SAAS,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,cAAc,GACd,eAAe,GACf,YAAY,GACZ,iBAAiB,GACjB,mBAAmB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"chat-events.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/chat-events.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpF,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,mBAAmB,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,MAAM,SAAS,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,aAAa,GACb,cAAc,GACd,eAAe,GACf,YAAY,GACZ,iBAAiB,GACjB,mBAAmB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -9,6 +9,8 @@ import type { DaemonClient } from "../../runtime/daemon/client.js";
9
9
  import type { GoalNegotiator } from "../../orchestrator/goal/goal-negotiator.js";
10
10
  import type { ChatEvent } from "./chat-events.js";
11
11
  import type { ChatAgentLoopRunner } from "../../orchestrator/execution/agent-loop/chat-agent-loop-runner.js";
12
+ import type { RuntimeControlService } from "../../runtime/control/index.js";
13
+ import type { RuntimeControlActor, RuntimeControlReplyTarget } from "../../runtime/store/runtime-operation-schemas.js";
12
14
  export interface ChatRunnerDeps {
13
15
  stateManager: StateManager;
14
16
  adapter: IAdapter;
@@ -61,12 +63,25 @@ export interface ChatRunnerDeps {
61
63
  onEvent?: (event: ChatEvent) => void;
62
64
  /** Optional: native agentloop runner for chat turns. */
63
65
  chatAgentLoopRunner?: ChatAgentLoopRunner;
66
+ /** Optional: first-class runtime control service for natural-language restart/update requests. */
67
+ runtimeControlService?: Pick<RuntimeControlService, "request">;
68
+ /** Optional: approval handler scoped to runtime-control operations only. */
69
+ runtimeControlApprovalFn?: (description: string) => Promise<boolean>;
70
+ /** Optional: durable reply target for post-restart reporting. */
71
+ runtimeReplyTarget?: RuntimeControlReplyTarget;
72
+ /** Optional: source metadata for runtime control operation records. */
73
+ runtimeControlActor?: RuntimeControlActor;
64
74
  }
65
75
  export interface ChatRunResult {
66
76
  success: boolean;
67
77
  output: string;
68
78
  elapsed_ms: number;
69
79
  }
80
+ export interface RuntimeControlChatContext {
81
+ replyTarget?: RuntimeControlReplyTarget;
82
+ actor?: RuntimeControlActor;
83
+ approvalFn?: (description: string) => Promise<boolean>;
84
+ }
70
85
  export declare class ChatRunner {
71
86
  private readonly deps;
72
87
  private history;
@@ -88,6 +103,7 @@ export declare class ChatRunner {
88
103
  onNotification: ((message: string) => void) | undefined;
89
104
  onEvent: ((event: ChatEvent) => void) | undefined;
90
105
  private nativeAgentLoopStatePath;
106
+ private runtimeControlContext;
91
107
  constructor(deps: ChatRunnerDeps);
92
108
  /**
93
109
  * Initialize a persistent session for interactive (multi-turn) mode.
@@ -95,6 +111,7 @@ export declare class ChatRunner {
95
111
  * If not called, execute() auto-creates a new session per call (Phase 1a behavior).
96
112
  */
97
113
  startSession(cwd: string): void;
114
+ setRuntimeControlContext(context: RuntimeControlChatContext | null): void;
98
115
  private handleCommand;
99
116
  private handleTrack;
100
117
  private handleTend;
@@ -112,6 +129,7 @@ export declare class ChatRunner {
112
129
  * 7. Persist assistant response only after the final assistant text is complete
113
130
  */
114
131
  execute(input: string, cwd: string, timeoutMs?: number): Promise<ChatRunResult>;
132
+ private handleRuntimeControlIntent;
115
133
  /**
116
134
  * Execute a chat turn using llmClient with self-knowledge tools (function calling).
117
135
  * Loops up to MAX_TOOL_LOOPS times to resolve tool calls, then returns final text.
@@ -133,6 +151,7 @@ export declare class ChatRunner {
133
151
  private createEventContext;
134
152
  private eventBase;
135
153
  private emitEvent;
154
+ private emitActivity;
136
155
  private pushAssistantDelta;
137
156
  private emitLifecycleEndEvent;
138
157
  private emitLifecycleErrorEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-runner.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/chat-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-runner.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/chat-runner.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,11 @@ import { verifyChatAction } from "./chat-verifier.js";
10
10
  import { toToolDefinitionsFiltered } from "../../tools/tool-definition-adapter.js";
11
11
  import { TendCommand } from "./tend-command.js";
12
12
  import { EventSubscriber } from "./event-subscriber.js";
13
+ import { recognizeRuntimeControlIntent } from "../../runtime/control/index.js";
13
14
  const DEFAULT_TIMEOUT_MS = 120_000;
14
15
  const MAX_VERIFY_RETRIES = 2;
15
16
  const MAX_TOOL_LOOPS = 5;
17
+ const ACTIVITY_PREVIEW_CHARS = 40;
16
18
  // ─── Command help text ───
17
19
  const COMMAND_HELP = `Available commands:
18
20
  /help Show this help message
@@ -29,6 +31,14 @@ function checkGitChanges(cwd) {
29
31
  });
30
32
  });
31
33
  }
34
+ function previewActivityText(value, maxChars = ACTIVITY_PREVIEW_CHARS) {
35
+ const normalized = value.replace(/\s+/g, " ").trim();
36
+ return normalized.length > maxChars ? `${normalized.slice(0, maxChars)}...` : normalized;
37
+ }
38
+ function formatToolActivity(action, toolName, detail) {
39
+ const preview = detail ? previewActivityText(detail) : "";
40
+ return preview ? `${action} tool: ${toolName} - ${preview}` : `${action} tool: ${toolName}`;
41
+ }
32
42
  // ─── ChatRunner ───
33
43
  export class ChatRunner {
34
44
  deps;
@@ -51,6 +61,7 @@ export class ChatRunner {
51
61
  onNotification = undefined;
52
62
  onEvent = undefined;
53
63
  nativeAgentLoopStatePath = null;
64
+ runtimeControlContext = null;
54
65
  constructor(deps) {
55
66
  this.deps = deps;
56
67
  }
@@ -67,6 +78,9 @@ export class ChatRunner {
67
78
  this.sessionActive = true;
68
79
  this.nativeAgentLoopStatePath = `chat/agentloop/${sessionId}.state.json`;
69
80
  }
81
+ setRuntimeControlContext(context) {
82
+ this.runtimeControlContext = context;
83
+ }
70
84
  async handleCommand(input) {
71
85
  const trimmed = input.trim();
72
86
  if (!trimmed.startsWith("/"))
@@ -276,6 +290,21 @@ export class ChatRunner {
276
290
  this.emitLifecycleEndEvent(confirmationResult.success ? "completed" : "error", confirmationResult.elapsed_ms, eventContext, false);
277
291
  return confirmationResult;
278
292
  }
293
+ const runtimeControlResult = resumeOnly
294
+ ? null
295
+ : await this.handleRuntimeControlIntent(input, cwd, Date.now());
296
+ if (runtimeControlResult !== null) {
297
+ if (runtimeControlResult.output) {
298
+ this.emitEvent({
299
+ type: "assistant_final",
300
+ text: runtimeControlResult.output,
301
+ persisted: false,
302
+ ...this.eventBase(eventContext),
303
+ });
304
+ }
305
+ this.emitLifecycleEndEvent(runtimeControlResult.success ? "completed" : "error", runtimeControlResult.elapsed_ms, eventContext, false);
306
+ return runtimeControlResult;
307
+ }
279
308
  // Reuse session (interactive mode) or create a fresh one per call (1-shot mode)
280
309
  if (!this.sessionActive) {
281
310
  const gitRoot = resolveGitRoot(cwd);
@@ -286,15 +315,15 @@ export class ChatRunner {
286
315
  const gitRoot = this.sessionCwd ?? resolveGitRoot(cwd);
287
316
  // history is always assigned by this point (either by startSession or the block above)
288
317
  const history = this.history;
289
- // Persist-before-execute: user message written to disk first
290
- if (!resumeOnly) {
291
- await history.appendUserMessage(input);
292
- }
293
318
  this.emitEvent({
294
319
  type: "lifecycle_start",
295
320
  input,
296
321
  ...this.eventBase(eventContext),
297
322
  });
323
+ // Persist-before-execute: user message written to disk before model or adapter execution.
324
+ if (!resumeOnly) {
325
+ await history.appendUserMessage(input);
326
+ }
298
327
  // Build static grounding once per session; dynamic context is rebuilt each turn.
299
328
  if (this.cachedStaticSystemPrompt === null) {
300
329
  try {
@@ -306,6 +335,7 @@ export class ChatRunner {
306
335
  }
307
336
  let dynamicSystemPrompt = "";
308
337
  try {
338
+ this.emitActivity("lifecycle", "Preparing context...", eventContext, "lifecycle:context");
309
339
  dynamicSystemPrompt = await buildDynamicContextPrompt({ stateManager: this.deps.stateManager });
310
340
  }
311
341
  catch {
@@ -363,6 +393,7 @@ export class ChatRunner {
363
393
  elapsed_ms,
364
394
  };
365
395
  }
396
+ this.emitActivity("lifecycle", "Calling model...", eventContext, "lifecycle:model");
366
397
  const result = await this.deps.chatAgentLoopRunner.execute({
367
398
  message: basePrompt,
368
399
  cwd,
@@ -389,6 +420,7 @@ export class ChatRunner {
389
420
  }
390
421
  if (result.success) {
391
422
  await history.appendAssistantMessage(result.output);
423
+ this.emitActivity("lifecycle", "Finalizing response...", eventContext, "lifecycle:finalizing");
392
424
  this.emitEvent({
393
425
  type: "assistant_final",
394
426
  text: result.output,
@@ -427,6 +459,7 @@ export class ChatRunner {
427
459
  const toolResult = await this.executeWithTools(prompt, eventContext, assistantBuffer, systemPrompt || undefined);
428
460
  const elapsed_ms = Date.now() - start;
429
461
  await history.appendAssistantMessage(toolResult);
462
+ this.emitActivity("lifecycle", "Finalizing response...", eventContext, "lifecycle:finalizing");
430
463
  this.emitEvent({
431
464
  type: "assistant_final",
432
465
  text: toolResult,
@@ -457,6 +490,7 @@ export class ChatRunner {
457
490
  ...(systemPrompt ? { system_prompt: systemPrompt } : {}),
458
491
  };
459
492
  const resolvedTimeoutMs = task.timeout_ms ?? DEFAULT_TIMEOUT_MS;
493
+ this.emitActivity("lifecycle", "Calling adapter...", eventContext, "lifecycle:adapter");
460
494
  const adapterPromise = this.deps.adapter.execute(task);
461
495
  const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error(`Chat adapter timed out after ${resolvedTimeoutMs}ms`)), resolvedTimeoutMs));
462
496
  let result = await Promise.race([adapterPromise, timeoutPromise]);
@@ -473,6 +507,7 @@ export class ChatRunner {
473
507
  if (gitChanges !== null && gitChanges !== "") {
474
508
  let retries = 0;
475
509
  const VERIFY_TIMEOUT_MS = 30_000;
510
+ this.emitActivity("lifecycle", "Checking result...", eventContext, "lifecycle:checking");
476
511
  let verification = await Promise.race([
477
512
  verifyChatAction(gitRoot, this.deps.toolExecutor),
478
513
  new Promise((resolve) => setTimeout(() => resolve({ passed: true }), VERIFY_TIMEOUT_MS)),
@@ -496,6 +531,7 @@ export class ChatRunner {
496
531
  }
497
532
  if (result.success) {
498
533
  await history.appendAssistantMessage(result.output);
534
+ this.emitActivity("lifecycle", "Finalizing response...", eventContext, "lifecycle:finalizing");
499
535
  this.emitEvent({
500
536
  type: "assistant_final",
501
537
  text: result.output,
@@ -515,6 +551,40 @@ export class ChatRunner {
515
551
  elapsed_ms,
516
552
  };
517
553
  }
554
+ async handleRuntimeControlIntent(input, cwd, start) {
555
+ const intent = recognizeRuntimeControlIntent(input);
556
+ if (intent === null)
557
+ return null;
558
+ if (!this.deps.runtimeControlService) {
559
+ return {
560
+ success: false,
561
+ output: "Runtime control is not available in this chat surface yet.",
562
+ elapsed_ms: Date.now() - start,
563
+ };
564
+ }
565
+ const replyTarget = this.runtimeControlContext?.replyTarget ?? this.deps.runtimeReplyTarget;
566
+ const actor = this.runtimeControlContext?.actor ?? this.deps.runtimeControlActor;
567
+ const result = await this.deps.runtimeControlService.request({
568
+ intent,
569
+ cwd,
570
+ requestedBy: actor ?? {
571
+ surface: replyTarget?.surface ?? "chat",
572
+ platform: replyTarget?.platform,
573
+ conversation_id: replyTarget?.conversation_id,
574
+ identity_key: replyTarget?.identity_key,
575
+ user_id: replyTarget?.user_id,
576
+ },
577
+ replyTarget: replyTarget ?? { surface: "chat" },
578
+ approvalFn: this.runtimeControlContext?.approvalFn
579
+ ?? this.deps.runtimeControlApprovalFn
580
+ ?? this.deps.approvalFn,
581
+ });
582
+ return {
583
+ success: result.success,
584
+ output: result.message,
585
+ elapsed_ms: Date.now() - start,
586
+ };
587
+ }
518
588
  /**
519
589
  * Execute a chat turn using llmClient with self-knowledge tools (function calling).
520
590
  * Loops up to MAX_TOOL_LOOPS times to resolve tool calls, then returns final text.
@@ -530,6 +600,7 @@ export class ChatRunner {
530
600
  : [];
531
601
  let response;
532
602
  try {
603
+ this.emitActivity("lifecycle", "Calling model...", eventContext, "lifecycle:model");
533
604
  response = await this.sendLLMMessage(llmClient, messages, {
534
605
  tools,
535
606
  ...(systemPrompt ? { system: systemPrompt } : {}),
@@ -590,6 +661,8 @@ export class ChatRunner {
590
661
  return {
591
662
  emit: async (event) => {
592
663
  if (event.type === "tool_call_started") {
664
+ const detail = event.inputPreview ? previewActivityText(event.inputPreview) : undefined;
665
+ this.emitActivity("tool", formatToolActivity("Running", event.toolName, detail), eventContext, event.callId);
593
666
  this.emitEvent({
594
667
  type: "tool_start",
595
668
  toolCallId: event.callId,
@@ -608,6 +681,7 @@ export class ChatRunner {
608
681
  return;
609
682
  }
610
683
  if (event.type === "tool_call_finished") {
684
+ this.emitActivity("tool", formatToolActivity(event.success ? "Finished" : "Failed", event.toolName, event.outputPreview), eventContext, event.callId);
611
685
  this.emitEvent({
612
686
  type: "tool_end",
613
687
  toolCallId: event.callId,
@@ -620,10 +694,11 @@ export class ChatRunner {
620
694
  return;
621
695
  }
622
696
  if (event.type === "assistant_message" && event.phase === "commentary" && event.contentPreview) {
623
- this.pushAssistantDelta(event.contentPreview, { text: "" }, eventContext);
697
+ this.emitActivity("commentary", previewActivityText(event.contentPreview, 120), eventContext, `commentary:${event.eventId}`);
624
698
  return;
625
699
  }
626
700
  if (event.type === "plan_update") {
701
+ this.emitActivity("tool", `Updated plan: ${previewActivityText(event.summary)}`, eventContext, `plan:${event.turnId}`);
627
702
  this.emitEvent({
628
703
  type: "tool_update",
629
704
  toolCallId: `plan:${event.turnId}:${event.createdAt}`,
@@ -635,6 +710,7 @@ export class ChatRunner {
635
710
  return;
636
711
  }
637
712
  if (event.type === "approval_request") {
713
+ this.emitActivity("tool", formatToolActivity("Running", event.toolName, `awaiting approval: ${event.reason}`), eventContext, event.callId);
638
714
  this.emitEvent({
639
715
  type: "tool_update",
640
716
  toolCallId: event.callId,
@@ -646,6 +722,7 @@ export class ChatRunner {
646
722
  return;
647
723
  }
648
724
  if (event.type === "approval") {
725
+ this.emitActivity("tool", formatToolActivity("Finished", event.toolName, `approval ${event.status}: ${event.reason}`), eventContext);
649
726
  this.emitEvent({
650
727
  type: "tool_update",
651
728
  toolCallId: `approval:${event.turnId}:${event.createdAt}`,
@@ -726,16 +803,19 @@ export class ChatRunner {
726
803
  /** Dispatch a tool call through the registry. */
727
804
  async dispatchToolCall(toolCallId, name, args, context, eventContext) {
728
805
  if (!this.deps.registry) {
806
+ this.emitActivity("tool", formatToolActivity("Failed", name, "No tool registry configured"), eventContext, toolCallId);
729
807
  return JSON.stringify({ error: `No tool registry configured` });
730
808
  }
731
809
  const tool = this.deps.registry.get(name);
732
810
  if (!tool) {
811
+ this.emitActivity("tool", formatToolActivity("Failed", name, `Unknown tool: ${name}`), eventContext, toolCallId);
733
812
  return JSON.stringify({ error: `Unknown tool: ${name}` });
734
813
  }
735
814
  const startTime = Date.now();
736
815
  try {
737
816
  const parsed = tool.inputSchema.safeParse(args);
738
817
  if (!parsed.success) {
818
+ this.emitActivity("tool", formatToolActivity("Failed", name, `Invalid input: ${parsed.error.message}`), eventContext, toolCallId);
739
819
  this.emitEvent({
740
820
  type: "tool_end",
741
821
  toolCallId,
@@ -754,6 +834,7 @@ export class ChatRunner {
754
834
  args,
755
835
  ...this.eventBase(eventContext),
756
836
  });
837
+ this.emitActivity("tool", formatToolActivity("Running", name, JSON.stringify(args)), eventContext, toolCallId);
757
838
  let result;
758
839
  if (this.deps.toolExecutor) {
759
840
  this.emitEvent({
@@ -783,6 +864,7 @@ export class ChatRunner {
783
864
  return `Tool ${name} denied: ${permResult.reason}`;
784
865
  }
785
866
  if (permResult.status === "needs_approval") {
867
+ this.emitActivity("tool", formatToolActivity("Running", name, `awaiting approval: ${permResult.reason}`), eventContext, toolCallId);
786
868
  this.emitEvent({
787
869
  type: "tool_update",
788
870
  toolCallId,
@@ -825,6 +907,7 @@ export class ChatRunner {
825
907
  }
826
908
  const durationMs = Date.now() - startTime;
827
909
  this.deps.onToolEnd?.(name, { success: result.success, summary: result.summary || '...', durationMs });
910
+ this.emitActivity("tool", formatToolActivity(result.success ? "Finished" : "Failed", name, result.summary || "..."), eventContext, toolCallId);
828
911
  this.emitEvent({
829
912
  type: "tool_update",
830
913
  toolCallId,
@@ -849,6 +932,7 @@ export class ChatRunner {
849
932
  const message = err instanceof Error ? err.message : String(err);
850
933
  const durationMs = Date.now() - startTime;
851
934
  this.deps.onToolEnd?.(name, { success: false, summary: message, durationMs });
935
+ this.emitActivity("tool", formatToolActivity("Failed", name, message), eventContext, toolCallId);
852
936
  this.emitEvent({
853
937
  type: "tool_end",
854
938
  toolCallId,
@@ -894,6 +978,18 @@ export class ChatRunner {
894
978
  const handler = this.onEvent ?? this.deps.onEvent;
895
979
  handler?.(event);
896
980
  }
981
+ emitActivity(kind, message, eventContext, sourceId) {
982
+ if (!message.trim())
983
+ return;
984
+ this.emitEvent({
985
+ type: "activity",
986
+ kind,
987
+ message,
988
+ ...(sourceId ? { sourceId } : {}),
989
+ transient: true,
990
+ ...this.eventBase(eventContext),
991
+ });
992
+ }
897
993
  pushAssistantDelta(delta, assistantBuffer, eventContext) {
898
994
  if (!delta)
899
995
  return;