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/store-port.d.ts
DELETED
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
import type { AmbientTallies } from './ambient.js';
|
|
2
|
-
import { type AmbientStoreFilter } from './ambient-store.js';
|
|
3
|
-
import { type ApiKeyListRow, type ApiKeyRecord, type ListApiKeysOpts, type NewApiKey } from './auth.js';
|
|
4
|
-
import { type AppendAuditOpts, type AuditEvent, type ListAuditAfterOpts } from './audit.js';
|
|
5
|
-
import type { ContinuityBlock } from './api/recall-types.js';
|
|
6
|
-
import { type EmbeddingIndexState } from './embeddings.js';
|
|
7
|
-
import { type ActiveGoals, type GetActiveGoalsOpts, type GoalRecallLogRow } from './goals.js';
|
|
8
|
-
import type { SessionHandoff } from './handoff.js';
|
|
9
|
-
import type { JsonValue } from './json.js';
|
|
10
|
-
import type { MemoryEntry } from './memory.js';
|
|
11
|
-
import type { PhysicsParticle } from './physics.js';
|
|
12
|
-
import { type PlanningFallacyEvidence } from './predictions/planning-fallacy.js';
|
|
13
|
-
import { type RecallTraceInput } from './recall-trace.js';
|
|
14
|
-
import { type AmbientLoadResult, type AmbientRecallRequest, type ContextCandidateFilter, type RecentOrigins } from './store/candidates.js';
|
|
15
|
-
import { type StrengthenOptions } from './store/entry-writes.js';
|
|
16
|
-
import { type OriginFilter, type VectorCandidateSpec } from './store/search-rows.js';
|
|
17
|
-
import { type ContinuityKey } from './store/sessions.js';
|
|
18
|
-
import { type TokenUse } from './token-ledger.js';
|
|
19
|
-
/** The arguments of `loadRecallSearchEntries` after the query, by name. */
|
|
20
|
-
export interface RecallSearchArgs {
|
|
21
|
-
readonly limit: number;
|
|
22
|
-
readonly tenantId?: string;
|
|
23
|
-
readonly requestedScope?: string;
|
|
24
|
-
readonly explicitScopeMode: 'exact' | 'additive';
|
|
25
|
-
readonly includeSuperseded: boolean;
|
|
26
|
-
readonly originProjects?: OriginFilter;
|
|
27
|
-
/** The caller's personal scope, which the default deny admits; undefined admits no personal row. */
|
|
28
|
-
readonly ownScope: string | undefined;
|
|
29
|
-
}
|
|
30
|
-
/** Everything one recall writes once its reply is decided, so a store writes it on one connection. */
|
|
31
|
-
export interface RecallWrites {
|
|
32
|
-
/** Insert or ignore on (memory_id, goal_id), so the first row wins, a duplicate inside this batch included. First drop a row
|
|
33
|
-
* whose memory_id is in no memories row of this store, whatever that row's tenant, as `localGoalRecallRows` does. */
|
|
34
|
-
readonly goalLog: readonly GoalRecallLogRow[];
|
|
35
|
-
/** In the order they happened. */
|
|
36
|
-
readonly audit: readonly AppendAuditOpts[];
|
|
37
|
-
readonly trace?: RecallTraceInput;
|
|
38
|
-
/** Nothing when `recallBoostAblated`. Each id found, in `tenantId` when set, gets the retrieval_count, last_retrieved,
|
|
39
|
-
* half_life_days and strength `markRetrieved` computes from the row read before any update, so a repeated id moves once. */
|
|
40
|
-
readonly strengthen?: {
|
|
41
|
-
readonly ids: readonly string[];
|
|
42
|
-
readonly opts: StrengthenOptions;
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
/** The reads behind recall's vector arm. */
|
|
46
|
-
export interface VectorReads {
|
|
47
|
-
/** The stored model and whether any vector exists, in one snapshot. */
|
|
48
|
-
embeddingIndexState(): Promise<EmbeddingIndexState>;
|
|
49
|
-
storedVectors(ids: readonly string[]): Promise<Map<string, number[]>>;
|
|
50
|
-
/** The `spec.limit ?? 50` rows nearest `queryVector` by `rankVectorRows` among those where the tenant matches (when set), kind is not 'archived', a superseded row
|
|
51
|
-
* shows only with `includeSuperseded`, scope follows `RecallScopeFilter`, and origin is '' or listed (when `spec.origin` is set). */
|
|
52
|
-
nearestEntries(queryVector: readonly number[], spec: VectorCandidateSpec): Promise<MemoryEntry[]>;
|
|
53
|
-
/** The particles of `ids` only; an empty list reads nothing. */
|
|
54
|
-
physicsParticles(ids: readonly string[]): Promise<Map<string, PhysicsParticle>>;
|
|
55
|
-
}
|
|
56
|
-
/** One memory's vector, computed by the caller's embedding provider. */
|
|
57
|
-
export interface VectorRowWrite {
|
|
58
|
-
readonly memoryId: string;
|
|
59
|
-
readonly vector: readonly number[];
|
|
60
|
-
/** Kept only when the memory has no particle yet, under `memoryId` whatever its own memoryId says. */
|
|
61
|
-
readonly particle?: PhysicsParticle;
|
|
62
|
-
}
|
|
63
|
-
export interface VectorWrite {
|
|
64
|
-
readonly tenantId: string;
|
|
65
|
-
/** The index identity the vectors were built by, `embeddingIndexIdentity(provider.id)`. */
|
|
66
|
-
readonly model: string;
|
|
67
|
-
/** Set only by embedAll's rebuild, so a write that read the index state before another process rebuilt it cannot drop that rebuild. */
|
|
68
|
-
readonly replaceIndex: boolean;
|
|
69
|
-
readonly rows: readonly VectorRowWrite[];
|
|
70
|
-
}
|
|
71
|
-
export interface VectorWriteResult {
|
|
72
|
-
readonly written: number;
|
|
73
|
-
/** True when another model built the index and `replaceIndex` is false; the store then keeps nothing and `written` is 0. */
|
|
74
|
-
readonly modelMismatch: boolean;
|
|
75
|
-
}
|
|
76
|
-
export interface VectorBackfillQuery {
|
|
77
|
-
readonly model: string;
|
|
78
|
-
/** Only ids above this one in byte order; unset starts at the first. */
|
|
79
|
-
readonly afterId?: string;
|
|
80
|
-
/** Clamped to 1..500; a non-integer rejects with RangeError `limit must be an integer`. */
|
|
81
|
-
readonly limit: number;
|
|
82
|
-
/** Every tenant when unset, since the backfill covers the whole store. */
|
|
83
|
-
readonly tenantId?: string;
|
|
84
|
-
}
|
|
85
|
-
/** The writes behind embed on write and the backfill: core computes each vector, the store only keeps it.
|
|
86
|
-
* A store deletes a memory's vector and particle when the memory is deleted (hippo.db does it by trigger and foreign-key cascade). */
|
|
87
|
-
export interface VectorWrites {
|
|
88
|
-
/** Memories of any kind with no vector stored under `query.model`, by id ascending in byte order. */
|
|
89
|
-
entriesWithoutVector(query: VectorBackfillQuery): Promise<MemoryEntry[]>;
|
|
90
|
-
/** In one transaction: refuses with `modelMismatch` if `replacesIndex` and not `replaceIndex`; else, when a row is writable (memory in `tenantId`, vector non-empty
|
|
91
|
-
* and finite), drops every vector and particle if `replacesIndex`, keeps each writable row under `model` with its particle where none exists, sets `model`. No audit row. */
|
|
92
|
-
writeVectors(write: VectorWrite): Promise<VectorWriteResult>;
|
|
93
|
-
}
|
|
94
|
-
export interface KeyRevoke {
|
|
95
|
-
readonly tenantId: string;
|
|
96
|
-
readonly keyId: string;
|
|
97
|
-
readonly actor: string;
|
|
98
|
-
readonly at: string;
|
|
99
|
-
}
|
|
100
|
-
export interface KeyAudit {
|
|
101
|
-
/** Sets revoked_at to `at` and appends one auth_revoke row (the key's tenant, `actor`, the key id) in one transaction, then resolves to `at`. A revoked
|
|
102
|
-
* key resolves to its own revoked_at and writes nothing; a key missing from `tenantId` rejects with NotFoundError `Unknown key_id: <keyId>`. */
|
|
103
|
-
revokeApiKey(revoke: KeyRevoke): Promise<string>;
|
|
104
|
-
/** As `listAuditEventsAfter`: rows above `afterId` in ascending id order, with its RangeErrors, limit clamp and tenant filter. */
|
|
105
|
-
auditEventsAfter(opts: ListAuditAfterOpts): Promise<AuditEvent[]>;
|
|
106
|
-
/** The highest audit id ever assigned, pruned rows included, 0 before the first; a tail that sees it drop knows the log was restored. */
|
|
107
|
-
auditHighId(): Promise<number>;
|
|
108
|
-
}
|
|
109
|
-
/** One ambient load: the pins, the `recentNeeded` newest rows `admit` keeps, and the prompt-recall candidates. */
|
|
110
|
-
export interface AmbientCandidateRequest {
|
|
111
|
-
readonly recentNeeded: number;
|
|
112
|
-
/** Sees each row in the order `loadAmbientCandidates` reads them, since the delivery ledger counts its refusals. */
|
|
113
|
-
readonly admit: (e: MemoryEntry) => boolean;
|
|
114
|
-
readonly recall?: AmbientRecallRequest;
|
|
115
|
-
readonly origins?: RecentOrigins;
|
|
116
|
-
}
|
|
117
|
-
/** The reads behind getContext beyond the base `continuity`: its fallback handoff, candidate rows and ambient tallies.
|
|
118
|
-
* getContext with a query under an embedding provider needs `vectors` too, and answers 501 without it. */
|
|
119
|
-
export interface ContextReads {
|
|
120
|
-
/** The newest handoff of the last `maxAgeMs` that is its session's highest id, has no outcome or a partial or failed one, and
|
|
121
|
-
* passes recall's default scope deny, as `loadLatestHandoff` with `unfinishedOnly` and `scopeFilter: 'default-deny'`. Rejects an empty tenant id. */
|
|
122
|
-
unfinishedHandoff(tenantId: string, maxAgeMs: number, key: ContinuityKey | null): Promise<SessionHandoff | null>;
|
|
123
|
-
/** As `loadAmbientCandidates`; `recall` searches with the query `rarestFtsQuery` builds from FTS document counts over every tenant's rows,
|
|
124
|
-
* and finds nothing when no term is indexed. Core keeps only `tenantId`'s rows that its own admit passes, whatever the store returns. */
|
|
125
|
-
ambientCandidates(tenantId: string, request: AmbientCandidateRequest): Promise<AmbientLoadResult>;
|
|
126
|
-
/** As `loadContextCandidates`: at most `filter.cap` live rows, pins and then the least decayed first, returned by created, then id. */
|
|
127
|
-
contextCandidates(tenantId: string, filter: ContextCandidateFilter): Promise<MemoryEntry[]>;
|
|
128
|
-
/** As `loadAmbientTallies`: one aggregate over the live, unarchived rows `filter` admits, less other projects' secret-tagged rows. */
|
|
129
|
-
ambientTallies(tenantId: string, filter: AmbientStoreFilter): Promise<AmbientTallies>;
|
|
130
|
-
}
|
|
131
|
-
export interface EntryWrite {
|
|
132
|
-
readonly entry: MemoryEntry;
|
|
133
|
-
readonly actor: string;
|
|
134
|
-
}
|
|
135
|
-
/** Who acts on which of a tenant's rows; `ownScope` is the caller's personal scope, so every other personal row is out of reach. */
|
|
136
|
-
export interface EntryTarget {
|
|
137
|
-
readonly tenantId: string;
|
|
138
|
-
readonly actor: string;
|
|
139
|
-
readonly ownScope: string | null;
|
|
140
|
-
}
|
|
141
|
-
export interface OutcomeWrite extends EntryTarget {
|
|
142
|
-
readonly ids: readonly string[];
|
|
143
|
-
readonly good: boolean;
|
|
144
|
-
}
|
|
145
|
-
export interface SupersedeWrite extends EntryTarget {
|
|
146
|
-
readonly oldId: string;
|
|
147
|
-
readonly successor: MemoryEntry;
|
|
148
|
-
}
|
|
149
|
-
export interface EntryRemoval extends EntryTarget {
|
|
150
|
-
readonly id: string;
|
|
151
|
-
}
|
|
152
|
-
export interface RawArchive extends EntryRemoval {
|
|
153
|
-
readonly reason: string;
|
|
154
|
-
}
|
|
155
|
-
/** The memory-row writes behind remember, outcome, supersede, archive and forget. Each writes its audit rows in the write's own transaction,
|
|
156
|
-
* a child row's change marks its level 2 or 3 summary parent dirty (one summary_marked_dirty row on the flip), and the schema's rules hold. */
|
|
157
|
-
export interface EntryWrites {
|
|
158
|
-
/** Upserts the row, its full-text row and one remember row ({kind, scope}) in the entry's tenant; an id another tenant holds rejects in the transaction with ConflictError `Memory <id>
|
|
159
|
-
* belongs to another tenant`. Content the write brings into a tenant that tombstoned it rejects with RejectedValueError and writes one reject_refusal row after the rollback, best effort. */
|
|
160
|
-
writeEntry(write: EntryWrite): Promise<void>;
|
|
161
|
-
/** For each id in order, a row of the tenant within reach gets `entryAfterOutcome`, a rewrite as writeEntry does and one outcome row ({good}); other ids are skipped, a repeated id builds
|
|
162
|
-
* on its first outcome. Each read holds the row's lock to commit (SELECT ... FOR UPDATE), so a supersede between read and rewrite is not undone. Resolves to the ids applied, repeats kept. */
|
|
163
|
-
applyOutcome(outcome: OutcomeWrite): Promise<string[]>;
|
|
164
|
-
/** Sets the old row's superseded_by where it is within reach and not yet superseded, both checked in the transaction, else rejects with NotFoundError `memory not found: <oldId>` or
|
|
165
|
-
* ConflictError `Memory <oldId> already superseded by another writer`. Then writes the successor as writeEntry does and one supersede row ({newId}), all or nothing. */
|
|
166
|
-
supersede(write: SupersedeWrite): Promise<void>;
|
|
167
|
-
/** Moves a raw row to raw_archive (metadata only, no content), deletes it and its full-text row and writes one archive_raw row ({reason});
|
|
168
|
-
* resolves to the archived_at written. A row out of reach rejects with NotFoundError `memory not found: <id>`, any other kind with BadRequestError. */
|
|
169
|
-
archiveRaw(archive: RawArchive): Promise<string>;
|
|
170
|
-
/** Deletes the row and its full-text row and writes one forget row; a raw row rejects, being append-only. A row out of reach rejects with
|
|
171
|
-
* NotFoundError `memory not found: <id>`. Archive and forget then add one to the store-wide forgotten counter, best effort. */
|
|
172
|
-
forget(removal: EntryRemoval): Promise<void>;
|
|
173
|
-
}
|
|
174
|
-
/** A key to insert and the actor and metadata of its auth_create row, whose tenant and target are the key's. Neither holds the plaintext. */
|
|
175
|
-
export interface KeyMint {
|
|
176
|
-
readonly key: NewApiKey;
|
|
177
|
-
readonly actor: string;
|
|
178
|
-
readonly metadata: Readonly<Record<string, JsonValue>>;
|
|
179
|
-
}
|
|
180
|
-
export interface SelfKeyMint extends KeyMint {
|
|
181
|
-
readonly key: NewApiKey & {
|
|
182
|
-
readonly ownerSubject: string;
|
|
183
|
-
readonly expiresAt: string;
|
|
184
|
-
};
|
|
185
|
-
/** Live keys the owner may hold in the tenant once this one is in. */
|
|
186
|
-
readonly perSubject: number;
|
|
187
|
-
}
|
|
188
|
-
/** `listApiKeyRows`'s filters, always inside one tenant. */
|
|
189
|
-
export interface KeyListQuery extends Omit<ListApiKeysOpts, 'tenantId'> {
|
|
190
|
-
readonly tenantId: string;
|
|
191
|
-
}
|
|
192
|
-
export interface KeyWrites {
|
|
193
|
-
/** Inserts the key and appends its auth_create row in one transaction; with either one failing, neither is written. A key id taken in any tenant
|
|
194
|
-
* rejects, since keys are looked up by id alone. */
|
|
195
|
-
createApiKey(mint: KeyMint): Promise<void>;
|
|
196
|
-
/** One transaction, serialized per (tenant, owner) before the count (hippo.db BEGIN IMMEDIATE, Postgres pg_advisory_xact_lock on the pair): revoke at `key.createdAt`
|
|
197
|
-
* the owner's oldest live keys in the key's tenant down to `perSubject - 1`, insert the key, append an auth_revoke row `{ replacedBy: <new key id> }` per revoked key,
|
|
198
|
-
* then the auth_create row; resolves to the revoked ids. Live: unrevoked, expires_at null or Date.parse(expires_at) after createdAt (NaN counts as expired). */
|
|
199
|
-
createSelfApiKey(mint: SelfKeyMint): Promise<string[]>;
|
|
200
|
-
/** As `listApiKeyRows`: newest inserted first, each with its scope grants; `active` drops revoked rows and an expires_at not above now's toISOString. */
|
|
201
|
-
listApiKeys(query: KeyListQuery): Promise<ApiKeyListRow[]>;
|
|
202
|
-
}
|
|
203
|
-
/** The optional groups: a store sets each one whole or leaves it unset, and a route or MCP tool names the one it needs. */
|
|
204
|
-
export interface StoreGroups {
|
|
205
|
-
/** Unset on a store built before them, where hybrid and physics recall under an embedding provider answer 501. */
|
|
206
|
-
readonly vectors: VectorReads;
|
|
207
|
-
readonly keyAudit: KeyAudit;
|
|
208
|
-
readonly keyWrites: KeyWrites;
|
|
209
|
-
/** embedMemory and embedAll with a store need it and `vectors`. */
|
|
210
|
-
readonly vectorWrites: VectorWrites;
|
|
211
|
-
readonly entryWrites: EntryWrites;
|
|
212
|
-
readonly contextReads: ContextReads;
|
|
213
|
-
}
|
|
214
|
-
export type StoreGroup = 'base' | keyof StoreGroups;
|
|
215
|
-
export declare function hasGroup(store: HippoStore, group: StoreGroup): boolean;
|
|
216
|
-
/** The group's methods; a store without them throws StoreNotPortedError, which answers 501 as any unported path does. */
|
|
217
|
-
export declare function requireGroup<G extends keyof StoreGroups>(store: HippoStore, group: G): StoreGroups[G];
|
|
218
|
-
/** What `serve()` reads and writes through. Each method is atomic and no transaction spans an await, since SQLite's lock wait blocks the event loop; a lock timeout throws `StoreBusyError`. */
|
|
219
|
-
export interface HippoStore extends Partial<StoreGroups> {
|
|
220
|
-
/** 'sqlite' is hippo.db under the served root. Under any other kind, an unported route answers 501 and a hippo.db open inside a request throws. */
|
|
221
|
-
readonly kind: string;
|
|
222
|
-
/** The api_keys row for `keyId` with its scope grants, revoked or not; null when no row matches. */
|
|
223
|
-
findApiKey(keyId: string): Promise<ApiKeyRecord | null>;
|
|
224
|
-
/** Recall candidates in `loadRecallSearchEntries` order: FTS, then LIKE, then every row in scope. */
|
|
225
|
-
searchRecallEntries(query: string, args: RecallSearchArgs): Promise<MemoryEntry[]>;
|
|
226
|
-
/** The rows among the first 500 ids, a tenant narrowing them, ordered by created, then content, then id, all ascending,
|
|
227
|
-
* as `loadEntriesByIds` does; the input order is ignored. */
|
|
228
|
-
entriesByIds(ids: readonly string[], tenantId?: string): Promise<MemoryEntry[]>;
|
|
229
|
-
/** The session's active goals and their policies, read together so a goal and its policy never disagree. */
|
|
230
|
-
activeGoals(opts: GetActiveGoalsOpts): Promise<ActiveGoals>;
|
|
231
|
-
/** The first `count` (at most 200) unsuperseded raw rows a tenant, a non-empty session id and non-null `origins` (those projects and
|
|
232
|
-
* user-global rows) must narrow, by created descending, then content and id ascending, as `loadFreshRawMemories` does. */
|
|
233
|
-
freshRawEntries(count: number, tenantId: string | undefined, sessionId: string | undefined, origins: readonly string[] | null): Promise<MemoryEntry[]>;
|
|
234
|
-
/** The newest active snapshot a non-null `key` must narrow to one owner and project (null only on an unshared hippo.db), then for its session
|
|
235
|
-
* the newest handoff (same key) and `eventLimit` newest events returned oldest first, each tie broken by the larger id; the caller applies scope. */
|
|
236
|
-
continuity(tenantId: string, eventLimit: number, key: ContinuityKey | null): Promise<ContinuityBlock>;
|
|
237
|
-
/** Resolves a forward claim's tokens to one class and reads its baserate, writing no audit row. */
|
|
238
|
-
planningFallacyEvidence(tenantId: string, classQueryTokens: readonly string[]): Promise<PlanningFallacyEvidence>;
|
|
239
|
-
/** Appends the rows in order, all or none. */
|
|
240
|
-
appendAuditEvents(events: readonly AppendAuditOpts[]): Promise<void>;
|
|
241
|
-
/** Writes the goal log and audit rows in one transaction and rejects with none written if it fails. Then the trace and
|
|
242
|
-
* the strengthen, each on its own: a failure there logs and still resolves, since the reply is already decided. */
|
|
243
|
-
finishRecall(writes: RecallWrites): Promise<void>;
|
|
244
|
-
/** Adds `recalled` to the one store-wide total_recalled counter, no tenant; the SQLite store also rewrites stats.json. */
|
|
245
|
-
bumpRecallStats(recalled: number): Promise<void>;
|
|
246
|
-
/** One token-ledger row. Throws, so the caller decides whether a ledger failure matters. */
|
|
247
|
-
recordTokens(use: TokenUse): Promise<void>;
|
|
248
|
-
/** Releases the store's connections; `serve()` closes only a store it made itself. */
|
|
249
|
-
close(): Promise<void>;
|
|
250
|
-
}
|
|
251
|
-
/** The store a request runs on: the served one, else hippo.db under its root, as the CLI and SDK callers have it. */
|
|
252
|
-
export declare function storeFor(ctx: {
|
|
253
|
-
readonly hippoRoot: string;
|
|
254
|
-
readonly store?: HippoStore;
|
|
255
|
-
}): HippoStore;
|
|
256
|
-
/** The built-in store: today's synchronous hippo.db functions behind the port, each call on its own short-lived handles, so close has nothing to release. */
|
|
257
|
-
export declare function sqliteStore(hippoRoot: string): HippoStore & StoreGroups;
|
|
258
|
-
/** sqliteStore's continuity read, for the synchronous recall that cannot await the port. */
|
|
259
|
-
export declare function continuityAt(hippoRoot: string, tenantId: string, eventLimit: number, key: ContinuityKey | null): ContinuityBlock;
|
|
260
|
-
/** sqliteStore's finishRecall, for the synchronous recall that cannot await the port. */
|
|
261
|
-
export declare function finishRecallAt(hippoRoot: string, writes: RecallWrites): void;
|
|
262
|
-
//# sourceMappingURL=store-port.d.ts.map
|
package/dist/store-port.js
DELETED
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { loadAmbientTallies } from './ambient-store.js';
|
|
2
|
-
import { listApiKeyRows, readApiKeyRecord } from './auth.js';
|
|
3
|
-
import { appendAuditEvent, listAuditEventsAfter } from './audit.js';
|
|
4
|
-
import { withWriteScope } from './db.js';
|
|
5
|
-
import { StoreNotPortedError } from './db/sqlite-blocked.js';
|
|
6
|
-
import { embeddingIndexStateAt, loadStoredVectors } from './embeddings.js';
|
|
7
|
-
import { activeGoalsWithPolicies, localGoalRecallRows, writeGoalRecallLog, } from './goals.js';
|
|
8
|
-
import { loadPhysicsState } from './physics-state.js';
|
|
9
|
-
import { planningFallacyEvidenceAt } from './predictions/planning-fallacy.js';
|
|
10
|
-
import { writeRecallTrace } from './recall-trace.js';
|
|
11
|
-
import { loadAmbientCandidates, loadContextCandidates, } from './store/candidates.js';
|
|
12
|
-
import { loadEntriesByIds, loadFreshRawMemories } from './store/entry-reads.js';
|
|
13
|
-
import { auditHighIdAt, revokeKeyAt } from './store/key-audit.js';
|
|
14
|
-
import { createKeyAt, createSelfKeyAt } from './store/key-writes.js';
|
|
15
|
-
import { strengthenRetrievedInOwnTx } from './store/entry-writes.js';
|
|
16
|
-
import { sqliteEntryWrites } from './store/entry-writes-group.js';
|
|
17
|
-
import { loadLatestHandoff } from './store/handoffs.js';
|
|
18
|
-
import { updateStats } from './store/index-and-stats.js';
|
|
19
|
-
import { onHandle } from './store/open.js';
|
|
20
|
-
import { loadRecallSearchEntries, loadVectorCandidateEntries } from './store/search-rows.js';
|
|
21
|
-
import { listSessionEvents, loadActiveTaskSnapshot } from './store/sessions.js';
|
|
22
|
-
import { entriesWithoutVectorAt, writeVectorsAt } from './store/vector-writes.js';
|
|
23
|
-
import { recordTokenUse } from './token-ledger.js';
|
|
24
|
-
export function hasGroup(store, group) {
|
|
25
|
-
return group === 'base' || store[group] !== undefined;
|
|
26
|
-
}
|
|
27
|
-
/** The group's methods; a store without them throws StoreNotPortedError, which answers 501 as any unported path does. */
|
|
28
|
-
export function requireGroup(store, group) {
|
|
29
|
-
const groups = store;
|
|
30
|
-
const methods = groups[group];
|
|
31
|
-
if (methods === undefined)
|
|
32
|
-
throw new StoreNotPortedError(store.kind, group);
|
|
33
|
-
return methods;
|
|
34
|
-
}
|
|
35
|
-
/** The store a request runs on: the served one, else hippo.db under its root, as the CLI and SDK callers have it. */
|
|
36
|
-
export function storeFor(ctx) {
|
|
37
|
-
return ctx.store ?? sqliteStore(ctx.hippoRoot);
|
|
38
|
-
}
|
|
39
|
-
/** The built-in store: today's synchronous hippo.db functions behind the port, each call on its own short-lived handles, so close has nothing to release. */
|
|
40
|
-
export function sqliteStore(hippoRoot) {
|
|
41
|
-
return {
|
|
42
|
-
kind: 'sqlite',
|
|
43
|
-
async findApiKey(keyId) {
|
|
44
|
-
return onHandle(hippoRoot, (db) => readApiKeyRecord(db, keyId));
|
|
45
|
-
},
|
|
46
|
-
async searchRecallEntries(query, args) {
|
|
47
|
-
return loadRecallSearchEntries(hippoRoot, query, args.limit, args.tenantId, args.requestedScope, args.explicitScopeMode, args.includeSuperseded, args.originProjects, args.ownScope);
|
|
48
|
-
},
|
|
49
|
-
async entriesByIds(ids, tenantId) {
|
|
50
|
-
return loadEntriesByIds(hippoRoot, ids, tenantId);
|
|
51
|
-
},
|
|
52
|
-
async activeGoals(opts) {
|
|
53
|
-
return activeGoalsWithPolicies(hippoRoot, opts);
|
|
54
|
-
},
|
|
55
|
-
async freshRawEntries(count, tenantId, sessionId, origins) {
|
|
56
|
-
return loadFreshRawMemories(hippoRoot, count, tenantId, sessionId, origins ?? undefined);
|
|
57
|
-
},
|
|
58
|
-
async continuity(tenantId, eventLimit, key) {
|
|
59
|
-
return continuityAt(hippoRoot, tenantId, eventLimit, key);
|
|
60
|
-
},
|
|
61
|
-
async planningFallacyEvidence(tenantId, classQueryTokens) {
|
|
62
|
-
return planningFallacyEvidenceAt(hippoRoot, tenantId, classQueryTokens);
|
|
63
|
-
},
|
|
64
|
-
async appendAuditEvents(events) {
|
|
65
|
-
if (events.length === 0)
|
|
66
|
-
return;
|
|
67
|
-
onHandle(hippoRoot, (db) => withWriteScope(db, 'append_audit_events', () => {
|
|
68
|
-
for (const event of events)
|
|
69
|
-
appendAuditEvent(db, event);
|
|
70
|
-
}));
|
|
71
|
-
},
|
|
72
|
-
async finishRecall(writes) {
|
|
73
|
-
finishRecallAt(hippoRoot, writes);
|
|
74
|
-
},
|
|
75
|
-
async bumpRecallStats(recalled) {
|
|
76
|
-
updateStats(hippoRoot, { recalled });
|
|
77
|
-
},
|
|
78
|
-
async recordTokens(use) {
|
|
79
|
-
onHandle(hippoRoot, (db) => recordTokenUse(db, use));
|
|
80
|
-
},
|
|
81
|
-
vectors: {
|
|
82
|
-
async embeddingIndexState() {
|
|
83
|
-
return embeddingIndexStateAt(hippoRoot);
|
|
84
|
-
},
|
|
85
|
-
async storedVectors(ids) {
|
|
86
|
-
return loadStoredVectors(hippoRoot, ids);
|
|
87
|
-
},
|
|
88
|
-
async nearestEntries(queryVector, spec) {
|
|
89
|
-
return loadVectorCandidateEntries(hippoRoot, queryVector, spec);
|
|
90
|
-
},
|
|
91
|
-
async physicsParticles(ids) {
|
|
92
|
-
// loadPhysicsState reads every row for an empty list.
|
|
93
|
-
return ids.length === 0 ? new Map() : onHandle(hippoRoot, (db) => loadPhysicsState(db, [...ids]));
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
keyAudit: sqliteKeyAudit(hippoRoot),
|
|
97
|
-
keyWrites: sqliteKeyWrites(hippoRoot),
|
|
98
|
-
vectorWrites: {
|
|
99
|
-
async entriesWithoutVector(query) {
|
|
100
|
-
return onHandle(hippoRoot, (db) => entriesWithoutVectorAt(db, query));
|
|
101
|
-
},
|
|
102
|
-
async writeVectors(write) {
|
|
103
|
-
return onHandle(hippoRoot, (db) => writeVectorsAt(db, write));
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
entryWrites: sqliteEntryWrites(hippoRoot),
|
|
107
|
-
contextReads: sqliteContextReads(hippoRoot),
|
|
108
|
-
async close() { },
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
function sqliteContextReads(hippoRoot) {
|
|
112
|
-
return {
|
|
113
|
-
async unfinishedHandoff(tenantId, maxAgeMs, key) {
|
|
114
|
-
return loadLatestHandoff(hippoRoot, tenantId, undefined, { unfinishedOnly: true, maxAgeMs, scopeFilter: 'default-deny' }, key ?? undefined);
|
|
115
|
-
},
|
|
116
|
-
async ambientCandidates(tenantId, { recentNeeded, admit, recall, origins }) {
|
|
117
|
-
return loadAmbientCandidates(hippoRoot, tenantId, recentNeeded, admit, recall, origins);
|
|
118
|
-
},
|
|
119
|
-
async contextCandidates(tenantId, filter) {
|
|
120
|
-
return loadContextCandidates(hippoRoot, tenantId, filter);
|
|
121
|
-
},
|
|
122
|
-
async ambientTallies(tenantId, filter) {
|
|
123
|
-
return loadAmbientTallies(hippoRoot, tenantId, filter);
|
|
124
|
-
},
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
function sqliteKeyWrites(hippoRoot) {
|
|
128
|
-
return {
|
|
129
|
-
async createApiKey(mint) {
|
|
130
|
-
onHandle(hippoRoot, (db) => createKeyAt(db, mint));
|
|
131
|
-
},
|
|
132
|
-
async createSelfApiKey(mint) {
|
|
133
|
-
return onHandle(hippoRoot, (db) => createSelfKeyAt(db, mint));
|
|
134
|
-
},
|
|
135
|
-
async listApiKeys(query) {
|
|
136
|
-
return onHandle(hippoRoot, (db) => listApiKeyRows(db, query));
|
|
137
|
-
},
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
function sqliteKeyAudit(hippoRoot) {
|
|
141
|
-
return {
|
|
142
|
-
async revokeApiKey(revoke) {
|
|
143
|
-
return onHandle(hippoRoot, (db) => revokeKeyAt(db, revoke));
|
|
144
|
-
},
|
|
145
|
-
async auditEventsAfter(opts) {
|
|
146
|
-
return onHandle(hippoRoot, (db) => listAuditEventsAfter(db, opts));
|
|
147
|
-
},
|
|
148
|
-
async auditHighId() {
|
|
149
|
-
return onHandle(hippoRoot, auditHighIdAt);
|
|
150
|
-
},
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
/** sqliteStore's continuity read, for the synchronous recall that cannot await the port. */
|
|
154
|
-
export function continuityAt(hippoRoot, tenantId, eventLimit, key) {
|
|
155
|
-
const activeSnapshot = loadActiveTaskSnapshot(hippoRoot, tenantId, key ?? undefined);
|
|
156
|
-
const sessionId = activeSnapshot?.session_id ?? undefined;
|
|
157
|
-
return {
|
|
158
|
-
activeSnapshot,
|
|
159
|
-
sessionHandoff: sessionId ? loadLatestHandoff(hippoRoot, tenantId, sessionId, {}, key ?? undefined) : null,
|
|
160
|
-
recentSessionEvents: sessionId ? listSessionEvents(hippoRoot, tenantId, { session_id: sessionId, limit: eventLimit }) : [],
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
/** sqliteStore's finishRecall, for the synchronous recall that cannot await the port. */
|
|
164
|
-
export function finishRecallAt(hippoRoot, writes) {
|
|
165
|
-
onHandle(hippoRoot, (db) => {
|
|
166
|
-
withWriteScope(db, 'finish_recall', () => {
|
|
167
|
-
writeGoalRecallLog(db, localGoalRecallRows(db, writes.goalLog));
|
|
168
|
-
for (const event of writes.audit)
|
|
169
|
-
appendAuditEvent(db, event);
|
|
170
|
-
});
|
|
171
|
-
// Each opens its own transaction, so neither can share the scope above.
|
|
172
|
-
if (writes.trace)
|
|
173
|
-
writeRecallTrace(db, writes.trace);
|
|
174
|
-
if (writes.strengthen)
|
|
175
|
-
strengthenRetrievedInOwnTx(db, writes.strengthen.ids, writes.strengthen.opts);
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
//# sourceMappingURL=store-port.js.map
|
package/dist/tenant.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { DatabaseSyncLike } from './db.js';
|
|
2
|
-
import type { JsonValue } from './json.js';
|
|
3
|
-
export interface ResolveOpts {
|
|
4
|
-
db?: DatabaseSyncLike;
|
|
5
|
-
apiKey?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare function resolveTenantId(opts: ResolveOpts): string;
|
|
8
|
-
/**
|
|
9
|
-
* Defensive runtime guard for tenant id arguments.
|
|
10
|
-
*
|
|
11
|
-
* The continuity helpers (saveActiveTaskSnapshot, listSessionEvents, etc.)
|
|
12
|
-
* gained a required `tenantId` parameter (schema v22) to close a
|
|
13
|
-
* cross-tenant data leak. TypeScript catches misbinding at compile time, but
|
|
14
|
-
* JavaScript callers from older versions can silently pass a `sessionId`
|
|
15
|
-
* where `tenantId` is now expected, e.g.
|
|
16
|
-
* loadLatestHandoff(root, 'sess-abc') // WRONG: 'sess-abc' becomes the tenant
|
|
17
|
-
* which would silently filter to a non-existent tenant and return null with
|
|
18
|
-
* no error. This guard rejects the most common shape of that mistake (any
|
|
19
|
-
* value beginning with the conventional `sess-` / `sess_` session prefix).
|
|
20
|
-
*
|
|
21
|
-
* False-positive cost: a tenant literally named `sess-...` will be rejected.
|
|
22
|
-
* Acceptable tradeoff for catching the silent-leak class.
|
|
23
|
-
*/
|
|
24
|
-
export declare function assertTenantId(fnName: string, value: JsonValue): asserts value is string;
|
|
25
|
-
//# sourceMappingURL=tenant.d.ts.map
|
package/dist/tenant.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { envTenant } from './env.js';
|
|
2
|
-
import { validateApiKey } from './auth.js';
|
|
3
|
-
export function resolveTenantId(opts) {
|
|
4
|
-
if (opts.apiKey) {
|
|
5
|
-
if (!opts.db)
|
|
6
|
-
throw new Error('resolveTenantId: db required when apiKey is set');
|
|
7
|
-
const ctx = validateApiKey(opts.db, opts.apiKey);
|
|
8
|
-
if (!ctx.valid || !ctx.tenantId)
|
|
9
|
-
throw new Error('invalid api key');
|
|
10
|
-
return ctx.tenantId;
|
|
11
|
-
}
|
|
12
|
-
// L1: empty / whitespace-only HIPPO_TENANT must fall through to 'default'.
|
|
13
|
-
// `??` only catches undefined, so HIPPO_TENANT="" leaked through as the
|
|
14
|
-
// literal empty string and broke every downstream tenant filter.
|
|
15
|
-
return envTenant();
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Defensive runtime guard for tenant id arguments.
|
|
19
|
-
*
|
|
20
|
-
* The continuity helpers (saveActiveTaskSnapshot, listSessionEvents, etc.)
|
|
21
|
-
* gained a required `tenantId` parameter (schema v22) to close a
|
|
22
|
-
* cross-tenant data leak. TypeScript catches misbinding at compile time, but
|
|
23
|
-
* JavaScript callers from older versions can silently pass a `sessionId`
|
|
24
|
-
* where `tenantId` is now expected, e.g.
|
|
25
|
-
* loadLatestHandoff(root, 'sess-abc') // WRONG: 'sess-abc' becomes the tenant
|
|
26
|
-
* which would silently filter to a non-existent tenant and return null with
|
|
27
|
-
* no error. This guard rejects the most common shape of that mistake (any
|
|
28
|
-
* value beginning with the conventional `sess-` / `sess_` session prefix).
|
|
29
|
-
*
|
|
30
|
-
* False-positive cost: a tenant literally named `sess-...` will be rejected.
|
|
31
|
-
* Acceptable tradeoff for catching the silent-leak class.
|
|
32
|
-
*/
|
|
33
|
-
export function assertTenantId(fnName, value) {
|
|
34
|
-
if (typeof value !== 'string' || value.length === 0) {
|
|
35
|
-
throw new Error(`${fnName}: tenantId is required (got ${typeof value})`);
|
|
36
|
-
}
|
|
37
|
-
if (/^sess[-_]/i.test(value)) {
|
|
38
|
-
throw new Error(`${fnName}: tenantId looks like a session id ('${value}'). ` +
|
|
39
|
-
`In v0.41+ these helpers take (hippoRoot, tenantId, ...). ` +
|
|
40
|
-
`Pass the tenant id (e.g. 'default') and the session id separately.`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=tenant.js.map
|
package/dist/trace.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Trace-layer helpers.
|
|
3
|
-
*
|
|
4
|
-
* A trace is a `MemoryEntry` with `layer === 'trace'` that captures an ordered
|
|
5
|
-
* sequence of agent actions and their final outcome. v1 stores steps as
|
|
6
|
-
* markdown in `content`; `renderTraceContent` is the canonical formatter.
|
|
7
|
-
*/
|
|
8
|
-
export interface TraceStep {
|
|
9
|
-
action: string;
|
|
10
|
-
observation: string;
|
|
11
|
-
timestamp?: string;
|
|
12
|
-
}
|
|
13
|
-
export interface TraceRecord {
|
|
14
|
-
task: string;
|
|
15
|
-
steps: TraceStep[];
|
|
16
|
-
outcome: 'success' | 'failure' | 'partial';
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Render a trace record as agent-readable markdown.
|
|
20
|
-
*
|
|
21
|
-
* Format:
|
|
22
|
-
* Task: <task>
|
|
23
|
-
* Outcome: <outcome>
|
|
24
|
-
* Steps:
|
|
25
|
-
* 1. <action>
|
|
26
|
-
* → <observation> (omitted if observation is empty)
|
|
27
|
-
* 2. ...
|
|
28
|
-
*/
|
|
29
|
-
export declare function renderTraceContent(rec: TraceRecord): string;
|
|
30
|
-
/**
|
|
31
|
-
* Parse a JSON string into an array of TraceStep. Throws on invalid shape.
|
|
32
|
-
*/
|
|
33
|
-
export declare function parseSteps(json: string): TraceStep[];
|
|
34
|
-
//# sourceMappingURL=trace.d.ts.map
|
package/dist/transcript-tail.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
// Transcript reads shared by capture.ts and compaction-record.ts; a leaf so neither has to import the other.
|
|
2
|
-
import * as fs from 'fs';
|
|
3
|
-
/** Never read the whole transcript: PreCompact fires exactly when it's largest. */
|
|
4
|
-
export const PRE_COMPACT_TAIL_BYTES = 256 * 1024;
|
|
5
|
-
/** Cut to `maxChars` UTF-16 units, backing off one unit rather than leave half a surrogate pair in a stored field. */
|
|
6
|
-
export function truncateCodePointSafe(text, maxChars) {
|
|
7
|
-
if (text.length <= maxChars)
|
|
8
|
-
return text;
|
|
9
|
-
let end = maxChars;
|
|
10
|
-
if (end > 0) {
|
|
11
|
-
const code = text.charCodeAt(end - 1);
|
|
12
|
-
if (code >= 0xd800 && code <= 0xdbff)
|
|
13
|
-
end -= 1;
|
|
14
|
-
}
|
|
15
|
-
return text.slice(0, end);
|
|
16
|
-
}
|
|
17
|
-
/** The last `capBytes` of a JSONL transcript, read at an offset and starting on a whole line so every line parses. */
|
|
18
|
-
export function readTranscriptTail(transcriptPath, capBytes = PRE_COMPACT_TAIL_BYTES) {
|
|
19
|
-
const size = fs.statSync(transcriptPath).size;
|
|
20
|
-
const start = Math.max(0, size - capBytes);
|
|
21
|
-
const length = size - start;
|
|
22
|
-
if (length <= 0)
|
|
23
|
-
return '';
|
|
24
|
-
const fd = fs.openSync(transcriptPath, 'r');
|
|
25
|
-
try {
|
|
26
|
-
// A seek that lands just after '\n' already starts a whole line and must keep it.
|
|
27
|
-
let onLineBoundary = start === 0;
|
|
28
|
-
if (!onLineBoundary) {
|
|
29
|
-
const prevByte = Buffer.alloc(1);
|
|
30
|
-
fs.readSync(fd, prevByte, 0, 1, start - 1);
|
|
31
|
-
onLineBoundary = prevByte[0] === 0x0a; // '\n'
|
|
32
|
-
}
|
|
33
|
-
const buf = Buffer.alloc(length);
|
|
34
|
-
fs.readSync(fd, buf, 0, length, start);
|
|
35
|
-
let text = buf.toString('utf8');
|
|
36
|
-
if (!onLineBoundary) {
|
|
37
|
-
// Landed mid-line — drop the partial first line so every remaining
|
|
38
|
-
// line parses as complete JSON.
|
|
39
|
-
const nl = text.indexOf('\n');
|
|
40
|
-
text = nl === -1 ? '' : text.slice(nl + 1);
|
|
41
|
-
}
|
|
42
|
-
return text;
|
|
43
|
-
}
|
|
44
|
-
finally {
|
|
45
|
-
fs.closeSync(fd);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=transcript-tail.js.map
|
package/dist/version.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Single source of truth for the hippo-memory binary's package version.
|
|
3
|
-
*
|
|
4
|
-
* Written by `npm version <x> --no-git-tag-version` through
|
|
5
|
-
* scripts/sync-version.mjs, with the three plugin manifests; never edit it by
|
|
6
|
-
* hand. scripts/check-manifest-versions.mjs gates publish on all seven sites.
|
|
7
|
-
*
|
|
8
|
-
* Used by:
|
|
9
|
-
* - src/db/migrate.ts rollback-safety guard (refuses to open a DB stamped with
|
|
10
|
-
* min_compatible_binary newer than this).
|
|
11
|
-
* - src/server.ts HTTP /health.
|
|
12
|
-
* - src/mcp/server.ts MCP serverInfo.
|
|
13
|
-
*
|
|
14
|
-
* Why not read package.json at runtime: the npm-published bundle ships
|
|
15
|
-
* compiled `dist/` files that may not have package.json on a relative path
|
|
16
|
-
* an ESM `import` can resolve cleanly, and a hardcoded constant survives
|
|
17
|
-
* any packager that drops .json files.
|
|
18
|
-
*/
|
|
19
|
-
export declare const PACKAGE_VERSION = "1.69.0";
|
|
20
|
-
/** The floor a store takes on its first expiring key: the first release with schema v53, set by hand in that release; scripts/check-expiring-keys-floor.mjs gates it. */
|
|
21
|
-
export declare const EXPIRING_KEYS_MIN_BINARY = "1.64.0";
|
|
22
|
-
/** The floor a store takes on its first session bind or owner snapshot: first release with v54; set by hand in that release. */
|
|
23
|
-
export declare const TASK_OWNER_MIN_BINARY = "1.64.0";
|
|
24
|
-
/** Compares plain x.y.z versions, positive if a > b; tags throw so the rollback guard never misfires silently. */
|
|
25
|
-
export declare function compareSemver(a: string, b: string): number;
|
|
26
|
-
//# sourceMappingURL=version.d.ts.map
|