pulseed 0.6.1 → 0.6.2

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 (831) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/types/a2a.d.ts +24 -24
  3. package/dist/base/config/global-config.d.ts +4 -4
  4. package/dist/base/state/state-manager-goal-write.d.ts +1 -1
  5. package/dist/base/state/state-manager-goal-write.d.ts.map +1 -1
  6. package/dist/base/state/state-manager.d.ts +2 -6
  7. package/dist/base/state/state-manager.d.ts.map +1 -1
  8. package/dist/base/state/state-manager.js.map +1 -1
  9. package/dist/base/state/state-write-fence.d.ts +7 -0
  10. package/dist/base/state/state-write-fence.d.ts.map +1 -0
  11. package/dist/base/state/state-write-fence.js +2 -0
  12. package/dist/base/state/state-write-fence.js.map +1 -0
  13. package/dist/base/types/companion.d.ts +2 -0
  14. package/dist/base/types/companion.d.ts.map +1 -0
  15. package/dist/base/types/companion.js +2 -0
  16. package/dist/base/types/companion.js.map +1 -0
  17. package/dist/base/types/index.d.ts +1 -0
  18. package/dist/base/types/index.d.ts.map +1 -1
  19. package/dist/base/types/index.js +1 -0
  20. package/dist/base/types/index.js.map +1 -1
  21. package/dist/index.d.ts +4 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +2 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/interface/chat/chat-event-state.d.ts +2 -0
  26. package/dist/interface/chat/chat-event-state.d.ts.map +1 -1
  27. package/dist/interface/chat/chat-event-state.js +28 -11
  28. package/dist/interface/chat/chat-event-state.js.map +1 -1
  29. package/dist/interface/chat/chat-events.d.ts +9 -1
  30. package/dist/interface/chat/chat-events.d.ts.map +1 -1
  31. package/dist/interface/chat/chat-history.d.ts +4739 -1
  32. package/dist/interface/chat/chat-history.d.ts.map +1 -1
  33. package/dist/interface/chat/chat-history.js +40 -2
  34. package/dist/interface/chat/chat-history.js.map +1 -1
  35. package/dist/interface/chat/chat-runner-commands.d.ts +2 -32
  36. package/dist/interface/chat/chat-runner-commands.d.ts.map +1 -1
  37. package/dist/interface/chat/chat-runner-commands.js +2 -2
  38. package/dist/interface/chat/chat-runner-commands.js.map +1 -1
  39. package/dist/interface/chat/chat-runner-contracts.d.ts +152 -0
  40. package/dist/interface/chat/chat-runner-contracts.d.ts.map +1 -0
  41. package/dist/interface/chat/chat-runner-contracts.js +2 -0
  42. package/dist/interface/chat/chat-runner-contracts.js.map +1 -0
  43. package/dist/interface/chat/chat-runner-event-bridge.d.ts +8 -2
  44. package/dist/interface/chat/chat-runner-event-bridge.d.ts.map +1 -1
  45. package/dist/interface/chat/chat-runner-event-bridge.js +76 -11
  46. package/dist/interface/chat/chat-runner-event-bridge.js.map +1 -1
  47. package/dist/interface/chat/chat-runner-routes.d.ts +66 -12
  48. package/dist/interface/chat/chat-runner-routes.d.ts.map +1 -1
  49. package/dist/interface/chat/chat-runner-routes.js +322 -30
  50. package/dist/interface/chat/chat-runner-routes.js.map +1 -1
  51. package/dist/interface/chat/chat-runner-runtime.d.ts +1 -1
  52. package/dist/interface/chat/chat-runner-runtime.d.ts.map +1 -1
  53. package/dist/interface/chat/chat-runner-runtime.js +4 -0
  54. package/dist/interface/chat/chat-runner-runtime.js.map +1 -1
  55. package/dist/interface/chat/chat-runner.d.ts +10 -71
  56. package/dist/interface/chat/chat-runner.d.ts.map +1 -1
  57. package/dist/interface/chat/chat-runner.js +403 -58
  58. package/dist/interface/chat/chat-runner.js.map +1 -1
  59. package/dist/interface/chat/chat-session-store.d.ts +2 -0
  60. package/dist/interface/chat/chat-session-store.d.ts.map +1 -1
  61. package/dist/interface/chat/chat-session-store.js +3 -6
  62. package/dist/interface/chat/chat-session-store.js.map +1 -1
  63. package/dist/interface/chat/cross-platform-session-global.d.ts +2 -1
  64. package/dist/interface/chat/cross-platform-session-global.d.ts.map +1 -1
  65. package/dist/interface/chat/cross-platform-session-global.js +4 -10
  66. package/dist/interface/chat/cross-platform-session-global.js.map +1 -1
  67. package/dist/interface/chat/cross-platform-session.d.ts +30 -1
  68. package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
  69. package/dist/interface/chat/cross-platform-session.js +413 -52
  70. package/dist/interface/chat/cross-platform-session.js.map +1 -1
  71. package/dist/interface/chat/event-subscriber.js +2 -2
  72. package/dist/interface/chat/event-subscriber.js.map +1 -1
  73. package/dist/interface/chat/failure-recovery.js +1 -1
  74. package/dist/interface/chat/failure-recovery.js.map +1 -1
  75. package/dist/interface/chat/freeform-route-classifier.d.ts +5 -5
  76. package/dist/interface/chat/freeform-route-classifier.js +3 -2
  77. package/dist/interface/chat/freeform-route-classifier.js.map +1 -1
  78. package/dist/interface/chat/gateway-setup-status.d.ts +33 -0
  79. package/dist/interface/chat/gateway-setup-status.d.ts.map +1 -0
  80. package/dist/interface/chat/gateway-setup-status.js +44 -0
  81. package/dist/interface/chat/gateway-setup-status.js.map +1 -0
  82. package/dist/interface/chat/ingress-router.d.ts +22 -0
  83. package/dist/interface/chat/ingress-router.d.ts.map +1 -1
  84. package/dist/interface/chat/ingress-router.js +148 -11
  85. package/dist/interface/chat/ingress-router.js.map +1 -1
  86. package/dist/interface/chat/operation-progress.d.ts +17 -0
  87. package/dist/interface/chat/operation-progress.d.ts.map +1 -0
  88. package/dist/interface/chat/operation-progress.js +29 -0
  89. package/dist/interface/chat/operation-progress.js.map +1 -0
  90. package/dist/interface/chat/setup-config-write.d.ts +27 -0
  91. package/dist/interface/chat/setup-config-write.d.ts.map +1 -0
  92. package/dist/interface/chat/setup-config-write.js +79 -0
  93. package/dist/interface/chat/setup-config-write.js.map +1 -0
  94. package/dist/interface/chat/setup-dialogue.d.ts +199 -0
  95. package/dist/interface/chat/setup-dialogue.d.ts.map +1 -0
  96. package/dist/interface/chat/setup-dialogue.js +97 -0
  97. package/dist/interface/chat/setup-dialogue.js.map +1 -0
  98. package/dist/interface/chat/setup-secret-intake.d.ts +68 -0
  99. package/dist/interface/chat/setup-secret-intake.d.ts.map +1 -0
  100. package/dist/interface/chat/setup-secret-intake.js +84 -0
  101. package/dist/interface/chat/setup-secret-intake.js.map +1 -0
  102. package/dist/interface/chat/turn-language.d.ts +23 -0
  103. package/dist/interface/chat/turn-language.d.ts.map +1 -0
  104. package/dist/interface/chat/turn-language.js +46 -0
  105. package/dist/interface/chat/turn-language.js.map +1 -0
  106. package/dist/interface/cli/cli-command-registry.d.ts +1 -1
  107. package/dist/interface/cli/cli-command-registry.d.ts.map +1 -1
  108. package/dist/interface/cli/cli-runner.js +1 -1
  109. package/dist/interface/cli/cli-runner.js.map +1 -1
  110. package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
  111. package/dist/interface/cli/commands/daemon.js +3 -0
  112. package/dist/interface/cli/commands/daemon.js.map +1 -1
  113. package/dist/interface/cli/commands/operator-binding-status.d.ts +59 -0
  114. package/dist/interface/cli/commands/operator-binding-status.d.ts.map +1 -0
  115. package/dist/interface/cli/commands/operator-binding-status.js +257 -0
  116. package/dist/interface/cli/commands/operator-binding-status.js.map +1 -0
  117. package/dist/interface/cli/commands/run.d.ts +2 -2
  118. package/dist/interface/cli/commands/run.d.ts.map +1 -1
  119. package/dist/interface/cli/commands/run.js.map +1 -1
  120. package/dist/interface/cli/commands/runtime.d.ts.map +1 -1
  121. package/dist/interface/cli/commands/runtime.js +8 -1
  122. package/dist/interface/cli/commands/runtime.js.map +1 -1
  123. package/dist/interface/cli/commands/setup/steps-gateway.js +14 -3
  124. package/dist/interface/cli/commands/setup/steps-gateway.js.map +1 -1
  125. package/dist/interface/cli/commands/setup-wizard.d.ts +31 -0
  126. package/dist/interface/cli/commands/setup-wizard.d.ts.map +1 -1
  127. package/dist/interface/cli/commands/setup-wizard.js +88 -0
  128. package/dist/interface/cli/commands/setup-wizard.js.map +1 -1
  129. package/dist/interface/cli/commands/telegram.d.ts.map +1 -1
  130. package/dist/interface/cli/commands/telegram.js +27 -3
  131. package/dist/interface/cli/commands/telegram.js.map +1 -1
  132. package/dist/interface/cli/setup.d.ts +3 -3
  133. package/dist/interface/cli/setup.d.ts.map +1 -1
  134. package/dist/interface/cli/setup.js +3 -2
  135. package/dist/interface/cli/setup.js.map +1 -1
  136. package/dist/interface/cli/utils/loop-runner.d.ts +1 -1
  137. package/dist/interface/cli/utils/loop-runner.d.ts.map +1 -1
  138. package/dist/interface/cli/utils.js +1 -1
  139. package/dist/interface/tui/actions.d.ts.map +1 -1
  140. package/dist/interface/tui/actions.js +14 -6
  141. package/dist/interface/tui/actions.js.map +1 -1
  142. package/dist/interface/tui/app.d.ts +1 -7
  143. package/dist/interface/tui/app.d.ts.map +1 -1
  144. package/dist/interface/tui/app.js +71 -120
  145. package/dist/interface/tui/app.js.map +1 -1
  146. package/dist/interface/tui/chat-surface.d.ts +1 -0
  147. package/dist/interface/tui/chat-surface.d.ts.map +1 -1
  148. package/dist/interface/tui/chat-surface.js +15 -0
  149. package/dist/interface/tui/chat-surface.js.map +1 -1
  150. package/dist/interface/tui/entry-approval.js +2 -2
  151. package/dist/interface/tui/entry-approval.js.map +1 -1
  152. package/dist/interface/tui/entry-deps.d.ts +1 -1
  153. package/dist/interface/tui/entry-deps.d.ts.map +1 -1
  154. package/dist/interface/tui/entry-deps.js +54 -8
  155. package/dist/interface/tui/entry-deps.js.map +1 -1
  156. package/dist/interface/tui/input-action.d.ts +49 -0
  157. package/dist/interface/tui/input-action.d.ts.map +1 -0
  158. package/dist/interface/tui/input-action.js +46 -0
  159. package/dist/interface/tui/input-action.js.map +1 -0
  160. package/dist/interface/tui/markdown-renderer.d.ts.map +1 -1
  161. package/dist/interface/tui/markdown-renderer.js +4 -1
  162. package/dist/interface/tui/markdown-renderer.js.map +1 -1
  163. package/dist/interface/tui/use-loop.d.ts +1 -1
  164. package/dist/interface/tui/use-loop.d.ts.map +1 -1
  165. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts.map +1 -1
  166. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js +14 -0
  167. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js.map +1 -1
  168. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts +3 -0
  169. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts.map +1 -1
  170. package/dist/orchestrator/execution/agent-loop/agent-loop-events.js.map +1 -1
  171. package/dist/orchestrator/execution/agent-loop/agent-loop-result.d.ts +17 -0
  172. package/dist/orchestrator/execution/agent-loop/agent-loop-result.d.ts.map +1 -1
  173. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-output.d.ts +3 -0
  174. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-output.d.ts.map +1 -1
  175. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts +1 -0
  176. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts.map +1 -1
  177. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js +20 -3
  178. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js.map +1 -1
  179. package/dist/orchestrator/execution/agent-loop/agent-loop-trace-store.d.ts.map +1 -1
  180. package/dist/orchestrator/execution/agent-loop/agent-loop-trace-store.js +5 -3
  181. package/dist/orchestrator/execution/agent-loop/agent-loop-trace-store.js.map +1 -1
  182. package/dist/orchestrator/execution/agent-loop/agent-timeline.d.ts +3 -1
  183. package/dist/orchestrator/execution/agent-loop/agent-timeline.d.ts.map +1 -1
  184. package/dist/orchestrator/execution/agent-loop/agent-timeline.js +8 -20
  185. package/dist/orchestrator/execution/agent-loop/agent-timeline.js.map +1 -1
  186. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts.map +1 -1
  187. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js +38 -25
  188. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js.map +1 -1
  189. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -1
  190. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +20 -4
  191. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -1
  192. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts +1 -51
  193. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts.map +1 -1
  194. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js +3 -239
  195. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js.map +1 -1
  196. package/dist/orchestrator/execution/agent-loop/durable-loop-control-tools.d.ts +60 -0
  197. package/dist/orchestrator/execution/agent-loop/durable-loop-control-tools.d.ts.map +1 -0
  198. package/dist/orchestrator/execution/agent-loop/durable-loop-control-tools.js +244 -0
  199. package/dist/orchestrator/execution/agent-loop/durable-loop-control-tools.js.map +1 -0
  200. package/dist/orchestrator/execution/agent-loop/index.d.ts +1 -1
  201. package/dist/orchestrator/execution/agent-loop/index.d.ts.map +1 -1
  202. package/dist/orchestrator/execution/agent-loop/index.js +1 -1
  203. package/dist/orchestrator/execution/agent-loop/index.js.map +1 -1
  204. package/dist/orchestrator/execution/task/task-generation.d.ts +50 -2
  205. package/dist/orchestrator/execution/task/task-generation.d.ts.map +1 -1
  206. package/dist/orchestrator/execution/task/task-generation.js +19 -1
  207. package/dist/orchestrator/execution/task/task-generation.js.map +1 -1
  208. package/dist/orchestrator/execution/task/task-lifecycle.js +8 -11
  209. package/dist/orchestrator/execution/task/task-lifecycle.js.map +1 -1
  210. package/dist/orchestrator/execution/task/task-prompt-builder.d.ts.map +1 -1
  211. package/dist/orchestrator/execution/task/task-prompt-builder.js +9 -0
  212. package/dist/orchestrator/execution/task/task-prompt-builder.js.map +1 -1
  213. package/dist/orchestrator/execution/types/task-group.d.ts +68 -4
  214. package/dist/orchestrator/execution/types/task-group.d.ts.map +1 -1
  215. package/dist/orchestrator/execution/types/task.d.ts +100 -2
  216. package/dist/orchestrator/execution/types/task.d.ts.map +1 -1
  217. package/dist/orchestrator/execution/types/task.js +10 -0
  218. package/dist/orchestrator/execution/types/task.js.map +1 -1
  219. package/dist/orchestrator/goal/goal-decomposer.d.ts.map +1 -1
  220. package/dist/orchestrator/goal/goal-decomposer.js +2 -1
  221. package/dist/orchestrator/goal/goal-decomposer.js.map +1 -1
  222. package/dist/orchestrator/goal/goal-negotiator.d.ts.map +1 -1
  223. package/dist/orchestrator/goal/goal-negotiator.js +5 -2
  224. package/dist/orchestrator/goal/goal-negotiator.js.map +1 -1
  225. package/dist/orchestrator/goal/goal-suggest.d.ts +6 -6
  226. package/dist/orchestrator/goal/goal-validation.d.ts +4 -5
  227. package/dist/orchestrator/goal/goal-validation.d.ts.map +1 -1
  228. package/dist/orchestrator/goal/goal-validation.js +11 -17
  229. package/dist/orchestrator/goal/goal-validation.js.map +1 -1
  230. package/dist/orchestrator/goal/negotiator-prompts.d.ts.map +1 -1
  231. package/dist/orchestrator/goal/negotiator-prompts.js +8 -4
  232. package/dist/orchestrator/goal/negotiator-prompts.js.map +1 -1
  233. package/dist/orchestrator/goal/negotiator-steps.d.ts.map +1 -1
  234. package/dist/orchestrator/goal/negotiator-steps.js +7 -11
  235. package/dist/orchestrator/goal/negotiator-steps.js.map +1 -1
  236. package/dist/orchestrator/goal/types/goal-refiner.d.ts +6 -6
  237. package/dist/orchestrator/goal/types/goal.d.ts +161 -0
  238. package/dist/orchestrator/goal/types/goal.d.ts.map +1 -1
  239. package/dist/orchestrator/goal/types/goal.js +8 -0
  240. package/dist/orchestrator/goal/types/goal.js.map +1 -1
  241. package/dist/orchestrator/goal/types/negotiation.d.ts +120 -6
  242. package/dist/orchestrator/goal/types/negotiation.d.ts.map +1 -1
  243. package/dist/orchestrator/goal/types/negotiation.js +3 -0
  244. package/dist/orchestrator/goal/types/negotiation.js.map +1 -1
  245. package/dist/orchestrator/goal/types/suggest.d.ts +6 -6
  246. package/dist/orchestrator/loop/checkpoint-manager-loop.d.ts +1 -1
  247. package/dist/orchestrator/loop/checkpoint-manager-loop.d.ts.map +1 -1
  248. package/dist/orchestrator/loop/core-loop/capability.d.ts +1 -21
  249. package/dist/orchestrator/loop/core-loop/capability.d.ts.map +1 -1
  250. package/dist/orchestrator/loop/core-loop/capability.js +1 -150
  251. package/dist/orchestrator/loop/core-loop/capability.js.map +1 -1
  252. package/dist/orchestrator/loop/core-loop/contracts.d.ts +1 -318
  253. package/dist/orchestrator/loop/core-loop/contracts.d.ts.map +1 -1
  254. package/dist/orchestrator/loop/core-loop/contracts.js +1 -39
  255. package/dist/orchestrator/loop/core-loop/contracts.js.map +1 -1
  256. package/dist/orchestrator/loop/core-loop/control.d.ts +1 -26
  257. package/dist/orchestrator/loop/core-loop/control.d.ts.map +1 -1
  258. package/dist/orchestrator/loop/core-loop/control.js +1 -71
  259. package/dist/orchestrator/loop/core-loop/control.js.map +1 -1
  260. package/dist/orchestrator/loop/core-loop/decision-engine.d.ts +1 -78
  261. package/dist/orchestrator/loop/core-loop/decision-engine.d.ts.map +1 -1
  262. package/dist/orchestrator/loop/core-loop/decision-engine.js +1 -144
  263. package/dist/orchestrator/loop/core-loop/decision-engine.js.map +1 -1
  264. package/dist/orchestrator/loop/core-loop/dream-review-checkpoint.d.ts +1 -47
  265. package/dist/orchestrator/loop/core-loop/dream-review-checkpoint.d.ts.map +1 -1
  266. package/dist/orchestrator/loop/core-loop/dream-review-checkpoint.js +1 -385
  267. package/dist/orchestrator/loop/core-loop/dream-review-checkpoint.js.map +1 -1
  268. package/dist/orchestrator/loop/core-loop/evidence-ledger.d.ts +1 -21
  269. package/dist/orchestrator/loop/core-loop/evidence-ledger.d.ts.map +1 -1
  270. package/dist/orchestrator/loop/core-loop/evidence-ledger.js +1 -35
  271. package/dist/orchestrator/loop/core-loop/evidence-ledger.js.map +1 -1
  272. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.d.ts +1 -6
  273. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.d.ts.map +1 -1
  274. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.js +1 -42
  275. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.js.map +1 -1
  276. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.d.ts +1 -13
  277. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.d.ts.map +1 -1
  278. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.js +1 -40
  279. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.js.map +1 -1
  280. package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts +1 -36
  281. package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts.map +1 -1
  282. package/dist/orchestrator/loop/core-loop/iteration-kernel.js +1 -834
  283. package/dist/orchestrator/loop/core-loop/iteration-kernel.js.map +1 -1
  284. package/dist/orchestrator/loop/core-loop/learning.d.ts +1 -30
  285. package/dist/orchestrator/loop/core-loop/learning.d.ts.map +1 -1
  286. package/dist/orchestrator/loop/core-loop/learning.js +1 -91
  287. package/dist/orchestrator/loop/core-loop/learning.js.map +1 -1
  288. package/dist/orchestrator/loop/core-loop/phase-policy.d.ts +1 -19
  289. package/dist/orchestrator/loop/core-loop/phase-policy.d.ts.map +1 -1
  290. package/dist/orchestrator/loop/core-loop/phase-policy.js +1 -157
  291. package/dist/orchestrator/loop/core-loop/phase-policy.js.map +1 -1
  292. package/dist/orchestrator/loop/core-loop/phase-runtime.d.ts +1 -30
  293. package/dist/orchestrator/loop/core-loop/phase-runtime.d.ts.map +1 -1
  294. package/dist/orchestrator/loop/core-loop/phase-runtime.js +1 -102
  295. package/dist/orchestrator/loop/core-loop/phase-runtime.js.map +1 -1
  296. package/dist/orchestrator/loop/core-loop/phase-specs.d.ts +1 -1268
  297. package/dist/orchestrator/loop/core-loop/phase-specs.d.ts.map +1 -1
  298. package/dist/orchestrator/loop/core-loop/phase-specs.js +1 -348
  299. package/dist/orchestrator/loop/core-loop/phase-specs.js.map +1 -1
  300. package/dist/orchestrator/loop/core-loop/preparation.d.ts +1 -58
  301. package/dist/orchestrator/loop/core-loop/preparation.d.ts.map +1 -1
  302. package/dist/orchestrator/loop/core-loop/preparation.js +1 -367
  303. package/dist/orchestrator/loop/core-loop/preparation.js.map +1 -1
  304. package/dist/orchestrator/loop/core-loop/public-research.d.ts +1 -31
  305. package/dist/orchestrator/loop/core-loop/public-research.d.ts.map +1 -1
  306. package/dist/orchestrator/loop/core-loop/public-research.js +1 -111
  307. package/dist/orchestrator/loop/core-loop/public-research.js.map +1 -1
  308. package/dist/orchestrator/loop/core-loop/task-cycle-stall.d.ts +1 -8
  309. package/dist/orchestrator/loop/core-loop/task-cycle-stall.d.ts.map +1 -1
  310. package/dist/orchestrator/loop/core-loop/task-cycle-stall.js +1 -432
  311. package/dist/orchestrator/loop/core-loop/task-cycle-stall.js.map +1 -1
  312. package/dist/orchestrator/loop/core-loop/task-cycle-wait.d.ts +1 -10
  313. package/dist/orchestrator/loop/core-loop/task-cycle-wait.d.ts.map +1 -1
  314. package/dist/orchestrator/loop/core-loop/task-cycle-wait.js +1 -175
  315. package/dist/orchestrator/loop/core-loop/task-cycle-wait.js.map +1 -1
  316. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts +1 -40
  317. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts.map +1 -1
  318. package/dist/orchestrator/loop/core-loop/task-cycle.js +1 -429
  319. package/dist/orchestrator/loop/core-loop/task-cycle.js.map +1 -1
  320. package/dist/orchestrator/loop/core-loop.d.ts +1 -85
  321. package/dist/orchestrator/loop/core-loop.d.ts.map +1 -1
  322. package/dist/orchestrator/loop/core-loop.js +3 -625
  323. package/dist/orchestrator/loop/core-loop.js.map +1 -1
  324. package/dist/orchestrator/loop/durable-loop/capability.d.ts +22 -0
  325. package/dist/orchestrator/loop/durable-loop/capability.d.ts.map +1 -0
  326. package/dist/orchestrator/loop/durable-loop/capability.js +151 -0
  327. package/dist/orchestrator/loop/durable-loop/capability.js.map +1 -0
  328. package/dist/orchestrator/loop/durable-loop/contracts.d.ts +319 -0
  329. package/dist/orchestrator/loop/durable-loop/contracts.d.ts.map +1 -0
  330. package/dist/orchestrator/loop/durable-loop/contracts.js +40 -0
  331. package/dist/orchestrator/loop/durable-loop/contracts.js.map +1 -0
  332. package/dist/orchestrator/loop/durable-loop/control.d.ts +27 -0
  333. package/dist/orchestrator/loop/durable-loop/control.d.ts.map +1 -0
  334. package/dist/orchestrator/loop/durable-loop/control.js +72 -0
  335. package/dist/orchestrator/loop/durable-loop/control.js.map +1 -0
  336. package/dist/orchestrator/loop/durable-loop/decision-engine.d.ts +79 -0
  337. package/dist/orchestrator/loop/durable-loop/decision-engine.d.ts.map +1 -0
  338. package/dist/orchestrator/loop/durable-loop/decision-engine.js +145 -0
  339. package/dist/orchestrator/loop/durable-loop/decision-engine.js.map +1 -0
  340. package/dist/orchestrator/loop/durable-loop/dream-review-checkpoint.d.ts +48 -0
  341. package/dist/orchestrator/loop/durable-loop/dream-review-checkpoint.d.ts.map +1 -0
  342. package/dist/orchestrator/loop/durable-loop/dream-review-checkpoint.js +386 -0
  343. package/dist/orchestrator/loop/durable-loop/dream-review-checkpoint.js.map +1 -0
  344. package/dist/orchestrator/loop/durable-loop/evidence-ledger.d.ts +22 -0
  345. package/dist/orchestrator/loop/durable-loop/evidence-ledger.d.ts.map +1 -0
  346. package/dist/orchestrator/loop/durable-loop/evidence-ledger.js +36 -0
  347. package/dist/orchestrator/loop/durable-loop/evidence-ledger.js.map +1 -0
  348. package/dist/orchestrator/loop/durable-loop/iteration-kernel-knowledge.d.ts +7 -0
  349. package/dist/orchestrator/loop/durable-loop/iteration-kernel-knowledge.d.ts.map +1 -0
  350. package/dist/orchestrator/loop/durable-loop/iteration-kernel-knowledge.js +43 -0
  351. package/dist/orchestrator/loop/durable-loop/iteration-kernel-knowledge.js.map +1 -0
  352. package/dist/orchestrator/loop/durable-loop/iteration-kernel-wait.d.ts +14 -0
  353. package/dist/orchestrator/loop/durable-loop/iteration-kernel-wait.d.ts.map +1 -0
  354. package/dist/orchestrator/loop/durable-loop/iteration-kernel-wait.js +41 -0
  355. package/dist/orchestrator/loop/durable-loop/iteration-kernel-wait.js.map +1 -0
  356. package/dist/orchestrator/loop/durable-loop/iteration-kernel.d.ts +37 -0
  357. package/dist/orchestrator/loop/durable-loop/iteration-kernel.d.ts.map +1 -0
  358. package/dist/orchestrator/loop/durable-loop/iteration-kernel.js +835 -0
  359. package/dist/orchestrator/loop/durable-loop/iteration-kernel.js.map +1 -0
  360. package/dist/orchestrator/loop/durable-loop/learning.d.ts +31 -0
  361. package/dist/orchestrator/loop/durable-loop/learning.d.ts.map +1 -0
  362. package/dist/orchestrator/loop/durable-loop/learning.js +92 -0
  363. package/dist/orchestrator/loop/durable-loop/learning.js.map +1 -0
  364. package/dist/orchestrator/loop/durable-loop/phase-policy.d.ts +20 -0
  365. package/dist/orchestrator/loop/durable-loop/phase-policy.d.ts.map +1 -0
  366. package/dist/orchestrator/loop/durable-loop/phase-policy.js +158 -0
  367. package/dist/orchestrator/loop/durable-loop/phase-policy.js.map +1 -0
  368. package/dist/orchestrator/loop/durable-loop/phase-runtime.d.ts +31 -0
  369. package/dist/orchestrator/loop/durable-loop/phase-runtime.d.ts.map +1 -0
  370. package/dist/orchestrator/loop/durable-loop/phase-runtime.js +103 -0
  371. package/dist/orchestrator/loop/durable-loop/phase-runtime.js.map +1 -0
  372. package/dist/orchestrator/loop/durable-loop/phase-specs.d.ts +1269 -0
  373. package/dist/orchestrator/loop/durable-loop/phase-specs.d.ts.map +1 -0
  374. package/dist/orchestrator/loop/durable-loop/phase-specs.js +349 -0
  375. package/dist/orchestrator/loop/durable-loop/phase-specs.js.map +1 -0
  376. package/dist/orchestrator/loop/durable-loop/preparation.d.ts +59 -0
  377. package/dist/orchestrator/loop/durable-loop/preparation.d.ts.map +1 -0
  378. package/dist/orchestrator/loop/durable-loop/preparation.js +368 -0
  379. package/dist/orchestrator/loop/durable-loop/preparation.js.map +1 -0
  380. package/dist/orchestrator/loop/durable-loop/public-research.d.ts +32 -0
  381. package/dist/orchestrator/loop/durable-loop/public-research.d.ts.map +1 -0
  382. package/dist/orchestrator/loop/durable-loop/public-research.js +112 -0
  383. package/dist/orchestrator/loop/durable-loop/public-research.js.map +1 -0
  384. package/dist/orchestrator/loop/durable-loop/task-cycle-stall.d.ts +9 -0
  385. package/dist/orchestrator/loop/durable-loop/task-cycle-stall.d.ts.map +1 -0
  386. package/dist/orchestrator/loop/durable-loop/task-cycle-stall.js +464 -0
  387. package/dist/orchestrator/loop/durable-loop/task-cycle-stall.js.map +1 -0
  388. package/dist/orchestrator/loop/durable-loop/task-cycle-wait.d.ts +11 -0
  389. package/dist/orchestrator/loop/durable-loop/task-cycle-wait.d.ts.map +1 -0
  390. package/dist/orchestrator/loop/durable-loop/task-cycle-wait.js +176 -0
  391. package/dist/orchestrator/loop/durable-loop/task-cycle-wait.js.map +1 -0
  392. package/dist/orchestrator/loop/durable-loop/task-cycle.d.ts +41 -0
  393. package/dist/orchestrator/loop/durable-loop/task-cycle.d.ts.map +1 -0
  394. package/dist/orchestrator/loop/durable-loop/task-cycle.js +430 -0
  395. package/dist/orchestrator/loop/durable-loop/task-cycle.js.map +1 -0
  396. package/dist/orchestrator/loop/durable-loop.d.ts +92 -0
  397. package/dist/orchestrator/loop/durable-loop.d.ts.map +1 -0
  398. package/dist/orchestrator/loop/durable-loop.js +631 -0
  399. package/dist/orchestrator/loop/durable-loop.js.map +1 -0
  400. package/dist/orchestrator/loop/loop-report-helper.d.ts +1 -1
  401. package/dist/orchestrator/loop/loop-report-helper.d.ts.map +1 -1
  402. package/dist/orchestrator/loop/loop-result-types.d.ts +1 -1
  403. package/dist/orchestrator/loop/loop-result-types.d.ts.map +1 -1
  404. package/dist/orchestrator/loop/parallel-dispatch.d.ts +2 -2
  405. package/dist/orchestrator/loop/parallel-dispatch.d.ts.map +1 -1
  406. package/dist/orchestrator/loop/post-loop-hooks.d.ts +1 -1
  407. package/dist/orchestrator/loop/post-loop-hooks.d.ts.map +1 -1
  408. package/dist/orchestrator/loop/run-policy.d.ts +1 -1
  409. package/dist/orchestrator/loop/run-policy.d.ts.map +1 -1
  410. package/dist/orchestrator/loop/tree-loop-runner.d.ts +1 -1
  411. package/dist/orchestrator/loop/tree-loop-runner.d.ts.map +1 -1
  412. package/dist/orchestrator/loop/tree-loop-runner.js +1 -1
  413. package/dist/orchestrator/loop/tree-loop-runner.js.map +1 -1
  414. package/dist/orchestrator/strategy/divergent-exploration.d.ts +2 -1
  415. package/dist/orchestrator/strategy/divergent-exploration.d.ts.map +1 -1
  416. package/dist/orchestrator/strategy/divergent-exploration.js +119 -36
  417. package/dist/orchestrator/strategy/divergent-exploration.js.map +1 -1
  418. package/dist/orchestrator/strategy/strategy-helpers.d.ts +86 -4
  419. package/dist/orchestrator/strategy/strategy-helpers.d.ts.map +1 -1
  420. package/dist/orchestrator/strategy/strategy-manager-base.d.ts +6 -2
  421. package/dist/orchestrator/strategy/strategy-manager-base.d.ts.map +1 -1
  422. package/dist/orchestrator/strategy/strategy-manager-base.js +71 -18
  423. package/dist/orchestrator/strategy/strategy-manager-base.js.map +1 -1
  424. package/dist/orchestrator/strategy/types/strategy.d.ts +450 -14
  425. package/dist/orchestrator/strategy/types/strategy.d.ts.map +1 -1
  426. package/dist/orchestrator/strategy/types/strategy.js +30 -0
  427. package/dist/orchestrator/strategy/types/strategy.js.map +1 -1
  428. package/dist/platform/code-search/contracts.d.ts +3 -0
  429. package/dist/platform/code-search/contracts.d.ts.map +1 -1
  430. package/dist/platform/code-search/contracts.js.map +1 -1
  431. package/dist/platform/code-search/indexes/indexer.d.ts.map +1 -1
  432. package/dist/platform/code-search/indexes/indexer.js +3 -0
  433. package/dist/platform/code-search/indexes/indexer.js.map +1 -1
  434. package/dist/platform/code-search/indexes/semantic-index.d.ts.map +1 -1
  435. package/dist/platform/code-search/indexes/semantic-index.js +3 -0
  436. package/dist/platform/code-search/indexes/semantic-index.js.map +1 -1
  437. package/dist/platform/code-search/orchestrator.d.ts.map +1 -1
  438. package/dist/platform/code-search/orchestrator.js +14 -3
  439. package/dist/platform/code-search/orchestrator.js.map +1 -1
  440. package/dist/platform/code-search/query-planner.d.ts.map +1 -1
  441. package/dist/platform/code-search/query-planner.js +1 -17
  442. package/dist/platform/code-search/query-planner.js.map +1 -1
  443. package/dist/platform/code-search/reranker.d.ts +5 -1
  444. package/dist/platform/code-search/reranker.d.ts.map +1 -1
  445. package/dist/platform/code-search/reranker.js +9 -5
  446. package/dist/platform/code-search/reranker.js.map +1 -1
  447. package/dist/platform/corrections/memory-correction-ledger.d.ts +30 -30
  448. package/dist/platform/dream/dream-activation.d.ts +161 -1
  449. package/dist/platform/dream/dream-activation.d.ts.map +1 -1
  450. package/dist/platform/dream/dream-activation.js +63 -14
  451. package/dist/platform/dream/dream-activation.js.map +1 -1
  452. package/dist/platform/dream/dream-event-workflows.d.ts +2 -2
  453. package/dist/platform/dream/dream-types.d.ts +52 -52
  454. package/dist/platform/dream/playbook-memory.d.ts +3 -3
  455. package/dist/platform/drive/stall-detector/repetitive.d.ts.map +1 -1
  456. package/dist/platform/drive/stall-detector/repetitive.js +50 -5
  457. package/dist/platform/drive/stall-detector/repetitive.js.map +1 -1
  458. package/dist/platform/drive/stall-detector.d.ts +19 -0
  459. package/dist/platform/drive/stall-detector.d.ts.map +1 -1
  460. package/dist/platform/drive/stall-detector.js.map +1 -1
  461. package/dist/platform/drive/types/stall.d.ts +1 -1
  462. package/dist/platform/knowledge/transfer/knowledge-transfer-apply.d.ts.map +1 -1
  463. package/dist/platform/knowledge/transfer/knowledge-transfer-apply.js +7 -3
  464. package/dist/platform/knowledge/transfer/knowledge-transfer-apply.js.map +1 -1
  465. package/dist/platform/knowledge/types/agent-memory.d.ts +46 -46
  466. package/dist/platform/knowledge/types/embedding.d.ts +4 -4
  467. package/dist/platform/knowledge/types/knowledge.d.ts +53 -0
  468. package/dist/platform/knowledge/types/knowledge.d.ts.map +1 -1
  469. package/dist/platform/knowledge/types/knowledge.js +15 -0
  470. package/dist/platform/knowledge/types/knowledge.js.map +1 -1
  471. package/dist/platform/knowledge/types/memory-lifecycle.d.ts +2 -2
  472. package/dist/platform/observation/capability-detector/types.d.ts +4 -4
  473. package/dist/platform/observation/context-provider/collector.d.ts +2 -0
  474. package/dist/platform/observation/context-provider/collector.d.ts.map +1 -1
  475. package/dist/platform/observation/context-provider/collector.js +27 -2
  476. package/dist/platform/observation/context-provider/collector.js.map +1 -1
  477. package/dist/platform/observation/context-provider.d.ts +4 -0
  478. package/dist/platform/observation/context-provider.d.ts.map +1 -1
  479. package/dist/platform/observation/context-provider.js.map +1 -1
  480. package/dist/platform/observation/engine/observe-datasource-stage.d.ts +3 -2
  481. package/dist/platform/observation/engine/observe-datasource-stage.d.ts.map +1 -1
  482. package/dist/platform/observation/engine/observe-datasource-stage.js +2 -2
  483. package/dist/platform/observation/engine/observe-datasource-stage.js.map +1 -1
  484. package/dist/platform/observation/observation-apply.d.ts +1 -1
  485. package/dist/platform/observation/observation-apply.d.ts.map +1 -1
  486. package/dist/platform/observation/observation-apply.js +3 -3
  487. package/dist/platform/observation/observation-apply.js.map +1 -1
  488. package/dist/platform/observation/observation-datasource.d.ts +2 -2
  489. package/dist/platform/observation/observation-datasource.d.ts.map +1 -1
  490. package/dist/platform/observation/observation-datasource.js +13 -7
  491. package/dist/platform/observation/observation-datasource.js.map +1 -1
  492. package/dist/platform/observation/observation-engine.d.ts +1 -1
  493. package/dist/platform/observation/observation-engine.d.ts.map +1 -1
  494. package/dist/platform/observation/observation-engine.js +8 -6
  495. package/dist/platform/observation/observation-engine.js.map +1 -1
  496. package/dist/platform/observation/types/capability.d.ts +16 -16
  497. package/dist/platform/observation/workspace-context.d.ts +8 -1
  498. package/dist/platform/observation/workspace-context.d.ts.map +1 -1
  499. package/dist/platform/observation/workspace-context.js +35 -14
  500. package/dist/platform/observation/workspace-context.js.map +1 -1
  501. package/dist/platform/profile/profile-change-proposal.d.ts +20 -20
  502. package/dist/platform/profile/relationship-profile.d.ts +6 -6
  503. package/dist/platform/profile/user-md-profile-import.d.ts +2 -2
  504. package/dist/platform/soil/contracts.d.ts +98 -98
  505. package/dist/platform/soil/types.d.ts +8 -8
  506. package/dist/platform/traits/curiosity-engine.d.ts +2 -5
  507. package/dist/platform/traits/curiosity-engine.d.ts.map +1 -1
  508. package/dist/platform/traits/curiosity-engine.js.map +1 -1
  509. package/dist/platform/traits/curiosity-proposals.d.ts +2 -0
  510. package/dist/platform/traits/curiosity-proposals.d.ts.map +1 -1
  511. package/dist/platform/traits/curiosity-proposals.js +36 -17
  512. package/dist/platform/traits/curiosity-proposals.js.map +1 -1
  513. package/dist/platform/traits/curiosity-transfer.d.ts +9 -5
  514. package/dist/platform/traits/curiosity-transfer.d.ts.map +1 -1
  515. package/dist/platform/traits/curiosity-transfer.js +4 -1
  516. package/dist/platform/traits/curiosity-transfer.js.map +1 -1
  517. package/dist/platform/traits/ethics-gate.d.ts +16 -17
  518. package/dist/platform/traits/ethics-gate.d.ts.map +1 -1
  519. package/dist/platform/traits/ethics-gate.js +83 -47
  520. package/dist/platform/traits/ethics-gate.js.map +1 -1
  521. package/dist/platform/traits/ethics-rules.d.ts +4 -6
  522. package/dist/platform/traits/ethics-rules.d.ts.map +1 -1
  523. package/dist/platform/traits/ethics-rules.js +19 -261
  524. package/dist/platform/traits/ethics-rules.js.map +1 -1
  525. package/dist/platform/traits/types/curiosity.d.ts +157 -10
  526. package/dist/platform/traits/types/curiosity.d.ts.map +1 -1
  527. package/dist/platform/traits/types/curiosity.js +10 -0
  528. package/dist/platform/traits/types/curiosity.js.map +1 -1
  529. package/dist/platform/traits/types/guardrail.d.ts +6 -6
  530. package/dist/prompt/purposes/curiosity.d.ts +4 -4
  531. package/dist/runtime/approval-broker.d.ts +33 -0
  532. package/dist/runtime/approval-broker.d.ts.map +1 -1
  533. package/dist/runtime/approval-broker.js +155 -17
  534. package/dist/runtime/approval-broker.js.map +1 -1
  535. package/dist/runtime/companion-policy.d.ts +27 -0
  536. package/dist/runtime/companion-policy.d.ts.map +1 -0
  537. package/dist/runtime/companion-policy.js +135 -0
  538. package/dist/runtime/companion-policy.js.map +1 -0
  539. package/dist/runtime/confirmation-decision.d.ts +2 -2
  540. package/dist/runtime/control/daemon-runtime-control-executor.d.ts +0 -6
  541. package/dist/runtime/control/daemon-runtime-control-executor.d.ts.map +1 -1
  542. package/dist/runtime/control/daemon-runtime-control-executor.js +1 -1
  543. package/dist/runtime/control/daemon-runtime-control-executor.js.map +1 -1
  544. package/dist/runtime/control/index.d.ts +6 -3
  545. package/dist/runtime/control/index.d.ts.map +1 -1
  546. package/dist/runtime/control/index.js +2 -1
  547. package/dist/runtime/control/index.js.map +1 -1
  548. package/dist/runtime/control/runtime-control-intent.d.ts +16 -1
  549. package/dist/runtime/control/runtime-control-intent.d.ts.map +1 -1
  550. package/dist/runtime/control/runtime-control-intent.js +26 -13
  551. package/dist/runtime/control/runtime-control-intent.js.map +1 -1
  552. package/dist/runtime/control/runtime-control-service.d.ts +1 -1
  553. package/dist/runtime/control/runtime-control-service.d.ts.map +1 -1
  554. package/dist/runtime/control/runtime-control-service.js +29 -64
  555. package/dist/runtime/control/runtime-control-service.js.map +1 -1
  556. package/dist/runtime/control/runtime-target-resolver.d.ts +39 -0
  557. package/dist/runtime/control/runtime-target-resolver.d.ts.map +1 -0
  558. package/dist/runtime/control/runtime-target-resolver.js +112 -0
  559. package/dist/runtime/control/runtime-target-resolver.js.map +1 -0
  560. package/dist/runtime/conversational-approval-decision.d.ts +29 -0
  561. package/dist/runtime/conversational-approval-decision.d.ts.map +1 -0
  562. package/dist/runtime/conversational-approval-decision.js +92 -0
  563. package/dist/runtime/conversational-approval-decision.js.map +1 -0
  564. package/dist/runtime/daemon/client.d.ts +1 -4
  565. package/dist/runtime/daemon/client.d.ts.map +1 -1
  566. package/dist/runtime/daemon/client.js +0 -3
  567. package/dist/runtime/daemon/client.js.map +1 -1
  568. package/dist/runtime/daemon/control-contracts.d.ts +7 -0
  569. package/dist/runtime/daemon/control-contracts.d.ts.map +1 -0
  570. package/dist/runtime/daemon/control-contracts.js +2 -0
  571. package/dist/runtime/daemon/control-contracts.js.map +1 -0
  572. package/dist/runtime/daemon/runner-startup.js +1 -1
  573. package/dist/runtime/daemon/runner-startup.js.map +1 -1
  574. package/dist/runtime/daemon/runner.d.ts +1 -1
  575. package/dist/runtime/daemon/runner.d.ts.map +1 -1
  576. package/dist/runtime/executor/goal-worker.d.ts +3 -3
  577. package/dist/runtime/executor/goal-worker.d.ts.map +1 -1
  578. package/dist/runtime/executor/loop-supervisor.d.ts +2 -2
  579. package/dist/runtime/executor/loop-supervisor.d.ts.map +1 -1
  580. package/dist/runtime/executor/loop-supervisor.js +2 -2
  581. package/dist/runtime/executor/loop-supervisor.js.map +1 -1
  582. package/dist/runtime/gateway/channel-adapter.d.ts +19 -0
  583. package/dist/runtime/gateway/channel-adapter.d.ts.map +1 -1
  584. package/dist/runtime/gateway/channel-policy.d.ts +1 -0
  585. package/dist/runtime/gateway/channel-policy.d.ts.map +1 -1
  586. package/dist/runtime/gateway/channel-policy.js +6 -4
  587. package/dist/runtime/gateway/channel-policy.js.map +1 -1
  588. package/dist/runtime/gateway/chat-event-rendering.d.ts +34 -0
  589. package/dist/runtime/gateway/chat-event-rendering.d.ts.map +1 -0
  590. package/dist/runtime/gateway/chat-event-rendering.js +61 -0
  591. package/dist/runtime/gateway/chat-event-rendering.js.map +1 -0
  592. package/dist/runtime/gateway/chat-session-dispatch.d.ts +2 -13
  593. package/dist/runtime/gateway/chat-session-dispatch.d.ts.map +1 -1
  594. package/dist/runtime/gateway/chat-session-dispatch.js +6 -3
  595. package/dist/runtime/gateway/chat-session-dispatch.js.map +1 -1
  596. package/dist/runtime/gateway/chat-session-port.d.ts +25 -0
  597. package/dist/runtime/gateway/chat-session-port.d.ts.map +1 -0
  598. package/dist/runtime/gateway/chat-session-port.js +20 -0
  599. package/dist/runtime/gateway/chat-session-port.js.map +1 -0
  600. package/dist/runtime/gateway/discord-gateway-adapter.d.ts +3 -1
  601. package/dist/runtime/gateway/discord-gateway-adapter.d.ts.map +1 -1
  602. package/dist/runtime/gateway/discord-gateway-adapter.js +34 -2
  603. package/dist/runtime/gateway/discord-gateway-adapter.js.map +1 -1
  604. package/dist/runtime/gateway/index.d.ts +2 -0
  605. package/dist/runtime/gateway/index.d.ts.map +1 -1
  606. package/dist/runtime/gateway/index.js +1 -0
  607. package/dist/runtime/gateway/index.js.map +1 -1
  608. package/dist/runtime/gateway/ingress-gateway.d.ts.map +1 -1
  609. package/dist/runtime/gateway/ingress-gateway.js +1 -0
  610. package/dist/runtime/gateway/ingress-gateway.js.map +1 -1
  611. package/dist/runtime/gateway/signal-gateway-adapter.d.ts +2 -1
  612. package/dist/runtime/gateway/signal-gateway-adapter.d.ts.map +1 -1
  613. package/dist/runtime/gateway/signal-gateway-adapter.js +13 -3
  614. package/dist/runtime/gateway/signal-gateway-adapter.js.map +1 -1
  615. package/dist/runtime/gateway/slack-channel-adapter.d.ts +2 -1
  616. package/dist/runtime/gateway/slack-channel-adapter.d.ts.map +1 -1
  617. package/dist/runtime/gateway/slack-channel-adapter.js +6 -2
  618. package/dist/runtime/gateway/slack-channel-adapter.js.map +1 -1
  619. package/dist/runtime/gateway/telegram-gateway-adapter.d.ts +9 -2
  620. package/dist/runtime/gateway/telegram-gateway-adapter.d.ts.map +1 -1
  621. package/dist/runtime/gateway/telegram-gateway-adapter.js +141 -13
  622. package/dist/runtime/gateway/telegram-gateway-adapter.js.map +1 -1
  623. package/dist/runtime/gateway/typing-indicator.d.ts +11 -0
  624. package/dist/runtime/gateway/typing-indicator.d.ts.map +1 -0
  625. package/dist/runtime/gateway/typing-indicator.js +68 -0
  626. package/dist/runtime/gateway/typing-indicator.js.map +1 -0
  627. package/dist/runtime/gateway/whatsapp-gateway-adapter.d.ts +2 -1
  628. package/dist/runtime/gateway/whatsapp-gateway-adapter.d.ts.map +1 -1
  629. package/dist/runtime/gateway/whatsapp-gateway-adapter.js +22 -8
  630. package/dist/runtime/gateway/whatsapp-gateway-adapter.js.map +1 -1
  631. package/dist/runtime/gateway/ws-channel-adapter.d.ts.map +1 -1
  632. package/dist/runtime/gateway/ws-channel-adapter.js +1 -0
  633. package/dist/runtime/gateway/ws-channel-adapter.js.map +1 -1
  634. package/dist/runtime/interactive-automation/failure-classifier.d.ts +0 -1
  635. package/dist/runtime/interactive-automation/failure-classifier.d.ts.map +1 -1
  636. package/dist/runtime/interactive-automation/failure-classifier.js +0 -19
  637. package/dist/runtime/interactive-automation/failure-classifier.js.map +1 -1
  638. package/dist/runtime/interactive-automation/providers/manus-browser.d.ts.map +1 -1
  639. package/dist/runtime/interactive-automation/providers/manus-browser.js +30 -1
  640. package/dist/runtime/interactive-automation/providers/manus-browser.js.map +1 -1
  641. package/dist/runtime/logger.d.ts.map +1 -1
  642. package/dist/runtime/logger.js +5 -2
  643. package/dist/runtime/logger.js.map +1 -1
  644. package/dist/runtime/plugin-loader.js +2 -2
  645. package/dist/runtime/plugin-loader.js.map +1 -1
  646. package/dist/runtime/run-spec/derive.d.ts +24 -24
  647. package/dist/runtime/run-spec/derive.d.ts.map +1 -1
  648. package/dist/runtime/run-spec/derive.js +6 -0
  649. package/dist/runtime/run-spec/derive.js.map +1 -1
  650. package/dist/runtime/run-spec/handoff.d.ts +74 -0
  651. package/dist/runtime/run-spec/handoff.d.ts.map +1 -0
  652. package/dist/runtime/run-spec/handoff.js +496 -0
  653. package/dist/runtime/run-spec/handoff.js.map +1 -0
  654. package/dist/runtime/run-spec/index.d.ts +2 -0
  655. package/dist/runtime/run-spec/index.d.ts.map +1 -1
  656. package/dist/runtime/run-spec/index.js +2 -0
  657. package/dist/runtime/run-spec/index.js.map +1 -1
  658. package/dist/runtime/run-spec/pending-dialogue-arbiter.d.ts +25 -0
  659. package/dist/runtime/run-spec/pending-dialogue-arbiter.d.ts.map +1 -0
  660. package/dist/runtime/run-spec/pending-dialogue-arbiter.js +81 -0
  661. package/dist/runtime/run-spec/pending-dialogue-arbiter.js.map +1 -0
  662. package/dist/runtime/run-spec/types.d.ts +91 -42
  663. package/dist/runtime/run-spec/types.d.ts.map +1 -1
  664. package/dist/runtime/run-spec/types.js +7 -0
  665. package/dist/runtime/run-spec/types.js.map +1 -1
  666. package/dist/runtime/schedule/engine-execution.js +2 -35
  667. package/dist/runtime/schedule/engine-execution.js.map +1 -1
  668. package/dist/runtime/schedule/history.d.ts +2 -2
  669. package/dist/runtime/schedule/presets.d.ts +4 -4
  670. package/dist/runtime/schedule/source.d.ts +1 -1
  671. package/dist/runtime/session-registry/registry.d.ts.map +1 -1
  672. package/dist/runtime/session-registry/registry.js +27 -2
  673. package/dist/runtime/session-registry/registry.js.map +1 -1
  674. package/dist/runtime/session-registry/types.d.ts +120 -112
  675. package/dist/runtime/session-registry/types.d.ts.map +1 -1
  676. package/dist/runtime/session-registry/types.js +1 -0
  677. package/dist/runtime/session-registry/types.js.map +1 -1
  678. package/dist/runtime/store/artifact-retention.d.ts +11 -6
  679. package/dist/runtime/store/artifact-retention.d.ts.map +1 -1
  680. package/dist/runtime/store/artifact-retention.js +0 -13
  681. package/dist/runtime/store/artifact-retention.js.map +1 -1
  682. package/dist/runtime/store/background-run-store.d.ts +1 -0
  683. package/dist/runtime/store/background-run-store.d.ts.map +1 -1
  684. package/dist/runtime/store/background-run-store.js +1 -0
  685. package/dist/runtime/store/background-run-store.js.map +1 -1
  686. package/dist/runtime/store/budget-store.d.ts +8 -8
  687. package/dist/runtime/store/dream-checkpoints.d.ts +1 -1
  688. package/dist/runtime/store/dream-checkpoints.d.ts.map +1 -1
  689. package/dist/runtime/store/evaluator-results.d.ts +1 -1
  690. package/dist/runtime/store/evaluator-results.d.ts.map +1 -1
  691. package/dist/runtime/store/evidence-ledger.d.ts +39 -6377
  692. package/dist/runtime/store/evidence-ledger.d.ts.map +1 -1
  693. package/dist/runtime/store/evidence-ledger.js +415 -501
  694. package/dist/runtime/store/evidence-ledger.js.map +1 -1
  695. package/dist/runtime/store/evidence-types.d.ts +6378 -0
  696. package/dist/runtime/store/evidence-types.d.ts.map +1 -0
  697. package/dist/runtime/store/evidence-types.js +459 -0
  698. package/dist/runtime/store/evidence-types.js.map +1 -0
  699. package/dist/runtime/store/experiment-queue-store.d.ts +109 -109
  700. package/dist/runtime/store/experiment-queue-store.d.ts.map +1 -1
  701. package/dist/runtime/store/experiment-queue-store.js +1 -1
  702. package/dist/runtime/store/experiment-queue-store.js.map +1 -1
  703. package/dist/runtime/store/index.d.ts +4 -4
  704. package/dist/runtime/store/index.d.ts.map +1 -1
  705. package/dist/runtime/store/index.js +2 -2
  706. package/dist/runtime/store/index.js.map +1 -1
  707. package/dist/runtime/store/metric-history.d.ts +1 -1
  708. package/dist/runtime/store/metric-history.d.ts.map +1 -1
  709. package/dist/runtime/store/operator-handoff-store.d.ts +12 -12
  710. package/dist/runtime/store/postmortem-report.d.ts +38 -38
  711. package/dist/runtime/store/postmortem-report.js.map +1 -1
  712. package/dist/runtime/store/proactive-intervention-store.d.ts +8 -8
  713. package/dist/runtime/store/reproducibility-manifest.d.ts +27 -27
  714. package/dist/runtime/store/reproducibility-manifest.d.ts.map +1 -1
  715. package/dist/runtime/store/reproducibility-manifest.js.map +1 -1
  716. package/dist/runtime/store/research-evidence.d.ts +1 -1
  717. package/dist/runtime/store/research-evidence.d.ts.map +1 -1
  718. package/dist/runtime/store/runtime-operation-schemas.d.ts +46 -46
  719. package/dist/runtime/store/runtime-schemas.d.ts +73 -12
  720. package/dist/runtime/store/runtime-schemas.d.ts.map +1 -1
  721. package/dist/runtime/store/runtime-schemas.js +9 -0
  722. package/dist/runtime/store/runtime-schemas.js.map +1 -1
  723. package/dist/runtime/types/companion.d.ts +394 -0
  724. package/dist/runtime/types/companion.d.ts.map +1 -0
  725. package/dist/runtime/types/companion.js +87 -0
  726. package/dist/runtime/types/companion.js.map +1 -0
  727. package/dist/runtime/types/daemon.d.ts +3 -3
  728. package/dist/runtime/types/hook.d.ts +12 -12
  729. package/dist/runtime/types/schedule.d.ts +32 -32
  730. package/dist/tools/builtin/exports.d.ts +2 -0
  731. package/dist/tools/builtin/exports.d.ts.map +1 -1
  732. package/dist/tools/builtin/exports.js +2 -0
  733. package/dist/tools/builtin/exports.js.map +1 -1
  734. package/dist/tools/builtin/factory.d.ts +10 -1
  735. package/dist/tools/builtin/factory.d.ts.map +1 -1
  736. package/dist/tools/builtin/factory.js +18 -1
  737. package/dist/tools/builtin/factory.js.map +1 -1
  738. package/dist/tools/executor.d.ts.map +1 -1
  739. package/dist/tools/executor.js +8 -6
  740. package/dist/tools/executor.js.map +1 -1
  741. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.d.ts.map +1 -1
  742. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js +1 -0
  743. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js.map +1 -1
  744. package/dist/tools/fs/FileEditTool/FileEditTool.d.ts.map +1 -1
  745. package/dist/tools/fs/FileEditTool/FileEditTool.js +1 -0
  746. package/dist/tools/fs/FileEditTool/FileEditTool.js.map +1 -1
  747. package/dist/tools/fs/FileWriteTool/FileWriteTool.d.ts.map +1 -1
  748. package/dist/tools/fs/FileWriteTool/FileWriteTool.js +1 -0
  749. package/dist/tools/fs/FileWriteTool/FileWriteTool.js.map +1 -1
  750. package/dist/tools/fs/GlobTool/GlobTool.d.ts.map +1 -1
  751. package/dist/tools/fs/GlobTool/GlobTool.js +1 -0
  752. package/dist/tools/fs/GlobTool/GlobTool.js.map +1 -1
  753. package/dist/tools/fs/GrepTool/GrepTool.d.ts.map +1 -1
  754. package/dist/tools/fs/GrepTool/GrepTool.js +1 -0
  755. package/dist/tools/fs/GrepTool/GrepTool.js.map +1 -1
  756. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.d.ts.map +1 -1
  757. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.js +1 -0
  758. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.js.map +1 -1
  759. package/dist/tools/fs/ListDirTool/ListDirTool.d.ts.map +1 -1
  760. package/dist/tools/fs/ListDirTool/ListDirTool.js +1 -0
  761. package/dist/tools/fs/ListDirTool/ListDirTool.js.map +1 -1
  762. package/dist/tools/fs/ReadTool/ReadTool.d.ts.map +1 -1
  763. package/dist/tools/fs/ReadTool/ReadTool.js +1 -0
  764. package/dist/tools/fs/ReadTool/ReadTool.js.map +1 -1
  765. package/dist/tools/kaggle/KaggleSubmissionTools.d.ts +4 -4
  766. package/dist/tools/kaggle/metrics.d.ts +4 -4
  767. package/dist/tools/mutation/TaskCreateTool/TaskCreateTool.d.ts +4 -4
  768. package/dist/tools/mutation/TaskUpdateTool/TaskUpdateTool.d.ts +4 -4
  769. package/dist/tools/network/GitHubCliTool/GitHubCliTool.d.ts +8 -8
  770. package/dist/tools/network/HttpFetchTool/HttpFetchTool.d.ts.map +1 -1
  771. package/dist/tools/network/HttpFetchTool/HttpFetchTool.js +1 -0
  772. package/dist/tools/network/HttpFetchTool/HttpFetchTool.js.map +1 -1
  773. package/dist/tools/network/WebSearchTool/WebSearchTool.d.ts.map +1 -1
  774. package/dist/tools/network/WebSearchTool/WebSearchTool.js +1 -0
  775. package/dist/tools/network/WebSearchTool/WebSearchTool.js.map +1 -1
  776. package/dist/tools/query/ArchitectureTool/ArchitectureTool.js +3 -3
  777. package/dist/tools/query/ArchitectureTool/ArchitectureTool.js.map +1 -1
  778. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.d.ts +20 -20
  779. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.d.ts.map +1 -1
  780. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.js +1 -0
  781. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.js.map +1 -1
  782. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.d.ts.map +1 -1
  783. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.js +1 -0
  784. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.js.map +1 -1
  785. package/dist/tools/query/CodeSearchTool/CodeSearchTool.d.ts.map +1 -1
  786. package/dist/tools/query/CodeSearchTool/CodeSearchTool.js +1 -0
  787. package/dist/tools/query/CodeSearchTool/CodeSearchTool.js.map +1 -1
  788. package/dist/tools/query/KnowledgeQueryTool/KnowledgeQueryTool.d.ts.map +1 -1
  789. package/dist/tools/query/KnowledgeQueryTool/KnowledgeQueryTool.js +1 -0
  790. package/dist/tools/query/KnowledgeQueryTool/KnowledgeQueryTool.js.map +1 -1
  791. package/dist/tools/query/SkillSearchTool/SkillSearchTool.d.ts.map +1 -1
  792. package/dist/tools/query/SkillSearchTool/SkillSearchTool.js +1 -0
  793. package/dist/tools/query/SkillSearchTool/SkillSearchTool.js.map +1 -1
  794. package/dist/tools/query/ToolSearchTool/ToolSearchTool.d.ts.map +1 -1
  795. package/dist/tools/query/ToolSearchTool/ToolSearchTool.js +1 -0
  796. package/dist/tools/query/ToolSearchTool/ToolSearchTool.js.map +1 -1
  797. package/dist/tools/runtime/LongRunningRuntimeTools.d.ts +32 -32
  798. package/dist/tools/runtime/RunSpecHandoffTools.d.ts +12 -0
  799. package/dist/tools/runtime/RunSpecHandoffTools.d.ts.map +1 -0
  800. package/dist/tools/runtime/RunSpecHandoffTools.js +224 -0
  801. package/dist/tools/runtime/RunSpecHandoffTools.js.map +1 -0
  802. package/dist/tools/runtime/SetupRuntimeControlTools.d.ts +11 -0
  803. package/dist/tools/runtime/SetupRuntimeControlTools.d.ts.map +1 -0
  804. package/dist/tools/runtime/SetupRuntimeControlTools.js +463 -0
  805. package/dist/tools/runtime/SetupRuntimeControlTools.js.map +1 -0
  806. package/dist/tools/schedule/CreateScheduleTool/CreateScheduleTool.d.ts +28 -28
  807. package/dist/tools/schedule/UpdateScheduleTool/UpdateScheduleTool.d.ts +32 -32
  808. package/dist/tools/system/GitDiffTool/GitDiffTool.d.ts.map +1 -1
  809. package/dist/tools/system/GitDiffTool/GitDiffTool.js +1 -0
  810. package/dist/tools/system/GitDiffTool/GitDiffTool.js.map +1 -1
  811. package/dist/tools/system/GitLogTool/GitLogTool.d.ts.map +1 -1
  812. package/dist/tools/system/GitLogTool/GitLogTool.js +1 -0
  813. package/dist/tools/system/GitLogTool/GitLogTool.js.map +1 -1
  814. package/dist/tools/system/ShellTool/ShellTool.d.ts.map +1 -1
  815. package/dist/tools/system/ShellTool/ShellTool.js +1 -0
  816. package/dist/tools/system/ShellTool/ShellTool.js.map +1 -1
  817. package/dist/tools/system/TestRunnerTool/TestRunnerTool.d.ts.map +1 -1
  818. package/dist/tools/system/TestRunnerTool/TestRunnerTool.js +1 -0
  819. package/dist/tools/system/TestRunnerTool/TestRunnerTool.js.map +1 -1
  820. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.d.ts.map +1 -1
  821. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.js +1 -0
  822. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.js.map +1 -1
  823. package/dist/tools/types.d.ts +62 -2
  824. package/dist/tools/types.d.ts.map +1 -1
  825. package/dist/tools/types.js +25 -0
  826. package/dist/tools/types.js.map +1 -1
  827. package/package.json +1 -1
  828. package/dist/interface/tui/approval-overlay.d.ts +0 -8
  829. package/dist/interface/tui/approval-overlay.d.ts.map +0 -1
  830. package/dist/interface/tui/approval-overlay.js +0 -21
  831. package/dist/interface/tui/approval-overlay.js.map +0 -1
