@xopcai/xopc 0.0.312 → 0.0.314

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 (497) hide show
  1. package/dist/browser-ext/dist/assets/{auth-C3yV1y_l.js → auth-DKo-NMUY.js} +18 -1
  2. package/dist/browser-ext/dist/background.js +68 -2
  3. package/dist/browser-ext/dist/sidepanel.html +1 -1
  4. package/dist/browser-ext/dist/sidepanel.js +1 -1
  5. package/dist/browser-ext/manifest.json +1 -1
  6. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  7. package/dist/extensions/telegram/src/inbound-processor.js +1 -1
  8. package/dist/extensions/telegram/src/plugin.js +2 -2
  9. package/dist/extensions/telegram/xopc.extension.json +1 -1
  10. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BVIJMP8w.js → agent-avatar-dicebear-BFkjfurL.js} +1 -1
  11. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-BdOZ6q8Z.js +1 -0
  12. package/dist/gateway/static/root/assets/{agents-D6g_SeWI.js → agents-CCcavsHq.js} +1 -1
  13. package/dist/gateway/static/root/assets/{api-_aHQA8bd.js → api-BYhRsTAc.js} +1 -1
  14. package/dist/gateway/static/root/assets/{app-link-CKueEVbT.js → app-link-nL8iPwEr.js} +1 -1
  15. package/dist/gateway/static/root/assets/{app-management-settings-panel-CLg_aXYG.js → app-management-settings-panel-B4kihr-A.js} +1 -1
  16. package/dist/gateway/static/root/assets/appearance-settings-N9sYmNOx.js +1 -0
  17. package/dist/gateway/static/root/assets/apps-page-BMcy10_s.js +1 -0
  18. package/dist/gateway/static/root/assets/{archive-plugin-CHO3heHX.js → archive-plugin-k_SuYWyV.js} +1 -1
  19. package/dist/gateway/static/root/assets/{attachment-load-BsmsBCI2.js → attachment-load-DRv5QWUK.js} +1 -1
  20. package/dist/gateway/static/root/assets/{automations-page-CftigJlf.js → automations-page-CkJV3DN0.js} +1 -1
  21. package/dist/gateway/static/root/assets/automations-workspace-BEa2doeR.js +7 -0
  22. package/dist/gateway/static/root/assets/{binary-plugins-CRCLWBo2.js → binary-plugins-Dg3h3TA7.js} +1 -1
  23. package/dist/gateway/static/root/assets/{block-editor-D0LDiOTT.js → block-editor-DVhdHntT.js} +29 -29
  24. package/dist/gateway/static/root/assets/{browser-automation-inputs-C611KRBx.js → browser-automation-inputs-BMRYUW8_.js} +1 -1
  25. package/dist/gateway/static/root/assets/{browser-automations-page-Djyv3vy-.js → browser-automations-page-Byv6-FY2.js} +2 -2
  26. package/dist/gateway/static/root/assets/browser-settings-page-DRCHGFpO.js +3 -0
  27. package/dist/gateway/static/root/assets/capabilities-D0S3DuAD.js +1 -0
  28. package/dist/gateway/static/root/assets/capabilities-settings-panel-mxRP0gl0.js +8 -0
  29. package/dist/gateway/static/root/assets/channels-settings-DBt_6GsB.js +1 -0
  30. package/dist/gateway/static/root/assets/{chat-terminal-dock-CIsKqdET.js → chat-terminal-dock-D4AHa51o.js} +2 -2
  31. package/dist/gateway/static/root/assets/{computer-settings-page-C0YL9J7m.js → computer-settings-page-eXPe500D.js} +1 -1
  32. package/dist/gateway/static/root/assets/connector-service-page-BQTFlq_k.js +1 -0
  33. package/dist/gateway/static/root/assets/connectors-page-BKeBWwcI.js +2 -0
  34. package/dist/gateway/static/root/assets/conversation-identity-Cw0n9uzK.js +1 -0
  35. package/dist/gateway/static/root/assets/{date-picker-CDsfv8R0.js → date-picker-7MtovynY.js} +1 -1
  36. package/dist/gateway/static/root/assets/{dependency-picker-DvhPj3CZ.js → dependency-picker-Bj_xkXID.js} +1 -1
  37. package/dist/gateway/static/root/assets/{desktop-pet-Cyg8XMpL.js → desktop-pet-CTmba9zH.js} +1 -1
  38. package/dist/gateway/static/root/assets/desktop-pet-settings-DNM_BlWN.js +1 -0
  39. package/dist/gateway/static/root/assets/device-pairing-wizard-C2XE0QhT.js +1 -0
  40. package/dist/gateway/static/root/assets/{extension-debug-page-D-AVJU3q.js → extension-debug-page-J_olaL7e.js} +1 -1
  41. package/dist/gateway/static/root/assets/{extension-page-DrFoQ9xt.js → extension-page-pK5RvqN8.js} +1 -1
  42. package/dist/gateway/static/root/assets/{extension-settings-page-DxWjESC1.js → extension-settings-page-BwroEN08.js} +1 -1
  43. package/dist/gateway/static/root/assets/files-BK6enEvD.js +1 -0
  44. package/dist/gateway/static/root/assets/{gateway-config-swr-DUDX42qY.js → gateway-config-swr-FuJTIg_a.js} +1 -1
  45. package/dist/gateway/static/root/assets/gateway-settings-CLLDp23J.js +1 -0
  46. package/dist/gateway/static/root/assets/{gateway-startup-retry-Cf8OxlvY.js → gateway-startup-retry-CKg_gu8_.js} +1 -1
  47. package/dist/gateway/static/root/assets/home-page-B5Epb1PH.js +1 -0
  48. package/dist/gateway/static/root/assets/{image-generation-api-D2YorS--.js → image-generation-api-Bo6NZ7zb.js} +1 -1
  49. package/dist/gateway/static/root/assets/{imports-page-BKucJlXI.js → imports-page-C8-hX8gS.js} +1 -1
  50. package/dist/gateway/static/root/assets/index-14F1yGJI.js +89 -0
  51. package/dist/gateway/static/root/assets/index-cB7rWIDY.css +1 -0
  52. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-BxLXD-yU.js → keyboard-shortcuts-settings-BkBEjUZD.js} +1 -1
  53. package/dist/gateway/static/root/assets/local-app-workbench-page-6jC3vQpY.js +2 -0
  54. package/dist/gateway/static/root/assets/{local-apps-page-BAsQJQKJ.js → local-apps-page-CrbKIixo.js} +1 -1
  55. package/dist/gateway/static/root/assets/{locale-store-DA0Z5jM_.js → locale-store-CvGwNbml.js} +1 -1
  56. package/dist/gateway/static/root/assets/logs-page-DBHlZts9.js +2 -0
  57. package/dist/gateway/static/root/assets/management-settings-DsUWLu5m.js +1 -0
  58. package/dist/gateway/static/root/assets/{markdown-view-DYGPxPee.js → markdown-view-nXo5nrsv.js} +1 -1
  59. package/dist/gateway/static/root/assets/{media-plugins-CQtQzLyg.js → media-plugins-upxXJ-4l.js} +1 -1
  60. package/dist/gateway/static/root/assets/messages-B_AwRroN.js +3 -0
  61. package/dist/gateway/static/root/assets/note-detail-panel-0Q9TOtJG.js +5 -0
  62. package/dist/gateway/static/root/assets/notes-page-D0NmcwNw.js +8 -0
  63. package/dist/gateway/static/root/assets/page-context-capture-button-DUyA-K4L.js +1 -0
  64. package/dist/gateway/static/root/assets/{page-tabs-B6DjkyMM.js → page-tabs-Cl-NFPNr.js} +1 -1
  65. package/dist/gateway/static/root/assets/{preview-open-alternatives-Dn57uLhr.js → preview-open-alternatives-DX81PwJ3.js} +1 -1
  66. package/dist/gateway/static/root/assets/product-delivery-chCjIpvu.js +1 -0
  67. package/dist/gateway/static/root/assets/{product-open-page-H2YMk8TY.js → product-open-page-CrfIGwm8.js} +1 -1
  68. package/dist/gateway/static/root/assets/project-detail-page-BVfVrYmn.js +1 -0
  69. package/dist/gateway/static/root/assets/projects-page-nM9a9XNS.js +1 -0
  70. package/dist/gateway/static/root/assets/{registry-api-C0DCx3wv.js → registry-api-CHxgohY0.js} +1 -1
  71. package/dist/gateway/static/root/assets/remote-access-hub-C8b_k88G.js +1 -0
  72. package/dist/gateway/static/root/assets/runtime-tools-settings-panel-D3dLOW04.js +5 -0
  73. package/dist/gateway/static/root/assets/scenes-page-DEowreZV.js +2 -0
  74. package/dist/gateway/static/root/assets/{schema-form-CblI9WUA.js → schema-form-ZxuIvD2_.js} +1 -1
  75. package/dist/gateway/static/root/assets/schemas-88fK3zzl.js +64 -0
  76. package/dist/gateway/static/root/assets/sessions-page-B_nPhera.js +1 -0
  77. package/dist/gateway/static/root/assets/settings-advanced-gate-BqhIOuus.js +1 -0
  78. package/dist/gateway/static/root/assets/{settings-form-section-BAaVyxJH.js → settings-form-section-TZRfg4yo.js} +1 -1
  79. package/dist/gateway/static/root/assets/{settings-page-CKNPbm5q.js → settings-page-a8qcJpdZ.js} +1 -1
  80. package/dist/gateway/static/root/assets/{settings-page-layout-DqNCGKxQ.js → settings-page-layout-BfvlRT9q.js} +1 -1
  81. package/dist/gateway/static/root/assets/setup-status-panel-CRj5Ruqn.js +1 -0
  82. package/dist/gateway/static/root/assets/{share-preview-page-BzMfp_HM.js → share-preview-page-DCt1pTWB.js} +1 -1
  83. package/dist/gateway/static/root/assets/shares-settings-BNbXPk--.js +1 -0
  84. package/dist/gateway/static/root/assets/skill-reload-api-CNMCLbav.js +1 -0
  85. package/dist/gateway/static/root/assets/{skills-page-DIht92q6.js → skills-page-BIOcg44X.js} +1 -1
  86. package/dist/gateway/static/root/assets/{skills-page.utils-DLYRiEn3.js → skills-page.utils-CgZdzT4I.js} +1 -1
  87. package/dist/gateway/static/root/assets/{system-settings-panel-yYs4YgYk.js → system-settings-panel-_YaRncA6.js} +1 -1
  88. package/dist/gateway/static/root/assets/task-detail-page-CAcfAG-c.js +1 -0
  89. package/dist/gateway/static/root/assets/tasks-CDR_RVbQ.js +1 -0
  90. package/dist/gateway/static/root/assets/{tunnel-api-BasDYxvx.js → tunnel-api-uOupJOoS.js} +1 -1
  91. package/dist/gateway/static/root/assets/turn-outcome-D0SnyZ3Z.js +1 -0
  92. package/dist/gateway/static/root/assets/{use-autosave-CWAUHhcb.js → use-autosave-BezzHBLE.js} +1 -1
  93. package/dist/gateway/static/root/assets/user-model-page-BFFeneDq.js +2 -0
  94. package/dist/gateway/static/root/assets/{voice-api-key-field-Kc4UlxZs.js → voice-api-key-field-BmYifdwL.js} +1 -1
  95. package/dist/gateway/static/root/assets/{voice-config-api-DTyMdGOR.js → voice-config-api-D_5Q2_A3.js} +1 -1
  96. package/dist/gateway/static/root/assets/{work-discovery-overlay-BPC_c9dO.js → work-discovery-overlay-4DmyEckJ.js} +1 -1
  97. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-DBTciOrq.js → workflow-run-setup-panel-DeZe8bTZ.js} +2 -2
  98. package/dist/gateway/static/root/assets/workflows-page-Sv4hEc6W.js +6 -0
  99. package/dist/gateway/static/root/index.html +16 -16
  100. package/dist/package.js +1 -1
  101. package/dist/packages/computer-control-contract/src/index.js +10 -1
  102. package/dist/packages/gateway-contract/src/app-context.js +55 -0
  103. package/dist/packages/gateway-contract/src/automations.js +16 -17
  104. package/dist/packages/gateway-contract/src/capabilities.js +1078 -0
  105. package/dist/packages/gateway-contract/src/extension-capabilities.js +26 -0
  106. package/dist/packages/gateway-contract/src/home.js +3 -3
  107. package/dist/packages/gateway-contract/src/index.js +8 -0
  108. package/dist/packages/gateway-contract/src/product-delivery.js +19 -4
  109. package/dist/packages/gateway-contract/src/scenes.js +199 -0
  110. package/dist/packages/gateway-contract/src/task-runs.js +8 -4
  111. package/dist/packages/gateway-contract/src/tasks.js +5 -4
  112. package/dist/packages/realtime-client/src/index.js +17 -4
  113. package/dist/src/agent/agent-manager.d.ts +1 -0
  114. package/dist/src/agent/agent-manager.js +1 -0
  115. package/dist/src/agent/child-agent-factory.d.ts +2 -0
  116. package/dist/src/agent/child-agent-factory.js +5 -0
  117. package/dist/src/agent/commands/approved-verification.d.ts +14 -0
  118. package/dist/src/agent/commands/approved-verification.js +48 -0
  119. package/dist/src/agent/context/execution-scope.js +2 -1
  120. package/dist/src/agent/context/project-context.js +2 -1
  121. package/dist/src/agent/external-tools/cliProvider.js +123 -75
  122. package/dist/src/agent/external-tools/composio-provider.d.ts +1 -1
  123. package/dist/src/agent/external-tools/composio-provider.js +70 -12
  124. package/dist/src/agent/external-tools/endpoint-provider.js +14 -1
  125. package/dist/src/agent/inbound/turn-dispatcher.d.ts +2 -0
  126. package/dist/src/agent/inbound/turn-dispatcher.js +2 -1
  127. package/dist/src/agent/memory/compaction-chunks.d.ts +6 -1
  128. package/dist/src/agent/memory/compaction-chunks.js +16 -3
  129. package/dist/src/agent/memory/compaction-ledger.d.ts +3 -1
  130. package/dist/src/agent/memory/compaction-ledger.js +31 -18
  131. package/dist/src/agent/memory/compaction-request.d.ts +2 -0
  132. package/dist/src/agent/memory/compaction-request.js +6 -1
  133. package/dist/src/agent/memory/compaction.d.ts +19 -1
  134. package/dist/src/agent/memory/compaction.js +112 -30
  135. package/dist/src/agent/service/process-direct-streaming.d.ts +3 -0
  136. package/dist/src/agent/service/process-direct-streaming.js +19 -10
  137. package/dist/src/agent/service.js +1 -0
  138. package/dist/src/agent/service.types.d.ts +1 -0
  139. package/dist/src/agent/skills/config.js +2 -0
  140. package/dist/src/agent/skills/format-skills-prompt.js +14 -1
  141. package/dist/src/agent/skills/index.js +16 -8
  142. package/dist/src/agent/skills/types.d.ts +1 -1
  143. package/dist/src/agent/source-context/app-context.d.ts +4 -0
  144. package/dist/src/agent/source-context/app-context.js +36 -0
  145. package/dist/src/agent/source-context/injector.js +1 -0
  146. package/dist/src/agent/source-context/types.d.ts +5 -1
  147. package/dist/src/agent/tasks/task-judge-service.js +2 -1
  148. package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
  149. package/dist/src/agent/tool-manuals/computer.js +1 -1
  150. package/dist/src/agent/tools/automation-tool.d.ts +12 -1
  151. package/dist/src/agent/tools/automation-tool.js +106 -32
  152. package/dist/src/agent/tools/factory.d.ts +1 -0
  153. package/dist/src/agent/tools/factory.js +6 -1
  154. package/dist/src/agent/tools/scoped-workspace-tools.d.ts +8 -0
  155. package/dist/src/agent/tools/scoped-workspace-tools.js +81 -0
  156. package/dist/src/agent/tools/xopc-use-tool.d.ts +6 -3
  157. package/dist/src/agent/tools/xopc-use-tool.js +997 -908
  158. package/dist/src/agent/workflow/subagent-runner.js +1 -0
  159. package/dist/src/agent-config/index.js +2 -2
  160. package/dist/src/agent-config/schema.d.ts +5 -0
  161. package/dist/src/agent-config/schema.js +14 -10
  162. package/dist/src/automations/api/routes.js +244 -164
  163. package/dist/src/automations/capabilities/drafts.d.ts +4 -0
  164. package/dist/src/automations/capabilities/drafts.js +95 -0
  165. package/dist/src/automations/capabilities/read.d.ts +4 -0
  166. package/dist/src/automations/capabilities/read.js +119 -0
  167. package/dist/src/automations/capabilities/write.d.ts +349 -0
  168. package/dist/src/automations/capabilities/write.js +172 -0
  169. package/dist/src/automations/domain/index.js +2 -2
  170. package/dist/src/automations/domain/validation.d.ts +77 -77
  171. package/dist/src/automations/domain/validation.js +9 -6
  172. package/dist/src/automations/draft/automation-draft-validator.d.ts +2 -2
  173. package/dist/src/automations/index.js +6 -6
  174. package/dist/src/automations/service/automation-service.d.ts +31 -0
  175. package/dist/src/automations/service/automation-service.js +213 -75
  176. package/dist/src/automations/service/index.js +2 -2
  177. package/dist/src/automations/storage/automation-repository.d.ts +2 -0
  178. package/dist/src/automations/storage/automation-repository.js +9 -1
  179. package/dist/src/automations/storage/automation-run-repository.d.ts +4 -1
  180. package/dist/src/automations/storage/automation-run-repository.js +16 -3
  181. package/dist/src/automations/storage/index.js +3 -3
  182. package/dist/src/browser/automations/schema.d.ts +1 -1
  183. package/dist/src/browser/automations/service.d.ts +1 -1
  184. package/dist/src/browser/observation/format.js +4 -0
  185. package/dist/src/capabilities/adapters/http.d.ts +4 -0
  186. package/dist/src/capabilities/adapters/http.js +44 -0
  187. package/dist/src/capabilities/readiness/from-config.js +11 -7
  188. package/dist/src/capabilities/runtime/app-context.d.ts +3 -0
  189. package/dist/src/capabilities/runtime/app-context.js +72 -0
  190. package/dist/src/capabilities/runtime/atomic-operations.d.ts +11 -0
  191. package/dist/src/capabilities/runtime/atomic-operations.js +34 -0
  192. package/dist/src/capabilities/runtime/dispatcher.d.ts +67 -0
  193. package/dist/src/capabilities/runtime/dispatcher.js +170 -0
  194. package/dist/src/capabilities/runtime/errors.d.ts +6 -0
  195. package/dist/src/capabilities/runtime/errors.js +11 -0
  196. package/dist/src/capabilities/runtime/external-operations.d.ts +16 -0
  197. package/dist/src/capabilities/runtime/external-operations.js +92 -0
  198. package/dist/src/capabilities/runtime/product.d.ts +12 -0
  199. package/dist/src/capabilities/runtime/product.js +69 -0
  200. package/dist/src/capabilities/runtime/settings.d.ts +3 -0
  201. package/dist/src/capabilities/runtime/settings.js +27 -0
  202. package/dist/src/channels/index.js +2 -2
  203. package/dist/src/channels/manager.js +1 -1
  204. package/dist/src/cli/cli-log-level-preset.d.ts +2 -0
  205. package/dist/src/cli/cli-log-level-preset.js +4 -0
  206. package/dist/src/cli/command-catalog.js +4 -0
  207. package/dist/src/cli/command-loaders.js +1 -0
  208. package/dist/src/cli/command-manifest.js +4 -0
  209. package/dist/src/cli/commands/channels.js +1 -1
  210. package/dist/src/cli/commands/connectors.js +1 -1
  211. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  212. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  213. package/dist/src/cli/commands/mcp.d.ts +1 -0
  214. package/dist/src/cli/commands/mcp.js +51 -0
  215. package/dist/src/cli/commands/models.js +1 -1
  216. package/dist/src/cli/commands/onboard.js +1 -1
  217. package/dist/src/cli/commands/project.js +1 -1
  218. package/dist/src/computer/broker.d.ts +0 -1
  219. package/dist/src/computer/broker.js +4 -6
  220. package/dist/src/computer/evaluation-harness.d.ts +45 -0
  221. package/dist/src/computer/evaluation-harness.js +108 -0
  222. package/dist/src/computer/model-adapter.d.ts +37 -2
  223. package/dist/src/computer/model-adapter.js +333 -42
  224. package/dist/src/computer/model-policy.d.ts +4 -1
  225. package/dist/src/computer/model-policy.js +11 -3
  226. package/dist/src/computer/release-gate.d.ts +22 -0
  227. package/dist/src/computer/release-gate.js +19 -0
  228. package/dist/src/computer/runtime.js +14 -10
  229. package/dist/src/computer/task-state.d.ts +1 -0
  230. package/dist/src/computer/task-state.js +1 -0
  231. package/dist/src/config/models-json.d.ts +14 -8
  232. package/dist/src/config/models-json.js +1 -1
  233. package/dist/src/config/schema.d.ts +4 -0
  234. package/dist/src/config/schema.js +3 -9
  235. package/dist/src/connectors/composio-sessions.d.ts +4 -2
  236. package/dist/src/connectors/composio-sessions.js +10 -9
  237. package/dist/src/connectors/composio.js +10 -8
  238. package/dist/src/discussions/action-tasks.js +2 -1
  239. package/dist/src/discussions/recording.js +1 -1
  240. package/dist/src/execution-environments/local-worktree-manager.d.ts +1 -0
  241. package/dist/src/execution-environments/local-worktree-manager.js +13 -2
  242. package/dist/src/extensions/activation-context.js +3 -3
  243. package/dist/src/extensions/api.js +1 -1
  244. package/dist/src/extensions/normalize-manifest.js +6 -1
  245. package/dist/src/extensions/sdk/index.js +1 -1
  246. package/dist/src/extensions/sdk/media.js +1 -1
  247. package/dist/src/extensions/types/manifest.d.ts +3 -0
  248. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  249. package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -0
  250. package/dist/src/gateway/hono/middleware/scopes.js +1 -1
  251. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +5 -2
  252. package/dist/src/gateway/hono/routes/capability-operations.d.ts +3 -0
  253. package/dist/src/gateway/hono/routes/capability-operations.js +52 -0
  254. package/dist/src/gateway/hono/routes/lazy-bundles.js +16 -0
  255. package/dist/src/gateway/hono/routes/local-app-capabilities.d.ts +4 -0
  256. package/dist/src/gateway/hono/routes/local-app-capabilities.js +41 -0
  257. package/dist/src/gateway/hono/routes/local-apps.js +41 -9
  258. package/dist/src/gateway/hono/routes/models.js +2 -2
  259. package/dist/src/gateway/hono/routes/notes.js +215 -146
  260. package/dist/src/gateway/hono/routes/projects.js +217 -374
  261. package/dist/src/gateway/hono/routes/scenes.js +188 -75
  262. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +60 -16
  263. package/dist/src/gateway/hono/routes/session-input-handler.js +43 -1
  264. package/dist/src/gateway/hono/routes/sessions.js +17 -0
  265. package/dist/src/gateway/hono/routes/status.js +1 -1
  266. package/dist/src/gateway/hono/routes/tasks.js +182 -326
  267. package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -1
  268. package/dist/src/gateway/hono/routes/voice.js +4 -4
  269. package/dist/src/gateway/hono/routes/workflows.js +1 -1
  270. package/dist/src/gateway/media-access.js +2 -1
  271. package/dist/src/gateway/mobile-privacy.js +2 -2
  272. package/dist/src/gateway/scenes/host.js +14 -3
  273. package/dist/src/gateway/scenes/mailContext.js +1 -1
  274. package/dist/src/gateway/scenes/slackThreadSource.d.ts +41 -0
  275. package/dist/src/gateway/scenes/slackThreadSource.js +168 -0
  276. package/dist/src/gateway/security/gateway-scopes.d.ts +1 -1
  277. package/dist/src/gateway/security/gateway-scopes.js +5 -0
  278. package/dist/src/gateway/service/app-context-access.d.ts +11 -0
  279. package/dist/src/gateway/service/app-context-access.js +70 -0
  280. package/dist/src/gateway/service/run-gateway-agent.js +11 -2
  281. package/dist/src/gateway/service/session-input-coordinator.js +54 -15
  282. package/dist/src/gateway/service/sessions-api.d.ts +1 -0
  283. package/dist/src/gateway/service/sessions-api.js +3 -0
  284. package/dist/src/gateway/service/task-conversation-query-service.d.ts +3 -1
  285. package/dist/src/gateway/service/task-conversation-query-service.js +32 -3
  286. package/dist/src/gateway/service.d.ts +3 -0
  287. package/dist/src/gateway/service.js +69 -15
  288. package/dist/src/gateway/session-context-summary.js +2 -1
  289. package/dist/src/{tasks/task-outbox-dispatcher.d.ts → infra/domain-outbox-dispatcher.d.ts} +2 -2
  290. package/dist/src/{tasks/task-outbox-dispatcher.js → infra/domain-outbox-dispatcher.js} +10 -9
  291. package/dist/src/infra/operation-context.d.ts +2 -0
  292. package/dist/src/infra/operation-context.js +16 -0
  293. package/dist/src/local-apps/capabilities/contracts.d.ts +2 -0
  294. package/dist/src/local-apps/capabilities/contracts.js +32 -0
  295. package/dist/src/local-apps/capabilities/read.d.ts +3 -0
  296. package/dist/src/local-apps/capabilities/read.js +48 -0
  297. package/dist/src/local-apps/capabilities/runtime.d.ts +16 -0
  298. package/dist/src/local-apps/capabilities/runtime.js +66 -0
  299. package/dist/src/local-apps/capabilities/write.d.ts +3 -0
  300. package/dist/src/local-apps/capabilities/write.js +35 -0
  301. package/dist/src/local-apps/release-lock.d.ts +2 -0
  302. package/dist/src/local-apps/release-lock.js +20 -0
  303. package/dist/src/local-apps/runtime-entry.d.ts +0 -2
  304. package/dist/src/local-apps/runtime-entry.js +1 -14
  305. package/dist/src/local-apps/scaffold.js +4 -1
  306. package/dist/src/local-apps/service.d.ts +24 -1
  307. package/dist/src/local-apps/service.js +186 -43
  308. package/dist/src/local-apps/store.js +0 -2
  309. package/dist/src/mcp/capability-server.d.ts +4 -0
  310. package/dist/src/mcp/capability-server.js +96 -0
  311. package/dist/src/mcp/channel-bridge.js +1 -1
  312. package/dist/src/mcp/gateway-http-client.d.ts +7 -0
  313. package/dist/src/mcp/gateway-http-client.js +27 -5
  314. package/dist/src/media-understanding/openai-compatible-audio.js +1 -1
  315. package/dist/src/notes/agent-context.js +1 -1
  316. package/dist/src/notes/capabilities/read.d.ts +3 -0
  317. package/dist/src/notes/capabilities/read.js +96 -0
  318. package/dist/src/notes/capabilities/write.d.ts +7 -0
  319. package/dist/src/notes/capabilities/write.js +152 -0
  320. package/dist/src/notes/index.js +1 -1
  321. package/dist/src/notes/service.d.ts +12 -4
  322. package/dist/src/notes/service.js +188 -175
  323. package/dist/src/notes/store.d.ts +14 -9
  324. package/dist/src/notes/store.js +81 -21
  325. package/dist/src/notifications/service.d.ts +1 -0
  326. package/dist/src/notifications/service.js +5 -0
  327. package/dist/src/platform/client.d.ts +1 -1
  328. package/dist/src/platform/contracts.d.ts +1 -1
  329. package/dist/src/projects/capabilities/read.d.ts +3 -0
  330. package/dist/src/projects/capabilities/read.js +81 -0
  331. package/dist/src/projects/capabilities/write.d.ts +9 -0
  332. package/dist/src/projects/capabilities/write.js +260 -0
  333. package/dist/src/projects/index.js +2 -2
  334. package/dist/src/projects/project-change-events.d.ts +2 -0
  335. package/dist/src/projects/project-change-events.js +18 -0
  336. package/dist/src/projects/project-service.d.ts +11 -0
  337. package/dist/src/projects/project-service.js +121 -42
  338. package/dist/src/projects/project-store.js +12 -2
  339. package/dist/src/projects/project-workspace-creation.d.ts +3 -0
  340. package/dist/src/projects/project-workspace-creation.js +45 -0
  341. package/dist/src/projects/workspace-project.js +6 -0
  342. package/dist/src/providers/model-catalog-types.d.ts +2 -1
  343. package/dist/src/providers/model-reference-auditor.js +4 -4
  344. package/dist/src/providers/model-supplements.js +13 -3
  345. package/dist/src/providers/presentation.js +3 -3
  346. package/dist/src/providers/xopc-cloud-model-source.js +4 -2
  347. package/dist/src/realtime/runtime.js +4 -0
  348. package/dist/src/scenes/capabilities/read.d.ts +3 -0
  349. package/dist/src/scenes/capabilities/read.js +187 -0
  350. package/dist/src/scenes/capabilities/write.d.ts +3 -0
  351. package/dist/src/scenes/capabilities/write.js +151 -0
  352. package/dist/src/scenes/contracts.d.ts +2 -105
  353. package/dist/src/scenes/contracts.js +3 -88
  354. package/dist/src/scenes/execution.d.ts +1 -1
  355. package/dist/src/scenes/httpServices.d.ts +2 -0
  356. package/dist/src/scenes/inbox.d.ts +1 -0
  357. package/dist/src/scenes/inbox.js +7 -7
  358. package/dist/src/scenes/preferences.d.ts +3 -24
  359. package/dist/src/scenes/preferences.js +8 -30
  360. package/dist/src/scenes/repository.d.ts +1 -0
  361. package/dist/src/scenes/repository.js +7 -3
  362. package/dist/src/scenes/resultNotifications.js +2 -2
  363. package/dist/src/scenes/schedule.d.ts +1 -8
  364. package/dist/src/scenes/schedule.js +3 -15
  365. package/dist/src/scenes/service.d.ts +6 -0
  366. package/dist/src/scenes/service.js +29 -25
  367. package/dist/src/scenes/taskFollowUp/agentExecutor.d.ts +36 -0
  368. package/dist/src/scenes/taskFollowUp/agentExecutor.js +149 -0
  369. package/dist/src/scenes/taskFollowUp/branchInventory.d.ts +38 -0
  370. package/dist/src/scenes/taskFollowUp/branchInventory.js +70 -0
  371. package/dist/src/scenes/taskFollowUp/contracts.d.ts +91 -0
  372. package/dist/src/scenes/taskFollowUp/contracts.js +100 -0
  373. package/dist/src/scenes/taskFollowUp/resources.d.ts +19 -0
  374. package/dist/src/scenes/taskFollowUp/resources.js +97 -0
  375. package/dist/src/scenes/taskFollowUp/service.d.ts +810 -0
  376. package/dist/src/scenes/taskFollowUp/service.js +710 -0
  377. package/dist/src/scenes/taskFollowUp/workspaceFingerprint.d.ts +2 -0
  378. package/dist/src/scenes/taskFollowUp/workspaceFingerprint.js +46 -0
  379. package/dist/src/scenes/templates.d.ts +2 -2
  380. package/dist/src/scenes/templates.js +1 -1
  381. package/dist/src/session/session-find.d.ts +17 -0
  382. package/dist/src/session/session-find.js +56 -0
  383. package/dist/src/session/store.d.ts +4 -0
  384. package/dist/src/session/store.js +43 -7
  385. package/dist/src/share/note-share-revocation.d.ts +3 -0
  386. package/dist/src/share/note-share-revocation.js +26 -0
  387. package/dist/src/storage/sqlite/migrations/190_scene_development.sql +37 -0
  388. package/dist/src/storage/sqlite/migrations/191_scene_task_follow_up.sql +27 -0
  389. package/dist/src/storage/sqlite/migrations/192_capability_operations.sql +20 -0
  390. package/dist/src/storage/sqlite/migrations/193_note_file_cleanup.sql +8 -0
  391. package/dist/src/storage/sqlite/migrations/194_capability_external_outcomes.sql +11 -0
  392. package/dist/src/storage/sqlite/migrations/195_automation_deleted_revisions.sql +4 -0
  393. package/dist/src/storage/sqlite/migrations/196_automation_run_requests.sql +23 -0
  394. package/dist/src/storage/sqlite/migrations/197_note_deletion_cleanup.sql +8 -0
  395. package/dist/src/storage/sqlite/migrations/198_project_workspace_creation.sql +7 -0
  396. package/dist/src/storage/sqlite/migrations/199_scene_resource_events.sql +488 -0
  397. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  398. package/dist/src/storage/sqlite/migrations/runner.js +6 -3
  399. package/dist/src/storage/sqlite/schema.js +1 -1
  400. package/dist/src/storage/sqlite/transaction.d.ts +5 -0
  401. package/dist/src/storage/sqlite/transaction.js +34 -3
  402. package/dist/src/tasks/capabilities/management.d.ts +195 -0
  403. package/dist/src/tasks/capabilities/management.js +111 -0
  404. package/dist/src/tasks/capabilities/read.d.ts +2 -0
  405. package/dist/src/tasks/capabilities/read.js +141 -0
  406. package/dist/src/tasks/capabilities/relations.d.ts +204 -0
  407. package/dist/src/tasks/capabilities/relations.js +140 -0
  408. package/dist/src/tasks/capabilities/runs.d.ts +2 -0
  409. package/dist/src/tasks/capabilities/runs.js +89 -0
  410. package/dist/src/tasks/capabilities/write.d.ts +207 -0
  411. package/dist/src/tasks/capabilities/write.js +107 -0
  412. package/dist/src/tasks/home-query-service.js +3 -2
  413. package/dist/src/tasks/index.d.ts +0 -1
  414. package/dist/src/tasks/index.js +9 -9
  415. package/dist/src/tasks/project-operating-view-service.js +2 -1
  416. package/dist/src/tasks/task-application-service.d.ts +1 -0
  417. package/dist/src/tasks/task-application-service.js +3 -2
  418. package/dist/src/tasks/task-change-events.js +5 -3
  419. package/dist/src/tasks/task-context-assembler.js +2 -1
  420. package/dist/src/tasks/task-deletion-service.js +2 -1
  421. package/dist/src/tasks/task-dependency-service.js +2 -1
  422. package/dist/src/tasks/task-handoff-service.js +2 -1
  423. package/dist/src/tasks/task-read-model-projector.js +2 -1
  424. package/dist/src/tasks/task-repository.d.ts +12 -7
  425. package/dist/src/tasks/task-repository.js +175 -154
  426. package/dist/src/tasks/task-run-coordinator.js +2 -1
  427. package/dist/src/tasks/task-run-dispatcher.js +2 -1
  428. package/dist/src/tasks/task-run-repository.d.ts +1 -0
  429. package/dist/src/tasks/task-run-repository.js +29 -14
  430. package/dist/src/tasks/task-signal-service.js +2 -1
  431. package/dist/src/tui/backends/embedded-backend.js +1 -1
  432. package/dist/src/tui/backends/gateway-realtime-backend.js +1 -1
  433. package/dist/src/tui/tui-commands.js +1 -1
  434. package/dist/src/user-context/config.d.ts +13 -0
  435. package/dist/src/user-context/config.js +2 -0
  436. package/dist/src/voice/platform-catalog.d.ts +1 -1
  437. package/dist/src/voice/realtime/runtime.js +3 -3
  438. package/dist/src/voice/stt/providers/alibaba-transcription.js +1 -1
  439. package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +1 -1
  440. package/dist/src/voice/tts/providers/xopc-cloud-speech.js +1 -1
  441. package/dist/src/work-discovery/incremental-repository.js +1 -1
  442. package/dist/src/work-discovery/index.js +1 -1
  443. package/dist/src/work-discovery/repository.d.ts +1 -1
  444. package/dist/src/work-discovery/repository.js +3 -2
  445. package/dist/src/work-discovery/service.d.ts +4 -0
  446. package/dist/src/work-discovery/service.js +36 -11
  447. package/dist/src/workflows/context/workflow-context.js +3 -2
  448. package/dist/src/workflows/service/workflow-run-service.js +2 -1
  449. package/package.json +6 -2
  450. package/skills/THIRD_PARTY_NOTICES.md +2 -2
  451. package/skills/documents/xlsx/SKILL.md +5 -0
  452. package/skills/engineering/build-xopc-local-app/SKILL.md +2 -0
  453. package/skills/tools/find-skills/SKILL.md +3 -0
  454. package/dist/gateway/static/root/assets/activity-store-DVUTs1fk.js +0 -1
  455. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-K3hTmu9d.js +0 -1
  456. package/dist/gateway/static/root/assets/appearance-settings-CU52MfIT.js +0 -1
  457. package/dist/gateway/static/root/assets/apps-page-ZpA1-6ad.js +0 -1
  458. package/dist/gateway/static/root/assets/automations-workspace-IEAxKRME.js +0 -7
  459. package/dist/gateway/static/root/assets/browser-settings-page-CU4VWsmX.js +0 -3
  460. package/dist/gateway/static/root/assets/capabilities-settings-panel-C9XQk3HL.js +0 -8
  461. package/dist/gateway/static/root/assets/channels-settings-Bqlhjooi.js +0 -1
  462. package/dist/gateway/static/root/assets/connector-service-page-BmH17JnO.js +0 -1
  463. package/dist/gateway/static/root/assets/connectors-page-zkx8Q-e6.js +0 -2
  464. package/dist/gateway/static/root/assets/desktop-pet-settings-CE4GOlMM.js +0 -1
  465. package/dist/gateway/static/root/assets/device-pairing-wizard-CdKJqnnw.js +0 -1
  466. package/dist/gateway/static/root/assets/files-Be5viEFY.js +0 -1
  467. package/dist/gateway/static/root/assets/gateway-realtime-CGOW0-b4.js +0 -1
  468. package/dist/gateway/static/root/assets/gateway-realtime-store-D4um_sV7.js +0 -1
  469. package/dist/gateway/static/root/assets/gateway-settings-CgXp2zq4.js +0 -1
  470. package/dist/gateway/static/root/assets/home-page-D6Idk732.js +0 -1
  471. package/dist/gateway/static/root/assets/index-1wIKA-kM.css +0 -1
  472. package/dist/gateway/static/root/assets/index-PFQHPGgi.js +0 -79
  473. package/dist/gateway/static/root/assets/local-app-workbench-page-BmAqTRb4.js +0 -2
  474. package/dist/gateway/static/root/assets/logs-page-ZjVYXXyM.js +0 -2
  475. package/dist/gateway/static/root/assets/management-settings-CSTkYVOZ.js +0 -1
  476. package/dist/gateway/static/root/assets/messages-4BtQKYlM.js +0 -3
  477. package/dist/gateway/static/root/assets/note-detail-panel-DuXCt-MM.js +0 -5
  478. package/dist/gateway/static/root/assets/notes-page-BjOgBVq5.js +0 -8
  479. package/dist/gateway/static/root/assets/product-delivery-CrAI8ZEa.js +0 -1
  480. package/dist/gateway/static/root/assets/project-detail-page-0zi4-i9X.js +0 -1
  481. package/dist/gateway/static/root/assets/projects-page-B18OxmJj.js +0 -1
  482. package/dist/gateway/static/root/assets/remote-access-hub-z-DxbuaE.js +0 -1
  483. package/dist/gateway/static/root/assets/runtime-tools-settings-panel-DGsBTbo6.js +0 -5
  484. package/dist/gateway/static/root/assets/scenes-page-Bgba03B_.js +0 -1
  485. package/dist/gateway/static/root/assets/schemas-BaskVM5g.js +0 -64
  486. package/dist/gateway/static/root/assets/sessions-page-B1t3bMsm.js +0 -1
  487. package/dist/gateway/static/root/assets/settings-advanced-gate-CBX0Ezhf.js +0 -1
  488. package/dist/gateway/static/root/assets/setup-status-panel-Bw71C2X3.js +0 -1
  489. package/dist/gateway/static/root/assets/shares-settings-BoVDQolc.js +0 -1
  490. package/dist/gateway/static/root/assets/skill-reload-api-DtTptpAt.js +0 -1
  491. package/dist/gateway/static/root/assets/task-detail-page-vgkiGo-D.js +0 -1
  492. package/dist/gateway/static/root/assets/theme-store-CegIlB8d.js +0 -1
  493. package/dist/gateway/static/root/assets/user-model-page-CAGafNfP.js +0 -2
  494. package/dist/gateway/static/root/assets/workflows-page-CSxHVs1p.js +0 -6
  495. package/skills/creative/algorithmic-art/SKILL.md +0 -44
  496. package/skills/creative/algorithmic-art/templates/generator-template.js +0 -27
  497. package/skills/creative/algorithmic-art/templates/viewer.html +0 -27
