@xopcai/xopc 0.0.384 → 0.0.386

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 (280) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BSel9yf8.js → agent-avatar-dicebear-D-86VOlb.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-DgHMyhuY.js → agent-defaults-settings-panel-SmeUVHY8.js} +1 -1
  5. package/dist/gateway/static/root/assets/{agent-plugin-dialog-BosuN4dO.js → agent-plugin-dialog-BVT3wXq5.js} +1 -1
  6. package/dist/gateway/static/root/assets/{agents-B-pw5RKI.js → agents-D7rLQFhX.js} +3 -3
  7. package/dist/gateway/static/root/assets/{app-management-settings-panel-DuOqKkfH.js → app-management-settings-panel-CUR7n5iP.js} +1 -1
  8. package/dist/gateway/static/root/assets/{appearance-settings-8JF9rXFr.js → appearance-settings-BCotSGep.js} +1 -1
  9. package/dist/gateway/static/root/assets/{apps-page-Cuclpk0A.js → apps-page-hk0bo9LT.js} +1 -1
  10. package/dist/gateway/static/root/assets/{automations-page-D7NwNy2I.js → automations-page-CqxuUwox.js} +1 -1
  11. package/dist/gateway/static/root/assets/{automations-workspace-CSxW4wX0.js → automations-workspace-11_Z69pr.js} +1 -1
  12. package/dist/gateway/static/root/assets/{block-editor-Dnb7CH_l.js → block-editor-eldB84Mj.js} +1 -1
  13. package/dist/gateway/static/root/assets/{browser-automations-page-GBgDe21o.js → browser-automations-page-D4TaUPYT.js} +1 -1
  14. package/dist/gateway/static/root/assets/{browser-settings-page-B2FXaO3n.js → browser-settings-page-BXRlxeGV.js} +1 -1
  15. package/dist/gateway/static/root/assets/{capabilities-XFwwUNU3.js → capabilities-BkKgImWi.js} +1 -1
  16. package/dist/gateway/static/root/assets/{capabilities-2Do3eKMM.js → capabilities-DVj9n65C.js} +1 -1
  17. package/dist/gateway/static/root/assets/{capabilities-page-f2-MquJn.js → capabilities-page-CyYlueEd.js} +2 -2
  18. package/dist/gateway/static/root/assets/{capabilities-settings-panel-D9F0mw16.js → capabilities-settings-panel-uVEgfvo0.js} +1 -1
  19. package/dist/gateway/static/root/assets/{capability-header-actions-DVRxJPQP.js → capability-header-actions-BXv0xu56.js} +1 -1
  20. package/dist/gateway/static/root/assets/{channels-CnDm5T1t.js → channels-fNb3SOzm.js} +1 -1
  21. package/dist/gateway/static/root/assets/{chat-terminal-dock-BxSCDbK7.js → chat-terminal-dock-CnLtparQ.js} +1 -1
  22. package/dist/gateway/static/root/assets/{computer-settings-page-DVAB-kQw.js → computer-settings-page-xM0AnOlP.js} +1 -1
  23. package/dist/gateway/static/root/assets/{connector-service-page-D2EeLXei.js → connector-service-page-CdG2WUb6.js} +1 -1
  24. package/dist/gateway/static/root/assets/{connectors-page-DK9n4hgZ.js → connectors-page-BRd08GH6.js} +1 -1
  25. package/dist/gateway/static/root/assets/constants-CpWu0oHS.js +1 -0
  26. package/dist/gateway/static/root/assets/{date-picker-Cl9KfFj8.js → date-picker-DIBbE-O8.js} +1 -1
  27. package/dist/gateway/static/root/assets/{dependency-picker-Ei6aX5WM.js → dependency-picker-DDD8zokD.js} +1 -1
  28. package/dist/gateway/static/root/assets/{desktop-pet-4Evl4RKX.js → desktop-pet-KlF390Xn.js} +1 -1
  29. package/dist/gateway/static/root/assets/{desktop-pet-settings-DAD_OWcX.js → desktop-pet-settings-CgqQMKDC.js} +1 -1
  30. package/dist/gateway/static/root/assets/{device-pairing-wizard-BA21epMn.js → device-pairing-wizard-BR6isfG2.js} +1 -1
  31. package/dist/gateway/static/root/assets/{directory-picker-path-field-B_Zb5nNR.js → directory-picker-path-field-vPQsW05P.js} +1 -1
  32. package/dist/gateway/static/root/assets/{extension-debug-page-DtHNy4TE.js → extension-debug-page-ZHLPrLbH.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-page-8gWSThWP.js → extension-page-DJ42KFRN.js} +1 -1
  34. package/dist/gateway/static/root/assets/{extension-provider-nbgU7xBS.js → extension-provider-6IcsyNaV.js} +1 -1
  35. package/dist/gateway/static/root/assets/{extension-settings-page-CunUbB09.js → extension-settings-page-D7-5v0V4.js} +1 -1
  36. package/dist/gateway/static/root/assets/{fallback-models-BSAfzXby.js → fallback-models-DnYn7qOV.js} +1 -1
  37. package/dist/gateway/static/root/assets/{gateway-settings-CN-2229W.js → gateway-settings-Bwe3JWX-.js} +1 -1
  38. package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-DktBCtHF.js → highlighted-body-KQOG7T2V-DefTxF3q.js} +1 -1
  39. package/dist/gateway/static/root/assets/{home-page-CUJcNW3H.js → home-page-BtSy2hRV.js} +1 -1
  40. package/dist/gateway/static/root/assets/{imports-page-DQm1MNNC.js → imports-page-CTdBYZib.js} +1 -1
  41. package/dist/gateway/static/root/assets/{index-BPNL54bv.js → index-B08iR7fT.js} +10 -10
  42. package/dist/gateway/static/root/assets/index-DBRwvWzm.css +1 -0
  43. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DaC5YjuJ.js → keyboard-shortcuts-settings-CXKp57O_.js} +1 -1
  44. package/dist/gateway/static/root/assets/{local-app-workbench-page-DwQyyo7a.js → local-app-workbench-page-DzD_OzGY.js} +1 -1
  45. package/dist/gateway/static/root/assets/{local-apps-page-CpZhivpf.js → local-apps-page-B0E0vttg.js} +1 -1
  46. package/dist/gateway/static/root/assets/{logs-page-Db43nh1M.js → logs-page-eL4fYcMl.js} +1 -1
  47. package/dist/gateway/static/root/assets/{management-settings-DrKejBEZ.js → management-settings-DSpjodMC.js} +1 -1
  48. package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-BTrk2wWv.js +1 -0
  49. package/dist/gateway/static/root/assets/{note-detail-panel-a8NSwmmW.js → note-detail-panel-CsY5tQp5.js} +3 -3
  50. package/dist/gateway/static/root/assets/{notes-page-BKRke43F.js → notes-page-D09LjNoj.js} +1 -1
  51. package/dist/gateway/static/root/assets/{page-context-capture-button-DUaMkmxv.js → page-context-capture-button-DO-aP3D9.js} +1 -1
  52. package/dist/gateway/static/root/assets/{personal-page-BqF-HHw1.js → personal-page-E8F2aGNB.js} +1 -1
  53. package/dist/gateway/static/root/assets/{product-open-page-GrhtTQIz.js → product-open-page-aUoA-uPw.js} +1 -1
  54. package/dist/gateway/static/root/assets/{product-preview-content-zdP7gN0y.js → product-preview-content-B-cz-pIV.js} +1 -1
  55. package/dist/gateway/static/root/assets/{project-detail-page-9Vd_AqDW.js → project-detail-page-WhefAh8E.js} +1 -1
  56. package/dist/gateway/static/root/assets/{projects-page-DGunhjoM.js → projects-page-CyqAs0tO.js} +1 -1
  57. package/dist/gateway/static/root/assets/{remote-access-hub-BoRsF3Lx.js → remote-access-hub-BwhRGL6m.js} +1 -1
  58. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-W0HDm--J.js → runtime-tools-settings-panel-o26dmPNq.js} +1 -1
  59. package/dist/gateway/static/root/assets/{scenes-page-CYsFOfVJ.js → scenes-page-D_e19kv_.js} +1 -1
  60. package/dist/gateway/static/root/assets/{schema-form-CBxEbBQq.js → schema-form-DLLdqUC3.js} +1 -1
  61. package/dist/gateway/static/root/assets/{send-session-input-BCAF-Ikt.js → send-session-input-2I-nFJcE.js} +1 -1
  62. package/dist/gateway/static/root/assets/session-manager-Co5ozD0l.js +16 -0
  63. package/dist/gateway/static/root/assets/{sessions-page-Dthfx_vc.js → sessions-page-DX6INsiS.js} +1 -1
  64. package/dist/gateway/static/root/assets/settings-advanced-gate-C4_gW1vw.js +1 -0
  65. package/dist/gateway/static/root/assets/{settings-page-CFs-WP_2.js → settings-page-Bc_zxxRu.js} +1 -1
  66. package/dist/gateway/static/root/assets/{setup-status-panel-D2-9fXYL.js → setup-status-panel-FpF_cPPr.js} +1 -1
  67. package/dist/gateway/static/root/assets/{share-preview-page-nJ2FWAEP.js → share-preview-page-BOCcPBqQ.js} +1 -1
  68. package/dist/gateway/static/root/assets/{shares-settings-DTb88RHD.js → shares-settings-CInxjxgJ.js} +1 -1
  69. package/dist/gateway/static/root/assets/{skill-api-DJ8UBsxq.js → skill-api-Bjd8WAA4.js} +1 -1
  70. package/dist/gateway/static/root/assets/{skills-page-DjbBOikT.js → skills-page-8CKS3Oo2.js} +1 -1
  71. package/dist/gateway/static/root/assets/{system-settings-panel-Dt5GkLhM.js → system-settings-panel-BgQdsrNw.js} +1 -1
  72. package/dist/gateway/static/root/assets/task-detail-page-BnG5ehZ6.js +2 -0
  73. package/dist/gateway/static/root/assets/task-expandable-content-BCuc70Vc.js +1 -0
  74. package/dist/gateway/static/root/assets/{tasks-DJIeIk9C.js → tasks-PuIUgF9L.js} +1 -1
  75. package/dist/gateway/static/root/assets/{tunnel-api-JHttXi63.js → tunnel-api-CY7MoDGf.js} +1 -1
  76. package/dist/gateway/static/root/assets/{usage-page-B3rUa0fW.js → usage-page-s8Sv_PIG.js} +1 -1
  77. package/dist/gateway/static/root/assets/{use-composer-attachments-BFP3k6oC.js → use-composer-attachments-D0S2iZF4.js} +1 -1
  78. package/dist/gateway/static/root/assets/{use-file-preview-expanded-B1BiTQNS.js → use-file-preview-expanded-BElqELib.js} +1 -1
  79. package/dist/gateway/static/root/assets/{user-model-page-Cq1VSsZw.js → user-model-page-CyWrEtHY.js} +1 -1
  80. package/dist/gateway/static/root/assets/{work-discovery-overlay-BAtG_JHv.js → work-discovery-overlay-DmZXLs1v.js} +1 -1
  81. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-Cw12NFgx.js → workflow-run-setup-panel-BdLOzHm4.js} +1 -1
  82. package/dist/gateway/static/root/assets/{workflows-page-kR5ouOuM.js → workflows-page-Cx3I3AV5.js} +1 -1
  83. package/dist/gateway/static/root/assets/{workspace-api-Xr3wz8T3.js → workspace-api-Du7-xJ0q.js} +2 -2
  84. package/dist/gateway/static/root/assets/{xopc-cloud-account-card-BTBVKpSg.js → xopc-cloud-account-card-D8B136vW.js} +1 -1
  85. package/dist/gateway/static/root/index.html +12 -12
  86. package/dist/package.js +1 -1
  87. package/dist/packages/gateway-contract/src/index.js +2 -0
  88. package/dist/packages/gateway-contract/src/task-research-result.js +89 -0
  89. package/dist/packages/gateway-contract/src/tasks.js +7 -1
  90. package/dist/packages/gateway-contract/src/turn-outcome.js +3 -0
  91. package/dist/src/agent/child-agent-factory.d.ts +4 -1
  92. package/dist/src/agent/child-agent-factory.js +91 -11
  93. package/dist/src/agent/context/connection-objective-context.d.ts +1 -0
  94. package/dist/src/agent/context/connection-objective-context.js +33 -0
  95. package/dist/src/agent/data-acquisition/service.js +41 -6
  96. package/dist/src/agent/data-acquisition/types.d.ts +2 -0
  97. package/dist/src/agent/embedded/agent-profile-context.d.ts +7 -0
  98. package/dist/src/agent/embedded/agent-profile-context.js +92 -0
  99. package/dist/src/agent/embedded/execution-tool-policy.d.ts +1 -1
  100. package/dist/src/agent/embedded/execution-tool-policy.js +3 -2
  101. package/dist/src/agent/embedded/run-for-session.js +37 -14
  102. package/dist/src/agent/embedded/run-turn.js +123 -26
  103. package/dist/src/agent/embedded/runs.d.ts +9 -2
  104. package/dist/src/agent/embedded/runs.js +30 -7
  105. package/dist/src/agent/embedded/session-runner.js +14 -3
  106. package/dist/src/agent/embedded/types.d.ts +6 -1
  107. package/dist/src/agent/external-tools/cliProvider.d.ts +1 -0
  108. package/dist/src/agent/external-tools/cliProvider.js +1 -0
  109. package/dist/src/agent/external-tools/composio-provider.js +2 -0
  110. package/dist/src/agent/external-tools/gateway-tools.js +15 -5
  111. package/dist/src/agent/external-tools/service.d.ts +1 -0
  112. package/dist/src/agent/external-tools/service.js +3 -1
  113. package/dist/src/agent/external-tools/types.d.ts +4 -0
  114. package/dist/src/agent/orchestration/agent-run-supervisor.js +2 -1
  115. package/dist/src/agent/orchestration/agent-turn-policy.d.ts +1 -0
  116. package/dist/src/agent/orchestration/agent-turn-policy.js +5 -1
  117. package/dist/src/agent/orchestration/delegation-budget.d.ts +7 -1
  118. package/dist/src/agent/orchestration/delegation-budget.js +19 -10
  119. package/dist/src/agent/orchestration/llm-turn-retry.d.ts +5 -0
  120. package/dist/src/agent/orchestration/llm-turn-retry.js +15 -5
  121. package/dist/src/agent/orchestration/research-checkpoint.d.ts +56 -0
  122. package/dist/src/agent/orchestration/research-checkpoint.js +64 -0
  123. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +3 -1
  124. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +15 -2
  125. package/dist/src/agent/orchestration/run-termination.d.ts +12 -0
  126. package/dist/src/agent/orchestration/run-termination.js +24 -0
  127. package/dist/src/agent/orchestration/turn-recovery.d.ts +9 -0
  128. package/dist/src/agent/orchestration/turn-recovery.js +45 -0
  129. package/dist/src/agent/prompt/sections/agent-identity.js +12 -7
  130. package/dist/src/agent/prompt/sections/messaging-runtime.js +1 -1
  131. package/dist/src/agent/prompt/sections/project-context.js +1 -1
  132. package/dist/src/agent/prompt/sections/response-language.d.ts +1 -1
  133. package/dist/src/agent/prompt/sections/response-language.js +6 -2
  134. package/dist/src/agent/prompt/subagent-context.js +1 -1
  135. package/dist/src/agent/prompt/system-prompt.js +4 -6
  136. package/dist/src/agent/service/direct-turn-helpers.js +6 -5
  137. package/dist/src/agent/service/process-direct-streaming.js +7 -1
  138. package/dist/src/agent/tasks/task-judge-service.js +30 -10
  139. package/dist/src/agent/tools/apply-patch.js +1 -1
  140. package/dist/src/agent/tools/delegate-tool.js +216 -121
  141. package/dist/src/agent/tools/delegation-policy.js +13 -1
  142. package/dist/src/agent/tools/factory.js +12 -1
  143. package/dist/src/agent/tools/index.d.ts +2 -0
  144. package/dist/src/agent/tools/index.js +3 -1
  145. package/dist/src/agent/tools/language-diagnostics.js +1 -1
  146. package/dist/src/agent/tools/personal-request-result-tool.js +20 -3
  147. package/dist/src/agent/tools/personal-request-tool.js +165 -23
  148. package/dist/src/agent/tools/personal-task-tool.d.ts +6 -3
  149. package/dist/src/agent/tools/personal-task-tool.js +146 -23
  150. package/dist/src/agent/tools/publish-artifacts.js +1 -1
  151. package/dist/src/agent/tools/research-checkpoint-tool.d.ts +3 -0
  152. package/dist/src/agent/tools/research-checkpoint-tool.js +28 -0
  153. package/dist/src/agent/tools/review-workspace.js +1 -1
  154. package/dist/src/agent/tools/search/cache.d.ts +20 -0
  155. package/dist/src/agent/tools/search/cache.js +19 -0
  156. package/dist/src/agent/tools/search/errors.d.ts +19 -0
  157. package/dist/src/agent/tools/search/errors.js +69 -0
  158. package/dist/src/agent/tools/search/providers/bing-api.js +2 -1
  159. package/dist/src/agent/tools/search/providers/bing-html.js +2 -1
  160. package/dist/src/agent/tools/search/providers/brave.js +2 -1
  161. package/dist/src/agent/tools/search/providers/duckduckgo-html.js +2 -1
  162. package/dist/src/agent/tools/search/providers/searxng.js +2 -1
  163. package/dist/src/agent/tools/search/providers/tavily.js +2 -1
  164. package/dist/src/agent/tools/search/providers/xopc-cloud.d.ts +1 -0
  165. package/dist/src/agent/tools/search/providers/xopc-cloud.js +7 -2
  166. package/dist/src/agent/tools/search/registry.d.ts +21 -5
  167. package/dist/src/agent/tools/search/registry.js +252 -25
  168. package/dist/src/agent/tools/search/types.d.ts +25 -0
  169. package/dist/src/agent/tools/task-collaboration-tool.d.ts +16 -0
  170. package/dist/src/agent/tools/task-collaboration-tool.js +153 -0
  171. package/dist/src/agent/tools/task-result-tool.d.ts +2 -0
  172. package/dist/src/agent/tools/task-result-tool.js +73 -0
  173. package/dist/src/agent/tools/web.d.ts +16 -2
  174. package/dist/src/agent/tools/web.js +74 -29
  175. package/dist/src/agent/tools/xopc-use-tool.js +3 -3
  176. package/dist/src/automations/capabilities/write.d.ts +4 -4
  177. package/dist/src/automations/domain/validation.d.ts +8 -8
  178. package/dist/src/automations/draft/automation-draft-validator.d.ts +2 -2
  179. package/dist/src/browser/automations/schema.d.ts +2 -2
  180. package/dist/src/browser/automations/service.d.ts +2 -2
  181. package/dist/src/cli/commands/channels.js +1 -1
  182. package/dist/src/cli/commands/connectors.js +1 -1
  183. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  184. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  185. package/dist/src/cli/commands/models.js +1 -1
  186. package/dist/src/cli/commands/onboard.js +1 -1
  187. package/dist/src/config/index.js +2 -2
  188. package/dist/src/config/schema.d.ts +1 -0
  189. package/dist/src/config/schema.js +4 -1
  190. package/dist/src/connectors/connection-recovery-service.d.ts +9 -1
  191. package/dist/src/connectors/connection-recovery-service.js +213 -33
  192. package/dist/src/discussions/action-tasks.d.ts +2 -2
  193. package/dist/src/extensions/sdk/index.js +1 -1
  194. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  195. package/dist/src/gateway/hono/routes/connection-waits.js +3 -1
  196. package/dist/src/gateway/hono/routes/projects.js +1 -1
  197. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +16 -0
  198. package/dist/src/gateway/hono/routes/tasks.js +1 -1
  199. package/dist/src/gateway/service/agent-runner.d.ts +2 -0
  200. package/dist/src/gateway/service/agent-runner.js +30 -17
  201. package/dist/src/gateway/service/run-gateway-agent.js +21 -6
  202. package/dist/src/gateway/service/session-input-coordinator.d.ts +10 -1
  203. package/dist/src/gateway/service/session-input-coordinator.js +216 -27
  204. package/dist/src/gateway/service.d.ts +1 -0
  205. package/dist/src/gateway/service.js +6 -4
  206. package/dist/src/gateway/session-context-summary.js +1 -1
  207. package/dist/src/personal-agent/prompts.js +10 -3
  208. package/dist/src/personal-agent/reply-composer.d.ts +1 -0
  209. package/dist/src/personal-agent/reply-composer.js +91 -19
  210. package/dist/src/personal-agent/reply-style.d.ts +1 -1
  211. package/dist/src/personal-agent/reply-style.js +1 -0
  212. package/dist/src/personal-agent/repository.d.ts +1 -1
  213. package/dist/src/personal-agent/repository.js +1 -1
  214. package/dist/src/personal-agent/request-access.d.ts +3 -0
  215. package/dist/src/personal-agent/request-access.js +31 -0
  216. package/dist/src/personal-agent/request-delivery.js +9 -4
  217. package/dist/src/personal-agent/request-repository.d.ts +3 -0
  218. package/dist/src/personal-agent/request-service.d.ts +6 -0
  219. package/dist/src/personal-agent/request-service.js +121 -25
  220. package/dist/src/personal-agent/result-file-links.d.ts +3 -0
  221. package/dist/src/personal-agent/result-file-links.js +21 -0
  222. package/dist/src/personal-agent/task-cancel.js +85 -35
  223. package/dist/src/providers/model-response.js +13 -2
  224. package/dist/src/scenes/taskFollowUp/service.d.ts +15 -5
  225. package/dist/src/session/session-context-for-llm.js +2 -2
  226. package/dist/src/session/store.d.ts +3 -1
  227. package/dist/src/session/store.js +30 -7
  228. package/dist/src/storage/sqlite/connection-wait-repository.d.ts +7 -2
  229. package/dist/src/storage/sqlite/connection-wait-repository.js +124 -20
  230. package/dist/src/storage/sqlite/index.d.ts +1 -0
  231. package/dist/src/storage/sqlite/index.js +3 -1
  232. package/dist/src/storage/sqlite/migrations/250_research_checkpoints.sql +15 -0
  233. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  234. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  235. package/dist/src/storage/sqlite/research-checkpoint-repository.d.ts +24 -0
  236. package/dist/src/storage/sqlite/research-checkpoint-repository.js +91 -0
  237. package/dist/src/storage/sqlite/schema.js +1 -1
  238. package/dist/src/storage/sqlite/session-creation-repository.js +3 -2
  239. package/dist/src/storage/sqlite/session-input-repository.d.ts +16 -0
  240. package/dist/src/storage/sqlite/session-input-repository.js +41 -7
  241. package/dist/src/storage/sqlite/transcript-repository.d.ts +2 -0
  242. package/dist/src/storage/sqlite/transcript-repository.js +25 -1
  243. package/dist/src/tasks/capabilities/management.d.ts +2 -2
  244. package/dist/src/tasks/capabilities/relations.d.ts +7 -7
  245. package/dist/src/tasks/capabilities/write.d.ts +2 -2
  246. package/dist/src/tasks/index.js +1 -1
  247. package/dist/src/tasks/task-allocation-service.d.ts +2 -0
  248. package/dist/src/tasks/task-allocation-service.js +43 -2
  249. package/dist/src/tasks/task-application-service.js +3 -3
  250. package/dist/src/tasks/task-collaboration-delivery.js +4 -1
  251. package/dist/src/tasks/task-collaboration-repository.d.ts +3 -0
  252. package/dist/src/tasks/task-collaboration-repository.js +11 -1
  253. package/dist/src/tasks/task-context-assembler.js +19 -6
  254. package/dist/src/tasks/task-continuation.d.ts +6 -0
  255. package/dist/src/tasks/task-continuation.js +33 -0
  256. package/dist/src/tasks/task-contract-planner.d.ts +1 -0
  257. package/dist/src/tasks/task-contract-planner.js +22 -15
  258. package/dist/src/tasks/task-main-update-delivery.js +13 -8
  259. package/dist/src/tasks/task-model-call.d.ts +7 -0
  260. package/dist/src/tasks/task-model-call.js +35 -0
  261. package/dist/src/tasks/task-read-model-projector.js +1 -1
  262. package/dist/src/tasks/task-research-repair.d.ts +19 -0
  263. package/dist/src/tasks/task-research-repair.js +75 -0
  264. package/dist/src/tasks/task-research-result.d.ts +85 -0
  265. package/dist/src/tasks/task-research-result.js +394 -0
  266. package/dist/src/tasks/task-result-delivery-repository.js +13 -2
  267. package/dist/src/tasks/task-result-delivery-service.js +1 -1
  268. package/dist/src/tasks/task-run-coordinator.d.ts +1 -0
  269. package/dist/src/tasks/task-run-coordinator.js +80 -11
  270. package/dist/src/tasks/task-run-dispatcher.js +12 -0
  271. package/dist/src/tasks/task-run-repository.d.ts +13 -0
  272. package/dist/src/tasks/task-run-repository.js +120 -2
  273. package/package.json +7 -3
  274. package/dist/gateway/static/root/assets/constants-Dy8Gw0sF.js +0 -1
  275. package/dist/gateway/static/root/assets/index-yseLAt9D.css +0 -1
  276. package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-C4VzqE9z.js +0 -1
  277. package/dist/gateway/static/root/assets/session-manager-_yy4bxhT.js +0 -16
  278. package/dist/gateway/static/root/assets/settings-advanced-gate-O_0Lk38S.js +0 -1
  279. package/dist/gateway/static/root/assets/task-detail-page-88EShcbs.js +0 -2
  280. package/dist/gateway/static/root/assets/task-expandable-content-CF6Bj-Qa.js +0 -1