@@ -3,19 +3,25 @@
3
3
  // Central coordinator for 1-shot chat execution (Tier 1).
4
4
  // Bypasses TaskLifecycle — calls adapter.execute() directly.
5
5
  import { getPulseedDirPath } from "../../base/utils/paths.js";
6
- import { getSelfIdentityResponseForBaseDir } from "../../base/config/identity-loader.js";
7
6
  import { ChatHistory } from "./chat-history.js";
8
7
  import { ChatSessionCatalog, ChatSessionSelectorError, } from "./chat-session-store.js";
9
8
  import { buildChatContext, resolveGitRoot } from "../../platform/observation/context-provider.js";
10
9
  import { buildChatAgentLoopSystemPrompt, buildStaticSystemPrompt, createChatGroundingGateway } from "./grounding.js";
11
- import { recognizeRuntimeControlIntent } from "../../runtime/control/index.js";
10
+ import { classifyRuntimeControlIntent } from "../../runtime/control/index.js";
11
+ import { classifyConfirmationDecision } from "../../runtime/confirmation-decision.js";
12
12
  import { createIngressRouter, } from "./ingress-router.js";
13
13
  import { classifyInterruptRedirect, collectGitDiffArtifact, previewActivityText } from "./chat-runner-support.js";
14
14
  import { COMMAND_HELP, ChatRunnerCommandHandler, } from "./chat-runner-commands.js";