@@ -1,7 +1,30 @@
1
+ import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
+ import { currentOperationId, init_operation_context } from "../infra/operation-context.js";
1
3
  import { getSqliteDatabase, init_transaction, runSqliteWriteTransaction } from "../storage/sqlite/transaction.js";
2
4
  import { randomUUID } from "node:crypto";
3
5
  //#region src/tasks/task-repository.ts
4
- init_transaction();
6
+ function taskListFilter(input) {
7
+ const clauses = [];
8
+ const params = [];
9
+ for (const [column, value] of [
10
+ ["phase", input.phase],
11
+ ["priority", input.priority],
12
+ ["project_id", input.projectId]
13
+ ]) if (value) {
14
+ clauses.push(`${column} = ?`);
15
+ params.push(value);
16
+ }
17
+ if (input.search?.trim()) {
18
+ clauses.push(`(instr(lower(title), lower(?)) > 0 OR instr(lower(coalesce(body, '')), lower(?)) > 0
19
+ OR EXISTS (SELECT 1 FROM task_contracts c WHERE c.task_id = tasks.task_id
20
+ AND c.version = tasks.latest_contract_version AND instr(lower(c.objective), lower(?)) > 0))`);
21
+ params.push(input.search.trim(), input.search.trim(), input.search.trim());
22
+ }
23
+ return {
24
+ where: clauses.length ? ` WHERE ${clauses.join(" AND ")}` : "",
25
+ params
26
+ };
27
+ }
5
28
  function parseJson(value) {
6
29
  return JSON.parse(value);
7
30
  }
