@xopcai/xopc 0.0.179 → 0.0.187

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 (794) hide show
  1. package/README.md +1 -1
  2. package/README.zh-CN.md +1 -1
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/telegram/xopc.extension.json +1 -1
  5. package/dist/gateway/static/root/assets/{activity-store-A5FUMjeV.js → activity-store-WlR2zEvA.js} +1 -1
  6. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-NghNiDWx.js → agent-avatar-dicebear-RedDszrG.js} +1 -1
  7. package/dist/gateway/static/root/assets/agents-Df9mTa-K.js +2 -0
  8. package/dist/gateway/static/root/assets/{api-Bmzslx0Z.js → api-tVOllncq.js} +1 -1
  9. package/dist/gateway/static/root/assets/{app-management-settings-panel-DDWS_BBJ.js → app-management-settings-panel-C9hKBzaF.js} +1 -1
  10. package/dist/gateway/static/root/assets/{appearance-settings-C6znvVtX.js → appearance-settings-5cQvq7hd.js} +1 -1
  11. package/dist/gateway/static/root/assets/apps-page-Bd3tN-k2.js +1 -0
  12. package/dist/gateway/static/root/assets/{archive-plugin-fvTZhPUr.js → archive-plugin-Ct-shK4n.js} +1 -1
  13. package/dist/gateway/static/root/assets/{attachment-load-BFEgvg-Q.js → attachment-load-CpPj3m-q.js} +1 -1
  14. package/dist/gateway/static/root/assets/automations-page-w6K9GZQ7.js +6 -0
  15. package/dist/gateway/static/root/assets/{binary-plugins-CuI2bOc7.js → binary-plugins-BpSXZBle.js} +1 -1
  16. package/dist/gateway/static/root/assets/{block-editor-Z_k8W0al.js → block-editor-B8hR2tXc.js} +46 -46
  17. package/dist/gateway/static/root/assets/browser-settings-page-jb5Hf-hm.js +8 -0
  18. package/dist/gateway/static/root/assets/browser-workflow-inputs-D_LAXUrh.js +1 -0
  19. package/dist/gateway/static/root/assets/{browser-workflows-page-Cq5qXStp.js → browser-workflows-page-CPAs7-6s.js} +2 -2
  20. package/dist/gateway/static/root/assets/capabilities-settings-panel-BjUe4raq.js +7 -0
  21. package/dist/gateway/static/root/assets/capability-presets-api-CKklVY2p.js +1 -0
  22. package/dist/gateway/static/root/assets/capability-presets-settings-panel-DiWIMYRr.js +1 -0
  23. package/dist/gateway/static/root/assets/{channel-recipient-api-TwMak0SE.js → channel-recipient-api-WWN-nbFL.js} +1 -1
  24. package/dist/gateway/static/root/assets/channels-settings-D8IkjMuX.js +1 -0
  25. package/dist/gateway/static/root/assets/channels-status-swr-CySs1GQX.js +1 -0
  26. package/dist/gateway/static/root/assets/{connector-logo-DBKotvNr.js → connector-logo-CdNkVFdB.js} +1 -1
  27. package/dist/gateway/static/root/assets/connectors-page-BT2ahw52.js +2 -0
  28. package/dist/gateway/static/root/assets/desktop-pet-Bm_IEAf3.js +1 -0
  29. package/dist/gateway/static/root/assets/{desktop-pet-settings-CyIg2jJp.js → desktop-pet-settings-C0Ve04-G.js} +1 -1
  30. package/dist/gateway/static/root/assets/{directory-picker-path-field-B6fc_7SL.js → directory-picker-path-field-B2cvhvAI.js} +1 -1
  31. package/dist/gateway/static/root/assets/{extension-debug-page-AbRNi2ON.js → extension-debug-page-DNashgGu.js} +1 -1
  32. package/dist/gateway/static/root/assets/{extension-page-ClYfiLXC.js → extension-page-Bvo-5htX.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-settings-page-BGVP2hw1.js → extension-settings-page-BBESdISV.js} +1 -1
  34. package/dist/gateway/static/root/assets/{gateway-config-api-B7GqtklK.js → gateway-config-api-ClQvokMo.js} +1 -1
  35. package/dist/gateway/static/root/assets/{gateway-settings-BMeK8igT.js → gateway-settings-CIRs2QVy.js} +1 -1
  36. package/dist/gateway/static/root/assets/{gateway-startup-retry-CKKL96r_.js → gateway-startup-retry-CntXJF6W.js} +1 -1
  37. package/dist/gateway/static/root/assets/heartbeat-settings-CWKcZuvc.js +1 -0
  38. package/dist/gateway/static/root/assets/home-page-C59f8UJw.js +3 -0
  39. package/dist/gateway/static/root/assets/{image-generation-api-BY3VQ5Mv.js → image-generation-api-DjSAQwGy.js} +1 -1
  40. package/dist/gateway/static/root/assets/index-D-YfWVyS.css +1 -0
  41. package/dist/gateway/static/root/assets/index-vi5KlR5_.js +222 -0
  42. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CELtDFz3.js → keyboard-shortcuts-settings-ahKHpjoW.js} +1 -1
  43. package/dist/gateway/static/root/assets/local-app-workbench-page-DRB4UQBE.js +2 -0
  44. package/dist/gateway/static/root/assets/{local-apps-page-CF5uUd1n.js → local-apps-page-B6GKdgza.js} +1 -1
  45. package/dist/gateway/static/root/assets/{locale-store-DIVc0AQs.js → locale-store-Bff30u5V.js} +1 -1
  46. package/dist/gateway/static/root/assets/logs-page-CNp4XiBN.js +7 -0
  47. package/dist/gateway/static/root/assets/{markdown-split-CN85EdB8.js → markdown-split-BeNMJm_i.js} +1 -1
  48. package/dist/gateway/static/root/assets/{media-plugins-CxYEc-b8.js → media-plugins-Bdzrj_-6.js} +1 -1
  49. package/dist/gateway/static/root/assets/messages-CPxz48hr.js +3 -0
  50. package/dist/gateway/static/root/assets/{notes-page-Goab4781.js → notes-page-MYIi-9S9.js} +1 -1
  51. package/dist/gateway/static/root/assets/notes-workbench-DqSkeDXX.js +4 -0
  52. package/dist/gateway/static/root/assets/{page-tabs-tQNQcAts.js → page-tabs-3t88bbGx.js} +1 -1
  53. package/dist/gateway/static/root/assets/{preview-open-alternatives-BSTlgsDB.js → preview-open-alternatives-Cf_BWbeE.js} +1 -1
  54. package/dist/gateway/static/root/assets/product-delivery-C8JbSj5Y.js +1 -0
  55. package/dist/gateway/static/root/assets/{product-open-page-iQ5gTCip.js → product-open-page-CKq73c98.js} +1 -1
  56. package/dist/gateway/static/root/assets/project-detail-page-BrbHs4Wp.js +1 -0
  57. package/dist/gateway/static/root/assets/projects-page-B80rtkj6.js +1 -0
  58. package/dist/gateway/static/root/assets/remote-access-hub-_Q3GEznb.js +1 -0
  59. package/dist/gateway/static/root/assets/{schema-form-Bbw8l2ri.js → schema-form-NqOm-OG1.js} +1 -1
  60. package/dist/gateway/static/root/assets/sessions-page-55dJOUVg.js +1 -0
  61. package/dist/gateway/static/root/assets/settings-advanced-gate-CSFCZj14.js +1 -0
  62. package/dist/gateway/static/root/assets/{settings-form-section-BqbibcnJ.js → settings-form-section-DYAS8p8z.js} +1 -1
  63. package/dist/gateway/static/root/assets/{settings-loading-skeleton-DNLNCEGT.js → settings-loading-skeleton-DZFhxihA.js} +1 -1
  64. package/dist/gateway/static/root/assets/settings-page-BSIiMLi-.js +1 -0
  65. package/dist/gateway/static/root/assets/{settings-page-layout-Cdb1e2Cz.js → settings-page-layout-DfFfkdED.js} +1 -1
  66. package/dist/gateway/static/root/assets/setup-status-panel-q_yE6-H1.js +1 -0
  67. package/dist/gateway/static/root/assets/{share-preview-page-CkrASny2.js → share-preview-page-CYtrQaZN.js} +1 -1
  68. package/dist/gateway/static/root/assets/shares-settings-gYkRX9Ik.js +1 -0
  69. package/dist/gateway/static/root/assets/skill-reload-api-BoNBMKW6.js +1 -0
  70. package/dist/gateway/static/root/assets/skills-page-GZHKDFSb.js +2 -0
  71. package/dist/gateway/static/root/assets/{skills-page.utils-BG5dGkyA.js → skills-page.utils-BBXirAjc.js} +1 -1
  72. package/dist/gateway/static/root/assets/system-settings-panel-DLf5YvFl.js +1 -0
  73. package/dist/gateway/static/root/assets/task-detail-page-DFGkuYfl.js +1 -0
  74. package/dist/gateway/static/root/assets/{theme-store-DtwI_VLT.js → theme-store-y7e_tvYi.js} +1 -1
  75. package/dist/gateway/static/root/assets/time-picker-5sHEZ5w5.js +1 -0
  76. package/dist/gateway/static/root/assets/{typed-models-lib-DOnpwsrE.js → typed-models-lib-DR12j_dr.js} +1 -1
  77. package/dist/gateway/static/root/assets/use-save-bar-registration-BsvcJgZl.js +1 -0
  78. package/dist/gateway/static/root/assets/user-context-page-q5dr8JFG.js +1 -0
  79. package/dist/gateway/static/root/assets/{voice-api-key-field-DP80jW-W.js → voice-api-key-field-DKADXFWD.js} +1 -1
  80. package/dist/gateway/static/root/assets/work-discovery-overlay-BC1nExf8.js +1 -0
  81. package/dist/gateway/static/root/assets/work-discovery-page-fNvSg40M.js +1 -0
  82. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-BLlVqKdA.js → workflow-run-setup-panel-C8X5W-8k.js} +2 -2
  83. package/dist/gateway/static/root/assets/workflows-page-YJBKmPYK.js +11 -0
  84. package/dist/gateway/static/root/index.html +8 -8
  85. package/dist/package.js +1 -1
  86. package/dist/packages/gateway-contract/src/product-delivery.js +1 -3
  87. package/dist/packages/gateway-contract/src/project-monitoring.js +31 -0
  88. package/dist/packages/gateway-contract/src/task-lifecycle.js +67 -0
  89. package/dist/packages/gateway-contract/src/task-runs.js +80 -0
  90. package/dist/packages/gateway-contract/src/tasks.js +353 -0
  91. package/dist/src/activity/types.d.ts +2 -2
  92. package/dist/src/agent/agent-instance-gateway.d.ts +1 -1
  93. package/dist/src/agent/agent-manager.d.ts +7 -4
  94. package/dist/src/agent/agent-manager.js +38 -23
  95. package/dist/src/agent/child-agent-factory.d.ts +1 -2
  96. package/dist/src/agent/child-agent-factory.js +4 -10
  97. package/dist/src/agent/context/execution-scope.d.ts +2 -2
  98. package/dist/src/agent/context/execution-scope.js +17 -20
  99. package/dist/src/agent/context/project-context.d.ts +6 -2
  100. package/dist/src/agent/context/project-context.js +17 -25
  101. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  102. package/dist/src/agent/embedded/run-for-session.d.ts +2 -0
  103. package/dist/src/agent/embedded/run-for-session.js +3 -1
  104. package/dist/src/agent/embedded/run-turn.js +2 -0
  105. package/dist/src/agent/embedded/session-tool-result-guard.d.ts +2 -0
  106. package/dist/src/agent/embedded/session-tool-result-guard.js +16 -4
  107. package/dist/src/agent/inbound/inbound-loop.js +1 -1
  108. package/dist/src/agent/inbound/turn-dispatcher.d.ts +6 -1
  109. package/dist/src/agent/inbound/turn-dispatcher.js +6 -3
  110. package/dist/src/agent/lifecycle/progress.js +0 -1
  111. package/dist/src/agent/lifecycle/timeout-wrapper.d.ts +2 -0
  112. package/dist/src/agent/lifecycle/timeout-wrapper.js +39 -9
  113. package/dist/src/agent/mcp/bundle-mcp-materialize.js +2 -2
  114. package/dist/src/agent/mcp/bundle-mcp-policy.d.ts +3 -5
  115. package/dist/src/agent/mcp/bundle-mcp-policy.js +8 -5
  116. package/dist/src/agent/mcp/bundle-mcp-runtime.js +6 -1
  117. package/dist/src/agent/mcp/bundle-mcp-types.d.ts +1 -1
  118. package/dist/src/agent/mcp/index.js +2 -2
  119. package/dist/src/agent/mcp/mcp-transport-config.d.ts +2 -0
  120. package/dist/src/agent/mcp/mcp-transport-config.js +10 -3
  121. package/dist/src/agent/mcp/mcp-transport.d.ts +1 -0
  122. package/dist/src/agent/mcp/mcp-transport.js +5 -2
  123. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +5 -6
  124. package/dist/src/agent/memory/builtin-provider.d.ts +1 -5
  125. package/dist/src/agent/memory/builtin-provider.js +75 -229
  126. package/dist/src/agent/memory/compaction.js +1 -1
  127. package/dist/src/agent/memory/context/planner.d.ts +3 -0
  128. package/dist/src/agent/memory/context/planner.js +32 -11
  129. package/dist/src/agent/memory/context/types.d.ts +6 -0
  130. package/dist/src/agent/memory/create-memory-manager.d.ts +1 -2
  131. package/dist/src/agent/memory/create-memory-manager.js +4 -4
  132. package/dist/src/agent/memory/dreaming/config.d.ts +16 -13
  133. package/dist/src/agent/memory/dreaming/config.js +47 -40
  134. package/dist/src/agent/memory/dreaming/constants.d.ts +5 -22
  135. package/dist/src/agent/memory/dreaming/constants.js +6 -24
  136. package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +4 -11
  137. package/dist/src/agent/memory/dreaming/deep-promotion.js +126 -279
  138. package/dist/src/agent/memory/dreaming/light-sweep.d.ts +5 -2
  139. package/dist/src/agent/memory/dreaming/light-sweep.js +79 -197
  140. package/dist/src/agent/memory/dreaming/preview.d.ts +3 -9
  141. package/dist/src/agent/memory/dreaming/preview.js +34 -77
  142. package/dist/src/agent/memory/dreaming/promotion-lifecycle.d.ts +1 -15
  143. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +3 -42
  144. package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +7 -13
  145. package/dist/src/agent/memory/dreaming/rem-patterns.js +104 -261
  146. package/dist/src/agent/memory/dreaming/runner.d.ts +10 -0
  147. package/dist/src/agent/memory/dreaming/runner.js +78 -0
  148. package/dist/src/agent/memory/dreaming/schedule.d.ts +23 -0
  149. package/dist/src/agent/memory/dreaming/schedule.js +38 -0
  150. package/dist/src/agent/memory/dreaming/scope.d.ts +2 -4
  151. package/dist/src/agent/memory/dreaming/scope.js +21 -13
  152. package/dist/src/agent/memory/dreaming/utils.d.ts +2 -51
  153. package/dist/src/agent/memory/dreaming/utils.js +4 -112
  154. package/dist/src/agent/memory/index.d.ts +1 -3
  155. package/dist/src/agent/memory/index.js +2 -3
  156. package/dist/src/agent/memory/manager.d.ts +1 -5
  157. package/dist/src/agent/memory/manager.js +1 -27
  158. package/dist/src/agent/memory/memory-config.d.ts +1 -6
  159. package/dist/src/agent/memory/memory-config.js +2 -23
  160. package/dist/src/agent/memory/summary-generator.d.ts +1 -1
  161. package/dist/src/agent/memory/types.d.ts +5 -48
  162. package/dist/src/agent/memory/understanding/service.js +1 -2
  163. package/dist/src/agent/memory/user-context-coordinator.d.ts +2 -1
  164. package/dist/src/agent/memory/user-context-coordinator.js +32 -14
  165. package/dist/src/agent/messaging/command-handler.d.ts +1 -9
  166. package/dist/src/agent/messaging/command-handler.js +0 -8
  167. package/dist/src/agent/messaging/outbound-coordinator.d.ts +5 -14
  168. package/dist/src/agent/messaging/outbound-coordinator.js +4 -9
  169. package/dist/src/agent/middleware/index.d.ts +1 -1
  170. package/dist/src/agent/middleware/self-verify.d.ts +2 -2
  171. package/dist/src/agent/middleware/self-verify.js +7 -7
  172. package/dist/src/agent/orchestration/agent-orchestrator.js +16 -66
  173. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +1 -1
  174. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +6 -2
  175. package/dist/src/agent/prompt/response-language.d.ts +3 -0
  176. package/dist/src/agent/prompt/response-language.js +11 -0
  177. package/dist/src/agent/prompt/sections/behavior.js +2 -2
  178. package/dist/src/agent/prompt/sections/memory-skills.js +10 -13
  179. package/dist/src/agent/prompt/sections/response-language.d.ts +2 -0
  180. package/dist/src/agent/prompt/sections/response-language.js +13 -0
  181. package/dist/src/agent/prompt/sections/tooling.js +0 -2
  182. package/dist/src/agent/prompt/service-prompt-builder.d.ts +1 -1
  183. package/dist/src/agent/prompt/service-prompt-builder.js +6 -29
  184. package/dist/src/agent/prompt/subagent-context.d.ts +2 -0
  185. package/dist/src/agent/prompt/subagent-context.js +1 -0
  186. package/dist/src/agent/prompt/system-prompt.d.ts +3 -0
  187. package/dist/src/agent/prompt/system-prompt.js +10 -2
  188. package/dist/src/agent/service/direct-turn-helpers.d.ts +3 -2
  189. package/dist/src/agent/service/direct-turn-helpers.js +9 -5
  190. package/dist/src/agent/service/process-direct-one-shot.d.ts +3 -0
  191. package/dist/src/agent/service/process-direct-one-shot.js +4 -1
  192. package/dist/src/agent/service/process-direct-streaming.d.ts +2 -2
  193. package/dist/src/agent/service/process-direct-streaming.js +2 -2
  194. package/dist/src/agent/service.d.ts +7 -9
  195. package/dist/src/agent/service.js +32 -23
  196. package/dist/src/agent/service.types.d.ts +2 -15
  197. package/dist/src/agent/session/index.d.ts +1 -1
  198. package/dist/src/agent/session/session-config-service.d.ts +1 -0
  199. package/dist/src/agent/session/session-config-service.js +14 -0
  200. package/dist/src/agent/session/session-state-bag.d.ts +8 -8
  201. package/dist/src/agent/session/session-state-bag.js +10 -10
  202. package/dist/src/agent/skills/config.js +6 -0
  203. package/dist/src/agent/skills/filesystem-watcher.d.ts +4 -0
  204. package/dist/src/agent/skills/filesystem-watcher.js +16 -7
  205. package/dist/src/agent/skills/index.d.ts +10 -7
  206. package/dist/src/agent/skills/index.js +56 -47
  207. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  208. package/dist/src/agent/skills/skill-manager.d.ts +5 -2
  209. package/dist/src/agent/skills/skill-manager.js +10 -5
  210. package/dist/src/agent/skills/skill-sources.d.ts +18 -0
  211. package/dist/src/agent/skills/skill-sources.js +143 -0
  212. package/dist/src/agent/skills/types.d.ts +25 -2
  213. package/dist/src/agent/source-context/types.d.ts +1 -1
  214. package/dist/src/agent/source-context/types.js +1 -1
  215. package/dist/src/agent/starter-agents.js +1 -1
  216. package/dist/src/agent/{outcomes → tasks}/execution-verifier.d.ts +3 -0
  217. package/dist/src/agent/{outcomes → tasks}/execution-verifier.js +3 -2
  218. package/dist/src/agent/tasks/task-judge-service.d.ts +31 -0
  219. package/dist/src/agent/tasks/task-judge-service.js +183 -0
  220. package/dist/src/agent/tool-manuals/index.js +1 -1
  221. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  222. package/dist/src/agent/tool-manuals/xopc-use.js +253 -118
  223. package/dist/src/agent/tools/apply-patch.d.ts +1 -5
  224. package/dist/src/agent/tools/apply-patch.js +1 -12
  225. package/dist/src/agent/tools/clarify-tool.js +1 -1
  226. package/dist/src/agent/tools/delegate-tool.js +6 -5
  227. package/dist/src/agent/tools/dreaming-tool.d.ts +0 -1
  228. package/dist/src/agent/tools/dreaming-tool.js +48 -80
  229. package/dist/src/agent/tools/exec-command.d.ts +0 -2
  230. package/dist/src/agent/tools/exec-command.js +2 -19
  231. package/dist/src/agent/tools/executor.d.ts +2 -0
  232. package/dist/src/agent/tools/executor.js +18 -11
  233. package/dist/src/agent/tools/factory.d.ts +2 -4
  234. package/dist/src/agent/tools/factory.js +10 -29
  235. package/dist/src/agent/tools/index.d.ts +1 -2
  236. package/dist/src/agent/tools/index.js +2 -3
  237. package/dist/src/agent/tools/managed-job-tool.d.ts +2 -0
  238. package/dist/src/agent/tools/managed-job-tool.js +160 -0
  239. package/dist/src/agent/tools/memory-tool.d.ts +0 -3
  240. package/dist/src/agent/tools/memory-tool.js +14 -36
  241. package/dist/src/agent/tools/tool-manual-tool.js +1 -1
  242. package/dist/src/agent/tools/workflow-tool.d.ts +1 -1
  243. package/dist/src/agent/tools/workflow-tool.js +4 -4
  244. package/dist/src/agent/tools/write.d.ts +0 -2
  245. package/dist/src/agent/tools/write.js +0 -11
  246. package/dist/src/agent/tools/xopc-use-tool.d.ts +5 -4
  247. package/dist/src/agent/tools/xopc-use-tool.js +987 -143
  248. package/dist/src/agent/transcript/thinking-types.d.ts +3 -0
  249. package/dist/src/agent/workflow/builtins/index.js +2 -2
  250. package/dist/src/agent/workflow/index.js +2 -2
  251. package/dist/src/agent/workflow/subagent-runner.js +1 -0
  252. package/dist/src/agent/workflow/workflow-child-tools.js +0 -3
  253. package/dist/src/agent/workspace-runtime/registry.d.ts +5 -4
  254. package/dist/src/agent/workspace-runtime/registry.js +4 -3
  255. package/dist/src/agent-manifest/index.js +3 -3
  256. package/dist/src/agent-manifest/resolver.d.ts +20 -1
  257. package/dist/src/agent-manifest/resolver.js +47 -20
  258. package/dist/src/agent-manifest/schema.d.ts +128 -52
  259. package/dist/src/agent-manifest/schema.js +46 -8
  260. package/dist/src/agent-runtime/index.js +1 -1
  261. package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
  262. package/dist/src/agent-runtime/runtime-profile.js +1 -1
  263. package/dist/src/ai-assist/text-assist.js +4 -4
  264. package/dist/src/auth/credentials.d.ts +9 -1
  265. package/dist/src/auth/credentials.js +110 -54
  266. package/dist/src/auth/model-credential-store.js +7 -22
  267. package/dist/src/auth/oauth-provider-lock.d.ts +5 -0
  268. package/dist/src/auth/oauth-provider-lock.js +91 -0
  269. package/dist/src/automations/domain/defaults.d.ts +8 -1
  270. package/dist/src/automations/domain/defaults.js +9 -2
  271. package/dist/src/automations/domain/index.js +2 -2
  272. package/dist/src/automations/domain/types.d.ts +48 -8
  273. package/dist/src/automations/domain/validation.d.ts +344 -12
  274. package/dist/src/automations/domain/validation.js +8 -0
  275. package/dist/src/automations/draft/automation-draft-prompt.js +3 -3
  276. package/dist/src/automations/draft/automation-draft-validator.d.ts +63 -1
  277. package/dist/src/automations/draft/automation-draft-validator.js +1 -0
  278. package/dist/src/automations/index.js +3 -3
  279. package/dist/src/automations/service/action-executor.d.ts +2 -2
  280. package/dist/src/automations/service/action-executor.js +165 -35
  281. package/dist/src/automations/service/automation-service.d.ts +4 -0
  282. package/dist/src/automations/service/automation-service.js +207 -28
  283. package/dist/src/automations/storage/automation-run-repository.d.ts +1 -0
  284. package/dist/src/automations/storage/automation-run-repository.js +37 -7
  285. package/dist/src/automations/storage/index.js +2 -2
  286. package/dist/src/browser/providers/cloakbrowser.js +1 -1
  287. package/dist/src/chat-commands/builtins/understanding.d.ts +1 -0
  288. package/dist/src/chat-commands/builtins/understanding.js +91 -0
  289. package/dist/src/chat-commands/context.d.ts +0 -3
  290. package/dist/src/chat-commands/context.js +0 -2
  291. package/dist/src/chat-commands/index.d.ts +1 -2
  292. package/dist/src/chat-commands/index.js +3 -5
  293. package/dist/src/chat-commands/types.d.ts +0 -3
  294. package/dist/src/cli/command-catalog.js +0 -43
  295. package/dist/src/cli/command-loaders.js +0 -1
  296. package/dist/src/cli/command-manifest.js +0 -4
  297. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  298. package/dist/src/cli/commands/gateway/lifecycle-core.js +1 -1
  299. package/dist/src/cli/commands/gateway/restart-health.d.ts +2 -2
  300. package/dist/src/cli/commands/gateway/restart-health.js +3 -3
  301. package/dist/src/cli/commands/gateway/service.js +4 -4
  302. package/dist/src/cli/commands/onboard/gateway.js +1 -1
  303. package/dist/src/cli/commands/project.js +12 -33
  304. package/dist/src/cli/commands/providers.d.ts +4 -4
  305. package/dist/src/cli/commands/providers.js +16 -16
  306. package/dist/src/cli/commands/search.js +7 -7
  307. package/dist/src/cli/commands/setup-shared/index.d.ts +2 -2
  308. package/dist/src/cli/commands/setup-shared/index.js +2 -2
  309. package/dist/src/cli/commands/setup-shared/output.d.ts +4 -4
  310. package/dist/src/cli/commands/setup-shared/output.js +26 -26
  311. package/dist/src/cli/commands/setup-shared/runner.d.ts +8 -8
  312. package/dist/src/cli/commands/setup-shared/runner.js +9 -9
  313. package/dist/src/cli/commands/setup-shared/types.d.ts +2 -2
  314. package/dist/src/cli/commands/skills.d.ts +7 -0
  315. package/dist/src/cli/commands/skills.js +16 -16
  316. package/dist/src/cli/commands/update.js +1 -1
  317. package/dist/src/cli/commands/voice.d.ts +1 -1
  318. package/dist/src/cli/commands/voice.js +6 -6
  319. package/dist/src/cli/templates.js +1 -1
  320. package/dist/src/cli/utils/oauth-login.js +1 -7
  321. package/dist/src/commands/agents.config.js +2 -18
  322. package/dist/src/config/agent-profile.d.ts +1 -1
  323. package/dist/src/config/agent-profile.js +2 -2
  324. package/dist/src/config/index.js +3 -3
  325. package/dist/src/config/paths.d.ts +0 -3
  326. package/dist/src/config/paths.js +2 -7
  327. package/dist/src/config/schema.d.ts +163 -258
  328. package/dist/src/config/schema.js +10 -115
  329. package/dist/src/config/web-patch.d.ts +0 -29
  330. package/dist/src/config/web-patch.js +2 -69
  331. package/dist/src/connectors/composio-catalog.js +7 -20
  332. package/dist/src/connectors/composio-sessions.js +14 -4
  333. package/dist/src/connectors/composio.d.ts +7 -2
  334. package/dist/src/connectors/composio.js +49 -40
  335. package/dist/src/connectors/connected-source-ingestion.js +2 -1
  336. package/dist/src/connectors/connected-source-normalizers.js +5 -5
  337. package/dist/src/connectors/connector-identity.d.ts +2 -0
  338. package/dist/src/connectors/connector-identity.js +64 -1
  339. package/dist/src/connectors/learning-coordinator.js +34 -15
  340. package/dist/src/connectors/learning-recipes.d.ts +2 -0
  341. package/dist/src/connectors/learning-recipes.js +11 -1
  342. package/dist/src/connectors/source-change-publisher.js +5 -4
  343. package/dist/src/connectors/types.d.ts +16 -0
  344. package/dist/src/daemon/launchd.js +2 -2
  345. package/dist/src/daemon/schtasks.js +1 -1
  346. package/dist/src/daemon/service.js +3 -3
  347. package/dist/src/daemon/systemd.js +1 -1
  348. package/dist/src/daemon/types.d.ts +5 -5
  349. package/dist/src/discussions/analyzer.d.ts +6 -6
  350. package/dist/src/discussions/analyzer.js +32 -22
  351. package/dist/src/discussions/index.d.ts +3 -2
  352. package/dist/src/discussions/index.js +5 -4
  353. package/dist/src/discussions/live-worker.d.ts +5 -3
  354. package/dist/src/discussions/live-worker.js +24 -12
  355. package/dist/src/discussions/{worker.d.ts → organizer-worker.d.ts} +3 -5
  356. package/dist/src/discussions/organizer-worker.js +58 -0
  357. package/dist/src/discussions/organizer.d.ts +22 -0
  358. package/dist/src/discussions/organizer.js +92 -0
  359. package/dist/src/discussions/repository.d.ts +16 -5
  360. package/dist/src/discussions/repository.js +159 -135
  361. package/dist/src/discussions/sealer.d.ts +25 -0
  362. package/dist/src/discussions/sealer.js +116 -0
  363. package/dist/src/discussions/service.d.ts +2 -1
  364. package/dist/src/discussions/service.js +70 -60
  365. package/dist/src/discussions/transcript.js +1 -1
  366. package/dist/src/discussions/types.d.ts +45 -20
  367. package/dist/src/discussions/types.js +4 -2
  368. package/dist/src/extensions/types/core.d.ts +3 -3
  369. package/dist/src/extensions/types/tui.d.ts +2 -2
  370. package/dist/src/extensions/update.d.ts +3 -3
  371. package/dist/src/extensions/update.js +13 -13
  372. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  373. package/dist/src/gateway/agent-builtin-tools.js +0 -1
  374. package/dist/src/gateway/agent-run-relay.d.ts +1 -1
  375. package/dist/src/gateway/agents-admin.js +16 -18
  376. package/dist/src/gateway/capability-presets-admin.d.ts +13 -0
  377. package/dist/src/gateway/capability-presets-admin.js +59 -2
  378. package/dist/src/gateway/chat-limits.d.ts +6 -2
  379. package/dist/src/gateway/chat-limits.js +17 -3
  380. package/dist/src/gateway/chat-stream/thinking-delta-coalescer.js +3 -3
  381. package/dist/src/gateway/dreaming-automation-reconciler.js +13 -12
  382. package/dist/src/gateway/hono/app.js +9 -10
  383. package/dist/src/gateway/hono/index.d.ts +1 -1
  384. package/dist/src/gateway/hono/index.js +2 -2
  385. package/dist/src/gateway/hono/lib/config-payload.d.ts +15 -35
  386. package/dist/src/gateway/hono/lib/config-payload.js +5 -3
  387. package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
  388. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +8 -1
  389. package/dist/src/gateway/hono/oauth-async.js +1 -7
  390. package/dist/src/gateway/hono/oauth.js +1 -7
  391. package/dist/src/gateway/hono/routes/activity.js +1 -2
  392. package/dist/src/gateway/hono/routes/agent-stream.js +135 -34
  393. package/dist/src/gateway/hono/routes/capability-presets.js +27 -1
  394. package/dist/src/gateway/hono/routes/composer-history.js +1 -1
  395. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
  396. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -6
  397. package/dist/src/gateway/hono/routes/connectors.js +35 -30
  398. package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
  399. package/dist/src/gateway/hono/routes/discussions.js +13 -3
  400. package/dist/src/gateway/hono/routes/home.d.ts +1 -1
  401. package/dist/src/gateway/hono/routes/home.js +2 -2
  402. package/dist/src/gateway/hono/routes/index.js +2 -4
  403. package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -16
  404. package/dist/src/gateway/hono/routes/media.js +9 -3
  405. package/dist/src/gateway/hono/routes/memory.js +38 -113
  406. package/dist/src/gateway/hono/routes/projects.js +220 -588
  407. package/dist/src/gateway/hono/routes/public-gateway.js +4 -2
  408. package/dist/src/gateway/hono/routes/{work.d.ts → tasks.d.ts} +1 -1
  409. package/dist/src/gateway/hono/routes/tasks.js +343 -0
  410. package/dist/src/gateway/hono/routes/workflows.js +7 -8
  411. package/dist/src/gateway/hono/routes/you.d.ts +1 -1
  412. package/dist/src/gateway/hono/routes/you.js +250 -78
  413. package/dist/src/gateway/hono/sse.d.ts +1 -16
  414. package/dist/src/gateway/hono/sse.js +4 -161
  415. package/dist/src/gateway/index.js +2 -2
  416. package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
  417. package/dist/src/gateway/rate-limit/buckets.js +12 -0
  418. package/dist/src/gateway/security/csp.d.ts +2 -0
  419. package/dist/src/gateway/security/csp.js +4 -0
  420. package/dist/src/gateway/service/agent-runner.d.ts +32 -13
  421. package/dist/src/gateway/service/agent-runner.js +97 -46
  422. package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -1
  423. package/dist/src/gateway/service/run-gateway-agent.js +27 -42
  424. package/dist/src/gateway/service/session-input-coordinator.d.ts +59 -0
  425. package/dist/src/gateway/service/session-input-coordinator.js +183 -0
  426. package/dist/src/gateway/service/sessions-api.d.ts +1 -0
  427. package/dist/src/gateway/service.d.ts +28 -16
  428. package/dist/src/gateway/service.js +147 -130
  429. package/dist/src/gateway/session-reset-service.js +6 -6
  430. package/dist/src/gateway/user-turn-input.d.ts +0 -1
  431. package/dist/src/i18n/index.d.ts +0 -1
  432. package/dist/src/i18n/index.js +1 -2
  433. package/dist/src/i18n/language-consistency.d.ts +10 -0
  434. package/dist/src/i18n/language-consistency.js +34 -0
  435. package/dist/src/i18n/response-language.d.ts +8 -0
  436. package/dist/src/i18n/response-language.js +17 -0
  437. package/dist/src/i18n/share-tool-bundle.js +2 -2
  438. package/dist/src/mcp/channel-bridge.js +5 -3
  439. package/dist/src/media/store.js +1 -1
  440. package/dist/src/media/types.d.ts +1 -1
  441. package/dist/src/media/uri.js +1 -2
  442. package/dist/src/media-understanding/runner.d.ts +1 -1
  443. package/dist/src/media-understanding/runner.js +9 -9
  444. package/dist/src/media-understanding/types.d.ts +4 -4
  445. package/dist/src/mobile/notification-service.js +16 -21
  446. package/dist/src/mobile/notification-types.d.ts +2 -2
  447. package/dist/src/notes/service.js +1 -1
  448. package/dist/src/notes/types.d.ts +0 -1
  449. package/dist/src/proactive/events/product-event-bridge.js +17 -14
  450. package/dist/src/proactive/execution/context.js +45 -28
  451. package/dist/src/proactive/execution/insight.js +1 -1
  452. package/dist/src/proactive/temporal/worker.js +2 -2
  453. package/dist/src/projects/index.d.ts +0 -1
  454. package/dist/src/projects/index.js +1 -2
  455. package/dist/src/projects/project-loop.d.ts +16 -8
  456. package/dist/src/projects/project-loop.js +41 -48
  457. package/dist/src/projects/project-service.d.ts +14 -4
  458. package/dist/src/projects/project-service.js +18 -10
  459. package/dist/src/projects/project-store.d.ts +36 -3
  460. package/dist/src/projects/project-store.js +116 -14
  461. package/dist/src/projects/types.d.ts +50 -3
  462. package/dist/src/providers/auth-runtime/oauth.js +12 -0
  463. package/dist/src/providers/model-response.d.ts +4 -0
  464. package/dist/src/providers/model-response.js +28 -0
  465. package/dist/src/session/config-types.d.ts +3 -0
  466. package/dist/src/session/index.d.ts +0 -1
  467. package/dist/src/session/index.js +1 -2
  468. package/dist/src/session/init-session-turn.js +6 -6
  469. package/dist/src/session/store.js +4 -4
  470. package/dist/src/session/types.d.ts +1 -6
  471. package/dist/src/share/site-proxy.js +1 -1
  472. package/dist/src/storage/sqlite/config-repository.js +7 -4
  473. package/dist/src/storage/sqlite/connection.js +1 -1
  474. package/dist/src/storage/sqlite/connector-account-repository.d.ts +12 -0
  475. package/dist/src/storage/sqlite/connector-account-repository.js +143 -0
  476. package/dist/src/storage/sqlite/connector-learning-repository.d.ts +5 -2
  477. package/dist/src/storage/sqlite/connector-learning-repository.js +14 -7
  478. package/dist/src/storage/sqlite/connector-repository.js +12 -3
  479. package/dist/src/storage/sqlite/connector-sync-policy-repository.d.ts +4 -3
  480. package/dist/src/storage/sqlite/connector-sync-policy-repository.js +20 -10
  481. package/dist/src/storage/sqlite/dreaming-repository.d.ts +61 -0
  482. package/dist/src/storage/sqlite/dreaming-repository.js +88 -0
  483. package/dist/src/storage/sqlite/index.d.ts +6 -4
  484. package/dist/src/storage/sqlite/index.js +7 -5
  485. package/dist/src/storage/sqlite/memory-readiness-repository.d.ts +7 -0
  486. package/dist/src/storage/sqlite/memory-readiness-repository.js +30 -0
  487. package/dist/src/storage/sqlite/memory-records-repository.d.ts +31 -26
  488. package/dist/src/storage/sqlite/memory-records-repository.js +109 -138
  489. package/dist/src/storage/sqlite/migrations/088_automation_execution_deadlines.sql +5 -0
  490. package/dist/src/storage/sqlite/migrations/089_automation_run_leases.sql +8 -0
  491. package/dist/src/storage/sqlite/migrations/090_outcome_contract_judgment.sql +2 -0
  492. package/dist/src/storage/sqlite/migrations/091_context_allocation.sql +1 -0
  493. package/dist/src/storage/sqlite/migrations/092_outcome_execution_runtime.sql +88 -0
  494. package/dist/src/storage/sqlite/migrations/093_remove_legacy_goals.sql +174 -0
  495. package/dist/src/storage/sqlite/migrations/094_outcome_judgment_and_authority.sql +3 -0
  496. package/dist/src/storage/sqlite/migrations/095_session_input_queue.sql +35 -0
  497. package/dist/src/storage/sqlite/migrations/096_drop_work_intakes.sql +6 -0
  498. package/dist/src/storage/sqlite/migrations/097_work_item_lifecycle.sql +194 -0
  499. package/dist/src/storage/sqlite/migrations/098_discussion_note_documents.sql +99 -0
  500. package/dist/src/storage/sqlite/migrations/099_task_model.sql +500 -0
  501. package/dist/src/storage/sqlite/migrations/100_project_task_taskrun.sql +763 -0
  502. package/dist/src/storage/sqlite/migrations/101_session_response_language.sql +1 -0
  503. package/dist/src/storage/sqlite/migrations/102_session_user_context_mode.sql +2 -0
  504. package/dist/src/storage/sqlite/migrations/103_finalize_structured_memory.sql +3 -0
  505. package/dist/src/storage/sqlite/migrations/104_turn_memory_feedback.sql +77 -0
  506. package/dist/src/storage/sqlite/migrations/105_dreaming_ledger.sql +34 -0
  507. package/dist/src/storage/sqlite/migrations/106_dreaming_run_reproducibility.sql +2 -0
  508. package/dist/src/storage/sqlite/migrations/107_connector_accounts.sql +146 -0
  509. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  510. package/dist/src/storage/sqlite/migrations/runner.js +37 -5
  511. package/dist/src/storage/sqlite/migrations/runner.ts +44 -3
  512. package/dist/src/storage/sqlite/migrations/types.d.ts +2 -0
  513. package/dist/src/storage/sqlite/migrations/types.ts +2 -0
  514. package/dist/src/storage/sqlite/row-mappers.d.ts +2 -2
  515. package/dist/src/storage/sqlite/row-mappers.js +2 -2
  516. package/dist/src/storage/sqlite/schema.d.ts +3 -1
  517. package/dist/src/storage/sqlite/schema.js +5 -2
  518. package/dist/src/storage/sqlite/schema.sql +76 -61
  519. package/dist/src/storage/sqlite/session-input-repository.d.ts +59 -0
  520. package/dist/src/storage/sqlite/session-input-repository.js +147 -0
  521. package/dist/src/storage/sqlite/session-repository.js +5 -6
  522. package/dist/src/{work → tasks}/attention-governor.d.ts +5 -5
  523. package/dist/src/{work → tasks}/attention-governor.js +3 -4
  524. package/dist/src/tasks/execution-context.d.ts +23 -0
  525. package/dist/src/{work → tasks}/execution-context.js +7 -20
  526. package/dist/src/{work → tasks}/home-query-service.d.ts +43 -26
  527. package/dist/src/{work → tasks}/home-query-service.js +57 -127
  528. package/dist/src/tasks/index.d.ts +20 -0
  529. package/dist/src/tasks/index.js +21 -0
  530. package/dist/src/{work → tasks}/project-monitoring-service.js +1 -1
  531. package/dist/src/{work → tasks}/project-operating-view-service.d.ts +2 -4
  532. package/dist/src/tasks/project-operating-view-service.js +77 -0
  533. package/dist/src/tasks/task-application-service.d.ts +35 -0
  534. package/dist/src/tasks/task-application-service.js +423 -0
  535. package/dist/src/tasks/task-context-assembler.d.ts +36 -0
  536. package/dist/src/tasks/task-context-assembler.js +125 -0
  537. package/dist/src/tasks/task-context-repository.d.ts +52 -0
  538. package/dist/src/tasks/task-context-repository.js +97 -0
  539. package/dist/src/tasks/task-contract-definition.d.ts +10 -0
  540. package/dist/src/{work/outcome-contract-definition.js → tasks/task-contract-definition.js} +7 -5
  541. package/dist/src/tasks/task-contract-planner.d.ts +17 -0
  542. package/dist/src/tasks/task-contract-planner.js +87 -0
  543. package/dist/src/tasks/task-dependency-service.d.ts +21 -0
  544. package/dist/src/tasks/task-dependency-service.js +81 -0
  545. package/dist/src/tasks/task-outbox-dispatcher.d.ts +6 -0
  546. package/dist/src/tasks/task-outbox-dispatcher.js +31 -0
  547. package/dist/src/tasks/task-read-model-projector.d.ts +16 -0
  548. package/dist/src/tasks/task-read-model-projector.js +93 -0
  549. package/dist/src/tasks/task-repository.d.ts +82 -0
  550. package/dist/src/tasks/task-repository.js +185 -0
  551. package/dist/src/{work/outcome-run-coordinator.d.ts → tasks/task-run-coordinator.d.ts} +6 -8
  552. package/dist/src/tasks/task-run-coordinator.js +130 -0
  553. package/dist/src/tasks/task-run-dispatcher.d.ts +11 -0
  554. package/dist/src/tasks/task-run-dispatcher.js +90 -0
  555. package/dist/src/tasks/task-run-repository.d.ts +102 -0
  556. package/dist/src/tasks/task-run-repository.js +312 -0
  557. package/dist/src/tasks/task-signal-service.d.ts +8 -0
  558. package/dist/src/tasks/task-signal-service.js +72 -0
  559. package/dist/src/tasks/task-value-metrics-service.d.ts +4 -0
  560. package/dist/src/tasks/task-value-metrics-service.js +78 -0
  561. package/dist/src/tasks/task-workflow-coordinator.d.ts +5 -0
  562. package/dist/src/tasks/task-workflow-coordinator.js +54 -0
  563. package/dist/src/tui/backends/embedded-backend.d.ts +13 -1
  564. package/dist/src/tui/backends/embedded-backend.js +40 -10
  565. package/dist/src/tui/backends/gateway-sse-backend.d.ts +6 -3
  566. package/dist/src/tui/backends/gateway-sse-backend.js +38 -127
  567. package/dist/src/tui/components/settings-selector.js +0 -20
  568. package/dist/src/tui/components/tui-bottom-bar.d.ts +2 -3
  569. package/dist/src/tui/components/tui-bottom-bar.js +4 -9
  570. package/dist/src/tui/extension-host/runtime-context.js +1 -1
  571. package/dist/src/tui/tui-backend.d.ts +15 -1
  572. package/dist/src/tui/tui-backend.js +10 -1
  573. package/dist/src/tui/tui-command-formatters.js +1 -2
  574. package/dist/src/tui/tui-commands.js +8 -19
  575. package/dist/src/tui/tui-oauth-login.js +1 -7
  576. package/dist/src/tui/tui-picker-overlay.js +1 -0
  577. package/dist/src/tui/tui-picker-services.d.ts +1 -0
  578. package/dist/src/tui/tui-session-actions.js +0 -2
  579. package/dist/src/tui/tui-settings.d.ts +0 -6
  580. package/dist/src/tui/tui-settings.js +0 -10
  581. package/dist/src/tui/tui-skills-autocomplete.d.ts +6 -2
  582. package/dist/src/tui/tui-skills-autocomplete.js +10 -6
  583. package/dist/src/tui/tui-startup-resources.d.ts +3 -1
  584. package/dist/src/tui/tui-startup-resources.js +3 -2
  585. package/dist/src/tui/tui-types.d.ts +1 -4
  586. package/dist/src/tui/tui-types.js +1 -2
  587. package/dist/src/tui/tui.js +92 -72
  588. package/dist/src/tui/xopc-tui-keybindings.d.ts +25 -6
  589. package/dist/src/tui/xopc-tui-keybindings.js +0 -5
  590. package/dist/src/tunnel/frpc-extract.js +1 -1
  591. package/dist/src/user-context/config.d.ts +165 -16
  592. package/dist/src/user-context/config.js +74 -14
  593. package/dist/src/user-context/context-compiler.d.ts +4 -8
  594. package/dist/src/user-context/context-compiler.js +7 -10
  595. package/dist/src/user-context/interaction-state.js +8 -4
  596. package/dist/src/user-context/manual-understanding.d.ts +19 -0
  597. package/dist/src/user-context/manual-understanding.js +69 -0
  598. package/dist/src/user-context/memory-episode-evaluator.d.ts +32 -0
  599. package/dist/src/user-context/memory-episode-evaluator.js +35 -0
  600. package/dist/src/user-context/memory-readiness.d.ts +33 -0
  601. package/dist/src/user-context/memory-readiness.js +41 -0
  602. package/dist/src/user-context/memory-use-audit.js +3 -2
  603. package/dist/src/user-context/projection.d.ts +13 -0
  604. package/dist/src/user-context/projection.js +13 -2
  605. package/dist/src/user-context/relationship-continuity.js +1 -1
  606. package/dist/src/user-context/runtime.d.ts +0 -2
  607. package/dist/src/user-context/runtime.js +1 -10
  608. package/dist/src/user-context/source-recommendations.d.ts +5 -5
  609. package/dist/src/user-context/source-recommendations.js +9 -8
  610. package/dist/src/voice/stt/transcribe-core.js +3 -3
  611. package/dist/src/voice/stt/types.d.ts +2 -2
  612. package/dist/src/voice/tts/speak-core.js +4 -4
  613. package/dist/src/voice/tts/types.d.ts +2 -2
  614. package/dist/src/work-discovery/analyzer.js +5 -5
  615. package/dist/src/work-discovery/service.d.ts +1 -10
  616. package/dist/src/work-discovery/service.js +3 -5
  617. package/dist/src/work-discovery/types.d.ts +1 -1
  618. package/dist/src/workflows/domain/run.d.ts +3 -4
  619. package/dist/src/workflows/draft/workflow-draft-prompt.js +1 -1
  620. package/dist/src/workflows/index.js +1 -1
  621. package/dist/src/workflows/service/workflow-run-service.d.ts +2 -2
  622. package/dist/src/workflows/service/workflow-run-service.js +104 -34
  623. package/dist/src/workflows/service/workflow-run-service.types.d.ts +4 -3
  624. package/dist/src/workflows/service/workflow-session-bridge.js +4 -12
  625. package/dist/src/workflows/store/run-index-store.d.ts +1 -1
  626. package/dist/src/workflows/store/run-index-store.js +10 -8
  627. package/dist/src/workflows/store/run-store.d.ts +1 -1
  628. package/dist/src/workflows/store/run-store.js +2 -2
  629. package/package.json +5 -5
  630. package/dist/gateway/static/root/assets/agents-Baq8Shzy.js +0 -2
  631. package/dist/gateway/static/root/assets/apps-page-d-Y0Jbe1.js +0 -1
  632. package/dist/gateway/static/root/assets/automations-page-CFYOCBlQ.js +0 -6
  633. package/dist/gateway/static/root/assets/browser-settings-page-CGApoYPr.js +0 -8
  634. package/dist/gateway/static/root/assets/browser-workflow-inputs-gs6b5e9-.js +0 -1
  635. package/dist/gateway/static/root/assets/capabilities-settings-panel-BC-8n4Hl.js +0 -7
  636. package/dist/gateway/static/root/assets/capability-presets-api-BTKhPoDC.js +0 -1
  637. package/dist/gateway/static/root/assets/capability-presets-settings-panel-D7WQ0oBN.js +0 -1
  638. package/dist/gateway/static/root/assets/channels-settings-DysELlO_.js +0 -1
  639. package/dist/gateway/static/root/assets/channels-status-swr-BAC-R8IK.js +0 -1
  640. package/dist/gateway/static/root/assets/connectors-page-QH-0WnOo.js +0 -2
  641. package/dist/gateway/static/root/assets/desktop-pet-Dwml8znf.js +0 -1
  642. package/dist/gateway/static/root/assets/dreaming-scene-BHMRVEUS.js +0 -4585
  643. package/dist/gateway/static/root/assets/dreaming-settings-CUQxGnDf.js +0 -3
  644. package/dist/gateway/static/root/assets/format-cron-label-arqgGlVV.js +0 -1
  645. package/dist/gateway/static/root/assets/goals-settings-Dj0ao2qA.js +0 -1
  646. package/dist/gateway/static/root/assets/heartbeat-settings-CTI2nPKa.js +0 -1
  647. package/dist/gateway/static/root/assets/index-B0Tdge_q.css +0 -1
  648. package/dist/gateway/static/root/assets/index-BDzspHrg.js +0 -224
  649. package/dist/gateway/static/root/assets/local-app-workbench-page-m8CTSGix.js +0 -2
  650. package/dist/gateway/static/root/assets/logs-page-DmH7Tk4k.js +0 -7
  651. package/dist/gateway/static/root/assets/messages-DYqBwJAK.js +0 -3
  652. package/dist/gateway/static/root/assets/notes-workbench-C4jDBVBN.js +0 -4
  653. package/dist/gateway/static/root/assets/outcome-detail-page-DNRfeLZp.js +0 -1
  654. package/dist/gateway/static/root/assets/product-delivery-BVG-eWQO.js +0 -1
  655. package/dist/gateway/static/root/assets/project-detail-page-D7anK-eu.js +0 -1
  656. package/dist/gateway/static/root/assets/projects-page-BePESKWy.js +0 -1
  657. package/dist/gateway/static/root/assets/remote-access-hub-CHrzBKIs.js +0 -1
  658. package/dist/gateway/static/root/assets/save-bar-controls-BsPf5Gkk.js +0 -1
  659. package/dist/gateway/static/root/assets/schedule-field-kAytH7mq.js +0 -1
  660. package/dist/gateway/static/root/assets/sessions-page-He5YAczL.js +0 -1
  661. package/dist/gateway/static/root/assets/settings-advanced-gate-2eAC9GCP.js +0 -1
  662. package/dist/gateway/static/root/assets/settings-page-BR6Ss0bK.js +0 -1
  663. package/dist/gateway/static/root/assets/setup-status-panel-moT-D-ia.js +0 -1
  664. package/dist/gateway/static/root/assets/shares-settings-X49zY21H.js +0 -1
  665. package/dist/gateway/static/root/assets/skill-reload-api-CjpnFfOH.js +0 -1
  666. package/dist/gateway/static/root/assets/skills-page-DEwfSOUE.js +0 -2
  667. package/dist/gateway/static/root/assets/system-settings-panel-XdY8eyYf.js +0 -1
  668. package/dist/gateway/static/root/assets/time-picker-UghsQu_I.js +0 -1
  669. package/dist/gateway/static/root/assets/use-channel-catalog-BWDtfNvQ.js +0 -1
  670. package/dist/gateway/static/root/assets/user-context-page-BtNBEtKj.js +0 -1
  671. package/dist/gateway/static/root/assets/work-copy-hQmivDgT.js +0 -1
  672. package/dist/gateway/static/root/assets/work-discovery-page-CkDOVZBr.js +0 -1
  673. package/dist/gateway/static/root/assets/work-item-detail-page-CqvkcFcR.js +0 -1
  674. package/dist/gateway/static/root/assets/work-page-BL8TZW4Z.js +0 -3
  675. package/dist/gateway/static/root/assets/workflows-page-BgsdRu3_.js +0 -11
  676. package/dist/packages/gateway-contract/src/outcomes.js +0 -137
  677. package/dist/packages/gateway-contract/src/work-intake.js +0 -85
  678. package/dist/src/agent/goals/checklist-judge.d.ts +0 -48
  679. package/dist/src/agent/goals/checklist-judge.js +0 -237
  680. package/dist/src/agent/goals/checklist-types.d.ts +0 -21
  681. package/dist/src/agent/goals/checklist-types.js +0 -24
  682. package/dist/src/agent/goals/evaluate-turn.d.ts +0 -29
  683. package/dist/src/agent/goals/evaluate-turn.js +0 -209
  684. package/dist/src/agent/goals/goal-locale.d.ts +0 -26
  685. package/dist/src/agent/goals/goal-locale.js +0 -61
  686. package/dist/src/agent/goals/judge.d.ts +0 -41
  687. package/dist/src/agent/goals/judge.js +0 -176
  688. package/dist/src/agent/goals/persistent-goal-apis.d.ts +0 -15
  689. package/dist/src/agent/goals/persistent-goal-apis.js +0 -1
  690. package/dist/src/agent/goals/persistent-goal-service.d.ts +0 -93
  691. package/dist/src/agent/goals/persistent-goal-service.js +0 -128
  692. package/dist/src/agent/goals/post-turn.d.ts +0 -28
  693. package/dist/src/agent/goals/post-turn.js +0 -187
  694. package/dist/src/agent/goals/state.d.ts +0 -46
  695. package/dist/src/agent/goals/state.js +0 -80
  696. package/dist/src/agent/memory/builtin-memory-store.d.ts +0 -54
  697. package/dist/src/agent/memory/builtin-memory-store.js +0 -315
  698. package/dist/src/agent/memory/dreaming/events.d.ts +0 -36
  699. package/dist/src/agent/memory/dreaming/events.js +0 -42
  700. package/dist/src/agent/memory/dreaming/last-run.d.ts +0 -80
  701. package/dist/src/agent/memory/dreaming/last-run.js +0 -96
  702. package/dist/src/agent/memory/dreaming/short-term-store.d.ts +0 -75
  703. package/dist/src/agent/memory/dreaming/short-term-store.js +0 -273
  704. package/dist/src/agent/outcomes/execution-evaluation.d.ts +0 -20
  705. package/dist/src/agent/outcomes/execution-evaluation.js +0 -48
  706. package/dist/src/agent/prompt/memory/index.d.ts +0 -23
  707. package/dist/src/agent/prompt/memory/index.js +0 -101
  708. package/dist/src/agent/tools/curated-memory-tool.d.ts +0 -3
  709. package/dist/src/agent/tools/curated-memory-tool.js +0 -174
  710. package/dist/src/agent/tools/goal-evidence-recorder.d.ts +0 -6
  711. package/dist/src/agent/tools/goal-evidence-recorder.js +0 -32
  712. package/dist/src/agent/tools/goal-tool.d.ts +0 -29
  713. package/dist/src/agent/tools/goal-tool.js +0 -136
  714. package/dist/src/chat-commands/builtins/goal.d.ts +0 -4
  715. package/dist/src/chat-commands/builtins/goal.js +0 -122
  716. package/dist/src/chat-commands/builtins/subgoal.d.ts +0 -4
  717. package/dist/src/chat-commands/builtins/subgoal.js +0 -117
  718. package/dist/src/cli/commands/goal.d.ts +0 -4
  719. package/dist/src/cli/commands/goal.js +0 -235
  720. package/dist/src/discussions/pipeline.d.ts +0 -33
  721. package/dist/src/discussions/pipeline.js +0 -205
  722. package/dist/src/discussions/worker.js +0 -74
  723. package/dist/src/gateway/hono/routes/dreaming.d.ts +0 -3
  724. package/dist/src/gateway/hono/routes/dreaming.js +0 -323
  725. package/dist/src/gateway/hono/routes/execution-receipts.d.ts +0 -3
  726. package/dist/src/gateway/hono/routes/execution-receipts.js +0 -163
  727. package/dist/src/gateway/hono/routes/goals.d.ts +0 -4
  728. package/dist/src/gateway/hono/routes/goals.js +0 -786
  729. package/dist/src/gateway/hono/routes/work.js +0 -207
  730. package/dist/src/goals/goal-notifications.d.ts +0 -31
  731. package/dist/src/goals/goal-notifications.js +0 -157
  732. package/dist/src/goals/goal-queue-store.d.ts +0 -18
  733. package/dist/src/goals/goal-queue-store.js +0 -133
  734. package/dist/src/goals/goal-queue-types.d.ts +0 -42
  735. package/dist/src/goals/goal-queue-types.js +0 -1
  736. package/dist/src/goals/goal-runner.d.ts +0 -17
  737. package/dist/src/goals/goal-runner.js +0 -153
  738. package/dist/src/goals/goal-service.d.ts +0 -87
  739. package/dist/src/goals/goal-service.js +0 -323
  740. package/dist/src/goals/goal-store.d.ts +0 -44
  741. package/dist/src/goals/goal-store.js +0 -472
  742. package/dist/src/goals/goal-workflow-judge.d.ts +0 -13
  743. package/dist/src/goals/goal-workflow-judge.js +0 -145
  744. package/dist/src/goals/index.d.ts +0 -10
  745. package/dist/src/goals/index.js +0 -7
  746. package/dist/src/goals/types.d.ts +0 -136
  747. package/dist/src/goals/types.js +0 -1
  748. package/dist/src/i18n/goals-bundle.d.ts +0 -35
  749. package/dist/src/i18n/goals-bundle.js +0 -61
  750. package/dist/src/i18n/locales/goals.en.js +0 -36
  751. package/dist/src/i18n/locales/goals.zh.js +0 -35
  752. package/dist/src/projects/goal-bind.d.ts +0 -4
  753. package/dist/src/projects/goal-bind.js +0 -38
  754. package/dist/src/session/abort-cutoff.d.ts +0 -6
  755. package/dist/src/session/abort-cutoff.js +0 -8
  756. package/dist/src/storage/sqlite/execution-receipt-repository.d.ts +0 -146
  757. package/dist/src/storage/sqlite/execution-receipt-repository.js +0 -235
  758. package/dist/src/storage/sqlite/memory-index-repository.d.ts +0 -18
  759. package/dist/src/storage/sqlite/memory-index-repository.js +0 -136
  760. package/dist/src/tui/tui-follow-up-queue.d.ts +0 -9
  761. package/dist/src/tui/tui-follow-up-queue.js +0 -16
  762. package/dist/src/work/execution-context.d.ts +0 -16
  763. package/dist/src/work/index.d.ts +0 -14
  764. package/dist/src/work/index.js +0 -15
  765. package/dist/src/work/outcome-contract-definition.d.ts +0 -8
  766. package/dist/src/work/outcome-execution-service.d.ts +0 -27
  767. package/dist/src/work/outcome-execution-service.js +0 -60
  768. package/dist/src/work/outcome-projection-service.d.ts +0 -7
  769. package/dist/src/work/outcome-projection-service.js +0 -51
  770. package/dist/src/work/outcome-receipt-service.d.ts +0 -13
  771. package/dist/src/work/outcome-receipt-service.js +0 -55
  772. package/dist/src/work/outcome-repository.d.ts +0 -50
  773. package/dist/src/work/outcome-repository.js +0 -112
  774. package/dist/src/work/outcome-run-coordinator.js +0 -117
  775. package/dist/src/work/project-operating-view-service.js +0 -46
  776. package/dist/src/work/work-intake-repository.d.ts +0 -49
  777. package/dist/src/work/work-intake-repository.js +0 -97
  778. package/dist/src/work/work-intake-service.d.ts +0 -26
  779. package/dist/src/work/work-intake-service.js +0 -171
  780. package/dist/src/work/work-value-metrics-service.d.ts +0 -4
  781. package/dist/src/work/work-value-metrics-service.js +0 -88
  782. package/dist/src/work-items/agent-context.d.ts +0 -7
  783. package/dist/src/work-items/agent-context.js +0 -73
  784. package/dist/src/work-items/index.d.ts +0 -5
  785. package/dist/src/work-items/index.js +0 -5
  786. package/dist/src/work-items/types.d.ts +0 -112
  787. package/dist/src/work-items/types.js +0 -1
  788. package/dist/src/work-items/work-item-service.d.ts +0 -36
  789. package/dist/src/work-items/work-item-service.js +0 -281
  790. package/dist/src/work-items/work-item-store.d.ts +0 -22
  791. package/dist/src/work-items/work-item-store.js +0 -313
  792. package/dist/src/work-items/work-item-workflow-judge.d.ts +0 -8
  793. package/dist/src/work-items/work-item-workflow-judge.js +0 -48
  794. /package/dist/src/{work → tasks}/project-monitoring-service.d.ts +0 -0
