hippo-memory 1.69.0 → 1.71.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 +5 -2
- package/dist/agent-memories/apply.d.ts +3 -3
- package/dist/agent-memories/apply.js +16 -31
- package/dist/agent-memories/claude-code.d.ts +5 -5
- package/dist/agent-memories/claude-code.js +25 -12
- package/dist/agent-memories/copilot.js +3 -2
- package/dist/agent-memories/files.js +26 -14
- package/dist/agent-memories/gemini.js +6 -5
- package/dist/agent-memories/keys.js +3 -2
- package/dist/agent-memories/legacy.d.ts +2 -2
- package/dist/agent-memories/legacy.js +2 -2
- package/dist/agent-memories/markdown.d.ts +1 -3
- package/dist/agent-memories/markdown.js +1 -3
- package/dist/agent-memories/report.d.ts +1 -1
- package/dist/agent-memories/report.js +3 -2
- package/dist/agent-memories/source.d.ts +1 -1
- package/dist/agent-memories/source.js +6 -5
- package/dist/agent-memories/sync.d.ts +5 -3
- package/dist/agent-memories/sync.js +34 -38
- package/dist/agent-memories/types.d.ts +1 -1
- package/dist/api/assemble.d.ts +9 -46
- package/dist/api/assemble.js +44 -54
- package/dist/api/audit.d.ts +8 -7
- package/dist/api/audit.js +15 -21
- package/dist/api/auth.d.ts +17 -39
- package/dist/api/auth.js +76 -216
- package/dist/api/auto-sleep.d.ts +13 -0
- package/dist/api/auto-sleep.js +32 -0
- package/dist/{availability.d.ts → api/availability.d.ts} +4 -17
- package/dist/{availability.js → api/availability.js} +14 -44
- package/dist/{context-auto.js → api/context-auto.js} +2 -1
- package/dist/{context-render.d.ts → api/context-render.d.ts} +4 -4
- package/dist/{context-render.js → api/context-render.js} +7 -6
- package/dist/api/context-select.d.ts +5 -5
- package/dist/api/context-select.js +39 -48
- package/dist/api/context-types.d.ts +15 -40
- package/dist/api/context.d.ts +7 -26
- package/dist/api/context.js +67 -97
- package/dist/api/dormant.d.ts +7 -23
- package/dist/api/dormant.js +40 -128
- package/dist/api/drill-down.d.ts +9 -48
- package/dist/api/drill-down.js +41 -90
- package/dist/api/forget.d.ts +5 -33
- package/dist/api/forget.js +17 -73
- package/dist/api/goals.d.ts +1 -1
- package/dist/api/goals.js +2 -2
- package/dist/api/graph.d.ts +8 -0
- package/dist/api/graph.js +7 -0
- package/dist/api/index.d.ts +28 -0
- package/dist/api/index.js +31 -0
- package/dist/api/instruction-detect.js +85 -0
- package/dist/api/learn.js +63 -55
- package/dist/api/ledger-db.d.ts +21 -0
- package/dist/api/ledger-db.js +81 -0
- package/dist/api/memories.d.ts +5 -0
- package/dist/api/memories.js +7 -0
- package/dist/api/objects.d.ts +9 -0
- package/dist/api/objects.js +11 -0
- package/dist/api/on-store.d.ts +16 -0
- package/dist/api/on-store.js +38 -0
- package/dist/api/outcome.d.ts +5 -42
- package/dist/api/outcome.js +15 -80
- package/dist/{pilot-arm.d.ts → api/pilot-arm.d.ts} +1 -1
- package/dist/{pilot-arm.js → api/pilot-arm.js} +15 -23
- package/dist/api/predictions.d.ts +9 -0
- package/dist/api/predictions.js +18 -0
- package/dist/api/promote.d.ts +16 -31
- package/dist/api/promote.js +38 -123
- package/dist/{prompt-hook.d.ts → api/prompt-hook.d.ts} +11 -11
- package/dist/{prompt-hook.js → api/prompt-hook.js} +42 -60
- package/dist/api/quarantine.d.ts +5 -5
- package/dist/api/quarantine.js +30 -106
- package/dist/api/recall-cli.d.ts +55 -0
- package/dist/api/recall-cli.js +94 -0
- package/dist/api/recall-core.d.ts +4 -0
- package/dist/api/recall-core.js +120 -0
- package/dist/api/recall-finish.d.ts +53 -0
- package/dist/api/recall-finish.js +30 -0
- package/dist/api/recall-history.d.ts +64 -0
- package/dist/api/recall-history.js +159 -0
- package/dist/{recall-pipeline.d.ts → api/recall-pipeline.d.ts} +7 -8
- package/dist/{recall-pipeline.js → api/recall-pipeline.js} +60 -48
- package/dist/api/recall-record.d.ts +10 -13
- package/dist/api/recall-record.js +10 -30
- package/dist/api/recall-request.d.ts +2 -2
- package/dist/api/recall-request.js +3 -3
- package/dist/api/recall-types.d.ts +101 -316
- package/dist/api/recall.d.ts +5 -33
- package/dist/api/recall.js +92 -91
- package/dist/api/refine.d.ts +7 -0
- package/dist/api/refine.js +10 -0
- package/dist/api/remember-local.d.ts +57 -0
- package/dist/api/remember-local.js +90 -0
- package/dist/api/remember.d.ts +27 -12
- package/dist/api/remember.js +42 -46
- package/dist/api/session-owners.d.ts +4 -0
- package/dist/api/session-owners.js +17 -0
- package/dist/api/sleep-run.d.ts +7 -9
- package/dist/api/sleep-run.js +78 -94
- package/dist/api/sleep.d.ts +10 -29
- package/dist/api/tokens.d.ts +5 -12
- package/dist/api/tokens.js +12 -31
- package/dist/api/types.d.ts +8 -31
- package/dist/api/types.js +5 -23
- package/dist/capture/caller-session.d.ts +2 -2
- package/dist/capture/caller-session.js +8 -8
- package/dist/{capture-error.d.ts → capture/capture-error.d.ts} +2 -2
- package/dist/{capture-error.js → capture/capture-error.js} +7 -7
- package/dist/{codex-patch.js → capture/codex-patch.js} +1 -1
- package/dist/capture/command.d.ts +5 -13
- package/dist/capture/command.js +57 -60
- package/dist/capture/compact-resume-caller.d.ts +1 -1
- package/dist/capture/compact-resume-caller.js +7 -7
- package/dist/capture/compact.d.ts +8 -16
- package/dist/capture/compact.js +56 -47
- package/dist/capture/compaction-items-caller.d.ts +1 -1
- package/dist/capture/compaction-items-caller.js +7 -5
- package/dist/{compaction-items.js → capture/compaction-items.js} +27 -3
- package/dist/{compaction-record.d.ts → capture/compaction-record.d.ts} +10 -6
- package/dist/{compaction-record.js → capture/compaction-record.js} +143 -157
- package/dist/{compaction-spool.d.ts → capture/compaction-spool.d.ts} +1 -1
- package/dist/{compaction-spool.js → capture/compaction-spool.js} +18 -14
- package/dist/capture/copilot-transcript.js +1 -1
- package/dist/capture/extract.js +2 -2
- package/dist/capture/failure-caller.d.ts +2 -2
- package/dist/capture/failure-caller.js +6 -6
- package/dist/capture/failure-reading.d.ts +2 -5
- package/dist/capture/failure-reading.js +11 -12
- package/dist/{handoff-evidence.d.ts → capture/handoff-evidence.d.ts} +1 -1
- package/dist/{handoff-evidence.js → capture/handoff-evidence.js} +2 -1
- package/dist/capture/pre-compact-caller.d.ts +1 -1
- package/dist/capture/pre-compact-caller.js +2 -2
- package/dist/{session-digest.d.ts → capture/session-digest.d.ts} +2 -6
- package/dist/{session-digest.js → capture/session-digest.js} +29 -29
- package/dist/capture/session-end-caller.d.ts +2 -2
- package/dist/capture/session-end-caller.js +1 -1
- package/dist/capture/session-texts.d.ts +1 -1
- package/dist/capture/session-texts.js +5 -5
- package/dist/capture/session-worker.js +6 -4
- package/dist/{share-scrub.js → capture/share-scrub.js} +2 -2
- package/dist/capture/transcript.d.ts +2 -10
- package/dist/capture/transcript.js +72 -92
- package/dist/capture/working-state.d.ts +0 -3
- package/dist/capture/working-state.js +7 -7
- package/dist/cli/api-context.d.ts +3 -0
- package/dist/cli/api-context.js +6 -0
- package/dist/cli/audit-prune.d.ts +28 -0
- package/dist/cli/audit-prune.js +40 -0
- package/dist/cli/audit.d.ts +2 -2
- package/dist/cli/audit.js +92 -88
- package/dist/cli/auth.d.ts +2 -1
- package/dist/cli/auth.js +69 -53
- package/dist/cli/briefs.d.ts +4 -3
- package/dist/cli/briefs.js +76 -202
- package/dist/cli/card.d.ts +2 -1
- package/dist/cli/card.js +55 -54
- package/dist/cli/client.d.ts +28 -0
- package/dist/{client.js → cli/client.js} +25 -44
- package/dist/cli/compact-resume-payload.d.ts +8 -0
- package/dist/cli/compact-resume-payload.js +40 -0
- package/dist/cli/context.d.ts +1 -13
- package/dist/cli/context.js +51 -77
- package/dist/cli/continuity.d.ts +6 -5
- package/dist/cli/continuity.js +153 -145
- package/dist/cli/correction-latency.d.ts +24 -0
- package/dist/{correction-latency.js → cli/correction-latency.js} +2 -14
- package/dist/cli/curate.d.ts +13 -17
- package/dist/cli/curate.js +226 -222
- package/dist/cli/dag.d.ts +4 -4
- package/dist/cli/dag.js +70 -52
- package/dist/cli/decisions.d.ts +4 -3
- package/dist/cli/decisions.js +129 -253
- package/dist/cli/eval.d.ts +1 -3
- package/dist/cli/eval.js +56 -42
- package/dist/cli/exit.d.ts +6 -0
- package/dist/cli/exit.js +11 -0
- package/dist/cli/explain.d.ts +1 -2
- package/dist/cli/explain.js +39 -21
- package/dist/cli/flag-values.d.ts +30 -0
- package/dist/cli/flag-values.js +120 -0
- package/dist/cli/flags.d.ts +304 -0
- package/dist/cli/flags.js +169 -0
- package/dist/cli/github.d.ts +14 -0
- package/dist/cli/github.js +184 -0
- package/dist/cli/goals.d.ts +2 -1
- package/dist/cli/goals.js +76 -75
- package/dist/cli/hook-runtime.d.ts +31 -0
- package/dist/cli/hook-runtime.js +139 -0
- package/dist/cli/init.d.ts +2 -1
- package/dist/cli/init.js +153 -126
- package/dist/cli/install-steps.d.ts +7 -0
- package/dist/cli/install-steps.js +101 -0
- package/dist/cli/last-sleep.d.ts +3 -1
- package/dist/cli/last-sleep.js +12 -7
- package/dist/cli/maintenance.d.ts +5 -4
- package/dist/cli/maintenance.js +41 -42
- package/dist/cli/object-verbs.d.ts +40 -0
- package/dist/cli/object-verbs.js +66 -0
- package/dist/cli/owner-validation.d.ts +18 -0
- package/dist/cli/owner-validation.js +33 -0
- package/dist/cli/playbooks.d.ts +4 -3
- package/dist/cli/playbooks.js +98 -306
- package/dist/cli/print.d.ts +15 -0
- package/dist/cli/print.js +82 -0
- package/dist/cli/projects.d.ts +2 -3
- package/dist/cli/projects.js +56 -51
- package/dist/cli/provenance-coverage.d.ts +14 -0
- package/dist/{provenance-coverage.js → cli/provenance-coverage.js} +2 -6
- package/dist/cli/quality-repair-once.js +4 -4
- package/dist/cli/recall.d.ts +2 -6
- package/dist/cli/recall.js +128 -253
- package/dist/cli/refine-llm.d.ts +35 -0
- package/dist/cli/refine-llm.js +128 -0
- package/dist/cli/remember.d.ts +4 -6
- package/dist/cli/remember.js +193 -230
- package/dist/{scheduler.d.ts → cli/scheduler.d.ts} +4 -17
- package/dist/{scheduler.js → cli/scheduler.js} +22 -22
- package/dist/cli/serve.d.ts +1 -1
- package/dist/cli/serve.js +46 -7
- package/dist/cli/session-hooks.d.ts +11 -19
- package/dist/cli/session-hooks.js +263 -258
- package/dist/cli/setup.d.ts +4 -3
- package/dist/cli/setup.js +55 -37
- package/dist/cli/shared.d.ts +14 -118
- package/dist/cli/shared.js +26 -400
- package/dist/cli/slack.d.ts +2 -1
- package/dist/cli/slack.js +46 -74
- package/dist/cli/sleep-render.d.ts +4 -0
- package/dist/cli/sleep-render.js +61 -0
- package/dist/cli/sleep.d.ts +3 -8
- package/dist/cli/sleep.js +34 -91
- package/dist/cli/status.d.ts +9 -12
- package/dist/cli/status.js +86 -131
- package/dist/{stdin.d.ts → cli/stdin.d.ts} +4 -6
- package/dist/{stdin.js → cli/stdin.js} +8 -9
- package/dist/cli/transfer.d.ts +9 -9
- package/dist/cli/transfer.js +125 -122
- package/dist/cli/usage.js +13 -5
- package/dist/cli.d.ts +69 -167
- package/dist/cli.js +187 -296
- package/dist/connectors/dlq.d.ts +44 -0
- package/dist/connectors/dlq.js +30 -0
- package/dist/connectors/github/backfill.d.ts +6 -26
- package/dist/connectors/github/backfill.js +42 -114
- package/dist/connectors/github/deletion.d.ts +6 -21
- package/dist/connectors/github/deletion.js +17 -64
- package/dist/connectors/github/dlq.d.ts +12 -91
- package/dist/connectors/github/dlq.js +23 -140
- package/dist/connectors/github/ingest.d.ts +4 -37
- package/dist/connectors/github/ingest.js +24 -93
- package/dist/connectors/github/octokit-client.d.ts +5 -17
- package/dist/connectors/github/octokit-client.js +29 -25
- package/dist/connectors/github/ratelimit.d.ts +3 -14
- package/dist/connectors/github/ratelimit.js +3 -14
- package/dist/connectors/github/scope.d.ts +3 -5
- package/dist/connectors/github/scope.js +3 -5
- package/dist/connectors/github/signature.d.ts +4 -26
- package/dist/connectors/github/signature.js +4 -26
- package/dist/connectors/github/tenant-routing.d.ts +4 -26
- package/dist/connectors/github/tenant-routing.js +13 -61
- package/dist/connectors/github/transform.d.ts +1 -1
- package/dist/connectors/github/transform.js +2 -16
- package/dist/connectors/github/types.d.ts +4 -16
- package/dist/connectors/github/types.js +17 -27
- package/dist/connectors/github/webhook.d.ts +5 -18
- package/dist/connectors/github/webhook.js +86 -105
- package/dist/connectors/slack/backfill.d.ts +5 -18
- package/dist/connectors/slack/backfill.js +9 -42
- package/dist/connectors/slack/deletion.d.ts +4 -7
- package/dist/connectors/slack/deletion.js +20 -49
- package/dist/connectors/slack/dlq.d.ts +9 -68
- package/dist/connectors/slack/dlq.js +26 -136
- package/dist/connectors/slack/ingest.d.ts +4 -18
- package/dist/connectors/slack/ingest.js +26 -91
- package/dist/connectors/slack/scope.d.ts +2 -8
- package/dist/connectors/slack/scope.js +2 -8
- package/dist/connectors/slack/signature.d.ts +1 -6
- package/dist/connectors/slack/signature.js +2 -1
- package/dist/connectors/slack/tenant-routing.d.ts +4 -18
- package/dist/connectors/slack/tenant-routing.js +11 -31
- package/dist/connectors/slack/transform.d.ts +3 -19
- package/dist/connectors/slack/transform.js +2 -18
- package/dist/connectors/slack/types.d.ts +4 -10
- package/dist/connectors/slack/types.js +5 -16
- package/dist/connectors/slack/web-client.js +34 -28
- package/dist/connectors/slack/webhook.d.ts +5 -21
- package/dist/connectors/slack/webhook.js +80 -108
- package/dist/connectors/slack/workspaces.d.ts +8 -41
- package/dist/connectors/slack/workspaces.js +8 -58
- package/dist/consolidate/conflicts.d.ts +1 -1
- package/dist/consolidate/conflicts.js +10 -18
- package/dist/consolidate/dag-summary.d.ts +8 -0
- package/dist/consolidate/dag-summary.js +41 -0
- package/dist/{dag.d.ts → consolidate/dag.d.ts} +6 -29
- package/dist/{dag.js → consolidate/dag.js} +49 -131
- package/dist/consolidate/decay.d.ts +2 -2
- package/dist/consolidate/decay.js +35 -41
- package/dist/consolidate/dedupe.d.ts +29 -0
- package/dist/consolidate/dedupe.js +103 -0
- package/dist/consolidate/flush-units.d.ts +5 -6
- package/dist/consolidate/flush-units.js +3 -3
- package/dist/consolidate/half-life-migration.d.ts +34 -0
- package/dist/consolidate/half-life-migration.js +89 -0
- package/dist/consolidate/llm-passes.js +12 -29
- package/dist/consolidate/memory-value-weights.d.ts +8 -0
- package/dist/{memory-value-weights.js → consolidate/memory-value-weights.js} +2 -13
- package/dist/consolidate/memory-value.d.ts +45 -0
- package/dist/consolidate/memory-value.js +164 -0
- package/dist/consolidate/merge.js +65 -83
- package/dist/{merged-row.d.ts → consolidate/merged-row.d.ts} +1 -1
- package/dist/{merged-row.js → consolidate/merged-row.js} +4 -3
- package/dist/consolidate/physics-pass.js +46 -48
- package/dist/consolidate/replay.d.ts +9 -0
- package/dist/consolidate/replay.js +84 -0
- package/dist/consolidate/run.d.ts +7 -13
- package/dist/consolidate/run.js +6 -37
- package/dist/consolidate/sleep.d.ts +2 -9
- package/dist/consolidate/sleep.js +69 -151
- package/dist/consolidate/trace.d.ts +19 -0
- package/dist/{trace.js → consolidate/trace.js} +7 -24
- package/dist/consolidate/traces.js +40 -51
- package/dist/core/ablation.d.ts +15 -0
- package/dist/core/ablation.js +49 -0
- package/dist/{agent-memories/tools.d.ts → core/agent-memory-tools.d.ts} +1 -1
- package/dist/{agent-memories/tools.js → core/agent-memory-tools.js} +1 -1
- package/dist/{ambient.d.ts → core/ambient.d.ts} +1 -8
- package/dist/{ambient.js → core/ambient.js} +13 -18
- package/dist/{capture-contract.d.ts → core/capture-contract.d.ts} +16 -3
- package/dist/{capture-contract.js → core/capture-contract.js} +67 -1
- package/dist/{card.d.ts → core/card.d.ts} +4 -1
- package/dist/{card.js → core/card.js} +8 -0
- package/dist/core/compare.d.ts +32 -0
- package/dist/core/compare.js +70 -0
- package/dist/{config.d.ts → core/config.d.ts} +14 -28
- package/dist/{config.js → core/config.js} +101 -75
- package/dist/{handoff.d.ts → core/handoff.d.ts} +1 -7
- package/dist/core/handoff.js +81 -0
- package/dist/{memory-quality.js → core/memory-quality.js} +2 -2
- package/dist/core/memory.d.ts +183 -0
- package/dist/core/memory.js +380 -0
- package/dist/core/package-root.d.ts +3 -0
- package/dist/core/package-root.js +5 -0
- package/dist/{physics-config.d.ts → core/physics-config.d.ts} +1 -4
- package/dist/{physics-config.js → core/physics-config.js} +3 -8
- package/dist/{physics.d.ts → core/physics.d.ts} +16 -62
- package/dist/{physics.js → core/physics.js} +60 -122
- package/dist/{project-identity.d.ts → core/project-identity.d.ts} +17 -63
- package/dist/{project-identity.js → core/project-identity.js} +22 -55
- package/dist/{project-remote.js → core/project-remote.js} +17 -6
- package/dist/{prompt-recall.js → core/prompt-recall.js} +1 -1
- package/dist/core/raw-append-only.d.ts +5 -0
- package/dist/core/raw-append-only.js +7 -0
- package/dist/{salience.d.ts → core/salience.d.ts} +1 -7
- package/dist/{salience.js → core/salience.js} +36 -27
- package/dist/{search/types.d.ts → core/search-types.d.ts} +2 -2
- package/dist/{search/types.js → core/search-types.js} +1 -1
- package/dist/core/session-digest-row.d.ts +5 -0
- package/dist/core/session-digest-row.js +6 -0
- package/dist/{dashboard-actions.d.ts → dashboard/dashboard-actions.d.ts} +1 -1
- package/dist/{dashboard-actions.js → dashboard/dashboard-actions.js} +7 -7
- package/dist/{dashboard-queries.d.ts → dashboard/dashboard-queries.d.ts} +7 -2
- package/dist/{dashboard-queries.js → dashboard/dashboard-queries.js} +6 -10
- package/dist/{dashboard-snapshot.d.ts → dashboard/dashboard-snapshot.d.ts} +11 -10
- package/dist/{dashboard-snapshot.js → dashboard/dashboard-snapshot.js} +110 -104
- package/dist/{dashboard-types.d.ts → dashboard/dashboard-types.d.ts} +2 -1
- package/dist/{dashboard.d.ts → dashboard/dashboard.d.ts} +1 -0
- package/dist/{dashboard.js → dashboard/dashboard.js} +172 -55
- package/dist/db/backup.js +1 -1
- package/dist/db/busy.d.ts +19 -2
- package/dist/db/busy.js +88 -14
- package/dist/db/connect.d.ts +11 -2
- package/dist/db/connect.js +43 -10
- package/dist/db/index.d.ts +9 -0
- package/dist/db/index.js +8 -0
- package/dist/db/meta.d.ts +4 -0
- package/dist/db/meta.js +11 -1
- package/dist/db/migrate.d.ts +8 -1
- package/dist/db/migrate.js +28 -33
- package/dist/db/migrations/types.d.ts +2 -5
- package/dist/db/migrations/v08.js +1 -1
- package/dist/db/migrations/v14.js +39 -36
- package/dist/db/migrations/v15.js +2 -8
- package/dist/db/migrations/v16.js +31 -29
- package/dist/db/migrations/v17.js +2 -3
- package/dist/db/migrations/v18.js +6 -5
- package/dist/db/migrations/v19.js +2 -5
- package/dist/db/migrations/v20.js +5 -8
- package/dist/db/migrations/v22.js +28 -38
- package/dist/db/migrations/v23.js +3 -14
- package/dist/db/migrations/v24.js +25 -22
- package/dist/db/migrations/v25.js +3 -8
- package/dist/db/migrations/v26.js +2 -13
- package/dist/db/migrations/v27.js +3 -11
- package/dist/db/migrations/v28.js +2 -14
- package/dist/db/migrations/v29.js +23 -32
- package/dist/db/migrations/v30.js +4 -16
- package/dist/db/migrations/v31.js +23 -31
- package/dist/db/migrations/v32.js +4 -22
- package/dist/db/migrations/v33.js +2 -15
- package/dist/db/migrations/v34.js +2 -11
- package/dist/db/migrations/v35.js +2 -11
- package/dist/db/migrations/v36.js +2 -11
- package/dist/db/migrations/v37.js +8 -33
- package/dist/db/migrations/v38.js +5 -38
- package/dist/db/migrations/v39.js +10 -21
- package/dist/db/migrations/v40.js +8 -14
- package/dist/db/migrations/v41.js +2 -24
- package/dist/db/migrations/v43.js +7 -6
- package/dist/db/migrations/v44.js +2 -8
- package/dist/db/migrations/v45.js +2 -7
- package/dist/db/migrations/v46.js +1 -1
- package/dist/db/migrations/v47.js +2 -3
- package/dist/db/migrations/v48.js +1 -1
- package/dist/db/migrations/v49.js +1 -1
- package/dist/db/migrations/v50.js +8 -7
- package/dist/db/migrations/v51.js +1 -1
- package/dist/db/migrations/v52.js +1 -1
- package/dist/db/open.d.ts +11 -1
- package/dist/db/open.js +37 -4
- package/dist/db/physics-state.d.ts +23 -0
- package/dist/{physics-state.js → db/physics-state.js} +34 -52
- package/dist/db/raw-archive-mirror-cleanup.d.ts +5 -0
- package/dist/{raw-archive-mirror-cleanup.js → db/raw-archive-mirror-cleanup.js} +10 -20
- package/dist/db/request-stores.d.ts +15 -2
- package/dist/db/request-stores.js +37 -15
- package/dist/db/tables.d.ts +2 -0
- package/dist/db/tables.js +6 -0
- package/dist/{vector-store.d.ts → db/vector-store.d.ts} +6 -2
- package/dist/{vector-store.js → db/vector-store.js} +83 -51
- package/dist/db/wal-checkpointer.d.ts +11 -0
- package/dist/db/wal-checkpointer.js +92 -0
- package/dist/doctor.js +176 -152
- package/dist/entry/json-hooks.d.ts +1 -1
- package/dist/entry/json-hooks.js +1 -1
- package/dist/entry/project-identity.d.ts +1 -1
- package/dist/entry/project-identity.js +1 -1
- package/dist/entry/session-text.d.ts +3 -3
- package/dist/entry/session-text.js +5 -4
- package/dist/{eval-stats.d.ts → eval/eval-stats.d.ts} +15 -53
- package/dist/{eval-stats.js → eval/eval-stats.js} +24 -51
- package/dist/{eval-suite.d.ts → eval/eval-suite.d.ts} +3 -14
- package/dist/{eval-suite.js → eval/eval-suite.js} +99 -57
- package/dist/{eval.d.ts → eval/eval.d.ts} +7 -25
- package/dist/{eval.js → eval/eval.js} +35 -55
- package/dist/{judgment.d.ts → eval/judgment.d.ts} +1 -6
- package/dist/{judgment.js → eval/judgment.js} +23 -20
- package/dist/extensions/openclaw-plugin/index.js +2 -3
- package/dist/graph/delta.d.ts +3 -2
- package/dist/graph/delta.js +9 -23
- package/dist/{graph-extract.d.ts → graph/extract.d.ts} +10 -32
- package/dist/{graph-extract.js → graph/extract.js} +40 -81
- package/dist/{graph-recall.d.ts → graph/recall.d.ts} +9 -22
- package/dist/{graph-recall.js → graph/recall.js} +65 -108
- package/dist/graph/stream.d.ts +38 -0
- package/dist/{graph-stream.js → graph/stream.js} +20 -41
- package/dist/graph/view.d.ts +50 -0
- package/dist/graph/view.js +265 -0
- package/dist/graph/write.d.ts +4 -76
- package/dist/graph/write.js +13 -397
- package/dist/hooks/codex-session.js +1 -1
- package/dist/hooks/codex-wrapper.js +16 -17
- package/dist/hooks/copilot.d.ts +1 -8
- package/dist/hooks/copilot.js +16 -16
- package/dist/{cli → hooks}/hook-blocks.d.ts +6 -2
- package/dist/{cli → hooks}/hook-blocks.js +38 -125
- package/dist/hooks/json-hooks.d.ts +5 -37
- package/dist/hooks/json-hooks.js +49 -179
- package/dist/hooks/opencode.d.ts +0 -38
- package/dist/hooks/opencode.js +44 -103
- package/dist/hooks/shared.d.ts +8 -21
- package/dist/hooks/shared.js +30 -25
- package/dist/importers/core.d.ts +13 -42
- package/dist/importers/core.js +48 -64
- package/dist/importers/markdown-parse.d.ts +9 -32
- package/dist/importers/markdown-parse.js +10 -44
- package/dist/importers/markdown.js +5 -13
- package/dist/importers/sources.js +57 -81
- package/dist/importers/vault.d.ts +2 -8
- package/dist/importers/vault.js +95 -172
- package/dist/index.d.ts +26 -22
- package/dist/index.js +25 -21
- package/dist/learn/autolearn.d.ts +29 -0
- package/dist/{autolearn.js → learn/autolearn.js} +26 -51
- package/dist/{churn-git.d.ts → learn/churn-git.d.ts} +1 -1
- package/dist/{churn-git.js → learn/churn-git.js} +6 -4
- package/dist/{extract.d.ts → learn/extract.d.ts} +1 -1
- package/dist/learn/extract.js +123 -0
- package/dist/learn/forward-claim-detector.d.ts +12 -0
- package/dist/learn/forward-claim-detector.js +60 -0
- package/dist/{invalidation.d.ts → learn/invalidation.d.ts} +10 -18
- package/dist/{invalidation.js → learn/invalidation.js} +92 -125
- package/dist/mcp/admin-tools.d.ts +1 -1
- package/dist/mcp/admin-tools.js +39 -64
- package/dist/mcp/format.d.ts +5 -5
- package/dist/mcp/format.js +7 -6
- package/dist/mcp/framing.d.ts +6 -0
- package/dist/mcp/framing.js +11 -3
- package/dist/mcp/memory-tools.js +10 -35
- package/dist/mcp/protocol.d.ts +14 -36
- package/dist/mcp/protocol.js +10 -19
- package/dist/mcp/recall-tools.d.ts +2 -2
- package/dist/mcp/recall-tools.js +70 -52
- package/dist/mcp/request.d.ts +3 -11
- package/dist/mcp/request.js +71 -85
- package/dist/mcp/server.d.ts +3 -9
- package/dist/mcp/server.js +6 -17
- package/dist/mcp/session-state.d.ts +2 -3
- package/dist/mcp/session-state.js +7 -13
- package/dist/mcp/shared-gate.js +1 -1
- package/dist/mcp/stdio.d.ts +2 -6
- package/dist/mcp/stdio.js +112 -38
- package/dist/mcp/tool-args.js +2 -1
- package/dist/mcp/tools.js +7 -5
- package/dist/objects/customer-notes.d.ts +44 -0
- package/dist/objects/customer-notes.js +71 -0
- package/dist/objects/decisions.d.ts +41 -0
- package/dist/objects/decisions.js +63 -0
- package/dist/objects/descriptor.d.ts +52 -0
- package/dist/objects/descriptor.js +4 -0
- package/dist/objects/fields.d.ts +15 -0
- package/dist/objects/fields.js +21 -0
- package/dist/objects/incidents.d.ts +45 -0
- package/dist/objects/incidents.js +96 -0
- package/dist/objects/lifecycle.d.ts +27 -0
- package/dist/objects/lifecycle.js +96 -0
- package/dist/objects/policies.d.ts +60 -0
- package/dist/objects/policies.js +102 -0
- package/dist/objects/processes.d.ts +43 -0
- package/dist/objects/processes.js +92 -0
- package/dist/objects/project-briefs.d.ts +63 -0
- package/dist/objects/project-briefs.js +194 -0
- package/dist/objects/skills.d.ts +51 -0
- package/dist/objects/skills.js +110 -0
- package/dist/postinstall.js +10 -21
- package/dist/predictions/planning-fallacy.d.ts +14 -109
- package/dist/predictions/planning-fallacy.js +4 -129
- package/dist/rerankers/clef.d.ts +2 -6
- package/dist/rerankers/clef.js +28 -76
- package/dist/rerankers/cross-encoder.d.ts +0 -7
- package/dist/rerankers/cross-encoder.js +18 -28
- package/dist/rerankers/index.js +8 -7
- package/dist/rerankers/jev.d.ts +1 -4
- package/dist/rerankers/jev.js +36 -52
- package/dist/rerankers/llm.d.ts +2 -13
- package/dist/rerankers/llm.js +42 -59
- package/dist/rerankers/outage-warning.d.ts +8 -0
- package/dist/rerankers/outage-warning.js +32 -0
- package/dist/rerankers/remote.d.ts +4 -0
- package/dist/rerankers/remote.js +25 -0
- package/dist/rerankers/types.d.ts +3 -15
- package/dist/search/as-of.d.ts +1 -1
- package/dist/search/bm25-search.d.ts +2 -2
- package/dist/search/bm25-search.js +7 -7
- package/dist/search/bm25.d.ts +1 -1
- package/dist/search/bm25.js +1 -1
- package/dist/search/boosts.d.ts +5 -3
- package/dist/search/boosts.js +36 -15
- package/dist/search/breakdown.d.ts +2 -2
- package/dist/search/breakdown.js +2 -1
- package/dist/search/explain.d.ts +1 -1
- package/dist/search/explain.js +3 -2
- package/dist/search/finalize.d.ts +2 -2
- package/dist/search/finalize.js +4 -3
- package/dist/search/fusion.d.ts +1 -1
- package/dist/search/fusion.js +3 -3
- package/dist/search/goal-boost.d.ts +23 -0
- package/dist/search/goal-boost.js +90 -0
- package/dist/search/hybrid-score.d.ts +2 -2
- package/dist/search/hybrid-score.js +1 -1
- package/dist/search/hybrid.d.ts +6 -4
- package/dist/search/hybrid.js +11 -8
- package/dist/{multihop.d.ts → search/multihop.d.ts} +2 -2
- package/dist/{multihop.js → search/multihop.js} +9 -8
- package/dist/search/path-context.d.ts +11 -0
- package/dist/{path-context.js → search/path-context.js} +8 -19
- package/dist/search/physics-search.d.ts +4 -4
- package/dist/search/physics-search.js +25 -22
- package/dist/search/rerank.d.ts +3 -3
- package/dist/search/rerank.js +4 -3
- package/dist/search/rrf.d.ts +15 -0
- package/dist/search/rrf.js +36 -0
- package/dist/search/temporal.d.ts +1 -1
- package/dist/search/temporal.js +5 -2
- package/dist/search/vector.d.ts +10 -3
- package/dist/search/vector.js +51 -15
- package/dist/server/auth.d.ts +10 -29
- package/dist/server/auth.js +57 -42
- package/dist/server/boot.d.ts +5 -0
- package/dist/server/boot.js +432 -0
- package/dist/server/client-ip.d.ts +8 -20
- package/dist/server/client-ip.js +23 -34
- package/dist/server/cursor.d.ts +1 -1
- package/dist/server/cursor.js +2 -3
- package/dist/server/deadline.d.ts +13 -0
- package/dist/server/deadline.js +45 -0
- package/dist/server/defaults.d.ts +3 -0
- package/dist/server/defaults.js +4 -0
- package/dist/server/key-check-bounds.d.ts +9 -0
- package/dist/server/key-check-bounds.js +46 -0
- package/dist/server/lifecycle.d.ts +5 -4
- package/dist/server/lifecycle.js +20 -5
- package/dist/server/mcp-http.d.ts +1 -4
- package/dist/server/mcp-http.js +44 -68
- package/dist/server/rate-limit.d.ts +21 -0
- package/dist/{rate-limit.js → server/rate-limit.js} +4 -13
- package/dist/server/ready.d.ts +7 -0
- package/dist/server/ready.js +38 -0
- package/dist/server/request.d.ts +14 -12
- package/dist/server/request.js +71 -28
- package/dist/server/route-table.d.ts +15 -0
- package/dist/server/route-table.js +202 -0
- package/dist/server/routes/admin.js +29 -30
- package/dist/server/routes/customer-notes.d.ts +5 -5
- package/dist/server/routes/customer-notes.js +35 -105
- package/dist/server/routes/decisions.d.ts +5 -5
- package/dist/server/routes/decisions.js +45 -115
- package/dist/server/routes/incidents.d.ts +5 -5
- package/dist/server/routes/incidents.js +44 -105
- package/dist/server/routes/memories.js +21 -43
- package/dist/server/routes/object-routes.d.ts +35 -0
- package/dist/server/routes/object-routes.js +72 -0
- package/dist/server/routes/policies.d.ts +6 -6
- package/dist/server/routes/policies.js +42 -134
- package/dist/server/routes/predictions.js +35 -63
- package/dist/server/routes/processes.d.ts +5 -5
- package/dist/server/routes/processes.js +44 -134
- package/dist/server/routes/project-briefs.d.ts +6 -6
- package/dist/server/routes/project-briefs.js +41 -120
- package/dist/server/routes/recall.js +21 -44
- package/dist/server/routes/skills.d.ts +6 -6
- package/dist/server/routes/skills.js +40 -138
- package/dist/server/server-detect.d.ts +28 -0
- package/dist/server/server-detect.js +156 -0
- package/dist/server/sleep-child.d.ts +2 -0
- package/dist/server/sleep-child.js +19 -0
- package/dist/server/sleep-offload.d.ts +20 -0
- package/dist/server/sleep-offload.js +73 -0
- package/dist/server/tls.d.ts +6 -0
- package/dist/server/tls.js +24 -0
- package/dist/server/types.d.ts +35 -14
- package/dist/server/validation.d.ts +6 -5
- package/dist/server/validation.js +16 -34
- package/dist/server.d.ts +39 -61
- package/dist/server.js +26 -569
- package/dist/sharing/global-store.d.ts +19 -0
- package/dist/sharing/global-store.js +75 -0
- package/dist/sharing/global-sync.d.ts +6 -0
- package/dist/sharing/global-sync.js +80 -0
- package/dist/{project-merge.d.ts → sharing/project-merge.d.ts} +5 -6
- package/dist/{project-merge.js → sharing/project-merge.js} +34 -51
- package/dist/sharing/scope.d.ts +7 -0
- package/dist/{scope.js → sharing/scope.js} +5 -12
- package/dist/sharing/search-both.d.ts +60 -0
- package/dist/sharing/search-both.js +138 -0
- package/dist/sharing/share.d.ts +38 -0
- package/dist/sharing/share.js +226 -0
- package/dist/{ambient-store.d.ts → store/ambient.d.ts} +2 -2
- package/dist/{ambient-store.js → store/ambient.js} +11 -16
- package/dist/store/audit-event.d.ts +15 -17
- package/dist/store/audit-event.js +9 -16
- package/dist/{audit.d.ts → store/audit.d.ts} +29 -8
- package/dist/{audit.js → store/audit.js} +95 -18
- package/dist/{auth.d.ts → store/auth.d.ts} +19 -36
- package/dist/{auth.js → store/auth.js} +108 -99
- package/dist/store/candidates.d.ts +41 -13
- package/dist/store/candidates.js +141 -60
- package/dist/{card-detail.d.ts → store/card-detail.d.ts} +5 -4
- package/dist/{card-detail.js → store/card-detail.js} +3 -2
- package/dist/{store-cards.d.ts → store/cards.d.ts} +26 -16
- package/dist/{store-cards.js → store/cards.js} +133 -248
- package/dist/store/compactions.d.ts +78 -0
- package/dist/store/compactions.js +93 -0
- package/dist/store/conflicts.d.ts +26 -26
- package/dist/store/conflicts.js +194 -222
- package/dist/store/connectors/github.d.ts +84 -0
- package/dist/store/connectors/github.js +180 -0
- package/dist/store/connectors/slack.d.ts +69 -0
- package/dist/store/connectors/slack.js +177 -0
- package/dist/store/dashboard-reads.d.ts +27 -0
- package/dist/store/dashboard-reads.js +88 -0
- package/dist/store/delete-and-batch.d.ts +27 -51
- package/dist/store/delete-and-batch.js +100 -92
- package/dist/{delivery-recorder.d.ts → store/delivery-recorder.d.ts} +16 -5
- package/dist/{delivery-recorder.js → store/delivery-recorder.js} +60 -38
- package/dist/store/descendant-page.d.ts +12 -0
- package/dist/store/descendant-page.js +99 -0
- package/dist/store/diagnostics.d.ts +47 -0
- package/dist/store/diagnostics.js +44 -0
- package/dist/store/doctor-reads.d.ts +16 -0
- package/dist/store/doctor-reads.js +19 -0
- package/dist/store/dormant.d.ts +105 -0
- package/dist/store/dormant.js +241 -0
- package/dist/store/embeddings/index.d.ts +36 -0
- package/dist/{embeddings.js → store/embeddings/index.js} +104 -224
- package/dist/{local-embedding.d.ts → store/embeddings/local.d.ts} +1 -1
- package/dist/{local-embedding.js → store/embeddings/local.js} +69 -75
- package/dist/store/embeddings/provider.d.ts +40 -0
- package/dist/{embedding-provider.js → store/embeddings/provider.js} +78 -91
- package/dist/store/entry-reads.d.ts +66 -63
- package/dist/store/entry-reads.js +159 -121
- package/dist/store/entry-row.d.ts +14 -37
- package/dist/store/entry-row.js +37 -45
- package/dist/store/entry-writes.d.ts +40 -17
- package/dist/store/entry-writes.js +105 -41
- package/dist/{failure-log.d.ts → store/failure-log.d.ts} +7 -2
- package/dist/{failure-log.js → store/failure-log.js} +9 -2
- package/dist/store/goals.d.ts +96 -0
- package/dist/store/goals.js +260 -0
- package/dist/store/graph-queue.d.ts +13 -0
- package/dist/store/graph-queue.js +70 -0
- package/dist/store/graph-reads.d.ts +41 -0
- package/dist/{graph/read.js → store/graph-reads.js} +72 -162
- package/dist/{graph/types.d.ts → store/graph-rows.d.ts} +71 -14
- package/dist/{graph/rows.js → store/graph-rows.js} +20 -12
- package/dist/store/graph-view-rows.d.ts +13 -0
- package/dist/store/graph-view-rows.js +68 -0
- package/dist/store/graph-writes.d.ts +33 -0
- package/dist/store/graph-writes.js +232 -0
- package/dist/store/half-life.d.ts +35 -0
- package/dist/store/half-life.js +75 -0
- package/dist/store/handoffs.d.ts +6 -12
- package/dist/store/handoffs.js +54 -63
- package/dist/store/index-and-stats.d.ts +14 -20
- package/dist/store/index-and-stats.js +74 -119
- package/dist/store/index.d.ts +4 -0
- package/dist/store/index.js +3 -0
- package/dist/store/key-audit.d.ts +2 -2
- package/dist/store/key-audit.js +4 -4
- package/dist/store/key-writes.d.ts +12 -5
- package/dist/store/key-writes.js +30 -4
- package/dist/store/ledger-turn.d.ts +17 -0
- package/dist/store/ledger-turn.js +27 -0
- package/dist/store/markdown.d.ts +3 -7
- package/dist/store/markdown.js +25 -23
- package/dist/store/mirrors.d.ts +7 -13
- package/dist/store/mirrors.js +52 -47
- package/dist/store/object-types.d.ts +189 -0
- package/dist/store/object-types.js +4 -0
- package/dist/store/open.d.ts +6 -4
- package/dist/store/open.js +30 -36
- package/dist/store/planning-fallacy-evidence.d.ts +14 -0
- package/dist/store/planning-fallacy-evidence.js +52 -0
- package/dist/store/port.d.ts +649 -0
- package/dist/store/port.js +17 -0
- package/dist/{predictions/store.d.ts → store/predictions.d.ts} +25 -52
- package/dist/{predictions/store.js → store/predictions.js} +88 -184
- package/dist/{quality-repair.js → store/quality-repair.js} +27 -57
- package/dist/{quarantine.d.ts → store/quarantine.d.ts} +8 -8
- package/dist/{quarantine.js → store/quarantine.js} +64 -22
- package/dist/store/raw-archive.d.ts +14 -0
- package/dist/{raw-archive.js → store/raw-archive.js} +20 -31
- package/dist/store/recall-scope.d.ts +78 -0
- package/dist/{recall-scope.js → store/recall-scope.js} +23 -84
- package/dist/{recall-trace.d.ts → store/recall-trace.d.ts} +13 -81
- package/dist/{recall-trace.js → store/recall-trace.js} +41 -122
- package/dist/store/rejected-values.d.ts +55 -0
- package/dist/store/rejected-values.js +150 -0
- package/dist/store/rejection.d.ts +54 -0
- package/dist/{rejection.js → store/rejection.js} +16 -67
- package/dist/store/report-reads.d.ts +6 -0
- package/dist/store/report-reads.js +29 -0
- package/dist/store/rows.d.ts +11 -22
- package/dist/store/rows.js +52 -43
- package/dist/store/rule-sql.d.ts +5 -0
- package/dist/store/rule-sql.js +37 -0
- package/dist/store/search-rows.d.ts +22 -42
- package/dist/store/search-rows.js +55 -78
- package/dist/store/sessions.d.ts +23 -49
- package/dist/store/sessions.js +96 -118
- package/dist/store/sqlite/commit-watch.d.ts +4 -0
- package/dist/store/sqlite/commit-watch.js +29 -0
- package/dist/store/sqlite/connector-events-group.d.ts +5 -0
- package/dist/store/sqlite/connector-events-group.js +50 -0
- package/dist/store/sqlite/connector-writes-group.d.ts +6 -0
- package/dist/store/sqlite/connector-writes-group.js +65 -0
- package/dist/store/sqlite/dag-reads-group.d.ts +3 -0
- package/dist/store/sqlite/dag-reads-group.js +45 -0
- package/dist/store/sqlite/entry-writes-group.d.ts +18 -0
- package/dist/store/{entry-writes-group.js → sqlite/entry-writes-group.js} +73 -60
- package/dist/store/sqlite/error-codec.d.ts +17 -0
- package/dist/store/sqlite/error-codec.js +61 -0
- package/dist/store/sqlite/executor-counts.d.ts +10 -0
- package/dist/store/sqlite/executor-counts.js +11 -0
- package/dist/store/sqlite/executor.d.ts +29 -0
- package/dist/store/sqlite/executor.js +287 -0
- package/dist/store/sqlite/graph-reads-group.d.ts +5 -0
- package/dist/store/sqlite/graph-reads-group.js +18 -0
- package/dist/store/sqlite/local.d.ts +21 -0
- package/dist/store/sqlite/local.js +39 -0
- package/dist/store/sqlite/object-rows.d.ts +102 -0
- package/dist/store/sqlite/object-rows.js +221 -0
- package/dist/store/sqlite/objects-group.d.ts +20 -0
- package/dist/store/sqlite/objects-group.js +316 -0
- package/dist/store/sqlite/predictions-group.d.ts +5 -0
- package/dist/store/sqlite/predictions-group.js +28 -0
- package/dist/store/sqlite/quarantine-group.d.ts +5 -0
- package/dist/store/sqlite/quarantine-group.js +38 -0
- package/dist/store/sqlite/store.d.ts +23 -0
- package/dist/store/sqlite/store.js +294 -0
- package/dist/store/sqlite/vector-pack.d.ts +18 -0
- package/dist/store/sqlite/vector-pack.js +46 -0
- package/dist/store/sqlite/vector-reads-group.d.ts +3 -0
- package/dist/store/sqlite/vector-reads-group.js +23 -0
- package/dist/store/sqlite/worker-entry.d.ts +2 -0
- package/dist/store/sqlite/worker-entry.js +8 -0
- package/dist/store/sqlite/worker-jobs.d.ts +5 -0
- package/dist/store/sqlite/worker-jobs.js +116 -0
- package/dist/store/sqlite/worker-ops.d.ts +135 -0
- package/dist/store/sqlite/worker-ops.js +93 -0
- package/dist/store/sqlite/worker-store.d.ts +8 -0
- package/dist/store/sqlite/worker-store.js +79 -0
- package/dist/store/summaries.d.ts +11 -72
- package/dist/store/summaries.js +47 -186
- package/dist/{summary-dirty.d.ts → store/summary-dirty.d.ts} +1 -1
- package/dist/{summary-dirty.js → store/summary-dirty.js} +1 -1
- package/dist/store/tenant-lookup.d.ts +6 -1
- package/dist/store/tenant-lookup.js +7 -0
- package/dist/store/tenant.d.ts +11 -0
- package/dist/store/tenant.js +28 -0
- package/dist/store/token-ledger-rows.d.ts +61 -0
- package/dist/store/token-ledger-rows.js +68 -0
- package/dist/{token-ledger.d.ts → store/token-ledger.d.ts} +14 -51
- package/dist/{token-ledger.js → store/token-ledger.js} +51 -129
- package/dist/store/tombstone-checks.d.ts +12 -0
- package/dist/store/tombstone-checks.js +31 -0
- package/dist/store/usage-reports.d.ts +7 -0
- package/dist/store/usage-reports.js +18 -0
- package/dist/store/vector-index.d.ts +46 -0
- package/dist/store/vector-index.js +170 -0
- package/dist/{working-memory.d.ts → store/working-memory.d.ts} +11 -26
- package/dist/store/working-memory.js +118 -0
- package/dist/{yaml.d.ts → store/yaml.d.ts} +1 -5
- package/dist/{yaml.js → store/yaml.js} +2 -6
- package/dist/support-bundle.d.ts +1 -1
- package/dist/support-bundle.js +19 -37
- package/dist/{gated-write.d.ts → trust/gated-write.d.ts} +2 -2
- package/dist/{gated-write.js → trust/gated-write.js} +6 -6
- package/dist/trust/quarantine.d.ts +4 -0
- package/dist/trust/quarantine.js +8 -0
- package/dist/trust/reject-flow.d.ts +23 -0
- package/dist/trust/reject-flow.js +65 -0
- package/dist/util/anthropic-messages.d.ts +31 -0
- package/dist/util/anthropic-messages.js +58 -0
- package/dist/util/atomic-write.d.ts +4 -0
- package/dist/util/atomic-write.js +138 -0
- package/dist/util/capped-json.d.ts +6 -0
- package/dist/util/capped-json.js +46 -0
- package/dist/util/crash-handlers.d.ts +12 -0
- package/dist/util/crash-handlers.js +72 -0
- package/dist/{env.d.ts → util/env.d.ts} +27 -7
- package/dist/{env.js → util/env.js} +33 -8
- package/dist/{home-path.d.ts → util/home-path.d.ts} +2 -1
- package/dist/util/home-path.js +69 -0
- package/dist/{http-retry.d.ts → util/http-retry.d.ts} +8 -2
- package/dist/util/http-retry.js +103 -0
- package/dist/{http-util.d.ts → util/http-util.d.ts} +14 -3
- package/dist/{http-util.js → util/http-util.js} +31 -11
- package/dist/util/json.d.ts +17 -0
- package/dist/util/json.js +25 -0
- package/dist/{log.d.ts → util/log.d.ts} +7 -3
- package/dist/{log.js → util/log.js} +36 -11
- package/dist/util/real-path.d.ts +3 -0
- package/dist/util/real-path.js +15 -0
- package/dist/util/request-scope.d.ts +28 -0
- package/dist/util/request-scope.js +48 -0
- package/dist/{same-text.d.ts → util/same-text.d.ts} +1 -1
- package/dist/{secret-detect.d.ts → util/secret-detect.d.ts} +5 -30
- package/dist/{secret-detect.js → util/secret-detect.js} +17 -42
- package/dist/util/stored-json.d.ts +9 -0
- package/dist/util/stored-json.js +8 -0
- package/dist/util/time.d.ts +2 -0
- package/dist/util/time.js +3 -0
- package/dist/util/token-text.d.ts +15 -0
- package/dist/util/token-text.js +20 -0
- package/dist/{transcript-tail.d.ts → util/transcript-tail.d.ts} +2 -0
- package/dist/util/transcript-tail.js +49 -0
- package/dist/util/version.d.ts +11 -0
- package/dist/util/version.js +26 -0
- package/extensions/openclaw-plugin/index.ts +2 -6
- 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 +2 -2
- package/dist/ablation.d.ts +0 -102
- package/dist/ablation.js +0 -136
- package/dist/api.d.ts +0 -26
- package/dist/api.js +0 -29
- package/dist/audit-prune.d.ts +0 -62
- package/dist/audit-prune.js +0 -107
- package/dist/autolearn.d.ts +0 -56
- package/dist/client.d.ts +0 -48
- package/dist/compare.d.ts +0 -86
- package/dist/compare.js +0 -117
- package/dist/connectors/github/cli-impl.d.ts +0 -25
- package/dist/connectors/github/cli-impl.js +0 -227
- package/dist/connectors/github/idempotency.d.ts +0 -19
- package/dist/connectors/github/idempotency.js +0 -27
- package/dist/connectors/slack/idempotency.d.ts +0 -17
- package/dist/connectors/slack/idempotency.js +0 -31
- package/dist/correction-latency.d.ts +0 -36
- package/dist/customer-notes.d.ts +0 -96
- package/dist/customer-notes.js +0 -336
- package/dist/db.d.ts +0 -9
- package/dist/db.js +0 -8
- package/dist/decisions.d.ts +0 -94
- package/dist/decisions.js +0 -326
- package/dist/dedupe.d.ts +0 -75
- package/dist/dedupe.js +0 -169
- package/dist/dormant.d.ts +0 -93
- package/dist/dormant.js +0 -137
- package/dist/embedding-provider.d.ts +0 -77
- package/dist/embeddings.d.ts +0 -101
- package/dist/extract.js +0 -133
- package/dist/forward-claim-detector.d.ts +0 -36
- package/dist/forward-claim-detector.js +0 -112
- package/dist/goals.d.ts +0 -173
- package/dist/goals.js +0 -448
- package/dist/graph/read.d.ts +0 -73
- package/dist/graph/rows.d.ts +0 -45
- package/dist/graph/types.js +0 -11
- package/dist/graph-stream.d.ts +0 -70
- package/dist/graph-view.d.ts +0 -73
- package/dist/graph-view.js +0 -333
- package/dist/half-life-migration.d.ts +0 -63
- package/dist/half-life-migration.js +0 -182
- package/dist/handoff.js +0 -68
- package/dist/home-path.js +0 -24
- package/dist/http-retry.js +0 -51
- package/dist/incidents.d.ts +0 -103
- package/dist/incidents.js +0 -349
- package/dist/instruction-detect.js +0 -27
- package/dist/json.d.ts +0 -7
- package/dist/json.js +0 -11
- package/dist/ledger-db.d.ts +0 -10
- package/dist/ledger-db.js +0 -42
- package/dist/memory-value-weights.d.ts +0 -19
- package/dist/memory-value.d.ts +0 -113
- package/dist/memory-value.js +0 -250
- package/dist/memory.d.ts +0 -294
- package/dist/memory.js +0 -522
- package/dist/owner-validation.d.ts +0 -42
- package/dist/owner-validation.js +0 -56
- package/dist/path-context.d.ts +0 -24
- package/dist/physics-state.d.ts +0 -39
- package/dist/policies.d.ts +0 -151
- package/dist/policies.js +0 -434
- package/dist/processes.d.ts +0 -108
- package/dist/processes.js +0 -371
- package/dist/project-briefs.d.ts +0 -128
- package/dist/project-briefs.js +0 -523
- package/dist/provenance-coverage.d.ts +0 -18
- package/dist/rate-limit.d.ts +0 -34
- package/dist/raw-archive-mirror-cleanup.d.ts +0 -20
- package/dist/raw-archive.d.ts +0 -24
- package/dist/recall-history.d.ts +0 -131
- package/dist/recall-history.js +0 -227
- package/dist/recall-scope.d.ts +0 -138
- package/dist/refine-llm.d.ts +0 -61
- package/dist/refine-llm.js +0 -167
- package/dist/reject-flow.d.ts +0 -69
- package/dist/reject-flow.js +0 -260
- package/dist/rejection.d.ts +0 -100
- package/dist/replay.d.ts +0 -41
- package/dist/replay.js +0 -122
- package/dist/rrf.d.ts +0 -43
- package/dist/rrf.js +0 -61
- package/dist/scope.d.ts +0 -14
- package/dist/server-detect.d.ts +0 -72
- package/dist/server-detect.js +0 -222
- package/dist/session-owners.d.ts +0 -7
- package/dist/session-owners.js +0 -54
- package/dist/shared.d.ts +0 -186
- package/dist/shared.js +0 -540
- package/dist/skills.d.ts +0 -101
- package/dist/skills.js +0 -367
- package/dist/store/entry-writes-group.d.ts +0 -9
- package/dist/store/vector-writes.d.ts +0 -6
- package/dist/store/vector-writes.js +0 -59
- package/dist/store-port.d.ts +0 -262
- package/dist/store-port.js +0 -178
- package/dist/tenant.d.ts +0 -25
- package/dist/tenant.js +0 -43
- package/dist/trace.d.ts +0 -34
- package/dist/transcript-tail.js +0 -48
- package/dist/version.d.ts +0 -26
- package/dist/version.js +0 -41
- package/dist/working-memory.js +0 -154
- /package/dist/{context-auto.d.ts → api/context-auto.d.ts} +0 -0
- /package/dist/{instruction-detect.d.ts → api/instruction-detect.d.ts} +0 -0
- /package/dist/{codex-patch.d.ts → capture/codex-patch.d.ts} +0 -0
- /package/dist/{compaction-items.d.ts → capture/compaction-items.d.ts} +0 -0
- /package/dist/{share-scrub.d.ts → capture/share-scrub.d.ts} +0 -0
- /package/dist/{overlap-index.d.ts → consolidate/overlap-index.d.ts} +0 -0
- /package/dist/{overlap-index.js → consolidate/overlap-index.js} +0 -0
- /package/dist/{api-errors.d.ts → core/api-errors.d.ts} +0 -0
- /package/dist/{api-errors.js → core/api-errors.js} +0 -0
- /package/dist/{memory-quality.d.ts → core/memory-quality.d.ts} +0 -0
- /package/dist/{project-remote.d.ts → core/project-remote.d.ts} +0 -0
- /package/dist/{prompt-recall.d.ts → core/prompt-recall.d.ts} +0 -0
- /package/dist/{dashboard-params.d.ts → dashboard/dashboard-params.d.ts} +0 -0
- /package/dist/{dashboard-params.js → dashboard/dashboard-params.js} +0 -0
- /package/dist/{dashboard-types.js → dashboard/dashboard-types.js} +0 -0
- /package/dist/{quality-repair.d.ts → store/quality-repair.d.ts} +0 -0
- /package/dist/{escape.d.ts → util/escape.d.ts} +0 -0
- /package/dist/{escape.js → util/escape.js} +0 -0
- /package/dist/{keyset.d.ts → util/keyset.d.ts} +0 -0
- /package/dist/{keyset.js → util/keyset.js} +0 -0
- /package/dist/{same-text.js → util/same-text.js} +0 -0
- /package/dist/{db → util}/sqlite-blocked.d.ts +0 -0
- /package/dist/{db → util}/sqlite-blocked.js +0 -0
- /package/dist/{tokenize.d.ts → util/tokenize.d.ts} +0 -0
- /package/dist/{tokenize.js → util/tokenize.js} +0 -0
- /package/dist/{write-budget.d.ts → util/write-budget.d.ts} +0 -0
- /package/dist/{write-budget.js → util/write-budget.js} +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type CompactionCounts, type TokenTally } from './doctor-reads.js';
|
|
2
|
+
import type { JsonObject } from './working-memory.js';
|
|
3
|
+
/** One read's value, or the message of the error that stopped it, so a broken table never hides the reads beside it. */
|
|
4
|
+
export type Attempt<T> = {
|
|
5
|
+
readonly ok: true;
|
|
6
|
+
readonly value: T;
|
|
7
|
+
} | {
|
|
8
|
+
readonly ok: false;
|
|
9
|
+
readonly message: string;
|
|
10
|
+
};
|
|
11
|
+
/** ISO times the health reads count from. */
|
|
12
|
+
export interface HealthCutoffs {
|
|
13
|
+
/** Token and failure rows at or after this count. */
|
|
14
|
+
readonly since: string;
|
|
15
|
+
/** A compaction unfinished since before this is stuck. */
|
|
16
|
+
readonly stuckBefore: string;
|
|
17
|
+
/** A started compaction older than this is past replaying. */
|
|
18
|
+
readonly transcriptFloor: string;
|
|
19
|
+
}
|
|
20
|
+
export interface StoreHealth {
|
|
21
|
+
readonly schemaVersion: number;
|
|
22
|
+
/** Null when the table is missing or unreadable. */
|
|
23
|
+
readonly memories: number | null;
|
|
24
|
+
readonly dormant: number | null;
|
|
25
|
+
/** Null inside a read that worked means the store has no full-text index. */
|
|
26
|
+
readonly fts: Attempt<{
|
|
27
|
+
memories: number;
|
|
28
|
+
fts: number;
|
|
29
|
+
} | null>;
|
|
30
|
+
readonly tokens: Attempt<TokenTally>;
|
|
31
|
+
readonly failures: Attempt<number>;
|
|
32
|
+
/** Undefined inside a read that worked means the store never slept. */
|
|
33
|
+
readonly lastSleep: Attempt<string | undefined>;
|
|
34
|
+
readonly compactions: Attempt<CompactionCounts>;
|
|
35
|
+
}
|
|
36
|
+
/** Everything `hippo doctor` reads from one store; throws when it cannot be opened or its schema version read. */
|
|
37
|
+
export declare function readStoreHealth(hippoRoot: string, cutoffs: HealthCutoffs): StoreHealth;
|
|
38
|
+
export interface StoreInventory {
|
|
39
|
+
readonly schemaVersion: number;
|
|
40
|
+
/** Oldest hippo binary the store allows, or null when it names none. */
|
|
41
|
+
readonly minCompatibleBinary: string | null;
|
|
42
|
+
/** Row count by table name; null for a table that cannot be counted. */
|
|
43
|
+
readonly tables: JsonObject;
|
|
44
|
+
}
|
|
45
|
+
/** Schema version, oldest allowed binary and row count of every table, for a support bundle; never reads a memory column. */
|
|
46
|
+
export declare function readStoreInventory(hippoRoot: string): StoreInventory;
|
|
47
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// What `hippo doctor` and `hippo support-bundle` read from a store: one read-only open each, plain data out.
|
|
2
|
+
import { countTableRows, ftsRowCounts, getMeta, getSchemaVersion, openHippoDbReadOnly } from '../db/index.js';
|
|
3
|
+
import { onHandle } from './open.js';
|
|
4
|
+
import { listTableNames } from '../db/tables.js';
|
|
5
|
+
import { errorMessage } from '../util/log.js';
|
|
6
|
+
import { compactionCountsAt, tokenTallySince } from './doctor-reads.js';
|
|
7
|
+
import { countFailuresSince } from './failure-log.js';
|
|
8
|
+
import { lastConsolidationAt } from './index-and-stats.js';
|
|
9
|
+
function attempt(read) {
|
|
10
|
+
try {
|
|
11
|
+
return { ok: true, value: read() };
|
|
12
|
+
}
|
|
13
|
+
catch (err) {
|
|
14
|
+
// The caller turns the message into its own check, so the error stops here.
|
|
15
|
+
return { ok: false, message: errorMessage(err) };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/** Everything `hippo doctor` reads from one store; throws when it cannot be opened or its schema version read. */
|
|
19
|
+
export function readStoreHealth(hippoRoot, cutoffs) {
|
|
20
|
+
return onHandle(hippoRoot, (db) => {
|
|
21
|
+
return {
|
|
22
|
+
schemaVersion: getSchemaVersion(db),
|
|
23
|
+
memories: countTableRows(db, 'memories'),
|
|
24
|
+
dormant: countTableRows(db, 'dormant_memories'),
|
|
25
|
+
fts: attempt(() => ftsRowCounts(db)),
|
|
26
|
+
tokens: attempt(() => tokenTallySince(db, cutoffs.since)),
|
|
27
|
+
failures: attempt(() => countFailuresSince(db, cutoffs.since)),
|
|
28
|
+
lastSleep: attempt(() => lastConsolidationAt(db)),
|
|
29
|
+
compactions: attempt(() => compactionCountsAt(db, cutoffs.stuckBefore, cutoffs.transcriptFloor)),
|
|
30
|
+
};
|
|
31
|
+
}, openHippoDbReadOnly);
|
|
32
|
+
}
|
|
33
|
+
/** Schema version, oldest allowed binary and row count of every table, for a support bundle; never reads a memory column. */
|
|
34
|
+
export function readStoreInventory(hippoRoot) {
|
|
35
|
+
return onHandle(hippoRoot, (db) => {
|
|
36
|
+
const schemaVersion = getSchemaVersion(db);
|
|
37
|
+
const minCompatibleBinary = getMeta(db, 'min_compatible_binary', '') || null;
|
|
38
|
+
const tables = {};
|
|
39
|
+
for (const name of listTableNames(db))
|
|
40
|
+
tables[name] = countTableRows(db, name);
|
|
41
|
+
return { schemaVersion, minCompatibleBinary, tables };
|
|
42
|
+
}, openHippoDbReadOnly);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DatabaseSyncLike } from '../db/index.js';
|
|
2
|
+
export interface CompactionCounts {
|
|
3
|
+
total: number;
|
|
4
|
+
summarised: number;
|
|
5
|
+
started: number;
|
|
6
|
+
}
|
|
7
|
+
/** Compaction records in all, those with a summary whose memories never got saved, and those still without a summary; each cutoff is an ISO time. */
|
|
8
|
+
export declare function compactionCountsAt(db: DatabaseSyncLike, stuckBefore: string, transcriptFloor: string): CompactionCounts;
|
|
9
|
+
export interface TokenTally {
|
|
10
|
+
injected: number;
|
|
11
|
+
tokensSent: number;
|
|
12
|
+
tokensReread: number;
|
|
13
|
+
}
|
|
14
|
+
/** Memory blocks injected since `sinceIso`, the tokens they sent and the tokens later model calls re-read. */
|
|
15
|
+
export declare function tokenTallySince(db: DatabaseSyncLike, sinceIso: string): TokenTally;
|
|
16
|
+
//# sourceMappingURL=doctor-reads.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Compaction records in all, those with a summary whose memories never got saved, and those still without a summary; each cutoff is an ISO time. */
|
|
2
|
+
export function compactionCountsAt(db, stuckBefore, transcriptFloor) {
|
|
3
|
+
// SAFETY: COUNT aggregate row.
|
|
4
|
+
const row = db.prepare(`SELECT COUNT(*) AS total,
|
|
5
|
+
COUNT(CASE WHEN status = 'summarised' AND summarised_at < ? THEN 1 END) AS summarised,
|
|
6
|
+
COUNT(CASE WHEN status = 'started' AND started_at < ? AND started_at > ? AND transcript_path IS NOT NULL THEN 1 END) AS started
|
|
7
|
+
FROM compactions`).get(stuckBefore, stuckBefore, transcriptFloor);
|
|
8
|
+
return { total: Number(row?.total ?? 0), summarised: Number(row?.summarised ?? 0), started: Number(row?.started ?? 0) };
|
|
9
|
+
}
|
|
10
|
+
/** Memory blocks injected since `sinceIso`, the tokens they sent and the tokens later model calls re-read. */
|
|
11
|
+
export function tokenTallySince(db, sinceIso) {
|
|
12
|
+
// SAFETY: COUNT/SUM aggregate row.
|
|
13
|
+
const row = db.prepare(`SELECT COUNT(CASE WHEN event = 'inject' THEN 1 END) AS n,
|
|
14
|
+
COALESCE(SUM(CASE WHEN event = 'inject' THEN tokens END), 0) AS t,
|
|
15
|
+
COALESCE(SUM(CASE WHEN event = 'reread' THEN tokens END), 0) AS r
|
|
16
|
+
FROM token_ledger WHERE ts >= ?`).get(sinceIso);
|
|
17
|
+
return { injected: Number(row?.n ?? 0), tokensSent: Number(row?.t ?? 0), tokensReread: Number(row?.r ?? 0) };
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=doctor-reads.js.map
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/** Dormant memories: what sleep does with a faded memory instead of deleting it (config `dormant.enabled`; `retentionDays` bounds how long one is kept).
|
|
2
|
+
* Content stays in `dormant_memories` (schema v44) and the `memories` row goes, so every reader of `memories` stops seeing it, as if deleted.
|
|
3
|
+
* Not the raw archive (`raw_archive`, `archiveRawMemory`), which keeps metadata only. db-taking helpers leave the handle and transaction to the caller. */
|
|
4
|
+
import { type DatabaseSyncLike } from '../db/index.js';
|
|
5
|
+
import type { MemoryEntry } from '../core/memory.js';
|
|
6
|
+
import type { SqlFragment } from './recall-scope.js';
|
|
7
|
+
import type { WriteBudget } from '../util/write-budget.js';
|
|
8
|
+
/** Why a memory went dormant: sleep's decay pass, an imported agent memory whose note was deleted, `hippo projects repair`
|
|
9
|
+
* splitting a two-project merge, or `hippo audit repair` setting aside an automatic memory with a certain defect. */
|
|
10
|
+
export type DormantReason = 'decay' | 'source-deleted' | 'project-repair' | 'quality-repair';
|
|
11
|
+
/** One memory that sleep is moving out of active memory into the dormant store. */
|
|
12
|
+
export interface DormantMove {
|
|
13
|
+
/** The memory as it stood when it faded; restored verbatim apart from its recall clock. */
|
|
14
|
+
entry: MemoryEntry;
|
|
15
|
+
/** Live strength at the moment it went dormant (below the decay threshold). */
|
|
16
|
+
strength: number;
|
|
17
|
+
reason: DormantReason;
|
|
18
|
+
/** ISO time of the sleep that made it dormant. */
|
|
19
|
+
dormantAt: string;
|
|
20
|
+
}
|
|
21
|
+
/** A dormant memory as listed to a user. */
|
|
22
|
+
export interface DormantMemory {
|
|
23
|
+
id: string;
|
|
24
|
+
tenantId: string;
|
|
25
|
+
content: string;
|
|
26
|
+
tags: string[];
|
|
27
|
+
/** Live strength when it went dormant. */
|
|
28
|
+
strength: number;
|
|
29
|
+
/** Why it went dormant: one of the {@link DormantReason} values. */
|
|
30
|
+
reason: string;
|
|
31
|
+
/** ISO time it went dormant. */
|
|
32
|
+
dormantAt: string;
|
|
33
|
+
}
|
|
34
|
+
/** Options for {@link listDormantRows}. */
|
|
35
|
+
export interface ListDormantOpts {
|
|
36
|
+
/** Whitespace-separated terms; a row must contain every term (case-insensitive substring). */
|
|
37
|
+
query?: string;
|
|
38
|
+
/** Maximum rows returned, newest first. Default 20. */
|
|
39
|
+
limit?: number;
|
|
40
|
+
}
|
|
41
|
+
/** Insert (or refresh) the dormant snapshot for `move.entry`; the caller deletes the `memories` row in the same transaction. */
|
|
42
|
+
export declare function insertDormantRow(db: DatabaseSyncLike, move: DormantMove): void;
|
|
43
|
+
/** A dormant memory's stored snapshot plus when and why it went dormant. */
|
|
44
|
+
export interface DormantSnapshot {
|
|
45
|
+
entry: MemoryEntry;
|
|
46
|
+
reason: string;
|
|
47
|
+
strength: number;
|
|
48
|
+
dormantAt: string;
|
|
49
|
+
}
|
|
50
|
+
/** A tenant's stored dormant snapshot, or null when it has none with that id (another tenant's id reads as absent). */
|
|
51
|
+
export declare function readDormantSnapshot(db: DatabaseSyncLike, tenantId: string, id: string): DormantSnapshot | null;
|
|
52
|
+
/** Every dormant memory of a tenant whose snapshot still reads back. */
|
|
53
|
+
export declare function listDormantSnapshots(db: DatabaseSyncLike, tenantId: string): DormantSnapshot[];
|
|
54
|
+
/** Readable snapshots whose entry's source starts with `prefix`; a malformed snapshot is passed over, not an error. */
|
|
55
|
+
export declare function dormantSnapshotsBySourcePrefix(db: DatabaseSyncLike, tenantId: string, prefix: string): DormantSnapshot[];
|
|
56
|
+
/** Put `entry` in place of a tenant's dormant memory `id`, keeping when and why that one went dormant. */
|
|
57
|
+
export declare function replaceDormantEntry(db: DatabaseSyncLike, tenantId: string, id: string, entry: MemoryEntry): void;
|
|
58
|
+
/** Delete a tenant's dormant memory. Returns false when there was none. */
|
|
59
|
+
export declare function deleteDormantRow(db: DatabaseSyncLike, tenantId: string, id: string): boolean;
|
|
60
|
+
/** Deletes the tenant's dormant copies of a rejected digest whose snapshot scope `inReach` admits, so the value cannot linger; returns their ids. */
|
|
61
|
+
export declare function purgeDormantByDigest(db: DatabaseSyncLike, tenantId: string, digest: string, inReach: (scope: string | null) => boolean): string[];
|
|
62
|
+
/** Deletes for good every memory that went dormant before `cutoffIso`, on one handle; returns how many went, or under `dryRun` how many would. */
|
|
63
|
+
export declare function expireDormantBefore(hippoRoot: string, cutoffIso: string, opts: {
|
|
64
|
+
dryRun: boolean;
|
|
65
|
+
budget: WriteBudget;
|
|
66
|
+
busyWaitMs: number;
|
|
67
|
+
}): Promise<number>;
|
|
68
|
+
/** A tenant's dormant memories whose scope `admit` passes, newest first, read on a handle of its own. */
|
|
69
|
+
export declare function loadDormantMemories(hippoRoot: string, tenantId: string, opts?: ListDormantOpts, admit?: SqlFragment): DormantMemory[];
|
|
70
|
+
/** Whether a tenant holds a dormant memory with this id whose scope `admit` passes, read on a handle of its own. */
|
|
71
|
+
export declare function holdsDormantMemory(hippoRoot: string, tenantId: string, id: string, admit?: SqlFragment): boolean;
|
|
72
|
+
/** One restore as the store applies it. The two functions are the caller's policy over plain rows; neither is handed the handle. */
|
|
73
|
+
export interface DormantRestore {
|
|
74
|
+
readonly tenantId: string;
|
|
75
|
+
readonly id: string;
|
|
76
|
+
/** Who restores, for the audit rows. */
|
|
77
|
+
readonly actor: string;
|
|
78
|
+
/** False for a snapshot this caller may not touch, which then reads as missing. */
|
|
79
|
+
readonly inReach: (scope: string | null) => boolean;
|
|
80
|
+
/** The live memory the snapshot comes back as at `now`; a throw refuses before any write. */
|
|
81
|
+
readonly revive: (snapshot: DormantSnapshot, now: Date) => MemoryEntry;
|
|
82
|
+
}
|
|
83
|
+
/** The restored memory, or why nothing was written: no dormant copy in reach, or a live memory already holds the id. */
|
|
84
|
+
export type DormantRestoreOutcome = {
|
|
85
|
+
readonly status: 'restored';
|
|
86
|
+
readonly entry: MemoryEntry;
|
|
87
|
+
} | {
|
|
88
|
+
readonly status: 'missing';
|
|
89
|
+
} | {
|
|
90
|
+
readonly status: 'active';
|
|
91
|
+
};
|
|
92
|
+
/** Brings one dormant memory back on a single handle: the live row, the dormant delete and the audit row commit together, then its mirrors are written. */
|
|
93
|
+
export declare function restoreDormantMemory(hippoRoot: string, restore: DormantRestore): DormantRestoreOutcome;
|
|
94
|
+
/** One permanent delete of a dormant memory. */
|
|
95
|
+
export interface DormantForget {
|
|
96
|
+
readonly tenantId: string;
|
|
97
|
+
readonly id: string;
|
|
98
|
+
/** Who forgets, for the audit row. */
|
|
99
|
+
readonly actor: string;
|
|
100
|
+
/** The scopes this caller may touch; a row outside them reads as missing. */
|
|
101
|
+
readonly admit: SqlFragment;
|
|
102
|
+
}
|
|
103
|
+
/** Deletes a tenant's dormant memory for good and writes its `forget` audit row, on a single handle; false when it holds none `admit` passes. */
|
|
104
|
+
export declare function forgetDormantMemory(hippoRoot: string, forget: DormantForget): boolean;
|
|
105
|
+
//# sourceMappingURL=dormant.d.ts.map
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/** Dormant memories: what sleep does with a faded memory instead of deleting it (config `dormant.enabled`; `retentionDays` bounds how long one is kept).
|
|
2
|
+
* Content stays in `dormant_memories` (schema v44) and the `memories` row goes, so every reader of `memories` stops seeing it, as if deleted.
|
|
3
|
+
* Not the raw archive (`raw_archive`, `archiveRawMemory`), which keeps metadata only. db-taking helpers leave the handle and transaction to the caller. */
|
|
4
|
+
import { closeHippoDb, openHippoDb, withWriteScope, withWriteScopeOr } from '../db/index.js';
|
|
5
|
+
import { onHandle } from './open.js';
|
|
6
|
+
import { RejectedValueError, rejectionDigest } from './rejection.js';
|
|
7
|
+
import { escapeLike } from '../util/escape.js';
|
|
8
|
+
import { warnDamagedColumn } from '../util/stored-json.js';
|
|
9
|
+
import { DAY_MS } from '../util/time.js';
|
|
10
|
+
import { appendAuditEvent } from './audit.js';
|
|
11
|
+
import { audit, auditRejectionRefusal } from './audit-event.js';
|
|
12
|
+
import { entryIdTakenAt } from './entry-reads.js';
|
|
13
|
+
import { writeEntryDbOnly, writeEntryMirrors } from './entry-writes.js';
|
|
14
|
+
const DEFAULT_LIST_LIMIT = 20;
|
|
15
|
+
/** Insert (or refresh) the dormant snapshot for `move.entry`; the caller deletes the `memories` row in the same transaction. */
|
|
16
|
+
export function insertDormantRow(db, move) {
|
|
17
|
+
db.prepare(`
|
|
18
|
+
INSERT INTO dormant_memories (tenant_id, id, content, entry_json, reason, strength, dormant_at)
|
|
19
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
20
|
+
ON CONFLICT(tenant_id, id) DO UPDATE SET
|
|
21
|
+
content = excluded.content,
|
|
22
|
+
entry_json = excluded.entry_json,
|
|
23
|
+
reason = excluded.reason,
|
|
24
|
+
strength = excluded.strength,
|
|
25
|
+
dormant_at = excluded.dormant_at
|
|
26
|
+
`).run(move.entry.tenantId, move.entry.id, move.entry.content, JSON.stringify(move.entry), move.reason, move.strength, move.dormantAt);
|
|
27
|
+
}
|
|
28
|
+
/** Parse a stored snapshot back into a MemoryEntry, or null when the row no longer matches it (edited by hand, or truncated). */
|
|
29
|
+
function parseSnapshot(row) {
|
|
30
|
+
try {
|
|
31
|
+
// SAFETY: entry_json is only written by insertDormantRow from a MemoryEntry;
|
|
32
|
+
// the id / tenant / content checks below reject a row edited out of shape.
|
|
33
|
+
const entry = JSON.parse(row.entry_json);
|
|
34
|
+
if (entry.id !== row.id || entry.tenantId !== row.tenant_id || entry.content !== row.content) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return entry;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// A row that will not parse is out of shape, so it is not restorable.
|
|
41
|
+
warnDamagedColumn({ table: 'dormant_memories', id: row.id, column: 'entry_json' }, 'not valid JSON');
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function rowToDormantMemory(row) {
|
|
46
|
+
const entry = parseSnapshot(row);
|
|
47
|
+
return {
|
|
48
|
+
id: row.id,
|
|
49
|
+
tenantId: row.tenant_id,
|
|
50
|
+
content: row.content,
|
|
51
|
+
tags: entry && Array.isArray(entry.tags) ? entry.tags.map(String) : [],
|
|
52
|
+
strength: row.strength,
|
|
53
|
+
reason: row.reason,
|
|
54
|
+
dormantAt: row.dormant_at,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
// The snapshot's scope as a `scope` column, so recall-scope's SQL fragments read it as they read memories.scope.
|
|
58
|
+
const DORMANT_WITH_SCOPE = `(SELECT *, CASE WHEN json_valid(entry_json) THEN json_extract(entry_json, '$.scope') END AS scope FROM dormant_memories)`;
|
|
59
|
+
const EVERY_SCOPE = { sql: '1', params: [] };
|
|
60
|
+
/** A tenant's dormant memories whose scope `admit` passes, newest first, optionally filtered by search terms. */
|
|
61
|
+
function listDormantRows(db, tenantId, opts = {}, admit = EVERY_SCOPE) {
|
|
62
|
+
const terms = (opts.query ?? '').trim().split(/\s+/).filter((t) => t.length > 0);
|
|
63
|
+
const limit = opts.limit !== undefined && Number.isFinite(opts.limit) && opts.limit >= 1
|
|
64
|
+
? Math.floor(opts.limit)
|
|
65
|
+
: DEFAULT_LIST_LIMIT;
|
|
66
|
+
const termClauses = terms.map(() => ` AND content LIKE ? ESCAPE '\\'`).join('');
|
|
67
|
+
// SAFETY: rows' shape matches the seven columns named in the SELECT.
|
|
68
|
+
const rows = db.prepare(`SELECT tenant_id, id, content, entry_json, reason, strength, dormant_at
|
|
69
|
+
FROM ${DORMANT_WITH_SCOPE}
|
|
70
|
+
WHERE tenant_id = ? AND ${admit.sql}${termClauses}
|
|
71
|
+
ORDER BY dormant_at DESC, id ASC
|
|
72
|
+
LIMIT ?`).all(tenantId, ...admit.params, ...terms.map((t) => `%${escapeLike(t)}%`), limit);
|
|
73
|
+
return rows.map(rowToDormantMemory);
|
|
74
|
+
}
|
|
75
|
+
/** A tenant's stored dormant snapshot, or null when it has none with that id (another tenant's id reads as absent). */
|
|
76
|
+
export function readDormantSnapshot(db, tenantId, id) {
|
|
77
|
+
// SAFETY: row's shape matches the seven columns named in the SELECT.
|
|
78
|
+
const row = db.prepare(`SELECT tenant_id, id, content, entry_json, reason, strength, dormant_at
|
|
79
|
+
FROM dormant_memories WHERE tenant_id = ? AND id = ?`).get(tenantId, id);
|
|
80
|
+
return row ? toSnapshot(row) : null;
|
|
81
|
+
}
|
|
82
|
+
/** Every dormant memory of a tenant whose snapshot still reads back. */
|
|
83
|
+
export function listDormantSnapshots(db, tenantId) {
|
|
84
|
+
// SAFETY: rows' shape matches the seven columns named in the SELECT.
|
|
85
|
+
const rows = db.prepare(`SELECT tenant_id, id, content, entry_json, reason, strength, dormant_at
|
|
86
|
+
FROM dormant_memories WHERE tenant_id = ?`).all(tenantId);
|
|
87
|
+
return rows.flatMap((row) => toSnapshot(row) ?? []);
|
|
88
|
+
}
|
|
89
|
+
/** Readable snapshots whose entry's source starts with `prefix`; a malformed snapshot is passed over, not an error. */
|
|
90
|
+
export function dormantSnapshotsBySourcePrefix(db, tenantId, prefix) {
|
|
91
|
+
// SAFETY: rows' shape matches the seven columns named in the SELECT.
|
|
92
|
+
const rows = db.prepare(`SELECT tenant_id, id, content, entry_json, reason, strength, dormant_at
|
|
93
|
+
FROM dormant_memories
|
|
94
|
+
WHERE tenant_id = ?
|
|
95
|
+
AND CASE WHEN json_valid(entry_json) THEN json_extract(entry_json, '$.source') END LIKE ? ESCAPE '\\'`).all(tenantId, `${escapeLike(prefix)}%`);
|
|
96
|
+
return rows.flatMap((row) => toSnapshot(row) ?? []).filter((s) => String(s.entry.source).startsWith(prefix));
|
|
97
|
+
}
|
|
98
|
+
function toSnapshot(row) {
|
|
99
|
+
const entry = parseSnapshot(row);
|
|
100
|
+
return entry ? { entry, reason: row.reason, strength: row.strength, dormantAt: row.dormant_at } : null;
|
|
101
|
+
}
|
|
102
|
+
/** Put `entry` in place of a tenant's dormant memory `id`, keeping when and why that one went dormant. */
|
|
103
|
+
export function replaceDormantEntry(db, tenantId, id, entry) {
|
|
104
|
+
db.prepare(`UPDATE dormant_memories SET id = ?, content = ?, entry_json = ? WHERE tenant_id = ? AND id = ?`)
|
|
105
|
+
.run(entry.id, entry.content, JSON.stringify(entry), tenantId, id);
|
|
106
|
+
}
|
|
107
|
+
/** Whether a tenant has a dormant memory with this id whose scope `admit` passes (snapshot readable or not). */
|
|
108
|
+
function hasDormantRow(db, tenantId, id, admit = EVERY_SCOPE) {
|
|
109
|
+
return db.prepare(`SELECT 1 FROM ${DORMANT_WITH_SCOPE} WHERE tenant_id = ? AND id = ? AND ${admit.sql}`).get(tenantId, id, ...admit.params) !== undefined;
|
|
110
|
+
}
|
|
111
|
+
/** Delete a tenant's dormant memory. Returns false when there was none. */
|
|
112
|
+
export function deleteDormantRow(db, tenantId, id) {
|
|
113
|
+
const result = db.prepare(`DELETE FROM dormant_memories WHERE tenant_id = ? AND id = ?`).run(tenantId, id);
|
|
114
|
+
return Number(result.changes ?? 0) > 0;
|
|
115
|
+
}
|
|
116
|
+
/** Deletes the tenant's dormant copies of a rejected digest whose snapshot scope `inReach` admits, so the value cannot linger; returns their ids. */
|
|
117
|
+
export function purgeDormantByDigest(db, tenantId, digest, inReach) {
|
|
118
|
+
// SAFETY: rows' shape matches the three columns named in the SELECT.
|
|
119
|
+
const rows = db.prepare(`SELECT id, content, CASE WHEN json_valid(entry_json) THEN json_extract(entry_json, '$.scope') END AS scope
|
|
120
|
+
FROM dormant_memories WHERE tenant_id = ?`).all(tenantId);
|
|
121
|
+
const removed = [];
|
|
122
|
+
for (const row of rows) {
|
|
123
|
+
if (rejectionDigest(row.content) !== digest || !inReach(row.scope))
|
|
124
|
+
continue;
|
|
125
|
+
deleteDormantRow(db, tenantId, row.id);
|
|
126
|
+
removed.push(row.id);
|
|
127
|
+
}
|
|
128
|
+
return removed;
|
|
129
|
+
}
|
|
130
|
+
function expiredDormantKeys(db, cutoffIso) {
|
|
131
|
+
const sql = `SELECT tenant_id AS tenantId, id FROM dormant_memories WHERE dormant_at < ?`;
|
|
132
|
+
// SAFETY: rows' shape matches the two columns named in the SELECT.
|
|
133
|
+
return db.prepare(sql).all(cutoffIso);
|
|
134
|
+
}
|
|
135
|
+
function deleteExpiredDormantRow(db, key, cutoffIso) {
|
|
136
|
+
const sql = `DELETE FROM dormant_memories WHERE tenant_id = ? AND id = ? AND dormant_at < ?`;
|
|
137
|
+
return Number(db.prepare(sql).run(key.tenantId, key.id, cutoffIso).changes ?? 0);
|
|
138
|
+
}
|
|
139
|
+
/** Deletes `keys` in transactions of about `budget.holdMs`, letting other writers in between; returns how many went. */
|
|
140
|
+
async function expireInChunks(db, keys, cutoffIso, budget) {
|
|
141
|
+
let gone = 0;
|
|
142
|
+
let next = 0;
|
|
143
|
+
let committedAt = 0;
|
|
144
|
+
while (next < keys.length) {
|
|
145
|
+
if (next > 0)
|
|
146
|
+
await budget.pause(committedAt);
|
|
147
|
+
withWriteScope(db, 'expire_dormant_chunk', () => {
|
|
148
|
+
const begunAt = budget.clock();
|
|
149
|
+
do
|
|
150
|
+
gone += deleteExpiredDormantRow(db, keys[next++], cutoffIso);
|
|
151
|
+
while (next < keys.length && budget.clock() - begunAt < budget.holdMs);
|
|
152
|
+
});
|
|
153
|
+
committedAt = budget.clock();
|
|
154
|
+
}
|
|
155
|
+
return gone;
|
|
156
|
+
}
|
|
157
|
+
/** Deletes for good every memory that went dormant before `cutoffIso`, on one handle; returns how many went, or under `dryRun` how many would. */
|
|
158
|
+
export async function expireDormantBefore(hippoRoot, cutoffIso, opts) {
|
|
159
|
+
const db = openHippoDb(hippoRoot, { busyWaitMs: opts.busyWaitMs });
|
|
160
|
+
try {
|
|
161
|
+
// The keys come from a read, so a run with nothing to expire never takes the write lock.
|
|
162
|
+
const keys = expiredDormantKeys(db, cutoffIso);
|
|
163
|
+
return opts.dryRun ? keys.length : await expireInChunks(db, keys, cutoffIso, opts.budget);
|
|
164
|
+
}
|
|
165
|
+
finally {
|
|
166
|
+
closeHippoDb(db);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/** A tenant's dormant memories whose scope `admit` passes, newest first, read on a handle of its own. */
|
|
170
|
+
export function loadDormantMemories(hippoRoot, tenantId, opts = {}, admit = EVERY_SCOPE) {
|
|
171
|
+
return onHandle(hippoRoot, (db) => {
|
|
172
|
+
return listDormantRows(db, tenantId, opts, admit);
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/** Whether a tenant holds a dormant memory with this id whose scope `admit` passes, read on a handle of its own. */
|
|
176
|
+
export function holdsDormantMemory(hippoRoot, tenantId, id, admit = EVERY_SCOPE) {
|
|
177
|
+
return onHandle(hippoRoot, (db) => {
|
|
178
|
+
return hasDormantRow(db, tenantId, id, admit);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
function auditDormantRestore(db, restore, snapshot, now) {
|
|
182
|
+
appendAuditEvent(db, {
|
|
183
|
+
tenantId: restore.tenantId,
|
|
184
|
+
actor: restore.actor,
|
|
185
|
+
op: 'dormant_restore',
|
|
186
|
+
targetId: restore.id,
|
|
187
|
+
metadata: {
|
|
188
|
+
reason: snapshot.reason,
|
|
189
|
+
strengthAtDormancy: snapshot.strength,
|
|
190
|
+
dormantAt: snapshot.dormantAt,
|
|
191
|
+
daysDormant: Math.max(0, (now.getTime() - Date.parse(snapshot.dormantAt)) / DAY_MS),
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
function restoreInWriteScope(db, restore) {
|
|
196
|
+
return withWriteScopeOr(db, 'restore_dormant', (rollback) => {
|
|
197
|
+
const snapshot = readDormantSnapshot(db, restore.tenantId, restore.id);
|
|
198
|
+
if (!snapshot || !restore.inReach(snapshot.entry.scope ?? null))
|
|
199
|
+
return rollback({ status: 'missing' });
|
|
200
|
+
if (entryIdTakenAt(db, restore.id))
|
|
201
|
+
return rollback({ status: 'active' });
|
|
202
|
+
const now = new Date();
|
|
203
|
+
const entry = restore.revive(snapshot, now);
|
|
204
|
+
writeEntryDbOnly(db, entry, { actor: restore.actor });
|
|
205
|
+
deleteDormantRow(db, restore.tenantId, restore.id);
|
|
206
|
+
// A restore is a labelled "forgot it, then needed it" event, the signal a learned lifecycle trains on.
|
|
207
|
+
// Same write scope as the restore, so the label exists exactly when the restore does.
|
|
208
|
+
auditDormantRestore(db, restore, snapshot, now);
|
|
209
|
+
return { status: 'restored', entry };
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
/** Brings one dormant memory back on a single handle: the live row, the dormant delete and the audit row commit together, then its mirrors are written. */
|
|
213
|
+
export function restoreDormantMemory(hippoRoot, restore) {
|
|
214
|
+
return onHandle(hippoRoot, (db) => {
|
|
215
|
+
let outcome;
|
|
216
|
+
try {
|
|
217
|
+
outcome = restoreInWriteScope(db, restore);
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
// Written after the rollback, so the refusal row outlives it.
|
|
221
|
+
if (error instanceof RejectedValueError)
|
|
222
|
+
auditRejectionRefusal(db, error, restore.actor);
|
|
223
|
+
throw error;
|
|
224
|
+
}
|
|
225
|
+
if (outcome.status === 'restored')
|
|
226
|
+
writeEntryMirrors(hippoRoot, outcome.entry);
|
|
227
|
+
return outcome;
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
/** Deletes a tenant's dormant memory for good and writes its `forget` audit row, on a single handle; false when it holds none `admit` passes. */
|
|
231
|
+
export function forgetDormantMemory(hippoRoot, forget) {
|
|
232
|
+
const { tenantId, id, actor, admit } = forget;
|
|
233
|
+
return onHandle(hippoRoot, (db) => {
|
|
234
|
+
if (!hasDormantRow(db, tenantId, id, admit) || !deleteDormantRow(db, tenantId, id))
|
|
235
|
+
return false;
|
|
236
|
+
// Best-effort, like every other forget audit row: the delete stands.
|
|
237
|
+
audit(db, 'forget', { tenantId, actor, targetId: id, metadata: { dormant: true } });
|
|
238
|
+
return true;
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=dormant.js.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Optional embedding-based semantic search for Hippo.
|
|
2
|
+
* Uses @huggingface/transformers (local, no API keys, ~22MB model); falls back silently if not installed. */
|
|
3
|
+
import { MemoryEntry } from '../../core/memory.js';
|
|
4
|
+
import { EMBEDDING_MODEL_META_KEY } from '../../db/vector-store.js';
|
|
5
|
+
import { type EmbeddingProvider } from './provider.js';
|
|
6
|
+
import type { HippoStore } from '../index.js';
|
|
7
|
+
export { EMBEDDING_MODEL_META_KEY };
|
|
8
|
+
/** Bump when `embeddingInputText` changes existing vectors; folded into the stored index identity (`embeddingIndexIdentity`) so it reindexes like a model
|
|
9
|
+
* change. Format 2 = `path:*` tags excluded; format 1 (implicit, no suffix) included them. */
|
|
10
|
+
export declare const EMBED_TEXT_FORMAT = 2;
|
|
11
|
+
/** Stored-index identity for a provider id: folds `EMBED_TEXT_FORMAT` in so a model or text-format change invalidates the index. The ONE choke point for
|
|
12
|
+
* compare (`embeddingModelRequiresReindex`) and save (`saveStoredEmbeddingModel`); they MUST version identically or every call reindexes. */
|
|
13
|
+
export declare function embeddingIndexIdentity(providerId: string): string;
|
|
14
|
+
/** Text embedded for an entry: content plus tags, space-joined and trimmed, minus `path:*` tags.
|
|
15
|
+
* `path:*` tags derive from cwd, so identical content would embed differently per store location; path relevance is handled by `pathOverlapScore`. */
|
|
16
|
+
export declare function embeddingInputText(entry: {
|
|
17
|
+
content: string;
|
|
18
|
+
tags: string[];
|
|
19
|
+
}): string;
|
|
20
|
+
/** Persist the stored-index identity for `model` (see `embeddingIndexIdentity`); versioning happens here, not at call sites,
|
|
21
|
+
* and must stay consistent with the compare side in `embeddingModelRequiresReindex`. */
|
|
22
|
+
export declare function saveStoredEmbeddingModel(hippoRoot: string, model: string): void;
|
|
23
|
+
/** The one rebuild rule every store applies to its indexed model. */
|
|
24
|
+
export declare function indexNeedsRebuild(indexed: string | null, providerId: string): boolean;
|
|
25
|
+
export declare function resolveIndexedEmbeddingModel(hippoRoot: string, index?: Record<string, number[]>): string | null;
|
|
26
|
+
export declare function embeddingModelRequiresReindex(hippoRoot: string, model: string, index?: Record<string, number[]>): boolean;
|
|
27
|
+
/** Cosine similarity; handles unnormalized vectors, returns 0 for empty or mismatched vectors. */
|
|
28
|
+
export declare function cosineSimilarity(a: number[], b: number[]): number;
|
|
29
|
+
/** `cosineSimilarity` over any indexable vectors; a Float32 view reads the same doubles as its number[] copy, so the score is the same. */
|
|
30
|
+
export declare function cosineOf(a: ArrayLike<number>, b: ArrayLike<number>): number;
|
|
31
|
+
/** Embed a single memory entry and cache the result in the embedding index; with `store`, through its vectorWrites, never opening hippo.db. */
|
|
32
|
+
export declare function embedMemory(hippoRoot: string, entry: MemoryEntry, model?: string, store?: HippoStore): Promise<void>;
|
|
33
|
+
/** Embeds every entry with no cached vector, prunes vectors of deleted memories, and returns how many it embedded; `provider` defaults to the
|
|
34
|
+
* configured one. With `store`, every tenant's memories with no vector for the provider's model go through its `vectorWrites`, never hippo.db. */
|
|
35
|
+
export declare function embedAll(hippoRoot: string, model?: string, provider?: EmbeddingProvider, store?: HippoStore): Promise<number>;
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|