@xopcai/xopc 0.0.409 → 0.0.411
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 +12 -6
- package/README.zh-CN.md +12 -6
- package/dist/browser-ext/dist/assets/{page-context-A5RCibM_.js → page-context-MuzjMBlJ.js} +1 -1
- package/dist/browser-ext/dist/background.js +1 -1
- package/dist/browser-ext/dist/sidepanel.html +1 -1
- package/dist/browser-ext/dist/sidepanel.js +1 -1
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/adapters/gateway-setup.js +9 -3
- package/dist/extensions/feishu/src/plugin.d.ts +0 -3
- package/dist/extensions/feishu/src/plugin.js +1 -11
- package/dist/extensions/feishu/src/schema/config-schema.d.ts +0 -2
- package/dist/extensions/feishu/src/schema/config-schema.js +9 -21
- package/dist/extensions/feishu/src/state/accounts.js +3 -7
- package/dist/extensions/telegram/src/plugin.d.ts +0 -3
- package/dist/extensions/telegram/src/plugin.js +0 -9
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/plugin.d.ts +0 -3
- package/dist/extensions/weixin/src/plugin.js +1 -12
- package/dist/gateway/static/root/assets/agent-avatar-dicebear-sGJnq-SA.js +1 -0
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-BI7OTo-T.js +1 -0
- package/dist/gateway/static/root/assets/agents-RIXL0p7_.js +77 -0
- package/dist/gateway/static/root/assets/{agents-admin-api-D0UyB0Y_.js → agents-admin-api-uGDeJR1f.js} +1 -1
- package/dist/gateway/static/root/assets/app-management-settings-panel-BGzhSS6H.js +1 -0
- package/dist/gateway/static/root/assets/{appearance-settings-Dzhmj_ZO.js → appearance-settings-DtEZq4b2.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-DZqBof2D.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-D4r4P5uG.js → archive-plugin-CGdU_E5B.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-display-DCkjVzA0.js → automation-display-BFN7zWBg.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-BlNe3DXU.js → automations-page-BAPZY56r.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-CI-yQnSj.js +8 -0
- package/dist/gateway/static/root/assets/{binary-plugins-DuN5L6lm.js → binary-plugins-B0ispXo2.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-DUSVn51h.js → block-editor-B9Ci-prO.js} +40 -40
- package/dist/gateway/static/root/assets/{browser-automation-inputs-D8bZ9iz2.js → browser-automation-inputs-D4-vQc4g.js} +1 -1
- package/dist/gateway/static/root/assets/browser-automations-page-Xzdif447.js +3 -0
- package/dist/gateway/static/root/assets/browser-settings-page-Bhu-83eC.js +3 -0
- package/dist/gateway/static/root/assets/capabilities-B9b5KCBb.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-page-BIc0Zlsw.js +2 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-CQEfpLdj.js +8 -0
- package/dist/gateway/static/root/assets/{capability-header-actions-oBPqUlbj.js → capability-header-actions-Cic05oWh.js} +1 -1
- package/dist/gateway/static/root/assets/channels-DQbEoo_o.js +1 -0
- package/dist/gateway/static/root/assets/{chat-terminal-dock-BLs3NaOP.js → chat-terminal-dock-Bm-IGeDe.js} +2 -2
- package/dist/gateway/static/root/assets/{chunk-KS7C4IRE-B2HK1psj.js → chunk-KS7C4IRE-BvcCCgTW.js} +2 -2
- package/dist/gateway/static/root/assets/computer-settings-page-C9xMfwXK.js +1 -0
- package/dist/gateway/static/root/assets/connector-service-page-DcdASUU9.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-eh-xpMPK.js +1 -0
- package/dist/gateway/static/root/assets/date-formatters-DukWSVwc.js +1 -0
- package/dist/gateway/static/root/assets/{date-picker-DVlbwrYg.js → date-picker-gVLWu9R0.js} +1 -1
- package/dist/gateway/static/root/assets/dependency-picker-C0LARyok.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-settings-B_-j-D4W.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-v_le3sCs.js +1 -0
- package/dist/gateway/static/root/assets/device-pairing-wizard-CxG_FcQ6.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-QZ0p-uNa.js → directory-picker-path-field-CBefVUPR.js} +1 -1
- package/dist/gateway/static/root/assets/electron-env-Dit0bHgy.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-DoVPUHu_.js → extension-debug-page-CTe7Molh.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-BNe8n3iJ.js → extension-page-C0-oP7S_.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DxNpjGJD.js → extension-settings-page-DYJmgMUg.js} +1 -1
- package/dist/gateway/static/root/assets/files-Bw4SBGdM.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-CTXr917C.js → gateway-config-swr-BVqYVaGy.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-CY1LBGBS.js +1 -0
- package/dist/gateway/static/root/assets/gateway-realtime-store-Dafw95ol.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-C13P4lQd.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-DD2fsxdd.js → gateway-startup-retry-CPKGkr6D.js} +1 -1
- package/dist/gateway/static/root/assets/highlight-code-CslBKXdS.js +1 -0
- package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-DrZq5KTj.js → highlighted-body-KQOG7T2V-CN5PNRN3.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-B_XrkGmA.js +2 -0
- package/dist/gateway/static/root/assets/image-generation-api-DRLXG9Ws.js +1 -0
- package/dist/gateway/static/root/assets/imports-page--cuF5vwU.js +1 -0
- package/dist/gateway/static/root/assets/index-6YjAt50A.js +710 -0
- package/dist/gateway/static/root/assets/index-caRW34rg.css +1 -0
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-5g2PxgBs.js +1 -0
- package/dist/gateway/static/root/assets/languages-byq_L2Ae.js +2 -0
- package/dist/gateway/static/root/assets/local-app-workbench-page-B6U1HQpp.js +1 -0
- package/dist/gateway/static/root/assets/local-apps-page-BChE6nUD.js +1 -0
- package/dist/gateway/static/root/assets/{local-session-drafts-TqLFKwYo.js → local-session-drafts-BCaC-1rH.js} +1 -1
- package/dist/gateway/static/root/assets/locale-store-DAgpZxAS.js +1 -0
- package/dist/gateway/static/root/assets/logs-page-B9mq03SK.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-2W_qJsha.js +1 -0
- package/dist/gateway/static/root/assets/markdown-editor-phTQ0mox.js +1 -0
- package/dist/gateway/static/root/assets/{media-plugins-s6EqtAUQ.js → media-plugins-BmLuWkkZ.js} +1 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-61Il2HQR.js +1 -0
- package/dist/gateway/static/root/assets/messages-DMXSIJUO.js +3 -0
- package/dist/gateway/static/root/assets/note-detail-panel-C4gZsNBL.js +5 -0
- package/dist/gateway/static/root/assets/note-image-lightbox-XqJIaaRV.js +1 -0
- package/dist/gateway/static/root/assets/notes-page-Chdwrjni.js +8 -0
- package/dist/gateway/static/root/assets/page-context-capture-button-B7rDRlS7.js +1 -0
- package/dist/gateway/static/root/assets/personal-page-mQl9BftY.js +1 -0
- package/dist/gateway/static/root/assets/personal-settings-panel-BgcJLmZN.js +1 -0
- package/dist/gateway/static/root/assets/plugin-details-dialog-FvwSxZPB.js +1 -0
- package/dist/gateway/static/root/assets/preview-open-alternatives-Z4NM7_Dn.js +1 -0
- package/dist/gateway/static/root/assets/product-delivery-BqNm-8S5.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-BPWSqtRt.js → product-open-page-C5TcIaJj.js} +1 -1
- package/dist/gateway/static/root/assets/product-preview-content-5xID6jIj.js +1 -0
- package/dist/gateway/static/root/assets/project-detail-page-CGOyx7zX.js +7 -0
- package/dist/gateway/static/root/assets/projects-page-Dd11tbRX.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-4NZOh0iz.js → registry-api-B6kqbuw8.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-Bintk9nL.js +1 -0
- package/dist/gateway/static/root/assets/runtime-tools-api-CY3R7unQ.js +5 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-CNCx2RnO.js → runtime-tools-settings-panel-CbmiiLsq.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-nRDA2XfI.js → schema-form-DtPkiYwm.js} +1 -1
- package/dist/gateway/static/root/assets/session-api-D6-Vz8xK.js +1 -0
- package/dist/gateway/static/root/assets/{session-manager-D2sLfkw-.js → session-manager-DWbcMHcj.js} +3 -3
- package/dist/gateway/static/root/assets/sessions-page-BBlEP7y3.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-BCQUth4g.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-_ALUREPr.js → settings-form-section-DD3iD5t5.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-29ptuMYZ.js → settings-page-iLY3LRDq.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-v4P0IAkG.js +1 -0
- package/dist/gateway/static/root/assets/share-preview-page-B8h9lqDL.js +2 -0
- package/dist/gateway/static/root/assets/shares-settings-DMzej6z2.js +1 -0
- package/dist/gateway/static/root/assets/{skill-api-C-T0K7Oo.js → skill-api-C9RsrvOp.js} +1 -1
- package/dist/gateway/static/root/assets/skill-reload-api-B20x7EE9.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-C_ulsnv7.js +2 -0
- package/dist/gateway/static/root/assets/source-workspace-editor-BIvi89Zx.js +1 -0
- package/dist/gateway/static/root/assets/system-settings-panel-PTRGMKkq.js +1 -0
- package/dist/gateway/static/root/assets/task-detail-page-DEPwo4vf.js +2 -0
- package/dist/gateway/static/root/assets/task-result-evidence-DjNWPpn_.js +1 -0
- package/dist/gateway/static/root/assets/tasks-TVRjEggr.js +1 -0
- package/dist/gateway/static/root/assets/tracing-settings-page-CVJt7IXC.js +1 -0
- package/dist/gateway/static/root/assets/{tunnel-api-DcDUSAjv.js → tunnel-api-C6XfsSWy.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-Hut0SDqn.js → usage-page-DgqLD8Y5.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-C4TUlpsu.js → use-autosave-DO-Twmbm.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-BwK37aob.js +2 -0
- package/dist/gateway/static/root/assets/{vendor-codemirror-DFxP3B9T.js → vendor-codemirror-Qdcjid65.js} +16 -16
- package/dist/gateway/static/root/assets/{voice-api-key-field-CMdihbPb.js → voice-api-key-field-MGe3HkS_.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-4yGMrp7J.js → voice-config-api-CPKzUb4R.js} +1 -1
- package/dist/gateway/static/root/assets/work-discovery-overlay-DptHqYh5.js +1 -0
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-ClQKM2RA.js → xopc-cloud-account-card-Y_UIryBH.js} +1 -1
- package/dist/gateway/static/root/index.html +27 -35
- package/dist/package.js +1 -1
- package/dist/packages/endpoint-tools-protocol/src/index.js +1 -1
- package/dist/packages/gateway-contract/src/automations.js +0 -12
- package/dist/packages/gateway-contract/src/home.js +3 -3
- package/dist/packages/gateway-contract/src/product-delivery.js +0 -4
- package/dist/packages/gateway-contract/src/project-operating.js +0 -6
- package/dist/packages/gateway-contract/src/session-identity.js +0 -1
- package/dist/packages/gateway-contract/src/task-runs.js +0 -1
- package/dist/packages/gateway-contract/src/tasks.js +0 -6
- package/dist/src/activity/types.d.ts +4 -4
- package/dist/src/agent/agent-manager.d.ts +0 -3
- package/dist/src/agent/agent-manager.js +0 -43
- package/dist/src/agent/background-review/prompts.d.ts +8 -0
- package/dist/src/agent/background-review/prompts.js +9 -2
- package/dist/src/agent/background-review/run-background-review.js +73 -11
- package/dist/src/agent/capabilities/definitions.d.ts +2 -18
- package/dist/src/agent/capabilities/definitions.js +0 -17
- package/dist/src/agent/child-agent-factory.d.ts +1 -1
- package/dist/src/agent/client-error-format.d.ts +1 -1
- package/dist/src/agent/client-error-format.js +1 -1
- package/dist/src/agent/commands/command-registry.js +1 -1
- package/dist/src/agent/context/execution-scope.d.ts +2 -8
- package/dist/src/agent/context/execution-scope.js +6 -23
- package/dist/src/agent/embedded/index.d.ts +0 -1
- package/dist/src/agent/embedded/index.js +1 -2
- package/dist/src/agent/embedded/run-turn.js +25 -2
- package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js +0 -2
- package/dist/src/agent/external-tools/gateway-tools.js +6 -6
- package/dist/src/agent/inbound/attachment-pipeline.d.ts +2 -0
- package/dist/src/agent/inbound/attachment-pipeline.js +10 -5
- package/dist/src/agent/mcp/connection-setup.js +2 -2
- package/dist/src/agent/memory/compaction-ledger.d.ts +1 -1
- package/dist/src/agent/memory/compaction-ledger.js +1 -1
- package/dist/src/agent/memory/compaction-promotion.js +1 -1
- package/dist/src/agent/memory/source-origin.js +1 -5
- package/dist/src/agent/memory/turn-provenance.js +1 -3
- package/dist/src/agent/memory/types.d.ts +1 -1
- package/dist/src/agent/messaging/command-handler.d.ts +0 -3
- package/dist/src/agent/messaging/command-handler.js +1 -4
- package/dist/src/agent/prompt/sections/behavior.js +2 -2
- package/dist/src/agent/prompt/sections/tooling.js +1 -5
- package/dist/src/agent/prompt/voice-presentation.d.ts +1 -1
- package/dist/src/agent/prompt/voice-presentation.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js +1 -1
- package/dist/src/agent/service/process-direct-streaming.js +0 -6
- package/dist/src/agent/service.d.ts +0 -2
- package/dist/src/agent/service.js +0 -11
- package/dist/src/agent/service.types.d.ts +0 -2
- package/dist/src/agent/session/session-config-service.d.ts +0 -2
- package/dist/src/agent/session/session-config-service.js +1 -1
- package/dist/src/agent/session/session-inspector.d.ts +0 -1
- package/dist/src/agent/session/session-inspector.js +0 -1
- package/dist/src/agent/skills/required-env-vars.d.ts +1 -1
- package/dist/src/agent/skills/required-env-vars.js +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.js +2 -5
- package/dist/src/agent/tools/automation-tool.js +1 -1
- package/dist/src/agent/tools/factory.d.ts +0 -3
- package/dist/src/agent/tools/factory.js +21 -10
- package/dist/src/agent/tools/index.d.ts +0 -2
- package/dist/src/agent/tools/index.js +1 -3
- package/dist/src/agent/tools/knowledge-memory-tool.d.ts +1 -0
- package/dist/src/agent/tools/knowledge-memory-tool.js +13 -4
- package/dist/src/agent/tools/personal-task-tool.js +8 -22
- package/dist/src/agent/tools/search/errors.js +2 -2
- package/dist/src/agent/tools/session-recall-tool.d.ts +3 -0
- package/dist/src/agent/tools/session-recall-tool.js +7 -0
- package/dist/src/agent/tools/session-search-tool.d.ts +3 -0
- package/dist/src/agent/tools/session-search-tool.js +20 -4
- package/dist/src/agent/tools/user-context-tool.js +7 -1
- package/dist/src/agent/tools/xopc-use-tool.js +1 -1
- package/dist/src/agent-catalog/index.d.ts +0 -1
- package/dist/src/agent-catalog/index.js +1 -2
- package/dist/src/agent-config/index.js +2 -2
- package/dist/src/agent-config/resolver.js +0 -6
- package/dist/src/agent-config/schema.d.ts +0 -16
- package/dist/src/agent-config/schema.js +2 -9
- package/dist/src/agent-matching/selection-repository.d.ts +1 -1
- package/dist/src/agent-matching/selection-repository.js +1 -1
- package/dist/src/agent-matching/service.d.ts +1 -2
- package/dist/src/agent-matching/service.js +3 -7
- package/dist/src/ai-assist/text-assist.d.ts +1 -1
- package/dist/src/ai-assist/text-assist.js +0 -72
- package/dist/src/automations/capabilities/write.d.ts +0 -40
- package/dist/src/automations/domain/types.d.ts +0 -15
- package/dist/src/automations/domain/validation.d.ts +0 -80
- package/dist/src/automations/domain/validation.js +0 -17
- package/dist/src/automations/draft/automation-draft-prompt.js +0 -3
- package/dist/src/automations/draft/automation-draft-validator.d.ts +0 -20
- package/dist/src/automations/draft/automation-draft-validator.js +0 -1
- package/dist/src/automations/events/event-catalog.js +0 -6
- package/dist/src/automations/service/action-executor.d.ts +0 -1
- package/dist/src/automations/service/action-executor.js +1 -110
- package/dist/src/automations/service/automation-service.js +0 -2
- package/dist/src/automations/storage/automation-run-repository.js +6 -7
- package/dist/src/backup/archive.js +1 -1
- package/dist/src/bootstrap/application-state.d.ts +2 -10
- package/dist/src/bootstrap/application-state.js +5 -18
- package/dist/src/channels/manager.d.ts +0 -2
- package/dist/src/channels/manager.js +0 -4
- package/dist/src/channels/pairing/index.d.ts +2 -1
- package/dist/src/channels/pairing/pairing-service.d.ts +0 -1
- package/dist/src/chat-commands/context.d.ts +0 -3
- package/dist/src/chat-commands/context.js +0 -5
- package/dist/src/chat-commands/index.d.ts +0 -1
- package/dist/src/chat-commands/index.js +1 -3
- package/dist/src/chat-commands/types.d.ts +0 -5
- package/dist/src/cli/command-manifest.js +1 -1
- package/dist/src/cli/commands/config.js +2 -10
- package/dist/src/cli/commands/doctor/checks/database-relations.js +0 -3
- package/dist/src/cli/commands/doctor/checks/database-schema.js +4 -25
- package/dist/src/cli/commands/gateway/run-foreground.js +1 -1
- package/dist/src/cli/commands/setup-shared/prompts.d.ts +2 -2
- package/dist/src/cli/commands/setup-shared/prompts.js +2 -2
- package/dist/src/cli/commands/tui-runner.js +2 -2
- package/dist/src/cli/extension-cli-register.js +1 -1
- package/dist/src/cli/index.d.ts +0 -1
- package/dist/src/cli/index.js +2 -2
- package/dist/src/cli/utils/init-workspace-core.js +3 -6
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/loader.d.ts +0 -1
- package/dist/src/config/loader.js +1 -13
- package/dist/src/config/paths.d.ts +1 -1
- package/dist/src/config/paths.js +1 -1
- package/dist/src/connectors/composio-catalog.js +1 -3
- package/dist/src/connectors/composio.js +1 -2
- package/dist/src/connectors/connected-source-ingestion.js +1 -1
- package/dist/src/connectors/connected-source-understanding.js +1 -1
- package/dist/src/connectors/learning-coordinator.js +1 -1
- package/dist/src/connectors/principal.js +1 -22
- package/dist/src/connectors/{workflow-preflight.d.ts → requirements-preflight.d.ts} +9 -8
- package/dist/src/connectors/{workflow-preflight.js → requirements-preflight.js} +2 -10
- package/dist/src/connectors/types.d.ts +1 -1
- package/dist/src/daemon/types.d.ts +0 -9
- package/dist/src/discussions/long-review.js +0 -11
- package/dist/src/endpoint-tools/policy.js +13 -14
- package/dist/src/extensions/agent-plugins/auth.js +1 -3
- package/dist/src/extensions/agent-plugins/formats.js +2 -4
- package/dist/src/extensions/agent-plugins/mcp-format.d.ts +1 -1
- package/dist/src/extensions/agent-plugins/mcp-format.js +2 -2
- package/dist/src/extensions/bundled-extension-activation.d.ts +0 -2
- package/dist/src/extensions/bundled-extension-activation.js +1 -3
- package/dist/src/extensions/install.js +1 -1
- package/dist/src/extensions/types/tui.d.ts +1 -2
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -7
- package/dist/src/gateway/agent-builtin-tools.js +0 -7
- package/dist/src/gateway/agents-admin.d.ts +0 -1
- package/dist/src/gateway/agents-admin.js +0 -1
- package/dist/src/gateway/global-defaults-admin.js +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +0 -8
- package/dist/src/gateway/hono/lib/config-payload.js +1 -2
- package/dist/src/gateway/hono/lib/config-write-lock.d.ts +1 -1
- package/dist/src/gateway/hono/lib/config-write-lock.js +1 -1
- package/dist/src/gateway/hono/middleware/auth.js +2 -2
- package/dist/src/gateway/hono/routes/activity.js +0 -1
- package/dist/src/gateway/hono/routes/agents.js +2 -9
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +0 -22
- package/dist/src/gateway/hono/routes/chat-model-config.d.ts +0 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +2 -3
- package/dist/src/gateway/hono/routes/config.js +2 -21
- package/dist/src/gateway/hono/routes/connectors.js +1 -1
- package/dist/src/gateway/hono/routes/context-sources.js +1 -1
- package/dist/src/gateway/hono/routes/devices.js +2 -2
- package/dist/src/gateway/hono/routes/home.js +3 -20
- package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -8
- package/dist/src/gateway/hono/routes/memory-learning.js +1 -1
- package/dist/src/gateway/hono/routes/personal-agent.js +1 -1
- package/dist/src/gateway/hono/routes/projects.js +0 -16
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +2 -2
- package/dist/src/gateway/hono/routes/sessions.js +0 -3
- package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -1
- package/dist/src/gateway/hono/routes/user-model.js +1 -1
- package/dist/src/gateway/index.js +1 -1
- package/dist/src/gateway/run-loop.js +2 -2
- package/dist/src/gateway/security/device-request-proof.js +1 -1
- package/dist/src/gateway/security/gateway-scopes.js +0 -1
- package/dist/src/gateway/service/active-execution.d.ts +1 -1
- package/dist/src/gateway/service/active-execution.js +1 -1
- package/dist/src/gateway/service/agent-runner.js +1 -1
- package/dist/src/gateway/service/session-input-coordinator.d.ts +1 -1
- package/dist/src/gateway/service/sessions-api.d.ts +1 -2
- package/dist/src/gateway/service/sessions-api.js +1 -1
- package/dist/src/gateway/service/task-conversation-query-service.d.ts +0 -4
- package/dist/src/gateway/service/types.d.ts +2 -0
- package/dist/src/gateway/service.d.ts +1 -8
- package/dist/src/gateway/service.js +20 -67
- package/dist/src/history/ctx/format.js +1 -1
- package/dist/src/home-intelligence/capability-preflight.js +1 -1
- package/dist/src/infra/unhandled-rejections.js +2 -2
- package/dist/src/infra/update-runner.d.ts +1 -2
- package/dist/src/infra/update-runner.js +2 -2
- package/dist/src/knowledge/connected-knowledge-pipeline.js +1 -1
- package/dist/src/knowledge/local-folder-adapter.js +2 -5
- package/dist/src/knowledge-memory/repository.d.ts +3 -1
- package/dist/src/knowledge-memory/repository.js +10 -3
- package/dist/src/knowledge-memory/usage-policy.js +1 -1
- package/dist/src/local-apps/service.js +1 -1
- package/dist/src/memory-learning/forget-capture.d.ts +14 -0
- package/dist/src/memory-learning/forget-capture.js +101 -0
- package/dist/src/memory-learning/forgotten-history.d.ts +15 -0
- package/dist/src/memory-learning/forgotten-history.js +137 -0
- package/dist/src/memory-learning/owner-directive.d.ts +2 -0
- package/dist/src/memory-learning/owner-directive.js +10 -0
- package/dist/src/memory-learning/service.js +0 -2
- package/dist/src/memory-learning/source-learning.js +1 -1
- package/dist/src/memory-learning/task-receipts.js +1 -1
- package/dist/src/memory-learning/work-capture.js +2 -1
- package/dist/src/migrations/index.js +2 -2
- package/dist/src/migrations/runner.d.ts +1 -2
- package/dist/src/migrations/runner.js +2 -5
- package/dist/src/notes/service.js +3 -3
- package/dist/src/notes/types.d.ts +1 -2
- package/dist/src/personal-agent/communication.d.ts +0 -3
- package/dist/src/personal-agent/communication.js +1 -12
- package/dist/src/personal-agent/persona.d.ts +0 -4
- package/dist/src/personal-agent/persona.js +1 -5
- package/dist/src/personal-agent/proactivity/repository.js +2 -6
- package/dist/src/personal-agent/prompt-context.js +1 -1
- package/dist/src/personal-agent/prompts.d.ts +0 -3
- package/dist/src/personal-agent/prompts.js +7 -146
- package/dist/src/personal-agent/reply-composer.js +3 -3
- package/dist/src/personal-agent/reply-style.d.ts +1 -13
- package/dist/src/personal-agent/reply-style.js +3 -123
- package/dist/src/personal-agent/request-delivery.d.ts +1 -1
- package/dist/src/personal-agent/request-delivery.js +1 -1
- package/dist/src/personal-agent/request-service.js +2 -2
- package/dist/src/personal-agent/specialist-capabilities.js +0 -1
- package/dist/src/personal-agent/task-cancel.js +2 -1
- package/dist/src/platform/client.d.ts +0 -1
- package/dist/src/platform/contracts.d.ts +0 -1
- package/dist/src/platform/contracts.js +1 -4
- package/dist/src/projects/index.d.ts +0 -1
- package/dist/src/projects/index.js +1 -2
- package/dist/src/projects/project-loop.d.ts +2 -12
- package/dist/src/projects/project-loop.js +19 -42
- package/dist/src/projects/project-store.d.ts +0 -1
- package/dist/src/projects/project-store.js +0 -11
- package/dist/src/projects/types.d.ts +0 -6
- package/dist/src/providers/model-usage.js +0 -5
- package/dist/src/realtime/runtime.js +0 -1
- package/dist/src/routing/agent-session-key.js +1 -1
- package/dist/src/session/manager.js +1 -1
- package/dist/src/session/store.d.ts +1 -0
- package/dist/src/session/types.d.ts +2 -6
- package/dist/src/storage/sqlite/connection-wait-repository.js +0 -33
- package/dist/src/storage/sqlite/connection.js +2 -2
- package/dist/src/storage/sqlite/device-access-repository.d.ts +2 -2
- package/dist/src/storage/sqlite/device-access-repository.js +4 -8
- package/dist/src/storage/sqlite/fts.d.ts +4 -0
- package/dist/src/storage/sqlite/fts.js +13 -4
- package/dist/src/storage/sqlite/home-attention-repository.d.ts +1 -1
- package/dist/src/storage/sqlite/index.d.ts +1 -3
- package/dist/src/storage/sqlite/index.js +4 -8
- package/dist/src/storage/sqlite/{migrations/conversation-backup.d.ts → offline-access.d.ts} +1 -4
- package/dist/src/storage/sqlite/{migrations/conversation-backup.js → offline-access.js} +6 -25
- package/dist/src/storage/sqlite/row-mappers.d.ts +0 -8
- package/dist/src/storage/sqlite/row-mappers.js +0 -8
- package/dist/src/storage/sqlite/{migrations/errors.d.ts → schema-errors.d.ts} +0 -6
- package/dist/src/storage/sqlite/schema-errors.js +28 -0
- package/dist/src/storage/sqlite/schema.d.ts +4 -5
- package/dist/src/storage/sqlite/schema.js +23 -19
- package/dist/src/storage/sqlite/schema.sql +1099 -427
- package/dist/src/storage/sqlite/session-identity-sql.js +1 -2
- package/dist/src/storage/sqlite/session-read-repository.d.ts +1 -1
- package/dist/src/storage/sqlite/session-read-repository.js +1 -2
- package/dist/src/storage/sqlite/session-repository.js +10 -36
- package/dist/src/storage/sqlite/transcript-repository.d.ts +1 -0
- package/dist/src/storage/sqlite/transcript-repository.js +14 -12
- package/dist/src/storage/sqlite/{migrations/conversation-windows-owners.js → windows-database-owners.js} +3 -3
- package/dist/src/tasks/attention-governor.d.ts +1 -0
- package/dist/src/tasks/attention-governor.js +2 -2
- package/dist/src/tasks/capabilities/management.d.ts +0 -1
- package/dist/src/tasks/capabilities/relations.d.ts +2 -2
- package/dist/src/tasks/execution-context.d.ts +1 -1
- package/dist/src/tasks/execution-context.js +0 -2
- package/dist/src/tasks/home-query-service.d.ts +2 -16
- package/dist/src/tasks/home-query-service.js +37 -67
- package/dist/src/tasks/index.d.ts +0 -1
- package/dist/src/tasks/index.js +1 -2
- package/dist/src/tasks/project-operating-view-service.js +0 -1
- package/dist/src/tasks/task-application-service.js +0 -5
- package/dist/src/tasks/task-repository.d.ts +1 -1
- package/dist/src/tasks/task-run-coordinator.js +4 -2
- package/dist/src/tui/backends/embedded-backend.d.ts +1 -4
- package/dist/src/tui/backends/embedded-backend.js +3 -59
- package/dist/src/tui/backends/gateway-realtime-backend.d.ts +1 -2
- package/dist/src/tui/backends/gateway-realtime-backend.js +1 -27
- package/dist/src/tui/components/chat-log.d.ts +0 -2
- package/dist/src/tui/components/chat-log.js +0 -18
- package/dist/src/tui/extension-host/runtime-context.js +0 -1
- package/dist/src/tui/tui-backend.d.ts +0 -15
- package/dist/src/tui/tui-command-formatters.d.ts +0 -3
- package/dist/src/tui/tui-command-formatters.js +1 -28
- package/dist/src/tui/tui-commands.d.ts +1 -14
- package/dist/src/tui/tui-commands.js +4 -89
- package/dist/src/tui/tui-startup-resources.js +0 -2
- package/dist/src/tui/tui-startup-text.js +2 -3
- package/dist/src/tui/tui.js +1 -49
- package/dist/src/user-context/trust-policy.js +1 -1
- package/dist/src/user-model/capture/semantic.d.ts +18 -1
- package/dist/src/user-model/capture/semantic.js +26 -1
- package/dist/src/user-model/usage-policy.js +1 -1
- 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/voice/realtime/agentBroker.js +2 -3
- package/dist/src/voice/realtime/memory-context.js +2 -2
- package/dist/src/work-discovery/incremental-repository.js +1 -1
- package/dist/src/work-discovery/service.js +2 -2
- package/package.json +5 -6
- package/dist/extensions/feishu/src/workflow-progress.d.ts +0 -27
- package/dist/extensions/feishu/src/workflow-progress.js +0 -98
- package/dist/extensions/telegram/src/workflow-progress.d.ts +0 -24
- package/dist/extensions/telegram/src/workflow-progress.js +0 -72
- package/dist/extensions/weixin/src/workflow-progress.d.ts +0 -26
- package/dist/extensions/weixin/src/workflow-progress.js +0 -98
- package/dist/gateway/static/root/assets/agent-avatar-dicebear-lMrejpsz.js +0 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-lXwR3Rff.js +0 -1
- package/dist/gateway/static/root/assets/agents-DFwBf95X.js +0 -77
- package/dist/gateway/static/root/assets/app-link-BV_eGr7l.js +0 -1
- package/dist/gateway/static/root/assets/app-management-settings-panel-Cja3eV7H.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-C3xbCdYa.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-CWvHbJBK.js +0 -6
- package/dist/gateway/static/root/assets/browser-automations-page-BtvOURHQ.js +0 -3
- package/dist/gateway/static/root/assets/browser-settings-page-C_OeE79S.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-CD6PzNK7.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-page-BKF6q_tC.js +0 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-B7qOaUZs.js +0 -8
- package/dist/gateway/static/root/assets/channels-3M9-anCN.js +0 -1
- package/dist/gateway/static/root/assets/code-editor-CXIH8jQw.js +0 -1
- package/dist/gateway/static/root/assets/computer-settings-page-LaekhDG6.js +0 -1
- package/dist/gateway/static/root/assets/connector-service-page-DJP1n1_n.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-DmQqMy6l.js +0 -1
- package/dist/gateway/static/root/assets/dependency-picker-BhElpD_6.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-ByvV-cDD.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-BBruQu-_.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-C3zOy8PO.js +0 -1
- package/dist/gateway/static/root/assets/dist-BGTk37IG.js +0 -1
- package/dist/gateway/static/root/assets/file-archive-DanfQJNe.js +0 -1
- package/dist/gateway/static/root/assets/file-braces-BoAMI_k9.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-CP6L2jIR.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-yXB4a40_.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-CzrFZ0lB.js +0 -1
- package/dist/gateway/static/root/assets/highlight-code-BH65IIbJ.js +0 -1
- package/dist/gateway/static/root/assets/home-page-cXmd8x0S.js +0 -2
- package/dist/gateway/static/root/assets/image-generation-api-C6su4n9B.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-CsXYryWS.js +0 -1
- package/dist/gateway/static/root/assets/index-BZlryZm8.css +0 -1
- package/dist/gateway/static/root/assets/index-uAJlrGvo.js +0 -267
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-GYKLt0oF.js +0 -1
- package/dist/gateway/static/root/assets/languages-BFe8nIOO.js +0 -2
- package/dist/gateway/static/root/assets/local-app-workbench-page-Dw-i6VkX.js +0 -1
- package/dist/gateway/static/root/assets/local-apps-page-DslilwNE.js +0 -1
- package/dist/gateway/static/root/assets/locale-store-D_migb9R.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-4N8bGPIE.js +0 -2
- package/dist/gateway/static/root/assets/management-settings-CPmxI1k0.js +0 -1
- package/dist/gateway/static/root/assets/markdown-editor-BhBJANcx.js +0 -1
- package/dist/gateway/static/root/assets/markdown-view-Ljt0bhfF.js +0 -324
- package/dist/gateway/static/root/assets/markdown-view-ixUWAmoy.css +0 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-Ba-WQCki.js +0 -1
- package/dist/gateway/static/root/assets/mermaid-render-604gISVe.js +0 -134
- package/dist/gateway/static/root/assets/messages-D__oW2yE.js +0 -3
- package/dist/gateway/static/root/assets/note-detail-panel-CjTm5gxS.js +0 -5
- package/dist/gateway/static/root/assets/note-image-lightbox-hbSbEEfN.js +0 -1
- package/dist/gateway/static/root/assets/notes-page-DkESStKc.js +0 -8
- package/dist/gateway/static/root/assets/page-context-capture-button-eyzTNrCe.js +0 -1
- package/dist/gateway/static/root/assets/personal-page-DZxbFQvF.js +0 -1
- package/dist/gateway/static/root/assets/personal-settings-panel-DzubCRqj.js +0 -1
- package/dist/gateway/static/root/assets/plugin-details-dialog-BjVLbxZM.js +0 -1
- package/dist/gateway/static/root/assets/plus-Q2yW6OE7.js +0 -1
- package/dist/gateway/static/root/assets/preview-open-alternatives-7pUtUL4O.js +0 -1
- package/dist/gateway/static/root/assets/product-delivery-DwmnNJvk.js +0 -1
- package/dist/gateway/static/root/assets/product-preview-content-COo4zwp9.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-CrIH6nEy.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-D4swvBmH.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-DltfIMtv.js +0 -1
- package/dist/gateway/static/root/assets/runtime-tools-api-CmEWVrOg.js +0 -5
- package/dist/gateway/static/root/assets/session-api-aQLptIs9.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-CfYU53aw.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BJBoWYbO.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DZgVMRXr.js +0 -1
- package/dist/gateway/static/root/assets/share-preview-page-C2LHd_Nl.js +0 -2
- package/dist/gateway/static/root/assets/shares-settings-C5MTc6t-.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-BcdA9ezU.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-BMw8XbKL.js +0 -2
- package/dist/gateway/static/root/assets/source-workspace-editor-DunRD1gY.js +0 -1
- package/dist/gateway/static/root/assets/style-DR0-RKaL.js +0 -7
- package/dist/gateway/static/root/assets/system-settings-panel-2Kr9Y-FJ.js +0 -1
- package/dist/gateway/static/root/assets/tab-completion-input.utils-BP3NH_du.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-7kPco8Ys.js +0 -2
- package/dist/gateway/static/root/assets/task-expandable-content-4s_FTl-9.js +0 -1
- package/dist/gateway/static/root/assets/tasks-B4bZpO6O.js +0 -1
- package/dist/gateway/static/root/assets/tracing-settings-page-D53wxq60.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-KRy50OBd.js +0 -2
- package/dist/gateway/static/root/assets/work-discovery-overlay-Bd9HLsds.js +0 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-C9mAiHBd.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-CGg4GWwt.js +0 -6
- package/dist/gateway/static/root/assets/x-B_N4OPjy.js +0 -1
- package/dist/gateway/static/root/assets/xml-_d7dTN2Q.js +0 -3
- package/dist/src/agent/embedded/session-manager-init.d.ts +0 -4
- package/dist/src/agent/embedded/session-manager-init.js +0 -48
- package/dist/src/agent/tools/workflow-manage-tool.d.ts +0 -2
- package/dist/src/agent/tools/workflow-manage-tool.js +0 -225
- package/dist/src/agent/tools/workflow-tool.d.ts +0 -20
- package/dist/src/agent/tools/workflow-tool.js +0 -155
- package/dist/src/agent/workflow/agent-progress.d.ts +0 -5
- package/dist/src/agent/workflow/agent-progress.js +0 -65
- package/dist/src/agent/workflow/builtins/index.d.ts +0 -2
- package/dist/src/agent/workflow/builtins/index.js +0 -374
- package/dist/src/agent/workflow/catalog.d.ts +0 -52
- package/dist/src/agent/workflow/catalog.js +0 -150
- package/dist/src/agent/workflow/channel-capability.d.ts +0 -76
- package/dist/src/agent/workflow/channel-capability.js +0 -1
- package/dist/src/agent/workflow/index.d.ts +0 -10
- package/dist/src/agent/workflow/index.js +0 -9
- package/dist/src/agent/workflow/progress-broker.d.ts +0 -80
- package/dist/src/agent/workflow/progress-broker.js +0 -261
- package/dist/src/agent/workflow/snapshot-empty.d.ts +0 -2
- package/dist/src/agent/workflow/snapshot-empty.js +0 -17
- package/dist/src/agent/workflow/snapshot.d.ts +0 -28
- package/dist/src/agent/workflow/snapshot.js +0 -267
- package/dist/src/agent/workflow/step-labels.d.ts +0 -8
- package/dist/src/agent/workflow/step-labels.js +0 -50
- package/dist/src/agent/workflow/structured-output-tool.d.ts +0 -33
- package/dist/src/agent/workflow/structured-output-tool.js +0 -56
- package/dist/src/agent/workflow/subagent-runner.d.ts +0 -46
- package/dist/src/agent/workflow/subagent-runner.js +0 -221
- package/dist/src/agent/workflow/types.d.ts +0 -252
- package/dist/src/agent/workflow/types.js +0 -1
- package/dist/src/agent/workflow/workflow-child-tools.d.ts +0 -4
- package/dist/src/agent/workflow/workflow-child-tools.js +0 -38
- package/dist/src/agent-catalog/migrations/identity-markdown-cutover.d.ts +0 -5
- package/dist/src/agent-catalog/migrations/identity-markdown-cutover.js +0 -94
- package/dist/src/agent-catalog/migrations/legacy-config-cutover.d.ts +0 -11
- package/dist/src/agent-catalog/migrations/legacy-config-cutover.js +0 -194
- package/dist/src/chat-commands/builtins/workflow.d.ts +0 -18
- package/dist/src/chat-commands/builtins/workflow.js +0 -249
- package/dist/src/gateway/gateway-workflow-host.types.d.ts +0 -23
- package/dist/src/gateway/gateway-workflow-host.types.js +0 -1
- package/dist/src/gateway/hono/routes/workflows.d.ts +0 -3
- package/dist/src/gateway/hono/routes/workflows.js +0 -572
- package/dist/src/knowledge-memory/repair-evidence.d.ts +0 -2
- package/dist/src/knowledge-memory/repair-evidence.js +0 -57
- package/dist/src/migrations/cloud-public-models.d.ts +0 -7
- package/dist/src/migrations/cloud-public-models.js +0 -157
- package/dist/src/migrations/memory-config.d.ts +0 -2
- package/dist/src/migrations/memory-config.js +0 -76
- package/dist/src/migrations/retired-local-stt.d.ts +0 -2
- package/dist/src/migrations/retired-local-stt.js +0 -52
- package/dist/src/projects/workflow-bind.d.ts +0 -1
- package/dist/src/projects/workflow-bind.js +0 -15
- package/dist/src/storage/sqlite/migrations/218_core_relation_indexes.sql +0 -26
- package/dist/src/storage/sqlite/migrations/219_json_contracts.sql +0 -123
- package/dist/src/storage/sqlite/migrations/220_normalize_timestamps.sql +0 -339
- package/dist/src/storage/sqlite/migrations/221_ai_usage_retention_index.sql +0 -2
- package/dist/src/storage/sqlite/migrations/222_session_config_authority.sql +0 -13
- package/dist/src/storage/sqlite/migrations/223_session_creation_receipts.sql +0 -59
- package/dist/src/storage/sqlite/migrations/224_task_origin_links.sql +0 -8
- package/dist/src/storage/sqlite/migrations/225_task_collaboration.sql +0 -32
- package/dist/src/storage/sqlite/migrations/226_task_main_updates.sql +0 -9
- package/dist/src/storage/sqlite/migrations/227_task_main_update_decisions.sql +0 -8
- package/dist/src/storage/sqlite/migrations/228_task_main_agent_links.sql +0 -14
- package/dist/src/storage/sqlite/migrations/229_task_criterion_reviews.sql +0 -12
- package/dist/src/storage/sqlite/migrations/230_personal_agent_onboarding.sql +0 -8
- package/dist/src/storage/sqlite/migrations/231_task_result_deliveries.sql +0 -32
- package/dist/src/storage/sqlite/migrations/232_personal_requests.sql +0 -28
- package/dist/src/storage/sqlite/migrations/233_observability_usage_links.sql +0 -3
- package/dist/src/storage/sqlite/migrations/234_task_result_reply.sql +0 -14
- package/dist/src/storage/sqlite/migrations/235_personal_conversation_priority.sql +0 -3
- package/dist/src/storage/sqlite/migrations/236_personal_proactivity.sql +0 -53
- package/dist/src/storage/sqlite/migrations/237_personal_strategy_versions.sql +0 -18
- package/dist/src/storage/sqlite/migrations/238_browser_record_replay.sql +0 -45
- package/dist/src/storage/sqlite/migrations/239_clarification_notifications.sql +0 -26
- package/dist/src/storage/sqlite/migrations/240_device_settings.sql +0 -5
- package/dist/src/storage/sqlite/migrations/241_device_grant_audit.sql +0 -13
- package/dist/src/storage/sqlite/migrations/242_cloud_usage_receipts.sql +0 -5
- package/dist/src/storage/sqlite/migrations/243_voice_opening_greetings.sql +0 -12
- package/dist/src/storage/sqlite/migrations/244_device_request_proofs.sql +0 -8
- package/dist/src/storage/sqlite/migrations/245_memory_learning.sql +0 -125
- package/dist/src/storage/sqlite/migrations/246_personal_session_thinking.sql +0 -22
- package/dist/src/storage/sqlite/migrations/247_agent_selection_records.sql +0 -32
- package/dist/src/storage/sqlite/migrations/248_next_turn_suggestions.sql +0 -20
- package/dist/src/storage/sqlite/migrations/249_task_allocations.sql +0 -17
- package/dist/src/storage/sqlite/migrations/250_research_checkpoints.sql +0 -15
- package/dist/src/storage/sqlite/migrations/251_personal_result_reads.sql +0 -40
- package/dist/src/storage/sqlite/migrations/252_task_work_revisions.sql +0 -15
- package/dist/src/storage/sqlite/migrations/253_discussion_processing_recovery.sql +0 -20
- package/dist/src/storage/sqlite/migrations/254_discussion_annotations.sql +0 -17
- package/dist/src/storage/sqlite/migrations/255_discussion_chapter_progress.sql +0 -10
- package/dist/src/storage/sqlite/migrations/256_task_main_update_retries.sql +0 -21
- package/dist/src/storage/sqlite/migrations/257_session_composer_history.sql +0 -11
- package/dist/src/storage/sqlite/migrations/258_task_phase_changes.sql +0 -20
- package/dist/src/storage/sqlite/migrations/259_personal_default_style.sql +0 -10
- package/dist/src/storage/sqlite/migrations/discover.d.ts +0 -4
- package/dist/src/storage/sqlite/migrations/discover.js +0 -40
- package/dist/src/storage/sqlite/migrations/errors.js +0 -40
- package/dist/src/storage/sqlite/migrations/runner.d.ts +0 -22
- package/dist/src/storage/sqlite/migrations/runner.js +0 -112
- package/dist/src/storage/sqlite/migrations/types.d.ts +0 -12
- package/dist/src/storage/sqlite/migrations/types.js +0 -1
- package/dist/src/tasks/task-workflow-coordinator.d.ts +0 -5
- package/dist/src/tasks/task-workflow-coordinator.js +0 -55
- package/dist/src/tui/tui-workflow-slash.d.ts +0 -29
- package/dist/src/tui/tui-workflow-slash.js +0 -58
- package/dist/src/workflows/authoring/index.d.ts +0 -2
- package/dist/src/workflows/authoring/index.js +0 -3
- package/dist/src/workflows/authoring/workflow-draft-defaults.d.ts +0 -3
- package/dist/src/workflows/authoring/workflow-draft-defaults.js +0 -63
- package/dist/src/workflows/authoring/workflow-draft-store.d.ts +0 -29
- package/dist/src/workflows/authoring/workflow-draft-store.js +0 -52
- package/dist/src/workflows/context/workflow-context-snapshot-repository.d.ts +0 -21
- package/dist/src/workflows/context/workflow-context-snapshot-repository.js +0 -41
- package/dist/src/workflows/context/workflow-context.d.ts +0 -18
- package/dist/src/workflows/context/workflow-context.js +0 -164
- package/dist/src/workflows/domain/command.d.ts +0 -19
- package/dist/src/workflows/domain/command.js +0 -1
- package/dist/src/workflows/domain/definition-utils.d.ts +0 -18
- package/dist/src/workflows/domain/definition-utils.js +0 -90
- package/dist/src/workflows/domain/definition.d.ts +0 -164
- package/dist/src/workflows/domain/definition.js +0 -1
- package/dist/src/workflows/domain/event.d.ts +0 -88
- package/dist/src/workflows/domain/event.js +0 -1
- package/dist/src/workflows/domain/index.d.ts +0 -8
- package/dist/src/workflows/domain/index.js +0 -5
- package/dist/src/workflows/domain/result.d.ts +0 -68
- package/dist/src/workflows/domain/result.js +0 -1
- package/dist/src/workflows/domain/run.d.ts +0 -257
- package/dist/src/workflows/domain/run.js +0 -12
- package/dist/src/workflows/domain/schema-validation.d.ts +0 -8
- package/dist/src/workflows/domain/schema-validation.js +0 -26
- package/dist/src/workflows/domain/validation.d.ts +0 -22
- package/dist/src/workflows/domain/validation.js +0 -318
- package/dist/src/workflows/engine/index.d.ts +0 -2
- package/dist/src/workflows/engine/index.js +0 -3
- package/dist/src/workflows/engine/projector.d.ts +0 -3
- package/dist/src/workflows/engine/projector.js +0 -276
- package/dist/src/workflows/engine/workflow-engine.d.ts +0 -88
- package/dist/src/workflows/engine/workflow-engine.js +0 -719
- package/dist/src/workflows/index.d.ts +0 -11
- package/dist/src/workflows/index.js +0 -19
- package/dist/src/workflows/project-presets/project-workflow-preset-repository.d.ts +0 -20
- package/dist/src/workflows/project-presets/project-workflow-preset-repository.js +0 -39
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.d.ts +0 -9
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +0 -30
- package/dist/src/workflows/registry/index.d.ts +0 -2
- package/dist/src/workflows/registry/index.js +0 -2
- package/dist/src/workflows/registry/workflow-definition-registry.d.ts +0 -15
- package/dist/src/workflows/registry/workflow-definition-registry.js +0 -1
- package/dist/src/workflows/runtime/graph-workflow-runtime.d.ts +0 -10
- package/dist/src/workflows/runtime/graph-workflow-runtime.js +0 -289
- package/dist/src/workflows/runtime/index.d.ts +0 -2
- package/dist/src/workflows/runtime/index.js +0 -2
- package/dist/src/workflows/runtime/workflow-runtime-port.d.ts +0 -13
- package/dist/src/workflows/runtime/workflow-runtime-port.js +0 -1
- package/dist/src/workflows/service/run-view-to-snapshot.d.ts +0 -4
- package/dist/src/workflows/service/run-view-to-snapshot.js +0 -64
- package/dist/src/workflows/service/workflow-run-service.d.ts +0 -63
- package/dist/src/workflows/service/workflow-run-service.js +0 -892
- package/dist/src/workflows/service/workflow-run-service.types.d.ts +0 -62
- package/dist/src/workflows/service/workflow-run-service.types.js +0 -1
- package/dist/src/workflows/service/workflow-session-bridge.d.ts +0 -33
- package/dist/src/workflows/service/workflow-session-bridge.js +0 -244
- package/dist/src/workflows/service/workflow-session-key.d.ts +0 -3
- package/dist/src/workflows/service/workflow-session-key.js +0 -19
- package/dist/src/workflows/service/workflow-writeback-service.d.ts +0 -9
- package/dist/src/workflows/service/workflow-writeback-service.js +0 -107
- package/dist/src/workflows/store/event-store.d.ts +0 -16
- package/dist/src/workflows/store/event-store.js +0 -38
- package/dist/src/workflows/store/paths.d.ts +0 -5
- package/dist/src/workflows/store/paths.js +0 -18
- package/dist/src/workflows/store/run-index-store.d.ts +0 -9
- package/dist/src/workflows/store/run-index-store.js +0 -64
- package/dist/src/workflows/store/run-store.d.ts +0 -16
- package/dist/src/workflows/store/run-store.js +0 -40
- package/skills/engineering/workflow-authoring/SKILL.md +0 -32
- /package/dist/gateway/static/root/assets/{style-DLioOiRN.css → project-detail-page-DLioOiRN.css} +0 -0
- /package/dist/src/storage/sqlite/{migrations/conversation-windows-owners.d.ts → windows-database-owners.d.ts} +0 -0
|
@@ -71,10 +71,7 @@ var init_contracts = __esmMin((() => {
|
|
|
71
71
|
"enterprise"
|
|
72
72
|
])).min(1)
|
|
73
73
|
}).strict(),
|
|
74
|
-
entry: z.object({
|
|
75
|
-
instructions: z.string().min(1),
|
|
76
|
-
workflow: z.string().min(1).optional()
|
|
77
|
-
}).strict(),
|
|
74
|
+
entry: z.object({ instructions: z.string().min(1) }).strict(),
|
|
78
75
|
models: z.object({
|
|
79
76
|
intents: z.array(z.enum([
|
|
80
77
|
"fast",
|
|
@@ -7,7 +7,6 @@ export * from './project-agent-suggestion.js';
|
|
|
7
7
|
export * from './project-kind.js';
|
|
8
8
|
export * from './project-loop.js';
|
|
9
9
|
export * from './session-bind.js';
|
|
10
|
-
export * from './workflow-bind.js';
|
|
11
10
|
export * from './automation-bind.js';
|
|
12
11
|
export * from './knowledge-bind.js';
|
|
13
12
|
export * from './workspace.js';
|
|
@@ -8,7 +8,6 @@ import { ProjectSkillError, ProjectSkillService } from "./project-skill-service.
|
|
|
8
8
|
import { isValidProjectAgentId, normalizeProjectAgentId, resolveProjectAgentId } from "./project-agent.js";
|
|
9
9
|
import { CODING_PROJECT_AGENT_ID, inferSuggestedProjectDefaultAgentId, suggestProjectDefaultAgentId } from "./project-agent-suggestion.js";
|
|
10
10
|
import { buildProjectLoopOverview } from "./project-loop.js";
|
|
11
|
-
import { bindWorkflowRunToProject } from "./workflow-bind.js";
|
|
12
11
|
import { bindAutomationToProject } from "./automation-bind.js";
|
|
13
12
|
import { bindKnowledgeItemToProject } from "./knowledge-bind.js";
|
|
14
|
-
export { CODING_PROJECT_AGENT_ID, ProjectDeletionBlockedError, ProjectService, ProjectSkillError, ProjectSkillService, ProjectStore, ProjectWorkspaceConflictError, ProjectWorkspaceInUseError, ProjectWorkspaceInvalidError, ProjectWorkspaceMissingError, bindAutomationToProject, bindKnowledgeItemToProject, bindSessionToProject, bindSessionsToProject,
|
|
13
|
+
export { CODING_PROJECT_AGENT_ID, ProjectDeletionBlockedError, ProjectService, ProjectSkillError, ProjectSkillService, ProjectStore, ProjectWorkspaceConflictError, ProjectWorkspaceInUseError, ProjectWorkspaceInvalidError, ProjectWorkspaceMissingError, bindAutomationToProject, bindKnowledgeItemToProject, bindSessionToProject, bindSessionsToProject, buildProjectLoopOverview, canonicalWorkspacePath, ensureWorkspaceDirectory, getProjectForSession, getProjectWorkspacePathForSession, inferProjectExecutionMode, inferProjectKind, inferProjectNameFromWorkspaceRoot, inferSuggestedProjectDefaultAgentId, isPathSameOrInsideWorkspace, isSafeAutoCreateWorkspaceRoot, isValidProjectAgentId, listProjectConversationIds, moveSessionToProject, normalizeProjectAgentId, resolveProjectAgentId, resolveProjectWorkspacePath, resolveWorkspaceProjectRoot, slugifyProjectName, suggestProjectDefaultAgentId, unbindSessionFromProject, workspaceDirectoryExists };
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import type { TaskOperationalState } from '@xopcai/gateway-contract';
|
|
2
2
|
import type { KnowledgeItem } from '../knowledge-memory/index.js';
|
|
3
3
|
import type { ProjectWithDetails } from './types.js';
|
|
4
|
-
export type ProjectWorkflowRunBrief = {
|
|
5
|
-
runId: string;
|
|
6
|
-
definitionId: string;
|
|
7
|
-
status: string;
|
|
8
|
-
createdAt: number;
|
|
9
|
-
errorMessage?: string;
|
|
10
|
-
};
|
|
11
4
|
export type ProjectAttentionItem = {
|
|
12
5
|
id: string;
|
|
13
|
-
kind: 'blocked_task' | 'stale_task'
|
|
6
|
+
kind: 'blocked_task' | 'stale_task';
|
|
14
7
|
title: string;
|
|
15
8
|
detail?: string;
|
|
16
9
|
status?: string;
|
|
@@ -19,7 +12,7 @@ export type ProjectAttentionItem = {
|
|
|
19
12
|
};
|
|
20
13
|
export type ProjectTimelineItem = {
|
|
21
14
|
id: string;
|
|
22
|
-
kind: 'session' | 'task' | '
|
|
15
|
+
kind: 'session' | 'task' | 'knowledge';
|
|
23
16
|
title: string;
|
|
24
17
|
detail?: string;
|
|
25
18
|
timestamp: number;
|
|
@@ -53,14 +46,11 @@ export type ProjectLoopOverview = {
|
|
|
53
46
|
summary: string;
|
|
54
47
|
nextAction?: string;
|
|
55
48
|
};
|
|
56
|
-
failedWorkflowRuns: ProjectWorkflowRunBrief[];
|
|
57
49
|
recommendedAction?: string;
|
|
58
50
|
};
|
|
59
51
|
export declare function buildProjectLoopOverview(input: {
|
|
60
52
|
project: ProjectWithDetails;
|
|
61
53
|
tasks: ProjectTask[];
|
|
62
|
-
recentWorkflowRuns: ProjectWorkflowRunBrief[];
|
|
63
|
-
failedWorkflowRuns?: ProjectWorkflowRunBrief[];
|
|
64
54
|
knowledgeItems?: KnowledgeItem[];
|
|
65
55
|
nowMs?: number;
|
|
66
56
|
staleAfterMs?: number;
|
|
@@ -21,36 +21,23 @@ function buildProjectLoopOverview(input) {
|
|
|
21
21
|
status: `${task.phase}/${task.operationalState}`,
|
|
22
22
|
updatedAt: task.updatedAt
|
|
23
23
|
}));
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
href: `/tasks/${encodeURIComponent(task.id)}`,
|
|
42
|
-
updatedAt: task.updatedAt
|
|
43
|
-
})),
|
|
44
|
-
...failedWorkflowRuns.map((run) => ({
|
|
45
|
-
id: `workflow:${run.runId}:failed`,
|
|
46
|
-
kind: "failed_workflow",
|
|
47
|
-
title: run.definitionId,
|
|
48
|
-
detail: compactText(run.errorMessage || run.status),
|
|
49
|
-
status: run.status,
|
|
50
|
-
href: `/workflows?run=${encodeURIComponent(run.runId)}`,
|
|
51
|
-
updatedAt: run.createdAt
|
|
52
|
-
}))
|
|
53
|
-
].slice(0, 8);
|
|
24
|
+
const attentionItems = [...blockedTasks.map((task) => ({
|
|
25
|
+
id: `task:${task.id}:blocked`,
|
|
26
|
+
kind: "blocked_task",
|
|
27
|
+
title: task.title,
|
|
28
|
+
detail: compactText(task.attention?.[0]),
|
|
29
|
+
status: `${task.phase}/${task.operationalState}`,
|
|
30
|
+
href: `/tasks/${encodeURIComponent(task.id)}`,
|
|
31
|
+
updatedAt: task.updatedAt
|
|
32
|
+
})), ...staleTasks.map((task) => ({
|
|
33
|
+
id: `task:${task.id}:stale`,
|
|
34
|
+
kind: "stale_task",
|
|
35
|
+
title: task.title,
|
|
36
|
+
detail: compactText(task.attention?.[0] || "Task has not changed recently."),
|
|
37
|
+
status: `${task.phase}/${task.operationalState}`,
|
|
38
|
+
href: `/tasks/${encodeURIComponent(task.id)}`,
|
|
39
|
+
updatedAt: task.updatedAt
|
|
40
|
+
}))].slice(0, 8);
|
|
54
41
|
const timeline = [
|
|
55
42
|
...input.project.recentSessions.map((session) => ({
|
|
56
43
|
id: `session:${session.key}`,
|
|
@@ -69,15 +56,6 @@ function buildProjectLoopOverview(input) {
|
|
|
69
56
|
status: `${task.phase}/${task.operationalState}`,
|
|
70
57
|
href: `/tasks/${encodeURIComponent(task.id)}`
|
|
71
58
|
})),
|
|
72
|
-
...input.recentWorkflowRuns.map((run) => ({
|
|
73
|
-
id: `workflow:${run.runId}`,
|
|
74
|
-
kind: "workflow",
|
|
75
|
-
title: run.definitionId,
|
|
76
|
-
detail: run.status,
|
|
77
|
-
timestamp: run.createdAt,
|
|
78
|
-
status: run.status,
|
|
79
|
-
href: `/workflows?run=${encodeURIComponent(run.runId)}`
|
|
80
|
-
})),
|
|
81
59
|
...(input.knowledgeItems ?? []).slice(0, 5).map((record) => ({
|
|
82
60
|
id: `knowledge:${record.id}`,
|
|
83
61
|
kind: "knowledge",
|
|
@@ -88,7 +66,7 @@ function buildProjectLoopOverview(input) {
|
|
|
88
66
|
}))
|
|
89
67
|
].filter((item) => Number.isFinite(item.timestamp)).sort((left, right) => right.timestamp - left.timestamp).slice(0, 12);
|
|
90
68
|
const recommendedAction = nextActions[0]?.nextAction ?? blockedTasks[0]?.attention?.[0] ?? staleTasks[0]?.attention?.[0] ?? activeTasks[0]?.title ?? (input.project.brief ? "Open a new chat to continue from the project brief." : void 0);
|
|
91
|
-
const digestStatus = attentionItems.length > 0 ? "attention" : activeTasks.length > 0
|
|
69
|
+
const digestStatus = attentionItems.length > 0 ? "attention" : activeTasks.length > 0 ? "healthy" : timeline.length > 0 ? "idle" : "empty";
|
|
92
70
|
return {
|
|
93
71
|
activeTasks,
|
|
94
72
|
blockedTasks,
|
|
@@ -98,10 +76,9 @@ function buildProjectLoopOverview(input) {
|
|
|
98
76
|
timeline,
|
|
99
77
|
digest: {
|
|
100
78
|
status: digestStatus,
|
|
101
|
-
summary: digestStatus === "attention" ? `${attentionItems.length} item(s) need attention: ${blockedTasks.length} blocker(s), ${staleTasks.length} stale task(s)
|
|
79
|
+
summary: digestStatus === "attention" ? `${attentionItems.length} item(s) need attention: ${blockedTasks.length} blocker(s), ${staleTasks.length} stale task(s).` : digestStatus === "healthy" ? `${activeTasks.length} active task(s) and ${nextActions.length} clear next action(s).` : digestStatus === "idle" ? "Recent activity exists, but no active task is driving the project." : "No project activity has been recorded yet.",
|
|
102
80
|
nextAction: recommendedAction
|
|
103
81
|
},
|
|
104
|
-
failedWorkflowRuns,
|
|
105
82
|
recommendedAction
|
|
106
83
|
};
|
|
107
84
|
}
|
|
@@ -61,7 +61,6 @@ export declare class ProjectStore {
|
|
|
61
61
|
getTaskCount(id: string): number;
|
|
62
62
|
getActiveTaskCount(id: string): number;
|
|
63
63
|
getRecentSessions(id: string, limit?: number): ProjectWithDetails['recentSessions'];
|
|
64
|
-
getRecentWorkflowRuns(id: string, limit?: number): ProjectWithDetails['recentWorkflowRuns'];
|
|
65
64
|
getWithDetails(id: string): ProjectWithDetails | null;
|
|
66
65
|
generateSlug(name: string): string;
|
|
67
66
|
}
|
|
@@ -320,7 +320,6 @@ var ProjectStore = class {
|
|
|
320
320
|
runSqliteWriteTransaction((db) => {
|
|
321
321
|
db.prepare(`UPDATE sessions SET project_id = NULL WHERE project_id = ?`).run(id);
|
|
322
322
|
db.prepare(`UPDATE tasks SET project_id = NULL WHERE project_id = ?`).run(id);
|
|
323
|
-
db.prepare(`UPDATE workflow_runs SET project_id = NULL WHERE project_id = ?`).run(id);
|
|
324
323
|
db.prepare(`UPDATE automations SET project_id = NULL WHERE project_id = ?`).run(id);
|
|
325
324
|
db.prepare(`UPDATE knowledge_items SET status = 'archived', updated_at = ?
|
|
326
325
|
WHERE scope_type = 'project' AND scope_id = ?`).run(Date.now(), id);
|
|
@@ -347,15 +346,6 @@ var ProjectStore = class {
|
|
|
347
346
|
agentId: row.agent_id
|
|
348
347
|
}));
|
|
349
348
|
}
|
|
350
|
-
getRecentWorkflowRuns(id, limit = 5) {
|
|
351
|
-
return getSqliteDatabase().prepare(`SELECT run_id, definition_id, status, created_at_ms FROM workflow_runs
|
|
352
|
-
WHERE project_id = ? ORDER BY created_at_ms DESC LIMIT ?`).all(id, clampLimit(limit, 5)).map((row) => ({
|
|
353
|
-
runId: row.run_id,
|
|
354
|
-
definitionId: row.definition_id,
|
|
355
|
-
status: row.status,
|
|
356
|
-
createdAt: row.created_at_ms
|
|
357
|
-
}));
|
|
358
|
-
}
|
|
359
349
|
getWithDetails(id) {
|
|
360
350
|
const project = this.get(id);
|
|
361
351
|
if (!project) return null;
|
|
@@ -365,7 +355,6 @@ var ProjectStore = class {
|
|
|
365
355
|
taskCount: this.getTaskCount(id),
|
|
366
356
|
activeTaskCount: this.getActiveTaskCount(id),
|
|
367
357
|
recentSessions: this.getRecentSessions(id),
|
|
368
|
-
recentWorkflowRuns: this.getRecentWorkflowRuns(id),
|
|
369
358
|
milestones: this.listMilestones(id),
|
|
370
359
|
recentUpdates: this.listUpdates(id)
|
|
371
360
|
};
|
|
@@ -38,12 +38,6 @@ export interface ProjectWithDetails extends Project {
|
|
|
38
38
|
updatedAt: string;
|
|
39
39
|
agentId: string;
|
|
40
40
|
}>;
|
|
41
|
-
recentWorkflowRuns: Array<{
|
|
42
|
-
runId: string;
|
|
43
|
-
definitionId: string;
|
|
44
|
-
status: string;
|
|
45
|
-
createdAt: number;
|
|
46
|
-
}>;
|
|
47
41
|
milestones: ProjectMilestone[];
|
|
48
42
|
recentUpdates: ProjectUpdate[];
|
|
49
43
|
}
|
|
@@ -16,11 +16,6 @@ function withModelUsageOrigin(origin, run) {
|
|
|
16
16
|
function modelUsageOriginFromTurn(origin) {
|
|
17
17
|
if (!origin) return "unknown";
|
|
18
18
|
if (origin.type !== "system" || origin.source === "cli") return "interactive";
|
|
19
|
-
if ([
|
|
20
|
-
"workflow",
|
|
21
|
-
"internal",
|
|
22
|
-
"task_update"
|
|
23
|
-
].includes(origin.source)) return scopes.getStore() ?? "background";
|
|
24
19
|
return "background";
|
|
25
20
|
}
|
|
26
21
|
/** Transport wrappers may preserve only the error message or code. */
|
|
@@ -39,7 +39,6 @@ function isAuthorizedTopic(topic, scopes) {
|
|
|
39
39
|
if (topic === "sessions" || topic.startsWith("session:")) return hasGatewayScope(scopes, "sessions.read");
|
|
40
40
|
if (topic.startsWith("run:")) return hasGatewayScope(scopes, "agents.run");
|
|
41
41
|
if (topic.startsWith("side-chat:")) return hasGatewayScope(scopes, "agents.run");
|
|
42
|
-
if (topic.startsWith("workflow:")) return hasGatewayScope(scopes, "automations.read");
|
|
43
42
|
return false;
|
|
44
43
|
}
|
|
45
44
|
var RealtimeRuntime = class {
|
|
@@ -58,7 +58,7 @@ function isCronConversationId(id) {
|
|
|
58
58
|
return !!id && requireConversation(id).sessionType === "cron";
|
|
59
59
|
}
|
|
60
60
|
function isSubagentConversationId(id) {
|
|
61
|
-
return !!id && requireConversation(id).sessionType === "
|
|
61
|
+
return !!id && requireConversation(id).sessionType === "subagent";
|
|
62
62
|
}
|
|
63
63
|
function assertAgentConversationId(id) {
|
|
64
64
|
validateConversationId(id);
|
|
@@ -209,6 +209,7 @@ export declare class SessionStore {
|
|
|
209
209
|
limit?: number;
|
|
210
210
|
beforeSeq?: number;
|
|
211
211
|
orderBySeq?: boolean;
|
|
212
|
+
matchMode?: 'keyword' | 'phrase';
|
|
212
213
|
}): import("../storage/sqlite/transcript-repository.js").SessionTranscriptRecallMatch[];
|
|
213
214
|
exportSession(key: string, format: ExportFormat): Promise<string>;
|
|
214
215
|
importSessionExport(targetKey: string, jsonContent: string): Promise<{
|
|
@@ -83,7 +83,7 @@ export interface GlobalSessionStats {
|
|
|
83
83
|
newestSession?: string;
|
|
84
84
|
byChannel: Record<string, number>;
|
|
85
85
|
}
|
|
86
|
-
export type SessionType = '
|
|
86
|
+
export type SessionType = 'subagent' | 'chat' | 'cron' | 'heartbeat';
|
|
87
87
|
/** Session metadata (stored in index) */
|
|
88
88
|
export interface SessionMetadata {
|
|
89
89
|
key: string;
|
|
@@ -102,7 +102,7 @@ export interface SessionMetadata {
|
|
|
102
102
|
sourceChannel: string;
|
|
103
103
|
sourceChatId: string;
|
|
104
104
|
customData?: Record<string, unknown>;
|
|
105
|
-
/** Optional project grouping for sessions, Tasks,
|
|
105
|
+
/** Optional project grouping for sessions, Tasks, and related context. */
|
|
106
106
|
projectId?: string;
|
|
107
107
|
/** Routing metadata */
|
|
108
108
|
routing?: SessionRoutingMeta;
|
|
@@ -115,10 +115,6 @@ export interface SessionMetadata {
|
|
|
115
115
|
sessionType: SessionType;
|
|
116
116
|
hiddenFromSessionList?: boolean;
|
|
117
117
|
parentConversationId?: string;
|
|
118
|
-
workflowRunId?: string;
|
|
119
|
-
workflowDefinitionId?: string;
|
|
120
|
-
workflowAgentId?: string;
|
|
121
|
-
workflowAgentLabel?: string;
|
|
122
118
|
/** Active OpenClaw-style session instance id. Rotates on reset while `key` stays stable. */
|
|
123
119
|
transcriptId?: string;
|
|
124
120
|
/** Workspace/cwd recorded for the active transcript. */
|
|
@@ -12,21 +12,6 @@ import { getConnectorConnection, init_connector_repository } from "./connector-r
|
|
|
12
12
|
import { randomUUID } from "node:crypto";
|
|
13
13
|
import { EventEmitter } from "node:events";
|
|
14
14
|
//#region src/storage/sqlite/connection-wait-repository.ts
|
|
15
|
-
function getConnectionSessionContext(conversationId) {
|
|
16
|
-
const row = getSqliteDatabase().prepare(`SELECT session_type, parent_conversation_id, custom_data_json
|
|
17
|
-
FROM sessions WHERE conversation_id = ?`).get(conversationId);
|
|
18
|
-
if (!row) return void 0;
|
|
19
|
-
let customData = {};
|
|
20
|
-
if (row.custom_data_json) try {
|
|
21
|
-
const parsed = JSON.parse(row.custom_data_json);
|
|
22
|
-
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) customData = parsed;
|
|
23
|
-
} catch {}
|
|
24
|
-
return {
|
|
25
|
-
sessionType: row.session_type,
|
|
26
|
-
parentConversationId: row.parent_conversation_id,
|
|
27
|
-
customData
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
15
|
function onConnectionWaitChanged(listener) {
|
|
31
16
|
events.on("changed", listener);
|
|
32
17
|
return () => {
|
|
@@ -281,24 +266,6 @@ function connectionBindings(conversationId) {
|
|
|
281
266
|
connectionId: account?.currentConnectionId
|
|
282
267
|
}];
|
|
283
268
|
}
|
|
284
|
-
let sessionContext = getConnectionSessionContext(conversationId);
|
|
285
|
-
if (sessionContext?.sessionType === "workflow-subagent" && sessionContext.parentConversationId) sessionContext = getConnectionSessionContext(sessionContext.parentConversationId);
|
|
286
|
-
const workflowAccounts = sessionContext?.sessionType === "workflow-run" ? sessionContext.customData.connectorAccounts : void 0;
|
|
287
|
-
if (workflowAccounts && typeof workflowAccounts === "object" && !Array.isArray(workflowAccounts)) return Object.entries(workflowAccounts).flatMap(([connectorId, ids]) => Array.isArray(ids) ? ids.flatMap((id) => {
|
|
288
|
-
if (typeof id !== "string") return [];
|
|
289
|
-
const account = getConnectorAccount(id);
|
|
290
|
-
return [{
|
|
291
|
-
key: `${connectorId}:${id}`,
|
|
292
|
-
target: {
|
|
293
|
-
type: "connector",
|
|
294
|
-
connectorId
|
|
295
|
-
},
|
|
296
|
-
accountId: id,
|
|
297
|
-
connectionId: account?.currentConnectionId,
|
|
298
|
-
label: account?.label ?? connectorId,
|
|
299
|
-
capabilities: []
|
|
300
|
-
}];
|
|
301
|
-
}) : []);
|
|
302
269
|
const state = getSessionInputState(conversationId);
|
|
303
270
|
const input = state.activeInputId ? getSessionInputById(conversationId, state.activeInputId) : void 0;
|
|
304
271
|
if (!input) return [];
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { __esmMin } from "../../../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { resolveXopcDatabasePath } from "../../config/paths-state.js";
|
|
3
3
|
import { init_paths } from "./paths.js";
|
|
4
|
-
import { createLogger } from "../../utils/logger/index.js";
|
|
5
|
-
import { init_logger } from "../../utils/logger.js";
|
|
6
4
|
import { ensureXopcDatabaseSchema, init_schema } from "./schema.js";
|
|
7
5
|
import { init_node_sqlite, requireNodeSqlite } from "../../infra/node-sqlite.js";
|
|
6
|
+
import { createLogger } from "../../utils/logger/index.js";
|
|
7
|
+
import { init_logger } from "../../utils/logger.js";
|
|
8
8
|
import { init_unhandled_rejections, installSqliteTransientRejectionHandler } from "../../infra/unhandled-rejections.js";
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
import fs from "node:fs";
|
|
@@ -46,7 +46,7 @@ export declare function buildRefreshProofMessage(input: {
|
|
|
46
46
|
nonce: string;
|
|
47
47
|
requestId: string;
|
|
48
48
|
nextRefreshToken: string;
|
|
49
|
-
requestProofVersion
|
|
49
|
+
requestProofVersion: 1;
|
|
50
50
|
}): string;
|
|
51
51
|
export declare class DeviceRefreshRateLimitError extends Error {
|
|
52
52
|
readonly retryAfterMs: number;
|
|
@@ -59,7 +59,7 @@ export declare function rotateDeviceRefreshToken(input: {
|
|
|
59
59
|
requestId: string;
|
|
60
60
|
nextRefreshToken: string;
|
|
61
61
|
signature: string;
|
|
62
|
-
requestProofVersion
|
|
62
|
+
requestProofVersion: 1;
|
|
63
63
|
now?: number;
|
|
64
64
|
}): DeviceTokenPair;
|
|
65
65
|
export declare function revokeDevice(deviceId: string, now?: number): boolean;
|
|
@@ -38,8 +38,8 @@ function createDevice(input) {
|
|
|
38
38
|
const createdAt = input.now ?? Date.now();
|
|
39
39
|
getSqliteDatabase().prepare(`
|
|
40
40
|
INSERT INTO devices (
|
|
41
|
-
device_id, display_name, platform, extension_id, public_key_jwk, scopes_json, created_at
|
|
42
|
-
) VALUES (?, ?, ?, ?, ?, ?,
|
|
41
|
+
device_id, display_name, platform, extension_id, public_key_jwk, scopes_json, created_at, request_proof_version
|
|
42
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, 1)
|
|
43
43
|
`).run(id, input.displayName, input.platform, input.extensionId ?? null, JSON.stringify(input.publicKeyJwk), JSON.stringify([...new Set(input.scopes)]), createdAt);
|
|
44
44
|
return getDevice(id);
|
|
45
45
|
}
|
|
@@ -112,7 +112,7 @@ function authenticateDeviceAccessToken(token, now = Date.now()) {
|
|
|
112
112
|
};
|
|
113
113
|
}
|
|
114
114
|
function buildRefreshProofMessage(input) {
|
|
115
|
-
return `xopc-device-refresh-v2\n${input.credentialId}\n${input.timestamp}\n${input.nonce}\n${input.requestId}\n${input.nextRefreshToken}
|
|
115
|
+
return `xopc-device-refresh-v2\n${input.credentialId}\n${input.timestamp}\n${input.nonce}\n${input.requestId}\n${input.nextRefreshToken}\nrequest-proof:${input.requestProofVersion}`;
|
|
116
116
|
}
|
|
117
117
|
function verifyRefreshProof(publicKeyJwk, message, signature) {
|
|
118
118
|
try {
|
|
@@ -155,11 +155,7 @@ function rotateDeviceRefreshToken(input) {
|
|
|
155
155
|
if (!verifyRefreshProof(JSON.parse(deviceRow.public_key_jwk), message, input.signature)) throw new Error("Invalid refresh proof");
|
|
156
156
|
const refreshBudget = buckets.deviceRefresh().consume(credential.device_id);
|
|
157
157
|
if (!refreshBudget.allowed) throw new DeviceRefreshRateLimitError(refreshBudget.retryAfterMs);
|
|
158
|
-
if (deviceRow.request_proof_version
|
|
159
|
-
if (input.requestProofVersion === 1 && deviceRow.request_proof_version === 0) {
|
|
160
|
-
db.prepare("UPDATE devices SET request_proof_version = 1 WHERE device_id = ?").run(credential.device_id);
|
|
161
|
-
db.prepare("UPDATE device_access_sessions SET revoked_at = ? WHERE device_id = ? AND revoked_at IS NULL").run(now, credential.device_id);
|
|
162
|
-
}
|
|
158
|
+
if (deviceRow.request_proof_version !== 1 || input.requestProofVersion !== 1) throw new Error("Unsupported request proof version");
|
|
163
159
|
if (credential.replaced_by === nextParsed.id && credential.rotation_request_id === input.requestId) {
|
|
164
160
|
const nextCredential = db.prepare(`
|
|
165
161
|
SELECT credential_id, device_id, token_hash, expires_at, replaced_by,
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/** Quote a user query for FTS5 phrase/prefix-safe matching. */
|
|
2
2
|
export declare function escapeFts5Query(raw: string): string;
|
|
3
3
|
/** Build a syntax-safe, recall-oriented query for natural-language memory search. */
|
|
4
|
+
export declare function sessionSearchTerms(raw: string): string[];
|
|
4
5
|
export declare function buildFts5SearchQuery(raw: string): string;
|
|
6
|
+
/** unicode61 does not split Han words; use literal substrings for those terms. */
|
|
7
|
+
export declare function sessionHanSearchTerms(raw: string): string[];
|
|
8
|
+
export declare function escapeSqlLike(raw: string): string;
|
|
5
9
|
/** Normalize FTS5 BM25 ranks, where a more-negative rank is a better match. */
|
|
6
10
|
export declare function fts5RankToScore(rank: number, bestRank: number, worstRank: number): number;
|
|
@@ -7,10 +7,19 @@ function escapeFts5Query(raw) {
|
|
|
7
7
|
return `"${trimmed.replace(/"/g, "\"\"")}"`;
|
|
8
8
|
}
|
|
9
9
|
/** Build a syntax-safe, recall-oriented query for natural-language memory search. */
|
|
10
|
-
function
|
|
10
|
+
function sessionSearchTerms(raw) {
|
|
11
11
|
const terms = raw.normalize("NFKC").match(/[\p{L}\p{N}_]+/gu)?.map((term) => term.toLowerCase()).filter((term) => term.length > 1 && !FTS_SEARCH_STOP_WORDS.has(term));
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
return [...new Set(terms?.length ? terms : [raw.trim()])].slice(0, 12);
|
|
13
|
+
}
|
|
14
|
+
function buildFts5SearchQuery(raw) {
|
|
15
|
+
return sessionSearchTerms(raw).map(escapeFts5Query).join(" OR ");
|
|
16
|
+
}
|
|
17
|
+
/** unicode61 does not split Han words; use literal substrings for those terms. */
|
|
18
|
+
function sessionHanSearchTerms(raw) {
|
|
19
|
+
return sessionSearchTerms(raw).filter((term) => /\p{Script=Han}/u.test(term));
|
|
20
|
+
}
|
|
21
|
+
function escapeSqlLike(raw) {
|
|
22
|
+
return raw.replaceAll("\\", "\\\\").replaceAll("%", "\\%").replaceAll("_", "\\_");
|
|
14
23
|
}
|
|
15
24
|
/** Normalize FTS5 BM25 ranks, where a more-negative rank is a better match. */
|
|
16
25
|
function fts5RankToScore(rank, bestRank, worstRank) {
|
|
@@ -61,4 +70,4 @@ var init_fts = __esmMin((() => {
|
|
|
61
70
|
}));
|
|
62
71
|
//#endregion
|
|
63
72
|
init_fts();
|
|
64
|
-
export { buildFts5SearchQuery, escapeFts5Query, fts5RankToScore, init_fts };
|
|
73
|
+
export { buildFts5SearchQuery, escapeFts5Query, escapeSqlLike, fts5RankToScore, init_fts, sessionHanSearchTerms, sessionSearchTerms };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type HomeAttentionSubjectKind = 'automation_run'
|
|
1
|
+
export type HomeAttentionSubjectKind = 'automation_run';
|
|
2
2
|
export declare function acknowledgeHomeAttention(subjectKind: HomeAttentionSubjectKind, subjectId: string, acknowledgedAt?: number): void;
|
|
3
3
|
export declare function isHomeAttentionAcknowledged(subjectKind: HomeAttentionSubjectKind, subjectId: string): boolean;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
export { resolveXopcDatabasePath, XOPC_DB_FILENAME } from './paths.js';
|
|
2
2
|
export { XOPC_DB_SCHEMA_VERSION, XOPC_DB_BASELINE_SCHEMA_VERSION, SCHEMA_META_SCHEMA_VERSION_KEY, ensureXopcDatabaseSchema, readSchemaVersionForTest, readSchemaVersion, } from './schema.js';
|
|
3
|
-
export {
|
|
4
|
-
export { DatabaseSchemaMigrationGapError, DatabaseSchemaTooNewError, DatabaseSchemaTooOldError, } from './migrations/errors.js';
|
|
5
|
-
export { discoverSqlMigrations, listRegisteredMigrationTargets } from './migrations/discover.js';
|
|
3
|
+
export { DatabaseSchemaTooNewError, DatabaseSchemaTooOldError } from './schema-errors.js';
|
|
6
4
|
export { closeXopcDatabase, getXopcDatabase, isXopcDatabaseOpen, openXopcDatabase, requireXopcDatabase, resetXopcDatabaseSingletonForTest, type OpenXopcDatabaseOptions, type XopcDatabase, } from './connection.js';
|
|
7
5
|
export { getSqliteDatabase, runSqliteWriteTransaction } from './transaction.js';
|
|
8
6
|
export { deleteEndpointSessionBinding, deleteEndpointSessionBindingsByPrincipal, getEndpointSessionBinding, setEndpointSessionBinding, type StoredEndpointSessionBinding, } from './endpoint-session-binding-repository.js';
|
|
@@ -2,10 +2,8 @@ import { __esmMin } from "../../../_virtual/_rolldown/runtime.js";
|
|
|
2
2
|
import { XOPC_DB_FILENAME, resolveXopcDatabasePath } from "../../config/paths-state.js";
|
|
3
3
|
import { init_paths } from "./paths.js";
|
|
4
4
|
import { SCHEMA_META_SCHEMA_VERSION_KEY, readSchemaVersion, readSchemaVersionForTest } from "./schema-version.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { XOPC_DB_BASELINE_SCHEMA_VERSION, XOPC_DB_SCHEMA_VERSION, applyPendingMigrations, init_runner, inspectSchemaMigrationStatus, resolveMigrationsDir } from "./migrations/runner.js";
|
|
8
|
-
import { ensureXopcDatabaseSchema, init_schema } from "./schema.js";
|
|
5
|
+
import { DatabaseSchemaTooNewError, DatabaseSchemaTooOldError, init_schema_errors } from "./schema-errors.js";
|
|
6
|
+
import { XOPC_DB_BASELINE_SCHEMA_VERSION, XOPC_DB_SCHEMA_VERSION, ensureXopcDatabaseSchema, init_schema } from "./schema.js";
|
|
9
7
|
import { closeXopcDatabase, getXopcDatabase, init_connection, isXopcDatabaseOpen, openXopcDatabase, requireXopcDatabase, resetXopcDatabaseSingletonForTest } from "./connection.js";
|
|
10
8
|
import { getSqliteDatabase, init_transaction, runSqliteWriteTransaction } from "./transaction.js";
|
|
11
9
|
import { deleteEndpointSessionBinding, deleteEndpointSessionBindingsByPrincipal, getEndpointSessionBinding, init_endpoint_session_binding_repository, setEndpointSessionBinding } from "./endpoint-session-binding-repository.js";
|
|
@@ -47,9 +45,7 @@ import { claimResearchCheckpoint, createResearchCheckpoint, finishResearchCheckp
|
|
|
47
45
|
var init_sqlite = __esmMin((() => {
|
|
48
46
|
init_paths();
|
|
49
47
|
init_schema();
|
|
50
|
-
|
|
51
|
-
init_errors();
|
|
52
|
-
init_discover();
|
|
48
|
+
init_schema_errors();
|
|
53
49
|
init_connection();
|
|
54
50
|
init_transaction();
|
|
55
51
|
init_endpoint_session_binding_repository();
|
|
@@ -89,4 +85,4 @@ var init_sqlite = __esmMin((() => {
|
|
|
89
85
|
}));
|
|
90
86
|
//#endregion
|
|
91
87
|
init_sqlite();
|
|
92
|
-
export { COMPOSER_INPUT_HISTORY_LIMIT,
|
|
88
|
+
export { COMPOSER_INPUT_HISTORY_LIMIT, DatabaseSchemaTooNewError, DatabaseSchemaTooOldError, SCHEMA_META_SCHEMA_VERSION_KEY, SidebarLayoutConflictError, XOPC_DB_BASELINE_SCHEMA_VERSION, XOPC_DB_FILENAME, XOPC_DB_SCHEMA_VERSION, acknowledgeHomeAttention, appendCompactionBoundaryIfUnchanged, appendComposerInputHistory, appendConnectorExecutionAudit, appendMediaToAssistantTranscriptEntry, appendTranscriptEntry, authenticateDeviceAccessToken, bindEndpointPrincipal, buildDefaultSessionMetadata, buildGlobalSessionStats, buildRefreshProofMessage, cancelQueuedSessionInput, claimConnectorWebhookDelivery, claimContextExtractionRun, claimKnowledgeSourceItems, claimNextConnectorLearningJob, claimNextSessionInput, claimResearchCheckpoint, classifyStoredRow, clearComposerInputHistory, clearGatewayIdentityForTest, closeXopcDatabase, completeConnectorWebhookDelivery, completeKnowledgeSourceItemSynthesis, consumeClarificationApproval, consumeClarificationResume, consumeConnectorApproval, countKnowledgeSourceItems, createClarificationWait, createCollaborationRule, createConnectorApproval, createContextEvidence, createDevice, createDevicePairingSetup, createEndpointPrincipal, createObjectLinkRecord, createResearchCheckpoint, decideConnectorApproval, deleteBrowserTabBinding, deleteBrowserTabBindingsByEndpoint, deleteBrowserTabBindingsByPrincipal, deleteConnectorConnection, deleteConnectorInstallation, deleteEndpointSessionBinding, deleteEndpointSessionBindingsByPrincipal, deleteKnowledgeSourceItems, deleteNoteAgentContextRecord, deleteNoteRecord, deleteObjectLinkRecord, deleteSessionConfig, deleteSessionRecord, enqueueConnectorLearningJob, ensureSessionRecord, ensureXopcDatabaseSchema, estimateTokensFromMessages, extractFtsContent, findConversationIdByTranscriptId, findLatestAssistantTranscriptEntryId, findSessionInput, finishContextExtractionRun, finishEndpointToolInvocationAudit, finishKnowledgeSyncRun, finishResearchCheckpoint, finishSessionInputRun, getActiveClarification, getActivityEventRecord, getBrowserTabBinding, getBrowserTabBindingById, getCachedConnectorCatalogEntry, getClarification, getClarificationResumeInput, getClarificationSnapshot, getCollaborationRule, getConnectorAccount, getConnectorApproval, getConnectorConnection, getConnectorInstallation, getConnectorSyncPolicy, getConnectorSyncPolicyForConnection, getContextExtractionRun, getCurrentTranscriptId, getDevice, getEndpointPrincipal, getEndpointSessionBinding, getGlobalSessionStats, getInteractionState, getKnowledgeConsumerWatermark, getKnowledgeSourceCursor, getKnowledgeSourceItem, getNoteAgentContextRecord, getNoteRecord, getOrCreateGatewayIdentity, getResearchCheckpoint, getSessionConfig, getSessionInputById, getSessionInputState, getSessionMetadata, getSessionTaskPlan, getSidebarLayout, getSqliteDatabase, getUserPeopleIndexState, getUserPerson, getUserTrustPolicy, getXopcDatabase, hasSessionConfig, incrementSessionStatsOnAppend, init_sqlite, insertSessionInput, isClarificationSuspended, isDevicePairingSetupActive, isHomeAttentionAcknowledged, isXopcDatabaseOpen, issueDeviceTokenPair, listActiveSessionInputExecutions, listActiveSessionInputRuns, listActivityRecords, listCachedConnectorCatalogEntries, listCollaborationRules, listCompactionBoundaries, listComposerInputHistory, listConnectorAccounts, listConnectorActionMetadata, listConnectorApprovals, listConnectorConnections, listConnectorExecutionAudit, listConnectorInstallations, listConnectorLearningJobs, listConnectorSyncPolicies, listContextExtractionOutputs, listContextExtractionRuns, listDevices, listEndpointPrincipals, listEndpointToolInvocationAuditPage, listKnowledgeSourceChanges, listKnowledgeSourceItems, listKnowledgeSyncRuns, listNoteRecords, listObjectActivityRecords, listObjectLinkRecords, listProjectActivityRecords, listSessionMetadata, listSessionsByAgent, listTaskUpdateRunIds, listTaskUpdateTriggers, listUserPeople, loadCompactionSourceSnapshot, loadLlmMessagesForSession, loadTranscriptHistoryRowsForSession, loadTranscriptRows, loadTranscriptRowsForSession, mergeUserPeople, metadataToSessionInsert, mutateQueuedSessionInput, openXopcDatabase, paginateTranscriptMessages, patchSessionMetadata, pruneBoundedKnowledgeSourceItems, readSchemaVersion, readSchemaVersionForTest, reconcileConnectorAccount, recordActivityEvent, recordResearchEvidence, recordResearchSearch, recoverSessionInputState, recoverStaleConnectorLearningJobs, refreshConnectorAccountCurrent, releaseConnectorWebhookDelivery, replaceConnectorCatalogEntries, replaceLatestSessionTurnAndQueueInput, replaceSidebarLayout, replaceTranscriptRows, replaceUserPeopleIndex, requireXopcDatabase, resetSessionRecord, resetXopcDatabaseSingletonForTest, resolveClarification, resolveSessionAgentId, resolveXopcDatabasePath, restoreBeforeCompactionBoundary, revokeDevice, revokeEndpointPrincipal, rotateDeviceRefreshToken, runSqliteWriteTransaction, saveResearchCheckpoint, searchSessionTranscript, sessionConfigRowToConfig, sessionRowToMetadata, setBrowserTabBinding, setCollaborationRuleStatus, setConnectorLearningPaused, setEndpointSessionBinding, setInteractionState, setKnowledgeConsumerWatermark, setKnowledgeSourceCursor, setKnowledgeSourceItemSynthesisStatus, setSessionConfig, setSessionInputStatus, setSessionTaskPlan, setUserTrustPolicy, signGatewayPayload, sortBySidebarLayout, startEndpointToolInvocationAudit, startKnowledgeSyncRun, summarizeUserPeople, supersedeActiveClarification, touchEndpointPrincipal, transcriptEntryRowToStoredRow, updateConnectorLearningJob, updateInteractionStateFromMessage, updateSessionConfig, updateSessionStats, updateUserPerson, upsertConnectorActionMetadata, upsertConnectorCatalogEntry, upsertConnectorConnection, upsertConnectorInstallation, upsertConnectorSyncPolicy, upsertKnowledgeSourceItems, upsertNoteAgentContextRecord, upsertNoteRecord, validateLatestSessionTurnTarget };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { DatabaseSync } from 'node:sqlite';
|
|
2
1
|
type BackupFileSyncOperations = {
|
|
3
2
|
open(path: string, flags: string): number;
|
|
4
3
|
fsync(fd: number): void;
|
|
@@ -6,8 +5,6 @@ type BackupFileSyncOperations = {
|
|
|
6
5
|
};
|
|
7
6
|
/** Windows requires write access on a file handle before FlushFileBuffers/fsync. */
|
|
8
7
|
export declare function flushBackupFile(backupPath: string, operations?: BackupFileSyncOperations): void;
|
|
9
|
-
/**
|
|
8
|
+
/** Backups require exclusive offline access to the database. */
|
|
10
9
|
export declare function assertDatabaseOffline(databasePath: string): void;
|
|
11
|
-
/** Create and verify an offline SQLite backup before a cross-version cutover. */
|
|
12
|
-
export declare function backupDatabaseBeforeCutover(db: DatabaseSync, databasePath: string, label: string): string;
|
|
13
10
|
export {};
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { windowsDatabaseOwners } from "./conversation-windows-owners.js";
|
|
1
|
+
import { windowsDatabaseOwners } from "./windows-database-owners.js";
|
|
3
2
|
import { resolve } from "node:path";
|
|
4
|
-
import {
|
|
3
|
+
import { closeSync, fsyncSync, openSync, readdirSync, readlinkSync, statSync } from "node:fs";
|
|
5
4
|
import { execFileSync } from "node:child_process";
|
|
6
|
-
//#region src/storage/sqlite/
|
|
7
|
-
init_node_sqlite();
|
|
5
|
+
//#region src/storage/sqlite/offline-access.ts
|
|
8
6
|
const backupFileSyncOperations = {
|
|
9
7
|
open: openSync,
|
|
10
8
|
fsync: fsyncSync,
|
|
@@ -70,27 +68,10 @@ function databaseOwners(databasePath) {
|
|
|
70
68
|
}
|
|
71
69
|
return [...new Set(owners.trim().split(/\s+/).filter((pid) => pid && pid !== String(process.pid)))];
|
|
72
70
|
}
|
|
73
|
-
/**
|
|
71
|
+
/** Backups require exclusive offline access to the database. */
|
|
74
72
|
function assertDatabaseOffline(databasePath) {
|
|
75
73
|
const otherOwners = databaseOwners(databasePath);
|
|
76
|
-
if (otherOwners.length) throw new Error(`Stop other xopc database processes before
|
|
77
|
-
}
|
|
78
|
-
/** Create and verify an offline SQLite backup before a cross-version cutover. */
|
|
79
|
-
function backupDatabaseBeforeCutover(db, databasePath, label) {
|
|
80
|
-
assertDatabaseOffline(databasePath);
|
|
81
|
-
const backupPath = `${databasePath}.pre-${label}-${Date.now()}.bak`;
|
|
82
|
-
db.exec(`VACUUM INTO '${backupPath.replaceAll("'", "''")}'`);
|
|
83
|
-
chmodSync(backupPath, 384);
|
|
84
|
-
const { DatabaseSync: SqliteDatabase } = requireNodeSqlite();
|
|
85
|
-
const snapshot = new SqliteDatabase(backupPath, { readOnly: true });
|
|
86
|
-
try {
|
|
87
|
-
const rows = snapshot.prepare("PRAGMA integrity_check").all();
|
|
88
|
-
if (rows.length !== 1 || rows[0]?.integrity_check !== "ok") throw new Error("Pre-upgrade backup failed integrity verification");
|
|
89
|
-
} finally {
|
|
90
|
-
snapshot.close();
|
|
91
|
-
}
|
|
92
|
-
flushBackupFile(backupPath);
|
|
93
|
-
return backupPath;
|
|
74
|
+
if (otherOwners.length) throw new Error(`Stop other xopc database processes before backing up: ${otherOwners.join(", ")}`);
|
|
94
75
|
}
|
|
95
76
|
//#endregion
|
|
96
|
-
export { assertDatabaseOffline,
|
|
77
|
+
export { assertDatabaseOffline, flushBackupFile };
|
|
@@ -19,10 +19,6 @@ export type SessionRow = {
|
|
|
19
19
|
session_type: string | null;
|
|
20
20
|
hidden_from_session_list: number | null;
|
|
21
21
|
parent_conversation_id: string | null;
|
|
22
|
-
workflow_run_id: string | null;
|
|
23
|
-
workflow_definition_id: string | null;
|
|
24
|
-
workflow_agent_id: string | null;
|
|
25
|
-
workflow_agent_label: string | null;
|
|
26
22
|
project_id: string | null;
|
|
27
23
|
routing_json: string | null;
|
|
28
24
|
custom_data_json: string | null;
|
|
@@ -74,10 +70,6 @@ export declare function metadataToSessionInsert(conversationId: string, transcri
|
|
|
74
70
|
sessionType: string;
|
|
75
71
|
hiddenFromSessionList: number;
|
|
76
72
|
parentConversationId: string | null;
|
|
77
|
-
workflowRunId: string | null;
|
|
78
|
-
workflowDefinitionId: string | null;
|
|
79
|
-
workflowAgentId: string | null;
|
|
80
|
-
workflowAgentLabel: string | null;
|
|
81
73
|
projectId: string | null;
|
|
82
74
|
routingJson: string | null;
|
|
83
75
|
customDataJson: string | null;
|