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
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// A served store's WAL is checkpointed on a worker thread: the fsync calls of a checkpoint would otherwise stall every request on the event loop.
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { Worker } from 'node:worker_threads';
|
|
4
|
+
import { errorMessage, log } from '../util/log.js';
|
|
5
|
+
// WAL pages at which a connection checkpoints inside its own commit.
|
|
6
|
+
const INLINE_CHECKPOINT_PAGES = 100;
|
|
7
|
+
// The same limit while a worker checkpoints the store: SQLite still bounds the WAL when the worker falls behind.
|
|
8
|
+
const BACKSTOP_CHECKPOINT_PAGES = 4000;
|
|
9
|
+
// Sized so one background checkpoint covers about 1000 WAL pages of recalls, SQLite's own default.
|
|
10
|
+
const RESPONSES_PER_CHECKPOINT = 32;
|
|
11
|
+
// After a checkpoint that left frames behind, a sooner retry keeps what an inline checkpoint would have to flush small.
|
|
12
|
+
const RESPONSES_PER_RETRY = 8;
|
|
13
|
+
// A commit that lands during a pass leaves frames behind, and only a WAL with none left can be reused from its start.
|
|
14
|
+
const MAX_PASSES = 4;
|
|
15
|
+
// CommonJS in a string, so the worker starts the same way from dist, vitest and strip-types, with no second entry file.
|
|
16
|
+
const WORKER_SOURCE = `
|
|
17
|
+
const { parentPort, workerData } = require('node:worker_threads');
|
|
18
|
+
const { DatabaseSync } = require('node:sqlite');
|
|
19
|
+
const db = new DatabaseSync(workerData.dbPath);
|
|
20
|
+
db.exec('PRAGMA busy_timeout = 5000');
|
|
21
|
+
db.exec('PRAGMA synchronous = NORMAL');
|
|
22
|
+
const pass = db.prepare('PRAGMA wal_checkpoint(PASSIVE)');
|
|
23
|
+
parentPort.on('message', (message) => {
|
|
24
|
+
if (message === 'stop') {
|
|
25
|
+
db.close();
|
|
26
|
+
parentPort.close();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
let seen = -1;
|
|
30
|
+
let settled = false;
|
|
31
|
+
for (let n = 0; n < workerData.maxPasses && !settled; n++) {
|
|
32
|
+
const { busy, log, checkpointed } = pass.get();
|
|
33
|
+
if (busy) break;
|
|
34
|
+
settled = log === seen && checkpointed === log;
|
|
35
|
+
seen = log;
|
|
36
|
+
}
|
|
37
|
+
parentPort.postMessage(settled);
|
|
38
|
+
});
|
|
39
|
+
`;
|
|
40
|
+
const backgrounded = new Set();
|
|
41
|
+
/** The wal_autocheckpoint value for a new connection to `dbPath` in this process. */
|
|
42
|
+
export function autoCheckpointPages(dbPath) {
|
|
43
|
+
return backgrounded.has(path.resolve(dbPath)) ? BACKSTOP_CHECKPOINT_PAGES : INLINE_CHECKPOINT_PAGES;
|
|
44
|
+
}
|
|
45
|
+
/** Checkpoints `dbPath` off the calling thread until `stop()`; the worker starts with the first checkpoint that is due. */
|
|
46
|
+
export function startWalCheckpointer(dbPath) {
|
|
47
|
+
const key = path.resolve(dbPath);
|
|
48
|
+
let worker;
|
|
49
|
+
let exited;
|
|
50
|
+
let running = false;
|
|
51
|
+
let stopped = false;
|
|
52
|
+
let responses = 0;
|
|
53
|
+
let due = RESPONSES_PER_CHECKPOINT;
|
|
54
|
+
backgrounded.add(key);
|
|
55
|
+
const end = () => {
|
|
56
|
+
stopped = true;
|
|
57
|
+
backgrounded.delete(key);
|
|
58
|
+
};
|
|
59
|
+
const spawn = () => {
|
|
60
|
+
// An explicit execArgv keeps the parent's loaders out of the worker and silences its repeat of the node:sqlite warning.
|
|
61
|
+
const started = new Worker(WORKER_SOURCE, { eval: true, execArgv: ['--no-warnings'], workerData: { dbPath: key, maxPasses: MAX_PASSES } });
|
|
62
|
+
started.unref();
|
|
63
|
+
started.on('message', (settled) => {
|
|
64
|
+
running = false;
|
|
65
|
+
due = settled ? RESPONSES_PER_CHECKPOINT : RESPONSES_PER_RETRY;
|
|
66
|
+
});
|
|
67
|
+
started.on('error', (err) => {
|
|
68
|
+
end();
|
|
69
|
+
log.warn(`background checkpoint of ${key} stopped (${errorMessage(err)}); each connection checkpoints inside its own commit again`);
|
|
70
|
+
});
|
|
71
|
+
exited = new Promise((resolve) => { started.once('exit', () => resolve()); });
|
|
72
|
+
return started;
|
|
73
|
+
};
|
|
74
|
+
return {
|
|
75
|
+
noteResponse() {
|
|
76
|
+
if (stopped || ++responses < due || running)
|
|
77
|
+
return;
|
|
78
|
+
responses = 0;
|
|
79
|
+
running = true;
|
|
80
|
+
worker ??= spawn();
|
|
81
|
+
worker.postMessage('checkpoint');
|
|
82
|
+
},
|
|
83
|
+
async stop() {
|
|
84
|
+
const live = !stopped;
|
|
85
|
+
end();
|
|
86
|
+
if (live)
|
|
87
|
+
worker?.postMessage('stop');
|
|
88
|
+
await exited;
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=wal-checkpointer.js.map
|
package/dist/doctor.js
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* hippo, or when something seems off. Read-only: it never creates a store,
|
|
4
|
-
* installs a hook or migrates a database. Every non-passing check names the
|
|
5
|
-
* command that fixes it, so an agent can act on the `--json` output.
|
|
6
|
-
*/
|
|
1
|
+
/** `hippo doctor`: a read-only health check (never creates a store, installs a hook or migrates a database).
|
|
2
|
+
* Every non-passing check names the command that fixes it, so an agent can act on the `--json` output. */
|
|
7
3
|
import * as fs from 'node:fs';
|
|
8
4
|
import * as os from 'node:os';
|
|
9
5
|
import * as path from 'node:path';
|
|
10
|
-
import { findHippoStoreDir } from './project-identity.js';
|
|
11
|
-
import { getGlobalRoot } from './
|
|
6
|
+
import { findHippoStoreDir } from './core/project-identity.js';
|
|
7
|
+
import { getGlobalRoot } from './sharing/global-store.js';
|
|
12
8
|
import { isInitialized } from './store/open.js';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
9
|
+
import { readStoreHealth } from './store/diagnostics.js';
|
|
10
|
+
import { loadConfig } from './core/config.js';
|
|
11
|
+
import { openHippoDbReadOnly, closeHippoDb, getCurrentSchemaVersion, IncompatibleBinaryError } from './db/index.js';
|
|
12
|
+
import { REPLAY_AFTER_MS, TRANSCRIPT_FILL_WINDOW_MS } from './capture/compaction-record.js';
|
|
13
|
+
import { SPOOL_DIR, spoolCounts } from './capture/compaction-spool.js';
|
|
14
|
+
import { isEmbeddingAvailable } from './store/embeddings/local.js';
|
|
15
|
+
import { CODEX_TRUST_LINE, claudeConfigDir, codexHomeDir, isCodexPresent } from './hooks/shared.js';
|
|
16
|
+
import { planProjectRepair } from './sharing/project-merge.js';
|
|
17
|
+
import { resolveTenantId } from './store/tenant.js';
|
|
18
|
+
import { errorMessage, log } from './util/log.js';
|
|
19
|
+
import { readJsonFile, isJsonObjectLiteral } from './util/json.js';
|
|
20
|
+
import { DAY_MS } from './util/time.js';
|
|
22
21
|
/** Minimum Node.js version hippo supports (package.json engines). */
|
|
23
22
|
export const MIN_NODE = '22.16.0';
|
|
24
23
|
function versionAtLeast(actual, min) {
|
|
@@ -46,8 +45,13 @@ function codexCheck(home) {
|
|
|
46
45
|
const file = path.join(codexHomeDir(home), 'hooks.json');
|
|
47
46
|
const parsed = readJson(file);
|
|
48
47
|
// Codex drops every hook in a hooks.json it cannot parse, hippo's included.
|
|
49
|
-
if (fs.existsSync(file) && !
|
|
50
|
-
return {
|
|
48
|
+
if (fs.existsSync(file) && !isJsonObjectLiteral(parsed)) {
|
|
49
|
+
return {
|
|
50
|
+
id: 'codex',
|
|
51
|
+
status: 'warn',
|
|
52
|
+
detail: "Codex's hooks.json is not a JSON object, so Codex runs no hook from it",
|
|
53
|
+
fix: 'repair hooks.json, then run: hippo hook install codex'
|
|
54
|
+
};
|
|
51
55
|
}
|
|
52
56
|
const text = JSON.stringify(parsed ?? '');
|
|
53
57
|
const codexHooks = [
|
|
@@ -60,47 +64,44 @@ function codexCheck(home) {
|
|
|
60
64
|
return {
|
|
61
65
|
id: 'codex',
|
|
62
66
|
status: 'warn',
|
|
63
|
-
detail: missing.length === codexHooks.length
|
|
67
|
+
detail: missing.length === codexHooks.length
|
|
68
|
+
? "Codex found, but hippo's memory hooks are not installed"
|
|
69
|
+
: `Codex: hippo hooks missing for ${missing.join(', ')}`,
|
|
64
70
|
fix: 'hippo hook install codex (then trust the hooks once in /hooks)',
|
|
65
71
|
};
|
|
66
72
|
}
|
|
67
73
|
// Migration 46 creates failure_log; a read-only open no longer creates it on an older store.
|
|
68
74
|
const FAILURE_LOG_SCHEMA = 46;
|
|
69
75
|
/** The failed-tool-call count over the last 7 days, or why it could not be read. */
|
|
70
|
-
function failuresCheck(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const row = db.prepare(`SELECT COUNT(*) AS n FROM failure_log WHERE ts >= ?`).get(since);
|
|
74
|
-
return { id: 'failures', status: 'info', detail: `${Number(row?.n ?? 0)} failed tool calls logged in 7 days (hippo failures for detail)` };
|
|
76
|
+
function failuresCheck(failures, schemaVersion) {
|
|
77
|
+
if (failures.ok) {
|
|
78
|
+
return { id: 'failures', status: 'info', detail: `${failures.value} failed tool calls logged in 7 days (hippo failures for detail)` };
|
|
75
79
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (!message.includes('no such table')) {
|
|
79
|
-
return { id: 'failures', status: 'warn', detail: `cannot read the failure log: ${message}` };
|
|
80
|
-
}
|
|
81
|
-
return schemaVersion < FAILURE_LOG_SCHEMA
|
|
82
|
-
? { id: 'failures', status: 'info', detail: 'no failure log yet (hippo creates it on the next write)' }
|
|
83
|
-
: { id: 'failures', status: 'warn', detail: 'the failure_log table is missing, so failed tool calls are not being logged' };
|
|
80
|
+
if (!failures.message.includes('no such table')) {
|
|
81
|
+
return { id: 'failures', status: 'warn', detail: `cannot read the failure log: ${failures.message}` };
|
|
84
82
|
}
|
|
83
|
+
return schemaVersion < FAILURE_LOG_SCHEMA
|
|
84
|
+
? { id: 'failures', status: 'info', detail: 'no failure log yet (hippo creates it on the next write)' }
|
|
85
|
+
: { id: 'failures', status: 'warn', detail: 'the failure_log table is missing, so failed tool calls are not being logged' };
|
|
85
86
|
}
|
|
86
87
|
/** How long ago the store last slept (consolidated), or why that history could not be read. */
|
|
87
|
-
function sleepCheck(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
catch (err) {
|
|
101
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
102
|
-
return { id: 'sleep', status: 'info', detail: `sleep history unavailable (${message})` };
|
|
88
|
+
function sleepCheck(lastSleep, now) {
|
|
89
|
+
if (!lastSleep.ok)
|
|
90
|
+
return { id: 'sleep', status: 'info', detail: `sleep history unavailable (${lastSleep.message})` };
|
|
91
|
+
const last = lastSleep.value;
|
|
92
|
+
const when = last !== undefined ? Date.parse(last) : Number.NaN;
|
|
93
|
+
if (Number.isNaN(when)) {
|
|
94
|
+
return {
|
|
95
|
+
id: 'sleep',
|
|
96
|
+
status: 'warn',
|
|
97
|
+
detail: 'hippo has never slept (consolidated) in this store',
|
|
98
|
+
fix: 'hippo sleep (the session-end hook runs it automatically)'
|
|
99
|
+
};
|
|
103
100
|
}
|
|
101
|
+
const days = Math.floor((now.getTime() - when) / DAY_MS);
|
|
102
|
+
return days > 7
|
|
103
|
+
? { id: 'sleep', status: 'warn', detail: `last sleep ${days} days ago`, fix: 'hippo sleep, and check the session-end hook is installed' }
|
|
104
|
+
: { id: 'sleep', status: 'pass', detail: `last sleep ${days === 0 ? 'today' : `${days} day${days === 1 ? '' : 's'} ago`}` };
|
|
104
105
|
}
|
|
105
106
|
/** Spool counts in their own try, so a spool that cannot be read never hides the database counts. */
|
|
106
107
|
function readSpool(store, now) {
|
|
@@ -108,44 +109,32 @@ function readSpool(store, now) {
|
|
|
108
109
|
return { counts: spoolCounts(store, now, REPLAY_AFTER_MS), unread: '' };
|
|
109
110
|
}
|
|
110
111
|
catch (err) {
|
|
111
|
-
return { counts: { waiting: 0, stale: 0, bad: 0 }, unread: `; spool not read: ${
|
|
112
|
+
return { counts: { waiting: 0, stale: 0, bad: 0 }, unread: `; spool not read: ${errorMessage(err)}` };
|
|
112
113
|
}
|
|
113
114
|
}
|
|
114
115
|
/** Compaction records the PostCompact hook left unfinished and spool files a replay has not finished, which `hippo sleep` replays. */
|
|
115
|
-
function compactionsCheck(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
try {
|
|
119
|
-
// SAFETY: COUNT aggregate row.
|
|
120
|
-
const row = db.prepare(`SELECT COUNT(*) AS total,
|
|
121
|
-
COUNT(CASE WHEN status = 'summarised' AND summarised_at < ? THEN 1 END) AS summarised,
|
|
122
|
-
COUNT(CASE WHEN status = 'started' AND started_at < ? AND started_at > ? AND transcript_path IS NOT NULL THEN 1 END) AS started
|
|
123
|
-
FROM compactions`).get(stuckBefore, stuckBefore, transcriptFloor);
|
|
124
|
-
const total = Number(row?.total ?? 0);
|
|
125
|
-
const summarised = Number(row?.summarised ?? 0);
|
|
126
|
-
const started = Number(row?.started ?? 0);
|
|
127
|
-
const stuck = summarised + started;
|
|
128
|
-
const { counts: spool, unread } = readSpool(store, now);
|
|
129
|
-
const spooled = spool.waiting + spool.stale + spool.bad > 0;
|
|
130
|
-
const recorded = `${total} compaction${total === 1 ? '' : 's'} recorded, none stuck`;
|
|
131
|
-
if (stuck === 0 && !spooled && unread === '')
|
|
132
|
-
return { id: 'compactions', status: 'pass', detail: recorded };
|
|
133
|
-
const fix = [
|
|
134
|
-
stuck + spool.waiting + spool.stale > 0 ? 'hippo sleep (replays them)' : '',
|
|
135
|
-
spool.bad > 0 ? `open the .bad files in ${path.join(store, SPOOL_DIR)}, save what you still need with hippo remember, then delete them` : '',
|
|
136
|
-
].filter((s) => s !== '');
|
|
137
|
-
const unfinished = stuck === 0
|
|
138
|
-
? `${recorded} in the store`
|
|
139
|
-
: `${stuck} compaction${stuck === 1 ? '' : 's'} unfinished after 10 minutes (${summarised} with a summary whose memories are not saved yet, ${started} with no summary yet)`;
|
|
140
|
-
const note = spooled ? `; spool: ${spool.waiting} waiting, ${spool.stale} left by a replay that stopped, ${spool.bad} .bad` : '';
|
|
141
|
-
return { id: 'compactions', status: 'warn', detail: `${unfinished}${note}${unread}`, fix: fix.join('; ') };
|
|
142
|
-
}
|
|
143
|
-
catch (err) {
|
|
144
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
145
|
-
return message.includes('no such table')
|
|
116
|
+
function compactionsCheck(compactions, store, now) {
|
|
117
|
+
if (!compactions.ok) {
|
|
118
|
+
return compactions.message.includes('no such table')
|
|
146
119
|
? { id: 'compactions', status: 'info', detail: 'no compaction records yet (hippo creates them on the next write)' }
|
|
147
|
-
: { id: 'compactions', status: 'warn', detail: `cannot read the compaction records: ${message}` };
|
|
148
|
-
}
|
|
120
|
+
: { id: 'compactions', status: 'warn', detail: `cannot read the compaction records: ${compactions.message}` };
|
|
121
|
+
}
|
|
122
|
+
const { total, summarised, started } = compactions.value;
|
|
123
|
+
const stuck = summarised + started;
|
|
124
|
+
const { counts: spool, unread } = readSpool(store, now);
|
|
125
|
+
const spooled = spool.waiting + spool.stale + spool.bad > 0;
|
|
126
|
+
const recorded = `${total} compaction${total === 1 ? '' : 's'} recorded, none stuck`;
|
|
127
|
+
if (stuck === 0 && !spooled && unread === '')
|
|
128
|
+
return { id: 'compactions', status: 'pass', detail: recorded };
|
|
129
|
+
const fix = [
|
|
130
|
+
stuck + spool.waiting + spool.stale > 0 ? 'hippo sleep (replays them)' : '',
|
|
131
|
+
spool.bad > 0 ? `open the .bad files in ${path.join(store, SPOOL_DIR)}, save what you still need with hippo remember, then delete them` : '',
|
|
132
|
+
].filter((s) => s !== '');
|
|
133
|
+
const unfinished = stuck === 0
|
|
134
|
+
? `${recorded} in the store`
|
|
135
|
+
: `${stuck} compaction${stuck === 1 ? '' : 's'} unfinished after 10 minutes (${summarised} with a summary whose memories are not saved yet, ${started} with no summary yet)`;
|
|
136
|
+
const note = spooled ? `; spool: ${spool.waiting} waiting, ${spool.stale} left by a replay that stopped, ${spool.bad} .bad` : '';
|
|
137
|
+
return { id: 'compactions', status: 'warn', detail: `${unfinished}${note}${unread}`, fix: fix.join('; ') };
|
|
149
138
|
}
|
|
150
139
|
/** Old project tags in the global store, counted by the repair's own plan so a truly user-global merge never warns. */
|
|
151
140
|
function projectsCheck(globalRoot) {
|
|
@@ -156,15 +145,22 @@ function projectsCheck(globalRoot) {
|
|
|
156
145
|
const found = [
|
|
157
146
|
r.copies.length > 0 ? `${r.copies.length} imported notes copied under the wrong project` : '',
|
|
158
147
|
r.folds.length > 0 ? `old project names that now resolve to another project: ${r.folds.map((f) => `${f.from} -> ${f.into}`).join(', ')}` : '',
|
|
159
|
-
r.collisions.length > 0
|
|
148
|
+
r.collisions.length > 0
|
|
149
|
+
? `old project names shared by several projects, folded by hand only: ${r.collisions.map((c) => `${c.name} (${c.ids.join(', ')})`).join('; ')}`
|
|
150
|
+
: '',
|
|
160
151
|
r.toProject.length + r.setAside.length > 0 ? `${r.toProject.length + r.setAside.length} merged memories tagged user-global` : '',
|
|
161
152
|
].filter((s) => s !== '');
|
|
162
153
|
return found.length === 0
|
|
163
154
|
? { id: 'projects', status: 'pass', detail: 'no duplicate or out-of-date project tags in the global store' }
|
|
164
|
-
: {
|
|
155
|
+
: {
|
|
156
|
+
id: 'projects',
|
|
157
|
+
status: 'warn',
|
|
158
|
+
detail: `global store: ${found.join('; ')}`,
|
|
159
|
+
fix: 'hippo projects repair --global (dry run; add --apply to write)'
|
|
160
|
+
};
|
|
165
161
|
}
|
|
166
162
|
catch (err) {
|
|
167
|
-
return { id: 'projects', status: 'info', detail: `project tags not checked (${
|
|
163
|
+
return { id: 'projects', status: 'info', detail: `project tags not checked (${errorMessage(err)})` };
|
|
168
164
|
}
|
|
169
165
|
finally {
|
|
170
166
|
if (db !== null)
|
|
@@ -179,16 +175,43 @@ function nodeCheck(node) {
|
|
|
179
175
|
/** The store the checks run against (project first, then global), and the check that says which. */
|
|
180
176
|
function storeCheck(local, globalRoot, hasGlobal) {
|
|
181
177
|
if (local !== null && isInitialized(local)) {
|
|
182
|
-
return {
|
|
178
|
+
return {
|
|
179
|
+
store: local,
|
|
180
|
+
check: { id: 'store', status: 'pass', detail: `project store at ${local}${hasGlobal ? ` (global store at ${globalRoot} too)` : ''}` }
|
|
181
|
+
};
|
|
183
182
|
}
|
|
184
183
|
if (local !== null) {
|
|
185
184
|
// The walk stops at the first .hippo it finds, so a bare one (no hippo.db) blocks a parent or global store too.
|
|
186
|
-
return {
|
|
185
|
+
return {
|
|
186
|
+
store: null,
|
|
187
|
+
check: {
|
|
188
|
+
id: 'store',
|
|
189
|
+
status: 'fail',
|
|
190
|
+
detail: `${local} has no hippo.db, so hippo commands run here stop at it`,
|
|
191
|
+
fix: `run hippo init in ${path.dirname(local)}, or remove that .hippo folder`
|
|
192
|
+
}
|
|
193
|
+
};
|
|
187
194
|
}
|
|
188
195
|
if (hasGlobal) {
|
|
189
|
-
return {
|
|
196
|
+
return {
|
|
197
|
+
store: globalRoot,
|
|
198
|
+
check: {
|
|
199
|
+
id: 'store',
|
|
200
|
+
status: 'warn',
|
|
201
|
+
detail: `no project store here; using the global store at ${globalRoot}`,
|
|
202
|
+
fix: 'hippo init (in the project root)'
|
|
203
|
+
}
|
|
204
|
+
};
|
|
190
205
|
}
|
|
191
|
-
return {
|
|
206
|
+
return {
|
|
207
|
+
store: null,
|
|
208
|
+
check: {
|
|
209
|
+
id: 'store',
|
|
210
|
+
status: 'fail',
|
|
211
|
+
detail: 'no hippo store found (project or global)',
|
|
212
|
+
fix: 'hippo init (in the project root), or hippo init --global'
|
|
213
|
+
}
|
|
214
|
+
};
|
|
192
215
|
}
|
|
193
216
|
function schemaCheck(have, want) {
|
|
194
217
|
return have === want
|
|
@@ -197,9 +220,7 @@ function schemaCheck(have, want) {
|
|
|
197
220
|
? { id: 'schema', status: 'fail', detail: `database schema v${have} is newer than this hippo (v${want})`, fix: 'npm install -g hippo-memory@latest' }
|
|
198
221
|
: { id: 'schema', status: 'info', detail: `database schema v${have}; hippo migrates it to v${want} on the next write` };
|
|
199
222
|
}
|
|
200
|
-
function memoriesCheck(
|
|
201
|
-
const memories = countTableRows(db, 'memories');
|
|
202
|
-
const dormant = countTableRows(db, 'dormant_memories');
|
|
223
|
+
function memoriesCheck(memories, dormant) {
|
|
203
224
|
const memoryCheck = { id: 'memories', status: 'info', detail: `${memories ?? '?'} memories${dormant !== null ? `, ${dormant} dormant` : ''}` };
|
|
204
225
|
if (memories === 0) {
|
|
205
226
|
memoryCheck.status = 'warn';
|
|
@@ -208,70 +229,60 @@ function memoriesCheck(db) {
|
|
|
208
229
|
return memoryCheck;
|
|
209
230
|
}
|
|
210
231
|
/** Whether the full-text index still matches `memories`; opening a current store no longer checks, so doctor reports and sleep repairs. */
|
|
211
|
-
function ftsCheck(
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
return {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
}
|
|
225
|
-
catch (err) {
|
|
226
|
-
return { id: 'fts', status: 'warn', detail: `cannot read the full-text index: ${err instanceof Error ? err.message : String(err)}` };
|
|
227
|
-
}
|
|
232
|
+
function ftsCheck(fts) {
|
|
233
|
+
if (!fts.ok)
|
|
234
|
+
return { id: 'fts', status: 'warn', detail: `cannot read the full-text index: ${fts.message}` };
|
|
235
|
+
const counts = fts.value;
|
|
236
|
+
if (counts === null)
|
|
237
|
+
return { id: 'fts', status: 'info', detail: 'no full-text index; search uses slower LIKE matching' };
|
|
238
|
+
if (counts.memories === counts.fts)
|
|
239
|
+
return { id: 'fts', status: 'pass', detail: `full-text index in sync (${counts.fts} rows)` };
|
|
240
|
+
return {
|
|
241
|
+
id: 'fts',
|
|
242
|
+
status: 'warn',
|
|
243
|
+
detail: `full-text index out of sync: ${counts.fts} indexed rows for ${counts.memories} memories, so search can miss memories or match removed ones`,
|
|
244
|
+
fix: 'hippo sleep (re-syncs the index)',
|
|
245
|
+
};
|
|
228
246
|
}
|
|
229
|
-
function tokensCheck(
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
const row = db.prepare(`SELECT COUNT(CASE WHEN event = 'inject' THEN 1 END) AS n,
|
|
233
|
-
COALESCE(SUM(CASE WHEN event = 'inject' THEN tokens END), 0) AS t,
|
|
234
|
-
COALESCE(SUM(CASE WHEN event = 'reread' THEN tokens END), 0) AS r
|
|
235
|
-
FROM token_ledger WHERE ts >= ?`).get(since);
|
|
236
|
-
return {
|
|
237
|
-
id: 'tokens',
|
|
238
|
-
status: 'info',
|
|
239
|
-
detail: `${Number(row?.n ?? 0)} memory blocks sent to agents in 7 days, about ${Number(row?.t ?? 0)} tokens sent and ${Number(row?.r ?? 0)} re-read by later model calls (hippo tokens for detail)`,
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
catch {
|
|
247
|
+
function tokensCheck(tokens) {
|
|
248
|
+
if (!tokens.ok) {
|
|
249
|
+
log.debug(`doctor: token ledger not read: ${tokens.message}`);
|
|
243
250
|
return { id: 'tokens', status: 'info', detail: 'no token ledger yet (created on the next write)' };
|
|
244
251
|
}
|
|
252
|
+
const tally = tokens.value;
|
|
253
|
+
return {
|
|
254
|
+
id: 'tokens',
|
|
255
|
+
status: 'info',
|
|
256
|
+
detail: `${tally.injected} memory blocks sent to agents in 7 days, about ${tally.tokensSent} tokens sent and ${tally.tokensReread} re-read by later model calls (hippo tokens for detail)`,
|
|
257
|
+
};
|
|
245
258
|
}
|
|
246
|
-
/** Checks that read the store's database; a
|
|
259
|
+
/** Checks that read the store's database; a store that cannot be opened becomes one failed schema check. */
|
|
247
260
|
function databaseChecks(store, now) {
|
|
248
|
-
|
|
249
|
-
let db = null;
|
|
261
|
+
let health;
|
|
250
262
|
try {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
checks.push(ftsCheck(db));
|
|
256
|
-
const since = new Date(now.getTime() - 7 * 86_400_000).toISOString();
|
|
257
|
-
checks.push(tokensCheck(db, since));
|
|
258
|
-
checks.push(failuresCheck(db, since, have));
|
|
259
|
-
checks.push(sleepCheck(db, now));
|
|
260
|
-
checks.push(compactionsCheck(db, store, now));
|
|
261
|
-
}
|
|
262
|
-
catch (err) {
|
|
263
|
-
checks.push({
|
|
264
|
-
id: 'schema',
|
|
265
|
-
status: 'fail',
|
|
266
|
-
detail: `cannot open the database: ${err instanceof Error ? err.message : String(err)}`,
|
|
267
|
-
fix: err instanceof IncompatibleBinaryError ? 'npm install -g hippo-memory@latest' : 'check file permissions on the .hippo folder',
|
|
263
|
+
health = readStoreHealth(store, {
|
|
264
|
+
since: new Date(now.getTime() - 7 * DAY_MS).toISOString(),
|
|
265
|
+
stuckBefore: new Date(now.getTime() - REPLAY_AFTER_MS).toISOString(),
|
|
266
|
+
transcriptFloor: new Date(now.getTime() - TRANSCRIPT_FILL_WINDOW_MS).toISOString(),
|
|
268
267
|
});
|
|
269
268
|
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
269
|
+
catch (err) {
|
|
270
|
+
return [{
|
|
271
|
+
id: 'schema',
|
|
272
|
+
status: 'fail',
|
|
273
|
+
detail: `cannot open the database: ${errorMessage(err)}`,
|
|
274
|
+
fix: err instanceof IncompatibleBinaryError ? 'npm install -g hippo-memory@latest' : 'check file permissions on the .hippo folder',
|
|
275
|
+
}];
|
|
276
|
+
}
|
|
277
|
+
return [
|
|
278
|
+
schemaCheck(health.schemaVersion, getCurrentSchemaVersion()),
|
|
279
|
+
memoriesCheck(health.memories, health.dormant),
|
|
280
|
+
ftsCheck(health.fts),
|
|
281
|
+
tokensCheck(health.tokens),
|
|
282
|
+
failuresCheck(health.failures, health.schemaVersion),
|
|
283
|
+
sleepCheck(health.lastSleep, now),
|
|
284
|
+
compactionsCheck(health.compactions, store, now),
|
|
285
|
+
];
|
|
275
286
|
}
|
|
276
287
|
// Each hook and what it does, so a partial install says what is missing.
|
|
277
288
|
const CLAUDE_CODE_HOOKS = [
|
|
@@ -300,7 +311,12 @@ function claudeCodeCheck(home) {
|
|
|
300
311
|
if (missing.length === CLAUDE_CODE_HOOKS.length) {
|
|
301
312
|
return { id: 'claude-code', status: 'warn', detail: 'Claude Code found, but no hippo hooks are installed', fix: 'hippo hook install claude-code' };
|
|
302
313
|
}
|
|
303
|
-
return {
|
|
314
|
+
return {
|
|
315
|
+
id: 'claude-code',
|
|
316
|
+
status: 'warn',
|
|
317
|
+
detail: `Claude Code: hippo hooks missing for ${missing.join(', ')}`,
|
|
318
|
+
fix: 'hippo hook install claude-code (adds only what is missing)'
|
|
319
|
+
};
|
|
304
320
|
}
|
|
305
321
|
/** Run every check. Never throws for a broken install; broken parts become failed checks. */
|
|
306
322
|
export function runDoctor(opts) {
|
|
@@ -318,14 +334,22 @@ export function runDoctor(opts) {
|
|
|
318
334
|
checks.push(...databaseChecks(store, now));
|
|
319
335
|
const holdoutRateBp = store === null ? 0 : loadConfig(store).pilot.holdoutRateBp;
|
|
320
336
|
if (holdoutRateBp > 0) {
|
|
321
|
-
checks.push({
|
|
337
|
+
checks.push({
|
|
338
|
+
id: 'pilot',
|
|
339
|
+
status: 'info',
|
|
340
|
+
detail: `pilot holdout on: about ${holdoutRateBp / 100}% of sessions get no memories pushed by hippo (pilot.holdoutRateBp=${holdoutRateBp})`
|
|
341
|
+
});
|
|
322
342
|
}
|
|
323
343
|
if (hasGlobal)
|
|
324
344
|
checks.push(projectsCheck(globalRoot));
|
|
325
345
|
checks.push(claudeCodeCheck(home));
|
|
326
346
|
if (isCodexPresent(home))
|
|
327
347
|
checks.push(codexCheck(home));
|
|
328
|
-
checks.push({
|
|
348
|
+
checks.push({
|
|
349
|
+
id: 'embeddings',
|
|
350
|
+
status: 'info',
|
|
351
|
+
detail: isEmbeddingAvailable() ? 'local embeddings available (hybrid search)' : 'embeddings not installed; recall uses BM25 (optional: hippo embed --help)'
|
|
352
|
+
});
|
|
329
353
|
return { ok: !checks.some((c) => c.status === 'fail'), version: opts.version, store, checks };
|
|
330
354
|
}
|
|
331
355
|
/** Human-readable rendering of a {@link DoctorReport}. */
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { installJsonHooks, resolveJsonHookPaths, uninstallJsonHooks, writeSettingsFile, type InstallResult, type JsonHookPaths } from '../hooks/json-hooks.js';
|
|
2
|
-
export { readJsonFile } from '../json.js';
|
|
2
|
+
export { readJsonFile } from '../util/json.js';
|
|
3
3
|
//# sourceMappingURL=json-hooks.d.ts.map
|
package/dist/entry/json-hooks.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// The hippo-memory/json-hooks subpath: only what the changelog publishes, so the module's other exports stay internal.
|
|
2
2
|
export { installJsonHooks, resolveJsonHookPaths, uninstallJsonHooks, writeSettingsFile } from '../hooks/json-hooks.js';
|
|
3
|
-
export { readJsonFile } from '../json.js';
|
|
3
|
+
export { readJsonFile } from '../util/json.js';
|
|
4
4
|
//# sourceMappingURL=json-hooks.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { MAX_PROJECT_ALIASES, MCP_PROJECT_SCOPED_HEADER, resolveProjectIdentity, type ProjectIdentity, type ResolveProjectIdentityOpts } from '../project-identity.js';
|
|
1
|
+
export { MAX_PROJECT_ALIASES, MCP_PROJECT_SCOPED_HEADER, resolveProjectIdentity, type ProjectIdentity, type ResolveProjectIdentityOpts } from '../core/project-identity.js';
|
|
2
2
|
//# sourceMappingURL=project-identity.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// The hippo-memory/project-identity subpath: only what the changelog publishes, so the module's other exports stay internal.
|
|
2
|
-
export { MAX_PROJECT_ALIASES, MCP_PROJECT_SCOPED_HEADER, resolveProjectIdentity } from '../project-identity.js';
|
|
2
|
+
export { MAX_PROJECT_ALIASES, MCP_PROJECT_SCOPED_HEADER, resolveProjectIdentity } from '../core/project-identity.js';
|
|
3
3
|
//# sourceMappingURL=project-identity.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { collectSessionTurns, sessionTail, type SessionTurn } from '../capture/transcript.js';
|
|
2
|
-
export { scrubForSharing } from '../share-scrub.js';
|
|
2
|
+
export { scrubForSharing } from '../capture/share-scrub.js';
|
|
3
3
|
export { transcriptWorkingState, WORKING_STATE_CAPS } from '../capture/working-state.js';
|
|
4
4
|
export { lessonFromFailure, failureReport, type FailureReport } from '../capture/failure-reading.js';
|
|
5
|
-
export { collectHandoffEvidence } from '../handoff-evidence.js';
|
|
6
|
-
export { compactSummaryBody, parseCompactionItems, COMPACTION_ITEM_MAX_CHARS, COMPACTION_ITEM_ROW_CAP } from '../compaction-items.js';
|
|
5
|
+
export { collectHandoffEvidence } from '../capture/handoff-evidence.js';
|
|
6
|
+
export { compactSummaryBody, parseCompactionItems, COMPACTION_ITEM_MAX_CHARS, COMPACTION_ITEM_ROW_CAP } from '../capture/compaction-items.js';
|
|
7
7
|
//# sourceMappingURL=session-text.d.ts.map
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
// The hippo-memory/session-text subpath: what a hook reads from a session (turns, working state, failures,
|
|
1
|
+
// The hippo-memory/session-text subpath: what a hook reads from a session (turns, working state, failures,
|
|
2
|
+
// git state, compaction items) and the sharing scrub, with no store, database or server in its imports.
|
|
2
3
|
export { collectSessionTurns, sessionTail } from '../capture/transcript.js';
|
|
3
|
-
export { scrubForSharing } from '../share-scrub.js';
|
|
4
|
+
export { scrubForSharing } from '../capture/share-scrub.js';
|
|
4
5
|
export { transcriptWorkingState, WORKING_STATE_CAPS } from '../capture/working-state.js';
|
|
5
6
|
export { lessonFromFailure, failureReport } from '../capture/failure-reading.js';
|
|
6
|
-
export { collectHandoffEvidence } from '../handoff-evidence.js';
|
|
7
|
-
export { compactSummaryBody, parseCompactionItems, COMPACTION_ITEM_MAX_CHARS, COMPACTION_ITEM_ROW_CAP } from '../compaction-items.js';
|
|
7
|
+
export { collectHandoffEvidence } from '../capture/handoff-evidence.js';
|
|
8
|
+
export { compactSummaryBody, parseCompactionItems, COMPACTION_ITEM_MAX_CHARS, COMPACTION_ITEM_ROW_CAP } from '../capture/compaction-items.js';
|
|
8
9
|
//# sourceMappingURL=session-text.js.map
|