@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.
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BSel9yf8.js → agent-avatar-dicebear-D-86VOlb.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-DgHMyhuY.js → agent-defaults-settings-panel-SmeUVHY8.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-plugin-dialog-BosuN4dO.js → agent-plugin-dialog-BVT3wXq5.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-B-pw5RKI.js → agents-D7rLQFhX.js} +3 -3
- package/dist/gateway/static/root/assets/{app-management-settings-panel-DuOqKkfH.js → app-management-settings-panel-CUR7n5iP.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-8JF9rXFr.js → appearance-settings-BCotSGep.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-Cuclpk0A.js → apps-page-hk0bo9LT.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-D7NwNy2I.js → automations-page-CqxuUwox.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-workspace-CSxW4wX0.js → automations-workspace-11_Z69pr.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-Dnb7CH_l.js → block-editor-eldB84Mj.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-GBgDe21o.js → browser-automations-page-D4TaUPYT.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-settings-page-B2FXaO3n.js → browser-settings-page-BXRlxeGV.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-XFwwUNU3.js → capabilities-BkKgImWi.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-2Do3eKMM.js → capabilities-DVj9n65C.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-page-f2-MquJn.js → capabilities-page-CyYlueEd.js} +2 -2
- package/dist/gateway/static/root/assets/{capabilities-settings-panel-D9F0mw16.js → capabilities-settings-panel-uVEgfvo0.js} +1 -1
- package/dist/gateway/static/root/assets/{capability-header-actions-DVRxJPQP.js → capability-header-actions-BXv0xu56.js} +1 -1
- package/dist/gateway/static/root/assets/{channels-CnDm5T1t.js → channels-fNb3SOzm.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-BxSCDbK7.js → chat-terminal-dock-CnLtparQ.js} +1 -1
- package/dist/gateway/static/root/assets/{computer-settings-page-DVAB-kQw.js → computer-settings-page-xM0AnOlP.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-D2EeLXei.js → connector-service-page-CdG2WUb6.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-page-DK9n4hgZ.js → connectors-page-BRd08GH6.js} +1 -1
- package/dist/gateway/static/root/assets/constants-CpWu0oHS.js +1 -0
- package/dist/gateway/static/root/assets/{date-picker-Cl9KfFj8.js → date-picker-DIBbE-O8.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-Ei6aX5WM.js → dependency-picker-DDD8zokD.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-4Evl4RKX.js → desktop-pet-KlF390Xn.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-DAD_OWcX.js → desktop-pet-settings-CgqQMKDC.js} +1 -1
- package/dist/gateway/static/root/assets/{device-pairing-wizard-BA21epMn.js → device-pairing-wizard-BR6isfG2.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-B_Zb5nNR.js → directory-picker-path-field-vPQsW05P.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-DtHNy4TE.js → extension-debug-page-ZHLPrLbH.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-8gWSThWP.js → extension-page-DJ42KFRN.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-nbgU7xBS.js → extension-provider-6IcsyNaV.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-CunUbB09.js → extension-settings-page-D7-5v0V4.js} +1 -1
- package/dist/gateway/static/root/assets/{fallback-models-BSAfzXby.js → fallback-models-DnYn7qOV.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-CN-2229W.js → gateway-settings-Bwe3JWX-.js} +1 -1
- package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-DktBCtHF.js → highlighted-body-KQOG7T2V-DefTxF3q.js} +1 -1
- package/dist/gateway/static/root/assets/{home-page-CUJcNW3H.js → home-page-BtSy2hRV.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-DQm1MNNC.js → imports-page-CTdBYZib.js} +1 -1
- package/dist/gateway/static/root/assets/{index-BPNL54bv.js → index-B08iR7fT.js} +10 -10
- package/dist/gateway/static/root/assets/index-DBRwvWzm.css +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DaC5YjuJ.js → keyboard-shortcuts-settings-CXKp57O_.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-DwQyyo7a.js → local-app-workbench-page-DzD_OzGY.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-CpZhivpf.js → local-apps-page-B0E0vttg.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-Db43nh1M.js → logs-page-eL4fYcMl.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-DrKejBEZ.js → management-settings-DSpjodMC.js} +1 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-BTrk2wWv.js +1 -0
- package/dist/gateway/static/root/assets/{note-detail-panel-a8NSwmmW.js → note-detail-panel-CsY5tQp5.js} +3 -3
- package/dist/gateway/static/root/assets/{notes-page-BKRke43F.js → notes-page-D09LjNoj.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-capture-button-DUaMkmxv.js → page-context-capture-button-DO-aP3D9.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-page-BqF-HHw1.js → personal-page-E8F2aGNB.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-GrhtTQIz.js → product-open-page-aUoA-uPw.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-zdP7gN0y.js → product-preview-content-B-cz-pIV.js} +1 -1
- package/dist/gateway/static/root/assets/{project-detail-page-9Vd_AqDW.js → project-detail-page-WhefAh8E.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-DGunhjoM.js → projects-page-CyqAs0tO.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-BoRsF3Lx.js → remote-access-hub-BwhRGL6m.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-W0HDm--J.js → runtime-tools-settings-panel-o26dmPNq.js} +1 -1
- package/dist/gateway/static/root/assets/{scenes-page-CYsFOfVJ.js → scenes-page-D_e19kv_.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-CBxEbBQq.js → schema-form-DLLdqUC3.js} +1 -1
- package/dist/gateway/static/root/assets/{send-session-input-BCAF-Ikt.js → send-session-input-2I-nFJcE.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-Co5ozD0l.js +16 -0
- package/dist/gateway/static/root/assets/{sessions-page-Dthfx_vc.js → sessions-page-DX6INsiS.js} +1 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-C4_gW1vw.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-CFs-WP_2.js → settings-page-Bc_zxxRu.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-D2-9fXYL.js → setup-status-panel-FpF_cPPr.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-nJ2FWAEP.js → share-preview-page-BOCcPBqQ.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-DTb88RHD.js → shares-settings-CInxjxgJ.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-api-DJ8UBsxq.js → skill-api-Bjd8WAA4.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-DjbBOikT.js → skills-page-8CKS3Oo2.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-Dt5GkLhM.js → system-settings-panel-BgQdsrNw.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-BnG5ehZ6.js +2 -0
- package/dist/gateway/static/root/assets/task-expandable-content-BCuc70Vc.js +1 -0
- package/dist/gateway/static/root/assets/{tasks-DJIeIk9C.js → tasks-PuIUgF9L.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-JHttXi63.js → tunnel-api-CY7MoDGf.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-B3rUa0fW.js → usage-page-s8Sv_PIG.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-BFP3k6oC.js → use-composer-attachments-D0S2iZF4.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-B1BiTQNS.js → use-file-preview-expanded-BElqELib.js} +1 -1
- package/dist/gateway/static/root/assets/{user-model-page-Cq1VSsZw.js → user-model-page-CyWrEtHY.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-BAtG_JHv.js → work-discovery-overlay-DmZXLs1v.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-Cw12NFgx.js → workflow-run-setup-panel-BdLOzHm4.js} +1 -1
- package/dist/gateway/static/root/assets/{workflows-page-kR5ouOuM.js → workflows-page-Cx3I3AV5.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-api-Xr3wz8T3.js → workspace-api-Du7-xJ0q.js} +2 -2
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-BTBVKpSg.js → xopc-cloud-account-card-D8B136vW.js} +1 -1
- package/dist/gateway/static/root/index.html +12 -12
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/index.js +2 -0
- package/dist/packages/gateway-contract/src/task-research-result.js +89 -0
- package/dist/packages/gateway-contract/src/tasks.js +7 -1
- package/dist/packages/gateway-contract/src/turn-outcome.js +3 -0
- package/dist/src/agent/child-agent-factory.d.ts +4 -1
- package/dist/src/agent/child-agent-factory.js +91 -11
- package/dist/src/agent/context/connection-objective-context.d.ts +1 -0
- package/dist/src/agent/context/connection-objective-context.js +33 -0
- package/dist/src/agent/data-acquisition/service.js +41 -6
- package/dist/src/agent/data-acquisition/types.d.ts +2 -0
- package/dist/src/agent/embedded/agent-profile-context.d.ts +7 -0
- package/dist/src/agent/embedded/agent-profile-context.js +92 -0
- package/dist/src/agent/embedded/execution-tool-policy.d.ts +1 -1
- package/dist/src/agent/embedded/execution-tool-policy.js +3 -2
- package/dist/src/agent/embedded/run-for-session.js +37 -14
- package/dist/src/agent/embedded/run-turn.js +123 -26
- package/dist/src/agent/embedded/runs.d.ts +9 -2
- package/dist/src/agent/embedded/runs.js +30 -7
- package/dist/src/agent/embedded/session-runner.js +14 -3
- package/dist/src/agent/embedded/types.d.ts +6 -1
- package/dist/src/agent/external-tools/cliProvider.d.ts +1 -0
- package/dist/src/agent/external-tools/cliProvider.js +1 -0
- package/dist/src/agent/external-tools/composio-provider.js +2 -0
- package/dist/src/agent/external-tools/gateway-tools.js +15 -5
- package/dist/src/agent/external-tools/service.d.ts +1 -0
- package/dist/src/agent/external-tools/service.js +3 -1
- package/dist/src/agent/external-tools/types.d.ts +4 -0
- package/dist/src/agent/orchestration/agent-run-supervisor.js +2 -1
- package/dist/src/agent/orchestration/agent-turn-policy.d.ts +1 -0
- package/dist/src/agent/orchestration/agent-turn-policy.js +5 -1
- package/dist/src/agent/orchestration/delegation-budget.d.ts +7 -1
- package/dist/src/agent/orchestration/delegation-budget.js +19 -10
- package/dist/src/agent/orchestration/llm-turn-retry.d.ts +5 -0
- package/dist/src/agent/orchestration/llm-turn-retry.js +15 -5
- package/dist/src/agent/orchestration/research-checkpoint.d.ts +56 -0
- package/dist/src/agent/orchestration/research-checkpoint.js +64 -0
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +3 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +15 -2
- package/dist/src/agent/orchestration/run-termination.d.ts +12 -0
- package/dist/src/agent/orchestration/run-termination.js +24 -0
- package/dist/src/agent/orchestration/turn-recovery.d.ts +9 -0
- package/dist/src/agent/orchestration/turn-recovery.js +45 -0
- package/dist/src/agent/prompt/sections/agent-identity.js +12 -7
- package/dist/src/agent/prompt/sections/messaging-runtime.js +1 -1
- package/dist/src/agent/prompt/sections/project-context.js +1 -1
- package/dist/src/agent/prompt/sections/response-language.d.ts +1 -1
- package/dist/src/agent/prompt/sections/response-language.js +6 -2
- package/dist/src/agent/prompt/subagent-context.js +1 -1
- package/dist/src/agent/prompt/system-prompt.js +4 -6
- package/dist/src/agent/service/direct-turn-helpers.js +6 -5
- package/dist/src/agent/service/process-direct-streaming.js +7 -1
- package/dist/src/agent/tasks/task-judge-service.js +30 -10
- package/dist/src/agent/tools/apply-patch.js +1 -1
- package/dist/src/agent/tools/delegate-tool.js +216 -121
- package/dist/src/agent/tools/delegation-policy.js +13 -1
- package/dist/src/agent/tools/factory.js +12 -1
- package/dist/src/agent/tools/index.d.ts +2 -0
- package/dist/src/agent/tools/index.js +3 -1
- package/dist/src/agent/tools/language-diagnostics.js +1 -1
- package/dist/src/agent/tools/personal-request-result-tool.js +20 -3
- package/dist/src/agent/tools/personal-request-tool.js +165 -23
- package/dist/src/agent/tools/personal-task-tool.d.ts +6 -3
- package/dist/src/agent/tools/personal-task-tool.js +146 -23
- package/dist/src/agent/tools/publish-artifacts.js +1 -1
- package/dist/src/agent/tools/research-checkpoint-tool.d.ts +3 -0
- package/dist/src/agent/tools/research-checkpoint-tool.js +28 -0
- package/dist/src/agent/tools/review-workspace.js +1 -1
- package/dist/src/agent/tools/search/cache.d.ts +20 -0
- package/dist/src/agent/tools/search/cache.js +19 -0
- package/dist/src/agent/tools/search/errors.d.ts +19 -0
- package/dist/src/agent/tools/search/errors.js +69 -0
- package/dist/src/agent/tools/search/providers/bing-api.js +2 -1
- package/dist/src/agent/tools/search/providers/bing-html.js +2 -1
- package/dist/src/agent/tools/search/providers/brave.js +2 -1
- package/dist/src/agent/tools/search/providers/duckduckgo-html.js +2 -1
- package/dist/src/agent/tools/search/providers/searxng.js +2 -1
- package/dist/src/agent/tools/search/providers/tavily.js +2 -1
- package/dist/src/agent/tools/search/providers/xopc-cloud.d.ts +1 -0
- package/dist/src/agent/tools/search/providers/xopc-cloud.js +7 -2
- package/dist/src/agent/tools/search/registry.d.ts +21 -5
- package/dist/src/agent/tools/search/registry.js +252 -25
- package/dist/src/agent/tools/search/types.d.ts +25 -0
- package/dist/src/agent/tools/task-collaboration-tool.d.ts +16 -0
- package/dist/src/agent/tools/task-collaboration-tool.js +153 -0
- package/dist/src/agent/tools/task-result-tool.d.ts +2 -0
- package/dist/src/agent/tools/task-result-tool.js +73 -0
- package/dist/src/agent/tools/web.d.ts +16 -2
- package/dist/src/agent/tools/web.js +74 -29
- package/dist/src/agent/tools/xopc-use-tool.js +3 -3
- package/dist/src/automations/capabilities/write.d.ts +4 -4
- package/dist/src/automations/domain/validation.d.ts +8 -8
- package/dist/src/automations/draft/automation-draft-validator.d.ts +2 -2
- package/dist/src/browser/automations/schema.d.ts +2 -2
- package/dist/src/browser/automations/service.d.ts +2 -2
- package/dist/src/cli/commands/channels.js +1 -1
- package/dist/src/cli/commands/connectors.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +1 -1
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/schema.d.ts +1 -0
- package/dist/src/config/schema.js +4 -1
- package/dist/src/connectors/connection-recovery-service.d.ts +9 -1
- package/dist/src/connectors/connection-recovery-service.js +213 -33
- package/dist/src/discussions/action-tasks.d.ts +2 -2
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/hono/routes/connection-waits.js +3 -1
- package/dist/src/gateway/hono/routes/projects.js +1 -1
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +16 -0
- package/dist/src/gateway/hono/routes/tasks.js +1 -1
- package/dist/src/gateway/service/agent-runner.d.ts +2 -0
- package/dist/src/gateway/service/agent-runner.js +30 -17
- package/dist/src/gateway/service/run-gateway-agent.js +21 -6
- package/dist/src/gateway/service/session-input-coordinator.d.ts +10 -1
- package/dist/src/gateway/service/session-input-coordinator.js +216 -27
- package/dist/src/gateway/service.d.ts +1 -0
- package/dist/src/gateway/service.js +6 -4
- package/dist/src/gateway/session-context-summary.js +1 -1
- package/dist/src/personal-agent/prompts.js +10 -3
- package/dist/src/personal-agent/reply-composer.d.ts +1 -0
- package/dist/src/personal-agent/reply-composer.js +91 -19
- package/dist/src/personal-agent/reply-style.d.ts +1 -1
- package/dist/src/personal-agent/reply-style.js +1 -0
- package/dist/src/personal-agent/repository.d.ts +1 -1
- package/dist/src/personal-agent/repository.js +1 -1
- package/dist/src/personal-agent/request-access.d.ts +3 -0
- package/dist/src/personal-agent/request-access.js +31 -0
- package/dist/src/personal-agent/request-delivery.js +9 -4
- package/dist/src/personal-agent/request-repository.d.ts +3 -0
- package/dist/src/personal-agent/request-service.d.ts +6 -0
- package/dist/src/personal-agent/request-service.js +121 -25
- package/dist/src/personal-agent/result-file-links.d.ts +3 -0
- package/dist/src/personal-agent/result-file-links.js +21 -0
- package/dist/src/personal-agent/task-cancel.js +85 -35
- package/dist/src/providers/model-response.js +13 -2
- package/dist/src/scenes/taskFollowUp/service.d.ts +15 -5
- package/dist/src/session/session-context-for-llm.js +2 -2
- package/dist/src/session/store.d.ts +3 -1
- package/dist/src/session/store.js +30 -7
- package/dist/src/storage/sqlite/connection-wait-repository.d.ts +7 -2
- package/dist/src/storage/sqlite/connection-wait-repository.js +124 -20
- package/dist/src/storage/sqlite/index.d.ts +1 -0
- package/dist/src/storage/sqlite/index.js +3 -1
- package/dist/src/storage/sqlite/migrations/250_research_checkpoints.sql +15 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/research-checkpoint-repository.d.ts +24 -0
- package/dist/src/storage/sqlite/research-checkpoint-repository.js +91 -0
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/session-creation-repository.js +3 -2
- package/dist/src/storage/sqlite/session-input-repository.d.ts +16 -0
- package/dist/src/storage/sqlite/session-input-repository.js +41 -7
- package/dist/src/storage/sqlite/transcript-repository.d.ts +2 -0
- package/dist/src/storage/sqlite/transcript-repository.js +25 -1
- package/dist/src/tasks/capabilities/management.d.ts +2 -2
- package/dist/src/tasks/capabilities/relations.d.ts +7 -7
- package/dist/src/tasks/capabilities/write.d.ts +2 -2
- package/dist/src/tasks/index.js +1 -1
- package/dist/src/tasks/task-allocation-service.d.ts +2 -0
- package/dist/src/tasks/task-allocation-service.js +43 -2
- package/dist/src/tasks/task-application-service.js +3 -3
- package/dist/src/tasks/task-collaboration-delivery.js +4 -1
- package/dist/src/tasks/task-collaboration-repository.d.ts +3 -0
- package/dist/src/tasks/task-collaboration-repository.js +11 -1
- package/dist/src/tasks/task-context-assembler.js +19 -6
- package/dist/src/tasks/task-continuation.d.ts +6 -0
- package/dist/src/tasks/task-continuation.js +33 -0
- package/dist/src/tasks/task-contract-planner.d.ts +1 -0
- package/dist/src/tasks/task-contract-planner.js +22 -15
- package/dist/src/tasks/task-main-update-delivery.js +13 -8
- package/dist/src/tasks/task-model-call.d.ts +7 -0
- package/dist/src/tasks/task-model-call.js +35 -0
- package/dist/src/tasks/task-read-model-projector.js +1 -1
- package/dist/src/tasks/task-research-repair.d.ts +19 -0
- package/dist/src/tasks/task-research-repair.js +75 -0
- package/dist/src/tasks/task-research-result.d.ts +85 -0
- package/dist/src/tasks/task-research-result.js +394 -0
- package/dist/src/tasks/task-result-delivery-repository.js +13 -2
- package/dist/src/tasks/task-result-delivery-service.js +1 -1
- package/dist/src/tasks/task-run-coordinator.d.ts +1 -0
- package/dist/src/tasks/task-run-coordinator.js +80 -11
- package/dist/src/tasks/task-run-dispatcher.js +12 -0
- package/dist/src/tasks/task-run-repository.d.ts +13 -0
- package/dist/src/tasks/task-run-repository.js +120 -2
- package/package.json +7 -3
- package/dist/gateway/static/root/assets/constants-Dy8Gw0sF.js +0 -1
- package/dist/gateway/static/root/assets/index-yseLAt9D.css +0 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-C4VzqE9z.js +0 -1
- package/dist/gateway/static/root/assets/session-manager-_yy4bxhT.js +0 -16
- package/dist/gateway/static/root/assets/settings-advanced-gate-O_0Lk38S.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-88EShcbs.js +0 -2
- 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,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
|
|
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
|
|
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(
|
|
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 =
|
|
55
|
+
const count = Math.max(1, Math.min(20, Math.floor(params.count ?? cfg.maxResults ?? 5)));
|
|
25
56
|
try {
|
|
26
|
-
const
|
|
27
|
-
|
|
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
|
-
|
|
39
|
-
type: "text",
|
|
40
|
-
text: formatSearchResults(results)
|
|
41
|
-
}],
|
|
60
|
+
...result,
|
|
42
61
|
details: {
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
50
|
-
type: "text",
|
|
51
|
-
text: `Search error: ${error instanceof Error ? error.message : String(error)}`
|
|
52
|
-
}],
|
|
69
|
+
...result,
|
|
53
70
|
details: {
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
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" &&
|
|
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: "
|
|
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: "
|
|
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" | "
|
|
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" | "
|
|
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
|
|
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";
|