@@ -47,181 +70,179 @@ function taskFromRow(row, contract) {
47
70
  ...row.closed_at === null ? {} : { closedAt: row.closed_at }
48
71
  };
49
72
  }
50
- var TaskRepository = class {
51
- create(input) {
52
- const title = input.title.trim();
53
- const objective = input.objective.trim();
54
- if (!title) throw new Error("Task title is required");
55
- if (!objective) throw new Error("Task objective is required");
56
- const id = input.id ?? randomUUID();
57
- const now = input.now ?? Date.now();
58
- runSqliteWriteTransaction((db) => {
59
- const phase = input.phase ?? "backlog";
60
- const boardRank = Number(db.prepare("SELECT COALESCE(MAX(board_rank), 0) + 1024 AS board_rank FROM tasks WHERE project_id IS ? AND phase = ?").get(input.projectId ?? null, phase).board_rank);
61
- db.prepare(`INSERT INTO tasks (
73
+ var TaskRepository;
74
+ var init_task_repository = __esmMin((() => {
75
+ init_operation_context();
76
+ init_transaction();
77
+ TaskRepository = class {
78
+ create(input) {
79
+ const title = input.title.trim();
80
+ const objective = input.objective.trim();
81
+ if (!title) throw new Error("Task title is required");
82
+ if (!objective) throw new Error("Task objective is required");
83
+ const id = input.id ?? randomUUID();
84
+ const now = input.now ?? Date.now();
85
+ runSqliteWriteTransaction((db) => {
86
+ const phase = input.phase ?? "backlog";
87
+ const boardRank = Number(db.prepare("SELECT COALESCE(MAX(board_rank), 0) + 1024 AS board_rank FROM tasks WHERE project_id IS ? AND phase = ?").get(input.projectId ?? null, phase).board_rank);
88
+ db.prepare(`INSERT INTO tasks (
62
89
  task_id, creation_idempotency_key, project_id, milestone_id, parent_task_id,
63
90
  title, body, phase, priority, due_at, owner_id, delegate_agent_id,
64
91
  source, locale, latest_contract_version, board_rank, version, created_at, updated_at
65
92
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, 1, ?, ?)`).run(id, input.idempotencyKey ?? null, input.projectId ?? null, input.milestoneId ?? null, input.parentTaskId ?? null, title, input.body?.trim() || null, phase, input.priority ?? "normal", input.dueAt ?? null, input.ownerId ?? null, input.delegateAgentId ?? null, input.source ?? "api", input.locale ?? null, boardRank, now, now);
66
- this.insertContract(db, {
67
- taskId: id,
68
- version: 1,
69
- objective,
70
- expectedOutputs: input.expectedOutputs ?? [],
71
- acceptanceCriteria: input.acceptanceCriteria ?? [],
72
- constraints: input.constraints ?? [],
73
- approvalRequired: input.approvalRequired ?? [],
74
- assumptions: input.assumptions ?? [],
75
- risks: input.risks ?? [],
76
- acceptancePolicy: input.acceptancePolicy ?? "verified_then_review",
77
- outputDestinations: input.outputDestinations ?? [],
78
- createdBy: input.createdBy ?? { kind: "system" },
79
- createdAt: now
93
+ this.insertContract(db, {
94
+ taskId: id,
95
+ version: 1,
96
+ objective,
97
+ expectedOutputs: input.expectedOutputs ?? [],
98
+ acceptanceCriteria: input.acceptanceCriteria ?? [],
99
+ constraints: input.constraints ?? [],
100
+ approvalRequired: input.approvalRequired ?? [],
101
+ assumptions: input.assumptions ?? [],
102
+ risks: input.risks ?? [],
103
+ acceptancePolicy: input.acceptancePolicy ?? "verified_then_review",
104
+ outputDestinations: input.outputDestinations ?? [],
105
+ createdBy: input.createdBy ?? { kind: "system" },
106
+ createdAt: now
107
+ });
80
108
  });
81
- });
82
- return this.require(id);
83
- }
84
- get(id) {
85
- const row = getSqliteDatabase().prepare("SELECT * FROM tasks WHERE task_id = ?").get(id);
86
- return row ? taskFromRow(row, this.getContract(id, row.latest_contract_version)) : void 0;
87
- }
88
- require(id) {
89
- const task = this.get(id);
90
- if (!task) throw new Error(`Task not found: ${id}`);
91
- return task;
92
- }
93
- getByIdempotencyKey(key) {
94
- const row = getSqliteDatabase().prepare("SELECT * FROM tasks WHERE creation_idempotency_key = ?").get(key);
95
- return row ? taskFromRow(row, this.getContract(row.task_id, row.latest_contract_version)) : void 0;
96
- }
97
- list(input = {}) {
98
- const clauses = [];
99
- const params = [];
100
- if (input.phase) {
101
- clauses.push("phase = ?");
102
- params.push(input.phase);
109
+ return this.require(id);
103
110
  }
104
- if (input.projectId) {
105
- clauses.push("project_id = ?");
106
- params.push(input.projectId);
111
+ get(id) {
112
+ const row = getSqliteDatabase().prepare("SELECT * FROM tasks WHERE task_id = ?").get(id);
113
+ return row ? taskFromRow(row, this.getContract(id, row.latest_contract_version)) : void 0;
107
114
  }
108
- if (input.search?.trim()) {
109
- clauses.push("(instr(lower(title), lower(?)) > 0 OR instr(lower(coalesce(body, '')), lower(?)) > 0)");
110
- params.push(input.search.trim(), input.search.trim());
115
+ require(id) {
116
+ const task = this.get(id);
117
+ if (!task) throw new Error(`Task not found: ${id}`);
118
+ return task;
111
119
  }
112
- const limit = Math.max(1, Math.min(200, Math.floor(input.limit ?? 50)));
113
- params.push(limit);
114
- return getSqliteDatabase().prepare(`SELECT * FROM tasks${clauses.length ? ` WHERE ${clauses.join(" AND ")}` : ""}
115
- ORDER BY ${input.order === "board" ? "board_rank ASC, created_at ASC, task_id ASC" : "updated_at DESC"} LIMIT ?`).all(...params).map((row) => taskFromRow(row, this.getContract(row.task_id, row.latest_contract_version)));
116
- }
117
- listByProject(projectId, limit = 50) {
118
- return this.list({
119
- projectId,
120
- limit,
121
- order: "board"
122
- });
123
- }
124
- getContract(taskId, version) {
125
- const row = version === void 0 ? getSqliteDatabase().prepare("SELECT * FROM task_contracts WHERE task_id = ? ORDER BY version DESC LIMIT 1").get(taskId) : getSqliteDatabase().prepare("SELECT * FROM task_contracts WHERE task_id = ? AND version = ?").get(taskId, version);
126
- return row ? contractFromRow(row) : void 0;
127
- }
128
- update(taskId, patch) {
129
- const current = this.get(taskId);
130
- if (!current || current.version !== patch.expectedVersion) return void 0;
131
- const title = patch.title === void 0 ? current.title : patch.title.trim();
132
- if (!title) throw new Error("Task title is required");
133
- const now = Math.max(patch.now ?? Date.now(), current.updatedAt + 1);
134
- return getSqliteDatabase().prepare(`UPDATE tasks SET title = ?, body = ?, project_id = ?, milestone_id = ?,
120
+ getByIdempotencyKey(key) {
121
+ const row = getSqliteDatabase().prepare("SELECT * FROM tasks WHERE creation_idempotency_key = ?").get(key);
122
+ return row ? taskFromRow(row, this.getContract(row.task_id, row.latest_contract_version)) : void 0;
123
+ }
124
+ list(input = {}) {
125
+ const { where, params } = taskListFilter(input);
126
+ const limit = Math.max(1, Math.min(200, Math.floor(input.limit ?? 50)));
127
+ params.push(limit, Math.max(0, Math.floor(input.offset ?? 0)));
128
+ return getSqliteDatabase().prepare(`SELECT * FROM tasks${where}
129
+ ORDER BY ${input.order === "board" ? "board_rank ASC, created_at ASC, task_id ASC" : "updated_at DESC, task_id ASC"} LIMIT ? OFFSET ?`).all(...params).map((row) => taskFromRow(row, this.getContract(row.task_id, row.latest_contract_version)));
130
+ }
131
+ count(input = {}) {
132
+ const { where, params } = taskListFilter(input);
133
+ return getSqliteDatabase().prepare(`SELECT count(*) AS total FROM tasks${where}`).get(...params).total;
134
+ }
135
+ listByProject(projectId, limit = 50) {
136
+ return this.list({
137
+ projectId,
138
+ limit,
139
+ order: "board"
140
+ });
141
+ }
142
+ getContract(taskId, version) {
143
+ const row = version === void 0 ? getSqliteDatabase().prepare("SELECT * FROM task_contracts WHERE task_id = ? ORDER BY version DESC LIMIT 1").get(taskId) : getSqliteDatabase().prepare("SELECT * FROM task_contracts WHERE task_id = ? AND version = ?").get(taskId, version);
144
+ return row ? contractFromRow(row) : void 0;
145
+ }
146
+ update(taskId, patch) {
147
+ const current = this.get(taskId);
148
+ if (!current || current.version !== patch.expectedVersion) return void 0;
149
+ const title = patch.title === void 0 ? current.title : patch.title.trim();
150
+ if (!title) throw new Error("Task title is required");
151
+ const now = Math.max(patch.now ?? Date.now(), current.updatedAt + 1);
152
+ return getSqliteDatabase().prepare(`UPDATE tasks SET title = ?, body = ?, project_id = ?, milestone_id = ?,
135
153
  parent_task_id = ?, priority = ?, due_at = ?, owner_id = ?,
136
154
  version = version + 1, updated_at = ?
137
155
  WHERE task_id = ? AND version = ?`).run(title, patch.body === void 0 ? current.body ?? null : patch.body?.trim() || null, patch.projectId === void 0 ? current.projectId ?? null : patch.projectId, patch.milestoneId === void 0 ? current.milestoneId ?? null : patch.milestoneId, patch.parentTaskId === void 0 ? current.parentTaskId ?? null : patch.parentTaskId, patch.priority ?? current.priority, patch.dueAt === void 0 ? current.dueAt ?? null : patch.dueAt, patch.ownerId === void 0 ? current.ownerId ?? null : patch.ownerId, now, taskId, patch.expectedVersion).changes === 0 ? void 0 : this.get(taskId);
138
- }
139
- setLifecycle(input) {
140
- if (input.phase === "closed" !== Boolean(input.resolution)) throw new Error("Closed tasks require a resolution and open tasks cannot have one");
141
- const current = this.get(input.taskId);
142
- if (!current || current.version !== input.expectedVersion) return void 0;
143
- const now = Math.max(input.now ?? Date.now(), current.updatedAt + 1);
144
- const boardRank = current.phase === input.phase ? current.boardRank : Number(getSqliteDatabase().prepare("SELECT COALESCE(MAX(board_rank), 0) + 1024 AS board_rank FROM tasks WHERE project_id IS ? AND phase = ?").get(current.projectId ?? null, input.phase).board_rank);
145
- return getSqliteDatabase().prepare(`UPDATE tasks SET phase = ?, resolution = ?, closed_at = ?,
156
+ }
157
+ setLifecycle(input) {
158
+ if (input.phase === "closed" !== Boolean(input.resolution)) throw new Error("Closed tasks require a resolution and open tasks cannot have one");
159
+ const current = this.get(input.taskId);
160
+ if (!current || current.version !== input.expectedVersion) return void 0;
161
+ const now = Math.max(input.now ?? Date.now(), current.updatedAt + 1);
162
+ const boardRank = current.phase === input.phase ? current.boardRank : Number(getSqliteDatabase().prepare("SELECT COALESCE(MAX(board_rank), 0) + 1024 AS board_rank FROM tasks WHERE project_id IS ? AND phase = ?").get(current.projectId ?? null, input.phase).board_rank);
163
+ return getSqliteDatabase().prepare(`UPDATE tasks SET phase = ?, resolution = ?, closed_at = ?,
146
164
  board_rank = ?, version = version + 1, updated_at = ?
147
165
  WHERE task_id = ? AND version = ?`).run(input.phase, input.resolution ?? null, input.phase === "closed" ? now : null, boardRank, now, input.taskId, input.expectedVersion).changes === 0 ? void 0 : this.get(input.taskId);
148
- }
149
- reorder(input) {
150
- const current = this.get(input.taskId);
151
- if (!current || current.version !== input.expectedVersion) return void 0;
152
- const before = input.beforeTaskId ? this.get(input.beforeTaskId) : void 0;
153
- if (input.beforeTaskId && (!before || before.id === current.id || before.projectId !== current.projectId || before.phase !== current.phase)) throw new Error("Board position target must be another task in the same project phase");
154
- const now = Math.max(input.now ?? Date.now(), current.updatedAt + 1);
155
- return runSqliteWriteTransaction((db) => {
156
- const ids = db.prepare(`SELECT task_id FROM tasks
166
+ }
167
+ reorder(input) {
168
+ const current = this.get(input.taskId);
169
+ if (!current || current.version !== input.expectedVersion) return void 0;
170
+ const before = input.beforeTaskId ? this.get(input.beforeTaskId) : void 0;
171
+ if (input.beforeTaskId && (!before || before.id === current.id || before.projectId !== current.projectId || before.phase !== current.phase)) throw new Error("Board position target must be another task in the same project phase");
172
+ const now = Math.max(input.now ?? Date.now(), current.updatedAt + 1);
173
+ return runSqliteWriteTransaction((db) => {
174
+ const ids = db.prepare(`SELECT task_id FROM tasks
157
175
  WHERE project_id IS ? AND phase = ? AND task_id <> ?
158
176
  ORDER BY board_rank ASC, created_at ASC, task_id ASC`).all(current.projectId ?? null, current.phase, current.id).map((row) => row.task_id);
159
- const insertAt = before ? ids.indexOf(before.id) : ids.length;
160
- ids.splice(insertAt, 0, current.id);
161
- const updateRank = db.prepare("UPDATE tasks SET board_rank = ? WHERE task_id = ?");
162
- ids.forEach((id, index) => updateRank.run((index + 1) * 1024, id));
163
- return db.prepare(`UPDATE tasks SET version = version + 1, updated_at = ?
177
+ const insertAt = before ? ids.indexOf(before.id) : ids.length;
178
+ ids.splice(insertAt, 0, current.id);
179
+ const updateRank = db.prepare("UPDATE tasks SET board_rank = ? WHERE task_id = ?");
180
+ ids.forEach((id, index) => updateRank.run((index + 1) * 1024, id));
181
+ return db.prepare(`UPDATE tasks SET version = version + 1, updated_at = ?
164
182
  WHERE task_id = ? AND version = ?`).run(now, current.id, current.version).changes === 0 ? void 0 : this.get(current.id);
165
- });
166
- }
167
- reviseContract(input) {
168
- const current = this.get(input.taskId);
169
- if (!current || current.version !== input.expectedVersion) return void 0;
170
- const objective = input.objective.trim();
171
- if (!objective) throw new Error("Task objective is required");
172
- const now = Math.max(input.now ?? Date.now(), current.updatedAt + 1);
173
- const contractVersion = current.latestContractVersion + 1;
174
- return runSqliteWriteTransaction((db) => {
175
- this.insertContract(db, {
176
- taskId: input.taskId,
177
- version: contractVersion,
178
- objective,
179
- expectedOutputs: input.expectedOutputs,
180
- acceptanceCriteria: input.acceptanceCriteria,
181
- constraints: input.constraints,
182
- approvalRequired: input.approvalRequired,
183
- assumptions: input.assumptions,
184
- risks: input.risks,
185
- acceptancePolicy: input.acceptancePolicy,
186
- outputDestinations: input.outputDestinations,
187
- createdBy: input.createdBy,
188
- createdAt: now
189
183
  });
190
- return db.prepare(`UPDATE tasks SET latest_contract_version = ?, version = version + 1, updated_at = ?
184
+ }
185
+ reviseContract(input) {
186
+ const current = this.get(input.taskId);
187
+ if (!current || current.version !== input.expectedVersion) return void 0;
188
+ const objective = input.objective.trim();
189
+ if (!objective) throw new Error("Task objective is required");
190
+ const now = Math.max(input.now ?? Date.now(), current.updatedAt + 1);
191
+ const contractVersion = current.latestContractVersion + 1;
192
+ return runSqliteWriteTransaction((db) => {
193
+ this.insertContract(db, {
194
+ taskId: input.taskId,
195
+ version: contractVersion,
196
+ objective,
197
+ expectedOutputs: input.expectedOutputs,
198
+ acceptanceCriteria: input.acceptanceCriteria,
199
+ constraints: input.constraints,
200
+ approvalRequired: input.approvalRequired,
201
+ assumptions: input.assumptions,
202
+ risks: input.risks,
203
+ acceptancePolicy: input.acceptancePolicy,
204
+ outputDestinations: input.outputDestinations,
205
+ createdBy: input.createdBy,
206
+ createdAt: now
207
+ });
208
+ return db.prepare(`UPDATE tasks SET latest_contract_version = ?, version = version + 1, updated_at = ?
191
209
  WHERE task_id = ? AND version = ?`).run(contractVersion, now, input.taskId, input.expectedVersion).changes === 0 ? void 0 : this.get(input.taskId);
192
- });
193
- }
194
- delete(taskId) {
195
- return runSqliteWriteTransaction((db) => {
196
- const task = db.prepare("SELECT project_id FROM tasks WHERE task_id = ?").get(taskId);
197
- if (!task) return false;
198
- const runIds = db.prepare("SELECT run_id FROM task_runs WHERE task_id = ?").all(taskId).map((row) => row.run_id);
199
- db.prepare(`DELETE FROM context_edges WHERE owner_kind = 'task' AND owner_id = ?`).run(taskId);
200
- db.prepare(`DELETE FROM command_deduplication WHERE subject_kind = 'task' AND subject_id = ?`).run(taskId);
201
- db.prepare(`DELETE FROM domain_outbox WHERE subject_kind = 'task' AND subject_id = ?`).run(taskId);
202
- const deleted = db.prepare("DELETE FROM tasks WHERE task_id = ?").run(taskId).changes > 0;
203
- db.prepare(`DELETE FROM context_snapshots WHERE owner_kind = 'task' AND owner_id = ?`).run(taskId);
204
- if (runIds.length > 0) db.prepare(`DELETE FROM context_snapshots
210
+ });
211
+ }
212
+ delete(taskId) {
213
+ return runSqliteWriteTransaction((db) => {
214
+ const task = db.prepare("SELECT project_id, version FROM tasks WHERE task_id = ?").get(taskId);
215
+ if (!task) return false;
216
+ const runIds = db.prepare("SELECT run_id FROM task_runs WHERE task_id = ?").all(taskId).map((row) => row.run_id);
217
+ db.prepare(`DELETE FROM context_edges WHERE owner_kind = 'task' AND owner_id = ?`).run(taskId);
218
+ db.prepare(`DELETE FROM command_deduplication WHERE subject_kind = 'task' AND subject_id = ?`).run(taskId);
219
+ db.prepare(`DELETE FROM domain_outbox WHERE subject_kind = 'task' AND subject_id = ?`).run(taskId);
220
+ const deleted = db.prepare("DELETE FROM tasks WHERE task_id = ?").run(taskId).changes > 0;
221
+ db.prepare(`DELETE FROM context_snapshots WHERE owner_kind = 'task' AND owner_id = ?`).run(taskId);
222
+ if (runIds.length > 0) db.prepare(`DELETE FROM context_snapshots
205
223
  WHERE owner_kind = 'task_run' AND owner_id IN (SELECT value FROM json_each(?))`).run(JSON.stringify(runIds));
206
- const deletedAt = Date.now();
207
- db.prepare(`INSERT INTO domain_outbox (
224
+ const deletedAt = Date.now();
225
+ db.prepare(`INSERT INTO domain_outbox (
208
226
  event_id, event_type, subject_kind, subject_id, correlation_id,
209
- payload_json, created_at
210
- ) VALUES (?, 'task.deleted.v1', 'task', ?, ?, ?, ?)`).run(randomUUID(), taskId, randomUUID(), JSON.stringify({
211
- taskId,
212
- ...task.project_id ? { projectId: task.project_id } : {},
213
- deletedAt
214
- }), deletedAt);
215
- return deleted;
216
- });
217
- }
218
- insertContract(db, contract) {
219
- db.prepare(`INSERT INTO task_contracts (
227
+ payload_json, created_at, operation_id
228
+ ) VALUES (?, 'task.deleted.v1', 'task', ?, ?, ?, ?, ?)`).run(randomUUID(), taskId, randomUUID(), JSON.stringify({
229
+ taskId,
230
+ ...task.project_id ? { projectId: task.project_id } : {},
231
+ deletedAt,
232
+ version: task.version + 1
233
+ }), deletedAt, currentOperationId() ?? null);
234
+ return deleted;
235
+ });
236
+ }
237
+ insertContract(db, contract) {
238
+ db.prepare(`INSERT INTO task_contracts (
220
239
  task_id, version, objective, expected_outputs_json, acceptance_criteria_json,
221
240
  constraints_json, approval_required_json, assumptions_json, risks_json,
222
241
  acceptance_policy, output_destinations_json, created_by_json, created_at
223
242
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(contract.taskId, contract.version, contract.objective, JSON.stringify(contract.expectedOutputs), JSON.stringify(contract.acceptanceCriteria), JSON.stringify(contract.constraints), JSON.stringify(contract.approvalRequired), JSON.stringify(contract.assumptions), JSON.stringify(contract.risks), contract.acceptancePolicy, JSON.stringify(contract.outputDestinations), JSON.stringify(contract.createdBy), contract.createdAt);
224
- }
225
- };
243
+ }
244
+ };
245
+ }));
226
246
  //#endregion
227
- export { TaskRepository };
247
+ init_task_repository();
248
+ export { TaskRepository, init_task_repository };
@@ -1,8 +1,9 @@
1
+ import { TaskRepository, init_task_repository } from "./task-repository.js";
1
2
  import { TaskRunRepository, init_task_run_repository } from "./task-run-repository.js";
2
- import { TaskRepository } from "./task-repository.js";
3
3
  import { TaskContextRepository } from "./task-context-repository.js";
4
4
  import { TaskApplicationService } from "./task-application-service.js";
5
5
  //#region src/tasks/task-run-coordinator.ts
6
+ init_task_repository();
6
7
  init_task_run_repository();
7
8
  var TaskRunCoordinator = class TaskRunCoordinator {
8
9
  #evidence = [];
@@ -1,10 +1,11 @@
1
1
  import { createLogger } from "../utils/logger/index.js";
2
2
  import { init_logger } from "../utils/logger.js";
3
+ import { TaskRepository, init_task_repository } from "./task-repository.js";
3
4
  import { TaskRunRepository, init_task_run_repository } from "./task-run-repository.js";
4
- import { TaskRepository } from "./task-repository.js";
5
5
  import { TaskApplicationService } from "./task-application-service.js";
6
6
  //#region src/tasks/task-run-dispatcher.ts
7
7
  init_logger();
8
+ init_task_repository();
8
9
  init_task_run_repository();
9
10
  const log = createLogger("TaskRunDispatcher");
10
11
  var TaskRunDispatcher = class {
@@ -70,6 +70,7 @@ export declare class TaskRunRepository {
70
70
  rating: 'helpful' | 'not_helpful';
71
71
  reason?: string;
72
72
  now?: number;
73
+ actor?: ActorRef;
73
74
  }): {
74
75
  id: string;
75
76
  runId: string;
@@ -1,6 +1,7 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
2
  import { getSqliteDatabase, init_transaction, runSqliteWriteTransaction } from "../storage/sqlite/transaction.js";
3
- import { enqueueTaskAttentionRequiredEvent, init_task_change_events } from "./task-change-events.js";
3
+ import { enqueueTaskAttentionRequiredEvent, enqueueTaskChangedEvent, init_task_change_events } from "./task-change-events.js";
4
+ import { TaskRepository, init_task_repository } from "./task-repository.js";
4
5
  import { randomUUID } from "node:crypto";
5
6
  //#region src/tasks/task-run-repository.ts
6
7
  function parseJson(value) {
@@ -77,6 +78,7 @@ var ACTIVE_RUN_STATUSES, TaskRunRepository;
77
78
  var init_task_run_repository = __esmMin((() => {
78
79
  init_transaction();
79
80
  init_task_change_events();
81
+ init_task_repository();
80
82
  ACTIVE_RUN_STATUSES = [
81
83
  "queued",
82
84
  "running",
@@ -219,19 +221,32 @@ var init_task_run_repository = __esmMin((() => {
219
221
  ORDER BY receipt.finalized_at DESC, run.queued_at DESC LIMIT ?`).all(taskId, Math.max(1, Math.min(500, Math.floor(limit)))).map(receiptFromRow);
220
222
  }
221
223
  recordFeedback(input) {
222
- this.require(input.runId);
223
- const id = randomUUID();
224
- const createdAt = input.now ?? Date.now();
225
- getSqliteDatabase().prepare(`INSERT INTO task_run_feedback (
226
- feedback_id, run_id, rating, reason, needs_correction, created_at
227
- ) VALUES (?, ?, ?, ?, ?, ?)`).run(id, input.runId, input.rating, input.reason?.trim() || null, input.rating === "not_helpful" ? 1 : 0, createdAt);
228
- return {
229
- id,
230
- runId: input.runId,
231
- rating: input.rating,
232
- ...input.reason?.trim() ? { reason: input.reason.trim() } : {},
233
- createdAt
234
- };
224
+ return runSqliteWriteTransaction((db) => {
225
+ const run = this.require(input.runId);
226
+ const id = randomUUID();
227
+ const createdAt = input.now ?? Date.now();
228
+ getSqliteDatabase().prepare(`INSERT INTO task_run_feedback (
229
+ feedback_id, run_id, rating, reason, needs_correction, created_at
230
+ ) VALUES (?, ?, ?, ?, ?, ?)`).run(id, input.runId, input.rating, input.reason?.trim() || null, input.rating === "not_helpful" ? 1 : 0, createdAt);
231
+ const tasks = new TaskRepository();
232
+ const task = tasks.require(run.taskId);
233
+ const updated = tasks.update(task.id, { expectedVersion: task.version });
234
+ enqueueTaskChangedEvent(db, {
235
+ taskId: task.id,
236
+ projectId: task.projectId,
237
+ version: updated.version,
238
+ changedFields: ["feedback"],
239
+ actor: input.actor,
240
+ occurredAt: createdAt
241
+ });
242
+ return {
243
+ id,
244
+ runId: input.runId,
245
+ rating: input.rating,
246
+ ...input.reason?.trim() ? { reason: input.reason.trim() } : {},
247
+ createdAt
248
+ };
249
+ });
235
250
  }
236
251
  createWait(input) {
237
252
  const id = randomUUID();
@@ -1,13 +1,14 @@
1
1
  import { getSqliteDatabase, init_transaction } from "../storage/sqlite/transaction.js";
2
2
  import { TaskExecutorSelectionSchema } from "../../packages/gateway-contract/src/tasks.js";
3
3
  import { init_src } from "../../packages/gateway-contract/src/index.js";
4
+ import { TaskRepository, init_task_repository } from "./task-repository.js";
4
5
  import { TaskRunRepository, init_task_run_repository } from "./task-run-repository.js";
5
- import { TaskRepository } from "./task-repository.js";
6
6
  import { TaskApplicationService } from "./task-application-service.js";
7
7
  import { randomUUID } from "node:crypto";
8
8
  //#region src/tasks/task-signal-service.ts
9
9
  init_src();
10
10
  init_transaction();
11
+ init_task_repository();
11
12
  init_task_run_repository();
12
13
  var TaskSignalService = class {
13
14
  #runs = new TaskRunRepository();
@@ -24,7 +24,6 @@ import { parseModelRef } from "../../agent/models/selection.js";
24
24
  import { buildReviewContext, resolveGitRoot } from "../../review/review-git.js";
25
25
  import { MessageBus, MessageBusShutdownError } from "../../infra/bus/queue.js";
26
26
  import "../../infra/bus/index.js";
27
- import { prependEnvelopeTimestamp } from "../../channels/envelope-timestamp.js";
28
27
  import { getWorkspacePath } from "../../config/workspace-path-helpers.js";
29
28
  import "../../config/index.js";
30
29
  import { buildWorkflowChildTools } from "../../agent/workflow/workflow-child-tools.js";
@@ -32,6 +31,7 @@ import { WorkflowRunService } from "../../workflows/service/workflow-run-service
32
31
  import { WorkflowSessionBridge } from "../../workflows/service/workflow-session-bridge.js";
33
32
  import { ChatStreamMapper } from "../../gateway/chat-stream/mapper.js";
34
33
  import { getXopcCloudCatalogCoordinator } from "../../providers/xopc-cloud-catalog-coordinator.js";
34
+ import { prependEnvelopeTimestamp } from "../../channels/envelope-timestamp.js";
35
35
  import { fuzzySearchWorkspaceFiles } from "../../gateway/workspace-file-search.js";
36
36
  import { commitDeliveredChatInput } from "../tui-chat-input-state.js";
37
37
  import { sessionMetadataToTuiItem } from "../tui-session-format.js";
@@ -2,8 +2,8 @@ import { createLogger } from "../../utils/logger/index.js";
2
2
  import { init_logger } from "../../utils/logger.js";
3
3
  import { transcriptRowsToClientHistory } from "../../session/client-history.js";
4
4
  import { parseModelRef } from "../../agent/models/selection.js";
5
- import { prependEnvelopeTimestamp } from "../../channels/envelope-timestamp.js";
6
5
  import { gatewayCredentialAuthorization } from "../../gateway/credential.js";
6
+ import { prependEnvelopeTimestamp } from "../../channels/envelope-timestamp.js";
7
7
  import { RealtimeClient } from "../../../packages/realtime-client/src/index.js";
8
8
  import { buildTuiTranscriptTree, transcriptTreeEntryIdToRowNumber } from "../tui-transcript-tree.js";
9
9
  import { computeTuiSessionStats } from "../tui-session-stats.js";
@@ -1,11 +1,11 @@
1
1
  import { closeXopcDatabase, isXopcDatabaseOpen, openXopcDatabase } from "../storage/sqlite/connection.js";
2
+ import { TaskRepository } from "../tasks/task-repository.js";
2
3
  import { getSessionMetadata } from "../storage/sqlite/session-read-repository.js";
3
4
  import "../storage/sqlite/index.js";
4
5
  import { init_agent_session_key, isValidAgentId, normalizeAgentId } from "../routing/agent-session-key.js";
5
6
  import { resolveConfigPath } from "../config/paths.js";
6
7
  import { loadConfig } from "../config/loader.js";
7
8
  import { init_providers, providerSupportsOAuth } from "../providers/index.js";
8
- import { TaskRepository } from "../tasks/task-repository.js";
9
9
  import { ProjectService } from "../projects/project-service.js";
10
10
  import { isValidProjectAgentId, normalizeProjectAgentId } from "../projects/project-agent.js";
11
11
  import { inferSuggestedProjectDefaultAgentId } from "../projects/project-agent-suggestion.js";
@@ -11,6 +11,7 @@ export declare const DEFAULT_CONTEXT_COMPACTION_POLICY: {
11
11
  summaryChunkTokens: number;
12
12
  summaryTimeoutMs: number;
13
13
  summaryRetries: number;
14
+ reasoningLevel: "off";
14
15
  qualityGuard: boolean;
15
16
  gapAudit: boolean;
16
17
  minToolResultKeepChars: number;
@@ -28,6 +29,10 @@ export declare const ContextCompactionPolicySchema: z.ZodDefault<z.ZodObject<{
28
29
  summaryChunkTokens: z.ZodDefault<z.ZodNumber>;
29
30
  summaryTimeoutMs: z.ZodDefault<z.ZodNumber>;
30
31
  summaryRetries: z.ZodDefault<z.ZodNumber>;
32
+ reasoningLevel: z.ZodDefault<z.ZodEnum<{
33
+ low: "low";
34
+ off: "off";
35
+ }>>;
31
36
  qualityGuard: z.ZodDefault<z.ZodBoolean>;
32
37
  gapAudit: z.ZodDefault<z.ZodBoolean>;
33
38
  model: z.ZodOptional<z.ZodString>;
@@ -128,6 +133,10 @@ export declare const ContextPlanningConfigSchema: z.ZodDefault<z.ZodObject<{
128
133
  summaryChunkTokens: z.ZodDefault<z.ZodNumber>;
129
134
  summaryTimeoutMs: z.ZodDefault<z.ZodNumber>;
130
135
  summaryRetries: z.ZodDefault<z.ZodNumber>;
136
+ reasoningLevel: z.ZodDefault<z.ZodEnum<{
137
+ low: "low";
138
+ off: "off";
139
+ }>>;
131
140
  qualityGuard: z.ZodDefault<z.ZodBoolean>;
132
141
  gapAudit: z.ZodDefault<z.ZodBoolean>;
133
142
  model: z.ZodOptional<z.ZodString>;
@@ -238,6 +247,10 @@ export declare const UserContextConfigSchema: z.ZodDefault<z.ZodObject<{
238
247
  summaryChunkTokens: z.ZodDefault<z.ZodNumber>;
239
248
  summaryTimeoutMs: z.ZodDefault<z.ZodNumber>;
240
249
  summaryRetries: z.ZodDefault<z.ZodNumber>;
250
+ reasoningLevel: z.ZodDefault<z.ZodEnum<{
251
+ low: "low";
252
+ off: "off";
253
+ }>>;
241
254
  qualityGuard: z.ZodDefault<z.ZodBoolean>;
242
255
  gapAudit: z.ZodDefault<z.ZodBoolean>;
243
256
  model: z.ZodOptional<z.ZodString>;
@@ -30,6 +30,7 @@ var init_config = __esmMin((() => {
30
30
  summaryChunkTokens: 24e3,
31
31
  summaryTimeoutMs: 18e4,
32
32
  summaryRetries: 2,
33
+ reasoningLevel: "off",
33
34
  qualityGuard: true,
34
35
  gapAudit: true,
35
36
  minToolResultKeepChars: 1e3,
@@ -47,6 +48,7 @@ var init_config = __esmMin((() => {
47
48
  summaryChunkTokens: z.number().int().min(1e3).default(24e3),
48
49
  summaryTimeoutMs: z.number().int().min(1e3).max(6e5).default(18e4),
49
50
  summaryRetries: z.number().int().min(0).max(5).default(2),
51
+ reasoningLevel: z.enum(["off", "low"]).default("off"),
50
52
  qualityGuard: z.boolean().default(true),
51
53
  gapAudit: z.boolean().default(true),
52
54
  model: z.string().min(1).optional(),
@@ -32,7 +32,7 @@ export declare function requirePlatformVoiceModel(id: string, mode: VoiceModeCap
32
32
  defaultVoice?: string;
33
33
  };
34
34
  computerUse?: {
35
- profile: "gui-plus-2026-02-26" | "structured-tools-v1";
35
+ profile: import("@xopcai/computer-control-contract/src/index.js").ComputerProfile;
36
36
  };
37
37
  id: string;
38
38
  name: string;
@@ -4,12 +4,12 @@ import { init_changes, onUserContextChange } from "../../user-context/changes.js
4
4
  import { decodeVoiceUplinkAudioFrame, encodeVoiceAudioFrame } from "../../../packages/realtime-protocol/src/voice-audio.js";
5
5
  import { VOICE_REALTIME_HEARTBEAT_INTERVAL_MS, VOICE_REALTIME_MAX_BINARY_FRAME_BYTES, VOICE_REALTIME_START_TIMEOUT_MS, VOICE_REALTIME_WS_PATH, init_voice, parseVoiceClientJsonFrame, parseVoiceClientMessage } from "../../../packages/realtime-protocol/src/voice.js";
6
6
  import { getModelCatalogStore, init_model_catalog_store } from "../../providers/model-catalog-store.js";
7
- import { ALIBABA_REALTIME_TTS_MODEL } from "../tts/providers/alibaba-speech.js";
8
- import { resolveSpeechProviderChain } from "../tts/factory.js";
9
- import { mergeTtsConfigFromAppConfig } from "../tts/merge-config.js";
10
7
  import { getMediaUnderstandingProvider } from "../../media-understanding/registry.js";
11
8
  import { resolveSTTProviderChain } from "../stt/factory.js";
12
9
  import { mergeSttConfigFromAppConfig } from "../stt/config.js";
10
+ import { ALIBABA_REALTIME_TTS_MODEL } from "../tts/providers/alibaba-speech.js";
11
+ import { resolveSpeechProviderChain } from "../tts/factory.js";
12
+ import { mergeTtsConfigFromAppConfig } from "../tts/merge-config.js";
13
13
  import { voiceConversationInstructions } from "./conversation-context.js";
14
14
  import { createPreauthConnectionBudget } from "../../gateway/security/preauth-connection-budget.js";
15
15
  import { createAgentVoiceEngine } from "./agentEngine.js";
@@ -1,8 +1,8 @@
1
1
  import { createLogger } from "../../../utils/logger/index.js";
2
2
  import { init_logger } from "../../../utils/logger.js";
3
+ import { registerMediaUnderstandingProvider } from "../../../media-understanding/registry.js";
3
4
  import { postJsonRequest } from "../../../media-shared/http/provider-http.js";
4
5
  import "../../../media-shared/http/index.js";
5
- import { registerMediaUnderstandingProvider } from "../../../media-understanding/registry.js";
6
6
  import { openDashScopeStreamingStt } from "../../dashscope/streaming-stt-session.js";
7
7
  //#region src/voice/stt/providers/alibaba-transcription.ts
8
8
  init_logger();