@@ -1,6 +1,8 @@
1
1
  import { resolveStateDir } from "../config/paths-state.js";
2
2
  import { createLogger } from "../utils/logger/index.js";
3
3
  import { init_logger } from "../utils/logger.js";
4
+ import { getSessionConfig } from "../storage/sqlite/config-repository.js";
5
+ import "../storage/sqlite/index.js";
4
6
  import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
5
7
  import { applyConfigOverrides } from "../config/runtime-overrides.js";
6
8
  import { expandWorkspacePathString, init_workspace_path } from "../config/workspace-path.js";
@@ -21,8 +23,6 @@ import { isValidSkillEnvVarName } from "./skills/required-env-vars.js";
21
23
  import { resolveWorkspaceSkillsDir, resolveWorkspaceSkillsLockPath } from "./skills/workspace-skills-dir.js";
22
24
  import { loadSkillsLock } from "./skills/hub-lock.js";
23
25
  import { isUnderManagedSkillsDir } from "./skills/managed-store.js";
24
- import { isMemorySubsystemEnabled, shouldRegisterCuratedMemoryTool } from "./memory/memory-config.js";
25
- import { resolveDreamingRoot } from "./memory/dreaming/scope.js";
26
26
  import { createAgentCapabilitySessionState, resolveAgentCapabilityCatalog } from "./capabilities/registry.js";
