@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
|
@@ -8,6 +8,9 @@ import { rejectUnbudgetedCloudTransport } from "../providers/xopc-cloud-credit-b
|
|
|
8
8
|
import { enterComputerControl, leaveComputerControl } from "./control-guard.js";
|
|
9
9
|
import { ComputerDiagnosticSchema, ComputerOperationError, computerDiagnostic, computerRecovery } from "./errors.js";
|
|
10
10
|
import { createComputerModelAdapter, predictComputerStep, readComputerJson } from "./model-adapter.js";
|
|
11
|
+
import { groundComputerAction } from "./semantic-actions.js";
|
|
12
|
+
import { ComputerFlowCapture, ComputerFlowStore, computerFlowHint, computerFlowMetadata } from "./flows.js";
|
|
13
|
+
import { ComputerSessionDiagnostics } from "./diagnostics.js";
|
|
11
14
|
import { ComputerExpectationSchema, ComputerTaskState, verifyComputerExpectation } from "./task-state.js";
|
|
12
15
|
import { randomUUID } from "node:crypto";
|
|
13
16
|
import { z } from "zod";
|
|
@@ -77,24 +80,58 @@ const ComputerUseInputSchema = z.discriminatedUnion("op", [
|
|
|
77
80
|
z.object({
|
|
78
81
|
op: z.literal("step"),
|
|
79
82
|
goal: z.string().min(1).max(4e3),
|
|
80
|
-
expect: ComputerExpectationSchema.optional()
|
|
83
|
+
expect: ComputerExpectationSchema.optional(),
|
|
84
|
+
flowId: z.uuid().optional()
|
|
85
|
+
}).strict(),
|
|
86
|
+
z.object({
|
|
87
|
+
op: z.literal("close"),
|
|
88
|
+
saveFlowAs: z.string().trim().min(1).max(160).optional()
|
|
89
|
+
}).strict(),
|
|
90
|
+
z.object({ op: z.literal("flows") }).strict(),
|
|
91
|
+
z.object({
|
|
92
|
+
op: z.literal("forget_flow"),
|
|
93
|
+
flowId: z.uuid()
|
|
81
94
|
}).strict(),
|
|
82
|
-
z.object({ op: z.literal("
|
|
95
|
+
z.object({ op: z.literal("report") }).strict()
|
|
83
96
|
]);
|
|
84
97
|
var ComputerRuntime = class {
|
|
85
98
|
sessions = /* @__PURE__ */ new Map();
|
|
86
99
|
operations = /* @__PURE__ */ new Map();
|
|
87
|
-
|
|
100
|
+
reports = /* @__PURE__ */ new Map();
|
|
101
|
+
openingReports = /* @__PURE__ */ new Map();
|
|
102
|
+
constructor(endpoints, getConfig, getTurnEndpoint, flowStore = new ComputerFlowStore()) {
|
|
88
103
|
this.endpoints = endpoints;
|
|
89
104
|
this.getConfig = getConfig;
|
|
90
105
|
this.getTurnEndpoint = getTurnEndpoint;
|
|
106
|
+
this.flowStore = flowStore;
|
|
91
107
|
}
|
|
92
108
|
async execute(owner, input, signal) {
|
|
93
109
|
input = ComputerUseInputSchema.parse(input);
|
|
94
110
|
if (!owner) throw new Error("COMPUTER_CONVERSATION_REQUIRED");
|
|
111
|
+
if (input.op === "flows" || input.op === "forget_flow") {
|
|
112
|
+
signal?.throwIfAborted();
|
|
113
|
+
const scope = this.flowScope(owner);
|
|
114
|
+
return input.op === "flows" ? {
|
|
115
|
+
status: "flows",
|
|
116
|
+
sessionId: "none",
|
|
117
|
+
flows: this.flowStore.list(scope).map(computerFlowMetadata)
|
|
118
|
+
} : {
|
|
119
|
+
status: this.flowStore.delete(scope, input.flowId) ? "flow_deleted" : "flow_not_found",
|
|
120
|
+
sessionId: "none"
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
if (input.op === "report") {
|
|
124
|
+
const report = this.getReport(owner);
|
|
125
|
+
return {
|
|
126
|
+
status: report ? "report" : "no_report",
|
|
127
|
+
sessionId: report?.sessionId ?? "none",
|
|
128
|
+
...report ? { report } : {}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
95
131
|
if (input.op === "close") {
|
|
96
132
|
const session = this.sessions.get(owner);
|
|
97
133
|
const sessionId = session?.id ?? "none";
|
|
134
|
+
const canSaveFlow = session && !session.pending && !this.operations.has(owner) && !signal?.aborted && session.mode === "control";
|
|
98
135
|
const handoff = { recentActions: (session?.task.history ?? []).map(({ goal, action, dispatch, outcome, verification }) => ({
|
|
99
136
|
goal,
|
|
100
137
|
action,
|
|
@@ -102,28 +139,101 @@ var ComputerRuntime = class {
|
|
|
102
139
|
outcome,
|
|
103
140
|
verification
|
|
104
141
|
})) };
|
|
105
|
-
|
|
142
|
+
const released = await this.close(owner);
|
|
143
|
+
const report = this.getReport(owner);
|
|
144
|
+
let savedFlow;
|
|
145
|
+
if (input.saveFlowAs && released) {
|
|
146
|
+
if (!canSaveFlow || !report || report.failure || report.counters.unknownDispatches || report.counters.takeovers) return {
|
|
147
|
+
status: "stopped",
|
|
148
|
+
sessionId,
|
|
149
|
+
errorCode: "COMPUTER_FLOW_NOT_VERIFIED",
|
|
150
|
+
report,
|
|
151
|
+
nextAction: "Control was released. Save only a complete native navigation sequence with a final verified selected condition or positive page-specific text and no failure or takeover."
|
|
152
|
+
};
|
|
153
|
+
let draft;
|
|
154
|
+
try {
|
|
155
|
+
draft = session.flowCapture.finish(input.saveFlowAs, session.endpointId);
|
|
156
|
+
} catch {
|
|
157
|
+
return {
|
|
158
|
+
status: "stopped",
|
|
159
|
+
sessionId,
|
|
160
|
+
errorCode: "COMPUTER_FLOW_NOT_VERIFIED",
|
|
161
|
+
report,
|
|
162
|
+
nextAction: "Control was released. Only a complete native navigation sequence with non-sensitive labels and a final verified selected condition or positive page-specific text can be saved."
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
try {
|
|
166
|
+
savedFlow = computerFlowMetadata(this.flowStore.save(session.flowScope, {
|
|
167
|
+
...draft,
|
|
168
|
+
...session.flowPrincipalId ? { principalId: session.flowPrincipalId } : {}
|
|
169
|
+
}));
|
|
170
|
+
} catch {
|
|
171
|
+
return {
|
|
172
|
+
status: "stopped",
|
|
173
|
+
sessionId,
|
|
174
|
+
errorCode: "COMPUTER_FLOW_SAVE_FAILED",
|
|
175
|
+
report,
|
|
176
|
+
nextAction: "Control was released; no reusable flow was confirmed saved. Check native verification, non-sensitive labels and local storage. Do not repeat desktop input to save a flow."
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return released ? {
|
|
106
181
|
status: "stopped",
|
|
107
182
|
sessionId,
|
|
108
183
|
handoff,
|
|
184
|
+
...savedFlow ? { savedFlow } : {},
|
|
185
|
+
...report ? { report } : {},
|
|
109
186
|
nextAction: "Desktop control is released. Continue with an appropriate authorized tool; this does not permit bypassing a desktop refusal."
|
|
110
187
|
} : {
|
|
111
188
|
status: "stop_unconfirmed",
|
|
112
189
|
sessionId,
|
|
113
190
|
errorCode: "COMPUTER_RELEASE_UNCONFIRMED",
|
|
191
|
+
report,
|
|
114
192
|
nextAction: computerRecovery("COMPUTER_RELEASE_UNCONFIRMED")
|
|
115
193
|
};
|
|
116
194
|
}
|
|
117
195
|
if (this.operations.has(owner)) throw new Error("COMPUTER_BUSY");
|
|
118
196
|
const operation = new AbortController();
|
|
119
197
|
this.operations.set(owner, operation);
|
|
198
|
+
const diagnostics = this.sessions.get(owner)?.diagnostics ?? (input.op === "open" ? new ComputerSessionDiagnostics() : void 0);
|
|
199
|
+
if (diagnostics) this.openingReports.set(owner, diagnostics);
|
|
120
200
|
try {
|
|
121
|
-
|
|
201
|
+
const result = await this.executeInput(owner, input, signal ? AbortSignal.any([signal, operation.signal]) : operation.signal, diagnostics);
|
|
202
|
+
if (result.errorCode) diagnostics?.fail(new Error(result.errorCode), diagnostics.phase, result.receipt?.dispatch ?? "notStarted");
|
|
203
|
+
if (diagnostics && !this.sessions.has(owner)) this.retainReport(owner, diagnostics);
|
|
204
|
+
return {
|
|
205
|
+
...result,
|
|
206
|
+
...diagnostics ? {
|
|
207
|
+
reportId: diagnostics.snapshot().reportId,
|
|
208
|
+
...result.errorCode || result.receipt?.dispatch === "unknown" ? { report: diagnostics.snapshot() } : {}
|
|
209
|
+
} : {}
|
|
210
|
+
};
|
|
211
|
+
} catch (error) {
|
|
212
|
+
diagnostics?.fail(error, diagnostics.phase, void 0, !!signal?.aborted || operation.signal.aborted);
|
|
213
|
+
if (diagnostics && !this.sessions.has(owner)) {
|
|
214
|
+
diagnostics.finish(true);
|
|
215
|
+
this.retainReport(owner, diagnostics);
|
|
216
|
+
}
|
|
217
|
+
if (diagnostics) {
|
|
218
|
+
const report = diagnostics.snapshot();
|
|
219
|
+
log.warn({
|
|
220
|
+
reportId: report.reportId,
|
|
221
|
+
conversationId: owner,
|
|
222
|
+
sessionId: report.sessionId,
|
|
223
|
+
...report.failure
|
|
224
|
+
}, `Computer operation failed: ${report.failure?.errorCode}`);
|
|
225
|
+
}
|
|
226
|
+
throw error;
|
|
122
227
|
} finally {
|
|
123
228
|
if (this.operations.get(owner) === operation) this.operations.delete(owner);
|
|
229
|
+
if (this.openingReports.get(owner) === diagnostics) this.openingReports.delete(owner);
|
|
124
230
|
}
|
|
125
231
|
}
|
|
126
|
-
|
|
232
|
+
flowScope(owner) {
|
|
233
|
+
const effective = resolveEffectiveAgentConfigForSession(owner).config;
|
|
234
|
+
return JSON.stringify([effective.id, effective.workspace]);
|
|
235
|
+
}
|
|
236
|
+
async executeInput(owner, input, signal, diagnostics) {
|
|
127
237
|
signal.throwIfAborted();
|
|
128
238
|
const config = this.getConfig();
|
|
129
239
|
if (!config.computer.enabled) {
|
|
@@ -186,6 +296,7 @@ var ComputerRuntime = class {
|
|
|
186
296
|
const adapter = createComputerModelAdapter({
|
|
187
297
|
modelId: model.id,
|
|
188
298
|
baseUrl: model.baseUrl,
|
|
299
|
+
api: model.api,
|
|
189
300
|
apiKey,
|
|
190
301
|
profile,
|
|
191
302
|
headers: model.headers,
|
|
@@ -212,10 +323,17 @@ var ComputerRuntime = class {
|
|
|
212
323
|
createdAt: Date.now(),
|
|
213
324
|
actions: 0,
|
|
214
325
|
modelRequests: 0,
|
|
326
|
+
rescues: 0,
|
|
327
|
+
rescueLimit: config.computer.maxRescuesPerSession,
|
|
215
328
|
controller: new AbortController(),
|
|
216
329
|
task: new ComputerTaskState(),
|
|
330
|
+
flowCapture: new ComputerFlowCapture(),
|
|
331
|
+
flowPrincipalId: endpoint.principalId,
|
|
332
|
+
flowScope: JSON.stringify([effective.id, effective.workspace]),
|
|
333
|
+
diagnostics,
|
|
217
334
|
serviceLimits
|
|
218
335
|
};
|
|
336
|
+
s.diagnostics.bind(s.id);
|
|
219
337
|
this.sessions.set(owner, s);
|
|
220
338
|
enterComputerControl(owner, async () => {
|
|
221
339
|
await this.close(owner);
|
|
@@ -224,10 +342,12 @@ var ComputerRuntime = class {
|
|
|
224
342
|
if (!s) throw new Error("COMPUTER_OPEN_REQUIRED");
|
|
225
343
|
signal = signal ? AbortSignal.any([signal, s.controller.signal]) : s.controller.signal;
|
|
226
344
|
if (Date.now() - s.createdAt >= config.computer.maxSessionDurationMs) {
|
|
345
|
+
s.diagnostics.fail(/* @__PURE__ */ new Error("COMPUTER_SESSION_BUDGET"), "observe", "notStarted");
|
|
227
346
|
await this.close(owner);
|
|
228
347
|
throw new Error("COMPUTER_SESSION_BUDGET");
|
|
229
348
|
}
|
|
230
349
|
let phase = "observe";
|
|
350
|
+
s.diagnostics.phase = "observe";
|
|
231
351
|
try {
|
|
232
352
|
if (input.op === "open") {
|
|
233
353
|
if (input.appRef !== s.appRef || input.windowRef !== s.windowRef || input.mode !== s.mode || input.prepare !== s.prepare) throw new Error("COMPUTER_CLOSE_BEFORE_TARGET_CHANGE");
|
|
@@ -241,6 +361,7 @@ var ComputerRuntime = class {
|
|
|
241
361
|
...s.windowRef ? { windowRef: s.windowRef } : {},
|
|
242
362
|
model: s.binding
|
|
243
363
|
}, signal);
|
|
364
|
+
if (reply.value.errorCode) s.diagnostics.fail(new Error(reply.value.errorCode), "open", "notStarted");
|
|
244
365
|
if (reply.value.status === "stopped") this.forget(s);
|
|
245
366
|
return {
|
|
246
367
|
...this.present(reply.value),
|
|
@@ -253,17 +374,33 @@ var ComputerRuntime = class {
|
|
|
253
374
|
owner
|
|
254
375
|
}, signal);
|
|
255
376
|
if (status.value.status === "stopped") {
|
|
377
|
+
if (status.value.errorCode) s.diagnostics.fail(new Error(status.value.errorCode), "observe", "notStarted");
|
|
256
378
|
this.forget(s);
|
|
257
379
|
return this.present(status.value);
|
|
258
380
|
}
|
|
259
381
|
if (input.op === "step" && s.mode === "observe") throw new Error("COMPUTER_READ_ONLY");
|
|
260
382
|
if (s.pending) {
|
|
261
383
|
if (input.op === "observe") return this.present(status.value);
|
|
384
|
+
const context = s.pendingContext;
|
|
262
385
|
phase = "dispatch";
|
|
263
|
-
|
|
386
|
+
const result = await this.dispatchAction(s, s.pending, signal);
|
|
387
|
+
if (!this.isUndispatchedChange(result) || !context) return result;
|
|
388
|
+
input = {
|
|
389
|
+
op: "step",
|
|
390
|
+
goal: context.goal,
|
|
391
|
+
expect: context.expectation,
|
|
392
|
+
flowId: context.flowId
|
|
393
|
+
};
|
|
394
|
+
this.reserveRescue(s, signal);
|
|
395
|
+
} else if (status.value.status !== "ready") return this.present(status.value);
|
|
396
|
+
if (input.op === "step") {
|
|
397
|
+
if (input.flowId || s.lastFlowId) s.adapter.reset?.();
|
|
398
|
+
s.lastFlowId = input.flowId;
|
|
264
399
|
}
|
|
265
|
-
|
|
266
|
-
|
|
400
|
+
while (true) {
|
|
401
|
+
signal.throwIfAborted();
|
|
402
|
+
if (Date.now() - s.createdAt >= config.computer.maxSessionDurationMs) throw new Error("COMPUTER_SESSION_BUDGET");
|
|
403
|
+
phase = "observe";
|
|
267
404
|
const observed = await this.send(s, {
|
|
268
405
|
op: "observe",
|
|
269
406
|
sessionId: s.id,
|
|
@@ -271,6 +408,7 @@ var ComputerRuntime = class {
|
|
|
271
408
|
}, signal);
|
|
272
409
|
try {
|
|
273
410
|
const verification = verifyComputerExpectation(input.expect, observed.value.observation);
|
|
411
|
+
if (input.op === "observe") s.diagnostics.verify(verification);
|
|
274
412
|
if (input.op === "observe" && !input.question) return {
|
|
275
413
|
...this.present(observed.value),
|
|
276
414
|
verification,
|
|
@@ -278,6 +416,7 @@ var ComputerRuntime = class {
|
|
|
278
416
|
budget: this.budget(s)
|
|
279
417
|
};
|
|
280
418
|
if (input.op === "step" && input.expect?.kind !== "text" && verification?.status === "satisfied") {
|
|
419
|
+
s.diagnostics.verify(verification);
|
|
281
420
|
s.adapter.reset?.();
|
|
282
421
|
return {
|
|
283
422
|
status: "condition_satisfied",
|
|
@@ -291,10 +430,19 @@ var ComputerRuntime = class {
|
|
|
291
430
|
if (input.op === "step" && s.actions >= config.computer.maxActionsPerSession) throw new Error("COMPUTER_ACTION_BUDGET");
|
|
292
431
|
const o = observed.value.observation;
|
|
293
432
|
if (!o || !observed.frame || !observed.mimeType) throw new Error("COMPUTER_FRAME_REQUIRED");
|
|
433
|
+
let flowHint;
|
|
434
|
+
if (input.op === "step" && input.flowId) {
|
|
435
|
+
const flowId = input.flowId;
|
|
436
|
+
const flow = this.flowStore.list(s.flowScope).find((item) => item.id === flowId);
|
|
437
|
+
if (!flow) throw new Error("COMPUTER_FLOW_NOT_FOUND");
|
|
438
|
+
if ((flow.principalId ? flow.principalId !== s.flowPrincipalId : flow.endpointId !== s.endpointId) || flow.appId !== o.target.appId) throw new Error("COMPUTER_FLOW_TARGET_MISMATCH");
|
|
439
|
+
flowHint = computerFlowHint(flow);
|
|
440
|
+
}
|
|
294
441
|
phase = "model";
|
|
295
|
-
const
|
|
296
|
-
|
|
297
|
-
|
|
442
|
+
const predictionInput = input;
|
|
443
|
+
const proposal = await s.diagnostics.measure("model", () => predictComputerStep(s.adapter, {
|
|
444
|
+
goal: predictionInput.op === "observe" ? predictionInput.question : predictionInput.goal,
|
|
445
|
+
readOnly: predictionInput.op === "observe",
|
|
298
446
|
image: observed.frame,
|
|
299
447
|
mimeType: observed.mimeType,
|
|
300
448
|
width: o.imageWidth,
|
|
@@ -302,10 +450,13 @@ var ComputerRuntime = class {
|
|
|
302
450
|
summary: o.summary,
|
|
303
451
|
stateDigest: o.stateDigest,
|
|
304
452
|
history: s.task.history,
|
|
305
|
-
expectation:
|
|
453
|
+
expectation: predictionInput.expect,
|
|
454
|
+
flowHint,
|
|
455
|
+
onModelRequest: () => s.diagnostics.count("modelRequests")
|
|
306
456
|
}, () => {
|
|
307
457
|
if (++s.modelRequests > config.computer.maxModelRequests) throw new Error("COMPUTER_MODEL_BUDGET");
|
|
308
|
-
|
|
458
|
+
s.diagnostics.count("predictionAttempts");
|
|
459
|
+
}, signal));
|
|
309
460
|
if (proposal.kind === "answer") return {
|
|
310
461
|
...this.present(observed.value),
|
|
311
462
|
summary: proposal.text,
|
|
@@ -314,22 +465,29 @@ var ComputerRuntime = class {
|
|
|
314
465
|
budget: this.budget(s)
|
|
315
466
|
};
|
|
316
467
|
if (input.op === "observe") throw new Error("COMPUTER_READ_ONLY_MODEL_OUTPUT");
|
|
317
|
-
if (proposal.kind === "finished")
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
468
|
+
if (proposal.kind === "finished") {
|
|
469
|
+
if (proposal.claimedSuccess) s.diagnostics.count("successClaims");
|
|
470
|
+
return {
|
|
471
|
+
status: "model_finished",
|
|
472
|
+
sessionId: s.id,
|
|
473
|
+
claimedSuccess: proposal.claimedSuccess,
|
|
474
|
+
verified: false,
|
|
475
|
+
verification,
|
|
476
|
+
budget: this.budget(s),
|
|
477
|
+
nextAction: "The model claim is not proof. Check the requested completion condition using native or artifact evidence before reporting success."
|
|
478
|
+
};
|
|
479
|
+
}
|
|
480
|
+
if (proposal.kind === "takeover") {
|
|
481
|
+
s.diagnostics.count("takeovers");
|
|
482
|
+
return {
|
|
483
|
+
status: "takeover",
|
|
484
|
+
sessionId: s.id,
|
|
485
|
+
pending: true,
|
|
486
|
+
budget: this.budget(s),
|
|
487
|
+
summary: "The GUI model requests user assistance. Inspect the authorized window locally."
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
const action = groundComputerAction(proposal.action, o);
|
|
333
491
|
const e = {
|
|
334
492
|
actionId: randomUUID(),
|
|
335
493
|
sessionId: s.id,
|
|
@@ -338,44 +496,55 @@ var ComputerRuntime = class {
|
|
|
338
496
|
generation: o.generation,
|
|
339
497
|
grantId: observed.value.grantId,
|
|
340
498
|
deadlineAt: Date.now() + 12e4,
|
|
341
|
-
action
|
|
499
|
+
action
|
|
342
500
|
};
|
|
343
|
-
s.
|
|
501
|
+
s.diagnostics.phase = "dispatch";
|
|
502
|
+
s.task.assertProgress(action, o);
|
|
344
503
|
s.pendingContext = {
|
|
345
504
|
goal: input.goal,
|
|
346
505
|
before: o,
|
|
347
|
-
expectation: input.expect
|
|
506
|
+
expectation: input.expect,
|
|
507
|
+
flowId: input.flowId
|
|
348
508
|
};
|
|
349
509
|
phase = "dispatch";
|
|
350
510
|
const result = await this.dispatchAction(s, e, signal);
|
|
351
|
-
if (
|
|
352
|
-
|
|
511
|
+
if (!this.isUndispatchedChange(result)) return result;
|
|
512
|
+
this.reserveRescue(s, signal);
|
|
353
513
|
} finally {
|
|
354
514
|
observed.frame?.fill(0);
|
|
355
515
|
}
|
|
356
516
|
}
|
|
357
|
-
throw new Error("COMPUTER_UI_UNSTABLE");
|
|
358
517
|
} catch (error) {
|
|
359
518
|
const failure = signal.aborted || computerDiagnostic(error) || error instanceof Error && /^COMPUTER_[A-Z_0-9]+$/.test(error.message) ? error : new ComputerOperationError({
|
|
360
519
|
errorCode: `COMPUTER_${phase.toUpperCase()}_FAILED`,
|
|
361
520
|
phase,
|
|
362
521
|
diagnosticId: randomUUID()
|
|
363
522
|
});
|
|
364
|
-
|
|
365
|
-
if (diagnostic) log.warn({
|
|
366
|
-
...diagnostic,
|
|
367
|
-
conversationId: owner,
|
|
368
|
-
sessionId: s.id
|
|
369
|
-
}, `Computer operation failed: ${diagnostic.errorCode}`);
|
|
523
|
+
s.diagnostics.fail(failure, s.diagnostics.phase, void 0, signal.aborted);
|
|
370
524
|
await this.close(owner);
|
|
371
525
|
throw failure;
|
|
372
526
|
}
|
|
373
527
|
}
|
|
528
|
+
isUndispatchedChange(result) {
|
|
529
|
+
return result.status === "ready" && result.errorCode === "COMPUTER_OBSERVATION_CHANGED" && !result.receipt;
|
|
530
|
+
}
|
|
531
|
+
reserveRescue(s, signal) {
|
|
532
|
+
signal.throwIfAborted();
|
|
533
|
+
const limit = Math.min(s.rescueLimit, this.getConfig().computer.maxRescuesPerSession);
|
|
534
|
+
if (s.rescues >= limit) {
|
|
535
|
+
s.diagnostics.count("rescueExhaustions");
|
|
536
|
+
throw new Error("COMPUTER_UI_UNSTABLE");
|
|
537
|
+
}
|
|
538
|
+
s.rescues++;
|
|
539
|
+
s.diagnostics.count("rescueAttempts");
|
|
540
|
+
s.adapter.reset?.();
|
|
541
|
+
}
|
|
374
542
|
async dispatchAction(s, envelope, signal) {
|
|
375
543
|
if (!s.pending) {
|
|
376
544
|
if (s.actions >= this.getConfig().computer.maxActionsPerSession) throw new Error("COMPUTER_ACTION_BUDGET");
|
|
377
545
|
s.actions++;
|
|
378
546
|
s.pending = envelope;
|
|
547
|
+
s.diagnostics.propose(envelope.actionId, envelope.action.kind);
|
|
379
548
|
}
|
|
380
549
|
const reply = await this.send(s, {
|
|
381
550
|
op: "act",
|
|
@@ -383,9 +552,14 @@ var ComputerRuntime = class {
|
|
|
383
552
|
owner: s.owner,
|
|
384
553
|
envelope
|
|
385
554
|
}, signal);
|
|
555
|
+
if (reply.value.receipt && reply.value.receipt.actionId !== envelope.actionId) {
|
|
556
|
+
reply.frame?.fill(0);
|
|
557
|
+
throw new Error("COMPUTER_RECEIPT_MISMATCH");
|
|
558
|
+
}
|
|
386
559
|
if (reply.value.status !== "pending_action") s.pending = void 0;
|
|
387
560
|
reply.frame?.fill(0);
|
|
388
561
|
if (reply.value.status === "ready" && reply.value.errorCode === "COMPUTER_OBSERVATION_CHANGED" && !reply.value.receipt) {
|
|
562
|
+
s.diagnostics.discard();
|
|
389
563
|
s.actions--;
|
|
390
564
|
s.pendingContext = void 0;
|
|
391
565
|
return {
|
|
@@ -395,7 +569,13 @@ var ComputerRuntime = class {
|
|
|
395
569
|
}
|
|
396
570
|
const context = s.pendingContext;
|
|
397
571
|
const verification = verifyComputerExpectation(context?.expectation, reply.value.observation, context?.before);
|
|
398
|
-
if (
|
|
572
|
+
if (reply.value.receipt) s.diagnostics.record(reply.value.receipt, context?.before, reply.value.observation, verification);
|
|
573
|
+
const failureCode = reply.value.errorCode ?? (reply.value.receipt?.dispatch === "unknown" || reply.value.receipt?.dispatch === "started" ? reply.value.receipt.errorCode ?? "COMPUTER_NATIVE_ACTION_FAILED" : void 0);
|
|
574
|
+
if (failureCode) s.diagnostics.fail(new Error(failureCode), "dispatch", reply.value.receipt?.dispatch ?? "notStarted");
|
|
575
|
+
if (context && reply.value.receipt) {
|
|
576
|
+
s.task.record(context.goal, envelope.action, context.before, reply.value.receipt, reply.value.observation, verification);
|
|
577
|
+
s.flowCapture.record(envelope.action, context.before, reply.value.receipt, reply.value.observation, context.expectation, verification);
|
|
578
|
+
}
|
|
399
579
|
if (!s.pending) s.pendingContext = void 0;
|
|
400
580
|
if (reply.value.status === "stopped") this.forget(s);
|
|
401
581
|
return {
|
|
@@ -411,6 +591,7 @@ var ComputerRuntime = class {
|
|
|
411
591
|
return {
|
|
412
592
|
actionsRemaining: Math.max(0, config.maxActionsPerSession - s.actions),
|
|
413
593
|
modelRequestsRemaining: Math.max(0, config.maxModelRequests - s.modelRequests),
|
|
594
|
+
rescuesRemaining: Math.max(0, Math.min(s.rescueLimit, config.maxRescuesPerSession) - s.rescues),
|
|
414
595
|
expiresAt: s.createdAt + config.maxSessionDurationMs,
|
|
415
596
|
...s.serviceLimits ? { serviceLimits: s.serviceLimits } : {}
|
|
416
597
|
};
|
|
@@ -458,7 +639,7 @@ var ComputerRuntime = class {
|
|
|
458
639
|
signal?.throwIfAborted();
|
|
459
640
|
const tool = this.endpoints.registry.getTool(s.endpointId, COMPUTER_CONTROL_TOOL);
|
|
460
641
|
if (!tool) throw new Error("COMPUTER_DESKTOP_UPGRADE_REQUIRED");
|
|
461
|
-
const
|
|
642
|
+
const invoke = () => this.endpoints.invocations.invoke({
|
|
462
643
|
endpointId: s.endpointId,
|
|
463
644
|
toolCallId: randomUUID(),
|
|
464
645
|
toolName: COMPUTER_CONTROL_TOOL,
|
|
@@ -466,6 +647,9 @@ var ComputerRuntime = class {
|
|
|
466
647
|
descriptorRevision: tool.revision,
|
|
467
648
|
signal
|
|
468
649
|
});
|
|
650
|
+
const phase = command.op === "open" ? "open" : command.op === "act" ? "dispatch" : command.op === "observe" ? "observe" : command.op === "release" ? "release" : void 0;
|
|
651
|
+
if (command.op === "observe") s.diagnostics?.count("observations");
|
|
652
|
+
const reply = s.diagnostics && phase ? await s.diagnostics.measure(phase, invoke) : await invoke();
|
|
469
653
|
const file = reply.content.find((item) => item.type === "file");
|
|
470
654
|
let frame;
|
|
471
655
|
if (file?.type === "file" && reply.invocationId) frame = this.endpoints.uploads.takeComputerFrame(file.fileId, reply.invocationId);
|
|
@@ -490,6 +674,8 @@ var ComputerRuntime = class {
|
|
|
490
674
|
if (this.sessions.get(s.owner) !== s) return;
|
|
491
675
|
this.sessions.delete(s.owner);
|
|
492
676
|
leaveComputerControl(s.owner);
|
|
677
|
+
s.diagnostics.finish(true);
|
|
678
|
+
this.retainReport(s.owner, s.diagnostics);
|
|
493
679
|
s.task.clear();
|
|
494
680
|
s.pendingContext = void 0;
|
|
495
681
|
s.controller.abort();
|
|
@@ -516,8 +702,39 @@ var ComputerRuntime = class {
|
|
|
516
702
|
return true;
|
|
517
703
|
}
|
|
518
704
|
}
|
|
705
|
+
s.diagnostics.fail(/* @__PURE__ */ new Error("COMPUTER_RELEASE_UNCONFIRMED"), "release", "unknown");
|
|
706
|
+
s.diagnostics.finish(false);
|
|
519
707
|
return false;
|
|
520
708
|
}
|
|
709
|
+
getReport(owner) {
|
|
710
|
+
this.pruneReports();
|
|
711
|
+
return (this.sessions.get(owner)?.diagnostics ?? this.openingReports.get(owner) ?? this.reports.get(owner)?.diagnostics)?.snapshot();
|
|
712
|
+
}
|
|
713
|
+
retainReport(owner, diagnostics) {
|
|
714
|
+
this.pruneReports();
|
|
715
|
+
const previous = this.reports.get(owner);
|
|
716
|
+
this.reports.delete(owner);
|
|
717
|
+
this.reports.set(owner, {
|
|
718
|
+
diagnostics,
|
|
719
|
+
expiresAt: Date.now() + 30 * 6e4
|
|
720
|
+
});
|
|
721
|
+
while (this.reports.size > 32) this.reports.delete(this.reports.keys().next().value);
|
|
722
|
+
if (previous?.diagnostics !== diagnostics) {
|
|
723
|
+
const report = diagnostics.snapshot();
|
|
724
|
+
log.info({
|
|
725
|
+
reportId: report.reportId,
|
|
726
|
+
conversationId: owner,
|
|
727
|
+
sessionId: report.sessionId,
|
|
728
|
+
status: report.status,
|
|
729
|
+
durationMs: report.durationMs,
|
|
730
|
+
counters: report.counters,
|
|
731
|
+
failure: report.failure
|
|
732
|
+
}, "Computer session diagnostics retained");
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
pruneReports() {
|
|
736
|
+
for (const [owner, report] of this.reports) if (report.expiresAt <= Date.now()) this.reports.delete(owner);
|
|
737
|
+
}
|
|
521
738
|
async shutdown() {
|
|
522
739
|
await Promise.all([...new Set([...this.sessions.keys(), ...this.operations.keys()])].map((owner) => this.close(owner)));
|
|
523
740
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ComputerAction, ComputerObservation } from '@xopcai/computer-control-contract';
|
|
2
|
+
/** Ground only an unambiguous single click; never reinterpret double clicks or text entry. */
|
|
3
|
+
export declare function groundComputerAction(action: ComputerAction, observation: ComputerObservation): ComputerAction;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region src/computer/semantic-actions.ts
|
|
2
|
+
/** Ground only an unambiguous single click; never reinterpret double clicks or text entry. */
|
|
3
|
+
function groundComputerAction(action, observation) {
|
|
4
|
+
if (action.kind !== "click" || action.count !== 1 || action.point.x < 0 || action.point.y < 0 || action.point.x >= observation.imageWidth || action.point.y >= observation.imageHeight) return action;
|
|
5
|
+
const kind = action.button === "left" ? "activate" : "showMenu";
|
|
6
|
+
try {
|
|
7
|
+
const { elements, truncated } = JSON.parse(observation.summary);
|
|
8
|
+
if (!Array.isArray(elements) || truncated === true) return action;
|
|
9
|
+
const candidates = elements.filter((element) => {
|
|
10
|
+
if (!element || typeof element !== "object") return false;
|
|
11
|
+
const b = element.bounds;
|
|
12
|
+
return (Array.isArray(element.actions) && element.actions.some((name) => name === "AXPress" || name === "AXShowMenu") || element.semanticActions?.length || /^AX(Button|CheckBox|RadioButton|DisclosureTriangle|PopUpButton|ComboBox|TextField|TextArea|SecureTextField|Link|Row|Cell|Slider)$/.test(element.role)) && b && [
|
|
13
|
+
b.x,
|
|
14
|
+
b.y,
|
|
15
|
+
b.width,
|
|
16
|
+
b.height
|
|
17
|
+
].every(Number.isFinite) && b.width > 0 && b.height > 0 && action.point.x >= b.x && action.point.y >= b.y && action.point.x < b.x + b.width && action.point.y < b.y + b.height;
|
|
18
|
+
});
|
|
19
|
+
const element = candidates.length === 1 ? candidates[0] : void 0;
|
|
20
|
+
return element && typeof element.ref === "string" && element.enabled !== false && element.in_web_content !== true && Array.isArray(element.semanticActions) && element.semanticActions.includes(kind) ? {
|
|
21
|
+
kind,
|
|
22
|
+
ref: element.ref
|
|
23
|
+
} : action;
|
|
24
|
+
} catch {
|
|
25
|
+
return action;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { groundComputerAction };
|
package/dist/src/config/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
|
|
|
5
5
|
import { extractProfileAgentId, resolveEffectiveAgentConfigForAgent, resolveEffectiveAgentConfigForSession, resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "./agent-profile.js";
|
|
6
6
|
import { TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema } from "../../extensions/telegram/src/config-schema.js";
|
|
7
7
|
import { WeixinAccountConfigSchema, WeixinConfigSchema } from "../../extensions/weixin/src/config-schema.js";
|
|
8
|
-
import { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, BrowserConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema,
|
|
8
|
+
import { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, BrowserConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GatewayWebchatConfigSchema, McpConfigSchema, McpOAuthConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelCatalogConfigSchema, ModelsDevConfigSchema, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, RuntimeToolsConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TunnelBrokerUrlSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VoiceConfigSchema, VoiceRefinementConfigSchema, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, getAgentDefaultChatModelConfig, getAgentDefaultImageGenerationModelConfig, getAgentDefaultImageModelConfig, getAgentDefaultModelRef, init_schema, parseModelRef } from "./schema.js";
|
|
9
9
|
import { clearConfigValueCache, getAllowedCommands, getCacheStats, init_resolve_config_value, resolveConfigValue, resolveHeaders, testApiKeyResolution } from "./resolve-config-value.js";
|
|
10
10
|
import { FILENAMES, WORKSPACE_FILES, existsSync, hasBundledExtensionManifest, init_paths, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentHomeDir, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveCredentialsDir, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath } from "./paths.js";
|
|
11
11
|
import { CustomModelSchema, ImageGenerationCapabilitiesSchema, ImageGenerationModelSchema, ImageGenerationProviderSchema, ModelOverrideSchema, ModelsJsonSchema, OpenAICompatSchema, OpenAICompletionsCompatSchema, OpenAIResponsesCompatSchema, OpenRouterRoutingSchema, ProviderConfigSchema, VercelGatewayRoutingSchema, getDefaultModelValues, init_models_json, loadModelsJson, modelsJsonExists, saveModelsJson, validateModelsConfig } from "./models-json.js";
|
|
@@ -26,4 +26,4 @@ init_workspace_path();
|
|
|
26
26
|
init_models_json();
|
|
27
27
|
init_resolve_config_value();
|
|
28
28
|
//#endregion
|
|
29
|
-
export { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, BASE_RELOAD_RULES, BrowserConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigHotReloader, ConfigSchema, ConnectorsConfigSchema, CustomModelSchema, ENV_VARS, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, FILENAMES, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema,
|
|
29
|
+
export { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, BASE_RELOAD_RULES, BrowserConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigHotReloader, ConfigSchema, ConnectorsConfigSchema, CustomModelSchema, ENV_VARS, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, FILENAMES, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GatewayWebchatConfigSchema, ImageGenerationCapabilitiesSchema, ImageGenerationModelSchema, ImageGenerationProviderSchema, McpConfigSchema, McpOAuthConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelCatalogConfigSchema, ModelOverrideSchema, ModelsDevConfigSchema, ModelsJsonSchema, OpenAICompatSchema, OpenAICompletionsCompatSchema, OpenAIResponsesCompatSchema, OpenRouterRoutingSchema, ProfileManager, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, RuntimeToolsConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TunnelBrokerUrlSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VercelGatewayRoutingSchema, VoiceConfigSchema, VoiceRefinementConfigSchema, WORKSPACE_FILES, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WeixinAccountConfigSchema, WeixinConfigSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, XOPC_DB_FILENAME, applyConfigOverrides, assertConfigRewriteSafeForRunningGateway, buildReloadPlan, canonicalizeConfiguredMcpServer, clearConfigValueCache, createProfile, deleteProfile, diffConfigPaths, existsSync, expandWorkspacePathString, extractProfileAgentId, formatThinkingLevels, getAgentDefaultChatModelConfig, getAgentDefaultImageGenerationModelConfig, getAgentDefaultImageModelConfig, getAgentDefaultModelRef, getAllowedCommands, getCacheStats, getConfigOverrides, getCurrentProfile, getDefaultModelValues, resolveModelsJsonPath as getModelsJsonPath, getProfileManager, getProfileNameFromDir, getSwitchCommand, getWorkspacePath, hasBundledExtensionManifest, listAgentProfileMarkdownDirs, listAgentWorkspaceDirs, listProfiles, listThinkingLevels, loadConfig, loadModelsJson, matchReloadRule, modelsJsonExists, normalizeConfiguredMcpServers, normalizeElevatedMode, normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel, normalizeWorkspaceDir, parseModelRef, resetConfigOverrides, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentHomeDir, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAgentWorkspaceDir, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveConfigValue, resolveCredentialsDir, resolveDefaultAgentWorkspaceDir, resolveEffectiveAgentConfigForAgent, resolveEffectiveAgentConfigForSession, resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveHeaders, resolveHomeDir, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveProfileStateDir, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStateDir, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceRoot, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath, resolveXopcCloudCatalogCachePath, resolveXopcDatabasePath, saveConfig, saveModelsJson, setConfigOverride, testApiKeyResolution, thinkLevelToNumber, unsetConfigOverride, validateModelsConfig };
|