hippo-memory 1.60.0 → 1.61.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/README.md +1 -1
- package/dist/ablation.js +9 -27
- package/dist/agent-memories/apply.js +4 -1
- package/dist/agent-memories/claude-code.js +1 -1
- package/dist/agent-memories/codex.js +1 -1
- package/dist/agent-memories/gemini.js +1 -1
- package/dist/agent-memories/legacy.js +1 -1
- package/dist/agent-memories/source.js +1 -1
- package/dist/agent-memories/sync.js +8 -3
- package/dist/ambient-store.d.ts +14 -0
- package/dist/ambient-store.js +90 -0
- package/dist/ambient.d.ts +23 -0
- package/dist/ambient.js +72 -50
- package/dist/api/assemble.d.ts +93 -0
- package/dist/api/assemble.js +152 -0
- package/dist/api/audit.d.ts +17 -0
- package/dist/api/audit.js +23 -0
- package/dist/api/auth.d.ts +79 -0
- package/dist/api/auth.js +178 -0
- package/dist/api/context-types.d.ts +105 -0
- package/dist/api/context-types.js +3 -0
- package/dist/api/context.d.ts +31 -0
- package/dist/api/context.js +705 -0
- package/dist/api/dormant.d.ts +30 -0
- package/dist/api/dormant.js +140 -0
- package/dist/api/drill-down.d.ts +84 -0
- package/dist/api/drill-down.js +123 -0
- package/dist/api/forget.d.ts +57 -0
- package/dist/api/forget.js +87 -0
- package/dist/api/goals.d.ts +18 -0
- package/dist/api/goals.js +33 -0
- package/dist/api/learn.d.ts +31 -0
- package/dist/api/learn.js +88 -0
- package/dist/api/outcome.d.ts +61 -0
- package/dist/api/outcome.js +66 -0
- package/dist/api/promote.d.ts +54 -0
- package/dist/api/promote.js +203 -0
- package/dist/api/quarantine.d.ts +24 -0
- package/dist/api/quarantine.js +121 -0
- package/dist/api/recall-types.d.ts +390 -0
- package/dist/api/recall-types.js +3 -0
- package/dist/api/recall.d.ts +36 -0
- package/dist/api/recall.js +634 -0
- package/dist/api/remember.d.ts +35 -0
- package/dist/api/remember.js +43 -0
- package/dist/api/sleep.d.ts +136 -0
- package/dist/api/sleep.js +271 -0
- package/dist/api/tokens.d.ts +26 -0
- package/dist/api/tokens.js +60 -0
- package/dist/api/types.d.ts +56 -0
- package/dist/api/types.js +38 -0
- package/dist/api.d.ts +20 -1262
- package/dist/api.js +25 -2727
- package/dist/audit.d.ts +3 -0
- package/dist/audit.js +6 -3
- package/dist/auth.d.ts +45 -4
- package/dist/auth.js +125 -48
- package/dist/autolearn.js +2 -2
- package/dist/capture/command.d.ts +33 -0
- package/dist/capture/command.js +264 -0
- package/dist/capture/compact.d.ts +44 -0
- package/dist/capture/compact.js +354 -0
- package/dist/capture/extract.d.ts +21 -0
- package/dist/capture/extract.js +464 -0
- package/dist/capture/transcript.d.ts +40 -0
- package/dist/capture/transcript.js +193 -0
- package/dist/capture-error.js +2 -1
- package/dist/churn-git.js +4 -2
- package/dist/cli/audit.d.ts +3 -0
- package/dist/cli/audit.js +159 -0
- package/dist/cli/auth.d.ts +2 -0
- package/dist/cli/auth.js +171 -0
- package/dist/cli/briefs.d.ts +4 -0
- package/dist/cli/briefs.js +435 -0
- package/dist/cli/card.d.ts +3 -0
- package/dist/cli/card.js +333 -0
- package/dist/cli/context.d.ts +15 -0
- package/dist/cli/context.js +366 -0
- package/dist/cli/continuity.d.ts +6 -0
- package/dist/cli/continuity.js +445 -0
- package/dist/cli/curate.d.ts +19 -0
- package/dist/cli/curate.js +555 -0
- package/dist/cli/dag.d.ts +5 -0
- package/dist/cli/dag.js +177 -0
- package/dist/cli/decisions.d.ts +4 -0
- package/dist/cli/decisions.js +528 -0
- package/dist/cli/eval.d.ts +5 -0
- package/dist/cli/eval.js +213 -0
- package/dist/cli/explain.d.ts +4 -0
- package/dist/cli/explain.js +150 -0
- package/dist/cli/goals.d.ts +2 -0
- package/dist/cli/goals.js +196 -0
- package/dist/cli/hook-blocks.d.ts +18 -0
- package/dist/cli/hook-blocks.js +233 -0
- package/dist/cli/init.d.ts +2 -0
- package/dist/cli/init.js +305 -0
- package/dist/cli/maintenance.d.ts +4 -0
- package/dist/cli/maintenance.js +179 -0
- package/dist/cli/playbooks.d.ts +4 -0
- package/dist/cli/playbooks.js +556 -0
- package/dist/cli/projects.js +1 -1
- package/dist/cli/recall.d.ts +7 -0
- package/dist/cli/recall.js +597 -0
- package/dist/cli/remember.d.ts +5 -0
- package/dist/cli/remember.js +442 -0
- package/dist/cli/serve.d.ts +5 -0
- package/dist/cli/serve.js +40 -0
- package/dist/cli/session-hooks.d.ts +29 -0
- package/dist/cli/session-hooks.js +637 -0
- package/dist/cli/setup.d.ts +4 -0
- package/dist/cli/setup.js +376 -0
- package/dist/cli/shared.d.ts +15 -19
- package/dist/cli/shared.js +50 -341
- package/dist/cli/slack.d.ts +2 -0
- package/dist/cli/slack.js +171 -0
- package/dist/cli/status.d.ts +18 -0
- package/dist/cli/status.js +400 -0
- package/dist/cli/transfer.d.ts +10 -0
- package/dist/cli/transfer.js +438 -0
- package/dist/cli/usage.d.ts +85 -0
- package/dist/cli/usage.js +741 -0
- package/dist/cli.d.ts +71 -120
- package/dist/cli.js +170 -8469
- package/dist/client.js +15 -8
- package/dist/compaction-record.js +6 -4
- package/dist/connectors/github/backfill.js +94 -87
- package/dist/connectors/github/cli-impl.js +4 -3
- package/dist/connectors/github/dlq.js +67 -54
- package/dist/connectors/github/ingest.js +34 -35
- package/dist/connectors/github/tenant-routing.js +3 -2
- package/dist/connectors/github/webhook.js +135 -216
- package/dist/connectors/slack/dlq.js +49 -61
- package/dist/connectors/slack/ingest.js +55 -48
- package/dist/connectors/slack/tenant-routing.js +4 -3
- package/dist/connectors/slack/webhook.js +72 -74
- package/dist/consolidate/conflicts.d.ts +10 -0
- package/dist/consolidate/conflicts.js +178 -0
- package/dist/consolidate/decay.d.ts +12 -0
- package/dist/consolidate/decay.js +145 -0
- package/dist/consolidate/llm-passes.d.ts +3 -0
- package/dist/consolidate/llm-passes.js +141 -0
- package/dist/consolidate/merge.d.ts +7 -0
- package/dist/consolidate/merge.js +251 -0
- package/dist/consolidate/physics-pass.d.ts +3 -0
- package/dist/consolidate/physics-pass.js +60 -0
- package/dist/consolidate/run.d.ts +69 -0
- package/dist/consolidate/run.js +76 -0
- package/dist/consolidate/sleep.d.ts +18 -0
- package/dist/consolidate/sleep.js +209 -0
- package/dist/consolidate/traces.d.ts +4 -0
- package/dist/consolidate/traces.js +178 -0
- package/dist/context-auto.js +7 -11
- package/dist/context-render.d.ts +1 -1
- package/dist/context-render.js +1 -1
- package/dist/customer-notes.d.ts +3 -0
- package/dist/customer-notes.js +6 -4
- package/dist/dag.js +6 -5
- package/dist/dashboard-actions.d.ts +20 -0
- package/dist/dashboard-actions.js +88 -0
- package/dist/dashboard-params.d.ts +45 -0
- package/dist/dashboard-params.js +127 -0
- package/dist/dashboard-queries.d.ts +15 -0
- package/dist/dashboard-queries.js +355 -0
- package/dist/dashboard-snapshot.d.ts +138 -0
- package/dist/dashboard-snapshot.js +308 -0
- package/dist/dashboard-types.d.ts +163 -0
- package/dist/dashboard-types.js +3 -0
- package/dist/dashboard.d.ts +6 -7
- package/dist/dashboard.js +228 -202
- package/dist/db/busy.d.ts +5 -0
- package/dist/db/busy.js +24 -0
- package/dist/db/continuity.d.ts +5 -0
- package/dist/db/continuity.js +145 -0
- package/dist/db/meta.d.ts +8 -0
- package/dist/db/meta.js +35 -0
- package/dist/db/migrate.d.ts +9 -0
- package/dist/db/migrate.js +138 -0
- package/dist/db/migrations/index.d.ts +5 -0
- package/dist/db/migrations/index.js +109 -0
- package/dist/db/migrations/types.d.ts +14 -0
- package/dist/db/migrations/types.js +2 -0
- package/dist/db/migrations/v01.d.ts +3 -0
- package/dist/db/migrations/v01.js +38 -0
- package/dist/db/migrations/v02.d.ts +3 -0
- package/dist/db/migrations/v02.js +21 -0
- package/dist/db/migrations/v03.d.ts +3 -0
- package/dist/db/migrations/v03.js +22 -0
- package/dist/db/migrations/v04.d.ts +3 -0
- package/dist/db/migrations/v04.js +28 -0
- package/dist/db/migrations/v05.d.ts +3 -0
- package/dist/db/migrations/v05.js +21 -0
- package/dist/db/migrations/v06.d.ts +3 -0
- package/dist/db/migrations/v06.js +25 -0
- package/dist/db/migrations/v07.d.ts +3 -0
- package/dist/db/migrations/v07.js +13 -0
- package/dist/db/migrations/v08.d.ts +3 -0
- package/dist/db/migrations/v08.js +8 -0
- package/dist/db/migrations/v09.d.ts +3 -0
- package/dist/db/migrations/v09.js +13 -0
- package/dist/db/migrations/v10.d.ts +3 -0
- package/dist/db/migrations/v10.js +17 -0
- package/dist/db/migrations/v11.d.ts +3 -0
- package/dist/db/migrations/v11.js +15 -0
- package/dist/db/migrations/v12.d.ts +3 -0
- package/dist/db/migrations/v12.js +11 -0
- package/dist/db/migrations/v13.d.ts +3 -0
- package/dist/db/migrations/v13.js +15 -0
- package/dist/db/migrations/v14.d.ts +3 -0
- package/dist/db/migrations/v14.js +66 -0
- package/dist/db/migrations/v15.d.ts +3 -0
- package/dist/db/migrations/v15.js +42 -0
- package/dist/db/migrations/v16.d.ts +3 -0
- package/dist/db/migrations/v16.js +61 -0
- package/dist/db/migrations/v17.d.ts +3 -0
- package/dist/db/migrations/v17.js +46 -0
- package/dist/db/migrations/v18.d.ts +3 -0
- package/dist/db/migrations/v18.js +60 -0
- package/dist/db/migrations/v19.d.ts +3 -0
- package/dist/db/migrations/v19.js +28 -0
- package/dist/db/migrations/v20.d.ts +3 -0
- package/dist/db/migrations/v20.js +42 -0
- package/dist/db/migrations/v21.d.ts +3 -0
- package/dist/db/migrations/v21.js +16 -0
- package/dist/db/migrations/v22.d.ts +3 -0
- package/dist/db/migrations/v22.js +82 -0
- package/dist/db/migrations/v23.d.ts +3 -0
- package/dist/db/migrations/v23.js +48 -0
- package/dist/db/migrations/v24.d.ts +3 -0
- package/dist/db/migrations/v24.js +72 -0
- package/dist/db/migrations/v25.d.ts +3 -0
- package/dist/db/migrations/v25.js +46 -0
- package/dist/db/migrations/v26.d.ts +3 -0
- package/dist/db/migrations/v26.js +23 -0
- package/dist/db/migrations/v27.d.ts +3 -0
- package/dist/db/migrations/v27.js +57 -0
- package/dist/db/migrations/v28.d.ts +3 -0
- package/dist/db/migrations/v28.js +38 -0
- package/dist/db/migrations/v29.d.ts +3 -0
- package/dist/db/migrations/v29.js +78 -0
- package/dist/db/migrations/v30.d.ts +3 -0
- package/dist/db/migrations/v30.js +92 -0
- package/dist/db/migrations/v31.d.ts +3 -0
- package/dist/db/migrations/v31.js +74 -0
- package/dist/db/migrations/v32.d.ts +3 -0
- package/dist/db/migrations/v32.js +102 -0
- package/dist/db/migrations/v33.d.ts +3 -0
- package/dist/db/migrations/v33.js +104 -0
- package/dist/db/migrations/v34.d.ts +3 -0
- package/dist/db/migrations/v34.js +93 -0
- package/dist/db/migrations/v35.d.ts +3 -0
- package/dist/db/migrations/v35.js +98 -0
- package/dist/db/migrations/v36.d.ts +3 -0
- package/dist/db/migrations/v36.js +98 -0
- package/dist/db/migrations/v37.d.ts +3 -0
- package/dist/db/migrations/v37.js +219 -0
- package/dist/db/migrations/v38.d.ts +3 -0
- package/dist/db/migrations/v38.js +277 -0
- package/dist/db/migrations/v39.d.ts +3 -0
- package/dist/db/migrations/v39.js +59 -0
- package/dist/db/migrations/v40.d.ts +3 -0
- package/dist/db/migrations/v40.js +74 -0
- package/dist/db/migrations/v41.d.ts +3 -0
- package/dist/db/migrations/v41.js +43 -0
- package/dist/db/migrations/v42.d.ts +3 -0
- package/dist/db/migrations/v42.js +41 -0
- package/dist/db/migrations/v43.d.ts +3 -0
- package/dist/db/migrations/v43.js +67 -0
- package/dist/db/migrations/v44.d.ts +3 -0
- package/dist/db/migrations/v44.js +28 -0
- package/dist/db/migrations/v45.d.ts +3 -0
- package/dist/db/migrations/v45.js +30 -0
- package/dist/db/migrations/v46.d.ts +3 -0
- package/dist/db/migrations/v46.js +25 -0
- package/dist/db/migrations/v47.d.ts +3 -0
- package/dist/db/migrations/v47.js +17 -0
- package/dist/db/migrations/v48.d.ts +3 -0
- package/dist/db/migrations/v48.js +10 -0
- package/dist/db/migrations/v49.d.ts +3 -0
- package/dist/db/migrations/v49.js +31 -0
- package/dist/db/migrations/v50.d.ts +3 -0
- package/dist/db/migrations/v50.js +67 -0
- package/dist/db/migrations/v51.d.ts +3 -0
- package/dist/db/migrations/v51.js +14 -0
- package/dist/db/migrations/v52.d.ts +3 -0
- package/dist/db/migrations/v52.js +7 -0
- package/dist/db/open.d.ts +23 -0
- package/dist/db/open.js +146 -0
- package/dist/db/sqlite.d.ts +21 -0
- package/dist/db/sqlite.js +8 -0
- package/dist/db/tables.d.ts +7 -0
- package/dist/db/tables.js +38 -0
- package/dist/db.d.ts +6 -46
- package/dist/db.js +5 -3049
- package/dist/decisions.d.ts +4 -1
- package/dist/decisions.js +9 -7
- package/dist/dedupe.js +3 -2
- package/dist/delivery-recorder.js +4 -1
- package/dist/doctor.js +3 -3
- package/dist/embedding-provider.d.ts +1 -1
- package/dist/embedding-provider.js +4 -3
- package/dist/embeddings.d.ts +9 -52
- package/dist/embeddings.js +43 -297
- package/dist/env.d.ts +75 -0
- package/dist/env.js +119 -0
- package/dist/eval-suite.js +1 -1
- package/dist/eval.js +2 -2
- package/dist/extract.js +1 -1
- package/dist/gated-write.js +3 -1
- package/dist/goals.d.ts +3 -1
- package/dist/goals.js +18 -0
- package/dist/graph/read.d.ts +73 -0
- package/dist/graph/read.js +325 -0
- package/dist/graph/rows.d.ts +45 -0
- package/dist/graph/rows.js +51 -0
- package/dist/graph/types.d.ts +83 -0
- package/dist/graph/types.js +11 -0
- package/dist/graph/write.d.ts +93 -0
- package/dist/{graph.js → graph/write.js} +6 -384
- package/dist/graph-extract.js +2 -1
- package/dist/graph-recall.d.ts +1 -1
- package/dist/graph-recall.js +2 -2
- package/dist/graph-stream.js +1 -1
- package/dist/graph-view.d.ts +1 -1
- package/dist/graph-view.js +1 -1
- package/dist/half-life-migration.d.ts +1 -1
- package/dist/half-life-migration.js +2 -1
- package/dist/hooks/codex-session.d.ts +8 -0
- package/dist/hooks/codex-session.js +76 -0
- package/dist/hooks/codex-wrapper.d.ts +55 -0
- package/dist/hooks/codex-wrapper.js +288 -0
- package/dist/hooks/json-hooks.d.ts +63 -0
- package/dist/hooks/json-hooks.js +356 -0
- package/dist/hooks/opencode.d.ts +50 -0
- package/dist/hooks/opencode.js +202 -0
- package/dist/hooks/shared.d.ts +54 -0
- package/dist/hooks/shared.js +77 -0
- package/dist/http-retry.d.ts +2 -0
- package/dist/http-retry.js +4 -3
- package/dist/http-util.d.ts +3 -0
- package/dist/http-util.js +10 -0
- package/dist/{importers.d.ts → importers/core.d.ts} +13 -17
- package/dist/importers/core.js +141 -0
- package/dist/importers/markdown-parse.d.ts +41 -0
- package/dist/importers/markdown-parse.js +132 -0
- package/dist/importers/markdown.d.ts +3 -0
- package/dist/importers/markdown.js +92 -0
- package/dist/importers/sources.d.ts +7 -0
- package/dist/importers/sources.js +229 -0
- package/dist/importers/vault.d.ts +11 -0
- package/dist/importers/vault.js +352 -0
- package/dist/incidents.d.ts +3 -0
- package/dist/incidents.js +7 -5
- package/dist/index.d.ts +25 -6
- package/dist/index.js +23 -6
- package/dist/invalidation.js +2 -1
- package/dist/judgment.js +2 -1
- package/dist/keyset.d.ts +13 -0
- package/dist/keyset.js +8 -0
- package/dist/local-embedding.d.ts +13 -0
- package/dist/local-embedding.js +165 -0
- package/dist/log.d.ts +7 -0
- package/dist/log.js +19 -1
- package/dist/mcp/admin-tools.d.ts +8 -0
- package/dist/mcp/admin-tools.js +116 -0
- package/dist/mcp/format.d.ts +27 -0
- package/dist/mcp/format.js +135 -0
- package/dist/mcp/memory-tools.d.ts +5 -0
- package/dist/mcp/memory-tools.js +83 -0
- package/dist/mcp/protocol.d.ts +83 -0
- package/dist/mcp/protocol.js +55 -0
- package/dist/mcp/recall-tools.d.ts +6 -0
- package/dist/mcp/recall-tools.js +320 -0
- package/dist/mcp/request.d.ts +10 -0
- package/dist/mcp/request.js +163 -0
- package/dist/mcp/server.d.ts +4 -75
- package/dist/mcp/server.js +7 -1190
- package/dist/mcp/session-state.d.ts +11 -0
- package/dist/mcp/session-state.js +28 -0
- package/dist/mcp/stdio.d.ts +8 -0
- package/dist/mcp/stdio.js +79 -0
- package/dist/mcp/tools.d.ts +11 -0
- package/dist/mcp/tools.js +247 -0
- package/dist/memory.d.ts +3 -0
- package/dist/memory.js +27 -1
- package/dist/multihop.d.ts +1 -1
- package/dist/multihop.js +2 -1
- package/dist/owner-validation.js +2 -1
- package/dist/physics-state.js +10 -7
- package/dist/policies.d.ts +3 -0
- package/dist/policies.js +8 -6
- package/dist/postinstall.js +3 -2
- package/dist/predictions/planning-fallacy.d.ts +100 -0
- package/dist/predictions/planning-fallacy.js +190 -0
- package/dist/{predictions.d.ts → predictions/store.d.ts} +7 -102
- package/dist/predictions/store.js +434 -0
- package/dist/processes.d.ts +3 -0
- package/dist/processes.js +7 -5
- package/dist/project-briefs.d.ts +3 -0
- package/dist/project-briefs.js +7 -5
- package/dist/project-identity.js +3 -2
- package/dist/project-merge.js +3 -1
- package/dist/quarantine.d.ts +2 -1
- package/dist/quarantine.js +8 -5
- package/dist/raw-archive.js +1 -1
- package/dist/recall-history.js +3 -2
- package/dist/recall-pipeline.d.ts +2 -2
- package/dist/recall-pipeline.js +16 -8
- package/dist/recall-scope.js +1 -1
- package/dist/recall-trace.d.ts +1 -1
- package/dist/refine-llm.js +2 -1
- package/dist/reject-flow.js +6 -1
- package/dist/rerankers/clef.js +6 -5
- package/dist/rerankers/jev.d.ts +1 -1
- package/dist/rerankers/jev.js +4 -4
- package/dist/rerankers/llm.d.ts +4 -2
- package/dist/rerankers/llm.js +58 -38
- package/dist/rerankers/types.d.ts +1 -1
- package/dist/salience.js +1 -1
- package/dist/scheduler.d.ts +1 -0
- package/dist/scheduler.js +26 -4
- package/dist/scope.js +4 -3
- package/dist/search/as-of.d.ts +10 -0
- package/dist/search/as-of.js +22 -0
- package/dist/search/bm25-search.d.ts +14 -0
- package/dist/search/bm25-search.js +43 -0
- package/dist/search/bm25.d.ts +15 -0
- package/dist/search/bm25.js +54 -0
- package/dist/search/boosts.d.ts +54 -0
- package/dist/search/boosts.js +94 -0
- package/dist/search/breakdown.d.ts +7 -0
- package/dist/search/breakdown.js +20 -0
- package/dist/search/explain.d.ts +25 -0
- package/dist/search/explain.js +31 -0
- package/dist/search/finalize.d.ts +8 -0
- package/dist/search/finalize.js +52 -0
- package/dist/search/fusion.d.ts +27 -0
- package/dist/search/fusion.js +42 -0
- package/dist/search/hybrid-score.d.ts +20 -0
- package/dist/search/hybrid-score.js +73 -0
- package/dist/search/hybrid.d.ts +46 -0
- package/dist/search/hybrid.js +64 -0
- package/dist/search/physics-search.d.ts +29 -0
- package/dist/search/physics-search.js +162 -0
- package/dist/search/rerank.d.ts +10 -0
- package/dist/search/rerank.js +72 -0
- package/dist/search/temporal.d.ts +15 -0
- package/dist/search/temporal.js +45 -0
- package/dist/search/types.d.ts +91 -0
- package/dist/search/types.js +2 -0
- package/dist/search/vector.d.ts +30 -0
- package/dist/search/vector.js +71 -0
- package/dist/secret-detect.d.ts +2 -0
- package/dist/secret-detect.js +2 -1
- package/dist/server/auth.d.ts +52 -0
- package/dist/server/auth.js +221 -0
- package/dist/server/client-ip.d.ts +25 -0
- package/dist/server/client-ip.js +92 -0
- package/dist/server/cursor.d.ts +23 -0
- package/dist/server/cursor.js +58 -0
- package/dist/server/lifecycle.d.ts +7 -0
- package/dist/server/lifecycle.js +29 -0
- package/dist/server/mcp-http.d.ts +5 -0
- package/dist/server/mcp-http.js +199 -0
- package/dist/server/request.d.ts +33 -0
- package/dist/server/request.js +103 -0
- package/dist/server/routes/admin.d.ts +9 -0
- package/dist/server/routes/admin.js +158 -0
- package/dist/server/routes/customer-notes.d.ts +7 -0
- package/dist/server/routes/customer-notes.js +112 -0
- package/dist/server/routes/decisions.d.ts +7 -0
- package/dist/server/routes/decisions.js +133 -0
- package/dist/server/routes/incidents.d.ts +7 -0
- package/dist/server/routes/incidents.js +126 -0
- package/dist/server/routes/memories.d.ts +10 -0
- package/dist/server/routes/memories.js +179 -0
- package/dist/server/routes/policies.d.ts +8 -0
- package/dist/server/routes/policies.js +151 -0
- package/dist/server/routes/predictions.d.ts +7 -0
- package/dist/server/routes/predictions.js +164 -0
- package/dist/server/routes/processes.d.ts +7 -0
- package/dist/server/routes/processes.js +161 -0
- package/dist/server/routes/project-briefs.d.ts +8 -0
- package/dist/server/routes/project-briefs.js +136 -0
- package/dist/server/routes/recall.d.ts +8 -0
- package/dist/server/routes/recall.js +340 -0
- package/dist/server/routes/skills.d.ts +8 -0
- package/dist/server/routes/skills.js +150 -0
- package/dist/server/types.d.ts +56 -0
- package/dist/server/types.js +2 -0
- package/dist/server/validation.d.ts +14 -0
- package/dist/server/validation.js +91 -0
- package/dist/server.d.ts +7 -61
- package/dist/server.js +69 -2362
- package/dist/session-digest.d.ts +1 -1
- package/dist/session-digest.js +9 -2
- package/dist/shared.d.ts +3 -1
- package/dist/shared.js +26 -22
- package/dist/skills.d.ts +3 -0
- package/dist/skills.js +7 -5
- package/dist/stdin.js +2 -2
- package/dist/store/audit-event.d.ts +19 -0
- package/dist/store/audit-event.js +33 -0
- package/dist/store/candidates.d.ts +42 -0
- package/dist/store/candidates.js +152 -0
- package/dist/store/conflicts.d.ts +44 -0
- package/dist/store/conflicts.js +444 -0
- package/dist/store/delete-and-batch.d.ts +63 -0
- package/dist/store/delete-and-batch.js +310 -0
- package/dist/store/entry-reads.d.ts +92 -0
- package/dist/store/entry-reads.js +255 -0
- package/dist/store/entry-row.d.ts +67 -0
- package/dist/store/entry-row.js +208 -0
- package/dist/store/entry-writes.d.ts +46 -0
- package/dist/store/entry-writes.js +148 -0
- package/dist/store/handoffs.d.ts +26 -0
- package/dist/store/handoffs.js +184 -0
- package/dist/store/index-and-stats.d.ts +52 -0
- package/dist/store/index-and-stats.js +214 -0
- package/dist/store/markdown.d.ts +10 -0
- package/dist/store/markdown.js +108 -0
- package/dist/store/mirrors.d.ts +49 -0
- package/dist/store/mirrors.js +312 -0
- package/dist/store/open.d.ts +15 -0
- package/dist/store/open.js +223 -0
- package/dist/store/rows.d.ts +178 -0
- package/dist/store/rows.js +158 -0
- package/dist/store/search-rows.d.ts +86 -0
- package/dist/store/search-rows.js +254 -0
- package/dist/store/sessions.d.ts +83 -0
- package/dist/store/sessions.js +272 -0
- package/dist/store/summaries.d.ts +94 -0
- package/dist/store/summaries.js +377 -0
- package/dist/store/tenant-lookup.d.ts +12 -0
- package/dist/store/tenant-lookup.js +16 -0
- package/dist/store-cards.js +2 -1
- package/dist/summary-dirty.d.ts +4 -0
- package/dist/summary-dirty.js +32 -0
- package/dist/support-bundle.js +4 -3
- package/dist/tenant.js +2 -2
- package/dist/tokenize.d.ts +2 -0
- package/dist/tokenize.js +16 -0
- package/dist/transcript-tail.d.ts +7 -0
- package/dist/transcript-tail.js +48 -0
- package/dist/vector-store.d.ts +27 -0
- package/dist/vector-store.js +210 -0
- package/dist/version.d.ts +2 -2
- package/dist/version.js +2 -2
- package/dist/working-memory.js +1 -1
- package/dist/yaml.js +36 -11
- package/dist-ui/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
- package/dist-ui/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
- package/dist-ui/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
- package/dist-ui/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
- package/dist-ui/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
- package/dist-ui/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
- package/dist-ui/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
- package/dist-ui/assets/index-DPN7cP19.js +33 -0
- package/dist-ui/assets/index-dFloKRVr.css +1 -0
- package/dist-ui/index.html +3 -25
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/dist/capture.d.ts +0 -155
- package/dist/capture.js +0 -1295
- package/dist/consolidate.d.ts +0 -58
- package/dist/consolidate.js +0 -1124
- package/dist/graph.d.ts +0 -245
- package/dist/hooks.d.ts +0 -208
- package/dist/hooks.js +0 -1076
- package/dist/importers.js +0 -900
- package/dist/predictions.js +0 -620
- package/dist/search.d.ts +0 -320
- package/dist/search.js +0 -970
- package/dist/store.d.ts +0 -776
- package/dist/store.js +0 -3473
- package/dist-ui/assets/d3-BiWEKnn4.js +0 -1
- package/dist-ui/assets/index-BhT8RvO6.js +0 -61
- package/dist-ui/assets/index-RoXXJ5dq.css +0 -1
- package/dist-ui/assets/three-BDgTxR1l.js +0 -4112
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DatabaseSyncLike } from './sqlite.js';
|
|
2
|
+
export declare function ensureMetaTable(db: DatabaseSyncLike): void;
|
|
3
|
+
export declare function getSchemaVersion(db: DatabaseSyncLike): number;
|
|
4
|
+
export declare function setSchemaVersion(db: DatabaseSyncLike, version: number): void;
|
|
5
|
+
export declare function getMeta(db: DatabaseSyncLike, key: string, fallback?: string): string;
|
|
6
|
+
export declare function setMeta(db: DatabaseSyncLike, key: string, value: string): void;
|
|
7
|
+
export declare function isFtsAvailable(db: DatabaseSyncLike): boolean;
|
|
8
|
+
//# sourceMappingURL=meta.d.ts.map
|
package/dist/db/meta.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { tableExists } from './tables.js';
|
|
2
|
+
export function ensureMetaTable(db) {
|
|
3
|
+
db.exec(`
|
|
4
|
+
CREATE TABLE IF NOT EXISTS meta (
|
|
5
|
+
key TEXT PRIMARY KEY,
|
|
6
|
+
value TEXT NOT NULL
|
|
7
|
+
);
|
|
8
|
+
`);
|
|
9
|
+
}
|
|
10
|
+
export function getSchemaVersion(db) {
|
|
11
|
+
if (!tableExists(db, 'meta'))
|
|
12
|
+
return 0;
|
|
13
|
+
// SAFETY: row's shape matches the single `value` column named in the
|
|
14
|
+
// SELECT above.
|
|
15
|
+
const row = db.prepare(`SELECT value FROM meta WHERE key = 'schema_version'`).get();
|
|
16
|
+
const version = Number(row?.value ?? 0);
|
|
17
|
+
return Number.isFinite(version) ? version : 0;
|
|
18
|
+
}
|
|
19
|
+
export function setSchemaVersion(db, version) {
|
|
20
|
+
db.prepare(`INSERT INTO meta(key, value) VALUES('schema_version', ?) ON CONFLICT(key) DO UPDATE SET value=excluded.value`).run(String(version));
|
|
21
|
+
db.exec(`PRAGMA user_version = ${Math.max(0, Math.trunc(version))}`);
|
|
22
|
+
}
|
|
23
|
+
export function getMeta(db, key, fallback = '') {
|
|
24
|
+
// SAFETY: row's shape matches the single `value` column named in the
|
|
25
|
+
// SELECT above.
|
|
26
|
+
const row = db.prepare(`SELECT value FROM meta WHERE key = ?`).get(key);
|
|
27
|
+
return row?.value ?? fallback;
|
|
28
|
+
}
|
|
29
|
+
export function setMeta(db, key, value) {
|
|
30
|
+
db.prepare(`INSERT INTO meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value=excluded.value`).run(key, value);
|
|
31
|
+
}
|
|
32
|
+
export function isFtsAvailable(db) {
|
|
33
|
+
return getMeta(db, 'fts5_available', '0') === '1';
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DatabaseSyncLike } from './sqlite.js';
|
|
2
|
+
export declare function getCurrentSchemaVersion(): number;
|
|
3
|
+
/** Thrown by {@link assertBinaryCompatible}; doctor uses it to pick the upgrade fix over a generic permissions fix. */
|
|
4
|
+
export declare class IncompatibleBinaryError extends Error {
|
|
5
|
+
}
|
|
6
|
+
/** Refuse a store stamped for a newer binary. Fails closed: runMigrations creates meta first, so a failed read is a real error. */
|
|
7
|
+
export declare function assertBinaryCompatible(db: DatabaseSyncLike): void;
|
|
8
|
+
export declare function runMigrations(db: DatabaseSyncLike, hippoRoot?: string, busyWaitMs?: number): void;
|
|
9
|
+
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { PACKAGE_VERSION, compareSemver } from '../version.js';
|
|
2
|
+
import { log } from '../log.js';
|
|
3
|
+
import { importLegacyEmbeddingIndex } from '../vector-store.js';
|
|
4
|
+
import { execWithBusyRetry } from './busy.js';
|
|
5
|
+
import { tableExists } from './tables.js';
|
|
6
|
+
import { ensureMetaTable, getMeta, getSchemaVersion, setMeta, setSchemaVersion } from './meta.js';
|
|
7
|
+
import { ensureContinuityIndexes, ensureContinuityTables } from './continuity.js';
|
|
8
|
+
import { CURRENT_SCHEMA_VERSION, MIGRATIONS } from './migrations/index.js';
|
|
9
|
+
export function getCurrentSchemaVersion() {
|
|
10
|
+
return CURRENT_SCHEMA_VERSION;
|
|
11
|
+
}
|
|
12
|
+
/** Thrown by {@link assertBinaryCompatible}; doctor uses it to pick the upgrade fix over a generic permissions fix. */
|
|
13
|
+
export class IncompatibleBinaryError extends Error {
|
|
14
|
+
}
|
|
15
|
+
/** Refuse a store stamped for a newer binary. Fails closed: runMigrations creates meta first, so a failed read is a real error. */
|
|
16
|
+
export function assertBinaryCompatible(db) {
|
|
17
|
+
const minRequired = getMeta(db, 'min_compatible_binary');
|
|
18
|
+
if (minRequired && compareSemver(minRequired, PACKAGE_VERSION) > 0) {
|
|
19
|
+
throw new IncompatibleBinaryError(`hippo-memory: this database requires hippo-memory >= ${minRequired}, but the running binary is ${PACKAGE_VERSION}. ` +
|
|
20
|
+
`Upgrade hippo-memory to open it; an older binary does not know this schema and could expose private rows or damage the store.`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function runMigrations(db, hippoRoot, busyWaitMs) {
|
|
24
|
+
ensureMetaTable(db);
|
|
25
|
+
// Before anything writes, so a stale binary never repairs or migrates a store it does not understand.
|
|
26
|
+
assertBinaryCompatible(db);
|
|
27
|
+
let currentVersion = getSchemaVersion(db);
|
|
28
|
+
if (currentVersion > 0)
|
|
29
|
+
ensureContinuityTables(db);
|
|
30
|
+
for (const migration of MIGRATIONS) {
|
|
31
|
+
if (migration.version <= currentVersion)
|
|
32
|
+
continue;
|
|
33
|
+
execWithBusyRetry(db, 'BEGIN IMMEDIATE', busyWaitMs);
|
|
34
|
+
try {
|
|
35
|
+
// A newer binary may have migrated and raised the minimum while we waited for the lock.
|
|
36
|
+
assertBinaryCompatible(db);
|
|
37
|
+
// Re-read under the write lock: another process may have applied this
|
|
38
|
+
// migration while we waited, and re-running one is not idempotent.
|
|
39
|
+
const applied = getSchemaVersion(db);
|
|
40
|
+
if (applied >= migration.version) {
|
|
41
|
+
db.exec('COMMIT');
|
|
42
|
+
currentVersion = applied;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
migration.up(db, { hippoRoot });
|
|
46
|
+
setSchemaVersion(db, migration.version);
|
|
47
|
+
db.exec('COMMIT');
|
|
48
|
+
currentVersion = migration.version;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
try {
|
|
52
|
+
db.exec('ROLLBACK');
|
|
53
|
+
}
|
|
54
|
+
catch { /* already rolled back; keep the original error */ }
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
ensureContinuityIndexes(db);
|
|
59
|
+
ensureMetaDefaults(db);
|
|
60
|
+
ensureOptionalFts(db);
|
|
61
|
+
if (hippoRoot)
|
|
62
|
+
importLegacyVectors(db, hippoRoot);
|
|
63
|
+
}
|
|
64
|
+
// A failed import leaves embeddings.json in place for the next open to retry; the store still opens.
|
|
65
|
+
function importLegacyVectors(db, hippoRoot) {
|
|
66
|
+
try {
|
|
67
|
+
importLegacyEmbeddingIndex(db, hippoRoot);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
log.warn(`embeddings.json import failed; the next open retries it (${err instanceof Error ? err.message : String(err)})`, { hippoRoot });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function ensureMetaDefaults(db) {
|
|
74
|
+
const defaults = [
|
|
75
|
+
['schema_version', String(CURRENT_SCHEMA_VERSION)],
|
|
76
|
+
['last_retrieval_ids', '[]'],
|
|
77
|
+
['last_trace_id', ''],
|
|
78
|
+
['total_remembered', '0'],
|
|
79
|
+
['total_recalled', '0'],
|
|
80
|
+
['total_forgotten', '0'],
|
|
81
|
+
['fts5_available', '0'],
|
|
82
|
+
];
|
|
83
|
+
// Read-first: an already-current store has all 7 keys, so this is one
|
|
84
|
+
// SELECT and zero writes instead of 7 no-op INSERT OR IGNOREs, each of
|
|
85
|
+
// which takes a RESERVED lock even when nothing changes.
|
|
86
|
+
const keys = defaults.map(([key]) => key);
|
|
87
|
+
const present = new Set(db
|
|
88
|
+
.prepare(`SELECT key FROM meta WHERE key IN (${keys.map(() => '?').join(',')})`)
|
|
89
|
+
.all(...keys)
|
|
90
|
+
.map((r) => r.key));
|
|
91
|
+
if (present.size === defaults.length)
|
|
92
|
+
return;
|
|
93
|
+
const stmt = db.prepare(`INSERT OR IGNORE INTO meta(key, value) VALUES (?, ?)`);
|
|
94
|
+
for (const [key, value] of defaults) {
|
|
95
|
+
if (!present.has(key))
|
|
96
|
+
stmt.run(key, value);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function ensureOptionalFts(db) {
|
|
100
|
+
let available = false;
|
|
101
|
+
try {
|
|
102
|
+
db.exec(`CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts USING fts5(id UNINDEXED, content, tags)`);
|
|
103
|
+
backfillFtsIndex(db);
|
|
104
|
+
available = true;
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
log.warn(`full-text index unavailable (${err instanceof Error ? err.message : String(err)}); search falls back to slower LIKE matching`);
|
|
108
|
+
}
|
|
109
|
+
// Read-first: only write when the flag actually changed, so a healthy
|
|
110
|
+
// store's open doesn't take a write lock for a same-value upsert.
|
|
111
|
+
const flag = available ? '1' : '0';
|
|
112
|
+
if (getMeta(db, 'fts5_available') !== flag)
|
|
113
|
+
setMeta(db, 'fts5_available', flag);
|
|
114
|
+
}
|
|
115
|
+
function backfillFtsIndex(db) {
|
|
116
|
+
// SAFETY: this get() result's shape matches the single aliased `c` column
|
|
117
|
+
// named in the SELECT above.
|
|
118
|
+
const memCount = db.prepare(`SELECT COUNT(*) AS c FROM memories`).get()?.c ?? 0;
|
|
119
|
+
// SAFETY: this get() result's shape matches the single aliased `c` column named in the SELECT above.
|
|
120
|
+
// memories_fts_docsize is FTS5's cheaper one-row-per-document shadow table; fall back for a foreign-built index.
|
|
121
|
+
const ftsTable = tableExists(db, 'memories_fts_docsize') ? 'memories_fts_docsize' : 'memories_fts';
|
|
122
|
+
const ftsCount = db.prepare(`SELECT COUNT(*) AS c FROM ${ftsTable}`).get()?.c ?? 0;
|
|
123
|
+
if (memCount === ftsCount)
|
|
124
|
+
return;
|
|
125
|
+
db.exec(`
|
|
126
|
+
INSERT INTO memories_fts(id, content, tags)
|
|
127
|
+
SELECT m.id, m.content, m.tags_json
|
|
128
|
+
FROM memories m
|
|
129
|
+
WHERE NOT EXISTS (
|
|
130
|
+
SELECT 1 FROM memories_fts f WHERE f.id = m.id
|
|
131
|
+
)
|
|
132
|
+
`);
|
|
133
|
+
db.exec(`
|
|
134
|
+
DELETE FROM memories_fts
|
|
135
|
+
WHERE id NOT IN (SELECT id FROM memories)
|
|
136
|
+
`);
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Migration } from './types.js';
|
|
2
|
+
export declare const CURRENT_SCHEMA_VERSION = 52;
|
|
3
|
+
/** Every schema migration in version order; runMigrations applies each one above the stored version. */
|
|
4
|
+
export declare const MIGRATIONS: Migration[];
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { v01 } from './v01.js';
|
|
2
|
+
import { v02 } from './v02.js';
|
|
3
|
+
import { v03 } from './v03.js';
|
|
4
|
+
import { v04 } from './v04.js';
|
|
5
|
+
import { v05 } from './v05.js';
|
|
6
|
+
import { v06 } from './v06.js';
|
|
7
|
+
import { v07 } from './v07.js';
|
|
8
|
+
import { v08 } from './v08.js';
|
|
9
|
+
import { v09 } from './v09.js';
|
|
10
|
+
import { v10 } from './v10.js';
|
|
11
|
+
import { v11 } from './v11.js';
|
|
12
|
+
import { v12 } from './v12.js';
|
|
13
|
+
import { v13 } from './v13.js';
|
|
14
|
+
import { v14 } from './v14.js';
|
|
15
|
+
import { v15 } from './v15.js';
|
|
16
|
+
import { v16 } from './v16.js';
|
|
17
|
+
import { v17 } from './v17.js';
|
|
18
|
+
import { v18 } from './v18.js';
|
|
19
|
+
import { v19 } from './v19.js';
|
|
20
|
+
import { v20 } from './v20.js';
|
|
21
|
+
import { v21 } from './v21.js';
|
|
22
|
+
import { v22 } from './v22.js';
|
|
23
|
+
import { v23 } from './v23.js';
|
|
24
|
+
import { v24 } from './v24.js';
|
|
25
|
+
import { v25 } from './v25.js';
|
|
26
|
+
import { v26 } from './v26.js';
|
|
27
|
+
import { v27 } from './v27.js';
|
|
28
|
+
import { v28 } from './v28.js';
|
|
29
|
+
import { v29 } from './v29.js';
|
|
30
|
+
import { v30 } from './v30.js';
|
|
31
|
+
import { v31 } from './v31.js';
|
|
32
|
+
import { v32 } from './v32.js';
|
|
33
|
+
import { v33 } from './v33.js';
|
|
34
|
+
import { v34 } from './v34.js';
|
|
35
|
+
import { v35 } from './v35.js';
|
|
36
|
+
import { v36 } from './v36.js';
|
|
37
|
+
import { v37 } from './v37.js';
|
|
38
|
+
import { v38 } from './v38.js';
|
|
39
|
+
import { v39 } from './v39.js';
|
|
40
|
+
import { v40 } from './v40.js';
|
|
41
|
+
import { v41 } from './v41.js';
|
|
42
|
+
import { v42 } from './v42.js';
|
|
43
|
+
import { v43 } from './v43.js';
|
|
44
|
+
import { v44 } from './v44.js';
|
|
45
|
+
import { v45 } from './v45.js';
|
|
46
|
+
import { v46 } from './v46.js';
|
|
47
|
+
import { v47 } from './v47.js';
|
|
48
|
+
import { v48 } from './v48.js';
|
|
49
|
+
import { v49 } from './v49.js';
|
|
50
|
+
import { v50 } from './v50.js';
|
|
51
|
+
import { v51 } from './v51.js';
|
|
52
|
+
import { v52 } from './v52.js';
|
|
53
|
+
export const CURRENT_SCHEMA_VERSION = 52;
|
|
54
|
+
/** Every schema migration in version order; runMigrations applies each one above the stored version. */
|
|
55
|
+
export const MIGRATIONS = [
|
|
56
|
+
v01,
|
|
57
|
+
v02,
|
|
58
|
+
v03,
|
|
59
|
+
v04,
|
|
60
|
+
v05,
|
|
61
|
+
v06,
|
|
62
|
+
v07,
|
|
63
|
+
v08,
|
|
64
|
+
v09,
|
|
65
|
+
v10,
|
|
66
|
+
v11,
|
|
67
|
+
v12,
|
|
68
|
+
v13,
|
|
69
|
+
v14,
|
|
70
|
+
v15,
|
|
71
|
+
v16,
|
|
72
|
+
v17,
|
|
73
|
+
v18,
|
|
74
|
+
v19,
|
|
75
|
+
v20,
|
|
76
|
+
v21,
|
|
77
|
+
v22,
|
|
78
|
+
v23,
|
|
79
|
+
v24,
|
|
80
|
+
v25,
|
|
81
|
+
v26,
|
|
82
|
+
v27,
|
|
83
|
+
v28,
|
|
84
|
+
v29,
|
|
85
|
+
v30,
|
|
86
|
+
v31,
|
|
87
|
+
v32,
|
|
88
|
+
v33,
|
|
89
|
+
v34,
|
|
90
|
+
v35,
|
|
91
|
+
v36,
|
|
92
|
+
v37,
|
|
93
|
+
v38,
|
|
94
|
+
v39,
|
|
95
|
+
v40,
|
|
96
|
+
v41,
|
|
97
|
+
v42,
|
|
98
|
+
v43,
|
|
99
|
+
v44,
|
|
100
|
+
v45,
|
|
101
|
+
v46,
|
|
102
|
+
v47,
|
|
103
|
+
v48,
|
|
104
|
+
v49,
|
|
105
|
+
v50,
|
|
106
|
+
v51,
|
|
107
|
+
v52,
|
|
108
|
+
];
|
|
109
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DatabaseSyncLike } from '../sqlite.js';
|
|
2
|
+
/**
|
|
3
|
+
* Context passed to migrations that need to know WHERE the store lives.
|
|
4
|
+
* hippoRoot is the store directory (e.g. `<project>/.hippo`); undefined only
|
|
5
|
+
* for callers that open a DB without a filesystem store notion (none today).
|
|
6
|
+
*/
|
|
7
|
+
export type MigrationContext = {
|
|
8
|
+
hippoRoot?: string;
|
|
9
|
+
};
|
|
10
|
+
export type Migration = {
|
|
11
|
+
version: number;
|
|
12
|
+
up: (db: DatabaseSyncLike, ctx?: MigrationContext) => void;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export const v01 = {
|
|
2
|
+
version: 1,
|
|
3
|
+
up: (db) => {
|
|
4
|
+
db.exec(`
|
|
5
|
+
CREATE TABLE IF NOT EXISTS memories (
|
|
6
|
+
id TEXT PRIMARY KEY,
|
|
7
|
+
created TEXT NOT NULL,
|
|
8
|
+
last_retrieved TEXT NOT NULL,
|
|
9
|
+
retrieval_count INTEGER NOT NULL,
|
|
10
|
+
strength REAL NOT NULL,
|
|
11
|
+
half_life_days REAL NOT NULL,
|
|
12
|
+
layer TEXT NOT NULL,
|
|
13
|
+
tags_json TEXT NOT NULL,
|
|
14
|
+
emotional_valence TEXT NOT NULL,
|
|
15
|
+
schema_fit REAL NOT NULL,
|
|
16
|
+
source TEXT NOT NULL,
|
|
17
|
+
outcome_score REAL,
|
|
18
|
+
conflicts_with_json TEXT NOT NULL,
|
|
19
|
+
pinned INTEGER NOT NULL,
|
|
20
|
+
confidence TEXT NOT NULL,
|
|
21
|
+
content TEXT NOT NULL,
|
|
22
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
CREATE INDEX IF NOT EXISTS idx_memories_layer_created ON memories(layer, created);
|
|
26
|
+
CREATE INDEX IF NOT EXISTS idx_memories_last_retrieved ON memories(last_retrieved);
|
|
27
|
+
|
|
28
|
+
CREATE TABLE IF NOT EXISTS consolidation_runs (
|
|
29
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
30
|
+
timestamp TEXT NOT NULL,
|
|
31
|
+
decayed INTEGER NOT NULL,
|
|
32
|
+
merged INTEGER NOT NULL,
|
|
33
|
+
removed INTEGER NOT NULL
|
|
34
|
+
);
|
|
35
|
+
`);
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=v01.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const v02 = {
|
|
2
|
+
version: 2,
|
|
3
|
+
up: (db) => {
|
|
4
|
+
db.exec(`
|
|
5
|
+
CREATE TABLE IF NOT EXISTS task_snapshots (
|
|
6
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
7
|
+
task TEXT NOT NULL,
|
|
8
|
+
summary TEXT NOT NULL,
|
|
9
|
+
next_step TEXT NOT NULL,
|
|
10
|
+
status TEXT NOT NULL,
|
|
11
|
+
source TEXT NOT NULL,
|
|
12
|
+
created_at TEXT NOT NULL,
|
|
13
|
+
updated_at TEXT NOT NULL
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
CREATE INDEX IF NOT EXISTS idx_task_snapshots_status_updated
|
|
17
|
+
ON task_snapshots(status, updated_at DESC, id DESC);
|
|
18
|
+
`);
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=v02.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const v03 = {
|
|
2
|
+
version: 3,
|
|
3
|
+
up: (db) => {
|
|
4
|
+
db.exec(`
|
|
5
|
+
CREATE TABLE IF NOT EXISTS memory_conflicts (
|
|
6
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
7
|
+
memory_a_id TEXT NOT NULL,
|
|
8
|
+
memory_b_id TEXT NOT NULL,
|
|
9
|
+
reason TEXT NOT NULL,
|
|
10
|
+
score REAL NOT NULL DEFAULT 0,
|
|
11
|
+
status TEXT NOT NULL,
|
|
12
|
+
detected_at TEXT NOT NULL,
|
|
13
|
+
updated_at TEXT NOT NULL,
|
|
14
|
+
UNIQUE(memory_a_id, memory_b_id)
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
CREATE INDEX IF NOT EXISTS idx_memory_conflicts_status_updated
|
|
18
|
+
ON memory_conflicts(status, updated_at DESC, id DESC);
|
|
19
|
+
`);
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=v03.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { tableHasColumn } from '../tables.js';
|
|
2
|
+
export const v04 = {
|
|
3
|
+
version: 4,
|
|
4
|
+
up: (db) => {
|
|
5
|
+
if (!tableHasColumn(db, 'task_snapshots', 'session_id')) {
|
|
6
|
+
db.exec(`ALTER TABLE task_snapshots ADD COLUMN session_id TEXT`);
|
|
7
|
+
}
|
|
8
|
+
db.exec(`
|
|
9
|
+
CREATE TABLE IF NOT EXISTS session_events (
|
|
10
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
11
|
+
session_id TEXT NOT NULL,
|
|
12
|
+
task TEXT,
|
|
13
|
+
event_type TEXT NOT NULL,
|
|
14
|
+
content TEXT NOT NULL,
|
|
15
|
+
source TEXT NOT NULL,
|
|
16
|
+
metadata_json TEXT NOT NULL,
|
|
17
|
+
created_at TEXT NOT NULL
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
CREATE INDEX IF NOT EXISTS idx_session_events_session_created
|
|
21
|
+
ON session_events(session_id, created_at DESC, id DESC);
|
|
22
|
+
|
|
23
|
+
CREATE INDEX IF NOT EXISTS idx_session_events_task_created
|
|
24
|
+
ON session_events(task, created_at DESC, id DESC);
|
|
25
|
+
`);
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=v04.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const v05 = {
|
|
2
|
+
version: 5,
|
|
3
|
+
up: (db) => {
|
|
4
|
+
db.exec(`
|
|
5
|
+
CREATE TABLE IF NOT EXISTS session_handoffs (
|
|
6
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
7
|
+
session_id TEXT NOT NULL,
|
|
8
|
+
repo_root TEXT,
|
|
9
|
+
task_id TEXT,
|
|
10
|
+
summary TEXT NOT NULL,
|
|
11
|
+
next_action TEXT,
|
|
12
|
+
artifacts_json TEXT NOT NULL DEFAULT '[]',
|
|
13
|
+
created_at TEXT NOT NULL
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
CREATE INDEX IF NOT EXISTS idx_session_handoffs_session
|
|
17
|
+
ON session_handoffs(session_id, created_at DESC);
|
|
18
|
+
`);
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=v05.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const v06 = {
|
|
2
|
+
version: 6,
|
|
3
|
+
up: (db) => {
|
|
4
|
+
db.exec(`
|
|
5
|
+
CREATE TABLE IF NOT EXISTS working_memory (
|
|
6
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
7
|
+
scope TEXT NOT NULL,
|
|
8
|
+
session_id TEXT,
|
|
9
|
+
task_id TEXT,
|
|
10
|
+
importance REAL NOT NULL DEFAULT 0,
|
|
11
|
+
content TEXT NOT NULL,
|
|
12
|
+
metadata_json TEXT NOT NULL DEFAULT '{}',
|
|
13
|
+
created_at TEXT NOT NULL,
|
|
14
|
+
updated_at TEXT NOT NULL
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
CREATE INDEX IF NOT EXISTS idx_working_memory_scope
|
|
18
|
+
ON working_memory(scope, importance DESC, created_at DESC);
|
|
19
|
+
|
|
20
|
+
CREATE INDEX IF NOT EXISTS idx_working_memory_session
|
|
21
|
+
ON working_memory(session_id, created_at DESC);
|
|
22
|
+
`);
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=v06.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { tableHasColumn } from '../tables.js';
|
|
2
|
+
export const v07 = {
|
|
3
|
+
version: 7,
|
|
4
|
+
up: (db) => {
|
|
5
|
+
if (!tableHasColumn(db, 'memories', 'outcome_positive')) {
|
|
6
|
+
db.exec(`ALTER TABLE memories ADD COLUMN outcome_positive INTEGER NOT NULL DEFAULT 0`);
|
|
7
|
+
}
|
|
8
|
+
if (!tableHasColumn(db, 'memories', 'outcome_negative')) {
|
|
9
|
+
db.exec(`ALTER TABLE memories ADD COLUMN outcome_negative INTEGER NOT NULL DEFAULT 0`);
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=v07.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { tableHasColumn } from '../tables.js';
|
|
2
|
+
export const v09 = {
|
|
3
|
+
version: 9,
|
|
4
|
+
up: (db) => {
|
|
5
|
+
if (!tableHasColumn(db, 'memories', 'parents_json')) {
|
|
6
|
+
db.exec(`ALTER TABLE memories ADD COLUMN parents_json TEXT NOT NULL DEFAULT '[]'`);
|
|
7
|
+
}
|
|
8
|
+
if (!tableHasColumn(db, 'memories', 'starred')) {
|
|
9
|
+
db.exec(`ALTER TABLE memories ADD COLUMN starred INTEGER NOT NULL DEFAULT 0`);
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=v09.js.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { tableHasColumn } from '../tables.js';
|
|
2
|
+
export const v10 = {
|
|
3
|
+
version: 10,
|
|
4
|
+
up: (db) => {
|
|
5
|
+
if (!tableHasColumn(db, 'memories', 'trace_outcome')) {
|
|
6
|
+
db.exec(`ALTER TABLE memories ADD COLUMN trace_outcome TEXT`);
|
|
7
|
+
}
|
|
8
|
+
if (!tableHasColumn(db, 'memories', 'source_session_id')) {
|
|
9
|
+
db.exec(`ALTER TABLE memories ADD COLUMN source_session_id TEXT`);
|
|
10
|
+
}
|
|
11
|
+
db.exec(`
|
|
12
|
+
CREATE INDEX IF NOT EXISTS idx_memories_source_session_id
|
|
13
|
+
ON memories(source_session_id) WHERE source_session_id IS NOT NULL
|
|
14
|
+
`);
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=v10.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { tableHasColumn } from '../tables.js';
|
|
2
|
+
export const v11 = {
|
|
3
|
+
version: 11,
|
|
4
|
+
up: (db) => {
|
|
5
|
+
if (!tableHasColumn(db, 'memories', 'valid_from')) {
|
|
6
|
+
db.exec(`ALTER TABLE memories ADD COLUMN valid_from TEXT`);
|
|
7
|
+
db.exec(`UPDATE memories SET valid_from = created WHERE valid_from IS NULL`);
|
|
8
|
+
}
|
|
9
|
+
if (!tableHasColumn(db, 'memories', 'superseded_by')) {
|
|
10
|
+
db.exec(`ALTER TABLE memories ADD COLUMN superseded_by TEXT`);
|
|
11
|
+
}
|
|
12
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_memories_current ON memories(layer, created) WHERE superseded_by IS NULL`);
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=v11.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { tableHasColumn } from '../tables.js';
|
|
2
|
+
export const v12 = {
|
|
3
|
+
version: 12,
|
|
4
|
+
up: (db) => {
|
|
5
|
+
if (!tableHasColumn(db, 'memories', 'extracted_from')) {
|
|
6
|
+
db.exec(`ALTER TABLE memories ADD COLUMN extracted_from TEXT`);
|
|
7
|
+
}
|
|
8
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_memories_extracted_from ON memories(extracted_from) WHERE extracted_from IS NOT NULL`);
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=v12.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { tableHasColumn } from '../tables.js';
|
|
2
|
+
export const v13 = {
|
|
3
|
+
version: 13,
|
|
4
|
+
up: (db) => {
|
|
5
|
+
if (!tableHasColumn(db, 'memories', 'dag_level')) {
|
|
6
|
+
db.exec(`ALTER TABLE memories ADD COLUMN dag_level INTEGER NOT NULL DEFAULT 0`);
|
|
7
|
+
}
|
|
8
|
+
if (!tableHasColumn(db, 'memories', 'dag_parent_id')) {
|
|
9
|
+
db.exec(`ALTER TABLE memories ADD COLUMN dag_parent_id TEXT`);
|
|
10
|
+
}
|
|
11
|
+
db.exec(`UPDATE memories SET dag_level = 1 WHERE extracted_from IS NOT NULL AND dag_level = 0`);
|
|
12
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_memories_dag_parent ON memories(dag_parent_id) WHERE dag_parent_id IS NOT NULL`);
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=v13.js.map
|