27
27
  import "./capabilities/index.js";
28
28
  import { AgentToolsFactory } from "./tools/factory.js";
@@ -30,6 +30,7 @@ import { parseMcpToolName } from "./mcp/bundle-mcp-policy.js";
30
30
  import { disposeAllSessionMcpRuntimes, retireSessionMcpRuntimeForSessionKey } from "./mcp/bundle-mcp-runtime.js";
31
31
  import "./mcp/bundle-mcp-tools.js";
32
32
  import { evictAllEmbeddedSessionRunners, evictEmbeddedSessionRunner } from "./embedded/session-runner.js";
33
+ import { isMemorySubsystemEnabled } from "./memory/memory-config.js";
33
34
  import { UserContextCoordinator } from "./memory/user-context-coordinator.js";
34
35
  import { WorkspaceRuntimeRegistry } from "./workspace-runtime/registry.js";
35
36
  import { BackgroundReviewCoordinator } from "./background-review/coordinator.js";
@@ -117,13 +118,14 @@ var AgentManager = class {
117
118
  this.workspaceRuntimes = new WorkspaceRuntimeRegistry({
118
119
  getConfig: () => this.config.config,
119
120
  bundledSkillsDir: resolveBundledSkillsDir(),
121
+ isWorkspaceTrusted: (resolvedPath) => this.isProjectWorkspaceTrusted(resolvedPath),
120
122
  onRuntimeCreated: (resolvedPath) => {
121
123
  this.skillFilesystemWatcher.watchWorkspace(resolvedPath);
122
124
  }
123
125
  });
124
126
  this.userContext = new UserContextCoordinator({
125
127
  getConfig: () => this.config.config,
126
- isEnabledForSession: () => Boolean(this.config.config?.userContext.enabled && this.config.config.userContext.memory.mode !== "off"),
128
+ isEnabledForSession: (sessionKey) => this.isUserContextEnabledForSession(sessionKey),
127
129
  getAgentIdForSession: (sk) => this.agents.get(sk)?.effectiveProfile.agentId ?? "main",
128
130
  getMemoryManagerForSession: (sk) => this.getMemoryManagerForSession(sk),
129
131
  getLastAssistantContent: (sk) => this.getLastAssistantContent(sk)
@@ -140,6 +142,9 @@ var AgentManager = class {
140
142
  }, `Credential cache pre-warm failed: ${em}`);
141
143
  });