15
15
  import { ChatRunnerEventBridge } from "./chat-runner-event-bridge.js";
16
+ import { intakeSetupSecrets } from "./setup-secret-intake.js";
17
+ import { isSetupWriteConfirmCommand, SETUP_WRITE_CONFIRM_COMMAND, } from "./setup-dialogue.js";
18
+ import { detectTurnLanguageHint, sameLanguageResponseInstruction, UNKNOWN_TURN_LANGUAGE_HINT, } from "./turn-language.js";
19
+ import { confirmTelegramGatewayConfigWrite } from "./setup-config-write.js";
16
20
  import { buildRuntimeControlContextFromIngress, buildStandaloneIngressMessageFromContext, formatRoute, getRouteCapabilities, loadedSessionToChatSession, resolveChatResumeSelector, } from "./chat-runner-runtime.js";
17
- import { executeAdapterRoute, executeAssistRoute, executeClarifyRoute, executeConfigureRoute, executeAgentLoopRoute, executeRuntimeControlRoute, executeToolLoopRoute, resolveSessionExecutionPolicy, } from "./chat-runner-routes.js";
21
+ import { executeAdapterRoute, executeAssistRoute, executeClarifyRoute, executeConfigureRoute, executeRunSpecDraftRoute, executeAgentLoopRoute, formatBlockedRuntimeControlRoute, executeRuntimeControlRoute, executeToolLoopRoute, resolveSessionExecutionPolicy, } from "./chat-runner-routes.js";
18
22
  import { classifyFreeformRouteIntent } from "./freeform-route-classifier.js";
