@pellux/goodvibes-sdk 0.38.0 → 1.0.0
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/dist/contracts/artifacts/operator-contract.json +3171 -929
- package/dist/daemon.d.ts +2 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +4 -0
- package/dist/events/surfaces.d.ts +25 -3
- package/dist/events/surfaces.d.ts.map +1 -1
- package/dist/events/surfaces.js +22 -1
- package/dist/events/workflows.d.ts +7 -6
- package/dist/events/workflows.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/platform/agents/archetypes.d.ts.map +1 -1
- package/dist/platform/agents/archetypes.js +7 -0
- package/dist/platform/agents/index.d.ts +1 -0
- package/dist/platform/agents/index.d.ts.map +1 -1
- package/dist/platform/agents/index.js +1 -0
- package/dist/platform/agents/orchestrator-runner.d.ts +13 -0
- package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
- package/dist/platform/agents/orchestrator-runner.js +14 -0
- package/dist/platform/agents/orchestrator.d.ts +38 -6
- package/dist/platform/agents/orchestrator.d.ts.map +1 -1
- package/dist/platform/agents/orchestrator.js +66 -18
- package/dist/platform/agents/planner-decomposition-runner.d.ts +38 -0
- package/dist/platform/agents/planner-decomposition-runner.d.ts.map +1 -0
- package/dist/platform/agents/planner-decomposition-runner.js +113 -0
- package/dist/platform/agents/turn-knowledge-injection.d.ts +88 -3
- package/dist/platform/agents/turn-knowledge-injection.d.ts.map +1 -1
- package/dist/platform/agents/turn-knowledge-injection.js +147 -30
- package/dist/platform/agents/worktree.d.ts +126 -8
- package/dist/platform/agents/worktree.d.ts.map +1 -1
- package/dist/platform/agents/worktree.js +240 -19
- package/dist/platform/agents/wrfc-controller.d.ts +23 -0
- package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-controller.js +158 -32
- package/dist/platform/agents/wrfc-gate-runtime.d.ts +9 -0
- package/dist/platform/agents/wrfc-gate-runtime.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-gate-runtime.js +7 -3
- package/dist/platform/agents/wrfc-gates.d.ts +1 -1
- package/dist/platform/agents/wrfc-gates.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-gates.js +7 -1
- package/dist/platform/agents/wrfc-types.d.ts +23 -3
- package/dist/platform/agents/wrfc-types.d.ts.map +1 -1
- package/dist/platform/automation/types.d.ts +9 -1
- package/dist/platform/automation/types.d.ts.map +1 -1
- package/dist/platform/calendar/calendar-api-shared.d.ts +25 -0
- package/dist/platform/calendar/calendar-api-shared.d.ts.map +1 -0
- package/dist/platform/calendar/calendar-api-shared.js +100 -0
- package/dist/platform/calendar/calendar-connector.d.ts +79 -0
- package/dist/platform/calendar/calendar-connector.d.ts.map +1 -0
- package/dist/platform/calendar/calendar-connector.js +155 -0
- package/dist/platform/calendar/google-calendar-api.d.ts +25 -0
- package/dist/platform/calendar/google-calendar-api.d.ts.map +1 -0
- package/dist/platform/calendar/google-calendar-api.js +89 -0
- package/dist/platform/calendar/http-fetch-adapter.d.ts +25 -0
- package/dist/platform/calendar/http-fetch-adapter.d.ts.map +1 -0
- package/dist/platform/calendar/http-fetch-adapter.js +25 -0
- package/dist/platform/calendar/ics-parser.d.ts +35 -0
- package/dist/platform/calendar/ics-parser.d.ts.map +1 -0
- package/dist/platform/calendar/ics-parser.js +236 -0
- package/dist/platform/calendar/index.d.ts +41 -0
- package/dist/platform/calendar/index.d.ts.map +1 -0
- package/dist/platform/calendar/index.js +49 -0
- package/dist/platform/calendar/merged-calendar-model.d.ts +67 -0
- package/dist/platform/calendar/merged-calendar-model.d.ts.map +1 -0
- package/dist/platform/calendar/merged-calendar-model.js +181 -0
- package/dist/platform/calendar/microsoft-graph-api.d.ts +25 -0
- package/dist/platform/calendar/microsoft-graph-api.d.ts.map +1 -0
- package/dist/platform/calendar/microsoft-graph-api.js +95 -0
- package/dist/platform/calendar/oauth-flow.d.ts +62 -0
- package/dist/platform/calendar/oauth-flow.d.ts.map +1 -0
- package/dist/platform/calendar/oauth-flow.js +305 -0
- package/dist/platform/calendar/oauth-providers.d.ts +43 -0
- package/dist/platform/calendar/oauth-providers.d.ts.map +1 -0
- package/dist/platform/calendar/oauth-providers.js +120 -0
- package/dist/platform/calendar/oauth-token-store.d.ts +72 -0
- package/dist/platform/calendar/oauth-token-store.d.ts.map +1 -0
- package/dist/platform/calendar/oauth-token-store.js +189 -0
- package/dist/platform/calendar/oauth-types.d.ts +274 -0
- package/dist/platform/calendar/oauth-types.d.ts.map +1 -0
- package/dist/platform/calendar/oauth-types.js +22 -0
- package/dist/platform/calendar/rrule.d.ts +39 -0
- package/dist/platform/calendar/rrule.d.ts.map +1 -0
- package/dist/platform/calendar/rrule.js +261 -0
- package/dist/platform/calendar/subscription-store.d.ts +118 -0
- package/dist/platform/calendar/subscription-store.d.ts.map +1 -0
- package/dist/platform/calendar/subscription-store.js +293 -0
- package/dist/platform/calendar/types.d.ts +170 -0
- package/dist/platform/calendar/types.d.ts.map +1 -0
- package/dist/platform/calendar/types.js +21 -0
- package/dist/platform/companion/companion-chat-attachments.d.ts +29 -0
- package/dist/platform/companion/companion-chat-attachments.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-attachments.js +121 -0
- package/dist/platform/companion/companion-chat-broker-bridge.d.ts +40 -0
- package/dist/platform/companion/companion-chat-broker-bridge.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-broker-bridge.js +14 -0
- package/dist/platform/companion/companion-chat-broker-sync.d.ts +38 -0
- package/dist/platform/companion/companion-chat-broker-sync.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-broker-sync.js +80 -0
- package/dist/platform/companion/companion-chat-gc.d.ts +63 -0
- package/dist/platform/companion/companion-chat-gc.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-gc.js +38 -0
- package/dist/platform/companion/companion-chat-manager.d.ts +67 -20
- package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-manager.js +130 -144
- package/dist/platform/companion/companion-chat-persistence.d.ts +9 -1
- package/dist/platform/companion/companion-chat-persistence.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-persistence.js +10 -2
- package/dist/platform/companion/companion-chat-routes.d.ts +2 -1
- package/dist/platform/companion/companion-chat-routes.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-routes.js +37 -4
- package/dist/platform/config/credential-status.d.ts +28 -0
- package/dist/platform/config/credential-status.d.ts.map +1 -0
- package/dist/platform/config/credential-status.js +75 -0
- package/dist/platform/config/index.d.ts +25 -0
- package/dist/platform/config/index.d.ts.map +1 -1
- package/dist/platform/config/index.js +18 -0
- package/dist/platform/config/manager.d.ts +9 -0
- package/dist/platform/config/manager.d.ts.map +1 -1
- package/dist/platform/config/manager.js +21 -2
- package/dist/platform/config/migrations.d.ts +48 -0
- package/dist/platform/config/migrations.d.ts.map +1 -0
- package/dist/platform/config/migrations.js +54 -0
- package/dist/platform/config/schema-domain-core.d.ts +10 -1
- package/dist/platform/config/schema-domain-core.d.ts.map +1 -1
- package/dist/platform/config/schema-domain-core.js +46 -3
- package/dist/platform/config/schema-types.d.ts +13 -7
- package/dist/platform/config/schema-types.d.ts.map +1 -1
- package/dist/platform/config/schema.d.ts.map +1 -1
- package/dist/platform/config/schema.js +2 -0
- package/dist/platform/control-plane/approval-broker.d.ts +11 -0
- package/dist/platform/control-plane/approval-broker.d.ts.map +1 -1
- package/dist/platform/control-plane/approval-broker.js +17 -1
- package/dist/platform/control-plane/approval-hunk-apply.d.ts +77 -0
- package/dist/platform/control-plane/approval-hunk-apply.d.ts.map +1 -0
- package/dist/platform/control-plane/approval-hunk-apply.js +80 -0
- package/dist/platform/control-plane/gateway-disabled-response.d.ts +20 -0
- package/dist/platform/control-plane/gateway-disabled-response.d.ts.map +1 -0
- package/dist/platform/control-plane/gateway-disabled-response.js +24 -0
- package/dist/platform/control-plane/gateway-scope-enforcement.d.ts +68 -0
- package/dist/platform/control-plane/gateway-scope-enforcement.d.ts.map +1 -0
- package/dist/platform/control-plane/gateway-scope-enforcement.js +91 -0
- package/dist/platform/control-plane/gateway-utils.d.ts +17 -0
- package/dist/platform/control-plane/gateway-utils.d.ts.map +1 -1
- package/dist/platform/control-plane/gateway-utils.js +30 -0
- package/dist/platform/control-plane/gateway.d.ts +12 -2
- package/dist/platform/control-plane/gateway.d.ts.map +1 -1
- package/dist/platform/control-plane/gateway.js +27 -31
- package/dist/platform/control-plane/index.d.ts +6 -1
- package/dist/platform/control-plane/index.d.ts.map +1 -1
- package/dist/platform/control-plane/index.js +4 -0
- package/dist/platform/control-plane/invoke-input-validation.d.ts +56 -0
- package/dist/platform/control-plane/invoke-input-validation.d.ts.map +1 -0
- package/dist/platform/control-plane/invoke-input-validation.js +163 -0
- package/dist/platform/control-plane/method-catalog-admin.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-admin.js +12 -1
- package/dist/platform/control-plane/method-catalog-calendar.d.ts +16 -0
- package/dist/platform/control-plane/method-catalog-calendar.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-calendar.js +21 -0
- package/dist/platform/control-plane/method-catalog-channels.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-channels.js +32 -3
- package/dist/platform/control-plane/method-catalog-control-automation.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-control-automation.js +19 -34
- package/dist/platform/control-plane/method-catalog-control-companion.d.ts +15 -0
- package/dist/platform/control-plane/method-catalog-control-companion.d.ts.map +1 -0
- package/dist/platform/control-plane/method-catalog-control-companion.js +133 -0
- package/dist/platform/control-plane/method-catalog-control-core.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-control-core.js +104 -122
- package/dist/platform/control-plane/method-catalog-control.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-control.js +4 -0
- package/dist/platform/control-plane/method-catalog-email.d.ts +17 -0
- package/dist/platform/control-plane/method-catalog-email.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-email.js +21 -0
- package/dist/platform/control-plane/method-catalog-events.d.ts +28 -0
- package/dist/platform/control-plane/method-catalog-events.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-events.js +74 -1
- package/dist/platform/control-plane/method-catalog-fleet.d.ts +24 -0
- package/dist/platform/control-plane/method-catalog-fleet.d.ts.map +1 -0
- package/dist/platform/control-plane/method-catalog-fleet.js +65 -0
- package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts +84 -0
- package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts.map +1 -0
- package/dist/platform/control-plane/method-catalog-route-reconcile.js +103 -0
- package/dist/platform/control-plane/method-catalog-shared.d.ts +29 -0
- package/dist/platform/control-plane/method-catalog-shared.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog.d.ts +9 -0
- package/dist/platform/control-plane/method-catalog.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog.js +32 -3
- package/dist/platform/control-plane/operator-contract-schemas-admin.d.ts +8 -0
- package/dist/platform/control-plane/operator-contract-schemas-admin.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-admin.js +22 -1
- package/dist/platform/control-plane/operator-contract-schemas-fleet.d.ts +18 -0
- package/dist/platform/control-plane/operator-contract-schemas-fleet.d.ts.map +1 -0
- package/dist/platform/control-plane/operator-contract-schemas-fleet.js +182 -0
- package/dist/platform/control-plane/operator-contract-schemas-permissions.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-permissions.js +5 -0
- package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts +29 -0
- package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-runtime.js +57 -3
- package/dist/platform/control-plane/operator-contract-schemas.d.ts +1 -0
- package/dist/platform/control-plane/operator-contract-schemas.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas.js +1 -0
- package/dist/platform/control-plane/operator-contract.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract.js +8 -0
- package/dist/platform/control-plane/routes/checkpoints.d.ts +39 -0
- package/dist/platform/control-plane/routes/checkpoints.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/checkpoints.js +166 -0
- package/dist/platform/control-plane/routes/fleet.d.ts +53 -0
- package/dist/platform/control-plane/routes/fleet.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/fleet.js +153 -0
- package/dist/platform/control-plane/routes/gateway-verb-error.d.ts +30 -0
- package/dist/platform/control-plane/routes/gateway-verb-error.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/gateway-verb-error.js +36 -0
- package/dist/platform/control-plane/routes/index.d.ts +0 -6
- package/dist/platform/control-plane/routes/index.d.ts.map +1 -1
- package/dist/platform/control-plane/routes/index.js +5 -5
- package/dist/platform/control-plane/routes/invocation-params.d.ts +23 -0
- package/dist/platform/control-plane/routes/invocation-params.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/invocation-params.js +9 -0
- package/dist/platform/control-plane/routes/register-w3-s2.d.ts +26 -0
- package/dist/platform/control-plane/routes/register-w3-s2.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/register-w3-s2.js +8 -0
- package/dist/platform/control-plane/routes/session-search.d.ts +37 -0
- package/dist/platform/control-plane/routes/session-search.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/session-search.js +113 -0
- package/dist/platform/control-plane/session-broker-gc.d.ts +16 -0
- package/dist/platform/control-plane/session-broker-gc.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker-gc.js +23 -6
- package/dist/platform/control-plane/session-broker-helpers.d.ts +3 -3
- package/dist/platform/control-plane/session-broker-helpers.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker-inputs.d.ts +18 -0
- package/dist/platform/control-plane/session-broker-inputs.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker-inputs.js +34 -0
- package/dist/platform/control-plane/session-broker-sessions.d.ts +102 -3
- package/dist/platform/control-plane/session-broker-sessions.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker-sessions.js +179 -5
- package/dist/platform/control-plane/session-broker-state.d.ts +20 -1
- package/dist/platform/control-plane/session-broker-state.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker-state.js +67 -5
- package/dist/platform/control-plane/session-broker.d.ts +51 -38
- package/dist/platform/control-plane/session-broker.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker.js +183 -75
- package/dist/platform/control-plane/session-store-importer.d.ts +57 -0
- package/dist/platform/control-plane/session-store-importer.d.ts.map +1 -0
- package/dist/platform/control-plane/session-store-importer.js +227 -0
- package/dist/platform/control-plane/session-types.d.ts +142 -7
- package/dist/platform/control-plane/session-types.d.ts.map +1 -1
- package/dist/platform/core/execution-plan.d.ts +43 -1
- package/dist/platform/core/execution-plan.d.ts.map +1 -1
- package/dist/platform/core/execution-plan.js +46 -10
- package/dist/platform/core/index.d.ts +1 -0
- package/dist/platform/core/index.d.ts.map +1 -1
- package/dist/platform/core/index.js +1 -0
- package/dist/platform/core/orchestrator-runtime.d.ts +21 -1
- package/dist/platform/core/orchestrator-runtime.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-tool-runtime.d.ts +7 -0
- package/dist/platform/core/orchestrator-tool-runtime.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-tool-runtime.js +10 -0
- package/dist/platform/core/orchestrator-turn-loop.d.ts +8 -1
- package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-turn-loop.js +6 -0
- package/dist/platform/core/orchestrator.d.ts +6 -0
- package/dist/platform/core/orchestrator.d.ts.map +1 -1
- package/dist/platform/core/orchestrator.js +15 -0
- package/dist/platform/core/plan-decomposition.d.ts +196 -0
- package/dist/platform/core/plan-decomposition.d.ts.map +1 -0
- package/dist/platform/core/plan-decomposition.js +417 -0
- package/dist/platform/core/plan-proposal.d.ts +39 -0
- package/dist/platform/core/plan-proposal.d.ts.map +1 -1
- package/dist/platform/core/wrfc-routing.d.ts +1 -0
- package/dist/platform/core/wrfc-routing.d.ts.map +1 -1
- package/dist/platform/core/wrfc-routing.js +51 -1
- package/dist/platform/daemon/boot.d.ts +63 -0
- package/dist/platform/daemon/boot.d.ts.map +1 -0
- package/dist/platform/daemon/boot.js +60 -0
- package/dist/platform/daemon/cli.js +2 -1
- package/dist/platform/daemon/control-plane.d.ts.map +1 -1
- package/dist/platform/daemon/control-plane.js +50 -1
- package/dist/platform/daemon/facade-composition.d.ts.map +1 -1
- package/dist/platform/daemon/facade-composition.js +6 -0
- package/dist/platform/daemon/facade.d.ts +18 -6
- package/dist/platform/daemon/facade.d.ts.map +1 -1
- package/dist/platform/daemon/facade.js +50 -43
- package/dist/platform/daemon/http/router-route-contexts.d.ts +1 -0
- package/dist/platform/daemon/http/router-route-contexts.d.ts.map +1 -1
- package/dist/platform/daemon/http/router-route-contexts.js +1 -0
- package/dist/platform/daemon/http/router-session-broker-adapter.d.ts +13 -0
- package/dist/platform/daemon/http/router-session-broker-adapter.d.ts.map +1 -0
- package/dist/platform/daemon/http/router-session-broker-adapter.js +27 -0
- package/dist/platform/daemon/http/router.d.ts +1 -1
- package/dist/platform/daemon/http/router.d.ts.map +1 -1
- package/dist/platform/daemon/http/router.js +7 -22
- package/dist/platform/daemon/http/runtime-route-types.d.ts +42 -4
- package/dist/platform/daemon/http/runtime-route-types.d.ts.map +1 -1
- package/dist/platform/daemon/index.d.ts +2 -0
- package/dist/platform/daemon/index.d.ts.map +1 -1
- package/dist/platform/daemon/index.js +1 -0
- package/dist/platform/daemon/service-manager.d.ts +16 -0
- package/dist/platform/daemon/service-manager.d.ts.map +1 -1
- package/dist/platform/daemon/service-manager.js +79 -15
- package/dist/platform/intelligence/tree-sitter/service.d.ts.map +1 -1
- package/dist/platform/intelligence/tree-sitter/service.js +16 -2
- package/dist/platform/knowledge/browser-history/readers.d.ts.map +1 -1
- package/dist/platform/knowledge/browser-history/readers.js +15 -5
- package/dist/platform/knowledge/project-planning/service.d.ts +14 -1
- package/dist/platform/knowledge/project-planning/service.d.ts.map +1 -1
- package/dist/platform/knowledge/project-planning/service.js +77 -0
- package/dist/platform/knowledge/project-planning/types.d.ts +32 -0
- package/dist/platform/knowledge/project-planning/types.d.ts.map +1 -1
- package/dist/platform/orchestration/bookkeeping.d.ts +12 -0
- package/dist/platform/orchestration/bookkeeping.d.ts.map +1 -0
- package/dist/platform/orchestration/bookkeeping.js +91 -0
- package/dist/platform/orchestration/controller-compat.d.ts +14 -0
- package/dist/platform/orchestration/controller-compat.d.ts.map +1 -1
- package/dist/platform/orchestration/controller-compat.js +18 -4
- package/dist/platform/orchestration/engine.d.ts +26 -1
- package/dist/platform/orchestration/engine.d.ts.map +1 -1
- package/dist/platform/orchestration/engine.js +226 -21
- package/dist/platform/orchestration/index.d.ts +6 -4
- package/dist/platform/orchestration/index.d.ts.map +1 -1
- package/dist/platform/orchestration/index.js +3 -2
- package/dist/platform/orchestration/persistence.d.ts.map +1 -1
- package/dist/platform/orchestration/persistence.js +4 -1
- package/dist/platform/orchestration/phase-runner.d.ts +29 -2
- package/dist/platform/orchestration/phase-runner.d.ts.map +1 -1
- package/dist/platform/orchestration/phase-runner.js +98 -25
- package/dist/platform/orchestration/proposal-workstream.d.ts +56 -0
- package/dist/platform/orchestration/proposal-workstream.d.ts.map +1 -0
- package/dist/platform/orchestration/proposal-workstream.js +76 -0
- package/dist/platform/orchestration/scheduler.d.ts +19 -0
- package/dist/platform/orchestration/scheduler.d.ts.map +1 -1
- package/dist/platform/orchestration/scheduler.js +16 -0
- package/dist/platform/orchestration/types.d.ts +286 -1
- package/dist/platform/orchestration/types.d.ts.map +1 -1
- package/dist/platform/orchestration/types.js +32 -0
- package/dist/platform/orchestration/worktree-isolation.d.ts +33 -0
- package/dist/platform/orchestration/worktree-isolation.d.ts.map +1 -0
- package/dist/platform/orchestration/worktree-isolation.js +248 -0
- package/dist/platform/presentation/glyphs.d.ts +91 -0
- package/dist/platform/presentation/glyphs.d.ts.map +1 -0
- package/dist/platform/presentation/glyphs.js +93 -0
- package/dist/platform/presentation/index.d.ts +28 -0
- package/dist/platform/presentation/index.d.ts.map +1 -0
- package/dist/platform/presentation/index.js +27 -0
- package/dist/platform/presentation/thinking-phrases.d.ts +12 -0
- package/dist/platform/presentation/thinking-phrases.d.ts.map +1 -0
- package/dist/platform/presentation/thinking-phrases.js +32 -0
- package/dist/platform/presentation/tones.d.ts +121 -0
- package/dist/platform/presentation/tones.d.ts.map +1 -0
- package/dist/platform/presentation/tones.js +145 -0
- package/dist/platform/presentation/waiting-wording.d.ts +54 -0
- package/dist/platform/presentation/waiting-wording.d.ts.map +1 -0
- package/dist/platform/presentation/waiting-wording.js +51 -0
- package/dist/platform/providers/runtime-snapshot.d.ts.map +1 -1
- package/dist/platform/providers/runtime-snapshot.js +12 -2
- package/dist/platform/runtime/bootstrap-services.d.ts +62 -2
- package/dist/platform/runtime/bootstrap-services.d.ts.map +1 -1
- package/dist/platform/runtime/bootstrap-services.js +217 -50
- package/dist/platform/runtime/daemon-version-compat.d.ts +39 -0
- package/dist/platform/runtime/daemon-version-compat.d.ts.map +1 -0
- package/dist/platform/runtime/daemon-version-compat.js +75 -0
- package/dist/platform/runtime/detached-daemon-runtime.d.ts +26 -0
- package/dist/platform/runtime/detached-daemon-runtime.d.ts.map +1 -0
- package/dist/platform/runtime/detached-daemon-runtime.js +49 -0
- package/dist/platform/runtime/emitters/workflows.d.ts +1 -1
- package/dist/platform/runtime/emitters/workflows.d.ts.map +1 -1
- package/dist/platform/runtime/events/index.d.ts +13 -0
- package/dist/platform/runtime/events/index.d.ts.map +1 -1
- package/dist/platform/runtime/events/index.js +13 -0
- package/dist/platform/runtime/feature-flags/flags.d.ts.map +1 -1
- package/dist/platform/runtime/feature-flags/flags.js +39 -1
- package/dist/platform/runtime/fleet/adapters/orchestration.d.ts +40 -18
- package/dist/platform/runtime/fleet/adapters/orchestration.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/adapters/orchestration.js +138 -34
- package/dist/platform/runtime/fleet/adapters/wrfc.d.ts +13 -0
- package/dist/platform/runtime/fleet/adapters/wrfc.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/adapters/wrfc.js +48 -1
- package/dist/platform/runtime/fleet/registry.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/registry.js +38 -4
- package/dist/platform/runtime/operator-client.d.ts +20 -2
- package/dist/platform/runtime/operator-client.d.ts.map +1 -1
- package/dist/platform/runtime/operator-client.js +11 -1
- package/dist/platform/runtime/provider-accounts/registry.d.ts.map +1 -1
- package/dist/platform/runtime/provider-accounts/registry.js +11 -1
- package/dist/platform/runtime/services.d.ts +9 -7
- package/dist/platform/runtime/services.d.ts.map +1 -1
- package/dist/platform/runtime/services.js +19 -4
- package/dist/platform/runtime/session-spine/client.d.ts +234 -0
- package/dist/platform/runtime/session-spine/client.d.ts.map +1 -0
- package/dist/platform/runtime/session-spine/client.js +449 -0
- package/dist/platform/runtime/session-spine/index.d.ts +12 -0
- package/dist/platform/runtime/session-spine/index.d.ts.map +1 -0
- package/dist/platform/runtime/session-spine/index.js +11 -0
- package/dist/platform/runtime/session-spine/union-cache.d.ts +225 -0
- package/dist/platform/runtime/session-spine/union-cache.d.ts.map +1 -0
- package/dist/platform/runtime/session-spine/union-cache.js +333 -0
- package/dist/platform/runtime/shell-command-ops.d.ts +3 -1
- package/dist/platform/runtime/shell-command-ops.d.ts.map +1 -1
- package/dist/platform/runtime/transports/daemon-http-client-validators.d.ts.map +1 -1
- package/dist/platform/runtime/transports/daemon-http-client-validators.js +22 -0
- package/dist/platform/runtime/transports/daemon-http-client.d.ts.map +1 -1
- package/dist/platform/runtime/transports/daemon-http-client.js +25 -2
- package/dist/platform/runtime/transports/http-types.d.ts +9 -2
- package/dist/platform/runtime/transports/http-types.d.ts.map +1 -1
- package/dist/platform/state/canonical-memory.d.ts +95 -0
- package/dist/platform/state/canonical-memory.d.ts.map +1 -0
- package/dist/platform/state/canonical-memory.js +155 -0
- package/dist/platform/state/code-index-reindex.d.ts +73 -0
- package/dist/platform/state/code-index-reindex.d.ts.map +1 -0
- package/dist/platform/state/code-index-reindex.js +156 -0
- package/dist/platform/state/code-index-store.d.ts.map +1 -1
- package/dist/platform/state/code-index-store.js +10 -2
- package/dist/platform/state/index.d.ts +8 -0
- package/dist/platform/state/index.d.ts.map +1 -1
- package/dist/platform/state/index.js +4 -0
- package/dist/platform/state/memory-recall-contract.d.ts +63 -0
- package/dist/platform/state/memory-recall-contract.d.ts.map +1 -0
- package/dist/platform/state/memory-recall-contract.js +94 -0
- package/dist/platform/state/memory-store.d.ts +2 -0
- package/dist/platform/state/memory-store.d.ts.map +1 -1
- package/dist/platform/state/memory-store.js +4 -0
- package/dist/platform/state/memory-vector-store.d.ts.map +1 -1
- package/dist/platform/state/memory-vector-store.js +13 -2
- package/dist/platform/state/sqlite-store.d.ts +2 -0
- package/dist/platform/state/sqlite-store.d.ts.map +1 -1
- package/dist/platform/state/sqlite-store.js +4 -0
- package/dist/platform/state/vibe-projection.d.ts +67 -0
- package/dist/platform/state/vibe-projection.d.ts.map +1 -0
- package/dist/platform/state/vibe-projection.js +115 -0
- package/dist/platform/tools/agent/index.d.ts.map +1 -1
- package/dist/platform/tools/agent/index.js +8 -0
- package/dist/platform/tools/agent/manager.d.ts +12 -0
- package/dist/platform/tools/agent/manager.d.ts.map +1 -1
- package/dist/platform/tools/agent/manager.js +6 -0
- package/dist/platform/tools/agent/schema.d.ts +26 -0
- package/dist/platform/tools/agent/schema.d.ts.map +1 -1
- package/dist/platform/tools/agent/schema.js +2 -2
- package/dist/platform/tools/agent/wrfc-batch-policy.d.ts +13 -0
- package/dist/platform/tools/agent/wrfc-batch-policy.d.ts.map +1 -1
- package/dist/platform/tools/agent/wrfc-batch-policy.js +60 -0
- package/dist/platform/tools/exec/runtime.d.ts +10 -0
- package/dist/platform/tools/exec/runtime.d.ts.map +1 -1
- package/dist/platform/tools/exec/runtime.js +22 -5
- package/dist/platform/tools/exec/schema.d.ts +1 -1
- package/dist/platform/tools/exec/schema.d.ts.map +1 -1
- package/dist/platform/tools/exec/schema.js +2 -1
- package/dist/platform/tools/index.d.ts +2 -0
- package/dist/platform/tools/index.d.ts.map +1 -1
- package/dist/platform/tools/index.js +2 -0
- package/dist/platform/tools/state/index.d.ts +9 -0
- package/dist/platform/tools/state/index.d.ts.map +1 -1
- package/dist/platform/tools/state/index.js +60 -3
- package/dist/platform/types/foundation-contract.d.ts +1 -1
- package/dist/platform/types/foundation-contract.d.ts.map +1 -1
- package/dist/platform/types/index.d.ts +1 -1
- package/dist/platform/types/index.d.ts.map +1 -1
- package/dist/platform/version.js +1 -1
- package/package.json +21 -9
- package/dist/platform/control-plane/routes/automation.d.ts +0 -3
- package/dist/platform/control-plane/routes/automation.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/automation.js +0 -63
- package/dist/platform/control-plane/routes/context.d.ts +0 -2
- package/dist/platform/control-plane/routes/context.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/context.js +0 -1
- package/dist/platform/control-plane/routes/operator.d.ts +0 -8
- package/dist/platform/control-plane/routes/operator.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/operator.js +0 -415
- package/dist/platform/control-plane/routes/remote.d.ts +0 -3
- package/dist/platform/control-plane/routes/remote.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/remote.js +0 -35
- package/dist/platform/control-plane/routes/sessions.d.ts +0 -3
- package/dist/platform/control-plane/routes/sessions.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/sessions.js +0 -43
- package/dist/platform/control-plane/routes/tasks.d.ts +0 -3
- package/dist/platform/control-plane/routes/tasks.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/tasks.js +0 -22
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
|
|
2
|
+
/**
|
|
3
|
+
* CodeIndexReindexScheduler — Stage B tool-site reindex hooks.
|
|
4
|
+
*
|
|
5
|
+
* After a successful file-writing tool call (write / edit, including the edit
|
|
6
|
+
* tool's notebook operations), the touched path(s) are scheduled for an
|
|
7
|
+
* incremental `CodeIndexStore.reindexFile()`. Three properties the brief asks
|
|
8
|
+
* for, all enforced here rather than at the (two) tool-execution call sites:
|
|
9
|
+
*
|
|
10
|
+
* 1. NEVER BLOCKS THE TURN. `onToolExecuted` only records paths and arms a
|
|
11
|
+
* timer; the reindex runs later, off the tool-result path. Nothing here is
|
|
12
|
+
* awaited by the caller.
|
|
13
|
+
*
|
|
14
|
+
* 2. DEBOUNCED + COALESCED, per path. Each touched path gets its own timer;
|
|
15
|
+
* re-touching the same path before its quiet window elapses resets that
|
|
16
|
+
* path's timer, so a phased edit or several edits to one file in a turn
|
|
17
|
+
* collapse to a SINGLE reindex. Distinct paths reindex independently, each
|
|
18
|
+
* after its own quiet window. Timers are `unref()`'d so a pending reindex
|
|
19
|
+
* never keeps the process alive.
|
|
20
|
+
*
|
|
21
|
+
* 3. NO-OP WHEN THERE IS NOTHING TO MAINTAIN, and CONTAINED FAILURE. At fire
|
|
22
|
+
* time the scheduler re-checks (live, so a runtime toggle is respected)
|
|
23
|
+
* that the code index is enabled AND already built (available &&
|
|
24
|
+
* indexedChunks > 0) — reindexing a single file into an index that was
|
|
25
|
+
* never built would fabricate a misleading one-file index, so that case is
|
|
26
|
+
* a silent no-op. `reindexFile` is cheap when the file is unchanged
|
|
27
|
+
* (hash-gated). Any error is caught, logged, and recorded as the last
|
|
28
|
+
* activity — it never rethrows into the turn.
|
|
29
|
+
*
|
|
30
|
+
* The most-recent completed reindex is exposed via `lastActivity()` for honest
|
|
31
|
+
* surfacing (e.g. TUI `/codebase status`).
|
|
32
|
+
*/
|
|
33
|
+
import { resolve as resolvePathAbsolute } from 'node:path';
|
|
34
|
+
import { logger } from '../utils/logger.js';
|
|
35
|
+
import { summarizeError } from '../utils/error-display.js';
|
|
36
|
+
/** Default per-path debounce window: long enough to coalesce a burst of edits to one file, short enough that the index trails the working tree by well under a second. */
|
|
37
|
+
export const DEFAULT_REINDEX_DEBOUNCE_MS = 300;
|
|
38
|
+
/**
|
|
39
|
+
* Tool names whose successful execution touches files worth reindexing, and the
|
|
40
|
+
* argument shapes that carry the touched path(s). `write` carries `files[].path`;
|
|
41
|
+
* `edit` carries `edits[].path` plus an optional `notebook_operations.path`. A
|
|
42
|
+
* top-level `path`/`file_path` is also honored for robustness against tool
|
|
43
|
+
* variants. Anything else yields no paths (no-op).
|
|
44
|
+
*/
|
|
45
|
+
export function extractReindexPaths(toolName, args) {
|
|
46
|
+
if (toolName !== 'write' && toolName !== 'edit')
|
|
47
|
+
return [];
|
|
48
|
+
const paths = new Set();
|
|
49
|
+
const addIfString = (value) => {
|
|
50
|
+
if (typeof value === 'string' && value.trim().length > 0)
|
|
51
|
+
paths.add(value);
|
|
52
|
+
};
|
|
53
|
+
addIfString(args['path']);
|
|
54
|
+
addIfString(args['file_path']);
|
|
55
|
+
const files = args['files'];
|
|
56
|
+
if (Array.isArray(files)) {
|
|
57
|
+
for (const file of files) {
|
|
58
|
+
if (file && typeof file === 'object')
|
|
59
|
+
addIfString(file['path']);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const edits = args['edits'];
|
|
63
|
+
if (Array.isArray(edits)) {
|
|
64
|
+
for (const edit of edits) {
|
|
65
|
+
if (edit && typeof edit === 'object')
|
|
66
|
+
addIfString(edit['path']);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const notebookOps = args['notebook_operations'];
|
|
70
|
+
if (notebookOps && typeof notebookOps === 'object') {
|
|
71
|
+
addIfString(notebookOps['path']);
|
|
72
|
+
}
|
|
73
|
+
return [...paths];
|
|
74
|
+
}
|
|
75
|
+
export class CodeIndexReindexScheduler {
|
|
76
|
+
deps;
|
|
77
|
+
timers = new Map();
|
|
78
|
+
inFlight = new Set();
|
|
79
|
+
last = null;
|
|
80
|
+
debounceMs;
|
|
81
|
+
now;
|
|
82
|
+
constructor(deps) {
|
|
83
|
+
this.deps = deps;
|
|
84
|
+
this.debounceMs = deps.debounceMs ?? DEFAULT_REINDEX_DEBOUNCE_MS;
|
|
85
|
+
this.now = deps.now ?? Date.now;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Entry point wired into both tool-execution loops. A no-op for a failed call
|
|
89
|
+
* or a non-file tool. Extracts touched paths and schedules each (debounced).
|
|
90
|
+
* Returns immediately — never awaits a reindex.
|
|
91
|
+
*/
|
|
92
|
+
onToolExecuted(toolName, args, success) {
|
|
93
|
+
if (!success)
|
|
94
|
+
return;
|
|
95
|
+
for (const p of extractReindexPaths(toolName, args)) {
|
|
96
|
+
this.schedule(resolvePathAbsolute(this.deps.workingDirectory, p));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/** Arm (or reset) the per-path debounce timer for one absolute path. */
|
|
100
|
+
schedule(absPath) {
|
|
101
|
+
const existing = this.timers.get(absPath);
|
|
102
|
+
if (existing)
|
|
103
|
+
clearTimeout(existing);
|
|
104
|
+
const timer = setTimeout(() => {
|
|
105
|
+
this.timers.delete(absPath);
|
|
106
|
+
this.track(this.runReindex(absPath));
|
|
107
|
+
}, this.debounceMs);
|
|
108
|
+
timer.unref?.();
|
|
109
|
+
this.timers.set(absPath, timer);
|
|
110
|
+
}
|
|
111
|
+
/** The most recent reindex the scheduler actually ran, or null if none has completed. */
|
|
112
|
+
lastActivity() {
|
|
113
|
+
return this.last;
|
|
114
|
+
}
|
|
115
|
+
/** Count of paths with a pending (debouncing) reindex. */
|
|
116
|
+
pendingCount() {
|
|
117
|
+
return this.timers.size;
|
|
118
|
+
}
|
|
119
|
+
/** Test/shutdown helper: fire every pending debounce timer now and await all in-flight reindexes. */
|
|
120
|
+
async flush() {
|
|
121
|
+
for (const [path, timer] of [...this.timers]) {
|
|
122
|
+
clearTimeout(timer);
|
|
123
|
+
this.timers.delete(path);
|
|
124
|
+
this.track(this.runReindex(path));
|
|
125
|
+
}
|
|
126
|
+
await Promise.allSettled([...this.inFlight]);
|
|
127
|
+
}
|
|
128
|
+
/** Cancel every pending timer (does not touch in-flight reindexes). */
|
|
129
|
+
dispose() {
|
|
130
|
+
for (const timer of this.timers.values())
|
|
131
|
+
clearTimeout(timer);
|
|
132
|
+
this.timers.clear();
|
|
133
|
+
}
|
|
134
|
+
track(promise) {
|
|
135
|
+
this.inFlight.add(promise);
|
|
136
|
+
void promise.finally(() => this.inFlight.delete(promise));
|
|
137
|
+
}
|
|
138
|
+
async runReindex(absPath) {
|
|
139
|
+
// Live gates — respect a runtime toggle of the setting and never fabricate a
|
|
140
|
+
// one-file index when nothing was ever built.
|
|
141
|
+
if (this.deps.isEnabled && !this.deps.isEnabled())
|
|
142
|
+
return;
|
|
143
|
+
const stats = this.deps.target.stats();
|
|
144
|
+
if (!stats.available || stats.indexedChunks === 0)
|
|
145
|
+
return;
|
|
146
|
+
try {
|
|
147
|
+
const { indexed, mode } = await this.deps.target.reindexFile(absPath);
|
|
148
|
+
this.last = { path: absPath, at: this.now(), status: indexed ? 'indexed' : 'skipped', mode };
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
const error = summarizeError(err);
|
|
152
|
+
logger.warn('Code index incremental reindex failed', { path: absPath, error });
|
|
153
|
+
this.last = { path: absPath, at: this.now(), status: 'error', error };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-index-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/code-index-store.ts"],"names":[],"mappings":"AAAA,qFAAqF;
|
|
1
|
+
{"version":3,"file":"code-index-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/code-index-store.ts"],"names":[],"mappings":"AAAA,qFAAqF;AA6DrF,OAAO,EAEL,+BAA+B,EAEhC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAwClC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzE,mHAAmH;AACnH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2FAA2F;IAC3F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8GAA8G;IAC9G,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,wIAAwI;IACxI,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,oGAAoG;IACpG,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iJAAiJ;IACjJ,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,0IAA0I;IAC1I,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,iHAAiH;AACjH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sKAAsK;IACtK,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,mFAAmF;IACnF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,qHAAqH;IACrH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,+FAA+F;IAC/F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,wEAAwE;IACxE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClD;AAqCD,qBAAa,cAAc;IAyBvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAzB1B,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,wBAAwB,CAA8B;IAC9D;;;;;OAKG;IACH,OAAO,CAAC,KAAK,CAAK;IAElB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAGrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACG,iBAAiB,EAAE,+BAA+B,EAClD,OAAO,GAAE,gBAAqB;IASjD,IAAI,IAAI,IAAI;IAkBZ,KAAK,IAAI,IAAI;IAQb;;;;;;;OAOG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE,UAAU,IAAI,OAAO;IAIrB,aAAa,IAAI,sBAAsB,GAAG,IAAI;IAI9C,uEAAuE;IACvE,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B,2FAA2F;IAC3F,mBAAmB,IAAI,OAAO;IAI9B,qIAAqI;IACrI,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAMpC;;;;;OAKG;IACH,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAQpC,KAAK,IAAI,cAAc;IAuBvB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,iBAAiB,EAAE;IA8CzE;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA8BrB,iJAAiJ;IACjJ,aAAa,IAAI,IAAI;IAOrB,sIAAsI;IAChI,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAuB/C;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;YAmCxE,QAAQ;IAmItB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;;;;;;;OASG;YACW,gBAAgB;YAgDhB,uBAAuB;YASvB,eAAe;CAQ9B"}
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
*/
|
|
55
55
|
import { dirname, join, relative, sep } from 'node:path';
|
|
56
56
|
import { mkdirSync, statSync } from 'node:fs';
|
|
57
|
-
import {
|
|
57
|
+
import { createRequire } from 'node:module';
|
|
58
58
|
import { loadSqliteVecExtension } from './sqlite-vec-loader.js';
|
|
59
59
|
import { HASHED_MEMORY_EMBEDDING_PROVIDER, MemoryEmbeddingProviderRegistry, normalizeMemoryEmbeddingVector, } from './memory-embeddings.js';
|
|
60
60
|
import { MEMORY_VECTOR_DIMS } from './memory-vector-store.js';
|
|
@@ -64,6 +64,14 @@ import { CHUNK_ROW_COLUMNS, EMBEDDING_PROVIDER_META_KEY, createCodeIndexSchema,
|
|
|
64
64
|
import { buildGitignoreMatcher, collectGlobFiles, createFindDiagnostics, findNestedGitignoreFiles, isBinary, readTextFile, } from '../tools/find/shared.js';
|
|
65
65
|
import { logger } from '../utils/logger.js';
|
|
66
66
|
import { summarizeError } from '../utils/error-display.js';
|
|
67
|
+
// bun:sqlite is a Bun-only builtin; a static import makes this module unloadable
|
|
68
|
+
// under Node (breaks the release install-smoke check). Lazily require the ctor so
|
|
69
|
+
// the `bun:` specifier stays off the static graph — only pulled on the Bun-only
|
|
70
|
+
// path that opens a database.
|
|
71
|
+
let bunDatabaseCtor = null;
|
|
72
|
+
function bunSqliteDatabase() {
|
|
73
|
+
return (bunDatabaseCtor ??= createRequire(import.meta.url)('bun:sqlite').Database);
|
|
74
|
+
}
|
|
67
75
|
const DEFAULT_MAX_FILES = 5000;
|
|
68
76
|
const DEFAULT_MAX_FILE_BYTES = 512 * 1024;
|
|
69
77
|
const DEFAULT_MAX_TOTAL_BYTES = 256 * 1024 * 1024;
|
|
@@ -122,7 +130,7 @@ export class CodeIndexStore {
|
|
|
122
130
|
if (this.dbPath !== ':memory:') {
|
|
123
131
|
mkdirSync(dirname(this.dbPath), { recursive: true });
|
|
124
132
|
}
|
|
125
|
-
this.db = new
|
|
133
|
+
this.db = new (bunSqliteDatabase())(this.dbPath);
|
|
126
134
|
loadSqliteVecExtension(this.db);
|
|
127
135
|
this.available = true;
|
|
128
136
|
createCodeIndexSchema(this.db);
|
|
@@ -19,6 +19,12 @@ export { MemoryStore } from './memory-store.js';
|
|
|
19
19
|
export { MemoryRegistry } from './memory-registry.js';
|
|
20
20
|
export type { MemoryBundle, MemoryClass, MemoryRecord, MemoryLink, MemoryAddOptions, MemorySearchFilter, MemorySemanticSearchResult, MemoryStoreOptions, MemoryDoctorReport, MemoryScope, MemoryReviewState, ProvenanceLink, ProvenanceLinkKind, } from './memory-store.js';
|
|
21
21
|
export { buildIncidentMemoryAddOptions, buildMcpSecurityMemoryAddOptions, buildPluginSecurityMemoryAddOptions, buildPolicyPreflightMemoryAddOptions, } from './memory-ingest.js';
|
|
22
|
+
export { resolveCanonicalMemoryDbPath, foldMemoryStores, formatMemoryFoldReport, } from './canonical-memory.js';
|
|
23
|
+
export type { LegacyMemorySource, MemoryFoldSourceReport, MemoryFoldReport, FoldMemoryStoresOptions, } from './canonical-memory.js';
|
|
24
|
+
export { MIN_PROMPT_MEMORY_CONFIDENCE, describeMemoryPromptEligibility, isPromptActiveMemory, describeMemoryIndexUnavailable, describeMemoryIndexCaveat, } from './memory-recall-contract.js';
|
|
25
|
+
export type { MemoryPromptEligibility } from './memory-recall-contract.js';
|
|
26
|
+
export { VIBE_PERSONA_TAG, VIBE_PROJECTION_HEADING, VIBE_PROJECTION_CAVEAT, selectVibeRecords, renderVibeProjection, vibeBodyToConstraintOptions, } from './vibe-projection.js';
|
|
27
|
+
export type { VibeProjectionOptions, VibeImportOptions } from './vibe-projection.js';
|
|
22
28
|
export { MEMORY_VECTOR_DIMS, embedMemoryText, resolveMemoryVectorDbPath, SqliteVecMemoryIndex, } from './memory-vector-store.js';
|
|
23
29
|
export type { MemoryVectorCandidate, MemoryVectorStats } from './memory-vector-store.js';
|
|
24
30
|
export { DEFAULT_MEMORY_EMBEDDING_DIMS, HASHED_MEMORY_EMBEDDING_PROVIDER, MemoryEmbeddingProviderRegistry, normalizeMemoryEmbeddingVector, } from './memory-embeddings.js';
|
|
@@ -28,4 +34,6 @@ export type { KnowledgeInjection, ScoredKnowledgeInjection } from './knowledge-i
|
|
|
28
34
|
export { selectKnowledgeForTask, selectKnowledgeForTaskScored, buildKnowledgeInjectionPrompt } from './knowledge-injection.js';
|
|
29
35
|
export { CodeIndexStore } from './code-index-store.js';
|
|
30
36
|
export type { CodeChunk, CodeChunkMode, CodeContextResult, CodeIndexBuildProgress, CodeIndexBuildStats, CodeIndexOptions, CodeIndexSkipReport, CodeIndexStats, } from './code-index-store.js';
|
|
37
|
+
export { CodeIndexReindexScheduler, extractReindexPaths, DEFAULT_REINDEX_DEBOUNCE_MS, } from './code-index-reindex.js';
|
|
38
|
+
export type { CodeIndexReindexActivity, CodeIndexReindexTarget, CodeIndexReindexSchedulerDeps, } from './code-index-reindex.js';
|
|
31
39
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/state/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,EAChC,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,EAChC,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AACnF,YAAY,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAC/H,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EACV,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,GACf,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/state/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,12 @@ export { FileUndoManager } from './file-undo.js';
|
|
|
12
12
|
export { MemoryStore } from './memory-store.js';
|
|
13
13
|
export { MemoryRegistry } from './memory-registry.js';
|
|
14
14
|
export { buildIncidentMemoryAddOptions, buildMcpSecurityMemoryAddOptions, buildPluginSecurityMemoryAddOptions, buildPolicyPreflightMemoryAddOptions, } from './memory-ingest.js';
|
|
15
|
+
export { resolveCanonicalMemoryDbPath, foldMemoryStores, formatMemoryFoldReport, } from './canonical-memory.js';
|
|
16
|
+
export { MIN_PROMPT_MEMORY_CONFIDENCE, describeMemoryPromptEligibility, isPromptActiveMemory, describeMemoryIndexUnavailable, describeMemoryIndexCaveat, } from './memory-recall-contract.js';
|
|
17
|
+
export { VIBE_PERSONA_TAG, VIBE_PROJECTION_HEADING, VIBE_PROJECTION_CAVEAT, selectVibeRecords, renderVibeProjection, vibeBodyToConstraintOptions, } from './vibe-projection.js';
|
|
15
18
|
export { MEMORY_VECTOR_DIMS, embedMemoryText, resolveMemoryVectorDbPath, SqliteVecMemoryIndex, } from './memory-vector-store.js';
|
|
16
19
|
export { DEFAULT_MEMORY_EMBEDDING_DIMS, HASHED_MEMORY_EMBEDDING_PROVIDER, MemoryEmbeddingProviderRegistry, normalizeMemoryEmbeddingVector, } from './memory-embeddings.js';
|
|
17
20
|
export { createBuiltinMemoryEmbeddingProviders } from './memory-embedding-http.js';
|
|
18
21
|
export { selectKnowledgeForTask, selectKnowledgeForTaskScored, buildKnowledgeInjectionPrompt } from './knowledge-injection.js';
|
|
19
22
|
export { CodeIndexStore } from './code-index-store.js';
|
|
23
|
+
export { CodeIndexReindexScheduler, extractReindexPaths, DEFAULT_REINDEX_DEBOUNCE_MS, } from './code-index-reindex.js';
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memory-recall-contract.ts — the CROSS-SURFACE recall-honesty contract (Wave-6 E6).
|
|
3
|
+
*
|
|
4
|
+
* PROVENANCE. This is the agent's Wave-4 W4-A1 memory-honesty discipline, promoted
|
|
5
|
+
* verbatim from a single surface (the agent's memory-prompt.ts) into the SDK so it
|
|
6
|
+
* is ONE shared contract, not a discipline re-derived (and re-weakened) per surface.
|
|
7
|
+
* Under E6 the store is unified and cross-surface, which multiplies the cost of a
|
|
8
|
+
* dishonest recall — so this discipline becomes MORE load-bearing, not less. A
|
|
9
|
+
* unified store must not be able to lie more loudly than the siloed one did.
|
|
10
|
+
*
|
|
11
|
+
* The contract is three rules:
|
|
12
|
+
* 1. INJECTION FLOOR = the store's own declared baseline trust (60), never higher.
|
|
13
|
+
* MemoryStore.add() stamps every new record at confidence 60 unless the caller
|
|
14
|
+
* says otherwise. A floor above 60 would starve every honestly-stored fact — a
|
|
15
|
+
* freshly-learned fact could never clear recall on its own. The floor trusts a
|
|
16
|
+
* record exactly as much as the store already vouches for it; anything stored
|
|
17
|
+
* BELOW 60 (explicitly marked less certain) still does not qualify.
|
|
18
|
+
* 2. FLAGGED RECORDS ARE NEVER INJECTED. stale/contradicted records are excluded
|
|
19
|
+
* outright, regardless of confidence — the surface already knows they are wrong
|
|
20
|
+
* or superseded, so no confidence number buys them back into a prompt.
|
|
21
|
+
* 3. DEGRADED STATES ARE HONEST, NOT SILENT. an unavailable semantic index yields
|
|
22
|
+
* a STATED reason and a literal fallback — never a silent empty result that
|
|
23
|
+
* reads as "nothing was ever stored." 'no match' and 'index unavailable' are
|
|
24
|
+
* distinct and both said out loud.
|
|
25
|
+
*/
|
|
26
|
+
import type { MemoryRecord } from './memory-store.js';
|
|
27
|
+
import type { MemoryVectorStats } from './memory-vector-store.js';
|
|
28
|
+
/**
|
|
29
|
+
* Recall-prompt confidence floor. Tied to the store's own baseline: MemoryStore.add
|
|
30
|
+
* stamps new records at confidence 60. This is NOT a number chosen to make things
|
|
31
|
+
* pass — it is the store's own definition of "a real, usable fact."
|
|
32
|
+
*/
|
|
33
|
+
export declare const MIN_PROMPT_MEMORY_CONFIDENCE = 60;
|
|
34
|
+
export interface MemoryPromptEligibility {
|
|
35
|
+
readonly eligible: boolean;
|
|
36
|
+
/** Why this record did or did not clear the recall floor — confidence, review state, and provenance, never silent. */
|
|
37
|
+
readonly reason: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Recall-eligibility decision for one record, with an honest human-readable reason
|
|
41
|
+
* attached (never a silent yes/no). This is the receipt every surface surfaces.
|
|
42
|
+
*
|
|
43
|
+
* Flagged records (stale/contradicted) are excluded outright regardless of
|
|
44
|
+
* confidence. Everything else is judged on its own stored confidence against
|
|
45
|
+
* MIN_PROMPT_MEMORY_CONFIDENCE — the store's own baseline. Nothing is blanket-boosted.
|
|
46
|
+
*/
|
|
47
|
+
export declare function describeMemoryPromptEligibility(record: MemoryRecord): MemoryPromptEligibility;
|
|
48
|
+
export declare function isPromptActiveMemory(record: MemoryRecord): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* A HARD unavailable reason: the semantic index cannot be consulted at all, so a
|
|
51
|
+
* search must fall back to a literal scan and SAY SO — never a silent empty result
|
|
52
|
+
* that reads as "no memory matches" when the index was never asked. Returns null
|
|
53
|
+
* when the index is available and can be consulted.
|
|
54
|
+
*/
|
|
55
|
+
export declare function describeMemoryIndexUnavailable(stats: MemoryVectorStats): string | null;
|
|
56
|
+
/**
|
|
57
|
+
* A SOFT caveat: the index is up and consulted, but running on the built-in
|
|
58
|
+
* hashed-only fallback embedding provider rather than a modeled semantic provider.
|
|
59
|
+
* Still ranks real matches better than a literal scan, but say so rather than
|
|
60
|
+
* presenting it as equivalent. Returns null when a real provider is configured.
|
|
61
|
+
*/
|
|
62
|
+
export declare function describeMemoryIndexCaveat(stats: MemoryVectorStats): string | null;
|
|
63
|
+
//# sourceMappingURL=memory-recall-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-recall-contract.d.ts","sourceRoot":"","sources":["../../../src/platform/state/memory-recall-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,sHAAsH;IACtH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAOD;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,YAAY,GAAG,uBAAuB,CAkB7F;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAElE;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAKtF;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAKjF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memory-recall-contract.ts — the CROSS-SURFACE recall-honesty contract (Wave-6 E6).
|
|
3
|
+
*
|
|
4
|
+
* PROVENANCE. This is the agent's Wave-4 W4-A1 memory-honesty discipline, promoted
|
|
5
|
+
* verbatim from a single surface (the agent's memory-prompt.ts) into the SDK so it
|
|
6
|
+
* is ONE shared contract, not a discipline re-derived (and re-weakened) per surface.
|
|
7
|
+
* Under E6 the store is unified and cross-surface, which multiplies the cost of a
|
|
8
|
+
* dishonest recall — so this discipline becomes MORE load-bearing, not less. A
|
|
9
|
+
* unified store must not be able to lie more loudly than the siloed one did.
|
|
10
|
+
*
|
|
11
|
+
* The contract is three rules:
|
|
12
|
+
* 1. INJECTION FLOOR = the store's own declared baseline trust (60), never higher.
|
|
13
|
+
* MemoryStore.add() stamps every new record at confidence 60 unless the caller
|
|
14
|
+
* says otherwise. A floor above 60 would starve every honestly-stored fact — a
|
|
15
|
+
* freshly-learned fact could never clear recall on its own. The floor trusts a
|
|
16
|
+
* record exactly as much as the store already vouches for it; anything stored
|
|
17
|
+
* BELOW 60 (explicitly marked less certain) still does not qualify.
|
|
18
|
+
* 2. FLAGGED RECORDS ARE NEVER INJECTED. stale/contradicted records are excluded
|
|
19
|
+
* outright, regardless of confidence — the surface already knows they are wrong
|
|
20
|
+
* or superseded, so no confidence number buys them back into a prompt.
|
|
21
|
+
* 3. DEGRADED STATES ARE HONEST, NOT SILENT. an unavailable semantic index yields
|
|
22
|
+
* a STATED reason and a literal fallback — never a silent empty result that
|
|
23
|
+
* reads as "nothing was ever stored." 'no match' and 'index unavailable' are
|
|
24
|
+
* distinct and both said out loud.
|
|
25
|
+
*/
|
|
26
|
+
import { HASHED_MEMORY_EMBEDDING_PROVIDER } from './memory-embeddings.js';
|
|
27
|
+
/**
|
|
28
|
+
* Recall-prompt confidence floor. Tied to the store's own baseline: MemoryStore.add
|
|
29
|
+
* stamps new records at confidence 60. This is NOT a number chosen to make things
|
|
30
|
+
* pass — it is the store's own definition of "a real, usable fact."
|
|
31
|
+
*/
|
|
32
|
+
export const MIN_PROMPT_MEMORY_CONFIDENCE = 60;
|
|
33
|
+
function provenanceSummary(record) {
|
|
34
|
+
if (record.provenance.length === 0)
|
|
35
|
+
return 'no provenance recorded';
|
|
36
|
+
return `provenance ${record.provenance.slice(0, 2).map((entry) => `${entry.kind}:${entry.ref}`).join(', ')}`;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Recall-eligibility decision for one record, with an honest human-readable reason
|
|
40
|
+
* attached (never a silent yes/no). This is the receipt every surface surfaces.
|
|
41
|
+
*
|
|
42
|
+
* Flagged records (stale/contradicted) are excluded outright regardless of
|
|
43
|
+
* confidence. Everything else is judged on its own stored confidence against
|
|
44
|
+
* MIN_PROMPT_MEMORY_CONFIDENCE — the store's own baseline. Nothing is blanket-boosted.
|
|
45
|
+
*/
|
|
46
|
+
export function describeMemoryPromptEligibility(record) {
|
|
47
|
+
const provenance = provenanceSummary(record);
|
|
48
|
+
if (record.reviewState === 'stale' || record.reviewState === 'contradicted') {
|
|
49
|
+
return {
|
|
50
|
+
eligible: false,
|
|
51
|
+
reason: `reviewState is ${record.reviewState} — flagged memory is never injected regardless of confidence (${provenance})`,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (record.confidence < MIN_PROMPT_MEMORY_CONFIDENCE) {
|
|
55
|
+
return {
|
|
56
|
+
eligible: false,
|
|
57
|
+
reason: `confidence ${record.confidence}% is below the ${MIN_PROMPT_MEMORY_CONFIDENCE}% recall floor (${provenance})`,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
eligible: true,
|
|
62
|
+
reason: `confidence ${record.confidence}% clears the ${MIN_PROMPT_MEMORY_CONFIDENCE}% recall floor, reviewState ${record.reviewState} (${provenance})`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export function isPromptActiveMemory(record) {
|
|
66
|
+
return describeMemoryPromptEligibility(record).eligible;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* A HARD unavailable reason: the semantic index cannot be consulted at all, so a
|
|
70
|
+
* search must fall back to a literal scan and SAY SO — never a silent empty result
|
|
71
|
+
* that reads as "no memory matches" when the index was never asked. Returns null
|
|
72
|
+
* when the index is available and can be consulted.
|
|
73
|
+
*/
|
|
74
|
+
export function describeMemoryIndexUnavailable(stats) {
|
|
75
|
+
if (!stats.enabled)
|
|
76
|
+
return 'the semantic memory index is disabled for this store';
|
|
77
|
+
if (!stats.available)
|
|
78
|
+
return `the semantic memory index is unavailable${stats.error ? `: ${stats.error}` : ''}`;
|
|
79
|
+
if (stats.indexedRecords === 0)
|
|
80
|
+
return 'the semantic memory index has no indexed records yet';
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* A SOFT caveat: the index is up and consulted, but running on the built-in
|
|
85
|
+
* hashed-only fallback embedding provider rather than a modeled semantic provider.
|
|
86
|
+
* Still ranks real matches better than a literal scan, but say so rather than
|
|
87
|
+
* presenting it as equivalent. Returns null when a real provider is configured.
|
|
88
|
+
*/
|
|
89
|
+
export function describeMemoryIndexCaveat(stats) {
|
|
90
|
+
if (stats.embeddingProviderId === HASHED_MEMORY_EMBEDDING_PROVIDER.id) {
|
|
91
|
+
return 'running on the hashed-only fallback embedding provider (no dedicated semantic model configured) — ranking is approximate, not modeled semantic understanding';
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
@@ -141,6 +141,8 @@ export declare class MemoryStore {
|
|
|
141
141
|
constructor(dbPath: string | undefined, options: MemoryStoreOptions);
|
|
142
142
|
init(): Promise<void>;
|
|
143
143
|
get isReady(): boolean;
|
|
144
|
+
/** The on-disk database path backing this store, or null when ephemeral. */
|
|
145
|
+
get dbPath(): string | null;
|
|
144
146
|
/** Add a new memory record. Returns the created record. */
|
|
145
147
|
add(opts: MemoryAddOptions): Promise<MemoryRecord>;
|
|
146
148
|
/** Retrieve a single record by ID. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/memory-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/memory-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,+BAA+B,EAC/B,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAkBhC,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,YAAY,GACZ,UAAU,GACV,SAAS,GACT,MAAM,GACN,MAAM,GACN,SAAS,GACT,cAAc,GACd,WAAW,CAAC;AAEhB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;AAEhF,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,4FAA4F;IAC5F,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,KAAK,EAAE,WAAW,CAAC;IACnB,sEAAsE;IACtE,GAAG,EAAE,WAAW,CAAC;IACjB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,oCAAoC;IACpC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,mDAAmD;IACnD,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,oCAAoC;IACpC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,0FAA0F;IAC1F,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,GAAG,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAClE,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,sEAAsE;IACtE,eAAe,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACnD,mDAAmD;IACnD,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAC1C,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;QACtC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,+BAA+B,CAAC;IACnD,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,yBAAyB,CAA2C;IAC5E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;gBAExD,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,kBAAkB;IAY7D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,4EAA4E;IAC5E,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAE1B;IAED,2DAA2D;IACrD,GAAG,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAmDxD,sCAAsC;IACtC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAapC,8CAA8C;IAC9C,MAAM,CAAC,MAAM,GAAE,kBAAuB,GAAG,YAAY,EAAE;IAkFvD,cAAc,CAAC,MAAM,GAAE,kBAAuB,GAAG,0BAA0B,EAAE;IA8C7E,WAAW,CAAC,KAAK,SAAK,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE;IAQ5D,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,YAAY;IA2BrD,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoDrE,kDAAkD;IAC5C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAkCtF,kEAAkE;IAClE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE;IAwBlC,mDAAmD;IACnD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,YAAY,GAAG,IAAI;IA6B3H,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI;IAwCjE,yCAAyC;IACzC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAgB3B,kBAAkB,IAAI,iBAAiB;IAYjC,uBAAuB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAyB3D,WAAW,IAAI,iBAAiB;IAc1B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAQrC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,KAAK,IAAI,IAAI;IAMb;;;;;;;;;OASG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9C,OAAO,CAAC,OAAO;CAKhB"}
|
|
@@ -41,6 +41,10 @@ export class MemoryStore {
|
|
|
41
41
|
get isReady() {
|
|
42
42
|
return this.ready;
|
|
43
43
|
}
|
|
44
|
+
/** The on-disk database path backing this store, or null when ephemeral. */
|
|
45
|
+
get dbPath() {
|
|
46
|
+
return this.sqlite.databasePath;
|
|
47
|
+
}
|
|
44
48
|
/** Add a new memory record. Returns the created record. */
|
|
45
49
|
async add(opts) {
|
|
46
50
|
if (!this.ready)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-vector-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/memory-vector-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory-vector-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/memory-vector-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
2
|
import { dirname } from 'node:path';
|
|
3
3
|
import { mkdirSync } from 'node:fs';
|
|
4
|
-
import {
|
|
4
|
+
import { createRequire } from 'node:module';
|
|
5
5
|
import { MemoryEmbeddingProviderRegistry, embedMemoryText, normalizeMemoryEmbeddingVector, } from './memory-embeddings.js';
|
|
6
6
|
import { loadSqliteVecExtension } from './sqlite-vec-loader.js';
|
|
7
7
|
import { logger } from '../utils/logger.js';
|
|
@@ -10,6 +10,17 @@ import { summarizeError } from '../utils/error-display.js';
|
|
|
10
10
|
// the exact same native extension the exact same way. Re-exported here so
|
|
11
11
|
// existing callers that import resolveSqliteVecPath from this module keep working.
|
|
12
12
|
export { resolveSqliteVecPath } from './sqlite-vec-loader.js';
|
|
13
|
+
// bun:sqlite is a Bun-only builtin; a static import makes this module unloadable
|
|
14
|
+
// under any non-Bun runtime (Node's ESM linker rejects the `bun:` scheme at link
|
|
15
|
+
// time, breaking the release install-smoke check and any Node import of the
|
|
16
|
+
// surfaces that transitively reach this module). Resolve the Database constructor
|
|
17
|
+
// lazily via require so the `bun:` specifier stays off the static import graph —
|
|
18
|
+
// it is only pulled on the Bun-only code path that opens a database. Real Bun
|
|
19
|
+
// behavior is unchanged.
|
|
20
|
+
let bunDatabaseCtor = null;
|
|
21
|
+
function bunSqliteDatabase() {
|
|
22
|
+
return (bunDatabaseCtor ??= createRequire(import.meta.url)('bun:sqlite').Database);
|
|
23
|
+
}
|
|
13
24
|
// Keep this in sync with DEFAULT_MEMORY_EMBEDDING_DIMS in memory-embeddings.ts.
|
|
14
25
|
// Duplicating the literal here avoids an initialization cycle when state/index.ts
|
|
15
26
|
// re-exports both modules during targeted test imports.
|
|
@@ -71,7 +82,7 @@ export class SqliteVecMemoryIndex {
|
|
|
71
82
|
if (this.dbPath !== ':memory:') {
|
|
72
83
|
mkdirSync(dirname(this.dbPath), { recursive: true });
|
|
73
84
|
}
|
|
74
|
-
this.db = new
|
|
85
|
+
this.db = new (bunSqliteDatabase())(this.dbPath);
|
|
75
86
|
loadSqliteVecExtension(this.db);
|
|
76
87
|
this.available = true;
|
|
77
88
|
this.enabled = true;
|
|
@@ -15,6 +15,8 @@ export declare class SQLiteStore {
|
|
|
15
15
|
private saveDirty;
|
|
16
16
|
constructor(dbPath?: string);
|
|
17
17
|
get isReady(): boolean;
|
|
18
|
+
/** The on-disk database path, or null for an ephemeral/in-memory store. */
|
|
19
|
+
get databasePath(): string | null;
|
|
18
20
|
init(schema: (db: SqlDatabase) => void): Promise<void>;
|
|
19
21
|
run(sql: string, params?: (string | number | Uint8Array | null)[]): void;
|
|
20
22
|
exec(sql: string, params?: (string | number)[]): Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/sqlite-store.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACzE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IACnG,MAAM,IAAI,UAAU,CAAC;IACrB,KAAK,IAAI,IAAI,CAAC;CACf;AAYD,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,CAAC,EAAE,MAAM;IAI3B,IAAI,OAAO,IAAI,OAAO,CAErB;IAEK,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI;IAIxE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAA;KAAE,CAAC;IAI5F,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAajD,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAsB9B,KAAK,IAAI,IAAI;YAMC,UAAU;IAwBxB,OAAO,CAAC,KAAK;CAMd"}
|
|
1
|
+
{"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/sqlite-store.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACzE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IACnG,MAAM,IAAI,UAAU,CAAC;IACrB,KAAK,IAAI,IAAI,CAAC;CACf;AAYD,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,CAAC,EAAE,MAAM;IAI3B,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,2EAA2E;IAC3E,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAEhC;IAEK,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI;IAIxE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAA;KAAE,CAAC;IAI5F,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAajD,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAsB9B,KAAK,IAAI,IAAI;YAMC,UAAU;IAwBxB,OAAO,CAAC,KAAK;CAMd"}
|
|
@@ -21,6 +21,10 @@ export class SQLiteStore {
|
|
|
21
21
|
get isReady() {
|
|
22
22
|
return this.db !== null;
|
|
23
23
|
}
|
|
24
|
+
/** The on-disk database path, or null for an ephemeral/in-memory store. */
|
|
25
|
+
get databasePath() {
|
|
26
|
+
return this.dbPath;
|
|
27
|
+
}
|
|
24
28
|
async init(schema) {
|
|
25
29
|
if (this.db)
|
|
26
30
|
return;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vibe-projection.ts — VIBE.md as a PROJECTION of memory records (Wave-6 E6).
|
|
3
|
+
*
|
|
4
|
+
* BEFORE E6, VIBE.md was a persona file read off disk and injected into the prompt
|
|
5
|
+
* — a projection of ITSELF, a source of truth disjoint from the memory store. E6
|
|
6
|
+
* demotes the file to an import/export FORMAT and makes the prompt block a
|
|
7
|
+
* projection of first-class memory records:
|
|
8
|
+
*
|
|
9
|
+
* - Persona/preference facts persist as MemoryRecords with cls 'constraint',
|
|
10
|
+
* scope project|team, tagged VIBE_PERSONA_TAG.
|
|
11
|
+
* - renderVibeProjection(records) emits the same '## GoodVibes Agent VIBE.md'
|
|
12
|
+
* prompt block from those records — the block the file used to emit.
|
|
13
|
+
* - The file round-trips THROUGH the record set (vibeBodyToConstraintOptions
|
|
14
|
+
* imports a VIBE.md body into records; the records export back through the
|
|
15
|
+
* normal MemoryStore bundle seam). The file is a format, not the truth.
|
|
16
|
+
*
|
|
17
|
+
* INVARIANT PRESERVED. The projected block keeps the precedence caveat verbatim:
|
|
18
|
+
* persona instructions are followed only when they do not conflict with explicit
|
|
19
|
+
* user instructions, safety policy, tool contracts, confirmation requirements, or
|
|
20
|
+
* secret-handling rules. Demoting the file to a projection must not drop that.
|
|
21
|
+
*/
|
|
22
|
+
import type { MemoryAddOptions, MemoryRecord, MemoryScope } from './memory-store.js';
|
|
23
|
+
/** Tag marking a constraint record as a VIBE.md persona/preference line. */
|
|
24
|
+
export declare const VIBE_PERSONA_TAG = "vibe";
|
|
25
|
+
/** The projected prompt block heading. */
|
|
26
|
+
export declare const VIBE_PROJECTION_HEADING = "## GoodVibes Agent VIBE.md";
|
|
27
|
+
/**
|
|
28
|
+
* The precedence caveat. MUST accompany every projected block — persona records
|
|
29
|
+
* never override explicit instructions, safety, tool contracts, confirmations, or
|
|
30
|
+
* secret-handling.
|
|
31
|
+
*/
|
|
32
|
+
export declare const VIBE_PROJECTION_CAVEAT = "These user-authored vibe/personality instructions shape the same serial assistant conversation. Follow them only when they do not conflict with explicit user instructions, safety policy, tool contracts, confirmation requirements, or secret-handling rules.";
|
|
33
|
+
export interface VibeProjectionOptions {
|
|
34
|
+
/** Restrict to these scopes; defaults to project + team. */
|
|
35
|
+
readonly scopes?: readonly MemoryScope[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Select the constraint records that make up the VIBE persona: cls 'constraint',
|
|
39
|
+
* tagged VIBE_PERSONA_TAG, in an eligible scope. Ordered stably by scope (team
|
|
40
|
+
* after project) then creation time so the projected block is deterministic.
|
|
41
|
+
*/
|
|
42
|
+
export declare function selectVibeRecords(records: readonly MemoryRecord[], options?: VibeProjectionOptions): MemoryRecord[];
|
|
43
|
+
/**
|
|
44
|
+
* Render the VIBE.md prompt block from persona/constraint records. Returns null
|
|
45
|
+
* when there are no persona records to project (no empty block). The caveat is
|
|
46
|
+
* always included when a block is produced.
|
|
47
|
+
*/
|
|
48
|
+
export declare function renderVibeProjection(records: readonly MemoryRecord[], options?: VibeProjectionOptions): string | null;
|
|
49
|
+
export interface VibeImportOptions {
|
|
50
|
+
/** Scope to stamp on the imported persona records. Defaults to 'project'. */
|
|
51
|
+
readonly scope?: MemoryScope;
|
|
52
|
+
/** Optional persona name, added as a secondary tag for grouping. */
|
|
53
|
+
readonly name?: string;
|
|
54
|
+
/** Provenance ref describing where this VIBE body came from (e.g. the file path). */
|
|
55
|
+
readonly sourceRef?: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Turn a VIBE.md body into constraint MemoryAddOptions — the file demoted to an
|
|
59
|
+
* IMPORT FORMAT. Each bullet line becomes one persona record so that editing a
|
|
60
|
+
* single record later changes exactly one line of the projected block. A body
|
|
61
|
+
* with no bullets becomes a single record carrying the whole body as detail.
|
|
62
|
+
*
|
|
63
|
+
* Heading lines (starting with '#') and blank lines are dropped; they carry no
|
|
64
|
+
* persona instruction.
|
|
65
|
+
*/
|
|
66
|
+
export declare function vibeBodyToConstraintOptions(body: string, options?: VibeImportOptions): MemoryAddOptions[];
|
|
67
|
+
//# sourceMappingURL=vibe-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibe-projection.d.ts","sourceRoot":"","sources":["../../../src/platform/state/vibe-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErF,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC,0CAA0C;AAC1C,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,oQACgO,CAAC;AAKpQ,MAAM,WAAW,qBAAqB;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,OAAO,GAAE,qBAA0B,GAClC,YAAY,EAAE,CAUhB;AAOD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,OAAO,GAAE,qBAA0B,GAClC,MAAM,GAAG,IAAI,CASf;AAED,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB,EAAE,CAoCpB"}
|