hippo-memory 1.72.0 → 2.1.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 +6 -4
- package/dist/agent-memories/apply.d.ts +7 -5
- package/dist/agent-memories/apply.js +66 -39
- package/dist/agent-memories/claude-code.d.ts +8 -2
- package/dist/agent-memories/claude-code.js +26 -7
- package/dist/agent-memories/copilot.js +2 -1
- package/dist/agent-memories/files.js +2 -1
- package/dist/agent-memories/legacy.d.ts +6 -3
- package/dist/agent-memories/legacy.js +35 -14
- package/dist/agent-memories/markdown.d.ts +3 -1
- package/dist/agent-memories/markdown.js +3 -1
- package/dist/agent-memories/openclaw.js +5 -2
- package/dist/agent-memories/plan.js +11 -1
- package/dist/agent-memories/project-folds.js +2 -1
- package/dist/agent-memories/report.d.ts +4 -1
- package/dist/agent-memories/report.js +43 -9
- package/dist/agent-memories/source.d.ts +8 -2
- package/dist/agent-memories/source.js +11 -3
- package/dist/agent-memories/sync.d.ts +7 -2
- package/dist/agent-memories/sync.js +141 -101
- package/dist/api/assemble.d.ts +6 -4
- package/dist/api/assemble.js +11 -5
- package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
- package/dist/api/auth/audit.js +58 -0
- package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -16
- package/dist/api/{auth.js → auth/auth.js} +66 -54
- package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
- package/dist/api/{quarantine.js → auth/quarantine.js} +8 -7
- package/dist/api/auth/session-owners.d.ts +10 -0
- package/dist/api/auth/session-owners.js +35 -0
- package/dist/api/availability.d.ts +3 -1
- package/dist/api/availability.js +3 -1
- package/dist/api/busy.d.ts +2 -0
- package/dist/api/busy.js +2 -0
- package/dist/api/cli-surface.d.ts +6 -0
- package/dist/api/cli-surface.js +6 -0
- package/dist/api/config-of.d.ts +5 -0
- package/dist/api/config-of.js +6 -0
- package/dist/api/context-auto.d.ts +4 -1
- package/dist/api/context-auto.js +14 -4
- package/dist/api/context-render.js +14 -7
- package/dist/api/context-select.d.ts +4 -1
- package/dist/api/context-select.js +31 -34
- package/dist/api/context-types.d.ts +38 -12
- package/dist/api/context.d.ts +8 -5
- package/dist/api/context.js +120 -63
- package/dist/api/continuity.d.ts +24 -21
- package/dist/api/continuity.js +18 -20
- package/dist/api/correction-latency.d.ts +3 -1
- package/dist/api/correction-latency.js +3 -1
- package/dist/api/error-reply.d.ts +4 -1
- package/dist/api/error-reply.js +12 -3
- package/dist/api/index.d.ts +39 -23
- package/dist/api/index.js +21 -23
- package/dist/api/instruction-detect.d.ts +4 -1
- package/dist/api/instruction-detect.js +75 -20
- package/dist/api/ledger-db.d.ts +15 -11
- package/dist/api/ledger-db.js +21 -23
- package/dist/api/memories/conflicts.d.ts +33 -0
- package/dist/api/memories/conflicts.js +67 -0
- package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
- package/dist/api/{forget.js → memories/forget.js} +23 -17
- package/dist/api/memories/memories.d.ts +27 -0
- package/dist/api/memories/memories.js +52 -0
- package/dist/api/memories/outcome.d.ts +22 -0
- package/dist/api/memories/outcome.js +28 -0
- package/dist/api/memories/promote.d.ts +40 -0
- package/dist/api/memories/promote.js +76 -0
- package/dist/api/memories/refine.d.ts +10 -0
- package/dist/api/memories/refine.js +12 -0
- package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +17 -9
- package/dist/api/{remember-local.js → memories/remember-local.js} +46 -24
- package/dist/api/{remember.d.ts → memories/remember.d.ts} +22 -13
- package/dist/api/{remember.js → memories/remember.js} +50 -32
- package/dist/api/objects/cards.d.ts +39 -0
- package/dist/api/{cards.js → objects/cards.js} +12 -14
- package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
- package/dist/api/{drill-down.js → objects/drill-down.js} +7 -7
- package/dist/api/objects/goals.d.ts +18 -0
- package/dist/api/{goals.js → objects/goals.js} +12 -12
- package/dist/api/objects/graph.d.ts +11 -0
- package/dist/api/objects/graph.js +16 -0
- package/dist/api/objects/objects.d.ts +9 -0
- package/dist/api/{objects.js → objects/objects.js} +2 -3
- package/dist/api/objects/predictions.d.ts +11 -0
- package/dist/api/{predictions.js → objects/predictions.js} +7 -5
- package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
- package/dist/api/{projects.js → objects/projects.js} +8 -4
- package/dist/api/pilot-arm.d.ts +8 -4
- package/dist/api/pilot-arm.js +5 -4
- package/dist/api/prompt-hook.d.ts +35 -20
- package/dist/api/prompt-hook.js +66 -44
- package/dist/api/provenance-coverage.d.ts +3 -1
- package/dist/api/provenance-coverage.js +3 -1
- package/dist/api/recall/finish.d.ts +185 -0
- package/dist/api/recall/finish.js +301 -0
- package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
- package/dist/api/{recall-pipeline.js → recall/pipeline.js} +185 -101
- package/dist/api/recall/recall.d.ts +6 -0
- package/dist/api/{recall.js → recall/recall.js} +116 -72
- package/dist/api/recall/render.d.ts +39 -0
- package/dist/api/recall/render.js +60 -0
- package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
- package/dist/api/recall/request.js +261 -0
- package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
- package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
- package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -68
- package/dist/api/{recall-types.js → recall/types.js} +1 -1
- package/dist/api/session-end.d.ts +36 -8
- package/dist/api/session-end.js +71 -25
- package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
- package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
- package/dist/api/sleep/dormant.d.ts +25 -0
- package/dist/api/sleep/dormant.js +64 -0
- package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
- package/dist/api/sleep/learn.js +138 -0
- package/dist/api/sleep/sleep-run.d.ts +38 -0
- package/dist/api/{sleep-run.js → sleep/sleep-run.js} +54 -45
- package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
- package/dist/api/sleep/sleep.js +9 -0
- package/dist/api/status.d.ts +3 -1
- package/dist/api/status.js +3 -1
- package/dist/api/store-init.d.ts +4 -1
- package/dist/api/store-init.js +4 -1
- package/dist/api/tokens.d.ts +10 -9
- package/dist/api/tokens.js +9 -10
- package/dist/api/types.d.ts +27 -12
- package/dist/api/types.js +13 -4
- package/dist/capture/caller-session.d.ts +8 -2
- package/dist/capture/caller-session.js +16 -6
- package/dist/capture/capture-error.d.ts +3 -1
- package/dist/capture/capture-error.js +3 -1
- package/dist/capture/codex-patch.js +7 -2
- package/dist/capture/command.d.ts +4 -2
- package/dist/capture/command.js +34 -15
- package/dist/capture/compact-resume-caller.js +15 -8
- package/dist/capture/compact.d.ts +8 -5
- package/dist/capture/compact.js +34 -23
- package/dist/capture/compaction-items-caller.js +9 -3
- package/dist/capture/compaction-record.d.ts +4 -3
- package/dist/capture/compaction-record.js +20 -12
- package/dist/capture/compaction-spool.d.ts +18 -9
- package/dist/capture/compaction-spool.js +105 -63
- package/dist/capture/copilot-transcript.d.ts +11 -3
- package/dist/capture/copilot-transcript.js +16 -6
- package/dist/capture/extract.js +20 -8
- package/dist/capture/failure-caller.js +23 -12
- package/dist/capture/failure-reading.d.ts +10 -3
- package/dist/capture/failure-reading.js +24 -7
- package/dist/capture/pre-compact-caller.js +11 -4
- package/dist/capture/session-digest.d.ts +15 -4
- package/dist/capture/session-digest.js +39 -13
- package/dist/capture/session-end-caller.d.ts +4 -1
- package/dist/capture/session-end-caller.js +20 -8
- package/dist/capture/session-texts.d.ts +6 -2
- package/dist/capture/session-texts.js +22 -7
- package/dist/capture/session-worker.d.ts +4 -2
- package/dist/capture/session-worker.js +58 -17
- package/dist/capture/transcript.d.ts +13 -4
- package/dist/capture/transcript.js +32 -10
- package/dist/capture/working-state.d.ts +13 -4
- package/dist/capture/working-state.js +50 -56
- package/dist/cli/api-context.d.ts +14 -2
- package/dist/cli/api-context.js +45 -2
- package/dist/cli/audit.js +33 -33
- package/dist/cli/auth.js +23 -31
- package/dist/cli/briefs.d.ts +1 -1
- package/dist/cli/briefs.js +20 -15
- package/dist/cli/card.d.ts +1 -1
- package/dist/cli/card.js +56 -73
- package/dist/cli/client.d.ts +12 -5
- package/dist/cli/client.js +53 -23
- package/dist/cli/compact-resume-payload.d.ts +4 -1
- package/dist/cli/compact-resume-payload.js +12 -5
- package/dist/cli/context.js +43 -18
- package/dist/cli/continuity.d.ts +5 -5
- package/dist/cli/continuity.js +90 -107
- package/dist/cli/curate.d.ts +5 -4
- package/dist/cli/curate.js +55 -77
- package/dist/cli/dag.d.ts +1 -1
- package/dist/cli/dag.js +14 -17
- package/dist/cli/decisions.js +30 -30
- package/dist/cli/eval.js +16 -21
- package/dist/cli/exit.d.ts +4 -1
- package/dist/cli/exit.js +10 -2
- package/dist/cli/explain.js +12 -11
- package/dist/cli/flag-values.d.ts +1 -1
- package/dist/cli/flag-values.js +9 -18
- package/dist/cli/github.d.ts +6 -0
- package/dist/cli/github.js +25 -13
- package/dist/cli/goals.d.ts +1 -1
- package/dist/cli/goals.js +39 -56
- package/dist/cli/graph.d.ts +1 -1
- package/dist/cli/graph.js +15 -11
- package/dist/cli/hook-runtime.d.ts +34 -10
- package/dist/cli/hook-runtime.js +41 -16
- package/dist/cli/incidents.d.ts +1 -1
- package/dist/cli/incidents.js +25 -25
- package/dist/cli/init.d.ts +1 -1
- package/dist/cli/init.js +35 -20
- package/dist/cli/install-steps.d.ts +12 -3
- package/dist/cli/install-steps.js +42 -18
- package/dist/cli/last-sleep.d.ts +4 -1
- package/dist/cli/last-sleep.js +9 -4
- package/dist/cli/maintenance.d.ts +1 -1
- package/dist/cli/maintenance.js +11 -12
- package/dist/cli/notes.d.ts +1 -1
- package/dist/cli/notes.js +8 -5
- package/dist/cli/object-verbs.d.ts +5 -5
- package/dist/cli/object-verbs.js +13 -16
- package/dist/cli/open-browser.js +11 -2
- package/dist/cli/playbooks.d.ts +3 -3
- package/dist/cli/playbooks.js +40 -32
- package/dist/cli/predictions.js +17 -22
- package/dist/cli/print.js +4 -2
- package/dist/cli/projects.js +21 -11
- package/dist/cli/quality-repair-once.d.ts +1 -1
- package/dist/cli/quality-repair-once.js +7 -6
- package/dist/cli/recall.js +129 -93
- package/dist/cli/refine-llm.d.ts +15 -4
- package/dist/cli/refine-llm.js +17 -7
- package/dist/cli/remember.js +51 -55
- package/dist/cli/scheduler.d.ts +4 -1
- package/dist/cli/scheduler.js +9 -5
- package/dist/cli/serve.js +28 -18
- package/dist/cli/session-hooks.d.ts +2 -6
- package/dist/cli/session-hooks.js +140 -112
- package/dist/cli/setup.d.ts +1 -1
- package/dist/cli/setup.js +56 -34
- package/dist/cli/shared.d.ts +4 -2
- package/dist/cli/shared.js +26 -11
- package/dist/cli/slack.js +15 -24
- package/dist/cli/sleep-render.d.ts +3 -1
- package/dist/cli/sleep-render.js +8 -5
- package/dist/cli/sleep.js +16 -8
- package/dist/cli/status.d.ts +4 -4
- package/dist/cli/status.js +32 -27
- package/dist/cli/stdin.d.ts +10 -3
- package/dist/cli/stdin.js +10 -3
- package/dist/cli/transfer.d.ts +4 -4
- package/dist/cli/transfer.js +97 -82
- package/dist/cli/usage.d.ts +1 -1
- package/dist/cli/usage.js +1 -1
- package/dist/cli/verb-row.d.ts +2 -0
- package/dist/cli/verbs/health.js +2 -0
- package/dist/cli/verbs/memory.js +47 -53
- package/dist/cli/verbs/objects.js +16 -7
- package/dist/cli/verbs/sessions.js +4 -2
- package/dist/cli/versioned-verbs.d.ts +8 -7
- package/dist/cli/versioned-verbs.js +31 -21
- package/dist/cli.js +14 -18
- package/dist/connectors/dlq.d.ts +6 -6
- package/dist/connectors/dlq.js +12 -7
- package/dist/connectors/github/backfill.d.ts +4 -4
- package/dist/connectors/github/backfill.js +6 -4
- package/dist/connectors/github/deletion.d.ts +6 -4
- package/dist/connectors/github/deletion.js +5 -4
- package/dist/connectors/github/dlq.d.ts +8 -6
- package/dist/connectors/github/dlq.js +11 -5
- package/dist/connectors/github/ingest.d.ts +2 -2
- package/dist/connectors/github/ingest.js +9 -5
- package/dist/connectors/github/octokit-client.d.ts +3 -1
- package/dist/connectors/github/octokit-client.js +7 -2
- package/dist/connectors/github/ratelimit.d.ts +6 -2
- package/dist/connectors/github/ratelimit.js +6 -2
- package/dist/connectors/github/signature.d.ts +14 -3
- package/dist/connectors/github/signature.js +17 -3
- package/dist/connectors/github/tenant-routing.d.ts +6 -4
- package/dist/connectors/github/tenant-routing.js +6 -5
- package/dist/connectors/github/transform.js +50 -67
- package/dist/connectors/github/types.d.ts +10 -3
- package/dist/connectors/github/types.js +6 -2
- package/dist/connectors/github/webhook.d.ts +5 -5
- package/dist/connectors/github/webhook.js +36 -23
- package/dist/connectors/ingest.d.ts +5 -3
- package/dist/connectors/ingest.js +3 -3
- package/dist/connectors/slack/backfill.d.ts +5 -5
- package/dist/connectors/slack/backfill.js +3 -3
- package/dist/connectors/slack/deletion.d.ts +4 -4
- package/dist/connectors/slack/deletion.js +6 -5
- package/dist/connectors/slack/dlq.d.ts +4 -4
- package/dist/connectors/slack/dlq.js +6 -6
- package/dist/connectors/slack/ingest.d.ts +6 -4
- package/dist/connectors/slack/ingest.js +5 -4
- package/dist/connectors/slack/signature.d.ts +4 -1
- package/dist/connectors/slack/tenant-routing.d.ts +6 -4
- package/dist/connectors/slack/tenant-routing.js +6 -5
- package/dist/connectors/slack/transform.d.ts +6 -2
- package/dist/connectors/slack/transform.js +6 -2
- package/dist/connectors/slack/types.d.ts +3 -1
- package/dist/connectors/slack/web-client.js +8 -3
- package/dist/connectors/slack/webhook.d.ts +5 -5
- package/dist/connectors/slack/webhook.js +19 -11
- package/dist/connectors/slack/workspaces.d.ts +7 -3
- package/dist/connectors/slack/workspaces.js +7 -3
- package/dist/connectors/store.d.ts +8 -0
- package/dist/connectors/store.js +2 -0
- package/dist/consolidate/conflicts.js +24 -10
- package/dist/consolidate/dag-summary.js +2 -1
- package/dist/consolidate/dag.d.ts +10 -5
- package/dist/consolidate/dag.js +45 -39
- package/dist/consolidate/decay.js +19 -6
- package/dist/consolidate/dedupe.d.ts +14 -5
- package/dist/consolidate/dedupe.js +28 -17
- package/dist/consolidate/flush-units.d.ts +4 -1
- package/dist/consolidate/flush-units.js +4 -1
- package/dist/consolidate/half-life-migration.d.ts +18 -8
- package/dist/consolidate/half-life-migration.js +48 -18
- package/dist/consolidate/llm-passes.js +27 -11
- package/dist/consolidate/memory-value-weights.d.ts +6 -2
- package/dist/consolidate/memory-value-weights.js +6 -2
- package/dist/consolidate/memory-value.d.ts +30 -10
- package/dist/consolidate/memory-value.js +37 -14
- package/dist/consolidate/merge.d.ts +4 -1
- package/dist/consolidate/merge.js +47 -37
- package/dist/consolidate/overlap-index.d.ts +8 -2
- package/dist/consolidate/overlap-index.js +11 -4
- package/dist/consolidate/physics-pass.d.ts +3 -1
- package/dist/consolidate/physics-pass.js +10 -7
- package/dist/consolidate/replay.d.ts +11 -4
- package/dist/consolidate/replay.js +19 -7
- package/dist/consolidate/run.d.ts +13 -5
- package/dist/consolidate/run.js +4 -4
- package/dist/consolidate/sleep.d.ts +14 -6
- package/dist/consolidate/sleep.js +42 -39
- package/dist/consolidate/trace.d.ts +7 -2
- package/dist/consolidate/trace.js +7 -2
- package/dist/consolidate/traces.js +27 -30
- package/dist/core/ablation.d.ts +9 -3
- package/dist/core/ablation.js +14 -4
- package/dist/core/active-scope.d.ts +3 -1
- package/dist/core/active-scope.js +3 -1
- package/dist/core/agent-memory-tools.d.ts +2 -0
- package/dist/core/agent-memory-tools.js +2 -0
- package/dist/core/ambient.d.ts +4 -3
- package/dist/core/ambient.js +8 -6
- package/dist/core/api-errors.d.ts +9 -3
- package/dist/core/api-errors.js +9 -3
- package/dist/core/capture-contract.d.ts +4 -1
- package/dist/core/capture-contract.js +27 -8
- package/dist/core/compare.d.ts +24 -8
- package/dist/core/compare.js +24 -8
- package/dist/core/config.d.ts +18 -9
- package/dist/core/config.js +38 -29
- package/dist/core/cosine.d.ts +4 -1
- package/dist/core/cosine.js +4 -1
- package/dist/core/handoff.d.ts +7 -2
- package/dist/core/handoff.js +4 -1
- package/dist/core/markdown.js +22 -17
- package/dist/core/memory-audit.js +14 -3
- package/dist/core/memory-quality.d.ts +12 -3
- package/dist/core/memory-quality.js +57 -21
- package/dist/core/memory.d.ts +87 -30
- package/dist/core/memory.js +82 -33
- package/dist/core/merged-row.d.ts +8 -2
- package/dist/core/merged-row.js +10 -3
- package/dist/core/package-root.d.ts +3 -1
- package/dist/core/package-root.js +3 -1
- package/dist/core/particle-refresh.d.ts +8 -0
- package/dist/core/particle-refresh.js +22 -0
- package/dist/core/physics-config.d.ts +4 -1
- package/dist/core/physics-config.js +6 -2
- package/dist/core/physics.d.ts +39 -11
- package/dist/core/physics.js +71 -21
- package/dist/core/project-identity.d.ts +34 -17
- package/dist/core/project-identity.js +35 -18
- package/dist/core/project-remote.d.ts +8 -4
- package/dist/core/project-remote.js +31 -14
- package/dist/core/recall-scope.d.ts +33 -11
- package/dist/core/recall-scope.js +42 -15
- package/dist/core/rejection-digest.d.ts +7 -0
- package/dist/core/rejection-digest.js +13 -0
- package/dist/core/salience.d.ts +3 -1
- package/dist/core/salience.js +10 -4
- package/dist/core/search-types.d.ts +15 -2
- package/dist/core/search-types.js +11 -0
- package/dist/dashboard/dashboard-actions.d.ts +2 -2
- package/dist/dashboard/dashboard-actions.js +18 -7
- package/dist/dashboard/dashboard-queries.js +2 -7
- package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
- package/dist/dashboard/dashboard-snapshot.js +5 -7
- package/dist/dashboard/dashboard.js +22 -8
- package/dist/db/backup.js +2 -2
- package/dist/db/busy.d.ts +10 -3
- package/dist/db/busy.js +27 -5
- package/dist/db/connect.d.ts +10 -2
- package/dist/db/connect.js +8 -2
- package/dist/db/continuity.d.ts +1 -1
- package/dist/db/continuity.js +27 -11
- package/dist/db/meta.d.ts +4 -1
- package/dist/db/meta.js +4 -1
- package/dist/db/migrate.d.ts +10 -5
- package/dist/db/migrate.js +40 -20
- package/dist/db/migrations/index.d.ts +1 -1
- package/dist/db/migrations/index.js +3 -1
- package/dist/db/migrations/types.d.ts +2 -1
- package/dist/db/migrations/v11.js +1 -0
- package/dist/db/migrations/v12.js +2 -1
- package/dist/db/migrations/v14.js +2 -0
- package/dist/db/migrations/v15.js +4 -2
- package/dist/db/migrations/v16.js +6 -3
- package/dist/db/migrations/v17.js +2 -1
- package/dist/db/migrations/v19.js +4 -2
- package/dist/db/migrations/v20.js +2 -1
- package/dist/db/migrations/v22.js +12 -6
- package/dist/db/migrations/v23.js +6 -3
- package/dist/db/migrations/v24.js +6 -3
- package/dist/db/migrations/v25.js +4 -2
- package/dist/db/migrations/v26.js +4 -2
- package/dist/db/migrations/v27.js +6 -3
- package/dist/db/migrations/v28.js +4 -2
- package/dist/db/migrations/v29.js +4 -2
- package/dist/db/migrations/v30.js +6 -3
- package/dist/db/migrations/v31.js +4 -2
- package/dist/db/migrations/v32.js +6 -3
- package/dist/db/migrations/v33.js +4 -2
- package/dist/db/migrations/v34.js +2 -1
- package/dist/db/migrations/v35.js +2 -1
- package/dist/db/migrations/v36.js +2 -1
- package/dist/db/migrations/v37.js +10 -5
- package/dist/db/migrations/v38.js +10 -5
- package/dist/db/migrations/v39.js +14 -6
- package/dist/db/migrations/v40.js +4 -2
- package/dist/db/migrations/v41.js +4 -2
- package/dist/db/migrations/v42.js +2 -1
- package/dist/db/migrations/v44.js +4 -2
- package/dist/db/migrations/v45.js +4 -2
- package/dist/db/migrations/v49.js +2 -1
- package/dist/db/migrations/v50.js +4 -2
- package/dist/db/migrations/v51.js +4 -2
- package/dist/db/migrations/v52.js +2 -1
- package/dist/db/migrations/v53.js +8 -4
- package/dist/db/migrations/v54.js +2 -1
- package/dist/db/migrations/v55.js +4 -2
- package/dist/db/migrations/v56.d.ts +3 -0
- package/dist/db/migrations/v56.js +28 -0
- package/dist/db/open.d.ts +24 -12
- package/dist/db/open.js +25 -13
- package/dist/db/physics-state.d.ts +8 -8
- package/dist/db/physics-state.js +17 -50
- package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
- package/dist/db/raw-archive-mirror-cleanup.js +6 -4
- package/dist/db/request-stores.d.ts +20 -5
- package/dist/db/request-stores.js +15 -5
- package/dist/db/tables.d.ts +2 -1
- package/dist/db/tables.js +12 -4
- package/dist/db/vector-store.d.ts +13 -4
- package/dist/db/vector-store.js +35 -14
- package/dist/db/wal-checkpointer.d.ts +2 -1
- package/dist/db/wal-checkpointer.js +19 -7
- package/dist/doctor.d.ts +7 -1
- package/dist/doctor.js +128 -46
- package/dist/embeddings/local.d.ts +8 -4
- package/dist/embeddings/local.js +11 -7
- package/dist/embeddings/provider.d.ts +19 -10
- package/dist/embeddings/provider.js +32 -27
- package/dist/embeddings/transformers.d.ts +16 -4
- package/dist/embeddings/transformers.js +32 -15
- package/dist/entry/json-hooks.d.ts +1 -1
- package/dist/entry/json-hooks.js +1 -1
- package/dist/entry/project-identity.js +2 -1
- package/dist/entry/session-text.d.ts +1 -1
- package/dist/entry/session-text.js +1 -1
- package/dist/entry/sqlite-handles.d.ts +10 -0
- package/dist/entry/sqlite-handles.js +9 -0
- package/dist/entry/store-kit.d.ts +50 -0
- package/dist/entry/store-kit.js +27 -0
- package/dist/entry/testing.d.ts +6 -0
- package/dist/entry/testing.js +7 -0
- package/dist/eval/eval-stats.d.ts +27 -8
- package/dist/eval/eval-stats.js +17 -5
- package/dist/eval/eval-suite.d.ts +3 -1
- package/dist/eval/eval-suite.js +409 -187
- package/dist/eval/eval.d.ts +8 -2
- package/dist/eval/eval.js +8 -2
- package/dist/eval/judgment.js +17 -7
- package/dist/graph/delta.d.ts +9 -42
- package/dist/graph/delta.js +17 -11
- package/dist/graph/extract.d.ts +10 -7
- package/dist/graph/extract.js +57 -25
- package/dist/graph/recall.d.ts +12 -4
- package/dist/graph/recall.js +30 -13
- package/dist/graph/stream.d.ts +18 -6
- package/dist/graph/stream.js +32 -10
- package/dist/graph/view.d.ts +19 -6
- package/dist/graph/view.js +42 -17
- package/dist/hooks/codex-session.js +2 -2
- package/dist/hooks/codex-wrapper.d.ts +3 -1
- package/dist/hooks/codex-wrapper.js +9 -4
- package/dist/hooks/copilot.d.ts +19 -5
- package/dist/hooks/copilot.js +54 -15
- package/dist/hooks/hook-blocks.d.ts +4 -1
- package/dist/hooks/hook-blocks.js +8 -3
- package/dist/hooks/json-hooks.d.ts +9 -5
- package/dist/hooks/json-hooks.js +72 -33
- package/dist/hooks/opencode.js +15 -5
- package/dist/hooks/shared.d.ts +27 -8
- package/dist/hooks/shared.js +57 -16
- package/dist/importers/core.d.ts +12 -4
- package/dist/importers/core.js +11 -10
- package/dist/importers/markdown-parse.d.ts +15 -5
- package/dist/importers/markdown-parse.js +16 -7
- package/dist/importers/markdown.js +6 -9
- package/dist/importers/sources.js +10 -23
- package/dist/importers/vault.d.ts +3 -3
- package/dist/importers/vault.js +61 -45
- package/dist/index.d.ts +33 -7
- package/dist/index.js +26 -8
- package/dist/learn/autolearn.d.ts +21 -6
- package/dist/learn/autolearn.js +57 -26
- package/dist/learn/churn-git.d.ts +4 -1
- package/dist/learn/churn-git.js +29 -5
- package/dist/learn/extract.d.ts +4 -1
- package/dist/learn/extract.js +17 -10
- package/dist/learn/forward-claim-detector.d.ts +17 -5
- package/dist/learn/forward-claim-detector.js +34 -15
- package/dist/learn/invalidation.d.ts +12 -6
- package/dist/learn/invalidation.js +62 -28
- package/dist/learn/roots.d.ts +3 -0
- package/dist/learn/roots.js +5 -0
- package/dist/mcp/admin-tools.d.ts +5 -5
- package/dist/mcp/admin-tools.js +28 -23
- package/dist/mcp/format.d.ts +1 -1
- package/dist/mcp/format.js +4 -2
- package/dist/mcp/framing.d.ts +3 -1
- package/dist/mcp/framing.js +20 -8
- package/dist/mcp/memory-tools.d.ts +3 -3
- package/dist/mcp/memory-tools.js +21 -20
- package/dist/mcp/protocol.d.ts +32 -16
- package/dist/mcp/protocol.js +12 -9
- package/dist/mcp/recall-tools.d.ts +3 -3
- package/dist/mcp/recall-tools.js +62 -74
- package/dist/mcp/request.d.ts +7 -5
- package/dist/mcp/request.js +61 -77
- package/dist/mcp/server.d.ts +3 -1
- package/dist/mcp/server.js +8 -3
- package/dist/mcp/session-state.d.ts +1 -1
- package/dist/mcp/session-state.js +4 -3
- package/dist/mcp/shared-gate.d.ts +3 -2
- package/dist/mcp/shared-gate.js +3 -2
- package/dist/mcp/stdio.d.ts +6 -3
- package/dist/mcp/stdio.js +59 -23
- package/dist/mcp/tool-args.d.ts +4 -1
- package/dist/mcp/tool-args.js +8 -3
- package/dist/mcp/tools.js +76 -32
- package/dist/objects/customer-notes.d.ts +12 -10
- package/dist/objects/customer-notes.js +21 -15
- package/dist/objects/decisions.d.ts +18 -10
- package/dist/objects/decisions.js +23 -17
- package/dist/objects/descriptor.js +2 -1
- package/dist/objects/fields.d.ts +4 -1
- package/dist/objects/fields.js +6 -2
- package/dist/objects/incidents.d.ts +14 -16
- package/dist/objects/incidents.js +29 -30
- package/dist/objects/lifecycle.d.ts +0 -4
- package/dist/objects/lifecycle.js +21 -24
- package/dist/objects/policies.d.ts +12 -16
- package/dist/objects/policies.js +17 -21
- package/dist/objects/processes.d.ts +16 -10
- package/dist/objects/processes.js +20 -15
- package/dist/objects/project-briefs.d.ts +13 -14
- package/dist/objects/project-briefs.js +33 -39
- package/dist/objects/skills.d.ts +10 -12
- package/dist/objects/skills.js +17 -22
- package/dist/postinstall.js +15 -7
- package/dist/predictions/planning-fallacy.d.ts +19 -6
- package/dist/predictions/planning-fallacy.js +4 -2
- package/dist/rerankers/clef.d.ts +8 -2
- package/dist/rerankers/clef.js +14 -9
- package/dist/rerankers/cross-encoder.d.ts +2 -1
- package/dist/rerankers/cross-encoder.js +19 -9
- package/dist/rerankers/index.js +2 -1
- package/dist/rerankers/jev.js +2 -1
- package/dist/rerankers/llm.d.ts +6 -2
- package/dist/rerankers/llm.js +8 -3
- package/dist/rerankers/remote.d.ts +3 -1
- package/dist/rerankers/remote.js +5 -2
- package/dist/rerankers/types.d.ts +6 -2
- package/dist/search/bm25-search.d.ts +3 -1
- package/dist/search/bm25-search.js +15 -2
- package/dist/search/boosts.js +4 -3
- package/dist/search/embed-memories.d.ts +12 -4
- package/dist/search/embed-memories.js +96 -58
- package/dist/search/engine.d.ts +11 -0
- package/dist/search/engine.js +14 -0
- package/dist/search/goal-boost.d.ts +10 -3
- package/dist/search/goal-boost.js +13 -6
- package/dist/search/hybrid-score.d.ts +4 -1
- package/dist/search/hybrid-score.js +4 -1
- package/dist/search/hybrid.d.ts +23 -8
- package/dist/search/hybrid.js +12 -7
- package/dist/search/multihop.js +14 -13
- package/dist/search/path-context.d.ts +10 -3
- package/dist/search/path-context.js +10 -3
- package/dist/search/physics-search.d.ts +9 -4
- package/dist/search/physics-search.js +38 -14
- package/dist/search/rerank.d.ts +2 -1
- package/dist/search/rerank.js +2 -1
- package/dist/search/rrf.d.ts +14 -5
- package/dist/search/rrf.js +11 -4
- package/dist/search/vector.d.ts +8 -2
- package/dist/search/vector.js +14 -8
- package/dist/server/auth.d.ts +19 -15
- package/dist/server/auth.js +68 -38
- package/dist/server/boot.d.ts +4 -1
- package/dist/server/boot.js +115 -67
- package/dist/server/client-ip.d.ts +17 -5
- package/dist/server/client-ip.js +56 -21
- package/dist/server/cursor.d.ts +10 -3
- package/dist/server/cursor.js +10 -3
- package/dist/server/deadline.d.ts +5 -2
- package/dist/server/deadline.js +10 -3
- package/dist/server/key-check-bounds.js +12 -4
- package/dist/server/lifecycle.d.ts +4 -1
- package/dist/server/lifecycle.js +10 -4
- package/dist/server/mcp-http.d.ts +2 -1
- package/dist/server/mcp-http.js +37 -22
- package/dist/server/rate-limit.d.ts +17 -5
- package/dist/server/rate-limit.js +55 -26
- package/dist/server/ready.js +7 -4
- package/dist/server/request.d.ts +15 -4
- package/dist/server/request.js +42 -15
- package/dist/server/route-checks.d.ts +4 -1
- package/dist/server/route-checks.js +8 -3
- package/dist/server/route-table.d.ts +8 -6
- package/dist/server/route-table.js +550 -97
- package/dist/server/routes/admin.d.ts +7 -7
- package/dist/server/routes/admin.js +36 -15
- package/dist/server/routes/customer-notes.d.ts +5 -5
- package/dist/server/routes/customer-notes.js +5 -4
- package/dist/server/routes/decisions.d.ts +5 -5
- package/dist/server/routes/decisions.js +12 -6
- package/dist/server/routes/incidents.d.ts +5 -5
- package/dist/server/routes/incidents.js +10 -4
- package/dist/server/routes/memories.d.ts +8 -8
- package/dist/server/routes/memories.js +12 -17
- package/dist/server/routes/object-routes.d.ts +8 -5
- package/dist/server/routes/object-routes.js +4 -2
- package/dist/server/routes/policies.d.ts +6 -6
- package/dist/server/routes/policies.js +11 -4
- package/dist/server/routes/predictions.d.ts +5 -5
- package/dist/server/routes/predictions.js +9 -4
- package/dist/server/routes/processes.d.ts +5 -5
- package/dist/server/routes/processes.js +15 -6
- package/dist/server/routes/project-briefs.d.ts +6 -6
- package/dist/server/routes/project-briefs.js +3 -2
- package/dist/server/routes/recall.d.ts +3 -3
- package/dist/server/routes/recall.js +21 -10
- package/dist/server/routes/skills.d.ts +6 -6
- package/dist/server/routes/skills.js +12 -4
- package/dist/server/server-detect.d.ts +24 -8
- package/dist/server/server-detect.js +57 -22
- package/dist/server/sleep-child.js +16 -10
- package/dist/server/sleep-offload.d.ts +8 -5
- package/dist/server/sleep-offload.js +40 -18
- package/dist/server/tls.d.ts +10 -2
- package/dist/server/tls.js +25 -5
- package/dist/server/types.d.ts +41 -24
- package/dist/server/validation.d.ts +4 -1
- package/dist/server/validation.js +22 -9
- package/dist/server.d.ts +17 -49
- package/dist/server.js +33 -40
- package/dist/sharing/global-store.d.ts +6 -12
- package/dist/sharing/global-store.js +8 -48
- package/dist/sharing/global-sync.d.ts +3 -1
- package/dist/sharing/global-sync.js +17 -7
- package/dist/sharing/project-merge.d.ts +25 -7
- package/dist/sharing/project-merge.js +49 -17
- package/dist/sharing/search-both.d.ts +8 -4
- package/dist/sharing/search-both.js +28 -14
- package/dist/sharing/share.d.ts +8 -4
- package/dist/sharing/share.js +40 -18
- package/dist/store/ambient.js +10 -5
- package/dist/store/audit-event.d.ts +2 -2
- package/dist/store/audit-event.js +8 -3
- package/dist/store/audit.d.ts +6 -3
- package/dist/store/audit.js +16 -6
- package/dist/store/auth.d.ts +4 -2
- package/dist/store/auth.js +63 -20
- package/dist/store/busy.d.ts +9 -0
- package/dist/store/busy.js +16 -0
- package/dist/store/candidates.d.ts +12 -5
- package/dist/store/candidates.js +90 -41
- package/dist/store/capture-write.d.ts +2 -1
- package/dist/store/capture-write.js +2 -1
- package/dist/store/card-detail.d.ts +4 -4
- package/dist/store/card-detail.js +15 -8
- package/dist/store/cards.d.ts +24 -10
- package/dist/store/cards.js +97 -63
- package/dist/store/compaction-caller.d.ts +2 -1
- package/dist/store/compaction-caller.js +2 -1
- package/dist/store/compactions-record.d.ts +14 -8
- package/dist/store/compactions-record.js +101 -37
- package/dist/store/compactions.js +35 -15
- package/dist/store/conflicts.d.ts +16 -5
- package/dist/store/conflicts.js +104 -48
- package/dist/store/connectors/dlq.d.ts +17 -5
- package/dist/store/connectors/dlq.js +58 -6
- package/dist/store/connectors/event-log.d.ts +122 -0
- package/dist/store/connectors/event-log.js +25 -0
- package/dist/store/connectors/github.d.ts +6 -3
- package/dist/store/connectors/github.js +30 -48
- package/dist/store/connectors/slack.d.ts +2 -1
- package/dist/store/connectors/slack.js +31 -47
- package/dist/store/dashboard-reads.d.ts +7 -3
- package/dist/store/dashboard-reads.js +32 -10
- package/dist/store/delete-and-batch.d.ts +17 -11
- package/dist/store/delete-and-batch.js +70 -28
- package/dist/store/delivery-recorder.d.ts +10 -7
- package/dist/store/delivery-recorder.js +70 -37
- package/dist/store/descendant-page.d.ts +2 -1
- package/dist/store/descendant-page.js +26 -10
- package/dist/store/diagnostics.d.ts +2 -1
- package/dist/store/diagnostics.js +2 -1
- package/dist/store/doctor-reads.d.ts +2 -1
- package/dist/store/doctor-reads.js +13 -5
- package/dist/store/dormant.d.ts +19 -11
- package/dist/store/dormant.js +45 -19
- package/dist/store/embeddings/index.d.ts +13 -9
- package/dist/store/embeddings/index.js +19 -12
- package/dist/store/entry-reads.d.ts +72 -21
- package/dist/store/entry-reads.js +215 -69
- package/dist/store/entry-row.d.ts +10 -6
- package/dist/store/entry-row.js +26 -14
- package/dist/store/entry-writes.d.ts +28 -13
- package/dist/store/entry-writes.js +61 -22
- package/dist/store/failure-log-at.js +1 -1
- package/dist/store/failure-log.d.ts +4 -2
- package/dist/store/failure-log.js +13 -6
- package/dist/store/gated-write.d.ts +3 -3
- package/dist/store/gated-write.js +3 -3
- package/dist/store/goals.d.ts +5 -4
- package/dist/store/goals.js +11 -12
- package/dist/store/graph-apply.d.ts +21 -0
- package/dist/{graph/write.js → store/graph-apply.js} +31 -11
- package/dist/store/graph-queue.d.ts +9 -6
- package/dist/store/graph-queue.js +15 -10
- package/dist/store/graph-reads.d.ts +16 -11
- package/dist/store/graph-reads.js +29 -19
- package/dist/store/graph-rows.d.ts +41 -3
- package/dist/store/graph-rows.js +10 -7
- package/dist/store/graph-view-rows.js +15 -7
- package/dist/store/graph-writes.d.ts +16 -10
- package/dist/store/graph-writes.js +59 -36
- package/dist/store/half-life.js +2 -2
- package/dist/store/handoffs.d.ts +13 -7
- package/dist/store/handoffs.js +44 -22
- package/dist/store/index-and-stats.d.ts +2 -2
- package/dist/store/index-and-stats.js +6 -5
- package/dist/store/index.d.ts +4 -2
- package/dist/store/index.js +2 -1
- package/dist/store/key-audit.d.ts +2 -1
- package/dist/store/key-audit.js +2 -1
- package/dist/store/key-writes.d.ts +2 -1
- package/dist/store/key-writes.js +9 -2
- package/dist/store/ledger-turn.d.ts +4 -1
- package/dist/store/ledger-turn.js +7 -2
- package/dist/store/mirrors.d.ts +11 -4
- package/dist/store/mirrors.js +96 -19
- package/dist/store/narrow.d.ts +6 -0
- package/dist/store/narrow.js +11 -0
- package/dist/store/open.d.ts +6 -3
- package/dist/store/open.js +20 -10
- package/dist/store/pilot-arm.d.ts +2 -1
- package/dist/store/pilot-arm.js +18 -6
- package/dist/store/planning-fallacy-evidence.d.ts +2 -2
- package/dist/store/planning-fallacy-evidence.js +8 -5
- package/dist/store/port/agent-import.d.ts +62 -0
- package/dist/store/port/agent-import.js +2 -0
- package/dist/store/port/consolidation.d.ts +129 -0
- package/dist/store/port/consolidation.js +2 -0
- package/dist/store/port/learning.d.ts +19 -0
- package/dist/store/port/learning.js +2 -0
- package/dist/store/port/local-files.d.ts +18 -0
- package/dist/store/port/local-files.js +2 -0
- package/dist/store/port/promotion.d.ts +20 -0
- package/dist/store/port/promotion.js +3 -0
- package/dist/store/port-groups.d.ts +160 -0
- package/dist/store/port-groups.js +2 -0
- package/dist/store/port.d.ts +261 -219
- package/dist/store/port.js +3 -9
- package/dist/store/predictions.d.ts +14 -10
- package/dist/store/predictions.js +37 -17
- package/dist/store/project-tags.d.ts +4 -1
- package/dist/store/project-tags.js +16 -5
- package/dist/store/quality-repair.d.ts +8 -4
- package/dist/store/quality-repair.js +53 -20
- package/dist/store/quarantine.d.ts +1 -0
- package/dist/store/quarantine.js +23 -9
- package/dist/store/raw-archive.d.ts +5 -4
- package/dist/store/raw-archive.js +11 -10
- package/dist/store/recall-trace.d.ts +22 -17
- package/dist/store/recall-trace.js +128 -64
- package/dist/store/rejected-values.d.ts +15 -10
- package/dist/store/rejected-values.js +46 -20
- package/dist/store/rejection.d.ts +12 -11
- package/dist/store/rejection.js +18 -19
- package/dist/store/report-reads.d.ts +2 -1
- package/dist/store/report-reads.js +2 -1
- package/dist/store/rows.d.ts +7 -5
- package/dist/store/rows.js +20 -13
- package/dist/store/rule-sql.d.ts +7 -3
- package/dist/store/rule-sql.js +26 -13
- package/dist/store/search-rows.d.ts +16 -11
- package/dist/store/search-rows.js +54 -32
- package/dist/store/sessions.d.ts +12 -10
- package/dist/store/sessions.js +40 -21
- package/dist/store/set-aside.d.ts +2 -2
- package/dist/store/set-aside.js +18 -5
- package/dist/store/sqlite/agent-import.d.ts +3 -0
- package/dist/store/sqlite/agent-import.js +77 -0
- package/dist/store/sqlite/cards-group.d.ts +6 -0
- package/dist/store/sqlite/cards-group.js +37 -0
- package/dist/store/sqlite/conflicts-group.d.ts +6 -0
- package/dist/store/sqlite/conflicts-group.js +18 -0
- package/dist/store/sqlite/connector-events-group.d.ts +2 -1
- package/dist/store/sqlite/connector-events-group.js +17 -6
- package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
- package/dist/store/sqlite/connector-writes-group.js +12 -5
- package/dist/store/sqlite/consolidation-group.d.ts +4 -0
- package/dist/store/sqlite/consolidation-group.js +64 -0
- package/dist/store/sqlite/dag-reads-group.js +1 -1
- package/dist/store/sqlite/dormant-group.d.ts +6 -0
- package/dist/store/sqlite/dormant-group.js +29 -0
- package/dist/store/sqlite/entry-writes-group.d.ts +9 -6
- package/dist/store/sqlite/entry-writes-group.js +37 -14
- package/dist/store/sqlite/error-codec.d.ts +4 -2
- package/dist/store/sqlite/error-codec.js +32 -10
- package/dist/store/sqlite/executor-counts.js +2 -1
- package/dist/store/sqlite/executor.d.ts +8 -3
- package/dist/store/sqlite/executor.js +56 -18
- package/dist/store/sqlite/global-promote.d.ts +5 -0
- package/dist/store/sqlite/global-promote.js +48 -0
- package/dist/store/sqlite/goals-group.d.ts +6 -0
- package/dist/store/sqlite/goals-group.js +23 -0
- package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
- package/dist/store/sqlite/graph-reads-group.js +2 -1
- package/dist/store/sqlite/held-connection.d.ts +8 -0
- package/dist/store/sqlite/held-connection.js +34 -7
- package/dist/store/sqlite/last-recall-group.d.ts +15 -0
- package/dist/store/sqlite/last-recall-group.js +62 -0
- package/dist/store/sqlite/learning-group.d.ts +4 -0
- package/dist/store/sqlite/learning-group.js +17 -0
- package/dist/store/sqlite/maintenance-groups.d.ts +6 -0
- package/dist/store/sqlite/maintenance-groups.js +61 -0
- package/dist/store/sqlite/object-rows.d.ts +6 -3
- package/dist/store/sqlite/object-rows.js +34 -5
- package/dist/store/sqlite/objects-group.d.ts +5 -4
- package/dist/store/sqlite/objects-group.js +97 -38
- package/dist/store/sqlite/predictions-group.d.ts +2 -1
- package/dist/store/sqlite/predictions-group.js +4 -2
- package/dist/store/sqlite/promotion-group.d.ts +3 -0
- package/dist/store/sqlite/promotion-group.js +10 -0
- package/dist/store/sqlite/quarantine-group.d.ts +2 -1
- package/dist/store/sqlite/quarantine-group.js +4 -2
- package/dist/store/sqlite/reports-group.d.ts +6 -0
- package/dist/store/sqlite/reports-group.js +33 -0
- package/dist/store/sqlite/request-scope.d.ts +6 -0
- package/dist/store/sqlite/request-scope.js +18 -0
- package/dist/store/sqlite/sessions-group.d.ts +6 -0
- package/dist/store/sqlite/sessions-group.js +46 -0
- package/dist/store/sqlite/store.d.ts +22 -18
- package/dist/store/sqlite/store.js +95 -33
- package/dist/store/sqlite/vector-pack.js +2 -1
- package/dist/store/sqlite/vector-reads-group.js +2 -1
- package/dist/store/sqlite/worker-jobs.d.ts +2 -1
- package/dist/store/sqlite/worker-jobs.js +19 -7
- package/dist/store/sqlite/worker-ops.d.ts +10 -5
- package/dist/store/sqlite/worker-ops.js +6 -3
- package/dist/store/sqlite/worker-store.d.ts +4 -3
- package/dist/store/sqlite/worker-store.js +24 -14
- package/dist/store/summaries.d.ts +25 -11
- package/dist/store/summaries.js +84 -27
- package/dist/store/summary-dirty.d.ts +2 -1
- package/dist/store/summary-dirty.js +2 -1
- package/dist/store/tenant.d.ts +3 -2
- package/dist/store/tenant.js +5 -4
- package/dist/store/token-ledger-rows.js +8 -4
- package/dist/store/token-ledger.d.ts +19 -13
- package/dist/store/token-ledger.js +27 -14
- package/dist/store/tombstone-checks.d.ts +4 -1
- package/dist/store/tombstone-checks.js +10 -1
- package/dist/store/usage-reports.js +2 -1
- package/dist/store/vector-index.d.ts +8 -5
- package/dist/store/vector-index.js +28 -11
- package/dist/store/working-memory.d.ts +6 -4
- package/dist/store/working-memory.js +14 -9
- package/dist/support-bundle.js +10 -5
- package/dist/trust/quarantine.d.ts +1 -2
- package/dist/trust/quarantine.js +1 -5
- package/dist/trust/reject-flow.d.ts +12 -3
- package/dist/trust/reject-flow.js +12 -4
- package/dist/util/anthropic-messages.d.ts +7 -2
- package/dist/util/anthropic-messages.js +18 -7
- package/dist/util/atomic-write.d.ts +8 -3
- package/dist/util/atomic-write.js +36 -21
- package/dist/util/compaction-items.d.ts +4 -1
- package/dist/util/compaction-items.js +8 -2
- package/dist/util/crash-handlers.d.ts +7 -2
- package/dist/util/crash-handlers.js +13 -4
- package/dist/util/env.d.ts +26 -5
- package/dist/util/env.js +87 -25
- package/dist/util/format.d.ts +2 -0
- package/dist/util/format.js +4 -0
- package/dist/util/home-path.js +12 -6
- package/dist/util/hook-payload.d.ts +3 -1
- package/dist/util/hook-payload.js +3 -1
- package/dist/util/http-retry.d.ts +12 -6
- package/dist/util/http-retry.js +16 -6
- package/dist/util/http-util.d.ts +20 -5
- package/dist/util/http-util.js +28 -9
- package/dist/util/json.d.ts +4 -1
- package/dist/util/json.js +4 -1
- package/dist/util/keyset.js +2 -1
- package/dist/util/limits.js +4 -2
- package/dist/util/log.d.ts +13 -5
- package/dist/util/log.js +29 -6
- package/dist/util/net.d.ts +5 -0
- package/dist/util/net.js +19 -0
- package/dist/util/real-path.d.ts +2 -1
- package/dist/util/real-path.js +4 -3
- package/dist/util/request-scope.d.ts +16 -4
- package/dist/util/request-scope.js +19 -6
- package/dist/util/same-text.d.ts +10 -3
- package/dist/util/same-text.js +10 -3
- package/dist/util/secret-detect.d.ts +24 -7
- package/dist/util/secret-detect.js +49 -14
- package/dist/util/spawn-argv.d.ts +11 -0
- package/dist/util/spawn-argv.js +66 -0
- package/dist/util/sql.d.ts +3 -0
- package/dist/util/sql.js +6 -0
- package/dist/util/sqlite-blocked.d.ts +15 -4
- package/dist/util/sqlite-blocked.js +19 -6
- package/dist/util/stored-json.d.ts +4 -1
- package/dist/util/stored-json.js +6 -2
- package/dist/util/stream-tee.d.ts +2 -1
- package/dist/util/stream-tee.js +8 -5
- package/dist/util/transcript-tail.d.ts +4 -1
- package/dist/util/transcript-tail.js +4 -1
- package/dist/util/vector-codec.d.ts +4 -0
- package/dist/util/vector-codec.js +15 -0
- package/dist/util/version.d.ts +8 -3
- package/dist/util/version.js +8 -3
- package/dist/util/write-budget.d.ts +7 -2
- package/dist/util/write-budget.js +5 -2
- package/dist/util/yaml.d.ts +4 -1
- package/dist/util/yaml.js +4 -1
- 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 +4 -1
- package/scripts/postinstall.cjs +3 -1
- package/dist/api/audit.js +0 -56
- package/dist/api/cards.d.ts +0 -42
- package/dist/api/conflicts.d.ts +0 -28
- package/dist/api/conflicts.js +0 -61
- package/dist/api/dormant.d.ts +0 -14
- package/dist/api/dormant.js +0 -58
- package/dist/api/goals.d.ts +0 -18
- package/dist/api/graph.d.ts +0 -8
- package/dist/api/graph.js +0 -7
- package/dist/api/learn.js +0 -124
- package/dist/api/memories.d.ts +0 -23
- package/dist/api/memories.js +0 -46
- package/dist/api/objects.d.ts +0 -9
- package/dist/api/on-store.d.ts +0 -16
- package/dist/api/on-store.js +0 -38
- package/dist/api/outcome.d.ts +0 -19
- package/dist/api/outcome.js +0 -21
- package/dist/api/predictions.d.ts +0 -11
- package/dist/api/promote.d.ts +0 -36
- package/dist/api/promote.js +0 -65
- package/dist/api/recall-core.d.ts +0 -4
- package/dist/api/recall-core.js +0 -120
- package/dist/api/recall-finish.d.ts +0 -53
- package/dist/api/recall-finish.js +0 -30
- package/dist/api/recall-history.d.ts +0 -64
- package/dist/api/recall-history.js +0 -159
- package/dist/api/recall-record.d.ts +0 -43
- package/dist/api/recall-record.js +0 -78
- package/dist/api/recall-request.js +0 -121
- package/dist/api/recall.d.ts +0 -6
- package/dist/api/refine.d.ts +0 -7
- package/dist/api/refine.js +0 -10
- package/dist/api/session-owners.d.ts +0 -4
- package/dist/api/session-owners.js +0 -17
- package/dist/api/sleep-run.d.ts +0 -26
- package/dist/api/sleep.js +0 -10
- package/dist/cli/lenient-id.d.ts +0 -2
- package/dist/cli/lenient-id.js +0 -13
- package/dist/graph/write.d.ts +0 -14
- package/dist/store/sqlite/busy.d.ts +0 -3
- package/dist/store/sqlite/busy.js +0 -8
- package/dist/store/sqlite/local.d.ts +0 -21
- package/dist/store/sqlite/local.js +0 -39
package/dist/store/dormant.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
/** Dormant memories: what sleep does with a faded memory instead of deleting it (config `dormant.enabled`;
|
|
2
|
-
* Content stays in `dormant_memories` (schema v44) and the `memories` row
|
|
3
|
-
*
|
|
1
|
+
/** Dormant memories: what sleep does with a faded memory instead of deleting it (config `dormant.enabled`;
|
|
2
|
+
* `retentionDays` bounds how long one is kept). Content stays in `dormant_memories` (schema v44) and the `memories` row
|
|
3
|
+
* goes, so every reader of `memories` stops seeing it, as if deleted. Not the raw archive (`raw_archive`,
|
|
4
|
+
* `archiveRawMemory`), which keeps metadata only. db-taking helpers leave the handle and transaction to the caller. */
|
|
4
5
|
import { type DatabaseSyncLike } from '../db/index.js';
|
|
5
6
|
import type { MemoryEntry } from '../core/memory.js';
|
|
6
7
|
import type { SqlFragment } from './rule-sql.js';
|
|
7
8
|
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
|
|
9
|
-
* splitting a two-project merge, or `hippo audit repair` setting aside an automatic memory with a certain
|
|
9
|
+
/** Why a memory went dormant: sleep's decay pass, an imported agent memory whose note was deleted, `hippo projects
|
|
10
|
+
* repair` splitting a two-project merge, or `hippo audit repair` setting aside an automatic memory with a certain
|
|
11
|
+
* defect. */
|
|
10
12
|
export type DormantReason = 'decay' | 'source-deleted' | 'project-repair' | 'quality-repair';
|
|
11
13
|
/** One memory that sleep is moving out of active memory into the dormant store. */
|
|
12
14
|
export interface DormantMove {
|
|
@@ -38,7 +40,8 @@ export interface ListDormantOpts {
|
|
|
38
40
|
/** Maximum rows returned, newest first. Default 20. */
|
|
39
41
|
limit?: number;
|
|
40
42
|
}
|
|
41
|
-
/** Insert (or refresh) the dormant snapshot for `move.entry`; the caller deletes the `memories` row in the same
|
|
43
|
+
/** Insert (or refresh) the dormant snapshot for `move.entry`; the caller deletes the `memories` row in the same
|
|
44
|
+
* transaction. */
|
|
42
45
|
export declare function insertDormantRow(db: DatabaseSyncLike, move: DormantMove): void;
|
|
43
46
|
/** A dormant memory's stored snapshot plus when and why it went dormant. */
|
|
44
47
|
export interface DormantSnapshot {
|
|
@@ -57,9 +60,11 @@ export declare function dormantSnapshotsBySourcePrefix(db: DatabaseSyncLike, ten
|
|
|
57
60
|
export declare function replaceDormantEntry(db: DatabaseSyncLike, tenantId: string, id: string, entry: MemoryEntry): void;
|
|
58
61
|
/** Delete a tenant's dormant memory. Returns false when there was none. */
|
|
59
62
|
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
|
|
63
|
+
/** Deletes the tenant's dormant copies of a rejected digest whose snapshot scope `inReach` admits, so the value cannot
|
|
64
|
+
* linger; returns their ids. */
|
|
61
65
|
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
|
|
66
|
+
/** Deletes for good every memory that went dormant before `cutoffIso`, on one handle; returns how many went, or under
|
|
67
|
+
* `dryRun` how many would. */
|
|
63
68
|
export declare function expireDormantBefore(hippoRoot: string, cutoffIso: string, opts: {
|
|
64
69
|
dryRun: boolean;
|
|
65
70
|
budget: WriteBudget;
|
|
@@ -69,7 +74,8 @@ export declare function expireDormantBefore(hippoRoot: string, cutoffIso: string
|
|
|
69
74
|
export declare function loadDormantMemories(hippoRoot: string, tenantId: string, opts?: ListDormantOpts, admit?: SqlFragment): DormantMemory[];
|
|
70
75
|
/** Whether a tenant holds a dormant memory with this id whose scope `admit` passes, read on a handle of its own. */
|
|
71
76
|
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
|
|
77
|
+
/** One restore as the store applies it. The two functions are the caller's policy over plain rows; neither is handed
|
|
78
|
+
* the handle. */
|
|
73
79
|
export interface DormantRestore {
|
|
74
80
|
readonly tenantId: string;
|
|
75
81
|
readonly id: string;
|
|
@@ -89,7 +95,8 @@ export type DormantRestoreOutcome = {
|
|
|
89
95
|
} | {
|
|
90
96
|
readonly status: 'active';
|
|
91
97
|
};
|
|
92
|
-
/** Brings one dormant memory back on a single handle: the live row, the dormant delete and the audit row commit
|
|
98
|
+
/** Brings one dormant memory back on a single handle: the live row, the dormant delete and the audit row commit
|
|
99
|
+
* together, then its mirrors are written. */
|
|
93
100
|
export declare function restoreDormantMemory(hippoRoot: string, restore: DormantRestore): DormantRestoreOutcome;
|
|
94
101
|
/** One permanent delete of a dormant memory. */
|
|
95
102
|
export interface DormantForget {
|
|
@@ -100,6 +107,7 @@ export interface DormantForget {
|
|
|
100
107
|
/** The scopes this caller may touch; a row outside them reads as missing. */
|
|
101
108
|
readonly admit: SqlFragment;
|
|
102
109
|
}
|
|
103
|
-
/** Deletes a tenant's dormant memory for good and writes its `forget` audit row, on a single handle; false when it
|
|
110
|
+
/** Deletes a tenant's dormant memory for good and writes its `forget` audit row, on a single handle; false when it
|
|
111
|
+
* holds none `admit` passes. */
|
|
104
112
|
export declare function forgetDormantMemory(hippoRoot: string, forget: DormantForget): boolean;
|
|
105
113
|
//# sourceMappingURL=dormant.d.ts.map
|
package/dist/store/dormant.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
/** Dormant memories: what sleep does with a faded memory instead of deleting it (config `dormant.enabled`;
|
|
2
|
-
* Content stays in `dormant_memories` (schema v44) and the `memories` row
|
|
3
|
-
*
|
|
1
|
+
/** Dormant memories: what sleep does with a faded memory instead of deleting it (config `dormant.enabled`;
|
|
2
|
+
* `retentionDays` bounds how long one is kept). Content stays in `dormant_memories` (schema v44) and the `memories` row
|
|
3
|
+
* goes, so every reader of `memories` stops seeing it, as if deleted. Not the raw archive (`raw_archive`,
|
|
4
|
+
* `archiveRawMemory`), which keeps metadata only. db-taking helpers leave the handle and transaction to the caller. */
|
|
4
5
|
import { closeHippoDb, openHippoDb, withWriteScope, withWriteScopeOr } from '../db/index.js';
|
|
5
6
|
import { onHandle } from './open.js';
|
|
6
7
|
import { rejectionDigest } from './rejection.js';
|
|
@@ -13,7 +14,8 @@ import { audit, auditRejectionRefusal } from './audit-event.js';
|
|
|
13
14
|
import { entryIdTakenAt } from './entry-reads.js';
|
|
14
15
|
import { writeEntryDbOnly, writeEntryMirrors } from './entry-writes.js';
|
|
15
16
|
const DEFAULT_LIST_LIMIT = 20;
|
|
16
|
-
/** Insert (or refresh) the dormant snapshot for `move.entry`; the caller deletes the `memories` row in the same
|
|
17
|
+
/** Insert (or refresh) the dormant snapshot for `move.entry`; the caller deletes the `memories` row in the same
|
|
18
|
+
* transaction. */
|
|
17
19
|
export function insertDormantRow(db, move) {
|
|
18
20
|
db.prepare(`
|
|
19
21
|
INSERT INTO dormant_memories (tenant_id, id, content, entry_json, reason, strength, dormant_at)
|
|
@@ -24,15 +26,25 @@ export function insertDormantRow(db, move) {
|
|
|
24
26
|
reason = excluded.reason,
|
|
25
27
|
strength = excluded.strength,
|
|
26
28
|
dormant_at = excluded.dormant_at
|
|
27
|
-
`).run(move.entry.
|
|
29
|
+
`).run(move.entry.tenant_id, move.entry.id, move.entry.content, JSON.stringify(move.entry), move.reason, move.strength, move.dormantAt);
|
|
28
30
|
}
|
|
29
|
-
|
|
31
|
+
function toCurrentEntry({ tenantId, summary_dirty, tenant_id, ...rest }) {
|
|
32
|
+
return {
|
|
33
|
+
...rest,
|
|
34
|
+
tenant_id: tenant_id ?? tenantId ?? '',
|
|
35
|
+
summary_dirty: summary_dirty === true || summary_dirty === 1,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/** Parse a stored snapshot back into a MemoryEntry, or null when the row no longer matches it (edited by hand, or
|
|
39
|
+
* truncated). */
|
|
30
40
|
function parseSnapshot(row) {
|
|
31
41
|
try {
|
|
32
42
|
// SAFETY: entry_json is only written by insertDormantRow from a MemoryEntry;
|
|
33
43
|
// the id / tenant / content checks below reject a row edited out of shape.
|
|
34
|
-
|
|
35
|
-
|
|
44
|
+
// SAFETY: entry_json came from JSON.stringify of a MemoryEntry (2.0) or a 1.x one; the checks below reject a row
|
|
45
|
+
// edited out of shape.
|
|
46
|
+
const entry = toCurrentEntry(JSON.parse(row.entry_json));
|
|
47
|
+
if (entry.id !== row.id || entry.tenant_id !== row.tenant_id || entry.content !== row.content) {
|
|
36
48
|
warnDamagedColumn({ table: 'dormant_memories', id: row.id, column: 'entry_json' }, 'wrong shape');
|
|
37
49
|
return null;
|
|
38
50
|
}
|
|
@@ -57,21 +69,27 @@ function rowToDormantMemory(row) {
|
|
|
57
69
|
};
|
|
58
70
|
}
|
|
59
71
|
// The snapshot's scope as a `scope` column, so recall-scope's SQL fragments read it as they read memories.scope.
|
|
60
|
-
const DORMANT_WITH_SCOPE = `(SELECT *, CASE WHEN json_valid(entry_json) THEN json_extract(entry_json, '$.scope') END
|
|
72
|
+
const DORMANT_WITH_SCOPE = `(SELECT *, CASE WHEN json_valid(entry_json) THEN json_extract(entry_json, '$.scope') END ` +
|
|
73
|
+
`AS scope FROM dormant_memories)`;
|
|
61
74
|
const EVERY_SCOPE = { sql: '1', params: [] };
|
|
62
75
|
/** A tenant's dormant memories whose scope `admit` passes, newest first, optionally filtered by search terms. */
|
|
63
76
|
function listDormantRows(db, tenantId, opts = {}, admit = EVERY_SCOPE) {
|
|
64
|
-
const terms = (opts.query ?? '')
|
|
77
|
+
const terms = (opts.query ?? '')
|
|
78
|
+
.trim()
|
|
79
|
+
.split(/\s+/)
|
|
80
|
+
.filter((t) => t.length > 0);
|
|
65
81
|
const limit = opts.limit !== undefined && Number.isFinite(opts.limit) && opts.limit >= 1
|
|
66
82
|
? Math.floor(opts.limit)
|
|
67
83
|
: DEFAULT_LIST_LIMIT;
|
|
68
84
|
const termClauses = terms.map(() => ` AND content LIKE ? ESCAPE '\\'`).join('');
|
|
69
85
|
// SAFETY: rows' shape matches the seven columns named in the SELECT.
|
|
70
|
-
const rows = db
|
|
86
|
+
const rows = db
|
|
87
|
+
.prepare(`SELECT tenant_id, id, content, entry_json, reason, strength, dormant_at
|
|
71
88
|
FROM ${DORMANT_WITH_SCOPE}
|
|
72
89
|
WHERE tenant_id = ? AND ${admit.sql}${termClauses}
|
|
73
90
|
ORDER BY dormant_at DESC, id ASC
|
|
74
|
-
LIMIT ?`)
|
|
91
|
+
LIMIT ?`)
|
|
92
|
+
.all(tenantId, ...admit.params, ...terms.map((t) => `%${escapeLike(t)}%`), limit);
|
|
75
93
|
return rows.map(rowToDormantMemory);
|
|
76
94
|
}
|
|
77
95
|
/** A tenant's stored dormant snapshot, or null when it has none with that id (another tenant's id reads as absent). */
|
|
@@ -91,10 +109,12 @@ export function listDormantSnapshots(db, tenantId) {
|
|
|
91
109
|
/** Readable snapshots whose entry's source starts with `prefix`; a malformed snapshot is passed over, not an error. */
|
|
92
110
|
export function dormantSnapshotsBySourcePrefix(db, tenantId, prefix) {
|
|
93
111
|
// SAFETY: rows' shape matches the seven columns named in the SELECT.
|
|
94
|
-
const rows = db
|
|
112
|
+
const rows = db
|
|
113
|
+
.prepare(`SELECT tenant_id, id, content, entry_json, reason, strength, dormant_at
|
|
95
114
|
FROM dormant_memories
|
|
96
115
|
WHERE tenant_id = ?
|
|
97
|
-
AND CASE WHEN json_valid(entry_json) THEN json_extract(entry_json, '$.source') END LIKE ? ESCAPE '\\'`)
|
|
116
|
+
AND CASE WHEN json_valid(entry_json) THEN json_extract(entry_json, '$.source') END LIKE ? ESCAPE '\\'`)
|
|
117
|
+
.all(tenantId, `${escapeLike(prefix)}%`);
|
|
98
118
|
return rows.flatMap((row) => toSnapshot(row) ?? []).filter((s) => String(s.entry.source).startsWith(prefix));
|
|
99
119
|
}
|
|
100
120
|
function toSnapshot(row) {
|
|
@@ -108,14 +128,17 @@ export function replaceDormantEntry(db, tenantId, id, entry) {
|
|
|
108
128
|
}
|
|
109
129
|
/** Whether a tenant has a dormant memory with this id whose scope `admit` passes (snapshot readable or not). */
|
|
110
130
|
function hasDormantRow(db, tenantId, id, admit = EVERY_SCOPE) {
|
|
111
|
-
return db
|
|
131
|
+
return (db
|
|
132
|
+
.prepare(`SELECT 1 FROM ${DORMANT_WITH_SCOPE} WHERE tenant_id = ? AND id = ? AND ${admit.sql}`)
|
|
133
|
+
.get(tenantId, id, ...admit.params) !== undefined);
|
|
112
134
|
}
|
|
113
135
|
/** Delete a tenant's dormant memory. Returns false when there was none. */
|
|
114
136
|
export function deleteDormantRow(db, tenantId, id) {
|
|
115
137
|
const result = db.prepare(`DELETE FROM dormant_memories WHERE tenant_id = ? AND id = ?`).run(tenantId, id);
|
|
116
138
|
return Number(result.changes ?? 0) > 0;
|
|
117
139
|
}
|
|
118
|
-
/** Deletes the tenant's dormant copies of a rejected digest whose snapshot scope `inReach` admits, so the value cannot
|
|
140
|
+
/** Deletes the tenant's dormant copies of a rejected digest whose snapshot scope `inReach` admits, so the value cannot
|
|
141
|
+
* linger; returns their ids. */
|
|
119
142
|
export function purgeDormantByDigest(db, tenantId, digest, inReach) {
|
|
120
143
|
// SAFETY: rows' shape matches the three columns named in the SELECT.
|
|
121
144
|
const rows = db.prepare(`SELECT id, content, CASE WHEN json_valid(entry_json) THEN json_extract(entry_json, '$.scope') END AS scope
|
|
@@ -156,7 +179,8 @@ async function expireInChunks(db, keys, cutoffIso, budget) {
|
|
|
156
179
|
}
|
|
157
180
|
return gone;
|
|
158
181
|
}
|
|
159
|
-
/** Deletes for good every memory that went dormant before `cutoffIso`, on one handle; returns how many went, or under
|
|
182
|
+
/** Deletes for good every memory that went dormant before `cutoffIso`, on one handle; returns how many went, or under
|
|
183
|
+
* `dryRun` how many would. */
|
|
160
184
|
export async function expireDormantBefore(hippoRoot, cutoffIso, opts) {
|
|
161
185
|
const db = openHippoDb(hippoRoot, { busyWaitMs: opts.busyWaitMs });
|
|
162
186
|
try {
|
|
@@ -211,7 +235,8 @@ function restoreInWriteScope(db, restore) {
|
|
|
211
235
|
return { status: 'restored', entry };
|
|
212
236
|
});
|
|
213
237
|
}
|
|
214
|
-
/** Brings one dormant memory back on a single handle: the live row, the dormant delete and the audit row commit
|
|
238
|
+
/** Brings one dormant memory back on a single handle: the live row, the dormant delete and the audit row commit
|
|
239
|
+
* together, then its mirrors are written. */
|
|
215
240
|
export function restoreDormantMemory(hippoRoot, restore) {
|
|
216
241
|
return onHandle(hippoRoot, (db) => {
|
|
217
242
|
let outcome;
|
|
@@ -229,7 +254,8 @@ export function restoreDormantMemory(hippoRoot, restore) {
|
|
|
229
254
|
return outcome;
|
|
230
255
|
});
|
|
231
256
|
}
|
|
232
|
-
/** Deletes a tenant's dormant memory for good and writes its `forget` audit row, on a single handle; false when it
|
|
257
|
+
/** Deletes a tenant's dormant memory for good and writes its `forget` audit row, on a single handle; false when it
|
|
258
|
+
* holds none `admit` passes. */
|
|
233
259
|
export function forgetDormantMemory(hippoRoot, forget) {
|
|
234
260
|
const { tenantId, id, actor, admit } = forget;
|
|
235
261
|
return onHandle(hippoRoot, (db) => {
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
/** The stored vector index's identity: which model and text format built it, and when a provider change means a
|
|
2
|
-
* Picking a provider and computing vectors sit in src/search/embed-memories.ts; this module only reads and
|
|
1
|
+
/** The stored vector index's identity: which model and text format built it, and when a provider change means a
|
|
2
|
+
* rebuild. Picking a provider and computing vectors sit in src/search/embed-memories.ts; this module only reads and
|
|
3
|
+
* writes what is stored. */
|
|
3
4
|
import { EMBEDDING_MODEL_META_KEY } from '../../db/vector-store.js';
|
|
4
5
|
export { EMBEDDING_MODEL_META_KEY };
|
|
5
|
-
/** Bump when `embeddingInputText` changes existing vectors; folded into the stored index identity
|
|
6
|
-
* change. Format 2 = `path:*` tags excluded; format 1
|
|
6
|
+
/** Bump when `embeddingInputText` changes existing vectors; folded into the stored index identity
|
|
7
|
+
* (`embeddingIndexIdentity`) so it reindexes like a model change. Format 2 = `path:*` tags excluded; format 1
|
|
8
|
+
* (implicit, no suffix) included them. */
|
|
7
9
|
export declare const EMBED_TEXT_FORMAT = 2;
|
|
8
|
-
/** Stored-index identity for a provider id: folds `EMBED_TEXT_FORMAT` in so a model or text-format change invalidates
|
|
9
|
-
* compare (`embeddingModelRequiresReindex`) and save (`saveStoredEmbeddingModel`);
|
|
10
|
+
/** Stored-index identity for a provider id: folds `EMBED_TEXT_FORMAT` in so a model or text-format change invalidates
|
|
11
|
+
* the index. The ONE choke point for compare (`embeddingModelRequiresReindex`) and save (`saveStoredEmbeddingModel`);
|
|
12
|
+
* they MUST version identically or every call reindexes. */
|
|
10
13
|
export declare function embeddingIndexIdentity(providerId: string): string;
|
|
11
14
|
/** Text embedded for an entry: content plus tags, space-joined and trimmed, minus `path:*` tags.
|
|
12
|
-
* `path:*` tags derive from cwd, so identical content would embed differently per store location; path relevance is
|
|
15
|
+
* `path:*` tags derive from cwd, so identical content would embed differently per store location; path relevance is
|
|
16
|
+
* handled by `pathOverlapScore`. */
|
|
13
17
|
export declare function embeddingInputText(entry: {
|
|
14
18
|
content: string;
|
|
15
19
|
tags: string[];
|
|
16
20
|
}): string;
|
|
17
|
-
/** Persist the stored-index identity for `model` (see `embeddingIndexIdentity`); versioning happens here, not at call
|
|
18
|
-
* and must stay consistent with the compare side in `embeddingModelRequiresReindex`. */
|
|
21
|
+
/** Persist the stored-index identity for `model` (see `embeddingIndexIdentity`); versioning happens here, not at call
|
|
22
|
+
* sites, and must stay consistent with the compare side in `embeddingModelRequiresReindex`. */
|
|
19
23
|
export declare function saveStoredEmbeddingModel(hippoRoot: string, model: string): void;
|
|
20
24
|
/** The one rebuild rule every store applies to its indexed model. */
|
|
21
25
|
export declare function indexNeedsRebuild(indexed: string | null, providerId: string): boolean;
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
/** The stored vector index's identity: which model and text format built it, and when a provider change means a
|
|
2
|
-
* Picking a provider and computing vectors sit in src/search/embed-memories.ts; this module only reads and
|
|
1
|
+
/** The stored vector index's identity: which model and text format built it, and when a provider change means a
|
|
2
|
+
* rebuild. Picking a provider and computing vectors sit in src/search/embed-memories.ts; this module only reads and
|
|
3
|
+
* writes what is stored. */
|
|
3
4
|
import { cosineOf } from '../../core/cosine.js';
|
|
4
5
|
import { EMBEDDING_MODEL_META_KEY } from '../../db/vector-store.js';
|
|
5
6
|
import { indexedModel, saveIndexIdentity, storedIndexState } from '../vector-index.js';
|
|
6
|
-
import { errorMessage, log } from '../../util/log.js';
|
|
7
|
+
import { errorMessage, log, errorFields } from '../../util/log.js';
|
|
7
8
|
import { rethrowIfSqliteBlocked } from '../../util/sqlite-blocked.js';
|
|
8
9
|
export { EMBEDDING_MODEL_META_KEY };
|
|
9
|
-
/** Bump when `embeddingInputText` changes existing vectors; folded into the stored index identity
|
|
10
|
-
* change. Format 2 = `path:*` tags excluded; format 1
|
|
10
|
+
/** Bump when `embeddingInputText` changes existing vectors; folded into the stored index identity
|
|
11
|
+
* (`embeddingIndexIdentity`) so it reindexes like a model change. Format 2 = `path:*` tags excluded; format 1
|
|
12
|
+
* (implicit, no suffix) included them. */
|
|
11
13
|
export const EMBED_TEXT_FORMAT = 2;
|
|
12
|
-
/** Stored-index identity for a provider id: folds `EMBED_TEXT_FORMAT` in so a model or text-format change invalidates
|
|
13
|
-
* compare (`embeddingModelRequiresReindex`) and save (`saveStoredEmbeddingModel`);
|
|
14
|
+
/** Stored-index identity for a provider id: folds `EMBED_TEXT_FORMAT` in so a model or text-format change invalidates
|
|
15
|
+
* the index. The ONE choke point for compare (`embeddingModelRequiresReindex`) and save (`saveStoredEmbeddingModel`);
|
|
16
|
+
* they MUST version identically or every call reindexes. */
|
|
14
17
|
export function embeddingIndexIdentity(providerId) {
|
|
15
18
|
return `${providerId}#t${EMBED_TEXT_FORMAT}`;
|
|
16
19
|
}
|
|
17
20
|
/** Text embedded for an entry: content plus tags, space-joined and trimmed, minus `path:*` tags.
|
|
18
|
-
* `path:*` tags derive from cwd, so identical content would embed differently per store location; path relevance is
|
|
21
|
+
* `path:*` tags derive from cwd, so identical content would embed differently per store location; path relevance is
|
|
22
|
+
* handled by `pathOverlapScore`. */
|
|
19
23
|
export function embeddingInputText(entry) {
|
|
20
24
|
const tags = entry.tags.filter((t) => !t.startsWith('path:'));
|
|
21
25
|
return `${entry.content} ${tags.join(' ')}`.trim();
|
|
@@ -26,12 +30,12 @@ function loadStoredEmbeddingModel(hippoRoot) {
|
|
|
26
30
|
}
|
|
27
31
|
catch (err) {
|
|
28
32
|
rethrowIfSqliteBlocked(err);
|
|
29
|
-
log.debug(`stored embedding model unreadable: ${errorMessage(err)}
|
|
33
|
+
log.debug(`stored embedding model unreadable: ${errorMessage(err)}`, errorFields(err));
|
|
30
34
|
return null;
|
|
31
35
|
}
|
|
32
36
|
}
|
|
33
|
-
/** Persist the stored-index identity for `model` (see `embeddingIndexIdentity`); versioning happens here, not at call
|
|
34
|
-
* and must stay consistent with the compare side in `embeddingModelRequiresReindex`. */
|
|
37
|
+
/** Persist the stored-index identity for `model` (see `embeddingIndexIdentity`); versioning happens here, not at call
|
|
38
|
+
* sites, and must stay consistent with the compare side in `embeddingModelRequiresReindex`. */
|
|
35
39
|
export function saveStoredEmbeddingModel(hippoRoot, model) {
|
|
36
40
|
saveIndexIdentity(hippoRoot, embeddingIndexIdentity(model));
|
|
37
41
|
}
|
|
@@ -43,7 +47,10 @@ export function resolveIndexedEmbeddingModel(hippoRoot, index) {
|
|
|
43
47
|
const storedModel = loadStoredEmbeddingModel(hippoRoot);
|
|
44
48
|
if (storedModel)
|
|
45
49
|
return storedModel;
|
|
46
|
-
return indexedModel({
|
|
50
|
+
return indexedModel({
|
|
51
|
+
storedModel,
|
|
52
|
+
hasVectors: index ? Object.keys(index).length > 0 : storedIndexState(hippoRoot).hasVectors,
|
|
53
|
+
});
|
|
47
54
|
}
|
|
48
55
|
export function embeddingModelRequiresReindex(hippoRoot, model, index) {
|
|
49
56
|
return indexNeedsRebuild(resolveIndexedEmbeddingModel(hippoRoot, index), model);
|
|
@@ -1,53 +1,88 @@
|
|
|
1
1
|
import type { MemoryEntry } from '../core/memory.js';
|
|
2
2
|
import { type DatabaseSyncLike } from '../db/index.js';
|
|
3
3
|
export declare const TENANT_IS = "+tenant_id = ?";
|
|
4
|
-
/** Read a memory entry by ID. With `tenantId` the read is tenant-scoped (cross-tenant returns null); omitted, no
|
|
4
|
+
/** Read a memory entry by ID. With `tenantId` the read is tenant-scoped (cross-tenant returns null); omitted, no
|
|
5
|
+
* tenant filter is applied. */
|
|
5
6
|
export declare function readEntry(hippoRoot: string, id: string, tenantId?: string): MemoryEntry | null;
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
/** Rows by id on the caller's handle, one query per chunk; an id missing or in another tenant is absent from the map. */
|
|
7
|
+
/** Rows by id on the caller's handle, one query per chunk; an
|
|
8
|
+
* id missing or in another tenant is absent from the map. */
|
|
9
9
|
export declare function selectEntriesByIds(db: DatabaseSyncLike, ids: readonly string[], tenantId?: string): Map<string, MemoryEntry>;
|
|
10
10
|
/** Direct children of each parent, one query per chunk; each list is in `created ASC, id ASC` order. */
|
|
11
11
|
export declare function selectChildrenByParent(db: DatabaseSyncLike, parentIds: readonly string[], tenantId?: string): Map<string, MemoryEntry[]>;
|
|
12
|
-
/** Batched lookup, capped at 500 ids per call to keep IN(?,?,...) within SQLite limits; tenant filter enforced when
|
|
12
|
+
/** Batched lookup, capped at 500 ids per call to keep IN(?,?,...) within SQLite limits; tenant filter enforced when
|
|
13
|
+
* `tenantId` is passed. */
|
|
13
14
|
export declare function loadEntriesByIds(hippoRoot: string, ids: readonly string[], tenantId?: string): MemoryEntry[];
|
|
14
15
|
/** All `kind='raw'` rows for a session, tenant-scoped, oldest-first, excluding superseded; `[]` for an empty sessionId.
|
|
15
|
-
* With `cap`, the NEWEST rows are loaded (DESC LIMIT, reversed client-side); ASC + LIMIT would drop the newest and
|
|
16
|
+
* With `cap`, the NEWEST rows are loaded (DESC LIMIT, reversed client-side); ASC + LIMIT would drop the newest and
|
|
17
|
+
* break fresh-tail in assemble. */
|
|
16
18
|
export declare function loadSessionRawMemories(hippoRoot: string, sessionId: string, tenantId?: string, cap?: number, origins?: readonly string[]): MemoryEntry[];
|
|
17
|
-
/** Pre-cap, scope-aware row count for a session, so `assemble` reports the full size without leaking rows the caller
|
|
18
|
-
*
|
|
19
|
+
/** Pre-cap, scope-aware row count for a session, so `assemble` reports the full size without leaking rows the caller
|
|
20
|
+
* could not load. Mirrors
|
|
21
|
+
* `passesScopeFilterForRecall`'s default-deny: explicit scope matches exactly, none admits only `ownScope`.
|
|
22
|
+
* `tenantId` undefined counts cross-tenant. */
|
|
19
23
|
export declare function countSessionRawMemories(hippoRoot: string, sessionId: string, tenantId?: string, scope?: string, ownScope?: string, origins?: readonly string[]): number;
|
|
20
|
-
/** Last N kind='raw' memories by `created` desc, tenant-scoped, max 200; pass
|
|
21
|
-
*
|
|
24
|
+
/** Last N kind='raw' memories by `created` desc, tenant-scoped, max 200; pass
|
|
25
|
+
* `sessionId` or concurrent sessions show up in each other's fresh tail. The
|
|
26
|
+
* tenant-wide shape is discouraged: `api.recall` throws `RecallContractError`
|
|
27
|
+
* for it when `HIPPO_REQUIRE_SESSION_SCOPED_FRESH_TAIL=1`. */
|
|
22
28
|
export declare function loadFreshRawMemories(hippoRoot: string, count: number, tenantId?: string, sessionId?: string, origins?: readonly string[]): MemoryEntry[];
|
|
23
|
-
/** Load all entries from SQLite; omitting `tenantId` yields all rows (legacy). Recall paths that surface results to
|
|
29
|
+
/** Load all entries from SQLite; omitting `tenantId` yields all rows (legacy). Recall paths that surface results to
|
|
30
|
+
* a user MUST pass a resolved tenant. */
|
|
24
31
|
export declare function loadAllEntries(hippoRoot: string, tenantId?: string): MemoryEntry[];
|
|
25
|
-
/** Every tenant's memory ids in loadAllEntries' order, for a caller that reads the rows a page at a time instead of
|
|
32
|
+
/** Every tenant's memory ids in loadAllEntries' order, for a caller that reads the rows a page at a time instead of
|
|
33
|
+
* holding them all. */
|
|
26
34
|
export declare function loadAllEntryIds(hippoRoot: string): string[];
|
|
27
35
|
/** How many memory rows the store holds across every tenant. */
|
|
28
36
|
export declare function countAllEntries(hippoRoot: string): number;
|
|
29
|
-
/** A superset, in loadAllEntries' order, of the rows whose lowercased content holds any of `tokens` or whose lowercased
|
|
37
|
+
/** A superset, in loadAllEntries' order, of the rows whose lowercased content holds any of `tokens` or whose lowercased
|
|
38
|
+
* tags hold `tag`.
|
|
30
39
|
* The caller re-checks each row exactly; this only spares decoding rows that cannot match. */
|
|
31
40
|
export declare function loadEntriesMentioning(hippoRoot: string, tokens: readonly string[], tag: string, tenantId?: string): MemoryEntry[];
|
|
32
41
|
export interface EntryTextKey {
|
|
33
42
|
id: string;
|
|
34
|
-
|
|
43
|
+
tenant_id: string;
|
|
35
44
|
content: string;
|
|
36
45
|
source: string;
|
|
37
46
|
}
|
|
38
|
-
/**
|
|
39
|
-
|
|
47
|
+
/** The rows in loadAllEntries' order (every tenant unless one is named), with only the columns that say whether
|
|
48
|
+
* another store already holds each. */
|
|
49
|
+
export declare function loadEntryTextKeys(hippoRoot: string, tenantId?: string): EntryTextKey[];
|
|
40
50
|
export interface EntriesWithBase {
|
|
41
51
|
entries: MemoryEntry[];
|
|
42
52
|
base: {
|
|
43
53
|
get(id: string): MemoryEntry | undefined;
|
|
44
54
|
};
|
|
45
55
|
}
|
|
46
|
-
/** Every entry plus a by-id lookup of each as loaded, rebuilt from its row on first use, so no deep copy of the
|
|
56
|
+
/** Every entry plus a by-id lookup of each as loaded, rebuilt from its row on first use, so no deep copy of the
|
|
57
|
+
* store is kept. */
|
|
47
58
|
export declare function loadAllEntriesWithBase(hippoRoot: string): EntriesWithBase;
|
|
59
|
+
/** Where a page stopped: the `created`, `id` of its last row, in loadAllEntries' order. */
|
|
60
|
+
export interface EntryCursor {
|
|
61
|
+
created: string;
|
|
62
|
+
id: string;
|
|
63
|
+
}
|
|
64
|
+
export interface EntryPage {
|
|
65
|
+
entries: MemoryEntry[];
|
|
66
|
+
/** The cursor that reads the page after this one, or null when this was the last. */
|
|
67
|
+
next: EntryCursor | null;
|
|
68
|
+
}
|
|
69
|
+
/** Up to `limit` rows in loadAllEntries' order, starting after `after`; omitting `tenantId` reads every tenant. */
|
|
70
|
+
export declare function loadEntriesPage(hippoRoot: string, tenantId: string | undefined, page: {
|
|
71
|
+
limit: number;
|
|
72
|
+
after?: EntryCursor;
|
|
73
|
+
}): EntryPage;
|
|
48
74
|
/** Every memory row on an open connection, so a caller can read inside its own transaction. */
|
|
49
75
|
export declare function selectAllEntries(db: DatabaseSyncLike, tenantId?: string): MemoryEntry[];
|
|
50
|
-
/**
|
|
76
|
+
/** The columns a text match needs, for every row of a tenant in loadAllEntries' order: callers read whole rows only
|
|
77
|
+
* for the ids that match. */
|
|
78
|
+
export declare function selectTenantTexts(db: DatabaseSyncLike, tenantId: string): Array<{
|
|
79
|
+
id: string;
|
|
80
|
+
content: string;
|
|
81
|
+
source: string;
|
|
82
|
+
scope: string | null;
|
|
83
|
+
}>;
|
|
84
|
+
/** Live rows whose source starts with `prefix`, on the caller's
|
|
85
|
+
* handle; LIKE folds case, so the prefix is checked again exactly. */
|
|
51
86
|
export declare function selectLiveEntriesBySourcePrefix(db: DatabaseSyncLike, tenantId: string, prefix: string): MemoryEntry[];
|
|
52
87
|
export declare function loadContentsWithTag(hippoRoot: string, tenantId: string, tag: string, origins?: readonly string[]): string[];
|
|
53
88
|
export interface VaultRawRow {
|
|
@@ -56,7 +91,8 @@ export interface VaultRawRow {
|
|
|
56
91
|
tags_json: string;
|
|
57
92
|
scope: string | null;
|
|
58
93
|
}
|
|
59
|
-
/** Live raw rows whose artifact_ref matches a LIKE pattern,
|
|
94
|
+
/** Live raw rows whose artifact_ref matches a LIKE pattern,
|
|
95
|
+
* for one tenant; the store is set up first when it is new. */
|
|
60
96
|
export declare function loadVaultRawRows(hippoRoot: string, likeParam: string, tenantId: string): VaultRawRow[];
|
|
61
97
|
export interface PreviewRow {
|
|
62
98
|
id: string;
|
|
@@ -81,7 +117,8 @@ export declare function objectMemoryRowsAt(db: DatabaseSyncLike): Array<{
|
|
|
81
117
|
memory_id: string;
|
|
82
118
|
status: string;
|
|
83
119
|
}>;
|
|
84
|
-
/** Live rows of a tenant whose source does not start with `sourcePrefix`; `origins` (global store only) limits them
|
|
120
|
+
/** Live rows of a tenant whose source does not start with `sourcePrefix`; `origins` (global store only) limits them
|
|
121
|
+
* to user-global rows and those projects. */
|
|
85
122
|
export declare function selectRowsOutsideSourcePrefixAt(db: DatabaseSyncLike, tenantId: string, sourcePrefix: string, origins: readonly string[] | null): Array<{
|
|
86
123
|
id: string;
|
|
87
124
|
content: string;
|
|
@@ -90,6 +127,20 @@ export declare function selectRowsOutsideSourcePrefixAt(db: DatabaseSyncLike, te
|
|
|
90
127
|
/** Content of a tenant's live rows written by `source` and tagged `tag` that no extraction produced,
|
|
91
128
|
* in loadAllEntries' order and in every scope; `exceptSessionId` drops one session's own rows. */
|
|
92
129
|
export declare function loadLiveContentsBySourceAndTag(hippoRoot: string, tenantId: string, source: string, tag: string, exceptSessionId: string): string[];
|
|
93
|
-
/** Every tenant's distilled rows nothing has superseded, in
|
|
130
|
+
/** Every tenant's distilled rows nothing has superseded, in
|
|
131
|
+
* loadAllEntries' order: the rows that can be each other's duplicate. */
|
|
94
132
|
export declare function loadCurrentDistilledEntries(hippoRoot: string): MemoryEntry[];
|
|
133
|
+
/** Row traits any one of which lets a row through loadEntriesWithSignals. */
|
|
134
|
+
export interface EntrySignals {
|
|
135
|
+
tags: readonly string[];
|
|
136
|
+
sourcePrefix: string;
|
|
137
|
+
minRetrievals: number;
|
|
138
|
+
valences: readonly string[];
|
|
139
|
+
}
|
|
140
|
+
/** Rows holding at least one signal, in loadAllEntries' order; omitting `tenantId` reads every tenant. A superset:
|
|
141
|
+
* callers re-check each row. */
|
|
142
|
+
export declare function loadEntriesWithSignals(hippoRoot: string, signals: EntrySignals, tenantId?: string): MemoryEntry[];
|
|
143
|
+
/** A tenant's rows from `origins` that nothing superseded and
|
|
144
|
+
* that are neither raw nor archived, in loadAllEntries' order. */
|
|
145
|
+
export declare function loadCurrentEntriesFromOrigins(hippoRoot: string, tenantId: string, origins: readonly string[]): MemoryEntry[];
|
|
95
146
|
//# sourceMappingURL=entry-reads.d.ts.map
|