@xopcai/xopc 0.0.187 → 0.0.189
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 +1 -1
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/demo-memory/src/index.js +1 -0
- package/dist/extensions/feishu/src/streaming/streaming-adapter.js +1 -3
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +0 -2
- package/dist/extensions/telegram/src/draft-stream.d.ts +0 -4
- package/dist/extensions/telegram/src/draft-stream.js +1 -53
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-WlR2zEvA.js → activity-store-DTFKTPs8.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-RedDszrG.js → agent-avatar-dicebear-DqO25Qe5.js} +1 -1
- package/dist/gateway/static/root/assets/agents-BvdqdER9.js +2 -0
- package/dist/gateway/static/root/assets/{api-tVOllncq.js → api-DWeXfwVU.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-C9hKBzaF.js → app-management-settings-panel-BRpV8PXG.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-5cQvq7hd.js → appearance-settings-3ntKM9nQ.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-nKLsfy6C.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-Ct-shK4n.js → archive-plugin-Df7Ycj_7.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-CpPj3m-q.js → attachment-load-UHgfZYtj.js} +1 -1
- package/dist/gateway/static/root/assets/automations-page-Dh5bdZiN.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-BpSXZBle.js → binary-plugins-BJah99wE.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-B8hR2tXc.js → block-editor-DNlY5KqF.js} +46 -46
- package/dist/gateway/static/root/assets/browser-settings-page-CRJ_nAuh.js +8 -0
- package/dist/gateway/static/root/assets/{browser-workflow-inputs-D_LAXUrh.js → browser-workflow-inputs-vyUfdzAd.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-workflows-page-CPAs7-6s.js → browser-workflows-page-C1cKZjx-.js} +2 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-DeQR5BZt.js +7 -0
- package/dist/gateway/static/root/assets/{capability-presets-api-CKklVY2p.js → capability-presets-api-D7tkhDMv.js} +1 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-D7uK3q1p.js +1 -0
- package/dist/gateway/static/root/assets/{channel-recipient-api-WWN-nbFL.js → channel-recipient-api-BGG2kpJB.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-Bw6Dniyq.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-BrUTz4uU.js +1 -0
- package/dist/gateway/static/root/assets/{connector-logo-CdNkVFdB.js → connector-logo-8YU53RUT.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-k9tMiOL5.js +2 -0
- package/dist/gateway/static/root/assets/{desktop-pet-Bm_IEAf3.js → desktop-pet-BUuBEJuP.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-C0Ve04-G.js → desktop-pet-settings-BGfVIJM3.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-B2cvhvAI.js → directory-picker-path-field-DrQFfHH_.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-DNashgGu.js → extension-debug-page-CEnIFOX-.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-Bvo-5htX.js → extension-page-CCqHbexs.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-BBESdISV.js → extension-settings-page-DEZw_7zN.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-ClQvokMo.js → gateway-config-api-CgUE2Ii1.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-Dg8qCiIp.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-CntXJF6W.js → gateway-startup-retry-DxhKNiCF.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-CWKcZuvc.js → heartbeat-settings-27tRzDEo.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-VA511kMr.js +3 -0
- package/dist/gateway/static/root/assets/{image-generation-api-DjSAQwGy.js → image-generation-api-DCFdc-HD.js} +1 -1
- package/dist/gateway/static/root/assets/index-BvR-i-m6.js +216 -0
- package/dist/gateway/static/root/assets/index-zybP34zk.css +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-ahKHpjoW.js → keyboard-shortcuts-settings-Bf2VLtXW.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-CaJq4-wV.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-B6GKdgza.js → local-apps-page-Ca1RuI13.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-Bff30u5V.js → locale-store-DUW5YE3R.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-BLTCg69e.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-B3Eop1zn.js +1 -0
- package/dist/gateway/static/root/assets/{markdown-split-BeNMJm_i.js → markdown-split-BGOYjgnM.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-Bdzrj_-6.js → media-plugins-CT0txyM4.js} +1 -1
- package/dist/gateway/static/root/assets/messages-CMjnbdbn.js +3 -0
- package/dist/gateway/static/root/assets/{notes-page-MYIi-9S9.js → notes-page-DfKgAe78.js} +1 -1
- package/dist/gateway/static/root/assets/notes-workbench-Bp1w9UM1.js +4 -0
- package/dist/gateway/static/root/assets/{page-tabs-3t88bbGx.js → page-tabs-DNrbCgmC.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-Cf_BWbeE.js → preview-open-alternatives-BTqViDOR.js} +1 -1
- package/dist/gateway/static/root/assets/product-delivery-tRr-7IxY.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-CKq73c98.js → product-open-page-C_2L4_Iu.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-CZmbPDQN.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-D5pzqfm5.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-CC-XhVGI.js +1 -0
- package/dist/gateway/static/root/assets/{schema-form-NqOm-OG1.js → schema-form-BFLfkDGG.js} +1 -1
- package/dist/gateway/static/root/assets/{schemas-C6onAggk.js → schemas-zIBW3wiV.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-B2eTLVDV.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-CRuZ_bl0.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-DYAS8p8z.js → settings-form-section-C4GXGeA4.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-loading-skeleton-DZFhxihA.js → settings-loading-skeleton-C9a-EbTZ.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-DI9qDH5x.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-layout-DfFfkdED.js → settings-page-layout-D-LWQdI5.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-CJwmPvgs.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-CYtrQaZN.js → share-preview-page-BKSMG9r5.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-YzSDS4G_.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-CwOo8zZk.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-xd1cgSGN.js +2 -0
- package/dist/gateway/static/root/assets/{skills-page.utils-BBXirAjc.js → skills-page.utils-zsz2HIlZ.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-DLf5YvFl.js → system-settings-panel-IWNDBI1O.js} +1 -1
- package/dist/gateway/static/root/assets/{task-detail-page-DFGkuYfl.js → task-detail-page-CgtK02kP.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-y7e_tvYi.js → theme-store-BkJe7UDo.js} +1 -1
- package/dist/gateway/static/root/assets/time-picker-CstQ___Y.js +1 -0
- package/dist/gateway/static/root/assets/{typed-models-lib-DR12j_dr.js → typed-models-lib-C07LGthO.js} +1 -1
- package/dist/gateway/static/root/assets/{use-save-bar-registration-BsvcJgZl.js → use-save-bar-registration-CQYE0l6z.js} +1 -1
- package/dist/gateway/static/root/assets/user-context-page-BnQAWS_B.js +1 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-DKADXFWD.js → voice-api-key-field-Boue1D46.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-BC1nExf8.js → work-discovery-overlay-bbmvCmc8.js} +1 -1
- package/dist/gateway/static/root/assets/work-discovery-page-CAszL1y8.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-C8X5W-8k.js → workflow-run-setup-panel-DlHv-GZC.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-DxGzo3-x.js +11 -0
- package/dist/gateway/static/root/index.html +9 -9
- package/dist/package.js +1 -1
- package/dist/packages/endpoint-tools-protocol/src/index.js +184 -0
- package/dist/packages/gateway-contract/src/tool-activity.js +223 -0
- package/dist/packages/realtime-client/src/index.js +199 -0
- package/dist/packages/realtime-protocol/src/index.js +83 -0
- package/dist/src/agent/agent-manager.d.ts +1 -0
- package/dist/src/agent/agent-manager.js +3 -8
- package/dist/src/agent/background-review/prompts.d.ts +1 -1
- package/dist/src/agent/background-review/prompts.js +3 -1
- package/dist/src/agent/background-review/run-background-review.d.ts +2 -0
- package/dist/src/agent/background-review/run-background-review.js +5 -2
- package/dist/src/agent/client-error-format.d.ts +1 -1
- package/dist/src/agent/client-error-format.js +1 -1
- package/dist/src/agent/code-intelligence/binary.js +1 -1
- package/dist/src/agent/embedded/run-for-session.d.ts +0 -2
- package/dist/src/agent/embedded/run-for-session.js +99 -112
- package/dist/src/agent/external-tools/composio-provider.d.ts +29 -0
- package/dist/src/agent/external-tools/composio-provider.js +307 -0
- package/dist/src/agent/external-tools/endpoint-provider.d.ts +17 -0
- package/dist/src/agent/external-tools/endpoint-provider.js +93 -0
- package/dist/src/agent/external-tools/extension-provider.d.ts +20 -0
- package/dist/src/agent/external-tools/extension-provider.js +68 -0
- package/dist/src/agent/external-tools/gateway-tools.d.ts +8 -0
- package/dist/src/agent/external-tools/gateway-tools.js +89 -0
- package/dist/src/agent/external-tools/index.d.ts +23 -0
- package/dist/src/agent/external-tools/index.js +46 -0
- package/dist/src/agent/external-tools/mcp-provider.d.ts +29 -0
- package/dist/src/agent/external-tools/mcp-provider.js +118 -0
- package/dist/src/agent/external-tools/memory-provider.d.ts +21 -0
- package/dist/src/agent/external-tools/memory-provider.js +56 -0
- package/dist/src/agent/external-tools/refs.d.ts +5 -0
- package/dist/src/agent/external-tools/refs.js +18 -0
- package/dist/src/agent/external-tools/service.d.ts +26 -0
- package/dist/src/agent/external-tools/service.js +117 -0
- package/dist/src/agent/external-tools/types.d.ts +35 -0
- package/dist/src/agent/external-tools/types.js +10 -0
- package/dist/src/agent/inbound/inbound-loop.d.ts +0 -2
- package/dist/src/agent/inbound/inbound-loop.js +4 -3
- package/dist/src/agent/inbound/turn-dispatcher.d.ts +9 -8
- package/dist/src/agent/inbound/turn-dispatcher.js +13 -11
- package/dist/src/agent/mcp/{bundle-mcp-materialize.d.ts → bundle-mcp-gateway.d.ts} +1 -19
- package/dist/src/agent/mcp/bundle-mcp-gateway.js +60 -0
- package/dist/src/agent/mcp/bundle-mcp-names.d.ts +0 -8
- package/dist/src/agent/mcp/bundle-mcp-names.js +2 -29
- package/dist/src/agent/mcp/bundle-mcp-policy.d.ts +4 -7
- package/dist/src/agent/mcp/bundle-mcp-policy.js +6 -20
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +2 -2
- package/dist/src/agent/mcp/bundle-mcp-tools.d.ts +1 -2
- package/dist/src/agent/mcp/bundle-mcp-tools.js +1 -2
- package/dist/src/agent/mcp/bundle-mcp-types.d.ts +0 -5
- package/dist/src/agent/mcp/index.d.ts +0 -2
- package/dist/src/agent/mcp/index.js +2 -5
- package/dist/src/agent/mcp/mcp-stdio-transport.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/memory/context/planner.d.ts +1 -0
- package/dist/src/agent/memory/context/planner.js +22 -7
- package/dist/src/agent/memory/manager.d.ts +4 -1
- package/dist/src/agent/memory/manager.js +5 -2
- package/dist/src/agent/memory/types.d.ts +2 -0
- package/dist/src/agent/messaging/command-handler.d.ts +2 -2
- package/dist/src/agent/messaging/command-handler.js +3 -3
- package/dist/src/agent/messaging/stream-manager.d.ts +2 -14
- package/dist/src/agent/messaging/stream-manager.js +0 -12
- package/dist/src/agent/orchestration/agent-event-handler.d.ts +1 -3
- package/dist/src/agent/orchestration/agent-event-handler.js +0 -36
- package/dist/src/agent/orchestration/agent-orchestrator.d.ts +0 -5
- package/dist/src/agent/orchestration/agent-orchestrator.js +0 -5
- package/dist/src/agent/prompt/sections/behavior.js +6 -4
- package/dist/src/agent/service/async-queue.d.ts +1 -1
- package/dist/src/agent/service/async-queue.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.d.ts +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js +1 -1
- package/dist/src/agent/service/process-direct-one-shot.d.ts +3 -1
- package/dist/src/agent/service/process-direct-one-shot.js +1 -1
- package/dist/src/agent/service/process-direct-streaming.d.ts +7 -5
- package/dist/src/agent/service/process-direct-streaming.js +5 -5
- package/dist/src/agent/service.d.ts +1 -4
- package/dist/src/agent/service.js +6 -32
- package/dist/src/agent/service.types.d.ts +2 -3
- package/dist/src/agent/session/index.d.ts +1 -1
- package/dist/src/agent/session/session-context.d.ts +2 -0
- package/dist/src/agent/session/session-context.js +4 -0
- package/dist/src/agent/session/session-state-bag.d.ts +4 -4
- package/dist/src/agent/session/session-state-bag.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +1 -1
- package/dist/src/agent/starter-agents.js +2 -2
- package/dist/src/agent/streaming/reasoning-visibility.d.ts +6 -0
- package/dist/src/agent/streaming/{reasoning-visibility-sse.js → reasoning-visibility.js} +3 -6
- package/dist/src/agent/tools/delegate-tool.js +5 -1
- package/dist/src/agent/tools/executor.js +1 -1
- package/dist/src/agent/tools/factory.d.ts +6 -1
- package/dist/src/agent/tools/factory.js +17 -22
- package/dist/src/agent/tools/index.d.ts +0 -1
- package/dist/src/agent/tools/index.js +1 -2
- package/dist/src/agent/workflow/workflow-child-tools.js +7 -1
- package/dist/src/automations/domain/types.d.ts +2 -1
- package/dist/src/automations/domain/validation.d.ts +1 -1
- package/dist/src/automations/service/action-executor.js +4 -1
- package/dist/src/browser/providers/cloakbrowser.js +1 -1
- package/dist/src/channels/channel-domain.d.ts +0 -4
- package/dist/src/channels/pairing/pairing-challenge.d.ts +1 -1
- package/dist/src/channels/pairing/pairing-challenge.js +1 -1
- package/dist/src/channels/plugin-types.d.ts +0 -2
- package/dist/src/cli/commands/agent/stream-renderer.js +4 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/config/rules.js +0 -5
- package/dist/src/config/schema.d.ts +3 -5
- package/dist/src/config/schema.js +0 -3
- package/dist/src/config/web-patch.js +0 -1
- package/dist/src/connectors/health.js +1 -1
- package/dist/src/endpoint-tools/auth.d.ts +20 -0
- package/dist/src/endpoint-tools/auth.js +51 -0
- package/dist/src/endpoint-tools/index.d.ts +5 -0
- package/dist/src/endpoint-tools/index.js +6 -0
- package/dist/src/endpoint-tools/invocation-service.d.ts +68 -0
- package/dist/src/endpoint-tools/invocation-service.js +190 -0
- package/dist/src/endpoint-tools/policy.d.ts +10 -0
- package/dist/src/endpoint-tools/policy.js +18 -0
- package/dist/src/endpoint-tools/registry.d.ts +45 -0
- package/dist/src/endpoint-tools/registry.js +121 -0
- package/dist/src/endpoint-tools/runtime.d.ts +23 -0
- package/dist/src/endpoint-tools/runtime.js +86 -0
- package/dist/src/endpoint-tools/upload-service.d.ts +41 -0
- package/dist/src/endpoint-tools/upload-service.js +103 -0
- package/dist/src/extensions/extension-registry-impl.d.ts +3 -1
- package/dist/src/extensions/extension-registry-impl.js +7 -1
- package/dist/src/extensions/loader.js +1 -1
- package/dist/src/extensions/types/core.d.ts +2 -1
- package/dist/src/extensions/types/hooks.d.ts +1 -1
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agent-builtin-tools.js +5 -2
- package/dist/src/gateway/chat-stream/mapper.js +16 -1
- package/dist/src/gateway/chat-stream/protocol.d.ts +4 -1
- package/dist/src/gateway/clarify-bridge.d.ts +5 -4
- package/dist/src/gateway/clarify-bridge.js +3 -4
- package/dist/src/gateway/file-reference-errors.d.ts +6 -0
- package/dist/src/gateway/file-reference-errors.js +21 -0
- package/dist/src/gateway/heartbeat/service.js +5 -2
- package/dist/src/gateway/hono/app.js +1 -5
- package/dist/src/gateway/hono/index.d.ts +0 -1
- package/dist/src/gateway/hono/index.js +1 -2
- package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -2
- package/dist/src/gateway/hono/lib/config-payload.js +1 -2
- package/dist/src/gateway/hono/middleware/auth.js +3 -5
- package/dist/src/gateway/hono/routes/agent-stream.js +49 -6
- package/dist/src/gateway/hono/routes/config-patch/gateway.d.ts +2 -2
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +0 -19
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/deps.d.ts +0 -2
- package/dist/src/gateway/hono/routes/endpoint-tools.d.ts +3 -0
- package/dist/src/gateway/hono/routes/endpoint-tools.js +196 -0
- package/dist/src/gateway/hono/routes/index.js +4 -0
- package/dist/src/gateway/hono/routes/logs.js +0 -4
- package/dist/src/gateway/hono/routes/mcp.js +1 -1
- package/dist/src/gateway/hono/routes/projects.js +34 -13
- package/dist/src/gateway/hono/routes/public-gateway.js +2 -2
- package/dist/src/gateway/hono/routes/realtime.d.ts +3 -0
- package/dist/src/gateway/hono/routes/realtime.js +35 -0
- package/dist/src/gateway/hono/routes/workspace.js +34 -13
- package/dist/src/gateway/hono/routes/you.d.ts +0 -9
- package/dist/src/gateway/hono/routes/you.js +81 -128
- package/dist/src/gateway/index.d.ts +1 -1
- package/dist/src/gateway/index.js +1 -2
- package/dist/src/gateway/protocol.d.ts +1 -7
- package/dist/src/gateway/security/index.js +1 -1
- package/dist/src/gateway/security/operator-scopes.js +1 -1
- package/dist/src/gateway/server.js +4 -4
- package/dist/src/gateway/service/agent-runner.d.ts +11 -9
- package/dist/src/gateway/service/agent-runner.js +18 -18
- package/dist/src/gateway/service/config-coordinator.d.ts +2 -2
- package/dist/src/gateway/service/config-coordinator.js +1 -1
- package/dist/src/gateway/service/run-gateway-agent.d.ts +4 -3
- package/dist/src/gateway/service/run-gateway-agent.js +17 -14
- package/dist/src/gateway/service/session-input-coordinator.d.ts +3 -0
- package/dist/src/gateway/service/session-input-coordinator.js +4 -2
- package/dist/src/gateway/service/types.d.ts +0 -5
- package/dist/src/gateway/service.d.ts +7 -6
- package/dist/src/gateway/service.js +39 -22
- package/dist/src/heartbeat/index.js +1 -1
- package/dist/src/mcp/channel-bridge.d.ts +6 -9
- package/dist/src/mcp/channel-bridge.js +48 -76
- package/dist/src/mcp/channel-server.js +2 -6
- package/dist/src/realtime/broker.d.ts +30 -0
- package/dist/src/realtime/broker.js +97 -0
- package/dist/src/realtime/runtime.d.ts +20 -0
- package/dist/src/realtime/runtime.js +258 -0
- package/dist/src/realtime/tickets.d.ts +15 -0
- package/dist/src/realtime/tickets.js +38 -0
- package/dist/src/realtime/writer.d.ts +15 -0
- package/dist/src/realtime/writer.js +78 -0
- package/dist/src/share/share-config.js +0 -1
- package/dist/src/share/share-zip.js +1 -1
- package/dist/src/share/site-share-config.js +0 -1
- package/dist/src/storage/sqlite/endpoint-principal-repository.d.ts +17 -0
- package/dist/src/storage/sqlite/endpoint-principal-repository.js +54 -0
- package/dist/src/storage/sqlite/endpoint-tool-invocation-repository.d.ts +25 -0
- package/dist/src/storage/sqlite/endpoint-tool-invocation-repository.js +42 -0
- package/dist/src/storage/sqlite/index.d.ts +2 -0
- package/dist/src/storage/sqlite/index.js +3 -1
- package/dist/src/storage/sqlite/memory-records-repository.js +3 -1
- package/dist/src/storage/sqlite/migrations/108_repair_user_memory_provider.sql +18 -0
- package/dist/src/storage/sqlite/migrations/109_endpoint_principals.sql +14 -0
- package/dist/src/storage/sqlite/migrations/110_session_input_origin.sql +43 -0
- package/dist/src/storage/sqlite/migrations/111_endpoint_tool_invocations.sql +18 -0
- package/dist/src/storage/sqlite/migrations/112_endpoint_instance_bindings.sql +8 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/session-input-repository.d.ts +3 -0
- package/dist/src/storage/sqlite/session-input-repository.js +5 -3
- package/dist/src/tasks/home-query-service.d.ts +1 -1
- package/dist/src/tui/backends/embedded-backend.js +5 -2
- package/dist/src/tui/backends/{gateway-sse-backend.d.ts → gateway-realtime-backend.d.ts} +13 -10
- package/dist/src/tui/backends/{gateway-sse-backend.js → gateway-realtime-backend.js} +114 -151
- package/dist/src/tui/tool-summary.d.ts +1 -2
- package/dist/src/tui/tool-summary.js +2 -18
- package/dist/src/tui/tui-agent-events.d.ts +0 -1
- package/dist/src/tui/tui-agent-events.js +2 -15
- package/dist/src/tui/tui-backend.d.ts +4 -4
- package/dist/src/tui/tui-run-state.js +0 -4
- package/dist/src/tui/tui-types.d.ts +2 -9
- package/dist/src/tui/tui-types.js +0 -1
- package/dist/src/tui/tui.js +5 -5
- package/dist/src/tunnel/frpc-binary.js +1 -1
- package/dist/src/tunnel/gateway-lifecycle.d.ts +1 -1
- package/dist/src/tunnel/gateway-lifecycle.js +1 -1
- package/dist/src/user-context/actionableInsights.d.ts +14 -0
- package/dist/src/user-context/actionableInsights.js +34 -0
- package/dist/src/user-context/manual-understanding.js +6 -1
- package/dist/src/user-context/projection.d.ts +2 -1
- package/dist/src/user-context/projection.js +2 -1
- package/dist/src/user-context/understandingQuality.d.ts +5 -0
- package/dist/src/user-context/understandingQuality.js +44 -0
- package/dist/src/utils/logger/log-stream.d.ts +3 -10
- package/dist/src/utils/logger/log-stream.js +2 -73
- package/dist/src/utils/logger/pino-record.d.ts +1 -1
- package/dist/src/utils/logger/streams.js +1 -1
- package/dist/src/voice/local/model-files.js +1 -1
- package/dist/src/work-discovery/service.js +1 -1
- package/package.json +6 -3
- package/dist/gateway/static/root/assets/agents-Df9mTa-K.js +0 -2
- package/dist/gateway/static/root/assets/apps-page-Bd3tN-k2.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-w6K9GZQ7.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-jb5Hf-hm.js +0 -8
- package/dist/gateway/static/root/assets/capabilities-settings-panel-BjUe4raq.js +0 -7
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-DiWIMYRr.js +0 -1
- package/dist/gateway/static/root/assets/channels-settings-D8IkjMuX.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-CySs1GQX.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BT2ahw52.js +0 -2
- package/dist/gateway/static/root/assets/gateway-settings-CIRs2QVy.js +0 -1
- package/dist/gateway/static/root/assets/home-page-C59f8UJw.js +0 -3
- package/dist/gateway/static/root/assets/index-D-YfWVyS.css +0 -1
- package/dist/gateway/static/root/assets/index-vi5KlR5_.js +0 -222
- package/dist/gateway/static/root/assets/local-app-workbench-page-DRB4UQBE.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-CNp4XiBN.js +0 -7
- package/dist/gateway/static/root/assets/messages-CPxz48hr.js +0 -3
- package/dist/gateway/static/root/assets/notes-workbench-DqSkeDXX.js +0 -4
- package/dist/gateway/static/root/assets/product-delivery-C8JbSj5Y.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-BrbHs4Wp.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-B80rtkj6.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-_Q3GEznb.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-55dJOUVg.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-CSFCZj14.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-BSIiMLi-.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-q_yE6-H1.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-gYkRX9Ik.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-BoNBMKW6.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-GZHKDFSb.js +0 -2
- package/dist/gateway/static/root/assets/time-picker-5sHEZ5w5.js +0 -1
- package/dist/gateway/static/root/assets/user-context-page-q5dr8JFG.js +0 -1
- package/dist/gateway/static/root/assets/work-discovery-page-fNvSg40M.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-YJBKmPYK.js +0 -11
- package/dist/src/agent/feedback/feedback-coordinator.d.ts +0 -73
- package/dist/src/agent/feedback/feedback-coordinator.js +0 -156
- package/dist/src/agent/feedback/index.d.ts +0 -4
- package/dist/src/agent/feedback/index.js +0 -2
- package/dist/src/agent/lifecycle/progress.d.ts +0 -90
- package/dist/src/agent/lifecycle/progress.js +0 -339
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +0 -183
- package/dist/src/agent/mcp/mcp-tool-meta.d.ts +0 -8
- package/dist/src/agent/mcp/mcp-tool-meta.js +0 -13
- package/dist/src/agent/mcp/resolve-embedded-mcp-tools.d.ts +0 -14
- package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +0 -48
- package/dist/src/agent/streaming/reasoning-visibility-sse.d.ts +0 -15
- package/dist/src/agent/tools/composio-tool.d.ts +0 -21
- package/dist/src/agent/tools/composio-tool.js +0 -261
- package/dist/src/gateway/agent-run-relay.d.ts +0 -19
- package/dist/src/gateway/agent-run-relay.js +0 -169
- package/dist/src/gateway/hono/sse.d.ts +0 -53
- package/dist/src/gateway/hono/sse.js +0 -207
- package/dist/src/gateway/service/sse-hub.d.ts +0 -10
- package/dist/src/gateway/service/sse-hub.js +0 -53
- package/dist/src/tui/sse-consumer.d.ts +0 -15
- package/dist/src/tui/sse-consumer.js +0 -73
|
@@ -4,6 +4,8 @@ import { isXopcDatabaseOpen } from "../../storage/sqlite/connection.js";
|
|
|
4
4
|
import { getSessionTaskPlan, setSessionTaskPlan } from "../../storage/sqlite/session-task-plan-repository.js";
|
|
5
5
|
import "../../storage/sqlite/index.js";
|
|
6
6
|
import { init_agent_scope, resolveDefaultAgentId } from "../agent-scope.js";
|
|
7
|
+
import { wrapToolsWithProtection } from "./executor.js";
|
|
8
|
+
import { createDefaultExternalToolGatewayTools } from "../external-tools/index.js";
|
|
7
9
|
import { createReadFileTool } from "./read.js";
|
|
8
10
|
import { createWriteFileTool } from "./write.js";
|
|
9
11
|
import { createListDirTool } from "./list-dir.js";
|
|
@@ -16,7 +18,6 @@ import { createFindTool } from "./find.js";
|
|
|
16
18
|
import { createWebFetchTool, createWebSearchTool } from "./web.js";
|
|
17
19
|
import { createWebExtractTool } from "./web-extract.js";
|
|
18
20
|
import { createMessageTool } from "./communication.js";
|
|
19
|
-
import { createComposioTools } from "./composio-tool.js";
|
|
20
21
|
import { createSendMediaTool } from "./send-media.js";
|
|
21
22
|
import { createReadMediaTool } from "./media-read-tool.js";
|
|
22
23
|
import { createCreateShareTool, isShareToolAvailable } from "./create-share-tool.js";
|
|
@@ -49,7 +50,6 @@ import { createImageGenerateTool } from "./image-generate-tool.js";
|
|
|
49
50
|
import "./index.js";
|
|
50
51
|
import { createBrowserUseTool } from "./browser/tool/browser-use-tool.js";
|
|
51
52
|
import { createWorkflowCatalog } from "../workflow/catalog.js";
|
|
52
|
-
import { wrapToolsWithProtection } from "./executor.js";
|
|
53
53
|
import { mergeTtsConfigFromAppConfig } from "../../voice/tts/merge-config.js";
|
|
54
54
|
import { createTextToSpeechTool } from "./tts-tool.js";
|
|
55
55
|
import { getAgentCapabilityToolNames } from "../capabilities/registry.js";
|
|
@@ -178,15 +178,19 @@ var AgentToolsFactory = class {
|
|
|
178
178
|
const codeIntelligenceConfig = cfg?.codeIntelligence;
|
|
179
179
|
const agentId = options?.agentId;
|
|
180
180
|
const codeIntelligenceTools = isCodeIntelligenceEnabledForAgent(codeIntelligenceConfig, agentId) && this.deps.getCodeIntelligenceRuntime ? createCodeIntelligenceTools({ getRuntime: () => this.deps.getCodeIntelligenceRuntime(workspace) }) : [];
|
|
181
|
-
const
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
181
|
+
const externalTools = createDefaultExternalToolGatewayTools({
|
|
182
|
+
workspace,
|
|
183
|
+
getConfig: () => this.deps.getConfig?.(),
|
|
184
|
+
getCurrentContext: this.deps.getCurrentContext,
|
|
185
|
+
endpointTools: this.deps.endpointTools,
|
|
186
|
+
agentId,
|
|
187
|
+
extensionRegistry: this.deps.extensionRegistry,
|
|
188
|
+
disabledTools: disabled,
|
|
189
|
+
hookRunner: this.deps.hookRunner,
|
|
190
|
+
toolExecutorConfig: this.deps.toolExecutorConfig,
|
|
191
|
+
getMemoryManager: getMemMgr
|
|
192
|
+
});
|
|
193
|
+
const optionalTools = [imageTool, imageGenerateTool].filter((t) => t != null);
|
|
190
194
|
const readTool = createReadFileTool(workspace, { profileMarkdownRoot: options?.profileMarkdownRoot });
|
|
191
195
|
const writeTool = createWriteFileTool(workspace, { profileMarkdownRoot: options?.profileMarkdownRoot });
|
|
192
196
|
const applyPatchTool = createApplyPatchTool(workspace);
|
|
@@ -223,6 +227,7 @@ var AgentToolsFactory = class {
|
|
|
223
227
|
}
|
|
224
228
|
}),
|
|
225
229
|
createUpdatePlanTool(),
|
|
230
|
+
...externalTools,
|
|
226
231
|
...getSkillMgr ? [
|
|
227
232
|
createSkillsListTool({
|
|
228
233
|
getSkillManager: getSkillMgr,
|
|
@@ -287,7 +292,6 @@ var AgentToolsFactory = class {
|
|
|
287
292
|
...this.deps.getCurrentContext?.()?.sessionKey ? { sessionKey: this.deps.getCurrentContext().sessionKey } : {}
|
|
288
293
|
})
|
|
289
294
|
})] : [],
|
|
290
|
-
...getMemMgr?.().getAdditionalTools() ?? [],
|
|
291
295
|
...this.deps.getSessionStore && getPrimary ? [createSessionSearchTool({
|
|
292
296
|
getSessionStore: this.deps.getSessionStore,
|
|
293
297
|
getPrimaryModel: getPrimary,
|
|
@@ -341,16 +345,7 @@ var AgentToolsFactory = class {
|
|
|
341
345
|
return ["create_desktop_pet"];
|
|
342
346
|
}
|
|
343
347
|
createAllTools(coreOptions) {
|
|
344
|
-
|
|
345
|
-
const disableExtensions = coreOptions?.disabledTools?.has("extensions");
|
|
346
|
-
let bundled;
|
|
347
|
-
if (!this.deps.extensionRegistry || disableExtensions) bundled = coreTools;
|
|
348
|
-
else {
|
|
349
|
-
const extensionTools = this.deps.extensionRegistry.getAllTools();
|
|
350
|
-
log.info({ count: extensionTools.length }, "Loaded extension tools");
|
|
351
|
-
bundled = [...coreTools, ...extensionTools];
|
|
352
|
-
}
|
|
353
|
-
return wrapToolsWithProtection(bundled, this.deps.toolExecutorConfig);
|
|
348
|
+
return wrapToolsWithProtection(this.createCoreTools(coreOptions), this.deps.toolExecutorConfig);
|
|
354
349
|
}
|
|
355
350
|
};
|
|
356
351
|
function filterToolsByDisabledSet(tools, disabled) {
|
|
@@ -12,7 +12,6 @@ export { findTool, createFindTool, type FindToolInput, type FindToolDetails, } f
|
|
|
12
12
|
export { createWebSearchTool, createWebFetchTool } from './web.js';
|
|
13
13
|
export { createWebExtractTool, stripHtmlBoilerplate, DEFAULT_WEB_EXTRACT_MAX_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, } from './web-extract.js';
|
|
14
14
|
export { createMessageTool } from './communication.js';
|
|
15
|
-
export { createComposioTools } from './composio-tool.js';
|
|
16
15
|
export { createSendMediaTool } from './send-media.js';
|
|
17
16
|
export { createReadMediaTool } from './media-read-tool.js';
|
|
18
17
|
export { createCreateShareTool, isShareToolAvailable, type CreateShareToolDeps, } from './create-share-tool.js';
|
|
@@ -14,7 +14,6 @@ import { createFindTool, findTool } from "./find.js";
|
|
|
14
14
|
import { createWebFetchTool, createWebSearchTool } from "./web.js";
|
|
15
15
|
import { DEFAULT_WEB_EXTRACT_MAX_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, createWebExtractTool, stripHtmlBoilerplate } from "./web-extract.js";
|
|
16
16
|
import { createMessageTool } from "./communication.js";
|
|
17
|
-
import { createComposioTools } from "./composio-tool.js";
|
|
18
17
|
import { createSendMediaTool } from "./send-media.js";
|
|
19
18
|
import { createReadMediaTool } from "./media-read-tool.js";
|
|
20
19
|
import { createCreateShareTool, isShareToolAvailable } from "./create-share-tool.js";
|
|
@@ -43,4 +42,4 @@ import { createManagedJobTool } from "./managed-job-tool.js";
|
|
|
43
42
|
import { resolveImageModelConfigForTool } from "../image/tool-model-config.js";
|
|
44
43
|
import { createImageTool } from "./image-tool.js";
|
|
45
44
|
import { createImageGenerateTool, resolveImageGenerationModelConfigForTool } from "./image-generate-tool.js";
|
|
46
|
-
export { BrowserManager, DEFAULT_DELEGATE_TOOLS, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, DEFAULT_TOOL_METADATA, DEFAULT_WEB_EXTRACT_MAX_LENGTH, DELEGATE_BLOCKED_TOOLS, GREP_MAX_LINE_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, SANDBOX_ALLOWED_TOOLS, TodoStore, ToolConcurrencyController, assertBrowserUrlAllowed, buildSandboxToolMap, createApplyPatchTool, createAutomationTool, createBrowserRecipeTool, createClarifyTool, createCodeIntelligenceTools,
|
|
45
|
+
export { BrowserManager, DEFAULT_DELEGATE_TOOLS, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, DEFAULT_TOOL_METADATA, DEFAULT_WEB_EXTRACT_MAX_LENGTH, DELEGATE_BLOCKED_TOOLS, GREP_MAX_LINE_LENGTH, MAX_RAW_HTML_CHARS_FOR_WEB_EXTRACT, SANDBOX_ALLOWED_TOOLS, TodoStore, ToolConcurrencyController, assertBrowserUrlAllowed, buildSandboxToolMap, createApplyPatchTool, createAutomationTool, createBrowserRecipeTool, createClarifyTool, createCodeIntelligenceTools, createCreateShareTool, createDelegateTool, createDesktopPetTool, createDreamingTool, createExecCommandTool, createExecuteCodeTool, createFindTool, createGrepTool, createImageGenerateTool, createImageTool, createListDirTool, createManagedJobTool, createMemoryGetTool, createMemorySearchTool, createMessageTool, createReadFileTool, createReadMediaTool, createSendMediaTool, createSessionSearchTool, createSessionStatusTool, createSkillInstallTool, createSkillManageTool, createSkillViewTool, createSkillsListTool, createSkillsMarketplaceSearchTool, createTodoTool, createToolManualTool, createUpdatePlanTool, createWebExtractTool, createWebFetchTool, createWebSearchTool, createWorkflowTool, createWriteFileTool, createXopcUseTool, findTool, formatSize, fuzzyFindText, generateDiffString, getToolMetadata, grepTool, isShareToolAvailable, listDirTool, normalizeForFuzzyMatch, normalizeToLF, resolveImageGenerationModelConfigForTool, resolveImageModelConfigForTool, resolveToolLockMode, restoreLineEndings, stripBom, stripHtmlBoilerplate, truncateHead, truncateLine, truncateTail, writeFileTool };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { EXTERNAL_TOOL_NAMES } from "../external-tools/gateway-tools.js";
|
|
2
|
+
import "../external-tools/index.js";
|
|
1
3
|
import { AgentToolsFactory } from "../tools/factory.js";
|
|
2
4
|
//#region src/agent/workflow/workflow-child-tools.ts
|
|
3
5
|
/** Builds the tool set for workflow child agents (wired from gateway to avoid cycles). */
|
|
@@ -13,7 +15,11 @@ function buildWorkflowChildTools(childOptions) {
|
|
|
13
15
|
workspace: childOptions.workspace,
|
|
14
16
|
getPrimaryModel: () => childOptions.model,
|
|
15
17
|
agentId: childOptions.agentId,
|
|
16
|
-
disabledTools: new Set([
|
|
18
|
+
disabledTools: new Set([
|
|
19
|
+
EXTERNAL_TOOL_NAMES.search,
|
|
20
|
+
EXTERNAL_TOOL_NAMES.describe,
|
|
21
|
+
EXTERNAL_TOOL_NAMES.execute
|
|
22
|
+
])
|
|
17
23
|
});
|
|
18
24
|
}
|
|
19
25
|
//#endregion
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { WorkflowRunInputEnvelope } from '../../workflows/domain/index.js';
|
|
2
2
|
import type { TaskCommand } from '@xopcai/gateway-contract';
|
|
3
|
+
import type { TurnOrigin } from '@xopcai/endpoint-tools-protocol';
|
|
3
4
|
import type { WorkflowRunServiceLike } from '../../workflows/service/workflow-run-service.types.js';
|
|
4
5
|
export type AutomationSchedule = {
|
|
5
6
|
kind: 'once';
|
|
@@ -171,7 +172,7 @@ export interface AutomationDeps {
|
|
|
171
172
|
applyAutomationModelOverride?: (sessionKey: string, model: string | undefined) => Promise<boolean>;
|
|
172
173
|
};
|
|
173
174
|
turnDispatcher?: {
|
|
174
|
-
processDirect: (message: string, sessionKey: string, attachments?: unknown[], thinking?: string, options?: {
|
|
175
|
+
processDirect: (message: string, sessionKey: string, origin: TurnOrigin, attachments?: unknown[], thinking?: string, options?: {
|
|
175
176
|
signal?: AbortSignal;
|
|
176
177
|
runId?: string;
|
|
177
178
|
deadlineAtMs?: number;
|
|
@@ -656,6 +656,7 @@ export declare const UpdateAutomationSchema: z.ZodObject<{
|
|
|
656
656
|
}, z.core.$strip>;
|
|
657
657
|
}, z.core.$strip>], "type">;
|
|
658
658
|
}, z.core.$strict>], "kind">>;
|
|
659
|
+
description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
659
660
|
state: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
660
661
|
nextRunAtMs: z.ZodOptional<z.ZodNumber>;
|
|
661
662
|
runningRunId: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
|
|
@@ -672,7 +673,6 @@ export declare const UpdateAutomationSchema: z.ZodObject<{
|
|
|
672
673
|
lastError: z.ZodOptional<z.ZodString>;
|
|
673
674
|
consecutiveFailures: z.ZodOptional<z.ZodNumber>;
|
|
674
675
|
}, z.core.$strict>>>;
|
|
675
|
-
description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
676
676
|
trigger: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
677
677
|
kind: z.ZodLiteral<"manual">;
|
|
678
678
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -177,7 +177,10 @@ var AutomationActionExecutor = class {
|
|
|
177
177
|
model: action.model
|
|
178
178
|
}, "Automation model override invalid; using agent default");
|
|
179
179
|
}
|
|
180
|
-
const response = await agentService.turnDispatcher.processDirect(buildSafetyInstruction(automation, action.instruction), sessionKey,
|
|
180
|
+
const response = await agentService.turnDispatcher.processDirect(buildSafetyInstruction(automation, action.instruction), sessionKey, {
|
|
181
|
+
type: "system",
|
|
182
|
+
source: "automation"
|
|
183
|
+
}, void 0, void 0, {
|
|
181
184
|
signal,
|
|
182
185
|
runId: run.id,
|
|
183
186
|
deadlineAtMs
|
|
@@ -11,9 +11,9 @@ import { createReadStream, createWriteStream } from "node:fs";
|
|
|
11
11
|
import { spawn } from "node:child_process";
|
|
12
12
|
import { createHash } from "node:crypto";
|
|
13
13
|
import { mkdir, mkdtemp, rm, stat } from "node:fs/promises";
|
|
14
|
+
import { Readable, Transform } from "node:stream";
|
|
14
15
|
import AdmZip from "adm-zip";
|
|
15
16
|
import { pipeline } from "node:stream/promises";
|
|
16
|
-
import { Readable, Transform } from "node:stream";
|
|
17
17
|
//#region src/browser/providers/cloakbrowser.ts
|
|
18
18
|
/**
|
|
19
19
|
* CloakBrowser provider — anti-fingerprint Chromium with stealth capabilities.
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { MessageBus } from '../infra/bus/index.js';
|
|
5
5
|
import type { Config } from '../config/schema.js';
|
|
6
|
-
import type { ProgressStage } from '../agent/lifecycle/progress.js';
|
|
7
|
-
export type { ProgressStage } from '../agent/lifecycle/progress.js';
|
|
8
6
|
export type ChatType = 'direct' | 'group' | 'channel' | 'thread';
|
|
9
7
|
export type DmPolicy = 'pairing' | 'allowlist' | 'open' | 'disabled';
|
|
10
8
|
export type GroupPolicy = 'open' | 'disabled' | 'allowlist';
|
|
@@ -74,8 +72,6 @@ export interface ChannelSendResult {
|
|
|
74
72
|
}
|
|
75
73
|
export interface ChannelStreamHandle {
|
|
76
74
|
update: (text: string) => void;
|
|
77
|
-
updateProgress?: (text: string, stage: ProgressStage, detail?: string) => void;
|
|
78
|
-
setProgress?: (stage: ProgressStage, detail?: string) => void;
|
|
79
75
|
end: () => Promise<void>;
|
|
80
76
|
abort: () => Promise<void>;
|
|
81
77
|
messageId: () => number | undefined;
|
|
@@ -18,7 +18,7 @@ export type IssuePairingChallengeParams = {
|
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
20
20
|
* OpenClaw-style pairing: mint or refresh a pending code; notify the user only on new codes.
|
|
21
|
-
* Repeat DMs refresh lastSeenAt and
|
|
21
|
+
* Repeat DMs refresh lastSeenAt and publish realtime status without re-sending the bot message.
|
|
22
22
|
*/
|
|
23
23
|
export declare function issuePairingChallenge(params: IssuePairingChallengeParams): Promise<{
|
|
24
24
|
created: boolean;
|
|
@@ -4,7 +4,7 @@ import { broadcastPairingEvent } from "./pairing-events.js";
|
|
|
4
4
|
//#region src/channels/pairing/pairing-challenge.ts
|
|
5
5
|
/**
|
|
6
6
|
* OpenClaw-style pairing: mint or refresh a pending code; notify the user only on new codes.
|
|
7
|
-
* Repeat DMs refresh lastSeenAt and
|
|
7
|
+
* Repeat DMs refresh lastSeenAt and publish realtime status without re-sending the bot message.
|
|
8
8
|
*/
|
|
9
9
|
async function issuePairingChallenge(params) {
|
|
10
10
|
const normalizedAccountId = params.accountId.trim().toLowerCase() || "default";
|
|
@@ -296,8 +296,6 @@ export interface ChannelPollResult {
|
|
|
296
296
|
export interface ChannelStreamHandle {
|
|
297
297
|
update: (text: string) => void;
|
|
298
298
|
updateReasoning?: (text: string) => void;
|
|
299
|
-
updateProgress?: (text: string, stage: string, detail?: string) => void;
|
|
300
|
-
setProgress?: (stage: string, detail?: string) => void;
|
|
301
299
|
end: () => Promise<void>;
|
|
302
300
|
abort: () => Promise<void>;
|
|
303
301
|
messageId: () => number | undefined;
|
|
@@ -28,7 +28,10 @@ function formatToolArgs(args) {
|
|
|
28
28
|
*/
|
|
29
29
|
async function renderStreamToTerminal(agent, message, sessionKey) {
|
|
30
30
|
const stamped = message.trimStart().startsWith("/") ? message : prependEnvelopeTimestamp(message);
|
|
31
|
-
const stream = agent.turnDispatcher.processDirectStreaming(stamped, sessionKey
|
|
31
|
+
const stream = agent.turnDispatcher.processDirectStreaming(stamped, sessionKey, {
|
|
32
|
+
type: "system",
|
|
33
|
+
source: "cli"
|
|
34
|
+
});
|
|
32
35
|
let responseText = "";
|
|
33
36
|
let isFirstToken = true;
|
|
34
37
|
let isInThinking = false;
|
|
@@ -52,7 +52,7 @@ async function checkDatabaseSchema(ctx) {
|
|
|
52
52
|
id: "database-schema",
|
|
53
53
|
label: "Database schema",
|
|
54
54
|
status: "pass",
|
|
55
|
-
message: `SQLite schema v${status.dbVersion} (current release
|
|
55
|
+
message: `SQLite schema v${status.dbVersion} (current release v112).`,
|
|
56
56
|
hints: []
|
|
57
57
|
};
|
|
58
58
|
}
|
package/dist/src/config/rules.js
CHANGED
|
@@ -93,11 +93,6 @@ const BASE_RELOAD_RULES = [
|
|
|
93
93
|
kind: "restart",
|
|
94
94
|
description: "Host-header origin fallback"
|
|
95
95
|
},
|
|
96
|
-
{
|
|
97
|
-
prefix: "gateway.maxSseConnections",
|
|
98
|
-
kind: "restart",
|
|
99
|
-
description: "SSE connection limit"
|
|
100
|
-
},
|
|
101
96
|
{
|
|
102
97
|
prefix: "gateway.channelConnectDeferMode",
|
|
103
98
|
kind: "restart",
|
|
@@ -781,8 +781,8 @@ export declare const WorkspaceConfigSchema: z.ZodOptional<z.ZodObject<{
|
|
|
781
781
|
}, z.core.$strip>>;
|
|
782
782
|
export type WorkspaceConfig = z.infer<typeof WorkspaceConfigSchema>;
|
|
783
783
|
export declare const GatewayBindModeSchema: z.ZodEnum<{
|
|
784
|
-
auto: "auto";
|
|
785
784
|
custom: "custom";
|
|
785
|
+
auto: "auto";
|
|
786
786
|
loopback: "loopback";
|
|
787
787
|
lan: "lan";
|
|
788
788
|
tailnet: "tailnet";
|
|
@@ -796,8 +796,8 @@ export declare const GatewayWebchatConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
796
796
|
}, z.core.$strip>>;
|
|
797
797
|
export declare const GatewayConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
798
798
|
bind: z.ZodOptional<z.ZodEnum<{
|
|
799
|
-
auto: "auto";
|
|
800
799
|
custom: "custom";
|
|
800
|
+
auto: "auto";
|
|
801
801
|
loopback: "loopback";
|
|
802
802
|
lan: "lan";
|
|
803
803
|
tailnet: "tailnet";
|
|
@@ -886,7 +886,6 @@ export declare const GatewayConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
886
886
|
off: "off";
|
|
887
887
|
}>>;
|
|
888
888
|
}, z.core.$strip>>>;
|
|
889
|
-
maxSseConnections: z.ZodOptional<z.ZodNumber>;
|
|
890
889
|
corsOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
891
890
|
publicUrl: z.ZodOptional<z.ZodString>;
|
|
892
891
|
dangerouslyAllowHostHeaderOriginFallback: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -1930,8 +1929,8 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
1930
1929
|
channels: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1931
1930
|
gateway: z.ZodDefault<z.ZodObject<{
|
|
1932
1931
|
bind: z.ZodOptional<z.ZodEnum<{
|
|
1933
|
-
auto: "auto";
|
|
1934
1932
|
custom: "custom";
|
|
1933
|
+
auto: "auto";
|
|
1935
1934
|
loopback: "loopback";
|
|
1936
1935
|
lan: "lan";
|
|
1937
1936
|
tailnet: "tailnet";
|
|
@@ -2020,7 +2019,6 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
2020
2019
|
off: "off";
|
|
2021
2020
|
}>>;
|
|
2022
2021
|
}, z.core.$strip>>>;
|
|
2023
|
-
maxSseConnections: z.ZodOptional<z.ZodNumber>;
|
|
2024
2022
|
corsOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2025
2023
|
publicUrl: z.ZodOptional<z.ZodString>;
|
|
2026
2024
|
dangerouslyAllowHostHeaderOriginFallback: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -465,7 +465,6 @@ activityDetailDefault: z.enum([
|
|
|
465
465
|
auth: GatewayAuthSchema.optional(),
|
|
466
466
|
heartbeat: HeartbeatConfigSchema.optional(),
|
|
467
467
|
webchat: GatewayWebchatConfigSchema.optional(),
|
|
468
|
-
maxSseConnections: z.number().optional(),
|
|
469
468
|
corsOrigins: z.array(z.string()).optional(),
|
|
470
469
|
/**
|
|
471
470
|
* Reverse-proxy publicly reachable URL (e.g. `https://gateway.example.com`).
|
|
@@ -639,7 +638,6 @@ activityDetailDefault: z.enum([
|
|
|
639
638
|
includeSystemPromptSection: false
|
|
640
639
|
},
|
|
641
640
|
webchat: { activityDetailDefault: "on" },
|
|
642
|
-
maxSseConnections: 100,
|
|
643
641
|
corsOrigins: [],
|
|
644
642
|
skillsMarketplaceProvider: "store",
|
|
645
643
|
skillsStoreBaseUrl: "https://store.xopc.ai"
|
|
@@ -1042,7 +1040,6 @@ workDiscoveryOnboarding: z.boolean().default(true) }).strict().default({ workDis
|
|
|
1042
1040
|
includeSystemPromptSection: false
|
|
1043
1041
|
},
|
|
1044
1042
|
webchat: { activityDetailDefault: "on" },
|
|
1045
|
-
maxSseConnections: 100,
|
|
1046
1043
|
corsOrigins: [],
|
|
1047
1044
|
skillsMarketplaceProvider: "store",
|
|
1048
1045
|
skillsStoreBaseUrl: "https://store.xopc.ai"
|
|
@@ -93,7 +93,6 @@ function mergeGatewaySkillsMarketplacePatch(config, patch) {
|
|
|
93
93
|
intervalMs: 18e5,
|
|
94
94
|
includeSystemPromptSection: false
|
|
95
95
|
},
|
|
96
|
-
maxSseConnections: 100,
|
|
97
96
|
corsOrigins: []
|
|
98
97
|
};
|
|
99
98
|
if (parsed.data.skillsMarketplaceProvider !== void 0) config.gateway.skillsMarketplaceProvider = parsed.data.skillsMarketplaceProvider.trim();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { listBundleMcpServerCapabilitiesForGateway } from "../agent/mcp/bundle-mcp-materialize.js";
|
|
2
1
|
import { materializeConnectorMcpServer } from "./materialize.js";
|
|
3
2
|
import { getConnectorInstance } from "./instances.js";
|
|
4
3
|
import { getWorkspacePath } from "../config/workspace-path-helpers.js";
|
|
4
|
+
import { listBundleMcpServerCapabilitiesForGateway } from "../agent/mcp/bundle-mcp-gateway.js";
|
|
5
5
|
//#region src/connectors/health.ts
|
|
6
6
|
function classifyConnectorHealthError(error) {
|
|
7
7
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import { type EndpointHelloPayload } from '@xopcai/endpoint-tools-protocol';
|
|
3
|
+
import type { EndpointPrincipal } from '../storage/sqlite/index.js';
|
|
4
|
+
export interface EndpointAuthenticatorDeps {
|
|
5
|
+
getPrincipal(id: string): EndpointPrincipal | undefined;
|
|
6
|
+
bindEndpoint(endpointId: string, principalId: string, boundAt?: number): boolean;
|
|
7
|
+
touchPrincipal(id: string, seenAt?: number): void;
|
|
8
|
+
now?: () => number;
|
|
9
|
+
}
|
|
10
|
+
export declare class EndpointAuthenticationError extends Error {
|
|
11
|
+
}
|
|
12
|
+
export declare function parseEndpointPublicKey(encoded: string): crypto.KeyObject;
|
|
13
|
+
export declare class EndpointAuthenticator {
|
|
14
|
+
private readonly deps;
|
|
15
|
+
private readonly usedNonces;
|
|
16
|
+
private readonly now;
|
|
17
|
+
constructor(deps: EndpointAuthenticatorDeps);
|
|
18
|
+
authenticate(payload: EndpointHelloPayload): EndpointPrincipal;
|
|
19
|
+
private pruneNonces;
|
|
20
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { endpointHelloSigningPayload } from "../../packages/endpoint-tools-protocol/src/index.js";
|
|
2
|
+
import crypto from "node:crypto";
|
|
3
|
+
//#region src/endpoint-tools/auth.ts
|
|
4
|
+
const MAX_CLOCK_SKEW_MS = 6e4;
|
|
5
|
+
var EndpointAuthenticationError = class extends Error {};
|
|
6
|
+
function parseEndpointPublicKey(encoded) {
|
|
7
|
+
const key = crypto.createPublicKey({
|
|
8
|
+
key: Buffer.from(encoded, "base64url"),
|
|
9
|
+
format: "der",
|
|
10
|
+
type: "spki"
|
|
11
|
+
});
|
|
12
|
+
if (key.asymmetricKeyType !== "ec" || key.asymmetricKeyDetails?.namedCurve !== "prime256v1") throw new Error("Endpoint public key must be ECDSA P-256");
|
|
13
|
+
return key;
|
|
14
|
+
}
|
|
15
|
+
var EndpointAuthenticator = class {
|
|
16
|
+
usedNonces = /* @__PURE__ */ new Map();
|
|
17
|
+
now;
|
|
18
|
+
constructor(deps) {
|
|
19
|
+
this.deps = deps;
|
|
20
|
+
this.now = deps.now ?? Date.now;
|
|
21
|
+
}
|
|
22
|
+
authenticate(payload) {
|
|
23
|
+
const now = this.now();
|
|
24
|
+
this.pruneNonces(now);
|
|
25
|
+
if (Math.abs(now - payload.signedAt) > MAX_CLOCK_SKEW_MS) throw new EndpointAuthenticationError("Endpoint signature timestamp is outside the allowed window");
|
|
26
|
+
const nonceKey = `${payload.principalId}:${payload.nonce}`;
|
|
27
|
+
if (this.usedNonces.has(nonceKey)) throw new EndpointAuthenticationError("Endpoint hello nonce was already used");
|
|
28
|
+
const principal = this.deps.getPrincipal(payload.principalId);
|
|
29
|
+
if (!principal || principal.revokedAt !== void 0) throw new EndpointAuthenticationError("Endpoint principal is unknown or revoked");
|
|
30
|
+
if (principal.kind !== payload.kind || principal.platform !== payload.platform || principal.displayName !== payload.displayName) throw new EndpointAuthenticationError("Endpoint identity does not match its registered principal");
|
|
31
|
+
let publicKey;
|
|
32
|
+
try {
|
|
33
|
+
publicKey = parseEndpointPublicKey(principal.publicKey);
|
|
34
|
+
} catch (error) {
|
|
35
|
+
throw new EndpointAuthenticationError("Endpoint principal public key is invalid", { cause: error });
|
|
36
|
+
}
|
|
37
|
+
if (!crypto.verify("sha256", Buffer.from(endpointHelloSigningPayload(payload), "utf8"), {
|
|
38
|
+
key: publicKey,
|
|
39
|
+
dsaEncoding: "ieee-p1363"
|
|
40
|
+
}, Buffer.from(payload.signature, "base64url"))) throw new EndpointAuthenticationError("Endpoint hello signature is invalid");
|
|
41
|
+
if (!this.deps.bindEndpoint(payload.endpointId, principal.id, now)) throw new EndpointAuthenticationError("Endpoint instance belongs to another principal");
|
|
42
|
+
this.usedNonces.set(nonceKey, now + MAX_CLOCK_SKEW_MS);
|
|
43
|
+
this.deps.touchPrincipal(principal.id, now);
|
|
44
|
+
return principal;
|
|
45
|
+
}
|
|
46
|
+
pruneNonces(now) {
|
|
47
|
+
for (const [key, expiresAt] of this.usedNonces) if (expiresAt <= now) this.usedNonces.delete(key);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
//#endregion
|
|
51
|
+
export { EndpointAuthenticationError, EndpointAuthenticator, parseEndpointPublicKey };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { EndpointToolRuntime } from './runtime.js';
|
|
2
|
+
export { EndpointInvocationService, EndpointToolExecutionError, type EndpointInvocationAuditSink, type EndpointInvocationResult, } from './invocation-service.js';
|
|
3
|
+
export { EndpointToolPolicy, EndpointToolPolicyError } from './policy.js';
|
|
4
|
+
export { EndpointRegistry, endpointToolRevision, type EndpointConnectionSnapshot, type RegisteredEndpointTool, } from './registry.js';
|
|
5
|
+
export { EndpointUploadError, EndpointUploadService, ENDPOINT_UPLOAD_MAX_BYTES, type EndpointUploadedFile, type EndpointUploadGrant, } from './upload-service.js';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EndpointToolPolicy, EndpointToolPolicyError } from "./policy.js";
|
|
2
|
+
import { EndpointInvocationService, EndpointToolExecutionError } from "./invocation-service.js";
|
|
3
|
+
import { EndpointRegistry, endpointToolRevision } from "./registry.js";
|
|
4
|
+
import { ENDPOINT_UPLOAD_MAX_BYTES, EndpointUploadError, EndpointUploadService } from "./upload-service.js";
|
|
5
|
+
import { EndpointToolRuntime } from "./runtime.js";
|
|
6
|
+
export { ENDPOINT_UPLOAD_MAX_BYTES, EndpointInvocationService, EndpointRegistry, EndpointToolExecutionError, EndpointToolPolicy, EndpointToolPolicyError, EndpointToolRuntime, EndpointUploadError, EndpointUploadService, endpointToolRevision };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type ClientEndpointMessage, type EndpointToolContent, type EndpointToolErrorCode } from '@xopcai/endpoint-tools-protocol';
|
|
2
|
+
import { EndpointRegistry } from './registry.js';
|
|
3
|
+
import { EndpointToolPolicy } from './policy.js';
|
|
4
|
+
import type { EndpointUploadService } from './upload-service.js';
|
|
5
|
+
type ToolClientMessage = Exclude<ClientEndpointMessage, {
|
|
6
|
+
type: `endpoint.${string}`;
|
|
7
|
+
}>;
|
|
8
|
+
export interface EndpointInvocationAuditSink {
|
|
9
|
+
started(params: {
|
|
10
|
+
id: string;
|
|
11
|
+
principalId: string;
|
|
12
|
+
endpointId: string;
|
|
13
|
+
toolCallId: string;
|
|
14
|
+
toolName: string;
|
|
15
|
+
effect: 'read' | 'write' | 'destructive';
|
|
16
|
+
confirmationRequired: boolean;
|
|
17
|
+
argumentsSha256: string;
|
|
18
|
+
startedAt: number;
|
|
19
|
+
}): void;
|
|
20
|
+
finished(params: {
|
|
21
|
+
id: string;
|
|
22
|
+
status: 'succeeded' | 'failed';
|
|
23
|
+
errorCode?: EndpointToolErrorCode;
|
|
24
|
+
errorMessage?: string;
|
|
25
|
+
completedAt: number;
|
|
26
|
+
}): void;
|
|
27
|
+
}
|
|
28
|
+
export interface EndpointInvocationServiceOptions {
|
|
29
|
+
audit?: EndpointInvocationAuditSink;
|
|
30
|
+
uploads?: EndpointUploadService;
|
|
31
|
+
policy?: EndpointToolPolicy;
|
|
32
|
+
}
|
|
33
|
+
export interface EndpointInvocationResult {
|
|
34
|
+
content: EndpointToolContent[];
|
|
35
|
+
details?: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
export declare class EndpointToolExecutionError extends Error {
|
|
38
|
+
readonly code: EndpointToolErrorCode;
|
|
39
|
+
constructor(code: EndpointToolErrorCode, message: string);
|
|
40
|
+
}
|
|
41
|
+
export declare class EndpointInvocationService {
|
|
42
|
+
private readonly registry;
|
|
43
|
+
private readonly options;
|
|
44
|
+
private readonly pending;
|
|
45
|
+
private readonly policy;
|
|
46
|
+
constructor(registry: EndpointRegistry, options?: EndpointInvocationServiceOptions);
|
|
47
|
+
invoke(params: {
|
|
48
|
+
endpointId: string;
|
|
49
|
+
toolCallId: string;
|
|
50
|
+
toolName: string;
|
|
51
|
+
arguments: Record<string, unknown>;
|
|
52
|
+
descriptorRevision: string;
|
|
53
|
+
signal?: AbortSignal;
|
|
54
|
+
onProgress?: (progress: {
|
|
55
|
+
message?: string;
|
|
56
|
+
percent?: number;
|
|
57
|
+
}) => void;
|
|
58
|
+
}): Promise<EndpointInvocationResult>;
|
|
59
|
+
handleMessage(endpointId: string, message: ToolClientMessage): void;
|
|
60
|
+
failEndpoint(endpointId: string): void;
|
|
61
|
+
close(): void;
|
|
62
|
+
private cancel;
|
|
63
|
+
private succeed;
|
|
64
|
+
private fail;
|
|
65
|
+
private take;
|
|
66
|
+
private error;
|
|
67
|
+
}
|
|
68
|
+
export {};
|