142
144
  }
145
+ isUserContextEnabledForSession(sessionKey) {
146
+ return Boolean(this.config.config?.userContext.enabled && this.config.config.userContext.memory.mode !== "off" && getSessionConfig(sessionKey)?.userContextMode !== "off");
147
+ }
143
148
  computeBaseWorkspacePath() {
144
149
  const cfg = this.config.config;
145
150
  if (!cfg) return expandWorkspacePathString(this.config.workspace);
@@ -224,6 +229,11 @@ var AgentManager = class {
224
229
  getCurrentContext: this.config.getCurrentContext,
225
230
  hookRunner: this.config.hookRunner,
226
231
  bus: this.config.bus,
232
+ toolExecutorConfig: { resolveTimeoutMs: (toolName) => {
233
+ const config = this.mergedConfig();
234
+ const sessionKey = this.config.getCurrentContext?.()?.sessionKey;
235
+ return resolveEffectiveAgentProfileForSession(config, sessionKey).manifest.tools.builtin[toolName]?.limits?.timeoutMs;
236
+ } },
227
237
  getConfig: () => this.mergedConfig(),
228
238
  getPrimaryModel: () => this.resolveModelStringToModel(this.pickDefaultModelRef()),
229
239
  getMemoryManager: () => this.getCurrentWorkspaceRuntime().memoryManager,
@@ -233,8 +243,8 @@ var AgentManager = class {
233
243
  getBrowserRecipeService: this.config.getBrowserRecipeService,
234
244
  getNotesService: this.config.getNotesService,
235
245
  getProjectService: this.config.getProjectService,
236
- getWorkItemService: this.config.getWorkItemService,
237
246
  getLocalAppService: this.config.getLocalAppService,
247
+ dispatchTaskRuns: this.config.dispatchTaskRuns,
238
248
  getWorkflowRunService: this.config.getWorkflowRunService,
239
249
  getSkillIndexingContext: () => {
240
250
  const ctx = this.config.getCurrentContext?.();
@@ -280,8 +290,8 @@ var AgentManager = class {
280
290
  this.getWorkspaceRuntimeForSession(sessionKey).codeIntelligence.markDirty(paths);
281
291
  }
282
292
  /** Build the bounded, policy-filtered context used for this model turn. */
283
- prepareUserTurnContext(userMessage, sessionKey) {
284
- return this.userContext.prepare(userMessage, sessionKey);
293
+ prepareUserTurnContext(userMessage, sessionKey, turnId) {
294
+ return this.userContext.prepare(userMessage, sessionKey, turnId);
285
295
  }
286
296
  /**
287
297
  * After a completed turn: sync external providers and queue next-turn prefetch.
@@ -295,7 +305,7 @@ var AgentManager = class {
295
305
  * Delegates to {@link BackgroundReviewCoordinator}.
296
306
  */
297
307
  beginBackgroundReviewUserTurn(sessionKey) {
298
- if (!this.agents.get(sessionKey)) return;
308
+ if (!this.agents.get(sessionKey) || !this.isUserContextEnabledForSession(sessionKey)) return;
299
309
  this.backgroundReview.beginUserTurn(sessionKey);
300
310
  }
301
311
  /**
@@ -304,7 +314,7 @@ var AgentManager = class {
304
314
  */
305
315
  scheduleBackgroundReviewAfterUserTurn(sessionKey) {
306
316
  const inst = this.agents.get(sessionKey);
307
- if (!inst) return;
317
+ if (!inst || !this.isUserContextEnabledForSession(sessionKey)) return;
308
318
  this.backgroundReview.scheduleAfterUserTurn({
309
319
  sessionKey,
310
320
  agent: inst.agent,
@@ -388,7 +398,7 @@ var AgentManager = class {
388
398
  externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
389
399
  workspaceOverride: resolvedWorkspacePath,
390
400
  profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
391
- systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
401
+ customInstructions: instance.effectiveProfile.customInstructions,
392
402
  skillAllowlist: instance.effectiveProfile.skillsAllowlist,
393
403
  registeredToolNames,
394
404
  sessionKey: instance.sessionKey,
@@ -454,7 +464,9 @@ var AgentManager = class {
454
464
  const base = resolve(s.baseDir);
455
465
  const workspaceRoot = workspaceDir ? resolveWorkspaceSkillsDir(workspaceDir) : "";
456
466
  const workspaceManaged = workspaceRoot ? s.source === "workspace" && base.startsWith(resolve(workspaceRoot) + sep) : false;
457
- const managed = isUnderManagedSkillsDir(s.baseDir) || workspaceManaged;
467
+ const globalManaged = isUnderManagedSkillsDir(s.baseDir);
468
+ const managed = s.origin.managed && (globalManaged || workspaceManaged);
469
+ const writable = managed && s.origin.writable;
458
470
  const directoryId = base.split(sep).filter(Boolean).pop() || s.name;
459
471
  const enabled = !(skillsConfig.entries?.[s.name]?.enabled === false);
460
472
  const hubKey = managed ? basename(base) : "";
@@ -465,8 +477,10 @@ var AgentManager = class {
465
477
  description: s.description,
466
478
  category: s.category,
467
479
  source: s.source,
480
+ origin: s.origin.id,
468
481
  path: s.baseDir,
469
482
  managed,
483
+ writable,
470
484
  enabled,
471
485
  disableModelInvocation: s.disableModelInvocation,
472
486
  ...hub ? { hub } : {}
@@ -517,7 +531,7 @@ var AgentManager = class {
517
531
  loadedAt: rt.skillManager.getLoadedAt(),
518
532
  diagnostics: rt.skillManager.getDiagnostics(),
519
533
  status: rt.skillManager.getStatus(),
520
- ...entry?.skills.mode === "allowlist" ? { agentAllowlist: [...entry.skills.allow ?? []] } : {},
534
+ ...entry?.skills?.mode === "allowlist" ? { agentAllowlist: [...entry.skills.allow ?? []] } : {},
521
535
  ...profile.skillsAllowlist !== void 0 ? { effectiveAllowlist: [...profile.skillsAllowlist] } : {},
522
536
  skills
523
537
  };
@@ -538,7 +552,7 @@ var AgentManager = class {
538
552
  externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
539
553
  workspaceOverride: resolvedWorkspacePath,
540
554
  profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
541
- systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
555
+ customInstructions: instance.effectiveProfile.customInstructions,
542
556
  skillAllowlist: instance.effectiveProfile.skillsAllowlist,
543
557
  registeredToolNames: instance.registeredToolNames,
544
558
  sessionKey: instance.sessionKey,
@@ -570,6 +584,7 @@ var AgentManager = class {
570
584
  return;
571
585
  }
572
586
  if (source === "explicit") this.lastExplicitSkillDiskRefreshAt = now;
587
+ this.skillFilesystemWatcher.refreshPrimaryWorkspace(this.baseWorkspacePath);
573
588
  if (this.skillDiskRefreshInProgress) {
574
589
  this.skillDiskRefreshPending = true;
575
590
  return;
@@ -579,7 +594,7 @@ var AgentManager = class {
579
594
  try {
580
595
  do {
581
596
  this.skillDiskRefreshPending = false;
582
- this.applySkillsAfterDiskChange();
597
+ this.applySkillsAfterDiskChange(source === "trust" ? "trust" : "disk");
583
598
  refreshed = true;
584
599
  } while (this.skillDiskRefreshPending);
585
600
  } finally {
@@ -587,6 +602,9 @@ var AgentManager = class {
587
602
  }
588
603
  if (refreshed) this.scheduleSkillsUpdated("disk");
589
604
  }
605
+ refreshSkillsAfterTrustChange() {
606
+ this.refreshSkillsAfterDiskChange("trust");
607
+ }
590
608
  scheduleSkillsUpdated(reason) {
591
609
  this.pendingSkillsUpdatedReason = reason === "disk" ? "disk" : this.pendingSkillsUpdatedReason ?? "config";
592
610
  if (this.skillsUpdatedTimer) clearTimeout(this.skillsUpdatedTimer);
@@ -597,9 +615,9 @@ var AgentManager = class {
597
615
  this.config.onSkillsUpdated?.({ reason: nextReason });
598
616
  }, 250);
599
617
  }
600
- applySkillsAfterDiskChange() {
618
+ applySkillsAfterDiskChange(reason = "disk") {
601
619
  const cfg = this.config.config;
602
- for (const rt of this.workspaceRuntimes.values()) rt.skillManager.reload();
620
+ for (const rt of this.workspaceRuntimes.values()) rt.skillManager.reload(reason);
603
621
  for (const instance of this.agents.values()) {
604
622
  const resolvedWorkspacePath = this.getResolvedWorkspaceForSession(instance.sessionKey);
605
623
  const rt = this.workspaceRuntimes.getOrCreate(resolvedWorkspacePath, instance.effectiveProfile.agentId);
@@ -610,7 +628,7 @@ var AgentManager = class {
610
628
  externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
611
629
  workspaceOverride: resolvedWorkspacePath,
612
630
  profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
613
- systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
631
+ customInstructions: instance.effectiveProfile.customInstructions,
614
632
  skillAllowlist: instance.effectiveProfile.skillsAllowlist,
615
633
  registeredToolNames: instance.registeredToolNames,
616
634
  sessionKey: instance.sessionKey,
@@ -647,7 +665,6 @@ var AgentManager = class {
647
665
  err,
648
666
  sessionKey
649
667
  }, "memory initializeAll failed"));
650
- if (isMemorySubsystemEnabled(cfg) && shouldRegisterCuratedMemoryTool(cfg)) rt.builtinMemoryStore.loadFromDiskSync();
651
668
  const activeProjectContext = buildExecutionScopeContextForPrompt(sessionKey);
652
669
  const activeSelfVerifyContext = this.getSelfVerifyPromptContext(sessionKey, profile.agentId);
653
670
  const profileModelRef = profile.primaryModelRef?.trim() || this.defaultModel;
@@ -751,7 +768,7 @@ var AgentManager = class {
751
768
  externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
752
769
  workspaceOverride: resolvedWorkspacePath,
753
770
  profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
754
- systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
771
+ customInstructions: instance.effectiveProfile.customInstructions,
755
772
  skillAllowlist: instance.effectiveProfile.skillsAllowlist,
756
773
  registeredToolNames: instance.registeredToolNames,
757
774
  sessionKey,
@@ -835,12 +852,10 @@ var AgentManager = class {
835
852
  const model = this.resolveModelStringToModel(modelRef);
836
853
  let agent;
837
854
  const contextFiles = this.resolveContextFilesForSession(sessionKey, profile);
838
- const dreamingRoot = resolveDreamingRoot();
839
855
  const tools = this.toolsFactory.createAllTools({
840
856
  workspace: resolvedWorkspacePath,
841
857
  profileMarkdownRoot: resolveAgentProfileDir(this.config.config, profile.agentId),
842
858
  agentId: profile.agentId,
843
- dreamingRoot,
844
859
  disabledTools: profile.tools.denied,
845
860
  getPrimaryModel: () => agent?.state.model ?? model,
846
861
  getMemoryManager: () => rt.memoryManager,
@@ -855,7 +870,7 @@ var AgentManager = class {
855
870
  externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
856
871
  workspaceOverride: resolvedWorkspacePath,
857
872
  profileMarkdownPathRoot: resolveAgentProfileDir(this.config.config, profile.agentId),
858
- systemPromptOverride: profile.systemPromptOverride,
873
+ customInstructions: profile.customInstructions,
859
874
  skillAllowlist: profile.skillsAllowlist,
860
875
  registeredToolNames,
861
876
  sessionKey,
@@ -930,7 +945,7 @@ var AgentManager = class {
930
945
  externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
931
946
  workspaceOverride: resolvedWorkspacePath,
932
947
  profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
933
- systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
948
+ customInstructions: instance.effectiveProfile.customInstructions,
934
949
  skillAllowlist: instance.effectiveProfile.skillsAllowlist,
935
950
  registeredToolNames: instance.registeredToolNames,
936
951
  sessionKey: instance.sessionKey,
@@ -970,7 +985,7 @@ var AgentManager = class {
970
985
  externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
971
986
  workspaceOverride: resolvedWorkspacePath,
972
987
  profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
973
- systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
988
+ customInstructions: instance.effectiveProfile.customInstructions,
974
989
  skillAllowlist: instance.effectiveProfile.skillsAllowlist,
975
990
  registeredToolNames: instance.registeredToolNames,
976
991
  sessionKey,
@@ -4,8 +4,6 @@ import type { Config } from '../config/schema.js';
4
4
  import type { MessageBus } from '../infra/bus/index.js';
5
5
  import type { AgentTool } from '@earendil-works/pi-agent-core';
6
6
  import type { ToolExecutorConfig } from './tools/executor.js';
7
- /** @deprecated Use buildSubagentSystemPrompt */
8
- export declare function buildChildSystemPrompt(goal: string, context?: string, workspace?: string): string;
9
7
  export interface BuildChildToolsOptions {
10
8
  workspace: string;
11
9
  bus: MessageBus;
@@ -31,6 +29,7 @@ export interface DelegateChildHandleOptions {
31
29
  workspace: string;
32
30
  goal: string;
33
31
  context?: string;
32
+ requesterSessionKey?: string;
34
33
  allowedToolNames: string[];
35
34
  maxIterations: number;
36
35
  model: Model<Api>;
@@ -6,20 +6,13 @@ import { createExtensionAwareStreamFn } from "../providers/extension-stream-brid
6
6
  import { extractTextContent } from "./context/workspace.js";
7
7
  import { resolveAgentTurnTimeoutMs, runAgentTurnWithTimeout } from "./orchestration/run-agent-turn-with-timeout.js";
8
8
  import { buildSubagentSystemPrompt } from "./prompt/subagent-context.js";
9
+ import { resolveResponseLanguageForSession } from "./prompt/response-language.js";
9
10
  import { Agent } from "@earendil-works/pi-agent-core";
10
11
  //#region src/agent/child-agent-factory.ts
11
12
  init_sync_provider_auth();
12
13
  init_providers();
13
14
  init_logger();
14
15
  const log = createLogger("delegate-child");
15
- /** @deprecated Use buildSubagentSystemPrompt */
16
- function buildChildSystemPrompt(goal, context, workspace) {
17
- return buildSubagentSystemPrompt({
18
- goal,
19
- context,
20
- workspace
21
- });
22
- }
23
16
  /**
24
17
  * Build an isolated tool factory (no extensions, no session memory hooks) and a child {@link Agent}.
25
18
  */
@@ -53,7 +46,8 @@ function createDelegateChildHandle(options) {
53
46
  goal: options.goal,
54
47
  context: options.context,
55
48
  workspace: options.workspace,
56
- toolNames: filteredTools.map((t) => t.name)
49
+ toolNames: filteredTools.map((t) => t.name),
50
+ responseLanguage: resolveResponseLanguageForSession(options.getConfig(), options.requesterSessionKey)
57
51
  }),
58
52
  model: options.model,
59
53
  thinkingLevel: "low",
@@ -182,4 +176,4 @@ function createDelegateChildHandle(options) {
182
176
  };
183
177
  }
184
178
  //#endregion
185
- export { buildChildSystemPrompt, createDelegateChildHandle };
179
+ export { createDelegateChildHandle };
@@ -1,12 +1,12 @@
1
1
  export type ExecutionObjective = {
2
- kind: 'goal';
2
+ kind: 'task';
3
3
  id: string;
4
4
  title: string;
5
5
  objective: string;
6
6
  status: string;
7
7
  scopeBoundary?: string;
8
8
  acceptanceCriteria: string[];
9
- deliverables: string[];
9
+ expectedOutputs: string[];
10
10
  nextAction?: string;
11
11
  blockedReason?: string;
12
12
  } | {
@@ -1,10 +1,9 @@
1
1
  import { isXopcDatabaseOpen } from "../../storage/sqlite/connection.js";
2
2
  import { getSessionMetadata } from "../../storage/sqlite/session-repository.js";
3
3
  import "../../storage/sqlite/index.js";
4
- import { GoalService } from "../../goals/goal-service.js";
5
- import { OutcomeRepository } from "../../work/outcome-repository.js";
6
- import "../../goals/index.js";
7
4
  import { sanitizeForPromptLiteral } from "../prompt/sanitize-for-prompt.js";
5
+ import { TaskRepository } from "../../tasks/task-repository.js";
6
+ import { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
8
7
  import { buildActiveProjectContextForPrompt } from "./project-context.js";
9
8
  //#region src/agent/context/execution-scope.ts
10
9
  const MAX_OBJECTIVE_TEXT = 1200;
@@ -14,19 +13,19 @@ function bounded(value, max = MAX_OBJECTIVE_TEXT) {
14
13
  if (!text) return void 0;
15
14
  return text.length <= max ? text : `${text.slice(0, max - 1).trimEnd()}…`;
16
15
  }
17
- function goalObjective(goal) {
18
- const contract = new OutcomeRepository().getContract(goal.outcomeId, goal.outcomeContractVersion);
16
+ function taskObjective(sessionKey) {
17
+ const task = new TaskRepository().getBySession(sessionKey);
18
+ if (!task) return void 0;
19
+ const contract = task.contract;
19
20
  return {
20
- kind: "goal",
21
- id: goal.id,
22
- title: goal.title,
23
- objective: contract?.objective.trim() || goal.title,
24
- status: goal.status,
21
+ kind: "task",
22
+ id: task.id,
23
+ title: task.title,
24
+ objective: contract?.objective.trim() || task.title,
25
+ status: `${task.phase}/${new TaskReadModelProjector().project(task).operationalState}`,
25
26
  scopeBoundary: bounded(contract?.constraints.join("\n")),
26
- acceptanceCriteria: goal.checklist.slice(0, MAX_CRITERIA).map((item) => item.text),
27
- deliverables: contract?.deliverables.slice(0, MAX_CRITERIA) ?? [],
28
- nextAction: bounded(goal.nextAction),
29
- blockedReason: bounded(goal.blockedReason)
27
+ acceptanceCriteria: contract?.acceptanceCriteria.slice(0, MAX_CRITERIA) ?? [],
28
+ expectedOutputs: contract?.expectedOutputs.slice(0, MAX_CRITERIA) ?? []
30
29
  };
31
30
  }
32
31
  function workflowObjective(sessionKey) {
@@ -46,12 +45,10 @@ function workflowObjective(sessionKey) {
46
45
  }
47
46
  function resolveExecutionScope(sessionKey) {
48
47
  if (!isXopcDatabaseOpen()) return { sessionKey };
49
- const metadata = getSessionMetadata(sessionKey);
50
- const activeGoal = new GoalService().getActiveForSession(sessionKey);
51
48
  return {
52
49
  sessionKey,
53
- projectId: metadata?.projectId,
54
- objective: activeGoal ? goalObjective(activeGoal) : workflowObjective(sessionKey)
50
+ projectId: getSessionMetadata(sessionKey)?.projectId,
51
+ objective: taskObjective(sessionKey) ?? workflowObjective(sessionKey)
55
52
  };
56
53
  }
57
54
  function formatCurrentWorkForPrompt(scope) {
@@ -68,10 +65,10 @@ function formatCurrentWorkForPrompt(scope) {
68
65
  "## Objective",
69
66
  sanitizeForPromptLiteral(objective.objective)
70
67
  ];
71
- if (objective.kind === "goal") {
68
+ if (objective.kind === "task") {
72
69
  if (objective.scopeBoundary) lines.push("", "## Scope Boundary", sanitizeForPromptLiteral(objective.scopeBoundary));
73
70
  if (objective.acceptanceCriteria.length > 0) lines.push("", "## Acceptance Criteria", ...objective.acceptanceCriteria.map((item) => `- ${sanitizeForPromptLiteral(item)}`));
74
- if (objective.deliverables.length > 0) lines.push("", "## Deliverables", ...objective.deliverables.map((item) => `- ${sanitizeForPromptLiteral(item)}`));
71
+ if (objective.expectedOutputs.length > 0) lines.push("", "## Expected outputs", ...objective.expectedOutputs.map((item) => `- ${sanitizeForPromptLiteral(item)}`));
75
72
  if (objective.nextAction) lines.push("", "Next action:", sanitizeForPromptLiteral(objective.nextAction));
76
73
  if (objective.blockedReason) lines.push("", "Blocked reason:", sanitizeForPromptLiteral(objective.blockedReason));
77
74
  }
@@ -1,12 +1,16 @@
1
- import { type GoalWithDetails } from '../../goals/index.js';
2
1
  import type { Project } from '../../projects/types.js';
2
+ export interface ProjectTaskContext {
3
+ title: string;
4
+ state: string;
5
+ priority: string;
6
+ }
3
7
  export declare function buildActiveProjectContextForPrompt(sessionKey: string, options?: {
4
8
  memoryQuery?: string;
5
9
  }): string | undefined;
6
10
  export declare function formatActiveProjectContextForPrompt(input: {
7
11
  project: Project;
8
12
  workspacePath?: string;
9
- activeGoals: GoalWithDetails[];
13
+ activeTasks: ProjectTaskContext[];
10
14
  recentSessions: Array<{
11
15
  key: string;
12
16
  name?: string;
@@ -1,14 +1,14 @@
1
1
  import { listMemoryRecords, searchMemoryRecords } from "../../storage/sqlite/memory-records-repository.js";
2
2
  import "../../storage/sqlite/index.js";
3
- import { GoalService } from "../../goals/goal-service.js";
4
- import "../../goals/index.js";
5
3
  import { sanitizeForPromptLiteral } from "../prompt/sanitize-for-prompt.js";
4
+ import { TaskRepository } from "../../tasks/task-repository.js";
5
+ import { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
6
6
  import { LocalAppStore } from "../../local-apps/store.js";
7
7
  import { ProjectStore } from "../../projects/project-store.js";
8
8
  import { getProjectForSession, getProjectWorkspacePathForSession } from "../../projects/workspace.js";
9
9
  //#region src/agent/context/project-context.ts
10
10
  const MAX_TEXT = 1200;
11
- const MAX_GOALS = 5;
11
+ const MAX_TASKS = 5;
12
12
  const MAX_SESSIONS = 5;
13
13
  const MAX_RECENT_MEMORY = 5;
14
14
  const MAX_RELEVANT_MEMORY = 5;
@@ -19,15 +19,12 @@ function truncateText(value, max = MAX_TEXT) {
19
19
  if (trimmed.length <= max) return trimmed;
20
20
  return `${trimmed.slice(0, max - 1).trimEnd()}...`;
21
21
  }
22
- function formatGoal(goal) {
23
- const parts = [
24
- `- ${sanitizeForPromptLiteral(goal.title)}`,
25
- `status=${goal.status}`,
26
- `priority=${goal.priority}`
27
- ];
28
- if (goal.nextAction?.trim()) parts.push(`next=${sanitizeForPromptLiteral(truncateText(goal.nextAction, 200) ?? "")}`);
29
- if (goal.blockedReason?.trim()) parts.push(`blocked=${sanitizeForPromptLiteral(truncateText(goal.blockedReason, 200) ?? "")}`);
30
- return parts.join(" | ");
22
+ function formatTask(task) {
23
+ return [
24
+ `- ${sanitizeForPromptLiteral(task.title)}`,
25
+ `state=${task.state}`,
26
+ `priority=${task.priority}`
27
+ ].join(" | ");
31
28
  }
32
29
  function selectProjectMemoryRecords(input) {
33
30
  const selected = /* @__PURE__ */ new Map();
@@ -46,16 +43,11 @@ function buildActiveProjectContextForPrompt(sessionKey, options = {}) {
46
43
  return formatActiveProjectContextForPrompt({
47
44
  project,
48
45
  workspacePath: getProjectWorkspacePathForSession(sessionKey) ?? project.workspaceRoot,
49
- activeGoals: new GoalService().list({
50
- projectId: project.id,
51
- status: [
52
- "active",
53
- "paused",
54
- "blocked",
55
- "needs_input"
56
- ],
57
- limit: MAX_GOALS
58
- }),
46
+ activeTasks: new TaskRepository().listByProject(project.id, MAX_TASKS).filter((task) => task.phase !== "closed").map((task) => ({
47
+ priority: task.priority,
48
+ title: task.contract?.objective ?? task.title,
49
+ state: `${task.phase}/${new TaskReadModelProjector().project(task).operationalState}`
50
+ })),
59
51
  recentSessions: new ProjectStore().getRecentSessions(project.id, MAX_SESSIONS),
60
52
  memoryRecords: selectProjectMemoryRecords({
61
53
  relevant: options.memoryQuery?.trim() ? searchMemoryRecords({
@@ -106,9 +98,9 @@ function formatActiveProjectContextForPrompt(input) {
106
98
  const retained = input.localApp.retainedVersions.length ? input.localApp.retainedVersions.map((version) => `v${version}`).join(", ") : "none";
107
99
  lines.push("", "## Local App Runtime", `Extension id: ${sanitizeForPromptLiteral(input.localApp.extensionId)}`, `Draft version: v${input.localApp.draftVersion}`, `Installed version: ${input.localApp.activeVersion ? `v${input.localApp.activeVersion}` : "none"}`, `Installation: ${input.localApp.installationState} | enabled=${String(input.localApp.enabled)}`, `Retained releases: ${retained}`, input.localApp.latestAcceptance ? `Latest acceptance: ${input.localApp.latestAcceptance.status} | source=${sanitizeForPromptLiteral(input.localApp.latestAcceptance.sourceHash.slice(0, 12))} | checked=${new Date(input.localApp.latestAcceptance.createdAt).toISOString()}` : "Latest acceptance: none", ...input.localApp.latestAcceptance?.failures.map((failure) => `Acceptance failure: ${sanitizeForPromptLiteral(truncateText(failure, 240) ?? "")}`) ?? [], "Edit only the Project draft. Do not modify installed release artifacts directly; installation and rollback are host-managed.");
108
100
  }
109
- lines.push("", "## Active Goals");
110
- if (input.activeGoals.length === 0) lines.push("- None recorded.");
111
- else lines.push(...input.activeGoals.map(formatGoal));
101
+ lines.push("", "## Active Tasks");
102
+ if (input.activeTasks.length === 0) lines.push("- None recorded.");
103
+ else lines.push(...input.activeTasks.map(formatTask));
112
104
  lines.push("", "## Recent Project Sessions");
113
105
  if (input.recentSessions.length === 0) lines.push("- None recorded.");
114
106
  else for (const session of input.recentSessions) {
@@ -22,7 +22,7 @@ Do not manually reread startup files unless:
22
22
  ## Memory
23
23
 
24
24
  - Use runtime memory tools for recall.
25
- - Use curated memory for durable facts and preferences when available.
25
+ - Use structured user understanding for durable facts and preferences when available.
26
26
  - Cite only memory sources that a tool actually returns.
27
27
  - Keep memory concise, factual, and useful.
28
28
  - Do not store secrets unless the user explicitly asks and the storage location is appropriate.
@@ -14,6 +14,8 @@ export type RunEmbeddedForSessionParams = {
14
14
  modelManager: ModelManager;
15
15
  thinkingOverride?: string | null;
16
16
  abortSignal?: AbortSignal;
17
+ /** Absolute parent deadline. The turn's own timeout is capped to the remaining budget. */
18
+ deadlineAtMs?: number;
17
19
  onEvent?: (event: EmbeddedStreamEvent) => void;
18
20
  getConfig?: () => Config | undefined;
19
21
  beforeTurn?: () => void | Promise<void>;
@@ -48,6 +48,8 @@ async function runEmbeddedTurnForSession(params) {
48
48
  const thinkingLevel = params.thinkingOverride ?? agent.state.thinkingLevel;
49
49
  const workspaceDir = agentManager.getResolvedWorkspaceForSession(sessionKey);
50
50
  const config = params.getConfig?.();
51
+ const configuredTurnTimeoutMs = resolveAgentTurnTimeoutMs(config, sessionKey);
52
+ const turnTimeoutMs = params.deadlineAtMs === void 0 ? configuredTurnTimeoutMs : Math.max(1, Math.min(configuredTurnTimeoutMs, params.deadlineAtMs - Date.now()));
51
53
  let userMessageForTurn = userMessage;
52
54
  if (params.applyStartupContext !== false) userMessageForTurn = await applyStartupContextToUserMessage({
53
55
  userMessage,
@@ -123,7 +125,7 @@ async function runEmbeddedTurnForSession(params) {
123
125
  thinkingLevel,
124
126
  workspaceDir,
125
127
  sessionStore,
126
- timeoutMs: resolveAgentTurnTimeoutMs(config),
128
+ timeoutMs: turnTimeoutMs,
127
129
  abortSignal: params.abortSignal,
128
130
  onEvent: params.onEvent,
129
131
  resumeLastUserMessage
@@ -112,6 +112,7 @@ async function runXopcEmbeddedTurn(params) {
112
112
  thinkingLevel: thinkingLevel ?? "medium"
113
113
  });
114
114
  const { session, reused } = runner;
115
+ runner.piSm.setActiveTurnId?.(runId);
115
116
  const streamFnWithXopcExtensions = wrapStreamFnForXopcExtensions(session.agent.streamFunction);
116
117
  const loggingStreamFn = (streamModel, context, options) => {
117
118
  const sourceMessages = [...context.messages];
@@ -263,6 +264,7 @@ async function runXopcEmbeddedTurn(params) {
263
264
  try {
264
265
  runner?.piSm.flushPendingToolResults?.();
265
266
  } catch {}
267
+ runner?.piSm.setActiveTurnId?.(null);
266
268
  runner?.release();
267
269
  }
268
270
  }
@@ -64,11 +64,13 @@ export interface InstallSessionToolResultGuardResult {
64
64
  flushPendingToolResults: () => void;
65
65
  clearPendingToolResults: () => void;
66
66
  getPendingIds: () => string[];
67
+ setActiveTurnId: (turnId: string | null) => void;
67
68
  }
68
69
  /** Idempotent wrapper that also adds the helper methods consumers expect. */
69
70
  export type GuardedPiTranscriptManager = SessionManager & {
70
71
  flushPendingToolResults?: () => void;
71
72
  clearPendingToolResults?: () => void;
73
+ setActiveTurnId?: (turnId: string | null) => void;
72
74
  };
73
75
  /**
74
76
  * Install the guard on a SessionManager and return its control API.
@@ -18,7 +18,8 @@ function installSessionToolResultGuard(sessionManager, opts = {}) {
18
18
  return {
19
19
  flushPendingToolResults: () => guard.flushPending(),
20
20
  clearPendingToolResults: () => guard.clearPending(),
21
- getPendingIds: () => guard.getPendingIds()
21
+ getPendingIds: () => guard.getPendingIds(),
22
+ setActiveTurnId: (turnId) => guard.setActiveTurnId(turnId)
22
23
  };
23
24
  }
24
25
  /**
@@ -44,6 +45,7 @@ function guardSessionManager(sessionManager, opts) {
44
45
  const tagged = sessionManager;
45
46
  tagged.flushPendingToolResults = result.flushPendingToolResults;
46
47
  tagged.clearPendingToolResults = result.clearPendingToolResults;
48
+ tagged.setActiveTurnId = result.setActiveTurnId;
47
49
  return tagged;
48
50
  }
49
51
  /**
@@ -273,6 +275,7 @@ var ToolResultGuard = class {
273
275
  originalAppend;
274
276
  allowSyntheticToolResults;
275
277
  maxToolResultChars;
278
+ activeTurnId = null;
276
279
  constructor(sessionManager, opts) {
277
280
  this.sessionManager = sessionManager;
278
281
  this.opts = opts;
@@ -285,6 +288,15 @@ var ToolResultGuard = class {
285
288
  const bound = this.guardedAppend.bind(this);
286
289
  this.sessionManager.appendMessage = bound;
287
290
  }
291
+ setActiveTurnId(turnId) {
292
+ this.activeTurnId = normalizeOptionalString(turnId) ?? null;
293
+ }
294
+ withActiveTurnId(message) {
295
+ return this.activeTurnId ? {
296
+ ...message,
297
+ turnId: this.activeTurnId
298
+ } : message;
299
+ }
288
300
  flushPending() {
289
301
  if (this.pending.size() === 0) return;
290
302
  if (this.allowSyntheticToolResults) for (const [id, name] of this.pending.entries()) {
@@ -293,7 +305,7 @@ var ToolResultGuard = class {
293
305
  toolName: name,
294
306
  text: this.opts.missingToolResultText
295
307
  });
296
- const flushed = this.applyBeforeWriteHook(this.persistToolResult(this.persistMessage(synthetic), {
308
+ const flushed = this.applyBeforeWriteHook(this.persistToolResult(this.withActiveTurnId(this.persistMessage(synthetic)), {
297
309
  toolCallId: id,
298
310
  toolName: name,
299
311
  isSynthetic: true
@@ -344,7 +356,7 @@ var ToolResultGuard = class {
344
356
  const toolName = id ? this.pending.getToolName(id) : void 0;
345
357
  if (id) this.pending.delete(id);
346
358
  const normalizedToolResult = normalizePersistedToolResultName(nextMessage, toolName);
347
- const capped = capToolResultForPersistence(this.persistMessage(normalizedToolResult), this.maxToolResultChars);
359
+ const capped = capToolResultForPersistence(this.withActiveTurnId(this.persistMessage(normalizedToolResult)), this.maxToolResultChars);
348
360
  const persisted = this.applyBeforeWriteHook(this.persistToolResult(capped, {
349
361
  toolCallId: id ?? void 0,
350
362
  toolName,
@@ -364,7 +376,7 @@ var ToolResultGuard = class {
364
376
  const toolCalls = nextRole === "assistant" && stopReason !== "aborted" && stopReason !== "error" ? extractToolCallsFromAssistant(nextMessage) : [];
365
377
  if (this.pending.shouldFlushBeforeNonToolResult(nextRole, toolCalls.length)) this.flushPending();
366
378
  if (this.pending.shouldFlushBeforeNewToolCalls(toolCalls.length)) this.flushPending();
367
- const finalMessage = this.applyBeforeWriteHook(this.persistMessage(nextMessage));
379
+ const finalMessage = this.applyBeforeWriteHook(this.withActiveTurnId(this.persistMessage(nextMessage)));
368
380
  if (!finalMessage) return;
369
381
  const result = this.originalAppend(finalMessage);
370
382
  if (this.opts.sessionKey) emitSessionTranscriptUpdate({
@@ -181,7 +181,7 @@ var InboundLoop = class {
181
181
  assistantPlainText,
182
182
  aborted: false,
183
183
  ...busProcessFailed !== void 0 ? { streamError: busProcessFailed } : {},
184
- skipPersistentGoalPostTurn: false,
184
+ skipTaskReview: false,
185
185
  outboundMetadata: {
186
186
  accountId: meta?.accountId,
187
187
  threadId: meta?.threadId
@@ -57,12 +57,17 @@ export interface TurnDispatcherConfig {
57
57
  sourceContextResolver?: AgentSourceContextResolver;
58
58
  }
59
59
  export type DirectAttachment = InboundAttachmentInput;
60
+ export interface ProcessDirectOptions {
61
+ signal?: AbortSignal;
62
+ runId?: string;
63
+ deadlineAtMs?: number;
64
+ }
60
65
  export declare class TurnDispatcher {
61
66
  private readonly cfg;
62
67
  private readonly log;
63
68
  constructor(cfg: TurnDispatcherConfig);
64
69
  /** One-shot direct turn (CLI / embedded TUI). */
65
- processDirect(content: string, sessionKey?: string, attachments?: DirectAttachment[], thinking?: string): Promise<string>;
70
+ processDirect(content: string, sessionKey?: string, attachments?: DirectAttachment[], thinking?: string, options?: ProcessDirectOptions): Promise<string>;
66
71
  /** Streaming direct turn (webchat SSE / CLI streaming). */
67
72
  processDirectStreaming(content: string, sessionKey?: string, attachments?: DirectAttachment[], thinking?: string, options?: {
68
73
  signal?: AbortSignal;