@xopcai/xopc 0.0.145 → 0.0.147
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 +2 -2
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/demo-memory/src/index.js +6 -4
- package/dist/extensions/demo-memory/src/index.js.map +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/Combination-14nmIgxH.js +41 -0
- package/dist/gateway/static/root/assets/activity-store-DXeSSlw1.js +1 -0
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BEUxdhZx.js → agent-avatar-dicebear-CFdJKSjY.js} +1 -1
- package/dist/gateway/static/root/assets/agents-DKjbRpbA.js +2 -0
- package/dist/gateway/static/root/assets/api-Bs69B5zA.js +1 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-CRHSZJWi.js → app-management-settings-panel-ag1ViXT_.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-BunADYJb.js → appearance-settings-C6iMpwOM.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-CpX3lBFF.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-B6vTkH2A.js → archive-plugin-Dwi3mIBy.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-BjZXzaNv.js → attachment-load-BaCDoq40.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-suggestion-card-ZDA-Stg1.js → automation-suggestion-card-CwqtFgnw.js} +1 -1
- package/dist/gateway/static/root/assets/automations-page-DlupOxFQ.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-DYZfLvPz.js → binary-plugins-DoAYhsxa.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-C3MUlYC9.js → block-editor-Bw72pO7S.js} +31 -31
- package/dist/gateway/static/root/assets/browser-settings-page-BwLoUBcZ.js +8 -0
- package/dist/gateway/static/root/assets/capability-presets-api-vdbAR65Q.js +1 -0
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-BAsKbJgm.js +2 -0
- package/dist/gateway/static/root/assets/{channel-recipient-api-fTlTnWB4.js → channel-recipient-api-rTG26jpV.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-CxFWy0cE.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-OKlqTtKJ.js +1 -0
- package/dist/gateway/static/root/assets/{connector-logo-BVFNT2zW.js → connector-logo-DIMP4NWY.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-BjQQwX62.js +2 -0
- package/dist/gateway/static/root/assets/{desktop-pet-_jUmoXd3.js → desktop-pet-kQq2e0BN.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-DwGOy4AQ.js → desktop-pet-settings-B6vtozMY.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-akvF0F-u.js → directory-picker-path-field-Dn5-e3v4.js} +1 -1
- package/dist/gateway/static/root/assets/dist-C230izr8.js +1 -0
- package/dist/gateway/static/root/assets/dist-CxGUk8J-.js +1 -0
- package/dist/gateway/static/root/assets/dreaming-settings-BzwIujPG.js +3 -0
- package/dist/gateway/static/root/assets/extension-debug-page-D_e_hsEy.js +1 -0
- package/dist/gateway/static/root/assets/{extension-page-CwWktRNz.js → extension-page-D15CWHBd.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-CuggWOIl.js → extension-settings-page-D4P0n1om.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-B7sxIbza.js → gateway-config-api-B4qZctjG.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-DIv0eKMf.js → gateway-settings-BvndV7TP.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-DtoLihQE.js → gateway-startup-retry-BpgMunEb.js} +1 -1
- package/dist/gateway/static/root/assets/{goal-create-dialog-C4Kw0mfS.js → goal-create-dialog-DrVHKXHq.js} +1 -1
- package/dist/gateway/static/root/assets/goal-detail-page-PHlCwv68.js +4 -0
- package/dist/gateway/static/root/assets/{goals-config-api-B0jm5JaA.js → goals-config-api-B6YJB_ct.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-Hg9uyO6e.js +2 -0
- package/dist/gateway/static/root/assets/{goals-settings-N5_iL7es.js → goals-settings-BROWCIcL.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-XzH3lbRR.js → heartbeat-settings-CoCwIOIg.js} +1 -1
- package/dist/gateway/static/root/assets/index-CxkNzw3e.js +259 -0
- package/dist/gateway/static/root/assets/index-DjCSOyaN.css +1 -0
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-Bm_AIYQ7.js +1 -0
- package/dist/gateway/static/root/assets/local-app-workbench-page-BJWFcxwG.js +2 -0
- package/dist/gateway/static/root/assets/local-apps-page-BsiZMrEf.js +1 -0
- package/dist/gateway/static/root/assets/{locale-store-CiM-D9jA.js → locale-store-Bp8joZck.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-DOmK61ey.js +7 -0
- package/dist/gateway/static/root/assets/{markdown-split-5rJx5flj.js → markdown-split-Dy7QpaAz.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-DYXccwAd.js → media-plugins-3Lxliy9D.js} +1 -1
- package/dist/gateway/static/root/assets/messages-CQGpD-dC.js +5 -0
- package/dist/gateway/static/root/assets/models-hub-panel-DGCZom4o.js +2 -0
- package/dist/gateway/static/root/assets/{notes-page-BgLyndCO.js → notes-page-BJtT4vSf.js} +1 -1
- package/dist/gateway/static/root/assets/notes-workbench-B_bN7cOR.js +4 -0
- package/dist/gateway/static/root/assets/{page-tabs-6Al9_sGz.js → page-tabs-DKB6RDre.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-Cm3G72Hv.js → preview-open-alternatives-Br_YhYHp.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-Dq8JouJj.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-DvfL7fSe.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-DqwMXSXP.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-BYtfzu_F.js → save-bar-controls-BgIE9BBh.js} +1 -1
- package/dist/gateway/static/root/assets/{schedule-field-CvIRc6yK.js → schedule-field-BXDP-oMz.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-CQuKx0n7.js → schema-form-Dhv-SmjG.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-B_mOZkQk.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-BHGmH6YS.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-CF3HHM-t.js → settings-collapsible-section-CUTExnlK.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-CwWjoRN6.js → settings-form-section-CmnDhsf0.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-loading-skeleton-aUFmJa13.js → settings-loading-skeleton-B79dq-XY.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-B2UUU9TF.js → settings-page-Db8uAv3X.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-DqpbTWqI.js → settings-page-layout-DaFwstQw.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BUSEj0KK.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-BOhlPsS1.js → share-preview-page-Bi00uXzV.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-DzsTYfuX.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-DSsdU081.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-DeB1tQZL.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-CWxSvuwD.js → system-settings-panel-Cxaph7hW.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-C9Dxcppm.js → theme-store-eCTN1RpG.js} +1 -1
- package/dist/gateway/static/root/assets/{typed-models-lib-qROAvqTw.js → typed-models-lib-CcZ_tyFY.js} +1 -1
- package/dist/gateway/static/root/assets/{use-channel-catalog-DE9cpn4G.js → use-channel-catalog-C4PWbNoi.js} +1 -1
- package/dist/gateway/static/root/assets/user-context-page-QTVMx_hG.js +1 -0
- package/dist/gateway/static/root/assets/{user-profile-fields-editor-CWxc0ghP.js → user-profile-fields-editor-CPOO9Jz5.js} +1 -1
- package/dist/gateway/static/root/assets/{user-profile-settings-panel-DW-Up6vt.js → user-profile-settings-panel-C8cgtSF7.js} +1 -1
- package/dist/gateway/static/root/assets/{utils-D53uRXVr.js → utils-CiZK2KwH.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-b-YZtvUu.js +1 -0
- package/dist/gateway/static/root/assets/work-discovery-page-4zVDOl2G.js +1 -0
- package/dist/gateway/static/root/assets/work-item-detail-page-CHe2tfkc.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-D_x9ELJp.js → workflow-run-setup-panel-8SLCYeXE.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-DEOFqiWn.js +11 -0
- package/dist/gateway/static/root/index.html +10 -9
- package/dist/package.js +1 -1
- package/dist/src/activity/types.d.ts +1 -1
- package/dist/src/agent/agent-instance-gateway.d.ts +1 -1
- package/dist/src/agent/agent-manager.d.ts +1 -1
- package/dist/src/agent/agent-manager.js +5 -4
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/background-review/coordinator.js +0 -1
- package/dist/src/agent/background-review/coordinator.js.map +1 -1
- package/dist/src/agent/background-review/settings.d.ts +1 -1
- package/dist/src/agent/background-review/settings.js +10 -17
- package/dist/src/agent/background-review/settings.js.map +1 -1
- package/dist/src/agent/bootstrap/filter-bootstrap-files.d.ts +1 -1
- package/dist/src/agent/bootstrap/filter-bootstrap-files.js +1 -1
- package/dist/src/agent/bootstrap/filter-bootstrap-files.js.map +1 -1
- package/dist/src/agent/bootstrap/load-bootstrap-files.js +2 -3
- package/dist/src/agent/bootstrap/load-bootstrap-files.js.map +1 -1
- package/dist/src/agent/code-intelligence/binary.js +1 -1
- package/dist/src/agent/context/project-context.d.ts +14 -0
- package/dist/src/agent/context/project-context.js +23 -1
- package/dist/src/agent/context/project-context.js.map +1 -1
- package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
- package/dist/src/agent/context/workspace.d.ts +1 -2
- package/dist/src/agent/context/workspace.js +2 -4
- package/dist/src/agent/context/workspace.js.map +1 -1
- package/dist/src/agent/embedded/run-for-session.js +1 -2
- package/dist/src/agent/embedded/run-for-session.js.map +1 -1
- package/dist/src/agent/embedded/run-turn.js +6 -1
- package/dist/src/agent/embedded/run-turn.js.map +1 -1
- package/dist/src/agent/embedded/types.d.ts +17 -0
- package/dist/src/agent/memory/builtin-memory-store.d.ts +2 -2
- package/dist/src/agent/memory/builtin-memory-store.js +2 -2
- package/dist/src/agent/memory/builtin-memory-store.js.map +1 -1
- package/dist/src/agent/memory/builtin-provider.d.ts +1 -3
- package/dist/src/agent/memory/builtin-provider.js +21 -48
- package/dist/src/agent/memory/builtin-provider.js.map +1 -1
- package/dist/src/agent/memory/context/planner.js +48 -9
- package/dist/src/agent/memory/context/planner.js.map +1 -1
- package/dist/src/agent/memory/context/types.d.ts +7 -1
- package/dist/src/agent/memory/context-fence.js +1 -1
- package/dist/src/agent/memory/context-fence.js.map +1 -1
- package/dist/src/agent/memory/create-memory-manager.js +2 -9
- package/dist/src/agent/memory/create-memory-manager.js.map +1 -1
- package/dist/src/agent/memory/dreaming/config.js +5 -10
- package/dist/src/agent/memory/dreaming/config.js.map +1 -1
- package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +2 -2
- package/dist/src/agent/memory/dreaming/promotion-lifecycle.js.map +1 -1
- package/dist/src/agent/memory/dreaming/scope.d.ts +2 -3
- package/dist/src/agent/memory/dreaming/scope.js +8 -8
- package/dist/src/agent/memory/dreaming/scope.js.map +1 -1
- package/dist/src/agent/memory/manager.d.ts +1 -5
- package/dist/src/agent/memory/manager.js +2 -23
- package/dist/src/agent/memory/manager.js.map +1 -1
- package/dist/src/agent/memory/memory-config.d.ts +3 -3
- package/dist/src/agent/memory/memory-config.js +9 -14
- package/dist/src/agent/memory/memory-config.js.map +1 -1
- package/dist/src/agent/memory/types.d.ts +9 -5
- package/dist/src/agent/memory/understanding/service.js +21 -8
- package/dist/src/agent/memory/understanding/service.js.map +1 -1
- package/dist/src/agent/memory/understanding/types.d.ts +5 -0
- package/dist/src/agent/memory/user-context-coordinator.d.ts +1 -1
- package/dist/src/agent/memory/user-context-coordinator.js +6 -2
- package/dist/src/agent/memory/user-context-coordinator.js.map +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js +2 -2
- package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
- package/dist/src/agent/prompt/memory/index.d.ts +1 -2
- package/dist/src/agent/prompt/memory/index.js +6 -7
- package/dist/src/agent/prompt/memory/index.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/service/direct-turn-helpers.js +13 -2
- package/dist/src/agent/service/direct-turn-helpers.js.map +1 -1
- package/dist/src/agent/tools/curated-memory-tool.js +4 -4
- package/dist/src/agent/tools/curated-memory-tool.js.map +1 -1
- package/dist/src/agent/tools/factory.d.ts +1 -1
- package/dist/src/agent/tools/factory.js +2 -2
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/memory-tool.js +1 -1
- package/dist/src/agent/tools/memory-tool.js.map +1 -1
- package/dist/src/agent/workflow/workflow-child-tools.js +2 -3
- package/dist/src/agent/workflow/workflow-child-tools.js.map +1 -1
- package/dist/src/agent/workspace-runtime/registry.d.ts +5 -5
- package/dist/src/agent/workspace-runtime/registry.js +6 -11
- package/dist/src/agent/workspace-runtime/registry.js.map +1 -1
- package/dist/src/agent-manifest/index.js +2 -2
- package/dist/src/agent-manifest/prompt.js +1 -7
- package/dist/src/agent-manifest/prompt.js.map +1 -1
- package/dist/src/agent-manifest/schema.d.ts +0 -598
- package/dist/src/agent-manifest/schema.js +2 -143
- package/dist/src/agent-manifest/schema.js.map +1 -1
- package/dist/src/agent-manifest/validator.js +0 -12
- package/dist/src/agent-manifest/validator.js.map +1 -1
- package/dist/src/agent-runtime/index.js +1 -1
- package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
- package/dist/src/agent-runtime/memory-runtime.js +8 -7
- package/dist/src/agent-runtime/memory-runtime.js.map +1 -1
- package/dist/src/agent-runtime/runtime-profile.d.ts +2 -0
- package/dist/src/agent-runtime/runtime-profile.js +2 -2
- package/dist/src/agent-runtime/runtime-profile.js.map +1 -1
- package/dist/src/chat-commands/agent-edit.js +1 -2
- package/dist/src/chat-commands/agent-edit.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/init.js +0 -22
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/templates.d.ts +1 -1
- package/dist/src/cli/templates.js +1 -16
- package/dist/src/cli/templates.js.map +1 -1
- package/dist/src/commands/agents.config.js +0 -10
- package/dist/src/commands/agents.config.js.map +1 -1
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/paths.d.ts +0 -1
- package/dist/src/config/paths.js +1 -2
- package/dist/src/config/paths.js.map +1 -1
- package/dist/src/config/schema.d.ts +118 -532
- package/dist/src/config/schema.js +32 -26
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/extensions/loader.js +2 -1
- package/dist/src/extensions/loader.js.map +1 -1
- package/dist/src/gateway/agents-admin.d.ts +0 -2
- package/dist/src/gateway/agents-admin.js +1 -7
- package/dist/src/gateway/agents-admin.js.map +1 -1
- package/dist/src/gateway/capability-presets-admin.d.ts +0 -2
- package/dist/src/gateway/capability-presets-admin.js.map +1 -1
- package/dist/src/gateway/chat-stream/mapper.js +26 -0
- package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
- package/dist/src/gateway/chat-stream/protocol.d.ts +16 -1
- package/dist/src/gateway/dreaming-automation-reconciler.d.ts +0 -1
- package/dist/src/gateway/dreaming-automation-reconciler.js +41 -63
- package/dist/src/gateway/dreaming-automation-reconciler.js.map +1 -1
- package/dist/src/gateway/heartbeat/service.js +1 -1
- package/dist/src/gateway/hono/app.js +3 -1
- package/dist/src/gateway/hono/app.js.map +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +0 -130
- package/dist/src/gateway/hono/lib/config-payload.js +0 -1
- package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
- package/dist/src/gateway/hono/routes/agents.js +6 -12
- package/dist/src/gateway/hono/routes/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +6 -0
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js.map +1 -1
- package/dist/src/gateway/hono/routes/capability-presets.js +2 -2
- package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -1
- package/dist/src/gateway/hono/routes/dreaming.js +9 -20
- package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
- package/dist/src/gateway/hono/routes/index.js +4 -0
- package/dist/src/gateway/hono/routes/index.js.map +1 -1
- package/dist/src/gateway/hono/routes/local-apps.d.ts +5 -0
- package/dist/src/gateway/hono/routes/local-apps.js +99 -0
- package/dist/src/gateway/hono/routes/local-apps.js.map +1 -0
- package/dist/src/gateway/hono/routes/memory.js +48 -65
- package/dist/src/gateway/hono/routes/memory.js.map +1 -1
- package/dist/src/gateway/hono/routes/projects.js +2 -2
- package/dist/src/gateway/hono/routes/projects.js.map +1 -1
- package/dist/src/gateway/hono/routes/work-discovery.d.ts +3 -0
- package/dist/src/gateway/hono/routes/work-discovery.js +150 -0
- package/dist/src/gateway/hono/routes/work-discovery.js.map +1 -0
- package/dist/src/gateway/hono/routes/you.d.ts +3 -0
- package/dist/src/gateway/hono/routes/you.js +358 -91
- package/dist/src/gateway/hono/routes/you.js.map +1 -1
- package/dist/src/gateway/service.d.ts +3 -0
- package/dist/src/gateway/service.js +12 -0
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/heartbeat/index.js +1 -1
- package/dist/src/knowledge/connected-knowledge-pipeline.js +9 -5
- package/dist/src/knowledge/connected-knowledge-pipeline.js.map +1 -1
- package/dist/src/local-apps/acceptance.d.ts +30 -0
- package/dist/src/local-apps/acceptance.js +93 -0
- package/dist/src/local-apps/acceptance.js.map +1 -0
- package/dist/src/local-apps/index.d.ts +5 -0
- package/dist/src/local-apps/index.js +4 -0
- package/dist/src/local-apps/preview-runtime-bridge.d.ts +4 -0
- package/dist/src/local-apps/preview-runtime-bridge.js +171 -0
- package/dist/src/local-apps/preview-runtime-bridge.js.map +1 -0
- package/dist/src/local-apps/runtime-entry.d.ts +8 -0
- package/dist/src/local-apps/runtime-entry.js +25 -0
- package/dist/src/local-apps/runtime-entry.js.map +1 -0
- package/dist/src/local-apps/scaffold.d.ts +8 -0
- package/dist/src/local-apps/scaffold.js +122 -0
- package/dist/src/local-apps/scaffold.js.map +1 -0
- package/dist/src/local-apps/service.d.ts +37 -0
- package/dist/src/local-apps/service.js +553 -0
- package/dist/src/local-apps/service.js.map +1 -0
- package/dist/src/local-apps/store.d.ts +44 -0
- package/dist/src/local-apps/store.js +195 -0
- package/dist/src/local-apps/store.js.map +1 -0
- package/dist/src/local-apps/types.d.ts +105 -0
- package/dist/src/local-apps/types.js +1 -0
- package/dist/src/storage/sqlite/index.d.ts +3 -2
- package/dist/src/storage/sqlite/index.js +4 -3
- package/dist/src/storage/sqlite/memory-index-repository.d.ts +2 -3
- package/dist/src/storage/sqlite/memory-index-repository.js +16 -20
- package/dist/src/storage/sqlite/memory-index-repository.js.map +1 -1
- package/dist/src/storage/sqlite/memory-records-repository.d.ts +18 -10
- package/dist/src/storage/sqlite/memory-records-repository.js +79 -34
- package/dist/src/storage/sqlite/memory-records-repository.js.map +1 -1
- package/dist/src/storage/sqlite/memory-reference-consent-repository.d.ts +27 -0
- package/dist/src/storage/sqlite/memory-reference-consent-repository.js +109 -0
- package/dist/src/storage/sqlite/memory-reference-consent-repository.js.map +1 -0
- package/dist/src/storage/sqlite/migrations/038_user_owned_memory.sql +68 -0
- package/dist/src/storage/sqlite/migrations/039_memory_reference_consents.sql +19 -0
- package/dist/src/storage/sqlite/migrations/040_local_apps.sql +32 -0
- package/dist/src/storage/sqlite/migrations/041_local_app_release_lifecycle.sql +17 -0
- package/dist/src/storage/sqlite/migrations/042_work_discovery.sql +41 -0
- package/dist/src/storage/sqlite/migrations/043_local_app_acceptance_runs.sql +16 -0
- package/dist/src/storage/sqlite/migrations/044_repair_work_discovery_foreign_keys.sql +75 -0
- package/dist/src/storage/sqlite/migrations/045_extension_ui_grants.sql +13 -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/schema.js +1 -1
- package/dist/src/storage/sqlite/schema.sql +20 -0
- package/dist/src/user-context/config.d.ts +227 -0
- package/dist/src/user-context/config.js +158 -0
- package/dist/src/user-context/config.js.map +1 -0
- package/dist/src/user-context/import.d.ts +1 -1
- package/dist/src/user-context/import.js +6 -1
- package/dist/src/user-context/import.js.map +1 -1
- package/dist/src/user-context/owner.d.ts +5 -0
- package/dist/src/user-context/owner.js +9 -0
- package/dist/src/user-context/owner.js.map +1 -0
- package/dist/src/user-context/projection.d.ts +11 -9
- package/dist/src/user-context/projection.js +74 -47
- package/dist/src/user-context/projection.js.map +1 -1
- package/dist/src/user-context/runtime.d.ts +13 -0
- package/dist/src/user-context/runtime.js +36 -0
- package/dist/src/user-context/runtime.js.map +1 -0
- package/dist/src/work-discovery/analyzer.d.ts +11 -0
- package/dist/src/work-discovery/analyzer.js +171 -0
- package/dist/src/work-discovery/analyzer.js.map +1 -0
- package/dist/src/work-discovery/index.d.ts +5 -0
- package/dist/src/work-discovery/index.js +5 -0
- package/dist/src/work-discovery/probe.d.ts +12 -0
- package/dist/src/work-discovery/probe.js +335 -0
- package/dist/src/work-discovery/probe.js.map +1 -0
- package/dist/src/work-discovery/repository.d.ts +11 -0
- package/dist/src/work-discovery/repository.js +100 -0
- package/dist/src/work-discovery/repository.js.map +1 -0
- package/dist/src/work-discovery/service.d.ts +30 -0
- package/dist/src/work-discovery/service.js +387 -0
- package/dist/src/work-discovery/service.js.map +1 -0
- package/dist/src/work-discovery/types.d.ts +114 -0
- package/dist/src/work-discovery/types.js +1 -0
- package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
- package/dist/src/workflows/service/workflow-session-bridge.js.map +1 -1
- package/package.json +5 -3
- package/skills/engineering/build-xopc-local-app/SKILL.md +45 -0
- package/skills/engineering/build-xopc-local-app/references/app-contract.md +33 -0
- package/skills/engineering/build-xopc-local-app/scripts/validate-local-app.mjs +72 -0
- package/dist/gateway/static/root/assets/Combination-DolwnuKi.js +0 -41
- package/dist/gateway/static/root/assets/activity-center-store-3l9ahUqb.js +0 -1
- package/dist/gateway/static/root/assets/agents-1bpT0xRO.js +0 -2
- package/dist/gateway/static/root/assets/apps-page-Cc4JgVUQ.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-mb0fdVpq.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-Bb0xhaMN.js +0 -8
- package/dist/gateway/static/root/assets/capability-presets-api-BV76yN9a.js +0 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-CUcGKZqC.js +0 -2
- package/dist/gateway/static/root/assets/channels-settings-BlSDMGdy.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-CJauF1CW.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-CMgAFGvb.js +0 -2
- package/dist/gateway/static/root/assets/dist-C99RGfAH.js +0 -1
- package/dist/gateway/static/root/assets/dreaming-settings-BLetQiYY.js +0 -3
- package/dist/gateway/static/root/assets/extension-debug-page-Cof2ncxE.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-BMmzYpZL.js +0 -4
- package/dist/gateway/static/root/assets/goals-page-CGeT77PC.js +0 -2
- package/dist/gateway/static/root/assets/index-CSLF84-Q.css +0 -1
- package/dist/gateway/static/root/assets/index-I-ZCenVw.js +0 -259
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-x_v0nrIi.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-BSh1t8cD.js +0 -7
- package/dist/gateway/static/root/assets/messages-Cb1VMeqP.js +0 -5
- package/dist/gateway/static/root/assets/models-hub-panel-BNpTenAI.js +0 -2
- package/dist/gateway/static/root/assets/notes-workbench-teklkhcE.js +0 -4
- package/dist/gateway/static/root/assets/project-detail-page-CCB_dKoh.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-VOAFAHYj.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-USYu64Ru.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-oGC8O5h_.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-D4rP66R1.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-Ck9keROI.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-BYLsCuqj.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-BNHUyVML.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-CpXbQH4n.js +0 -2
- package/dist/gateway/static/root/assets/user-context-page-DbNEK4Yp.js +0 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-Cs7MOrg0.js +0 -1
- package/dist/gateway/static/root/assets/work-item-detail-page-D1ziG1Pp.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-DHGV_n6i.js +0 -11
- package/dist/src/agent/context/workspace-templates/MEMORY.md +0 -33
- package/dist/src/agent/memory/access-policy.d.ts +0 -12
- package/dist/src/agent/memory/access-policy.js +0 -44
- package/dist/src/agent/memory/access-policy.js.map +0 -1
|
@@ -3,7 +3,8 @@ export interface UpsertMemoryRecordInput {
|
|
|
3
3
|
id?: string;
|
|
4
4
|
providerId: string;
|
|
5
5
|
kind: MemoryKind;
|
|
6
|
-
|
|
6
|
+
userId?: string;
|
|
7
|
+
sourceAgentId: string;
|
|
7
8
|
workspaceId?: string;
|
|
8
9
|
sessionKey?: string;
|
|
9
10
|
projectId?: string;
|
|
@@ -29,7 +30,8 @@ export interface UpsertMemoryRecordInput {
|
|
|
29
30
|
}
|
|
30
31
|
export interface ListMemoryRecordsOptions {
|
|
31
32
|
providerId?: string;
|
|
32
|
-
|
|
33
|
+
userId?: string;
|
|
34
|
+
sourceAgentId?: string;
|
|
33
35
|
workspaceId?: string;
|
|
34
36
|
projectId?: string;
|
|
35
37
|
/** Include unscoped records plus records visible to this session. */
|
|
@@ -48,7 +50,8 @@ export interface ListMemoryRecordsOptions {
|
|
|
48
50
|
}
|
|
49
51
|
export interface SearchMemoryRecordsOptions {
|
|
50
52
|
query: string;
|
|
51
|
-
|
|
53
|
+
userId?: string;
|
|
54
|
+
sourceAgentId?: string;
|
|
52
55
|
workspaceId?: string;
|
|
53
56
|
projectId?: string;
|
|
54
57
|
/** Include unscoped records plus records visible to this session. */
|
|
@@ -68,7 +71,8 @@ export interface SearchMemoryRecordsOptions {
|
|
|
68
71
|
export interface AppendMemorySignalInput {
|
|
69
72
|
signal: MemorySignal;
|
|
70
73
|
providerId?: string;
|
|
71
|
-
|
|
74
|
+
userId?: string;
|
|
75
|
+
sourceAgentId?: string;
|
|
72
76
|
workspaceId?: string;
|
|
73
77
|
sessionKey?: string;
|
|
74
78
|
nowMs?: number;
|
|
@@ -78,7 +82,8 @@ export interface MemorySignalRowPayload {
|
|
|
78
82
|
source: string;
|
|
79
83
|
recordId?: string;
|
|
80
84
|
providerId?: string;
|
|
81
|
-
|
|
85
|
+
userId?: string;
|
|
86
|
+
sourceAgentId?: string;
|
|
82
87
|
workspaceId?: string;
|
|
83
88
|
sessionKey?: string;
|
|
84
89
|
score?: number;
|
|
@@ -101,6 +106,7 @@ export interface AppendMemoryTraceEventInput {
|
|
|
101
106
|
turnId?: string;
|
|
102
107
|
phase: 'search' | 'read' | 'write' | 'update' | 'delete' | 'sync' | 'inject' | 'test' | 'understanding' | 'remediation';
|
|
103
108
|
providerId: string;
|
|
109
|
+
sourceAgentId?: string;
|
|
104
110
|
request?: unknown;
|
|
105
111
|
resultCount?: number;
|
|
106
112
|
selectedRecordIds?: string[];
|
|
@@ -162,7 +168,6 @@ export interface MemoryRecallFeedbackSummary {
|
|
|
162
168
|
lastFeedbackAt?: string;
|
|
163
169
|
}
|
|
164
170
|
export interface UserUnderstandingQualityMetrics {
|
|
165
|
-
agentId?: string;
|
|
166
171
|
windowDays: number;
|
|
167
172
|
since: string;
|
|
168
173
|
attempts: {
|
|
@@ -204,14 +209,17 @@ export interface UserUnderstandingQualityMetrics {
|
|
|
204
209
|
}
|
|
205
210
|
export declare function upsertMemoryRecord(input: UpsertMemoryRecordInput): MemoryRecord;
|
|
206
211
|
export declare function getMemoryRecord(recordId: string): MemoryRecord | null;
|
|
212
|
+
export declare function hasUnresolvedMemoryConflict(conflictGroupId: string): boolean;
|
|
207
213
|
export declare function listMemoryRecords(options?: ListMemoryRecordsOptions): MemoryRecord[];
|
|
208
214
|
export declare function searchMemoryRecords(options: SearchMemoryRecordsOptions): MemorySearchResult[];
|
|
209
215
|
export declare function deleteMemoryRecord(recordId: string): boolean;
|
|
216
|
+
export declare function markMemoryRecordsConflicted(recordIds: string[], conflictGroupId: string): number;
|
|
210
217
|
export declare function appendMemorySignal(input: AppendMemorySignalInput): string;
|
|
211
218
|
export declare function listMemorySignals(options?: {
|
|
212
219
|
recordId?: string;
|
|
213
220
|
providerId?: string;
|
|
214
|
-
|
|
221
|
+
userId?: string;
|
|
222
|
+
sourceAgentId?: string;
|
|
215
223
|
workspaceId?: string;
|
|
216
224
|
limit?: number;
|
|
217
225
|
}): MemorySignalRowPayload[];
|
|
@@ -220,7 +228,8 @@ export declare function setMemoryProviderState(providerId: string, scopeKey: str
|
|
|
220
228
|
export declare function appendMemoryTraceEvent(input: AppendMemoryTraceEventInput): string;
|
|
221
229
|
export declare function listMemoryTraceEvents(options?: {
|
|
222
230
|
providerId?: string;
|
|
223
|
-
|
|
231
|
+
userId?: string;
|
|
232
|
+
sourceAgentId?: string;
|
|
224
233
|
sessionKey?: string;
|
|
225
234
|
phase?: string;
|
|
226
235
|
limit?: number;
|
|
@@ -231,12 +240,11 @@ export declare function setLatestMemoryInjectFeedback(input: SetLatestMemoryInje
|
|
|
231
240
|
export declare function summarizeMemoryRecallFeedback(options?: {
|
|
232
241
|
recordId?: string;
|
|
233
242
|
providerId?: string;
|
|
234
|
-
|
|
243
|
+
sourceAgentId?: string;
|
|
235
244
|
sessionKey?: string;
|
|
236
245
|
limit?: number;
|
|
237
246
|
}): MemoryRecallFeedbackSummary[];
|
|
238
247
|
export declare function summarizeUserUnderstandingQuality(options?: {
|
|
239
|
-
agentId?: string;
|
|
240
248
|
windowDays?: number;
|
|
241
249
|
agingCandidateDays?: number;
|
|
242
250
|
nowMs?: number;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getSqliteDatabase, runSqliteWriteTransaction } from "./transaction.js";
|
|
2
2
|
import { buildFts5SearchQuery, fts5RankToScore, memoryLexicalSimilarity } from "./fts.js";
|
|
3
|
+
import { LOCAL_USER_ID } from "../../user-context/owner.js";
|
|
3
4
|
import { randomUUID } from "node:crypto";
|
|
4
5
|
//#region src/storage/sqlite/memory-records-repository.ts
|
|
5
6
|
const USER_UNDERSTANDING_REMEDIATION_POLICY = {
|
|
@@ -96,11 +97,12 @@ function rowToRecord(row) {
|
|
|
96
97
|
status: row.status,
|
|
97
98
|
...row.canonical_key ? { canonicalKey: row.canonical_key } : {},
|
|
98
99
|
scope: {
|
|
99
|
-
|
|
100
|
+
userId: row.user_id,
|
|
100
101
|
...row.workspace_id ? { workspaceId: row.workspace_id } : {},
|
|
101
102
|
...row.session_key ? { sessionKey: row.session_key } : {},
|
|
102
103
|
...row.project_id ? { projectId: row.project_id } : {}
|
|
103
104
|
},
|
|
105
|
+
provenance: { sourceAgentId: row.source_agent_id },
|
|
104
106
|
content: row.content,
|
|
105
107
|
source: parseSource(row.source_json),
|
|
106
108
|
...row.confidence != null ? { confidence: row.confidence } : {},
|
|
@@ -125,8 +127,8 @@ function upsertMemoryRecordFts(db, row) {
|
|
|
125
127
|
db.prepare(`DELETE FROM memory_records_fts WHERE record_id = ?`).run(row.id);
|
|
126
128
|
if (!row.content.trim()) return;
|
|
127
129
|
db.prepare(`INSERT INTO memory_records_fts (
|
|
128
|
-
content, record_id, provider_id, kind,
|
|
129
|
-
) VALUES (?, ?, ?, ?, ?, ?)`).run(row.content, row.id, row.providerId, row.kind, row.
|
|
130
|
+
content, record_id, provider_id, kind, user_id, source_agent_id, workspace_id
|
|
131
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)`).run(row.content, row.id, row.providerId, row.kind, row.userId ?? "local-owner", row.sourceAgentId, row.workspaceId ?? null);
|
|
130
132
|
}
|
|
131
133
|
function upsertMemoryRecord(input) {
|
|
132
134
|
const id = input.id ?? randomUUID();
|
|
@@ -147,16 +149,17 @@ function upsertMemoryRecord(input) {
|
|
|
147
149
|
};
|
|
148
150
|
runSqliteWriteTransaction((db) => {
|
|
149
151
|
db.prepare(`INSERT INTO memory_records (
|
|
150
|
-
record_id, provider_id, kind,
|
|
152
|
+
record_id, provider_id, kind, user_id, source_agent_id, workspace_id, session_key, project_id,
|
|
151
153
|
content, source_json, confidence, tags_json, status, sensitivity,
|
|
152
154
|
evidence_json, canonical_key, explicitness, durability, importance,
|
|
153
155
|
disclosure_policy, valid_from, valid_to, review_after, expires_at,
|
|
154
156
|
supersedes_record_id, conflict_group_id, created_at, updated_at
|
|
155
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
157
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
156
158
|
ON CONFLICT(record_id) DO UPDATE SET
|
|
157
159
|
provider_id = excluded.provider_id,
|
|
158
160
|
kind = excluded.kind,
|
|
159
|
-
|
|
161
|
+
user_id = excluded.user_id,
|
|
162
|
+
source_agent_id = excluded.source_agent_id,
|
|
160
163
|
workspace_id = excluded.workspace_id,
|
|
161
164
|
session_key = excluded.session_key,
|
|
162
165
|
project_id = excluded.project_id,
|
|
@@ -178,7 +181,7 @@ function upsertMemoryRecord(input) {
|
|
|
178
181
|
expires_at = excluded.expires_at,
|
|
179
182
|
supersedes_record_id = excluded.supersedes_record_id,
|
|
180
183
|
conflict_group_id = excluded.conflict_group_id,
|
|
181
|
-
updated_at = excluded.updated_at`).run(id, input.providerId, input.kind, input.
|
|
184
|
+
updated_at = excluded.updated_at`).run(id, input.providerId, input.kind, input.userId ?? "local-owner", input.sourceAgentId, input.workspaceId ?? null, input.sessionKey ?? null, input.projectId ?? null, input.content, JSON.stringify(source), input.confidence ?? null, JSON.stringify(input.tags ?? []), status, sensitivity, JSON.stringify(input.evidence ?? []), input.canonicalKey ?? null, explicitness, durability, importance, disclosurePolicy, validFrom, validTo, reviewAfter, expiresAt, input.supersedesRecordId ?? null, input.conflictGroupId ?? null, now, now);
|
|
182
185
|
upsertMemoryRecordFts(db, {
|
|
183
186
|
...input,
|
|
184
187
|
id
|
|
@@ -206,11 +209,12 @@ function upsertMemoryRecord(input) {
|
|
|
206
209
|
status,
|
|
207
210
|
...input.canonicalKey ? { canonicalKey: input.canonicalKey } : {},
|
|
208
211
|
scope: {
|
|
209
|
-
|
|
212
|
+
userId: input.userId ?? "local-owner",
|
|
210
213
|
...input.workspaceId ? { workspaceId: input.workspaceId } : {},
|
|
211
214
|
...input.sessionKey ? { sessionKey: input.sessionKey } : {},
|
|
212
215
|
...input.projectId ? { projectId: input.projectId } : {}
|
|
213
216
|
},
|
|
217
|
+
provenance: { sourceAgentId: input.sourceAgentId },
|
|
214
218
|
content: input.content,
|
|
215
219
|
source,
|
|
216
220
|
...input.confidence != null ? { confidence: input.confidence } : {},
|
|
@@ -235,6 +239,16 @@ function getMemoryRecord(recordId) {
|
|
|
235
239
|
const row = getSqliteDatabase().prepare(`SELECT * FROM memory_records WHERE record_id = ?`).get(recordId);
|
|
236
240
|
return row ? rowToRecord(row) : null;
|
|
237
241
|
}
|
|
242
|
+
function hasUnresolvedMemoryConflict(conflictGroupId) {
|
|
243
|
+
if (!conflictGroupId.trim()) return false;
|
|
244
|
+
const row = getSqliteDatabase().prepare(`
|
|
245
|
+
SELECT COUNT(*) AS count
|
|
246
|
+
FROM memory_records
|
|
247
|
+
WHERE conflict_group_id = ?
|
|
248
|
+
AND status IN ('active', 'candidate', 'needs_review', 'stale')
|
|
249
|
+
`).get(conflictGroupId);
|
|
250
|
+
return Number(row.count) > 1;
|
|
251
|
+
}
|
|
238
252
|
function listMemoryRecords(options = {}) {
|
|
239
253
|
const where = [];
|
|
240
254
|
const params = [];
|
|
@@ -242,9 +256,13 @@ function listMemoryRecords(options = {}) {
|
|
|
242
256
|
where.push("provider_id = ?");
|
|
243
257
|
params.push(options.providerId);
|
|
244
258
|
}
|
|
245
|
-
if (options.
|
|
246
|
-
where.push("
|
|
247
|
-
params.push(options.
|
|
259
|
+
if (options.userId) {
|
|
260
|
+
where.push("user_id = ?");
|
|
261
|
+
params.push(options.userId);
|
|
262
|
+
}
|
|
263
|
+
if (options.sourceAgentId) {
|
|
264
|
+
where.push("source_agent_id = ?");
|
|
265
|
+
params.push(options.sourceAgentId);
|
|
248
266
|
}
|
|
249
267
|
if (options.workspaceId) {
|
|
250
268
|
where.push("workspace_id = ?");
|
|
@@ -286,9 +304,13 @@ function searchMemoryRecords(options) {
|
|
|
286
304
|
if (!query) return [];
|
|
287
305
|
const filters = ["memory_records_fts MATCH ?"];
|
|
288
306
|
const params = [query];
|
|
289
|
-
if (options.
|
|
290
|
-
filters.push("f.
|
|
291
|
-
params.push(options.
|
|
307
|
+
if (options.userId) {
|
|
308
|
+
filters.push("f.user_id = ?");
|
|
309
|
+
params.push(options.userId);
|
|
310
|
+
}
|
|
311
|
+
if (options.sourceAgentId) {
|
|
312
|
+
filters.push("f.source_agent_id = ?");
|
|
313
|
+
params.push(options.sourceAgentId);
|
|
292
314
|
}
|
|
293
315
|
if (options.workspaceId) {
|
|
294
316
|
filters.push("f.workspace_id = ?");
|
|
@@ -329,7 +351,8 @@ function searchMemoryRecords(options) {
|
|
|
329
351
|
LIMIT ?`).all(...params, maxResults * 3);
|
|
330
352
|
if (rows.length === 0) return listMemoryRecords({
|
|
331
353
|
providerId: options.providerId,
|
|
332
|
-
|
|
354
|
+
userId: options.userId,
|
|
355
|
+
sourceAgentId: options.sourceAgentId,
|
|
333
356
|
workspaceId: options.workspaceId,
|
|
334
357
|
projectId: options.projectId,
|
|
335
358
|
visibleToSessionKey: options.visibleToSessionKey,
|
|
@@ -375,14 +398,29 @@ function deleteMemoryRecord(recordId) {
|
|
|
375
398
|
return db.prepare(`DELETE FROM memory_records WHERE record_id = ?`).run(recordId).changes > 0;
|
|
376
399
|
});
|
|
377
400
|
}
|
|
401
|
+
function markMemoryRecordsConflicted(recordIds, conflictGroupId) {
|
|
402
|
+
const ids = [...new Set(recordIds.filter(Boolean))];
|
|
403
|
+
if (!ids.length || !conflictGroupId.trim()) return 0;
|
|
404
|
+
return runSqliteWriteTransaction((db) => {
|
|
405
|
+
const now = Date.now();
|
|
406
|
+
const update = db.prepare(`
|
|
407
|
+
UPDATE memory_records
|
|
408
|
+
SET conflict_group_id = ?, status = 'needs_review', review_after = ?, updated_at = ?
|
|
409
|
+
WHERE record_id = ? AND status IN ('active', 'candidate', 'needs_review', 'stale')
|
|
410
|
+
`);
|
|
411
|
+
let changed = 0;
|
|
412
|
+
for (const id of ids) changed += Number(update.run(conflictGroupId, now, now, id).changes);
|
|
413
|
+
return changed;
|
|
414
|
+
});
|
|
415
|
+
}
|
|
378
416
|
function appendMemorySignal(input) {
|
|
379
417
|
const id = randomUUID();
|
|
380
418
|
const now = input.nowMs ?? Date.now();
|
|
381
419
|
runSqliteWriteTransaction((db) => {
|
|
382
420
|
db.prepare(`INSERT INTO memory_signals (
|
|
383
|
-
signal_id, source, record_id, provider_id,
|
|
421
|
+
signal_id, source, record_id, provider_id, user_id, source_agent_id, workspace_id,
|
|
384
422
|
session_key, score, content, metadata_json, created_at
|
|
385
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, input.signal.source, input.signal.recordId ?? null, input.providerId ?? null, input.
|
|
423
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, input.signal.source, input.signal.recordId ?? null, input.providerId ?? null, input.userId ?? "local-owner", input.sourceAgentId ?? null, input.workspaceId ?? null, input.sessionKey ?? null, input.signal.score ?? null, input.signal.content ?? null, JSON.stringify(input.signal.metadata ?? {}), now);
|
|
386
424
|
if (input.signal.recordId) db.prepare(`UPDATE memory_records
|
|
387
425
|
SET recall_count = recall_count + 1, last_recalled_at = ?, updated_at = MAX(updated_at, ?)
|
|
388
426
|
WHERE record_id = ?`).run(now, now, input.signal.recordId);
|
|
@@ -400,9 +438,13 @@ function listMemorySignals(options = {}) {
|
|
|
400
438
|
where.push("provider_id = ?");
|
|
401
439
|
params.push(options.providerId);
|
|
402
440
|
}
|
|
403
|
-
if (options.
|
|
404
|
-
where.push("
|
|
405
|
-
params.push(options.
|
|
441
|
+
if (options.userId) {
|
|
442
|
+
where.push("user_id = ?");
|
|
443
|
+
params.push(options.userId);
|
|
444
|
+
}
|
|
445
|
+
if (options.sourceAgentId) {
|
|
446
|
+
where.push("source_agent_id = ?");
|
|
447
|
+
params.push(options.sourceAgentId);
|
|
406
448
|
}
|
|
407
449
|
if (options.workspaceId) {
|
|
408
450
|
where.push("workspace_id = ?");
|
|
@@ -425,7 +467,8 @@ function listMemorySignals(options = {}) {
|
|
|
425
467
|
source: row.source,
|
|
426
468
|
...row.record_id ? { recordId: row.record_id } : {},
|
|
427
469
|
...row.provider_id ? { providerId: row.provider_id } : {},
|
|
428
|
-
|
|
470
|
+
userId: row.user_id,
|
|
471
|
+
...row.source_agent_id ? { sourceAgentId: row.source_agent_id } : {},
|
|
429
472
|
...row.workspace_id ? { workspaceId: row.workspace_id } : {},
|
|
430
473
|
...row.session_key ? { sessionKey: row.session_key } : {},
|
|
431
474
|
...row.score != null ? { score: row.score } : {},
|
|
@@ -461,8 +504,9 @@ function appendMemoryTraceEvent(input) {
|
|
|
461
504
|
runSqliteWriteTransaction((db) => {
|
|
462
505
|
db.prepare(`INSERT INTO memory_trace_events (
|
|
463
506
|
trace_id, session_key, turn_id, phase, provider_id, request_json,
|
|
464
|
-
result_count, selected_record_ids_json, skipped_reason, error, feedback_json, duration_ms, created_at
|
|
465
|
-
|
|
507
|
+
result_count, selected_record_ids_json, skipped_reason, error, feedback_json, duration_ms, created_at,
|
|
508
|
+
user_id, source_agent_id
|
|
509
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, input.sessionKey ?? null, input.turnId ?? null, input.phase, input.providerId, JSON.stringify(input.request ?? {}), input.resultCount ?? null, JSON.stringify(input.selectedRecordIds ?? []), input.skippedReason ?? null, input.error ?? null, JSON.stringify(feedback ?? {}), Math.max(0, Math.floor(input.durationMs ?? 0)), now, LOCAL_USER_ID, input.sourceAgentId ?? null);
|
|
466
510
|
});
|
|
467
511
|
return id;
|
|
468
512
|
}
|
|
@@ -473,9 +517,11 @@ function listMemoryTraceEvents(options = {}) {
|
|
|
473
517
|
where.push("provider_id = ?");
|
|
474
518
|
params.push(options.providerId);
|
|
475
519
|
}
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
520
|
+
where.push("user_id = ?");
|
|
521
|
+
params.push(options.userId ?? "local-owner");
|
|
522
|
+
if (options.sourceAgentId) {
|
|
523
|
+
where.push("source_agent_id = ?");
|
|
524
|
+
params.push(options.sourceAgentId);
|
|
479
525
|
}
|
|
480
526
|
if (options.sessionKey) {
|
|
481
527
|
where.push("session_key = ?");
|
|
@@ -597,9 +643,11 @@ function summarizeMemoryRecallFeedback(options = {}) {
|
|
|
597
643
|
where.push("provider_id = ?");
|
|
598
644
|
params.push(options.providerId);
|
|
599
645
|
}
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
646
|
+
where.push("user_id = ?");
|
|
647
|
+
params.push(LOCAL_USER_ID);
|
|
648
|
+
if (options.sourceAgentId) {
|
|
649
|
+
where.push("source_agent_id = ?");
|
|
650
|
+
params.push(options.sourceAgentId);
|
|
603
651
|
}
|
|
604
652
|
if (options.sessionKey) {
|
|
605
653
|
where.push("session_key = ?");
|
|
@@ -656,11 +704,10 @@ function summarizeUserUnderstandingQuality(options = {}) {
|
|
|
656
704
|
const sinceMs = nowMs - windowDays * 24 * 60 * 60 * 1e3;
|
|
657
705
|
const agingCutoffMs = nowMs - Math.max(1, Math.min(windowDays, Math.floor(options.agingCandidateDays ?? 7))) * 24 * 60 * 60 * 1e3;
|
|
658
706
|
const db = getSqliteDatabase();
|
|
659
|
-
const agentWhere = options.agentId ? "AND agent_id = ?" : "";
|
|
660
707
|
const recordRows = db.prepare(`SELECT record_id, status, explicitness, confidence, created_at, updated_at
|
|
661
708
|
FROM memory_records
|
|
662
709
|
WHERE tags_json LIKE '%"user-understanding"%'
|
|
663
|
-
|
|
710
|
+
AND user_id = ?`).all(LOCAL_USER_ID);
|
|
664
711
|
const records = {
|
|
665
712
|
total: recordRows.length,
|
|
666
713
|
candidate: 0,
|
|
@@ -711,7 +758,6 @@ function summarizeUserUnderstandingQuality(options = {}) {
|
|
|
711
758
|
const parsed = parseJsonValue(row.request_json, {});
|
|
712
759
|
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) continue;
|
|
713
760
|
const request = parsed;
|
|
714
|
-
if (options.agentId && request.agentId !== options.agentId) continue;
|
|
715
761
|
attempts.total += 1;
|
|
716
762
|
if (request.source === "turn") attempts.turn += 1;
|
|
717
763
|
if (request.source === "background") attempts.background += 1;
|
|
@@ -747,7 +793,6 @@ function summarizeUserUnderstandingQuality(options = {}) {
|
|
|
747
793
|
const acceptedDecisions = recentDecisions.filter((row) => row.status === "active").length;
|
|
748
794
|
const decisionTotal = recentDecisions.length;
|
|
749
795
|
return {
|
|
750
|
-
...options.agentId ? { agentId: options.agentId } : {},
|
|
751
796
|
windowDays,
|
|
752
797
|
since: new Date(sinceMs).toISOString(),
|
|
753
798
|
attempts,
|
|
@@ -768,6 +813,6 @@ function parseJsonValue(json, fallback) {
|
|
|
768
813
|
}
|
|
769
814
|
}
|
|
770
815
|
//#endregion
|
|
771
|
-
export { USER_UNDERSTANDING_REMEDIATION_POLICY, appendMemorySignal, appendMemoryTraceEvent, deleteMemoryRecord, findLatestMemoryInjectTrace, getMemoryProviderState, getMemoryRecord, listMemoryRecords, listMemorySignals, listMemoryTraceEvents, searchMemoryRecords, setLatestMemoryInjectFeedback, setMemoryProviderState, setMemoryTraceFeedback, summarizeMemoryRecallFeedback, summarizeUserUnderstandingQuality, upsertMemoryRecord };
|
|
816
|
+
export { USER_UNDERSTANDING_REMEDIATION_POLICY, appendMemorySignal, appendMemoryTraceEvent, deleteMemoryRecord, findLatestMemoryInjectTrace, getMemoryProviderState, getMemoryRecord, hasUnresolvedMemoryConflict, listMemoryRecords, listMemorySignals, listMemoryTraceEvents, markMemoryRecordsConflicted, searchMemoryRecords, setLatestMemoryInjectFeedback, setMemoryProviderState, setMemoryTraceFeedback, summarizeMemoryRecallFeedback, summarizeUserUnderstandingQuality, upsertMemoryRecord };
|
|
772
817
|
|
|
773
818
|
//# sourceMappingURL=memory-records-repository.js.map
|