23
+ import { deriveRunSpecFromText } from "../../runtime/run-spec/index.js";
24
+ import { createRunSpecStore, formatRunSpecSetupProposal, arbitrateRunSpecPendingDialogue, handleRunSpecConfirmationInput, RunSpecHandoffService, validateRunSpecStartSafety, } from "../../runtime/run-spec/index.js";
19
25
  const DEFAULT_TIMEOUT_MS = 120_000;
20
26
  function normalizePinnedReplyTarget(replyTarget) {
21
27
  if (!replyTarget)
@@ -34,19 +40,40 @@ function normalizePinnedReplyTarget(replyTarget) {
34
40
  };
35
41
  }
36
42
  const standaloneIngressRouter = createIngressRouter();
37
- function resolveSelfIdentityResponse(input, baseDir) {
38
- const normalized = input.trim().toLowerCase().replace(/\s+/g, "");
39
- if (!normalized)
40
- return null;
41
- const isEnglishIdentityQuestion = /^(whoareyou|whatisyourname|what'syourname)[?]?$/.test(normalized);
42
- const isIdentityQuestion = [
43
- /^(あなた|君|きみ|お前|おまえ)(は|って)?(誰|だれ|何者|なにもの)(ですか|なの|です)?[??]?$/,
44
- /^(あなた|君|きみ|お前|おまえ)の名前(は|って)?(何|なに)(ですか|なの|です)?[??]?$/,
45
- /^名前(は|って)?(何|なに)(ですか|なの|です)?[??]?$/,
46
- ].some((pattern) => pattern.test(normalized));
47
- if (!isIdentityQuestion && !isEnglishIdentityQuestion)
48
- return null;
49
- return getSelfIdentityResponseForBaseDir(baseDir, isEnglishIdentityQuestion ? "en" : "ja");
43
+ function formatPendingSetupConfirmationSubject(publicState) {
44
+ const lines = [
45
+ `Setup dialogue: ${publicState.selectedChannel}`,
46
+ `State: ${publicState.state}`,
47
+ `Action: ${publicState.action?.kind ?? "unknown"}`,
48
+ `Command fallback: ${publicState.action?.command ?? SETUP_WRITE_CONFIRM_COMMAND}`,
49
+ publicState.replacesExistingSecret
50
+ ? "Confirming will replace an existing configured Telegram bot token."
51
+ : "Confirming will write a Telegram gateway config from a redacted chat-supplied token.",
52
+ "Approval is still required before writing config.",
53
+ ];
54
+ return lines.join("\n");
55
+ }
56
+ function formatSetupConfirmationCancelled(languageHint) {
57
+ if (languageHint.language === "ja") {
58
+ return "Telegram setup の config write はキャンセルしました。token は書き込んでいません。";
59
+ }
60
+ return "Telegram setup config write was cancelled. No token was written.";
61
+ }
62
+ function formatTelegramSetupRefreshResult(result, languageHint) {
63
+ if (result.success) {
64
+ const suffix = result.operationId ? ` (${result.operationId})` : "";
65
+ return languageHint.language === "ja"
66
+ ? `PulSeed は更新済み Telegram gateway config を反映するため、internal gateway refresh を要求しました${suffix}: ${result.message}`
67
+ : `PulSeed requested an internal gateway refresh for the updated Telegram config${suffix}: ${result.message}`;
68
+ }
69
+ if (result.unavailable) {
70
+ return languageHint.language === "ja"
71
+ ? `PulSeed は internal gateway refresh を試みましたが、この chat surface では runtime control service が利用できません: ${result.message}`
72
+ : `PulSeed attempted an internal gateway refresh, but runtime control is unavailable in this chat surface: ${result.message}`;
73
+ }
74
+ return languageHint.language === "ja"
75
+ ? `PulSeed は internal gateway refresh を試みましたが失敗しました: ${result.message}`
76
+ : `PulSeed attempted an internal gateway refresh, but it failed: ${result.message}`;
50
77
  }
51
78
  export class ChatRunner {
52
79
  deps;
@@ -66,6 +93,9 @@ export class ChatRunner {
66
93
  runtimeControlContext = null;
67
94
  sessionExecutionPolicy = null;
68
95
  lastSelectedRoute = null;
96
+ setupSecretIntake = null;
97
+ turnLanguageHint = UNKNOWN_TURN_LANGUAGE_HINT;
98
+ pendingSetupDialogue = null;
69
99
  constructor(deps) {
70
100
  this.deps = deps;
71
101
  this.groundingGateway = createChatGroundingGateway({
@@ -207,14 +237,28 @@ export class ChatRunner {
207
237
  const activeTurn = this.eventBridge.beginActiveTurn(eventContext, resolvedCwd);
208
238
  const resumeCommand = this.commandHandler.parseResumeCommand(input);
209
239
  const resumeOnly = resumeCommand !== null;
240
+ const setupSecretIntake = intakeSetupSecrets(input);
241
+ this.setupSecretIntake = setupSecretIntake;
242
+ const safeInput = setupSecretIntake.redactedText;
243
+ this.turnLanguageHint = detectTurnLanguageHint(safeInput);
244
+ eventContext.languageHint = this.turnLanguageHint;
245
+ const persistedSecretIntake = setupSecretIntake.suppliedSecrets.map(({ value: _value, ...metadata }) => metadata);
210
246
  const runtimeControlContext = options.runtimeControlContext ?? this.runtimeControlContext;
211
247
  const executionGoalId = options.goalId ?? this.deps.goalId;
212
- const commandResult = resumeOnly ? null : await this.commandHandler.handleCommand(input, resolvedCwd);
248
+ const pendingTelegramSetupResult = await this.handlePendingSetupConfirmation(safeInput, runtimeControlContext);
249
+ if (pendingTelegramSetupResult !== null) {
250
+ return this.finalizeNonPersistentResult(pendingTelegramSetupResult, eventContext);
251
+ }
252
+ const pendingRunSpecConfirmationResult = await this.handlePendingRunSpecConfirmation(safeInput);
253
+ if (pendingRunSpecConfirmationResult !== null) {
254
+ return this.finalizeNonPersistentResult(pendingRunSpecConfirmationResult, eventContext);
255
+ }
256
+ const commandResult = resumeOnly ? null : await this.commandHandler.handleCommand(safeInput, resolvedCwd);
213
257
  if (commandResult !== null) {
214
258
  return this.finalizeNonPersistentResult(commandResult, eventContext);
215
259
  }
216
260
  if (this.pendingTend !== null && !resumeOnly) {
217
- const confirmationResult = await this.commandHandler.handleTendConfirmation(input.trim(), Date.now());
261
+ const confirmationResult = await this.commandHandler.handleTendConfirmation(safeInput.trim(), Date.now());
218
262
  return this.finalizeNonPersistentResult(confirmationResult, eventContext);
219
263
  }
220
264
  if (resumeOnly && resumeCommand.selector) {
@@ -259,11 +303,11 @@ export class ChatRunner {
259
303
  }
260
304
  this.eventBridge.emitEvent({
261
305
  type: "lifecycle_start",
262
- input,
306
+ input: safeInput,
263
307
  ...this.eventBridge.eventBase(eventContext),
264
308
  });
265
309
  if (!resumeOnly) {
266
- await history.appendUserMessage(input);
310
+ await history.appendUserMessage(safeInput, { setupSecretIntake: persistedSecretIntake });
267
311
  }
268
312
  if (this.cachedStaticSystemPrompt === null) {
269
313
  try {
@@ -285,30 +329,14 @@ export class ChatRunner {
285
329
  historySections.push(`Previous conversation:\n${lines}`);
286
330
  }
287
331
  const historyBlock = historySections.length > 0 ? `${historySections.join("\n\n")}\n\nCurrent message:\n` : "";
332
+ const start = Date.now();
333
+ const assistantBuffer = { text: "" };
288
334
  const selectedRoute = resumeOnly
289
335
  ? null
290
- : (options.selectedRoute ?? await this.resolveRouteFromInput(input, runtimeControlContext));
336
+ : (options.selectedRoute ?? await this.resolveRouteFromInput(safeInput, runtimeControlContext, resolvedCwd));
291
337
  this.lastSelectedRoute = selectedRoute;
292
- this.eventBridge.emitIntent(input, selectedRoute, eventContext);
293
- const start = Date.now();
294
- const assistantBuffer = { text: "" };
295
- const identityResponse = resumeOnly ? null : resolveSelfIdentityResponse(input, this.providerConfigBaseDir());
296
- if (identityResponse !== null) {
297
- const elapsed_ms = Date.now() - start;
298
- await history.appendAssistantMessage(identityResponse);
299
- this.eventBridge.emitActivity("lifecycle", "Finalizing response...", eventContext, "lifecycle:finalizing");
300
- this.eventBridge.emitEvent({
301
- type: "assistant_final",
302
- text: identityResponse,
303
- persisted: true,
304
- ...this.eventBridge.eventBase(eventContext),
305
- });
306
- this.eventBridge.emitLifecycleEndEvent("completed", elapsed_ms, eventContext, true);
307
- return {
308
- success: true,
309
- output: identityResponse,
310
- elapsed_ms,
311
- };
338
+ if (selectedRoute?.kind !== "configure") {
339
+ this.eventBridge.emitIntent(safeInput, selectedRoute, eventContext);
312
340
  }
313
341
  if (selectedRoute?.kind === "runtime_control") {
314
342
  this.eventBridge.emitCheckpoint("Runtime control selected", `${selectedRoute.intent.kind} request recognized.`, eventContext, "route");
@@ -337,6 +365,28 @@ export class ChatRunner {
337
365
  }
338
366
  return runtimeControlResult;
339
367
  }
368
+ if (selectedRoute?.kind === "runtime_control_blocked") {
369
+ const output = formatBlockedRuntimeControlRoute(selectedRoute);
370
+ this.eventBridge.pushAssistantDelta(output, assistantBuffer, eventContext);
371
+ await history.appendAssistantMessage(output);
372
+ this.eventBridge.emitEvent({
373
+ type: "assistant_final",
374
+ text: output,
375
+ persisted: true,
376
+ ...this.eventBridge.eventBase(eventContext),
377
+ });
378
+ const elapsed_ms = Date.now() - start;
379
+ this.eventBridge.emitLifecycleEndEvent("error", elapsed_ms, eventContext, true);
380
+ return {
381
+ success: false,
382
+ output,
383
+ elapsed_ms,
384
+ };
385
+ }
386
+ if (selectedRoute?.kind === "run_spec_draft") {
387
+ const result = await executeRunSpecDraftRoute(this.routeHost(), selectedRoute, eventContext, assistantBuffer, history, start);
388
+ return result;
389
+ }
340
390
  if (selectedRoute?.kind === "configure") {
341
391
  const result = await executeConfigureRoute(this.routeHost(), selectedRoute, eventContext, assistantBuffer, history, start);
342
392
  return result;
@@ -347,7 +397,7 @@ export class ChatRunner {
347
397
  }
348
398
  if (selectedRoute?.kind === "assist") {
349
399
  const result = await executeAssistRoute(this.routeHost(), {
350
- input,
400
+ input: safeInput,
351
401
  priorTurns,
352
402
  eventContext,
353
403
  assistantBuffer,
@@ -358,7 +408,7 @@ export class ChatRunner {
358
408
  }
359
409
  const usesNativeAgentLoop = resumeOnly || selectedRoute?.kind === "agent_loop";
360
410
  const groundingWorkspaceContext = !resumeOnly && usesNativeAgentLoop
361
- ? await buildChatContext(input, executionCwd)
411
+ ? await buildChatContext(safeInput, executionCwd)
362
412
  : undefined;
363
413
  let systemPrompt = this.cachedStaticSystemPrompt ?? "";
364
414
  if (!resumeOnly) {
@@ -370,7 +420,7 @@ export class ChatRunner {
370
420
  pluginLoader: this.deps.pluginLoader,
371
421
  workspaceRoot: executionCwd,
372
422
  goalId: executionGoalId,
373
- userMessage: input,
423
+ userMessage: safeInput,
374
424
  trustProjectInstructions: this.sessionExecutionPolicy?.trustProjectInstructions ?? true,
375
425
  workspaceContext: groundingWorkspaceContext,
376
426
  });
@@ -381,8 +431,8 @@ export class ChatRunner {
381
431
  purpose: "general_turn",
382
432
  workspaceRoot: executionCwd,
383
433
  goalId: executionGoalId,
384
- userMessage: input,
385
- query: input,
434
+ userMessage: safeInput,
435
+ query: safeInput,
386
436
  trustProjectInstructions: this.sessionExecutionPolicy?.trustProjectInstructions ?? true,
387
437
  });
388
438
  systemPrompt = String(groundingBundle.render("prompt"));
@@ -397,13 +447,14 @@ export class ChatRunner {
397
447
  }
398
448
  const agentLoopSystemPrompt = [
399
449
  systemPrompt,
450
+ sameLanguageResponseInstruction(this.turnLanguageHint),
400
451
  compactionSummary ? `## Compacted Chat Summary\n${compactionSummary}` : "",
401
452
  ]
402
453
  .filter((section) => section && section.trim().length > 0)
403
454
  .join("\n\n")
404
455
  .trim();
405
- const context = resumeOnly || usesNativeAgentLoop ? "" : await buildChatContext(input, gitRoot);
406
- const basePrompt = resumeOnly ? "" : (context ? `${context}\n\n${input}` : input);
456
+ const context = resumeOnly || usesNativeAgentLoop ? "" : await buildChatContext(safeInput, gitRoot);
457
+ const basePrompt = resumeOnly ? "" : (context ? `${context}\n\n${safeInput}` : safeInput);
407
458
  const prompt = historyBlock ? `${historyBlock}${basePrompt}` : basePrompt;
408
459
  if (resumeOnly && !this.deps.chatAgentLoopRunner) {
409
460
  const elapsed_ms = Date.now() - start;
@@ -426,6 +477,7 @@ export class ChatRunner {
426
477
  eventContext,
427
478
  history,
428
479
  gitRoot,
480
+ runtimeControlContext,
429
481
  activeAbortSignal: activeTurn.abortController.signal,
430
482
  start,
431
483
  });
@@ -439,6 +491,7 @@ export class ChatRunner {
439
491
  executionGoalId,
440
492
  history,
441
493
  gitRoot,
494
+ runtimeControlContext,
442
495
  start,
443
496
  });
444
497
  }
@@ -476,24 +529,73 @@ export class ChatRunner {
476
529
  }
477
530
  async resolveRouteFromIngress(ingress) {
478
531
  const capabilities = getRouteCapabilities(this.deps);
479
- const runtimeControlAllowed = ingress.runtimeControl.allowed
480
- && ingress.runtimeControl.approvalMode !== "disallowed"
481
- && (capabilities.hasRuntimeControlService
482
- || (!capabilities.hasAgentLoop && !capabilities.hasToolLoop));
483
- const runtimeControlIntent = runtimeControlAllowed
484
- ? await recognizeRuntimeControlIntent(ingress.text, this.deps.llmClient)
485
- : null;
486
- const freeformRouteIntent = runtimeControlIntent === null && capabilities.hasAgentLoop
532
+ const hasSetupSecret = (this.setupSecretIntake?.suppliedSecrets.length ?? 0) > 0;
533
+ const shouldPreferFreeformBeforeDeniedRuntimeControl = !hasSetupSecret
534
+ && !capabilities.hasAgentLoop
535
+ && ingress.metadata["runtime_control_denied"] === true
536
+ && ingress.metadata["runtime_control_approved"] !== true
537
+ && ingress.metadata["runtime_control_explicit"] !== true;
538
+ const shouldClassifyRuntimeControlForSafety = !hasSetupSecret
539
+ && capabilities.hasAgentLoop
540
+ && (ingress.metadata["runtime_control_approved"] === true
541
+ || ingress.metadata["runtime_control_denied"] === true
542
+ || ingress.metadata["runtime_control_explicit"] === true);
543
+ const shouldClassifyRuntimeControl = shouldClassifyRuntimeControlForSafety
544
+ || (!hasSetupSecret && !capabilities.hasAgentLoop && ((capabilities.hasRuntimeControlService && ingress.runtimeControl.approvalMode !== "disallowed")
545
+ || ingress.metadata["runtime_control_approved"] === true
546
+ || ingress.metadata["runtime_control_denied"] === true
547
+ || ingress.metadata["runtime_control_explicit"] === true));
548
+ let freeformRouteIntent = shouldPreferFreeformBeforeDeniedRuntimeControl
487
549
  ? await classifyFreeformRouteIntent(ingress.text, this.deps.llmClient)
488
550
  : null;
551
+ const runtimeControlClassification = freeformRouteIntent == null && shouldClassifyRuntimeControl
552
+ ? await classifyRuntimeControlIntent(ingress.text, this.deps.llmClient)
553
+ : null;
554
+ const runtimeControlIntent = runtimeControlClassification?.status === "intent"
555
+ ? runtimeControlClassification.intent
556
+ : null;
557
+ if (!hasSetupSecret && !capabilities.hasAgentLoop && freeformRouteIntent == null && runtimeControlIntent === null) {
558
+ freeformRouteIntent = await classifyFreeformRouteIntent(ingress.text, this.deps.llmClient);
559
+ }
560
+ const shouldDeriveRunSpecDraft = !capabilities.hasAgentLoop
561
+ && !hasSetupSecret
562
+ && runtimeControlIntent === null
563
+ && freeformRouteIntent != null
564
+ && (freeformRouteIntent.kind === "run_spec"
565
+ || freeformRouteIntent.kind === "configure"
566
+ || freeformRouteIntent.kind === "clarify")
567
+ && freeformRouteIntent.confidence >= 0.7;
568
+ const runSpecDraft = shouldDeriveRunSpecDraft
569
+ ? await deriveRunSpecFromText(ingress.text, {
570
+ cwd: ingress.cwd ?? this.sessionCwd ?? undefined,
571
+ conversationId: ingress.conversation_id ?? null,
572
+ channel: ingress.channel,
573
+ sessionId: this.history?.getSessionId() ?? ingress.conversation_id ?? null,
574
+ replyTarget: ingress.replyTarget,
575
+ originMetadata: {
576
+ ingress_id: ingress.ingress_id ?? null,
577
+ platform: ingress.platform ?? null,
578
+ message_id: ingress.message_id ?? null,
579
+ deliveryMode: ingress.deliveryMode ?? null,
580
+ metadata: ingress.metadata,
581
+ },
582
+ llmClient: this.deps.llmClient,
583
+ })
584
+ : null;
489
585
  return standaloneIngressRouter.selectRoute(ingress, {
490
586
  ...capabilities,
491
587
  runtimeControlIntent,
588
+ runtimeControlUnclassified: shouldClassifyRuntimeControlForSafety
589
+ && runtimeControlClassification?.status === "unclassified"
590
+ && ingress.metadata["runtime_control_explicit"] === true,
492
591
  freeformRouteIntent,
592
+ setupSecretIntake: this.setupSecretIntake,
593
+ runSpecDraft,
493
594
  });
494
595
  }
495
- async resolveRouteFromInput(input, runtimeControlContext) {
496
- return this.resolveRouteFromIngress(buildStandaloneIngressMessageFromContext(input, runtimeControlContext, this.deps));
596
+ async resolveRouteFromInput(input, runtimeControlContext, cwd) {
597
+ const ingress = buildStandaloneIngressMessageFromContext(input, runtimeControlContext, this.deps);
598
+ return this.resolveRouteFromIngress(cwd ? { ...ingress, cwd } : ingress);
497
599
  }
498
600
  loadedSessionToChatSession(session) {
499
601
  return loadedSessionToChatSession(session);
@@ -506,6 +608,20 @@ export class ChatRunner {
506
608
  getConversationSessionId: () => this.history?.getSessionId() ?? null,
507
609
  getSessionCwd: () => this.sessionCwd,
508
610
  getNativeAgentLoopStatePath: () => this.nativeAgentLoopStatePath,
611
+ getProviderConfigBaseDir: () => this.providerConfigBaseDir(),
612
+ getSetupSecretIntake: () => this.setupSecretIntake,
613
+ getTurnLanguageHint: () => this.turnLanguageHint,
614
+ setPendingSetupDialogue: async (dialogue) => {
615
+ this.pendingSetupDialogue = dialogue;
616
+ this.history?.setSetupDialogue(dialogue?.publicState ?? null);
617
+ await this.history?.persist();
618
+ },
619
+ getPendingSetupDialogue: () => this.pendingSetupDialogue,
620
+ setPendingRunSpecConfirmation: async (confirmation) => {
621
+ this.history?.setRunSpecConfirmation(confirmation);
622
+ await this.history?.persist();
623
+ },
624
+ getPendingRunSpecConfirmation: () => this.history?.getRunSpecConfirmation() ?? null,
509
625
  getSessionExecutionPolicy: () => this.getSessionExecutionPolicy(),
510
626
  setSessionExecutionPolicy: (policy) => { this.sessionExecutionPolicy = policy; },
511
627
  };
@@ -514,6 +630,235 @@ export class ChatRunner {
514
630
  const stateManager = this.deps.stateManager;
515
631
  return typeof stateManager.getBaseDir === "function" ? stateManager.getBaseDir() : getPulseedDirPath();
516
632
  }
633
+ async handlePendingRunSpecConfirmation(input) {
634
+ const pending = this.history?.getRunSpecConfirmation() ?? null;
635
+ if (!pending || pending.state !== "pending")
636
+ return null;
637
+ const start = Date.now();
638
+ const result = await handleRunSpecConfirmationInput(pending.spec, input, {
639
+ llmClient: this.deps.llmClient,
640
+ });
641
+ const store = createRunSpecStore(this.deps.stateManager);
642
+ await store.save(result.spec);
643
+ if (result.kind === "confirmed") {
644
+ const safetyBlock = validateRunSpecStartSafety(result.spec);
645
+ if (safetyBlock) {
646
+ const pendingSpec = {
647
+ ...result.spec,
648
+ status: "draft",
649
+ };
650
+ await store.save(pendingSpec);
651
+ this.history?.setRunSpecConfirmation({
652
+ ...pending,
653
+ state: "pending",
654
+ spec: pendingSpec,
655
+ updatedAt: pendingSpec.updated_at,
656
+ });
657
+ await this.history?.persist();
658
+ return {
659
+ success: false,
660
+ output: safetyBlock,
661
+ elapsed_ms: Date.now() - start,
662
+ };
663
+ }
664
+ const started = await this.startConfirmedRunSpec(result.spec);
665
+ this.history?.setRunSpecConfirmation({
666
+ ...pending,
667
+ state: "confirmed",
668
+ spec: result.spec,
669
+ updatedAt: result.spec.updated_at,
670
+ });
671
+ await this.history?.persist();
672
+ return { ...started, elapsed_ms: Date.now() - start };
673
+ }
674
+ if (result.kind === "cancelled") {
675
+ this.history?.setRunSpecConfirmation(null);
676
+ await this.history?.persist();
677
+ return {
678
+ success: false,
679
+ output: `${result.message}\nNo background run was started.`,
680
+ elapsed_ms: Date.now() - start,
681
+ };
682
+ }
683
+ if (result.kind === "revised") {
684
+ const proposal = formatRunSpecSetupProposal(result.spec);
685
+ this.history?.setRunSpecConfirmation({
686
+ ...pending,
687
+ spec: result.spec,
688
+ prompt: proposal,
689
+ updatedAt: result.spec.updated_at,
690
+ });
691
+ await this.history?.persist();
692
+ return {
693
+ success: true,
694
+ output: [
695
+ proposal,
696
+ "",
697
+ "RunSpec updated. Reply with approval to confirm, cancel to discard it, or provide another update.",
698
+ ].join("\n"),
699
+ elapsed_ms: Date.now() - start,
700
+ };
701
+ }
702
+ if (result.kind === "blocked") {
703
+ this.history?.setRunSpecConfirmation({
704
+ ...pending,
705
+ spec: result.spec,
706
+ updatedAt: result.spec.updated_at,
707
+ });
708
+ await this.history?.persist();
709
+ return {
710
+ success: false,
711
+ output: result.message,
712
+ elapsed_ms: Date.now() - start,
713
+ };
714
+ }
715
+ const dialogue = await arbitrateRunSpecPendingDialogue(pending.spec, input, {
716
+ llmClient: this.deps.llmClient,
717
+ });
718
+ if (dialogue.outcome === "new_intent") {
719
+ return null;
720
+ }
721
+ return {
722
+ success: false,
723
+ output: result.message,
724
+ elapsed_ms: Date.now() - start,
725
+ };
726
+ }
727
+ async startConfirmedRunSpec(spec) {
728
+ const start = Date.now();
729
+ const result = await new RunSpecHandoffService({
730
+ stateManager: this.deps.stateManager,
731
+ llmClient: this.deps.llmClient,
732
+ daemonClient: this.deps.daemonClient,
733
+ conversationSessionId: this.history?.getSessionId() ?? spec.origin.session_id,
734
+ sessionCwd: this.sessionCwd,
735
+ replyTarget: (this.runtimeControlContext?.replyTarget
736
+ ?? this.deps.runtimeReplyTarget
737
+ ?? spec.origin.reply_target
738
+ ?? null),
739
+ }).startConfirmed(spec);
740
+ return {
741
+ success: result.success,
742
+ output: result.message,
743
+ elapsed_ms: Date.now() - start,
744
+ };
745
+ }
746
+ async handlePendingSetupConfirmation(input, runtimeControlContext) {
747
+ const commandConfirmed = isSetupWriteConfirmCommand(input);
748
+ const pendingAtInput = this.pendingSetupDialogue;
749
+ if (!commandConfirmed) {
750
+ if (!pendingAtInput || pendingAtInput.publicState.state !== "confirm_write")
751
+ return null;
752
+ const decision = await classifyConfirmationDecision(input, {
753
+ llmClient: this.deps.llmClient,
754
+ kind: "approval",
755
+ subject: formatPendingSetupConfirmationSubject(pendingAtInput.publicState),
756
+ allowedDecisions: ["approve", "cancel", "unknown"],
757
+ });
758
+ if (decision.decision === "cancel") {
759
+ this.pendingSetupDialogue = null;
760
+ this.history?.setSetupDialogue(null);
761
+ await this.history?.persist();
762
+ return {
763
+ success: false,
764
+ output: formatSetupConfirmationCancelled(this.turnLanguageHint),
765
+ elapsed_ms: 0,
766
+ };
767
+ }
768
+ if (decision.decision !== "approve")
769
+ return null;
770
+ }
771
+ const pending = this.pendingSetupDialogue;
772
+ if (!pending) {
773
+ return {
774
+ success: false,
775
+ output: "No pending setup write is available. Paste the secret again to start a protected setup turn.",
776
+ elapsed_ms: 0,
777
+ };
778
+ }
779
+ if (pending.publicState.selectedChannel !== "telegram" || pending.publicState.action?.kind !== "write_gateway_config") {
780
+ return {
781
+ success: false,
782
+ output: `The pending setup dialogue is for ${pending.publicState.selectedChannel}, so it cannot be confirmed as a Telegram config write. Start a new Telegram setup turn with a Telegram bot token.`,
783
+ elapsed_ms: 0,
784
+ };
785
+ }
786
+ if (!pending.secretValue) {
787
+ return {
788
+ success: false,
789
+ output: "The pending setup dialogue no longer has a transient secret value. Paste the token again so PulSeed can keep it protected through a fresh confirmation.",
790
+ elapsed_ms: 0,
791
+ };
792
+ }
793
+ const approvalFn = runtimeControlContext
794
+ ? runtimeControlContext.approvalFn
795
+ : this.deps.runtimeControlApprovalFn ?? this.deps.approvalFn;
796
+ if (!approvalFn) {
797
+ return {
798
+ success: false,
799
+ output: "Telegram setup requires an approval-capable chat surface before writing config. Use `pulseed telegram setup` instead.",
800
+ elapsed_ms: 0,
801
+ };
802
+ }
803
+ const writeResult = await confirmTelegramGatewayConfigWrite({
804
+ pending,
805
+ baseDir: this.providerConfigBaseDir(),
806
+ approvalFn,
807
+ runtimeControlService: this.deps.runtimeControlService,
808
+ actor: runtimeControlContext?.actor,
809
+ replyTarget: runtimeControlContext?.replyTarget,
810
+ });
811
+ if (!writeResult.success) {
812
+ this.pendingSetupDialogue = null;
813
+ this.history?.setSetupDialogue(null);
814
+ await this.history?.persist();
815
+ return {
816
+ success: false,
817
+ output: writeResult.message,
818
+ elapsed_ms: 0,
819
+ };
820
+ }
821
+ this.pendingSetupDialogue = {
822
+ publicState: {
823
+ ...pending.publicState,
824
+ state: writeResult.refresh.success ? "verify" : "restart_offer",
825
+ updatedAt: new Date().toISOString(),
826
+ action: pending.publicState.action
827
+ ? { ...pending.publicState.action, status: "completed" }
828
+ : pending.publicState.action,
829
+ },
830
+ };
831
+ this.history?.setSetupDialogue(this.pendingSetupDialogue.publicState);
832
+ await this.history?.persist();
833
+ return {
834
+ success: true,
835
+ output: [
836
+ this.turnLanguageHint.language === "ja"
837
+ ? "redacted chat-supplied token から Telegram gateway config を書き込みました。"
838
+ : "Telegram gateway config was written from the redacted chat-supplied token.",
839
+ "",
840
+ formatTelegramSetupRefreshResult(writeResult.refresh, this.turnLanguageHint),
841
+ "",
842
+ this.turnLanguageHint.language === "ja" ? "Next steps:" : "Next steps:",
843
+ ...(writeResult.accessClosedByDefault
844
+ ? [this.turnLanguageHint.language === "ja"
845
+ ? "- allowed Telegram user IDs を設定するか、`pulseed telegram setup` で意図的に `allow_all` を有効にするまで access は closed のままです。"
846
+ : "- Access remains closed until you configure allowed Telegram user IDs or intentionally enable `allow_all` with `pulseed telegram setup`."]
847
+ : []),
848
+ this.turnLanguageHint.language === "ja"
849
+ ? "- home chat が未設定なら Telegram から `/sethome` を送ってください。"
850
+ : "- Send `/sethome` from Telegram if no home chat is configured yet.",
851
+ writeResult.refresh.success
852
+ ? this.turnLanguageHint.language === "ja"
853
+ ? "- Telegram bot にメッセージを送って動作確認してください。"
854
+ : "- Send a message to the Telegram bot to verify delivery."
855
+ : this.turnLanguageHint.language === "ja"
856
+ ? "- 自動反映できませんでした。daemon lifecycle 操作は typed runtime-control が利用可能な chat surface から再実行してください。"
857
+ : "- Automatic refresh was not applied. Retry the lifecycle refresh from a chat surface with typed runtime-control available.",
858
+ ].join("\n"),
859
+ elapsed_ms: 0,
860
+ };
861
+ }
517
862
  finalizeNonPersistentResult(result, eventContext) {
518
863
  if (result.output) {
519
864
  this.eventBridge.emitEvent({