hippo-memory 1.70.0 → 1.72.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 +2 -2
- package/dist/agent-memories/apply.d.ts +0 -11
- package/dist/agent-memories/apply.js +6 -21
- package/dist/agent-memories/claude-code.d.ts +4 -2
- package/dist/agent-memories/claude-code.js +15 -6
- package/dist/agent-memories/codex.js +1 -1
- package/dist/agent-memories/copilot.d.ts +1 -3
- package/dist/agent-memories/copilot.js +1 -17
- package/dist/agent-memories/files.js +23 -12
- package/dist/agent-memories/markdown.d.ts +1 -3
- package/dist/agent-memories/markdown.js +1 -3
- package/dist/agent-memories/project-folds.d.ts +10 -0
- package/dist/agent-memories/project-folds.js +34 -0
- package/dist/agent-memories/report.js +2 -1
- package/dist/agent-memories/sync.d.ts +4 -2
- package/dist/agent-memories/sync.js +18 -11
- package/dist/api/assemble.d.ts +7 -44
- package/dist/api/assemble.js +3 -23
- package/dist/api/audit.d.ts +33 -1
- package/dist/api/audit.js +48 -1
- package/dist/api/auth.d.ts +20 -26
- package/dist/api/auth.js +43 -29
- package/dist/api/auto-sleep.d.ts +5 -2
- package/dist/api/auto-sleep.js +9 -5
- package/dist/api/availability.d.ts +2 -15
- package/dist/api/availability.js +4 -18
- package/dist/api/cards.d.ts +42 -0
- package/dist/api/cards.js +52 -0
- package/dist/api/conflicts.d.ts +28 -0
- package/dist/api/conflicts.js +61 -0
- package/dist/api/context-render.js +4 -3
- package/dist/api/context-select.js +12 -15
- package/dist/api/context-types.d.ts +10 -35
- package/dist/api/context.d.ts +5 -22
- package/dist/api/context.js +38 -46
- package/dist/api/continuity.d.ts +47 -0
- package/dist/api/continuity.js +66 -0
- package/dist/{cli → api}/correction-latency.d.ts +2 -14
- package/dist/{cli → api}/correction-latency.js +2 -14
- package/dist/api/dormant.d.ts +5 -21
- package/dist/api/dormant.js +11 -28
- package/dist/api/drill-down.d.ts +7 -46
- package/dist/api/drill-down.js +6 -27
- package/dist/api/embeddings.d.ts +17 -0
- package/dist/api/embeddings.js +28 -0
- package/dist/api/error-reply.d.ts +8 -0
- package/dist/api/error-reply.js +21 -0
- package/dist/api/forget.d.ts +11 -26
- package/dist/api/forget.js +23 -35
- package/dist/api/goals.d.ts +1 -1
- package/dist/api/goals.js +5 -9
- package/dist/api/graph.d.ts +8 -0
- package/dist/api/graph.js +7 -0
- package/dist/api/index.d.ts +6 -2
- package/dist/api/index.js +6 -2
- package/dist/api/instruction-detect.js +21 -6
- package/dist/api/learn.d.ts +4 -0
- package/dist/api/learn.js +53 -27
- package/dist/api/ledger-db.d.ts +2 -5
- package/dist/api/ledger-db.js +5 -35
- package/dist/api/memories.d.ts +23 -0
- package/dist/api/memories.js +46 -0
- package/dist/api/objects.d.ts +9 -0
- package/dist/api/objects.js +11 -0
- package/dist/api/on-store.js +5 -3
- package/dist/api/outcome.js +1 -1
- package/dist/api/pilot-arm.d.ts +1 -11
- package/dist/api/pilot-arm.js +5 -45
- package/dist/api/predictions.d.ts +11 -0
- package/dist/api/predictions.js +24 -0
- package/dist/api/projects.d.ts +21 -0
- package/dist/api/projects.js +24 -0
- package/dist/api/promote.d.ts +13 -17
- package/dist/api/promote.js +12 -20
- package/dist/api/prompt-hook.d.ts +19 -6
- package/dist/api/prompt-hook.js +54 -13
- package/dist/api/provenance-coverage.d.ts +14 -0
- package/dist/{cli → api}/provenance-coverage.js +2 -6
- package/dist/api/recall-cli.d.ts +58 -0
- package/dist/api/recall-cli.js +103 -0
- package/dist/api/recall-core.js +17 -9
- package/dist/api/recall-finish.d.ts +53 -0
- package/dist/api/recall-finish.js +30 -0
- package/dist/api/recall-history.d.ts +17 -84
- package/dist/api/recall-history.js +15 -88
- package/dist/api/recall-pipeline.d.ts +2 -3
- package/dist/api/recall-pipeline.js +21 -15
- package/dist/api/recall-request.js +1 -1
- package/dist/api/recall-types.d.ts +64 -304
- package/dist/api/recall.d.ts +3 -34
- package/dist/api/recall.js +63 -89
- 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 +20 -2
- package/dist/api/remember.js +16 -3
- package/dist/api/session-end.d.ts +22 -0
- package/dist/api/session-end.js +101 -0
- package/dist/api/sleep-run.d.ts +2 -4
- package/dist/api/sleep-run.js +28 -28
- package/dist/api/sleep.d.ts +9 -28
- package/dist/api/status.d.ts +24 -0
- package/dist/api/status.js +40 -0
- package/dist/api/store-init.d.ts +4 -0
- package/dist/api/store-init.js +9 -0
- package/dist/api/tokens.d.ts +3 -10
- package/dist/api/tokens.js +4 -11
- package/dist/api/types.d.ts +8 -29
- package/dist/api/types.js +10 -23
- package/dist/capture/caller-session.d.ts +0 -3
- package/dist/capture/caller-session.js +1 -12
- package/dist/capture/capture-error.d.ts +2 -2
- package/dist/capture/capture-error.js +23 -18
- package/dist/capture/codex-patch.js +3 -1
- package/dist/capture/command.d.ts +4 -12
- package/dist/capture/command.js +39 -114
- package/dist/capture/compact.d.ts +4 -15
- package/dist/capture/compact.js +26 -30
- package/dist/capture/compaction-items-caller.js +11 -20
- package/dist/capture/compaction-record.d.ts +7 -93
- package/dist/capture/compaction-record.js +34 -399
- package/dist/capture/compaction-spool.d.ts +5 -3
- package/dist/capture/compaction-spool.js +21 -7
- package/dist/capture/copilot-transcript.d.ts +2 -1
- package/dist/capture/copilot-transcript.js +2 -1
- package/dist/capture/extract.d.ts +5 -2
- package/dist/capture/extract.js +4 -3
- package/dist/capture/failure-caller.d.ts +1 -1
- package/dist/capture/failure-caller.js +21 -16
- package/dist/capture/failure-reading.d.ts +2 -1
- package/dist/capture/failure-reading.js +7 -9
- package/dist/capture/pre-compact-caller.js +5 -4
- package/dist/capture/session-digest.d.ts +1 -1
- package/dist/capture/session-digest.js +17 -10
- package/dist/capture/session-end-caller.js +2 -1
- package/dist/capture/session-worker.js +3 -4
- package/dist/capture/transcript.d.ts +4 -11
- package/dist/capture/transcript.js +10 -21
- package/dist/capture/working-state.d.ts +4 -2
- package/dist/capture/working-state.js +4 -2
- package/dist/cli/api-context.d.ts +3 -0
- package/dist/cli/api-context.js +6 -0
- package/dist/cli/audit-prune.d.ts +1 -59
- package/dist/cli/audit-prune.js +2 -61
- package/dist/cli/audit.d.ts +1 -1
- package/dist/cli/audit.js +42 -43
- package/dist/cli/auth.d.ts +2 -2
- package/dist/cli/auth.js +61 -44
- package/dist/cli/briefs.d.ts +1 -4
- package/dist/cli/briefs.js +42 -301
- package/dist/cli/card.d.ts +2 -2
- package/dist/cli/card.js +63 -56
- package/dist/cli/client.d.ts +12 -27
- package/dist/cli/client.js +41 -44
- package/dist/cli/compact-resume-payload.js +4 -3
- package/dist/cli/context.d.ts +2 -3
- package/dist/cli/context.js +22 -18
- package/dist/cli/continuity.d.ts +6 -6
- package/dist/cli/continuity.js +81 -86
- package/dist/cli/curate.d.ts +13 -17
- package/dist/cli/curate.js +88 -116
- package/dist/cli/dag.d.ts +4 -4
- package/dist/cli/dag.js +55 -34
- package/dist/cli/decisions.d.ts +2 -4
- package/dist/cli/decisions.js +18 -309
- package/dist/cli/eval.d.ts +1 -1
- package/dist/cli/eval.js +27 -26
- package/dist/cli/exit.d.ts +6 -0
- package/dist/cli/exit.js +11 -0
- package/dist/cli/explain.d.ts +2 -3
- package/dist/cli/explain.js +25 -27
- package/dist/cli/flag-values.d.ts +6 -1
- package/dist/cli/flag-values.js +42 -15
- package/dist/cli/flags.d.ts +0 -288
- package/dist/cli/flags.js +3 -138
- package/dist/cli/github.d.ts +14 -0
- package/dist/{connectors/github/cli-impl.js → cli/github.js} +43 -71
- package/dist/cli/goals.d.ts +2 -2
- package/dist/cli/goals.js +46 -50
- package/dist/cli/graph.d.ts +3 -0
- package/dist/cli/graph.js +83 -0
- package/dist/cli/hook-runtime.d.ts +12 -32
- package/dist/cli/hook-runtime.js +21 -64
- package/dist/cli/incidents.d.ts +3 -0
- package/dist/cli/incidents.js +112 -0
- package/dist/cli/init.d.ts +2 -2
- package/dist/cli/init.js +33 -30
- package/dist/cli/install-steps.d.ts +2 -1
- package/dist/cli/install-steps.js +13 -14
- package/dist/cli/last-sleep.d.ts +2 -1
- package/dist/cli/last-sleep.js +4 -1
- package/dist/cli/lenient-id.d.ts +2 -0
- package/dist/cli/lenient-id.js +13 -0
- package/dist/cli/maintenance.d.ts +5 -5
- package/dist/cli/maintenance.js +37 -43
- package/dist/cli/notes.d.ts +2 -0
- package/dist/cli/notes.js +41 -0
- package/dist/cli/object-verbs.js +4 -3
- package/dist/cli/open-browser.d.ts +14 -0
- package/dist/cli/open-browser.js +26 -0
- package/dist/cli/owner-validation.d.ts +5 -28
- package/dist/cli/owner-validation.js +5 -28
- package/dist/cli/playbooks.d.ts +3 -4
- package/dist/cli/playbooks.js +131 -300
- package/dist/cli/predictions.d.ts +3 -0
- package/dist/cli/predictions.js +175 -0
- package/dist/cli/print.d.ts +2 -5
- package/dist/cli/print.js +3 -5
- package/dist/cli/projects.d.ts +2 -2
- package/dist/cli/projects.js +31 -25
- package/dist/cli/quality-repair-once.d.ts +1 -1
- package/dist/cli/quality-repair-once.js +7 -6
- package/dist/cli/recall.d.ts +2 -4
- package/dist/cli/recall.js +67 -137
- package/dist/cli/refine-llm.d.ts +5 -31
- package/dist/cli/refine-llm.js +23 -50
- package/dist/cli/remember.d.ts +3 -3
- package/dist/cli/remember.js +134 -192
- package/dist/cli/scheduler.d.ts +2 -17
- package/dist/cli/scheduler.js +14 -19
- package/dist/cli/serve.js +23 -14
- package/dist/cli/session-hooks.d.ts +11 -19
- package/dist/cli/session-hooks.js +143 -214
- package/dist/cli/setup.d.ts +4 -4
- package/dist/cli/setup.js +35 -30
- package/dist/cli/shared.d.ts +7 -25
- package/dist/cli/shared.js +17 -60
- package/dist/cli/slack.d.ts +2 -2
- package/dist/cli/slack.js +19 -23
- package/dist/cli/sleep-render.js +6 -3
- package/dist/cli/sleep.d.ts +3 -2
- package/dist/cli/sleep.js +17 -49
- package/dist/cli/status.d.ts +11 -14
- package/dist/cli/status.js +74 -120
- package/dist/cli/stdin.d.ts +4 -6
- package/dist/cli/stdin.js +2 -3
- package/dist/cli/transfer.d.ts +9 -9
- package/dist/cli/transfer.js +87 -108
- package/dist/cli/usage.d.ts +0 -79
- package/dist/cli/usage.js +1 -689
- package/dist/cli/verb-row.d.ts +32 -0
- package/dist/cli/verb-row.js +6 -0
- package/dist/cli/verbs/health.d.ts +27 -0
- package/dist/cli/verbs/health.js +232 -0
- package/dist/cli/verbs/memory.d.ts +16 -0
- package/dist/cli/verbs/memory.js +244 -0
- package/dist/cli/verbs/objects.d.ts +20 -0
- package/dist/cli/verbs/objects.js +254 -0
- package/dist/cli/verbs/sessions.d.ts +31 -0
- package/dist/cli/verbs/sessions.js +312 -0
- package/dist/cli/verbs.d.ts +81 -0
- package/dist/cli/verbs.js +7 -0
- package/dist/cli/versioned-verbs.d.ts +51 -0
- package/dist/cli/versioned-verbs.js +79 -0
- package/dist/cli.d.ts +1 -654
- package/dist/cli.js +44 -510
- package/dist/connectors/dlq.d.ts +39 -3
- package/dist/connectors/dlq.js +37 -3
- package/dist/connectors/github/backfill.d.ts +5 -25
- package/dist/connectors/github/backfill.js +26 -52
- package/dist/connectors/github/deletion.d.ts +4 -18
- package/dist/connectors/github/deletion.js +2 -15
- package/dist/connectors/github/dlq.d.ts +8 -33
- package/dist/connectors/github/dlq.js +34 -93
- package/dist/connectors/github/ingest.d.ts +4 -12
- package/dist/connectors/github/ingest.js +5 -36
- package/dist/connectors/github/octokit-client.d.ts +4 -16
- package/dist/connectors/github/octokit-client.js +27 -24
- 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 +2 -24
- package/dist/connectors/github/tenant-routing.js +4 -26
- package/dist/connectors/github/transform.js +2 -16
- package/dist/connectors/github/types.d.ts +3 -15
- package/dist/connectors/github/types.js +2 -9
- package/dist/connectors/github/webhook.d.ts +3 -16
- package/dist/connectors/github/webhook.js +38 -23
- package/dist/connectors/ingest.d.ts +10 -0
- package/dist/connectors/ingest.js +28 -0
- package/dist/connectors/slack/backfill.d.ts +4 -17
- package/dist/connectors/slack/backfill.js +4 -13
- package/dist/connectors/slack/dlq.d.ts +2 -19
- package/dist/connectors/slack/dlq.js +51 -90
- package/dist/connectors/slack/ingest.d.ts +4 -9
- package/dist/connectors/slack/ingest.js +4 -30
- 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/tenant-routing.d.ts +2 -19
- package/dist/connectors/slack/tenant-routing.js +2 -21
- package/dist/connectors/slack/transform.d.ts +2 -18
- package/dist/connectors/slack/transform.js +2 -18
- package/dist/connectors/slack/types.d.ts +3 -9
- package/dist/connectors/slack/types.js +2 -4
- package/dist/connectors/slack/web-client.js +33 -27
- package/dist/connectors/slack/webhook.d.ts +3 -19
- package/dist/connectors/slack/webhook.js +6 -26
- package/dist/connectors/slack/workspaces.d.ts +4 -24
- package/dist/connectors/slack/workspaces.js +4 -24
- package/dist/consolidate/conflicts.js +7 -15
- package/dist/consolidate/dag-summary.d.ts +8 -0
- package/dist/consolidate/dag-summary.js +41 -0
- package/dist/consolidate/dag.d.ts +5 -28
- package/dist/consolidate/dag.js +29 -84
- package/dist/consolidate/decay.js +7 -19
- package/dist/consolidate/dedupe.d.ts +13 -52
- package/dist/consolidate/dedupe.js +18 -74
- package/dist/consolidate/flush-units.d.ts +3 -4
- package/dist/consolidate/flush-units.js +3 -3
- package/dist/consolidate/half-life-migration.d.ts +3 -26
- package/dist/consolidate/half-life-migration.js +11 -28
- package/dist/consolidate/llm-passes.js +49 -40
- package/dist/consolidate/memory-value-weights.d.ts +2 -13
- package/dist/consolidate/memory-value-weights.js +2 -13
- package/dist/consolidate/memory-value.d.ts +11 -84
- package/dist/consolidate/memory-value.js +18 -105
- package/dist/consolidate/merge.js +12 -33
- package/dist/consolidate/physics-pass.d.ts +6 -1
- package/dist/consolidate/physics-pass.js +27 -9
- package/dist/consolidate/replay.d.ts +6 -38
- package/dist/consolidate/replay.js +25 -56
- package/dist/consolidate/run.js +1 -1
- package/dist/consolidate/sleep.d.ts +1 -8
- package/dist/consolidate/sleep.js +13 -22
- package/dist/consolidate/trace.d.ts +3 -18
- package/dist/consolidate/trace.js +3 -18
- package/dist/consolidate/traces.js +9 -25
- package/dist/core/ablation.d.ts +14 -91
- package/dist/core/ablation.js +16 -91
- package/dist/core/active-scope.d.ts +7 -0
- package/dist/{sharing/scope.js → core/active-scope.js} +5 -12
- package/dist/core/ambient.d.ts +5 -8
- package/dist/core/ambient.js +40 -26
- package/dist/core/api-errors.d.ts +16 -0
- package/dist/core/api-errors.js +20 -0
- package/dist/core/capture-contract.d.ts +4 -2
- package/dist/core/capture-contract.js +4 -2
- package/dist/core/card.d.ts +4 -1
- package/dist/core/card.js +11 -1
- package/dist/core/compaction-timing.d.ts +7 -0
- package/dist/core/compaction-timing.js +9 -0
- package/dist/core/compare.d.ts +11 -67
- package/dist/core/compare.js +9 -63
- package/dist/core/config.d.ts +10 -24
- package/dist/core/config.js +20 -16
- package/dist/core/cosine.d.ts +3 -0
- package/dist/core/cosine.js +19 -0
- package/dist/core/handoff.d.ts +1 -7
- package/dist/core/handoff.js +1 -7
- package/dist/core/markdown.d.ts +6 -0
- package/dist/{store → core}/markdown.js +23 -22
- package/dist/core/memory-audit.d.ts +17 -0
- package/dist/core/memory-audit.js +54 -0
- package/dist/core/memory-quality.js +1 -1
- package/dist/core/memory.d.ts +51 -168
- package/dist/core/memory.js +76 -239
- package/dist/{consolidate → core}/merged-row.d.ts +1 -1
- package/dist/{consolidate → core}/merged-row.js +3 -2
- package/dist/core/package-root.d.ts +3 -0
- package/dist/core/package-root.js +5 -0
- package/dist/core/physics-config.d.ts +1 -4
- package/dist/core/physics-config.js +3 -8
- package/dist/core/physics.d.ts +15 -61
- package/dist/core/physics.js +65 -138
- package/dist/core/prediction.d.ts +3 -0
- package/dist/core/prediction.js +6 -0
- package/dist/core/project-identity.d.ts +20 -58
- package/dist/core/project-identity.js +27 -39
- package/dist/core/project-remote.js +13 -2
- package/dist/core/raw-append-only.d.ts +5 -0
- package/dist/core/raw-append-only.js +7 -0
- package/dist/core/recall-scope.d.ts +69 -0
- package/dist/core/recall-scope.js +138 -0
- package/dist/core/salience.d.ts +1 -7
- package/dist/core/salience.js +1 -7
- package/dist/dashboard/dashboard-actions.js +2 -2
- package/dist/dashboard/dashboard-snapshot.d.ts +2 -1
- package/dist/dashboard/dashboard-snapshot.js +11 -2
- package/dist/dashboard/dashboard-types.d.ts +2 -1
- package/dist/dashboard/dashboard.d.ts +1 -0
- package/dist/dashboard/dashboard.js +50 -4
- package/dist/db/busy.d.ts +3 -8
- package/dist/db/busy.js +37 -33
- package/dist/db/connect.js +7 -8
- package/dist/db/index.d.ts +3 -3
- package/dist/db/index.js +3 -3
- package/dist/db/migrate.js +3 -3
- 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 -5
- package/dist/db/migrations/v14.js +2 -3
- package/dist/db/migrations/v15.js +2 -8
- package/dist/db/migrations/v16.js +2 -3
- package/dist/db/migrations/v17.js +2 -3
- package/dist/db/migrations/v19.js +2 -5
- package/dist/db/migrations/v20.js +2 -7
- package/dist/db/migrations/v22.js +4 -17
- package/dist/db/migrations/v23.js +3 -14
- package/dist/db/migrations/v24.js +2 -4
- 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 +4 -18
- package/dist/db/migrations/v30.js +4 -16
- package/dist/db/migrations/v31.js +2 -15
- 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 +9 -20
- package/dist/db/migrations/v40.js +2 -9
- package/dist/db/migrations/v41.js +2 -24
- package/dist/db/migrations/v43.js +1 -1
- package/dist/db/migrations/v44.js +2 -8
- package/dist/db/migrations/v45.js +2 -7
- package/dist/db/migrations/v47.js +2 -3
- package/dist/db/migrations/v51.js +1 -1
- package/dist/db/migrations/v55.d.ts +3 -0
- package/dist/db/migrations/v55.js +17 -0
- package/dist/db/open.d.ts +2 -2
- package/dist/db/open.js +21 -9
- package/dist/db/physics-state.d.ts +6 -22
- package/dist/db/physics-state.js +28 -39
- package/dist/db/raw-archive-mirror-cleanup.d.ts +2 -17
- package/dist/db/raw-archive-mirror-cleanup.js +2 -17
- package/dist/db/tables.d.ts +2 -0
- package/dist/db/tables.js +6 -2
- package/dist/db/vector-store.d.ts +2 -0
- package/dist/db/vector-store.js +25 -5
- package/dist/db/wal-checkpointer.js +2 -1
- package/dist/doctor.js +85 -27
- package/dist/embeddings/local.d.ts +62 -0
- package/dist/embeddings/local.js +146 -0
- package/dist/embeddings/provider.d.ts +43 -0
- package/dist/{store/embeddings → embeddings}/provider.js +58 -83
- package/dist/embeddings/transformers.d.ts +26 -0
- package/dist/embeddings/transformers.js +89 -0
- package/dist/entry/session-text.d.ts +1 -1
- package/dist/entry/session-text.js +3 -2
- package/dist/eval/eval-stats.d.ts +15 -53
- package/dist/eval/eval-stats.js +12 -42
- package/dist/eval/eval-suite.d.ts +2 -13
- package/dist/eval/eval-suite.js +91 -45
- package/dist/eval/eval.d.ts +6 -24
- package/dist/eval/eval.js +8 -35
- package/dist/eval/judgment.d.ts +0 -3
- package/dist/eval/judgment.js +30 -15
- package/dist/extensions/openclaw-plugin/index.js +1 -1
- package/dist/graph/extract.d.ts +5 -27
- package/dist/graph/extract.js +10 -36
- package/dist/graph/recall.d.ts +7 -20
- package/dist/graph/recall.js +15 -77
- package/dist/graph/stream.d.ts +7 -39
- package/dist/graph/stream.js +11 -34
- package/dist/graph/view.d.ts +9 -35
- package/dist/graph/view.js +24 -44
- package/dist/graph/write.d.ts +1 -1
- package/dist/graph/write.js +9 -9
- package/dist/hooks/codex-session.js +3 -2
- package/dist/hooks/codex-wrapper.js +4 -3
- package/dist/hooks/copilot.js +2 -1
- package/dist/hooks/hook-blocks.d.ts +6 -2
- package/dist/hooks/hook-blocks.js +37 -124
- package/dist/hooks/json-hooks.d.ts +4 -36
- package/dist/hooks/json-hooks.js +22 -59
- package/dist/hooks/opencode.d.ts +0 -38
- package/dist/hooks/opencode.js +17 -81
- package/dist/hooks/shared.d.ts +6 -21
- package/dist/hooks/shared.js +31 -33
- package/dist/importers/core.d.ts +12 -37
- package/dist/importers/core.js +10 -28
- package/dist/importers/markdown-parse.d.ts +8 -22
- package/dist/importers/markdown-parse.js +8 -25
- package/dist/importers/markdown.js +3 -12
- package/dist/importers/sources.js +12 -39
- package/dist/importers/vault.d.ts +2 -8
- package/dist/importers/vault.js +31 -85
- package/dist/index.d.ts +8 -3
- package/dist/index.js +8 -3
- package/dist/learn/autolearn.d.ts +23 -42
- package/dist/learn/autolearn.js +45 -52
- package/dist/learn/churn-git.js +13 -4
- package/dist/learn/extract.d.ts +3 -2
- package/dist/learn/extract.js +8 -8
- package/dist/learn/forward-claim-detector.d.ts +6 -30
- package/dist/learn/forward-claim-detector.js +18 -68
- package/dist/learn/invalidation.d.ts +6 -18
- package/dist/learn/invalidation.js +18 -31
- package/dist/mcp/admin-tools.d.ts +2 -2
- package/dist/mcp/admin-tools.js +30 -53
- package/dist/mcp/format.js +3 -2
- package/dist/mcp/framing.d.ts +1 -0
- package/dist/mcp/framing.js +1 -1
- package/dist/mcp/memory-tools.js +7 -10
- package/dist/mcp/protocol.d.ts +15 -29
- package/dist/mcp/protocol.js +26 -16
- package/dist/mcp/recall-tools.js +14 -11
- package/dist/mcp/request.d.ts +3 -11
- package/dist/mcp/request.js +12 -27
- package/dist/mcp/server.d.ts +3 -9
- package/dist/mcp/server.js +5 -16
- package/dist/mcp/session-state.d.ts +1 -1
- package/dist/mcp/session-state.js +5 -11
- package/dist/mcp/stdio.d.ts +2 -6
- package/dist/mcp/stdio.js +68 -16
- package/dist/mcp/tool-args.js +2 -1
- package/dist/mcp/tools.js +47 -22
- package/dist/objects/customer-notes.d.ts +9 -44
- package/dist/objects/customer-notes.js +7 -48
- package/dist/objects/decisions.d.ts +14 -52
- package/dist/objects/decisions.js +15 -53
- package/dist/objects/descriptor.d.ts +1 -1
- package/dist/objects/incidents.d.ts +9 -40
- package/dist/objects/incidents.js +7 -41
- package/dist/objects/lifecycle.d.ts +1 -1
- package/dist/objects/lifecycle.js +2 -1
- package/dist/objects/policies.d.ts +13 -91
- package/dist/objects/policies.js +13 -99
- package/dist/objects/processes.d.ts +9 -54
- package/dist/objects/processes.js +7 -61
- package/dist/objects/project-briefs.d.ts +13 -57
- package/dist/objects/project-briefs.js +16 -78
- package/dist/objects/skills.d.ts +9 -44
- package/dist/objects/skills.js +8 -54
- package/dist/postinstall.js +7 -20
- package/dist/predictions/planning-fallacy.d.ts +11 -34
- package/dist/rerankers/clef.js +6 -37
- package/dist/rerankers/cross-encoder.d.ts +31 -2
- package/dist/rerankers/cross-encoder.js +65 -101
- package/dist/rerankers/index.js +5 -4
- package/dist/rerankers/jev.js +11 -10
- package/dist/rerankers/llm.d.ts +2 -11
- package/dist/rerankers/llm.js +14 -14
- package/dist/rerankers/outage-warning.d.ts +5 -2
- package/dist/rerankers/outage-warning.js +7 -4
- package/dist/rerankers/remote.d.ts +1 -0
- package/dist/rerankers/remote.js +2 -0
- package/dist/rerankers/types.d.ts +2 -14
- package/dist/search/bm25-search.js +1 -1
- package/dist/search/boosts.d.ts +0 -2
- package/dist/search/boosts.js +3 -3
- package/dist/search/embed-memories.d.ts +9 -0
- package/dist/search/embed-memories.js +377 -0
- package/dist/search/goal-boost.d.ts +23 -0
- package/dist/search/goal-boost.js +93 -0
- package/dist/search/hybrid.d.ts +11 -2
- package/dist/search/hybrid.js +9 -4
- package/dist/search/multihop.js +2 -3
- package/dist/search/path-context.d.ts +5 -18
- package/dist/search/path-context.js +5 -18
- package/dist/search/physics-search.d.ts +6 -3
- package/dist/search/physics-search.js +29 -19
- package/dist/search/rerank.js +1 -1
- package/dist/search/rrf.d.ts +7 -35
- package/dist/search/rrf.js +5 -30
- package/dist/search/vector.d.ts +13 -4
- package/dist/search/vector.js +40 -13
- package/dist/server/auth.d.ts +11 -28
- package/dist/server/auth.js +49 -32
- package/dist/server/boot.d.ts +2 -21
- package/dist/server/boot.js +69 -161
- package/dist/server/client-ip.d.ts +3 -21
- package/dist/server/client-ip.js +8 -30
- package/dist/server/deadline.d.ts +0 -2
- package/dist/server/deadline.js +1 -7
- package/dist/server/defaults.d.ts +4 -0
- package/dist/server/defaults.js +5 -0
- package/dist/server/key-check-bounds.d.ts +2 -1
- package/dist/server/lifecycle.d.ts +5 -4
- package/dist/server/lifecycle.js +19 -4
- package/dist/server/mcp-http.js +24 -53
- package/dist/server/rate-limit.d.ts +5 -18
- package/dist/server/rate-limit.js +4 -13
- package/dist/server/request.d.ts +4 -8
- package/dist/server/request.js +16 -19
- package/dist/server/route-checks.d.ts +7 -0
- package/dist/server/route-checks.js +42 -0
- package/dist/server/route-table.d.ts +9 -8
- package/dist/server/route-table.js +127 -139
- package/dist/server/routes/admin.d.ts +8 -8
- package/dist/server/routes/admin.js +35 -49
- package/dist/server/routes/customer-notes.d.ts +6 -6
- package/dist/server/routes/customer-notes.js +8 -14
- package/dist/server/routes/decisions.d.ts +6 -6
- package/dist/server/routes/decisions.js +12 -21
- package/dist/server/routes/incidents.d.ts +6 -6
- package/dist/server/routes/incidents.js +14 -25
- package/dist/server/routes/memories.d.ts +9 -9
- package/dist/server/routes/memories.js +20 -63
- package/dist/server/routes/object-routes.d.ts +6 -11
- package/dist/server/routes/object-routes.js +11 -22
- package/dist/server/routes/policies.d.ts +7 -7
- package/dist/server/routes/policies.js +12 -22
- package/dist/server/routes/predictions.d.ts +6 -6
- package/dist/server/routes/predictions.js +22 -38
- package/dist/server/routes/processes.d.ts +6 -6
- package/dist/server/routes/processes.js +17 -28
- package/dist/server/routes/project-briefs.d.ts +7 -7
- package/dist/server/routes/project-briefs.js +11 -20
- package/dist/server/routes/recall.d.ts +5 -5
- package/dist/server/routes/recall.js +16 -45
- package/dist/server/routes/skills.d.ts +7 -7
- package/dist/server/routes/skills.js +10 -22
- package/dist/server/server-detect.d.ts +15 -53
- package/dist/server/server-detect.js +55 -96
- package/dist/server/sleep-child.js +26 -7
- package/dist/server/sleep-offload.d.ts +11 -5
- package/dist/server/sleep-offload.js +21 -12
- package/dist/server/types.d.ts +32 -18
- package/dist/server/validation.d.ts +3 -2
- package/dist/server/validation.js +15 -33
- package/dist/server.d.ts +7 -6
- package/dist/server.js +8 -6
- 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 +73 -0
- package/dist/sharing/project-merge.d.ts +11 -19
- package/dist/sharing/project-merge.js +63 -125
- package/dist/sharing/search-both.d.ts +60 -0
- package/dist/sharing/search-both.js +138 -0
- package/dist/sharing/share.d.ts +40 -0
- package/dist/sharing/share.js +229 -0
- package/dist/store/ambient.js +9 -15
- package/dist/store/audit-event.d.ts +5 -13
- package/dist/store/audit-event.js +4 -12
- package/dist/store/audit.d.ts +2 -21
- package/dist/store/audit.js +8 -67
- package/dist/store/auth.d.ts +10 -8
- package/dist/store/auth.js +17 -12
- package/dist/store/candidates.d.ts +23 -5
- package/dist/store/candidates.js +119 -71
- package/dist/store/capture-write.d.ts +17 -0
- package/dist/store/capture-write.js +35 -0
- package/dist/store/card-detail.d.ts +2 -1
- package/dist/store/card-detail.js +2 -1
- package/dist/store/cards.d.ts +14 -9
- package/dist/store/cards.js +72 -126
- package/dist/store/compaction-caller.d.ts +18 -0
- package/dist/store/compaction-caller.js +29 -0
- package/dist/store/compactions-record.d.ts +115 -0
- package/dist/store/compactions-record.js +417 -0
- package/dist/store/compactions.js +6 -4
- package/dist/store/conflicts.d.ts +4 -21
- package/dist/store/conflicts.js +76 -152
- package/dist/store/connectors/dlq.d.ts +10 -0
- package/dist/store/connectors/dlq.js +32 -0
- package/dist/store/connectors/github.d.ts +14 -16
- package/dist/store/connectors/github.js +34 -57
- package/dist/store/connectors/slack.d.ts +2 -11
- package/dist/store/connectors/slack.js +18 -47
- package/dist/store/dashboard-reads.js +11 -14
- package/dist/store/delete-and-batch.d.ts +17 -31
- package/dist/store/delete-and-batch.js +84 -67
- package/dist/store/delivery-recorder.d.ts +15 -4
- package/dist/store/delivery-recorder.js +34 -17
- package/dist/store/descendant-page.js +6 -3
- package/dist/store/diagnostics.js +6 -13
- package/dist/store/dormant.d.ts +8 -30
- package/dist/store/dormant.js +18 -57
- package/dist/store/embeddings/index.d.ts +11 -90
- package/dist/store/embeddings/index.js +18 -523
- package/dist/store/entry-reads.d.ts +34 -61
- package/dist/store/entry-reads.js +111 -136
- package/dist/store/entry-row.d.ts +6 -35
- package/dist/store/entry-row.js +9 -37
- package/dist/store/entry-writes.d.ts +12 -18
- package/dist/store/entry-writes.js +46 -44
- package/dist/store/failure-log-at.d.ts +8 -0
- package/dist/store/failure-log-at.js +16 -0
- package/dist/store/failure-log.d.ts +2 -2
- package/dist/store/failure-log.js +5 -3
- package/dist/{trust → store}/gated-write.d.ts +3 -1
- package/dist/{trust → store}/gated-write.js +7 -5
- package/dist/store/goals.d.ts +3 -40
- package/dist/store/goals.js +41 -178
- package/dist/store/graph-queue.d.ts +6 -22
- package/dist/store/graph-queue.js +14 -45
- package/dist/store/graph-reads.d.ts +11 -35
- package/dist/store/graph-reads.js +24 -60
- package/dist/store/graph-rows.d.ts +3 -6
- package/dist/store/graph-rows.js +6 -9
- package/dist/store/graph-view-rows.d.ts +2 -1
- package/dist/store/graph-view-rows.js +2 -1
- package/dist/store/graph-writes.d.ts +10 -35
- package/dist/store/graph-writes.js +59 -106
- package/dist/store/half-life.d.ts +2 -1
- package/dist/store/half-life.js +14 -16
- package/dist/store/handoffs.d.ts +6 -12
- package/dist/store/handoffs.js +22 -40
- package/dist/store/index-and-stats.d.ts +6 -19
- package/dist/store/index-and-stats.js +36 -84
- package/dist/store/key-writes.js +1 -1
- package/dist/store/ledger-turn.d.ts +9 -0
- package/dist/store/ledger-turn.js +38 -0
- package/dist/store/mirrors.d.ts +2 -6
- package/dist/store/mirrors.js +24 -29
- package/dist/store/open.d.ts +0 -4
- package/dist/store/open.js +42 -62
- package/dist/store/pilot-arm.d.ts +12 -0
- package/dist/store/pilot-arm.js +42 -0
- package/dist/store/planning-fallacy-evidence.d.ts +2 -30
- package/dist/store/planning-fallacy-evidence.js +8 -37
- package/dist/store/port.d.ts +91 -82
- package/dist/store/port.js +8 -0
- package/dist/store/predictions.d.ts +12 -53
- package/dist/store/predictions.js +41 -125
- package/dist/store/project-tags.d.ts +62 -0
- package/dist/store/project-tags.js +67 -0
- package/dist/{cli → store}/quality-repair.js +15 -31
- package/dist/store/quarantine.js +2 -1
- package/dist/store/raw-archive.d.ts +4 -16
- package/dist/store/raw-archive.js +14 -29
- package/dist/store/recall-trace.d.ts +12 -77
- package/dist/store/recall-trace.js +37 -97
- package/dist/store/rejected-values.js +9 -20
- package/dist/store/rejection-probe.d.ts +4 -0
- package/dist/store/rejection-probe.js +19 -0
- package/dist/store/rejection.d.ts +10 -73
- package/dist/store/rejection.js +12 -84
- package/dist/store/report-reads.d.ts +6 -0
- package/dist/store/report-reads.js +29 -0
- package/dist/store/rows.d.ts +9 -19
- package/dist/store/rows.js +36 -34
- package/dist/store/rule-sql.d.ts +14 -0
- package/dist/store/rule-sql.js +56 -0
- package/dist/store/search-rows.d.ts +7 -38
- package/dist/store/search-rows.js +23 -54
- package/dist/store/sessions.d.ts +10 -47
- package/dist/store/sessions.js +21 -75
- package/dist/store/set-aside.d.ts +14 -0
- package/dist/store/set-aside.js +23 -0
- package/dist/store/sqlite/busy.d.ts +3 -0
- package/dist/store/sqlite/busy.js +8 -0
- package/dist/store/sqlite/connector-events-group.js +5 -8
- package/dist/store/sqlite/connector-writes-group.js +3 -3
- package/dist/store/sqlite/entry-writes-group.js +4 -4
- package/dist/store/sqlite/error-codec.js +8 -5
- package/dist/store/sqlite/executor.d.ts +2 -1
- package/dist/store/sqlite/executor.js +12 -5
- package/dist/store/sqlite/graph-reads-group.js +1 -1
- package/dist/store/sqlite/held-connection.d.ts +9 -0
- package/dist/store/sqlite/held-connection.js +41 -0
- package/dist/store/sqlite/local.d.ts +3 -3
- package/dist/store/sqlite/local.js +1 -0
- package/dist/store/sqlite/object-rows.d.ts +1 -1
- package/dist/store/sqlite/object-rows.js +6 -3
- package/dist/store/sqlite/objects-group.d.ts +1 -1
- package/dist/store/sqlite/objects-group.js +5 -3
- package/dist/store/sqlite/quarantine-group.js +2 -2
- package/dist/store/sqlite/store.d.ts +1 -4
- package/dist/store/sqlite/store.js +16 -15
- package/dist/store/sqlite/vector-reads-group.js +2 -2
- package/dist/store/sqlite/worker-jobs.js +1 -1
- package/dist/store/sqlite/worker-ops.d.ts +13 -2
- package/dist/store/sqlite/worker-ops.js +13 -2
- package/dist/store/sqlite/worker-store.js +5 -2
- package/dist/store/summaries.d.ts +11 -63
- package/dist/store/summaries.js +37 -148
- package/dist/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 +2 -16
- package/dist/store/tenant.js +4 -19
- package/dist/store/token-ledger.d.ts +13 -50
- package/dist/store/token-ledger.js +19 -85
- package/dist/store/usage-reports.js +5 -13
- package/dist/store/vector-index.d.ts +46 -0
- package/dist/store/vector-index.js +171 -0
- package/dist/store/working-memory.d.ts +6 -25
- package/dist/store/working-memory.js +18 -52
- package/dist/support-bundle.js +9 -8
- package/dist/trust/reject-flow.js +3 -5
- package/dist/util/agent-homes.d.ts +15 -0
- package/dist/util/agent-homes.js +34 -0
- package/dist/util/anthropic-messages.d.ts +3 -0
- package/dist/util/anthropic-messages.js +35 -6
- package/dist/util/atomic-write.d.ts +2 -1
- package/dist/util/atomic-write.js +35 -4
- package/dist/util/capped-json.d.ts +6 -0
- package/dist/util/capped-json.js +46 -0
- package/dist/util/chunked.d.ts +3 -0
- package/dist/util/chunked.js +10 -0
- package/dist/util/crash-handlers.d.ts +8 -1
- package/dist/util/crash-handlers.js +52 -10
- package/dist/util/ellipsize.d.ts +3 -0
- package/dist/util/ellipsize.js +5 -0
- package/dist/util/env.d.ts +14 -6
- package/dist/util/env.js +15 -7
- package/dist/util/format.d.ts +3 -0
- package/dist/util/format.js +6 -0
- package/dist/util/home-path.d.ts +2 -1
- package/dist/util/home-path.js +4 -2
- package/dist/util/hook-payload.d.ts +8 -0
- package/dist/util/hook-payload.js +37 -0
- package/dist/util/http-retry.d.ts +9 -1
- package/dist/util/http-retry.js +67 -8
- package/dist/util/http-util.d.ts +0 -8
- package/dist/util/http-util.js +10 -21
- package/dist/util/limits.d.ts +7 -0
- package/dist/util/limits.js +14 -0
- package/dist/util/log.d.ts +7 -2
- package/dist/util/log.js +34 -9
- package/dist/util/request-scope.d.ts +5 -2
- package/dist/util/request-scope.js +13 -7
- package/dist/util/secret-detect.d.ts +5 -30
- package/dist/util/secret-detect.js +19 -40
- package/dist/util/sqlite-blocked.d.ts +2 -0
- package/dist/util/sqlite-blocked.js +5 -0
- package/dist/util/stored-json.d.ts +1 -1
- package/dist/util/stored-json.js +1 -1
- package/dist/util/stream-tee.d.ts +3 -0
- package/dist/util/stream-tee.js +35 -0
- package/dist/util/time.d.ts +4 -0
- package/dist/util/time.js +4 -0
- package/dist/util/token-text.d.ts +1 -4
- package/dist/util/token-text.js +1 -4
- package/dist/util/transcript-tail.d.ts +2 -0
- package/dist/util/transcript-tail.js +24 -23
- package/dist/util/version.d.ts +5 -20
- package/dist/util/version.js +5 -20
- package/dist/{store → util}/yaml.d.ts +1 -5
- package/dist/{store → util}/yaml.js +2 -6
- package/extensions/openclaw-plugin/index.ts +1 -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 +2 -2
- package/dist/cli/provenance-coverage.d.ts +0 -18
- package/dist/connectors/github/cli-impl.d.ts +0 -25
- package/dist/sharing/scope.d.ts +0 -14
- package/dist/sharing/shared.d.ts +0 -187
- package/dist/sharing/shared.js +0 -563
- package/dist/store/embeddings/local.d.ts +0 -15
- package/dist/store/embeddings/local.js +0 -192
- package/dist/store/embeddings/provider.d.ts +0 -77
- package/dist/store/markdown.d.ts +0 -10
- package/dist/store/recall-scope.d.ts +0 -138
- package/dist/store/recall-scope.js +0 -216
- package/dist/store/vector-writes.d.ts +0 -13
- package/dist/store/vector-writes.js +0 -89
- /package/dist/{store → core}/object-types.d.ts +0 -0
- /package/dist/{store → core}/object-types.js +0 -0
- /package/dist/{cli → store}/quality-repair.d.ts +0 -0
- /package/dist/{capture → util}/compaction-items.d.ts +0 -0
- /package/dist/{capture → util}/compaction-items.js +0 -0
package/dist/core/handoff.d.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session handoff types and helpers.
|
|
3
|
-
*
|
|
4
|
-
* A handoff captures the state of a session so that a successor
|
|
5
|
-
* session (or a different agent) can pick up where the previous
|
|
6
|
-
* one left off.
|
|
7
|
-
*/
|
|
1
|
+
/** Session handoff types and helpers: a handoff captures a session's state so a successor session or another agent can pick up where it left off. */
|
|
8
2
|
/** Terminal state of a handoff's session, denormalized from its `session_complete` event. */
|
|
9
3
|
export type HandoffOutcome = 'success' | 'failure' | 'partial';
|
|
10
4
|
/** Best-effort evidence of repo state at handoff time; null fields mean collection failed or was skipped. */
|
package/dist/core/handoff.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session handoff types and helpers.
|
|
3
|
-
*
|
|
4
|
-
* A handoff captures the state of a session so that a successor
|
|
5
|
-
* session (or a different agent) can pick up where the previous
|
|
6
|
-
* one left off.
|
|
7
|
-
*/
|
|
1
|
+
/** Session handoff types and helpers: a handoff captures a session's state so a successor session or another agent can pick up where it left off. */
|
|
8
2
|
import { isJsonString } from '../util/json.js';
|
|
9
3
|
import { warnDamagedColumn } from '../util/stored-json.js';
|
|
10
4
|
/** Narrows an unvalidated value (e.g. CLI input or event content) to a HandoffOutcome. */
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type MemoryEntry } from './memory.js';
|
|
2
|
+
/** Serialize a MemoryEntry to markdown with YAML frontmatter. */
|
|
3
|
+
export declare function serializeEntry(entry: MemoryEntry): string;
|
|
4
|
+
/** Deserialize a markdown file to a MemoryEntry. */
|
|
5
|
+
export declare function deserializeEntry(raw: string): MemoryEntry | null;
|
|
6
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const frontmatter = {
|
|
1
|
+
import { DEFAULT_TENANT_ID } from '../util/env.js';
|
|
2
|
+
import { FALLBACK_HALF_LIFE_DAYS, DEFAULT_SCHEMA_FIT } from './memory.js';
|
|
3
|
+
import { dumpFrontmatter, parseFrontmatter } from '../util/yaml.js';
|
|
4
|
+
/** The fields every mirror file carries; serializeEntry adds the optional ones. */
|
|
5
|
+
function entryFrontmatter(entry) {
|
|
6
|
+
return {
|
|
8
7
|
id: entry.id,
|
|
9
8
|
created: entry.created,
|
|
10
9
|
last_retrieved: entry.last_retrieved,
|
|
@@ -30,11 +29,21 @@ export function serializeEntry(entry) {
|
|
|
30
29
|
scope: entry.scope ?? null,
|
|
31
30
|
owner: entry.owner ?? null,
|
|
32
31
|
artifact_ref: entry.artifact_ref ?? null,
|
|
32
|
+
// A rebuild from these files must keep supersession and the DAG; deserializeEntry reads all five.
|
|
33
|
+
valid_from: entry.valid_from,
|
|
34
|
+
superseded_by: entry.superseded_by,
|
|
35
|
+
extracted_from: entry.extracted_from,
|
|
36
|
+
dag_level: entry.dag_level,
|
|
37
|
+
dag_parent_id: entry.dag_parent_id,
|
|
33
38
|
};
|
|
39
|
+
}
|
|
40
|
+
/** Serialize a MemoryEntry to markdown with YAML frontmatter. */
|
|
41
|
+
export function serializeEntry(entry) {
|
|
42
|
+
const frontmatter = entryFrontmatter(entry);
|
|
34
43
|
// Emit tenant_id only when not 'default' to keep diffs clean for the dominant
|
|
35
44
|
// single-tenant case (mirrors the plan's task 7 guidance).
|
|
36
|
-
const tenantId = entry.tenantId ??
|
|
37
|
-
if (tenantId !==
|
|
45
|
+
const tenantId = entry.tenantId ?? DEFAULT_TENANT_ID;
|
|
46
|
+
if (tenantId !== DEFAULT_TENANT_ID) {
|
|
38
47
|
frontmatter['tenant_id'] = tenantId;
|
|
39
48
|
}
|
|
40
49
|
// v39: '' (user-global) and null (unknown, hidden by default) must both round-trip;
|
|
@@ -42,25 +51,17 @@ export function serializeEntry(entry) {
|
|
|
42
51
|
if (entry.origin_project !== undefined) {
|
|
43
52
|
frontmatter['origin_project'] = entry.origin_project;
|
|
44
53
|
}
|
|
45
|
-
// Spread into a fresh
|
|
46
|
-
// YamlValue> parameter needs an index signature, which a named interface
|
|
47
|
-
// reference (EntryFrontmatterFields) doesn't structurally provide even
|
|
48
|
-
// though every property's value type already matches.
|
|
54
|
+
// Spread into a fresh literal: dumpFrontmatter's Record<string, YamlValue> needs an index signature, which the named interface does not structurally provide.
|
|
49
55
|
const fm = dumpFrontmatter({ ...frontmatter });
|
|
50
56
|
return `${fm}\n\n${entry.content}\n`;
|
|
51
57
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Deserialize a markdown file to a MemoryEntry.
|
|
54
|
-
*/
|
|
58
|
+
/** Deserialize a markdown file to a MemoryEntry. */
|
|
55
59
|
export function deserializeEntry(raw) {
|
|
56
60
|
const { data, content } = parseFrontmatter(raw);
|
|
57
61
|
if (!data['id'] || !data['layer'])
|
|
58
62
|
return null;
|
|
59
|
-
// SAFETY:
|
|
60
|
-
//
|
|
61
|
-
// serializeEntry (whose own fields are typed), so out-of-range values here
|
|
62
|
-
// would indicate hand-edited files, which this parser is not required to
|
|
63
|
-
// reject — matches the pre-existing permissive-parse behavior.
|
|
63
|
+
// SAFETY: each `as X` narrows a raw YAML field to a MemoryEntry union member; frontmatter is only written by serializeEntry,
|
|
64
|
+
// so out-of-range values mean hand-edited files, which this parser may accept (permissive parse).
|
|
64
65
|
return {
|
|
65
66
|
id: String(data['id']),
|
|
66
67
|
created: String(data['created'] ?? new Date().toISOString()),
|
|
@@ -97,7 +98,7 @@ export function deserializeEntry(raw) {
|
|
|
97
98
|
scope: data['scope'] === null || data['scope'] === undefined ? null : String(data['scope']),
|
|
98
99
|
owner: data['owner'] === null || data['owner'] === undefined ? null : String(data['owner']),
|
|
99
100
|
artifact_ref: data['artifact_ref'] === null || data['artifact_ref'] === undefined ? null : String(data['artifact_ref']),
|
|
100
|
-
tenantId: data['tenant_id'] === null || data['tenant_id'] === undefined ?
|
|
101
|
+
tenantId: data['tenant_id'] === null || data['tenant_id'] === undefined ? DEFAULT_TENANT_ID : String(data['tenant_id']),
|
|
101
102
|
origin_project: !('origin_project' in data) ? undefined : data['origin_project'] === null ? null : String(data['origin_project']),
|
|
102
103
|
};
|
|
103
104
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type MemoryEntry } from './memory.js';
|
|
2
|
+
export type AuditSeverity = 'warning' | 'error';
|
|
3
|
+
export interface AuditIssue {
|
|
4
|
+
memoryId: string;
|
|
5
|
+
content: string;
|
|
6
|
+
severity: AuditSeverity;
|
|
7
|
+
reason: string;
|
|
8
|
+
}
|
|
9
|
+
export interface AuditResult {
|
|
10
|
+
total: number;
|
|
11
|
+
issues: AuditIssue[];
|
|
12
|
+
clean: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function auditMemory(entry: MemoryEntry, backsObject?: boolean): AuditIssue | null;
|
|
15
|
+
/** `backing`: ids of memories that back an object (store.memoriesBackingObjects). */
|
|
16
|
+
export declare function auditMemories(entries: MemoryEntry[], backing: ReadonlySet<string>): AuditResult;
|
|
17
|
+
//# sourceMappingURL=memory-audit.d.ts.map
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// The memory-quality audit rules: pure functions of a row, so any store can be audited by them.
|
|
2
|
+
import { canAutoDelete } from './memory.js';
|
|
3
|
+
import { automaticDefect, hasNoSpecificity, isFragment, isReleaseCommitNoise, substantiveWordCount, } from './memory-quality.js';
|
|
4
|
+
export function auditMemory(entry, backsObject = false) {
|
|
5
|
+
const issue = classifyMemory(entry);
|
|
6
|
+
// Error means "auto-remove"; a pinned, raw, kept-for-good or object-backing row is never auto-removed, so it can only warn.
|
|
7
|
+
if (issue?.severity === 'error' && (!canAutoDelete(entry) || backsObject)) {
|
|
8
|
+
const why = entry.pinned ? 'pinned' : entry.kind === 'raw' ? 'raw' : backsObject ? 'backs an object' : 'keep rule';
|
|
9
|
+
return { ...issue, severity: 'warning', reason: `${issue.reason} (${why}, kept)` };
|
|
10
|
+
}
|
|
11
|
+
return issue;
|
|
12
|
+
}
|
|
13
|
+
function classifyMemory(entry) {
|
|
14
|
+
const content = entry.content.trim();
|
|
15
|
+
if (content.length < 3) {
|
|
16
|
+
return { memoryId: entry.id, content, severity: 'error', reason: 'too short (< 3 chars)' };
|
|
17
|
+
}
|
|
18
|
+
if (content.length < 10) {
|
|
19
|
+
return { memoryId: entry.id, content, severity: 'error', reason: 'too short (< 10 chars)' };
|
|
20
|
+
}
|
|
21
|
+
if (isReleaseCommitNoise(content)) {
|
|
22
|
+
return { memoryId: entry.id, content, severity: 'error', reason: 'release/commit noise, not a useful memory' };
|
|
23
|
+
}
|
|
24
|
+
if (isFragment(content)) {
|
|
25
|
+
return { memoryId: entry.id, content, severity: 'warning', reason: 'sentence fragment — lacks context' };
|
|
26
|
+
}
|
|
27
|
+
const substantive = substantiveWordCount(content);
|
|
28
|
+
if (substantive < 2) {
|
|
29
|
+
return { memoryId: entry.id, content, severity: 'warning', reason: `only ${substantive} substantive word(s) — too vague` };
|
|
30
|
+
}
|
|
31
|
+
if (content.length < 40 && hasNoSpecificity(content)) {
|
|
32
|
+
return { memoryId: entry.id, content, severity: 'warning', reason: 'no specific details (names, paths, numbers, code)' };
|
|
33
|
+
}
|
|
34
|
+
const reason = automaticDefect(entry);
|
|
35
|
+
if (reason !== null) {
|
|
36
|
+
return { memoryId: entry.id, content, severity: 'warning', reason: `automatic memory defect: ${reason}` };
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
/** `backing`: ids of memories that back an object (store.memoriesBackingObjects). */
|
|
41
|
+
export function auditMemories(entries, backing) {
|
|
42
|
+
const issues = [];
|
|
43
|
+
for (const entry of entries) {
|
|
44
|
+
const issue = auditMemory(entry, backing.has(entry.id));
|
|
45
|
+
if (issue)
|
|
46
|
+
issues.push(issue);
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
total: entries.length,
|
|
50
|
+
issues,
|
|
51
|
+
clean: entries.length - issues.length,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=memory-audit.js.map
|
|
@@ -28,7 +28,7 @@ export function isReleaseCommitNoise(text) {
|
|
|
28
28
|
/** Short preferences and rules carry a useful relationship even without a path or number. */
|
|
29
29
|
export function hasNoSpecificity(text) {
|
|
30
30
|
const domainAcronyms = (text.match(/\b[A-Z]{2,6}\b/g) ?? []).filter(a => !CHAT_ACRONYMS.test(a));
|
|
31
|
-
if (/\d|[A-Z][a-z]{2,}|[/\\.]|[`_{}()
|
|
31
|
+
if (/\d|[A-Z][a-z]{2,}|[/\\.]|[`_{}()[\]]/.test(text))
|
|
32
32
|
return false;
|
|
33
33
|
if (domainAcronyms.length > 0 && /[a-z]/.test(text))
|
|
34
34
|
return false;
|
package/dist/core/memory.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
* Based on the strength formula from PLAN.md.
|
|
4
|
-
*/
|
|
1
|
+
/** Core data model for Hippo memory entries, based on the strength formula from PLAN.md. */
|
|
2
|
+
import { type StrengthAblation } from './ablation.js';
|
|
5
3
|
export declare const DEFAULT_SCHEMA_FIT = 0.5;
|
|
6
4
|
export declare const FALLBACK_HALF_LIFE_DAYS = 7;
|
|
7
5
|
export declare enum Layer {
|
|
@@ -13,29 +11,8 @@ export declare enum Layer {
|
|
|
13
11
|
export type EmotionalValence = 'neutral' | 'positive' | 'negative' | 'critical';
|
|
14
12
|
export type ConfidenceLevel = 'verified' | 'observed' | 'inferred' | 'stale';
|
|
15
13
|
export type TraceOutcome = 'success' | 'failure' | 'partial' | null;
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
* Timestamp invariant.
|
|
19
|
-
*
|
|
20
|
-
* All in-process writes of timestamp fields on `MemoryEntry` (`created`,
|
|
21
|
-
* `last_retrieved`, `valid_from`) and on session-state types (SessionEvent,
|
|
22
|
-
* TaskSnapshot, SessionHandoff, AssembledContextItem.createdAt, etc.) emit
|
|
23
|
-
* canonical `Date.prototype.toISOString()` output: 24 characters, UTC,
|
|
24
|
-
* milliseconds precision, trailing `Z` (e.g. `2026-05-06T09:55:49.123Z`).
|
|
25
|
-
*
|
|
26
|
-
* Caveat — markdown rebuild. `deserializeEntry` / `rebuildIndex` preserve
|
|
27
|
-
* frontmatter timestamp strings as-is. Legacy markdown that recorded a
|
|
28
|
-
* non-canonical offset (e.g. `2026-05-06T05:55:49-04:00`) round-trips
|
|
29
|
-
* through SQLite without normalization, and DAG `earliest_at` / `latest_at`
|
|
30
|
-
* caches are computed from those strings. Importers SHOULD normalize on
|
|
31
|
-
* write; rebuild from drifted markdown is a known limitation.
|
|
32
|
-
*
|
|
33
|
-
* Byte-comparison sort (`<` / `>`) is chronological for any pair of
|
|
34
|
-
* canonical UTC ISO strings. ~50× faster than `localeCompare` with no
|
|
35
|
-
* semantic gain. `assemble` sorts by byte compare; if a future
|
|
36
|
-
* import path admits non-canonical timestamps, that sort and any
|
|
37
|
-
* downstream chronological reasoning will need a normalization pass.
|
|
38
|
-
*/
|
|
14
|
+
export declare const MEMORY_KINDS: readonly ["raw", "distilled", "superseded", "archived"];
|
|
15
|
+
export type MemoryKind = (typeof MEMORY_KINDS)[number];
|
|
39
16
|
export interface MemoryEntry {
|
|
40
17
|
id: string;
|
|
41
18
|
created: string;
|
|
@@ -67,133 +44,69 @@ export interface MemoryEntry {
|
|
|
67
44
|
descendant_count?: number;
|
|
68
45
|
earliest_at?: string | null;
|
|
69
46
|
latest_at?: string | null;
|
|
70
|
-
/** 1 when
|
|
71
|
-
* superseded, forgotten, or archived since it was last rebuilt. Cleared
|
|
72
|
-
* by rebuildDirtySummaries during sleep. Always 0 for non-summary
|
|
73
|
-
* rows (dag_level !== 2). */
|
|
47
|
+
/** 1 when a child was invalidated, superseded, forgotten or archived since the last rebuild; sleep clears it. Always 0 below level 2. */
|
|
74
48
|
summary_dirty?: 0 | 1;
|
|
75
|
-
/** ISO 8601
|
|
76
|
-
* summary, or null if never rebuilt. */
|
|
49
|
+
/** ISO 8601 time of the last successful rebuild, or null if never rebuilt. */
|
|
77
50
|
last_rebuilt_at?: string | null;
|
|
78
|
-
/**
|
|
79
|
-
* summary. 0 for initial buildDag write; bumped by each rebuild. */
|
|
51
|
+
/** Count of successful rebuilds: 0 at the first buildDag write, bumped by each rebuild. */
|
|
80
52
|
rebuild_count?: number;
|
|
81
|
-
/** Reserved: ISO 8601
|
|
82
|
-
* was built. Only ever populated on dag_level=3 rows. */
|
|
53
|
+
/** Reserved: ISO 8601 time the level-3 entity profile was built; only set on dag_level=3 rows. */
|
|
83
54
|
dag_level_3_built_at?: string | null;
|
|
84
55
|
kind: MemoryKind;
|
|
85
56
|
scope: string | null;
|
|
86
57
|
owner: string | null;
|
|
87
58
|
artifact_ref: string | null;
|
|
88
59
|
tenantId: string;
|
|
89
|
-
/**
|
|
90
|
-
*
|
|
91
|
-
* partitioning. A lowercased project name, '' for user-global (injectable
|
|
92
|
-
* everywhere), or null for no known project (a legacy row, or a shared-store
|
|
93
|
-
* write that named none) - ambient context treats null as other-project (deny).
|
|
94
|
-
* Stamped at write time by store/entry-row.ts stampOriginProject via fallbackOrigin;
|
|
95
|
-
* undefined only on entries not yet written.
|
|
96
|
-
*/
|
|
60
|
+
/** Owning project, lowercased; '' = user-global (injectable everywhere), null = none known (legacy or unnamed write), denied by ambient context.
|
|
61
|
+
* Stamped at write time by stampOriginProject (src/store/entry-row.ts); undefined only before the first write. */
|
|
97
62
|
origin_project?: string | null;
|
|
98
|
-
/**
|
|
99
|
-
*
|
|
100
|
-
* `loadSearchEntries`.
|
|
101
|
-
*
|
|
102
|
-
* Populated ONLY when ALL of the following hold:
|
|
103
|
-
* - `loadSearchEntries` was called with a non-empty query, AND
|
|
104
|
-
* - FTS5 is available (meta `fts5_available = 1`), AND
|
|
105
|
-
* - the FTS join returned at least one row (path 2 of `loadSearchRows`).
|
|
106
|
-
*
|
|
107
|
-
* `undefined` on every other path: empty query, FTS unavailable, LIKE
|
|
108
|
-
* fallback, full-store fallback, `readEntry`, `loadAllEntries`, manual
|
|
109
|
-
* upsert, deserializeEntry from markdown.
|
|
110
|
-
*
|
|
111
|
-
* SCALE: FTS5 bm25() is negative; lower = better match (ascending order).
|
|
112
|
-
* NOT a drop-in for the JS-side BM25 in `src/search.ts` — that is a
|
|
113
|
-
* different scorer (different tokenizer, different params, positive
|
|
114
|
-
* scale). Treat `bm25_score` as provenance/rank metadata only.
|
|
115
|
-
*/
|
|
63
|
+
/** Raw FTS5 bm25() from the search path (negative, lower = better); set only for a non-empty query the FTS join answered.
|
|
64
|
+
* Not comparable to the JS scorer in src/search/bm25.ts, so read it as rank metadata only. */
|
|
116
65
|
bm25_score?: number;
|
|
117
66
|
}
|
|
118
67
|
/** Tag on a memory whose named file/symbol/script changed after it was stored. */
|
|
119
68
|
export declare const CHURN_STALE_TAG = "churn-stale";
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
* See `tests/emotional-multipliers.test.ts` for the pattern.
|
|
128
|
-
*/
|
|
69
|
+
export declare const EMOTIONAL_MULTIPLIERS: {
|
|
70
|
+
neutral: number;
|
|
71
|
+
positive: number;
|
|
72
|
+
negative: number;
|
|
73
|
+
critical: number;
|
|
74
|
+
};
|
|
75
|
+
/** Test-only: a test that sets HIPPO_LOSS_AVERSION_RATIO calls this in beforeEach and afterEach (tests/emotional-multipliers.test.ts). */
|
|
129
76
|
export declare function _resetLossAversionRatioCacheForTests(): void;
|
|
130
|
-
/**
|
|
131
|
-
|
|
132
|
-
*
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
*/
|
|
140
|
-
export declare function
|
|
141
|
-
/**
|
|
142
|
-
* Net wrongness: bad outcome marks past good ones, never below zero.
|
|
143
|
-
* Strength halves per unit (capped at 3) and recall stops strengthening
|
|
144
|
-
* the memory, so a correction outranks pinning, error tags and heavy recall.
|
|
145
|
-
*/
|
|
146
|
-
export declare function netWrong(entry: Pick<MemoryEntry, 'outcome_positive' | 'outcome_negative'>): number;
|
|
147
|
-
/**
|
|
148
|
-
* Options for decay basis.
|
|
149
|
-
* - clock: wall-clock time (former default)
|
|
150
|
-
* - session: decay by sleep cycle count (for intermittent agents)
|
|
151
|
-
* - adaptive: auto-scale half-life by session frequency (default)
|
|
152
|
-
*/
|
|
77
|
+
/** Scales only the `negative` multiplier; `critical` stays unscaled so the knob moves just the losses-vs-gains claim. */
|
|
78
|
+
export declare function applyLossAversionRatio(valence: EmotionalValence, baseMultiplier: number): number;
|
|
79
|
+
/** 1 + REWARD_SLOPE * (pos - neg) / (pos + neg + 1), in (0.5, 1.5), 1.0 with no outcomes; it scales the effective half-life. */
|
|
80
|
+
export declare function calculateRewardFactor(entry: Pick<MemoryEntry, 'outcome_positive' | 'outcome_negative'>, ablation?: StrengthAblation): number;
|
|
81
|
+
/** Bad marks alone never push a memory under sleep's 0.05 retire line; supersede is the hard correction. */
|
|
82
|
+
export declare const MAX_WRONG_HALVINGS = 3;
|
|
83
|
+
export declare const DECAY_BASE = 0.5;
|
|
84
|
+
export declare const REWARD_SLOPE = 0.5;
|
|
85
|
+
export declare const RETRIEVAL_BOOST_SLOPE = 0.1;
|
|
86
|
+
/** Bad outcome marks past good ones, floored at zero; each halves strength and stops recall strengthening, so a correction outranks pinning. */
|
|
87
|
+
export declare function netWrong(entry: Pick<MemoryEntry, 'outcome_positive' | 'outcome_negative'>, ablation?: StrengthAblation): number;
|
|
153
88
|
/** What calculateStrength reads, so a caller can score a row without loading its text. */
|
|
154
89
|
export type StrengthInputs = Pick<MemoryEntry, 'pinned' | 'created' | 'last_retrieved' | 'half_life_days' | 'retrieval_count' | 'emotional_valence' | 'outcome_positive' | 'outcome_negative'>;
|
|
90
|
+
/** Decay basis: clock = wall time, session = per sleep cycle (intermittent agents), adaptive = half-life scaled by session frequency. */
|
|
155
91
|
export interface DecayOptions {
|
|
156
92
|
decayBasis?: 'clock' | 'session' | 'adaptive';
|
|
157
93
|
/** Average interval between sleep cycles, in days. Used by 'adaptive' and 'session' modes. */
|
|
158
94
|
avgSessionIntervalDays?: number;
|
|
159
95
|
/** Total sleep cycles completed. Used by consolidation tracking. */
|
|
160
96
|
sleepCount?: number;
|
|
97
|
+
/** EVAL-ONLY switches resolved once at the entry layer (`strengthAblation()`); absent means production scoring. */
|
|
98
|
+
ablation?: StrengthAblation;
|
|
161
99
|
}
|
|
162
|
-
/**
|
|
163
|
-
*
|
|
164
|
-
* strength(t) = base_strength * decay * retrieval_boost * emotional_multiplier
|
|
165
|
-
*
|
|
166
|
-
* Decay basis modes:
|
|
167
|
-
* - clock: classic wall-clock decay (daysSince / halfLife)
|
|
168
|
-
* - session: decay by sleep cycles instead of days (sessionsSince / halfLife)
|
|
169
|
-
* - adaptive: wall-clock decay with half-life scaled by session frequency
|
|
170
|
-
*
|
|
171
|
-
* Pinned memories skip time decay; being marked wrong still fades them (netWrong).
|
|
172
|
-
*/
|
|
100
|
+
/** Strength at `now` = decay * retrieval boost * emotional multiplier, clamped to [0, 1]; the basis modes are on DecayOptions.
|
|
101
|
+
* Pinned memories skip time decay, but being marked wrong still fades them (netWrong). */
|
|
173
102
|
export declare function calculateStrength(entry: StrengthInputs, now?: Date, options?: DecayOptions): number;
|
|
174
|
-
/**
|
|
175
|
-
* An unparseable date scores NULL here and 0 in JS, so sums agree. */
|
|
176
|
-
export declare function strengthSql(now: Date): string;
|
|
103
|
+
/** The base half-life scaled by the PLAN.md signals: an error tag, and high or low schema fit. */
|
|
177
104
|
export declare function deriveHalfLife(base: number, entry: Partial<MemoryEntry>): number;
|
|
178
|
-
/**
|
|
179
|
-
* Apply outcome feedback to a memory entry.
|
|
180
|
-
*
|
|
181
|
-
* Increments outcome_positive or outcome_negative counters.
|
|
182
|
-
* The reward factor in calculateStrength() uses these counts to
|
|
183
|
-
* continuously modulate the effective half-life:
|
|
184
|
-
* reward_ratio = (pos - neg) / (pos + neg + 1)
|
|
185
|
-
* reward_factor = 1 + 0.5 * reward_ratio // range (0.5, 1.5)
|
|
186
|
-
* effective_hl = half_life_days * reward_factor
|
|
187
|
-
*
|
|
188
|
-
* No fixed half-life delta. Decay rate adjusts proportionally to
|
|
189
|
-
* cumulative reward signal, inspired by R-STDP in spiking networks.
|
|
190
|
-
*/
|
|
105
|
+
/** Counts the outcome; calculateStrength turns the counts into a reward factor on the half-life, so there is no fixed delta here. */
|
|
191
106
|
export declare function applyOutcome(entry: MemoryEntry, good: boolean): MemoryEntry;
|
|
192
107
|
/** applyOutcome as a served outcome applies it: a good outcome reconfirms the entry, so its churn-stale tag goes. */
|
|
193
108
|
export declare function entryAfterOutcome(entry: MemoryEntry, good: boolean): MemoryEntry;
|
|
194
|
-
/**
|
|
195
|
-
* Generate a random memory ID using crypto.randomUUID().
|
|
196
|
-
*/
|
|
109
|
+
/** A new id: `prefix_` plus the first ID_SUFFIX_CHARS hex characters of a random UUID. */
|
|
197
110
|
export declare function generateId(prefix?: string): string;
|
|
198
111
|
/** What the confidence facets read, so a caller can derive them from a row it loaded only in part. */
|
|
199
112
|
export type ConfidenceInputs = Pick<MemoryEntry, 'pinned' | 'confidence' | 'last_retrieved'>;
|
|
@@ -207,28 +120,20 @@ export declare function confidenceLabel(entry: MemoryEntry, now?: Date): {
|
|
|
207
120
|
text: string;
|
|
208
121
|
warn: boolean;
|
|
209
122
|
};
|
|
210
|
-
/**
|
|
211
|
-
* Resolve the effective confidence for a memory entry.
|
|
212
|
-
* If the entry has not been retrieved in 30+ days and is not 'verified',
|
|
213
|
-
* returns 'stale'. Otherwise returns the stored confidence value.
|
|
214
|
-
*/
|
|
123
|
+
/** The stored confidence, or 'stale' once the entry is aged out (not retrieved for AGED_OUT_AFTER_DAYS; pinned and verified exempt). */
|
|
215
124
|
export declare function resolveConfidence(entry: MemoryEntry, now?: Date): ConfidenceLevel;
|
|
216
|
-
/**
|
|
217
|
-
*
|
|
218
|
-
* write-time multipliers. 365 because 7 days lost the current fact far more
|
|
219
|
-
* often, and 730 days or no decay did no better. `hippo sleep` moves memories still
|
|
220
|
-
* on an older base (src/consolidate/half-life-migration.ts).
|
|
221
|
-
*/
|
|
125
|
+
/** Base half-life in days before deriveHalfLife's multipliers: 365 because 7 lost the current fact far more often and 730 did no better.
|
|
126
|
+
* `hippo sleep` moves memories still on an older base (src/consolidate/half-life-migration.ts). */
|
|
222
127
|
export declare const DEFAULT_HALF_LIFE_DAYS = 365;
|
|
223
128
|
export declare const COMPACTION_MEMORY_TAG = "compaction-memory";
|
|
224
129
|
export declare const COMPACTION_SOURCE_PREFIX = "compaction:";
|
|
225
|
-
/** An imported agent memory
|
|
130
|
+
/** An imported agent memory is kept for good: the agent's note file is its record. It needs both its tool's tag and a source with that tool's prefix,
|
|
131
|
+
* since merge copies source tags onto rows whose source is 'consolidation'. */
|
|
226
132
|
export interface KeepPair {
|
|
227
133
|
readonly tag: string;
|
|
228
134
|
readonly sourcePrefix: string;
|
|
229
135
|
}
|
|
230
136
|
export declare const KEEP_PAIRS: readonly KeepPair[];
|
|
231
|
-
export declare const AUTO_DELETABLE_SQL: string;
|
|
232
137
|
export declare function isKeptForGood(entry: Pick<MemoryEntry, 'tags' | 'source' | 'superseded_by'>): boolean;
|
|
233
138
|
export declare function canAutoDelete(entry: Pick<MemoryEntry, 'pinned' | 'kind' | 'tags' | 'source' | 'superseded_by'>): boolean;
|
|
234
139
|
export interface CreateMemoryOptions {
|
|
@@ -239,7 +144,7 @@ export interface CreateMemoryOptions {
|
|
|
239
144
|
schema_fit?: number;
|
|
240
145
|
source?: string;
|
|
241
146
|
confidence?: ConfidenceLevel;
|
|
242
|
-
/** The store's `loadConfig(hippoRoot).defaultHalfLifeDays`; required so no writer
|
|
147
|
+
/** The store's `loadConfig(hippoRoot).defaultHalfLifeDays`; required so no writer silently gets the compiled default. */
|
|
243
148
|
baseHalfLifeDays: number;
|
|
244
149
|
trace_outcome?: TraceOutcome;
|
|
245
150
|
source_session_id?: string | null;
|
|
@@ -263,17 +168,11 @@ export declare function createSuccessor(old: MemoryEntry, content: string, opts:
|
|
|
263
168
|
tags?: string[];
|
|
264
169
|
pinned?: boolean;
|
|
265
170
|
}): MemoryEntry;
|
|
266
|
-
/**
|
|
267
|
-
*
|
|
268
|
-
* Returns 0..1 where:
|
|
269
|
-
* >0.7 = high fit (consistent with existing knowledge, consolidates faster)
|
|
270
|
-
* 0.3-0.7 = moderate fit
|
|
271
|
-
* <0.3 = novel (doesn't match existing patterns, decays faster if unused)
|
|
272
|
-
*
|
|
273
|
-
* Uses tag overlap (always available) weighted by how common each tag is.
|
|
274
|
-
* Rare shared tags signal stronger schema fit than common ones.
|
|
275
|
-
*/
|
|
171
|
+
/** How well new content fits existing knowledge, 0..1: above 0.7 consolidates faster, below 0.3 is novel and decays faster if unused.
|
|
172
|
+
* Tags shared with existing memories count by rarity (a rare shared tag fits more), plus content-token overlap. */
|
|
276
173
|
export declare function computeSchemaFit(content: string, tags: string[], existingEntries: MemoryEntry[]): number;
|
|
174
|
+
/** What schema fit reads from `entries`, built once for a caller that scores many contents against the same rows. */
|
|
175
|
+
export declare function schemaFitSourceOf(entries: readonly MemoryEntry[]): SchemaFitSource;
|
|
277
176
|
/** What schema fit reads from a set of memories, so a store can answer without loading its rows. */
|
|
278
177
|
export interface SchemaFitSource {
|
|
279
178
|
readonly rows: number;
|
|
@@ -284,23 +183,7 @@ export interface SchemaFitSource {
|
|
|
284
183
|
}
|
|
285
184
|
/** computeSchemaFit against `source`, for a caller that holds counts and texts but no rows. */
|
|
286
185
|
export declare function schemaFitFrom(content: string, tags: readonly string[], source: SchemaFitSource): number;
|
|
287
|
-
/**
|
|
288
|
-
*
|
|
289
|
-
|
|
290
|
-
*
|
|
291
|
-
* EVAL-ONLY ablation (see ablation.ts): with HIPPO_ABLATE_RECALL_BOOST set,
|
|
292
|
-
* this returns the entries UNMUTATED - neutralizing all three strengthening
|
|
293
|
-
* sub-effects (clock reset, retrieval_count, half-life increment) at the
|
|
294
|
-
* single shared write site. The entries (not an empty array) must be
|
|
295
|
-
* returned because callers derive `last_retrieval_ids` from the return
|
|
296
|
-
* value, and a later `hippo outcome --good/--bad` targets those ids - an
|
|
297
|
-
* empty return would silently co-ablate the outcome channel in the
|
|
298
|
-
* strengthen-off arm. PERSISTENCE is gated separately at
|
|
299
|
-
* each persisting caller (CLI recall, api context, MCP recall/context,
|
|
300
|
-
* consolidation replay): writeEntry on identical rows still refreshes
|
|
301
|
-
* updated_at, rewrites mirrors, and marks DAG parents dirty,
|
|
302
|
-
* so those write loops skip under the flag.
|
|
303
|
-
* The default `now` honors HIPPO_FAKE_NOW (simulated-time protocols).
|
|
304
|
-
*/
|
|
305
|
-
export declare function markRetrieved(entries: MemoryEntry[], now?: Date): MemoryEntry[];
|
|
186
|
+
/** Returns copies with the retrieval count, clock and half-life updated; the caller persists them.
|
|
187
|
+
* Under HIPPO_ABLATE_RECALL_BOOST (eval-only) the entries come back unchanged, not empty, since callers derive last_retrieval_ids from them. */
|
|
188
|
+
export declare function markRetrieved(entries: MemoryEntry[], now?: Date, options?: Pick<DecayOptions, 'ablation'>): MemoryEntry[];
|
|
306
189
|
//# sourceMappingURL=memory.d.ts.map
|