pulseed 0.4.20 → 0.5.1

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 (271) hide show
  1. package/dist/adapters/types/mcp.d.ts +6 -6
  2. package/dist/base/config/global-config.d.ts +4 -4
  3. package/dist/base/llm/codex-llm-client.d.ts +8 -2
  4. package/dist/base/llm/codex-llm-client.d.ts.map +1 -1
  5. package/dist/base/llm/codex-llm-client.js +75 -30
  6. package/dist/base/llm/codex-llm-client.js.map +1 -1
  7. package/dist/base/llm/provider-config.d.ts +14 -0
  8. package/dist/base/llm/provider-config.d.ts.map +1 -1
  9. package/dist/base/llm/provider-config.js +56 -2
  10. package/dist/base/llm/provider-config.js.map +1 -1
  11. package/dist/base/llm/provider-factory.d.ts.map +1 -1
  12. package/dist/base/llm/provider-factory.js +3 -0
  13. package/dist/base/llm/provider-factory.js.map +1 -1
  14. package/dist/grounding/contracts.d.ts +160 -0
  15. package/dist/grounding/contracts.d.ts.map +1 -0
  16. package/dist/grounding/contracts.js +2 -0
  17. package/dist/grounding/contracts.js.map +1 -0
  18. package/dist/grounding/gateway.d.ts +12 -0
  19. package/dist/grounding/gateway.d.ts.map +1 -0
  20. package/dist/grounding/gateway.js +116 -0
  21. package/dist/grounding/gateway.js.map +1 -0
  22. package/dist/grounding/profiles.d.ts +4 -0
  23. package/dist/grounding/profiles.d.ts.map +1 -0
  24. package/dist/grounding/profiles.js +159 -0
  25. package/dist/grounding/profiles.js.map +1 -0
  26. package/dist/grounding/providers/agents-provider.d.ts +14 -0
  27. package/dist/grounding/providers/agents-provider.d.ts.map +1 -0
  28. package/dist/grounding/providers/agents-provider.js +129 -0
  29. package/dist/grounding/providers/agents-provider.js.map +1 -0
  30. package/dist/grounding/providers/goal-state-provider.d.ts +3 -0
  31. package/dist/grounding/providers/goal-state-provider.d.ts.map +1 -0
  32. package/dist/grounding/providers/goal-state-provider.js +34 -0
  33. package/dist/grounding/providers/goal-state-provider.js.map +1 -0
  34. package/dist/grounding/providers/helpers.d.ts +13 -0
  35. package/dist/grounding/providers/helpers.d.ts.map +1 -0
  36. package/dist/grounding/providers/helpers.js +93 -0
  37. package/dist/grounding/providers/helpers.js.map +1 -0
  38. package/dist/grounding/providers/knowledge-provider.d.ts +3 -0
  39. package/dist/grounding/providers/knowledge-provider.d.ts.map +1 -0
  40. package/dist/grounding/providers/knowledge-provider.js +49 -0
  41. package/dist/grounding/providers/knowledge-provider.js.map +1 -0
  42. package/dist/grounding/providers/lessons-provider.d.ts +3 -0
  43. package/dist/grounding/providers/lessons-provider.d.ts.map +1 -0
  44. package/dist/grounding/providers/lessons-provider.js +36 -0
  45. package/dist/grounding/providers/lessons-provider.js.map +1 -0
  46. package/dist/grounding/providers/plugins-provider.d.ts +3 -0
  47. package/dist/grounding/providers/plugins-provider.d.ts.map +1 -0
  48. package/dist/grounding/providers/plugins-provider.js +35 -0
  49. package/dist/grounding/providers/plugins-provider.js.map +1 -0
  50. package/dist/grounding/providers/progress-history-provider.d.ts +3 -0
  51. package/dist/grounding/providers/progress-history-provider.d.ts.map +1 -0
  52. package/dist/grounding/providers/progress-history-provider.js +30 -0
  53. package/dist/grounding/providers/progress-history-provider.js.map +1 -0
  54. package/dist/grounding/providers/provider-state-provider.d.ts +3 -0
  55. package/dist/grounding/providers/provider-state-provider.d.ts.map +1 -0
  56. package/dist/grounding/providers/provider-state-provider.js +32 -0
  57. package/dist/grounding/providers/provider-state-provider.js.map +1 -0
  58. package/dist/grounding/providers/session-history-provider.d.ts +3 -0
  59. package/dist/grounding/providers/session-history-provider.d.ts.map +1 -0
  60. package/dist/grounding/providers/session-history-provider.js +72 -0
  61. package/dist/grounding/providers/session-history-provider.js.map +1 -0
  62. package/dist/grounding/providers/soil-provider.d.ts +3 -0
  63. package/dist/grounding/providers/soil-provider.d.ts.map +1 -0
  64. package/dist/grounding/providers/soil-provider.js +70 -0
  65. package/dist/grounding/providers/soil-provider.js.map +1 -0
  66. package/dist/grounding/providers/static-policy-provider.d.ts +8 -0
  67. package/dist/grounding/providers/static-policy-provider.d.ts.map +1 -0
  68. package/dist/grounding/providers/static-policy-provider.js +81 -0
  69. package/dist/grounding/providers/static-policy-provider.js.map +1 -0
  70. package/dist/grounding/providers/task-state-provider.d.ts +3 -0
  71. package/dist/grounding/providers/task-state-provider.d.ts.map +1 -0
  72. package/dist/grounding/providers/task-state-provider.js +55 -0
  73. package/dist/grounding/providers/task-state-provider.js.map +1 -0
  74. package/dist/grounding/providers/trust-state-provider.d.ts +3 -0
  75. package/dist/grounding/providers/trust-state-provider.d.ts.map +1 -0
  76. package/dist/grounding/providers/trust-state-provider.js +25 -0
  77. package/dist/grounding/providers/trust-state-provider.js.map +1 -0
  78. package/dist/grounding/providers/workspace-facts-provider.d.ts +3 -0
  79. package/dist/grounding/providers/workspace-facts-provider.d.ts.map +1 -0
  80. package/dist/grounding/providers/workspace-facts-provider.js +22 -0
  81. package/dist/grounding/providers/workspace-facts-provider.js.map +1 -0
  82. package/dist/grounding/renderers/debug-renderer.d.ts +3 -0
  83. package/dist/grounding/renderers/debug-renderer.d.ts.map +1 -0
  84. package/dist/grounding/renderers/debug-renderer.js +11 -0
  85. package/dist/grounding/renderers/debug-renderer.js.map +1 -0
  86. package/dist/grounding/renderers/prompt-renderer.d.ts +10 -0
  87. package/dist/grounding/renderers/prompt-renderer.d.ts.map +1 -0
  88. package/dist/grounding/renderers/prompt-renderer.js +23 -0
  89. package/dist/grounding/renderers/prompt-renderer.js.map +1 -0
  90. package/dist/index.d.ts +4 -2
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +3 -2
  93. package/dist/index.js.map +1 -1
  94. package/dist/interface/chat/chat-event-state.d.ts +1 -0
  95. package/dist/interface/chat/chat-event-state.d.ts.map +1 -1
  96. package/dist/interface/chat/chat-event-state.js +12 -2
  97. package/dist/interface/chat/chat-event-state.js.map +1 -1
  98. package/dist/interface/chat/chat-runner.d.ts +18 -6
  99. package/dist/interface/chat/chat-runner.d.ts.map +1 -1
  100. package/dist/interface/chat/chat-runner.js +331 -148
  101. package/dist/interface/chat/chat-runner.js.map +1 -1
  102. package/dist/interface/chat/cross-platform-session-global.d.ts +5 -0
  103. package/dist/interface/chat/cross-platform-session-global.d.ts.map +1 -0
  104. package/dist/interface/chat/cross-platform-session-global.js +17 -0
  105. package/dist/interface/chat/cross-platform-session-global.js.map +1 -0
  106. package/dist/interface/chat/cross-platform-session.d.ts +22 -0
  107. package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
  108. package/dist/interface/chat/cross-platform-session.js +192 -61
  109. package/dist/interface/chat/cross-platform-session.js.map +1 -1
  110. package/dist/interface/chat/event-subscriber.d.ts +14 -0
  111. package/dist/interface/chat/event-subscriber.d.ts.map +1 -1
  112. package/dist/interface/chat/event-subscriber.js +138 -28
  113. package/dist/interface/chat/event-subscriber.js.map +1 -1
  114. package/dist/interface/chat/grounding.d.ts +22 -1
  115. package/dist/interface/chat/grounding.d.ts.map +1 -1
  116. package/dist/interface/chat/grounding.js +82 -127
  117. package/dist/interface/chat/grounding.js.map +1 -1
  118. package/dist/interface/chat/ingress-router.d.ts +110 -0
  119. package/dist/interface/chat/ingress-router.d.ts.map +1 -0
  120. package/dist/interface/chat/ingress-router.js +183 -0
  121. package/dist/interface/chat/ingress-router.js.map +1 -0
  122. package/dist/interface/cli/setup.d.ts.map +1 -1
  123. package/dist/interface/cli/setup.js +1 -0
  124. package/dist/interface/cli/setup.js.map +1 -1
  125. package/dist/interface/tui/app.d.ts +2 -2
  126. package/dist/interface/tui/app.d.ts.map +1 -1
  127. package/dist/interface/tui/chat/scroll.d.ts +1 -1
  128. package/dist/interface/tui/chat/scroll.d.ts.map +1 -1
  129. package/dist/interface/tui/chat/scroll.js +19 -4
  130. package/dist/interface/tui/chat/scroll.js.map +1 -1
  131. package/dist/interface/tui/chat/types.d.ts +2 -0
  132. package/dist/interface/tui/chat/types.d.ts.map +1 -1
  133. package/dist/interface/tui/chat/viewport.d.ts.map +1 -1
  134. package/dist/interface/tui/chat/viewport.js +1 -0
  135. package/dist/interface/tui/chat/viewport.js.map +1 -1
  136. package/dist/interface/tui/chat-surface.d.ts +20 -0
  137. package/dist/interface/tui/chat-surface.d.ts.map +1 -0
  138. package/dist/interface/tui/chat-surface.js +59 -0
  139. package/dist/interface/tui/chat-surface.js.map +1 -0
  140. package/dist/interface/tui/chat.d.ts +1 -1
  141. package/dist/interface/tui/chat.d.ts.map +1 -1
  142. package/dist/interface/tui/chat.js +9 -6
  143. package/dist/interface/tui/chat.js.map +1 -1
  144. package/dist/interface/tui/entry.d.ts.map +1 -1
  145. package/dist/interface/tui/entry.js +64 -8
  146. package/dist/interface/tui/entry.js.map +1 -1
  147. package/dist/interface/tui/flicker/MouseTracking.d.ts +1 -0
  148. package/dist/interface/tui/flicker/MouseTracking.d.ts.map +1 -1
  149. package/dist/interface/tui/flicker/MouseTracking.js +7 -0
  150. package/dist/interface/tui/flicker/MouseTracking.js.map +1 -1
  151. package/dist/interface/tui/flicker/index.d.ts +1 -1
  152. package/dist/interface/tui/flicker/index.d.ts.map +1 -1
  153. package/dist/interface/tui/flicker/index.js +1 -1
  154. package/dist/interface/tui/flicker/index.js.map +1 -1
  155. package/dist/interface/tui/fullscreen-chat.d.ts +28 -3
  156. package/dist/interface/tui/fullscreen-chat.d.ts.map +1 -1
  157. package/dist/interface/tui/fullscreen-chat.js +61 -45
  158. package/dist/interface/tui/fullscreen-chat.js.map +1 -1
  159. package/dist/interface/tui/markdown-renderer.d.ts +1 -1
  160. package/dist/interface/tui/markdown-renderer.d.ts.map +1 -1
  161. package/dist/interface/tui/markdown-renderer.js +137 -11
  162. package/dist/interface/tui/markdown-renderer.js.map +1 -1
  163. package/dist/interface/tui/test-entry.d.ts.map +1 -1
  164. package/dist/interface/tui/test-entry.js +3 -2
  165. package/dist/interface/tui/test-entry.js.map +1 -1
  166. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts +3 -1
  167. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts.map +1 -1
  168. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js +76 -112
  169. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js.map +1 -1
  170. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts +11 -0
  171. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts.map +1 -1
  172. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js +13 -0
  173. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js.map +1 -1
  174. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts +1 -0
  175. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts.map +1 -1
  176. package/dist/orchestrator/execution/agent-loop/agent-loop-events.js.map +1 -1
  177. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.d.ts.map +1 -1
  178. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js +8 -0
  179. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js.map +1 -1
  180. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts +1 -0
  181. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts.map +1 -1
  182. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js +1 -0
  183. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js.map +1 -1
  184. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts +3 -1
  185. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts.map +1 -1
  186. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.js.map +1 -1
  187. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts +1 -1
  188. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts.map +1 -1
  189. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js +60 -50
  190. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js.map +1 -1
  191. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts +239 -10
  192. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -1
  193. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +298 -96
  194. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -1
  195. package/dist/orchestrator/execution/agent-loop/prompted-tool-protocol.d.ts.map +1 -1
  196. package/dist/orchestrator/execution/agent-loop/prompted-tool-protocol.js +1 -0
  197. package/dist/orchestrator/execution/agent-loop/prompted-tool-protocol.js.map +1 -1
  198. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts +2 -5
  199. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts.map +1 -1
  200. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js +10 -12
  201. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js.map +1 -1
  202. package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.d.ts +2 -0
  203. package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.d.ts.map +1 -1
  204. package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.js +16 -9
  205. package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.js.map +1 -1
  206. package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.d.ts +6 -6
  207. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts.map +1 -1
  208. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js +53 -36
  209. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js.map +1 -1
  210. package/dist/orchestrator/loop/core-loop/phase-policy.d.ts.map +1 -1
  211. package/dist/orchestrator/loop/core-loop/phase-policy.js +87 -34
  212. package/dist/orchestrator/loop/core-loop/phase-policy.js.map +1 -1
  213. package/dist/orchestrator/loop/core-loop.d.ts +1 -0
  214. package/dist/orchestrator/loop/core-loop.d.ts.map +1 -1
  215. package/dist/orchestrator/loop/core-loop.js +191 -176
  216. package/dist/orchestrator/loop/core-loop.js.map +1 -1
  217. package/dist/platform/dream/dream-types.d.ts +14 -14
  218. package/dist/platform/knowledge/index.d.ts +3 -0
  219. package/dist/platform/knowledge/index.d.ts.map +1 -0
  220. package/dist/platform/knowledge/index.js +3 -0
  221. package/dist/platform/knowledge/index.js.map +1 -0
  222. package/dist/platform/knowledge/knowledge-manager.d.ts +1 -4
  223. package/dist/platform/knowledge/knowledge-manager.d.ts.map +1 -1
  224. package/dist/platform/knowledge/knowledge-manager.js +1 -4
  225. package/dist/platform/knowledge/knowledge-manager.js.map +1 -1
  226. package/dist/platform/knowledge/public-api.d.ts +4 -0
  227. package/dist/platform/knowledge/public-api.d.ts.map +1 -0
  228. package/dist/platform/knowledge/public-api.js +4 -0
  229. package/dist/platform/knowledge/public-api.js.map +1 -0
  230. package/dist/platform/soil/contracts.d.ts +66 -66
  231. package/dist/runtime/daemon/runner-goal-cycle.d.ts.map +1 -1
  232. package/dist/runtime/daemon/runner-goal-cycle.js +36 -1
  233. package/dist/runtime/daemon/runner-goal-cycle.js.map +1 -1
  234. package/dist/runtime/plugin-loader.d.ts.map +1 -1
  235. package/dist/runtime/plugin-loader.js +3 -6
  236. package/dist/runtime/plugin-loader.js.map +1 -1
  237. package/dist/runtime/schedule/history.d.ts +3 -3
  238. package/dist/runtime/schedule/presets.d.ts +20 -20
  239. package/dist/runtime/schedule/source.d.ts +4 -4
  240. package/dist/runtime/store/runtime-operation-schemas.d.ts +2 -2
  241. package/dist/runtime/store/runtime-schemas.d.ts +2 -2
  242. package/dist/runtime/types/cron.d.ts +4 -4
  243. package/dist/runtime/types/schedule.d.ts +51 -51
  244. package/dist/runtime/types/trigger.d.ts +6 -6
  245. package/dist/tools/builtin/exports.d.ts +79 -0
  246. package/dist/tools/builtin/exports.d.ts.map +1 -0
  247. package/dist/tools/builtin/exports.js +78 -0
  248. package/dist/tools/builtin/exports.js.map +1 -0
  249. package/dist/tools/builtin/factory.d.ts +33 -0
  250. package/dist/tools/builtin/factory.d.ts.map +1 -0
  251. package/dist/tools/builtin/factory.js +182 -0
  252. package/dist/tools/builtin/factory.js.map +1 -0
  253. package/dist/tools/builtin/index.d.ts +3 -110
  254. package/dist/tools/builtin/index.d.ts.map +1 -1
  255. package/dist/tools/builtin/index.js +2 -262
  256. package/dist/tools/builtin/index.js.map +1 -1
  257. package/dist/tools/execution/SoilOpenTool/SoilOpenTool.d.ts +4 -4
  258. package/dist/tools/execution/SoilPublishTool/SoilPublishTool.d.ts +2 -2
  259. package/dist/tools/index.d.ts +5 -3
  260. package/dist/tools/index.d.ts.map +1 -1
  261. package/dist/tools/index.js +4 -2
  262. package/dist/tools/index.js.map +1 -1
  263. package/dist/tools/mutation/TaskCreateTool/TaskCreateTool.d.ts +4 -4
  264. package/dist/tools/network/GitHubCliTool/GitHubCliTool.d.ts +4 -4
  265. package/dist/tools/network/McpStdioTool/McpStdioTool.d.ts +8 -8
  266. package/dist/tools/schedule/CreateScheduleTool/CreateScheduleTool.d.ts +44 -44
  267. package/dist/tools/schedule/ListSchedulesTool/ListSchedulesTool.d.ts +4 -4
  268. package/dist/tools/schedule/UpdateScheduleTool/UpdateScheduleTool.d.ts +58 -58
  269. package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.d.ts +6 -6
  270. package/dist/tools/types.d.ts +2 -2
  271. package/package.json +1 -1
