hippo-memory 1.69.0 → 1.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/dist/agent-memories/apply.d.ts +3 -3
- package/dist/agent-memories/apply.js +16 -31
- package/dist/agent-memories/claude-code.d.ts +5 -5
- package/dist/agent-memories/claude-code.js +25 -12
- package/dist/agent-memories/copilot.js +3 -2
- package/dist/agent-memories/files.js +26 -14
- package/dist/agent-memories/gemini.js +6 -5
- package/dist/agent-memories/keys.js +3 -2
- package/dist/agent-memories/legacy.d.ts +2 -2
- package/dist/agent-memories/legacy.js +2 -2
- package/dist/agent-memories/markdown.d.ts +1 -3
- package/dist/agent-memories/markdown.js +1 -3
- package/dist/agent-memories/report.d.ts +1 -1
- package/dist/agent-memories/report.js +3 -2
- package/dist/agent-memories/source.d.ts +1 -1
- package/dist/agent-memories/source.js +6 -5
- package/dist/agent-memories/sync.d.ts +5 -3
- package/dist/agent-memories/sync.js +34 -38
- package/dist/agent-memories/types.d.ts +1 -1
- package/dist/api/assemble.d.ts +9 -46
- package/dist/api/assemble.js +44 -54
- package/dist/api/audit.d.ts +8 -7
- package/dist/api/audit.js +15 -21
- package/dist/api/auth.d.ts +17 -39
- package/dist/api/auth.js +76 -216
- package/dist/api/auto-sleep.d.ts +13 -0
- package/dist/api/auto-sleep.js +32 -0
- package/dist/{availability.d.ts → api/availability.d.ts} +4 -17
- package/dist/{availability.js → api/availability.js} +14 -44
- package/dist/{context-auto.js → api/context-auto.js} +2 -1
- package/dist/{context-render.d.ts → api/context-render.d.ts} +4 -4
- package/dist/{context-render.js → api/context-render.js} +7 -6
- package/dist/api/context-select.d.ts +5 -5
- package/dist/api/context-select.js +39 -48
- package/dist/api/context-types.d.ts +15 -40
- package/dist/api/context.d.ts +7 -26
- package/dist/api/context.js +67 -97
- package/dist/api/dormant.d.ts +7 -23
- package/dist/api/dormant.js +40 -128
- package/dist/api/drill-down.d.ts +9 -48
- package/dist/api/drill-down.js +41 -90
- package/dist/api/forget.d.ts +5 -33
- package/dist/api/forget.js +17 -73
- package/dist/api/goals.d.ts +1 -1
- package/dist/api/goals.js +2 -2
- package/dist/api/graph.d.ts +8 -0
- package/dist/api/graph.js +7 -0
- package/dist/api/index.d.ts +28 -0
- package/dist/api/index.js +31 -0
- package/dist/api/instruction-detect.js +85 -0
- package/dist/api/learn.js +63 -55
- package/dist/api/ledger-db.d.ts +21 -0
- package/dist/api/ledger-db.js +81 -0
- package/dist/api/memories.d.ts +5 -0
- package/dist/api/memories.js +7 -0
- package/dist/api/objects.d.ts +9 -0
- package/dist/api/objects.js +11 -0
- package/dist/api/on-store.d.ts +16 -0
- package/dist/api/on-store.js +38 -0
- package/dist/api/outcome.d.ts +5 -42
- package/dist/api/outcome.js +15 -80
- package/dist/{pilot-arm.d.ts → api/pilot-arm.d.ts} +1 -1
- package/dist/{pilot-arm.js → api/pilot-arm.js} +15 -23
- package/dist/api/predictions.d.ts +9 -0
- package/dist/api/predictions.js +18 -0
- package/dist/api/promote.d.ts +16 -31
- package/dist/api/promote.js +38 -123
- package/dist/{prompt-hook.d.ts → api/prompt-hook.d.ts} +11 -11
- package/dist/{prompt-hook.js → api/prompt-hook.js} +42 -60
- package/dist/api/quarantine.d.ts +5 -5
- package/dist/api/quarantine.js +30 -106
- package/dist/api/recall-cli.d.ts +55 -0
- package/dist/api/recall-cli.js +94 -0
- package/dist/api/recall-core.d.ts +4 -0
- package/dist/api/recall-core.js +120 -0
- package/dist/api/recall-finish.d.ts +53 -0
- package/dist/api/recall-finish.js +30 -0
- package/dist/api/recall-history.d.ts +64 -0
- package/dist/api/recall-history.js +159 -0
- package/dist/{recall-pipeline.d.ts → api/recall-pipeline.d.ts} +7 -8
- package/dist/{recall-pipeline.js → api/recall-pipeline.js} +60 -48
- package/dist/api/recall-record.d.ts +10 -13
- package/dist/api/recall-record.js +10 -30
- package/dist/api/recall-request.d.ts +2 -2
- package/dist/api/recall-request.js +3 -3
- package/dist/api/recall-types.d.ts +101 -316
- package/dist/api/recall.d.ts +5 -33
- package/dist/api/recall.js +92 -91
- package/dist/api/refine.d.ts +7 -0
- package/dist/api/refine.js +10 -0
- package/dist/api/remember-local.d.ts +57 -0
- package/dist/api/remember-local.js +90 -0
- package/dist/api/remember.d.ts +27 -12
- package/dist/api/remember.js +42 -46
- package/dist/api/session-owners.d.ts +4 -0
- package/dist/api/session-owners.js +17 -0
- package/dist/api/sleep-run.d.ts +7 -9
- package/dist/api/sleep-run.js +78 -94
- package/dist/api/sleep.d.ts +10 -29
- package/dist/api/tokens.d.ts +5 -12
- package/dist/api/tokens.js +12 -31
- package/dist/api/types.d.ts +8 -31
- package/dist/api/types.js +5 -23
- package/dist/capture/caller-session.d.ts +2 -2
- package/dist/capture/caller-session.js +8 -8
- package/dist/{capture-error.d.ts → capture/capture-error.d.ts} +2 -2
- package/dist/{capture-error.js → capture/capture-error.js} +7 -7
- package/dist/{codex-patch.js → capture/codex-patch.js} +1 -1
- package/dist/capture/command.d.ts +5 -13
- package/dist/capture/command.js +57 -60
- package/dist/capture/compact-resume-caller.d.ts +1 -1
- package/dist/capture/compact-resume-caller.js +7 -7
- package/dist/capture/compact.d.ts +8 -16
- package/dist/capture/compact.js +56 -47
- package/dist/capture/compaction-items-caller.d.ts +1 -1
- package/dist/capture/compaction-items-caller.js +7 -5
- package/dist/{compaction-items.js → capture/compaction-items.js} +27 -3
- package/dist/{compaction-record.d.ts → capture/compaction-record.d.ts} +10 -6
- package/dist/{compaction-record.js → capture/compaction-record.js} +143 -157
- package/dist/{compaction-spool.d.ts → capture/compaction-spool.d.ts} +1 -1
- package/dist/{compaction-spool.js → capture/compaction-spool.js} +18 -14
- package/dist/capture/copilot-transcript.js +1 -1
- package/dist/capture/extract.js +2 -2
- package/dist/capture/failure-caller.d.ts +2 -2
- package/dist/capture/failure-caller.js +6 -6
- package/dist/capture/failure-reading.d.ts +2 -5
- package/dist/capture/failure-reading.js +11 -12
- package/dist/{handoff-evidence.d.ts → capture/handoff-evidence.d.ts} +1 -1
- package/dist/{handoff-evidence.js → capture/handoff-evidence.js} +2 -1
- package/dist/capture/pre-compact-caller.d.ts +1 -1
- package/dist/capture/pre-compact-caller.js +2 -2
- package/dist/{session-digest.d.ts → capture/session-digest.d.ts} +2 -6
- package/dist/{session-digest.js → capture/session-digest.js} +29 -29
- package/dist/capture/session-end-caller.d.ts +2 -2
- package/dist/capture/session-end-caller.js +1 -1
- package/dist/capture/session-texts.d.ts +1 -1
- package/dist/capture/session-texts.js +5 -5
- package/dist/capture/session-worker.js +6 -4
- package/dist/{share-scrub.js → capture/share-scrub.js} +2 -2
- package/dist/capture/transcript.d.ts +2 -10
- package/dist/capture/transcript.js +72 -92
- package/dist/capture/working-state.d.ts +0 -3
- package/dist/capture/working-state.js +7 -7
- package/dist/cli/api-context.d.ts +3 -0
- package/dist/cli/api-context.js +6 -0
- package/dist/cli/audit-prune.d.ts +28 -0
- package/dist/cli/audit-prune.js +40 -0
- package/dist/cli/audit.d.ts +2 -2
- package/dist/cli/audit.js +92 -88
- package/dist/cli/auth.d.ts +2 -1
- package/dist/cli/auth.js +69 -53
- package/dist/cli/briefs.d.ts +4 -3
- package/dist/cli/briefs.js +76 -202
- package/dist/cli/card.d.ts +2 -1
- package/dist/cli/card.js +55 -54
- package/dist/cli/client.d.ts +28 -0
- package/dist/{client.js → cli/client.js} +25 -44
- package/dist/cli/compact-resume-payload.d.ts +8 -0
- package/dist/cli/compact-resume-payload.js +40 -0
- package/dist/cli/context.d.ts +1 -13
- package/dist/cli/context.js +51 -77
- package/dist/cli/continuity.d.ts +6 -5
- package/dist/cli/continuity.js +153 -145
- package/dist/cli/correction-latency.d.ts +24 -0
- package/dist/{correction-latency.js → cli/correction-latency.js} +2 -14
- package/dist/cli/curate.d.ts +13 -17
- package/dist/cli/curate.js +226 -222
- package/dist/cli/dag.d.ts +4 -4
- package/dist/cli/dag.js +70 -52
- package/dist/cli/decisions.d.ts +4 -3
- package/dist/cli/decisions.js +129 -253
- package/dist/cli/eval.d.ts +1 -3
- package/dist/cli/eval.js +56 -42
- package/dist/cli/exit.d.ts +6 -0
- package/dist/cli/exit.js +11 -0
- package/dist/cli/explain.d.ts +1 -2
- package/dist/cli/explain.js +39 -21
- package/dist/cli/flag-values.d.ts +30 -0
- package/dist/cli/flag-values.js +120 -0
- package/dist/cli/flags.d.ts +304 -0
- package/dist/cli/flags.js +169 -0
- package/dist/cli/github.d.ts +14 -0
- package/dist/cli/github.js +184 -0
- package/dist/cli/goals.d.ts +2 -1
- package/dist/cli/goals.js +76 -75
- package/dist/cli/hook-runtime.d.ts +31 -0
- package/dist/cli/hook-runtime.js +139 -0
- package/dist/cli/init.d.ts +2 -1
- package/dist/cli/init.js +153 -126
- package/dist/cli/install-steps.d.ts +7 -0
- package/dist/cli/install-steps.js +101 -0
- package/dist/cli/last-sleep.d.ts +3 -1
- package/dist/cli/last-sleep.js +12 -7
- package/dist/cli/maintenance.d.ts +5 -4
- package/dist/cli/maintenance.js +41 -42
- package/dist/cli/object-verbs.d.ts +40 -0
- package/dist/cli/object-verbs.js +66 -0
- package/dist/cli/owner-validation.d.ts +18 -0
- package/dist/cli/owner-validation.js +33 -0
- package/dist/cli/playbooks.d.ts +4 -3
- package/dist/cli/playbooks.js +98 -306
- package/dist/cli/print.d.ts +15 -0
- package/dist/cli/print.js +82 -0
- package/dist/cli/projects.d.ts +2 -3
- package/dist/cli/projects.js +56 -51
- package/dist/cli/provenance-coverage.d.ts +14 -0
- package/dist/{provenance-coverage.js → cli/provenance-coverage.js} +2 -6
- package/dist/cli/quality-repair-once.js +4 -4
- package/dist/cli/recall.d.ts +2 -6
- package/dist/cli/recall.js +128 -253
- package/dist/cli/refine-llm.d.ts +35 -0
- package/dist/cli/refine-llm.js +128 -0
- package/dist/cli/remember.d.ts +4 -6
- package/dist/cli/remember.js +193 -230
- package/dist/{scheduler.d.ts → cli/scheduler.d.ts} +4 -17
- package/dist/{scheduler.js → cli/scheduler.js} +22 -22
- package/dist/cli/serve.d.ts +1 -1
- package/dist/cli/serve.js +46 -7
- package/dist/cli/session-hooks.d.ts +11 -19
- package/dist/cli/session-hooks.js +263 -258
- package/dist/cli/setup.d.ts +4 -3
- package/dist/cli/setup.js +55 -37
- package/dist/cli/shared.d.ts +14 -118
- package/dist/cli/shared.js +26 -400
- package/dist/cli/slack.d.ts +2 -1
- package/dist/cli/slack.js +46 -74
- package/dist/cli/sleep-render.d.ts +4 -0
- package/dist/cli/sleep-render.js +61 -0
- package/dist/cli/sleep.d.ts +3 -8
- package/dist/cli/sleep.js +34 -91
- package/dist/cli/status.d.ts +9 -12
- package/dist/cli/status.js +86 -131
- package/dist/{stdin.d.ts → cli/stdin.d.ts} +4 -6
- package/dist/{stdin.js → cli/stdin.js} +8 -9
- package/dist/cli/transfer.d.ts +9 -9
- package/dist/cli/transfer.js +125 -122
- package/dist/cli/usage.js +13 -5
- package/dist/cli.d.ts +69 -167
- package/dist/cli.js +187 -296
- package/dist/connectors/dlq.d.ts +44 -0
- package/dist/connectors/dlq.js +30 -0
- package/dist/connectors/github/backfill.d.ts +6 -26
- package/dist/connectors/github/backfill.js +42 -114
- package/dist/connectors/github/deletion.d.ts +6 -21
- package/dist/connectors/github/deletion.js +17 -64
- package/dist/connectors/github/dlq.d.ts +12 -91
- package/dist/connectors/github/dlq.js +23 -140
- package/dist/connectors/github/ingest.d.ts +4 -37
- package/dist/connectors/github/ingest.js +24 -93
- package/dist/connectors/github/octokit-client.d.ts +5 -17
- package/dist/connectors/github/octokit-client.js +29 -25
- package/dist/connectors/github/ratelimit.d.ts +3 -14
- package/dist/connectors/github/ratelimit.js +3 -14
- package/dist/connectors/github/scope.d.ts +3 -5
- package/dist/connectors/github/scope.js +3 -5
- package/dist/connectors/github/signature.d.ts +4 -26
- package/dist/connectors/github/signature.js +4 -26
- package/dist/connectors/github/tenant-routing.d.ts +4 -26
- package/dist/connectors/github/tenant-routing.js +13 -61
- package/dist/connectors/github/transform.d.ts +1 -1
- package/dist/connectors/github/transform.js +2 -16
- package/dist/connectors/github/types.d.ts +4 -16
- package/dist/connectors/github/types.js +17 -27
- package/dist/connectors/github/webhook.d.ts +5 -18
- package/dist/connectors/github/webhook.js +86 -105
- package/dist/connectors/slack/backfill.d.ts +5 -18
- package/dist/connectors/slack/backfill.js +9 -42
- package/dist/connectors/slack/deletion.d.ts +4 -7
- package/dist/connectors/slack/deletion.js +20 -49
- package/dist/connectors/slack/dlq.d.ts +9 -68
- package/dist/connectors/slack/dlq.js +26 -136
- package/dist/connectors/slack/ingest.d.ts +4 -18
- package/dist/connectors/slack/ingest.js +26 -91
- package/dist/connectors/slack/scope.d.ts +2 -8
- package/dist/connectors/slack/scope.js +2 -8
- package/dist/connectors/slack/signature.d.ts +1 -6
- package/dist/connectors/slack/signature.js +2 -1
- package/dist/connectors/slack/tenant-routing.d.ts +4 -18
- package/dist/connectors/slack/tenant-routing.js +11 -31
- package/dist/connectors/slack/transform.d.ts +3 -19
- package/dist/connectors/slack/transform.js +2 -18
- package/dist/connectors/slack/types.d.ts +4 -10
- package/dist/connectors/slack/types.js +5 -16
- package/dist/connectors/slack/web-client.js +34 -28
- package/dist/connectors/slack/webhook.d.ts +5 -21
- package/dist/connectors/slack/webhook.js +80 -108
- package/dist/connectors/slack/workspaces.d.ts +8 -41
- package/dist/connectors/slack/workspaces.js +8 -58
- package/dist/consolidate/conflicts.d.ts +1 -1
- package/dist/consolidate/conflicts.js +10 -18
- package/dist/consolidate/dag-summary.d.ts +8 -0
- package/dist/consolidate/dag-summary.js +41 -0
- package/dist/{dag.d.ts → consolidate/dag.d.ts} +6 -29
- package/dist/{dag.js → consolidate/dag.js} +49 -131
- package/dist/consolidate/decay.d.ts +2 -2
- package/dist/consolidate/decay.js +35 -41
- package/dist/consolidate/dedupe.d.ts +29 -0
- package/dist/consolidate/dedupe.js +103 -0
- package/dist/consolidate/flush-units.d.ts +5 -6
- package/dist/consolidate/flush-units.js +3 -3
- package/dist/consolidate/half-life-migration.d.ts +34 -0
- package/dist/consolidate/half-life-migration.js +89 -0
- package/dist/consolidate/llm-passes.js +12 -29
- package/dist/consolidate/memory-value-weights.d.ts +8 -0
- package/dist/{memory-value-weights.js → consolidate/memory-value-weights.js} +2 -13
- package/dist/consolidate/memory-value.d.ts +45 -0
- package/dist/consolidate/memory-value.js +164 -0
- package/dist/consolidate/merge.js +65 -83
- package/dist/{merged-row.d.ts → consolidate/merged-row.d.ts} +1 -1
- package/dist/{merged-row.js → consolidate/merged-row.js} +4 -3
- package/dist/consolidate/physics-pass.js +46 -48
- package/dist/consolidate/replay.d.ts +9 -0
- package/dist/consolidate/replay.js +84 -0
- package/dist/consolidate/run.d.ts +7 -13
- package/dist/consolidate/run.js +6 -37
- package/dist/consolidate/sleep.d.ts +2 -9
- package/dist/consolidate/sleep.js +69 -151
- package/dist/consolidate/trace.d.ts +19 -0
- package/dist/{trace.js → consolidate/trace.js} +7 -24
- package/dist/consolidate/traces.js +40 -51
- package/dist/core/ablation.d.ts +15 -0
- package/dist/core/ablation.js +49 -0
- package/dist/{agent-memories/tools.d.ts → core/agent-memory-tools.d.ts} +1 -1
- package/dist/{agent-memories/tools.js → core/agent-memory-tools.js} +1 -1
- package/dist/{ambient.d.ts → core/ambient.d.ts} +1 -8
- package/dist/{ambient.js → core/ambient.js} +13 -18
- package/dist/{capture-contract.d.ts → core/capture-contract.d.ts} +16 -3
- package/dist/{capture-contract.js → core/capture-contract.js} +67 -1
- package/dist/{card.d.ts → core/card.d.ts} +4 -1
- package/dist/{card.js → core/card.js} +8 -0
- package/dist/core/compare.d.ts +32 -0
- package/dist/core/compare.js +70 -0
- package/dist/{config.d.ts → core/config.d.ts} +14 -28
- package/dist/{config.js → core/config.js} +101 -75
- package/dist/{handoff.d.ts → core/handoff.d.ts} +1 -7
- package/dist/core/handoff.js +81 -0
- package/dist/{memory-quality.js → core/memory-quality.js} +2 -2
- package/dist/core/memory.d.ts +183 -0
- package/dist/core/memory.js +380 -0
- package/dist/core/package-root.d.ts +3 -0
- package/dist/core/package-root.js +5 -0
- package/dist/{physics-config.d.ts → core/physics-config.d.ts} +1 -4
- package/dist/{physics-config.js → core/physics-config.js} +3 -8
- package/dist/{physics.d.ts → core/physics.d.ts} +16 -62
- package/dist/{physics.js → core/physics.js} +60 -122
- package/dist/{project-identity.d.ts → core/project-identity.d.ts} +17 -63
- package/dist/{project-identity.js → core/project-identity.js} +22 -55
- package/dist/{project-remote.js → core/project-remote.js} +17 -6
- package/dist/{prompt-recall.js → core/prompt-recall.js} +1 -1
- package/dist/core/raw-append-only.d.ts +5 -0
- package/dist/core/raw-append-only.js +7 -0
- package/dist/{salience.d.ts → core/salience.d.ts} +1 -7
- package/dist/{salience.js → core/salience.js} +36 -27
- package/dist/{search/types.d.ts → core/search-types.d.ts} +2 -2
- package/dist/{search/types.js → core/search-types.js} +1 -1
- package/dist/core/session-digest-row.d.ts +5 -0
- package/dist/core/session-digest-row.js +6 -0
- package/dist/{dashboard-actions.d.ts → dashboard/dashboard-actions.d.ts} +1 -1
- package/dist/{dashboard-actions.js → dashboard/dashboard-actions.js} +7 -7
- package/dist/{dashboard-queries.d.ts → dashboard/dashboard-queries.d.ts} +7 -2
- package/dist/{dashboard-queries.js → dashboard/dashboard-queries.js} +6 -10
- package/dist/{dashboard-snapshot.d.ts → dashboard/dashboard-snapshot.d.ts} +11 -10
- package/dist/{dashboard-snapshot.js → dashboard/dashboard-snapshot.js} +110 -104
- package/dist/{dashboard-types.d.ts → dashboard/dashboard-types.d.ts} +2 -1
- package/dist/{dashboard.d.ts → dashboard/dashboard.d.ts} +1 -0
- package/dist/{dashboard.js → dashboard/dashboard.js} +172 -55
- package/dist/db/backup.js +1 -1
- package/dist/db/busy.d.ts +19 -2
- package/dist/db/busy.js +88 -14
- package/dist/db/connect.d.ts +11 -2
- package/dist/db/connect.js +43 -10
- package/dist/db/index.d.ts +9 -0
- package/dist/db/index.js +8 -0
- package/dist/db/meta.d.ts +4 -0
- package/dist/db/meta.js +11 -1
- package/dist/db/migrate.d.ts +8 -1
- package/dist/db/migrate.js +28 -33
- package/dist/db/migrations/types.d.ts +2 -5
- package/dist/db/migrations/v08.js +1 -1
- package/dist/db/migrations/v14.js +39 -36
- package/dist/db/migrations/v15.js +2 -8
- package/dist/db/migrations/v16.js +31 -29
- package/dist/db/migrations/v17.js +2 -3
- package/dist/db/migrations/v18.js +6 -5
- package/dist/db/migrations/v19.js +2 -5
- package/dist/db/migrations/v20.js +5 -8
- package/dist/db/migrations/v22.js +28 -38
- package/dist/db/migrations/v23.js +3 -14
- package/dist/db/migrations/v24.js +25 -22
- package/dist/db/migrations/v25.js +3 -8
- package/dist/db/migrations/v26.js +2 -13
- package/dist/db/migrations/v27.js +3 -11
- package/dist/db/migrations/v28.js +2 -14
- package/dist/db/migrations/v29.js +23 -32
- package/dist/db/migrations/v30.js +4 -16
- package/dist/db/migrations/v31.js +23 -31
- package/dist/db/migrations/v32.js +4 -22
- package/dist/db/migrations/v33.js +2 -15
- package/dist/db/migrations/v34.js +2 -11
- package/dist/db/migrations/v35.js +2 -11
- package/dist/db/migrations/v36.js +2 -11
- package/dist/db/migrations/v37.js +8 -33
- package/dist/db/migrations/v38.js +5 -38
- package/dist/db/migrations/v39.js +10 -21
- package/dist/db/migrations/v40.js +8 -14
- package/dist/db/migrations/v41.js +2 -24
- package/dist/db/migrations/v43.js +7 -6
- package/dist/db/migrations/v44.js +2 -8
- package/dist/db/migrations/v45.js +2 -7
- package/dist/db/migrations/v46.js +1 -1
- package/dist/db/migrations/v47.js +2 -3
- package/dist/db/migrations/v48.js +1 -1
- package/dist/db/migrations/v49.js +1 -1
- package/dist/db/migrations/v50.js +8 -7
- package/dist/db/migrations/v51.js +1 -1
- package/dist/db/migrations/v52.js +1 -1
- package/dist/db/open.d.ts +11 -1
- package/dist/db/open.js +37 -4
- package/dist/db/physics-state.d.ts +23 -0
- package/dist/{physics-state.js → db/physics-state.js} +34 -52
- package/dist/db/raw-archive-mirror-cleanup.d.ts +5 -0
- package/dist/{raw-archive-mirror-cleanup.js → db/raw-archive-mirror-cleanup.js} +10 -20
- package/dist/db/request-stores.d.ts +15 -2
- package/dist/db/request-stores.js +37 -15
- package/dist/db/tables.d.ts +2 -0
- package/dist/db/tables.js +6 -0
- package/dist/{vector-store.d.ts → db/vector-store.d.ts} +6 -2
- package/dist/{vector-store.js → db/vector-store.js} +83 -51
- package/dist/db/wal-checkpointer.d.ts +11 -0
- package/dist/db/wal-checkpointer.js +92 -0
- package/dist/doctor.js +176 -152
- package/dist/entry/json-hooks.d.ts +1 -1
- package/dist/entry/json-hooks.js +1 -1
- package/dist/entry/project-identity.d.ts +1 -1
- package/dist/entry/project-identity.js +1 -1
- package/dist/entry/session-text.d.ts +3 -3
- package/dist/entry/session-text.js +5 -4
- package/dist/{eval-stats.d.ts → eval/eval-stats.d.ts} +15 -53
- package/dist/{eval-stats.js → eval/eval-stats.js} +24 -51
- package/dist/{eval-suite.d.ts → eval/eval-suite.d.ts} +3 -14
- package/dist/{eval-suite.js → eval/eval-suite.js} +99 -57
- package/dist/{eval.d.ts → eval/eval.d.ts} +7 -25
- package/dist/{eval.js → eval/eval.js} +35 -55
- package/dist/{judgment.d.ts → eval/judgment.d.ts} +1 -6
- package/dist/{judgment.js → eval/judgment.js} +23 -20
- package/dist/extensions/openclaw-plugin/index.js +2 -3
- package/dist/graph/delta.d.ts +3 -2
- package/dist/graph/delta.js +9 -23
- package/dist/{graph-extract.d.ts → graph/extract.d.ts} +10 -32
- package/dist/{graph-extract.js → graph/extract.js} +40 -81
- package/dist/{graph-recall.d.ts → graph/recall.d.ts} +9 -22
- package/dist/{graph-recall.js → graph/recall.js} +65 -108
- package/dist/graph/stream.d.ts +38 -0
- package/dist/{graph-stream.js → graph/stream.js} +20 -41
- package/dist/graph/view.d.ts +50 -0
- package/dist/graph/view.js +265 -0
- package/dist/graph/write.d.ts +4 -76
- package/dist/graph/write.js +13 -397
- package/dist/hooks/codex-session.js +1 -1
- package/dist/hooks/codex-wrapper.js +16 -17
- package/dist/hooks/copilot.d.ts +1 -8
- package/dist/hooks/copilot.js +16 -16
- package/dist/{cli → hooks}/hook-blocks.d.ts +6 -2
- package/dist/{cli → hooks}/hook-blocks.js +38 -125
- package/dist/hooks/json-hooks.d.ts +5 -37
- package/dist/hooks/json-hooks.js +49 -179
- package/dist/hooks/opencode.d.ts +0 -38
- package/dist/hooks/opencode.js +44 -103
- package/dist/hooks/shared.d.ts +8 -21
- package/dist/hooks/shared.js +30 -25
- package/dist/importers/core.d.ts +13 -42
- package/dist/importers/core.js +48 -64
- package/dist/importers/markdown-parse.d.ts +9 -32
- package/dist/importers/markdown-parse.js +10 -44
- package/dist/importers/markdown.js +5 -13
- package/dist/importers/sources.js +57 -81
- package/dist/importers/vault.d.ts +2 -8
- package/dist/importers/vault.js +95 -172
- package/dist/index.d.ts +26 -22
- package/dist/index.js +25 -21
- package/dist/learn/autolearn.d.ts +29 -0
- package/dist/{autolearn.js → learn/autolearn.js} +26 -51
- package/dist/{churn-git.d.ts → learn/churn-git.d.ts} +1 -1
- package/dist/{churn-git.js → learn/churn-git.js} +6 -4
- package/dist/{extract.d.ts → learn/extract.d.ts} +1 -1
- package/dist/learn/extract.js +123 -0
- package/dist/learn/forward-claim-detector.d.ts +12 -0
- package/dist/learn/forward-claim-detector.js +60 -0
- package/dist/{invalidation.d.ts → learn/invalidation.d.ts} +10 -18
- package/dist/{invalidation.js → learn/invalidation.js} +92 -125
- package/dist/mcp/admin-tools.d.ts +1 -1
- package/dist/mcp/admin-tools.js +39 -64
- package/dist/mcp/format.d.ts +5 -5
- package/dist/mcp/format.js +7 -6
- package/dist/mcp/framing.d.ts +6 -0
- package/dist/mcp/framing.js +11 -3
- package/dist/mcp/memory-tools.js +10 -35
- package/dist/mcp/protocol.d.ts +14 -36
- package/dist/mcp/protocol.js +10 -19
- package/dist/mcp/recall-tools.d.ts +2 -2
- package/dist/mcp/recall-tools.js +70 -52
- package/dist/mcp/request.d.ts +3 -11
- package/dist/mcp/request.js +71 -85
- package/dist/mcp/server.d.ts +3 -9
- package/dist/mcp/server.js +6 -17
- package/dist/mcp/session-state.d.ts +2 -3
- package/dist/mcp/session-state.js +7 -13
- package/dist/mcp/shared-gate.js +1 -1
- package/dist/mcp/stdio.d.ts +2 -6
- package/dist/mcp/stdio.js +112 -38
- package/dist/mcp/tool-args.js +2 -1
- package/dist/mcp/tools.js +7 -5
- package/dist/objects/customer-notes.d.ts +44 -0
- package/dist/objects/customer-notes.js +71 -0
- package/dist/objects/decisions.d.ts +41 -0
- package/dist/objects/decisions.js +63 -0
- package/dist/objects/descriptor.d.ts +52 -0
- package/dist/objects/descriptor.js +4 -0
- package/dist/objects/fields.d.ts +15 -0
- package/dist/objects/fields.js +21 -0
- package/dist/objects/incidents.d.ts +45 -0
- package/dist/objects/incidents.js +96 -0
- package/dist/objects/lifecycle.d.ts +27 -0
- package/dist/objects/lifecycle.js +96 -0
- package/dist/objects/policies.d.ts +60 -0
- package/dist/objects/policies.js +102 -0
- package/dist/objects/processes.d.ts +43 -0
- package/dist/objects/processes.js +92 -0
- package/dist/objects/project-briefs.d.ts +63 -0
- package/dist/objects/project-briefs.js +194 -0
- package/dist/objects/skills.d.ts +51 -0
- package/dist/objects/skills.js +110 -0
- package/dist/postinstall.js +10 -21
- package/dist/predictions/planning-fallacy.d.ts +14 -109
- package/dist/predictions/planning-fallacy.js +4 -129
- package/dist/rerankers/clef.d.ts +2 -6
- package/dist/rerankers/clef.js +28 -76
- package/dist/rerankers/cross-encoder.d.ts +0 -7
- package/dist/rerankers/cross-encoder.js +18 -28
- package/dist/rerankers/index.js +8 -7
- package/dist/rerankers/jev.d.ts +1 -4
- package/dist/rerankers/jev.js +36 -52
- package/dist/rerankers/llm.d.ts +2 -13
- package/dist/rerankers/llm.js +42 -59
- package/dist/rerankers/outage-warning.d.ts +8 -0
- package/dist/rerankers/outage-warning.js +32 -0
- package/dist/rerankers/remote.d.ts +4 -0
- package/dist/rerankers/remote.js +25 -0
- package/dist/rerankers/types.d.ts +3 -15
- package/dist/search/as-of.d.ts +1 -1
- package/dist/search/bm25-search.d.ts +2 -2
- package/dist/search/bm25-search.js +7 -7
- package/dist/search/bm25.d.ts +1 -1
- package/dist/search/bm25.js +1 -1
- package/dist/search/boosts.d.ts +5 -3
- package/dist/search/boosts.js +36 -15
- package/dist/search/breakdown.d.ts +2 -2
- package/dist/search/breakdown.js +2 -1
- package/dist/search/explain.d.ts +1 -1
- package/dist/search/explain.js +3 -2
- package/dist/search/finalize.d.ts +2 -2
- package/dist/search/finalize.js +4 -3
- package/dist/search/fusion.d.ts +1 -1
- package/dist/search/fusion.js +3 -3
- package/dist/search/goal-boost.d.ts +23 -0
- package/dist/search/goal-boost.js +90 -0
- package/dist/search/hybrid-score.d.ts +2 -2
- package/dist/search/hybrid-score.js +1 -1
- package/dist/search/hybrid.d.ts +6 -4
- package/dist/search/hybrid.js +11 -8
- package/dist/{multihop.d.ts → search/multihop.d.ts} +2 -2
- package/dist/{multihop.js → search/multihop.js} +9 -8
- package/dist/search/path-context.d.ts +11 -0
- package/dist/{path-context.js → search/path-context.js} +8 -19
- package/dist/search/physics-search.d.ts +4 -4
- package/dist/search/physics-search.js +25 -22
- package/dist/search/rerank.d.ts +3 -3
- package/dist/search/rerank.js +4 -3
- package/dist/search/rrf.d.ts +15 -0
- package/dist/search/rrf.js +36 -0
- package/dist/search/temporal.d.ts +1 -1
- package/dist/search/temporal.js +5 -2
- package/dist/search/vector.d.ts +10 -3
- package/dist/search/vector.js +51 -15
- package/dist/server/auth.d.ts +10 -29
- package/dist/server/auth.js +57 -42
- package/dist/server/boot.d.ts +5 -0
- package/dist/server/boot.js +432 -0
- package/dist/server/client-ip.d.ts +8 -20
- package/dist/server/client-ip.js +23 -34
- package/dist/server/cursor.d.ts +1 -1
- package/dist/server/cursor.js +2 -3
- package/dist/server/deadline.d.ts +13 -0
- package/dist/server/deadline.js +45 -0
- package/dist/server/defaults.d.ts +3 -0
- package/dist/server/defaults.js +4 -0
- package/dist/server/key-check-bounds.d.ts +9 -0
- package/dist/server/key-check-bounds.js +46 -0
- package/dist/server/lifecycle.d.ts +5 -4
- package/dist/server/lifecycle.js +20 -5
- package/dist/server/mcp-http.d.ts +1 -4
- package/dist/server/mcp-http.js +44 -68
- package/dist/server/rate-limit.d.ts +21 -0
- package/dist/{rate-limit.js → server/rate-limit.js} +4 -13
- package/dist/server/ready.d.ts +7 -0
- package/dist/server/ready.js +38 -0
- package/dist/server/request.d.ts +14 -12
- package/dist/server/request.js +71 -28
- package/dist/server/route-table.d.ts +15 -0
- package/dist/server/route-table.js +202 -0
- package/dist/server/routes/admin.js +29 -30
- package/dist/server/routes/customer-notes.d.ts +5 -5
- package/dist/server/routes/customer-notes.js +35 -105
- package/dist/server/routes/decisions.d.ts +5 -5
- package/dist/server/routes/decisions.js +45 -115
- package/dist/server/routes/incidents.d.ts +5 -5
- package/dist/server/routes/incidents.js +44 -105
- package/dist/server/routes/memories.js +21 -43
- package/dist/server/routes/object-routes.d.ts +35 -0
- package/dist/server/routes/object-routes.js +72 -0
- package/dist/server/routes/policies.d.ts +6 -6
- package/dist/server/routes/policies.js +42 -134
- package/dist/server/routes/predictions.js +35 -63
- package/dist/server/routes/processes.d.ts +5 -5
- package/dist/server/routes/processes.js +44 -134
- package/dist/server/routes/project-briefs.d.ts +6 -6
- package/dist/server/routes/project-briefs.js +41 -120
- package/dist/server/routes/recall.js +21 -44
- package/dist/server/routes/skills.d.ts +6 -6
- package/dist/server/routes/skills.js +40 -138
- package/dist/server/server-detect.d.ts +28 -0
- package/dist/server/server-detect.js +156 -0
- package/dist/server/sleep-child.d.ts +2 -0
- package/dist/server/sleep-child.js +19 -0
- package/dist/server/sleep-offload.d.ts +20 -0
- package/dist/server/sleep-offload.js +73 -0
- package/dist/server/tls.d.ts +6 -0
- package/dist/server/tls.js +24 -0
- package/dist/server/types.d.ts +35 -14
- package/dist/server/validation.d.ts +6 -5
- package/dist/server/validation.js +16 -34
- package/dist/server.d.ts +39 -61
- package/dist/server.js +26 -569
- package/dist/sharing/global-store.d.ts +19 -0
- package/dist/sharing/global-store.js +75 -0
- package/dist/sharing/global-sync.d.ts +6 -0
- package/dist/sharing/global-sync.js +80 -0
- package/dist/{project-merge.d.ts → sharing/project-merge.d.ts} +5 -6
- package/dist/{project-merge.js → sharing/project-merge.js} +34 -51
- package/dist/sharing/scope.d.ts +7 -0
- package/dist/{scope.js → sharing/scope.js} +5 -12
- package/dist/sharing/search-both.d.ts +60 -0
- package/dist/sharing/search-both.js +138 -0
- package/dist/sharing/share.d.ts +38 -0
- package/dist/sharing/share.js +226 -0
- package/dist/{ambient-store.d.ts → store/ambient.d.ts} +2 -2
- package/dist/{ambient-store.js → store/ambient.js} +11 -16
- package/dist/store/audit-event.d.ts +15 -17
- package/dist/store/audit-event.js +9 -16
- package/dist/{audit.d.ts → store/audit.d.ts} +29 -8
- package/dist/{audit.js → store/audit.js} +95 -18
- package/dist/{auth.d.ts → store/auth.d.ts} +19 -36
- package/dist/{auth.js → store/auth.js} +108 -99
- package/dist/store/candidates.d.ts +41 -13
- package/dist/store/candidates.js +141 -60
- package/dist/{card-detail.d.ts → store/card-detail.d.ts} +5 -4
- package/dist/{card-detail.js → store/card-detail.js} +3 -2
- package/dist/{store-cards.d.ts → store/cards.d.ts} +26 -16
- package/dist/{store-cards.js → store/cards.js} +133 -248
- package/dist/store/compactions.d.ts +78 -0
- package/dist/store/compactions.js +93 -0
- package/dist/store/conflicts.d.ts +26 -26
- package/dist/store/conflicts.js +194 -222
- package/dist/store/connectors/github.d.ts +84 -0
- package/dist/store/connectors/github.js +180 -0
- package/dist/store/connectors/slack.d.ts +69 -0
- package/dist/store/connectors/slack.js +177 -0
- package/dist/store/dashboard-reads.d.ts +27 -0
- package/dist/store/dashboard-reads.js +88 -0
- package/dist/store/delete-and-batch.d.ts +27 -51
- package/dist/store/delete-and-batch.js +100 -92
- package/dist/{delivery-recorder.d.ts → store/delivery-recorder.d.ts} +16 -5
- package/dist/{delivery-recorder.js → store/delivery-recorder.js} +60 -38
- package/dist/store/descendant-page.d.ts +12 -0
- package/dist/store/descendant-page.js +99 -0
- package/dist/store/diagnostics.d.ts +47 -0
- package/dist/store/diagnostics.js +44 -0
- package/dist/store/doctor-reads.d.ts +16 -0
- package/dist/store/doctor-reads.js +19 -0
- package/dist/store/dormant.d.ts +105 -0
- package/dist/store/dormant.js +241 -0
- package/dist/store/embeddings/index.d.ts +36 -0
- package/dist/{embeddings.js → store/embeddings/index.js} +104 -224
- package/dist/{local-embedding.d.ts → store/embeddings/local.d.ts} +1 -1
- package/dist/{local-embedding.js → store/embeddings/local.js} +69 -75
- package/dist/store/embeddings/provider.d.ts +40 -0
- package/dist/{embedding-provider.js → store/embeddings/provider.js} +78 -91
- package/dist/store/entry-reads.d.ts +66 -63
- package/dist/store/entry-reads.js +159 -121
- package/dist/store/entry-row.d.ts +14 -37
- package/dist/store/entry-row.js +37 -45
- package/dist/store/entry-writes.d.ts +40 -17
- package/dist/store/entry-writes.js +105 -41
- package/dist/{failure-log.d.ts → store/failure-log.d.ts} +7 -2
- package/dist/{failure-log.js → store/failure-log.js} +9 -2
- package/dist/store/goals.d.ts +96 -0
- package/dist/store/goals.js +260 -0
- package/dist/store/graph-queue.d.ts +13 -0
- package/dist/store/graph-queue.js +70 -0
- package/dist/store/graph-reads.d.ts +41 -0
- package/dist/{graph/read.js → store/graph-reads.js} +72 -162
- package/dist/{graph/types.d.ts → store/graph-rows.d.ts} +71 -14
- package/dist/{graph/rows.js → store/graph-rows.js} +20 -12
- package/dist/store/graph-view-rows.d.ts +13 -0
- package/dist/store/graph-view-rows.js +68 -0
- package/dist/store/graph-writes.d.ts +33 -0
- package/dist/store/graph-writes.js +232 -0
- package/dist/store/half-life.d.ts +35 -0
- package/dist/store/half-life.js +75 -0
- package/dist/store/handoffs.d.ts +6 -12
- package/dist/store/handoffs.js +54 -63
- package/dist/store/index-and-stats.d.ts +14 -20
- package/dist/store/index-and-stats.js +74 -119
- package/dist/store/index.d.ts +4 -0
- package/dist/store/index.js +3 -0
- package/dist/store/key-audit.d.ts +2 -2
- package/dist/store/key-audit.js +4 -4
- package/dist/store/key-writes.d.ts +12 -5
- package/dist/store/key-writes.js +30 -4
- package/dist/store/ledger-turn.d.ts +17 -0
- package/dist/store/ledger-turn.js +27 -0
- package/dist/store/markdown.d.ts +3 -7
- package/dist/store/markdown.js +25 -23
- package/dist/store/mirrors.d.ts +7 -13
- package/dist/store/mirrors.js +52 -47
- package/dist/store/object-types.d.ts +189 -0
- package/dist/store/object-types.js +4 -0
- package/dist/store/open.d.ts +6 -4
- package/dist/store/open.js +30 -36
- package/dist/store/planning-fallacy-evidence.d.ts +14 -0
- package/dist/store/planning-fallacy-evidence.js +52 -0
- package/dist/store/port.d.ts +649 -0
- package/dist/store/port.js +17 -0
- package/dist/{predictions/store.d.ts → store/predictions.d.ts} +25 -52
- package/dist/{predictions/store.js → store/predictions.js} +88 -184
- package/dist/{quality-repair.js → store/quality-repair.js} +27 -57
- package/dist/{quarantine.d.ts → store/quarantine.d.ts} +8 -8
- package/dist/{quarantine.js → store/quarantine.js} +64 -22
- package/dist/store/raw-archive.d.ts +14 -0
- package/dist/{raw-archive.js → store/raw-archive.js} +20 -31
- package/dist/store/recall-scope.d.ts +78 -0
- package/dist/{recall-scope.js → store/recall-scope.js} +23 -84
- package/dist/{recall-trace.d.ts → store/recall-trace.d.ts} +13 -81
- package/dist/{recall-trace.js → store/recall-trace.js} +41 -122
- package/dist/store/rejected-values.d.ts +55 -0
- package/dist/store/rejected-values.js +150 -0
- package/dist/store/rejection.d.ts +54 -0
- package/dist/{rejection.js → store/rejection.js} +16 -67
- package/dist/store/report-reads.d.ts +6 -0
- package/dist/store/report-reads.js +29 -0
- package/dist/store/rows.d.ts +11 -22
- package/dist/store/rows.js +52 -43
- package/dist/store/rule-sql.d.ts +5 -0
- package/dist/store/rule-sql.js +37 -0
- package/dist/store/search-rows.d.ts +22 -42
- package/dist/store/search-rows.js +55 -78
- package/dist/store/sessions.d.ts +23 -49
- package/dist/store/sessions.js +96 -118
- package/dist/store/sqlite/commit-watch.d.ts +4 -0
- package/dist/store/sqlite/commit-watch.js +29 -0
- package/dist/store/sqlite/connector-events-group.d.ts +5 -0
- package/dist/store/sqlite/connector-events-group.js +50 -0
- package/dist/store/sqlite/connector-writes-group.d.ts +6 -0
- package/dist/store/sqlite/connector-writes-group.js +65 -0
- package/dist/store/sqlite/dag-reads-group.d.ts +3 -0
- package/dist/store/sqlite/dag-reads-group.js +45 -0
- package/dist/store/sqlite/entry-writes-group.d.ts +18 -0
- package/dist/store/{entry-writes-group.js → sqlite/entry-writes-group.js} +73 -60
- package/dist/store/sqlite/error-codec.d.ts +17 -0
- package/dist/store/sqlite/error-codec.js +61 -0
- package/dist/store/sqlite/executor-counts.d.ts +10 -0
- package/dist/store/sqlite/executor-counts.js +11 -0
- package/dist/store/sqlite/executor.d.ts +29 -0
- package/dist/store/sqlite/executor.js +287 -0
- package/dist/store/sqlite/graph-reads-group.d.ts +5 -0
- package/dist/store/sqlite/graph-reads-group.js +18 -0
- package/dist/store/sqlite/local.d.ts +21 -0
- package/dist/store/sqlite/local.js +39 -0
- package/dist/store/sqlite/object-rows.d.ts +102 -0
- package/dist/store/sqlite/object-rows.js +221 -0
- package/dist/store/sqlite/objects-group.d.ts +20 -0
- package/dist/store/sqlite/objects-group.js +316 -0
- package/dist/store/sqlite/predictions-group.d.ts +5 -0
- package/dist/store/sqlite/predictions-group.js +28 -0
- package/dist/store/sqlite/quarantine-group.d.ts +5 -0
- package/dist/store/sqlite/quarantine-group.js +38 -0
- package/dist/store/sqlite/store.d.ts +23 -0
- package/dist/store/sqlite/store.js +294 -0
- package/dist/store/sqlite/vector-pack.d.ts +18 -0
- package/dist/store/sqlite/vector-pack.js +46 -0
- package/dist/store/sqlite/vector-reads-group.d.ts +3 -0
- package/dist/store/sqlite/vector-reads-group.js +23 -0
- package/dist/store/sqlite/worker-entry.d.ts +2 -0
- package/dist/store/sqlite/worker-entry.js +8 -0
- package/dist/store/sqlite/worker-jobs.d.ts +5 -0
- package/dist/store/sqlite/worker-jobs.js +116 -0
- package/dist/store/sqlite/worker-ops.d.ts +135 -0
- package/dist/store/sqlite/worker-ops.js +93 -0
- package/dist/store/sqlite/worker-store.d.ts +8 -0
- package/dist/store/sqlite/worker-store.js +79 -0
- package/dist/store/summaries.d.ts +11 -72
- package/dist/store/summaries.js +47 -186
- package/dist/{summary-dirty.d.ts → store/summary-dirty.d.ts} +1 -1
- package/dist/{summary-dirty.js → store/summary-dirty.js} +1 -1
- package/dist/store/tenant-lookup.d.ts +6 -1
- package/dist/store/tenant-lookup.js +7 -0
- package/dist/store/tenant.d.ts +11 -0
- package/dist/store/tenant.js +28 -0
- package/dist/store/token-ledger-rows.d.ts +61 -0
- package/dist/store/token-ledger-rows.js +68 -0
- package/dist/{token-ledger.d.ts → store/token-ledger.d.ts} +14 -51
- package/dist/{token-ledger.js → store/token-ledger.js} +51 -129
- package/dist/store/tombstone-checks.d.ts +12 -0
- package/dist/store/tombstone-checks.js +31 -0
- package/dist/store/usage-reports.d.ts +7 -0
- package/dist/store/usage-reports.js +18 -0
- package/dist/store/vector-index.d.ts +46 -0
- package/dist/store/vector-index.js +170 -0
- package/dist/{working-memory.d.ts → store/working-memory.d.ts} +11 -26
- package/dist/store/working-memory.js +118 -0
- package/dist/{yaml.d.ts → store/yaml.d.ts} +1 -5
- package/dist/{yaml.js → store/yaml.js} +2 -6
- package/dist/support-bundle.d.ts +1 -1
- package/dist/support-bundle.js +19 -37
- package/dist/{gated-write.d.ts → trust/gated-write.d.ts} +2 -2
- package/dist/{gated-write.js → trust/gated-write.js} +6 -6
- package/dist/trust/quarantine.d.ts +4 -0
- package/dist/trust/quarantine.js +8 -0
- package/dist/trust/reject-flow.d.ts +23 -0
- package/dist/trust/reject-flow.js +65 -0
- package/dist/util/anthropic-messages.d.ts +31 -0
- package/dist/util/anthropic-messages.js +58 -0
- package/dist/util/atomic-write.d.ts +4 -0
- package/dist/util/atomic-write.js +138 -0
- package/dist/util/capped-json.d.ts +6 -0
- package/dist/util/capped-json.js +46 -0
- package/dist/util/crash-handlers.d.ts +12 -0
- package/dist/util/crash-handlers.js +72 -0
- package/dist/{env.d.ts → util/env.d.ts} +27 -7
- package/dist/{env.js → util/env.js} +33 -8
- package/dist/{home-path.d.ts → util/home-path.d.ts} +2 -1
- package/dist/util/home-path.js +69 -0
- package/dist/{http-retry.d.ts → util/http-retry.d.ts} +8 -2
- package/dist/util/http-retry.js +103 -0
- package/dist/{http-util.d.ts → util/http-util.d.ts} +14 -3
- package/dist/{http-util.js → util/http-util.js} +31 -11
- package/dist/util/json.d.ts +17 -0
- package/dist/util/json.js +25 -0
- package/dist/{log.d.ts → util/log.d.ts} +7 -3
- package/dist/{log.js → util/log.js} +36 -11
- package/dist/util/real-path.d.ts +3 -0
- package/dist/util/real-path.js +15 -0
- package/dist/util/request-scope.d.ts +28 -0
- package/dist/util/request-scope.js +48 -0
- package/dist/{same-text.d.ts → util/same-text.d.ts} +1 -1
- package/dist/{secret-detect.d.ts → util/secret-detect.d.ts} +5 -30
- package/dist/{secret-detect.js → util/secret-detect.js} +17 -42
- package/dist/util/stored-json.d.ts +9 -0
- package/dist/util/stored-json.js +8 -0
- package/dist/util/time.d.ts +2 -0
- package/dist/util/time.js +3 -0
- package/dist/util/token-text.d.ts +15 -0
- package/dist/util/token-text.js +20 -0
- package/dist/{transcript-tail.d.ts → util/transcript-tail.d.ts} +2 -0
- package/dist/util/transcript-tail.js +49 -0
- package/dist/util/version.d.ts +11 -0
- package/dist/util/version.js +26 -0
- package/extensions/openclaw-plugin/index.ts +2 -6
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -2
- package/dist/ablation.d.ts +0 -102
- package/dist/ablation.js +0 -136
- package/dist/api.d.ts +0 -26
- package/dist/api.js +0 -29
- package/dist/audit-prune.d.ts +0 -62
- package/dist/audit-prune.js +0 -107
- package/dist/autolearn.d.ts +0 -56
- package/dist/client.d.ts +0 -48
- package/dist/compare.d.ts +0 -86
- package/dist/compare.js +0 -117
- package/dist/connectors/github/cli-impl.d.ts +0 -25
- package/dist/connectors/github/cli-impl.js +0 -227
- package/dist/connectors/github/idempotency.d.ts +0 -19
- package/dist/connectors/github/idempotency.js +0 -27
- package/dist/connectors/slack/idempotency.d.ts +0 -17
- package/dist/connectors/slack/idempotency.js +0 -31
- package/dist/correction-latency.d.ts +0 -36
- package/dist/customer-notes.d.ts +0 -96
- package/dist/customer-notes.js +0 -336
- package/dist/db.d.ts +0 -9
- package/dist/db.js +0 -8
- package/dist/decisions.d.ts +0 -94
- package/dist/decisions.js +0 -326
- package/dist/dedupe.d.ts +0 -75
- package/dist/dedupe.js +0 -169
- package/dist/dormant.d.ts +0 -93
- package/dist/dormant.js +0 -137
- package/dist/embedding-provider.d.ts +0 -77
- package/dist/embeddings.d.ts +0 -101
- package/dist/extract.js +0 -133
- package/dist/forward-claim-detector.d.ts +0 -36
- package/dist/forward-claim-detector.js +0 -112
- package/dist/goals.d.ts +0 -173
- package/dist/goals.js +0 -448
- package/dist/graph/read.d.ts +0 -73
- package/dist/graph/rows.d.ts +0 -45
- package/dist/graph/types.js +0 -11
- package/dist/graph-stream.d.ts +0 -70
- package/dist/graph-view.d.ts +0 -73
- package/dist/graph-view.js +0 -333
- package/dist/half-life-migration.d.ts +0 -63
- package/dist/half-life-migration.js +0 -182
- package/dist/handoff.js +0 -68
- package/dist/home-path.js +0 -24
- package/dist/http-retry.js +0 -51
- package/dist/incidents.d.ts +0 -103
- package/dist/incidents.js +0 -349
- package/dist/instruction-detect.js +0 -27
- package/dist/json.d.ts +0 -7
- package/dist/json.js +0 -11
- package/dist/ledger-db.d.ts +0 -10
- package/dist/ledger-db.js +0 -42
- package/dist/memory-value-weights.d.ts +0 -19
- package/dist/memory-value.d.ts +0 -113
- package/dist/memory-value.js +0 -250
- package/dist/memory.d.ts +0 -294
- package/dist/memory.js +0 -522
- package/dist/owner-validation.d.ts +0 -42
- package/dist/owner-validation.js +0 -56
- package/dist/path-context.d.ts +0 -24
- package/dist/physics-state.d.ts +0 -39
- package/dist/policies.d.ts +0 -151
- package/dist/policies.js +0 -434
- package/dist/processes.d.ts +0 -108
- package/dist/processes.js +0 -371
- package/dist/project-briefs.d.ts +0 -128
- package/dist/project-briefs.js +0 -523
- package/dist/provenance-coverage.d.ts +0 -18
- package/dist/rate-limit.d.ts +0 -34
- package/dist/raw-archive-mirror-cleanup.d.ts +0 -20
- package/dist/raw-archive.d.ts +0 -24
- package/dist/recall-history.d.ts +0 -131
- package/dist/recall-history.js +0 -227
- package/dist/recall-scope.d.ts +0 -138
- package/dist/refine-llm.d.ts +0 -61
- package/dist/refine-llm.js +0 -167
- package/dist/reject-flow.d.ts +0 -69
- package/dist/reject-flow.js +0 -260
- package/dist/rejection.d.ts +0 -100
- package/dist/replay.d.ts +0 -41
- package/dist/replay.js +0 -122
- package/dist/rrf.d.ts +0 -43
- package/dist/rrf.js +0 -61
- package/dist/scope.d.ts +0 -14
- package/dist/server-detect.d.ts +0 -72
- package/dist/server-detect.js +0 -222
- package/dist/session-owners.d.ts +0 -7
- package/dist/session-owners.js +0 -54
- package/dist/shared.d.ts +0 -186
- package/dist/shared.js +0 -540
- package/dist/skills.d.ts +0 -101
- package/dist/skills.js +0 -367
- package/dist/store/entry-writes-group.d.ts +0 -9
- package/dist/store/vector-writes.d.ts +0 -6
- package/dist/store/vector-writes.js +0 -59
- package/dist/store-port.d.ts +0 -262
- package/dist/store-port.js +0 -178
- package/dist/tenant.d.ts +0 -25
- package/dist/tenant.js +0 -43
- package/dist/trace.d.ts +0 -34
- package/dist/transcript-tail.js +0 -48
- package/dist/version.d.ts +0 -26
- package/dist/version.js +0 -41
- package/dist/working-memory.js +0 -154
- /package/dist/{context-auto.d.ts → api/context-auto.d.ts} +0 -0
- /package/dist/{instruction-detect.d.ts → api/instruction-detect.d.ts} +0 -0
- /package/dist/{codex-patch.d.ts → capture/codex-patch.d.ts} +0 -0
- /package/dist/{compaction-items.d.ts → capture/compaction-items.d.ts} +0 -0
- /package/dist/{share-scrub.d.ts → capture/share-scrub.d.ts} +0 -0
- /package/dist/{overlap-index.d.ts → consolidate/overlap-index.d.ts} +0 -0
- /package/dist/{overlap-index.js → consolidate/overlap-index.js} +0 -0
- /package/dist/{api-errors.d.ts → core/api-errors.d.ts} +0 -0
- /package/dist/{api-errors.js → core/api-errors.js} +0 -0
- /package/dist/{memory-quality.d.ts → core/memory-quality.d.ts} +0 -0
- /package/dist/{project-remote.d.ts → core/project-remote.d.ts} +0 -0
- /package/dist/{prompt-recall.d.ts → core/prompt-recall.d.ts} +0 -0
- /package/dist/{dashboard-params.d.ts → dashboard/dashboard-params.d.ts} +0 -0
- /package/dist/{dashboard-params.js → dashboard/dashboard-params.js} +0 -0
- /package/dist/{dashboard-types.js → dashboard/dashboard-types.js} +0 -0
- /package/dist/{quality-repair.d.ts → store/quality-repair.d.ts} +0 -0
- /package/dist/{escape.d.ts → util/escape.d.ts} +0 -0
- /package/dist/{escape.js → util/escape.js} +0 -0
- /package/dist/{keyset.d.ts → util/keyset.d.ts} +0 -0
- /package/dist/{keyset.js → util/keyset.js} +0 -0
- /package/dist/{same-text.js → util/same-text.js} +0 -0
- /package/dist/{db → util}/sqlite-blocked.d.ts +0 -0
- /package/dist/{db → util}/sqlite-blocked.js +0 -0
- /package/dist/{tokenize.d.ts → util/tokenize.d.ts} +0 -0
- /package/dist/{tokenize.js → util/tokenize.js} +0 -0
- /package/dist/{write-budget.d.ts → util/write-budget.d.ts} +0 -0
- /package/dist/{write-budget.js → util/write-budget.js} +0 -0
package/dist/memory-value.js
DELETED
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Learned memory-value scorer, wired into the sleep decay pass as a
|
|
3
|
-
* rescue-only veto.
|
|
4
|
-
*
|
|
5
|
-
* computeMvFeatures mirrors benchmarks/memory-value/extract.mjs's
|
|
6
|
-
* computeFeatures for the 8 live dims the fitter optimized over
|
|
7
|
-
* (FIT_DIMS) — the only dims MEMORY_VALUE_WEIGHTS carries a weight for.
|
|
8
|
-
* Any future edit to either side must keep them byte-equivalent; the parity
|
|
9
|
-
* test in tests/memory-value-wiring.test.ts enforces this.
|
|
10
|
-
*
|
|
11
|
-
* scoreEntries mirrors benchmarks/memory-value/evaluate.mjs's per-store
|
|
12
|
-
* min-max normalization + weighted scorer (no additional orientation
|
|
13
|
-
* multiply — the frozen weights already encode sign/orientation).
|
|
14
|
-
*
|
|
15
|
-
* rescueSet implements rescue-only semantics: a condemned entry is
|
|
16
|
-
* rescued iff its learned score ranks in the top 30% (RESCUE_BUDGET, the
|
|
17
|
-
* measured keep-budget operating point) of its own tenant's non-pinned
|
|
18
|
-
* candidate set. Deletes(flag-on) subset Deletes(flag-off) by construction — this
|
|
19
|
-
* function can only ever shrink the condemned set, never grow it.
|
|
20
|
-
*/
|
|
21
|
-
import { calculateStrength } from './memory.js';
|
|
22
|
-
import { compareEntryIdentity } from './compare.js';
|
|
23
|
-
import { MEMORY_VALUE_WEIGHTS, SOURCE_ARTIFACT_SHA256 } from './memory-value-weights.js';
|
|
24
|
-
/** The 8 live feature dims (FIT_DIMS) — canonical order for iteration. */
|
|
25
|
-
export const MV_FEATURE_NAMES = [
|
|
26
|
-
'age_days',
|
|
27
|
-
'half_life_days',
|
|
28
|
-
'strength',
|
|
29
|
-
'retrieval_count',
|
|
30
|
-
'outcome_positive',
|
|
31
|
-
'outcome_negative',
|
|
32
|
-
'outcome_ratio',
|
|
33
|
-
'content_length',
|
|
34
|
-
];
|
|
35
|
-
/** The keep-budget operating point (the only point with measured
|
|
36
|
-
* evidence): a code constant tied to that evidence, not user-tunable. */
|
|
37
|
-
const RESCUE_BUDGET = 0.3;
|
|
38
|
-
/**
|
|
39
|
-
* Small-tenant degeneracy: below this per-tenant non-pinned candidate-set
|
|
40
|
-
* size, a rank statistic is noise (the measured evidence says nothing about
|
|
41
|
-
* tiny scale), and the floor prevents immortal-entry
|
|
42
|
-
* convergence: keepN=ceil(0.3*N) guarantees >=1 rescue at N=1, so without a
|
|
43
|
-
* floor a condemned-only 1-entry tenant would be rescued every single sleep
|
|
44
|
-
* forever. A condemned-only tenant below the floor instead drains normally
|
|
45
|
-
* as entries are deleted: the surviving rescued subset only ever shrinks
|
|
46
|
-
* toward 0, never regrows past 10 to regain eligibility on its own. Code
|
|
47
|
-
* constant tied to that reasoning, not user-tunable (same posture as
|
|
48
|
-
* RESCUE_BUDGET).
|
|
49
|
-
*/
|
|
50
|
-
const MIN_RESCUE_GROUP = 10;
|
|
51
|
-
/**
|
|
52
|
-
* Blind v1 feature dict for one MemoryEntry, restricted to the 8 dims the
|
|
53
|
-
* frozen weights carry (mirrors extract.mjs's computeFeatures).
|
|
54
|
-
*
|
|
55
|
-
* CRITICAL: `strength` is CLOCK-BASIS `calculateStrength(entry, now)` with
|
|
56
|
-
* NO DecayOptions — that is how the frozen weights' training features were
|
|
57
|
-
* computed (extract.mjs never passes decayOpts). Passing the production
|
|
58
|
-
* decay basis (config.decayBasis via consolidate.ts's decayOpts) into this
|
|
59
|
-
* feature would silently break parity with the frozen weight vector. This
|
|
60
|
-
* is an intentional divergence from the condemnation TRIGGER in
|
|
61
|
-
* consolidate.ts, which keeps using decayOpts as today — only the rescue
|
|
62
|
-
* FEATURE is clock-basis.
|
|
63
|
-
*/
|
|
64
|
-
export function computeMvFeatures(entry, now) {
|
|
65
|
-
const ageDays = (now.getTime() - Date.parse(entry.created)) / (1000 * 60 * 60 * 24);
|
|
66
|
-
const pos = entry.outcome_positive ?? 0;
|
|
67
|
-
const neg = entry.outcome_negative ?? 0;
|
|
68
|
-
return {
|
|
69
|
-
age_days: ageDays,
|
|
70
|
-
half_life_days: entry.half_life_days,
|
|
71
|
-
strength: calculateStrength(entry, now), // clock-basis, never decayOpts — see doc comment above
|
|
72
|
-
retrieval_count: entry.retrieval_count,
|
|
73
|
-
outcome_positive: pos,
|
|
74
|
-
outcome_negative: neg,
|
|
75
|
-
outcome_ratio: (pos - neg) / (pos + neg + 1), // same formula as extract.mjs / calculateRewardFactor's ratio term
|
|
76
|
-
content_length: entry.content.length,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Throws if the weight constant is malformed: fewer/extra dims, a
|
|
81
|
-
* non-finite weight value, or a missing source digest. Flag-on + a broken
|
|
82
|
-
* constant must THROW, never silently behave as flag-off.
|
|
83
|
-
*
|
|
84
|
-
* Parameterized (defaults to the real frozen singleton) so the throw
|
|
85
|
-
* conditions are directly unit-testable without mutating the frozen
|
|
86
|
-
* MEMORY_VALUE_WEIGHTS export — mirrors fit.mjs's verifyFrozenWeights
|
|
87
|
-
* (see tests/memory-value-fit.test.ts's `describe('verifyFrozenWeights')`).
|
|
88
|
-
*/
|
|
89
|
-
function isFiniteWeightValue(value) {
|
|
90
|
-
return typeof value === 'number' && Number.isFinite(value);
|
|
91
|
-
}
|
|
92
|
-
function isNonEmptyDigestString(value) {
|
|
93
|
-
return typeof value === 'string' && value.length > 0;
|
|
94
|
-
}
|
|
95
|
-
export function validateWeights(weights = MEMORY_VALUE_WEIGHTS, digest = SOURCE_ARTIFACT_SHA256) {
|
|
96
|
-
for (const key of MV_FEATURE_NAMES) {
|
|
97
|
-
const v = weights[key];
|
|
98
|
-
if (!isFiniteWeightValue(v)) {
|
|
99
|
-
throw new Error(`memory-value: weights constant is malformed — "${key}" is not a finite number ` +
|
|
100
|
-
`(src/memory-value-weights.ts)`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
if (!isNonEmptyDigestString(digest)) {
|
|
104
|
-
throw new Error('memory-value: weights constant is malformed — SOURCE_ARTIFACT_SHA256 digest missing (src/memory-value-weights.ts)');
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Min-max normalize each of the 8 features over the given entry set
|
|
109
|
-
* (constant feature -> 0, matching evaluate.mjs), then score = dot(weights,
|
|
110
|
-
* normalized). The normalization context is exactly the entries passed in —
|
|
111
|
-
* callers control the bounded scope (per-tenant, non-pinned).
|
|
112
|
-
*
|
|
113
|
-
* `weights` defaults to the real frozen singleton; parameterized (like
|
|
114
|
-
* validateWeights) so callers/tests can score against an explicit vector
|
|
115
|
-
* without touching the module singleton.
|
|
116
|
-
*
|
|
117
|
-
* Non-finite features: Date.parse on a malformed `created`
|
|
118
|
-
* string yields NaN, and NaN would silently corrupt every OTHER entry's
|
|
119
|
-
* min-max in the same group. An entry with ANY non-finite computed feature
|
|
120
|
-
* is excluded from the normalization context entirely (its raw values never
|
|
121
|
-
* touch min/max) and always scores -Infinity — the lowest possible score, so
|
|
122
|
-
* it sorts to the bottom of its tenant deterministically and (via rescueSet's
|
|
123
|
-
* explicit finite-score guard below) can never be rescued. Conservative
|
|
124
|
-
* direction: deletes(flag-on) subset deletes(flag-off) still holds.
|
|
125
|
-
*/
|
|
126
|
-
export function scoreEntries(entries, now, weights = MEMORY_VALUE_WEIGHTS) {
|
|
127
|
-
const raw = new Map();
|
|
128
|
-
for (const e of entries)
|
|
129
|
-
raw.set(e.id, computeMvFeatures(e, now));
|
|
130
|
-
const nonFiniteIds = new Set();
|
|
131
|
-
for (const e of entries) {
|
|
132
|
-
const nf = raw.get(e.id);
|
|
133
|
-
if (MV_FEATURE_NAMES.some((f) => !Number.isFinite(nf[f])))
|
|
134
|
-
nonFiniteIds.add(e.id);
|
|
135
|
-
}
|
|
136
|
-
const normContextEntries = entries.filter((e) => !nonFiniteIds.has(e.id));
|
|
137
|
-
const minMax = new Map();
|
|
138
|
-
for (const f of MV_FEATURE_NAMES) {
|
|
139
|
-
let min = Infinity;
|
|
140
|
-
let max = -Infinity;
|
|
141
|
-
for (const e of normContextEntries) {
|
|
142
|
-
const v = raw.get(e.id)[f];
|
|
143
|
-
if (v < min)
|
|
144
|
-
min = v;
|
|
145
|
-
if (v > max)
|
|
146
|
-
max = v;
|
|
147
|
-
}
|
|
148
|
-
minMax.set(f, { min, max });
|
|
149
|
-
}
|
|
150
|
-
const norm = (f, v) => {
|
|
151
|
-
const { min, max } = minMax.get(f);
|
|
152
|
-
return max === min ? 0 : (v - min) / (max - min);
|
|
153
|
-
};
|
|
154
|
-
const scores = new Map();
|
|
155
|
-
for (const e of entries) {
|
|
156
|
-
if (nonFiniteIds.has(e.id)) {
|
|
157
|
-
scores.set(e.id, -Infinity);
|
|
158
|
-
continue;
|
|
159
|
-
}
|
|
160
|
-
const nf = raw.get(e.id);
|
|
161
|
-
let sum = 0;
|
|
162
|
-
for (const f of MV_FEATURE_NAMES)
|
|
163
|
-
sum += weights[f] * norm(f, nf[f]);
|
|
164
|
-
scores.set(e.id, sum);
|
|
165
|
-
}
|
|
166
|
-
return scores;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Groups non-pinned entries by tenantId, scores + ranks each tenant's
|
|
170
|
-
* group independently, and returns per-entry rank context for every
|
|
171
|
-
* non-pinned entry (not just condemned ones) — the shared basis for both
|
|
172
|
-
* rescueSet's rescue decision and consolidate.ts's audit-row rank context,
|
|
173
|
-
* so the two never compute the ranking differently.
|
|
174
|
-
*
|
|
175
|
-
* `weights`/`digest` default to the real frozen singleton — parameterized
|
|
176
|
-
* (like validateWeights/scoreEntries) purely for direct unit-testability of
|
|
177
|
-
* the fail-loud path, never overridden by production callers.
|
|
178
|
-
*/
|
|
179
|
-
export function rankNonPinnedByTenant(entries, now, weights = MEMORY_VALUE_WEIGHTS, digest = SOURCE_ARTIFACT_SHA256) {
|
|
180
|
-
validateWeights(weights, digest);
|
|
181
|
-
const byTenant = new Map();
|
|
182
|
-
for (const e of entries) {
|
|
183
|
-
if (e.pinned)
|
|
184
|
-
continue; // pinned entries never compete for rescue (never condemned)
|
|
185
|
-
// Default an undefined tenantId as dag.ts:341 does: a raw/legacy row can carry one at runtime,
|
|
186
|
-
// and keying it "undefined" would split it into its own singleton tenant.
|
|
187
|
-
const tenantId = e.tenantId ?? 'default';
|
|
188
|
-
const list = byTenant.get(tenantId);
|
|
189
|
-
if (list)
|
|
190
|
-
list.push(e);
|
|
191
|
-
else
|
|
192
|
-
byTenant.set(tenantId, [e]);
|
|
193
|
-
}
|
|
194
|
-
const result = new Map();
|
|
195
|
-
for (const [tenantId, group] of byTenant) {
|
|
196
|
-
const scores = scoreEntries(group, now, weights);
|
|
197
|
-
// score DESC, then compareEntryIdentity, the shared tie-break of every score-primary sort (src/compare.ts).
|
|
198
|
-
// `-Infinity - -Infinity` is NaN, which Array.sort leaves insertion-order-dependent, so NaN ties too.
|
|
199
|
-
const sorted = [...group].sort((a, b) => {
|
|
200
|
-
const diff = scores.get(b.id) - scores.get(a.id);
|
|
201
|
-
return diff === 0 || Number.isNaN(diff) ? compareEntryIdentity(a, b) : diff;
|
|
202
|
-
});
|
|
203
|
-
// Tenants smaller than MIN_RESCUE_GROUP never rescue (keepN 0); see that constant's doc comment.
|
|
204
|
-
const keepN = sorted.length < MIN_RESCUE_GROUP
|
|
205
|
-
? 0
|
|
206
|
-
: Math.min(sorted.length, Math.ceil(RESCUE_BUDGET * sorted.length));
|
|
207
|
-
sorted.forEach((e, i) => {
|
|
208
|
-
result.set(e.id, {
|
|
209
|
-
tenantId,
|
|
210
|
-
score: scores.get(e.id),
|
|
211
|
-
rank: i + 1,
|
|
212
|
-
totalNonPinned: sorted.length,
|
|
213
|
-
keepN,
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
return result;
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Rescue decision: a condemned entry is rescued iff it ranks in the top
|
|
221
|
-
* 30% of its tenant's non-pinned candidate set by learned score. Returns the
|
|
222
|
-
* subset of condemnedIds that are rescued — the caller filters commits
|
|
223
|
-
* (rescued -> survivors) and threads the same set into detectConflicts.
|
|
224
|
-
*
|
|
225
|
-
* `weights`/`digest` default to the real frozen singleton; production
|
|
226
|
-
* callers (consolidate.ts) never pass overrides — the params exist purely so
|
|
227
|
-
* "flag on + a broken constant throws" is directly testable end-to-end
|
|
228
|
-
* through this function without mutating the frozen module singleton.
|
|
229
|
-
*
|
|
230
|
-
* `precomputedRanks`: when the caller has already
|
|
231
|
-
* computed the per-tenant ranking (e.g. consolidate.ts needs it separately
|
|
232
|
-
* for detail/audit rank context), pass it here to skip the internal
|
|
233
|
-
* rankNonPinnedByTenant call — the whole-store ranking pass then runs
|
|
234
|
-
* exactly once per sleep instead of twice. Omitted (the default), rescueSet
|
|
235
|
-
* computes it internally as before — existing callers/tests are unaffected.
|
|
236
|
-
*/
|
|
237
|
-
export function rescueSet(entries, condemnedIds, now, weights = MEMORY_VALUE_WEIGHTS, digest = SOURCE_ARTIFACT_SHA256, precomputedRanks) {
|
|
238
|
-
validateWeights(weights, digest); // fail loud before any rescue computation
|
|
239
|
-
const ranked = precomputedRanks ?? rankNonPinnedByTenant(entries, now, weights, digest);
|
|
240
|
-
const rescued = new Set();
|
|
241
|
-
for (const id of condemnedIds) {
|
|
242
|
-
const info = ranked.get(id);
|
|
243
|
-
// An explicit finite guard, not just -Infinity sorting last: when a whole tenant
|
|
244
|
-
// ties at -Infinity, rank alone could place one inside keepN.
|
|
245
|
-
if (info && info.rank <= info.keepN && Number.isFinite(info.score))
|
|
246
|
-
rescued.add(id);
|
|
247
|
-
}
|
|
248
|
-
return rescued;
|
|
249
|
-
}
|
|
250
|
-
//# sourceMappingURL=memory-value.js.map
|
package/dist/memory.d.ts
DELETED
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core data model for Hippo memory entries.
|
|
3
|
-
* Based on the strength formula from PLAN.md.
|
|
4
|
-
*/
|
|
5
|
-
export declare enum Layer {
|
|
6
|
-
Buffer = "buffer",
|
|
7
|
-
Episodic = "episodic",
|
|
8
|
-
Semantic = "semantic",
|
|
9
|
-
Trace = "trace"
|
|
10
|
-
}
|
|
11
|
-
export type EmotionalValence = 'neutral' | 'positive' | 'negative' | 'critical';
|
|
12
|
-
export type ConfidenceLevel = 'verified' | 'observed' | 'inferred' | 'stale';
|
|
13
|
-
export type TraceOutcome = 'success' | 'failure' | 'partial' | null;
|
|
14
|
-
export type MemoryKind = 'raw' | 'distilled' | 'superseded' | 'archived';
|
|
15
|
-
/**
|
|
16
|
-
* Timestamp invariant.
|
|
17
|
-
*
|
|
18
|
-
* All in-process writes of timestamp fields on `MemoryEntry` (`created`,
|
|
19
|
-
* `last_retrieved`, `valid_from`) and on session-state types (SessionEvent,
|
|
20
|
-
* TaskSnapshot, SessionHandoff, AssembledContextItem.createdAt, etc.) emit
|
|
21
|
-
* canonical `Date.prototype.toISOString()` output: 24 characters, UTC,
|
|
22
|
-
* milliseconds precision, trailing `Z` (e.g. `2026-05-06T09:55:49.123Z`).
|
|
23
|
-
*
|
|
24
|
-
* Caveat — markdown rebuild. `deserializeEntry` / `rebuildIndex` preserve
|
|
25
|
-
* frontmatter timestamp strings as-is. Legacy markdown that recorded a
|
|
26
|
-
* non-canonical offset (e.g. `2026-05-06T05:55:49-04:00`) round-trips
|
|
27
|
-
* through SQLite without normalization, and DAG `earliest_at` / `latest_at`
|
|
28
|
-
* caches are computed from those strings. Importers SHOULD normalize on
|
|
29
|
-
* write; rebuild from drifted markdown is a known limitation.
|
|
30
|
-
*
|
|
31
|
-
* Byte-comparison sort (`<` / `>`) is chronological for any pair of
|
|
32
|
-
* canonical UTC ISO strings. ~50× faster than `localeCompare` with no
|
|
33
|
-
* semantic gain. `assemble` sorts by byte compare; if a future
|
|
34
|
-
* import path admits non-canonical timestamps, that sort and any
|
|
35
|
-
* downstream chronological reasoning will need a normalization pass.
|
|
36
|
-
*/
|
|
37
|
-
export interface MemoryEntry {
|
|
38
|
-
id: string;
|
|
39
|
-
created: string;
|
|
40
|
-
last_retrieved: string;
|
|
41
|
-
retrieval_count: number;
|
|
42
|
-
strength: number;
|
|
43
|
-
half_life_days: number;
|
|
44
|
-
layer: Layer;
|
|
45
|
-
tags: string[];
|
|
46
|
-
emotional_valence: EmotionalValence;
|
|
47
|
-
schema_fit: number;
|
|
48
|
-
source: string;
|
|
49
|
-
outcome_score: number | null;
|
|
50
|
-
outcome_positive: number;
|
|
51
|
-
outcome_negative: number;
|
|
52
|
-
conflicts_with: string[];
|
|
53
|
-
pinned: boolean;
|
|
54
|
-
confidence: ConfidenceLevel;
|
|
55
|
-
content: string;
|
|
56
|
-
parents: string[];
|
|
57
|
-
starred: boolean;
|
|
58
|
-
trace_outcome: TraceOutcome;
|
|
59
|
-
source_session_id: string | null;
|
|
60
|
-
valid_from: string;
|
|
61
|
-
superseded_by: string | null;
|
|
62
|
-
extracted_from: string | null;
|
|
63
|
-
dag_level: number;
|
|
64
|
-
dag_parent_id: string | null;
|
|
65
|
-
descendant_count?: number;
|
|
66
|
-
earliest_at?: string | null;
|
|
67
|
-
latest_at?: string | null;
|
|
68
|
-
/** 1 when this summary row has at least one child invalidated,
|
|
69
|
-
* superseded, forgotten, or archived since it was last rebuilt. Cleared
|
|
70
|
-
* by rebuildDirtySummaries during sleep. Always 0 for non-summary
|
|
71
|
-
* rows (dag_level !== 2). */
|
|
72
|
-
summary_dirty?: 0 | 1;
|
|
73
|
-
/** ISO 8601 timestamp of the last successful rebuild for this
|
|
74
|
-
* summary, or null if never rebuilt. */
|
|
75
|
-
last_rebuilt_at?: string | null;
|
|
76
|
-
/** Monotonically-increasing counter of successful rebuilds for this
|
|
77
|
-
* summary. 0 for initial buildDag write; bumped by each rebuild. */
|
|
78
|
-
rebuild_count?: number;
|
|
79
|
-
/** Reserved: ISO 8601 timestamp the level-3 entity profile
|
|
80
|
-
* was built. Only ever populated on dag_level=3 rows. */
|
|
81
|
-
dag_level_3_built_at?: string | null;
|
|
82
|
-
kind: MemoryKind;
|
|
83
|
-
scope: string | null;
|
|
84
|
-
owner: string | null;
|
|
85
|
-
artifact_ref: string | null;
|
|
86
|
-
tenantId: string;
|
|
87
|
-
/**
|
|
88
|
-
* Memory scope isolation: owning project for ambient-context
|
|
89
|
-
* partitioning. A lowercased project name, '' for user-global (injectable
|
|
90
|
-
* everywhere), or null for no known project (a legacy row, or a shared-store
|
|
91
|
-
* write that named none) - ambient context treats null as other-project (deny).
|
|
92
|
-
* Stamped at write time by store/entry-row.ts stampOriginProject via fallbackOrigin;
|
|
93
|
-
* undefined only on entries not yet written.
|
|
94
|
-
*/
|
|
95
|
-
origin_project?: string | null;
|
|
96
|
-
/**
|
|
97
|
-
* Raw SQLite FTS5 bm25() score from the FTS path of
|
|
98
|
-
* `loadSearchEntries`.
|
|
99
|
-
*
|
|
100
|
-
* Populated ONLY when ALL of the following hold:
|
|
101
|
-
* - `loadSearchEntries` was called with a non-empty query, AND
|
|
102
|
-
* - FTS5 is available (meta `fts5_available = 1`), AND
|
|
103
|
-
* - the FTS join returned at least one row (path 2 of `loadSearchRows`).
|
|
104
|
-
*
|
|
105
|
-
* `undefined` on every other path: empty query, FTS unavailable, LIKE
|
|
106
|
-
* fallback, full-store fallback, `readEntry`, `loadAllEntries`, manual
|
|
107
|
-
* upsert, deserializeEntry from markdown.
|
|
108
|
-
*
|
|
109
|
-
* SCALE: FTS5 bm25() is negative; lower = better match (ascending order).
|
|
110
|
-
* NOT a drop-in for the JS-side BM25 in `src/search.ts` — that is a
|
|
111
|
-
* different scorer (different tokenizer, different params, positive
|
|
112
|
-
* scale). Treat `bm25_score` as provenance/rank metadata only.
|
|
113
|
-
*/
|
|
114
|
-
bm25_score?: number;
|
|
115
|
-
}
|
|
116
|
-
/** Tag on a memory whose named file/symbol/script changed after it was stored. */
|
|
117
|
-
export declare const CHURN_STALE_TAG = "churn-stale";
|
|
118
|
-
/**
|
|
119
|
-
* Test-only helper. Tests that mutate `process.env.HIPPO_LOSS_AVERSION_RATIO`
|
|
120
|
-
* MUST call this in BOTH `beforeEach` AND `afterEach`:
|
|
121
|
-
* - beforeEach: clear any stale cache from a previous test before setting
|
|
122
|
-
* the env var for this test.
|
|
123
|
-
* - afterEach: clear the cache so the next test (which may not set the env
|
|
124
|
-
* var) reads the clean default instead of this test's value.
|
|
125
|
-
* See `tests/emotional-multipliers-j5.test.ts` for the canonical pattern.
|
|
126
|
-
*/
|
|
127
|
-
export declare function _resetLossAversionRatioCacheForTests(): void;
|
|
128
|
-
/**
|
|
129
|
-
* Compute the reward factor from cumulative outcome counts.
|
|
130
|
-
*
|
|
131
|
-
* reward_ratio = (positive - negative) / (positive + negative + 1)
|
|
132
|
-
* reward_factor = 1 + 0.5 * reward_ratio
|
|
133
|
-
*
|
|
134
|
-
* Range: (0.5, 1.5). Neutral (no outcomes) returns 1.0.
|
|
135
|
-
* Modulates effective half-life: memories with consistent positive outcomes
|
|
136
|
-
* decay slower; consistent negative outcomes decay faster.
|
|
137
|
-
*/
|
|
138
|
-
export declare function calculateRewardFactor(entry: Pick<MemoryEntry, 'outcome_positive' | 'outcome_negative'>): number;
|
|
139
|
-
/**
|
|
140
|
-
* Net wrongness: bad outcome marks past good ones, never below zero.
|
|
141
|
-
* Strength halves per unit (capped at 3) and recall stops strengthening
|
|
142
|
-
* the memory, so a correction outranks pinning, error tags and heavy recall.
|
|
143
|
-
*/
|
|
144
|
-
export declare function netWrong(entry: Pick<MemoryEntry, 'outcome_positive' | 'outcome_negative'>): number;
|
|
145
|
-
/**
|
|
146
|
-
* Options for decay basis.
|
|
147
|
-
* - clock: wall-clock time (former default)
|
|
148
|
-
* - session: decay by sleep cycle count (for intermittent agents)
|
|
149
|
-
* - adaptive: auto-scale half-life by session frequency (default)
|
|
150
|
-
*/
|
|
151
|
-
/** What calculateStrength reads, so a caller can score a row without loading its text. */
|
|
152
|
-
export type StrengthInputs = Pick<MemoryEntry, 'pinned' | 'created' | 'last_retrieved' | 'half_life_days' | 'retrieval_count' | 'emotional_valence' | 'outcome_positive' | 'outcome_negative'>;
|
|
153
|
-
export interface DecayOptions {
|
|
154
|
-
decayBasis?: 'clock' | 'session' | 'adaptive';
|
|
155
|
-
/** Average interval between sleep cycles, in days. Used by 'adaptive' and 'session' modes. */
|
|
156
|
-
avgSessionIntervalDays?: number;
|
|
157
|
-
/** Total sleep cycles completed. Used by consolidation tracking. */
|
|
158
|
-
sleepCount?: number;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Calculate current strength at a given time.
|
|
162
|
-
* strength(t) = base_strength * decay * retrieval_boost * emotional_multiplier
|
|
163
|
-
*
|
|
164
|
-
* Decay basis modes:
|
|
165
|
-
* - clock: classic wall-clock decay (daysSince / halfLife)
|
|
166
|
-
* - session: decay by sleep cycles instead of days (sessionsSince / halfLife)
|
|
167
|
-
* - adaptive: wall-clock decay with half-life scaled by session frequency
|
|
168
|
-
*
|
|
169
|
-
* Pinned memories skip time decay; being marked wrong still fades them (netWrong).
|
|
170
|
-
*/
|
|
171
|
-
export declare function calculateStrength(entry: StrengthInputs, now?: Date, options?: DecayOptions): number;
|
|
172
|
-
/** calculateStrength's clock-basis formula as SQL over `memories` columns, flags and multipliers baked in; keep in step.
|
|
173
|
-
* An unparseable date scores NULL here and 0 in JS, so sums agree. */
|
|
174
|
-
export declare function strengthSql(now: Date): string;
|
|
175
|
-
/**
|
|
176
|
-
* Derive half-life based on signals, as per PLAN.md table.
|
|
177
|
-
*/
|
|
178
|
-
export declare function deriveHalfLife(base: number, entry: Partial<MemoryEntry>): number;
|
|
179
|
-
/**
|
|
180
|
-
* Apply outcome feedback to a memory entry.
|
|
181
|
-
*
|
|
182
|
-
* Increments outcome_positive or outcome_negative counters.
|
|
183
|
-
* The reward factor in calculateStrength() uses these counts to
|
|
184
|
-
* continuously modulate the effective half-life:
|
|
185
|
-
* reward_ratio = (pos - neg) / (pos + neg + 1)
|
|
186
|
-
* reward_factor = 1 + 0.5 * reward_ratio // range (0.5, 1.5)
|
|
187
|
-
* effective_hl = half_life_days * reward_factor
|
|
188
|
-
*
|
|
189
|
-
* No fixed half-life delta. Decay rate adjusts proportionally to
|
|
190
|
-
* cumulative reward signal, inspired by R-STDP in spiking networks.
|
|
191
|
-
*/
|
|
192
|
-
export declare function applyOutcome(entry: MemoryEntry, good: boolean): MemoryEntry;
|
|
193
|
-
/** applyOutcome as a served outcome applies it: a good outcome reconfirms the entry, so its churn-stale tag goes. */
|
|
194
|
-
export declare function entryAfterOutcome(entry: MemoryEntry, good: boolean): MemoryEntry;
|
|
195
|
-
/**
|
|
196
|
-
* Generate a random memory ID using crypto.randomUUID().
|
|
197
|
-
*/
|
|
198
|
-
export declare function generateId(prefix?: string): string;
|
|
199
|
-
export interface ConfidenceFacets {
|
|
200
|
-
tier: ConfidenceLevel;
|
|
201
|
-
agedOut: boolean;
|
|
202
|
-
}
|
|
203
|
-
export declare function confidenceFacets(entry: MemoryEntry, now?: Date): ConfidenceFacets;
|
|
204
|
-
export declare function confidenceLabel(entry: MemoryEntry, now?: Date): {
|
|
205
|
-
text: string;
|
|
206
|
-
warn: boolean;
|
|
207
|
-
};
|
|
208
|
-
/**
|
|
209
|
-
* Resolve the effective confidence for a memory entry.
|
|
210
|
-
* If the entry has not been retrieved in 30+ days and is not 'verified',
|
|
211
|
-
* returns 'stale'. Otherwise returns the stored confidence value.
|
|
212
|
-
*/
|
|
213
|
-
export declare function resolveConfidence(entry: MemoryEntry, now?: Date): ConfidenceLevel;
|
|
214
|
-
/**
|
|
215
|
-
* Base half-life for a new memory, in days, before `deriveHalfLife`'s
|
|
216
|
-
* write-time multipliers. 365 because 7 days lost the current fact far more
|
|
217
|
-
* often, and 730 days or no decay did no better. `hippo sleep` moves memories still
|
|
218
|
-
* on an older base (src/half-life-migration.ts).
|
|
219
|
-
*/
|
|
220
|
-
export declare const DEFAULT_HALF_LIFE_DAYS = 365;
|
|
221
|
-
export declare const COMPACTION_MEMORY_TAG = "compaction-memory";
|
|
222
|
-
export declare const COMPACTION_SOURCE_PREFIX = "compaction:";
|
|
223
|
-
/** An imported agent memory (its tool's tag, and a source starting that tool's prefix) is kept for good: the agent's note file is its record. Both, since merge copies source tags onto rows whose source is 'consolidation'. */
|
|
224
|
-
export interface KeepPair {
|
|
225
|
-
readonly tag: string;
|
|
226
|
-
readonly sourcePrefix: string;
|
|
227
|
-
}
|
|
228
|
-
export declare const KEEP_PAIRS: readonly KeepPair[];
|
|
229
|
-
export declare const AUTO_DELETABLE_SQL: string;
|
|
230
|
-
export declare function isKeptForGood(entry: Pick<MemoryEntry, 'tags' | 'source' | 'superseded_by'>): boolean;
|
|
231
|
-
export declare function canAutoDelete(entry: Pick<MemoryEntry, 'pinned' | 'kind' | 'tags' | 'source' | 'superseded_by'>): boolean;
|
|
232
|
-
export interface CreateMemoryOptions {
|
|
233
|
-
layer?: Layer;
|
|
234
|
-
tags?: string[];
|
|
235
|
-
emotional_valence?: EmotionalValence;
|
|
236
|
-
pinned?: boolean;
|
|
237
|
-
schema_fit?: number;
|
|
238
|
-
source?: string;
|
|
239
|
-
confidence?: ConfidenceLevel;
|
|
240
|
-
/** The store's `loadConfig(hippoRoot).defaultHalfLifeDays`; required so no writer falls back to the compiled default by leaving it out. */
|
|
241
|
-
baseHalfLifeDays: number;
|
|
242
|
-
trace_outcome?: TraceOutcome;
|
|
243
|
-
source_session_id?: string | null;
|
|
244
|
-
valid_from?: string;
|
|
245
|
-
extracted_from?: string;
|
|
246
|
-
dag_level?: number;
|
|
247
|
-
dag_parent_id?: string;
|
|
248
|
-
kind?: MemoryKind;
|
|
249
|
-
scope?: string | null;
|
|
250
|
-
owner?: string | null;
|
|
251
|
-
artifact_ref?: string | null;
|
|
252
|
-
tenantId?: string;
|
|
253
|
-
}
|
|
254
|
-
/** Create a new memory entry with defaults. Untyped JavaScript callers that omit the options get the compiled default half-life. */
|
|
255
|
-
export declare function createMemory(content: string, options: CreateMemoryOptions): MemoryEntry;
|
|
256
|
-
/** The row that replaces `old`: a supersede never changes where a memory belongs, so source, scope, session and a stamped origin carry over. */
|
|
257
|
-
export declare function createSuccessor(old: MemoryEntry, content: string, opts: {
|
|
258
|
-
tenantId: string;
|
|
259
|
-
baseHalfLifeDays: number;
|
|
260
|
-
layer?: Layer;
|
|
261
|
-
tags?: string[];
|
|
262
|
-
pinned?: boolean;
|
|
263
|
-
}): MemoryEntry;
|
|
264
|
-
/**
|
|
265
|
-
* Compute how well new content fits existing knowledge patterns.
|
|
266
|
-
* Returns 0..1 where:
|
|
267
|
-
* >0.7 = high fit (consistent with existing knowledge, consolidates faster)
|
|
268
|
-
* 0.3-0.7 = moderate fit
|
|
269
|
-
* <0.3 = novel (doesn't match existing patterns, decays faster if unused)
|
|
270
|
-
*
|
|
271
|
-
* Uses tag overlap (always available) weighted by how common each tag is.
|
|
272
|
-
* Rare shared tags signal stronger schema fit than common ones.
|
|
273
|
-
*/
|
|
274
|
-
export declare function computeSchemaFit(content: string, tags: string[], existingEntries: MemoryEntry[]): number;
|
|
275
|
-
/**
|
|
276
|
-
* Update retrieval metadata on entries that were returned by a search.
|
|
277
|
-
* Returns the mutated copies (caller must persist to disk).
|
|
278
|
-
*
|
|
279
|
-
* EVAL-ONLY ablation (see ablation.ts): with HIPPO_ABLATE_RECALL_BOOST set,
|
|
280
|
-
* this returns the entries UNMUTATED - neutralizing all three strengthening
|
|
281
|
-
* sub-effects (clock reset, retrieval_count, half-life increment) at the
|
|
282
|
-
* single shared write site. The entries (not an empty array) must be
|
|
283
|
-
* returned because callers derive `last_retrieval_ids` from the return
|
|
284
|
-
* value, and a later `hippo outcome --good/--bad` targets those ids - an
|
|
285
|
-
* empty return would silently co-ablate the outcome channel in the
|
|
286
|
-
* strengthen-off arm. PERSISTENCE is gated separately at
|
|
287
|
-
* each persisting caller (CLI recall, api context, MCP recall/context,
|
|
288
|
-
* consolidation replay): writeEntry on identical rows still refreshes
|
|
289
|
-
* updated_at, rewrites mirrors, and marks DAG parents dirty,
|
|
290
|
-
* so those write loops skip under the flag.
|
|
291
|
-
* The default `now` honors HIPPO_FAKE_NOW (simulated-time protocols).
|
|
292
|
-
*/
|
|
293
|
-
export declare function markRetrieved(entries: MemoryEntry[], now?: Date): MemoryEntry[];
|
|
294
|
-
//# sourceMappingURL=memory.d.ts.map
|