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
|
@@ -1,22 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Conservative, provider-bounded patterns only - a bare `sk-` in prose must
|
|
5
|
-
* NOT flag. Detection gates two surfaces:
|
|
6
|
-
* - producer: shareMemory/autoShare never promote flagged rows to the
|
|
7
|
-
* global store;
|
|
8
|
-
* - consumer: ambient context (getContext) never injects a flagged row
|
|
9
|
-
* outside its owning project, and never anywhere when the row has no
|
|
10
|
-
* project origin. Explicit recall is unaffected - recalling a secret is
|
|
11
|
-
* a deliberate act.
|
|
12
|
-
*
|
|
13
|
-
* This is deliberately a thin slice of lifecycle compliance
|
|
14
|
-
* (no PII detection). Write-time scrubbing covers only text no person
|
|
15
|
-
* typed into hippo; see `vetSecrets`.
|
|
16
|
-
*
|
|
17
|
-
* Leaf module: keep free of imports from store/api/shared so all of them
|
|
18
|
-
* can import it without cycles.
|
|
19
|
-
*/
|
|
1
|
+
/** Secret detection for memory content: conservative provider-bounded patterns (a bare `sk-` in prose must not flag). Flagged rows are never shared to
|
|
2
|
+
* the global store or injected as ambient context outside their project; explicit recall is unaffected. Leaf module: no imports from store/api/shared. */
|
|
20
3
|
/** Tags that flag a memory as secret, lower case; detectSecret folds a tag's case before the lookup. */
|
|
21
4
|
export const SECRET_TAGS = new Set([
|
|
22
5
|
'secret', 'api-key', 'apikey', 'credential', 'credentials',
|
|
@@ -26,10 +9,12 @@ const SECRET_PATTERNS = [
|
|
|
26
9
|
{ name: 'aws-access-key', re: /\bAKIA[0-9A-Z]{16}\b/ },
|
|
27
10
|
{ name: 'github-token', re: /\b(?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9]{36}\b/ },
|
|
28
11
|
{ name: 'github-fine-grained-pat', re: /\bgithub_pat_[A-Za-z0-9_]{22,}\b/ },
|
|
29
|
-
|
|
12
|
+
// A token may end in a hyphen, where `\b` holds only before a word character: a class
|
|
13
|
+
// that holds `-` runs to its end, and a fixed length may also close on a hyphen.
|
|
14
|
+
{ name: 'slack-token', re: /\bxox[baprs]-[A-Za-z0-9-]{10,}/ },
|
|
30
15
|
{ name: 'stripe-key', re: /\b[sr]k_(?:live|test)_[A-Za-z0-9]{16,}\b/ },
|
|
31
|
-
{ name: 'google-api-key', re: /\bAIza[0-9A-Za-z_-]{35}
|
|
32
|
-
// hk_ is hippo's own API key (src/auth.ts); npm, Hugging Face, GitLab and Slack webhook shapes follow gitleaks' rules.
|
|
16
|
+
{ name: 'google-api-key', re: /\bAIza[0-9A-Za-z_-]{35}(?:\b|(?<=-))/ },
|
|
17
|
+
// hk_ is hippo's own API key (src/store/auth.ts); npm, Hugging Face, GitLab and Slack webhook shapes follow gitleaks' rules.
|
|
33
18
|
{ name: 'hippo-api-key', re: /\bhk_[a-z2-7]{24}\.[a-z2-7]{32}\b/ },
|
|
34
19
|
{ name: 'npm-token', re: /\bnpm_[A-Za-z0-9]{36}\b/ },
|
|
35
20
|
{ name: 'huggingface-token', re: /\bhf_[A-Za-z]{34}\b/ },
|
|
@@ -37,15 +22,12 @@ const SECRET_PATTERNS = [
|
|
|
37
22
|
{ name: 'google-oauth-token', re: /\bya29\.[\w-]{20,}/ },
|
|
38
23
|
{ name: 'slack-webhook', re: /\bhooks\.slack\.com\/(?:services|workflows|triggers)\/[A-Za-z0-9+/]{43,56}/ },
|
|
39
24
|
{ name: 'private-key-block', re: /-----BEGIN [A-Z ]*PRIVATE KEY-----/ },
|
|
40
|
-
// sk-... (OpenAI/Anthropic
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
-
// does not flag, but a stored key ("prod API key sk_live_...")
|
|
44
|
-
// does.
|
|
45
|
-
{ name: 'sk-style-key', re: /\bsk-[A-Za-z0-9_-]{20,}\b/ },
|
|
25
|
+
// sk-... (OpenAI/Anthropic) and sk_<vendor>_... shapes; both need a key-ish noun in the content (co-occurrence guard), so prose
|
|
26
|
+
// like "the sk- prefix identifies API keys" does not flag but "prod API key sk_live_..." does.
|
|
27
|
+
{ name: 'sk-style-key', re: /\bsk-[A-Za-z0-9_-]{20,}/ },
|
|
46
28
|
{ name: 'sk-underscore-key', re: /\bsk_[A-Za-z0-9]+_[A-Za-z0-9_]{6,}\b/ },
|
|
47
|
-
//
|
|
48
|
-
// Secret names end in the keyword (dbPassword
|
|
29
|
+
// Value needs 12+ token-safe chars and a digit, or `token = estimateTokens(...)` and user:password@ templates would hide code lessons from ambient context.
|
|
30
|
+
// Secret names end in the keyword (dbPassword), so the match opens there, no prefix scan; pwd and pass need a _ (OLDPWD, bypass are not secrets).
|
|
49
31
|
{ name: 'secret-assignment', re: /(?:(?:api[_-]?key|access[_-]?key|private[_-]?key|secret|token|passw(?:or)?d|(?<=_)(?:pwd|pass))(?:[_-]?(?:key(?:[_-]?base)?|value|secret))?['"]?\s*(?::=?|=>?)\s*['"]?|(?<=--)password(?:=|\s+))(?=[A-Za-z0-9_\-+/]*\d)[A-Za-z0-9_\-+/=]{12,}/i },
|
|
50
32
|
{ name: 'url-password', re: /(?<=[A-Za-z0-9]:\/\/)[^\s/:@?#]*:(?=[^\s/@?#]*\d)[^\s/@?#]+(?=@)/ },
|
|
51
33
|
];
|
|
@@ -58,10 +40,7 @@ const STRICT_ONLY_PATTERNS = [
|
|
|
58
40
|
/(?<![A-Za-z0-9_-])eyJ[A-Za-z0-9_-]{8,}\.eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]*/g,
|
|
59
41
|
/(?<=[A-Za-z0-9]:\/\/)[^\s/:@?#]*:[^\s/@?#]+(?=@)/g,
|
|
60
42
|
];
|
|
61
|
-
/**
|
|
62
|
-
* Scan a memory's tags + content for secret material.
|
|
63
|
-
* Pure and deterministic; no filesystem or store access.
|
|
64
|
-
*/
|
|
43
|
+
/** Scan a memory's tags + content for secret material; pure and deterministic, no filesystem or store access. */
|
|
65
44
|
export function detectSecret(entry) {
|
|
66
45
|
for (const tag of entry.tags) {
|
|
67
46
|
if (SECRET_TAGS.has(tag.toLowerCase())) {
|
|
@@ -77,17 +56,13 @@ export function detectSecret(entry) {
|
|
|
77
56
|
}
|
|
78
57
|
return { flagged: false, reason: null };
|
|
79
58
|
}
|
|
80
|
-
/**
|
|
81
|
-
*
|
|
82
|
-
* Reuses the same `SECRET_PATTERNS` / co-occurrence guard as `detectSecret`
|
|
83
|
-
* (which only flags whole-entry content) so callers that must persist raw
|
|
84
|
-
* text that never passes through the normal capture content gate (e.g. the
|
|
85
|
-
* pre-compact snapshot fields) can scrub it in place instead.
|
|
86
|
-
*/
|
|
59
|
+
/** Replace secret-shaped substrings in free text with a redaction marker, using the same `SECRET_PATTERNS` and co-occurrence guard as `detectSecret`;
|
|
60
|
+
* for callers persisting text that skips the capture content gate (e.g. pre-compact snapshot fields). */
|
|
87
61
|
export function redactSecrets(text) {
|
|
88
62
|
return redactText(text, false);
|
|
89
63
|
}
|
|
90
|
-
/** Only a run's first character starts a match, so a long run is scanned once; a
|
|
64
|
+
/** Only a run's first character starts a match, so a long run is scanned once; a
|
|
65
|
+
* domain's first label opens on a letter, so logo@2x.png and react@18.2.0 stay. */
|
|
91
66
|
const EMAIL = /(?<![A-Za-z0-9._%+-])[A-Za-z0-9._%+-]{1,64}@[A-Za-z][A-Za-z0-9-]*(?:\.[A-Za-z0-9-]+)*\.[A-Za-z]{2,}\b/g;
|
|
92
67
|
/** Memories never hold a raw email address (AGENTS.md); phone numbers are left alone, as their patterns misfire on ids. */
|
|
93
68
|
export function maskEmails(text) {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Where the value lives. The value itself is never logged: it is caller-written text. */
|
|
2
|
+
export interface StoredJsonSite {
|
|
3
|
+
table: string;
|
|
4
|
+
id: string | number;
|
|
5
|
+
column: string;
|
|
6
|
+
}
|
|
7
|
+
/** Warns the first time this row's column is found damaged (the logger caps how many), then at debug, so a row read on every recall cannot flood stderr. */
|
|
8
|
+
export declare function warnDamagedColumn(site: StoredJsonSite, problem: 'not valid JSON' | 'wrong shape'): void;
|
|
9
|
+
//# sourceMappingURL=stored-json.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// One log line for a stored JSON column that will not read, so a reader that degrades to an empty value still leaves a trace.
|
|
2
|
+
import { log } from './log.js';
|
|
3
|
+
/** Warns the first time this row's column is found damaged (the logger caps how many), then at debug, so a row read on every recall cannot flood stderr. */
|
|
4
|
+
export function warnDamagedColumn(site, problem) {
|
|
5
|
+
const { table, id, column } = site;
|
|
6
|
+
log.warnThenDebug(`damaged-column:${table}:${id}:${column}`, `store: ${table}.${column} is ${problem}; read as empty`, { table, id, column });
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=stored-json.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Hex characters kept from a SHA-256 when it fingerprints a block, key or turn. */
|
|
2
|
+
export declare const FINGERPRINT_HEX_CHARS = 16;
|
|
3
|
+
/** Hex characters kept from a hash or UUID to build a short id. */
|
|
4
|
+
export declare const ID_SUFFIX_CHARS = 12;
|
|
5
|
+
/** Characters of a rejected-value or tombstone digest shown to a person. */
|
|
6
|
+
export declare const DIGEST_DISPLAY_CHARS = 12;
|
|
7
|
+
/** Length of the YYYY-MM-DD head of an ISO timestamp. */
|
|
8
|
+
export declare const DATE_PREFIX_CHARS = 10;
|
|
9
|
+
/** Characters of memory content shown as a one-line preview. */
|
|
10
|
+
export declare const CONTENT_PREVIEW_CHARS = 80;
|
|
11
|
+
/** Rough token estimate: characters / 4, the single estimate behind every token budget and ledger count. */
|
|
12
|
+
export declare function estimateTokens(text: string): number;
|
|
13
|
+
/** Stable 16-hex-char hash of a rendered block, for change detection. */
|
|
14
|
+
export declare function blockHash(text: string): string;
|
|
15
|
+
//# sourceMappingURL=token-text.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
/** Hex characters kept from a SHA-256 when it fingerprints a block, key or turn. */
|
|
3
|
+
export const FINGERPRINT_HEX_CHARS = 16;
|
|
4
|
+
/** Hex characters kept from a hash or UUID to build a short id. */
|
|
5
|
+
export const ID_SUFFIX_CHARS = 12;
|
|
6
|
+
/** Characters of a rejected-value or tombstone digest shown to a person. */
|
|
7
|
+
export const DIGEST_DISPLAY_CHARS = 12;
|
|
8
|
+
/** Length of the YYYY-MM-DD head of an ISO timestamp. */
|
|
9
|
+
export const DATE_PREFIX_CHARS = 10;
|
|
10
|
+
/** Characters of memory content shown as a one-line preview. */
|
|
11
|
+
export const CONTENT_PREVIEW_CHARS = 80;
|
|
12
|
+
/** Rough token estimate: characters / 4, the single estimate behind every token budget and ledger count. */
|
|
13
|
+
export function estimateTokens(text) {
|
|
14
|
+
return Math.ceil(text.length / 4);
|
|
15
|
+
}
|
|
16
|
+
/** Stable 16-hex-char hash of a rendered block, for change detection. */
|
|
17
|
+
export function blockHash(text) {
|
|
18
|
+
return createHash('sha256').update(text).digest('hex').slice(0, FINGERPRINT_HEX_CHARS);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=token-text.js.map
|
|
@@ -4,4 +4,6 @@ export declare const PRE_COMPACT_TAIL_BYTES: number;
|
|
|
4
4
|
export declare function truncateCodePointSafe(text: string, maxChars: number): string;
|
|
5
5
|
/** The last `capBytes` of a JSONL transcript, read at an offset and starting on a whole line so every line parses. */
|
|
6
6
|
export declare function readTranscriptTail(transcriptPath: string, capBytes?: number): string;
|
|
7
|
+
/** {@link readTranscriptTail} for a transcript the caller opened and sized, so the size and the bytes come from one file. */
|
|
8
|
+
export declare function readOpenTranscriptTail(fd: number, size: number, capBytes: number): string;
|
|
7
9
|
//# sourceMappingURL=transcript-tail.d.ts.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Transcript reads shared by src/capture/ and compaction-record.ts; a leaf so neither has to import the other.
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
/** Never read the whole transcript: PreCompact fires exactly when it's largest. */
|
|
4
|
+
export const PRE_COMPACT_TAIL_BYTES = 256 * 1024;
|
|
5
|
+
/** Cut to `maxChars` UTF-16 units, backing off one unit rather than leave half a surrogate pair in a stored field. */
|
|
6
|
+
export function truncateCodePointSafe(text, maxChars) {
|
|
7
|
+
if (text.length <= maxChars)
|
|
8
|
+
return text;
|
|
9
|
+
let end = maxChars;
|
|
10
|
+
if (end > 0) {
|
|
11
|
+
const code = text.charCodeAt(end - 1);
|
|
12
|
+
if (code >= 0xd800 && code <= 0xdbff)
|
|
13
|
+
end -= 1;
|
|
14
|
+
}
|
|
15
|
+
return text.slice(0, end);
|
|
16
|
+
}
|
|
17
|
+
/** The last `capBytes` of a JSONL transcript, read at an offset and starting on a whole line so every line parses. */
|
|
18
|
+
export function readTranscriptTail(transcriptPath, capBytes = PRE_COMPACT_TAIL_BYTES) {
|
|
19
|
+
const fd = fs.openSync(transcriptPath, 'r');
|
|
20
|
+
try {
|
|
21
|
+
return readOpenTranscriptTail(fd, fs.fstatSync(fd).size, capBytes);
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
fs.closeSync(fd);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** {@link readTranscriptTail} for a transcript the caller opened and sized, so the size and the bytes come from one file. */
|
|
28
|
+
export function readOpenTranscriptTail(fd, size, capBytes) {
|
|
29
|
+
const start = Math.max(0, size - capBytes);
|
|
30
|
+
const length = size - start;
|
|
31
|
+
if (length <= 0)
|
|
32
|
+
return '';
|
|
33
|
+
// A seek that lands just after '\n' already starts a whole line and must keep it.
|
|
34
|
+
let onLineBoundary = start === 0;
|
|
35
|
+
if (!onLineBoundary) {
|
|
36
|
+
const prevByte = Buffer.alloc(1);
|
|
37
|
+
fs.readSync(fd, prevByte, 0, 1, start - 1);
|
|
38
|
+
onLineBoundary = prevByte[0] === 0x0a; // '\n'
|
|
39
|
+
}
|
|
40
|
+
const buf = Buffer.alloc(length);
|
|
41
|
+
fs.readSync(fd, buf, 0, length, start);
|
|
42
|
+
const text = buf.toString('utf8');
|
|
43
|
+
if (onLineBoundary)
|
|
44
|
+
return text;
|
|
45
|
+
// A read that lands mid-line drops the partial first line, so every line left parses as complete JSON.
|
|
46
|
+
const nl = text.indexOf('\n');
|
|
47
|
+
return nl === -1 ? '' : text.slice(nl + 1);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=transcript-tail.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Single source of truth for the package version, written by scripts/sync-version.mjs; never edit by hand. Read by the db rollback guard, /health, MCP.
|
|
2
|
+
* A constant, not a runtime package.json read: the published bundle may lack package.json on a path ESM can resolve. */
|
|
3
|
+
export declare const PACKAGE_VERSION = "1.71.0";
|
|
4
|
+
/** The floor a store takes on its first expiring key: the first release with schema
|
|
5
|
+
* v53, set by hand in that release; scripts/check-expiring-keys-floor.mjs gates it. */
|
|
6
|
+
export declare const EXPIRING_KEYS_MIN_BINARY = "1.64.0";
|
|
7
|
+
/** The floor a store takes on its first session bind or owner snapshot: first release with v54; set by hand in that release. */
|
|
8
|
+
export declare const TASK_OWNER_MIN_BINARY = "1.64.0";
|
|
9
|
+
/** Compares plain x.y.z versions, positive if a > b; tags throw so the rollback guard never misfires silently. */
|
|
10
|
+
export declare function compareSemver(a: string, b: string): number;
|
|
11
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Single source of truth for the package version, written by scripts/sync-version.mjs; never edit by hand. Read by the db rollback guard, /health, MCP.
|
|
2
|
+
* A constant, not a runtime package.json read: the published bundle may lack package.json on a path ESM can resolve. */
|
|
3
|
+
export const PACKAGE_VERSION = '1.71.0';
|
|
4
|
+
/** The floor a store takes on its first expiring key: the first release with schema
|
|
5
|
+
* v53, set by hand in that release; scripts/check-expiring-keys-floor.mjs gates it. */
|
|
6
|
+
export const EXPIRING_KEYS_MIN_BINARY = '1.64.0';
|
|
7
|
+
/** The floor a store takes on its first session bind or owner snapshot: first release with v54; set by hand in that release. */
|
|
8
|
+
export const TASK_OWNER_MIN_BINARY = '1.64.0';
|
|
9
|
+
/** Compares plain x.y.z versions, positive if a > b; tags throw so the rollback guard never misfires silently. */
|
|
10
|
+
export function compareSemver(a, b) {
|
|
11
|
+
const parse = (v) => {
|
|
12
|
+
const parts = v.split('.');
|
|
13
|
+
if (parts.length !== 3 || parts.some((n) => !/^\d+$/.test(n))) {
|
|
14
|
+
throw new Error(`compareSemver: expected numeric x.y.z without pre-release/build metadata: ${v}`);
|
|
15
|
+
}
|
|
16
|
+
return parts.map(Number);
|
|
17
|
+
};
|
|
18
|
+
const [a1, a2, a3] = parse(a);
|
|
19
|
+
const [b1, b2, b3] = parse(b);
|
|
20
|
+
if (a1 !== b1)
|
|
21
|
+
return (a1 ?? 0) - (b1 ?? 0);
|
|
22
|
+
if (a2 !== b2)
|
|
23
|
+
return (a2 ?? 0) - (b2 ?? 0);
|
|
24
|
+
return (a3 ?? 0) - (b3 ?? 0);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -294,12 +294,8 @@ export default function register(api: any) {
|
|
|
294
294
|
async execute(_id: string, params: { query: string; budget?: number }) {
|
|
295
295
|
const cfg = getConfig(api);
|
|
296
296
|
const budget = params.budget ?? cfg.budget ?? 1500;
|
|
297
|
-
const framing = cfg.framing ?? 'observe';
|
|
298
297
|
const hippoCwd = resolveHippoCwdFromContext(api, ctx, cfg.root);
|
|
299
|
-
const result = runHippo(
|
|
300
|
-
['recall', params.query, '--budget', String(budget), '--framing', framing],
|
|
301
|
-
hippoCwd,
|
|
302
|
-
);
|
|
298
|
+
const result = runHippo(['recall', params.query, '--budget', String(budget)], hippoCwd);
|
|
303
299
|
return { content: [{ type: 'text', text: result || 'No relevant memories found.' }] };
|
|
304
300
|
},
|
|
305
301
|
}));
|
|
@@ -356,7 +352,7 @@ export default function register(api: any) {
|
|
|
356
352
|
api.registerTool((ctx: HippoRuntimeContext) => ({
|
|
357
353
|
name: 'hippo_outcome',
|
|
358
354
|
description:
|
|
359
|
-
|
|
355
|
+
"Report whether recalled memories were useful. Good outcomes slow a memory's decay and bad ones speed it up, in proportion to its record. Call after completing work.",
|
|
360
356
|
parameters: {
|
|
361
357
|
type: 'object',
|
|
362
358
|
properties: {
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "hippo-memory",
|
|
3
3
|
"name": "Hippo Memory",
|
|
4
4
|
"description": "Make your agent's memory work like a brain. Hippo is long-term memory for coding agents.",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.71.0",
|
|
6
6
|
"configSchema": {
|
|
7
7
|
"type": "object",
|
|
8
8
|
"additionalProperties": false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hippo-memory",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.71.0",
|
|
4
4
|
"description": "Make your agent's memory work like a brain. Hippo is long-term memory for coding agents.",
|
|
5
5
|
"mcpName": "io.github.kitfunso/hippo-memory",
|
|
6
6
|
"type": "module",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"test:eval": "vitest run --config vitest.eval.config.ts",
|
|
44
44
|
"lint": "oxlint",
|
|
45
45
|
"sbom": "node scripts/sbom.mjs",
|
|
46
|
-
"audit:security": "npm audit --audit-level=
|
|
46
|
+
"audit:security": "npm audit --audit-level=moderate && npm --prefix ui audit --audit-level=moderate",
|
|
47
47
|
"postinstall": "node scripts/postinstall.cjs",
|
|
48
48
|
"smoke:pack": "node scripts/smoke-pack.mjs",
|
|
49
49
|
"smoke:openclaw-install": "node scripts/smoke-openclaw-install.mjs",
|
package/dist/ablation.d.ts
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EVAL-ONLY lifecycle ablation switches.
|
|
3
|
-
*
|
|
4
|
-
* These env flags exist for controlled experiments on hippo's memory-lifecycle
|
|
5
|
-
* mechanisms (the "lifecycle, ablated" paper protocol): each switch neutralizes
|
|
6
|
-
* exactly ONE mechanism so its causal contribution can be measured in isolation.
|
|
7
|
-
*
|
|
8
|
-
* They are NOT a production configuration surface:
|
|
9
|
-
* - no config-file equivalents, deliberately (config implies support);
|
|
10
|
-
* - undocumented in user-facing help;
|
|
11
|
-
* - semantics may change with the experiment design.
|
|
12
|
-
* Production behavior with all flags unset is byte-identical to before this
|
|
13
|
-
* module existed.
|
|
14
|
-
*
|
|
15
|
-
* Flags (set to '1' or 'true'):
|
|
16
|
-
* HIPPO_ABLATE_DECAY time-decay term := 1 in calculateStrength.
|
|
17
|
-
* HIPPO_ABLATE_RECALL_BOOST full recall-strengthening ablation:
|
|
18
|
-
* - markRetrieved returns entries UNMUTATED (no
|
|
19
|
-
* clock reset / count / half-life increment);
|
|
20
|
-
* ids stay available so `hippo outcome`
|
|
21
|
-
* attribution keeps working in this arm;
|
|
22
|
-
* - persisting callers (CLI recall, api context,
|
|
23
|
-
* MCP recall/context, consolidation replay)
|
|
24
|
-
* skip their writeEntry loops (identical-row
|
|
25
|
-
* writes still refresh updated_at / mirrors /
|
|
26
|
-
* DAG dirty flags);
|
|
27
|
-
* - the retrieval-count READ boost := 1;
|
|
28
|
-
* - decay anchors at `created` instead of
|
|
29
|
-
* `last_retrieved` (prior-run clock resets
|
|
30
|
-
* cannot leak in);
|
|
31
|
-
* - physics: computeMass ignores the count, and
|
|
32
|
-
* physicsSearch recomputes loaded masses LIVE
|
|
33
|
-
* under ablated strength rules (persisted
|
|
34
|
-
* masses embed recall history in their frozen
|
|
35
|
-
* strength component);
|
|
36
|
-
* - replay rehearsal is silenced entirely (it IS
|
|
37
|
-
* strengthening; use config replay.count=0 to
|
|
38
|
-
* separate replay in unflagged arms).
|
|
39
|
-
* CAVEAT: half_life increments persisted by
|
|
40
|
-
* prior unflagged runs are NOT reconstructed
|
|
41
|
-
* (consolidation legitimately writes half_life
|
|
42
|
-
* too) - ablation arms run on FRESH stores, as
|
|
43
|
-
* the experiment protocol mandates.
|
|
44
|
-
* HIPPO_ABLATE_OUTCOME both outcome channels := neutral
|
|
45
|
-
* (= _SLOW + _FAST together). The slow side also
|
|
46
|
-
* silences replay's outcome reward bias
|
|
47
|
-
* (replayPriority). NOT gated: the opt-in
|
|
48
|
-
* `recall --value-aware` rerank (an explicit CLI
|
|
49
|
-
* flag that also reads outcome counts) - ablated
|
|
50
|
-
* arms must not pass it.
|
|
51
|
-
* HIPPO_ABLATE_OUTCOME_SLOW rewardFactor := 1 (no half-life modulation).
|
|
52
|
-
* HIPPO_ABLATE_OUTCOME_FAST hybridSearch outcomeBoost := 1.
|
|
53
|
-
* HIPPO_ABLATE_RECENCY search recency factor := 1 (the creation-age
|
|
54
|
-
* multiplier 0.8 + 0.2*exp(-age/30d)); decay,
|
|
55
|
-
* strengthening and outcomes stay live.
|
|
56
|
-
* HIPPO_EVAL_RECENCY_DAYS a positive number replaces the 30-day scale of
|
|
57
|
-
* that recency factor (tuning grids only). Unset,
|
|
58
|
-
* zero, negative or junk values keep 30.
|
|
59
|
-
* HIPPO_FAKE_NOW timestamp injected as the default `now` for
|
|
60
|
-
* strength computation and retrieval stamping
|
|
61
|
-
* (simulated-time protocols). MUST be the exact
|
|
62
|
-
* Date.toISOString() form
|
|
63
|
-
* (YYYY-MM-DDTHH:mm:ss.sssZ); validated by
|
|
64
|
-
* round-trip, so junk, locale dates, non-UTC
|
|
65
|
-
* offsets, and rolled-over dates (2026-02-31)
|
|
66
|
-
* all fall back to the real clock.
|
|
67
|
-
*
|
|
68
|
-
* Formula notes (load-bearing for the experiments) - ablating decay has TWO
|
|
69
|
-
* intrinsic co-effects, because the unified formula routes other mechanisms
|
|
70
|
-
* THROUGH the decay term. Both are real properties of the architecture, not
|
|
71
|
-
* implementation accidents; experiment analysis must attribute accordingly
|
|
72
|
-
* (the decay-off arm is "decay + its dependents off", see prereg amendment A1):
|
|
73
|
-
* 1. Read-side strengthening flattens: raw = retrievalBoost * emotionalMult
|
|
74
|
-
* >= 1, and the [0,1] clamp caps it at 1.0 - the recall boost can only
|
|
75
|
-
* offset decay, never exceed baseline. (Write-side still runs.)
|
|
76
|
-
* 2. Outcome-slow goes inert: rewardFactor only acts by scaling the
|
|
77
|
-
* effective half-life INSIDE the decay exponent; with decay := 1 there
|
|
78
|
-
* is no exponent for it to modulate. Outcome-slow is decay-rate
|
|
79
|
-
* modulation BY DESIGN, so "no decay" necessarily means "no slow
|
|
80
|
-
* channel" (the fast channel in hybridSearch is unaffected).
|
|
81
|
-
*
|
|
82
|
-
* Env caching follows the house pattern (see getLossAversionRatio in
|
|
83
|
-
* memory.ts): read once per process, with a test-only reset helper. Tests
|
|
84
|
-
* that mutate these env vars MUST call _resetAblationCacheForTests() in BOTH
|
|
85
|
-
* beforeEach AND afterEach.
|
|
86
|
-
*/
|
|
87
|
-
export declare function isDecayAblated(): boolean;
|
|
88
|
-
export declare function isRecallBoostAblated(): boolean;
|
|
89
|
-
export declare function isOutcomeSlowAblated(): boolean;
|
|
90
|
-
export declare function isOutcomeFastAblated(): boolean;
|
|
91
|
-
export declare function isRecencyAblated(): boolean;
|
|
92
|
-
/** HIPPO_EVAL_RECENCY_DAYS when it is a positive number, else null (callers keep their default). */
|
|
93
|
-
export declare function evalRecencyScaleDays(): number | null;
|
|
94
|
-
/**
|
|
95
|
-
* The default `now` for lifecycle computations: HIPPO_FAKE_NOW when set and
|
|
96
|
-
* parseable, else the real clock. Callers that already take an explicit `now`
|
|
97
|
-
* parameter are unaffected (explicit always wins).
|
|
98
|
-
*/
|
|
99
|
-
export declare function evalNow(): Date;
|
|
100
|
-
/** Test-only. See module JSDoc: call in BOTH beforeEach AND afterEach. */
|
|
101
|
-
export declare function _resetAblationCacheForTests(): void;
|
|
102
|
-
//# sourceMappingURL=ablation.d.ts.map
|
package/dist/ablation.js
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EVAL-ONLY lifecycle ablation switches.
|
|
3
|
-
*
|
|
4
|
-
* These env flags exist for controlled experiments on hippo's memory-lifecycle
|
|
5
|
-
* mechanisms (the "lifecycle, ablated" paper protocol): each switch neutralizes
|
|
6
|
-
* exactly ONE mechanism so its causal contribution can be measured in isolation.
|
|
7
|
-
*
|
|
8
|
-
* They are NOT a production configuration surface:
|
|
9
|
-
* - no config-file equivalents, deliberately (config implies support);
|
|
10
|
-
* - undocumented in user-facing help;
|
|
11
|
-
* - semantics may change with the experiment design.
|
|
12
|
-
* Production behavior with all flags unset is byte-identical to before this
|
|
13
|
-
* module existed.
|
|
14
|
-
*
|
|
15
|
-
* Flags (set to '1' or 'true'):
|
|
16
|
-
* HIPPO_ABLATE_DECAY time-decay term := 1 in calculateStrength.
|
|
17
|
-
* HIPPO_ABLATE_RECALL_BOOST full recall-strengthening ablation:
|
|
18
|
-
* - markRetrieved returns entries UNMUTATED (no
|
|
19
|
-
* clock reset / count / half-life increment);
|
|
20
|
-
* ids stay available so `hippo outcome`
|
|
21
|
-
* attribution keeps working in this arm;
|
|
22
|
-
* - persisting callers (CLI recall, api context,
|
|
23
|
-
* MCP recall/context, consolidation replay)
|
|
24
|
-
* skip their writeEntry loops (identical-row
|
|
25
|
-
* writes still refresh updated_at / mirrors /
|
|
26
|
-
* DAG dirty flags);
|
|
27
|
-
* - the retrieval-count READ boost := 1;
|
|
28
|
-
* - decay anchors at `created` instead of
|
|
29
|
-
* `last_retrieved` (prior-run clock resets
|
|
30
|
-
* cannot leak in);
|
|
31
|
-
* - physics: computeMass ignores the count, and
|
|
32
|
-
* physicsSearch recomputes loaded masses LIVE
|
|
33
|
-
* under ablated strength rules (persisted
|
|
34
|
-
* masses embed recall history in their frozen
|
|
35
|
-
* strength component);
|
|
36
|
-
* - replay rehearsal is silenced entirely (it IS
|
|
37
|
-
* strengthening; use config replay.count=0 to
|
|
38
|
-
* separate replay in unflagged arms).
|
|
39
|
-
* CAVEAT: half_life increments persisted by
|
|
40
|
-
* prior unflagged runs are NOT reconstructed
|
|
41
|
-
* (consolidation legitimately writes half_life
|
|
42
|
-
* too) - ablation arms run on FRESH stores, as
|
|
43
|
-
* the experiment protocol mandates.
|
|
44
|
-
* HIPPO_ABLATE_OUTCOME both outcome channels := neutral
|
|
45
|
-
* (= _SLOW + _FAST together). The slow side also
|
|
46
|
-
* silences replay's outcome reward bias
|
|
47
|
-
* (replayPriority). NOT gated: the opt-in
|
|
48
|
-
* `recall --value-aware` rerank (an explicit CLI
|
|
49
|
-
* flag that also reads outcome counts) - ablated
|
|
50
|
-
* arms must not pass it.
|
|
51
|
-
* HIPPO_ABLATE_OUTCOME_SLOW rewardFactor := 1 (no half-life modulation).
|
|
52
|
-
* HIPPO_ABLATE_OUTCOME_FAST hybridSearch outcomeBoost := 1.
|
|
53
|
-
* HIPPO_ABLATE_RECENCY search recency factor := 1 (the creation-age
|
|
54
|
-
* multiplier 0.8 + 0.2*exp(-age/30d)); decay,
|
|
55
|
-
* strengthening and outcomes stay live.
|
|
56
|
-
* HIPPO_EVAL_RECENCY_DAYS a positive number replaces the 30-day scale of
|
|
57
|
-
* that recency factor (tuning grids only). Unset,
|
|
58
|
-
* zero, negative or junk values keep 30.
|
|
59
|
-
* HIPPO_FAKE_NOW timestamp injected as the default `now` for
|
|
60
|
-
* strength computation and retrieval stamping
|
|
61
|
-
* (simulated-time protocols). MUST be the exact
|
|
62
|
-
* Date.toISOString() form
|
|
63
|
-
* (YYYY-MM-DDTHH:mm:ss.sssZ); validated by
|
|
64
|
-
* round-trip, so junk, locale dates, non-UTC
|
|
65
|
-
* offsets, and rolled-over dates (2026-02-31)
|
|
66
|
-
* all fall back to the real clock.
|
|
67
|
-
*
|
|
68
|
-
* Formula notes (load-bearing for the experiments) - ablating decay has TWO
|
|
69
|
-
* intrinsic co-effects, because the unified formula routes other mechanisms
|
|
70
|
-
* THROUGH the decay term. Both are real properties of the architecture, not
|
|
71
|
-
* implementation accidents; experiment analysis must attribute accordingly
|
|
72
|
-
* (the decay-off arm is "decay + its dependents off", see prereg amendment A1):
|
|
73
|
-
* 1. Read-side strengthening flattens: raw = retrievalBoost * emotionalMult
|
|
74
|
-
* >= 1, and the [0,1] clamp caps it at 1.0 - the recall boost can only
|
|
75
|
-
* offset decay, never exceed baseline. (Write-side still runs.)
|
|
76
|
-
* 2. Outcome-slow goes inert: rewardFactor only acts by scaling the
|
|
77
|
-
* effective half-life INSIDE the decay exponent; with decay := 1 there
|
|
78
|
-
* is no exponent for it to modulate. Outcome-slow is decay-rate
|
|
79
|
-
* modulation BY DESIGN, so "no decay" necessarily means "no slow
|
|
80
|
-
* channel" (the fast channel in hybridSearch is unaffected).
|
|
81
|
-
*
|
|
82
|
-
* Env caching follows the house pattern (see getLossAversionRatio in
|
|
83
|
-
* memory.ts): read once per process, with a test-only reset helper. Tests
|
|
84
|
-
* that mutate these env vars MUST call _resetAblationCacheForTests() in BOTH
|
|
85
|
-
* beforeEach AND afterEach.
|
|
86
|
-
*/
|
|
87
|
-
import { envAblateDecay, envAblateOutcome, envAblateOutcomeFast, envAblateOutcomeSlow, envAblateRecallBoost, envAblateRecency, envEvalRecencyDays, envFakeNowMs, } from './env.js';
|
|
88
|
-
let _cache;
|
|
89
|
-
function readFlags() {
|
|
90
|
-
if (_cache !== undefined)
|
|
91
|
-
return _cache;
|
|
92
|
-
const outcomeBoth = envAblateOutcome();
|
|
93
|
-
_cache = {
|
|
94
|
-
decay: envAblateDecay(),
|
|
95
|
-
recallBoost: envAblateRecallBoost(),
|
|
96
|
-
outcomeSlow: outcomeBoth || envAblateOutcomeSlow(),
|
|
97
|
-
outcomeFast: outcomeBoth || envAblateOutcomeFast(),
|
|
98
|
-
recency: envAblateRecency(),
|
|
99
|
-
recencyDays: envEvalRecencyDays(),
|
|
100
|
-
fakeNowMs: envFakeNowMs(),
|
|
101
|
-
};
|
|
102
|
-
return _cache;
|
|
103
|
-
}
|
|
104
|
-
export function isDecayAblated() {
|
|
105
|
-
return readFlags().decay;
|
|
106
|
-
}
|
|
107
|
-
export function isRecallBoostAblated() {
|
|
108
|
-
return readFlags().recallBoost;
|
|
109
|
-
}
|
|
110
|
-
export function isOutcomeSlowAblated() {
|
|
111
|
-
return readFlags().outcomeSlow;
|
|
112
|
-
}
|
|
113
|
-
export function isOutcomeFastAblated() {
|
|
114
|
-
return readFlags().outcomeFast;
|
|
115
|
-
}
|
|
116
|
-
export function isRecencyAblated() {
|
|
117
|
-
return readFlags().recency;
|
|
118
|
-
}
|
|
119
|
-
/** HIPPO_EVAL_RECENCY_DAYS when it is a positive number, else null (callers keep their default). */
|
|
120
|
-
export function evalRecencyScaleDays() {
|
|
121
|
-
return readFlags().recencyDays;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* The default `now` for lifecycle computations: HIPPO_FAKE_NOW when set and
|
|
125
|
-
* parseable, else the real clock. Callers that already take an explicit `now`
|
|
126
|
-
* parameter are unaffected (explicit always wins).
|
|
127
|
-
*/
|
|
128
|
-
export function evalNow() {
|
|
129
|
-
const ms = readFlags().fakeNowMs;
|
|
130
|
-
return ms === null ? new Date() : new Date(ms);
|
|
131
|
-
}
|
|
132
|
-
/** Test-only. See module JSDoc: call in BOTH beforeEach AND afterEach. */
|
|
133
|
-
export function _resetAblationCacheForTests() {
|
|
134
|
-
_cache = undefined;
|
|
135
|
-
}
|
|
136
|
-
//# sourceMappingURL=ablation.js.map
|
package/dist/api.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export { ApiError, BadRequestError, ConflictError, ForbiddenError, NotFoundError } from './api-errors.js';
|
|
2
|
-
export { isPrivateScope, passesScopeFilterForRecall } from './recall-scope.js';
|
|
3
|
-
export { passesCliRecallScopeFilter, ScopeForbiddenError } from './recall-scope.js';
|
|
4
|
-
export type { TokenSummary, TokenSurface, TokenSurfaceSummary } from './token-ledger.js';
|
|
5
|
-
export type { FailureSummary } from './failure-log.js';
|
|
6
|
-
export { classifyOriginProject } from './project-identity.js';
|
|
7
|
-
export * from './api/types.js';
|
|
8
|
-
export * from './api/remember.js';
|
|
9
|
-
export * from './api/recall-types.js';
|
|
10
|
-
export * from './api/recall.js';
|
|
11
|
-
export * from './api/assemble.js';
|
|
12
|
-
export * from './api/drill-down.js';
|
|
13
|
-
export * from './api/outcome.js';
|
|
14
|
-
export * from './api/forget.js';
|
|
15
|
-
export * from './api/promote.js';
|
|
16
|
-
export * from './api/auth.js';
|
|
17
|
-
export * from './api/audit.js';
|
|
18
|
-
export * from './api/context-types.js';
|
|
19
|
-
export * from './api/context.js';
|
|
20
|
-
export * from './api/tokens.js';
|
|
21
|
-
export * from './api/dormant.js';
|
|
22
|
-
export * from './api/quarantine.js';
|
|
23
|
-
export * from './api/sleep.js';
|
|
24
|
-
export * from './api/goals.js';
|
|
25
|
-
export * from './api/learn.js';
|
|
26
|
-
//# sourceMappingURL=api.d.ts.map
|
package/dist/api.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// Domain API layer: Context-taking functions that the CLI, the HTTP server and MCP all call, so the
|
|
2
|
-
// business logic lives in one place. The code lives in src/api/, one module per domain; this barrel
|
|
3
|
-
// keeps every import path that callers already use.
|
|
4
|
-
export { ApiError, BadRequestError, ConflictError, ForbiddenError, NotFoundError } from './api-errors.js';
|
|
5
|
-
// The recall-side scope predicates live in recall-scope.ts (leaf) so shared.ts can use them without an import cycle.
|
|
6
|
-
export { isPrivateScope, passesScopeFilterForRecall } from './recall-scope.js';
|
|
7
|
-
export { passesCliRecallScopeFilter, ScopeForbiddenError } from './recall-scope.js';
|
|
8
|
-
// classifyOriginProject lives in project-identity.ts (leaf) for the same reason.
|
|
9
|
-
export { classifyOriginProject } from './project-identity.js';
|
|
10
|
-
export * from './api/types.js';
|
|
11
|
-
export * from './api/remember.js';
|
|
12
|
-
export * from './api/recall-types.js';
|
|
13
|
-
export * from './api/recall.js';
|
|
14
|
-
export * from './api/assemble.js';
|
|
15
|
-
export * from './api/drill-down.js';
|
|
16
|
-
export * from './api/outcome.js';
|
|
17
|
-
export * from './api/forget.js';
|
|
18
|
-
export * from './api/promote.js';
|
|
19
|
-
export * from './api/auth.js';
|
|
20
|
-
export * from './api/audit.js';
|
|
21
|
-
export * from './api/context-types.js';
|
|
22
|
-
export * from './api/context.js';
|
|
23
|
-
export * from './api/tokens.js';
|
|
24
|
-
export * from './api/dormant.js';
|
|
25
|
-
export * from './api/quarantine.js';
|
|
26
|
-
export * from './api/sleep.js';
|
|
27
|
-
export * from './api/goals.js';
|
|
28
|
-
export * from './api/learn.js';
|
|
29
|
-
//# sourceMappingURL=api.js.map
|