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/incidents.js
DELETED
|
@@ -1,349 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Incident first-class object.
|
|
3
|
-
*
|
|
4
|
-
* An incident is a postmortem capsule: a recorded operational event with a
|
|
5
|
-
* lifecycle and optional linked receipts (the memories that are its evidence).
|
|
6
|
-
* The `incidents` table is the source of truth: an incident stays `open`
|
|
7
|
-
* regardless of memory decay. A memory row still mirrors the incident for
|
|
8
|
-
* recall surfaces but is NOT canonical — memory_id is NULLABLE with ON DELETE
|
|
9
|
-
* SET NULL so forget/consolidate/archive gracefully orphans the incident row.
|
|
10
|
-
*
|
|
11
|
-
* Lifecycle: open -> resolved (a resolution was recorded; the incident stays on
|
|
12
|
-
* record with resolution_text + resolved_at) or open|resolved -> closed
|
|
13
|
-
* (retired with closed_at). This is NOT decision's supersede: there is no
|
|
14
|
-
* superseded_by self-FK, no supersede CAS, and no supersede trigger.
|
|
15
|
-
*
|
|
16
|
-
* Tenant scoping: every helper requires tenantId. BEFORE INSERT/UPDATE triggers
|
|
17
|
-
* enforce incidents.tenant_id == the referenced memory's tenant_id. Mirrors the
|
|
18
|
-
* v30 decisions pattern (src/decisions.ts).
|
|
19
|
-
*
|
|
20
|
-
* Dual-write atomicity: `saveIncident` writes the memory + incidents row inside
|
|
21
|
-
* writeEntry's SAVEPOINT 'write_entry' (store.ts) via the afterWrite hook, so a
|
|
22
|
-
* failure in any step rolls all of them back. Pattern matches saveDecision.
|
|
23
|
-
*
|
|
24
|
-
* linked_memory_ids ("linked receipts"): a JSON-encoded array of memory ids on
|
|
25
|
-
* the row, default `[]`. On save, every id must exist in the SAME tenant; a
|
|
26
|
-
* cross-tenant or nonexistent id is rejected (throw) before the insert.
|
|
27
|
-
*/
|
|
28
|
-
import { BadRequestError, ConflictError, NotFoundError } from './api-errors.js';
|
|
29
|
-
import { openHippoDb, closeHippoDb } from './db.js';
|
|
30
|
-
import { writeEntry } from './store/entry-writes.js';
|
|
31
|
-
import { assertTenantId } from './tenant.js';
|
|
32
|
-
import { createMemory, Layer } from './memory.js';
|
|
33
|
-
import { appendAuditEvent } from './audit.js';
|
|
34
|
-
import { objectHalfLifeDays } from './half-life-migration.js';
|
|
35
|
-
import { keysetAfter } from './keyset.js';
|
|
36
|
-
export const VALID_INCIDENT_STATES = new Set([
|
|
37
|
-
'open',
|
|
38
|
-
'resolved',
|
|
39
|
-
'closed',
|
|
40
|
-
]);
|
|
41
|
-
function parseLinkedMemoryIds(raw) {
|
|
42
|
-
try {
|
|
43
|
-
// SAFETY: JSON.parse output is arbitrary; narrowed by Array.isArray plus
|
|
44
|
-
// the per-element string check below before use as string[].
|
|
45
|
-
const parsed = JSON.parse(raw);
|
|
46
|
-
if (Array.isArray(parsed)) {
|
|
47
|
-
return parsed.filter((x) => typeof x === 'string');
|
|
48
|
-
}
|
|
49
|
-
return [];
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
// A malformed list column reads as empty instead of failing the incident read.
|
|
53
|
-
return [];
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function rowToIncident(row) {
|
|
57
|
-
return {
|
|
58
|
-
id: row.id,
|
|
59
|
-
memoryId: row.memory_id,
|
|
60
|
-
tenantId: row.tenant_id,
|
|
61
|
-
incidentText: row.incident_text,
|
|
62
|
-
context: row.context,
|
|
63
|
-
// SAFETY: status is DB-constrained to VALID_INCIDENT_STATES; this module
|
|
64
|
-
// is the only writer and always inserts one of those literal strings.
|
|
65
|
-
status: row.status,
|
|
66
|
-
resolutionText: row.resolution_text,
|
|
67
|
-
resolvedAt: row.resolved_at,
|
|
68
|
-
closedAt: row.closed_at,
|
|
69
|
-
linkedMemoryIds: parseLinkedMemoryIds(row.linked_memory_ids),
|
|
70
|
-
createdAt: row.created_at,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
const INCIDENT_COLS = `
|
|
74
|
-
id, memory_id, tenant_id, incident_text, context, status,
|
|
75
|
-
resolution_text, resolved_at, closed_at, linked_memory_ids, created_at
|
|
76
|
-
`;
|
|
77
|
-
// ---------------------------------------------------------------------------
|
|
78
|
-
// Public API
|
|
79
|
-
// ---------------------------------------------------------------------------
|
|
80
|
-
// Validate every linked receipt BEFORE inserting the row. Each must be a
|
|
81
|
-
// memory in the SAME tenant; a cross-tenant or nonexistent id rejects the
|
|
82
|
-
// whole write rather than recording an unverifiable receipt.
|
|
83
|
-
function validateLinkedMemoryIds(db, tenantId, linkInput) {
|
|
84
|
-
const validated = [];
|
|
85
|
-
for (const linkId of linkInput) {
|
|
86
|
-
// SAFETY: row shape matches the single `id` column named in the SELECT above.
|
|
87
|
-
const exists = db.prepare(`SELECT id FROM memories WHERE id = ? AND tenant_id = ?`).get(linkId, tenantId);
|
|
88
|
-
if (!exists) {
|
|
89
|
-
throw new NotFoundError(`saveIncident: linked memory ${linkId} not found for tenant ${tenantId}`);
|
|
90
|
-
}
|
|
91
|
-
validated.push(linkId);
|
|
92
|
-
}
|
|
93
|
-
return validated;
|
|
94
|
-
}
|
|
95
|
-
/** The afterWrite body: link validation, INSERT, reload, open audit, all in one SAVEPOINT. */
|
|
96
|
-
function writeIncidentRow(db, memoryId, tenantId, opts, actor, now) {
|
|
97
|
-
const validated = validateLinkedMemoryIds(db, tenantId, opts.linkedMemoryIds ?? []);
|
|
98
|
-
const result = db.prepare(`
|
|
99
|
-
INSERT INTO incidents(
|
|
100
|
-
memory_id, tenant_id, incident_text, context,
|
|
101
|
-
status, resolution_text, resolved_at, closed_at, linked_memory_ids, created_at
|
|
102
|
-
) VALUES (?, ?, ?, ?, 'open', NULL, NULL, NULL, ?, ?)
|
|
103
|
-
`).run(memoryId, tenantId, opts.incidentText, opts.context ?? null, JSON.stringify(validated), now);
|
|
104
|
-
const incidentId = Number(result.lastInsertRowid ?? 0);
|
|
105
|
-
// SAFETY: row's shape matches the columns named in INCIDENT_COLS above.
|
|
106
|
-
const row = db.prepare(`SELECT ${INCIDENT_COLS} FROM incidents WHERE id = ?`)
|
|
107
|
-
.get(incidentId);
|
|
108
|
-
if (!row)
|
|
109
|
-
throw new Error('saveIncident: failed to reload saved incident row');
|
|
110
|
-
// GDPR-light metadata: id + flag only, no incident_text.
|
|
111
|
-
appendAuditEvent(db, {
|
|
112
|
-
tenantId,
|
|
113
|
-
actor,
|
|
114
|
-
op: 'incident_open',
|
|
115
|
-
targetId: String(incidentId),
|
|
116
|
-
metadata: {
|
|
117
|
-
incident_id: incidentId,
|
|
118
|
-
has_context: opts.context !== undefined && opts.context !== null && opts.context !== '',
|
|
119
|
-
linked_memory_count: validated.length,
|
|
120
|
-
},
|
|
121
|
-
});
|
|
122
|
-
return row;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Create an incident. Writes the memory mirror + the incidents row atomically
|
|
126
|
-
* inside writeEntry's SAVEPOINT 'write_entry'.
|
|
127
|
-
*
|
|
128
|
-
* The memory mirror: tags ['incident', ...extraTags], source 'incident',
|
|
129
|
-
* confidence 'verified', the half-life objectHalfLifeDays picks, content =
|
|
130
|
-
* "<text>\n\nContext: <context>" when context is given.
|
|
131
|
-
*
|
|
132
|
-
* linked_memory_ids are validated BEFORE insert: each must exist in the SAME
|
|
133
|
-
* tenant. A cross-tenant or nonexistent id throws and rolls back the whole
|
|
134
|
-
* write. The validated ids are stored as JSON.stringify(validated).
|
|
135
|
-
*/
|
|
136
|
-
export function saveIncident(hippoRoot, tenantId, opts, actor = 'cli') {
|
|
137
|
-
assertTenantId('saveIncident', tenantId);
|
|
138
|
-
if (!opts.incidentText)
|
|
139
|
-
throw new BadRequestError('saveIncident: incidentText is required');
|
|
140
|
-
const now = new Date().toISOString();
|
|
141
|
-
const content = opts.context
|
|
142
|
-
? `${opts.incidentText}\n\nContext: ${opts.context}`
|
|
143
|
-
: opts.incidentText;
|
|
144
|
-
const tags = ['incident', ...(opts.extraTags ?? [])];
|
|
145
|
-
const mem = createMemory(content, {
|
|
146
|
-
tags,
|
|
147
|
-
layer: Layer.Semantic,
|
|
148
|
-
confidence: 'verified',
|
|
149
|
-
source: 'incident',
|
|
150
|
-
baseHalfLifeDays: objectHalfLifeDays(hippoRoot),
|
|
151
|
-
tenantId,
|
|
152
|
-
});
|
|
153
|
-
// Populated inside afterWrite so the linked-id validation, the INSERT, and the
|
|
154
|
-
// memory write all share one SAVEPOINT.
|
|
155
|
-
let savedRow;
|
|
156
|
-
writeEntry(hippoRoot, mem, {
|
|
157
|
-
actor,
|
|
158
|
-
afterWrite: (db, memoryId) => {
|
|
159
|
-
savedRow = writeIncidentRow(db, memoryId, tenantId, opts, actor, now);
|
|
160
|
-
},
|
|
161
|
-
});
|
|
162
|
-
if (!savedRow) {
|
|
163
|
-
// Unreachable unless afterWrite threw first; defensive.
|
|
164
|
-
throw new Error('saveIncident: afterWrite did not populate the row');
|
|
165
|
-
}
|
|
166
|
-
return rowToIncident(savedRow);
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Resolve an open incident (open -> resolved). Records resolution_text +
|
|
170
|
-
* resolved_at; the incident stays on record. CAS guard: WHERE status='open';
|
|
171
|
-
* 0 changes distinguishes not-found from not-open so callers surface the right
|
|
172
|
-
* error. Emits incident_resolve.
|
|
173
|
-
*/
|
|
174
|
-
export function resolveIncident(hippoRoot, tenantId, id, resolutionText, actor = 'cli') {
|
|
175
|
-
assertTenantId('resolveIncident', tenantId);
|
|
176
|
-
if (!resolutionText || !resolutionText.trim()) {
|
|
177
|
-
throw new BadRequestError('resolveIncident: resolutionText is required (non-empty)');
|
|
178
|
-
}
|
|
179
|
-
const now = new Date().toISOString();
|
|
180
|
-
const db = openHippoDb(hippoRoot);
|
|
181
|
-
try {
|
|
182
|
-
db.exec('BEGIN IMMEDIATE');
|
|
183
|
-
try {
|
|
184
|
-
const updateResult = db.prepare(`
|
|
185
|
-
UPDATE incidents
|
|
186
|
-
SET status = 'resolved', resolution_text = ?, resolved_at = ?
|
|
187
|
-
WHERE id = ? AND tenant_id = ? AND status = 'open'
|
|
188
|
-
`).run(resolutionText, now, id, tenantId);
|
|
189
|
-
if (updateResult.changes === 0) {
|
|
190
|
-
// SAFETY: row shape matches the single `status` column named in the SELECT above.
|
|
191
|
-
const existing = db.prepare(`SELECT status FROM incidents WHERE id = ? AND tenant_id = ?`).get(id, tenantId);
|
|
192
|
-
if (!existing) {
|
|
193
|
-
throw new NotFoundError(`resolveIncident: incident ${id} not found for tenant ${tenantId}`);
|
|
194
|
-
}
|
|
195
|
-
throw new ConflictError(`resolveIncident: incident ${id} is not open (status='${existing.status}'); only open incidents can be resolved.`);
|
|
196
|
-
}
|
|
197
|
-
// SAFETY: row's shape matches the columns named in INCIDENT_COLS above.
|
|
198
|
-
const row = db.prepare(`SELECT ${INCIDENT_COLS} FROM incidents WHERE id = ? AND tenant_id = ?`)
|
|
199
|
-
.get(id, tenantId);
|
|
200
|
-
if (!row)
|
|
201
|
-
throw new NotFoundError(`resolveIncident: incident ${id} not found after UPDATE`);
|
|
202
|
-
appendAuditEvent(db, {
|
|
203
|
-
tenantId,
|
|
204
|
-
actor,
|
|
205
|
-
op: 'incident_resolve',
|
|
206
|
-
targetId: String(id),
|
|
207
|
-
metadata: { incident_id: id },
|
|
208
|
-
});
|
|
209
|
-
db.exec('COMMIT');
|
|
210
|
-
return rowToIncident(row);
|
|
211
|
-
}
|
|
212
|
-
catch (e) {
|
|
213
|
-
try {
|
|
214
|
-
db.exec('ROLLBACK');
|
|
215
|
-
}
|
|
216
|
-
catch {
|
|
217
|
-
// Ignore rollback failures — the throw below is what matters.
|
|
218
|
-
}
|
|
219
|
-
throw e;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
finally {
|
|
223
|
-
closeHippoDb(db);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Close (retire) an incident from open or resolved (open|resolved -> closed).
|
|
228
|
-
* Updates closed_at only; the memory mirror is not mutated. CAS guard: WHERE
|
|
229
|
-
* status IN ('open','resolved'); 0 changes distinguishes not-found from
|
|
230
|
-
* wrong-state. Emits incident_close.
|
|
231
|
-
*/
|
|
232
|
-
export function closeIncident(hippoRoot, tenantId, id, actor = 'cli') {
|
|
233
|
-
assertTenantId('closeIncident', tenantId);
|
|
234
|
-
const now = new Date().toISOString();
|
|
235
|
-
const db = openHippoDb(hippoRoot);
|
|
236
|
-
try {
|
|
237
|
-
db.exec('BEGIN IMMEDIATE');
|
|
238
|
-
try {
|
|
239
|
-
const updateResult = db.prepare(`
|
|
240
|
-
UPDATE incidents
|
|
241
|
-
SET status = 'closed', closed_at = ?
|
|
242
|
-
WHERE id = ? AND tenant_id = ? AND status IN ('open', 'resolved')
|
|
243
|
-
`).run(now, id, tenantId);
|
|
244
|
-
if (updateResult.changes === 0) {
|
|
245
|
-
// SAFETY: row shape matches the single `status` column named in the SELECT above.
|
|
246
|
-
const existing = db.prepare(`SELECT status FROM incidents WHERE id = ? AND tenant_id = ?`).get(id, tenantId);
|
|
247
|
-
if (!existing) {
|
|
248
|
-
throw new NotFoundError(`closeIncident: incident ${id} not found for tenant ${tenantId}`);
|
|
249
|
-
}
|
|
250
|
-
throw new ConflictError(`closeIncident: incident ${id} is already closed (status='${existing.status}'); only open or resolved incidents can be closed.`);
|
|
251
|
-
}
|
|
252
|
-
// SAFETY: row's shape matches the columns named in INCIDENT_COLS above.
|
|
253
|
-
const row = db.prepare(`SELECT ${INCIDENT_COLS} FROM incidents WHERE id = ? AND tenant_id = ?`)
|
|
254
|
-
.get(id, tenantId);
|
|
255
|
-
if (!row)
|
|
256
|
-
throw new NotFoundError(`closeIncident: incident ${id} not found after UPDATE`);
|
|
257
|
-
appendAuditEvent(db, {
|
|
258
|
-
tenantId,
|
|
259
|
-
actor,
|
|
260
|
-
op: 'incident_close',
|
|
261
|
-
targetId: String(id),
|
|
262
|
-
metadata: { incident_id: id },
|
|
263
|
-
});
|
|
264
|
-
db.exec('COMMIT');
|
|
265
|
-
return rowToIncident(row);
|
|
266
|
-
}
|
|
267
|
-
catch (e) {
|
|
268
|
-
try {
|
|
269
|
-
db.exec('ROLLBACK');
|
|
270
|
-
}
|
|
271
|
-
catch {
|
|
272
|
-
// Ignore rollback failures — the throw below is what matters.
|
|
273
|
-
}
|
|
274
|
-
throw e;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
finally {
|
|
278
|
-
closeHippoDb(db);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
export function loadIncidentById(hippoRoot, tenantId, id) {
|
|
282
|
-
assertTenantId('loadIncidentById', tenantId);
|
|
283
|
-
const db = openHippoDb(hippoRoot);
|
|
284
|
-
try {
|
|
285
|
-
// SAFETY: row's shape matches the columns named in INCIDENT_COLS above.
|
|
286
|
-
const row = db.prepare(`SELECT ${INCIDENT_COLS} FROM incidents WHERE id = ? AND tenant_id = ?`)
|
|
287
|
-
.get(id, tenantId);
|
|
288
|
-
return row ? rowToIncident(row) : null;
|
|
289
|
-
}
|
|
290
|
-
finally {
|
|
291
|
-
closeHippoDb(db);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
export function loadIncidents(hippoRoot, tenantId, opts = {}) {
|
|
295
|
-
assertTenantId('loadIncidents', tenantId);
|
|
296
|
-
const limit = opts.limit ?? 100;
|
|
297
|
-
const after = keysetAfter('created_at', 'id', opts.after);
|
|
298
|
-
const db = openHippoDb(hippoRoot);
|
|
299
|
-
try {
|
|
300
|
-
let rows;
|
|
301
|
-
if (opts.status) {
|
|
302
|
-
if (!VALID_INCIDENT_STATES.has(opts.status)) {
|
|
303
|
-
throw new BadRequestError(`loadIncidents: status must be one of ${Array.from(VALID_INCIDENT_STATES).join('|')}; got ${opts.status}`);
|
|
304
|
-
}
|
|
305
|
-
// SAFETY: rows' shape matches the columns named in INCIDENT_COLS above.
|
|
306
|
-
rows = db.prepare(`
|
|
307
|
-
SELECT ${INCIDENT_COLS} FROM incidents
|
|
308
|
-
WHERE tenant_id = ? AND status = ?${after.sql}
|
|
309
|
-
ORDER BY created_at DESC, id DESC
|
|
310
|
-
LIMIT ?
|
|
311
|
-
`).all(tenantId, opts.status, ...after.params, limit);
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
// SAFETY: rows' shape matches the columns named in INCIDENT_COLS above.
|
|
315
|
-
rows = db.prepare(`
|
|
316
|
-
SELECT ${INCIDENT_COLS} FROM incidents
|
|
317
|
-
WHERE tenant_id = ?${after.sql}
|
|
318
|
-
ORDER BY created_at DESC, id DESC
|
|
319
|
-
LIMIT ?
|
|
320
|
-
`).all(tenantId, ...after.params, limit);
|
|
321
|
-
}
|
|
322
|
-
return rows.map(rowToIncident);
|
|
323
|
-
}
|
|
324
|
-
finally {
|
|
325
|
-
closeHippoDb(db);
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
export function loadOpenIncidents(hippoRoot, tenantId, opts = {}) {
|
|
329
|
-
return loadIncidents(hippoRoot, tenantId, { status: 'open', limit: opts.limit });
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* Resolve a memory id to the table id of the OPEN incident backed by that
|
|
333
|
-
* memory, or null when the memory has no open incident row. Extracted so a
|
|
334
|
-
* memory-id-based lookup is unit-testable at the store layer (mirror of
|
|
335
|
-
* resolveActiveDecisionIdByMemory).
|
|
336
|
-
*/
|
|
337
|
-
export function resolveActiveIncidentIdByMemory(hippoRoot, tenantId, memoryId) {
|
|
338
|
-
assertTenantId('resolveActiveIncidentIdByMemory', tenantId);
|
|
339
|
-
const db = openHippoDb(hippoRoot);
|
|
340
|
-
try {
|
|
341
|
-
// SAFETY: row shape matches the single `id` column named in the SELECT above.
|
|
342
|
-
const row = db.prepare(`SELECT id FROM incidents WHERE memory_id = ? AND tenant_id = ? AND status = 'open' ORDER BY id DESC LIMIT 1`).get(memoryId, tenantId);
|
|
343
|
-
return row ? row.id : null;
|
|
344
|
-
}
|
|
345
|
-
finally {
|
|
346
|
-
closeHippoDb(db);
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
//# sourceMappingURL=incidents.js.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/** Prompt-injection detection for untrusted memory content. Same shape as secret-detect.ts; leaf module, no store/api/shared imports. */
|
|
2
|
-
const INSTRUCTION_PATTERNS = [
|
|
3
|
-
{ name: 'override-instructions', re: /\b(?:ignore|disregard|forget)\b[^.\n]{0,40}\b(?:previous|prior|above)\b[^.\n]{0,40}\binstructions?\b/i },
|
|
4
|
-
{ name: 'role-reassignment', re: /\b(?:you are now|act as|pretend to be)\b[^.\n]{0,40}\b(?:an?\s+)?(?:ai|assistant|agent|system)\b/i },
|
|
5
|
-
{ name: 'chat-role-markup', re: /<\|im_start\|>|<\|system\|>|\[INST\]|<\/?system>|###\s*system\s*:/i },
|
|
6
|
-
{ name: 'system-prompt-reference', re: /\b(?:(?:override|ignore|bypass|replace|reveal)\b[^.\n]{0,40}\b(?:system prompt|developer message)|(?:system prompt|developer message)\b[^.\n]{0,40}\b(?:override|ignore|bypass|replace|reveal))\b/i },
|
|
7
|
-
// "always"/"never" alone (ordinary PR prose) doesn't flag without an agent-facing target nearby too.
|
|
8
|
-
{ name: 'standing-order', re: /\b(?:from now on|whenever you|always|never)\b[^.\n]{0,50}\b(?:you must|(?:the ai|the assistant|the agent|claude|copilot)\s+(?:must|should|will)\b)/i },
|
|
9
|
-
{ name: 'concealment', re: /\b(?:do not|never|don't)\b[^.\n]{0,40}\b(?:tell|mention|reveal)\b[^.\n]{0,40}\bthe user\b/i },
|
|
10
|
-
{ name: 'remote-script-exec', re: /\b(?:curl|wget)\b[^\n|]{0,80}\|\s*(?:sudo\s+)?(?:sh|bash|zsh)\b|\biex\s*\(\s*(?:iwr|invoke-webrequest|new-object\s+net\.webclient)/i },
|
|
11
|
-
{ name: 'exfiltration', re: /\b(?:send|post|upload|exfiltrate)\b[^.\n]{0,40}\b(?:secrets?|tokens?|api[- ]?keys?|credentials?|env(?:ironment)? variables?)\b/i },
|
|
12
|
-
{ name: 'unicode-tag-chars', re: /[\u{E0000}-\u{E007F}]/u },
|
|
13
|
-
];
|
|
14
|
-
// A stray zero-width char has legitimate uses (ZWJ); only a run of 3+ adjacent ones reads as smuggling.
|
|
15
|
-
const ZERO_WIDTH_RUN_RE = /[\u200B-\u200F\u2060-\u2064]{3,}/;
|
|
16
|
-
export function detectInstruction(content) {
|
|
17
|
-
for (const { name, re } of INSTRUCTION_PATTERNS) {
|
|
18
|
-
if (re.test(content)) {
|
|
19
|
-
return { flagged: true, reason: `pattern:${name}` };
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
if (ZERO_WIDTH_RUN_RE.test(content)) {
|
|
23
|
-
return { flagged: true, reason: 'pattern:zero-width-smuggling' };
|
|
24
|
-
}
|
|
25
|
-
return { flagged: false, reason: null };
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=instruction-detect.js.map
|
package/dist/json.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
2
|
-
[key: string]: JsonValue;
|
|
3
|
-
};
|
|
4
|
-
export declare function isJsonString(value: JsonValue | undefined): value is string;
|
|
5
|
-
/** Windows PowerShell 5.1 saves JSON with a UTF-8 byte order mark that JSON.parse rejects, so one leading mark is dropped. */
|
|
6
|
-
export declare function readJsonFile(file: string): JsonValue;
|
|
7
|
-
//# sourceMappingURL=json.d.ts.map
|
package/dist/json.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// Leaf module: the one value space JSON.parse can produce, so boundary guards narrow a shared type.
|
|
2
|
-
import * as fs from 'fs';
|
|
3
|
-
export function isJsonString(value) {
|
|
4
|
-
return typeof value === 'string';
|
|
5
|
-
}
|
|
6
|
-
/** Windows PowerShell 5.1 saves JSON with a UTF-8 byte order mark that JSON.parse rejects, so one leading mark is dropped. */
|
|
7
|
-
export function readJsonFile(file) {
|
|
8
|
-
const text = fs.readFileSync(file, 'utf8');
|
|
9
|
-
return JSON.parse(text.codePointAt(0) === 0xfeff ? text.slice(1) : text);
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=json.js.map
|
package/dist/ledger-db.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { openHippoDb } from './db.js';
|
|
2
|
-
export interface LedgerRootOpts {
|
|
3
|
-
/** The store serves many people, so the global store of the user running it belongs to none of them. */
|
|
4
|
-
readonly sharedStore?: boolean;
|
|
5
|
-
}
|
|
6
|
-
/** `hippoRoot` when it holds a store, else the global store (the prompt hook fires where no local one exists), else null. */
|
|
7
|
-
export declare function ledgerRoot(hippoRoot: string, opts?: LedgerRootOpts): string | null;
|
|
8
|
-
/** Runs `fn` on ledgerRoot's store. Best-effort: undefined on any failure, because a ledger failure must not break context or recall. */
|
|
9
|
-
export declare function withLedgerDb<T>(hippoRoot: string, fn: (db: ReturnType<typeof openHippoDb>) => T, opts?: LedgerRootOpts): T | undefined;
|
|
10
|
-
//# sourceMappingURL=ledger-db.d.ts.map
|
package/dist/ledger-db.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// The store the token ledger writes to for a caller's root; context, recall and the session hooks share it.
|
|
2
|
-
import { closeHippoDb, isSqliteBusy, noteStoreBusy, openHippoDb } from './db.js';
|
|
3
|
-
import { getGlobalRoot } from './shared.js';
|
|
4
|
-
import { isInitialized } from './store/open.js';
|
|
5
|
-
/** `hippoRoot` when it holds a store, else the global store (the prompt hook fires where no local one exists), else null. */
|
|
6
|
-
export function ledgerRoot(hippoRoot, opts) {
|
|
7
|
-
if (isInitialized(hippoRoot))
|
|
8
|
-
return hippoRoot;
|
|
9
|
-
if (opts?.sharedStore)
|
|
10
|
-
return null;
|
|
11
|
-
const globalRoot = getGlobalRoot();
|
|
12
|
-
return isInitialized(globalRoot) ? globalRoot : null;
|
|
13
|
-
}
|
|
14
|
-
/** Runs `fn` on ledgerRoot's store. Best-effort: undefined on any failure, because a ledger failure must not break context or recall. */
|
|
15
|
-
export function withLedgerDb(hippoRoot, fn, opts) {
|
|
16
|
-
let root = null;
|
|
17
|
-
try {
|
|
18
|
-
root = ledgerRoot(hippoRoot, opts);
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
// An unreadable store root means no ledger write; the ledger must never break context or recall.
|
|
22
|
-
return undefined;
|
|
23
|
-
}
|
|
24
|
-
if (root === null)
|
|
25
|
-
return undefined;
|
|
26
|
-
let db;
|
|
27
|
-
try {
|
|
28
|
-
db = openHippoDb(root);
|
|
29
|
-
return fn(db);
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
// Best effort, but a busy store is the one failure an operator can act on, so it warns once.
|
|
33
|
-
if (isSqliteBusy(error))
|
|
34
|
-
noteStoreBusy('token ledger row skipped');
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
finally {
|
|
38
|
-
if (db)
|
|
39
|
-
closeHippoDb(db);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=ledger-db.js.map
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Frozen learned memory-value weight vector.
|
|
3
|
-
*
|
|
4
|
-
* GENERATED FROM the frozen artifact
|
|
5
|
-
* (benchmarks/memory-value/weights-learned.json +
|
|
6
|
-
* benchmarks/memory-value/weights-learned.meta.json). NEVER EDIT BY HAND —
|
|
7
|
-
* tests/memory-value-wiring.test.ts's weights-sync test asserts this constant
|
|
8
|
-
* equals the committed JSON artifact (value equality + digest match), so
|
|
9
|
-
* drift between the artifact and this file fails CI.
|
|
10
|
-
*
|
|
11
|
-
* CAVEAT: usage-feature signs reflect an anti-oracle simulation, NOT real usage
|
|
12
|
-
* value. Never read this as production ranking advice.
|
|
13
|
-
*/
|
|
14
|
-
/** The 8 live feature dims the fitter optimized over (FIT_DIMS). */
|
|
15
|
-
export declare const MEMORY_VALUE_WEIGHTS: Readonly<Record<string, number>>;
|
|
16
|
-
/** sha256 of benchmarks/memory-value/weights-learned.json at freeze time
|
|
17
|
-
* (weights-learned.meta.json's `weightsFileSha256`). */
|
|
18
|
-
export declare const SOURCE_ARTIFACT_SHA256 = "1e747abed0df771fc9c354da8562771b336c4042faf0266f565bba1b5a8c5a40";
|
|
19
|
-
//# sourceMappingURL=memory-value-weights.d.ts.map
|
package/dist/memory-value.d.ts
DELETED
|
@@ -1,113 +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 { type MemoryEntry } from './memory.js';
|
|
22
|
-
/** The 8 live feature dims (FIT_DIMS) — canonical order for iteration. */
|
|
23
|
-
export declare const MV_FEATURE_NAMES: ReadonlyArray<keyof MvFeatureVector>;
|
|
24
|
-
export interface MvFeatureVector {
|
|
25
|
-
age_days: number;
|
|
26
|
-
half_life_days: number;
|
|
27
|
-
strength: number;
|
|
28
|
-
retrieval_count: number;
|
|
29
|
-
outcome_positive: number;
|
|
30
|
-
outcome_negative: number;
|
|
31
|
-
outcome_ratio: number;
|
|
32
|
-
content_length: number;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Blind v1 feature dict for one MemoryEntry, restricted to the 8 dims the
|
|
36
|
-
* frozen weights carry (mirrors extract.mjs's computeFeatures).
|
|
37
|
-
*
|
|
38
|
-
* CRITICAL: `strength` is CLOCK-BASIS `calculateStrength(entry, now)` with
|
|
39
|
-
* NO DecayOptions — that is how the frozen weights' training features were
|
|
40
|
-
* computed (extract.mjs never passes decayOpts). Passing the production
|
|
41
|
-
* decay basis (config.decayBasis via consolidate.ts's decayOpts) into this
|
|
42
|
-
* feature would silently break parity with the frozen weight vector. This
|
|
43
|
-
* is an intentional divergence from the condemnation TRIGGER in
|
|
44
|
-
* consolidate.ts, which keeps using decayOpts as today — only the rescue
|
|
45
|
-
* FEATURE is clock-basis.
|
|
46
|
-
*/
|
|
47
|
-
export declare function computeMvFeatures(entry: MemoryEntry, now: Date): MvFeatureVector;
|
|
48
|
-
export declare function validateWeights(weights?: Readonly<Record<string, number>>, digest?: string): void;
|
|
49
|
-
/**
|
|
50
|
-
* Min-max normalize each of the 8 features over the given entry set
|
|
51
|
-
* (constant feature -> 0, matching evaluate.mjs), then score = dot(weights,
|
|
52
|
-
* normalized). The normalization context is exactly the entries passed in —
|
|
53
|
-
* callers control the bounded scope (per-tenant, non-pinned).
|
|
54
|
-
*
|
|
55
|
-
* `weights` defaults to the real frozen singleton; parameterized (like
|
|
56
|
-
* validateWeights) so callers/tests can score against an explicit vector
|
|
57
|
-
* without touching the module singleton.
|
|
58
|
-
*
|
|
59
|
-
* Non-finite features: Date.parse on a malformed `created`
|
|
60
|
-
* string yields NaN, and NaN would silently corrupt every OTHER entry's
|
|
61
|
-
* min-max in the same group. An entry with ANY non-finite computed feature
|
|
62
|
-
* is excluded from the normalization context entirely (its raw values never
|
|
63
|
-
* touch min/max) and always scores -Infinity — the lowest possible score, so
|
|
64
|
-
* it sorts to the bottom of its tenant deterministically and (via rescueSet's
|
|
65
|
-
* explicit finite-score guard below) can never be rescued. Conservative
|
|
66
|
-
* direction: deletes(flag-on) subset deletes(flag-off) still holds.
|
|
67
|
-
*/
|
|
68
|
-
export declare function scoreEntries(entries: MemoryEntry[], now: Date, weights?: Readonly<Record<string, number>>): Map<string, number>;
|
|
69
|
-
/** Per-entry rank context within its tenant's non-pinned candidate set —
|
|
70
|
-
* the score-rank basis both rescueSet's rescue decision and consolidate.ts's
|
|
71
|
-
* audit-row metadata read from. */
|
|
72
|
-
export interface MvRankInfo {
|
|
73
|
-
tenantId: string;
|
|
74
|
-
score: number;
|
|
75
|
-
/** 1-based rank by score DESC within the tenant's non-pinned candidate set. */
|
|
76
|
-
rank: number;
|
|
77
|
-
/** Size of the tenant's non-pinned candidate set. */
|
|
78
|
-
totalNonPinned: number;
|
|
79
|
-
/** ceil(RESCUE_BUDGET * totalNonPinned) — the rescue cutoff; rank <= keepN rescues. */
|
|
80
|
-
keepN: number;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Groups non-pinned entries by tenantId, scores + ranks each tenant's
|
|
84
|
-
* group independently, and returns per-entry rank context for every
|
|
85
|
-
* non-pinned entry (not just condemned ones) — the shared basis for both
|
|
86
|
-
* rescueSet's rescue decision and consolidate.ts's audit-row rank context,
|
|
87
|
-
* so the two never compute the ranking differently.
|
|
88
|
-
*
|
|
89
|
-
* `weights`/`digest` default to the real frozen singleton — parameterized
|
|
90
|
-
* (like validateWeights/scoreEntries) purely for direct unit-testability of
|
|
91
|
-
* the fail-loud path, never overridden by production callers.
|
|
92
|
-
*/
|
|
93
|
-
export declare function rankNonPinnedByTenant(entries: MemoryEntry[], now: Date, weights?: Readonly<Record<string, number>>, digest?: string): Map<string, MvRankInfo>;
|
|
94
|
-
/**
|
|
95
|
-
* Rescue decision: a condemned entry is rescued iff it ranks in the top
|
|
96
|
-
* 30% of its tenant's non-pinned candidate set by learned score. Returns the
|
|
97
|
-
* subset of condemnedIds that are rescued — the caller filters commits
|
|
98
|
-
* (rescued -> survivors) and threads the same set into detectConflicts.
|
|
99
|
-
*
|
|
100
|
-
* `weights`/`digest` default to the real frozen singleton; production
|
|
101
|
-
* callers (consolidate.ts) never pass overrides — the params exist purely so
|
|
102
|
-
* "flag on + a broken constant throws" is directly testable end-to-end
|
|
103
|
-
* through this function without mutating the frozen module singleton.
|
|
104
|
-
*
|
|
105
|
-
* `precomputedRanks`: when the caller has already
|
|
106
|
-
* computed the per-tenant ranking (e.g. consolidate.ts needs it separately
|
|
107
|
-
* for detail/audit rank context), pass it here to skip the internal
|
|
108
|
-
* rankNonPinnedByTenant call — the whole-store ranking pass then runs
|
|
109
|
-
* exactly once per sleep instead of twice. Omitted (the default), rescueSet
|
|
110
|
-
* computes it internally as before — existing callers/tests are unaffected.
|
|
111
|
-
*/
|
|
112
|
-
export declare function rescueSet(entries: MemoryEntry[], condemnedIds: Set<string>, now: Date, weights?: Readonly<Record<string, number>>, digest?: string, precomputedRanks?: Map<string, MvRankInfo>): Set<string>;
|
|
113
|
-
//# sourceMappingURL=memory-value.d.ts.map
|