@xopcai/xopc 0.0.391 → 0.0.393
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/dist/sidepanel.js +1 -1
- 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-CzS0TUv9.js → agent-avatar-dicebear-1AF2KGju.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CPJr7NRR.js +1 -0
- package/dist/gateway/static/root/assets/agent-plugin-dialog-cjJXJj_3.js +1 -0
- package/dist/gateway/static/root/assets/agents-DW3TlnIg.js +77 -0
- package/dist/gateway/static/root/assets/{agents-admin-api-Bb3Kvz3X.js → agents-admin-api-B5aykqg_.js} +1 -1
- package/dist/gateway/static/root/assets/app-link-BV_eGr7l.js +1 -0
- package/dist/gateway/static/root/assets/app-management-settings-panel-B_MFhXXU.js +1 -0
- package/dist/gateway/static/root/assets/appearance-settings-TYGidVnd.js +1 -0
- package/dist/gateway/static/root/assets/apps-page-DOkyvOF0.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-DFnHPNie.js → archive-plugin-BrFfEp0u.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-CnBLPVNh.js → automations-page-B7OofUPF.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-DIod-bfm.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-BQC0Tzoi.js → binary-plugins-BfAWnYG8.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-DSh5019z.js → block-editor-_Y-QwZ-3.js} +5 -5
- package/dist/gateway/static/root/assets/browser-automation-inputs-DH9QHI9m.js +1 -0
- package/dist/gateway/static/root/assets/browser-automations-page-B_SnD9B0.js +3 -0
- package/dist/gateway/static/root/assets/browser-settings-page-BPlqYpMM.js +3 -0
- package/dist/gateway/static/root/assets/capabilities-page-BtzZvMIK.js +2 -0
- package/dist/gateway/static/root/assets/capabilities-pt2M56-E.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-WzoG3oBb.js +8 -0
- package/dist/gateway/static/root/assets/capability-header-actions-CFVx3iaZ.js +1 -0
- package/dist/gateway/static/root/assets/channels-BXA55GY2.js +1 -0
- package/dist/gateway/static/root/assets/chat-terminal-dock-D3GuiG3N.js +36 -0
- package/dist/gateway/static/root/assets/{chunk-KS7C4IRE--EKdQGRF.js → chunk-KS7C4IRE-B2HK1psj.js} +2 -2
- package/dist/gateway/static/root/assets/computer-settings-page-CIbHDlp8.js +1 -0
- package/dist/gateway/static/root/assets/connector-service-page-CDyCHkpK.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-DA2b6cJu.js +1 -0
- package/dist/gateway/static/root/assets/date-picker-C424c_g9.js +1 -0
- package/dist/gateway/static/root/assets/dependency-picker-BVJh9sYc.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-Q52A8vjp.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-settings-CZr1CXxu.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-sprite-Bd-aOI7N.js +30 -0
- package/dist/gateway/static/root/assets/desktop-pet-sprite-BuB0g8zv.css +1 -0
- package/dist/gateway/static/root/assets/device-pairing-wizard-D_WWTsze.js +1 -0
- package/dist/gateway/static/root/assets/directory-picker-path-field-C6cUgrvg.js +1 -0
- package/dist/gateway/static/root/assets/echarts-runtime-tcHc9TOS.js +18 -0
- package/dist/gateway/static/root/assets/extension-debug-page-DyyfC4gA.js +1 -0
- package/dist/gateway/static/root/assets/extension-page-Dho9o3ZZ.js +1 -0
- package/dist/gateway/static/root/assets/extension-settings-page-CdnIGyCH.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-Dv_A5FMu.js → gateway-config-swr-BEePO3Wl.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-DghCGfY_.js → gateway-realtime-Dng_VOvI.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-DtlBf7oH.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-D0KSQRNZ.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-CkTVSESs.js → gateway-startup-retry-CDCiy7Cd.js} +1 -1
- package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-DV2wNqBn.js → highlighted-body-KQOG7T2V-BNpj_mIM.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-CH_A0W29.js +2 -0
- package/dist/gateway/static/root/assets/image-generation-api-DwkO2y46.js +1 -0
- package/dist/gateway/static/root/assets/imports-page-BrYvomnU.js +1 -0
- package/dist/gateway/static/root/assets/index-CKdOZoVu.js +260 -0
- package/dist/gateway/static/root/assets/index-Rxjt-jc3.css +1 -0
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-BveDYfYk.js +1 -0
- package/dist/gateway/static/root/assets/local-app-workbench-page-CcIi1BhT.js +1 -0
- package/dist/gateway/static/root/assets/local-apps-page-B1a69mlV.js +1 -0
- package/dist/gateway/static/root/assets/local-session-drafts-CYEDUPH7.js +1 -0
- package/dist/gateway/static/root/assets/{locale-store-BpK9AiDq.js → locale-store-CE7L6MlS.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-Us1jv3C4.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-C9RAM7-s.js +1 -0
- package/dist/gateway/static/root/assets/markdown-view-PrKvVpRh.js +324 -0
- package/dist/gateway/static/root/assets/{media-plugins-oSChWbcP.js → media-plugins-CR1fp6IL.js} +1 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-DQdcaMiu.js +1 -0
- package/dist/gateway/static/root/assets/messages-CaeL_miw.js +3 -0
- package/dist/gateway/static/root/assets/note-detail-panel-Q4yRx9iZ.js +5 -0
- package/dist/gateway/static/root/assets/notes-page-C9qu16IN.js +8 -0
- package/dist/gateway/static/root/assets/page-context-capture-button-Cn_WK68Y.js +1 -0
- package/dist/gateway/static/root/assets/personal-page-DrP6hEcg.js +1 -0
- package/dist/gateway/static/root/assets/preview-open-alternatives-3NbiWGRG.js +1 -0
- package/dist/gateway/static/root/assets/product-delivery-DwmnNJvk.js +1 -0
- package/dist/gateway/static/root/assets/product-open-page-KKE5-V8k.js +1 -0
- package/dist/gateway/static/root/assets/product-preview-content-BM0oqNxi.js +1 -0
- package/dist/gateway/static/root/assets/project-detail-page-CPZrwf8n.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-Besfx_07.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-Dsa2LvRt.js → registry-api-BO2Ck3aA.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CTDghL5L.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-api-C2Uw89eY.js → runtime-tools-api-B1sb8nlw.js} +1 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-W0X_Fy7b.js +1 -0
- package/dist/gateway/static/root/assets/schema-form-DNM2Zdyr.js +1 -0
- package/dist/gateway/static/root/assets/{session-api-ga-SUOq_.js → session-api-CaAUJvu1.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-DoFTlgNz.js +16 -0
- package/dist/gateway/static/root/assets/sessions-page-Dxtablvd.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-C7zklouD.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-section-DCSHPFAN.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-DPCgrICd.js → settings-page-B18UbbaJ.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-JoSfluza.js +1 -0
- package/dist/gateway/static/root/assets/share-preview-page-BLnS3hoH.js +2 -0
- package/dist/gateway/static/root/assets/shares-settings-DcIuPJK3.js +1 -0
- package/dist/gateway/static/root/assets/skill-api-CcYGkRPL.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-PnUZjoPK.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-D3JAw62U.js +2 -0
- package/dist/gateway/static/root/assets/style-BQqU-1pP.js +7 -0
- package/dist/gateway/static/root/assets/system-settings-panel-C974myUM.js +1 -0
- package/dist/gateway/static/root/assets/tab-completion-input-CxtEp0aP.js +1 -0
- package/dist/gateway/static/root/assets/task-detail-page-CiljFekC.js +2 -0
- package/dist/gateway/static/root/assets/{task-expandable-content-DAZGz5YC.js → task-expandable-content-DTEVoNrM.js} +1 -1
- package/dist/gateway/static/root/assets/tracing-settings-page-DEE75MUn.js +1 -0
- package/dist/gateway/static/root/assets/tunnel-api-DWyI3uA3.js +1 -0
- package/dist/gateway/static/root/assets/usage-page-DJYvbxk7.js +1 -0
- package/dist/gateway/static/root/assets/use-autosave-CY0YuljR.js +1 -0
- package/dist/gateway/static/root/assets/user-model-page-eHZJD6Fw.js +2 -0
- package/dist/gateway/static/root/assets/voice-api-key-field-BNG4ixJE.js +1 -0
- package/dist/gateway/static/root/assets/{voice-config-api-Dl39b27p.js → voice-config-api-D0Wscn9W.js} +1 -1
- package/dist/gateway/static/root/assets/work-discovery-overlay-CohIoAre.js +1 -0
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-BXI8eyYh.js +3 -0
- package/dist/gateway/static/root/assets/workflows-page-CVti0u-l.js +6 -0
- package/dist/gateway/static/root/assets/xopc-cloud-account-card-C_COnY_B.js +1 -0
- package/dist/gateway/static/root/index.html +22 -72
- package/dist/gateway/static/root/notification-sw.js +0 -15
- package/dist/package.js +1 -1
- package/dist/packages/computer-control-contract/src/index.js +8 -0
- package/dist/packages/gateway-contract/src/app-context.js +0 -1
- package/dist/packages/gateway-contract/src/capabilities.js +2 -249
- package/dist/packages/gateway-contract/src/home.js +0 -5
- package/dist/packages/gateway-contract/src/index.js +0 -4
- package/dist/packages/gateway-contract/src/notifications.js +0 -11
- package/dist/packages/gateway-contract/src/product-delivery.js +0 -2
- package/dist/src/agent/agent-instance-gateway.d.ts +2 -0
- package/dist/src/agent/agent-manager.d.ts +1 -3
- package/dist/src/agent/agent-manager.js +8 -18
- package/dist/src/agent/child-agent-factory.d.ts +2 -1
- package/dist/src/agent/child-agent-factory.js +2 -1
- package/dist/src/agent/coding/projectEvidence.d.ts +9 -0
- package/dist/src/agent/coding/projectEvidence.js +177 -0
- package/dist/src/agent/coding/repository-instructions.d.ts +8 -1
- package/dist/src/agent/coding/repository-instructions.js +9 -4
- package/dist/src/agent/coding/run-verification.d.ts +17 -2
- package/dist/src/agent/coding/run-verification.js +82 -12
- package/dist/src/agent/coding/workspace-revision.js +1 -1
- package/dist/src/agent/embedded/codemode-extension.js +1 -1
- package/dist/src/agent/embedded/execution-context.d.ts +1 -0
- package/dist/src/agent/embedded/execution-context.js +4 -1
- package/dist/src/agent/embedded/external-tool-discovery.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +1 -0
- package/dist/src/agent/embedded/run-turn.js +41 -5
- package/dist/src/agent/embedded/session-runner.js +1 -1
- package/dist/src/agent/embedded/session-tool-result-guard.js +5 -0
- package/dist/src/agent/embedded/types.d.ts +2 -0
- package/dist/src/agent/embedded/xopc-tools-bridge.js +2 -1
- package/dist/src/agent/external-tools/extension-provider.js +1 -1
- package/dist/src/agent/external-tools/gateway-tools.js +1 -1
- package/dist/src/agent/external-tools/memory-provider.js +1 -1
- package/dist/src/agent/independent-execution.d.ts +2 -0
- package/dist/src/agent/independent-execution.js +12 -0
- package/dist/src/agent/mcp/connection-drafts.js +15 -10
- package/dist/src/agent/memory/compaction.js +1 -1
- package/dist/src/agent/orchestration/delegation-scope.d.ts +1 -0
- package/dist/src/agent/orchestration/delegation-scope.js +4 -1
- package/dist/src/agent/orchestration/loop-guard.js +6 -2
- package/dist/src/agent/prompt/sections/agent-identity.js +3 -2
- package/dist/src/agent/prompt/sections/behavior.d.ts +3 -2
- package/dist/src/agent/prompt/sections/behavior.js +35 -25
- package/dist/src/agent/prompt/sections/memory-skills.d.ts +1 -1
- package/dist/src/agent/prompt/sections/memory-skills.js +10 -11
- package/dist/src/agent/prompt/sections/messaging-runtime.d.ts +3 -2
- package/dist/src/agent/prompt/sections/messaging-runtime.js +21 -24
- package/dist/src/agent/prompt/sections/response-language.js +7 -5
- package/dist/src/agent/prompt/sections/tooling.js +11 -10
- package/dist/src/agent/prompt/service-prompt-builder.js +3 -1
- package/dist/src/agent/prompt/system-prompt-params.d.ts +2 -1
- package/dist/src/agent/prompt/system-prompt-params.js +2 -0
- package/dist/src/agent/prompt/system-prompt.d.ts +2 -1
- package/dist/src/agent/prompt/system-prompt.js +21 -18
- package/dist/src/agent/prompt/types.d.ts +2 -0
- package/dist/src/agent/service.js +1 -1
- package/dist/src/agent/service.types.d.ts +0 -2
- package/dist/src/agent/skills/format-skills-prompt.js +5 -2
- package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
- package/dist/src/agent/tool-manuals/computer.js +9 -1
- package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.js +6 -48
- package/dist/src/agent/tools/computer-use-tool.js +17 -3
- package/dist/src/agent/tools/dataBatch.d.ts +1 -0
- package/dist/src/agent/tools/dataBatch.js +4 -1
- package/dist/src/agent/tools/delegate-tool.d.ts +1 -0
- package/dist/src/agent/tools/delegate-tool.js +1 -0
- package/dist/src/agent/tools/error-tracker.js +4 -2
- package/dist/src/agent/tools/exec-command.js +4 -3
- package/dist/src/agent/tools/factory.d.ts +1 -2
- package/dist/src/agent/tools/factory.js +20 -22
- package/dist/src/agent/tools/{delegation-parent-policy.d.ts → noninteractive-tool-policy.d.ts} +1 -1
- package/dist/src/agent/tools/{delegation-parent-policy.js → noninteractive-tool-policy.js} +4 -4
- package/dist/src/agent/tools/personal-task-tool.js +1 -1
- package/dist/src/agent/tools/publish-artifacts.js +1 -1
- package/dist/src/agent/tools/search/cache.d.ts +3 -1
- package/dist/src/agent/tools/search/cache.js +4 -1
- package/dist/src/agent/tools/search/providers/deepseek-protocol.d.ts +9 -0
- package/dist/src/agent/tools/search/providers/deepseek-protocol.js +84 -0
- package/dist/src/agent/tools/search/providers/deepseek.d.ts +9 -0
- package/dist/src/agent/tools/search/providers/deepseek.js +55 -0
- package/dist/src/agent/tools/search/providers/xopc-cloud.d.ts +2 -1
- package/dist/src/agent/tools/search/providers/xopc-cloud.js +36 -1
- package/dist/src/agent/tools/search/registry.d.ts +1 -0
- package/dist/src/agent/tools/search/registry.js +32 -6
- package/dist/src/agent/tools/search/request-gate.d.ts +13 -0
- package/dist/src/agent/tools/search/request-gate.js +41 -0
- package/dist/src/agent/tools/search/resolve-config.js +1 -1
- package/dist/src/agent/tools/search/search-info.d.ts +8 -0
- package/dist/src/agent/tools/search/search-info.js +34 -0
- package/dist/src/agent/tools/search/types.d.ts +19 -1
- package/dist/src/agent/tools/toolExposure.d.ts +3 -0
- package/dist/src/agent/tools/toolExposure.js +25 -0
- package/dist/src/agent/tools/web.js +8 -1
- package/dist/src/agent/tools/xopc-use-tool.d.ts +2 -4
- package/dist/src/agent/tools/xopc-use-tool.js +11 -135
- package/dist/src/agent/workflow/builtins/index.js +98 -0
- package/dist/src/agent/workflow/subagent-runner.d.ts +1 -0
- package/dist/src/agent/workflow/subagent-runner.js +3 -3
- package/dist/src/agent/workflow/types.d.ts +3 -2
- package/dist/src/agent/workflow/workflow-child-tools.js +13 -8
- package/dist/src/agent-catalog/migrations/legacy-config-cutover.js +1 -2
- package/dist/src/automations/domain/validation.d.ts +8 -8
- package/dist/src/automations/draft/automation-draft-validator.d.ts +1 -1
- package/dist/src/automations/events/event-catalog.js +0 -18
- package/dist/src/backup/archive.js +1 -2
- package/dist/src/capabilities/runtime/app-context.js +2 -6
- package/dist/src/capabilities/runtime/product.d.ts +1 -3
- package/dist/src/capabilities/runtime/product.js +0 -6
- package/dist/src/cli/command-manifest.js +1 -1
- package/dist/src/cli/commands/search.d.ts +2 -2
- package/dist/src/cli/commands/search.js +8 -6
- package/dist/src/computer/config.d.ts +1 -0
- package/dist/src/computer/config.js +1 -0
- package/dist/src/computer/diagnostics.d.ts +223 -0
- package/dist/src/computer/diagnostics.js +360 -0
- package/dist/src/computer/errors.d.ts +1 -1
- package/dist/src/computer/errors.js +8 -1
- package/dist/src/computer/evaluation-comparison.d.ts +125 -0
- package/dist/src/computer/evaluation-comparison.js +65 -0
- package/dist/src/computer/evaluation-harness.d.ts +2 -1
- package/dist/src/computer/evaluation-harness.js +59 -8
- package/dist/src/computer/evaluation.d.ts +102 -7
- package/dist/src/computer/evaluation.js +64 -15
- package/dist/src/computer/flows.d.ts +62 -0
- package/dist/src/computer/flows.js +158 -0
- package/dist/src/computer/model-adapter.d.ts +11 -0
- package/dist/src/computer/model-adapter.js +156 -11
- package/dist/src/computer/model-policy.d.ts +1 -1
- package/dist/src/computer/model-policy.js +13 -6
- package/dist/src/computer/release-gate.d.ts +11 -0
- package/dist/src/computer/runtime.d.ts +27 -2
- package/dist/src/computer/runtime.js +261 -44
- package/dist/src/computer/semantic-actions.d.ts +3 -0
- package/dist/src/computer/semantic-actions.js +29 -0
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/models-json.d.ts +14 -8
- package/dist/src/config/models-json.js +2 -0
- package/dist/src/config/outbound-proxy.d.ts +11 -0
- package/dist/src/config/outbound-proxy.js +30 -0
- package/dist/src/config/rules.js +5 -0
- package/dist/src/config/schema.d.ts +25 -10
- package/dist/src/config/schema.js +21 -10
- package/dist/src/connectors/cli/authorization.d.ts +1 -1
- package/dist/src/connectors/cli/store.d.ts +1 -1
- package/dist/src/endpoint-tools/invocation-service.js +5 -0
- package/dist/src/gateway/config-tools-web.js +15 -4
- package/dist/src/gateway/gateway-workflow-host.types.d.ts +3 -0
- package/dist/src/gateway/hono/app.d.ts +0 -2
- package/dist/src/gateway/hono/app.js +1 -2
- package/dist/src/gateway/hono/lib/config-payload.d.ts +6 -3
- package/dist/src/gateway/hono/lib/config-payload.js +5 -1
- package/dist/src/gateway/hono/routes/capability-operations.js +0 -7
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +7 -0
- package/dist/src/gateway/hono/routes/deps.d.ts +0 -2
- package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -8
- package/dist/src/gateway/hono/routes/models.js +5 -2
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +2 -2
- package/dist/src/gateway/service/config-coordinator.d.ts +8 -5
- package/dist/src/gateway/service/session-input-coordinator.js +1 -1
- package/dist/src/gateway/service.d.ts +0 -3
- package/dist/src/gateway/service.js +10 -44
- package/dist/src/home-intelligence/generator.js +1 -1
- package/dist/src/home-intelligence/policy.js +0 -5
- package/dist/src/home-intelligence/repository.d.ts +1 -1
- package/dist/src/infra/domain-outbox-dispatcher.js +1 -1
- package/dist/src/infra/http-proxy-env.d.ts +3 -0
- package/dist/src/infra/http-proxy-env.js +22 -2
- package/dist/src/notifications/service.d.ts +2 -18
- package/dist/src/notifications/service.js +8 -39
- package/dist/src/notifications/store.d.ts +0 -1
- package/dist/src/notifications/store.js +1 -4
- package/dist/src/personal-agent/communication.d.ts +2 -1
- package/dist/src/personal-agent/communication.js +11 -2
- package/dist/src/personal-agent/persona.d.ts +2 -1
- package/dist/src/personal-agent/persona.js +3 -2
- package/dist/src/personal-agent/prompts.d.ts +2 -0
- package/dist/src/personal-agent/prompts.js +69 -7
- package/dist/src/personal-agent/reply-composer.js +2 -2
- package/dist/src/personal-agent/reply-style.d.ts +4 -2
- package/dist/src/personal-agent/reply-style.js +19 -3
- package/dist/src/personal-agent/request-service.js +14 -9
- package/dist/src/pets/loopi-artwork.d.ts +2 -0
- package/dist/src/pets/loopi-artwork.js +36 -0
- package/dist/src/pets/pointer.d.ts +6 -0
- package/dist/src/pets/pointer.js +16 -0
- package/dist/src/platform/contracts.d.ts +3 -3
- package/dist/src/project-trust/trust-store.d.ts +5 -0
- package/dist/src/project-trust/trust-store.js +7 -1
- package/dist/src/providers/index.js +3 -3
- package/dist/src/providers/model-registry.js +2 -0
- package/dist/src/providers/model-supplements.d.ts +0 -2
- package/dist/src/providers/model-supplements.js +2 -18
- package/dist/src/providers/xopc-cloud-credit-budget.d.ts +1 -0
- package/dist/src/providers/xopc-cloud-credit-budget.js +4 -1
- package/dist/src/realtime/compact-run-event.js +17 -2
- package/dist/src/realtime/runtime.js +1 -1
- package/dist/src/routing/agent-session-key.js +1 -1
- package/dist/src/routing/resolve-route.js +1 -1
- package/dist/src/routing/session-key.js +1 -1
- package/dist/src/session/compact-history.js +16 -6
- package/dist/src/storage/sqlite/connection.js +2 -2
- package/dist/src/storage/sqlite/conversation-repository.js +1 -1
- package/dist/src/storage/sqlite/migrations/conversation-backup.d.ts +0 -2
- package/dist/src/storage/sqlite/migrations/conversation-backup.js +8 -18
- package/dist/src/storage/sqlite/migrations/conversation-windows-owners.js +28 -33
- package/dist/src/storage/sqlite/migrations/errors.js +1 -1
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +5 -40
- package/dist/src/storage/sqlite/migrations/types.d.ts +0 -2
- package/dist/src/storage/sqlite/schema.d.ts +1 -3
- package/dist/src/storage/sqlite/schema.js +4 -8
- package/dist/src/storage/sqlite/schema.sql +1356 -1282
- package/dist/src/tasks/capabilities/management.d.ts +2 -2
- package/dist/src/tasks/capabilities/relations.d.ts +4 -4
- package/dist/src/tasks/capabilities/write.d.ts +4 -4
- package/dist/src/tasks/task-allocation-service.js +51 -40
- package/dist/src/tasks/task-application-service.js +5 -1
- package/dist/src/tasks/task-contract-planner.js +21 -6
- package/dist/src/tasks/task-language.d.ts +2 -0
- package/dist/src/tasks/task-language.js +13 -2
- package/dist/src/tasks/task-research-result.d.ts +2 -2
- package/dist/src/tasks/task-run-coordinator.js +5 -1
- package/dist/src/tasks/task-run-dispatcher.js +2 -1
- package/dist/src/tui/tui.js +1 -1
- package/dist/src/usage/scenario-registry.js +0 -5
- package/dist/src/usage/types.d.ts +1 -1
- package/dist/src/work-discovery/probe.js +1 -1
- package/dist/src/workflows/domain/definition.d.ts +1 -0
- package/dist/src/workflows/service/workflow-run-service.js +2 -1
- package/package.json +10 -6
- package/skills/THIRD_PARTY_NOTICES.md +0 -6
- package/skills/creative/chat-charts/SKILL.md +26 -0
- package/skills/creative/chat-charts/references/bar-example.json +10 -0
- package/skills/creative/chat-charts/references/chart-spec.md +25 -0
- package/skills/creative/chat-charts/references/line-example.json +13 -0
- package/dist/gateway/static/root/assets/activity-YogQEteU.js +0 -1
- package/dist/gateway/static/root/assets/activity-store-DWQCDi8M.js +0 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DE910MyU.js +0 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-0SlvsYl7.js +0 -1
- package/dist/gateway/static/root/assets/agents-BZh28Qn1.js +0 -77
- package/dist/gateway/static/root/assets/app-chrome-BeB4KgOf.js +0 -1
- package/dist/gateway/static/root/assets/app-link-4gpFbdsr.js +0 -1
- package/dist/gateway/static/root/assets/app-management-settings-panel-9A7JN5V5.js +0 -1
- package/dist/gateway/static/root/assets/appearance-settings-BPdLEo6L.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-Cz7LypV9.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-BBjS-sk-.js +0 -6
- package/dist/gateway/static/root/assets/browser-automation-inputs-C5tIrIRL.js +0 -1
- package/dist/gateway/static/root/assets/browser-automations-page-CFCMNfJN.js +0 -3
- package/dist/gateway/static/root/assets/browser-settings-page-C__tyPwu.js +0 -3
- package/dist/gateway/static/root/assets/button-aIC072nz.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-D6RJG4QY.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-DGEmBQnF.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-page-B5AZa7ir.js +0 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-Dskz2_bh.js +0 -8
- package/dist/gateway/static/root/assets/capability-header-actions-xzjWZVbg.js +0 -1
- package/dist/gateway/static/root/assets/channels-DRse_dD3.js +0 -1
- package/dist/gateway/static/root/assets/chat-terminal-dock-CQF0M4kE.js +0 -36
- package/dist/gateway/static/root/assets/chevron-left-DqFhpbvK.js +0 -1
- package/dist/gateway/static/root/assets/chevron-right-BweFrslA.js +0 -1
- package/dist/gateway/static/root/assets/circle-alert-BEjgurr2.js +0 -1
- package/dist/gateway/static/root/assets/circle-dashed-8qMD7gHf.js +0 -1
- package/dist/gateway/static/root/assets/circle-dot-BAseJTrF.js +0 -1
- package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +0 -1
- package/dist/gateway/static/root/assets/computer-settings-page-ZfzCTS0N.js +0 -1
- package/dist/gateway/static/root/assets/connector-service-page-CwAeWVLK.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-CanakKaj.js +0 -1
- package/dist/gateway/static/root/assets/copy-text-row-C7egVuKr.js +0 -1
- package/dist/gateway/static/root/assets/date-formatters-CUZAyDEg.js +0 -1
- package/dist/gateway/static/root/assets/date-picker-hmJlEAQZ.js +0 -1
- package/dist/gateway/static/root/assets/dependency-picker-Us_Juz6I.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-CvOTI4uw.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-DYg-Gb8t.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-sprite-BP6iMVw1.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-B1FbZ8C1.js +0 -1
- package/dist/gateway/static/root/assets/directory-picker-path-field-DZN9EDvM.js +0 -1
- package/dist/gateway/static/root/assets/dist-C3DSFZCi.js +0 -1
- package/dist/gateway/static/root/assets/electron-env-Dit0bHgy.js +0 -1
- package/dist/gateway/static/root/assets/extension-debug-page-YIibp6Kk.js +0 -1
- package/dist/gateway/static/root/assets/extension-page-DkcGyb28.js +0 -1
- package/dist/gateway/static/root/assets/extension-provider-B1PQGTtY.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-C_rJiSKo.js +0 -1
- package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-CMJVSnvi.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-CjCWPHNJ.js +0 -1
- package/dist/gateway/static/root/assets/globe-DSSGFWFn.js +0 -1
- package/dist/gateway/static/root/assets/home-page-fAYsd7kG.js +0 -2
- package/dist/gateway/static/root/assets/image-generation-api-B98iXt6A.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-DoBCBN8G.js +0 -1
- package/dist/gateway/static/root/assets/index-DFgXwLsv.js +0 -260
- package/dist/gateway/static/root/assets/index-a6ZvhclR.css +0 -1
- package/dist/gateway/static/root/assets/index.module-Cd9ENXfk.js +0 -1
- package/dist/gateway/static/root/assets/interaction-BdhHBbYa.js +0 -1
- package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +0 -1
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-DXVu4lqV.js +0 -1
- package/dist/gateway/static/root/assets/loader-circle-CifKLtgG.js +0 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-B3fz6uRi.js +0 -1
- package/dist/gateway/static/root/assets/local-apps-page-BC6xhmUh.js +0 -1
- package/dist/gateway/static/root/assets/local-session-drafts-DFnZQu9A.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-CSqSFDRU.js +0 -2
- package/dist/gateway/static/root/assets/loopi-C09I2mNj.css +0 -1
- package/dist/gateway/static/root/assets/loopi-Djb8XU3l.js +0 -1
- package/dist/gateway/static/root/assets/management-settings-gq5L0THs.js +0 -1
- package/dist/gateway/static/root/assets/markdown-view-IsYTotu6.js +0 -324
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-C_QKwqDN.js +0 -1
- package/dist/gateway/static/root/assets/message-square-plus-XP0tGdlV.js +0 -1
- package/dist/gateway/static/root/assets/messages-CKTo_sIF.js +0 -3
- package/dist/gateway/static/root/assets/mic-CuUb7zc-.js +0 -1
- package/dist/gateway/static/root/assets/minimize-2-DtOGrlpo.js +0 -1
- package/dist/gateway/static/root/assets/models-hub-cache-TjpL7hZ5.js +0 -1
- package/dist/gateway/static/root/assets/note-detail-panel-CdpNXre-.js +0 -5
- package/dist/gateway/static/root/assets/notes-api-CBb944yw.js +0 -1
- package/dist/gateway/static/root/assets/notes-page-EGvGw8MN.js +0 -8
- package/dist/gateway/static/root/assets/page-context-capture-button-CoWb7BYP.js +0 -1
- package/dist/gateway/static/root/assets/page-tabs-HLrKIjXH.js +0 -1
- package/dist/gateway/static/root/assets/pencil-DmIY3Oa-.js +0 -1
- package/dist/gateway/static/root/assets/personal-page-DYzbNTyN.js +0 -1
- package/dist/gateway/static/root/assets/popover-select-DHC7J4lG.js +0 -1
- package/dist/gateway/static/root/assets/preview-open-alternatives-BJU2fmPn.js +0 -1
- package/dist/gateway/static/root/assets/product-delivery-BAks11S4.js +0 -1
- package/dist/gateway/static/root/assets/product-open-page-CTyy7H7-.js +0 -1
- package/dist/gateway/static/root/assets/product-preview-content-D4xqTaEy.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-DIVCw0QQ.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-B4L9VnBN.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-B8PvgLVz.js +0 -1
- package/dist/gateway/static/root/assets/rotate-ccw-JM1TBLpp.js +0 -1
- package/dist/gateway/static/root/assets/rotate-cw-LIg3Am9S.js +0 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-Bqnp3tyt.js +0 -1
- package/dist/gateway/static/root/assets/scenes-page-D50g4GM2.js +0 -2
- package/dist/gateway/static/root/assets/schema-form-h_RCNfiO.js +0 -1
- package/dist/gateway/static/root/assets/search-DA7gz22f.js +0 -1
- package/dist/gateway/static/root/assets/secret-input-BxWHx6J6.js +0 -1
- package/dist/gateway/static/root/assets/send-session-input-DypbVTT7.js +0 -1
- package/dist/gateway/static/root/assets/session-manager-C_OiKblh.js +0 -16
- package/dist/gateway/static/root/assets/sessions-page-BsqDIbIr.js +0 -1
- package/dist/gateway/static/root/assets/settings-2-D-csvaET.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-D3zJAW4p.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-draft-Dy10ldo8.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-num14vSv.js +0 -1
- package/dist/gateway/static/root/assets/settings-shell-dialog-layer-BU3UuiJr.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-jjSYJpDd.js +0 -1
- package/dist/gateway/static/root/assets/share-link-dialog-BGicglAS.js +0 -1
- package/dist/gateway/static/root/assets/share-preview-page-BORe9rLB.js +0 -2
- package/dist/gateway/static/root/assets/shares-api-Dbx3z6-1.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-C13FgfWk.js +0 -1
- package/dist/gateway/static/root/assets/skeleton-BI5TyibZ.js +0 -1
- package/dist/gateway/static/root/assets/skill-api-Cq6O1DZK.js +0 -1
- package/dist/gateway/static/root/assets/skill-api-utils-C7V4JVXM.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-Cq7QDjMA.js +0 -1
- package/dist/gateway/static/root/assets/skill-wire-pattern-BPpeIcCi.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-BM1ShEjx.js +0 -2
- package/dist/gateway/static/root/assets/style-TIDOdKy0.js +0 -7
- package/dist/gateway/static/root/assets/system-settings-panel-BNCGFO1e.js +0 -1
- package/dist/gateway/static/root/assets/tab-completion-input-D64VNmiA.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-4VG82wcF.js +0 -2
- package/dist/gateway/static/root/assets/theme-store-Db7hDESt.js +0 -1
- package/dist/gateway/static/root/assets/tracing-settings-page-C6p2Mu92.js +0 -1
- package/dist/gateway/static/root/assets/tunnel-api-Dw15EJp0.js +0 -1
- package/dist/gateway/static/root/assets/usage-page-DDrIqgGe.js +0 -1
- package/dist/gateway/static/root/assets/use-async-resource-GrnWNwMZ.js +0 -1
- package/dist/gateway/static/root/assets/use-autosave-DDjIdW4U.js +0 -1
- package/dist/gateway/static/root/assets/use-composer-attachments-DNl7O3Vb.js +0 -2
- package/dist/gateway/static/root/assets/use-file-preview-expanded-DMHehhwG.js +0 -2
- package/dist/gateway/static/root/assets/user-model-page-CaS9dOIr.js +0 -2
- package/dist/gateway/static/root/assets/voice-api-key-field-ByAxHE4P.js +0 -1
- package/dist/gateway/static/root/assets/voice-transcribe-api-CVaU83Jc.js +0 -1
- package/dist/gateway/static/root/assets/work-discovery-overlay-BvVvPA1T.js +0 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-BcFm9QcC.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-DMec_XZB.js +0 -6
- package/dist/gateway/static/root/assets/workspace-api-BpfKsrtP.js +0 -2
- package/dist/gateway/static/root/assets/xopc-cloud-account-card-CU5lzzE9.js +0 -1
- package/dist/packages/gateway-contract/src/project-monitoring.js +0 -36
- package/dist/packages/gateway-contract/src/scenes.js +0 -200
- package/dist/src/agent/bootstrap/project-agents-context.d.ts +0 -2
- package/dist/src/agent/bootstrap/project-agents-context.js +0 -30
- package/dist/src/gateway/hono/routes/scenes.d.ts +0 -3
- package/dist/src/gateway/hono/routes/scenes.js +0 -271
- package/dist/src/gateway/scenes/browserNotifications.d.ts +0 -4
- package/dist/src/gateway/scenes/browserNotifications.js +0 -54
- package/dist/src/gateway/scenes/host.d.ts +0 -34
- package/dist/src/gateway/scenes/host.js +0 -154
- package/dist/src/gateway/scenes/mailContext.d.ts +0 -32
- package/dist/src/gateway/scenes/mailContext.js +0 -235
- package/dist/src/gateway/scenes/slackThreadSource.d.ts +0 -41
- package/dist/src/gateway/scenes/slackThreadSource.js +0 -168
- package/dist/src/notifications/browser-endpoint.d.ts +0 -2
- package/dist/src/notifications/browser-endpoint.js +0 -13
- package/dist/src/notifications/browserSubscriptions.d.ts +0 -20
- package/dist/src/notifications/browserSubscriptions.js +0 -59
- package/dist/src/notifications/browserTransport.d.ts +0 -9
- package/dist/src/notifications/browserTransport.js +0 -64
- package/dist/src/notifications/dispatch.d.ts +0 -46
- package/dist/src/notifications/dispatch.js +0 -109
- package/dist/src/notifications/domain-delivery.d.ts +0 -21
- package/dist/src/notifications/domain-delivery.js +0 -1
- package/dist/src/notifications/quietHours.d.ts +0 -6
- package/dist/src/notifications/quietHours.js +0 -23
- package/dist/src/notifications/resultOutbox.d.ts +0 -23
- package/dist/src/notifications/resultOutbox.js +0 -49
- package/dist/src/scenes/activationAdapter.d.ts +0 -19
- package/dist/src/scenes/activationAdapter.js +0 -1
- package/dist/src/scenes/agentExecutor.d.ts +0 -9
- package/dist/src/scenes/agentExecutor.js +0 -61
- package/dist/src/scenes/capabilities/read.d.ts +0 -3
- package/dist/src/scenes/capabilities/read.js +0 -187
- package/dist/src/scenes/capabilities/write.d.ts +0 -3
- package/dist/src/scenes/capabilities/write.js +0 -151
- package/dist/src/scenes/contracts.d.ts +0 -9
- package/dist/src/scenes/contracts.js +0 -61
- package/dist/src/scenes/execution.d.ts +0 -62
- package/dist/src/scenes/execution.js +0 -169
- package/dist/src/scenes/httpServices.d.ts +0 -39
- package/dist/src/scenes/httpServices.js +0 -1
- package/dist/src/scenes/inbox.d.ts +0 -17
- package/dist/src/scenes/inbox.js +0 -68
- package/dist/src/scenes/mailContext.d.ts +0 -24
- package/dist/src/scenes/mailContext.js +0 -115
- package/dist/src/scenes/mailObservations.d.ts +0 -20
- package/dist/src/scenes/mailObservations.js +0 -107
- package/dist/src/scenes/maintenance.d.ts +0 -3
- package/dist/src/scenes/maintenance.js +0 -20
- package/dist/src/scenes/metrics.d.ts +0 -31
- package/dist/src/scenes/metrics.js +0 -89
- package/dist/src/scenes/model.d.ts +0 -3
- package/dist/src/scenes/model.js +0 -10
- package/dist/src/scenes/notificationEligibility.d.ts +0 -17
- package/dist/src/scenes/notificationEligibility.js +0 -72
- package/dist/src/scenes/notificationPublication.d.ts +0 -7
- package/dist/src/scenes/notificationPublication.js +0 -43
- package/dist/src/scenes/preferences.d.ts +0 -19
- package/dist/src/scenes/preferences.js +0 -86
- package/dist/src/scenes/readiness.d.ts +0 -7
- package/dist/src/scenes/readiness.js +0 -20
- package/dist/src/scenes/registry.d.ts +0 -11
- package/dist/src/scenes/registry.js +0 -28
- package/dist/src/scenes/repository.d.ts +0 -178
- package/dist/src/scenes/repository.js +0 -782
- package/dist/src/scenes/resultNotifications.d.ts +0 -17
- package/dist/src/scenes/resultNotifications.js +0 -204
- package/dist/src/scenes/runtime.d.ts +0 -25
- package/dist/src/scenes/runtime.js +0 -101
- package/dist/src/scenes/schedule.d.ts +0 -2
- package/dist/src/scenes/schedule.js +0 -33
- package/dist/src/scenes/service.d.ts +0 -36
- package/dist/src/scenes/service.js +0 -122
- package/dist/src/scenes/taskFollowUp/agentExecutor.d.ts +0 -36
- package/dist/src/scenes/taskFollowUp/agentExecutor.js +0 -149
- package/dist/src/scenes/taskFollowUp/branchInventory.d.ts +0 -38
- package/dist/src/scenes/taskFollowUp/branchInventory.js +0 -70
- package/dist/src/scenes/taskFollowUp/contracts.d.ts +0 -121
- package/dist/src/scenes/taskFollowUp/contracts.js +0 -119
- package/dist/src/scenes/taskFollowUp/resources.d.ts +0 -19
- package/dist/src/scenes/taskFollowUp/resources.js +0 -97
- package/dist/src/scenes/taskFollowUp/service.d.ts +0 -848
- package/dist/src/scenes/taskFollowUp/service.js +0 -770
- package/dist/src/scenes/taskFollowUp/workspaceFingerprint.d.ts +0 -2
- package/dist/src/scenes/taskFollowUp/workspaceFingerprint.js +0 -46
- package/dist/src/scenes/templates.d.ts +0 -64
- package/dist/src/scenes/templates.js +0 -76
- package/dist/src/scenes/userNotes.d.ts +0 -13
- package/dist/src/scenes/userNotes.js +0 -40
- package/dist/src/storage/sqlite/migrations/166_remove_proactive_previews.sql +0 -1
- package/dist/src/storage/sqlite/migrations/167_discussion_recording_chunks.sql +0 -7
- package/dist/src/storage/sqlite/migrations/168_discussion_evidence.sql +0 -16
- package/dist/src/storage/sqlite/migrations/169_discussion_action_tasks.sql +0 -8
- package/dist/src/storage/sqlite/migrations/170_discussion_edits.sql +0 -8
- package/dist/src/storage/sqlite/migrations/171_discussion_recording_jobs.sql +0 -14
- package/dist/src/storage/sqlite/migrations/172_project_understanding.sql +0 -3
- package/dist/src/storage/sqlite/migrations/173_mobile_discussion_source.sql +0 -5
- package/dist/src/storage/sqlite/migrations/174_capability_imports.sql +0 -11
- package/dist/src/storage/sqlite/migrations/175_import_selections.sql +0 -8
- package/dist/src/storage/sqlite/migrations/176_proactive_quality.sql +0 -5
- package/dist/src/storage/sqlite/migrations/177_proactive_check_controls.sql +0 -25
- package/dist/src/storage/sqlite/migrations/178_conversation_uuid.sql +0 -2
- package/dist/src/storage/sqlite/migrations/179_harmonyos_devices.sql +0 -41
- package/dist/src/storage/sqlite/migrations/180_execution_environment_ownership.sql +0 -7
- package/dist/src/storage/sqlite/migrations/181_knowledge_item_status_events.sql +0 -12
- package/dist/src/storage/sqlite/migrations/182_connector_account_policies.sql +0 -92
- package/dist/src/storage/sqlite/migrations/183_connector_backend_consistency.sql +0 -20
- package/dist/src/storage/sqlite/migrations/184_memory_suppressions.sql +0 -12
- package/dist/src/storage/sqlite/migrations/185_understanding_refresh_batches.sql +0 -6
- package/dist/src/storage/sqlite/migrations/186_sidebar_layout.sql +0 -16
- package/dist/src/storage/sqlite/migrations/187_cli_connectors.sql +0 -34
- package/dist/src/storage/sqlite/migrations/188_scene_storage.sql +0 -2
- package/dist/src/storage/sqlite/migrations/189_scene_source_health.sql +0 -8
- package/dist/src/storage/sqlite/migrations/190_scene_development.sql +0 -37
- package/dist/src/storage/sqlite/migrations/191_scene_task_follow_up.sql +0 -27
- package/dist/src/storage/sqlite/migrations/192_capability_operations.sql +0 -20
- package/dist/src/storage/sqlite/migrations/193_note_file_cleanup.sql +0 -8
- package/dist/src/storage/sqlite/migrations/194_capability_external_outcomes.sql +0 -11
- package/dist/src/storage/sqlite/migrations/195_automation_deleted_revisions.sql +0 -4
- package/dist/src/storage/sqlite/migrations/196_automation_run_requests.sql +0 -23
- package/dist/src/storage/sqlite/migrations/197_note_deletion_cleanup.sql +0 -8
- package/dist/src/storage/sqlite/migrations/198_project_workspace_creation.sql +0 -7
- package/dist/src/storage/sqlite/migrations/199_scene_resource_events.sql +0 -488
- package/dist/src/storage/sqlite/migrations/200_connected_work_threads.sql +0 -92
- package/dist/src/storage/sqlite/migrations/201_connector_extraction_audit.sql +0 -127
- package/dist/src/storage/sqlite/migrations/202_chat_previews.sql +0 -26
- package/dist/src/storage/sqlite/migrations/203_remove_retired_proactive_contracts.sql +0 -70
- package/dist/src/storage/sqlite/migrations/204_home_intelligence.sql +0 -78
- package/dist/src/storage/sqlite/migrations/205_agent_catalog.sql +0 -66
- package/dist/src/storage/sqlite/migrations/206_home_advice_strategy_version.sql +0 -3
- package/dist/src/storage/sqlite/migrations/207_user_model_policy_contract.sql +0 -121
- package/dist/src/storage/sqlite/migrations/208_automation_management.sql +0 -2
- package/dist/src/storage/sqlite/migrations/209_automation_event_hub.sql +0 -48
- package/dist/src/storage/sqlite/migrations/210_remove_legacy_automation_timeout.sql +0 -14
- package/dist/src/storage/sqlite/migrations/211_automation_result_deliveries.sql +0 -16
- package/dist/src/storage/sqlite/migrations/212_automation_delivery_policy.sql +0 -30
- package/dist/src/storage/sqlite/migrations/213_automation_reliability_contract.sql +0 -188
- package/dist/src/storage/sqlite/migrations/214_ai_usage_ledger.sql +0 -41
- package/dist/src/storage/sqlite/migrations/215_scene_execution_adapters.sql +0 -6
- package/dist/src/storage/sqlite/migrations/216_remove_scene_model_usage.sql +0 -1
- package/dist/src/storage/sqlite/migrations/217_remove_legacy_memory_tables.sql +0 -4
- package/dist/src/storage/sqlite/migrations/conversation-key-decoder.d.ts +0 -8
- package/dist/src/storage/sqlite/migrations/conversation-key-decoder.js +0 -87
- package/dist/src/storage/sqlite/migrations/conversation-uuid.d.ts +0 -8
- package/dist/src/storage/sqlite/migrations/conversation-uuid.js +0 -366
- package/dist/src/storage/sqlite/migrations/scene-reset.d.ts +0 -5
- package/dist/src/storage/sqlite/migrations/scene-reset.js +0 -40
- package/dist/src/storage/sqlite/scenes-schema.d.ts +0 -8
- package/dist/src/storage/sqlite/scenes-schema.js +0 -60
- package/dist/src/storage/sqlite/schemas/notifications.sql +0 -65
- package/dist/src/storage/sqlite/schemas/scenes.sql +0 -205
- package/skills/engineering/design-recurring-work/SKILL.md +0 -75
|
@@ -4,6 +4,7 @@ import { executeWithTimeout } from "../../lifecycle/timeout-wrapper.js";
|
|
|
4
4
|
import { SearchError, classifySearchError, searchFailureInfo } from "./errors.js";
|
|
5
5
|
import { SearchCacheWriteError, currentSearchCache } from "./cache.js";
|
|
6
6
|
import { BraveProvider } from "./providers/brave.js";
|
|
7
|
+
import { DeepSeekProvider } from "./providers/deepseek.js";
|
|
7
8
|
import { TavilyProvider } from "./providers/tavily.js";
|
|
8
9
|
import { BingApiProvider } from "./providers/bing-api.js";
|
|
9
10
|
import { BingHtmlProvider } from "./providers/bing-html.js";
|
|
@@ -21,6 +22,7 @@ var SearchProviderRegistry = class {
|
|
|
21
22
|
cache;
|
|
22
23
|
cachePrefix;
|
|
23
24
|
requestTimeoutMs;
|
|
25
|
+
cloudRequestTimeoutMs;
|
|
24
26
|
retryDelayMs;
|
|
25
27
|
sourceRequests = 0;
|
|
26
28
|
cooldowns = /* @__PURE__ */ new Map();
|
|
@@ -43,6 +45,7 @@ var SearchProviderRegistry = class {
|
|
|
43
45
|
this.fallbackProvider?.name
|
|
44
46
|
])).digest("hex");
|
|
45
47
|
this.requestTimeoutMs = options.requestTimeoutMs ?? 1e4;
|
|
48
|
+
this.cloudRequestTimeoutMs = options.requestTimeoutMs ?? 3e4;
|
|
46
49
|
this.retryDelayMs = options.retryDelayMs ?? 300;
|
|
47
50
|
log.debug({
|
|
48
51
|
region: config.region,
|
|
@@ -58,6 +61,9 @@ var SearchProviderRegistry = class {
|
|
|
58
61
|
for (const p of config.providers) {
|
|
59
62
|
if (p.disabled) continue;
|
|
60
63
|
switch (p.type) {
|
|
64
|
+
case "deepseek":
|
|
65
|
+
list.push(new DeepSeekProvider(p.apiKey ?? "", p.url));
|
|
66
|
+
break;
|
|
61
67
|
case "brave":
|
|
62
68
|
list.push(new BraveProvider(p.apiKey ?? ""));
|
|
63
69
|
break;
|
|
@@ -91,7 +97,8 @@ var SearchProviderRegistry = class {
|
|
|
91
97
|
results: structuredClone(cached.results),
|
|
92
98
|
provider: cached.provider,
|
|
93
99
|
cached: true,
|
|
94
|
-
capturedAt: cached.capturedAt
|
|
100
|
+
capturedAt: cached.capturedAt,
|
|
101
|
+
...cached.metadata ? { metadata: structuredClone(cached.metadata) } : {}
|
|
95
102
|
} : void 0;
|
|
96
103
|
}
|
|
97
104
|
remember(query, count, response) {
|
|
@@ -102,6 +109,7 @@ var SearchProviderRegistry = class {
|
|
|
102
109
|
count,
|
|
103
110
|
results: structuredClone(response.results),
|
|
104
111
|
provider: response.provider,
|
|
112
|
+
...response.metadata ? { metadata: structuredClone(response.metadata) } : {},
|
|
105
113
|
capturedAt: response.capturedAt ?? Date.now()
|
|
106
114
|
});
|
|
107
115
|
} catch (error) {
|
|
@@ -117,7 +125,7 @@ var SearchProviderRegistry = class {
|
|
|
117
125
|
try {
|
|
118
126
|
return await executeWithTimeout(() => execute(controller.signal), {
|
|
119
127
|
toolName: `web_search:${name}`,
|
|
120
|
-
timeoutMs: this.requestTimeoutMs,
|
|
128
|
+
timeoutMs: name === "xopc-cloud" ? this.cloudRequestTimeoutMs : this.requestTimeoutMs,
|
|
121
129
|
signal,
|
|
122
130
|
onTimeout: (error) => controller.abort(error)
|
|
123
131
|
});
|
|
@@ -139,6 +147,7 @@ var SearchProviderRegistry = class {
|
|
|
139
147
|
const hit = this.cached(query, count);
|
|
140
148
|
if (hit) return hit;
|
|
141
149
|
let lastError;
|
|
150
|
+
const attempts = [];
|
|
142
151
|
for (const provider of [...this.providers, ...this.fallbackProvider ? [this.fallbackProvider] : []]) {
|
|
143
152
|
signal?.throwIfAborted();
|
|
144
153
|
authorize();
|
|
@@ -152,13 +161,24 @@ var SearchProviderRegistry = class {
|
|
|
152
161
|
signal?.throwIfAborted();
|
|
153
162
|
authorize();
|
|
154
163
|
try {
|
|
155
|
-
const
|
|
164
|
+
const execution = await this.attempt(provider.name, signal, async (requestSignal) => provider.searchWithMetadata ? provider.searchWithMetadata(query, count, requestSignal) : { results: await provider.search(query, count, requestSignal) });
|
|
156
165
|
signal?.throwIfAborted();
|
|
157
166
|
authorize();
|
|
167
|
+
const metadata = execution.metadata;
|
|
168
|
+
const route = metadata?.attempts?.length ? metadata.attempts : provider.name === "xopc-cloud" && (metadata?.attemptCount ?? 1) > 1 ? [] : [{
|
|
169
|
+
provider: provider.name,
|
|
170
|
+
...metadata?.upstream ? { upstream: metadata.upstream } : {},
|
|
171
|
+
outcome: execution.results.length ? "success" : "empty"
|
|
172
|
+
}];
|
|
158
173
|
const response = {
|
|
159
|
-
results,
|
|
174
|
+
results: execution.results,
|
|
160
175
|
provider: provider.name,
|
|
161
|
-
capturedAt: Date.now()
|
|
176
|
+
capturedAt: Date.now(),
|
|
177
|
+
metadata: {
|
|
178
|
+
...metadata,
|
|
179
|
+
attemptCount: attempts.length + (metadata?.attemptCount ?? route.length),
|
|
180
|
+
attempts: [...attempts, ...route].slice(-24)
|
|
181
|
+
}
|
|
162
182
|
};
|
|
163
183
|
this.remember(query, count, response);
|
|
164
184
|
return response;
|
|
@@ -167,6 +187,11 @@ var SearchProviderRegistry = class {
|
|
|
167
187
|
const failure = classifySearchError(error, signal);
|
|
168
188
|
if (signal?.aborted || failure.kind === "permission_denied" || failure.kind === "cancelled") throw failure;
|
|
169
189
|
lastError = failure;
|
|
190
|
+
attempts.push({
|
|
191
|
+
provider: provider.name,
|
|
192
|
+
outcome: "error",
|
|
193
|
+
reason: failure.kind
|
|
194
|
+
});
|
|
170
195
|
if (failure.kind === "rate_limited") this.cooldowns.set(provider.name, {
|
|
171
196
|
until: Date.now() + (failure.retryAfterMs ?? this.retryDelayMs),
|
|
172
197
|
error: failure
|
|
@@ -218,7 +243,8 @@ var SearchProviderRegistry = class {
|
|
|
218
243
|
const response = {
|
|
219
244
|
results: item.results,
|
|
220
245
|
provider: provider.name,
|
|
221
|
-
capturedAt: Date.now()
|
|
246
|
+
capturedAt: Date.now(),
|
|
247
|
+
metadata: item.metadata
|
|
222
248
|
};
|
|
223
249
|
this.remember(request.query, request.count, response);
|
|
224
250
|
outputs.set(this.key(request.query, request.count), {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class SearchRateLimitError extends Error {
|
|
2
|
+
readonly retryAfterMs: number;
|
|
3
|
+
readonly status = 429;
|
|
4
|
+
constructor(retryAfterMs: number);
|
|
5
|
+
}
|
|
6
|
+
/** Process-wide callers share a gate, including when credentials belong to one account. */
|
|
7
|
+
export declare class SearchRequestGate {
|
|
8
|
+
private nextStartAt;
|
|
9
|
+
private cooldownUntil;
|
|
10
|
+
private pending;
|
|
11
|
+
cooldown(ms: number): void;
|
|
12
|
+
wait(signal?: AbortSignal): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { setTimeout } from "node:timers/promises";
|
|
2
|
+
//#region src/agent/tools/search/request-gate.ts
|
|
3
|
+
var SearchRateLimitError = class extends Error {
|
|
4
|
+
status = 429;
|
|
5
|
+
constructor(retryAfterMs) {
|
|
6
|
+
super("Search upstream rate limit exceeded");
|
|
7
|
+
this.retryAfterMs = retryAfterMs;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
/** Process-wide callers share a gate, including when credentials belong to one account. */
|
|
11
|
+
var SearchRequestGate = class {
|
|
12
|
+
nextStartAt = 0;
|
|
13
|
+
cooldownUntil = 0;
|
|
14
|
+
pending = 0;
|
|
15
|
+
cooldown(ms) {
|
|
16
|
+
this.cooldownUntil = Math.max(this.cooldownUntil, Date.now() + ms);
|
|
17
|
+
}
|
|
18
|
+
async wait(signal) {
|
|
19
|
+
signal?.throwIfAborted();
|
|
20
|
+
if (this.pending >= 8) throw new SearchRateLimitError(1e3);
|
|
21
|
+
this.pending++;
|
|
22
|
+
const queuedAt = Date.now();
|
|
23
|
+
try {
|
|
24
|
+
while (true) {
|
|
25
|
+
signal?.throwIfAborted();
|
|
26
|
+
const now = Date.now();
|
|
27
|
+
const waitMs = Math.max(0, this.nextStartAt - now, this.cooldownUntil - now);
|
|
28
|
+
if (now - queuedAt + waitMs > 2e3) throw new SearchRateLimitError(waitMs || 250);
|
|
29
|
+
if (!waitMs) {
|
|
30
|
+
this.nextStartAt = now + 250;
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
await setTimeout(waitMs, void 0, { signal });
|
|
34
|
+
}
|
|
35
|
+
} finally {
|
|
36
|
+
this.pending--;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
41
|
+
export { SearchRateLimitError, SearchRequestGate };
|
|
@@ -11,7 +11,7 @@ function resolveWebSearchConfig(web) {
|
|
|
11
11
|
const search = web?.search;
|
|
12
12
|
const region = resolveWebSearchRegion(web);
|
|
13
13
|
const providers = (search?.providers ?? []).map((p) => {
|
|
14
|
-
const resolvedKey = p.apiKey !== void 0 && p.apiKey !== "" ? resolveKey(p.apiKey) : void 0;
|
|
14
|
+
const resolvedKey = p.type === "deepseek" && /^[A-Z][A-Z0-9_]*$/.test(p.apiKey ?? "") ? process.env[p.apiKey] : p.apiKey !== void 0 && p.apiKey !== "" ? resolveKey(p.apiKey) : void 0;
|
|
15
15
|
const url = p.url?.replace(/\/+$/, "");
|
|
16
16
|
return {
|
|
17
17
|
type: p.type,
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SearchMetadata } from './types.js';
|
|
2
|
+
export interface SearchInfo extends SearchMetadata {
|
|
3
|
+
provider: string;
|
|
4
|
+
cached?: boolean;
|
|
5
|
+
capturedAt?: number;
|
|
6
|
+
}
|
|
7
|
+
/** Keep compact provenance through transcript truncation, excluding query and result payloads. */
|
|
8
|
+
export declare function sanitizeSearchInfo(value: unknown): SearchInfo | undefined;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//#region src/agent/tools/search/search-info.ts
|
|
2
|
+
/** Keep compact provenance through transcript truncation, excluding query and result payloads. */
|
|
3
|
+
function sanitizeSearchInfo(value) {
|
|
4
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return void 0;
|
|
5
|
+
const row = value;
|
|
6
|
+
const id = (v) => typeof v === "string" && /^[a-z0-9][a-z0-9_-]{0,63}$/.test(v);
|
|
7
|
+
if (!id(row.provider)) return void 0;
|
|
8
|
+
const attempts = Array.isArray(row.attempts) ? row.attempts.slice(0, 24).flatMap((item) => {
|
|
9
|
+
if (!item || typeof item !== "object") return [];
|
|
10
|
+
const step = item;
|
|
11
|
+
if (!id(step.provider) || ![
|
|
12
|
+
"success",
|
|
13
|
+
"empty",
|
|
14
|
+
"error",
|
|
15
|
+
"skipped"
|
|
16
|
+
].includes(String(step.outcome))) return [];
|
|
17
|
+
return [{
|
|
18
|
+
provider: step.provider,
|
|
19
|
+
outcome: step.outcome,
|
|
20
|
+
...id(step.upstream) ? { upstream: step.upstream } : {},
|
|
21
|
+
...typeof step.reason === "string" && /^[a-z_]{1,64}$/.test(step.reason) ? { reason: step.reason } : {}
|
|
22
|
+
}];
|
|
23
|
+
}) : void 0;
|
|
24
|
+
return {
|
|
25
|
+
provider: row.provider,
|
|
26
|
+
...id(row.upstream) ? { upstream: row.upstream } : {},
|
|
27
|
+
...typeof row.cached === "boolean" ? { cached: row.cached } : {},
|
|
28
|
+
...typeof row.capturedAt === "number" && Number.isSafeInteger(row.capturedAt) && row.capturedAt > 0 ? { capturedAt: row.capturedAt } : {},
|
|
29
|
+
...typeof row.attemptCount === "number" && Number.isSafeInteger(row.attemptCount) && row.attemptCount > 0 && row.attemptCount <= 1e4 ? { attemptCount: row.attemptCount } : {},
|
|
30
|
+
...attempts?.length ? { attempts } : {}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { sanitizeSearchInfo };
|
|
@@ -11,11 +11,12 @@ export interface SearchProvider {
|
|
|
11
11
|
isAvailable(): boolean;
|
|
12
12
|
cacheIdentity?(): string;
|
|
13
13
|
search(query: string, count: number, signal?: AbortSignal): Promise<SearchResult[]>;
|
|
14
|
+
searchWithMetadata?(query: string, count: number, signal?: AbortSignal): Promise<SearchExecution>;
|
|
14
15
|
/** Optional host-implemented batch transport; ids must be echoed for partial results. */
|
|
15
16
|
searchBatch?(requests: SearchRequest[], signal?: AbortSignal): Promise<SearchBatchItem[]>;
|
|
16
17
|
}
|
|
17
18
|
export interface ResolvedSearchProviderEntry {
|
|
18
|
-
type: 'brave' | 'tavily' | 'bing' | 'searxng';
|
|
19
|
+
type: 'brave' | 'tavily' | 'bing' | 'searxng' | 'deepseek';
|
|
19
20
|
apiKey?: string;
|
|
20
21
|
url?: string;
|
|
21
22
|
disabled?: boolean;
|
|
@@ -35,12 +36,29 @@ export interface SearchBatchItem {
|
|
|
35
36
|
id: string;
|
|
36
37
|
results?: SearchResult[];
|
|
37
38
|
error?: SearchFailureInfo;
|
|
39
|
+
metadata?: SearchMetadata;
|
|
40
|
+
}
|
|
41
|
+
export interface SearchAttempt {
|
|
42
|
+
provider: string;
|
|
43
|
+
upstream?: string;
|
|
44
|
+
outcome: 'success' | 'empty' | 'error' | 'skipped';
|
|
45
|
+
reason?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface SearchMetadata {
|
|
48
|
+
upstream?: string;
|
|
49
|
+
attemptCount?: number;
|
|
50
|
+
attempts?: SearchAttempt[];
|
|
51
|
+
}
|
|
52
|
+
export interface SearchExecution {
|
|
53
|
+
results: SearchResult[];
|
|
54
|
+
metadata?: SearchMetadata;
|
|
38
55
|
}
|
|
39
56
|
export interface SearchResponse {
|
|
40
57
|
results: SearchResult[];
|
|
41
58
|
provider: string;
|
|
42
59
|
cached?: boolean;
|
|
43
60
|
capturedAt?: number;
|
|
61
|
+
metadata?: SearchMetadata;
|
|
44
62
|
}
|
|
45
63
|
export interface SearchBatchResponse extends SearchRequest {
|
|
46
64
|
response?: SearchResponse;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { getXopcToolMetadata, setXopcToolMetadata } from "../embedded/tool-metadata.js";
|
|
2
|
+
//#region src/agent/tools/toolExposure.ts
|
|
3
|
+
const EAGER_CORE_TOOLS = new Set([
|
|
4
|
+
"read_file",
|
|
5
|
+
"write_file",
|
|
6
|
+
"apply_patch",
|
|
7
|
+
"grep",
|
|
8
|
+
"find",
|
|
9
|
+
"list_dir",
|
|
10
|
+
"exec_command",
|
|
11
|
+
"review_workspace",
|
|
12
|
+
"publish_artifacts",
|
|
13
|
+
"task_collaboration",
|
|
14
|
+
"publish_task_result"
|
|
15
|
+
]);
|
|
16
|
+
/** Defer declarations, not permissions. pi tool_search loads the unchanged contract on demand. */
|
|
17
|
+
function withCoreToolExposure(tool) {
|
|
18
|
+
if (EAGER_CORE_TOOLS.has(tool.name) || getXopcToolMetadata(tool)?.exposure !== void 0) return tool;
|
|
19
|
+
return setXopcToolMetadata(tool, {
|
|
20
|
+
...getXopcToolMetadata(tool),
|
|
21
|
+
exposure: "deferred"
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { withCoreToolExposure };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SearchError, classifySearchError, searchFailureInfo } from "./search/errors.js";
|
|
2
2
|
import { SearchProviderRegistry } from "./search/registry.js";
|
|
3
3
|
import { resolveWebSearchConfig } from "./search/resolve-config.js";
|
|
4
|
+
import { sanitizeSearchInfo } from "./search/search-info.js";
|
|
4
5
|
import { fetchPublicText } from "./fetch-text.js";
|
|
5
6
|
import { Type } from "@sinclair/typebox";
|
|
6
7
|
//#region src/agent/tools/web.ts
|
|
@@ -23,7 +24,13 @@ function searchToolResult(query, count, response) {
|
|
|
23
24
|
query,
|
|
24
25
|
count,
|
|
25
26
|
cached: response.cached ?? false,
|
|
26
|
-
capturedAt: response.capturedAt
|
|
27
|
+
capturedAt: response.capturedAt,
|
|
28
|
+
searchInfo: sanitizeSearchInfo({
|
|
29
|
+
...response.metadata,
|
|
30
|
+
provider: response.provider,
|
|
31
|
+
cached: response.cached ?? false,
|
|
32
|
+
capturedAt: response.capturedAt
|
|
33
|
+
})
|
|
27
34
|
}
|
|
28
35
|
};
|
|
29
36
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { SceneAccess } from '../../scenes/httpServices.js';
|
|
2
1
|
import { type CapabilityContext } from '../../capabilities/runtime/dispatcher.js';
|
|
3
2
|
import type { AgentTool } from '@earendil-works/pi-agent-core';
|
|
4
3
|
import { type ProductDeliveryEnvelope } from '@xopcai/gateway-contract';
|
|
@@ -10,12 +9,12 @@ import type { LocalAppService } from '../../local-apps/index.js';
|
|
|
10
9
|
import type { ChatPreviewService } from '../../chat-previews/index.js';
|
|
11
10
|
import { TaskApplicationService } from '../../tasks/task-application-service.js';
|
|
12
11
|
declare const XopcUseToolSchema: import("@sinclair/typebox").TObject<{
|
|
13
|
-
mode: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"context">, import("@sinclair/typebox").TLiteral<"
|
|
12
|
+
mode: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"context">, import("@sinclair/typebox").TLiteral<"project">, import("@sinclair/typebox").TLiteral<"automation">, import("@sinclair/typebox").TLiteral<"note">, import("@sinclair/typebox").TLiteral<"task">, import("@sinclair/typebox").TLiteral<"task_run">, import("@sinclair/typebox").TLiteral<"local_app">, import("@sinclair/typebox").TLiteral<"chat_preview">, import("@sinclair/typebox").TLiteral<"agent">, import("@sinclair/typebox").TLiteral<"settings">]>;
|
|
14
13
|
command: import("@sinclair/typebox").TString;
|
|
15
14
|
args: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
|
|
16
15
|
dryRun: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
17
16
|
}>;
|
|
18
|
-
export type XopcUseMode = 'context' | '
|
|
17
|
+
export type XopcUseMode = 'context' | 'project' | 'automation' | 'note' | 'task' | 'task_run' | 'chat_preview' | 'local_app' | 'agent' | 'settings';
|
|
19
18
|
export interface XopcUseToolInput {
|
|
20
19
|
mode: XopcUseMode;
|
|
21
20
|
command: string;
|
|
@@ -29,7 +28,6 @@ export interface XopcUseToolDeps {
|
|
|
29
28
|
getCurrentAgentId?: () => string | undefined;
|
|
30
29
|
getCurrentConversationId?: () => string | undefined;
|
|
31
30
|
getAutomationService?: () => AutomationService | undefined;
|
|
32
|
-
getSceneAccess?: () => SceneAccess | undefined;
|
|
33
31
|
getNotesService?: () => NotesService | undefined;
|
|
34
32
|
getProjectService?: () => ProjectService | undefined;
|
|
35
33
|
getWorkDiscovery?: () => import('../../work-discovery/service.js').WorkDiscoveryService | undefined;
|
|
@@ -4,7 +4,7 @@ import { normalizeSpecialistRequirements } from "../../../packages/gateway-contr
|
|
|
4
4
|
import { TaskCommandSchema, TaskContextInputSchema } from "../../../packages/gateway-contract/src/tasks.js";
|
|
5
5
|
import { ChatPreviewCreateInputSchema, ChatPreviewReviseInputSchema } from "../../../packages/gateway-contract/src/chat-previews.js";
|
|
6
6
|
import { appendProductDeliveryText } from "../../../packages/gateway-contract/src/product-delivery.js";
|
|
7
|
-
import { AutomationCancelOutputSchema, AutomationDeleteOutputSchema, AutomationMutationOutputSchema, AutomationReadAllInputSchema, AutomationReadAllOutputSchema, AutomationReadOutputSchema, AutomationRecoveryOutputSchema, AutomationRunMutationOutputSchema, CapabilityCallSchema, CapabilityResourceInputSchema, NoteDeleteOutputSchema, NoteGetOutputSchema, ProjectCreateInputSchema, ProjectDeleteInputSchema, ProjectDeleteOutputSchema, ProjectEditInputSchema, ProjectMilestoneCreateInputSchema, ProjectMilestoneDeleteInputSchema, ProjectMilestoneDeleteOutputSchema, ProjectMilestoneOutputSchema, ProjectMilestoneUpdateInputSchema, ProjectMutationOutputSchema, ProjectResolveWorkspaceInputSchema, ProjectResolveWorkspaceOutputSchema, ProjectSetPinnedInputSchema, ProjectUpdateCreateInputSchema, ProjectUpdateOutputSchema,
|
|
7
|
+
import { AutomationCancelOutputSchema, AutomationDeleteOutputSchema, AutomationMutationOutputSchema, AutomationReadAllInputSchema, AutomationReadAllOutputSchema, AutomationReadOutputSchema, AutomationRecoveryOutputSchema, AutomationRunMutationOutputSchema, CapabilityCallSchema, CapabilityResourceInputSchema, NoteDeleteOutputSchema, NoteGetOutputSchema, ProjectCreateInputSchema, ProjectDeleteInputSchema, ProjectDeleteOutputSchema, ProjectEditInputSchema, ProjectMilestoneCreateInputSchema, ProjectMilestoneDeleteInputSchema, ProjectMilestoneDeleteOutputSchema, ProjectMilestoneOutputSchema, ProjectMilestoneUpdateInputSchema, ProjectMutationOutputSchema, ProjectResolveWorkspaceInputSchema, ProjectResolveWorkspaceOutputSchema, ProjectSetPinnedInputSchema, ProjectUpdateCreateInputSchema, ProjectUpdateOutputSchema, TaskRunCancelInputSchema, TaskRunCancelOutputSchema, TaskRunFeedbackInputSchema, TaskRunFeedbackOutputSchema } from "../../../packages/gateway-contract/src/capabilities.js";
|
|
8
8
|
import { init_src } from "../../../packages/gateway-contract/src/index.js";
|
|
9
9
|
import { TaskRepository } from "../../tasks/task-repository.js";
|
|
10
10
|
import { TaskRunRepository } from "../../tasks/task-run-repository.js";
|
|
@@ -14,7 +14,7 @@ import "../../activity/index.js";
|
|
|
14
14
|
import { CapabilityError } from "../../capabilities/runtime/errors.js";
|
|
15
15
|
import "../../capabilities/runtime/dispatcher.js";
|
|
16
16
|
import { getDefaultAgentId, init_resolve_route } from "../../routing/resolve-route.js";
|
|
17
|
-
import { resolveTaskLocale } from "../../tasks/task-language.js";
|
|
17
|
+
import { hasUnlocalizedTaskText, resolveTaskLocale } from "../../tasks/task-language.js";
|
|
18
18
|
import { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
|
|
19
19
|
import { TaskOriginRepository } from "../../tasks/task-origin-repository.js";
|
|
20
20
|
import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
|
|
@@ -42,7 +42,6 @@ init_transaction();
|
|
|
42
42
|
const XopcUseToolSchema = Type.Object({
|
|
43
43
|
mode: Type.Union([
|
|
44
44
|
Type.Literal("context"),
|
|
45
|
-
Type.Literal("scene"),
|
|
46
45
|
Type.Literal("project"),
|
|
47
46
|
Type.Literal("automation"),
|
|
48
47
|
Type.Literal("note"),
|
|
@@ -53,7 +52,7 @@ const XopcUseToolSchema = Type.Object({
|
|
|
53
52
|
Type.Literal("agent"),
|
|
54
53
|
Type.Literal("settings")
|
|
55
54
|
]),
|
|
56
|
-
command: Type.String({ description: "Context resolve takes an explicit AppContextEnvelope; never guess a current page. Automation draft/repair_draft accept prompt/id, agentId?, language?, idempotencyKey?; simulate explains an automation without running it. Local_app record_acceptance records supplied checks and sourceHash, not proof that checks were executed. Agent commands: list, get {id}, create {id, profile, workspace?, models?, skills?, tools?, workflows?, runtime?, idempotencyKey?}, update {id, expectedRevision, patch, idempotencyKey?}, set_default {id, expectedRevision, idempotencyKey?}, disable/delete/purge {id, expectedRevision, idempotencyKey?}. Purge also removes on-disk data. Project create accepts idempotencyKey; update/pin/unpin/delete accepts {projectId, expectedVersion?, idempotencyKey?}; stable retries require the original expectedVersion. Delete preserves workspace files and does not confirm external execution stopped. Project milestone writes support idempotencyKey; update_milestone/delete_milestone require original expectedRevision for stable retries, and create_update requires original expectedVersion. TaskRun cancel accepts idempotencyKey and expectedVersion, and does not confirm external execution stopped. Automation diagnostics: get_run/run_events {runId}, metrics {}, events {eventType?, source?, limit?}, deliveries {runId?, limit?}, product_events {eventType, source?, payloadKey?, payloadValue?, limit?}; payload filters require both key and value. Recovery commands: replay_event {eventId, reason, idempotencyKey}, retry_delivery {runId, destinationKey, reason, idempotencyKey}. Automation also supports cancel/read {runId, idempotencyKey?} and read_all {projectId?, idempotencyKey?}; omitted projectId means all projects. Cancel acceptance is not confirmation of stopping. Object command.
|
|
55
|
+
command: Type.String({ description: "Context resolve takes an explicit AppContextEnvelope; never guess a current page. Automation draft/repair_draft accept prompt/id, agentId?, language?, idempotencyKey?; simulate explains an automation without running it. Local_app record_acceptance records supplied checks and sourceHash, not proof that checks were executed. Agent commands: list, get {id}, create {id, profile, workspace?, models?, skills?, tools?, workflows?, runtime?, idempotencyKey?}, update {id, expectedRevision, patch, idempotencyKey?}, set_default {id, expectedRevision, idempotencyKey?}, disable/delete/purge {id, expectedRevision, idempotencyKey?}. Purge also removes on-disk data. Project create accepts idempotencyKey; update/pin/unpin/delete accepts {projectId, expectedVersion?, idempotencyKey?}; stable retries require the original expectedVersion. Delete preserves workspace files and does not confirm external execution stopped. Project milestone writes support idempotencyKey; update_milestone/delete_milestone require original expectedRevision for stable retries, and create_update requires original expectedVersion. TaskRun cancel accepts idempotencyKey and expectedVersion, and does not confirm external execution stopped. Automation diagnostics: get_run/run_events {runId}, metrics {}, events {eventType?, source?, limit?}, deliveries {runId?, limit?}, product_events {eventType, source?, payloadKey?, payloadValue?, limit?}; payload filters require both key and value. Recovery commands: replay_event {eventId, reason, idempotencyKey}, retry_delivery {runId, destinationKey, reason, idempotencyKey}. Automation also supports cancel/read {runId, idempotencyKey?} and read_all {projectId?, idempotencyKey?}; omitted projectId means all projects. Cancel acceptance is not confirmation of stopping. Object command. Supports project list/get/create/update/resolve_workspace/list_milestones/create_milestone/update_milestone/list_updates/create_update, automation list/get/create/update/delete/run/rerun/pause/resume/history (rerun takes runId; run/rerun accept idempotencyKey), note list/get/project_summaries/history {noteId}/snapshot {noteId, timestamp}/create/append/update/preview_edit/delete, task list/get/create/update_dependencies/add_context/remove_context/command/delete, task_run list/get/cancel, chat_preview create/revise/get, local_app list/get/create/validate, and settings open." }),
|
|
57
56
|
args: Type.Optional(Type.Record(Type.String(), Type.Any())),
|
|
58
57
|
dryRun: Type.Optional(Type.Boolean({ description: "Validate and preview the action without mutating xopc state." }))
|
|
59
58
|
});
|
|
@@ -183,10 +182,9 @@ function deliveryForXopcResult(mode, command, result, dryRun) {
|
|
|
183
182
|
"note",
|
|
184
183
|
"project",
|
|
185
184
|
"automation",
|
|
186
|
-
"scene",
|
|
187
185
|
"local_app"
|
|
188
186
|
].includes(mode)) return void 0;
|
|
189
|
-
const field = mode === "
|
|
187
|
+
const field = mode === "local_app" ? "app" : mode;
|
|
190
188
|
const items = rows.slice(0, 50).flatMap((row) => {
|
|
191
189
|
const reference = deliveryForXopcResult(mode, "get", { [field]: row }, false)?.primary;
|
|
192
190
|
return reference ? [{
|
|
@@ -273,21 +271,6 @@ function deliveryForXopcResult(mode, command, result, dryRun) {
|
|
|
273
271
|
]
|
|
274
272
|
};
|
|
275
273
|
}
|
|
276
|
-
} else if (mode === "scene") {
|
|
277
|
-
source = record(resultRecord.activation);
|
|
278
|
-
const id = deliveryText(source?.id);
|
|
279
|
-
if (id) primary = {
|
|
280
|
-
kind: "scene",
|
|
281
|
-
id,
|
|
282
|
-
title: deliveryText(source?.goal) ?? "Scene",
|
|
283
|
-
status: deliveryText(source?.status),
|
|
284
|
-
revision: deliveryRevision(source?.revision),
|
|
285
|
-
capabilities: [
|
|
286
|
-
"open",
|
|
287
|
-
"edit",
|
|
288
|
-
"continue_in_chat"
|
|
289
|
-
]
|
|
290
|
-
};
|
|
291
274
|
} else if (mode === "note") {
|
|
292
275
|
source = record(resultRecord.note);
|
|
293
276
|
const id = deliveryText(source?.id);
|
|
@@ -403,7 +386,7 @@ function deliveryForXopcResult(mode, command, result, dryRun) {
|
|
|
403
386
|
if (mode === "chat_preview" && !chatPreviewSourceHash) return void 0;
|
|
404
387
|
return {
|
|
405
388
|
version: 2,
|
|
406
|
-
operation: mode === "task" && deliveryText(resultRecord.runId) || mode === "automation" && (command === "run" || command === "rerun")
|
|
389
|
+
operation: mode === "task" && deliveryText(resultRecord.runId) || mode === "automation" && (command === "run" || command === "rerun") ? "started" : command === "create" ? "created" : command === "get" || command === "resolve_workspace" || mode === "settings" ? "opened" : command === "validate" ? "completed" : "updated",
|
|
407
390
|
primary,
|
|
408
391
|
...mode === "local_app" ? { presentation: {
|
|
409
392
|
kind: "inline_app",
|
|
@@ -1442,6 +1425,10 @@ async function handleTask(command, args, deps, dryRun, capabilities) {
|
|
|
1442
1425
|
ok: false,
|
|
1443
1426
|
error: `Invalid ${field}: pass a flat list of strings or omit this optional field`
|
|
1444
1427
|
};
|
|
1428
|
+
if (hasUnlocalizedTaskText(value, taskLocale)) return {
|
|
1429
|
+
ok: false,
|
|
1430
|
+
error: `Write ${field} in Simplified Chinese to match the task language. Preserve all requirements, paths, URLs and proper nouns; translate only explanatory prose.`
|
|
1431
|
+
};
|
|
1445
1432
|
contract[field] = value;
|
|
1446
1433
|
}
|
|
1447
1434
|
const originConversationId = deps.getCurrentConversationId?.();
|
|
@@ -1921,14 +1908,13 @@ function createXopcUseTool(deps) {
|
|
|
1921
1908
|
getProjects: deps.getProjectService,
|
|
1922
1909
|
getWorkDiscovery: deps.getWorkDiscovery,
|
|
1923
1910
|
getLocalApps: deps.getLocalAppService,
|
|
1924
|
-
getSceneAccess: deps.getSceneAccess,
|
|
1925
1911
|
getAutomations: deps.getAutomationService,
|
|
1926
1912
|
wake: deps.dispatchTaskRuns || deps.dispatchTaskEvents ? (runId) => runId ? deps.dispatchTaskRuns?.() : deps.dispatchTaskEvents?.() : void 0
|
|
1927
1913
|
});
|
|
1928
1914
|
return {
|
|
1929
1915
|
name: "xopc_use",
|
|
1930
1916
|
label: "XOPC Use",
|
|
1931
|
-
description: "Operate first-class xopc objects through one safe entry point. To delegate work for immediate execution: mode task, command create, args {title:\"Short task name\", objective:\"One-sentence outcome\", body:\"Full Markdown task brief\", createMode:\"start\", agentId:\"researcher\"}; omitting createMode creates a backlog task only. To start an existing Task: mode task, command command, args {taskId, type:\"start\", expectedVersion, commandArgs:{executor:{kind:\"agent\",agentId:\"main\"}}}. Inspect an existing Task and its run before creating another Task for the same objective. For delegated work, task delegated_tasks lists this conversation's tasks; task collaboration reads the shared board; task collaboration_post writes {taskId, kind, body, causationId?, idempotencyKey?}. Workers report progress or questions; the main Agent writes instructions and answers. Use chat_preview for lightweight UI mockups in the current conversation; do not create a Local App unless the user asks for a durable app. Local App capabilities takes extensionId and discovers already granted bindings. Local App invoke requires extensionId, the discovered manifestDigest, capabilityId and a pinned call {majorVersion, descriptorDigest, input, idempotencyKey for writes}. Never manufacture grants or change a retry key after an uncertain write. Use for Agents,
|
|
1917
|
+
description: "Operate first-class xopc objects through one safe entry point. To delegate work for immediate execution: mode task, command create, args {title:\"Short task name\", objective:\"One-sentence outcome\", body:\"Full Markdown task brief\", createMode:\"start\", agentId:\"researcher\"}; omitting createMode creates a backlog task only. To start an existing Task: mode task, command command, args {taskId, type:\"start\", expectedVersion, commandArgs:{executor:{kind:\"agent\",agentId:\"main\"}}}. Inspect an existing Task and its run before creating another Task for the same objective. For delegated work, task delegated_tasks lists this conversation's tasks; task collaboration reads the shared board; task collaboration_post writes {taskId, kind, body, causationId?, idempotencyKey?}. Workers report progress or questions; the main Agent writes instructions and answers. Use chat_preview for lightweight UI mockups in the current conversation; do not create a Local App unless the user asks for a durable app. Local App capabilities takes extensionId and discovers already granted bindings. Local App invoke requires extensionId, the discovered manifestDigest, capabilityId and a pinned call {majorVersion, descriptorDigest, input, idempotencyKey for writes}. Never manufacture grants or change a retry key after an uncertain write. Use for Agents, projects, automations, notes, tasks, TaskRuns, chat previews, local apps, and exact settings jump targets instead of editing storage files directly. For non-trivial object changes, load the built-in manual first with tool_manual({ tool: \"xopc_use\" }).",
|
|
1932
1918
|
parameters: XopcUseToolSchema,
|
|
1933
1919
|
mutatesWorkspace: true,
|
|
1934
1920
|
mutationScope: "external",
|
|
@@ -1984,103 +1970,6 @@ function createXopcUseTool(deps) {
|
|
|
1984
1970
|
result: await capabilities.call("xopc.context.resolve", args, caller)
|
|
1985
1971
|
});
|
|
1986
1972
|
}
|
|
1987
|
-
if (mode === "scene" && ([
|
|
1988
|
-
"configure",
|
|
1989
|
-
"check",
|
|
1990
|
-
"notes",
|
|
1991
|
-
"work_item",
|
|
1992
|
-
"update_work_item",
|
|
1993
|
-
"schedule",
|
|
1994
|
-
"set_preferences",
|
|
1995
|
-
"feedback",
|
|
1996
|
-
"mark_read",
|
|
1997
|
-
"transition"
|
|
1998
|
-
].includes(command) || command === "start" && !dryRun)) {
|
|
1999
|
-
const operation = `xopc.scenes.${command}`;
|
|
2000
|
-
const { requestId, idempotencyKey, workItemId, presentationId, ...fields } = args;
|
|
2001
|
-
if (requestId !== void 0 && typeof requestId !== "string" || idempotencyKey !== void 0 && typeof idempotencyKey !== "string") return errorText("Request identity must be a string", details);
|
|
2002
|
-
const projectedInput = command === "update_work_item" ? {
|
|
2003
|
-
...fields,
|
|
2004
|
-
id: workItemId ?? fields.id
|
|
2005
|
-
} : command === "feedback" || command === "mark_read" ? {
|
|
2006
|
-
...fields,
|
|
2007
|
-
id: presentationId ?? fields.id
|
|
2008
|
-
} : fields;
|
|
2009
|
-
const parsed = SceneWriteContracts[operation].input.safeParse(projectedInput);
|
|
2010
|
-
if (!parsed.success) {
|
|
2011
|
-
const issue = parsed.error.issues[0];
|
|
2012
|
-
const field = issue?.path.join(".") || "input";
|
|
2013
|
-
const expected = issue?.code === "invalid_type" ? issue.expected : void 0;
|
|
2014
|
-
return errorText(expected ? `${field} must be ${/^[aeiou]/.test(expected) ? "an" : "a"} ${expected}` : issue?.message ?? "Invalid input", details);
|
|
2015
|
-
}
|
|
2016
|
-
if (dryRun) return okText({
|
|
2017
|
-
...details,
|
|
2018
|
-
result: {
|
|
2019
|
-
preview: true,
|
|
2020
|
-
command,
|
|
2021
|
-
input: parsed.data
|
|
2022
|
-
}
|
|
2023
|
-
});
|
|
2024
|
-
const caller = {
|
|
2025
|
-
principalId: `agent:${deps.getCurrentAgentId?.() ?? "main"}`,
|
|
2026
|
-
surface: "agent",
|
|
2027
|
-
scopes: ["gateway.admin"],
|
|
2028
|
-
authorize: deps.authorizeCapability ?? (() => true),
|
|
2029
|
-
signal
|
|
2030
|
-
};
|
|
2031
|
-
try {
|
|
2032
|
-
const result = await capabilities.call(operation, parsed.data, caller, {
|
|
2033
|
-
...capabilities.describe(operation, caller),
|
|
2034
|
-
idempotencyKey: typeof idempotencyKey === "string" ? idempotencyKey : typeof requestId === "string" ? requestId : toolCallId
|
|
2035
|
-
});
|
|
2036
|
-
return okText({
|
|
2037
|
-
...details,
|
|
2038
|
-
result,
|
|
2039
|
-
delivery: deliveryForXopcResult(mode, command, result, dryRun)
|
|
2040
|
-
});
|
|
2041
|
-
} catch (error) {
|
|
2042
|
-
if (error instanceof CapabilityError) return errorText(error.message, details);
|
|
2043
|
-
throw error;
|
|
2044
|
-
}
|
|
2045
|
-
}
|
|
2046
|
-
if (mode === "scene" && ([
|
|
2047
|
-
"templates",
|
|
2048
|
-
"get_template",
|
|
2049
|
-
"list",
|
|
2050
|
-
"get",
|
|
2051
|
-
"read_notes",
|
|
2052
|
-
"list_runs",
|
|
2053
|
-
"list_schedules",
|
|
2054
|
-
"list_work_items",
|
|
2055
|
-
"get_preferences",
|
|
2056
|
-
"preflight",
|
|
2057
|
-
"mail_accounts",
|
|
2058
|
-
"mail_sources",
|
|
2059
|
-
"results",
|
|
2060
|
-
"get_presentation",
|
|
2061
|
-
"get_feedback",
|
|
2062
|
-
"digest_results",
|
|
2063
|
-
"metrics",
|
|
2064
|
-
"diagnostics"
|
|
2065
|
-
].includes(command) || command === "start" && dryRun)) {
|
|
2066
|
-
const caller = {
|
|
2067
|
-
principalId: `agent:${deps.getCurrentAgentId?.() ?? "main"}`,
|
|
2068
|
-
surface: "agent",
|
|
2069
|
-
scopes: ["gateway.admin"],
|
|
2070
|
-
authorize: deps.authorizeCapability ?? (() => true),
|
|
2071
|
-
signal
|
|
2072
|
-
};
|
|
2073
|
-
const { id: _id, requestId: _requestId, triggerKey: _triggerKey, ...preflightInput } = args;
|
|
2074
|
-
const result = await capabilities.call(`xopc.scenes.${command === "start" ? "preflight" : command}`, command === "start" || command === "preflight" ? preflightInput : command === "results" ? {
|
|
2075
|
-
...preflightInput,
|
|
2076
|
-
activationId: args.activationId ?? args.id
|
|
2077
|
-
} : args, caller);
|
|
2078
|
-
return okText({
|
|
2079
|
-
...details,
|
|
2080
|
-
result,
|
|
2081
|
-
delivery: deliveryForXopcResult(mode, command, result, dryRun)
|
|
2082
|
-
});
|
|
2083
|
-
}
|
|
2084
1973
|
if (mode === "settings" && command === "open") {
|
|
2085
1974
|
const caller = {
|
|
2086
1975
|
principalId: `agent:${deps.getCurrentAgentId?.() ?? "main"}`,
|
|
@@ -2377,7 +2266,7 @@ function createXopcUseTool(deps) {
|
|
|
2377
2266
|
kind: "xopc_use",
|
|
2378
2267
|
toolCallId
|
|
2379
2268
|
}
|
|
2380
|
-
}, async () => mode === "
|
|
2269
|
+
}, async () => mode === "agent" ? await handleAgent(command, args, dryRun, capabilities, deps, toolCallId, signal) : mode === "project" ? await handleProject(command, args, deps, dryRun, capabilities) : mode === "automation" ? await handleAutomation(command, args, deps, dryRun, capabilities) : mode === "note" ? await handleNote(command, args, deps, dryRun, capabilities) : mode === "task" ? await handleTask(command, args, deps, dryRun, capabilities) : mode === "task_run" ? await handleTaskRun(command, args, dryRun, deps, capabilities) : mode === "local_app" ? await handleLocalApp(command, args, deps, dryRun) : mode === "chat_preview" ? await handleChatPreview(command, args, deps, dryRun) : {
|
|
2381
2270
|
ok: false,
|
|
2382
2271
|
error: `Unsupported mode: ${String(mode)}`
|
|
2383
2272
|
});
|
|
@@ -2398,18 +2287,5 @@ function createXopcUseTool(deps) {
|
|
|
2398
2287
|
}
|
|
2399
2288
|
};
|
|
2400
2289
|
}
|
|
2401
|
-
async function handleScene(command, args, deps, dryRun) {
|
|
2402
|
-
if (command !== "mail_search") throw new Error("Unsupported scene command");
|
|
2403
|
-
const access = deps.getSceneAccess?.();
|
|
2404
|
-
if (!access) throw new Error("Scene service is unavailable");
|
|
2405
|
-
const { services, principal } = access;
|
|
2406
|
-
if (!services.mailDiscovery) throw new Error("Mail search is unavailable");
|
|
2407
|
-
if (dryRun) return {
|
|
2408
|
-
preview: true,
|
|
2409
|
-
command,
|
|
2410
|
-
input: args
|
|
2411
|
-
};
|
|
2412
|
-
return { sources: await services.mailDiscovery.searchSources(principal, args, AbortSignal.timeout(15e3)) };
|
|
2413
|
-
}
|
|
2414
2290
|
//#endregion
|
|
2415
2291
|
export { createXopcUseTool };
|