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/api/remember.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
// Write path: remember stores one memory after secret vetting and, for untrusted content, the instruction check.
|
|
2
|
-
import { writeEntry } from '../store/entry-writes.js';
|
|
3
2
|
import { stampOriginProject } from '../store/entry-row.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
3
|
+
import { detectInstruction } from './instruction-detect.js';
|
|
4
|
+
import { quarantineScopeFor } from '../trust/quarantine.js';
|
|
5
|
+
import { createMemory } from '../core/memory.js';
|
|
6
|
+
import { loadConfig } from '../core/config.js';
|
|
7
|
+
import { vetSecrets } from '../util/secret-detect.js';
|
|
8
|
+
import { assertCallerProject } from '../core/project-identity.js';
|
|
9
|
+
import { BadRequestError } from '../core/api-errors.js';
|
|
10
|
+
import { assertClientScope, personalScopeOf } from '../store/recall-scope.js';
|
|
11
|
+
import { andThen, notPorted, onStore } from './on-store.js';
|
|
13
12
|
/** The scope a write lands in: the caller's own personal scope when asked for, else the client's, which may not be a personal one. */
|
|
14
13
|
function rememberScope(ctx, opts) {
|
|
15
14
|
if (!opts.personal) {
|
|
@@ -32,7 +31,15 @@ function prepareRemember(ctx, opts) {
|
|
|
32
31
|
const requestedScope = rememberScope(ctx, opts);
|
|
33
32
|
const vetted = vetSecrets(opts.content, opts.tags ?? [], opts.untrusted === true);
|
|
34
33
|
const detection = opts.untrusted ? detectInstruction(vetted.content) : { flagged: false, reason: null };
|
|
35
|
-
const
|
|
34
|
+
const local = opts.local ?? {};
|
|
35
|
+
const created = createMemory(vetted.content, {
|
|
36
|
+
layer: local.layer,
|
|
37
|
+
pinned: local.pinned,
|
|
38
|
+
confidence: local.confidence,
|
|
39
|
+
source: local.source,
|
|
40
|
+
schema_fit: local.schemaFit,
|
|
41
|
+
trace_outcome: local.traceOutcome,
|
|
42
|
+
source_session_id: local.sourceSessionId,
|
|
36
43
|
kind: opts.kind ?? 'distilled',
|
|
37
44
|
scope: detection.flagged ? quarantineScopeFor(requestedScope) : requestedScope,
|
|
38
45
|
owner: opts.owner ?? null,
|
|
@@ -41,54 +48,43 @@ function prepareRemember(ctx, opts) {
|
|
|
41
48
|
tenantId: ctx.tenantId,
|
|
42
49
|
baseHalfLifeDays: loadConfig(ctx.hippoRoot).defaultHalfLifeDays,
|
|
43
50
|
});
|
|
51
|
+
const entry = local.weaken ? weakened(created, local.weaken) : created;
|
|
44
52
|
// Aliases only widen what a reader matches; a row has one origin. A personal row's '' follows its owner into every project.
|
|
45
53
|
const origin = opts.personal ? '' : opts.project?.name;
|
|
46
54
|
const stamped = origin !== undefined ? { ...entry, origin_project: origin } : entry;
|
|
47
55
|
return { entry: stamped, requestedScope, detection, warnings: vetted.warnings };
|
|
48
56
|
}
|
|
49
|
-
function
|
|
57
|
+
function weakened(entry, weaken) {
|
|
58
|
+
return { ...entry, strength: weaken.strength, half_life_days: Math.max(1, entry.half_life_days * weaken.halfLifeFactor) };
|
|
59
|
+
}
|
|
60
|
+
function rememberResult(ctx, prepared, written) {
|
|
50
61
|
const { entry, detection, warnings } = prepared;
|
|
51
62
|
const result = { id: entry.id, kind: entry.kind, tenantId: ctx.tenantId };
|
|
52
63
|
if (detection.flagged)
|
|
53
64
|
result.quarantined = { reason: detection.reason ?? 'unknown' };
|
|
54
65
|
if (warnings.length > 0)
|
|
55
66
|
result.warnings = [...warnings];
|
|
67
|
+
if (written?.outcome === 'duplicate')
|
|
68
|
+
result.duplicate = { memoryId: written.memoryId };
|
|
56
69
|
return result;
|
|
57
70
|
}
|
|
58
|
-
/**
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
// SAFETY: a C typed with a store gets the promise its path returns; a wide C is typed as the union, which a caller has to await anyway.
|
|
62
|
-
return reply;
|
|
63
|
-
}
|
|
64
|
-
/** afterWrite and the quarantine row write on hippo.db's own handle, and only connectors send them, so a store refuses both. */
|
|
65
|
-
async function rememberThroughStore(ctx, store, opts) {
|
|
66
|
-
const entryWrites = requireGroup(store, 'entryWrites');
|
|
67
|
-
if (opts.afterWrite || opts.untrusted)
|
|
68
|
-
throw new Error('afterWrite and untrusted content are written to hippo.db only, never through a store');
|
|
69
|
-
const prepared = prepareRemember(ctx, opts);
|
|
70
|
-
// The store writes origin_project as given, so the served folder's fallback is stamped here.
|
|
71
|
-
await entryWrites.writeEntry({ entry: stampOriginProject(ctx.hippoRoot, prepared.entry), actor: ctx.actor.subject });
|
|
72
|
-
return rememberResult(ctx, prepared);
|
|
71
|
+
/** A flagged row's review record, which the store writes in the row's own transaction. */
|
|
72
|
+
function quarantineOf({ requestedScope, detection }) {
|
|
73
|
+
return detection.flagged ? { originalScope: requestedScope, reason: detection.reason ?? 'unknown' } : undefined;
|
|
73
74
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
opts.afterWrite?.(db, memoryId);
|
|
89
|
-
}
|
|
90
|
-
: opts.afterWrite;
|
|
91
|
-
writeEntry(ctx.hippoRoot, prepared.entry, { actor: ctx.actor.subject, afterWrite });
|
|
92
|
-
return rememberResult(ctx, prepared);
|
|
75
|
+
/** Store one memory: the store's entryWrites group writes the row and its one remember audit row, under the caller's subject.
|
|
76
|
+
* A write that carries a connector event or untrusted content goes through connectorWrites, which commits its companion rows with it. */
|
|
77
|
+
export function remember(ctx, opts) {
|
|
78
|
+
return onStore(ctx, (port) => {
|
|
79
|
+
const entryWrites = port.entryWrites ?? notPorted(port, 'entryWrites');
|
|
80
|
+
const prepared = prepareRemember(ctx, opts);
|
|
81
|
+
// A store writes origin_project as given, so the served folder's fallback is stamped here.
|
|
82
|
+
const write = { entry: stampOriginProject(ctx.hippoRoot, prepared.entry), actor: ctx.actor.subject };
|
|
83
|
+
if (opts.untrusted !== true && opts.event === undefined)
|
|
84
|
+
return andThen(entryWrites.writeEntry(write), () => rememberResult(ctx, prepared));
|
|
85
|
+
const connectorWrites = port.connectorWrites ?? notPorted(port, 'connectorWrites');
|
|
86
|
+
const written = connectorWrites.writeConnectorEntry({ ...write, event: opts.event, quarantine: quarantineOf(prepared) });
|
|
87
|
+
return andThen(written, (outcome) => rememberResult(ctx, prepared, outcome));
|
|
88
|
+
});
|
|
93
89
|
}
|
|
94
90
|
//# sourceMappingURL=remember.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type Context } from './types.js';
|
|
2
|
+
/** Binds `sessionId` to the caller's owner on first use; a session another owner holds is a 409, so the client can set it aside. */
|
|
3
|
+
export declare function bindSessionOwner(ctx: Context, sessionId: string): void;
|
|
4
|
+
//# sourceMappingURL=session-owners.d.ts.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// A session id belongs to the first owner that binds it, so one developer's client cannot write into another's session.
|
|
2
|
+
import { ConflictError } from '../core/api-errors.js';
|
|
3
|
+
import { ownerOrSubject } from './types.js';
|
|
4
|
+
import { sessionOwnerOrBind } from '../store/sessions.js';
|
|
5
|
+
import { assertTenantId } from '../store/tenant.js';
|
|
6
|
+
import { DAY_MS } from '../util/time.js';
|
|
7
|
+
/** Bindings older than this are pruned when a new session binds. */
|
|
8
|
+
const BINDING_RETENTION_DAYS = 90;
|
|
9
|
+
/** Binds `sessionId` to the caller's owner on first use; a session another owner holds is a 409, so the client can set it aside. */
|
|
10
|
+
export function bindSessionOwner(ctx, sessionId) {
|
|
11
|
+
assertTenantId('bindSessionOwner', ctx.tenantId);
|
|
12
|
+
const owner = ownerOrSubject(ctx.actor);
|
|
13
|
+
const bound = sessionOwnerOrBind(ctx.hippoRoot, { tenantId: ctx.tenantId, sessionId, owner, retentionMs: BINDING_RETENTION_DAYS * DAY_MS });
|
|
14
|
+
if (bound !== owner)
|
|
15
|
+
throw new ConflictError('session id belongs to another caller');
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=session-owners.js.map
|
package/dist/api/sleep-run.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { loadAllEntries } from '../store/entry-reads.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { autoShare } from '../shared.js';
|
|
2
|
+
import { auditMemories } from '../store/audit.js';
|
|
3
|
+
import { autoShare } from '../sharing/share.js';
|
|
5
4
|
import { consolidate } from '../consolidate/sleep.js';
|
|
6
|
-
import { loadConfig } from '../config.js';
|
|
7
|
-
import { deduplicateStore } from '../dedupe.js';
|
|
8
|
-
import { computeAmbientState } from '../ambient.js';
|
|
9
|
-
import { loadPendingExtractionTenants } from '../graph
|
|
10
|
-
import { type ExtractResult } from '../graph
|
|
5
|
+
import { loadConfig } from '../core/config.js';
|
|
6
|
+
import { deduplicateStore } from '../consolidate/dedupe.js';
|
|
7
|
+
import { computeAmbientState } from '../core/ambient.js';
|
|
8
|
+
import { loadPendingExtractionTenants } from '../store/graph-queue.js';
|
|
9
|
+
import { type ExtractResult } from '../graph/extract.js';
|
|
11
10
|
import type { Context } from './types.js';
|
|
12
11
|
import type { SleepOpts, SleepResult } from './sleep.js';
|
|
13
12
|
/** Test-only seam: `runSleep` overrides force a phase to throw into emitSleepAudit's `partial: true` row; production never sets them. */
|
|
@@ -17,7 +16,6 @@ export interface SleepPhases {
|
|
|
17
16
|
auditMemories: typeof auditMemories;
|
|
18
17
|
autoShare: typeof autoShare;
|
|
19
18
|
loadAllEntries: typeof loadAllEntries;
|
|
20
|
-
deleteEntry: typeof deleteEntry;
|
|
21
19
|
computeAmbientState: typeof computeAmbientState;
|
|
22
20
|
loadConfig: typeof loadConfig;
|
|
23
21
|
loadPendingExtractionTenants: typeof loadPendingExtractionTenants;
|
package/dist/api/sleep-run.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
// The sleep pipeline behind `sleep`, with its phase dependencies injectable; kept out of the package root.
|
|
2
|
-
import { openHippoDb, closeHippoDb } from '../db.js';
|
|
3
2
|
import { loadAllEntries } from '../store/entry-reads.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
3
|
+
import { memoriesBackingObjects } from '../store/delete-and-batch.js';
|
|
4
|
+
import { reportAuditWriteFailure, auditMemories } from '../store/audit.js';
|
|
5
|
+
import { sqliteSyncStore } from '../store/sqlite/store.js';
|
|
6
|
+
import { autoShare } from '../sharing/share.js';
|
|
7
7
|
import { consolidate } from '../consolidate/sleep.js';
|
|
8
8
|
import { failedUnitOf } from '../store/delete-and-batch.js';
|
|
9
|
-
import { loadConfig } from '../config.js';
|
|
10
|
-
import { deduplicateStore } from '../dedupe.js';
|
|
11
|
-
import { computeAmbientState } from '../ambient.js';
|
|
12
|
-
import { loadPendingExtractionTenants } from '../graph
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
9
|
+
import { loadConfig } from '../core/config.js';
|
|
10
|
+
import { deduplicateStore } from '../consolidate/dedupe.js';
|
|
11
|
+
import { computeAmbientState } from '../core/ambient.js';
|
|
12
|
+
import { loadPendingExtractionTenants, markPendingProcessedUpTo } from '../store/graph-queue.js';
|
|
13
|
+
import { extractGraphChunked } from '../graph/extract.js';
|
|
14
|
+
import { removeAuditErrors } from './audit.js';
|
|
15
|
+
import { errorMessage } from '../util/log.js';
|
|
15
16
|
const DEFAULT_SLEEP_PHASES = {
|
|
16
17
|
consolidate,
|
|
17
18
|
deduplicateStore,
|
|
18
19
|
auditMemories,
|
|
19
20
|
autoShare,
|
|
20
21
|
loadAllEntries,
|
|
21
|
-
deleteEntry,
|
|
22
22
|
computeAmbientState,
|
|
23
23
|
loadConfig,
|
|
24
24
|
loadPendingExtractionTenants,
|
|
@@ -28,18 +28,15 @@ const DEFAULT_SLEEP_PHASES = {
|
|
|
28
28
|
export async function runSleep(ctx, opts, overrides = {}) {
|
|
29
29
|
const dryRun = Boolean(opts.dryRun);
|
|
30
30
|
const phases = { ...DEFAULT_SLEEP_PHASES, ...overrides };
|
|
31
|
-
// Phase counters for the consolidate audit emit (in finally).
|
|
32
|
-
// Accumulated as each phase completes so partial-failure paths still report
|
|
33
|
-
// accurate "what got done before the failure" data.
|
|
31
|
+
// Phase counters for the consolidate audit emit (in finally), accumulated per phase so a partial failure still reports what got done.
|
|
34
32
|
const counts = { consolidation: 0, dedup: 0, auditDeleted: 0, ambient: 0 };
|
|
35
33
|
let phaseError = null;
|
|
36
34
|
try {
|
|
37
35
|
return await runSleepPhases(ctx, opts, phases, counts);
|
|
38
36
|
}
|
|
39
37
|
catch (err) {
|
|
40
|
-
// SAFETY: phaseError is read via phaseError.message / (phaseError !==
|
|
41
|
-
//
|
|
42
|
-
// the existing lenient (err as Error) pattern used throughout this catch chain.
|
|
38
|
+
// SAFETY: phaseError is only read via phaseError.message / (phaseError !== null) below, safe even if a non-Error was thrown;
|
|
39
|
+
// this mirrors the lenient (err as Error) pattern used through this catch chain.
|
|
43
40
|
phaseError = err;
|
|
44
41
|
throw err;
|
|
45
42
|
}
|
|
@@ -60,14 +57,15 @@ async function runSleepPhases(ctx, opts, phases, counts) {
|
|
|
60
57
|
if (dedupResult.removed > 0)
|
|
61
58
|
result.deduped = dedupSummary(dedupResult);
|
|
62
59
|
// Phase 3: Quality audit (remove junk, report warnings; a dry run skips rows earlier phases would remove).
|
|
63
|
-
|
|
60
|
+
const audited = runQualityAudit(ctx, phases, { dryRun, consolidateResult, dedupResult, result });
|
|
61
|
+
counts.auditDeleted = audited.removed;
|
|
64
62
|
if (dryRun)
|
|
65
63
|
return result;
|
|
66
64
|
// Phase 4: Auto-share high-transfer-score memories to global.
|
|
67
65
|
if (!opts.noShare)
|
|
68
66
|
shareOnSleep(ctx, phases, result);
|
|
69
67
|
// Phase 5: Post-sleep ambient state summary.
|
|
70
|
-
counts.ambient = summarizeAmbient(ctx, phases, result);
|
|
68
|
+
counts.ambient = summarizeAmbient(ctx, phases, result, audited.remaining);
|
|
71
69
|
await drainGraphQueue(ctx, phases, snapshot, result);
|
|
72
70
|
return result;
|
|
73
71
|
}
|
|
@@ -80,10 +78,7 @@ function snapshotDirtyTenants(ctx, phases, dryRun) {
|
|
|
80
78
|
snapshot.dirtyTenants = phases.loadPendingExtractionTenants(ctx.hippoRoot);
|
|
81
79
|
}
|
|
82
80
|
catch (snapErr) {
|
|
83
|
-
|
|
84
|
-
// any JS value is safe (undefined if absent), preserving the existing
|
|
85
|
-
// lenient formatting even when something non-Error was thrown.
|
|
86
|
-
snapshot.error = snapErr.message;
|
|
81
|
+
snapshot.error = errorMessage(snapErr);
|
|
87
82
|
}
|
|
88
83
|
}
|
|
89
84
|
return snapshot;
|
|
@@ -118,28 +113,26 @@ function dedupSummary(dedupResult) {
|
|
|
118
113
|
crossDups,
|
|
119
114
|
};
|
|
120
115
|
}
|
|
121
|
-
/**
|
|
122
|
-
function runQualityAudit(ctx, phases,
|
|
116
|
+
/** `removed` counts audit errors deleted (or that would be under dryRun); `remaining` is what the audit read, less the rows it deleted. */
|
|
117
|
+
function runQualityAudit(ctx, phases, options) {
|
|
118
|
+
const { dryRun, consolidateResult, dedupResult, result } = options;
|
|
123
119
|
const planned = new Set(dryRun ? [...(consolidateResult.removedIds ?? []), ...dedupResult.pairs.map((p) => p.removed)] : []);
|
|
124
120
|
const allEntries = phases.loadAllEntries(ctx.hippoRoot).filter((e) => !planned.has(e.id));
|
|
125
121
|
const auditOut = phases.auditMemories(allEntries, memoriesBackingObjects(ctx.hippoRoot));
|
|
126
122
|
if (auditOut.issues.length === 0)
|
|
127
|
-
return 0;
|
|
123
|
+
return { removed: 0, remaining: allEntries };
|
|
128
124
|
const errors = auditOut.issues.filter((i) => i.severity === 'error');
|
|
129
125
|
const warnings = auditOut.issues.filter((i) => i.severity === 'warning');
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (dryRun || phases.deleteEntry(ctx.hippoRoot, issue.memoryId, { actor: ctx.actor.subject, reason, automatic: true }))
|
|
134
|
-
removed++;
|
|
135
|
-
}
|
|
126
|
+
const gone = dryRun ? errors.map((issue) => issue.memoryId) : removeAuditErrors(ctx, 'sleep-audit', errors);
|
|
127
|
+
const removed = gone.length;
|
|
128
|
+
const deleted = new Set(gone);
|
|
136
129
|
if (removed > 0 || warnings.length > 0) {
|
|
137
130
|
result.audit = {
|
|
138
131
|
errorsRemoved: removed,
|
|
139
132
|
warningCount: warnings.length,
|
|
140
133
|
};
|
|
141
134
|
}
|
|
142
|
-
return removed;
|
|
135
|
+
return { removed, remaining: allEntries.filter((e) => !deleted.has(e.id)) };
|
|
143
136
|
}
|
|
144
137
|
function shareOnSleep(ctx, phases, result) {
|
|
145
138
|
const sleepConfig = phases.loadConfig(ctx.hippoRoot);
|
|
@@ -159,11 +152,11 @@ function shareOnSleep(ctx, phases, result) {
|
|
|
159
152
|
}
|
|
160
153
|
}
|
|
161
154
|
/** Returns the ambient total the audit row reports: 0 when ambient is off or no current row is left. */
|
|
162
|
-
function summarizeAmbient(ctx, phases, result) {
|
|
155
|
+
function summarizeAmbient(ctx, phases, result, loaded) {
|
|
163
156
|
const postSleepConfig = phases.loadConfig(ctx.hippoRoot);
|
|
164
157
|
if (!postSleepConfig.ambient.enabled)
|
|
165
158
|
return 0;
|
|
166
|
-
const postSleepEntries =
|
|
159
|
+
const postSleepEntries = loaded.filter((e) => !e.superseded_by);
|
|
167
160
|
if (postSleepEntries.length === 0)
|
|
168
161
|
return 0;
|
|
169
162
|
result.ambient = phases.computeAmbientState(postSleepEntries);
|
|
@@ -180,49 +173,45 @@ async function drainGraphQueue(ctx, phases, snapshot, result) {
|
|
|
180
173
|
`graph: dirty-tenant snapshot failed (skipped graph refresh): ${snapshot.error}`,
|
|
181
174
|
];
|
|
182
175
|
}
|
|
183
|
-
|
|
184
|
-
let gEntities = 0;
|
|
185
|
-
let gRelations = 0;
|
|
176
|
+
const rebuilt = { tenants: 0, entities: 0, relations: 0 };
|
|
186
177
|
// dirtyTenants was snapshotted before the memory-deleting phases above.
|
|
187
178
|
for (const { tenantId, maxPendingId } of snapshot.dirtyTenants) {
|
|
188
|
-
|
|
189
|
-
const ext = await phases.extractGraph(ctx.hippoRoot, tenantId);
|
|
190
|
-
// Count the rebuild as soon as it succeeds — it happened regardless of
|
|
191
|
-
// the drain-mark below.
|
|
192
|
-
gTenants += 1;
|
|
193
|
-
gEntities += ext.entities;
|
|
194
|
-
gRelations += ext.relations;
|
|
195
|
-
if (ext.skipped) {
|
|
196
|
-
result.details = [
|
|
197
|
-
...(result.details ?? []),
|
|
198
|
-
`graph: ${ext.skipped} stale op(s) skipped for a tenant; the next sleep redoes them`,
|
|
199
|
-
];
|
|
200
|
-
}
|
|
201
|
-
// Watermark drain: only items enqueued before this rebuild started are marked; later arrivals stay pending.
|
|
202
|
-
// Marked only after the last chunk, so a run stopped between chunks leaves the tenant for the next one.
|
|
203
|
-
markPendingProcessedUpTo(ctx.hippoRoot, tenantId, maxPendingId);
|
|
204
|
-
}
|
|
205
|
-
catch (tenantErr) {
|
|
206
|
-
// SAFETY: this is a best-effort log message only; property access
|
|
207
|
-
// on any JS value is safe (undefined if absent), preserving the
|
|
208
|
-
// existing lenient formatting even when something non-Error was thrown.
|
|
209
|
-
result.details = [
|
|
210
|
-
...(result.details ?? []),
|
|
211
|
-
`graph: extract failed for a dirty tenant (left pending): ${tenantErr.message}`,
|
|
212
|
-
];
|
|
213
|
-
}
|
|
179
|
+
await rebuildDirtyTenant(ctx, phases, { tenantId, maxPendingId }, rebuilt, result);
|
|
214
180
|
}
|
|
215
|
-
if (
|
|
216
|
-
result.graph =
|
|
181
|
+
if (rebuilt.tenants > 0) {
|
|
182
|
+
result.graph = rebuilt;
|
|
217
183
|
}
|
|
218
184
|
}
|
|
219
185
|
catch (graphErr) {
|
|
220
|
-
// SAFETY: this is a best-effort log message only; property access on
|
|
221
|
-
// any JS value is safe (undefined if absent), preserving the existing
|
|
222
|
-
// lenient formatting even when something non-Error was thrown.
|
|
223
186
|
result.details = [
|
|
224
187
|
...(result.details ?? []),
|
|
225
|
-
`graph: drain phase failed (skipped): ${graphErr
|
|
188
|
+
`graph: drain phase failed (skipped): ${errorMessage(graphErr)}`,
|
|
189
|
+
];
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/** Rebuilds one dirty tenant's graph into `rebuilt` and drains its queue; a failure is a detail line and the tenant stays pending. */
|
|
193
|
+
async function rebuildDirtyTenant(ctx, phases, dirty, rebuilt, result) {
|
|
194
|
+
try {
|
|
195
|
+
const ext = await phases.extractGraph(ctx.hippoRoot, dirty.tenantId);
|
|
196
|
+
// Count the rebuild as soon as it succeeds — it happened regardless of
|
|
197
|
+
// the drain-mark below.
|
|
198
|
+
rebuilt.tenants += 1;
|
|
199
|
+
rebuilt.entities += ext.entities;
|
|
200
|
+
rebuilt.relations += ext.relations;
|
|
201
|
+
if (ext.skipped) {
|
|
202
|
+
result.details = [
|
|
203
|
+
...(result.details ?? []),
|
|
204
|
+
`graph: ${ext.skipped} stale op(s) skipped for a tenant; the next sleep redoes them`,
|
|
205
|
+
];
|
|
206
|
+
}
|
|
207
|
+
// Watermark drain: only items enqueued before this rebuild started are marked; later arrivals stay pending.
|
|
208
|
+
// Marked only after the last chunk, so a run stopped between chunks leaves the tenant for the next one.
|
|
209
|
+
markPendingProcessedUpTo(ctx.hippoRoot, dirty.tenantId, dirty.maxPendingId);
|
|
210
|
+
}
|
|
211
|
+
catch (tenantErr) {
|
|
212
|
+
result.details = [
|
|
213
|
+
...(result.details ?? []),
|
|
214
|
+
`graph: extract failed for a dirty tenant (left pending): ${errorMessage(tenantErr)}`,
|
|
226
215
|
];
|
|
227
216
|
}
|
|
228
217
|
}
|
|
@@ -230,34 +219,29 @@ async function drainGraphQueue(ctx, phases, snapshot, result) {
|
|
|
230
219
|
// Its own handle; an audit failure is logged and never replaces the original phase error.
|
|
231
220
|
function emitSleepAudit(ctx, opts, dryRun, counts, phaseError) {
|
|
232
221
|
try {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
appendAuditEvent(db, {
|
|
222
|
+
// Tagged '__host__' because sleep is host-wide; the actor still names the operator who ran it.
|
|
223
|
+
const sleepAuditMetadata = {
|
|
224
|
+
consolidationCount: counts.consolidation,
|
|
225
|
+
dedupCount: counts.dedup,
|
|
226
|
+
auditDeletedCount: counts.auditDeleted,
|
|
227
|
+
ambientTotal: counts.ambient,
|
|
228
|
+
dryRun,
|
|
229
|
+
noShare: opts.noShare ?? false,
|
|
230
|
+
partial: phaseError !== null,
|
|
231
|
+
triggeredByTenant: ctx.tenantId, // preserve for audit forensics
|
|
232
|
+
};
|
|
233
|
+
if (phaseError)
|
|
234
|
+
sleepAuditMetadata.errorMessage = phaseError.message;
|
|
235
|
+
// A flush stopped between chunks names the unit it would have committed next, so a unit that fails every night can be found.
|
|
236
|
+
const nextUnitIds = failedUnitOf(phaseError);
|
|
237
|
+
if (nextUnitIds)
|
|
238
|
+
sleepAuditMetadata.nextUnitIds = nextUnitIds;
|
|
239
|
+
sqliteSyncStore(ctx.hippoRoot).appendAuditEvents([{
|
|
252
240
|
tenantId: '__host__',
|
|
253
241
|
actor: ctx.actor.subject,
|
|
254
242
|
op: 'consolidate',
|
|
255
243
|
metadata: { ...sleepAuditMetadata },
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
finally {
|
|
259
|
-
closeHippoDb(db);
|
|
260
|
-
}
|
|
244
|
+
}]);
|
|
261
245
|
}
|
|
262
246
|
catch (auditErr) {
|
|
263
247
|
// Logged, never thrown: a second failure must not mask the original phaseError.
|
package/dist/api/sleep.d.ts
CHANGED
|
@@ -1,26 +1,20 @@
|
|
|
1
|
-
import type { AmbientState } from '../ambient.js';
|
|
1
|
+
import type { AmbientState } from '../core/ambient.js';
|
|
2
2
|
import type { Context } from './types.js';
|
|
3
3
|
/** Options for `sleep`, one consolidation cycle on a SQLite store that returns counts; unlike `hippo sleep` it skips the auto-learn step. */
|
|
4
4
|
export interface SleepOpts {
|
|
5
5
|
/** Report what a sleep would change without applying it; sharing, the ambient summary and the graph refresh are skipped. */
|
|
6
6
|
dryRun?: boolean;
|
|
7
|
-
/** Skip copying high-scoring memories to the global store under `HIPPO_HOME`. Default
|
|
7
|
+
/** Skip copying high-scoring memories to the global store under `HIPPO_HOME`. Default
|
|
8
|
+
* false, so every tenant's memories are eligible; multi-tenant callers pass `true`. */
|
|
8
9
|
noShare?: boolean;
|
|
9
10
|
}
|
|
10
11
|
export interface SleepResult {
|
|
11
12
|
active: number;
|
|
12
13
|
removed: number;
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* deleting (config `dormant.enabled`). Absent when 0. Per-invocation
|
|
16
|
-
* activity counter, same class as `removed`.
|
|
17
|
-
*/
|
|
14
|
+
/** Faded memories the decay pass moved to the dormant store instead of deleting (config `dormant.enabled`); absent when 0. Per-invocation counter, like
|
|
15
|
+
* `removed`. */
|
|
18
16
|
dormant?: number;
|
|
19
|
-
/**
|
|
20
|
-
* Dormant memories deleted for good this sleep because they outlived
|
|
21
|
-
* `dormant.retentionDays`. Absent when 0. Same per-invocation class as
|
|
22
|
-
* `removed`.
|
|
23
|
-
*/
|
|
17
|
+
/** Dormant memories deleted for good this sleep for outliving `dormant.retentionDays`; absent when 0. Per-invocation counter, like `removed`. */
|
|
24
18
|
dormantExpired?: number;
|
|
25
19
|
mergedEpisodic: number;
|
|
26
20
|
newSemantic: number;
|
|
@@ -36,26 +30,13 @@ export interface SleepResult {
|
|
|
36
30
|
warningCount: number;
|
|
37
31
|
};
|
|
38
32
|
shared?: number;
|
|
39
|
-
/**
|
|
40
|
-
* Count of memories the auto-share secret veto withheld this sleep
|
|
41
|
-
* — rows that passed every other admission gate (transfer score,
|
|
42
|
-
* not-already-global) and were blocked solely by `detectSecret`. Absent
|
|
43
|
-
* when 0 or when auto-share did not run.
|
|
44
|
-
*/
|
|
33
|
+
/** Memories the auto-share secret veto withheld: rows that passed every other gate but `detectSecret`; absent when 0 or auto-share did not run. */
|
|
45
34
|
secretSkipped?: number;
|
|
46
|
-
/**
|
|
47
|
-
* Count of auto-share candidates the GLOBAL store's rejection
|
|
48
|
-
* tombstone refused this sleep; copy paths must not let one rejected
|
|
49
|
-
* candidate abort the batch. Absent when 0 or when auto-share did not run.
|
|
50
|
-
*/
|
|
35
|
+
/** Auto-share candidates the GLOBAL store's rejection tombstone refused (one must not abort the batch); absent when 0 or auto-share did not run. */
|
|
51
36
|
rejectedSkipped?: number;
|
|
52
37
|
ambient?: AmbientState | null;
|
|
53
|
-
/**
|
|
54
|
-
*
|
|
55
|
-
* this sleep. Absent when no tenant was dirty, and under dryRun (the graph
|
|
56
|
-
* phase runs only on a real sleep). Cross-tenant aggregate, one reason
|
|
57
|
-
* /v1/sleep stays loopback-only.
|
|
58
|
-
*/
|
|
38
|
+
/** Graph re-extraction totals across tenants rebuilt this sleep; absent when none was dirty or under dryRun.
|
|
39
|
+
* Cross-tenant aggregate: one reason /v1/sleep stays loopback-only. */
|
|
59
40
|
graph?: {
|
|
60
41
|
tenants: number;
|
|
61
42
|
entities: number;
|
package/dist/api/tokens.d.ts
CHANGED
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { TokenSummary, TokenSurface } from '../store/token-ledger.js';
|
|
2
|
+
import type { FailureSummary } from '../store/failure-log.js';
|
|
3
3
|
import type { Context } from './types.js';
|
|
4
|
-
/**
|
|
5
|
-
* Record memory text handed to an agent in the token ledger.
|
|
6
|
-
* Best-effort: never throws, because a ledger failure must not fail the
|
|
7
|
-
* recall or context call that produced the text.
|
|
8
|
-
*/
|
|
4
|
+
/** Records memory text handed to an agent in the token ledger. Best-effort: never throws, since a ledger failure must not fail the recall or context call. */
|
|
9
5
|
export declare function recordTokens(ctx: Context, surface: TokenSurface, use: {
|
|
10
6
|
items: number;
|
|
11
7
|
tokens: number;
|
|
12
8
|
sessionId?: string | null;
|
|
13
9
|
}): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
16
|
-
* tokens sent, skipped as unchanged and re-read by later model calls, per
|
|
17
|
-
* surface, with session counts and mean tokens per session.
|
|
18
|
-
*/
|
|
10
|
+
/** Token ledger totals for the tenant over the last `days` days (default 30): tokens sent, skipped as unchanged and re-read,
|
|
11
|
+
* per surface, with session counts and mean tokens per session. */
|
|
19
12
|
export declare function tokenSummary(ctx: Context, opts?: {
|
|
20
13
|
days?: number;
|
|
21
14
|
}): TokenSummary;
|
package/dist/api/tokens.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
// Token-use and failure reports.
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
/**
|
|
8
|
-
* Record memory text handed to an agent in the token ledger.
|
|
9
|
-
* Best-effort: never throws, because a ledger failure must not fail the
|
|
10
|
-
* recall or context call that produced the text.
|
|
11
|
-
*/
|
|
2
|
+
import { rethrowIfSqliteBlocked } from '../db/index.js';
|
|
3
|
+
import { storeFor } from '../store/index.js';
|
|
4
|
+
import { failureLogSummary, tokenUseSummary } from '../store/usage-reports.js';
|
|
5
|
+
import { errorMessage, log } from '../util/log.js';
|
|
6
|
+
import { DAY_MS } from '../util/time.js';
|
|
7
|
+
/** Records memory text handed to an agent in the token ledger. Best-effort: never throws, since a ledger failure must not fail the recall or context call. */
|
|
12
8
|
export async function recordTokens(ctx, surface, use) {
|
|
13
9
|
try {
|
|
14
10
|
await storeFor(ctx).recordTokens({
|
|
@@ -22,35 +18,20 @@ export async function recordTokens(ctx, surface, use) {
|
|
|
22
18
|
}
|
|
23
19
|
catch (err) {
|
|
24
20
|
rethrowIfSqliteBlocked(err);
|
|
25
|
-
log.warnThenDebug('api-token-ledger', `token ledger write failed; the reply is unaffected: ${
|
|
21
|
+
log.warnThenDebug('api-token-ledger', `token ledger write failed; the reply is unaffected: ${errorMessage(err)}`);
|
|
26
22
|
}
|
|
27
23
|
}
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
* tokens sent, skipped as unchanged and re-read by later model calls, per
|
|
31
|
-
* surface, with session counts and mean tokens per session.
|
|
32
|
-
*/
|
|
24
|
+
/** Token ledger totals for the tenant over the last `days` days (default 30): tokens sent, skipped as unchanged and re-read,
|
|
25
|
+
* per surface, with session counts and mean tokens per session. */
|
|
33
26
|
export function tokenSummary(ctx, opts = {}) {
|
|
34
|
-
|
|
35
|
-
try {
|
|
36
|
-
return summarizeTokenUse(db, ctx.tenantId, reportWindowStart(opts.days));
|
|
37
|
-
}
|
|
38
|
-
finally {
|
|
39
|
-
closeHippoDb(db);
|
|
40
|
-
}
|
|
27
|
+
return tokenUseSummary(ctx.hippoRoot, ctx.tenantId, reportWindowStart(opts.days));
|
|
41
28
|
}
|
|
42
29
|
/** Failed tool calls by outcome, and repeats across sessions, over the last `days` days (default 30). */
|
|
43
30
|
export function failureSummary(ctx, opts = {}) {
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
return summarizeFailures(db, ctx.tenantId, reportWindowStart(opts.days));
|
|
47
|
-
}
|
|
48
|
-
finally {
|
|
49
|
-
closeHippoDb(db);
|
|
50
|
-
}
|
|
31
|
+
return failureLogSummary(ctx.hippoRoot, ctx.tenantId, reportWindowStart(opts.days));
|
|
51
32
|
}
|
|
52
33
|
function reportWindowStart(days) {
|
|
53
34
|
const span = days !== undefined && Number.isFinite(days) && days > 0 ? days : 30;
|
|
54
|
-
return new Date(Date.now() - span *
|
|
35
|
+
return new Date(Date.now() - span * DAY_MS).toISOString();
|
|
55
36
|
}
|
|
56
37
|
//# sourceMappingURL=tokens.js.map
|