@xopcai/xopc 0.0.142 → 0.0.144
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/feishu/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
- package/dist/extensions/telegram/src/inbound-processor.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +1 -1
- package/dist/extensions/telegram/src/routing-integration.js +2 -2
- package/dist/extensions/telegram/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +1 -1
- package/dist/extensions/weixin/src/plugin.js +1 -1
- package/dist/extensions/weixin/src/workflow-progress.js +1 -1
- package/dist/gateway/static/root/assets/activity-center-store-jITiX2vJ.js +1 -0
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BawPxiu5.js → agent-avatar-dicebear-EAVnrCAs.js} +1 -1
- package/dist/gateway/static/root/assets/agents-5rTuJOtT.js +2 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-81xd1p9R.js → app-management-settings-panel-Bu568NpC.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-DYeQsYU8.js → appearance-settings-DSkm9bp_.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-DWetalKp.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-D_oa7oti.js → archive-plugin-C99N0vV6.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-Cd-bwI2N.js → attachment-load-CHTDqME5.js} +1 -1
- package/dist/gateway/static/root/assets/automation-suggestion-card-CBt6U3-S.js +1 -0
- package/dist/gateway/static/root/assets/automations-page-ICUfxeOz.js +4 -0
- package/dist/gateway/static/root/assets/{binary-plugins-O8svLKWw.js → binary-plugins-BRtxOLlM.js} +1 -1
- package/dist/gateway/static/root/assets/block-editor-CUlXfgXd.js +184 -0
- package/dist/gateway/static/root/assets/browser-settings-page-D7Bj4MKi.js +8 -0
- package/dist/gateway/static/root/assets/{capability-presets-api-dJy1Eqgx.js → capability-presets-api-Bg1ntFSD.js} +1 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-C-8I-Ktn.js +2 -0
- package/dist/gateway/static/root/assets/{channel-recipient-api-Bfuhp2ty.js → channel-recipient-api-DuulnhIj.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-Dm5EqQyK.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-B5lVrUsN.js +1 -0
- package/dist/gateway/static/root/assets/check-BODqo66o.js +1 -0
- package/dist/gateway/static/root/assets/chunk-QUQL4437-DXsxWP7r.js +4 -0
- package/dist/gateway/static/root/assets/circle-alert-RzVebuX2.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-BOzjh-OK.js +2 -0
- package/dist/gateway/static/root/assets/{desktop-pet-DFMfIb5F.js → desktop-pet-C-Drhqyk.js} +1 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-CRGiolqF.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-BrYt1gAr.js → directory-picker-path-field-Dw1L3M84.js} +1 -1
- package/dist/gateway/static/root/assets/dist-SwiI0Xu3.js +1 -0
- package/dist/gateway/static/root/assets/dreaming-settings-CF21cbjo.js +3 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-Bh630pLD.js → extension-debug-page-Dcl8LJG_.js} +1 -1
- package/dist/gateway/static/root/assets/extension-page-i_BXmO_x.js +1 -0
- package/dist/gateway/static/root/assets/extension-settings-page-CWIi7xsn.js +1 -0
- package/dist/gateway/static/root/assets/{fetch-B1WtuprY.js → fetch-8QNN25Sh.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-De2N821l.js → gateway-config-api-2sLP2kkA.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-DMHiZc-2.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-nEujFSDj.js → gateway-startup-retry-5YBnS9Fj.js} +1 -1
- package/dist/gateway/static/root/assets/goal-create-dialog-CAODVDiA.js +1 -0
- package/dist/gateway/static/root/assets/goal-detail-page-_d4DjmeX.js +4 -0
- package/dist/gateway/static/root/assets/{goals-config-api-DUy3eEse.js → goals-config-api-B4qeLKQS.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-lgsop664.js +2 -0
- package/dist/gateway/static/root/assets/goals-settings-Dx_1ZNgb.js +1 -0
- package/dist/gateway/static/root/assets/heartbeat-settings-DeTseEk_.js +1 -0
- package/dist/gateway/static/root/assets/index-CphxClbs.css +1 -0
- package/dist/gateway/static/root/assets/index-VWvztcst.js +257 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CVIwwM15.js → keyboard-shortcuts-settings-BpwpMmlk.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-9_hbTg3j.js +7 -0
- package/dist/gateway/static/root/assets/{markdown-split-B_6us9j7.js → markdown-split-BTRFTK0w.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-D_fryIyj.js → media-plugins-BABfIZPU.js} +1 -1
- package/dist/gateway/static/root/assets/messages-CzKxM6I4.js +5 -0
- package/dist/gateway/static/root/assets/models-hub-panel-B1CUvZxh.js +2 -0
- package/dist/gateway/static/root/assets/notes-page-88QBHW9a.js +1 -0
- package/dist/gateway/static/root/assets/notes-workbench-CerZOeLW.js +2 -0
- package/dist/gateway/static/root/assets/{page-tabs-D_8jGlqx.js → page-tabs-je95DZOf.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-BBLMK8Mp.js → preview-open-alternatives-BJbwi7Rc.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-BmrApldl.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-tTn-k76N.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-DeA2-pOi.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-DVS3FR5r.js → save-bar-controls-qWMQ9mod.js} +1 -1
- package/dist/gateway/static/root/assets/{schedule-field-D6vKd6-T.js → schedule-field-kxd270Gs.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-BPy4lbIh.js → schema-form-DLnD-MuD.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-D4kvvcL1.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-CI1OG4gq.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-WzdikxPt.js → settings-collapsible-section-DQprvu5J.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-CvfzhBV-.js → settings-form-section-Cqq7Y98y.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-loading-skeleton-BxR-Ulhi.js → settings-loading-skeleton-b6rXULL5.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-BtBVz3cX.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-layout-CKefvbYi.js → settings-page-layout-BNJbtklV.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-cmclUJzS.js +1 -0
- package/dist/gateway/static/root/assets/share-preview-page--zO-A1W1.js +2 -0
- package/dist/gateway/static/root/assets/shares-settings-DNJvqA67.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-DWr_0Xgn.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-DEGsTbJx.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-BokgAgf7.js → system-settings-panel-Cq9J7i7v.js} +1 -1
- package/dist/gateway/static/root/assets/{typed-models-lib-BwHlNL3L.js → typed-models-lib-CdSwi1gT.js} +1 -1
- package/dist/gateway/static/root/assets/{use-channel-catalog-DR11ap3A.js → use-channel-catalog-COXIfXcl.js} +1 -1
- package/dist/gateway/static/root/assets/user-context-page-C-V73ZaJ.js +1 -0
- package/dist/gateway/static/root/assets/user-profile-fields-editor-B1cxoGkh.js +1 -0
- package/dist/gateway/static/root/assets/user-profile-settings-panel-B8hlamVB.js +1 -0
- package/dist/gateway/static/root/assets/{utils-BKUWB-TT.js → utils-Dx01V8qF.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-DGpIUelZ.js +1 -0
- package/dist/gateway/static/root/assets/with-selector-aYPsXwdl.js +1 -0
- package/dist/gateway/static/root/assets/work-item-detail-page-fzWTxF26.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CL_rnAUB.js → workflow-run-setup-panel-Dt_x8LGg.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-Bg02zEUh.js +11 -0
- package/dist/gateway/static/root/assets/workflows-page-DLioOiRN.css +1 -0
- package/dist/gateway/static/root/connector-icons/README.md +11 -0
- package/dist/gateway/static/root/connector-icons/airtable.svg +13 -0
- package/dist/gateway/static/root/connector-icons/asana.svg +15 -0
- package/dist/gateway/static/root/connector-icons/brave-search.svg +1 -0
- package/dist/gateway/static/root/connector-icons/clickup.svg +19 -0
- package/dist/gateway/static/root/connector-icons/composio.svg +266 -0
- package/dist/gateway/static/root/connector-icons/discord.svg +15 -0
- package/dist/gateway/static/root/connector-icons/dropbox.svg +152 -0
- package/dist/gateway/static/root/connector-icons/excel.svg +56 -0
- package/dist/gateway/static/root/connector-icons/fetch.svg +6 -0
- package/dist/gateway/static/root/connector-icons/figma.svg +178 -0
- package/dist/gateway/static/root/connector-icons/filesystem.svg +6 -0
- package/dist/gateway/static/root/connector-icons/github.svg +10 -0
- package/dist/gateway/static/root/connector-icons/gmail.svg +3 -0
- package/dist/gateway/static/root/connector-icons/google-calendar.svg +3 -0
- package/dist/gateway/static/root/connector-icons/google-docs.svg +25 -0
- package/dist/gateway/static/root/connector-icons/google-drive.svg +25 -0
- package/dist/gateway/static/root/connector-icons/google-sheets.svg +1 -0
- package/dist/gateway/static/root/connector-icons/hubspot.svg +142 -0
- package/dist/gateway/static/root/connector-icons/jira.svg +15 -0
- package/dist/gateway/static/root/connector-icons/linear.svg +5 -0
- package/dist/gateway/static/root/connector-icons/memory.svg +5 -0
- package/dist/gateway/static/root/connector-icons/microsoft-teams.svg +33 -0
- package/dist/gateway/static/root/connector-icons/notion.svg +5 -0
- package/dist/gateway/static/root/connector-icons/one-drive.svg +13 -0
- package/dist/gateway/static/root/connector-icons/outlook.svg +76 -0
- package/dist/gateway/static/root/connector-icons/playwright.svg +9 -0
- package/dist/gateway/static/root/connector-icons/salesforce.svg +17 -0
- package/dist/gateway/static/root/connector-icons/sequential-thinking.svg +8 -0
- package/dist/gateway/static/root/connector-icons/shopify.svg +5 -0
- package/dist/gateway/static/root/connector-icons/slack.svg +9 -0
- package/dist/gateway/static/root/connector-icons/spotify.svg +43 -0
- package/dist/gateway/static/root/connector-icons/stripe.svg +11 -0
- package/dist/gateway/static/root/connector-icons/telegram.svg +130 -0
- package/dist/gateway/static/root/connector-icons/time.svg +6 -0
- package/dist/gateway/static/root/connector-icons/todoist.svg +277 -0
- package/dist/gateway/static/root/connector-icons/trello.svg +19 -0
- package/dist/gateway/static/root/connector-icons/twitter.svg +128 -0
- package/dist/gateway/static/root/connector-icons/whatsapp.svg +61 -0
- package/dist/gateway/static/root/connector-icons/youtube.svg +11 -0
- package/dist/gateway/static/root/index.html +10 -7
- package/dist/package.js +1 -1
- package/dist/src/activity/emitter.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +2 -0
- package/dist/src/agent/agent-manager.js +12 -4
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/background-review/prompts.d.ts +1 -1
- package/dist/src/agent/background-review/prompts.js +3 -2
- package/dist/src/agent/background-review/prompts.js.map +1 -1
- package/dist/src/agent/code-intelligence/binary.js +1 -1
- package/dist/src/agent/context/project-context.js +2 -2
- package/dist/src/agent/context/workspace-seed.js +2 -2
- package/dist/src/agent/embedded/run-for-session.js +1 -1
- package/dist/src/agent/embedded/session-tool-result-guard.js +1 -1
- package/dist/src/agent/embedded/xopc-tools-bridge.d.ts +9 -0
- package/dist/src/agent/embedded/xopc-tools-bridge.js +71 -3
- package/dist/src/agent/embedded/xopc-tools-bridge.js.map +1 -1
- package/dist/src/agent/goals/post-turn.js +7 -6
- package/dist/src/agent/goals/post-turn.js.map +1 -1
- package/dist/src/agent/ipc/bus.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
- package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +5 -2
- package/dist/src/agent/mcp/mcp-transport.js.map +1 -1
- package/dist/src/agent/memory/context/planner.d.ts +1 -0
- package/dist/src/agent/memory/context/planner.js +60 -14
- package/dist/src/agent/memory/context/planner.js.map +1 -1
- package/dist/src/agent/memory/context/types.d.ts +3 -1
- package/dist/src/agent/memory/lifecycle.d.ts +11 -0
- package/dist/src/agent/memory/lifecycle.js +50 -0
- package/dist/src/agent/memory/lifecycle.js.map +1 -0
- package/dist/src/agent/memory/plugin-discovery.js +1 -1
- package/dist/src/agent/memory/source-origin.d.ts +3 -0
- package/dist/src/agent/memory/source-origin.js +19 -0
- package/dist/src/agent/memory/source-origin.js.map +1 -0
- package/dist/src/agent/memory/understanding/service.js +5 -0
- package/dist/src/agent/memory/understanding/service.js.map +1 -1
- package/dist/src/agent/memory/user-context-coordinator.js +7 -2
- package/dist/src/agent/memory/user-context-coordinator.js.map +1 -1
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
- package/dist/src/agent/prompt/sections/behavior.d.ts +2 -0
- package/dist/src/agent/prompt/sections/behavior.js +30 -1
- package/dist/src/agent/prompt/sections/behavior.js.map +1 -1
- package/dist/src/agent/prompt/sections/tooling.js +1 -1
- package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +8 -1
- package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
- package/dist/src/agent/prompt/system-prompt.d.ts +2 -0
- package/dist/src/agent/prompt/system-prompt.js +6 -3
- package/dist/src/agent/prompt/system-prompt.js.map +1 -1
- package/dist/src/agent/service/process-direct-streaming.js +22 -0
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service.d.ts +2 -0
- package/dist/src/agent/service.js +12 -6
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/session/session-inspector.js +2 -2
- package/dist/src/agent/skills/hub-pull.js +1 -1
- package/dist/src/agent/starter-agents.js +1 -1
- package/dist/src/agent/starter-agents.js.map +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.js +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.js.map +1 -1
- package/dist/src/agent/tools/composio-tool.d.ts +18 -5
- package/dist/src/agent/tools/composio-tool.js +252 -35
- package/dist/src/agent/tools/composio-tool.js.map +1 -1
- package/dist/src/agent/tools/factory.js +7 -3
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/goal-tool.js +2 -2
- package/dist/src/agent/tools/index.d.ts +1 -1
- package/dist/src/agent/tools/index.js +2 -2
- package/dist/src/agent/tools/workflow-tool.d.ts +0 -1
- package/dist/src/agent/tools/workflow-tool.js +4 -17
- package/dist/src/agent/tools/workflow-tool.js.map +1 -1
- package/dist/src/agent/tools/xopc-use-tool.js +1 -1
- package/dist/src/agent/workflow/builtins/index.d.ts +2 -28
- package/dist/src/agent/workflow/builtins/index.js +226 -41
- package/dist/src/agent/workflow/builtins/index.js.map +1 -1
- package/dist/src/agent/workflow/catalog.d.ts +32 -34
- package/dist/src/agent/workflow/catalog.js +158 -154
- package/dist/src/agent/workflow/catalog.js.map +1 -1
- package/dist/src/agent/workflow/index.d.ts +4 -6
- package/dist/src/agent/workflow/index.js +2 -5
- package/dist/src/agent/workflow/snapshot.d.ts +2 -2
- package/dist/src/agent/workflow/snapshot.js +2 -2
- package/dist/src/agent/workflow/snapshot.js.map +1 -1
- package/dist/src/agent/workflow/structured-output-tool.d.ts +2 -2
- package/dist/src/agent/workflow/structured-output-tool.js +2 -2
- package/dist/src/agent/workflow/structured-output-tool.js.map +1 -1
- package/dist/src/agent/workflow/subagent-runner.js +1 -1
- package/dist/src/agent/workflow/types.d.ts +31 -26
- package/dist/src/agent/workspace-runtime/registry.js +2 -2
- package/dist/src/agent-manifest/index.d.ts +1 -0
- package/dist/src/agent-manifest/index.js +3 -1
- package/dist/src/agent-manifest/index.js.map +1 -1
- package/dist/src/agent-manifest/preset-chain.d.ts +10 -0
- package/dist/src/agent-manifest/preset-chain.js +32 -0
- package/dist/src/agent-manifest/preset-chain.js.map +1 -0
- package/dist/src/agent-manifest/resolver.js +3 -10
- package/dist/src/agent-manifest/resolver.js.map +1 -1
- package/dist/src/agent-manifest/schema.d.ts +4 -4
- package/dist/src/automations/api/routes.js +14 -2
- package/dist/src/automations/api/routes.js.map +1 -1
- package/dist/src/automations/domain/validation.d.ts +14 -14
- package/dist/src/automations/draft/automation-draft-validator.d.ts +3 -3
- package/dist/src/automations/service/action-executor.js +2 -2
- package/dist/src/browser/cdp-local-launcher.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.d.ts +11 -1
- package/dist/src/browser/providers/browser-ext-install.js +42 -17
- package/dist/src/browser/providers/browser-ext-install.js.map +1 -1
- package/dist/src/browser/providers/cloakbrowser.js +2 -2
- package/dist/src/browser/providers/playwright-doctor.js +1 -1
- package/dist/src/browser/stealth.js +1 -1
- package/dist/src/capabilities/store-connector.d.ts +0 -1
- package/dist/src/capabilities/store-connector.js +4 -6
- package/dist/src/capabilities/store-connector.js.map +1 -1
- package/dist/src/chat-commands/agent-edit.js +1 -1
- package/dist/src/chat-commands/builtins/config.js +1 -1
- package/dist/src/chat-commands/builtins/goal.js +2 -2
- package/dist/src/chat-commands/builtins/review.js +72 -73
- package/dist/src/chat-commands/builtins/review.js.map +1 -1
- package/dist/src/chat-commands/builtins/workflow.js +9 -54
- package/dist/src/chat-commands/builtins/workflow.js.map +1 -1
- package/dist/src/chat-commands/context.js +1 -1
- package/dist/src/cli/commands/agent.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +2 -2
- package/dist/src/cli/commands/doctor/checks/session-integrity.js +1 -1
- package/dist/src/cli/commands/extension-create.js +2 -2
- package/dist/src/cli/commands/extension-create.js.map +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +43 -37
- package/dist/src/cli/commands/extension-marketplace.js.map +1 -1
- package/dist/src/cli/commands/extension-pack.d.ts +6 -0
- package/dist/src/cli/commands/extension-pack.js +4 -3
- package/dist/src/cli/commands/extension-pack.js.map +1 -1
- package/dist/src/cli/commands/goal.js +2 -2
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/project.js +3 -3
- package/dist/src/commands/agents.config.d.ts +1 -0
- package/dist/src/commands/agents.config.js +1 -0
- package/dist/src/commands/agents.config.js.map +1 -1
- package/dist/src/config/gateway-bind.js +1 -1
- package/dist/src/config/index.js +1 -1
- package/dist/src/config/loader.js +1 -1
- package/dist/src/config/models-json.js +1 -1
- package/dist/src/config/schema.d.ts +6 -6
- package/dist/src/config/schema.js +6 -22
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/web-patch.d.ts +1 -1
- package/dist/src/connectors/approval.d.ts +2 -0
- package/dist/src/connectors/approval.js +33 -0
- package/dist/src/connectors/approval.js.map +1 -0
- package/dist/src/connectors/auth-provider-registry.d.ts +9 -0
- package/dist/src/connectors/auth-provider-registry.js +17 -0
- package/dist/src/connectors/auth-provider-registry.js.map +1 -0
- package/dist/src/connectors/builtin-catalog.js +55 -116
- package/dist/src/connectors/builtin-catalog.js.map +1 -1
- package/dist/src/connectors/catalog.js +7 -2
- package/dist/src/connectors/catalog.js.map +1 -1
- package/dist/src/connectors/composio-catalog.d.ts +19 -0
- package/dist/src/connectors/composio-catalog.js +237 -0
- package/dist/src/connectors/composio-catalog.js.map +1 -0
- package/dist/src/connectors/composio-logo.d.ts +1 -0
- package/dist/src/connectors/composio-logo.js +51 -0
- package/dist/src/connectors/composio-logo.js.map +1 -0
- package/dist/src/connectors/composio-sessions.d.ts +116 -0
- package/dist/src/connectors/composio-sessions.js +296 -0
- package/dist/src/connectors/composio-sessions.js.map +1 -0
- package/dist/src/connectors/composio-triggers.d.ts +17 -0
- package/dist/src/connectors/composio-triggers.js +48 -5
- package/dist/src/connectors/composio-triggers.js.map +1 -1
- package/dist/src/connectors/composio.d.ts +31 -2
- package/dist/src/connectors/composio.js +374 -151
- package/dist/src/connectors/composio.js.map +1 -1
- package/dist/src/connectors/connector-memory-sync.d.ts +15 -0
- package/dist/src/connectors/connector-memory-sync.js +90 -0
- package/dist/src/connectors/connector-memory-sync.js.map +1 -0
- package/dist/src/connectors/install.js +35 -92
- package/dist/src/connectors/install.js.map +1 -1
- package/dist/src/connectors/instances.js +6 -2
- package/dist/src/connectors/instances.js.map +1 -1
- package/dist/src/connectors/integration-strategy.d.ts +3 -0
- package/dist/src/connectors/integration-strategy.js +29 -0
- package/dist/src/connectors/integration-strategy.js.map +1 -0
- package/dist/src/connectors/policy.d.ts +13 -0
- package/dist/src/connectors/policy.js +48 -0
- package/dist/src/connectors/policy.js.map +1 -0
- package/dist/src/connectors/providers.js +1 -1
- package/dist/src/connectors/runtime-adapter-registry.d.ts +25 -0
- package/dist/src/connectors/runtime-adapter-registry.js +154 -0
- package/dist/src/connectors/runtime-adapter-registry.js.map +1 -0
- package/dist/src/connectors/types.d.ts +113 -4
- package/dist/src/connectors/workflow-preflight.d.ts +20 -0
- package/dist/src/connectors/workflow-preflight.js +70 -0
- package/dist/src/connectors/workflow-preflight.js.map +1 -0
- package/dist/src/daemon/launchd.js +1 -1
- package/dist/src/daemon/systemd.js +1 -1
- package/dist/src/extensions/discover-extensions.js +1 -1
- package/dist/src/extensions/install-transaction.d.ts +16 -0
- package/dist/src/extensions/install-transaction.js +76 -0
- package/dist/src/extensions/install-transaction.js.map +1 -0
- package/dist/src/extensions/install.d.ts +2 -0
- package/dist/src/extensions/install.js +23 -1
- package/dist/src/extensions/install.js.map +1 -1
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/gateway/agents-admin.d.ts +2 -0
- package/dist/src/gateway/agents-admin.js +7 -0
- package/dist/src/gateway/agents-admin.js.map +1 -1
- package/dist/src/gateway/capability-presets-admin.d.ts +11 -0
- package/dist/src/gateway/capability-presets-admin.js +11 -4
- package/dist/src/gateway/capability-presets-admin.js.map +1 -1
- package/dist/src/gateway/chat-stream/mapper.js +17 -0
- package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
- package/dist/src/gateway/chat-stream/protocol.d.ts +18 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +3 -3
- package/dist/src/gateway/hono/lib/static-ui.js +1 -1
- package/dist/src/gateway/hono/routes/agents.js +3 -0
- package/dist/src/gateway/hono/routes/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/capability-presets.js +19 -1
- package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -1
- package/dist/src/gateway/hono/routes/connectors.js +188 -25
- package/dist/src/gateway/hono/routes/connectors.js.map +1 -1
- package/dist/src/gateway/hono/routes/goals.js +22 -3
- package/dist/src/gateway/hono/routes/goals.js.map +1 -1
- package/dist/src/gateway/hono/routes/home.d.ts +60 -1
- package/dist/src/gateway/hono/routes/home.js +244 -18
- package/dist/src/gateway/hono/routes/home.js.map +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/memory.js +17 -4
- package/dist/src/gateway/hono/routes/memory.js.map +1 -1
- package/dist/src/gateway/hono/routes/projects.js +106 -5
- package/dist/src/gateway/hono/routes/projects.js.map +1 -1
- package/dist/src/gateway/hono/routes/public-gateway.js +93 -0
- package/dist/src/gateway/hono/routes/public-gateway.js.map +1 -1
- package/dist/src/gateway/hono/routes/workflows.js +137 -22
- package/dist/src/gateway/hono/routes/workflows.js.map +1 -1
- package/dist/src/gateway/hono/routes/you.d.ts +23 -0
- package/dist/src/gateway/hono/routes/you.js +538 -0
- package/dist/src/gateway/hono/routes/you.js.map +1 -0
- package/dist/src/gateway/hono/sse.d.ts +2 -1
- package/dist/src/gateway/hono/sse.js +2 -1
- package/dist/src/gateway/hono/sse.js.map +1 -1
- package/dist/src/gateway/lock.js +1 -1
- package/dist/src/gateway/ports.js +1 -1
- package/dist/src/gateway/service/marketplace-service.d.ts +13 -1
- package/dist/src/gateway/service/marketplace-service.js +96 -40
- package/dist/src/gateway/service/marketplace-service.js.map +1 -1
- package/dist/src/gateway/service.d.ts +2 -0
- package/dist/src/gateway/service.js +13 -7
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/goals/goal-service.d.ts +7 -5
- package/dist/src/goals/goal-service.js +25 -13
- package/dist/src/goals/goal-service.js.map +1 -1
- package/dist/src/goals/goal-store.js +46 -7
- package/dist/src/goals/goal-store.js.map +1 -1
- package/dist/src/goals/goal-workflow-judge.js +1 -1
- package/dist/src/goals/types.d.ts +24 -0
- package/dist/src/infra/ports.js +1 -1
- package/dist/src/infra/ssh-tunnel.js +1 -1
- package/dist/src/infra/update-check.js +1 -1
- package/dist/src/migrations/runner.js +1 -1
- package/dist/src/notes/service.js +3 -3
- package/dist/src/notes/store.js +1 -1
- package/dist/src/projects/project-service.js +1 -1
- package/dist/src/projects/workspace.js +1 -1
- package/dist/src/routing/agent-session-key.js +1 -1
- package/dist/src/routing/resolve-route.js +1 -1
- package/dist/src/routing/resolve-tui-session-key.js +1 -1
- package/dist/src/session/init-session-turn.js +1 -1
- package/dist/src/session/resolve-session.js +1 -1
- package/dist/src/session/session-title.js +2 -2
- package/dist/src/session/store.js +1 -1
- package/dist/src/storage/sqlite/connection.js +1 -1
- package/dist/src/storage/sqlite/connector-repository.d.ts +49 -0
- package/dist/src/storage/sqlite/connector-repository.js +385 -0
- package/dist/src/storage/sqlite/connector-repository.js.map +1 -0
- package/dist/src/storage/sqlite/index.d.ts +3 -0
- package/dist/src/storage/sqlite/index.js +4 -1
- package/dist/src/storage/sqlite/migrations/030_connectors.sql +94 -0
- package/dist/src/storage/sqlite/migrations/031_connector_approvals.sql +24 -0
- package/dist/src/storage/sqlite/migrations/032_connector_webhook_deliveries.sql +15 -0
- package/dist/src/storage/sqlite/migrations/033_user_trust_policies.sql +6 -0
- package/dist/src/storage/sqlite/migrations/034_allow_global_auto_trust.sql +14 -0
- package/dist/src/storage/sqlite/migrations/035_user_profile_prompt_state.sql +7 -0
- package/dist/src/storage/sqlite/migrations/036_goal_outcome_metric.sql +12 -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.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/row-mappers.js +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/user-profile-setup-repository.d.ts +3 -0
- package/dist/src/storage/sqlite/user-profile-setup-repository.js +34 -0
- package/dist/src/storage/sqlite/user-profile-setup-repository.js.map +1 -0
- package/dist/src/storage/sqlite/user-trust-repository.d.ts +3 -0
- package/dist/src/storage/sqlite/user-trust-repository.js +34 -0
- package/dist/src/storage/sqlite/user-trust-repository.js.map +1 -0
- package/dist/src/tui/backends/embedded-backend.js +4 -4
- package/dist/src/tui/clipboard-image.js +1 -1
- package/dist/src/tui/components/assistant-message.js +15 -0
- package/dist/src/tui/components/assistant-message.js.map +1 -1
- package/dist/src/tui/tui-agent-events.js +85 -1
- package/dist/src/tui/tui-agent-events.js.map +1 -1
- package/dist/src/tui/tui-command-formatters.js +9 -9
- package/dist/src/tui/tui-command-formatters.js.map +1 -1
- package/dist/src/tui/tui-commands.js +4 -4
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui.js +1 -1
- package/dist/src/user-context/import.d.ts +12 -0
- package/dist/src/user-context/import.js +48 -0
- package/dist/src/user-context/import.js.map +1 -0
- package/dist/src/user-context/profile.d.ts +37 -0
- package/dist/src/user-context/profile.js +165 -0
- package/dist/src/user-context/profile.js.map +1 -0
- package/dist/src/user-context/projection.d.ts +54 -0
- package/dist/src/user-context/projection.js +121 -0
- package/dist/src/user-context/projection.js.map +1 -0
- package/dist/src/user-context/source-recommendations.d.ts +13 -0
- package/dist/src/user-context/source-recommendations.js +86 -0
- package/dist/src/user-context/source-recommendations.js.map +1 -0
- package/dist/src/user-context/trust-policy.d.ts +11 -0
- package/dist/src/user-context/trust-policy.js +31 -0
- package/dist/src/user-context/trust-policy.js.map +1 -0
- package/dist/src/utils/index.js +1 -1
- package/dist/src/utils/logger/index.js +1 -1
- package/dist/src/utils/logger.js +1 -1
- package/dist/src/work-items/work-item-service.js +1 -1
- package/dist/src/workflows/authoring/index.d.ts +1 -0
- package/dist/src/workflows/authoring/index.js +2 -0
- package/dist/src/workflows/authoring/workflow-draft-store.d.ts +33 -0
- package/dist/src/workflows/authoring/workflow-draft-store.js +74 -0
- package/dist/src/workflows/authoring/workflow-draft-store.js.map +1 -0
- package/dist/src/workflows/domain/definition-utils.d.ts +6 -4
- package/dist/src/workflows/domain/definition-utils.js +28 -26
- package/dist/src/workflows/domain/definition-utils.js.map +1 -1
- package/dist/src/workflows/domain/definition.d.ts +79 -6
- package/dist/src/workflows/domain/event.d.ts +18 -2
- package/dist/src/workflows/domain/index.js +3 -3
- package/dist/src/workflows/domain/run.d.ts +16 -2
- package/dist/src/workflows/domain/run.js.map +1 -1
- package/dist/src/workflows/domain/validation.d.ts +9 -5
- package/dist/src/workflows/domain/validation.js +183 -40
- package/dist/src/workflows/domain/validation.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft-prompt.d.ts +2 -3
- package/dist/src/workflows/draft/workflow-draft-prompt.js +31 -73
- package/dist/src/workflows/draft/workflow-draft-prompt.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft-service.js +5 -9
- package/dist/src/workflows/draft/workflow-draft-service.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft-validator.js +29 -37
- package/dist/src/workflows/draft/workflow-draft-validator.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft.types.d.ts +4 -4
- package/dist/src/workflows/engine/projector.js +43 -1
- package/dist/src/workflows/engine/projector.js.map +1 -1
- package/dist/src/workflows/engine/workflow-engine.d.ts +2 -3
- package/dist/src/workflows/engine/workflow-engine.js +24 -4
- package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
- package/dist/src/workflows/index.js +4 -7
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +1 -9
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.js.map +1 -1
- package/dist/src/workflows/runtime/graph-workflow-runtime.d.ts +10 -0
- package/dist/src/workflows/runtime/graph-workflow-runtime.js +295 -0
- package/dist/src/workflows/runtime/graph-workflow-runtime.js.map +1 -0
- package/dist/src/workflows/runtime/index.d.ts +1 -2
- package/dist/src/workflows/runtime/index.js +2 -5
- package/dist/src/workflows/runtime/workflow-runtime-port.d.ts +5 -8
- package/dist/src/workflows/service/workflow-run-service.js +15 -1
- package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
- package/dist/src/workflows/service/workflow-run-service.types.d.ts +2 -1
- package/dist/src/workflows/service/workflow-session-bridge.js +3 -3
- package/package.json +5 -4
- package/dist/gateway/static/root/assets/agents-CyvCIHnB.js +0 -2
- package/dist/gateway/static/root/assets/apps-page-DK_Vx6nl.js +0 -1
- package/dist/gateway/static/root/assets/automation-suggestion-card-B1LV3YYv.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-fzrovqhv.js +0 -4
- package/dist/gateway/static/root/assets/block-editor-Dhj5f4Bx.js +0 -184
- package/dist/gateway/static/root/assets/browser-settings-page-BDn-n-UB.js +0 -8
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-Co5ipo_Q.js +0 -1
- package/dist/gateway/static/root/assets/channels-settings-BWlpaxg9.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-D_jkIZLV.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BcekbW4q.js +0 -2
- package/dist/gateway/static/root/assets/desktop-pet-settings-BJCUuL8Y.js +0 -1
- package/dist/gateway/static/root/assets/dist-Mys7eFJ5.js +0 -1
- package/dist/gateway/static/root/assets/dreaming-settings-BN1Z2mIo.js +0 -3
- package/dist/gateway/static/root/assets/extension-page-B-1KxvVy.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-BF9NACI3.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-DN9sNREz.js +0 -1
- package/dist/gateway/static/root/assets/goal-create-dialog-BpoQW8cD.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-CBRSPd0b.js +0 -4
- package/dist/gateway/static/root/assets/goals-page-BCcBi407.js +0 -2
- package/dist/gateway/static/root/assets/goals-settings-pkTXzXkh.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-ezsufgLQ.js +0 -1
- package/dist/gateway/static/root/assets/index-B8s8Pq5U.css +0 -1
- package/dist/gateway/static/root/assets/index-DcUaXYeb.js +0 -262
- package/dist/gateway/static/root/assets/logs-page-DQtTRXtj.js +0 -7
- package/dist/gateway/static/root/assets/messages-BXNELNBa.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-BP2M9n6Q.js +0 -2
- package/dist/gateway/static/root/assets/notes-page-CspveYaO.js +0 -1
- package/dist/gateway/static/root/assets/notes-workbench-BHwzJ0OC.js +0 -2
- package/dist/gateway/static/root/assets/project-detail-page-Dy3rsobs.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-CWKpPE0L.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CqNRyXEo.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-MEME7ivF.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-JVd0qaSF.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-DYEbB1EV.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-dWN8BJ3z.js +0 -1
- package/dist/gateway/static/root/assets/share-preview-page-D8foINzP.js +0 -2
- package/dist/gateway/static/root/assets/shares-settings-Tgbv1s7G.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-D_YK0b_Z.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-DGytfoZK.js +0 -2
- package/dist/gateway/static/root/assets/toast-z0toXu32.js +0 -1
- package/dist/gateway/static/root/assets/user-profile-settings-panel-8YtygcJp.js +0 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-BVH71EFf.js +0 -1
- package/dist/gateway/static/root/assets/work-item-detail-page-JeTE7XNM.js +0 -1
- package/dist/gateway/static/root/assets/workflow-start-dialog-_u8Uc1ze.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-ixgk_y1l.js +0 -18
- package/dist/src/agent/workflow/builtins/audit-repo.d.ts +0 -13
- package/dist/src/agent/workflow/builtins/audit-repo.js +0 -183
- package/dist/src/agent/workflow/builtins/audit-repo.js.map +0 -1
- package/dist/src/agent/workflow/builtins/client-proposal.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/client-proposal.js +0 -164
- package/dist/src/agent/workflow/builtins/client-proposal.js.map +0 -1
- package/dist/src/agent/workflow/builtins/competitor-scan.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/competitor-scan.js +0 -164
- package/dist/src/agent/workflow/builtins/competitor-scan.js.map +0 -1
- package/dist/src/agent/workflow/builtins/content-draft.d.ts +0 -13
- package/dist/src/agent/workflow/builtins/content-draft.js +0 -159
- package/dist/src/agent/workflow/builtins/content-draft.js.map +0 -1
- package/dist/src/agent/workflow/builtins/content-repurpose.d.ts +0 -11
- package/dist/src/agent/workflow/builtins/content-repurpose.js +0 -146
- package/dist/src/agent/workflow/builtins/content-repurpose.js.map +0 -1
- package/dist/src/agent/workflow/builtins/debug-incident.d.ts +0 -13
- package/dist/src/agent/workflow/builtins/debug-incident.js +0 -177
- package/dist/src/agent/workflow/builtins/debug-incident.js.map +0 -1
- package/dist/src/agent/workflow/builtins/decision-compare.d.ts +0 -13
- package/dist/src/agent/workflow/builtins/decision-compare.js +0 -187
- package/dist/src/agent/workflow/builtins/decision-compare.js.map +0 -1
- package/dist/src/agent/workflow/builtins/implementation-plan.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/implementation-plan.js +0 -185
- package/dist/src/agent/workflow/builtins/implementation-plan.js.map +0 -1
- package/dist/src/agent/workflow/builtins/inbox-triage.d.ts +0 -11
- package/dist/src/agent/workflow/builtins/inbox-triage.js +0 -158
- package/dist/src/agent/workflow/builtins/inbox-triage.js.map +0 -1
- package/dist/src/agent/workflow/builtins/meeting-prep.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/meeting-prep.js +0 -152
- package/dist/src/agent/workflow/builtins/meeting-prep.js.map +0 -1
- package/dist/src/agent/workflow/builtins/multi-perspective-review.d.ts +0 -14
- package/dist/src/agent/workflow/builtins/multi-perspective-review.js +0 -171
- package/dist/src/agent/workflow/builtins/multi-perspective-review.js.map +0 -1
- package/dist/src/agent/workflow/builtins/offer-design.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/offer-design.js +0 -170
- package/dist/src/agent/workflow/builtins/offer-design.js.map +0 -1
- package/dist/src/agent/workflow/builtins/pr-review.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/pr-review.js +0 -178
- package/dist/src/agent/workflow/builtins/pr-review.js.map +0 -1
- package/dist/src/agent/workflow/builtins/release-check.d.ts +0 -11
- package/dist/src/agent/workflow/builtins/release-check.js +0 -174
- package/dist/src/agent/workflow/builtins/release-check.js.map +0 -1
- package/dist/src/agent/workflow/builtins/research.d.ts +0 -13
- package/dist/src/agent/workflow/builtins/research.js +0 -188
- package/dist/src/agent/workflow/builtins/research.js.map +0 -1
- package/dist/src/agent/workflow/builtins/weekly-review.d.ts +0 -12
- package/dist/src/agent/workflow/builtins/weekly-review.js +0 -139
- package/dist/src/agent/workflow/builtins/weekly-review.js.map +0 -1
- package/dist/src/agent/workflow/last-run-memory.d.ts +0 -42
- package/dist/src/agent/workflow/last-run-memory.js +0 -60
- package/dist/src/agent/workflow/last-run-memory.js.map +0 -1
- package/dist/src/agent/workflow/lint.d.ts +0 -38
- package/dist/src/agent/workflow/lint.js +0 -74
- package/dist/src/agent/workflow/lint.js.map +0 -1
- package/dist/src/agent/workflow/meta-locale.d.ts +0 -12
- package/dist/src/agent/workflow/meta-locale.js +0 -62
- package/dist/src/agent/workflow/meta-locale.js.map +0 -1
- package/dist/src/agent/workflow/parser.d.ts +0 -20
- package/dist/src/agent/workflow/parser.js +0 -152
- package/dist/src/agent/workflow/parser.js.map +0 -1
- package/dist/src/agent/workflow/runtime.d.ts +0 -34
- package/dist/src/agent/workflow/runtime.js +0 -402
- package/dist/src/agent/workflow/runtime.js.map +0 -1
- package/dist/src/connectors/oauth.d.ts +0 -22
- package/dist/src/connectors/oauth.js +0 -99
- package/dist/src/connectors/oauth.js.map +0 -1
- package/dist/src/workflows/runtime/script-runtime.d.ts +0 -3
- package/dist/src/workflows/runtime/script-runtime.js +0 -3
- package/dist/src/workflows/runtime/script-workflow-runtime.d.ts +0 -5
- package/dist/src/workflows/runtime/script-workflow-runtime.js +0 -15
- package/dist/src/workflows/runtime/script-workflow-runtime.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
|
|
1
2
|
import { isXopcDatabaseOpen } from "../storage/sqlite/connection.js";
|
|
2
3
|
import { getSessionMetadata } from "../storage/sqlite/session-repository.js";
|
|
3
4
|
import "../storage/sqlite/index.js";
|
|
4
|
-
import { resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
|
|
5
5
|
import { projectWorkspacePath } from "../session/session-workspace.js";
|
|
6
6
|
import { ProjectStore } from "./project-store.js";
|
|
7
7
|
//#region src/projects/workspace.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
|
-
import { init_string_coerce, normalizeLowercaseStringOrEmpty } from "../utils/string-coerce.js";
|
|
3
2
|
import { DEFAULT_ACCOUNT_ID, init_account_id, normalizeAccountId, normalizeOptionalAccountId } from "./account-id.js";
|
|
3
|
+
import { init_string_coerce, normalizeLowercaseStringOrEmpty } from "../utils/string-coerce.js";
|
|
4
4
|
import { getSubagentDepth, init_session_key_utils, isAcpSessionKey, isCronSessionKey, isSubagentSessionKey, parseAgentSessionKey, parseThreadSessionSuffix } from "./session-key-utils.js";
|
|
5
5
|
//#region src/routing/agent-session-key.ts
|
|
6
6
|
function normalizeToken(value) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { init_agent_scope, resolveDefaultAgentId } from "../agent/agent-scope.js";
|
|
2
3
|
import { init_account_id, normalizeAccountId } from "./account-id.js";
|
|
3
4
|
import { buildAgentMainSessionKey, buildAgentPeerSessionKey, init_agent_session_key, normalizeSessionKey } from "./agent-session-key.js";
|
|
4
|
-
import { init_agent_scope, resolveDefaultAgentId } from "../agent/agent-scope.js";
|
|
5
5
|
import { buildSessionKey, init_session_key, parseSessionKey } from "./session-key.js";
|
|
6
6
|
import { init_bindings, parseBindingRules, resolveRoute as resolveRoute$1 } from "./bindings.js";
|
|
7
7
|
//#region src/routing/resolve-route.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { init_agent_scope, listAgentEntries, resolveAgentIdByWorkspacePath, resolveDefaultAgentId } from "../agent/agent-scope.js";
|
|
1
2
|
import { init_string_coerce, normalizeLowercaseStringOrEmpty } from "../utils/string-coerce.js";
|
|
2
3
|
import { parseAgentSessionKey } from "./session-key-utils.js";
|
|
3
4
|
import { buildAgentMainSessionKey, init_agent_session_key, normalizeAgentId, normalizeMainKey } from "./agent-session-key.js";
|
|
4
|
-
import { init_agent_scope, listAgentEntries, resolveAgentIdByWorkspacePath, resolveDefaultAgentId } from "../agent/agent-scope.js";
|
|
5
5
|
import { randomUUID } from "node:crypto";
|
|
6
6
|
//#region src/routing/resolve-tui-session-key.ts
|
|
7
7
|
init_agent_scope();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { SessionConfigSchema, init_schema } from "../config/schema.js";
|
|
1
2
|
import { createLogger } from "../utils/logger/index.js";
|
|
2
3
|
import { init_logger } from "../utils/logger.js";
|
|
3
4
|
import { requireXopcDatabase } from "../storage/sqlite/connection.js";
|
|
4
5
|
import "../storage/sqlite/index.js";
|
|
5
|
-
import { SessionConfigSchema, init_schema } from "../config/schema.js";
|
|
6
6
|
import { evaluateSessionFreshness, resolveSessionResetPolicy } from "./reset-policy.js";
|
|
7
7
|
import { resolveChannelResetConfig, resolveSessionResetType } from "./reset-type.js";
|
|
8
8
|
import { resolveSessionLifecycleTimestamps } from "./lifecycle-timestamps.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { SessionConfigSchema, init_schema } from "../config/schema.js";
|
|
1
2
|
import { createLogger } from "../utils/logger/index.js";
|
|
2
3
|
import { init_logger } from "../utils/logger.js";
|
|
3
4
|
import { requireXopcDatabase } from "../storage/sqlite/connection.js";
|
|
4
5
|
import { findSessionKeyBySessionId, getSessionMetadata, getSessionPersistedLevels } from "../storage/sqlite/session-repository.js";
|
|
5
6
|
import "../storage/sqlite/index.js";
|
|
6
|
-
import { SessionConfigSchema, init_schema } from "../config/schema.js";
|
|
7
7
|
import { normalizeThinkLevel, normalizeVerboseLevel } from "../agent/transcript/thinking-types.js";
|
|
8
8
|
import { evaluateSessionFreshness, resolveSessionResetPolicy } from "./reset-policy.js";
|
|
9
9
|
import { resolveChannelResetConfig, resolveSessionResetType } from "./reset-type.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { createLogger } from "../utils/logger/index.js";
|
|
2
|
-
import { init_logger } from "../utils/logger.js";
|
|
3
1
|
import { isCronSessionKey } from "../routing/session-key-utils.js";
|
|
4
2
|
import { init_session_key, parseSessionKey } from "../routing/session-key.js";
|
|
3
|
+
import { createLogger } from "../utils/logger/index.js";
|
|
4
|
+
import { init_logger } from "../utils/logger.js";
|
|
5
5
|
import { init_providers, resolveModel } from "../providers/index.js";
|
|
6
6
|
import { completeWithResolvedCredentials } from "../providers/model-call.js";
|
|
7
7
|
import { readAgentMessageContent } from "../agent/memory/agent-message-access.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { init_paths_state, resolveStateDir } from "../config/paths-state.js";
|
|
2
|
+
import { resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
|
|
2
3
|
import { createLogger } from "../utils/logger/index.js";
|
|
3
4
|
import { init_logger } from "../utils/logger.js";
|
|
4
5
|
import { requireXopcDatabase } from "../storage/sqlite/connection.js";
|
|
@@ -8,7 +9,6 @@ import { estimateTokensFromMessages } from "../storage/sqlite/row-mappers.js";
|
|
|
8
9
|
import { deleteSessionRecord, ensureSessionRecord, findSessionKeyBySessionId, getGlobalSessionStats, getSessionMetadata, listSessionMetadata, listSessionsByAgent, patchSessionMetadata, resetSessionRecord } from "../storage/sqlite/session-repository.js";
|
|
9
10
|
import { appendTranscriptEntry, captureCompactionCheckpoint, getCompactionCheckpointDetail, listCompactionCheckpoints, loadCheckpointRows, loadLlmMessagesForSession, loadTranscriptRowsForSession, paginateTranscriptMessages, replaceTranscriptRows, restoreCompactionCheckpoint } from "../storage/sqlite/transcript-repository.js";
|
|
10
11
|
import "../storage/sqlite/index.js";
|
|
11
|
-
import { resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
|
|
12
12
|
import { readPostCompactionContext } from "../agent/reply/post-compaction-context.js";
|
|
13
13
|
import { SessionCompactor } from "../agent/memory/compaction.js";
|
|
14
14
|
import { SlidingWindow } from "../agent/memory/window.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { resolveXopcDatabasePath } from "../../config/paths-state.js";
|
|
2
2
|
import { createLogger } from "../../utils/logger/index.js";
|
|
3
3
|
import { init_logger } from "../../utils/logger.js";
|
|
4
|
-
import { ensureXopcDatabaseSchema } from "./schema.js";
|
|
5
4
|
import { requireNodeSqlite } from "../../infra/node-sqlite.js";
|
|
6
5
|
import { installSqliteTransientRejectionHandler } from "../../infra/unhandled-rejections.js";
|
|
6
|
+
import { ensureXopcDatabaseSchema } from "./schema.js";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import fs from "node:fs";
|
|
9
9
|
import childProcess from "node:child_process";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { ConnectorActionMetadata, ConnectorApprovalRecord, ConnectorConnection, ConnectorDefinition, ConnectorExecutionAuditRecord, ConnectorInstallationPolicy } from '../../connectors/types.js';
|
|
2
|
+
export type CachedConnectorCatalogEntry = {
|
|
3
|
+
connectorId: string;
|
|
4
|
+
provider: string;
|
|
5
|
+
definition: ConnectorDefinition;
|
|
6
|
+
fetchedAt: string;
|
|
7
|
+
expiresAt?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function createConnectorApproval(input: Omit<ConnectorApprovalRecord, 'id' | 'status' | 'createdAt'> & Partial<Pick<ConnectorApprovalRecord, 'id' | 'status' | 'createdAt'>>): ConnectorApprovalRecord;
|
|
10
|
+
export declare function getConnectorApproval(id: string): ConnectorApprovalRecord | undefined;
|
|
11
|
+
export declare function listConnectorApprovals(options?: {
|
|
12
|
+
principalId?: string;
|
|
13
|
+
sessionKey?: string;
|
|
14
|
+
status?: ConnectorApprovalRecord['status'];
|
|
15
|
+
limit?: number;
|
|
16
|
+
}): ConnectorApprovalRecord[];
|
|
17
|
+
export declare function decideConnectorApproval(id: string, decision: 'approved' | 'denied', now?: Date): ConnectorApprovalRecord | undefined;
|
|
18
|
+
export declare function consumeConnectorApproval(id: string, argumentsHash: string, now?: Date): ConnectorApprovalRecord | undefined;
|
|
19
|
+
export declare function upsertConnectorCatalogEntry(input: CachedConnectorCatalogEntry): CachedConnectorCatalogEntry;
|
|
20
|
+
export declare function getCachedConnectorCatalogEntry(connectorId: string): CachedConnectorCatalogEntry | undefined;
|
|
21
|
+
export declare function listCachedConnectorCatalogEntries(provider?: string): CachedConnectorCatalogEntry[];
|
|
22
|
+
export declare function upsertConnectorInstallation(input: Omit<ConnectorInstallationPolicy, 'createdAt' | 'updatedAt'> & Partial<Pick<ConnectorInstallationPolicy, 'createdAt' | 'updatedAt'>>): ConnectorInstallationPolicy;
|
|
23
|
+
export declare function getConnectorInstallation(id: string): ConnectorInstallationPolicy | undefined;
|
|
24
|
+
export declare function listConnectorInstallations(principalId?: string): ConnectorInstallationPolicy[];
|
|
25
|
+
export declare function deleteConnectorInstallation(id: string): boolean;
|
|
26
|
+
export declare function upsertConnectorConnection(input: Omit<ConnectorConnection, 'createdAt' | 'updatedAt'> & Partial<Pick<ConnectorConnection, 'createdAt' | 'updatedAt'>>): ConnectorConnection;
|
|
27
|
+
export declare function getConnectorConnection(id: string): ConnectorConnection | undefined;
|
|
28
|
+
export declare function listConnectorConnections(options?: {
|
|
29
|
+
principalId?: string;
|
|
30
|
+
connectorId?: string;
|
|
31
|
+
}): ConnectorConnection[];
|
|
32
|
+
export declare function deleteConnectorConnection(id: string): boolean;
|
|
33
|
+
export declare function upsertConnectorActionMetadata(input: ConnectorActionMetadata): ConnectorActionMetadata;
|
|
34
|
+
export declare function listConnectorActionMetadata(connectorId: string): ConnectorActionMetadata[];
|
|
35
|
+
export declare function appendConnectorExecutionAudit(input: Omit<ConnectorExecutionAuditRecord, 'id' | 'createdAt'> & Partial<Pick<ConnectorExecutionAuditRecord, 'id' | 'createdAt'>>): ConnectorExecutionAuditRecord;
|
|
36
|
+
export declare function listConnectorExecutionAudit(options?: {
|
|
37
|
+
principalId?: string;
|
|
38
|
+
connectorId?: string;
|
|
39
|
+
limit?: number;
|
|
40
|
+
}): ConnectorExecutionAuditRecord[];
|
|
41
|
+
export declare function claimConnectorWebhookDelivery(input: {
|
|
42
|
+
id: string;
|
|
43
|
+
provider: string;
|
|
44
|
+
payloadHash: string;
|
|
45
|
+
now?: Date;
|
|
46
|
+
leaseMs?: number;
|
|
47
|
+
}): 'claimed' | 'processed' | 'in_flight';
|
|
48
|
+
export declare function completeConnectorWebhookDelivery(id: string, now?: Date): void;
|
|
49
|
+
export declare function releaseConnectorWebhookDelivery(id: string, error: unknown): void;
|
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
import { getSqliteDatabase, runSqliteWriteTransaction } from "./transaction.js";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
3
|
+
//#region src/storage/sqlite/connector-repository.ts
|
|
4
|
+
function parseStringArray(value) {
|
|
5
|
+
try {
|
|
6
|
+
const parsed = JSON.parse(value);
|
|
7
|
+
return Array.isArray(parsed) ? parsed.filter((item) => typeof item === "string") : [];
|
|
8
|
+
} catch {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function parseObject(value) {
|
|
13
|
+
try {
|
|
14
|
+
const parsed = JSON.parse(value);
|
|
15
|
+
return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {};
|
|
16
|
+
} catch {
|
|
17
|
+
return {};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function installationFromRow(row) {
|
|
21
|
+
return {
|
|
22
|
+
id: row.id,
|
|
23
|
+
connectorId: row.connector_id,
|
|
24
|
+
principalId: row.principal_id,
|
|
25
|
+
enabled: row.enabled === 1,
|
|
26
|
+
allowedAgentIds: parseStringArray(row.allowed_agent_ids_json),
|
|
27
|
+
maxScope: row.max_scope,
|
|
28
|
+
confirmationPolicy: row.confirmation_policy,
|
|
29
|
+
selectedConnectionIds: parseStringArray(row.selected_connection_ids_json),
|
|
30
|
+
createdAt: row.created_at,
|
|
31
|
+
updatedAt: row.updated_at
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function connectionFromRow(row) {
|
|
35
|
+
return {
|
|
36
|
+
id: row.id,
|
|
37
|
+
installationId: row.installation_id ?? void 0,
|
|
38
|
+
connectorId: row.connector_id,
|
|
39
|
+
provider: row.provider,
|
|
40
|
+
principalId: row.principal_id,
|
|
41
|
+
providerConnectionId: row.provider_connection_id,
|
|
42
|
+
alias: row.alias ?? void 0,
|
|
43
|
+
identity: parseObject(row.identity_json),
|
|
44
|
+
status: row.status,
|
|
45
|
+
isDefault: row.is_default === 1,
|
|
46
|
+
connectedAt: row.connected_at ?? void 0,
|
|
47
|
+
expiresAt: row.expires_at ?? void 0,
|
|
48
|
+
lastError: row.last_error ?? void 0,
|
|
49
|
+
metadata: parseObject(row.metadata_json),
|
|
50
|
+
createdAt: row.created_at,
|
|
51
|
+
updatedAt: row.updated_at
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function actionFromRow(row) {
|
|
55
|
+
return {
|
|
56
|
+
connectorId: row.connector_id,
|
|
57
|
+
actionId: row.action_id,
|
|
58
|
+
toolkit: row.toolkit ?? void 0,
|
|
59
|
+
scope: row.scope,
|
|
60
|
+
curated: row.curated === 1,
|
|
61
|
+
inputSchema: row.input_schema_json == null ? void 0 : JSON.parse(row.input_schema_json),
|
|
62
|
+
schemaVersion: row.schema_version ?? void 0,
|
|
63
|
+
cachedAt: row.cached_at
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function auditFromRow(row) {
|
|
67
|
+
return {
|
|
68
|
+
id: row.id,
|
|
69
|
+
installationId: row.installation_id ?? void 0,
|
|
70
|
+
connectionId: row.connection_id ?? void 0,
|
|
71
|
+
connectorId: row.connector_id,
|
|
72
|
+
principalId: row.principal_id,
|
|
73
|
+
agentId: row.agent_id ?? void 0,
|
|
74
|
+
sessionKey: row.session_key ?? void 0,
|
|
75
|
+
actionId: row.action_id,
|
|
76
|
+
scope: row.scope,
|
|
77
|
+
decision: row.decision,
|
|
78
|
+
resultStatus: row.result_status,
|
|
79
|
+
durationMs: row.duration_ms ?? void 0,
|
|
80
|
+
errorCode: row.error_code ?? void 0,
|
|
81
|
+
createdAt: row.created_at
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function catalogFromRow(row) {
|
|
85
|
+
try {
|
|
86
|
+
const definition = JSON.parse(row.definition_json);
|
|
87
|
+
if (!definition || typeof definition !== "object" || definition.id !== row.connector_id) return void 0;
|
|
88
|
+
return {
|
|
89
|
+
connectorId: row.connector_id,
|
|
90
|
+
provider: row.provider,
|
|
91
|
+
definition,
|
|
92
|
+
fetchedAt: row.fetched_at,
|
|
93
|
+
expiresAt: row.expires_at ?? void 0
|
|
94
|
+
};
|
|
95
|
+
} catch {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function approvalFromRow(row) {
|
|
100
|
+
return {
|
|
101
|
+
id: row.id,
|
|
102
|
+
principalId: row.principal_id,
|
|
103
|
+
connectorId: row.connector_id,
|
|
104
|
+
connectionId: row.connection_id ?? void 0,
|
|
105
|
+
agentId: row.agent_id ?? void 0,
|
|
106
|
+
sessionKey: row.session_key ?? void 0,
|
|
107
|
+
actionId: row.action_id,
|
|
108
|
+
scope: row.scope,
|
|
109
|
+
argumentsHash: row.arguments_hash,
|
|
110
|
+
argumentsPreview: parseObject(row.arguments_preview_json),
|
|
111
|
+
status: row.status,
|
|
112
|
+
expiresAt: row.expires_at,
|
|
113
|
+
createdAt: row.created_at,
|
|
114
|
+
decidedAt: row.decided_at ?? void 0,
|
|
115
|
+
consumedAt: row.consumed_at ?? void 0
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function createConnectorApproval(input) {
|
|
119
|
+
const record = {
|
|
120
|
+
...input,
|
|
121
|
+
id: input.id ?? randomUUID(),
|
|
122
|
+
status: input.status ?? "pending",
|
|
123
|
+
createdAt: input.createdAt ?? (/* @__PURE__ */ new Date()).toISOString()
|
|
124
|
+
};
|
|
125
|
+
runSqliteWriteTransaction((db) => {
|
|
126
|
+
db.prepare(`
|
|
127
|
+
INSERT INTO connector_approvals (
|
|
128
|
+
id, principal_id, connector_id, connection_id, agent_id, session_key, action_id,
|
|
129
|
+
scope, arguments_hash, arguments_preview_json, status, expires_at, created_at,
|
|
130
|
+
decided_at, consumed_at
|
|
131
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
132
|
+
`).run(record.id, record.principalId, record.connectorId, record.connectionId ?? null, record.agentId ?? null, record.sessionKey ?? null, record.actionId, record.scope, record.argumentsHash, JSON.stringify(record.argumentsPreview), record.status, record.expiresAt, record.createdAt, record.decidedAt ?? null, record.consumedAt ?? null);
|
|
133
|
+
});
|
|
134
|
+
return record;
|
|
135
|
+
}
|
|
136
|
+
function getConnectorApproval(id) {
|
|
137
|
+
const row = getSqliteDatabase().prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id);
|
|
138
|
+
return row ? approvalFromRow(row) : void 0;
|
|
139
|
+
}
|
|
140
|
+
function listConnectorApprovals(options = {}) {
|
|
141
|
+
const clauses = [];
|
|
142
|
+
const values = [];
|
|
143
|
+
if (options.principalId) {
|
|
144
|
+
clauses.push("principal_id = ?");
|
|
145
|
+
values.push(options.principalId);
|
|
146
|
+
}
|
|
147
|
+
if (options.sessionKey) {
|
|
148
|
+
clauses.push("session_key = ?");
|
|
149
|
+
values.push(options.sessionKey);
|
|
150
|
+
}
|
|
151
|
+
if (options.status) {
|
|
152
|
+
clauses.push("status = ?");
|
|
153
|
+
values.push(options.status);
|
|
154
|
+
}
|
|
155
|
+
const where = clauses.length > 0 ? ` WHERE ${clauses.join(" AND ")}` : "";
|
|
156
|
+
values.push(Math.max(1, Math.min(options.limit ?? 100, 500)));
|
|
157
|
+
return getSqliteDatabase().prepare(`SELECT * FROM connector_approvals${where} ORDER BY created_at DESC, rowid DESC LIMIT ?`).all(...values).map(approvalFromRow);
|
|
158
|
+
}
|
|
159
|
+
function decideConnectorApproval(id, decision, now = /* @__PURE__ */ new Date()) {
|
|
160
|
+
return runSqliteWriteTransaction((db) => {
|
|
161
|
+
const current = db.prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id);
|
|
162
|
+
if (!current) return void 0;
|
|
163
|
+
if (current.status !== "pending" || Date.parse(current.expires_at) <= now.getTime()) {
|
|
164
|
+
if (current.status === "pending") db.prepare("UPDATE connector_approvals SET status = 'expired', decided_at = ? WHERE id = ?").run(now.toISOString(), id);
|
|
165
|
+
return approvalFromRow(db.prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id));
|
|
166
|
+
}
|
|
167
|
+
db.prepare("UPDATE connector_approvals SET status = ?, decided_at = ? WHERE id = ?").run(decision, now.toISOString(), id);
|
|
168
|
+
return approvalFromRow(db.prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id));
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
function consumeConnectorApproval(id, argumentsHash, now = /* @__PURE__ */ new Date()) {
|
|
172
|
+
return runSqliteWriteTransaction((db) => {
|
|
173
|
+
const current = db.prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id);
|
|
174
|
+
if (!current || current.arguments_hash !== argumentsHash) return void 0;
|
|
175
|
+
if (current.status !== "approved" || Date.parse(current.expires_at) <= now.getTime()) {
|
|
176
|
+
if (current.status === "approved" && Date.parse(current.expires_at) <= now.getTime()) db.prepare("UPDATE connector_approvals SET status = 'expired' WHERE id = ?").run(id);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
db.prepare("UPDATE connector_approvals SET status = 'consumed', consumed_at = ? WHERE id = ? AND status = 'approved'").run(now.toISOString(), id);
|
|
180
|
+
return approvalFromRow(db.prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id));
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
function upsertConnectorCatalogEntry(input) {
|
|
184
|
+
runSqliteWriteTransaction((db) => {
|
|
185
|
+
db.prepare(`
|
|
186
|
+
INSERT INTO connector_catalog_entries (connector_id, provider, definition_json, fetched_at, expires_at)
|
|
187
|
+
VALUES (?, ?, ?, ?, ?)
|
|
188
|
+
ON CONFLICT(connector_id) DO UPDATE SET
|
|
189
|
+
provider = excluded.provider,
|
|
190
|
+
definition_json = excluded.definition_json,
|
|
191
|
+
fetched_at = excluded.fetched_at,
|
|
192
|
+
expires_at = excluded.expires_at
|
|
193
|
+
`).run(input.connectorId, input.provider, JSON.stringify(input.definition), input.fetchedAt, input.expiresAt ?? null);
|
|
194
|
+
});
|
|
195
|
+
return input;
|
|
196
|
+
}
|
|
197
|
+
function getCachedConnectorCatalogEntry(connectorId) {
|
|
198
|
+
const row = getSqliteDatabase().prepare("SELECT * FROM connector_catalog_entries WHERE connector_id = ?").get(connectorId);
|
|
199
|
+
return row ? catalogFromRow(row) : void 0;
|
|
200
|
+
}
|
|
201
|
+
function listCachedConnectorCatalogEntries(provider) {
|
|
202
|
+
return (provider ? getSqliteDatabase().prepare("SELECT * FROM connector_catalog_entries WHERE provider = ? ORDER BY connector_id").all(provider) : getSqliteDatabase().prepare("SELECT * FROM connector_catalog_entries ORDER BY provider, connector_id").all()).flatMap((row) => {
|
|
203
|
+
const entry = catalogFromRow(row);
|
|
204
|
+
return entry ? [entry] : [];
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
function upsertConnectorInstallation(input) {
|
|
208
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
209
|
+
return runSqliteWriteTransaction((db) => {
|
|
210
|
+
db.prepare(`
|
|
211
|
+
INSERT INTO connector_installations (
|
|
212
|
+
id, connector_id, principal_id, enabled, allowed_agent_ids_json, max_scope,
|
|
213
|
+
confirmation_policy, selected_connection_ids_json, created_at, updated_at
|
|
214
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
215
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
216
|
+
connector_id = excluded.connector_id,
|
|
217
|
+
principal_id = excluded.principal_id,
|
|
218
|
+
enabled = excluded.enabled,
|
|
219
|
+
allowed_agent_ids_json = excluded.allowed_agent_ids_json,
|
|
220
|
+
max_scope = excluded.max_scope,
|
|
221
|
+
confirmation_policy = excluded.confirmation_policy,
|
|
222
|
+
selected_connection_ids_json = excluded.selected_connection_ids_json,
|
|
223
|
+
updated_at = excluded.updated_at
|
|
224
|
+
`).run(input.id, input.connectorId, input.principalId, input.enabled ? 1 : 0, JSON.stringify(input.allowedAgentIds), input.maxScope, input.confirmationPolicy, JSON.stringify(input.selectedConnectionIds), input.createdAt ?? now, input.updatedAt ?? now);
|
|
225
|
+
return getConnectorInstallation(input.id);
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
function getConnectorInstallation(id) {
|
|
229
|
+
const row = getSqliteDatabase().prepare("SELECT * FROM connector_installations WHERE id = ?").get(id);
|
|
230
|
+
return row ? installationFromRow(row) : void 0;
|
|
231
|
+
}
|
|
232
|
+
function listConnectorInstallations(principalId) {
|
|
233
|
+
return (principalId ? getSqliteDatabase().prepare("SELECT * FROM connector_installations WHERE principal_id = ? ORDER BY connector_id").all(principalId) : getSqliteDatabase().prepare("SELECT * FROM connector_installations ORDER BY principal_id, connector_id").all()).map(installationFromRow);
|
|
234
|
+
}
|
|
235
|
+
function deleteConnectorInstallation(id) {
|
|
236
|
+
return runSqliteWriteTransaction((db) => db.prepare("DELETE FROM connector_installations WHERE id = ?").run(id).changes > 0);
|
|
237
|
+
}
|
|
238
|
+
function upsertConnectorConnection(input) {
|
|
239
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
240
|
+
return runSqliteWriteTransaction((db) => {
|
|
241
|
+
if (input.isDefault) db.prepare("UPDATE connector_connections SET is_default = 0 WHERE principal_id = ? AND connector_id = ? AND id <> ?").run(input.principalId, input.connectorId, input.id);
|
|
242
|
+
db.prepare(`
|
|
243
|
+
INSERT INTO connector_connections (
|
|
244
|
+
id, installation_id, connector_id, provider, principal_id, provider_connection_id,
|
|
245
|
+
alias, identity_json, status, is_default, connected_at, expires_at, last_error,
|
|
246
|
+
metadata_json, created_at, updated_at
|
|
247
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
248
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
249
|
+
installation_id = excluded.installation_id,
|
|
250
|
+
connector_id = excluded.connector_id,
|
|
251
|
+
provider = excluded.provider,
|
|
252
|
+
principal_id = excluded.principal_id,
|
|
253
|
+
provider_connection_id = excluded.provider_connection_id,
|
|
254
|
+
alias = excluded.alias,
|
|
255
|
+
identity_json = excluded.identity_json,
|
|
256
|
+
status = excluded.status,
|
|
257
|
+
is_default = excluded.is_default,
|
|
258
|
+
connected_at = excluded.connected_at,
|
|
259
|
+
expires_at = excluded.expires_at,
|
|
260
|
+
last_error = excluded.last_error,
|
|
261
|
+
metadata_json = excluded.metadata_json,
|
|
262
|
+
updated_at = excluded.updated_at
|
|
263
|
+
`).run(input.id, input.installationId ?? null, input.connectorId, input.provider, input.principalId, input.providerConnectionId, input.alias ?? null, JSON.stringify(input.identity), input.status, input.isDefault ? 1 : 0, input.connectedAt ?? null, input.expiresAt ?? null, input.lastError ?? null, JSON.stringify(input.metadata), input.createdAt ?? now, input.updatedAt ?? now);
|
|
264
|
+
return getConnectorConnection(input.id);
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
function getConnectorConnection(id) {
|
|
268
|
+
const row = getSqliteDatabase().prepare("SELECT * FROM connector_connections WHERE id = ?").get(id);
|
|
269
|
+
return row ? connectionFromRow(row) : void 0;
|
|
270
|
+
}
|
|
271
|
+
function listConnectorConnections(options = {}) {
|
|
272
|
+
const clauses = [];
|
|
273
|
+
const values = [];
|
|
274
|
+
if (options.principalId) {
|
|
275
|
+
clauses.push("principal_id = ?");
|
|
276
|
+
values.push(options.principalId);
|
|
277
|
+
}
|
|
278
|
+
if (options.connectorId) {
|
|
279
|
+
clauses.push("connector_id = ?");
|
|
280
|
+
values.push(options.connectorId);
|
|
281
|
+
}
|
|
282
|
+
const where = clauses.length > 0 ? ` WHERE ${clauses.join(" AND ")}` : "";
|
|
283
|
+
return getSqliteDatabase().prepare(`SELECT * FROM connector_connections${where} ORDER BY is_default DESC, updated_at DESC`).all(...values).map(connectionFromRow);
|
|
284
|
+
}
|
|
285
|
+
function deleteConnectorConnection(id) {
|
|
286
|
+
return runSqliteWriteTransaction((db) => db.prepare("DELETE FROM connector_connections WHERE id = ?").run(id).changes > 0);
|
|
287
|
+
}
|
|
288
|
+
function upsertConnectorActionMetadata(input) {
|
|
289
|
+
return runSqliteWriteTransaction((db) => {
|
|
290
|
+
db.prepare(`
|
|
291
|
+
INSERT INTO connector_action_metadata (
|
|
292
|
+
connector_id, action_id, toolkit, scope, curated, input_schema_json, schema_version, cached_at
|
|
293
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
294
|
+
ON CONFLICT(connector_id, action_id) DO UPDATE SET
|
|
295
|
+
toolkit = excluded.toolkit,
|
|
296
|
+
scope = excluded.scope,
|
|
297
|
+
curated = excluded.curated,
|
|
298
|
+
input_schema_json = excluded.input_schema_json,
|
|
299
|
+
schema_version = excluded.schema_version,
|
|
300
|
+
cached_at = excluded.cached_at
|
|
301
|
+
`).run(input.connectorId, input.actionId, input.toolkit ?? null, input.scope, input.curated ? 1 : 0, input.inputSchema === void 0 ? null : JSON.stringify(input.inputSchema), input.schemaVersion ?? null, input.cachedAt);
|
|
302
|
+
return input;
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
function listConnectorActionMetadata(connectorId) {
|
|
306
|
+
return getSqliteDatabase().prepare("SELECT * FROM connector_action_metadata WHERE connector_id = ? ORDER BY action_id").all(connectorId).map(actionFromRow);
|
|
307
|
+
}
|
|
308
|
+
function appendConnectorExecutionAudit(input) {
|
|
309
|
+
const record = {
|
|
310
|
+
...input,
|
|
311
|
+
id: input.id ?? randomUUID(),
|
|
312
|
+
createdAt: input.createdAt ?? (/* @__PURE__ */ new Date()).toISOString()
|
|
313
|
+
};
|
|
314
|
+
runSqliteWriteTransaction((db) => {
|
|
315
|
+
db.prepare(`
|
|
316
|
+
INSERT INTO connector_execution_audit (
|
|
317
|
+
id, installation_id, connection_id, connector_id, principal_id, agent_id,
|
|
318
|
+
session_key, action_id, scope, decision, result_status, duration_ms, error_code, created_at
|
|
319
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
320
|
+
`).run(record.id, record.installationId ?? null, record.connectionId ?? null, record.connectorId, record.principalId, record.agentId ?? null, record.sessionKey ?? null, record.actionId, record.scope, record.decision, record.resultStatus, record.durationMs ?? null, record.errorCode ?? null, record.createdAt);
|
|
321
|
+
});
|
|
322
|
+
return record;
|
|
323
|
+
}
|
|
324
|
+
function listConnectorExecutionAudit(options = {}) {
|
|
325
|
+
const clauses = [];
|
|
326
|
+
const values = [];
|
|
327
|
+
if (options.principalId) {
|
|
328
|
+
clauses.push("principal_id = ?");
|
|
329
|
+
values.push(options.principalId);
|
|
330
|
+
}
|
|
331
|
+
if (options.connectorId) {
|
|
332
|
+
clauses.push("connector_id = ?");
|
|
333
|
+
values.push(options.connectorId);
|
|
334
|
+
}
|
|
335
|
+
const where = clauses.length > 0 ? ` WHERE ${clauses.join(" AND ")}` : "";
|
|
336
|
+
values.push(Math.max(1, Math.min(options.limit ?? 100, 500)));
|
|
337
|
+
return getSqliteDatabase().prepare(`SELECT * FROM connector_execution_audit${where} ORDER BY created_at DESC, rowid DESC LIMIT ?`).all(...values).map(auditFromRow);
|
|
338
|
+
}
|
|
339
|
+
function claimConnectorWebhookDelivery(input) {
|
|
340
|
+
const now = input.now ?? /* @__PURE__ */ new Date();
|
|
341
|
+
return runSqliteWriteTransaction((db) => {
|
|
342
|
+
const current = db.prepare("SELECT status, processing_at, payload_hash FROM connector_webhook_deliveries WHERE id = ?").get(input.id);
|
|
343
|
+
if (!current) {
|
|
344
|
+
db.prepare(`
|
|
345
|
+
INSERT INTO connector_webhook_deliveries (
|
|
346
|
+
id, provider, payload_hash, status, attempts, received_at, processing_at
|
|
347
|
+
) VALUES (?, ?, ?, 'processing', 1, ?, ?)
|
|
348
|
+
`).run(input.id, input.provider, input.payloadHash, now.toISOString(), now.toISOString());
|
|
349
|
+
return "claimed";
|
|
350
|
+
}
|
|
351
|
+
if (current.payload_hash !== input.payloadHash) throw new Error("Webhook delivery id was reused with a different payload.");
|
|
352
|
+
if (current.status === "processed") return "processed";
|
|
353
|
+
const leaseMs = input.leaseMs ?? 5 * 6e4;
|
|
354
|
+
if (current.status === "processing" && current.processing_at && Date.parse(current.processing_at) + leaseMs > now.getTime()) return "in_flight";
|
|
355
|
+
db.prepare(`
|
|
356
|
+
UPDATE connector_webhook_deliveries
|
|
357
|
+
SET status = 'processing', attempts = attempts + 1, processing_at = ?, last_error = NULL
|
|
358
|
+
WHERE id = ?
|
|
359
|
+
`).run(now.toISOString(), input.id);
|
|
360
|
+
return "claimed";
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
function completeConnectorWebhookDelivery(id, now = /* @__PURE__ */ new Date()) {
|
|
364
|
+
runSqliteWriteTransaction((db) => {
|
|
365
|
+
db.prepare(`
|
|
366
|
+
UPDATE connector_webhook_deliveries
|
|
367
|
+
SET status = 'processed', processed_at = ?, processing_at = NULL, last_error = NULL
|
|
368
|
+
WHERE id = ?
|
|
369
|
+
`).run(now.toISOString(), id);
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
function releaseConnectorWebhookDelivery(id, error) {
|
|
373
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
374
|
+
runSqliteWriteTransaction((db) => {
|
|
375
|
+
db.prepare(`
|
|
376
|
+
UPDATE connector_webhook_deliveries
|
|
377
|
+
SET status = 'pending', processing_at = NULL, last_error = ?
|
|
378
|
+
WHERE id = ? AND status = 'processing'
|
|
379
|
+
`).run(message.slice(0, 500), id);
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
//#endregion
|
|
383
|
+
export { appendConnectorExecutionAudit, claimConnectorWebhookDelivery, completeConnectorWebhookDelivery, consumeConnectorApproval, createConnectorApproval, decideConnectorApproval, deleteConnectorConnection, deleteConnectorInstallation, getCachedConnectorCatalogEntry, getConnectorApproval, getConnectorConnection, getConnectorInstallation, listCachedConnectorCatalogEntries, listConnectorActionMetadata, listConnectorApprovals, listConnectorConnections, listConnectorExecutionAudit, listConnectorInstallations, releaseConnectorWebhookDelivery, upsertConnectorActionMetadata, upsertConnectorCatalogEntry, upsertConnectorConnection, upsertConnectorInstallation };
|
|
384
|
+
|
|
385
|
+
//# sourceMappingURL=connector-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-repository.js","names":[],"sources":["../../../../src/storage/sqlite/connector-repository.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\n\nimport type {\n ConnectorActionMetadata,\n ConnectorApprovalRecord,\n ConnectorConnection,\n ConnectorDefinition,\n ConnectorExecutionAuditRecord,\n ConnectorInstallationPolicy,\n} from '../../connectors/types.js';\nimport { getSqliteDatabase, runSqliteWriteTransaction } from './transaction.js';\n\ntype InstallationRow = {\n id: string;\n connector_id: string;\n principal_id: string;\n enabled: number;\n allowed_agent_ids_json: string;\n max_scope: ConnectorInstallationPolicy['maxScope'];\n confirmation_policy: ConnectorInstallationPolicy['confirmationPolicy'];\n selected_connection_ids_json: string;\n created_at: string;\n updated_at: string;\n};\n\ntype ConnectionRow = {\n id: string;\n installation_id: string | null;\n connector_id: string;\n provider: string;\n principal_id: string;\n provider_connection_id: string;\n alias: string | null;\n identity_json: string;\n status: ConnectorConnection['status'];\n is_default: number;\n connected_at: string | null;\n expires_at: string | null;\n last_error: string | null;\n metadata_json: string;\n created_at: string;\n updated_at: string;\n};\n\ntype ActionRow = {\n connector_id: string;\n action_id: string;\n toolkit: string | null;\n scope: ConnectorActionMetadata['scope'];\n curated: number;\n input_schema_json: string | null;\n schema_version: string | null;\n cached_at: string;\n};\n\ntype AuditRow = {\n id: string;\n installation_id: string | null;\n connection_id: string | null;\n connector_id: string;\n principal_id: string;\n agent_id: string | null;\n session_key: string | null;\n action_id: string;\n scope: ConnectorExecutionAuditRecord['scope'];\n decision: ConnectorExecutionAuditRecord['decision'];\n result_status: ConnectorExecutionAuditRecord['resultStatus'];\n duration_ms: number | null;\n error_code: string | null;\n created_at: string;\n};\n\ntype CatalogRow = {\n connector_id: string;\n provider: string;\n definition_json: string;\n fetched_at: string;\n expires_at: string | null;\n};\n\ntype ApprovalRow = {\n id: string;\n principal_id: string;\n connector_id: string;\n connection_id: string | null;\n agent_id: string | null;\n session_key: string | null;\n action_id: string;\n scope: ConnectorApprovalRecord['scope'];\n arguments_hash: string;\n arguments_preview_json: string;\n status: ConnectorApprovalRecord['status'];\n expires_at: string;\n created_at: string;\n decided_at: string | null;\n consumed_at: string | null;\n};\n\nexport type CachedConnectorCatalogEntry = {\n connectorId: string;\n provider: string;\n definition: ConnectorDefinition;\n fetchedAt: string;\n expiresAt?: string;\n};\n\nfunction parseStringArray(value: string): string[] {\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed.filter((item): item is string => typeof item === 'string') : [];\n } catch {\n return [];\n }\n}\n\nfunction parseObject(value: string): Record<string, unknown> {\n try {\n const parsed = JSON.parse(value);\n return parsed && typeof parsed === 'object' && !Array.isArray(parsed)\n ? parsed as Record<string, unknown>\n : {};\n } catch {\n return {};\n }\n}\n\nfunction installationFromRow(row: InstallationRow): ConnectorInstallationPolicy {\n return {\n id: row.id,\n connectorId: row.connector_id,\n principalId: row.principal_id,\n enabled: row.enabled === 1,\n allowedAgentIds: parseStringArray(row.allowed_agent_ids_json),\n maxScope: row.max_scope,\n confirmationPolicy: row.confirmation_policy,\n selectedConnectionIds: parseStringArray(row.selected_connection_ids_json),\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n };\n}\n\nfunction connectionFromRow(row: ConnectionRow): ConnectorConnection {\n return {\n id: row.id,\n installationId: row.installation_id ?? undefined,\n connectorId: row.connector_id,\n provider: row.provider,\n principalId: row.principal_id,\n providerConnectionId: row.provider_connection_id,\n alias: row.alias ?? undefined,\n identity: parseObject(row.identity_json),\n status: row.status,\n isDefault: row.is_default === 1,\n connectedAt: row.connected_at ?? undefined,\n expiresAt: row.expires_at ?? undefined,\n lastError: row.last_error ?? undefined,\n metadata: parseObject(row.metadata_json),\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n };\n}\n\nfunction actionFromRow(row: ActionRow): ConnectorActionMetadata {\n return {\n connectorId: row.connector_id,\n actionId: row.action_id,\n toolkit: row.toolkit ?? undefined,\n scope: row.scope,\n curated: row.curated === 1,\n inputSchema: row.input_schema_json == null ? undefined : JSON.parse(row.input_schema_json),\n schemaVersion: row.schema_version ?? undefined,\n cachedAt: row.cached_at,\n };\n}\n\nfunction auditFromRow(row: AuditRow): ConnectorExecutionAuditRecord {\n return {\n id: row.id,\n installationId: row.installation_id ?? undefined,\n connectionId: row.connection_id ?? undefined,\n connectorId: row.connector_id,\n principalId: row.principal_id,\n agentId: row.agent_id ?? undefined,\n sessionKey: row.session_key ?? undefined,\n actionId: row.action_id,\n scope: row.scope,\n decision: row.decision,\n resultStatus: row.result_status,\n durationMs: row.duration_ms ?? undefined,\n errorCode: row.error_code ?? undefined,\n createdAt: row.created_at,\n };\n}\n\nfunction catalogFromRow(row: CatalogRow): CachedConnectorCatalogEntry | undefined {\n try {\n const definition = JSON.parse(row.definition_json) as ConnectorDefinition;\n if (!definition || typeof definition !== 'object' || definition.id !== row.connector_id) return undefined;\n return {\n connectorId: row.connector_id,\n provider: row.provider,\n definition,\n fetchedAt: row.fetched_at,\n expiresAt: row.expires_at ?? undefined,\n };\n } catch {\n return undefined;\n }\n}\n\nfunction approvalFromRow(row: ApprovalRow): ConnectorApprovalRecord {\n return {\n id: row.id,\n principalId: row.principal_id,\n connectorId: row.connector_id,\n connectionId: row.connection_id ?? undefined,\n agentId: row.agent_id ?? undefined,\n sessionKey: row.session_key ?? undefined,\n actionId: row.action_id,\n scope: row.scope,\n argumentsHash: row.arguments_hash,\n argumentsPreview: parseObject(row.arguments_preview_json),\n status: row.status,\n expiresAt: row.expires_at,\n createdAt: row.created_at,\n decidedAt: row.decided_at ?? undefined,\n consumedAt: row.consumed_at ?? undefined,\n };\n}\n\nexport function createConnectorApproval(\n input: Omit<ConnectorApprovalRecord, 'id' | 'status' | 'createdAt'> & Partial<Pick<ConnectorApprovalRecord, 'id' | 'status' | 'createdAt'>>,\n): ConnectorApprovalRecord {\n const record: ConnectorApprovalRecord = {\n ...input,\n id: input.id ?? randomUUID(),\n status: input.status ?? 'pending',\n createdAt: input.createdAt ?? new Date().toISOString(),\n };\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_approvals (\n id, principal_id, connector_id, connection_id, agent_id, session_key, action_id,\n scope, arguments_hash, arguments_preview_json, status, expires_at, created_at,\n decided_at, consumed_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `).run(\n record.id,\n record.principalId,\n record.connectorId,\n record.connectionId ?? null,\n record.agentId ?? null,\n record.sessionKey ?? null,\n record.actionId,\n record.scope,\n record.argumentsHash,\n JSON.stringify(record.argumentsPreview),\n record.status,\n record.expiresAt,\n record.createdAt,\n record.decidedAt ?? null,\n record.consumedAt ?? null,\n );\n });\n return record;\n}\n\nexport function getConnectorApproval(id: string): ConnectorApprovalRecord | undefined {\n const row = getSqliteDatabase().prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow | undefined;\n return row ? approvalFromRow(row) : undefined;\n}\n\nexport function listConnectorApprovals(options: {\n principalId?: string;\n sessionKey?: string;\n status?: ConnectorApprovalRecord['status'];\n limit?: number;\n} = {}): ConnectorApprovalRecord[] {\n const clauses: string[] = [];\n const values: Array<string | number> = [];\n if (options.principalId) {\n clauses.push('principal_id = ?');\n values.push(options.principalId);\n }\n if (options.sessionKey) {\n clauses.push('session_key = ?');\n values.push(options.sessionKey);\n }\n if (options.status) {\n clauses.push('status = ?');\n values.push(options.status);\n }\n const where = clauses.length > 0 ? ` WHERE ${clauses.join(' AND ')}` : '';\n values.push(Math.max(1, Math.min(options.limit ?? 100, 500)));\n const rows = getSqliteDatabase().prepare(\n `SELECT * FROM connector_approvals${where} ORDER BY created_at DESC, rowid DESC LIMIT ?`,\n ).all(...values) as ApprovalRow[];\n return rows.map(approvalFromRow);\n}\n\nexport function decideConnectorApproval(id: string, decision: 'approved' | 'denied', now = new Date()): ConnectorApprovalRecord | undefined {\n return runSqliteWriteTransaction((db) => {\n const current = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow | undefined;\n if (!current) return undefined;\n if (current.status !== 'pending' || Date.parse(current.expires_at) <= now.getTime()) {\n if (current.status === 'pending') {\n db.prepare(\"UPDATE connector_approvals SET status = 'expired', decided_at = ? WHERE id = ?\")\n .run(now.toISOString(), id);\n }\n const updated = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow;\n return approvalFromRow(updated);\n }\n db.prepare('UPDATE connector_approvals SET status = ?, decided_at = ? WHERE id = ?')\n .run(decision, now.toISOString(), id);\n const updated = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow;\n return approvalFromRow(updated);\n });\n}\n\nexport function consumeConnectorApproval(id: string, argumentsHash: string, now = new Date()): ConnectorApprovalRecord | undefined {\n return runSqliteWriteTransaction((db) => {\n const current = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow | undefined;\n if (!current || current.arguments_hash !== argumentsHash) return undefined;\n if (current.status !== 'approved' || Date.parse(current.expires_at) <= now.getTime()) {\n if (current.status === 'approved' && Date.parse(current.expires_at) <= now.getTime()) {\n db.prepare(\"UPDATE connector_approvals SET status = 'expired' WHERE id = ?\").run(id);\n }\n return undefined;\n }\n db.prepare(\"UPDATE connector_approvals SET status = 'consumed', consumed_at = ? WHERE id = ? AND status = 'approved'\")\n .run(now.toISOString(), id);\n const updated = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow;\n return approvalFromRow(updated);\n });\n}\n\nexport function upsertConnectorCatalogEntry(input: CachedConnectorCatalogEntry): CachedConnectorCatalogEntry {\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_catalog_entries (connector_id, provider, definition_json, fetched_at, expires_at)\n VALUES (?, ?, ?, ?, ?)\n ON CONFLICT(connector_id) DO UPDATE SET\n provider = excluded.provider,\n definition_json = excluded.definition_json,\n fetched_at = excluded.fetched_at,\n expires_at = excluded.expires_at\n `).run(\n input.connectorId,\n input.provider,\n JSON.stringify(input.definition),\n input.fetchedAt,\n input.expiresAt ?? null,\n );\n });\n return input;\n}\n\nexport function getCachedConnectorCatalogEntry(connectorId: string): CachedConnectorCatalogEntry | undefined {\n const row = getSqliteDatabase().prepare(\n 'SELECT * FROM connector_catalog_entries WHERE connector_id = ?',\n ).get(connectorId) as CatalogRow | undefined;\n return row ? catalogFromRow(row) : undefined;\n}\n\nexport function listCachedConnectorCatalogEntries(provider?: string): CachedConnectorCatalogEntry[] {\n const rows = (provider\n ? getSqliteDatabase().prepare('SELECT * FROM connector_catalog_entries WHERE provider = ? ORDER BY connector_id').all(provider)\n : getSqliteDatabase().prepare('SELECT * FROM connector_catalog_entries ORDER BY provider, connector_id').all()) as CatalogRow[];\n return rows.flatMap((row) => {\n const entry = catalogFromRow(row);\n return entry ? [entry] : [];\n });\n}\n\nexport function upsertConnectorInstallation(\n input: Omit<ConnectorInstallationPolicy, 'createdAt' | 'updatedAt'> & Partial<Pick<ConnectorInstallationPolicy, 'createdAt' | 'updatedAt'>>,\n): ConnectorInstallationPolicy {\n const now = new Date().toISOString();\n return runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_installations (\n id, connector_id, principal_id, enabled, allowed_agent_ids_json, max_scope,\n confirmation_policy, selected_connection_ids_json, created_at, updated_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(id) DO UPDATE SET\n connector_id = excluded.connector_id,\n principal_id = excluded.principal_id,\n enabled = excluded.enabled,\n allowed_agent_ids_json = excluded.allowed_agent_ids_json,\n max_scope = excluded.max_scope,\n confirmation_policy = excluded.confirmation_policy,\n selected_connection_ids_json = excluded.selected_connection_ids_json,\n updated_at = excluded.updated_at\n `).run(\n input.id,\n input.connectorId,\n input.principalId,\n input.enabled ? 1 : 0,\n JSON.stringify(input.allowedAgentIds),\n input.maxScope,\n input.confirmationPolicy,\n JSON.stringify(input.selectedConnectionIds),\n input.createdAt ?? now,\n input.updatedAt ?? now,\n );\n return getConnectorInstallation(input.id)!;\n });\n}\n\nexport function getConnectorInstallation(id: string): ConnectorInstallationPolicy | undefined {\n const row = getSqliteDatabase().prepare('SELECT * FROM connector_installations WHERE id = ?').get(id) as InstallationRow | undefined;\n return row ? installationFromRow(row) : undefined;\n}\n\nexport function listConnectorInstallations(principalId?: string): ConnectorInstallationPolicy[] {\n const rows = (principalId\n ? getSqliteDatabase().prepare('SELECT * FROM connector_installations WHERE principal_id = ? ORDER BY connector_id').all(principalId)\n : getSqliteDatabase().prepare('SELECT * FROM connector_installations ORDER BY principal_id, connector_id').all()) as InstallationRow[];\n return rows.map(installationFromRow);\n}\n\nexport function deleteConnectorInstallation(id: string): boolean {\n return runSqliteWriteTransaction((db) => db.prepare('DELETE FROM connector_installations WHERE id = ?').run(id).changes > 0);\n}\n\nexport function upsertConnectorConnection(\n input: Omit<ConnectorConnection, 'createdAt' | 'updatedAt'> & Partial<Pick<ConnectorConnection, 'createdAt' | 'updatedAt'>>,\n): ConnectorConnection {\n const now = new Date().toISOString();\n return runSqliteWriteTransaction((db) => {\n if (input.isDefault) {\n db.prepare('UPDATE connector_connections SET is_default = 0 WHERE principal_id = ? AND connector_id = ? AND id <> ?')\n .run(input.principalId, input.connectorId, input.id);\n }\n db.prepare(`\n INSERT INTO connector_connections (\n id, installation_id, connector_id, provider, principal_id, provider_connection_id,\n alias, identity_json, status, is_default, connected_at, expires_at, last_error,\n metadata_json, created_at, updated_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(id) DO UPDATE SET\n installation_id = excluded.installation_id,\n connector_id = excluded.connector_id,\n provider = excluded.provider,\n principal_id = excluded.principal_id,\n provider_connection_id = excluded.provider_connection_id,\n alias = excluded.alias,\n identity_json = excluded.identity_json,\n status = excluded.status,\n is_default = excluded.is_default,\n connected_at = excluded.connected_at,\n expires_at = excluded.expires_at,\n last_error = excluded.last_error,\n metadata_json = excluded.metadata_json,\n updated_at = excluded.updated_at\n `).run(\n input.id,\n input.installationId ?? null,\n input.connectorId,\n input.provider,\n input.principalId,\n input.providerConnectionId,\n input.alias ?? null,\n JSON.stringify(input.identity),\n input.status,\n input.isDefault ? 1 : 0,\n input.connectedAt ?? null,\n input.expiresAt ?? null,\n input.lastError ?? null,\n JSON.stringify(input.metadata),\n input.createdAt ?? now,\n input.updatedAt ?? now,\n );\n return getConnectorConnection(input.id)!;\n });\n}\n\nexport function getConnectorConnection(id: string): ConnectorConnection | undefined {\n const row = getSqliteDatabase().prepare('SELECT * FROM connector_connections WHERE id = ?').get(id) as ConnectionRow | undefined;\n return row ? connectionFromRow(row) : undefined;\n}\n\nexport function listConnectorConnections(options: { principalId?: string; connectorId?: string } = {}): ConnectorConnection[] {\n const clauses: string[] = [];\n const values: string[] = [];\n if (options.principalId) {\n clauses.push('principal_id = ?');\n values.push(options.principalId);\n }\n if (options.connectorId) {\n clauses.push('connector_id = ?');\n values.push(options.connectorId);\n }\n const where = clauses.length > 0 ? ` WHERE ${clauses.join(' AND ')}` : '';\n const rows = getSqliteDatabase().prepare(`SELECT * FROM connector_connections${where} ORDER BY is_default DESC, updated_at DESC`).all(...values) as ConnectionRow[];\n return rows.map(connectionFromRow);\n}\n\nexport function deleteConnectorConnection(id: string): boolean {\n return runSqliteWriteTransaction((db) => db.prepare('DELETE FROM connector_connections WHERE id = ?').run(id).changes > 0);\n}\n\nexport function upsertConnectorActionMetadata(input: ConnectorActionMetadata): ConnectorActionMetadata {\n return runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_action_metadata (\n connector_id, action_id, toolkit, scope, curated, input_schema_json, schema_version, cached_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(connector_id, action_id) DO UPDATE SET\n toolkit = excluded.toolkit,\n scope = excluded.scope,\n curated = excluded.curated,\n input_schema_json = excluded.input_schema_json,\n schema_version = excluded.schema_version,\n cached_at = excluded.cached_at\n `).run(\n input.connectorId,\n input.actionId,\n input.toolkit ?? null,\n input.scope,\n input.curated ? 1 : 0,\n input.inputSchema === undefined ? null : JSON.stringify(input.inputSchema),\n input.schemaVersion ?? null,\n input.cachedAt,\n );\n return input;\n });\n}\n\nexport function listConnectorActionMetadata(connectorId: string): ConnectorActionMetadata[] {\n const rows = getSqliteDatabase().prepare(\n 'SELECT * FROM connector_action_metadata WHERE connector_id = ? ORDER BY action_id',\n ).all(connectorId) as ActionRow[];\n return rows.map(actionFromRow);\n}\n\nexport function appendConnectorExecutionAudit(\n input: Omit<ConnectorExecutionAuditRecord, 'id' | 'createdAt'> & Partial<Pick<ConnectorExecutionAuditRecord, 'id' | 'createdAt'>>,\n): ConnectorExecutionAuditRecord {\n const record: ConnectorExecutionAuditRecord = {\n ...input,\n id: input.id ?? randomUUID(),\n createdAt: input.createdAt ?? new Date().toISOString(),\n };\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_execution_audit (\n id, installation_id, connection_id, connector_id, principal_id, agent_id,\n session_key, action_id, scope, decision, result_status, duration_ms, error_code, created_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `).run(\n record.id,\n record.installationId ?? null,\n record.connectionId ?? null,\n record.connectorId,\n record.principalId,\n record.agentId ?? null,\n record.sessionKey ?? null,\n record.actionId,\n record.scope,\n record.decision,\n record.resultStatus,\n record.durationMs ?? null,\n record.errorCode ?? null,\n record.createdAt,\n );\n });\n return record;\n}\n\nexport function listConnectorExecutionAudit(options: { principalId?: string; connectorId?: string; limit?: number } = {}): ConnectorExecutionAuditRecord[] {\n const clauses: string[] = [];\n const values: Array<string | number> = [];\n if (options.principalId) {\n clauses.push('principal_id = ?');\n values.push(options.principalId);\n }\n if (options.connectorId) {\n clauses.push('connector_id = ?');\n values.push(options.connectorId);\n }\n const where = clauses.length > 0 ? ` WHERE ${clauses.join(' AND ')}` : '';\n values.push(Math.max(1, Math.min(options.limit ?? 100, 500)));\n const rows = getSqliteDatabase().prepare(\n `SELECT * FROM connector_execution_audit${where} ORDER BY created_at DESC, rowid DESC LIMIT ?`,\n ).all(...values) as AuditRow[];\n return rows.map(auditFromRow);\n}\n\nexport function claimConnectorWebhookDelivery(input: {\n id: string;\n provider: string;\n payloadHash: string;\n now?: Date;\n leaseMs?: number;\n}): 'claimed' | 'processed' | 'in_flight' {\n const now = input.now ?? new Date();\n return runSqliteWriteTransaction((db) => {\n const current = db.prepare('SELECT status, processing_at, payload_hash FROM connector_webhook_deliveries WHERE id = ?')\n .get(input.id) as { status: string; processing_at: string | null; payload_hash: string } | undefined;\n if (!current) {\n db.prepare(`\n INSERT INTO connector_webhook_deliveries (\n id, provider, payload_hash, status, attempts, received_at, processing_at\n ) VALUES (?, ?, ?, 'processing', 1, ?, ?)\n `).run(input.id, input.provider, input.payloadHash, now.toISOString(), now.toISOString());\n return 'claimed';\n }\n if (current.payload_hash !== input.payloadHash) throw new Error('Webhook delivery id was reused with a different payload.');\n if (current.status === 'processed') return 'processed';\n const leaseMs = input.leaseMs ?? 5 * 60_000;\n if (current.status === 'processing' && current.processing_at && Date.parse(current.processing_at) + leaseMs > now.getTime()) {\n return 'in_flight';\n }\n db.prepare(`\n UPDATE connector_webhook_deliveries\n SET status = 'processing', attempts = attempts + 1, processing_at = ?, last_error = NULL\n WHERE id = ?\n `).run(now.toISOString(), input.id);\n return 'claimed';\n });\n}\n\nexport function completeConnectorWebhookDelivery(id: string, now = new Date()): void {\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n UPDATE connector_webhook_deliveries\n SET status = 'processed', processed_at = ?, processing_at = NULL, last_error = NULL\n WHERE id = ?\n `).run(now.toISOString(), id);\n });\n}\n\nexport function releaseConnectorWebhookDelivery(id: string, error: unknown): void {\n const message = error instanceof Error ? error.message : String(error);\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n UPDATE connector_webhook_deliveries\n SET status = 'pending', processing_at = NULL, last_error = ?\n WHERE id = ? AND status = 'processing'\n `).run(message.slice(0, 500), id);\n });\n}\n"],"mappings":"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"}
|
|
@@ -16,3 +16,6 @@ export { appendMemorySignal, appendMemoryTraceEvent, deleteMemoryRecord, findLat
|
|
|
16
16
|
export { attachMemoryEvidence, finishKnowledgeSyncRun, getKnowledgeSourceCursor, getKnowledgeSourceItem, listKnowledgeSourceItems, listKnowledgeSyncRuns, listMemoryEvidence, setKnowledgeSourceItemSynthesisStatus, setKnowledgeSourceCursor, startKnowledgeSyncRun, upsertKnowledgeSourceItems, } from './knowledge-repository.js';
|
|
17
17
|
export { deleteSessionConfig, getSessionConfig, hasSessionConfig, setSessionConfig, updateSessionConfig, } from './config-repository.js';
|
|
18
18
|
export { createObjectLinkRecord, getActivityEventRecord, listActivityRecords, listObjectActivityRecords, listObjectLinkRecords, listProjectActivityRecords, recordActivityEvent, } from './activity-repository.js';
|
|
19
|
+
export { appendConnectorExecutionAudit, claimConnectorWebhookDelivery, completeConnectorWebhookDelivery, consumeConnectorApproval, createConnectorApproval, decideConnectorApproval, deleteConnectorConnection, deleteConnectorInstallation, getConnectorConnection, getConnectorApproval, getConnectorInstallation, getCachedConnectorCatalogEntry, listCachedConnectorCatalogEntries, listConnectorActionMetadata, listConnectorApprovals, listConnectorConnections, listConnectorExecutionAudit, listConnectorInstallations, releaseConnectorWebhookDelivery, upsertConnectorActionMetadata, upsertConnectorCatalogEntry, upsertConnectorConnection, upsertConnectorInstallation, type CachedConnectorCatalogEntry, } from './connector-repository.js';
|
|
20
|
+
export { getUserTrustPolicy, setUserTrustPolicy, } from './user-trust-repository.js';
|
|
21
|
+
export { getUserProfilePromptState, setUserProfilePromptState, } from './user-profile-setup-repository.js';
|