@xopcai/xopc 0.0.303 → 0.0.307
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/README.md +4 -4
- package/README.zh-CN.md +4 -4
- package/dist/browser-ext/dist/assets/{auth-B_9ZuGDx.js → auth-C3yV1y_l.js} +67 -22
- package/dist/browser-ext/dist/background.js +4 -4
- package/dist/browser-ext/dist/sidepanel.html +1 -1
- package/dist/browser-ext/dist/sidepanel.js +3 -3
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/xopc.extension.json +0 -3
- package/dist/extensions/telegram/xopc.extension.json +1 -4
- package/dist/extensions/weixin/xopc.extension.json +0 -3
- package/dist/gateway/static/root/assets/{activity-store-DCi5rh4e.js → activity-store-wgSB2HYK.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Ch3DzUvP.js → agent-avatar-dicebear-CZeQo09T.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-BPsRb9Ck.js +1 -0
- package/dist/gateway/static/root/assets/{agents-DXHD-ST3.js → agents-BlrHMbRx.js} +1 -1
- package/dist/gateway/static/root/assets/{api-CAV9PN9i.js → api-BKHmTb0w.js} +1 -1
- package/dist/gateway/static/root/assets/api-DFOlahZv.js +1 -0
- package/dist/gateway/static/root/assets/app-management-settings-panel-Bzw4fQP8.js +1 -0
- package/dist/gateway/static/root/assets/appearance-settings-8GZpUXva.js +1 -0
- package/dist/gateway/static/root/assets/apps-page-BkQQtIxH.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-BKGzaVvM.js → archive-plugin-CQ2NaoHb.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-8bARdLnp.js → attachment-load-BFi1H7yJ.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-BAEenyzx.js → automations-page-CDBXcii_.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-CUpiTTiY.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-Cv3GS9Eo.js → binary-plugins-D07eWmOx.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-D4ZIVQbk.css → block-editor-BdOTO0Yo.css} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-DUeb92LG.js → block-editor-CtVnjyYU.js} +3 -3
- package/dist/gateway/static/root/assets/{browser-automation-inputs-BGT0xoTv.js → browser-automation-inputs-BzkJog8e.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-D1O22WIf.js → browser-automations-page-DyrSbDdG.js} +2 -2
- package/dist/gateway/static/root/assets/browser-settings-page-CqTxLpil.js +3 -0
- package/dist/gateway/static/root/assets/button-CS04eWY9.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-BZ_-pnS6.js +8 -0
- package/dist/gateway/static/root/assets/channels-settings-DAD9qE3J.js +1 -0
- package/dist/gateway/static/root/assets/{channels-status-swr-C_icwbWj.js → channels-status-swr-B2JwuTjG.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-D-JYPVYl.js → chat-terminal-dock-B62SZdAo.js} +2 -2
- package/dist/gateway/static/root/assets/{computer-settings-page-Bcfp948A.js → computer-settings-page-ClSresNq.js} +1 -1
- package/dist/gateway/static/root/assets/connector-service-page-CPqVmNvx.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-BUQyg3CW.js +2 -0
- package/dist/gateway/static/root/assets/cron-expression-CTMi_tql.js +2 -0
- package/dist/gateway/static/root/assets/date-picker-B71AJK50.js +1 -0
- package/dist/gateway/static/root/assets/{dependency-picker-UtoUm57Q.js → dependency-picker-DlyGK-kA.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-Bryx7gRM.js → desktop-pet-DGkbTE8_.js} +1 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-BY8r9j66.js +1 -0
- package/dist/gateway/static/root/assets/device-pairing-wizard-DzRrgd59.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-DQlFTVBx.js → extension-debug-page-L8Mm1n3A.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-BSsqRDXh.js → extension-page-CFc4vSNU.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DbVZv9ve.js → extension-settings-page-B5zWyHr3.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-D5AM8cyQ.js → gateway-config-swr-B6wHa6ZI.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-B53R0CA4.js +1 -0
- package/dist/gateway/static/root/assets/gateway-realtime-store-BLDgrJ30.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-D7qmTH4R.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-CSJWdnFs.js → gateway-startup-retry-DRzGnEV-.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-Cxowc29b.js → heartbeat-settings-Glsl3X5b.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-s9hDQ8Hc.js +1 -0
- package/dist/gateway/static/root/assets/{image-generation-api-BNh604hw.js → image-generation-api-Ck_pyDom.js} +1 -1
- package/dist/gateway/static/root/assets/imports-page-ByBX7ome.js +1 -0
- package/dist/gateway/static/root/assets/index-RBCkv8a_.js +79 -0
- package/dist/gateway/static/root/assets/index-cFU4S35z.css +1 -0
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-C45RlO8a.js +1 -0
- package/dist/gateway/static/root/assets/local-app-workbench-page-DP0x2jpR.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-CXPaPDGm.js → local-apps-page-C_AQc2bI.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-DLK05Y1a.js → locale-store-msTfRK8P.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-DvM8Pyok.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-D1uwSutV.js +1 -0
- package/dist/gateway/static/root/assets/{markdown-view-B8maDRWh.js → markdown-view-BInabSKf.js} +2 -2
- package/dist/gateway/static/root/assets/{media-plugins-tSJ0CvcX.js → media-plugins-C4mhf13f.js} +1 -1
- package/dist/gateway/static/root/assets/messages-F74LVAiU.js +3 -0
- package/dist/gateway/static/root/assets/note-detail-panel-D35sErp2.js +5 -0
- package/dist/gateway/static/root/assets/notes-page-8jCDklDn.js +8 -0
- package/dist/gateway/static/root/assets/{page-tabs-CQx6H-GS.js → page-tabs-1go_BtX1.js} +1 -1
- package/dist/gateway/static/root/assets/{popover-select-DldSX8GX.js → popover-select-9i-ZtHXL.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-A3-bVtdy.js → preview-open-alternatives-DmoSC0j1.js} +1 -1
- package/dist/gateway/static/root/assets/{proactive-page-D46cR3sf.js → proactive-page-xAjKTIID.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-CujZXOea.js → product-open-page-gmi5LLwM.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-BUMQHy_N.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-DT-Mt7XR.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-BMFL4vis.js → registry-api-BSWtko7U.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-Clz3byir.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-CR0qvq9C.js → runtime-tools-settings-panel-ClkOoxDl.js} +2 -2
- package/dist/gateway/static/root/assets/{schema-form-BUD9lLEE.js → schema-form-BuEmLiaU.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-tQRwktKm.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DqWg9XS5.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-BZPCUH6a.js → settings-form-section-Dor39QON.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-XoHmqIdm.js → settings-page-Xj-yvIc8.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BB_sMB7P.js +1 -0
- package/dist/gateway/static/root/assets/share-preview-page-BFWZoXdm.js +2 -0
- package/dist/gateway/static/root/assets/shares-settings-oDALm4b6.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-DmwelnfK.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-BE9JXz4U.js +2 -0
- package/dist/gateway/static/root/assets/{skills-page.utils-CH-quGxZ.js → skills-page.utils-Ii8qeXhs.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-CGC7eBso.js → system-settings-panel-Di6OSO-0.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-D1AWszc7.js +1 -0
- package/dist/gateway/static/root/assets/theme-store-1SZ-HFHX.js +1 -0
- package/dist/gateway/static/root/assets/tunnel-api-DDOlOYlj.js +1 -0
- package/dist/gateway/static/root/assets/{use-autosave-BydB6x2K.js → use-autosave-CQ8uWNnB.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-C00i4ea0.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-CPUDBcag.js → voice-api-key-field-COTzshjL.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-bZqN8-UF.js → voice-config-api-DgJML_uM.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-D_FmJbGH.js → work-discovery-overlay-_URrXbi4.js} +1 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-CALs-1nd.js +3 -0
- package/dist/gateway/static/root/assets/workflows-page-BUiBjz6m.js +6 -0
- package/dist/gateway/static/root/channel-icons/feishu.svg +6 -12
- package/dist/gateway/static/root/connector-icons/SOURCES.md +12 -0
- package/dist/gateway/static/root/connector-icons/dingtalk-mark.svg +1 -0
- package/dist/gateway/static/root/connector-icons/tencent-meeting-mark.svg +37 -0
- package/dist/gateway/static/root/connector-icons/wps-calendar.svg +14 -0
- package/dist/gateway/static/root/connector-icons/wps-docs.svg +14 -0
- package/dist/gateway/static/root/connector-icons/wps-mail.svg +7 -0
- package/dist/gateway/static/root/index.html +14 -12
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/device-pairing.js +100 -7
- package/dist/packages/gateway-contract/src/gateway-scopes.js +53 -0
- package/dist/packages/gateway-contract/src/index.js +2 -0
- package/dist/packages/realtime-client/src/index.js +14 -2
- package/dist/packages/realtime-protocol/src/index.js +18 -14
- package/dist/src/agent/agent-instance-gateway.d.ts +2 -0
- package/dist/src/agent/agent-manager.d.ts +2 -0
- package/dist/src/agent/agent-manager.js +40 -12
- package/dist/src/agent/agent-scope.d.ts +4 -1
- package/dist/src/agent/agent-scope.js +19 -3
- package/dist/src/agent/commands/command-isolation.js +11 -9
- package/dist/src/agent/commands/command-registry.js +18 -33
- package/dist/src/agent/context/audit.js +12 -2
- package/dist/src/agent/context/coordinator.d.ts +13 -3
- package/dist/src/agent/context/coordinator.js +27 -11
- package/dist/src/agent/context/execution-context.js +42 -22
- package/dist/src/agent/context/execution-context.types.d.ts +4 -2
- package/dist/src/agent/context/execution-scope.d.ts +2 -2
- package/dist/src/agent/context/execution-scope.js +1 -1
- package/dist/src/agent/context/project-context.d.ts +2 -2
- package/dist/src/agent/context/project-context.js +3 -3
- package/dist/src/agent/embedded/run-for-session.d.ts +1 -0
- package/dist/src/agent/embedded/run-for-session.js +7 -1
- package/dist/src/agent/external-tools/composio-provider.js +83 -20
- package/dist/src/agent/external-tools/gateway-tools.js +2 -1
- package/dist/src/agent/inbound/attachment-pipeline.d.ts +2 -0
- package/dist/src/agent/inbound/attachment-pipeline.js +3 -3
- package/dist/src/agent/inbound/inbound-loop.js +1 -0
- package/dist/src/agent/inbound/turn-dispatcher.js +3 -3
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
- package/dist/src/agent/mcp/mcp-stdio-transport.js +5 -2
- package/dist/src/agent/mcp/oauth/mcp-oauth-manager.js +1 -1
- package/dist/src/agent/memory/compaction-promotion.js +7 -2
- package/dist/src/agent/memory/create-memory-manager.js +1 -0
- package/dist/src/agent/memory/manager.d.ts +6 -0
- package/dist/src/agent/memory/manager.js +74 -39
- package/dist/src/agent/memory/runtime.d.ts +3 -3
- package/dist/src/agent/memory/runtime.js +11 -4
- package/dist/src/agent/orchestration/agent-orchestrator.js +4 -1
- package/dist/src/agent/prompt/cache-boundary.d.ts +2 -0
- package/dist/src/agent/prompt/cache-boundary.js +10 -1
- package/dist/src/agent/service/build-direct-message-content.d.ts +1 -0
- package/dist/src/agent/service/build-direct-message-content.js +2 -1
- package/dist/src/agent/service/direct-turn-helpers.js +3 -2
- package/dist/src/agent/service/process-direct-streaming.d.ts +3 -1
- package/dist/src/agent/service/process-direct-streaming.js +3 -2
- package/dist/src/agent/service/webchat-tts.d.ts +0 -4
- package/dist/src/agent/service/webchat-tts.js +20 -19
- package/dist/src/agent/tools/factory.js +3 -3
- package/dist/src/agent/tools/knowledge-memory-tool.d.ts +2 -2
- package/dist/src/agent/tools/knowledge-memory-tool.js +7 -7
- package/dist/src/browser/native-messaging-host.js +2 -2
- package/dist/src/channels/attachments/voice-stt-webchat.d.ts +3 -0
- package/dist/src/channels/attachments/voice-stt-webchat.js +22 -9
- package/dist/src/cli/commands/agent.js +2 -0
- package/dist/src/cli/commands/config.js +8 -9
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +69 -44
- package/dist/src/cli/commands/extension-pack.js +0 -2
- package/dist/src/cli/commands/extension.js +4 -25
- package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
- package/dist/src/cli/commands/onboard/gateway.js +2 -1
- package/dist/src/cli/utils/init-workspace-core.js +5 -2
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/loader.d.ts +1 -0
- package/dist/src/config/loader.js +14 -1
- package/dist/src/config/schema.d.ts +22 -3
- package/dist/src/config/schema.js +13 -3
- package/dist/src/connectors/account-access.d.ts +4 -0
- package/dist/src/connectors/account-access.js +23 -0
- package/dist/src/connectors/approval-resume.d.ts +4 -0
- package/dist/src/connectors/approval-resume.js +23 -0
- package/dist/src/connectors/auth-provider-registry.d.ts +1 -0
- package/dist/src/connectors/auth-provider-registry.js +2 -1
- package/dist/src/connectors/authorization-attempts.d.ts +21 -0
- package/dist/src/connectors/authorization-attempts.js +33 -0
- package/dist/src/connectors/builtin-catalog.js +1 -3
- package/dist/src/connectors/catalog.js +2 -1
- package/dist/src/connectors/china-catalog.d.ts +2 -0
- package/dist/src/connectors/china-catalog.js +430 -0
- package/dist/src/connectors/composio-backends.d.ts +26 -0
- package/dist/src/connectors/composio-backends.js +65 -0
- package/dist/src/connectors/composio-catalog.js +2 -1
- package/dist/src/connectors/composio-managed-client.js +3 -1
- package/dist/src/connectors/composio-managed-events.js +5 -2
- package/dist/src/connectors/composio-session-types.d.ts +2 -0
- package/dist/src/connectors/composio-sessions.d.ts +11 -2
- package/dist/src/connectors/composio-sessions.js +137 -35
- package/dist/src/connectors/composio-triggers.js +4 -2
- package/dist/src/connectors/composio.d.ts +11 -8
- package/dist/src/connectors/composio.js +68 -84
- package/dist/src/connectors/connected-source-ingestion.js +4 -3
- package/dist/src/connectors/connection-recovery-service.js +25 -13
- package/dist/src/connectors/connector-identity.d.ts +2 -0
- package/dist/src/connectors/connector-identity.js +18 -5
- package/dist/src/connectors/content-enrichment.js +1 -1
- package/dist/src/connectors/instances.js +1 -7
- package/dist/src/connectors/learning-coordinator.js +4 -3
- package/dist/src/connectors/materialize.js +14 -1
- package/dist/src/connectors/policy.d.ts +1 -1
- package/dist/src/connectors/policy.js +1 -1
- package/dist/src/connectors/principal.js +24 -3
- package/dist/src/connectors/providers.d.ts +1 -0
- package/dist/src/connectors/providers.js +14 -2
- package/dist/src/connectors/runtime-adapter-registry.js +4 -9
- package/dist/src/connectors/secret-store.d.ts +4 -1
- package/dist/src/connectors/secret-store.js +7 -3
- package/dist/src/connectors/source-change-publisher.js +4 -2
- package/dist/src/connectors/types.d.ts +16 -11
- package/dist/src/connectors/workflow-preflight.d.ts +2 -1
- package/dist/src/connectors/workflow-preflight.js +20 -3
- package/dist/src/execution-environments/local-worktree-manager.js +17 -15
- package/dist/src/execution-environments/store.js +4 -2
- package/dist/src/execution-environments/types.d.ts +3 -0
- package/dist/src/execution-environments/types.js +2 -1
- package/dist/src/execution-environments/worktree-safety.d.ts +8 -0
- package/dist/src/execution-environments/worktree-safety.js +43 -0
- package/dist/src/extensions/activation-planner.d.ts +1 -1
- package/dist/src/extensions/activation-planner.js +1 -1
- package/dist/src/extensions/api-version.d.ts +4 -0
- package/dist/src/extensions/api-version.js +15 -0
- package/dist/src/extensions/api.d.ts +3 -9
- package/dist/src/extensions/api.js +26 -32
- package/dist/src/extensions/config-validation.d.ts +8 -0
- package/dist/src/extensions/config-validation.js +25 -0
- package/dist/src/extensions/extension-registry-impl.d.ts +20 -9
- package/dist/src/extensions/extension-registry-impl.js +79 -11
- package/dist/src/extensions/hooks.d.ts +1 -1
- package/dist/src/extensions/index.d.ts +2 -1
- package/dist/src/extensions/install-transaction.d.ts +2 -0
- package/dist/src/extensions/install-transaction.js +32 -21
- package/dist/src/extensions/install.js +18 -1
- package/dist/src/extensions/loader.d.ts +5 -5
- package/dist/src/extensions/loader.js +109 -47
- package/dist/src/extensions/lockfile.d.ts +3 -5
- package/dist/src/extensions/lockfile.js +41 -14
- package/dist/src/extensions/normalize-manifest.js +6 -60
- package/dist/src/extensions/sdk/index.d.ts +3 -2
- package/dist/src/extensions/sdk/index.js +2 -2
- package/dist/src/extensions/sdk/testing.js +0 -4
- package/dist/src/extensions/security.js +5 -7
- package/dist/src/extensions/types/core.d.ts +0 -5
- package/dist/src/extensions/types/index.d.ts +1 -1
- package/dist/src/extensions/types/manifest.d.ts +1 -25
- package/dist/src/extensions/types/providers.d.ts +1 -1
- package/dist/src/extensions/types/registration.d.ts +0 -12
- package/dist/src/extensions/update.js +71 -30
- package/dist/src/gateway/heartbeat/service.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.d.ts +3 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +47 -10
- package/dist/src/gateway/hono/routes/connectors.js +208 -17
- package/dist/src/gateway/hono/routes/context-sources.js +1 -1
- package/dist/src/gateway/hono/routes/devices.js +10 -7
- package/dist/src/gateway/hono/routes/endpoint-compatibility.js +6 -0
- package/dist/src/gateway/hono/routes/extension-gateway.js +0 -33
- package/dist/src/gateway/hono/routes/home.js +4 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -1
- package/dist/src/gateway/hono/routes/mcp.js +1 -1
- package/dist/src/gateway/hono/routes/realtime.js +30 -8
- package/dist/src/gateway/hono/routes/user-model.js +25 -6
- package/dist/src/gateway/index.js +4 -1
- package/dist/src/gateway/lock.d.ts +2 -0
- package/dist/src/gateway/lock.js +31 -14
- package/dist/src/gateway/run-loop.js +2 -1
- package/dist/src/gateway/security/gateway-scopes.d.ts +2 -5
- package/dist/src/gateway/security/gateway-scopes.js +3 -45
- package/dist/src/gateway/security/index.js +2 -1
- package/dist/src/gateway/service.js +11 -7
- package/dist/src/heartbeat/index.js +1 -1
- package/dist/src/imports/importService.d.ts +1 -1
- package/dist/src/imports/inventory.js +16 -2
- package/dist/src/imports/productImport.js +5 -5
- package/dist/src/imports/types.d.ts +3 -3
- package/dist/src/infra/exec.d.ts +2 -2
- package/dist/src/infra/exec.js +32 -27
- package/dist/src/infra/run-command.js +15 -50
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/knowledge/connected-knowledge-pipeline.js +13 -3
- package/dist/src/knowledge-memory/domain.d.ts +17 -1
- package/dist/src/knowledge-memory/index.js +2 -2
- package/dist/src/knowledge-memory/repository.d.ts +26 -4
- package/dist/src/knowledge-memory/repository.js +171 -36
- package/dist/src/mcp/channel-bridge.js +7 -3
- package/dist/src/media-understanding/registry.js +6 -1
- package/dist/src/migrations/knowledge-memory-read-policy-config.d.ts +2 -0
- package/dist/src/migrations/knowledge-memory-read-policy-config.js +48 -0
- package/dist/src/migrations/runner.js +2 -1
- package/dist/src/proactive/follow-ups.js +2 -1
- package/dist/src/process/bounded-output.d.ts +10 -0
- package/dist/src/process/bounded-output.js +41 -0
- package/dist/src/process/kill-tree.d.ts +6 -17
- package/dist/src/process/kill-tree.js +43 -75
- package/dist/src/process/process-spec.d.ts +39 -0
- package/dist/src/process/process-spec.js +13 -0
- package/dist/src/process/run-process.d.ts +4 -0
- package/dist/src/process/run-process.js +97 -0
- package/dist/src/providers/plugin-registry.d.ts +1 -1
- package/dist/src/providers/plugin-registry.js +6 -0
- package/dist/src/realtime/runtime.js +3 -1
- package/dist/src/session/store.js +1 -1
- package/dist/src/storage/sqlite/connection-wait-repository.d.ts +3 -0
- package/dist/src/storage/sqlite/connection-wait-repository.js +63 -2
- package/dist/src/storage/sqlite/connector-account-repository.d.ts +6 -0
- package/dist/src/storage/sqlite/connector-account-repository.js +35 -7
- package/dist/src/storage/sqlite/connector-repository.js +15 -10
- package/dist/src/storage/sqlite/connector-sync-policy-repository.js +1 -1
- package/dist/src/storage/sqlite/device-pairing-approval.js +1 -1
- package/dist/src/storage/sqlite/index.d.ts +1 -1
- package/dist/src/storage/sqlite/index.js +6 -4
- package/dist/src/storage/sqlite/migrations/180_execution_environment_ownership.sql +7 -0
- package/dist/src/storage/sqlite/migrations/181_knowledge_item_status_events.sql +12 -0
- package/dist/src/storage/sqlite/migrations/182_connector_account_policies.sql +92 -0
- package/dist/src/storage/sqlite/migrations/183_connector_backend_consistency.sql +20 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +7 -7
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/schema.sql +13 -0
- package/dist/src/storage/sqlite/transcript-repository.d.ts +4 -0
- package/dist/src/storage/sqlite/transcript-repository.js +36 -1
- package/dist/src/tasks/home-query-service.js +3 -3
- package/dist/src/tui/backends/embedded-backend.d.ts +24 -8
- package/dist/src/tui/backends/embedded-backend.js +114 -10
- package/dist/src/tui/backends/gateway-realtime-backend.d.ts +18 -0
- package/dist/src/tui/backends/gateway-realtime-backend.js +31 -4
- package/dist/src/tui/components/assistant-message.d.ts +4 -1
- package/dist/src/tui/components/assistant-message.js +10 -2
- package/dist/src/tui/components/cell-render-mode.d.ts +4 -0
- package/dist/src/tui/components/cell-render-mode.js +1 -0
- package/dist/src/tui/components/chat-log.d.ts +17 -4
- package/dist/src/tui/components/chat-log.js +68 -50
- package/dist/src/tui/components/custom-editor.d.ts +2 -2
- package/dist/src/tui/components/custom-editor.js +5 -1
- package/dist/src/tui/components/pending-input-preview.d.ts +9 -0
- package/dist/src/tui/components/pending-input-preview.js +33 -0
- package/dist/src/tui/components/semantic-cell.d.ts +17 -0
- package/dist/src/tui/components/semantic-cell.js +29 -0
- package/dist/src/tui/components/tool-execution.d.ts +5 -1
- package/dist/src/tui/components/tool-execution.js +33 -10
- package/dist/src/tui/components/transcript-overlay.d.ts +29 -0
- package/dist/src/tui/components/transcript-overlay.js +114 -0
- package/dist/src/tui/components/tui-bottom-bar.js +3 -1
- package/dist/src/tui/components/user-message.d.ts +5 -1
- package/dist/src/tui/components/user-message.js +12 -1
- package/dist/src/tui/extension-host/load-extensions.d.ts +1 -1
- package/dist/src/tui/extension-host/runtime-context.js +2 -1
- package/dist/src/tui/extension-host/runtime.d.ts +1 -1
- package/dist/src/tui/format-tui-hotkeys.js +8 -1
- package/dist/src/tui/tui-agent-events.js +31 -0
- package/dist/src/tui/tui-backend.d.ts +23 -11
- package/dist/src/tui/tui-backend.js +1 -9
- package/dist/src/tui/tui-chat-input-state.d.ts +25 -0
- package/dist/src/tui/tui-chat-input-state.js +36 -0
- package/dist/src/tui/tui-command-formatters.js +2 -1
- package/dist/src/tui/tui-commands.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui-types.d.ts +2 -1
- package/dist/src/tui/tui-types.js +2 -1
- package/dist/src/tui/tui.js +122 -30
- package/dist/src/tui/xopc-tui-keybindings.d.ts +23 -3
- package/dist/src/tui/xopc-tui-keybindings.js +22 -2
- package/dist/src/user-context/access-policy.d.ts +2 -2
- package/dist/src/user-context/access-policy.js +10 -2
- package/dist/src/user-context/config.d.ts +23 -6
- package/dist/src/user-context/config.js +54 -7
- package/dist/src/voice/platform-streams.js +11 -1
- package/dist/src/voice/realtime/omniEngine.js +13 -1
- package/dist/src/voice/realtime/runtime.js +2 -1
- package/dist/src/voice/tts/audio.js +1 -1
- package/dist/src/voice/tts/speech-registry.js +6 -1
- package/dist/src/workflows/domain/definition.d.ts +1 -0
- package/dist/src/workflows/domain/validation.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +14 -0
- package/dist/src/workflows/service/workflow-session-bridge.d.ts +1 -0
- package/dist/src/workflows/service/workflow-session-bridge.js +1 -0
- package/package.json +5 -3
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-4oGrNj3m.js +0 -1
- package/dist/gateway/static/root/assets/api-fPapljyb.js +0 -1
- package/dist/gateway/static/root/assets/app-management-settings-panel-CdXnNtTg.js +0 -1
- package/dist/gateway/static/root/assets/appearance-settings-izNAyDhW.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-BQb3RCga.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-5vTl4x0h.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-CH9prS-f.js +0 -3
- package/dist/gateway/static/root/assets/button-CGlRPNzi.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-settings-panel-DMURlZbj.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-CFBS3Yqy.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-DI1c3BMz.js +0 -2
- package/dist/gateway/static/root/assets/cron-expression-BJMBFKCh.js +0 -2
- package/dist/gateway/static/root/assets/date-picker-BFRIn5y9.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-DFsyEJUr.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-C3TQVPRy.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-DUqVsB3X.js +0 -1
- package/dist/gateway/static/root/assets/home-page-CLkumXdN.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-DXNfRmk9.js +0 -1
- package/dist/gateway/static/root/assets/index-BLRIcVQa.css +0 -1
- package/dist/gateway/static/root/assets/index-gheM453N.js +0 -79
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-5Hcec8Xf.js +0 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-BDg1-fcw.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-BWZc5jwO.js +0 -2
- package/dist/gateway/static/root/assets/management-settings-COa3PhMs.js +0 -1
- package/dist/gateway/static/root/assets/messages-C9h8SImu.js +0 -3
- package/dist/gateway/static/root/assets/note-detail-panel-D_YGzNcR.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-D1f2oI2-.js +0 -8
- package/dist/gateway/static/root/assets/project-detail-page-CRlD_Rwv.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-mmX0SavY.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-Cqr3K6T5.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-CPkvbdJP.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-Cu0DAbeH.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-D8fQF1jZ.js +0 -1
- package/dist/gateway/static/root/assets/share-preview-page-BgHqwTuT.js +0 -2
- package/dist/gateway/static/root/assets/shares-settings-Id4vRHzI.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-BB2Fj_di.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-BAwF4LpS.js +0 -2
- package/dist/gateway/static/root/assets/task-detail-page-BVjw812D.js +0 -1
- package/dist/gateway/static/root/assets/theme-store-KfFEGMlp.js +0 -1
- package/dist/gateway/static/root/assets/tunnel-api-Do98Xk05.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-Nv68a4ak.js +0 -2
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-1lZ_btki.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-DFOhccm3.js +0 -6
- package/dist/src/extensions/when-context.d.ts +0 -6
- package/dist/src/extensions/when-context.js +0 -26
- package/dist/src/extensions/when-expression.d.ts +0 -11
- package/dist/src/extensions/when-expression.js +0 -213
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** App-level bindings wired by xopc TUI (subset of pi coding-agent). */
|
|
2
|
-
export type XopcTuiAppKeybinding = 'app.interrupt' | 'app.clear' | 'app.exit' | 'app.suspend' | 'app.thinking.cycle' | 'app.model.cycleForward' | 'app.model.cycleBackward' | 'app.model.select' | 'app.tools.expand' | 'app.thinking.toggle' | 'app.session.resume' | 'app.session.tree' | 'app.session.fork' | 'app.session.togglePath' | 'app.session.toggleSort' | 'app.session.toggleNamedFilter' | 'app.session.rename' | 'app.session.delete' | 'app.session.deleteNoninvasive' | 'app.tree.foldOrUp' | 'app.tree.unfoldOrDown' | 'app.tree.filter.default' | 'app.tree.filter.noTools' | 'app.tree.filter.userOnly' | 'app.tree.filter.labeledOnly' | 'app.tree.filter.all' | 'app.tree.filter.cycleForward' | 'app.tree.filter.cycleBackward' | 'app.tree.editLabel' | 'app.tree.toggleLabelTimestamp' | 'app.editor.external' | 'app.clipboard.pasteImage' | 'app.message.followUp' | 'app.models.save' | 'app.models.enableAll' | 'app.models.clearAll' | 'app.models.toggleProvider' | 'app.models.reorderUp' | 'app.models.reorderDown';
|
|
2
|
+
export type XopcTuiAppKeybinding = 'app.interrupt' | 'app.clear' | 'app.exit' | 'app.suspend' | 'app.thinking.cycle' | 'app.model.cycleForward' | 'app.model.cycleBackward' | 'app.model.select' | 'app.tools.expand' | 'app.thinking.toggle' | 'app.transcript.open' | 'app.transcript.raw' | 'app.session.resume' | 'app.session.tree' | 'app.session.fork' | 'app.session.togglePath' | 'app.session.toggleSort' | 'app.session.toggleNamedFilter' | 'app.session.rename' | 'app.session.delete' | 'app.session.deleteNoninvasive' | 'app.tree.foldOrUp' | 'app.tree.unfoldOrDown' | 'app.tree.filter.default' | 'app.tree.filter.noTools' | 'app.tree.filter.userOnly' | 'app.tree.filter.labeledOnly' | 'app.tree.filter.all' | 'app.tree.filter.cycleForward' | 'app.tree.filter.cycleBackward' | 'app.tree.editLabel' | 'app.tree.toggleLabelTimestamp' | 'app.editor.external' | 'app.clipboard.pasteImage' | 'app.message.followUp' | 'app.message.editQueued' | 'app.message.deleteQueued' | 'app.models.save' | 'app.models.enableAll' | 'app.models.clearAll' | 'app.models.toggleProvider' | 'app.models.reorderUp' | 'app.models.reorderDown';
|
|
3
3
|
declare module '@earendil-works/pi-tui' {
|
|
4
4
|
interface Keybindings {
|
|
5
5
|
'app.interrupt': true;
|
|
@@ -12,6 +12,8 @@ declare module '@earendil-works/pi-tui' {
|
|
|
12
12
|
'app.model.select': true;
|
|
13
13
|
'app.tools.expand': true;
|
|
14
14
|
'app.thinking.toggle': true;
|
|
15
|
+
'app.transcript.open': true;
|
|
16
|
+
'app.transcript.raw': true;
|
|
15
17
|
'app.session.resume': true;
|
|
16
18
|
'app.session.tree': true;
|
|
17
19
|
'app.session.fork': true;
|
|
@@ -35,6 +37,8 @@ declare module '@earendil-works/pi-tui' {
|
|
|
35
37
|
'app.editor.external': true;
|
|
36
38
|
'app.clipboard.pasteImage': true;
|
|
37
39
|
'app.message.followUp': true;
|
|
40
|
+
'app.message.editQueued': true;
|
|
41
|
+
'app.message.deleteQueued': true;
|
|
38
42
|
'app.models.save': true;
|
|
39
43
|
'app.models.enableAll': true;
|
|
40
44
|
'app.models.clearAll': true;
|
|
@@ -81,9 +85,17 @@ export declare const XOPC_TUI_KEYBINDINGS: {
|
|
|
81
85
|
readonly description: "Toggle tool output";
|
|
82
86
|
};
|
|
83
87
|
readonly 'app.thinking.toggle': {
|
|
84
|
-
readonly defaultKeys:
|
|
88
|
+
readonly defaultKeys: [];
|
|
85
89
|
readonly description: "Toggle thinking block display";
|
|
86
90
|
};
|
|
91
|
+
readonly 'app.transcript.open': {
|
|
92
|
+
readonly defaultKeys: "ctrl+t";
|
|
93
|
+
readonly description: "Open transcript view";
|
|
94
|
+
};
|
|
95
|
+
readonly 'app.transcript.raw': {
|
|
96
|
+
readonly defaultKeys: "alt+r";
|
|
97
|
+
readonly description: "Open raw transcript view";
|
|
98
|
+
};
|
|
87
99
|
readonly 'app.session.resume': {
|
|
88
100
|
readonly defaultKeys: "ctrl+shift+p";
|
|
89
101
|
readonly description: "Session picker";
|
|
@@ -173,9 +185,17 @@ export declare const XOPC_TUI_KEYBINDINGS: {
|
|
|
173
185
|
readonly description: "Paste image from clipboard";
|
|
174
186
|
};
|
|
175
187
|
readonly 'app.message.followUp': {
|
|
176
|
-
readonly defaultKeys: "
|
|
188
|
+
readonly defaultKeys: "tab";
|
|
177
189
|
readonly description: "Queue message while busy (or submit when idle)";
|
|
178
190
|
};
|
|
191
|
+
readonly 'app.message.editQueued': {
|
|
192
|
+
readonly defaultKeys: "up";
|
|
193
|
+
readonly description: "Edit the last queued message when the composer is empty";
|
|
194
|
+
};
|
|
195
|
+
readonly 'app.message.deleteQueued': {
|
|
196
|
+
readonly defaultKeys: "ctrl+x";
|
|
197
|
+
readonly description: "Delete the last queued message";
|
|
198
|
+
};
|
|
179
199
|
readonly 'app.models.save': {
|
|
180
200
|
readonly defaultKeys: "ctrl+s";
|
|
181
201
|
readonly description: "Save scoped model selection";
|
|
@@ -39,9 +39,17 @@ const XOPC_TUI_KEYBINDINGS = {
|
|
|
39
39
|
description: "Toggle tool output"
|
|
40
40
|
},
|
|
41
41
|
"app.thinking.toggle": {
|
|
42
|
-
defaultKeys:
|
|
42
|
+
defaultKeys: [],
|
|
43
43
|
description: "Toggle thinking block display"
|
|
44
44
|
},
|
|
45
|
+
"app.transcript.open": {
|
|
46
|
+
defaultKeys: "ctrl+t",
|
|
47
|
+
description: "Open transcript view"
|
|
48
|
+
},
|
|
49
|
+
"app.transcript.raw": {
|
|
50
|
+
defaultKeys: "alt+r",
|
|
51
|
+
description: "Open raw transcript view"
|
|
52
|
+
},
|
|
45
53
|
"app.session.resume": {
|
|
46
54
|
defaultKeys: "ctrl+shift+p",
|
|
47
55
|
description: "Session picker"
|
|
@@ -131,9 +139,17 @@ const XOPC_TUI_KEYBINDINGS = {
|
|
|
131
139
|
description: "Paste image from clipboard"
|
|
132
140
|
},
|
|
133
141
|
"app.message.followUp": {
|
|
134
|
-
defaultKeys: "
|
|
142
|
+
defaultKeys: "tab",
|
|
135
143
|
description: "Queue message while busy (or submit when idle)"
|
|
136
144
|
},
|
|
145
|
+
"app.message.editQueued": {
|
|
146
|
+
defaultKeys: "up",
|
|
147
|
+
description: "Edit the last queued message when the composer is empty"
|
|
148
|
+
},
|
|
149
|
+
"app.message.deleteQueued": {
|
|
150
|
+
defaultKeys: "ctrl+x",
|
|
151
|
+
description: "Delete the last queued message"
|
|
152
|
+
},
|
|
137
153
|
"app.models.save": {
|
|
138
154
|
defaultKeys: "ctrl+s",
|
|
139
155
|
description: "Save scoped model selection"
|
|
@@ -191,9 +207,13 @@ const XOPC_TUI_HOTKEY_ORDER = [
|
|
|
191
207
|
"app.tree.toggleLabelTimestamp",
|
|
192
208
|
"app.tools.expand",
|
|
193
209
|
"app.thinking.toggle",
|
|
210
|
+
"app.transcript.open",
|
|
211
|
+
"app.transcript.raw",
|
|
194
212
|
"app.editor.external",
|
|
195
213
|
"app.clipboard.pasteImage",
|
|
196
214
|
"app.message.followUp",
|
|
215
|
+
"app.message.editQueued",
|
|
216
|
+
"app.message.deleteQueued",
|
|
197
217
|
"app.models.save",
|
|
198
218
|
"app.models.enableAll",
|
|
199
219
|
"app.models.clearAll",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Config } from '../config/schema.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { KnowledgeReadPolicy } from '../knowledge-memory/index.js';
|
|
3
3
|
export interface UserContextSessionAccess {
|
|
4
4
|
enabled: boolean;
|
|
5
5
|
userModel: boolean;
|
|
6
6
|
knowledge: boolean;
|
|
7
7
|
crossSessionHistory: boolean;
|
|
8
|
-
|
|
8
|
+
knowledgePolicy: KnowledgeReadPolicy;
|
|
9
9
|
}
|
|
10
10
|
/** One policy boundary for every shared-context read and write path. */
|
|
11
11
|
export declare function resolveUserContextSessionAccess(config: Config | undefined, conversationId: string | undefined): UserContextSessionAccess;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { getSessionConfig } from "../storage/sqlite/config-repository.js";
|
|
2
|
+
import { init_config, resolveKnowledgeReadPolicy } from "./config.js";
|
|
2
3
|
import { getConversationRouting } from "../storage/sqlite/conversation-repository.js";
|
|
3
4
|
import { init_session_key } from "../routing/session-key.js";
|
|
4
5
|
//#region src/user-context/access-policy.ts
|
|
6
|
+
init_config();
|
|
5
7
|
init_session_key();
|
|
6
8
|
/** One policy boundary for every shared-context read and write path. */
|
|
7
9
|
function resolveUserContextSessionAccess(config, conversationId) {
|
|
@@ -10,7 +12,10 @@ function resolveUserContextSessionAccess(config, conversationId) {
|
|
|
10
12
|
userModel: false,
|
|
11
13
|
knowledge: false,
|
|
12
14
|
crossSessionHistory: false,
|
|
13
|
-
|
|
15
|
+
knowledgePolicy: {
|
|
16
|
+
scopes: [],
|
|
17
|
+
contentSources: []
|
|
18
|
+
}
|
|
14
19
|
};
|
|
15
20
|
const session = getConversationRouting(conversationId);
|
|
16
21
|
const mode = getSessionConfig(conversationId)?.userContextMode ?? "enabled";
|
|
@@ -20,7 +25,10 @@ function resolveUserContextSessionAccess(config, conversationId) {
|
|
|
20
25
|
userModel: enabled && config.userContext.userModel.enabled,
|
|
21
26
|
knowledge: enabled && config.userContext.knowledgeMemory.enabled,
|
|
22
27
|
crossSessionHistory: enabled,
|
|
23
|
-
|
|
28
|
+
knowledgePolicy: enabled && config.userContext.knowledgeMemory.enabled ? resolveKnowledgeReadPolicy(config.userContext.knowledgeMemory) : {
|
|
29
|
+
scopes: [],
|
|
30
|
+
contentSources: []
|
|
31
|
+
}
|
|
24
32
|
};
|
|
25
33
|
}
|
|
26
34
|
//#endregion
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import type { KnowledgeReadPolicy } from '../knowledge-memory/domain.js';
|
|
2
3
|
export declare const DEFAULT_CONTEXT_COMPACTION_POLICY: {
|
|
3
4
|
enabled: boolean;
|
|
4
5
|
triggerThreshold: number;
|
|
@@ -75,18 +76,25 @@ export declare const UserModelConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
75
76
|
staleRetentionDays: z.ZodDefault<z.ZodNumber>;
|
|
76
77
|
}, z.core.$strict>>;
|
|
77
78
|
}, z.core.$strict>>;
|
|
78
|
-
export declare
|
|
79
|
+
export declare function normalizeKnowledgeMemoryConfigInput(input: unknown): unknown;
|
|
80
|
+
export declare const KnowledgeMemoryConfigSchema: z.ZodDefault<z.ZodPreprocess<z.ZodObject<{
|
|
79
81
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
80
82
|
writePolicy: z.ZodDefault<z.ZodEnum<{
|
|
81
83
|
allow: "allow";
|
|
82
84
|
confirm: "confirm";
|
|
83
85
|
deny: "deny";
|
|
84
86
|
}>>;
|
|
85
|
-
|
|
87
|
+
readScopes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
86
88
|
project: "project";
|
|
87
89
|
session: "session";
|
|
90
|
+
agent: "agent";
|
|
88
91
|
workspace: "workspace";
|
|
92
|
+
global: "global";
|
|
93
|
+
}>>>;
|
|
94
|
+
contentSources: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
95
|
+
memory: "memory";
|
|
89
96
|
connector: "connector";
|
|
97
|
+
local_import: "local_import";
|
|
90
98
|
}>>>;
|
|
91
99
|
searchStrategy: z.ZodDefault<z.ZodEnum<{
|
|
92
100
|
"local-first": "local-first";
|
|
@@ -95,6 +103,7 @@ export declare const KnowledgeMemoryConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
95
103
|
"local-only": "local-only";
|
|
96
104
|
"external-only": "external-only";
|
|
97
105
|
}>>;
|
|
106
|
+
searchTimeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
98
107
|
writeStrategy: z.ZodDefault<z.ZodEnum<{
|
|
99
108
|
"local-first": "local-first";
|
|
100
109
|
"external-first": "external-first";
|
|
@@ -105,7 +114,7 @@ export declare const KnowledgeMemoryConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
105
114
|
allowExternalWrites: z.ZodDefault<z.ZodBoolean>;
|
|
106
115
|
allowedProviderIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
107
116
|
autoWriteKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
108
|
-
}, z.core.$strict
|
|
117
|
+
}, z.core.$strict>>>;
|
|
109
118
|
export declare const ContextPlanningConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
110
119
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
111
120
|
maxAssertions: z.ZodDefault<z.ZodNumber>;
|
|
@@ -180,18 +189,24 @@ export declare const UserContextConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
180
189
|
staleRetentionDays: z.ZodDefault<z.ZodNumber>;
|
|
181
190
|
}, z.core.$strict>>;
|
|
182
191
|
}, z.core.$strict>>;
|
|
183
|
-
knowledgeMemory: z.ZodDefault<z.ZodObject<{
|
|
192
|
+
knowledgeMemory: z.ZodDefault<z.ZodPreprocess<z.ZodObject<{
|
|
184
193
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
185
194
|
writePolicy: z.ZodDefault<z.ZodEnum<{
|
|
186
195
|
allow: "allow";
|
|
187
196
|
confirm: "confirm";
|
|
188
197
|
deny: "deny";
|
|
189
198
|
}>>;
|
|
190
|
-
|
|
199
|
+
readScopes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
191
200
|
project: "project";
|
|
192
201
|
session: "session";
|
|
202
|
+
agent: "agent";
|
|
193
203
|
workspace: "workspace";
|
|
204
|
+
global: "global";
|
|
205
|
+
}>>>;
|
|
206
|
+
contentSources: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
207
|
+
memory: "memory";
|
|
194
208
|
connector: "connector";
|
|
209
|
+
local_import: "local_import";
|
|
195
210
|
}>>>;
|
|
196
211
|
searchStrategy: z.ZodDefault<z.ZodEnum<{
|
|
197
212
|
"local-first": "local-first";
|
|
@@ -200,6 +215,7 @@ export declare const UserContextConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
200
215
|
"local-only": "local-only";
|
|
201
216
|
"external-only": "external-only";
|
|
202
217
|
}>>;
|
|
218
|
+
searchTimeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
203
219
|
writeStrategy: z.ZodDefault<z.ZodEnum<{
|
|
204
220
|
"local-first": "local-first";
|
|
205
221
|
"external-first": "external-first";
|
|
@@ -210,7 +226,7 @@ export declare const UserContextConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
210
226
|
allowExternalWrites: z.ZodDefault<z.ZodBoolean>;
|
|
211
227
|
allowedProviderIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
212
228
|
autoWriteKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
213
|
-
}, z.core.$strict
|
|
229
|
+
}, z.core.$strict>>>;
|
|
214
230
|
contextPlanning: z.ZodDefault<z.ZodObject<{
|
|
215
231
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
216
232
|
maxAssertions: z.ZodDefault<z.ZodNumber>;
|
|
@@ -240,3 +256,4 @@ export type UserContextConfig = z.infer<typeof UserContextConfigSchema>;
|
|
|
240
256
|
export type UserModelConfig = z.infer<typeof UserModelConfigSchema>;
|
|
241
257
|
export type KnowledgeMemoryConfig = z.infer<typeof KnowledgeMemoryConfigSchema>;
|
|
242
258
|
export type ContextPlanningConfig = z.infer<typeof ContextPlanningConfigSchema>;
|
|
259
|
+
export declare function resolveKnowledgeReadPolicy(config: KnowledgeMemoryConfig): KnowledgeReadPolicy;
|
|
@@ -10,6 +10,32 @@ function isValidTimeZone(value) {
|
|
|
10
10
|
return false;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
+
function normalizeKnowledgeMemoryConfigInput(input) {
|
|
14
|
+
if (!input || typeof input !== "object" || Array.isArray(input)) return input;
|
|
15
|
+
const memory = input;
|
|
16
|
+
if (!Array.isArray(memory.sources)) return input;
|
|
17
|
+
const oldSources = memory.sources.filter((source) => typeof source === "string");
|
|
18
|
+
const visibilityScopes = new Set([
|
|
19
|
+
"session",
|
|
20
|
+
"workspace",
|
|
21
|
+
"project"
|
|
22
|
+
]);
|
|
23
|
+
const normalized = { ...memory };
|
|
24
|
+
if (!Array.isArray(normalized.readScopes)) normalized.readScopes = oldSources.filter((source) => visibilityScopes.has(source));
|
|
25
|
+
if (!Array.isArray(normalized.contentSources)) normalized.contentSources = [
|
|
26
|
+
...oldSources.some((source) => visibilityScopes.has(source)) ? ["memory"] : [],
|
|
27
|
+
...oldSources.includes("workspace") ? ["local_import"] : [],
|
|
28
|
+
...oldSources.includes("connector") ? ["connector"] : []
|
|
29
|
+
];
|
|
30
|
+
delete normalized.sources;
|
|
31
|
+
return normalized;
|
|
32
|
+
}
|
|
33
|
+
function resolveKnowledgeReadPolicy(config) {
|
|
34
|
+
return {
|
|
35
|
+
scopes: config.readScopes,
|
|
36
|
+
contentSources: config.contentSources
|
|
37
|
+
};
|
|
38
|
+
}
|
|
13
39
|
var DEFAULT_CONTEXT_COMPACTION_POLICY, ContextCompactionPolicySchema, WritePolicySchema, MaintenanceTimeSchema, UserModelConfigSchema, KnowledgeMemoryConfigSchema, ContextPlanningConfigSchema, UserContextConfigSchema;
|
|
14
40
|
var init_config = __esmMin((() => {
|
|
15
41
|
init_response_language();
|
|
@@ -117,15 +143,27 @@ var init_config = __esmMin((() => {
|
|
|
117
143
|
staleRetentionDays: 30
|
|
118
144
|
}
|
|
119
145
|
});
|
|
120
|
-
KnowledgeMemoryConfigSchema = z.object({
|
|
146
|
+
KnowledgeMemoryConfigSchema = z.preprocess(normalizeKnowledgeMemoryConfigInput, z.object({
|
|
121
147
|
enabled: z.boolean().default(true),
|
|
122
148
|
writePolicy: WritePolicySchema.default("confirm"),
|
|
123
|
-
|
|
124
|
-
"
|
|
149
|
+
readScopes: z.array(z.enum([
|
|
150
|
+
"global",
|
|
151
|
+
"agent",
|
|
125
152
|
"workspace",
|
|
126
153
|
"project",
|
|
154
|
+
"session"
|
|
155
|
+
])).default([
|
|
156
|
+
"global",
|
|
157
|
+
"agent",
|
|
158
|
+
"workspace",
|
|
159
|
+
"project",
|
|
160
|
+
"session"
|
|
161
|
+
]),
|
|
162
|
+
contentSources: z.array(z.enum([
|
|
163
|
+
"memory",
|
|
164
|
+
"local_import",
|
|
127
165
|
"connector"
|
|
128
|
-
])).default(["
|
|
166
|
+
])).default(["memory", "local_import"]),
|
|
129
167
|
searchStrategy: z.enum([
|
|
130
168
|
"local-first",
|
|
131
169
|
"external-first",
|
|
@@ -133,6 +171,7 @@ var init_config = __esmMin((() => {
|
|
|
133
171
|
"local-only",
|
|
134
172
|
"external-only"
|
|
135
173
|
]).default("fanout"),
|
|
174
|
+
searchTimeoutMs: z.number().int().min(100).max(3e4).default(2e3),
|
|
136
175
|
writeStrategy: z.enum([
|
|
137
176
|
"local-first",
|
|
138
177
|
"external-first",
|
|
@@ -143,11 +182,19 @@ var init_config = __esmMin((() => {
|
|
|
143
182
|
allowExternalWrites: z.boolean().default(false),
|
|
144
183
|
allowedProviderIds: z.array(z.string().min(1)).optional(),
|
|
145
184
|
autoWriteKinds: z.array(z.string().min(1)).optional()
|
|
146
|
-
}).strict().default({
|
|
185
|
+
}).strict()).default({
|
|
147
186
|
enabled: true,
|
|
148
187
|
writePolicy: "confirm",
|
|
149
|
-
|
|
188
|
+
readScopes: [
|
|
189
|
+
"global",
|
|
190
|
+
"agent",
|
|
191
|
+
"workspace",
|
|
192
|
+
"project",
|
|
193
|
+
"session"
|
|
194
|
+
],
|
|
195
|
+
contentSources: ["memory", "local_import"],
|
|
150
196
|
searchStrategy: "fanout",
|
|
197
|
+
searchTimeoutMs: 2e3,
|
|
151
198
|
writeStrategy: "local-first",
|
|
152
199
|
allowExternalWrites: false
|
|
153
200
|
});
|
|
@@ -180,4 +227,4 @@ var init_config = __esmMin((() => {
|
|
|
180
227
|
}));
|
|
181
228
|
//#endregion
|
|
182
229
|
init_config();
|
|
183
|
-
export { ContextCompactionPolicySchema, ContextPlanningConfigSchema, DEFAULT_CONTEXT_COMPACTION_POLICY, KnowledgeMemoryConfigSchema, UserContextConfigSchema, UserModelConfigSchema, init_config };
|
|
230
|
+
export { ContextCompactionPolicySchema, ContextPlanningConfigSchema, DEFAULT_CONTEXT_COMPACTION_POLICY, KnowledgeMemoryConfigSchema, UserContextConfigSchema, UserModelConfigSchema, init_config, normalizeKnowledgeMemoryConfigInput, resolveKnowledgeReadPolicy };
|
|
@@ -46,6 +46,12 @@ function connect(url, token, signal, onEvent, onFailure) {
|
|
|
46
46
|
socket,
|
|
47
47
|
close,
|
|
48
48
|
fail,
|
|
49
|
+
pause: () => {
|
|
50
|
+
if (!ended && socket.readyState === WebSocket.OPEN) socket.pause();
|
|
51
|
+
},
|
|
52
|
+
resume: () => {
|
|
53
|
+
if (!ended && socket.readyState === WebSocket.OPEN) socket.resume();
|
|
54
|
+
},
|
|
49
55
|
send: (value) => {
|
|
50
56
|
if (ended || socket.readyState !== WebSocket.OPEN) throw new Error("Platform voice is not connected");
|
|
51
57
|
if (socket.bufferedAmount > MAX_BUFFERED_BYTES) throw new Error("Platform voice backpressure limit exceeded");
|
|
@@ -180,6 +186,9 @@ async function openPlatformTts(request) {
|
|
|
180
186
|
start(value) {
|
|
181
187
|
controller = value;
|
|
182
188
|
},
|
|
189
|
+
pull(value) {
|
|
190
|
+
if ((value.desiredSize ?? 0) > 0) connection.resume();
|
|
191
|
+
},
|
|
183
192
|
cancel() {
|
|
184
193
|
ended = true;
|
|
185
194
|
clearTimeout(timer);
|
|
@@ -206,8 +215,9 @@ async function openPlatformTts(request) {
|
|
|
206
215
|
} else if (event.type === "response.audio.delta") {
|
|
207
216
|
if (!ready || typeof event.delta !== "string" || !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(event.delta)) throw new Error("Invalid platform audio");
|
|
208
217
|
const bytes = Buffer.from(event.delta, "base64");
|
|
209
|
-
if (bytes.length % 2 ||
|
|
218
|
+
if (bytes.length % 2 || bytes.length > MAX_BUFFERED_BYTES) throw new Error("Invalid platform audio");
|
|
210
219
|
controller.enqueue(bytes);
|
|
220
|
+
if ((controller.desiredSize ?? 0) <= 0) connection.pause();
|
|
211
221
|
} else if (event.type === "session.finished") {
|
|
212
222
|
ended = true;
|
|
213
223
|
clearTimeout(timer);
|
|
@@ -11,10 +11,12 @@ const log = createLogger("Voice:Omni");
|
|
|
11
11
|
const MAX_QUEUED_AUDIO_BYTES = 24e3 * 2 * 60;
|
|
12
12
|
const MAX_PENDING_INPUT_BYTES = 64 * 1024;
|
|
13
13
|
const UPLOAD_TIMEOUT_MS = 1e4;
|
|
14
|
+
const RESPONSE_START_TIMEOUT_MS = 3e4;
|
|
14
15
|
const FAILURE_MESSAGES = {
|
|
15
16
|
OMNI_UPLOAD_TIMEOUT: "The connection to the voice service stopped uploading audio. Check the network to your configured endpoint and reconnect.",
|
|
16
17
|
OMNI_INPUT_RESET_TIMEOUT: "The voice service did not acknowledge clearing microphone input. Reconnect to continue.",
|
|
17
18
|
OMNI_START_TIMEOUT: "The voice service did not become ready in time.",
|
|
19
|
+
OMNI_RESPONSE_START_TIMEOUT: "Your speech was transcribed, but the voice model did not start a reply within 30 seconds. Reconnect or select another realtime voice model.",
|
|
18
20
|
OMNI_CONNECTION_FAILED: "Could not connect to the voice service. Check network and service availability.",
|
|
19
21
|
OMNI_CONNECTION_REJECTED: "The voice service rejected the connection. Check account access, quota and route configuration.",
|
|
20
22
|
OMNI_CONNECTION_CLOSED: "The voice service closed the connection.",
|
|
@@ -50,6 +52,7 @@ function createOmniVoiceEngine(options) {
|
|
|
50
52
|
let uploadingBytes = 0;
|
|
51
53
|
let uploadTimer;
|
|
52
54
|
let turnSettled = false;
|
|
55
|
+
let responseStartTimer;
|
|
53
56
|
const speaking = /* @__PURE__ */ new Set();
|
|
54
57
|
const turn = new TurnCoordinator(options.silenceDurationMs, (_text, decision, turnId) => {
|
|
55
58
|
if (closed || failed || muted || inputBlocked) return;
|
|
@@ -63,6 +66,10 @@ function createOmniVoiceEngine(options) {
|
|
|
63
66
|
options.send("turn.committed", { turnId });
|
|
64
67
|
turnSettled = true;
|
|
65
68
|
if (active) publish(active);
|
|
69
|
+
else {
|
|
70
|
+
clearTimeout(responseStartTimer);
|
|
71
|
+
responseStartTimer = setTimeout(() => fail("OMNI_RESPONSE_START_TIMEOUT"), RESPONSE_START_TIMEOUT_MS);
|
|
72
|
+
}
|
|
66
73
|
});
|
|
67
74
|
function publish(response) {
|
|
68
75
|
if (response.published || active !== response) return;
|
|
@@ -207,6 +214,7 @@ function createOmniVoiceEngine(options) {
|
|
|
207
214
|
function fail(code, details = {}) {
|
|
208
215
|
if (closed || failed) return;
|
|
209
216
|
failed = true;
|
|
217
|
+
clearTimeout(responseStartTimer);
|
|
210
218
|
turn.reset();
|
|
211
219
|
log.warn({
|
|
212
220
|
sessionId: options.callId,
|
|
@@ -230,6 +238,7 @@ function createOmniVoiceEngine(options) {
|
|
|
230
238
|
options.onClose("omni_error", true);
|
|
231
239
|
}
|
|
232
240
|
function discardInput() {
|
|
241
|
+
clearTimeout(responseStartTimer);
|
|
233
242
|
turn.reset();
|
|
234
243
|
speaking.clear();
|
|
235
244
|
turnSettled = false;
|
|
@@ -327,6 +336,7 @@ function createOmniVoiceEngine(options) {
|
|
|
327
336
|
if (recorded.has(String(event.item_id)) || pendingInputs.has(String(event.item_id))) return;
|
|
328
337
|
inputBlocked = false;
|
|
329
338
|
pendingInputs.add(String(event.item_id));
|
|
339
|
+
clearTimeout(responseStartTimer);
|
|
330
340
|
turnSettled = false;
|
|
331
341
|
speaking.add(String(event.item_id));
|
|
332
342
|
turn.start(String(event.item_id));
|
|
@@ -366,7 +376,8 @@ function createOmniVoiceEngine(options) {
|
|
|
366
376
|
recoverable: true
|
|
367
377
|
});
|
|
368
378
|
} else if (event.type === "response.created") {
|
|
369
|
-
|
|
379
|
+
clearTimeout(responseStartTimer);
|
|
380
|
+
if (muted || inputBlocked) {
|
|
370
381
|
cancellationPending = true;
|
|
371
382
|
send("response.cancel");
|
|
372
383
|
return;
|
|
@@ -513,6 +524,7 @@ function createOmniVoiceEngine(options) {
|
|
|
513
524
|
clearTimeout(timer);
|
|
514
525
|
clearTimeout(clearTimer);
|
|
515
526
|
clearTimeout(uploadTimer);
|
|
527
|
+
clearTimeout(responseStartTimer);
|
|
516
528
|
turn.reset();
|
|
517
529
|
speaking.clear();
|
|
518
530
|
inputQueue = [];
|
|
@@ -397,7 +397,6 @@ var VoiceRealtimeRuntime = class {
|
|
|
397
397
|
unsubscribeSession?.();
|
|
398
398
|
clearTimeout(startTimer);
|
|
399
399
|
clearInterval(lifecycleTimer);
|
|
400
|
-
abortController.abort(reason);
|
|
401
400
|
try {
|
|
402
401
|
await engine?.close();
|
|
403
402
|
} catch (err) {
|
|
@@ -405,6 +404,8 @@ var VoiceRealtimeRuntime = class {
|
|
|
405
404
|
err,
|
|
406
405
|
sessionId: claim?.sessionId
|
|
407
406
|
}, "Voice cleanup failed");
|
|
407
|
+
} finally {
|
|
408
|
+
abortController.abort(reason);
|
|
408
409
|
}
|
|
409
410
|
if (notify) send("session.closed", { reason });
|
|
410
411
|
detachPrincipal();
|
|
@@ -2,8 +2,8 @@ import { createLogger } from "../../utils/logger/index.js";
|
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
3
|
import { join } from "path";
|
|
4
4
|
import { unlink, writeFile } from "fs/promises";
|
|
5
|
-
import { spawn } from "child_process";
|
|
6
5
|
import { tmpdir } from "os";
|
|
6
|
+
import { spawn } from "child_process";
|
|
7
7
|
//#region src/voice/tts/audio.ts
|
|
8
8
|
/**
|
|
9
9
|
* Audio Compression Utilities
|
|
@@ -20,6 +20,7 @@ function indexProvider(provider) {
|
|
|
20
20
|
*/
|
|
21
21
|
function registerSpeechProvider(provider) {
|
|
22
22
|
const keys = indexProvider(provider);
|
|
23
|
+
const previous = new Map(keys.map((key) => [key, registry.get(key)]));
|
|
23
24
|
const conflicts = [];
|
|
24
25
|
for (const key of keys) if (registry.has(key)) conflicts.push(key);
|
|
25
26
|
if (conflicts.length > 0) log.warn({
|
|
@@ -28,7 +29,11 @@ function registerSpeechProvider(provider) {
|
|
|
28
29
|
}, `Speech provider "${provider.id}" overrides existing registration(s): ${conflicts.join(", ")}`);
|
|
29
30
|
for (const key of keys) registry.set(key, provider);
|
|
30
31
|
return () => {
|
|
31
|
-
for (const key of keys) if (registry.get(key) === provider)
|
|
32
|
+
for (const key of keys) if (registry.get(key) === provider) {
|
|
33
|
+
const prior = previous.get(key);
|
|
34
|
+
if (prior) registry.set(key, prior);
|
|
35
|
+
else registry.delete(key);
|
|
36
|
+
}
|
|
32
37
|
};
|
|
33
38
|
}
|
|
34
39
|
/**
|
|
@@ -121,7 +121,7 @@ function validateManifest(value, errors) {
|
|
|
121
121
|
field: "manifest.resources"
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
|
-
if (value.connectors !== void 0 && (!Array.isArray(value.connectors) || value.connectors.some((connector) => !isRecord(connector) || typeof connector.connectorId !== "string" || connector.scope !== void 0 && ![
|
|
124
|
+
if (value.connectors !== void 0 && (!Array.isArray(value.connectors) || value.connectors.some((connector) => !isRecord(connector) || typeof connector.connectorId !== "string" || connector.accountIds !== void 0 && (!Array.isArray(connector.accountIds) || connector.accountIds.length === 0 || connector.accountIds.some((id) => typeof id !== "string" || !id.trim()) || new Set(connector.accountIds).size !== connector.accountIds.length) || connector.scope !== void 0 && ![
|
|
125
125
|
"read",
|
|
126
126
|
"write",
|
|
127
127
|
"admin"
|
|
@@ -195,6 +195,7 @@ var WorkflowRunService = class {
|
|
|
195
195
|
agentId: params.agentId,
|
|
196
196
|
definitionId: params.definitionId,
|
|
197
197
|
definitionTitle: definition.title,
|
|
198
|
+
connectorAccounts: connectorPreflight.accounts,
|
|
198
199
|
triggerSource: params.source.kind,
|
|
199
200
|
goal,
|
|
200
201
|
parentConversationId: params.parentConversationId,
|
|
@@ -386,8 +387,21 @@ var WorkflowRunService = class {
|
|
|
386
387
|
httpStatus: 400
|
|
387
388
|
};
|
|
388
389
|
}
|
|
390
|
+
const replayConnectors = preflightWorkflowConnectors({
|
|
391
|
+
definition,
|
|
392
|
+
config: this.options.service.currentConfig,
|
|
393
|
+
agentId: params.agentId
|
|
394
|
+
});
|
|
395
|
+
if (!replayConnectors.ok) return {
|
|
396
|
+
ok: false,
|
|
397
|
+
code: "connector_preflight_failed",
|
|
398
|
+
message: replayConnectors.issues.map((issue) => issue.message).join(" "),
|
|
399
|
+
httpStatus: 409,
|
|
400
|
+
details: replayConnectors
|
|
401
|
+
};
|
|
389
402
|
const { conversationId } = await this.options.sessionBridge.prepareRunSession({
|
|
390
403
|
runId: replayRunId,
|
|
404
|
+
connectorAccounts: replayConnectors.accounts,
|
|
391
405
|
agentId: params.agentId,
|
|
392
406
|
definitionId: existing.run.definitionId,
|
|
393
407
|
definitionTitle: `${definition.title} replay`,
|
|
@@ -11,6 +11,7 @@ export interface PrepareWorkflowRunSessionParams {
|
|
|
11
11
|
parentConversationId?: string;
|
|
12
12
|
projectId?: string;
|
|
13
13
|
triggerSource?: string;
|
|
14
|
+
connectorAccounts?: Record<string, string[]>;
|
|
14
15
|
}
|
|
15
16
|
export interface PrepareWorkflowRunSessionResult {
|
|
16
17
|
conversationId: string;
|
|
@@ -48,6 +48,7 @@ var WorkflowSessionBridge = class {
|
|
|
48
48
|
workflowRunId: params.runId,
|
|
49
49
|
workflowDefinitionId: params.definitionId,
|
|
50
50
|
workflowGoal: params.goal,
|
|
51
|
+
connectorAccounts: params.connectorAccounts ?? {},
|
|
51
52
|
deferVisibilityUntilOutput: true,
|
|
52
53
|
...params.triggerSource ? { triggerSource: params.triggerSource } : {},
|
|
53
54
|
...params.parentConversationId ? { parentConversationId: params.parentConversationId } : {}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xopcai/xopc",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.307",
|
|
4
4
|
"description": "Local-first personal AI assistant with reviewable user understanding, durable tasks, workflows, automations, and local or cloud models.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"@sinclair/typebox": "^0.34.49",
|
|
79
79
|
"@vscode/ripgrep": "^1.18.0",
|
|
80
80
|
"abort-controller": "^3.0.0",
|
|
81
|
-
"adm-zip": "^0.6.
|
|
81
|
+
"adm-zip": "^0.6.1",
|
|
82
82
|
"ajv": "^8.20.0",
|
|
83
83
|
"chalk": "^5.6.2",
|
|
84
84
|
"chokidar": "^5.0.0",
|
|
@@ -166,8 +166,8 @@
|
|
|
166
166
|
"vitepress": "^1.6.4",
|
|
167
167
|
"vitest": "4.1.5",
|
|
168
168
|
"vue": "^3.5.35",
|
|
169
|
-
"@xopcai/computer-control-contract": "0.1.0",
|
|
170
169
|
"@xopcai/browser-control-contract": "0.1.0",
|
|
170
|
+
"@xopcai/computer-control-contract": "0.1.0",
|
|
171
171
|
"@xopcai/endpoint-tools-client": "0.0.0",
|
|
172
172
|
"@xopcai/endpoint-tools-protocol": "0.0.0",
|
|
173
173
|
"@xopcai/gateway-contract": "0.0.0",
|
|
@@ -206,6 +206,8 @@
|
|
|
206
206
|
"dev:gateway": "sh -c 'mkdir -p \"$HOME/.xopc-dev\" && XOPC_STATE_DIR=\"$HOME/.xopc-dev\" XOPC_CONFIG_PATH=\"$HOME/.xopc-dev/xopc.json\" XOPC_CONFIG=\"$HOME/.xopc-dev/xopc.json\" XOPC_LOG_DIR=\"$HOME/.xopc-dev/logs\" XOPC_LOG_LEVEL=info tsx src/cli/bin.ts gateway \"$@\"' --",
|
|
207
207
|
"start": "node dist/src/cli/bin.js",
|
|
208
208
|
"test": "vitest run src extensions/telegram/src extensions/feishu/src extensions/weixin/src",
|
|
209
|
+
"test:web:onboarding-visual": "node scripts/test-onboarding-visual.mjs",
|
|
210
|
+
"test:web:onboarding-visual:update": "node scripts/test-onboarding-visual.mjs --update",
|
|
209
211
|
"test:quick-understanding": "XOPC_LOG_LEVEL=fatal vitest run src/work-discovery/__tests__/evaluation.test.ts src/user-context/sources/__tests__/activity-clustering.test.ts src/knowledge/__tests__/quick-understanding.e2e.test.ts src/connectors/__tests__/content-enrichment.test.ts src/connectors/__tests__/connected-source-ingestion.test.ts",
|
|
210
212
|
"test:skills": "vitest run src/agent/skills/__tests__",
|
|
211
213
|
"test:skills:regression": "./scripts/test-skills.sh",
|