@@ -0,0 +1,153 @@
1
+ import { TaskRepository, init_task_repository } from "../../tasks/task-repository.js";
2
+ import { TaskRunRepository, init_task_run_repository } from "../../tasks/task-run-repository.js";
3
+ import { init_request_repository, personalRequestForExecution } from "../../personal-agent/request-repository.js";
4
+ import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
5
+ import { init_session_repository } from "../../storage/sqlite/session-repository.js";
6
+ import { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
7
+ import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
8
+ import { getEmbeddedExecutionSession } from "../embedded/execution-context.js";
9
+ import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
10
+ import { createXopcUseTool } from "./xopc-use-tool.js";
11
+ import { Type } from "@sinclair/typebox";
12
+ //#region src/agent/tools/task-collaboration-tool.ts
13
+ init_request_repository();
14
+ init_session_repository();
15
+ init_task_repository();
16
+ init_task_run_repository();
17
+ const Schema = Type.Object({
18
+ command: Type.Union([Type.Literal("get"), Type.Literal("post")]),
19
+ section: Type.Optional(Type.Union([Type.Literal("collaboration"), Type.Literal("task")])),
20
+ kind: Type.Optional(Type.Union([
21
+ Type.Literal("progress"),
22
+ Type.Literal("question"),
23
+ Type.Literal("ack")
24
+ ])),
25
+ body: Type.Optional(Type.String({
26
+ minLength: 1,
27
+ maxLength: 8e3
28
+ })),
29
+ causationId: Type.Optional(Type.String({ minLength: 1 })),
30
+ entryId: Type.Optional(Type.String({ minLength: 1 })),
31
+ afterSequence: Type.Optional(Type.Integer({ minimum: 0 })),
32
+ limit: Type.Optional(Type.Integer({
33
+ minimum: 1,
34
+ maximum: 20
35
+ })),
36
+ idempotencyKey: Type.Optional(Type.String({
37
+ minLength: 1,
38
+ maxLength: 200
39
+ }))
40
+ }, {
41
+ additionalProperties: false,
42
+ anyOf: [
43
+ { properties: { command: { const: "get" } } },
44
+ {
45
+ properties: {
46
+ command: { const: "post" },
47
+ kind: { enum: ["progress", "question"] }
48
+ },
49
+ required: ["kind", "body"]
50
+ },
51
+ {
52
+ properties: {
53
+ command: { const: "post" },
54
+ kind: { const: "ack" }
55
+ },
56
+ required: [
57
+ "kind",
58
+ "body",
59
+ "causationId"
60
+ ]
61
+ }
62
+ ]
63
+ });
64
+ /** Collaboration only: no product mutations, connection selection or external operations. */
65
+ function createTaskCollaborationTool(deps) {
66
+ return {
67
+ name: "task_collaboration",
68
+ label: "Task collaboration",
69
+ parameters: Schema,
70
+ description: "Coordinate the current Task with its Personal owner. get with section task reads the complete brief, constraints and waits; default get reads complete ordered messages (afterSequence/limit) or one entryId. post progress for meaningful changes; post question then stop this turn until answered. Before continuing, post ack with causationId equal to each delivered answer/instruction ID and explain how the result will incorporate it. Confirmation is receipt and intent, not completed verification. Reuse the same Task and executor. Account authorization stays in the main connection UI; answers and instructions cannot change the selected connector/account or permit writes. Preserve idempotencyKey on retries.",
71
+ mutatesWorkspace: true,
72
+ mutationScope: "external",
73
+ requiresExclusiveWorkspaceLock: false,
74
+ async execute(toolCallId, input, signal) {
75
+ const conversationId = getEmbeddedExecutionSession() ?? deps.getCurrentConversationId?.();
76
+ const active = conversationId ? new TaskConversationRepository().resolveActiveExecutionSession(conversationId) : void 0;
77
+ if (!active || deps.getCurrentAgentId?.() && active.agentId !== deps.getCurrentAgentId()) throw new Error("No active Task execution");
78
+ const request = personalRequestForExecution(conversationId);
79
+ if (!request && getSessionMetadata(conversationId)?.customData?.personalReadRequestId || request && [
80
+ "cancelled",
81
+ "completed",
82
+ "failed"
83
+ ].includes(request.state)) throw new Error("Personal request is no longer active");
84
+ if (input.command === "get") {
85
+ if (input.section === "task") {
86
+ const model = new TaskReadModelProjector().project(new TaskRepository().require(active.taskId));
87
+ return {
88
+ content: [{
89
+ type: "text",
90
+ text: JSON.stringify({
91
+ ok: true,
92
+ ...model,
93
+ waits: new TaskRunRepository().listActiveWaits(active.taskId)
94
+ })
95
+ }],
96
+ details: {}
97
+ };
98
+ }
99
+ const board = new TaskCollaborationRepository();
100
+ if (input.entryId) {
101
+ const entry = board.get(input.entryId);
102
+ if (entry?.taskId !== active.taskId) throw new Error("Entry does not belong to this Task");
103
+ return {
104
+ content: [{
105
+ type: "text",
106
+ text: JSON.stringify({
107
+ ok: true,
108
+ entry
109
+ })
110
+ }],
111
+ details: {}
112
+ };
113
+ }
114
+ const limit = input.limit ?? 10;
115
+ const rows = board.list(active.taskId, input.afterSequence ?? 0, limit + 1);
116
+ const entries = rows.slice(0, limit);
117
+ return {
118
+ content: [{
119
+ type: "text",
120
+ text: JSON.stringify({
121
+ ok: true,
122
+ entries,
123
+ ...rows.length > limit ? { nextAfterSequence: entries.at(-1)?.sequence } : {}
124
+ })
125
+ }],
126
+ details: {}
127
+ };
128
+ }
129
+ const result = await createXopcUseTool({
130
+ ...deps,
131
+ getCurrentConversationId: () => conversationId,
132
+ getCurrentAgentId: () => active.agentId
133
+ }).execute(toolCallId, {
134
+ mode: "task",
135
+ command: "collaboration_post",
136
+ args: {
137
+ taskId: active.taskId,
138
+ kind: input.kind,
139
+ body: input.body,
140
+ causationId: input.causationId,
141
+ idempotencyKey: input.idempotencyKey ?? (input.kind === "ack" ? `ack:${active.agentId}:${input.causationId}` : toolCallId)
142
+ }
143
+ }, signal, void 0);
144
+ if (result.details.result?.ok === false) throw new Error(result.details.result.error ?? "Task collaboration failed");
145
+ return {
146
+ content: result.content,
147
+ details: {}
148
+ };
149
+ }
150
+ };
151
+ }
152
+ //#endregion
153
+ export { createTaskCollaborationTool };
@@ -0,0 +1,2 @@
1
+ import type { AgentTool } from '@earendil-works/pi-agent-core';
2
+ export declare function createTaskResultTool(getConversationId: () => string | undefined): AgentTool;
@@ -0,0 +1,73 @@
1
+ import { submitTaskResearchResult } from "../../tasks/task-research-result.js";
2
+ import { Type } from "@sinclair/typebox";
3
+ //#region src/agent/tools/task-result-tool.ts
4
+ const id = Type.String({
5
+ minLength: 1,
6
+ maxLength: 120
7
+ });
8
+ const schema = Type.Object({
9
+ mode: Type.Optional(Type.Union([Type.Literal("replace"), Type.Literal("amend")])),
10
+ retireClaimIds: Type.Optional(Type.Array(id, { maxItems: 40 })),
11
+ sources: Type.Array(Type.Object({
12
+ id,
13
+ toolCallId: Type.Optional(Type.String()),
14
+ excerpt: Type.String({
15
+ minLength: 1,
16
+ maxLength: 2e3
17
+ }),
18
+ url: Type.Optional(Type.String())
19
+ }), {
20
+ minItems: 1,
21
+ maxItems: 40
22
+ }),
23
+ claims: Type.Array(Type.Object({
24
+ id,
25
+ statement: Type.String({
26
+ minLength: 1,
27
+ maxLength: 2e3
28
+ }),
29
+ kind: Type.Union([
30
+ Type.Literal("fact"),
31
+ Type.Literal("inference"),
32
+ Type.Literal("recommendation")
33
+ ]),
34
+ sourceIds: Type.Array(id, {
35
+ minItems: 1,
36
+ maxItems: 8
37
+ })
38
+ }), {
39
+ minItems: 1,
40
+ maxItems: 40
41
+ })
42
+ }, { additionalProperties: false });
43
+ function createTaskResultTool(getConversationId) {
44
+ return {
45
+ name: "publish_task_result",
46
+ label: "Publish research conclusions",
47
+ parameters: schema,
48
+ description: "Submit Task research evidence for per-criterion review; publish required files first. Initial submission creates the ledger; subsequent submissions default to amend so earlier evidence is retained. Use explicit replace only for a complete replacement ledger. During repair retain stable source/claim IDs, update targeted claims and retire obsolete/wrong claim IDs with retireClaimIds. All retained claims are reviewed again. Never drop valid calculation/input evidence merely to fix a file. Sources require short contiguous exact excerpts from successful read_file/read_media/web/exec/session_status results or publication receipts in this TaskRun. Never concatenate passages, invent call IDs, or cite an earlier review as factual evidence. Prefer original inputs; the host reads published reports/scripts. URL is optional; actual web metadata is preserved. Claims reference source IDs and distinguish fact/inference/recommendation. Publication receipts prove availability, not prices. This binds provenance and runs model review, not independent fact certification. Resubmit changed evidence or adopted directions; do not endlessly repeat unchanged data when review is unavailable. Do not use outside a Task.",
49
+ supportsParallel: false,
50
+ mutationScope: "none",
51
+ idempotent: false,
52
+ async execute(toolCallId, input, signal) {
53
+ const conversationId = getConversationId();
54
+ if (!conversationId) throw new Error("Task conversation is required");
55
+ const research = await submitTaskResearchResult(conversationId, toolCallId, input, signal);
56
+ return {
57
+ content: [{
58
+ type: "text",
59
+ text: JSON.stringify({
60
+ saved: true,
61
+ review: research.review,
62
+ claims: research.claims,
63
+ checks: research.checks,
64
+ instructionChecks: research.instructionChecks
65
+ })
66
+ }],
67
+ details: { research }
68
+ };
69
+ }
70
+ };
71
+ }
72
+ //#endregion
73
+ export { createTaskResultTool };
@@ -1,4 +1,18 @@
1
- import type { AgentTool } from '@earendil-works/pi-agent-core';
1
+ import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core';
2
2
  import type { Config } from '../../config/schema.js';
3
- export declare function createWebSearchTool(getConfig: () => Config | undefined): AgentTool;
3
+ export interface WebSearchBatchTool extends AgentTool {
4
+ executeSearchBatch(requests: Array<{
5
+ id: string;
6
+ query: string;
7
+ count?: number;
8
+ }>, signal?: AbortSignal, authorize?: () => void): Promise<{
9
+ items: Array<{
10
+ id: string;
11
+ result: AgentToolResult<any>;
12
+ }>;
13
+ sourceRequests: number;
14
+ }>;
15
+ }
16
+ export declare function createWebSearchTool(getConfig: () => Config | undefined): WebSearchBatchTool;
17
+ export declare function extractReadableText(html: string, pageUrl: string): Promise<string>;
4
18
  export declare function createWebFetchTool(getConfig: () => Config | undefined): AgentTool;
@@ -1,3 +1,4 @@
1
+ import { SearchError, classifySearchError, searchFailureInfo } from "./search/errors.js";
1
2
  import { SearchProviderRegistry } from "./search/registry.js";
2
3
  import { resolveWebSearchConfig } from "./search/resolve-config.js";
3
4
  import { fetchPublicText } from "./fetch-text.js";
@@ -10,52 +11,93 @@ const WebSearchSchema = Type.Object({
10
11
  function formatSearchResults(results) {
11
12
  return results.map((r, i) => `${i + 1}. ${r.title}\n ${r.url}\n ${r.description ? `${r.description}` : ""}`).join("\n\n");
12
13
  }
14
+ function searchToolResult(query, count, response) {
15
+ return {
16
+ content: [{
17
+ type: "text",
18
+ text: response.results.length ? formatSearchResults(response.results) : "No results found."
19
+ }],
20
+ details: {
21
+ results: response.results,
22
+ provider: response.provider,
23
+ query,
24
+ count,
25
+ cached: response.cached ?? false,
26
+ capturedAt: response.capturedAt
27
+ }
28
+ };
29
+ }
30
+ function searchToolError(error, signal) {
31
+ const failure = classifySearchError(error, signal);
32
+ return {
33
+ content: [{
34
+ type: "text",
35
+ text: `Search error (${failure.kind}): ${failure.message}`
36
+ }],
37
+ details: {
38
+ results: [],
39
+ error: failure.message,
40
+ failure: searchFailureInfo(failure),
41
+ status: failure.kind === "cancelled" ? "cancelled" : "failed"
42
+ }
43
+ };
44
+ }
13
45
  function createWebSearchTool(getConfig) {
14
46
  return {
15
47
  name: "web_search",
16
- description: "Search the web. Uses configured search APIs when set; otherwise falls back to a built-in HTML search (region-aware).",
48
+ description: "Search the web using authorized configured providers or the region-aware HTML fallback. Search failures retain permission, rate-limit and timeout reasons. Research reuses recent successful queries; permission refusals are not bypassed.",
17
49
  parameters: WebSearchSchema,
18
50
  label: "🔍 Web Search",
19
51
  supportsParallel: true,
20
- async execute(_toolCallId, params, signal) {
21
- const p = params;
52
+ async execute(_id, params, signal) {
22
53
  const cfg = resolveWebSearchConfig(getConfig()?.tools?.web);
23
54
  const registry = new SearchProviderRegistry(cfg);
24
- const count = p.count ?? cfg.maxResults ?? 5;
55
+ const count = Math.max(1, Math.min(20, Math.floor(params.count ?? cfg.maxResults ?? 5)));
25
56
  try {
26
- const { results, provider } = await registry.search(p.query, count, signal);
27
- if (results.length === 0) return {
28
- content: [{
29
- type: "text",
30
- text: "No results found."
31
- }],
32
- details: {
33
- results: [],
34
- provider
35
- }
36
- };
57
+ const response = await registry.search(params.query, count, signal);
58
+ const result = searchToolResult(params.query, count, response);
37
59
  return {
38
- content: [{
39
- type: "text",
40
- text: formatSearchResults(results)
41
- }],
60
+ ...result,
42
61
  details: {
43
- results,
44
- provider
62
+ ...result.details,
63
+ sourceRequests: registry.sourceRequests
45
64
  }
46
65
  };
47
66
  } catch (error) {
67
+ const result = searchToolError(error, signal);
48
68
  return {
49
- content: [{
50
- type: "text",
51
- text: `Search error: ${error instanceof Error ? error.message : String(error)}`
52
- }],
69
+ ...result,
53
70
  details: {
54
- results: [],
55
- error: error instanceof Error ? error.message : String(error)
71
+ ...result.details,
72
+ sourceRequests: registry.sourceRequests
56
73
  }
57
74
  };
58
75
  }
76
+ },
77
+ async executeSearchBatch(requests, signal, authorize = () => {}) {
78
+ const cfg = resolveWebSearchConfig(getConfig()?.tools?.web);
79
+ const registry = new SearchProviderRegistry(cfg);
80
+ const inputs = requests.map((request) => ({
81
+ ...request,
82
+ count: Math.max(1, Math.min(20, Math.floor(request.count ?? cfg.maxResults ?? 5)))
83
+ }));
84
+ const responses = await registry.searchBatch(inputs, signal, authorize);
85
+ return {
86
+ sourceRequests: registry.sourceRequests,
87
+ items: responses.map((item) => {
88
+ const result = item.response ? searchToolResult(item.query, item.count, item.response) : searchToolError(new SearchError(item.error), signal);
89
+ return {
90
+ id: item.id,
91
+ result: {
92
+ ...result,
93
+ details: {
94
+ ...result.details,
95
+ fallback: item.fallback
96
+ }
97
+ }
98
+ };
99
+ })
100
+ };
59
101
  }
60
102
  };
61
103
  }
@@ -70,8 +112,11 @@ async function extractReadableText(html, pageUrl) {
70
112
  const { parseHTML } = await import("linkedom");
71
113
  const { Readability } = await import("@mozilla/readability");
72
114
  const { document } = parseHTML(html);
115
+ const paragraphs = [...document.querySelector("main, [role=\"main\"]")?.querySelectorAll("p") ?? []].filter((element) => !element.closest("nav, aside, footer, header")).map((element) => element.textContent?.replace(/\s+/g, " ").trim() ?? "").filter((text) => text.length >= 40 && text.length <= 2e3);
73
116
  Object.defineProperty(document, "documentURI", { value: pageUrl });
74
- return new Readability(document).parse()?.textContent?.trim() ?? "";
117
+ const text = new Readability(document).parse()?.textContent?.trim() ?? "";
118
+ const normalized = text.replace(/\s+/g, " ");
119
+ return [...[...new Set(paragraphs)].filter((paragraph) => !normalized.includes(paragraph)), text].filter(Boolean).join("\n\n");
75
120
  }
76
121
  function createWebFetchTool(getConfig) {
77
122
  return {
@@ -122,4 +167,4 @@ function createWebFetchTool(getConfig) {
122
167
  };
123
168
  }
124
169
  //#endregion
125
- export { createWebFetchTool, createWebSearchTool };
170
+ export { createWebFetchTool, createWebSearchTool, extractReadableText };
@@ -20,16 +20,16 @@ import { TaskOriginRepository } from "../../tasks/task-origin-repository.js";
20
20
  import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
21
21
  import { resolveProjectAgentId } from "../../projects/project-agent.js";
22
22
  import "../../projects/index.js";
23
+ import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
24
+ import { defineTaskContract } from "../../tasks/task-contract-definition.js";
23
25
  import { resolveResponseLanguageForSession } from "../prompt/response-language.js";
24
26
  import { TaskDeletionService } from "../../tasks/task-deletion-service.js";
25
27
  import { TaskDeleteOutputSchema } from "../../tasks/capabilities/management.js";
26
- import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
27
28
  import { TaskApplicationService } from "../../tasks/task-application-service.js";
28
29
  import { AutomationCreateCapabilityInputSchema, AutomationUpdatePatchSchema } from "../../automations/capabilities/write.js";
29
30
  import { TaskMutationOutputSchema } from "../../tasks/capabilities/write.js";
30
31
  import { createProductDispatcher } from "../../capabilities/runtime/product.js";
31
32
  import { localAppCapabilities } from "../../local-apps/capabilities/runtime.js";
32
- import { defineTaskContract } from "../../tasks/task-contract-definition.js";
33
33
  import "../../tasks/index.js";
34
34
  import { randomUUID } from "node:crypto";
35
35
  import { Type } from "@sinclair/typebox";
@@ -1270,7 +1270,7 @@ async function handleTask(command, args, deps, dryRun, capabilities) {
1270
1270
  };
1271
1271
  if (causationId && (kind === "ack" || kind === "answer")) {
1272
1272
  const cited = collaboration.get(causationId);
1273
- if (cited?.taskId !== taskId || kind === "answer" && cited?.kind !== "question" || kind === "ack" && cited?.deliveryStatus !== "delivered") return {
1273
+ if (cited?.taskId !== taskId || kind === "answer" && cited?.kind !== "question" || kind === "ack" && (!active || !collaboration.canConfirm(causationId, conversationId, active.assignmentEpoch))) return {
1274
1274
  ok: false,
1275
1275
  error: "causationId must reference a relevant Task message"
1276
1276
  };
@@ -42,10 +42,10 @@ export declare const AutomationCreateCapabilityInputSchema: z.ZodObject<{
42
42
  }, z.core.$strip>, z.ZodObject<{
43
43
  type: z.ZodLiteral<"move">;
44
44
  phase: z.ZodEnum<{
45
+ review: "review";
45
46
  backlog: "backlog";
46
47
  ready: "ready";
47
48
  active: "active";
48
- review: "review";
49
49
  }>;
50
50
  }, z.core.$strip>, z.ZodObject<{
51
51
  type: z.ZodLiteral<"mark_ready">;
@@ -81,10 +81,10 @@ export declare const AutomationCreateCapabilityInputSchema: z.ZodObject<{
81
81
  }, z.core.$strip>, z.ZodObject<{
82
82
  type: z.ZodLiteral<"reopen">;
83
83
  phase: z.ZodEnum<{
84
+ review: "review";
84
85
  backlog: "backlog";
85
86
  ready: "ready";
86
87
  active: "active";
87
- review: "review";
88
88
  }>;
89
89
  }, z.core.$strip>, z.ZodObject<{
90
90
  type: z.ZodLiteral<"add_wait">;
@@ -245,10 +245,10 @@ export declare const AutomationUpdatePatchSchema: z.ZodObject<{
245
245
  }, z.core.$strip>, z.ZodObject<{
246
246
  type: z.ZodLiteral<"move">;
247
247
  phase: z.ZodEnum<{
248
+ review: "review";
248
249
  backlog: "backlog";
249
250
  ready: "ready";
250
251
  active: "active";
251
- review: "review";
252
252
  }>;
253
253
  }, z.core.$strip>, z.ZodObject<{
254
254
  type: z.ZodLiteral<"mark_ready">;
@@ -284,10 +284,10 @@ export declare const AutomationUpdatePatchSchema: z.ZodObject<{
284
284
  }, z.core.$strip>, z.ZodObject<{
285
285
  type: z.ZodLiteral<"reopen">;
286
286
  phase: z.ZodEnum<{
287
+ review: "review";
287
288
  backlog: "backlog";
288
289
  ready: "ready";
289
290
  active: "active";
290
- review: "review";
291
291
  }>;
292
292
  }, z.core.$strip>, z.ZodObject<{
293
293
  type: z.ZodLiteral<"add_wait">;
@@ -72,10 +72,10 @@ export declare const AutomationActionSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
72
72
  }, z.core.$strip>, z.ZodObject<{
73
73
  type: z.ZodLiteral<"move">;
74
74
  phase: z.ZodEnum<{
75
+ review: "review";
75
76
  backlog: "backlog";
76
77
  ready: "ready";
77
78
  active: "active";
78
- review: "review";
79
79
  }>;
80
80
  }, z.core.$strip>, z.ZodObject<{
81
81
  type: z.ZodLiteral<"mark_ready">;
@@ -111,10 +111,10 @@ export declare const AutomationActionSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
111
111
  }, z.core.$strip>, z.ZodObject<{
112
112
  type: z.ZodLiteral<"reopen">;
113
113
  phase: z.ZodEnum<{
114
+ review: "review";
114
115
  backlog: "backlog";
115
116
  ready: "ready";
116
117
  active: "active";
117
- review: "review";
118
118
  }>;
119
119
  }, z.core.$strip>, z.ZodObject<{
120
120
  type: z.ZodLiteral<"add_wait">;
@@ -295,10 +295,10 @@ export declare const AutomationSchema: z.ZodObject<{
295
295
  }, z.core.$strip>, z.ZodObject<{
296
296
  type: z.ZodLiteral<"move">;
297
297
  phase: z.ZodEnum<{
298
+ review: "review";
298
299
  backlog: "backlog";
299
300
  ready: "ready";
300
301
  active: "active";
301
- review: "review";
302
302
  }>;
303
303
  }, z.core.$strip>, z.ZodObject<{
304
304
  type: z.ZodLiteral<"mark_ready">;
@@ -334,10 +334,10 @@ export declare const AutomationSchema: z.ZodObject<{
334
334
  }, z.core.$strip>, z.ZodObject<{
335
335
  type: z.ZodLiteral<"reopen">;
336
336
  phase: z.ZodEnum<{
337
+ review: "review";
337
338
  backlog: "backlog";
338
339
  ready: "ready";
339
340
  active: "active";
340
- review: "review";
341
341
  }>;
342
342
  }, z.core.$strip>, z.ZodObject<{
343
343
  type: z.ZodLiteral<"add_wait">;
@@ -497,10 +497,10 @@ export declare const CreateAutomationSchema: z.ZodObject<{
497
497
  }, z.core.$strip>, z.ZodObject<{
498
498
  type: z.ZodLiteral<"move">;
499
499
  phase: z.ZodEnum<{
500
+ review: "review";
500
501
  backlog: "backlog";
501
502
  ready: "ready";
502
503
  active: "active";
503
- review: "review";
504
504
  }>;
505
505
  }, z.core.$strip>, z.ZodObject<{
506
506
  type: z.ZodLiteral<"mark_ready">;
@@ -536,10 +536,10 @@ export declare const CreateAutomationSchema: z.ZodObject<{
536
536
  }, z.core.$strip>, z.ZodObject<{
537
537
  type: z.ZodLiteral<"reopen">;
538
538
  phase: z.ZodEnum<{
539
+ review: "review";
539
540
  backlog: "backlog";
540
541
  ready: "ready";
541
542
  active: "active";
542
- review: "review";
543
543
  }>;
544
544
  }, z.core.$strip>, z.ZodObject<{
545
545
  type: z.ZodLiteral<"add_wait">;
@@ -726,10 +726,10 @@ export declare const UpdateAutomationSchema: z.ZodObject<{
726
726
  }, z.core.$strip>, z.ZodObject<{
727
727
  type: z.ZodLiteral<"move">;
728
728
  phase: z.ZodEnum<{
729
+ review: "review";
729
730
  backlog: "backlog";
730
731
  ready: "ready";
731
732
  active: "active";
732
- review: "review";
733
733
  }>;
734
734
  }, z.core.$strip>, z.ZodObject<{
735
735
  type: z.ZodLiteral<"mark_ready">;
@@ -765,10 +765,10 @@ export declare const UpdateAutomationSchema: z.ZodObject<{
765
765
  }, z.core.$strip>, z.ZodObject<{
766
766
  type: z.ZodLiteral<"reopen">;
767
767
  phase: z.ZodEnum<{
768
+ review: "review";
768
769
  backlog: "backlog";
769
770
  ready: "ready";
770
771
  active: "active";
771
- review: "review";
772
772
  }>;
773
773
  }, z.core.$strip>, z.ZodObject<{
774
774
  type: z.ZodLiteral<"add_wait">;
@@ -70,7 +70,7 @@ export declare function buildAutomationDraftResponse(draft: GeneratedAutomationD
70
70
  type: "retry_allocation";
71
71
  } | {
72
72
  type: "move";
73
- phase: "backlog" | "ready" | "active" | "review";
73
+ phase: "review" | "backlog" | "ready" | "active";
74
74
  } | {
75
75
  type: "mark_ready";
76
76
  } | {
@@ -99,7 +99,7 @@ export declare function buildAutomationDraftResponse(draft: GeneratedAutomationD
99
99
  resolution: "cancelled" | "done" | "duplicate" | "wont_do";
100
100
  } | {
101
101
  type: "reopen";
102
- phase: "backlog" | "ready" | "active" | "review";
102
+ phase: "review" | "backlog" | "ready" | "active";
103
103
  } | {
104
104
  type: "add_wait";
105
105
  wait: {
@@ -198,8 +198,8 @@ export declare const BrowserAutomationDefinitionSchema: z.ZodObject<{
198
198
  field: z.ZodEnum<{
199
199
  value: "value";
200
200
  text: "text";
201
- title: "title";
202
201
  url: "url";
202
+ title: "title";
203
203
  checked: "checked";
204
204
  }>;
205
205
  equals: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodBoolean]>>;
@@ -219,8 +219,8 @@ export declare const BrowserAutomationDefinitionSchema: z.ZodObject<{
219
219
  field: z.ZodEnum<{
220
220
  value: "value";
221
221
  text: "text";
222
- title: "title";
223
222
  url: "url";
223
+ title: "title";
224
224
  href: "href";
225
225
  }>;
226
226
  }, z.core.$strict>>>;
@@ -177,7 +177,7 @@ export declare class BrowserAutomationService {
177
177
  })[];
178
178
  description?: string;
179
179
  successCriteria?: {
180
- field: "value" | "text" | "title" | "url" | "checked";
180
+ field: "value" | "text" | "url" | "title" | "checked";
181
181
  target?: {
182
182
  role: string;
183
183
  name?: string;
@@ -192,7 +192,7 @@ export declare class BrowserAutomationService {
192
192
  includes?: string;
193
193
  }[];
194
194
  outputs?: Record<string, {
195
- field: "value" | "text" | "title" | "url" | "href";
195
+ field: "value" | "text" | "url" | "title" | "href";
196
196
  target?: {
197
197
  role: string;
198
198
  name?: string;
@@ -1,8 +1,8 @@
1
1
  import { buildChannelCatalogForConfig } from "../../channels/catalog/channel-catalog-service.js";
2
2
  import { loadConfig, saveConfig } from "../../config/loader.js";
3
- import { formatExamples, register } from "../registry.js";
4
3
  import { listChannelPairingState } from "../../channels/pairing/pairing-service.js";
5
4
  import { approveChannelPairingFromCli } from "../../channels/pairing/approve-cli.js";
5
+ import { formatExamples, register } from "../registry.js";
6
6
  import { colors } from "../utils/colors.js";
7
7
  import { Command } from "commander";
8
8
  //#region src/cli/commands/channels.ts
@@ -1,8 +1,8 @@
1
1
  import { getStoreConnectorInstallPlan, installStoreConnector, listStoreConnectors } from "../../capabilities/store-connector.js";
2
2
  import { loadConfig, saveConfig } from "../../config/loader.js";
3
3
  import { register } from "../registry.js";
4
- import { Command } from "commander";
5
4
  import { confirm } from "@inquirer/prompts";
5
+ import { Command } from "commander";
6
6
  //#region src/cli/commands/connectors.ts
7
7
  function parsePairs(values, option) {
8
8
  const output = {};
@@ -53,7 +53,7 @@ async function checkDatabaseSchema(ctx) {
53
53
  id: "database-schema",
54
54
  label: "Database schema",
55
55
  status: "pass",
56
- message: `SQLite schema v${status.dbVersion} (current release v249).`,
56
+ message: `SQLite schema v${status.dbVersion} (current release v250).`,
57
57
  hints: []
58
58
  };
59
59
  }
@@ -16,8 +16,8 @@ import { existsSync, readFileSync, statSync } from "node:fs";
16
16
  import { execSync } from "node:child_process";
17
17
  import { createHash } from "node:crypto";
18
18
  import semver from "semver";
19
- import { Command } from "commander";
20
19
  import { confirm } from "@inquirer/prompts";
20
+ import { Command } from "commander";
21
21
  //#region src/cli/commands/extension-marketplace.ts
22
22
  init_paths();
23
23
  const MANIFEST = "xopc.extension.json";