@@ -9,6 +9,8 @@ export class EventSubscriber extends EventEmitter {
9
9
  previousGap = undefined;
10
10
  lastOutboxSeq = 0;
11
11
  snapshotBootstrapped = false;
12
+ streamLoopPromise = null;
13
+ localProjectionSeq = 0;
12
14
  constructor(baseUrl, goalId, verbosity = "normal", authToken = readDaemonAuthToken()) {
13
15
  super();
14
16
  this.baseUrl = baseUrl;
@@ -22,7 +24,17 @@ export class EventSubscriber extends EventEmitter {
22
24
  this.abortController = new AbortController();
23
25
  await this.connect(false);
24
26
  }
25
- async connect(isRetry) {
27
+ /**
28
+ * Bootstrap snapshot state, open the SSE stream, then continue consuming it
29
+ * in the background. This is used when callers need the subscription to be
30
+ * live before triggering daemon work.
31
+ */
32
+ async subscribeReady() {
33
+ this.abortController?.abort();
34
+ this.abortController = new AbortController();
35
+ await this.connect(false, true);
36
+ }
37
+ async connect(isRetry, background = false) {
26
38
  if (this.abortController?.signal.aborted)
27
39
  return;
28
40
  try {
@@ -40,24 +52,13 @@ export class EventSubscriber extends EventEmitter {
40
52
  if (!res.ok || !res.body) {
41
53
  throw new Error(`SSE connect failed: HTTP ${res.status}`);
42
54
  }
43
- const reader = res.body.getReader();
44
- const decoder = new TextDecoder();
45
- let buffer = "";
46
- while (true) {
47
- const { done, value } = await reader.read();
48
- if (done)
49
- break;
50
- buffer += decoder.decode(value, { stream: true });
51
- const parts = buffer.split("\n\n");
52
- buffer = parts.pop() ?? "";
53
- for (const part of parts) {
54
- this.parseSSEMessage(part);
55
- }
56
- }
57
- // Stream ended — attempt reconnect once if not aborted
58
- if (!this.abortController?.signal.aborted && !isRetry) {
59
- await this.connect(true);
55
+ const loopPromise = this.consumeStream(res.body.getReader(), isRetry);
56
+ this.streamLoopPromise = loopPromise;
57
+ if (background) {
58
+ void loopPromise.catch(() => undefined);
59
+ return;
60
60
  }
61
+ await loopPromise;
61
62
  }
62
63
  catch (err) {
63
64
  if (err.name === "AbortError")
@@ -67,12 +68,13 @@ export class EventSubscriber extends EventEmitter {
67
68
  goalId: this.goalId,
68
69
  message: `⚠️ [tend] ${this.goalId}: Connection error — ${String(err)}`,
69
70
  };
70
- this.emit("notification", notification);
71
+ this.emitProjectedEvent("connection_error", null, notification);
71
72
  // Retry once on error
72
73
  if (!isRetry && !this.abortController?.signal.aborted) {
73
74
  await new Promise((r) => setTimeout(r, 2000));
74
- await this.connect(true);
75
+ return this.connect(true, background);
75
76
  }
77
+ throw err;
76
78
  }
77
79
  }
78
80
  /** Stop listening */
@@ -80,6 +82,24 @@ export class EventSubscriber extends EventEmitter {
80
82
  this.abortController?.abort();
81
83
  this.abortController = null;
82
84
  }
85
+ async consumeStream(reader, isRetry) {
86
+ const decoder = new TextDecoder();
87
+ let buffer = "";
88
+ while (true) {
89
+ const { done, value } = await reader.read();
90
+ if (done)
91
+ break;
92
+ buffer += decoder.decode(value, { stream: true });
93
+ const parts = buffer.split("\n\n");
94
+ buffer = parts.pop() ?? "";
95
+ for (const part of parts) {
96
+ this.parseSSEMessage(part);
97
+ }
98
+ }
99
+ if (!this.abortController?.signal.aborted && !isRetry) {
100
+ await this.connect(true, true);
101
+ }
102
+ }
83
103
  parseSSEMessage(raw) {
84
104
  let id = "";
85
105
  let eventType = "message";
@@ -111,10 +131,7 @@ export class EventSubscriber extends EventEmitter {
111
131
  if (!this.matchesGoal(parsed)) {
112
132
  return;
113
133
  }
114
- const notification = this.formatNotification(eventType, parsed);
115
- if (notification) {
116
- this.emit("notification", notification);
117
- }
134
+ this.emitProjectedEvent(eventType, parsed);
118
135
  }
119
136
  /** Format a raw SSE event into a TendNotification (returns null if verbosity filters it out) */
120
137
  formatNotification(eventType, data) {
@@ -214,8 +231,55 @@ export class EventSubscriber extends EventEmitter {
214
231
  this.previousGap = undefined;
215
232
  return { type: "complete", goalId: this.goalId, message: msg, gap };
216
233
  }
234
+ if (eventType === "loop_error") {
235
+ const ev = data;
236
+ const message = ev.error ?? ev.message ?? "Unknown daemon loop error";
237
+ const crashCount = typeof ev.crashCount === "number"
238
+ ? ev.crashCount
239
+ : typeof ev.crash_count === "number"
240
+ ? ev.crash_count
241
+ : undefined;
242
+ const maxRetries = typeof ev.maxRetries === "number"
243
+ ? ev.maxRetries
244
+ : typeof ev.max_retries === "number"
245
+ ? ev.max_retries
246
+ : undefined;
247
+ const retryNote = crashCount !== undefined && maxRetries !== undefined
248
+ ? ` (${crashCount}/${maxRetries})`
249
+ : "";
250
+ return {
251
+ type: "error",
252
+ goalId: this.goalId,
253
+ message: `⚠️ [tend] ${shortId}: Loop error${retryNote} — ${message}`,
254
+ };
255
+ }
217
256
  return null;
218
257
  }
258
+ formatChatEvent(eventType, data, notification) {
259
+ if (eventType === "chat_response") {
260
+ const response = data;
261
+ const text = typeof response.message === "string" ? response.message.trim() : "";
262
+ if (!text)
263
+ return null;
264
+ return {
265
+ type: "assistant_final",
266
+ text,
267
+ persisted: false,
268
+ ...this.createChatEventBase(eventType, data),
269
+ };
270
+ }
271
+ if (!notification) {
272
+ return null;
273
+ }
274
+ return {
275
+ type: "activity",
276
+ kind: "commentary",
277
+ message: notification.message,
278
+ sourceId: this.createChatSourceId(eventType, data, notification),
279
+ transient: false,
280
+ ...this.createChatEventBase(eventType, data),
281
+ };
282
+ }
219
283
  matchesGoal(data) {
220
284
  if (typeof data !== "object" || data === null)
221
285
  return true;
@@ -237,16 +301,62 @@ export class EventSubscriber extends EventEmitter {
237
301
  for (const approval of snapshot.approvals ?? []) {
238
302
  if (!this.matchesGoal(approval))
239
303
  continue;
240
- const notification = this.formatNotification("approval_required", approval);
241
- if (notification) {
242
- this.emit("notification", notification);
243
- }
304
+ this.emitProjectedEvent("approval_required", approval);
244
305
  }
245
306
  }
246
307
  catch {
247
308
  // Snapshot bootstrap is best-effort.
248
309
  }
249
310
  }
311
+ emitProjectedEvent(eventType, data, notificationOverride = null) {
312
+ const notification = notificationOverride ?? this.formatNotification(eventType, data);
313
+ if (notification) {
314
+ this.emit("notification", notification);
315
+ }
316
+ const chatEvent = this.formatChatEvent(eventType, data, notification);
317
+ if (chatEvent) {
318
+ this.emit("chat_event", chatEvent);
319
+ }
320
+ }
321
+ createChatEventBase(eventType, data) {
322
+ const projectionId = this.createProjectionId(eventType, data);
323
+ return {
324
+ runId: `daemon:${this.goalId}`,
325
+ turnId: `daemon:${this.goalId}:${projectionId}`,
326
+ createdAt: new Date().toISOString(),
327
+ };
328
+ }
329
+ createProjectionId(eventType, data) {
330
+ const record = typeof data === "object" && data !== null
331
+ ? data
332
+ : null;
333
+ const requestId = record?.["requestId"];
334
+ if (typeof requestId === "string" && requestId) {
335
+ return `${eventType}:${requestId}`;
336
+ }
337
+ if (this.lastOutboxSeq > 0) {
338
+ return `${eventType}:${this.lastOutboxSeq}`;
339
+ }
340
+ this.localProjectionSeq += 1;
341
+ return `${eventType}:local:${this.localProjectionSeq}`;
342
+ }
343
+ createChatSourceId(eventType, data, notification) {
344
+ const requestId = notification.requestId;
345
+ if (requestId) {
346
+ return `daemon:${this.goalId}:${eventType}:${requestId}`;
347
+ }
348
+ if (notification.reportType) {
349
+ return `daemon:${this.goalId}:${eventType}:${notification.reportType}`;
350
+ }
351
+ const record = typeof data === "object" && data !== null
352
+ ? data
353
+ : null;
354
+ const status = record?.["status"];
355
+ if (typeof status === "string" && status) {
356
+ return `daemon:${this.goalId}:${eventType}:${status}`;
357
+ }
358
+ return `daemon:${this.goalId}:${eventType}`;
359
+ }
250
360
  authHeaders() {
251
361
  return this.authToken ? { Authorization: `Bearer ${this.authToken}` } : {};
252
362
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event-subscriber.js","sourceRoot":"","sources":["../../../src/interface/chat/event-subscriber.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-subscriber.js","sourceRoot":"","sources":["../../../src/interface/chat/event-subscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAoDrE,MAAM,OAAO,eAAgB,SAAQ,YAAY;IASrC;IACA;IACA;IACA;IAXF,eAAe,GAA2B,IAAI,CAAC;IAC/C,WAAW,GAAuB,SAAS,CAAC;IAC5C,aAAa,GAAG,CAAC,CAAC;IAClB,oBAAoB,GAAG,KAAK,CAAC;IAC7B,iBAAiB,GAAyB,IAAI,CAAC;IAC/C,kBAAkB,GAAG,CAAC,CAAC;IAE/B,YACU,OAAe,EACf,MAAc,EACd,YAAmC,QAAQ,EAC3C,YAA2B,mBAAmB,EAAE;QAExD,KAAK,EAAE,CAAC;QALA,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAkC;QAC3C,cAAS,GAAT,SAAS,CAAuC;IAG1D,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,UAAU,GAAG,KAAK;QACxD,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO;YAAE,OAAO;QAEjD,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACjC,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,iBAAiB,IAAI,CAAC,aAAa,EAAE,EAAE;gBAC5E,OAAO,EAAE;oBACP,MAAM,EAAE,mBAAmB;oBAC3B,eAAe,EAAE,UAAU;oBAC3B,GAAG,IAAI,CAAC,WAAW,EAAE;iBACtB;gBACD,MAAM,EAAE,IAAI,CAAC,eAAgB,CAAC,MAAM;aACrC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;YACtE,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;YACrC,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,MAAM,WAAW,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAyB,CAAC,IAAI,KAAK,YAAY;gBAAE,OAAO;YAC7D,MAAM,YAAY,GAAqB;gBACrC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,aAAa,IAAI,CAAC,MAAM,wBAAwB,MAAM,CAAC,GAAG,CAAC,EAAE;aACvE,CAAC;YACF,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAChE,sBAAsB;YACtB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,WAAW;QACT,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,MAA+C,EAC/C,OAAgB;QAEhB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACtD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,GAAW;QACjC,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5B,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACrD,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QAC3B,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,gGAAgG;IACxF,kBAAkB,CAAC,SAAiB,EAAE,IAAa;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAEjF,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,IAAwB,CAAC;YACpC,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC;YAC1B,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC;YAC7B,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;YACnB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YAE7B,iBAAiB;YACjB,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrE,MAAM,GAAG,GAAG,YAAY,OAAO,oBAAoB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,aAAa,CAAC;gBACvG,MAAM,CAAC,GAAqB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC9H,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC7B,OAAO,CAAC,CAAC;YACX,CAAC;YAED,eAAe;YACf,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,2BAA2B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1G,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,IAAI,KAAK,CAAC;gBACtC,MAAM,GAAG,GAAG,aAAa,OAAO,gBAAgB,MAAM,GAAG,CAAC;gBAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YACxG,CAAC;YAED,wDAAwD;YACxD,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,cAAc,IAAI,KAAK,KAAK,qBAAqB,CAAC,EAAE,CAAC;gBACvF,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAChE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC9B,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChE,MAAM,GAAG,GAAG,aAAa,OAAO,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,UAAU,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;oBACvB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gBAC9H,CAAC;gBACD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,kBAAkB;YAClB,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBACjC,MAAM,IAAI,GAAG,EAAE,CAAC,eAAe,IAAI,KAAK,CAAC;oBACzC,MAAM,GAAG,GAAG,aAAa,OAAO,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,iBAAiB,IAAI,GAAG,CAAC;oBACxF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;gBACtG,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,kCAAkC;YAClC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,aAAa,OAAO,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAC5E,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC3G,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,SAAS,KAAK,qBAAqB,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,IAA6B,CAAC;YAC7C,IAAI,MAAM,CAAC,WAAW,KAAK,kBAAkB,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,IAAI,cAAc,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,KAAK,eAAe;gBACnD,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,CAAC,WAAW,KAAK,eAAe;oBACtC,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,MAAM,CAAC,WAAW,KAAK,cAAc;wBACrC,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,IAAI,CAAC;YACb,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,MAAM,CAAC,WAAW;gBAC9B,OAAO,EAAE,GAAG,MAAM,WAAW,OAAO,KAAK,KAAK,EAAE;aACjD,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,IAIV,CAAC;YACF,MAAM,WAAW,GAAG,EAAE,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,0BAA0B,CAAC;YAC1F,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,OAAO,EAAE,aAAa,OAAO,yBAAyB,WAAW,EAAE;aACpE,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,IAA8B,CAAC;YAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;YACvD,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,aAAa,OAAO,cAAc,QAAQ,EAAE;aACtD,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,IAAI,SAAS,KAAK,eAAe,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;YACnE,MAAM,EAAE,GAAG,IAA+B,CAAC;YAC3C,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,MAAM,UAAU,GAAG,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvF,MAAM,GAAG,GAAG,YAAY,OAAO,oBAAoB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,aAAa,CAAC;YAC7G,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACtE,CAAC;QAED,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,IAAyB,CAAC;YACrC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,IAAI,2BAA2B,CAAC;YACtE,MAAM,UAAU,GAAG,OAAO,EAAE,CAAC,UAAU,KAAK,QAAQ;gBAClD,CAAC,CAAC,EAAE,CAAC,UAAU;gBACf,CAAC,CAAC,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ;oBAClC,CAAC,CAAC,EAAE,CAAC,WAAW;oBAChB,CAAC,CAAC,SAAS,CAAC;YAChB,MAAM,UAAU,GAAG,OAAO,EAAE,CAAC,UAAU,KAAK,QAAQ;gBAClD,CAAC,CAAC,EAAE,CAAC,UAAU;gBACf,CAAC,CAAC,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ;oBAClC,CAAC,CAAC,EAAE,CAAC,WAAW;oBAChB,CAAC,CAAC,SAAS,CAAC;YAChB,MAAM,SAAS,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;gBACpE,CAAC,CAAC,KAAK,UAAU,IAAI,UAAU,GAAG;gBAClC,CAAC,CAAC,EAAE,CAAC;YACP,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,aAAa,OAAO,eAAe,SAAS,MAAM,OAAO,EAAE;aACrE,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CACrB,SAAiB,EACjB,IAAa,EACb,YAAqC;QAErC,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAA4B,CAAC;YAC9C,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,OAAO;gBACL,IAAI,EAAE,iBAAiB;gBACvB,IAAI;gBACJ,SAAS,EAAE,KAAK;gBAChB,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC;YAChE,SAAS,EAAE,KAAK;YAChB,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC;SAC7C,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,IAAa;QAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,MAAM,GAAI,IAAgC,CAAC,QAAQ,CAAC,IAAK,IAAgC,CAAC,SAAS,CAAC,CAAC;QAC3G,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,WAAW,EAAE;gBAClD,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE;gBAC9D,MAAM,EAAE,IAAI,CAAC,eAAgB,CAAC,MAAM;aACrC,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,EAG9B,CAAC;YACF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;YACjF,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAC1C,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC;IAEO,kBAAkB,CACxB,SAAiB,EACjB,IAAa,EACb,uBAAgD,IAAI;QAEpD,MAAM,YAAY,GAAG,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACtF,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACtE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,SAAiB,EAAE,IAAa;QAK1D,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9D,OAAO;YACL,KAAK,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;YAC9B,MAAM,EAAE,UAAU,IAAI,CAAC,MAAM,IAAI,YAAY,EAAE;YAC/C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,SAAiB,EAAE,IAAa;QACzD,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YACtD,CAAC,CAAC,IAA+B;YACjC,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/C,OAAO,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAC7B,OAAO,GAAG,SAAS,UAAU,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACzD,CAAC;IAEO,kBAAkB,CACxB,SAAiB,EACjB,IAAa,EACb,YAA8B;QAE9B,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;QACzC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,UAAU,IAAI,CAAC,MAAM,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3D,CAAC;QAED,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;YAC5B,OAAO,UAAU,IAAI,CAAC,MAAM,IAAI,SAAS,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;QACzE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YACtD,CAAC,CAAC,IAA+B;YACjC,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,EAAE,CAAC;YACzC,OAAO,UAAU,IAAI,CAAC,MAAM,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxD,CAAC;QAED,OAAO,UAAU,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;IAC9C,CAAC;IAEO,WAAW;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,CAAC;CACF"}
@@ -1,9 +1,30 @@
1
1
  import type { StateManager } from "../../base/state/state-manager.js";
2
+ import { type GroundingGateway } from "../../grounding/gateway.js";
3
+ import type { GroundingBundle, GroundingRequest } from "../../grounding/contracts.js";
2
4
  export interface GroundingOptions {
3
5
  stateManager: StateManager;
4
- /** Base directory for PulSeed config files. Defaults to ~/.pulseed */
5
6
  homeDir?: string;
7
+ pluginLoader?: {
8
+ loadAll(): Promise<Array<{
9
+ name: string;
10
+ enabled?: boolean;
11
+ error?: string | null;
12
+ }>>;
13
+ };
14
+ workspaceRoot?: string;
15
+ goalId?: string;
16
+ userMessage?: string;
17
+ trustProjectInstructions?: boolean;
18
+ workspaceContext?: string;
6
19
  }
20
+ interface ChatGroundingRequestOverrides extends Partial<GroundingRequest> {
21
+ surface?: GroundingRequest["surface"];
22
+ purpose?: GroundingRequest["purpose"];
23
+ }
24
+ declare function createChatGateway(options: Pick<GroundingOptions, "stateManager" | "pluginLoader">): GroundingGateway;
25
+ export { createChatGateway as createChatGroundingGateway };
26
+ export declare function buildChatGroundingBundle(options: GroundingOptions, overrides?: ChatGroundingRequestOverrides): Promise<GroundingBundle>;
27
+ export declare function buildChatAgentLoopSystemPrompt(options: GroundingOptions): Promise<string>;
7
28
  export declare function buildStaticSystemPrompt(): string;
8
29
  export declare function buildDynamicContextPrompt(options: GroundingOptions): Promise<string>;
9
30
  export declare function buildSystemPrompt(options: GroundingOptions): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"grounding.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/grounding.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAItE,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2HD,wBAAgB,uBAAuB,IAAI,MAAM,CAUhD;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAW1F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlF"}
1
+ {"version":3,"file":"grounding.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/grounding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAyC,MAAM,8BAA8B,CAAC;AAQ7H,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE;QAAE,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC,CAAA;KAAE,CAAC;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,6BAA8B,SAAQ,OAAO,CAAC,gBAAgB,CAAC;IACvE,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;CACvC;AAED,iBAAS,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,cAAc,CAAC,GAAG,gBAAgB,CAK7G;AAED,OAAO,EAAE,iBAAiB,IAAI,0BAA0B,EAAE,CAAC;AAmE3D,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,EACzB,SAAS,GAAE,6BAAkC,GAC5C,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED,wBAAsB,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAc/F;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAMhD;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAG1F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlF"}
@@ -1,150 +1,105 @@
1
- // ─── Chat Grounding ───
2
- //
3
- // Builds a system prompt that gives the LLM self-knowledge about PulSeed:
4
- // identity, operating rules, and current state (goals, plugins, provider).
5
- import * as fsp from "node:fs/promises";
6
- import * as path from "node:path";
7
- import { getAgentName, getUserFacingIdentity, loadIdentity } from "../../base/config/identity-loader.js";
8
- import { getPulseedDirPath } from "../../base/utils/paths.js";
9
- function resolveHomeDir(homeDir) {
10
- return homeDir ?? getPulseedDirPath();
1
+ import { createGroundingGateway } from "../../grounding/gateway.js";
2
+ import { pickGroundingSections, renderPromptSections } from "../../grounding/renderers/prompt-renderer.js";
3
+ import { buildApprovalPolicySectionContent, buildExecutionPolicySectionContent, buildIdentitySectionContent, } from "../../grounding/providers/static-policy-provider.js";
4
+ function createChatGateway(options) {
5
+ return createGroundingGateway({
6
+ stateManager: options.stateManager,
7
+ pluginLoader: options.pluginLoader,
8
+ });
11
9
  }
12
- async function readPlugins(homeDir) {
13
- const pluginsDir = path.join(homeDir, "plugins");
14
- try {
15
- const entries = await fsp.readdir(pluginsDir, { withFileTypes: true });
16
- return entries.filter((e) => e.isDirectory()).map((e) => e.name);
17
- }
18
- catch {
19
- return [];
20
- }
10
+ export { createChatGateway as createChatGroundingGateway };
11
+ const CHAT_STATIC_SECTION_KEYS = [
12
+ "identity",
13
+ "execution_policy",
14
+ "approval_policy",
15
+ ];
16
+ const CHAT_DYNAMIC_SECTION_KEYS = [
17
+ "goal_state",
18
+ "plugins",
19
+ "provider_state",
20
+ ];
21
+ const CHAT_DYNAMIC_CONTEXT_INCLUDE = {
22
+ identity: false,
23
+ execution_policy: false,
24
+ approval_policy: false,
25
+ trust_state: false,
26
+ repo_instructions: false,
27
+ soil_knowledge: false,
28
+ };
29
+ function buildChatGroundingRequest(options, overrides = {}) {
30
+ return {
31
+ surface: overrides.surface ?? "chat",
32
+ purpose: overrides.purpose ?? "general_turn",
33
+ homeDir: options.homeDir,
34
+ workspaceRoot: options.workspaceRoot,
35
+ goalId: options.goalId,
36
+ userMessage: options.userMessage,
37
+ query: options.userMessage,
38
+ trustProjectInstructions: options.trustProjectInstructions,
39
+ workspaceContext: options.workspaceContext,
40
+ ...overrides,
41
+ ...(overrides.include ? { include: overrides.include } : {}),
42
+ };
21
43
  }
22
- async function readProvider(homeDir) {
23
- const providerPath = path.join(homeDir, "provider.json");
24
- try {
25
- const raw = await fsp.readFile(providerPath, "utf-8");
26
- const parsed = JSON.parse(raw);
27
- const llm = typeof parsed.llm === "string" ? parsed.llm : null;
28
- const adapter = typeof parsed.default_adapter === "string" ? parsed.default_adapter : null;
29
- if (llm && adapter)
30
- return `${llm} / ${adapter}`;
31
- if (llm)
32
- return llm;
33
- return "not configured";
34
- }
35
- catch {
36
- return "not configured";
37
- }
44
+ function renderLegacyStaticPrompt(sections) {
45
+ return renderPromptSections(sections, {
46
+ omitHeadingKeys: ["execution_policy"],
47
+ preserveOrder: true,
48
+ });
38
49
  }
39
- async function buildGoalsBlock(stateManager) {
40
- const ids = await stateManager.listGoalIds();
41
- if (ids.length === 0)
42
- return "No goals configured yet.";
43
- const lines = [];
44
- for (const id of ids) {
45
- const goal = await stateManager.loadGoal(id);
46
- if (!goal)
47
- continue;
48
- const status = goal.loop_status !== "idle" ? ` [${goal.loop_status}]` : "";
49
- lines.push(`- ${goal.title} (${id})${status} — status: ${goal.status}`);
50
- }
51
- return lines.length > 0 ? lines.join("\n") : "No goals configured yet.";
52
- }
53
- function buildIdentitySection() {
54
- const { name } = loadIdentity();
55
- return [
56
- "## Identity",
57
- `You are ${name}.`,
58
- "You run PulSeed, an AI goal pursuit orchestration system.",
59
- "Platform operating policy overrides persona and customization text if they conflict.",
60
- "",
61
- "Your role is to help the user make concrete progress by inspecting the workspace, using tools directly when appropriate, delegating work when useful, and executing the next valid step.",
62
- "",
63
- "### Persona And Customization",
64
- getUserFacingIdentity().trim(),
65
- ].join("\n");
66
- }
67
- function buildExecutionBiasSection() {
68
- return [
69
- "## Execution Bias",
70
- "- If the next step is clear and safe, do it in the same turn.",
71
- "- Do not stop at analysis when execution is possible.",
72
- "- Inspect files, code, and state before asking avoidable questions.",
73
- "- Prefer direct local tool use for routine reads, edits, diffs, and verification.",
74
- "- Prefer subagents when available and when parallel exploration or context isolation would help.",
75
- "- Treat explanation-only responses as incomplete unless the user explicitly asked for explanation only.",
76
- ].join("\n");
77
- }
78
- function buildToolingPolicySection() {
79
- return [
80
- "## Tooling Policy",
81
- "- Tool schemas are the source of truth for capabilities, arguments, and constraints.",
82
- "- Use behavior rules from this prompt, but use tool schemas for exact tool usage.",
83
- "- Use direct local tools for quick reads, search, tests, diffs, and focused execution.",
84
- "- Use background execution only for long-running tasks.",
85
- "- Choose the narrowest tool that can complete the task correctly.",
86
- ].join("\n");
87
- }
88
- function buildCommunicationPolicySection() {
89
- return [
90
- "## Communication Policy",
91
- "- Keep pre-tool messages short and factual.",
92
- "- Do not give long preambles before routine tool calls.",
93
- "- Prefer action first, then concise reporting.",
94
- "- Progress updates should be brief and relevant.",
95
- "- Do not narrate internal process details at length unless they matter to the user's decision.",
96
- ].join("\n");
97
- }
98
- function buildSafetySection(name) {
99
- return [
100
- "## Safety And Approval",
101
- "- Use tools directly by default for safe, reversible, goal-advancing work.",
102
- "- Proceed without asking first for routine reads, searches, tests, diffs, and ordinary local code edits.",
103
- "- Before high-impact configuration changes, explain the effect, required environment, risks, rollback path, and when the change takes effect.",
104
- "- Ask for explicit approval before irreversible, destructive, externally side-effectful, or otherwise high-impact actions.",
105
- "- Before deleting a goal, explain that the goal, child goals, sessions, and observation data will be permanently removed.",
106
- "- Before goal deletion or trust reset, explicitly state that the action is irreversible or not fully recoverable, then require explicit user approval.",
107
- "- If a tool or runtime requires approval, obtain it once and then continue.",
108
- `- Stay focused on goals — you're here to help them grow (${name}).`,
109
- ].join("\n");
110
- }
111
- function buildDynamicContextSection(goalsBlock, pluginsLine, provider) {
50
+ function renderLegacyDynamicPrompt(sections) {
51
+ const byKey = new Map(sections.map((section) => [section.key, section]));
52
+ const goalState = byKey.get("goal_state")?.content ?? "No goals configured yet.";
53
+ const plugins = byKey.get("plugins")?.content?.replace(/^Installed:\s*/, "") ?? "none";
54
+ const provider = byKey.get("provider_state")?.content ?? "not configured";
112
55
  return [
113
56
  "## Dynamic Context",
114
57
  "### Current Goals",
115
- goalsBlock,
58
+ goalState,
116
59
  "",
117
60
  "### Installed Plugins",
118
- `Installed: ${pluginsLine}`,
61
+ `Installed: ${plugins}`,
119
62
  "",
120
63
  "### Provider",
121
64
  provider,
122
- ].join("\n");
65
+ ].join("\n").trim();
66
+ }
67
+ export async function buildChatGroundingBundle(options, overrides = {}) {
68
+ return await createChatGateway(options).build(buildChatGroundingRequest(options, overrides));
69
+ }
70
+ export async function buildChatAgentLoopSystemPrompt(options) {
71
+ const bundle = await buildChatGroundingBundle(options, {
72
+ surface: "agent_loop",
73
+ purpose: "task_execution",
74
+ include: {
75
+ progress_history: false,
76
+ session_history: false,
77
+ task_state: false,
78
+ trust_state: true,
79
+ provider_state: true,
80
+ plugins: true,
81
+ },
82
+ });
83
+ return String(bundle.render("prompt"));
123
84
  }
124
85
  export function buildStaticSystemPrompt() {
125
- const name = getAgentName();
126
86
  return [
127
- buildIdentitySection(),
128
- buildExecutionBiasSection(),
129
- buildToolingPolicySection(),
130
- buildCommunicationPolicySection(),
131
- buildSafetySection(name),
87
+ `## Identity\n${buildIdentitySectionContent()}`,
88
+ buildExecutionPolicySectionContent(),
89
+ `## Safety And Approval\n${buildApprovalPolicySectionContent()}`,
132
90
  ].join("\n\n").trim();
133
91
  }
134
92
  export async function buildDynamicContextPrompt(options) {
135
- const homeDir = resolveHomeDir(options.homeDir);
136
- const [goalsBlock, plugins, provider] = await Promise.all([
137
- buildGoalsBlock(options.stateManager),
138
- readPlugins(homeDir),
139
- readProvider(homeDir),
140
- ]);
141
- const pluginsLine = plugins.length > 0 ? plugins.join(", ") : "none";
142
- return buildDynamicContextSection(goalsBlock, pluginsLine, provider).trim();
93
+ const bundle = await buildChatGroundingBundle(options, { include: CHAT_DYNAMIC_CONTEXT_INCLUDE });
94
+ return renderLegacyDynamicPrompt(pickGroundingSections(bundle.dynamicSections, CHAT_DYNAMIC_SECTION_KEYS));
143
95
  }
144
96
  export async function buildSystemPrompt(options) {
97
+ const bundle = await buildChatGroundingBundle(options);
98
+ const staticSections = pickGroundingSections(bundle.staticSections, CHAT_STATIC_SECTION_KEYS);
99
+ const dynamicSections = pickGroundingSections(bundle.dynamicSections, CHAT_DYNAMIC_SECTION_KEYS);
145
100
  return [
146
- buildStaticSystemPrompt(),
147
- await buildDynamicContextPrompt(options),
101
+ renderLegacyStaticPrompt(staticSections),
102
+ renderLegacyDynamicPrompt(dynamicSections),
148
103
  ].join("\n\n").trim();
149
104
  }
150
105
  //# sourceMappingURL=grounding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../../src/interface/chat/grounding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../../src/interface/chat/grounding.ts"],"names":[],"mappings":"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"}