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
|
@@ -19,10 +19,8 @@ export interface HippoConfig {
|
|
|
19
19
|
enabled: boolean | 'auto';
|
|
20
20
|
model: string;
|
|
21
21
|
hybridWeight: number;
|
|
22
|
-
/** Embedding backend
|
|
23
|
-
*
|
|
24
|
-
* API key in env (OPENAI_API_KEY / VOYAGE_API_KEY / COHERE_API_KEY).
|
|
25
|
-
* See src/embedding-provider.ts. */
|
|
22
|
+
/** Embedding backend: 'local' (default) = zero-dependency transformers.js; 'openai' | 'voyage' | 'cohere' = opt-in API embedder needing the provider's
|
|
23
|
+
* API key in env (OPENAI_API_KEY / VOYAGE_API_KEY / COHERE_API_KEY). See src/store/embeddings/provider.ts. */
|
|
26
24
|
provider?: 'local' | 'openai' | 'voyage' | 'cohere';
|
|
27
25
|
/** Optional API base-URL override (self-host / proxy). HTTPS only (localhost
|
|
28
26
|
* may use http). Ignored by the local provider. */
|
|
@@ -57,18 +55,15 @@ export interface HippoConfig {
|
|
|
57
55
|
autoTraceCapture: boolean;
|
|
58
56
|
/** Only promote sessions whose session_complete event is within N days. */
|
|
59
57
|
autoTraceWindowDays: number;
|
|
60
|
-
/** Mid-session pinned-rule re-injection
|
|
61
|
-
* hook. When enabled, pinned memories are re-injected each turn within the
|
|
62
|
-
* given token budget. */
|
|
58
|
+
/** Mid-session pinned-rule re-injection through the UserPromptSubmit hook: pinned memories are re-injected each turn within the token budget. */
|
|
63
59
|
pinnedInject: {
|
|
64
60
|
enabled: boolean;
|
|
65
61
|
budget: number;
|
|
66
62
|
/** Skip a block identical to the one already injected this session
|
|
67
63
|
* Default true. Needs a session id from the hook payload. */
|
|
68
64
|
skipUnchanged: boolean;
|
|
69
|
-
/** Resend an unchanged block after this many consecutive skips, so long
|
|
70
|
-
*
|
|
71
|
-
* never resends an unchanged block. */
|
|
65
|
+
/** Resend an unchanged block after this many consecutive skips, so long sessions still see pinned rules near the latest turn (default 10; 0 never
|
|
66
|
+
* resends). */
|
|
72
67
|
refreshTurns: number;
|
|
73
68
|
/** Gate the hook's backfill on the prompt's own content instead of the five
|
|
74
69
|
* newest memories. Default true: the same overlap for fewer tokens. */
|
|
@@ -84,13 +79,8 @@ export interface HippoConfig {
|
|
|
84
79
|
/** FTS candidate pool size per store before gating. Default 100. */
|
|
85
80
|
promptRecallCandidates: number;
|
|
86
81
|
};
|
|
87
|
-
/** Memory scope isolation
|
|
88
|
-
*
|
|
89
|
-
* hippo_context) excludes memories owned by OTHER projects; explicit
|
|
90
|
-
* recall is unaffected. Set false to disable the ORIGIN PARTITION only -
|
|
91
|
-
* the secret veto is unconditional for ambient surfaces and no config or
|
|
92
|
-
* flag re-includes secret-flagged rows (explicit recall still returns
|
|
93
|
-
* them). */
|
|
82
|
+
/** Memory scope isolation (default true): ambient context (`hippo context`, the hook, /v1/context, MCP hippo_context) excludes OTHER projects' memories;
|
|
83
|
+
* explicit recall is unaffected. False disables the ORIGIN PARTITION only: the secret veto is unconditional, and no flag re-includes secret-flagged rows. */
|
|
94
84
|
contextProjectIsolation: boolean;
|
|
95
85
|
extraction: {
|
|
96
86
|
enabled: boolean | 'auto';
|
|
@@ -110,17 +100,12 @@ export interface HippoConfig {
|
|
|
110
100
|
enabled: boolean;
|
|
111
101
|
};
|
|
112
102
|
/** Opt-in learned memory-value rescue veto on the sleep decay pass. Default OFF: the frozen weights
|
|
113
|
-
* (src/memory-value-weights.ts) only run when enabled; the rescue budget is a code constant, not user-tunable. */
|
|
103
|
+
* (src/consolidate/memory-value-weights.ts) only run when enabled; the rescue budget is a code constant, not user-tunable. */
|
|
114
104
|
memoryValue: {
|
|
115
105
|
enabled: boolean;
|
|
116
106
|
};
|
|
117
|
-
/** Dormant memories (src/dormant.ts):
|
|
118
|
-
*
|
|
119
|
-
* dormant store instead of deleting it. A dormant memory leaves recall and
|
|
120
|
-
* context like a deleted one, but `hippo dormant restore <id>` brings it
|
|
121
|
-
* back and `hippo dormant forget <id>` deletes it for good. A faded memory
|
|
122
|
-
* the secret detector flags is always deleted, never kept dormant.
|
|
123
|
-
* `{"enabled": false}` restores the old delete-on-fade behaviour. */
|
|
107
|
+
/** Dormant memories (src/store/dormant.ts), on by default: the sleep decay pass moves a memory that faded below the threshold there instead of deleting it
|
|
108
|
+
* (`hippo dormant restore|forget <id>`); a faded memory the secret detector flags is always deleted. `{"enabled": false}` restores delete-on-fade. */
|
|
124
109
|
dormant: {
|
|
125
110
|
enabled: boolean;
|
|
126
111
|
/** Days a dormant memory is kept before sleep deletes it for good.
|
|
@@ -136,12 +121,12 @@ export interface HippoConfig {
|
|
|
136
121
|
agentMemories: {
|
|
137
122
|
tools: string[] | null;
|
|
138
123
|
};
|
|
139
|
-
/** Per-turn delivery ledger (src/recall-trace.ts): hashes, ids, counts and rejection reasons for each
|
|
124
|
+
/** Per-turn delivery ledger (src/store/recall-trace.ts): hashes, ids, counts and rejection reasons for each
|
|
140
125
|
* pinned-only context call. Default off; read from the store the token ledger writes to. */
|
|
141
126
|
deliveryLedger: {
|
|
142
127
|
enabled: boolean;
|
|
143
128
|
};
|
|
144
|
-
/** Pilot holdout (src/pilot-arm.ts): share of sessions, in basis points 0-10000, that get no memories pushed.
|
|
129
|
+
/** Pilot holdout (src/api/pilot-arm.ts): share of sessions, in basis points 0-10000, that get no memories pushed.
|
|
145
130
|
* Default 0 = off. Read from the store the token ledger writes to. */
|
|
146
131
|
pilot: {
|
|
147
132
|
holdoutRateBp: number;
|
|
@@ -155,9 +140,10 @@ export interface HippoConfig {
|
|
|
155
140
|
* and a context read must name the caller's project. Default false. Read it through isSharedStore. */
|
|
156
141
|
sharedStore: boolean;
|
|
157
142
|
}
|
|
143
|
+
export declare const DEFAULT_CONFIG: HippoConfig;
|
|
158
144
|
export declare function loadConfig(hippoRoot: string): HippoConfig;
|
|
159
145
|
/** True when the store's config.json sets `"sharedStore": true`. Once true, a root stays true for this process,
|
|
160
|
-
* so a broken edit while a server runs cannot turn it off. Reads only this key
|
|
146
|
+
* so a broken edit while a server runs cannot turn it off. Reads only this key, so loadConfig's warnings stay loadConfig's. */
|
|
161
147
|
export declare function isSharedStore(hippoRoot: string): boolean;
|
|
162
148
|
/** Reads the root as shared for the rest of this process, whatever its config.json says. */
|
|
163
149
|
export declare function markSharedStore(hippoRoot: string): void;
|
|
@@ -5,9 +5,10 @@ import * as fs from 'fs';
|
|
|
5
5
|
import * as path from 'path';
|
|
6
6
|
import { DEFAULT_PHYSICS_CONFIG, mergePhysicsConfig } from './physics-config.js';
|
|
7
7
|
import { DEFAULT_HALF_LIFE_DAYS } from './memory.js';
|
|
8
|
-
import { DEFAULT_LOCAL_BUMP, DEFAULT_RECALL_BUDGET } from './search
|
|
9
|
-
import { log } from '
|
|
10
|
-
|
|
8
|
+
import { DEFAULT_LOCAL_BUMP, DEFAULT_RECALL_BUDGET } from './search-types.js';
|
|
9
|
+
import { errorMessage, log } from '../util/log.js';
|
|
10
|
+
import { isJsonObject } from '../util/json.js';
|
|
11
|
+
export const DEFAULT_CONFIG = {
|
|
11
12
|
defaultHalfLifeDays: DEFAULT_HALF_LIFE_DAYS,
|
|
12
13
|
defaultBudget: DEFAULT_RECALL_BUDGET,
|
|
13
14
|
defaultContextBudget: 3000,
|
|
@@ -98,23 +99,11 @@ const DEFAULT_CONFIG = {
|
|
|
98
99
|
},
|
|
99
100
|
sharedStore: false,
|
|
100
101
|
};
|
|
101
|
-
function isMemoryValueConfig(value) {
|
|
102
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
103
|
-
}
|
|
104
|
-
function isDormantConfig(value) {
|
|
105
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
106
|
-
}
|
|
107
|
-
function isChurnStalenessConfig(value) {
|
|
108
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
109
|
-
}
|
|
110
|
-
function isDeliveryLedgerConfig(value) {
|
|
111
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
112
|
-
}
|
|
113
102
|
// Only `{"enabled": true}` turns it on; anything malformed warns and stays off.
|
|
114
103
|
function deliveryLedgerEnabled(value) {
|
|
115
104
|
if (value === undefined)
|
|
116
105
|
return false;
|
|
117
|
-
const isObject =
|
|
106
|
+
const isObject = isJsonObject(value);
|
|
118
107
|
const enabled = isObject ? value.enabled : undefined;
|
|
119
108
|
if (enabled === true || enabled === false)
|
|
120
109
|
return enabled;
|
|
@@ -161,23 +150,22 @@ function memoryValueOverride(raw) {
|
|
|
161
150
|
// Spreading a non-object raw.memoryValue (e.g. {"memoryValue": true}) silently leaves `enabled` false;
|
|
162
151
|
// this feature must never be silently off, so warn loudly and fall back to defaults instead.
|
|
163
152
|
const memoryValueRaw = raw.memoryValue;
|
|
164
|
-
const validMemoryValueConfig = memoryValueRaw === undefined ||
|
|
153
|
+
const validMemoryValueConfig = memoryValueRaw === undefined || isJsonObject(memoryValueRaw);
|
|
165
154
|
if (!validMemoryValueConfig) {
|
|
166
155
|
log.warn(`config.json's "memoryValue" must be an object like {"enabled": true} ` +
|
|
167
156
|
`(got ${JSON.stringify(memoryValueRaw)}) - using defaults.`);
|
|
168
157
|
}
|
|
169
|
-
return memoryValueRaw !== undefined &&
|
|
158
|
+
return memoryValueRaw !== undefined && isJsonObject(memoryValueRaw) ? memoryValueRaw : {};
|
|
170
159
|
}
|
|
171
160
|
function dormantSettings(raw) {
|
|
172
|
-
// Same rule as memoryValue above: a malformed value never silently
|
|
173
|
-
// changes what sleep does. Anything but a real object / boolean / number
|
|
161
|
+
// Same rule as memoryValue above: a malformed value never silently changes what sleep does; anything but a real object / boolean / number
|
|
174
162
|
// warns and falls back to the default, which keeps faded memories.
|
|
175
163
|
const dormantRaw = raw.dormant;
|
|
176
|
-
if (dormantRaw !== undefined && !
|
|
164
|
+
if (dormantRaw !== undefined && !isJsonObject(dormantRaw)) {
|
|
177
165
|
log.warn(`config.json's "dormant" must be an object like {"enabled": false} ` +
|
|
178
166
|
`(got ${JSON.stringify(dormantRaw)}) - using the default (faded memories kept dormant).`);
|
|
179
167
|
}
|
|
180
|
-
const dormantOverride = dormantRaw !== undefined &&
|
|
168
|
+
const dormantOverride = dormantRaw !== undefined && isJsonObject(dormantRaw) ? dormantRaw : {};
|
|
181
169
|
// Only a real boolean counts: {"enabled": "false"} is a truthy string.
|
|
182
170
|
let dormantEnabled = dormantOverride.enabled ?? DEFAULT_CONFIG.dormant.enabled;
|
|
183
171
|
if (dormantEnabled !== true && dormantEnabled !== false) {
|
|
@@ -196,12 +184,12 @@ function dormantSettings(raw) {
|
|
|
196
184
|
function churnStalenessEnabled(raw) {
|
|
197
185
|
// Same "never silently wrong" rule as memoryValue/dormant above.
|
|
198
186
|
const churnStalenessRaw = raw.churnStaleness;
|
|
199
|
-
const validChurnStalenessConfig = churnStalenessRaw === undefined ||
|
|
187
|
+
const validChurnStalenessConfig = churnStalenessRaw === undefined || isJsonObject(churnStalenessRaw);
|
|
200
188
|
if (!validChurnStalenessConfig) {
|
|
201
189
|
log.warn(`config.json's "churnStaleness" must be an object like {"enabled": true} ` +
|
|
202
190
|
`(got ${JSON.stringify(churnStalenessRaw)}) - using defaults.`);
|
|
203
191
|
}
|
|
204
|
-
const enabled = churnStalenessRaw !== undefined &&
|
|
192
|
+
const enabled = churnStalenessRaw !== undefined && isJsonObject(churnStalenessRaw)
|
|
205
193
|
? churnStalenessRaw.enabled
|
|
206
194
|
: DEFAULT_CONFIG.churnStaleness.enabled;
|
|
207
195
|
if (enabled !== true && enabled !== false) {
|
|
@@ -230,63 +218,95 @@ function sharedStoreFlag(raw) {
|
|
|
230
218
|
return false;
|
|
231
219
|
}
|
|
232
220
|
export function loadConfig(hippoRoot) {
|
|
233
|
-
|
|
234
|
-
if (
|
|
221
|
+
// A caller that names no folder, as an add-on serving another store does, gets the defaults, never the working folder's config.json.
|
|
222
|
+
if (hippoRoot === '')
|
|
235
223
|
return { ...DEFAULT_CONFIG };
|
|
224
|
+
const configPath = path.join(hippoRoot, 'config.json');
|
|
225
|
+
const key = path.resolve(configPath);
|
|
226
|
+
const stamp = fileStamp(configPath);
|
|
227
|
+
const hit = parsedConfigs.get(key);
|
|
228
|
+
if (hit !== undefined && hit.stamp === stamp)
|
|
229
|
+
return { ...hit.config };
|
|
230
|
+
const config = stamp === null ? DEFAULT_CONFIG : parseConfigFile(configPath);
|
|
231
|
+
if (parsedConfigs.size >= PARSED_CONFIGS_MAX)
|
|
232
|
+
parsedConfigs.clear();
|
|
233
|
+
parsedConfigs.set(key, { stamp, config });
|
|
234
|
+
return { ...config };
|
|
235
|
+
}
|
|
236
|
+
const PARSED_CONFIGS_MAX = 64;
|
|
237
|
+
// Each path's parsed config with the stamp of the file it came from, so an unchanged file costs one stat and no parse.
|
|
238
|
+
const parsedConfigs = new Map();
|
|
239
|
+
/** A file's mtime and size, which an edit changes; null when it is missing or cannot be reached, as existsSync answers false. */
|
|
240
|
+
function fileStamp(file) {
|
|
241
|
+
try {
|
|
242
|
+
const stat = fs.statSync(file, { throwIfNoEntry: false });
|
|
243
|
+
return stat === undefined ? null : `${stat.mtimeMs}:${stat.size}`;
|
|
244
|
+
}
|
|
245
|
+
catch (err) {
|
|
246
|
+
log.debug(`config: ${file} could not be reached, read as missing: ${errorMessage(err)}`);
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
function parseConfigFile(configPath) {
|
|
236
251
|
try {
|
|
237
252
|
const raw = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
238
|
-
|
|
239
|
-
const validBasis = basis === 'clock' || basis === 'session' || basis === 'adaptive';
|
|
240
|
-
const memoryValue = memoryValueOverride(raw);
|
|
241
|
-
const dormant = dormantSettings(raw);
|
|
242
|
-
const churnEnabled = churnStalenessEnabled(raw);
|
|
243
|
-
const halfLifeDays = defaultHalfLifeDays(raw);
|
|
244
|
-
return {
|
|
245
|
-
defaultHalfLifeDays: halfLifeDays,
|
|
246
|
-
defaultBudget: raw.defaultBudget ?? DEFAULT_CONFIG.defaultBudget,
|
|
247
|
-
defaultContextBudget: raw.defaultContextBudget ?? DEFAULT_CONFIG.defaultContextBudget,
|
|
248
|
-
decayBasis: validBasis ? basis : DEFAULT_CONFIG.decayBasis,
|
|
249
|
-
autoLearnOnSleep: raw.autoLearnOnSleep ?? DEFAULT_CONFIG.autoLearnOnSleep,
|
|
250
|
-
autoShareOnSleep: raw.autoShareOnSleep ?? DEFAULT_CONFIG.autoShareOnSleep,
|
|
251
|
-
autoSleep: { ...DEFAULT_CONFIG.autoSleep, ...(raw.autoSleep ?? {}) },
|
|
252
|
-
embeddings: { ...DEFAULT_CONFIG.embeddings, ...(raw.embeddings ?? {}) },
|
|
253
|
-
global: { ...DEFAULT_CONFIG.global, ...(raw.global ?? {}) },
|
|
254
|
-
gitLearnPatterns: raw.gitLearnPatterns ?? DEFAULT_CONFIG.gitLearnPatterns,
|
|
255
|
-
physics: mergePhysicsConfig(raw.physics),
|
|
256
|
-
mmr: { ...DEFAULT_CONFIG.mmr, ...(raw.mmr ?? {}) },
|
|
257
|
-
search: { ...DEFAULT_CONFIG.search, ...(raw.search ?? {}) },
|
|
258
|
-
replay: { ...DEFAULT_CONFIG.replay, ...(raw.replay ?? {}) },
|
|
259
|
-
autoTraceCapture: raw.autoTraceCapture ?? DEFAULT_CONFIG.autoTraceCapture,
|
|
260
|
-
autoTraceWindowDays: raw.autoTraceWindowDays ?? DEFAULT_CONFIG.autoTraceWindowDays,
|
|
261
|
-
pinnedInject: { ...DEFAULT_CONFIG.pinnedInject, ...(raw.pinnedInject ?? {}) },
|
|
262
|
-
contextProjectIsolation: raw.contextProjectIsolation ?? DEFAULT_CONFIG.contextProjectIsolation,
|
|
263
|
-
extraction: { ...DEFAULT_CONFIG.extraction, ...(raw.extraction ?? {}) },
|
|
264
|
-
multihop: { ...DEFAULT_CONFIG.multihop, ...(raw.multihop ?? {}) },
|
|
265
|
-
salience: { ...DEFAULT_CONFIG.salience, ...(raw.salience ?? {}) },
|
|
266
|
-
ambient: { ...DEFAULT_CONFIG.ambient, ...(raw.ambient ?? {}) },
|
|
267
|
-
memoryValue: {
|
|
268
|
-
...DEFAULT_CONFIG.memoryValue,
|
|
269
|
-
...memoryValue,
|
|
270
|
-
},
|
|
271
|
-
dormant,
|
|
272
|
-
churnStaleness: {
|
|
273
|
-
enabled: churnEnabled,
|
|
274
|
-
},
|
|
275
|
-
agentMemories: { tools: agentMemoryTools(raw.agentMemories?.tools) },
|
|
276
|
-
deliveryLedger: { enabled: deliveryLedgerEnabled(raw.deliveryLedger) },
|
|
277
|
-
pilot: { holdoutRateBp: pilotHoldoutRate(raw.pilot) },
|
|
278
|
-
projectIdentity: { remote: projectIdentityRemote(raw.projectIdentity) },
|
|
279
|
-
sharedStore: sharedStoreFlag(raw),
|
|
280
|
-
};
|
|
253
|
+
return configOverDefaults(raw);
|
|
281
254
|
}
|
|
282
255
|
catch (err) {
|
|
283
256
|
if (fs.existsSync(configPath)) {
|
|
284
|
-
log.warn(`failed to parse ${configPath}: ${err
|
|
257
|
+
log.warn(`failed to parse ${configPath}: ${errorMessage(err)}`);
|
|
285
258
|
}
|
|
286
259
|
return { ...DEFAULT_CONFIG };
|
|
287
260
|
}
|
|
288
261
|
}
|
|
262
|
+
function configOverDefaults(raw) {
|
|
263
|
+
const basis = raw.decayBasis;
|
|
264
|
+
const validBasis = basis === 'clock' || basis === 'session' || basis === 'adaptive';
|
|
265
|
+
const memoryValue = memoryValueOverride(raw);
|
|
266
|
+
const dormant = dormantSettings(raw);
|
|
267
|
+
const churnEnabled = churnStalenessEnabled(raw);
|
|
268
|
+
const halfLifeDays = defaultHalfLifeDays(raw);
|
|
269
|
+
return {
|
|
270
|
+
defaultHalfLifeDays: halfLifeDays,
|
|
271
|
+
defaultBudget: raw.defaultBudget ?? DEFAULT_CONFIG.defaultBudget,
|
|
272
|
+
defaultContextBudget: raw.defaultContextBudget ?? DEFAULT_CONFIG.defaultContextBudget,
|
|
273
|
+
decayBasis: validBasis ? basis : DEFAULT_CONFIG.decayBasis,
|
|
274
|
+
autoLearnOnSleep: raw.autoLearnOnSleep ?? DEFAULT_CONFIG.autoLearnOnSleep,
|
|
275
|
+
autoShareOnSleep: raw.autoShareOnSleep ?? DEFAULT_CONFIG.autoShareOnSleep,
|
|
276
|
+
autoSleep: { ...DEFAULT_CONFIG.autoSleep, ...raw.autoSleep },
|
|
277
|
+
embeddings: { ...DEFAULT_CONFIG.embeddings, ...raw.embeddings },
|
|
278
|
+
global: { ...DEFAULT_CONFIG.global, ...raw.global },
|
|
279
|
+
gitLearnPatterns: raw.gitLearnPatterns ?? DEFAULT_CONFIG.gitLearnPatterns,
|
|
280
|
+
physics: mergePhysicsConfig(raw.physics),
|
|
281
|
+
mmr: { ...DEFAULT_CONFIG.mmr, ...raw.mmr },
|
|
282
|
+
search: { ...DEFAULT_CONFIG.search, ...raw.search },
|
|
283
|
+
replay: { ...DEFAULT_CONFIG.replay, ...raw.replay },
|
|
284
|
+
autoTraceCapture: raw.autoTraceCapture ?? DEFAULT_CONFIG.autoTraceCapture,
|
|
285
|
+
autoTraceWindowDays: raw.autoTraceWindowDays ?? DEFAULT_CONFIG.autoTraceWindowDays,
|
|
286
|
+
pinnedInject: { ...DEFAULT_CONFIG.pinnedInject, ...raw.pinnedInject },
|
|
287
|
+
contextProjectIsolation: raw.contextProjectIsolation ?? DEFAULT_CONFIG.contextProjectIsolation,
|
|
288
|
+
extraction: { ...DEFAULT_CONFIG.extraction, ...raw.extraction },
|
|
289
|
+
multihop: { ...DEFAULT_CONFIG.multihop, ...raw.multihop },
|
|
290
|
+
salience: { ...DEFAULT_CONFIG.salience, ...raw.salience },
|
|
291
|
+
ambient: { ...DEFAULT_CONFIG.ambient, ...raw.ambient },
|
|
292
|
+
memoryValue: {
|
|
293
|
+
...DEFAULT_CONFIG.memoryValue,
|
|
294
|
+
...memoryValue,
|
|
295
|
+
},
|
|
296
|
+
dormant,
|
|
297
|
+
churnStaleness: {
|
|
298
|
+
enabled: churnEnabled,
|
|
299
|
+
},
|
|
300
|
+
agentMemories: { tools: agentMemoryTools(raw.agentMemories?.tools) },
|
|
301
|
+
deliveryLedger: { enabled: deliveryLedgerEnabled(raw.deliveryLedger) },
|
|
302
|
+
pilot: { holdoutRateBp: pilotHoldoutRate(raw.pilot) },
|
|
303
|
+
projectIdentity: { remote: projectIdentityRemote(raw.projectIdentity) },
|
|
304
|
+
sharedStore: sharedStoreFlag(raw),
|
|
305
|
+
};
|
|
306
|
+
}
|
|
289
307
|
const sharedStoreRoots = new Set();
|
|
308
|
+
// The stamp of each config.json last read as not shared: an unchanged file is not parsed again.
|
|
309
|
+
const notSharedStamps = new Map();
|
|
290
310
|
/** The folder as isGlobalStoreRoot compares it (realpath, case-folded on Windows); its helper sits behind an import cycle. */
|
|
291
311
|
function sharedStoreKey(hippoRoot) {
|
|
292
312
|
let real;
|
|
@@ -294,30 +314,35 @@ function sharedStoreKey(hippoRoot) {
|
|
|
294
314
|
real = fs.realpathSync.native(hippoRoot);
|
|
295
315
|
}
|
|
296
316
|
catch (err) {
|
|
297
|
-
log.debug(`sharedStore: realpath fell back to resolve for ${hippoRoot}: ${
|
|
317
|
+
log.debug(`sharedStore: realpath fell back to resolve for ${hippoRoot}: ${errorMessage(err)}`);
|
|
298
318
|
real = path.resolve(hippoRoot);
|
|
299
319
|
}
|
|
300
320
|
return process.platform === 'win32' ? real.toLowerCase() : real;
|
|
301
321
|
}
|
|
302
322
|
/** True when the store's config.json sets `"sharedStore": true`. Once true, a root stays true for this process,
|
|
303
|
-
* so a broken edit while a server runs cannot turn it off. Reads only this key
|
|
323
|
+
* so a broken edit while a server runs cannot turn it off. Reads only this key, so loadConfig's warnings stay loadConfig's. */
|
|
304
324
|
export function isSharedStore(hippoRoot) {
|
|
305
325
|
const key = sharedStoreKey(hippoRoot);
|
|
306
326
|
if (sharedStoreRoots.has(key))
|
|
307
327
|
return true;
|
|
308
328
|
const configPath = path.join(path.resolve(hippoRoot), 'config.json');
|
|
309
|
-
|
|
329
|
+
const stamp = fileStamp(configPath);
|
|
330
|
+
if (stamp === null || notSharedStamps.get(configPath) === stamp)
|
|
310
331
|
return false;
|
|
311
332
|
let raw;
|
|
312
333
|
try {
|
|
313
334
|
raw = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
314
335
|
}
|
|
315
336
|
catch (err) {
|
|
316
|
-
log.warn(`failed to read ${configPath}: ${err
|
|
337
|
+
log.warn(`failed to read ${configPath}: ${errorMessage(err)} - sharedStore read as false.`);
|
|
317
338
|
return false;
|
|
318
339
|
}
|
|
319
|
-
if (raw?.sharedStore !== true)
|
|
340
|
+
if (raw?.sharedStore !== true) {
|
|
341
|
+
if (notSharedStamps.size >= PARSED_CONFIGS_MAX)
|
|
342
|
+
notSharedStamps.clear();
|
|
343
|
+
notSharedStamps.set(configPath, stamp);
|
|
320
344
|
return false;
|
|
345
|
+
}
|
|
321
346
|
sharedStoreRoots.add(key);
|
|
322
347
|
return true;
|
|
323
348
|
}
|
|
@@ -328,5 +353,6 @@ export function markSharedStore(hippoRoot) {
|
|
|
328
353
|
/** Test seam: forget every root seen as shared. */
|
|
329
354
|
export function _resetSharedStoreCacheForTests() {
|
|
330
355
|
sharedStoreRoots.clear();
|
|
356
|
+
notSharedStamps.clear();
|
|
331
357
|
}
|
|
332
358
|
//# sourceMappingURL=config.js.map
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session handoff types and helpers.
|
|
3
|
-
*
|
|
4
|
-
* A handoff captures the state of a session so that a successor
|
|
5
|
-
* session (or a different agent) can pick up where the previous
|
|
6
|
-
* one left off.
|
|
7
|
-
*/
|
|
1
|
+
/** Session handoff types and helpers: a handoff captures a session's state so a successor session or another agent can pick up where it left off. */
|
|
8
2
|
/** Terminal state of a handoff's session, denormalized from its `session_complete` event. */
|
|
9
3
|
export type HandoffOutcome = 'success' | 'failure' | 'partial';
|
|
10
4
|
/** Best-effort evidence of repo state at handoff time; null fields mean collection failed or was skipped. */
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/** Session handoff types and helpers: a handoff captures a session's state so a successor session or another agent can pick up where it left off. */
|
|
2
|
+
import { isJsonString } from '../util/json.js';
|
|
3
|
+
import { warnDamagedColumn } from '../util/stored-json.js';
|
|
4
|
+
/** Narrows an unvalidated value (e.g. CLI input or event content) to a HandoffOutcome. */
|
|
5
|
+
export function isHandoffOutcome(v) {
|
|
6
|
+
return v === 'success' || v === 'failure' || v === 'partial';
|
|
7
|
+
}
|
|
8
|
+
/** Renders evidence as one line shared by every renderer (CLI, MCP, token accounting). */
|
|
9
|
+
export function formatHandoffEvidenceLine(evidence) {
|
|
10
|
+
const gitRef = evidence.gitRef ?? 'unknown';
|
|
11
|
+
const tree = evidence.dirtyTree === true ? 'dirty' : evidence.dirtyTree === false ? 'clean' : 'unknown';
|
|
12
|
+
const tests = evidence.testStatus ?? 'unknown';
|
|
13
|
+
return `git ${gitRef}, tree ${tree}, tests ${tests}`;
|
|
14
|
+
}
|
|
15
|
+
const TEST_STATUSES = new Set(['pass', 'fail', 'unknown']);
|
|
16
|
+
const absent = (v) => v === undefined || v === null;
|
|
17
|
+
function isHandoffEvidence(v) {
|
|
18
|
+
if (!(v instanceof Object) || Array.isArray(v))
|
|
19
|
+
return false;
|
|
20
|
+
const { gitRef, dirtyTree, testStatus, derivedFrom } = v;
|
|
21
|
+
return (absent(gitRef) || isJsonString(gitRef))
|
|
22
|
+
&& (absent(dirtyTree) || dirtyTree === true || dirtyTree === false)
|
|
23
|
+
&& (absent(testStatus) || TEST_STATUSES.has(testStatus))
|
|
24
|
+
&& (derivedFrom === undefined || derivedFrom === 'transcript');
|
|
25
|
+
}
|
|
26
|
+
/** A stored list column as strings; a damaged one logs and reads as empty instead of hiding the whole handoff. */
|
|
27
|
+
function storedList(row, column) {
|
|
28
|
+
const raw = row[column];
|
|
29
|
+
if (!raw)
|
|
30
|
+
return [];
|
|
31
|
+
try {
|
|
32
|
+
const parsed = JSON.parse(raw);
|
|
33
|
+
return Array.isArray(parsed) ? parsed.map((item) => String(item)) : [];
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
warnDamagedColumn({ table: 'session_handoffs', id: row.id, column }, 'not valid JSON');
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Stored evidence, or null (after a log line) when the column is damaged or holds another shape. */
|
|
41
|
+
function storedEvidence(row) {
|
|
42
|
+
if (!row.evidence_json)
|
|
43
|
+
return null;
|
|
44
|
+
const site = { table: 'session_handoffs', id: row.id, column: 'evidence_json' };
|
|
45
|
+
let parsed;
|
|
46
|
+
try {
|
|
47
|
+
parsed = JSON.parse(row.evidence_json);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
warnDamagedColumn(site, 'not valid JSON');
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
if (parsed === null)
|
|
54
|
+
return null;
|
|
55
|
+
if (isHandoffEvidence(parsed))
|
|
56
|
+
return parsed;
|
|
57
|
+
warnDamagedColumn(site, 'wrong shape');
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
export function rowToSessionHandoff(row) {
|
|
61
|
+
const artifacts = storedList(row, 'artifacts_json');
|
|
62
|
+
const constraints = storedList(row, 'constraints_json');
|
|
63
|
+
const evidence = storedEvidence(row);
|
|
64
|
+
return {
|
|
65
|
+
version: 1,
|
|
66
|
+
sessionId: row.session_id,
|
|
67
|
+
repoRoot: row.repo_root ?? undefined,
|
|
68
|
+
taskId: row.task_id ?? undefined,
|
|
69
|
+
summary: row.summary,
|
|
70
|
+
nextAction: row.next_action ?? undefined,
|
|
71
|
+
artifacts,
|
|
72
|
+
scope: row.scope ?? null,
|
|
73
|
+
updatedAt: row.created_at,
|
|
74
|
+
constraints,
|
|
75
|
+
evidence,
|
|
76
|
+
outcome: isHandoffOutcome(row.outcome) ? row.outcome : null,
|
|
77
|
+
targetRuntime: row.target_runtime ?? null,
|
|
78
|
+
cardId: row.card_id ?? null,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=handoff.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { COMPACTION_MEMORY_TAG, COMPACTION_SOURCE_PREFIX } from './memory.js';
|
|
2
|
-
import { heldTexts } from '
|
|
2
|
+
import { heldTexts } from '../util/same-text.js';
|
|
3
3
|
export const STOP_WORDS = new Set([
|
|
4
4
|
'the', 'a', 'an', 'is', 'was', 'are', 'were', 'be', 'been', 'being',
|
|
5
5
|
'to', 'of', 'in', 'for', 'on', 'with', 'at', 'by', 'from', 'it',
|
|
@@ -28,7 +28,7 @@ export function isReleaseCommitNoise(text) {
|
|
|
28
28
|
/** Short preferences and rules carry a useful relationship even without a path or number. */
|
|
29
29
|
export function hasNoSpecificity(text) {
|
|
30
30
|
const domainAcronyms = (text.match(/\b[A-Z]{2,6}\b/g) ?? []).filter(a => !CHAT_ACRONYMS.test(a));
|
|
31
|
-
if (/\d|[A-Z][a-z]{2,}|[/\\.]|[`_{}()
|
|
31
|
+
if (/\d|[A-Z][a-z]{2,}|[/\\.]|[`_{}()[\]]/.test(text))
|
|
32
32
|
return false;
|
|
33
33
|
if (domainAcronyms.length > 0 && /[a-z]/.test(text))
|
|
34
34
|
return false;
|