hippo-memory 1.72.0 → 2.1.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 +6 -4
- package/dist/agent-memories/apply.d.ts +7 -5
- package/dist/agent-memories/apply.js +66 -39
- package/dist/agent-memories/claude-code.d.ts +8 -2
- package/dist/agent-memories/claude-code.js +26 -7
- package/dist/agent-memories/copilot.js +2 -1
- package/dist/agent-memories/files.js +2 -1
- package/dist/agent-memories/legacy.d.ts +6 -3
- package/dist/agent-memories/legacy.js +35 -14
- package/dist/agent-memories/markdown.d.ts +3 -1
- package/dist/agent-memories/markdown.js +3 -1
- package/dist/agent-memories/openclaw.js +5 -2
- package/dist/agent-memories/plan.js +11 -1
- package/dist/agent-memories/project-folds.js +2 -1
- package/dist/agent-memories/report.d.ts +4 -1
- package/dist/agent-memories/report.js +43 -9
- package/dist/agent-memories/source.d.ts +8 -2
- package/dist/agent-memories/source.js +11 -3
- package/dist/agent-memories/sync.d.ts +7 -2
- package/dist/agent-memories/sync.js +141 -101
- package/dist/api/assemble.d.ts +6 -4
- package/dist/api/assemble.js +11 -5
- package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
- package/dist/api/auth/audit.js +58 -0
- package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -16
- package/dist/api/{auth.js → auth/auth.js} +66 -54
- package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
- package/dist/api/{quarantine.js → auth/quarantine.js} +8 -7
- package/dist/api/auth/session-owners.d.ts +10 -0
- package/dist/api/auth/session-owners.js +35 -0
- package/dist/api/availability.d.ts +3 -1
- package/dist/api/availability.js +3 -1
- package/dist/api/busy.d.ts +2 -0
- package/dist/api/busy.js +2 -0
- package/dist/api/cli-surface.d.ts +6 -0
- package/dist/api/cli-surface.js +6 -0
- package/dist/api/config-of.d.ts +5 -0
- package/dist/api/config-of.js +6 -0
- package/dist/api/context-auto.d.ts +4 -1
- package/dist/api/context-auto.js +14 -4
- package/dist/api/context-render.js +14 -7
- package/dist/api/context-select.d.ts +4 -1
- package/dist/api/context-select.js +31 -34
- package/dist/api/context-types.d.ts +38 -12
- package/dist/api/context.d.ts +8 -5
- package/dist/api/context.js +120 -63
- package/dist/api/continuity.d.ts +24 -21
- package/dist/api/continuity.js +18 -20
- package/dist/api/correction-latency.d.ts +3 -1
- package/dist/api/correction-latency.js +3 -1
- package/dist/api/error-reply.d.ts +4 -1
- package/dist/api/error-reply.js +12 -3
- package/dist/api/index.d.ts +39 -23
- package/dist/api/index.js +21 -23
- package/dist/api/instruction-detect.d.ts +4 -1
- package/dist/api/instruction-detect.js +75 -20
- package/dist/api/ledger-db.d.ts +15 -11
- package/dist/api/ledger-db.js +21 -23
- package/dist/api/memories/conflicts.d.ts +33 -0
- package/dist/api/memories/conflicts.js +67 -0
- package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
- package/dist/api/{forget.js → memories/forget.js} +23 -17
- package/dist/api/memories/memories.d.ts +27 -0
- package/dist/api/memories/memories.js +52 -0
- package/dist/api/memories/outcome.d.ts +22 -0
- package/dist/api/memories/outcome.js +28 -0
- package/dist/api/memories/promote.d.ts +40 -0
- package/dist/api/memories/promote.js +76 -0
- package/dist/api/memories/refine.d.ts +10 -0
- package/dist/api/memories/refine.js +12 -0
- package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +17 -9
- package/dist/api/{remember-local.js → memories/remember-local.js} +46 -24
- package/dist/api/{remember.d.ts → memories/remember.d.ts} +22 -13
- package/dist/api/{remember.js → memories/remember.js} +50 -32
- package/dist/api/objects/cards.d.ts +39 -0
- package/dist/api/{cards.js → objects/cards.js} +12 -14
- package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
- package/dist/api/{drill-down.js → objects/drill-down.js} +7 -7
- package/dist/api/objects/goals.d.ts +18 -0
- package/dist/api/{goals.js → objects/goals.js} +12 -12
- package/dist/api/objects/graph.d.ts +11 -0
- package/dist/api/objects/graph.js +16 -0
- package/dist/api/objects/objects.d.ts +9 -0
- package/dist/api/{objects.js → objects/objects.js} +2 -3
- package/dist/api/objects/predictions.d.ts +11 -0
- package/dist/api/{predictions.js → objects/predictions.js} +7 -5
- package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
- package/dist/api/{projects.js → objects/projects.js} +8 -4
- package/dist/api/pilot-arm.d.ts +8 -4
- package/dist/api/pilot-arm.js +5 -4
- package/dist/api/prompt-hook.d.ts +35 -20
- package/dist/api/prompt-hook.js +66 -44
- package/dist/api/provenance-coverage.d.ts +3 -1
- package/dist/api/provenance-coverage.js +3 -1
- package/dist/api/recall/finish.d.ts +185 -0
- package/dist/api/recall/finish.js +301 -0
- package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
- package/dist/api/{recall-pipeline.js → recall/pipeline.js} +185 -101
- package/dist/api/recall/recall.d.ts +6 -0
- package/dist/api/{recall.js → recall/recall.js} +116 -72
- package/dist/api/recall/render.d.ts +39 -0
- package/dist/api/recall/render.js +60 -0
- package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
- package/dist/api/recall/request.js +261 -0
- package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
- package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
- package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -68
- package/dist/api/{recall-types.js → recall/types.js} +1 -1
- package/dist/api/session-end.d.ts +36 -8
- package/dist/api/session-end.js +71 -25
- package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
- package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
- package/dist/api/sleep/dormant.d.ts +25 -0
- package/dist/api/sleep/dormant.js +64 -0
- package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
- package/dist/api/sleep/learn.js +138 -0
- package/dist/api/sleep/sleep-run.d.ts +38 -0
- package/dist/api/{sleep-run.js → sleep/sleep-run.js} +54 -45
- package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
- package/dist/api/sleep/sleep.js +9 -0
- package/dist/api/status.d.ts +3 -1
- package/dist/api/status.js +3 -1
- package/dist/api/store-init.d.ts +4 -1
- package/dist/api/store-init.js +4 -1
- package/dist/api/tokens.d.ts +10 -9
- package/dist/api/tokens.js +9 -10
- package/dist/api/types.d.ts +27 -12
- package/dist/api/types.js +13 -4
- package/dist/capture/caller-session.d.ts +8 -2
- package/dist/capture/caller-session.js +16 -6
- package/dist/capture/capture-error.d.ts +3 -1
- package/dist/capture/capture-error.js +3 -1
- package/dist/capture/codex-patch.js +7 -2
- package/dist/capture/command.d.ts +4 -2
- package/dist/capture/command.js +34 -15
- package/dist/capture/compact-resume-caller.js +15 -8
- package/dist/capture/compact.d.ts +8 -5
- package/dist/capture/compact.js +34 -23
- package/dist/capture/compaction-items-caller.js +9 -3
- package/dist/capture/compaction-record.d.ts +4 -3
- package/dist/capture/compaction-record.js +20 -12
- package/dist/capture/compaction-spool.d.ts +18 -9
- package/dist/capture/compaction-spool.js +105 -63
- package/dist/capture/copilot-transcript.d.ts +11 -3
- package/dist/capture/copilot-transcript.js +16 -6
- package/dist/capture/extract.js +20 -8
- package/dist/capture/failure-caller.js +23 -12
- package/dist/capture/failure-reading.d.ts +10 -3
- package/dist/capture/failure-reading.js +24 -7
- package/dist/capture/pre-compact-caller.js +11 -4
- package/dist/capture/session-digest.d.ts +15 -4
- package/dist/capture/session-digest.js +39 -13
- package/dist/capture/session-end-caller.d.ts +4 -1
- package/dist/capture/session-end-caller.js +20 -8
- package/dist/capture/session-texts.d.ts +6 -2
- package/dist/capture/session-texts.js +22 -7
- package/dist/capture/session-worker.d.ts +4 -2
- package/dist/capture/session-worker.js +58 -17
- package/dist/capture/transcript.d.ts +13 -4
- package/dist/capture/transcript.js +32 -10
- package/dist/capture/working-state.d.ts +13 -4
- package/dist/capture/working-state.js +50 -56
- package/dist/cli/api-context.d.ts +14 -2
- package/dist/cli/api-context.js +45 -2
- package/dist/cli/audit.js +33 -33
- package/dist/cli/auth.js +23 -31
- package/dist/cli/briefs.d.ts +1 -1
- package/dist/cli/briefs.js +20 -15
- package/dist/cli/card.d.ts +1 -1
- package/dist/cli/card.js +56 -73
- package/dist/cli/client.d.ts +12 -5
- package/dist/cli/client.js +53 -23
- package/dist/cli/compact-resume-payload.d.ts +4 -1
- package/dist/cli/compact-resume-payload.js +12 -5
- package/dist/cli/context.js +43 -18
- package/dist/cli/continuity.d.ts +5 -5
- package/dist/cli/continuity.js +90 -107
- package/dist/cli/curate.d.ts +5 -4
- package/dist/cli/curate.js +55 -77
- package/dist/cli/dag.d.ts +1 -1
- package/dist/cli/dag.js +14 -17
- package/dist/cli/decisions.js +30 -30
- package/dist/cli/eval.js +16 -21
- package/dist/cli/exit.d.ts +4 -1
- package/dist/cli/exit.js +10 -2
- package/dist/cli/explain.js +12 -11
- package/dist/cli/flag-values.d.ts +1 -1
- package/dist/cli/flag-values.js +9 -18
- package/dist/cli/github.d.ts +6 -0
- package/dist/cli/github.js +25 -13
- package/dist/cli/goals.d.ts +1 -1
- package/dist/cli/goals.js +39 -56
- package/dist/cli/graph.d.ts +1 -1
- package/dist/cli/graph.js +15 -11
- package/dist/cli/hook-runtime.d.ts +34 -10
- package/dist/cli/hook-runtime.js +41 -16
- package/dist/cli/incidents.d.ts +1 -1
- package/dist/cli/incidents.js +25 -25
- package/dist/cli/init.d.ts +1 -1
- package/dist/cli/init.js +35 -20
- package/dist/cli/install-steps.d.ts +12 -3
- package/dist/cli/install-steps.js +42 -18
- package/dist/cli/last-sleep.d.ts +4 -1
- package/dist/cli/last-sleep.js +9 -4
- package/dist/cli/maintenance.d.ts +1 -1
- package/dist/cli/maintenance.js +11 -12
- package/dist/cli/notes.d.ts +1 -1
- package/dist/cli/notes.js +8 -5
- package/dist/cli/object-verbs.d.ts +5 -5
- package/dist/cli/object-verbs.js +13 -16
- package/dist/cli/open-browser.js +11 -2
- package/dist/cli/playbooks.d.ts +3 -3
- package/dist/cli/playbooks.js +40 -32
- package/dist/cli/predictions.js +17 -22
- package/dist/cli/print.js +4 -2
- package/dist/cli/projects.js +21 -11
- package/dist/cli/quality-repair-once.d.ts +1 -1
- package/dist/cli/quality-repair-once.js +7 -6
- package/dist/cli/recall.js +129 -93
- package/dist/cli/refine-llm.d.ts +15 -4
- package/dist/cli/refine-llm.js +17 -7
- package/dist/cli/remember.js +51 -55
- package/dist/cli/scheduler.d.ts +4 -1
- package/dist/cli/scheduler.js +9 -5
- package/dist/cli/serve.js +28 -18
- package/dist/cli/session-hooks.d.ts +2 -6
- package/dist/cli/session-hooks.js +140 -112
- package/dist/cli/setup.d.ts +1 -1
- package/dist/cli/setup.js +56 -34
- package/dist/cli/shared.d.ts +4 -2
- package/dist/cli/shared.js +26 -11
- package/dist/cli/slack.js +15 -24
- package/dist/cli/sleep-render.d.ts +3 -1
- package/dist/cli/sleep-render.js +8 -5
- package/dist/cli/sleep.js +16 -8
- package/dist/cli/status.d.ts +4 -4
- package/dist/cli/status.js +32 -27
- package/dist/cli/stdin.d.ts +10 -3
- package/dist/cli/stdin.js +10 -3
- package/dist/cli/transfer.d.ts +4 -4
- package/dist/cli/transfer.js +97 -82
- package/dist/cli/usage.d.ts +1 -1
- package/dist/cli/usage.js +1 -1
- package/dist/cli/verb-row.d.ts +2 -0
- package/dist/cli/verbs/health.js +2 -0
- package/dist/cli/verbs/memory.js +47 -53
- package/dist/cli/verbs/objects.js +16 -7
- package/dist/cli/verbs/sessions.js +4 -2
- package/dist/cli/versioned-verbs.d.ts +8 -7
- package/dist/cli/versioned-verbs.js +31 -21
- package/dist/cli.js +14 -18
- package/dist/connectors/dlq.d.ts +6 -6
- package/dist/connectors/dlq.js +12 -7
- package/dist/connectors/github/backfill.d.ts +4 -4
- package/dist/connectors/github/backfill.js +6 -4
- package/dist/connectors/github/deletion.d.ts +6 -4
- package/dist/connectors/github/deletion.js +5 -4
- package/dist/connectors/github/dlq.d.ts +8 -6
- package/dist/connectors/github/dlq.js +11 -5
- package/dist/connectors/github/ingest.d.ts +2 -2
- package/dist/connectors/github/ingest.js +9 -5
- package/dist/connectors/github/octokit-client.d.ts +3 -1
- package/dist/connectors/github/octokit-client.js +7 -2
- package/dist/connectors/github/ratelimit.d.ts +6 -2
- package/dist/connectors/github/ratelimit.js +6 -2
- package/dist/connectors/github/signature.d.ts +14 -3
- package/dist/connectors/github/signature.js +17 -3
- package/dist/connectors/github/tenant-routing.d.ts +6 -4
- package/dist/connectors/github/tenant-routing.js +6 -5
- package/dist/connectors/github/transform.js +50 -67
- package/dist/connectors/github/types.d.ts +10 -3
- package/dist/connectors/github/types.js +6 -2
- package/dist/connectors/github/webhook.d.ts +5 -5
- package/dist/connectors/github/webhook.js +36 -23
- package/dist/connectors/ingest.d.ts +5 -3
- package/dist/connectors/ingest.js +3 -3
- package/dist/connectors/slack/backfill.d.ts +5 -5
- package/dist/connectors/slack/backfill.js +3 -3
- package/dist/connectors/slack/deletion.d.ts +4 -4
- package/dist/connectors/slack/deletion.js +6 -5
- package/dist/connectors/slack/dlq.d.ts +4 -4
- package/dist/connectors/slack/dlq.js +6 -6
- package/dist/connectors/slack/ingest.d.ts +6 -4
- package/dist/connectors/slack/ingest.js +5 -4
- package/dist/connectors/slack/signature.d.ts +4 -1
- package/dist/connectors/slack/tenant-routing.d.ts +6 -4
- package/dist/connectors/slack/tenant-routing.js +6 -5
- package/dist/connectors/slack/transform.d.ts +6 -2
- package/dist/connectors/slack/transform.js +6 -2
- package/dist/connectors/slack/types.d.ts +3 -1
- package/dist/connectors/slack/web-client.js +8 -3
- package/dist/connectors/slack/webhook.d.ts +5 -5
- package/dist/connectors/slack/webhook.js +19 -11
- package/dist/connectors/slack/workspaces.d.ts +7 -3
- package/dist/connectors/slack/workspaces.js +7 -3
- package/dist/connectors/store.d.ts +8 -0
- package/dist/connectors/store.js +2 -0
- package/dist/consolidate/conflicts.js +24 -10
- package/dist/consolidate/dag-summary.js +2 -1
- package/dist/consolidate/dag.d.ts +10 -5
- package/dist/consolidate/dag.js +45 -39
- package/dist/consolidate/decay.js +19 -6
- package/dist/consolidate/dedupe.d.ts +14 -5
- package/dist/consolidate/dedupe.js +28 -17
- package/dist/consolidate/flush-units.d.ts +4 -1
- package/dist/consolidate/flush-units.js +4 -1
- package/dist/consolidate/half-life-migration.d.ts +18 -8
- package/dist/consolidate/half-life-migration.js +48 -18
- package/dist/consolidate/llm-passes.js +27 -11
- package/dist/consolidate/memory-value-weights.d.ts +6 -2
- package/dist/consolidate/memory-value-weights.js +6 -2
- package/dist/consolidate/memory-value.d.ts +30 -10
- package/dist/consolidate/memory-value.js +37 -14
- package/dist/consolidate/merge.d.ts +4 -1
- package/dist/consolidate/merge.js +47 -37
- package/dist/consolidate/overlap-index.d.ts +8 -2
- package/dist/consolidate/overlap-index.js +11 -4
- package/dist/consolidate/physics-pass.d.ts +3 -1
- package/dist/consolidate/physics-pass.js +10 -7
- package/dist/consolidate/replay.d.ts +11 -4
- package/dist/consolidate/replay.js +19 -7
- package/dist/consolidate/run.d.ts +13 -5
- package/dist/consolidate/run.js +4 -4
- package/dist/consolidate/sleep.d.ts +14 -6
- package/dist/consolidate/sleep.js +42 -39
- package/dist/consolidate/trace.d.ts +7 -2
- package/dist/consolidate/trace.js +7 -2
- package/dist/consolidate/traces.js +27 -30
- package/dist/core/ablation.d.ts +9 -3
- package/dist/core/ablation.js +14 -4
- package/dist/core/active-scope.d.ts +3 -1
- package/dist/core/active-scope.js +3 -1
- package/dist/core/agent-memory-tools.d.ts +2 -0
- package/dist/core/agent-memory-tools.js +2 -0
- package/dist/core/ambient.d.ts +4 -3
- package/dist/core/ambient.js +8 -6
- package/dist/core/api-errors.d.ts +9 -3
- package/dist/core/api-errors.js +9 -3
- package/dist/core/capture-contract.d.ts +4 -1
- package/dist/core/capture-contract.js +27 -8
- package/dist/core/compare.d.ts +24 -8
- package/dist/core/compare.js +24 -8
- package/dist/core/config.d.ts +18 -9
- package/dist/core/config.js +38 -29
- package/dist/core/cosine.d.ts +4 -1
- package/dist/core/cosine.js +4 -1
- package/dist/core/handoff.d.ts +7 -2
- package/dist/core/handoff.js +4 -1
- package/dist/core/markdown.js +22 -17
- package/dist/core/memory-audit.js +14 -3
- package/dist/core/memory-quality.d.ts +12 -3
- package/dist/core/memory-quality.js +57 -21
- package/dist/core/memory.d.ts +87 -30
- package/dist/core/memory.js +82 -33
- package/dist/core/merged-row.d.ts +8 -2
- package/dist/core/merged-row.js +10 -3
- package/dist/core/package-root.d.ts +3 -1
- package/dist/core/package-root.js +3 -1
- package/dist/core/particle-refresh.d.ts +8 -0
- package/dist/core/particle-refresh.js +22 -0
- package/dist/core/physics-config.d.ts +4 -1
- package/dist/core/physics-config.js +6 -2
- package/dist/core/physics.d.ts +39 -11
- package/dist/core/physics.js +71 -21
- package/dist/core/project-identity.d.ts +34 -17
- package/dist/core/project-identity.js +35 -18
- package/dist/core/project-remote.d.ts +8 -4
- package/dist/core/project-remote.js +31 -14
- package/dist/core/recall-scope.d.ts +33 -11
- package/dist/core/recall-scope.js +42 -15
- package/dist/core/rejection-digest.d.ts +7 -0
- package/dist/core/rejection-digest.js +13 -0
- package/dist/core/salience.d.ts +3 -1
- package/dist/core/salience.js +10 -4
- package/dist/core/search-types.d.ts +15 -2
- package/dist/core/search-types.js +11 -0
- package/dist/dashboard/dashboard-actions.d.ts +2 -2
- package/dist/dashboard/dashboard-actions.js +18 -7
- package/dist/dashboard/dashboard-queries.js +2 -7
- package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
- package/dist/dashboard/dashboard-snapshot.js +5 -7
- package/dist/dashboard/dashboard.js +22 -8
- package/dist/db/backup.js +2 -2
- package/dist/db/busy.d.ts +10 -3
- package/dist/db/busy.js +27 -5
- package/dist/db/connect.d.ts +10 -2
- package/dist/db/connect.js +8 -2
- package/dist/db/continuity.d.ts +1 -1
- package/dist/db/continuity.js +27 -11
- package/dist/db/meta.d.ts +4 -1
- package/dist/db/meta.js +4 -1
- package/dist/db/migrate.d.ts +10 -5
- package/dist/db/migrate.js +40 -20
- package/dist/db/migrations/index.d.ts +1 -1
- package/dist/db/migrations/index.js +3 -1
- package/dist/db/migrations/types.d.ts +2 -1
- package/dist/db/migrations/v11.js +1 -0
- package/dist/db/migrations/v12.js +2 -1
- package/dist/db/migrations/v14.js +2 -0
- package/dist/db/migrations/v15.js +4 -2
- package/dist/db/migrations/v16.js +6 -3
- package/dist/db/migrations/v17.js +2 -1
- package/dist/db/migrations/v19.js +4 -2
- package/dist/db/migrations/v20.js +2 -1
- package/dist/db/migrations/v22.js +12 -6
- package/dist/db/migrations/v23.js +6 -3
- package/dist/db/migrations/v24.js +6 -3
- package/dist/db/migrations/v25.js +4 -2
- package/dist/db/migrations/v26.js +4 -2
- package/dist/db/migrations/v27.js +6 -3
- package/dist/db/migrations/v28.js +4 -2
- package/dist/db/migrations/v29.js +4 -2
- package/dist/db/migrations/v30.js +6 -3
- package/dist/db/migrations/v31.js +4 -2
- package/dist/db/migrations/v32.js +6 -3
- package/dist/db/migrations/v33.js +4 -2
- package/dist/db/migrations/v34.js +2 -1
- package/dist/db/migrations/v35.js +2 -1
- package/dist/db/migrations/v36.js +2 -1
- package/dist/db/migrations/v37.js +10 -5
- package/dist/db/migrations/v38.js +10 -5
- package/dist/db/migrations/v39.js +14 -6
- package/dist/db/migrations/v40.js +4 -2
- package/dist/db/migrations/v41.js +4 -2
- package/dist/db/migrations/v42.js +2 -1
- package/dist/db/migrations/v44.js +4 -2
- package/dist/db/migrations/v45.js +4 -2
- package/dist/db/migrations/v49.js +2 -1
- package/dist/db/migrations/v50.js +4 -2
- package/dist/db/migrations/v51.js +4 -2
- package/dist/db/migrations/v52.js +2 -1
- package/dist/db/migrations/v53.js +8 -4
- package/dist/db/migrations/v54.js +2 -1
- package/dist/db/migrations/v55.js +4 -2
- package/dist/db/migrations/v56.d.ts +3 -0
- package/dist/db/migrations/v56.js +28 -0
- package/dist/db/open.d.ts +24 -12
- package/dist/db/open.js +25 -13
- package/dist/db/physics-state.d.ts +8 -8
- package/dist/db/physics-state.js +17 -50
- package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
- package/dist/db/raw-archive-mirror-cleanup.js +6 -4
- package/dist/db/request-stores.d.ts +20 -5
- package/dist/db/request-stores.js +15 -5
- package/dist/db/tables.d.ts +2 -1
- package/dist/db/tables.js +12 -4
- package/dist/db/vector-store.d.ts +13 -4
- package/dist/db/vector-store.js +35 -14
- package/dist/db/wal-checkpointer.d.ts +2 -1
- package/dist/db/wal-checkpointer.js +19 -7
- package/dist/doctor.d.ts +7 -1
- package/dist/doctor.js +128 -46
- package/dist/embeddings/local.d.ts +8 -4
- package/dist/embeddings/local.js +11 -7
- package/dist/embeddings/provider.d.ts +19 -10
- package/dist/embeddings/provider.js +32 -27
- package/dist/embeddings/transformers.d.ts +16 -4
- package/dist/embeddings/transformers.js +32 -15
- package/dist/entry/json-hooks.d.ts +1 -1
- package/dist/entry/json-hooks.js +1 -1
- package/dist/entry/project-identity.js +2 -1
- package/dist/entry/session-text.d.ts +1 -1
- package/dist/entry/session-text.js +1 -1
- package/dist/entry/sqlite-handles.d.ts +10 -0
- package/dist/entry/sqlite-handles.js +9 -0
- package/dist/entry/store-kit.d.ts +50 -0
- package/dist/entry/store-kit.js +27 -0
- package/dist/entry/testing.d.ts +6 -0
- package/dist/entry/testing.js +7 -0
- package/dist/eval/eval-stats.d.ts +27 -8
- package/dist/eval/eval-stats.js +17 -5
- package/dist/eval/eval-suite.d.ts +3 -1
- package/dist/eval/eval-suite.js +409 -187
- package/dist/eval/eval.d.ts +8 -2
- package/dist/eval/eval.js +8 -2
- package/dist/eval/judgment.js +17 -7
- package/dist/graph/delta.d.ts +9 -42
- package/dist/graph/delta.js +17 -11
- package/dist/graph/extract.d.ts +10 -7
- package/dist/graph/extract.js +57 -25
- package/dist/graph/recall.d.ts +12 -4
- package/dist/graph/recall.js +30 -13
- package/dist/graph/stream.d.ts +18 -6
- package/dist/graph/stream.js +32 -10
- package/dist/graph/view.d.ts +19 -6
- package/dist/graph/view.js +42 -17
- package/dist/hooks/codex-session.js +2 -2
- package/dist/hooks/codex-wrapper.d.ts +3 -1
- package/dist/hooks/codex-wrapper.js +9 -4
- package/dist/hooks/copilot.d.ts +19 -5
- package/dist/hooks/copilot.js +54 -15
- package/dist/hooks/hook-blocks.d.ts +4 -1
- package/dist/hooks/hook-blocks.js +8 -3
- package/dist/hooks/json-hooks.d.ts +9 -5
- package/dist/hooks/json-hooks.js +72 -33
- package/dist/hooks/opencode.js +15 -5
- package/dist/hooks/shared.d.ts +27 -8
- package/dist/hooks/shared.js +57 -16
- package/dist/importers/core.d.ts +12 -4
- package/dist/importers/core.js +11 -10
- package/dist/importers/markdown-parse.d.ts +15 -5
- package/dist/importers/markdown-parse.js +16 -7
- package/dist/importers/markdown.js +6 -9
- package/dist/importers/sources.js +10 -23
- package/dist/importers/vault.d.ts +3 -3
- package/dist/importers/vault.js +61 -45
- package/dist/index.d.ts +33 -7
- package/dist/index.js +26 -8
- package/dist/learn/autolearn.d.ts +21 -6
- package/dist/learn/autolearn.js +57 -26
- package/dist/learn/churn-git.d.ts +4 -1
- package/dist/learn/churn-git.js +29 -5
- package/dist/learn/extract.d.ts +4 -1
- package/dist/learn/extract.js +17 -10
- package/dist/learn/forward-claim-detector.d.ts +17 -5
- package/dist/learn/forward-claim-detector.js +34 -15
- package/dist/learn/invalidation.d.ts +12 -6
- package/dist/learn/invalidation.js +62 -28
- package/dist/learn/roots.d.ts +3 -0
- package/dist/learn/roots.js +5 -0
- package/dist/mcp/admin-tools.d.ts +5 -5
- package/dist/mcp/admin-tools.js +28 -23
- package/dist/mcp/format.d.ts +1 -1
- package/dist/mcp/format.js +4 -2
- package/dist/mcp/framing.d.ts +3 -1
- package/dist/mcp/framing.js +20 -8
- package/dist/mcp/memory-tools.d.ts +3 -3
- package/dist/mcp/memory-tools.js +21 -20
- package/dist/mcp/protocol.d.ts +32 -16
- package/dist/mcp/protocol.js +12 -9
- package/dist/mcp/recall-tools.d.ts +3 -3
- package/dist/mcp/recall-tools.js +62 -74
- package/dist/mcp/request.d.ts +7 -5
- package/dist/mcp/request.js +61 -77
- package/dist/mcp/server.d.ts +3 -1
- package/dist/mcp/server.js +8 -3
- package/dist/mcp/session-state.d.ts +1 -1
- package/dist/mcp/session-state.js +4 -3
- package/dist/mcp/shared-gate.d.ts +3 -2
- package/dist/mcp/shared-gate.js +3 -2
- package/dist/mcp/stdio.d.ts +6 -3
- package/dist/mcp/stdio.js +59 -23
- package/dist/mcp/tool-args.d.ts +4 -1
- package/dist/mcp/tool-args.js +8 -3
- package/dist/mcp/tools.js +76 -32
- package/dist/objects/customer-notes.d.ts +12 -10
- package/dist/objects/customer-notes.js +21 -15
- package/dist/objects/decisions.d.ts +18 -10
- package/dist/objects/decisions.js +23 -17
- package/dist/objects/descriptor.js +2 -1
- package/dist/objects/fields.d.ts +4 -1
- package/dist/objects/fields.js +6 -2
- package/dist/objects/incidents.d.ts +14 -16
- package/dist/objects/incidents.js +29 -30
- package/dist/objects/lifecycle.d.ts +0 -4
- package/dist/objects/lifecycle.js +21 -24
- package/dist/objects/policies.d.ts +12 -16
- package/dist/objects/policies.js +17 -21
- package/dist/objects/processes.d.ts +16 -10
- package/dist/objects/processes.js +20 -15
- package/dist/objects/project-briefs.d.ts +13 -14
- package/dist/objects/project-briefs.js +33 -39
- package/dist/objects/skills.d.ts +10 -12
- package/dist/objects/skills.js +17 -22
- package/dist/postinstall.js +15 -7
- package/dist/predictions/planning-fallacy.d.ts +19 -6
- package/dist/predictions/planning-fallacy.js +4 -2
- package/dist/rerankers/clef.d.ts +8 -2
- package/dist/rerankers/clef.js +14 -9
- package/dist/rerankers/cross-encoder.d.ts +2 -1
- package/dist/rerankers/cross-encoder.js +19 -9
- package/dist/rerankers/index.js +2 -1
- package/dist/rerankers/jev.js +2 -1
- package/dist/rerankers/llm.d.ts +6 -2
- package/dist/rerankers/llm.js +8 -3
- package/dist/rerankers/remote.d.ts +3 -1
- package/dist/rerankers/remote.js +5 -2
- package/dist/rerankers/types.d.ts +6 -2
- package/dist/search/bm25-search.d.ts +3 -1
- package/dist/search/bm25-search.js +15 -2
- package/dist/search/boosts.js +4 -3
- package/dist/search/embed-memories.d.ts +12 -4
- package/dist/search/embed-memories.js +96 -58
- package/dist/search/engine.d.ts +11 -0
- package/dist/search/engine.js +14 -0
- package/dist/search/goal-boost.d.ts +10 -3
- package/dist/search/goal-boost.js +13 -6
- package/dist/search/hybrid-score.d.ts +4 -1
- package/dist/search/hybrid-score.js +4 -1
- package/dist/search/hybrid.d.ts +23 -8
- package/dist/search/hybrid.js +12 -7
- package/dist/search/multihop.js +14 -13
- package/dist/search/path-context.d.ts +10 -3
- package/dist/search/path-context.js +10 -3
- package/dist/search/physics-search.d.ts +9 -4
- package/dist/search/physics-search.js +38 -14
- package/dist/search/rerank.d.ts +2 -1
- package/dist/search/rerank.js +2 -1
- package/dist/search/rrf.d.ts +14 -5
- package/dist/search/rrf.js +11 -4
- package/dist/search/vector.d.ts +8 -2
- package/dist/search/vector.js +14 -8
- package/dist/server/auth.d.ts +19 -15
- package/dist/server/auth.js +68 -38
- package/dist/server/boot.d.ts +4 -1
- package/dist/server/boot.js +115 -67
- package/dist/server/client-ip.d.ts +17 -5
- package/dist/server/client-ip.js +56 -21
- package/dist/server/cursor.d.ts +10 -3
- package/dist/server/cursor.js +10 -3
- package/dist/server/deadline.d.ts +5 -2
- package/dist/server/deadline.js +10 -3
- package/dist/server/key-check-bounds.js +12 -4
- package/dist/server/lifecycle.d.ts +4 -1
- package/dist/server/lifecycle.js +10 -4
- package/dist/server/mcp-http.d.ts +2 -1
- package/dist/server/mcp-http.js +37 -22
- package/dist/server/rate-limit.d.ts +17 -5
- package/dist/server/rate-limit.js +55 -26
- package/dist/server/ready.js +7 -4
- package/dist/server/request.d.ts +15 -4
- package/dist/server/request.js +42 -15
- package/dist/server/route-checks.d.ts +4 -1
- package/dist/server/route-checks.js +8 -3
- package/dist/server/route-table.d.ts +8 -6
- package/dist/server/route-table.js +550 -97
- package/dist/server/routes/admin.d.ts +7 -7
- package/dist/server/routes/admin.js +36 -15
- package/dist/server/routes/customer-notes.d.ts +5 -5
- package/dist/server/routes/customer-notes.js +5 -4
- package/dist/server/routes/decisions.d.ts +5 -5
- package/dist/server/routes/decisions.js +12 -6
- package/dist/server/routes/incidents.d.ts +5 -5
- package/dist/server/routes/incidents.js +10 -4
- package/dist/server/routes/memories.d.ts +8 -8
- package/dist/server/routes/memories.js +12 -17
- package/dist/server/routes/object-routes.d.ts +8 -5
- package/dist/server/routes/object-routes.js +4 -2
- package/dist/server/routes/policies.d.ts +6 -6
- package/dist/server/routes/policies.js +11 -4
- package/dist/server/routes/predictions.d.ts +5 -5
- package/dist/server/routes/predictions.js +9 -4
- package/dist/server/routes/processes.d.ts +5 -5
- package/dist/server/routes/processes.js +15 -6
- package/dist/server/routes/project-briefs.d.ts +6 -6
- package/dist/server/routes/project-briefs.js +3 -2
- package/dist/server/routes/recall.d.ts +3 -3
- package/dist/server/routes/recall.js +21 -10
- package/dist/server/routes/skills.d.ts +6 -6
- package/dist/server/routes/skills.js +12 -4
- package/dist/server/server-detect.d.ts +24 -8
- package/dist/server/server-detect.js +57 -22
- package/dist/server/sleep-child.js +16 -10
- package/dist/server/sleep-offload.d.ts +8 -5
- package/dist/server/sleep-offload.js +40 -18
- package/dist/server/tls.d.ts +10 -2
- package/dist/server/tls.js +25 -5
- package/dist/server/types.d.ts +41 -24
- package/dist/server/validation.d.ts +4 -1
- package/dist/server/validation.js +22 -9
- package/dist/server.d.ts +17 -49
- package/dist/server.js +33 -40
- package/dist/sharing/global-store.d.ts +6 -12
- package/dist/sharing/global-store.js +8 -48
- package/dist/sharing/global-sync.d.ts +3 -1
- package/dist/sharing/global-sync.js +17 -7
- package/dist/sharing/project-merge.d.ts +25 -7
- package/dist/sharing/project-merge.js +49 -17
- package/dist/sharing/search-both.d.ts +8 -4
- package/dist/sharing/search-both.js +28 -14
- package/dist/sharing/share.d.ts +8 -4
- package/dist/sharing/share.js +40 -18
- package/dist/store/ambient.js +10 -5
- package/dist/store/audit-event.d.ts +2 -2
- package/dist/store/audit-event.js +8 -3
- package/dist/store/audit.d.ts +6 -3
- package/dist/store/audit.js +16 -6
- package/dist/store/auth.d.ts +4 -2
- package/dist/store/auth.js +63 -20
- package/dist/store/busy.d.ts +9 -0
- package/dist/store/busy.js +16 -0
- package/dist/store/candidates.d.ts +12 -5
- package/dist/store/candidates.js +90 -41
- package/dist/store/capture-write.d.ts +2 -1
- package/dist/store/capture-write.js +2 -1
- package/dist/store/card-detail.d.ts +4 -4
- package/dist/store/card-detail.js +15 -8
- package/dist/store/cards.d.ts +24 -10
- package/dist/store/cards.js +97 -63
- package/dist/store/compaction-caller.d.ts +2 -1
- package/dist/store/compaction-caller.js +2 -1
- package/dist/store/compactions-record.d.ts +14 -8
- package/dist/store/compactions-record.js +101 -37
- package/dist/store/compactions.js +35 -15
- package/dist/store/conflicts.d.ts +16 -5
- package/dist/store/conflicts.js +104 -48
- package/dist/store/connectors/dlq.d.ts +17 -5
- package/dist/store/connectors/dlq.js +58 -6
- package/dist/store/connectors/event-log.d.ts +122 -0
- package/dist/store/connectors/event-log.js +25 -0
- package/dist/store/connectors/github.d.ts +6 -3
- package/dist/store/connectors/github.js +30 -48
- package/dist/store/connectors/slack.d.ts +2 -1
- package/dist/store/connectors/slack.js +31 -47
- package/dist/store/dashboard-reads.d.ts +7 -3
- package/dist/store/dashboard-reads.js +32 -10
- package/dist/store/delete-and-batch.d.ts +17 -11
- package/dist/store/delete-and-batch.js +70 -28
- package/dist/store/delivery-recorder.d.ts +10 -7
- package/dist/store/delivery-recorder.js +70 -37
- package/dist/store/descendant-page.d.ts +2 -1
- package/dist/store/descendant-page.js +26 -10
- package/dist/store/diagnostics.d.ts +2 -1
- package/dist/store/diagnostics.js +2 -1
- package/dist/store/doctor-reads.d.ts +2 -1
- package/dist/store/doctor-reads.js +13 -5
- package/dist/store/dormant.d.ts +19 -11
- package/dist/store/dormant.js +45 -19
- package/dist/store/embeddings/index.d.ts +13 -9
- package/dist/store/embeddings/index.js +19 -12
- package/dist/store/entry-reads.d.ts +72 -21
- package/dist/store/entry-reads.js +215 -69
- package/dist/store/entry-row.d.ts +10 -6
- package/dist/store/entry-row.js +26 -14
- package/dist/store/entry-writes.d.ts +28 -13
- package/dist/store/entry-writes.js +61 -22
- package/dist/store/failure-log-at.js +1 -1
- package/dist/store/failure-log.d.ts +4 -2
- package/dist/store/failure-log.js +13 -6
- package/dist/store/gated-write.d.ts +3 -3
- package/dist/store/gated-write.js +3 -3
- package/dist/store/goals.d.ts +5 -4
- package/dist/store/goals.js +11 -12
- package/dist/store/graph-apply.d.ts +21 -0
- package/dist/{graph/write.js → store/graph-apply.js} +31 -11
- package/dist/store/graph-queue.d.ts +9 -6
- package/dist/store/graph-queue.js +15 -10
- package/dist/store/graph-reads.d.ts +16 -11
- package/dist/store/graph-reads.js +29 -19
- package/dist/store/graph-rows.d.ts +41 -3
- package/dist/store/graph-rows.js +10 -7
- package/dist/store/graph-view-rows.js +15 -7
- package/dist/store/graph-writes.d.ts +16 -10
- package/dist/store/graph-writes.js +59 -36
- package/dist/store/half-life.js +2 -2
- package/dist/store/handoffs.d.ts +13 -7
- package/dist/store/handoffs.js +44 -22
- package/dist/store/index-and-stats.d.ts +2 -2
- package/dist/store/index-and-stats.js +6 -5
- package/dist/store/index.d.ts +4 -2
- package/dist/store/index.js +2 -1
- package/dist/store/key-audit.d.ts +2 -1
- package/dist/store/key-audit.js +2 -1
- package/dist/store/key-writes.d.ts +2 -1
- package/dist/store/key-writes.js +9 -2
- package/dist/store/ledger-turn.d.ts +4 -1
- package/dist/store/ledger-turn.js +7 -2
- package/dist/store/mirrors.d.ts +11 -4
- package/dist/store/mirrors.js +96 -19
- package/dist/store/narrow.d.ts +6 -0
- package/dist/store/narrow.js +11 -0
- package/dist/store/open.d.ts +6 -3
- package/dist/store/open.js +20 -10
- package/dist/store/pilot-arm.d.ts +2 -1
- package/dist/store/pilot-arm.js +18 -6
- package/dist/store/planning-fallacy-evidence.d.ts +2 -2
- package/dist/store/planning-fallacy-evidence.js +8 -5
- package/dist/store/port/agent-import.d.ts +62 -0
- package/dist/store/port/agent-import.js +2 -0
- package/dist/store/port/consolidation.d.ts +129 -0
- package/dist/store/port/consolidation.js +2 -0
- package/dist/store/port/learning.d.ts +19 -0
- package/dist/store/port/learning.js +2 -0
- package/dist/store/port/local-files.d.ts +18 -0
- package/dist/store/port/local-files.js +2 -0
- package/dist/store/port/promotion.d.ts +20 -0
- package/dist/store/port/promotion.js +3 -0
- package/dist/store/port-groups.d.ts +160 -0
- package/dist/store/port-groups.js +2 -0
- package/dist/store/port.d.ts +261 -219
- package/dist/store/port.js +3 -9
- package/dist/store/predictions.d.ts +14 -10
- package/dist/store/predictions.js +37 -17
- package/dist/store/project-tags.d.ts +4 -1
- package/dist/store/project-tags.js +16 -5
- package/dist/store/quality-repair.d.ts +8 -4
- package/dist/store/quality-repair.js +53 -20
- package/dist/store/quarantine.d.ts +1 -0
- package/dist/store/quarantine.js +23 -9
- package/dist/store/raw-archive.d.ts +5 -4
- package/dist/store/raw-archive.js +11 -10
- package/dist/store/recall-trace.d.ts +22 -17
- package/dist/store/recall-trace.js +128 -64
- package/dist/store/rejected-values.d.ts +15 -10
- package/dist/store/rejected-values.js +46 -20
- package/dist/store/rejection.d.ts +12 -11
- package/dist/store/rejection.js +18 -19
- package/dist/store/report-reads.d.ts +2 -1
- package/dist/store/report-reads.js +2 -1
- package/dist/store/rows.d.ts +7 -5
- package/dist/store/rows.js +20 -13
- package/dist/store/rule-sql.d.ts +7 -3
- package/dist/store/rule-sql.js +26 -13
- package/dist/store/search-rows.d.ts +16 -11
- package/dist/store/search-rows.js +54 -32
- package/dist/store/sessions.d.ts +12 -10
- package/dist/store/sessions.js +40 -21
- package/dist/store/set-aside.d.ts +2 -2
- package/dist/store/set-aside.js +18 -5
- package/dist/store/sqlite/agent-import.d.ts +3 -0
- package/dist/store/sqlite/agent-import.js +77 -0
- package/dist/store/sqlite/cards-group.d.ts +6 -0
- package/dist/store/sqlite/cards-group.js +37 -0
- package/dist/store/sqlite/conflicts-group.d.ts +6 -0
- package/dist/store/sqlite/conflicts-group.js +18 -0
- package/dist/store/sqlite/connector-events-group.d.ts +2 -1
- package/dist/store/sqlite/connector-events-group.js +17 -6
- package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
- package/dist/store/sqlite/connector-writes-group.js +12 -5
- package/dist/store/sqlite/consolidation-group.d.ts +4 -0
- package/dist/store/sqlite/consolidation-group.js +64 -0
- package/dist/store/sqlite/dag-reads-group.js +1 -1
- package/dist/store/sqlite/dormant-group.d.ts +6 -0
- package/dist/store/sqlite/dormant-group.js +29 -0
- package/dist/store/sqlite/entry-writes-group.d.ts +9 -6
- package/dist/store/sqlite/entry-writes-group.js +37 -14
- package/dist/store/sqlite/error-codec.d.ts +4 -2
- package/dist/store/sqlite/error-codec.js +32 -10
- package/dist/store/sqlite/executor-counts.js +2 -1
- package/dist/store/sqlite/executor.d.ts +8 -3
- package/dist/store/sqlite/executor.js +56 -18
- package/dist/store/sqlite/global-promote.d.ts +5 -0
- package/dist/store/sqlite/global-promote.js +48 -0
- package/dist/store/sqlite/goals-group.d.ts +6 -0
- package/dist/store/sqlite/goals-group.js +23 -0
- package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
- package/dist/store/sqlite/graph-reads-group.js +2 -1
- package/dist/store/sqlite/held-connection.d.ts +8 -0
- package/dist/store/sqlite/held-connection.js +34 -7
- package/dist/store/sqlite/last-recall-group.d.ts +15 -0
- package/dist/store/sqlite/last-recall-group.js +62 -0
- package/dist/store/sqlite/learning-group.d.ts +4 -0
- package/dist/store/sqlite/learning-group.js +17 -0
- package/dist/store/sqlite/maintenance-groups.d.ts +6 -0
- package/dist/store/sqlite/maintenance-groups.js +61 -0
- package/dist/store/sqlite/object-rows.d.ts +6 -3
- package/dist/store/sqlite/object-rows.js +34 -5
- package/dist/store/sqlite/objects-group.d.ts +5 -4
- package/dist/store/sqlite/objects-group.js +97 -38
- package/dist/store/sqlite/predictions-group.d.ts +2 -1
- package/dist/store/sqlite/predictions-group.js +4 -2
- package/dist/store/sqlite/promotion-group.d.ts +3 -0
- package/dist/store/sqlite/promotion-group.js +10 -0
- package/dist/store/sqlite/quarantine-group.d.ts +2 -1
- package/dist/store/sqlite/quarantine-group.js +4 -2
- package/dist/store/sqlite/reports-group.d.ts +6 -0
- package/dist/store/sqlite/reports-group.js +33 -0
- package/dist/store/sqlite/request-scope.d.ts +6 -0
- package/dist/store/sqlite/request-scope.js +18 -0
- package/dist/store/sqlite/sessions-group.d.ts +6 -0
- package/dist/store/sqlite/sessions-group.js +46 -0
- package/dist/store/sqlite/store.d.ts +22 -18
- package/dist/store/sqlite/store.js +95 -33
- package/dist/store/sqlite/vector-pack.js +2 -1
- package/dist/store/sqlite/vector-reads-group.js +2 -1
- package/dist/store/sqlite/worker-jobs.d.ts +2 -1
- package/dist/store/sqlite/worker-jobs.js +19 -7
- package/dist/store/sqlite/worker-ops.d.ts +10 -5
- package/dist/store/sqlite/worker-ops.js +6 -3
- package/dist/store/sqlite/worker-store.d.ts +4 -3
- package/dist/store/sqlite/worker-store.js +24 -14
- package/dist/store/summaries.d.ts +25 -11
- package/dist/store/summaries.js +84 -27
- package/dist/store/summary-dirty.d.ts +2 -1
- package/dist/store/summary-dirty.js +2 -1
- package/dist/store/tenant.d.ts +3 -2
- package/dist/store/tenant.js +5 -4
- package/dist/store/token-ledger-rows.js +8 -4
- package/dist/store/token-ledger.d.ts +19 -13
- package/dist/store/token-ledger.js +27 -14
- package/dist/store/tombstone-checks.d.ts +4 -1
- package/dist/store/tombstone-checks.js +10 -1
- package/dist/store/usage-reports.js +2 -1
- package/dist/store/vector-index.d.ts +8 -5
- package/dist/store/vector-index.js +28 -11
- package/dist/store/working-memory.d.ts +6 -4
- package/dist/store/working-memory.js +14 -9
- package/dist/support-bundle.js +10 -5
- package/dist/trust/quarantine.d.ts +1 -2
- package/dist/trust/quarantine.js +1 -5
- package/dist/trust/reject-flow.d.ts +12 -3
- package/dist/trust/reject-flow.js +12 -4
- package/dist/util/anthropic-messages.d.ts +7 -2
- package/dist/util/anthropic-messages.js +18 -7
- package/dist/util/atomic-write.d.ts +8 -3
- package/dist/util/atomic-write.js +36 -21
- package/dist/util/compaction-items.d.ts +4 -1
- package/dist/util/compaction-items.js +8 -2
- package/dist/util/crash-handlers.d.ts +7 -2
- package/dist/util/crash-handlers.js +13 -4
- package/dist/util/env.d.ts +26 -5
- package/dist/util/env.js +87 -25
- package/dist/util/format.d.ts +2 -0
- package/dist/util/format.js +4 -0
- package/dist/util/home-path.js +12 -6
- package/dist/util/hook-payload.d.ts +3 -1
- package/dist/util/hook-payload.js +3 -1
- package/dist/util/http-retry.d.ts +12 -6
- package/dist/util/http-retry.js +16 -6
- package/dist/util/http-util.d.ts +20 -5
- package/dist/util/http-util.js +28 -9
- package/dist/util/json.d.ts +4 -1
- package/dist/util/json.js +4 -1
- package/dist/util/keyset.js +2 -1
- package/dist/util/limits.js +4 -2
- package/dist/util/log.d.ts +13 -5
- package/dist/util/log.js +29 -6
- package/dist/util/net.d.ts +5 -0
- package/dist/util/net.js +19 -0
- package/dist/util/real-path.d.ts +2 -1
- package/dist/util/real-path.js +4 -3
- package/dist/util/request-scope.d.ts +16 -4
- package/dist/util/request-scope.js +19 -6
- package/dist/util/same-text.d.ts +10 -3
- package/dist/util/same-text.js +10 -3
- package/dist/util/secret-detect.d.ts +24 -7
- package/dist/util/secret-detect.js +49 -14
- package/dist/util/spawn-argv.d.ts +11 -0
- package/dist/util/spawn-argv.js +66 -0
- package/dist/util/sql.d.ts +3 -0
- package/dist/util/sql.js +6 -0
- package/dist/util/sqlite-blocked.d.ts +15 -4
- package/dist/util/sqlite-blocked.js +19 -6
- package/dist/util/stored-json.d.ts +4 -1
- package/dist/util/stored-json.js +6 -2
- package/dist/util/stream-tee.d.ts +2 -1
- package/dist/util/stream-tee.js +8 -5
- package/dist/util/transcript-tail.d.ts +4 -1
- package/dist/util/transcript-tail.js +4 -1
- package/dist/util/vector-codec.d.ts +4 -0
- package/dist/util/vector-codec.js +15 -0
- package/dist/util/version.d.ts +8 -3
- package/dist/util/version.js +8 -3
- package/dist/util/write-budget.d.ts +7 -2
- package/dist/util/write-budget.js +5 -2
- package/dist/util/yaml.d.ts +4 -1
- package/dist/util/yaml.js +4 -1
- 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 +4 -1
- package/scripts/postinstall.cjs +3 -1
- package/dist/api/audit.js +0 -56
- package/dist/api/cards.d.ts +0 -42
- package/dist/api/conflicts.d.ts +0 -28
- package/dist/api/conflicts.js +0 -61
- package/dist/api/dormant.d.ts +0 -14
- package/dist/api/dormant.js +0 -58
- package/dist/api/goals.d.ts +0 -18
- package/dist/api/graph.d.ts +0 -8
- package/dist/api/graph.js +0 -7
- package/dist/api/learn.js +0 -124
- package/dist/api/memories.d.ts +0 -23
- package/dist/api/memories.js +0 -46
- package/dist/api/objects.d.ts +0 -9
- package/dist/api/on-store.d.ts +0 -16
- package/dist/api/on-store.js +0 -38
- package/dist/api/outcome.d.ts +0 -19
- package/dist/api/outcome.js +0 -21
- package/dist/api/predictions.d.ts +0 -11
- package/dist/api/promote.d.ts +0 -36
- package/dist/api/promote.js +0 -65
- package/dist/api/recall-core.d.ts +0 -4
- package/dist/api/recall-core.js +0 -120
- package/dist/api/recall-finish.d.ts +0 -53
- package/dist/api/recall-finish.js +0 -30
- package/dist/api/recall-history.d.ts +0 -64
- package/dist/api/recall-history.js +0 -159
- package/dist/api/recall-record.d.ts +0 -43
- package/dist/api/recall-record.js +0 -78
- package/dist/api/recall-request.js +0 -121
- package/dist/api/recall.d.ts +0 -6
- package/dist/api/refine.d.ts +0 -7
- package/dist/api/refine.js +0 -10
- package/dist/api/session-owners.d.ts +0 -4
- package/dist/api/session-owners.js +0 -17
- package/dist/api/sleep-run.d.ts +0 -26
- package/dist/api/sleep.js +0 -10
- package/dist/cli/lenient-id.d.ts +0 -2
- package/dist/cli/lenient-id.js +0 -13
- package/dist/graph/write.d.ts +0 -14
- package/dist/store/sqlite/busy.d.ts +0 -3
- package/dist/store/sqlite/busy.js +0 -8
- package/dist/store/sqlite/local.d.ts +0 -21
- package/dist/store/sqlite/local.js +0 -39
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ChildProcess, type SpawnOptions } from 'node:child_process';
|
|
2
|
+
/** Quotes one cmd.exe argument; each `%` leaves the quotes as `^%`, so no %NAME% pair can expand. */
|
|
3
|
+
export declare function quoteCmdArg(arg: string): string;
|
|
4
|
+
/** cmd.exe arguments that run a .cmd or .bat shim with every forwarded argument delivered verbatim. */
|
|
5
|
+
export declare function cmdShimArgs(shimPath: string, forwardArgs: readonly string[]): string[];
|
|
6
|
+
/**
|
|
7
|
+
* Spawns argv[0] with the rest as its arguments and no shell. Node refuses to start a .cmd or .bat without one
|
|
8
|
+
* (CVE-2024-27980),
|
|
9
|
+
* so on win32 such a shim runs through cmd.exe with every argument quoted for it. */
|
|
10
|
+
export declare function spawnArgv(argv: readonly string[], options: SpawnOptions): ChildProcess;
|
|
11
|
+
//# sourceMappingURL=spawn-argv.d.ts.map
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Starting a command from an argv list with no shell, Windows .cmd and .bat shims included, so no argument is ever
|
|
2
|
+
// parsed as shell syntax.
|
|
3
|
+
import { spawn } from 'node:child_process';
|
|
4
|
+
import * as fs from 'node:fs';
|
|
5
|
+
import * as path from 'node:path';
|
|
6
|
+
import { envPath, envPathExt } from './env.js';
|
|
7
|
+
/** Quotes one cmd.exe argument; each `%` leaves the quotes as `^%`, so no %NAME% pair can expand. */
|
|
8
|
+
export function quoteCmdArg(arg) {
|
|
9
|
+
// cmd.exe ends the command line at CR or LF, so what follows would run as a new command.
|
|
10
|
+
if (/[\r\n]/.test(arg))
|
|
11
|
+
throw new Error('cmd.exe argument contains a CR or LF, which would start a new command');
|
|
12
|
+
if (arg.length === 0)
|
|
13
|
+
return '""';
|
|
14
|
+
if (!/[ \t"&()^<>|%!]/.test(arg))
|
|
15
|
+
return arg;
|
|
16
|
+
return `"${arg.replace(/"/g, '""').replace(/%/g, '"^%"')}"`;
|
|
17
|
+
}
|
|
18
|
+
/** cmd.exe arguments that run a .cmd or .bat shim with every forwarded argument delivered verbatim. */
|
|
19
|
+
export function cmdShimArgs(shimPath, forwardArgs) {
|
|
20
|
+
const command = `"${shimPath}"${forwardArgs.length > 0 ? ` ${forwardArgs.map(quoteCmdArg).join(' ')}` : ''}`;
|
|
21
|
+
// The line is already quoted for cmd.exe, so Node must not quote it again; /s strips the outer pair.
|
|
22
|
+
return ['/d', '/v:off', '/s', '/c', `"${command}"`];
|
|
23
|
+
}
|
|
24
|
+
const DEFAULT_PATHEXT = '.COM;.EXE;.BAT;.CMD';
|
|
25
|
+
function isFile(candidate) {
|
|
26
|
+
return fs.statSync(candidate, { throwIfNoEntry: false })?.isFile() === true;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The file `command` names on win32: as given when it has a folder, else the first hit on PATH (never the working
|
|
30
|
+
* folder, where a project file could stand in for a tool), trying each PATHEXT.
|
|
31
|
+
*/
|
|
32
|
+
function resolveWindowsCommand(command) {
|
|
33
|
+
const exts = (envPathExt() ?? DEFAULT_PATHEXT).split(';').filter((ext) => ext.length > 0);
|
|
34
|
+
const dirs = /[\\/]/.test(command) ? [''] : (envPath() ?? '').split(path.delimiter).filter((dir) => dir.length > 0);
|
|
35
|
+
for (const dir of dirs) {
|
|
36
|
+
const base = dir === '' ? command : path.join(dir, command);
|
|
37
|
+
const candidates = path.extname(command) === '' ? exts.map((ext) => base + ext) : [base, ...exts.map((ext) => base + ext)];
|
|
38
|
+
const hit = candidates.find(isFile);
|
|
39
|
+
if (hit !== undefined)
|
|
40
|
+
return hit;
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Spawns argv[0] with the rest as its arguments and no shell. Node refuses to start a .cmd or .bat without one
|
|
46
|
+
* (CVE-2024-27980),
|
|
47
|
+
* so on win32 such a shim runs through cmd.exe with every argument quoted for it. */
|
|
48
|
+
export function spawnArgv(argv, options) {
|
|
49
|
+
const [command, ...args] = argv;
|
|
50
|
+
if (command === undefined || command.length === 0)
|
|
51
|
+
throw new RangeError('spawnArgv needs a command: argv is empty');
|
|
52
|
+
if (process.platform === 'win32') {
|
|
53
|
+
const resolved = resolveWindowsCommand(command);
|
|
54
|
+
const ext = resolved === null ? '' : path.extname(resolved).toLowerCase();
|
|
55
|
+
if (resolved !== null && (ext === '.cmd' || ext === '.bat')) {
|
|
56
|
+
return spawn('cmd.exe', cmdShimArgs(resolved, args), {
|
|
57
|
+
...options,
|
|
58
|
+
windowsHide: options.windowsHide ?? true,
|
|
59
|
+
shell: false,
|
|
60
|
+
windowsVerbatimArguments: true,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return spawn(command, args, { ...options, windowsHide: options.windowsHide ?? true, shell: false });
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=spawn-argv.js.map
|
package/dist/util/sql.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// SQL text helpers shared by every layer that builds an IN list or VALUES row.
|
|
2
|
+
/** `n` bound-parameter marks joined for an IN list or VALUES row, e.g. 3 -> "?, ?, ?". */
|
|
3
|
+
export function placeholders(n) {
|
|
4
|
+
return Array.from({ length: n }, () => '?').join(', ');
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=sql.js.map
|
|
@@ -1,18 +1,29 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Thrown by a hippo.db open inside a request served from another store: the code path is not ported to the store port
|
|
3
|
+
* yet.
|
|
4
|
+
*/
|
|
2
5
|
export declare class SqliteBlockedError extends Error {
|
|
3
6
|
readonly storeKind: string;
|
|
4
7
|
constructor(storeKind: string, message?: string);
|
|
5
8
|
}
|
|
6
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* A store that lacks a whole group of port methods; it maps to the same 501, and the log names the group instead of
|
|
11
|
+
* hippo.db.
|
|
12
|
+
*/
|
|
7
13
|
export declare class StoreNotPortedError extends SqliteBlockedError {
|
|
8
14
|
readonly group: string;
|
|
9
15
|
constructor(storeKind: string, group: string);
|
|
10
16
|
}
|
|
11
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Thrown by a hippo.db open in a folder whose marker file names the store that holds its memories, from the CLI as from
|
|
19
|
+
* a request.
|
|
20
|
+
*/
|
|
12
21
|
export declare class OtherStoreFolderError extends SqliteBlockedError {
|
|
13
22
|
readonly markerPath: string;
|
|
14
23
|
constructor(storeKind: string, markerPath: string);
|
|
15
24
|
}
|
|
16
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* First line of a best-effort catch around a hippo.db open: an unported path must fail closed, not fall back silently.
|
|
27
|
+
*/
|
|
17
28
|
export declare function rethrowIfSqliteBlocked<E>(err: E): void;
|
|
18
29
|
//# sourceMappingURL=sqlite-blocked.d.ts.map
|
|
@@ -1,14 +1,22 @@
|
|
|
1
|
-
// A leaf module, so http-util can map this error to a 501 without importing db/open, whose migrations reach back to
|
|
2
|
-
|
|
1
|
+
// A leaf module, so http-util can map this error to a 501 without importing db/open, whose migrations reach back to
|
|
2
|
+
// http-util.
|
|
3
|
+
/**
|
|
4
|
+
* Thrown by a hippo.db open inside a request served from another store: the code path is not ported to the store port
|
|
5
|
+
* yet.
|
|
6
|
+
*/
|
|
3
7
|
export class SqliteBlockedError extends Error {
|
|
4
8
|
storeKind;
|
|
5
|
-
constructor(storeKind, message = `hippo.db is not opened while the '${storeKind}' store serves this request; this code path is not
|
|
9
|
+
constructor(storeKind, message = `hippo.db is not opened while the '${storeKind}' store serves this request; this code path is not ` +
|
|
10
|
+
`ported to the store yet`) {
|
|
6
11
|
super(message);
|
|
7
12
|
this.storeKind = storeKind;
|
|
8
13
|
this.name = 'SqliteBlockedError';
|
|
9
14
|
}
|
|
10
15
|
}
|
|
11
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* A store that lacks a whole group of port methods; it maps to the same 501, and the log names the group instead of
|
|
18
|
+
* hippo.db.
|
|
19
|
+
*/
|
|
12
20
|
export class StoreNotPortedError extends SqliteBlockedError {
|
|
13
21
|
group;
|
|
14
22
|
constructor(storeKind, group) {
|
|
@@ -17,7 +25,10 @@ export class StoreNotPortedError extends SqliteBlockedError {
|
|
|
17
25
|
this.name = 'StoreNotPortedError';
|
|
18
26
|
}
|
|
19
27
|
}
|
|
20
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Thrown by a hippo.db open in a folder whose marker file names the store that holds its memories, from the CLI as from
|
|
30
|
+
* a request.
|
|
31
|
+
*/
|
|
21
32
|
export class OtherStoreFolderError extends SqliteBlockedError {
|
|
22
33
|
markerPath;
|
|
23
34
|
constructor(storeKind, markerPath) {
|
|
@@ -26,7 +37,9 @@ export class OtherStoreFolderError extends SqliteBlockedError {
|
|
|
26
37
|
this.name = 'OtherStoreFolderError';
|
|
27
38
|
}
|
|
28
39
|
}
|
|
29
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* First line of a best-effort catch around a hippo.db open: an unported path must fail closed, not fall back silently.
|
|
42
|
+
*/
|
|
30
43
|
export function rethrowIfSqliteBlocked(err) {
|
|
31
44
|
if (err instanceof SqliteBlockedError)
|
|
32
45
|
throw err;
|
|
@@ -4,6 +4,9 @@ export interface StoredJsonSite {
|
|
|
4
4
|
id: string | number;
|
|
5
5
|
column: string;
|
|
6
6
|
}
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Warns the first time this row's column is found damaged (the logger caps how many), then at debug, so a row read on
|
|
9
|
+
* every recall cannot flood stderr.
|
|
10
|
+
*/
|
|
8
11
|
export declare function warnDamagedColumn(site: StoredJsonSite, problem: 'not valid JSON' | 'wrong shape'): void;
|
|
9
12
|
//# sourceMappingURL=stored-json.d.ts.map
|
package/dist/util/stored-json.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
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
|
|
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
|
|
2
|
+
// trace.
|
|
2
3
|
import { log } from './log.js';
|
|
3
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Warns the first time this row's column is found damaged (the logger caps how many), then at debug, so a row read on
|
|
6
|
+
* every recall cannot flood stderr.
|
|
7
|
+
*/
|
|
4
8
|
export function warnDamagedColumn(site, problem) {
|
|
5
9
|
const { table, id, column } = site;
|
|
6
10
|
log.warnThenDebug(`damaged-column:${table}:${id}:${column}`, `store: ${table}.${column} is ${problem}; read as empty`, { table, id, column });
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
/** Mirrors every stdout and stderr chunk to `logFile` until the returned restore runs; an append failure warns once
|
|
1
|
+
/** Mirrors every stdout and stderr chunk to `logFile` until the returned restore runs; an append failure warns once
|
|
2
|
+
* and never stops the real write. */
|
|
2
3
|
export declare function teeStdStreams(logFile: string): () => void;
|
|
3
4
|
//# sourceMappingURL=stream-tee.d.ts.map
|
package/dist/util/stream-tee.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
|
-
import { errorMessage, log } from './log.js';
|
|
3
|
-
/** Mirrors every stdout and stderr chunk to `logFile` until the returned restore runs; an append failure warns once
|
|
2
|
+
import { errorMessage, log, errorFields } from './log.js';
|
|
3
|
+
/** Mirrors every stdout and stderr chunk to `logFile` until the returned restore runs; an append failure warns once
|
|
4
|
+
* and never stops the real write. */
|
|
4
5
|
export function teeStdStreams(logFile) {
|
|
5
6
|
const origStdoutWrite = process.stdout.write.bind(process.stdout);
|
|
6
7
|
const origStderrWrite = process.stderr.write.bind(process.stderr);
|
|
@@ -13,16 +14,18 @@ export function teeStdStreams(logFile) {
|
|
|
13
14
|
if (warned)
|
|
14
15
|
return;
|
|
15
16
|
warned = true;
|
|
16
|
-
log.warn(`log file ${logFile} is no longer writable; output continues without it: ${errorMessage(err)}
|
|
17
|
+
log.warn(`log file ${logFile} is no longer writable; output continues without it: ${errorMessage(err)}`, errorFields(err));
|
|
17
18
|
}
|
|
18
19
|
};
|
|
19
20
|
const wrapWrite = (origWrite) => {
|
|
20
21
|
const wrapped = (...args) => {
|
|
21
22
|
tee(args[0]);
|
|
22
|
-
// SAFETY: forwarding the exact arguments the real overloaded `write` received is safe; `StreamWriteArgs` is the
|
|
23
|
+
// SAFETY: forwarding the exact arguments the real overloaded `write` received is safe; `StreamWriteArgs` is the
|
|
24
|
+
// union of both overloads' parameter lists.
|
|
23
25
|
return origWrite(...args);
|
|
24
26
|
};
|
|
25
|
-
// SAFETY: `wrapped` matches both real `write` overload shapes; TS cannot verify one implementation covers an
|
|
27
|
+
// SAFETY: `wrapped` matches both real `write` overload shapes; TS cannot verify one implementation covers an
|
|
28
|
+
// overloaded type.
|
|
26
29
|
return wrapped;
|
|
27
30
|
};
|
|
28
31
|
process.stdout.write = wrapWrite(origStdoutWrite);
|
|
@@ -4,6 +4,9 @@ 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
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* {@link readTranscriptTail} for a transcript the caller opened and sized, so the size and the bytes come from one
|
|
9
|
+
* file.
|
|
10
|
+
*/
|
|
8
11
|
export declare function readOpenTranscriptTail(fd: number, size: number, capBytes: number): string;
|
|
9
12
|
//# sourceMappingURL=transcript-tail.d.ts.map
|
|
@@ -24,7 +24,10 @@ export function readTranscriptTail(transcriptPath, capBytes = PRE_COMPACT_TAIL_B
|
|
|
24
24
|
fs.closeSync(fd);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* {@link readTranscriptTail} for a transcript the caller opened and sized, so the size and the bytes come from one
|
|
29
|
+
* file.
|
|
30
|
+
*/
|
|
28
31
|
export function readOpenTranscriptTail(fd, size, capBytes) {
|
|
29
32
|
const start = Math.max(0, size - capBytes);
|
|
30
33
|
const length = size - start;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Float32 vector <-> Buffer codec for BLOB columns. */
|
|
2
|
+
export function float32ToBuffer(arr) {
|
|
3
|
+
const f32 = new Float32Array(arr);
|
|
4
|
+
return Buffer.from(f32.buffer);
|
|
5
|
+
}
|
|
6
|
+
export function bufferToFloat32(buf) {
|
|
7
|
+
if (buf.byteLength === 0 || buf.byteLength % 4 !== 0)
|
|
8
|
+
return [];
|
|
9
|
+
// Ensure we have a properly aligned copy (SQLite may return Uint8Array, not Buffer)
|
|
10
|
+
const bytes = new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
11
|
+
const aligned = new ArrayBuffer(bytes.length);
|
|
12
|
+
new Uint8Array(aligned).set(bytes);
|
|
13
|
+
return Array.from(new Float32Array(aligned));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=vector-codec.js.map
|
package/dist/util/version.d.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the package version, written by scripts/sync-version.mjs; never edit by hand. Read by the
|
|
3
|
+
* db rollback guard, /health, MCP.
|
|
2
4
|
* 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.
|
|
5
|
+
export declare const PACKAGE_VERSION = "2.1.0";
|
|
4
6
|
/** The floor a store takes on its first expiring key: the first release with schema
|
|
5
7
|
* v53, set by hand in that release; scripts/check-expiring-keys-floor.mjs gates it. */
|
|
6
8
|
export declare const EXPIRING_KEYS_MIN_BINARY = "1.64.0";
|
|
7
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* The floor a store takes on its first session bind or owner snapshot: first release with v54; set by hand in that
|
|
11
|
+
* release.
|
|
12
|
+
*/
|
|
8
13
|
export declare const TASK_OWNER_MIN_BINARY = "1.64.0";
|
|
9
14
|
/** Compares plain x.y.z versions, positive if a > b; tags throw so the rollback guard never misfires silently. */
|
|
10
15
|
export declare function compareSemver(a: string, b: string): number;
|
package/dist/util/version.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the package version, written by scripts/sync-version.mjs; never edit by hand. Read by the
|
|
3
|
+
* db rollback guard, /health, MCP.
|
|
2
4
|
* 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.
|
|
5
|
+
export const PACKAGE_VERSION = '2.1.0';
|
|
4
6
|
/** The floor a store takes on its first expiring key: the first release with schema
|
|
5
7
|
* v53, set by hand in that release; scripts/check-expiring-keys-floor.mjs gates it. */
|
|
6
8
|
export const EXPIRING_KEYS_MIN_BINARY = '1.64.0';
|
|
7
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* The floor a store takes on its first session bind or owner snapshot: first release with v54; set by hand in that
|
|
11
|
+
* release.
|
|
12
|
+
*/
|
|
8
13
|
export const TASK_OWNER_MIN_BINARY = '1.64.0';
|
|
9
14
|
/** Compares plain x.y.z versions, positive if a > b; tags throw so the rollback guard never misfires silently. */
|
|
10
15
|
export function compareSemver(a, b) {
|
|
@@ -3,9 +3,14 @@ export declare const TARGET_HOLD_MS = 100;
|
|
|
3
3
|
/** SQLite's longest busy-handler sleep under a hook's 1 s wait, so a waiting hook always wakes inside the gap. */
|
|
4
4
|
export declare const GAP_MS = 100;
|
|
5
5
|
export declare function clock(): number;
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Waits until GAP_MS have passed since the last commit; always yields once, so timers and requests run between chunks.
|
|
8
|
+
*/
|
|
7
9
|
export declare function pauseForWaiters(lastCommitAt: number): Promise<void>;
|
|
8
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* The hold, clock and pause a chunked write runs on; a test passes its own to force chunk boundaries without real
|
|
12
|
+
* waits.
|
|
13
|
+
*/
|
|
9
14
|
export interface WriteBudget {
|
|
10
15
|
readonly holdMs: number;
|
|
11
16
|
readonly clock: () => number;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// How long a long-running write may hold the store's write lock per transaction, and how long it lets other writers in
|
|
1
|
+
// How long a long-running write may hold the store's write lock per transaction, and how long it lets other writers in
|
|
2
|
+
// after.
|
|
2
3
|
import { setTimeout as delay } from 'node:timers/promises';
|
|
3
4
|
/** A chunk closes at the first unit boundary after this long: a server request gives up after a 250 ms wait. */
|
|
4
5
|
export const TARGET_HOLD_MS = 100;
|
|
@@ -7,7 +8,9 @@ export const GAP_MS = 100;
|
|
|
7
8
|
export function clock() {
|
|
8
9
|
return performance.now();
|
|
9
10
|
}
|
|
10
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Waits until GAP_MS have passed since the last commit; always yields once, so timers and requests run between chunks.
|
|
13
|
+
*/
|
|
11
14
|
export async function pauseForWaiters(lastCommitAt) {
|
|
12
15
|
await delay(Math.max(0, GAP_MS - (clock() - lastCommitAt)));
|
|
13
16
|
}
|
package/dist/util/yaml.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Minimal YAML frontmatter serializer/deserializer with no external deps: simple key-value pairs and inline arrays,
|
|
3
|
+
* enough for the MemoryEntry schema.
|
|
4
|
+
*/
|
|
2
5
|
type YamlValue = string | number | boolean | null | string[] | number[];
|
|
3
6
|
export declare function dumpFrontmatter(obj: Record<string, YamlValue>): string;
|
|
4
7
|
export interface ParsedFrontmatter {
|
package/dist/util/yaml.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Minimal YAML frontmatter serializer/deserializer with no external deps: simple key-value pairs and inline arrays,
|
|
3
|
+
* enough for the MemoryEntry schema.
|
|
4
|
+
*/
|
|
2
5
|
const SCALAR_LOOKALIKE = /^(null|true|false|-?\d+(\.\d+)?)$/;
|
|
3
6
|
const UNESCAPES = new Map([['\\', '\\'], ['"', '"'], ['n', '\n'], ['r', '\r']]);
|
|
4
7
|
function escapeString(s) {
|
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": "2.1.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": "2.1.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",
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
"exports": {
|
|
9
9
|
".": "./dist/index.js",
|
|
10
10
|
"./server": "./dist/server.js",
|
|
11
|
+
"./store-kit": "./dist/entry/store-kit.js",
|
|
12
|
+
"./testing": "./dist/entry/testing.js",
|
|
11
13
|
"./project-identity": "./dist/entry/project-identity.js",
|
|
12
14
|
"./json-hooks": "./dist/entry/json-hooks.js",
|
|
13
15
|
"./session-text": "./dist/entry/session-text.js"
|
|
@@ -34,6 +36,7 @@
|
|
|
34
36
|
"baseline": "npm run build && npm test",
|
|
35
37
|
"build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc && tsc -p tsconfig.benchmarks.json && tsc -p tsconfig.extensions.json",
|
|
36
38
|
"typecheck:tests": "tsc -p tsconfig.tests.json",
|
|
39
|
+
"check:dts": "node scripts/check-dts-diff.mjs",
|
|
37
40
|
"dev": "tsc --watch",
|
|
38
41
|
"pretest": "npm run build",
|
|
39
42
|
"test": "vitest run",
|
package/scripts/postinstall.cjs
CHANGED
|
@@ -11,6 +11,8 @@ if (!fs.existsSync(distPostinstall)) {
|
|
|
11
11
|
process.exit(0);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
// A failed nudge must not fail the install, but the reason still reaches the user.
|
|
15
|
+
import(pathToFileURL(distPostinstall).href).catch((err) => {
|
|
16
|
+
process.stderr.write(`hippo-memory postinstall skipped: ${err instanceof Error ? err.message : err}\n`);
|
|
15
17
|
process.exit(0);
|
|
16
18
|
});
|
package/dist/api/audit.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
// Audit log queries and retention, and the memory-quality audit with its repair passes.
|
|
2
|
-
import { pruneAuditRows } from '../store/audit.js';
|
|
3
|
-
import { auditMemories } from '../core/memory-audit.js';
|
|
4
|
-
import { deleteEntriesAutomatically, memoriesBackingObjects } from '../store/delete-and-batch.js';
|
|
5
|
-
import { loadAllEntries } from '../store/entry-reads.js';
|
|
6
|
-
import { repairAutomaticMemories, repairQualityOnce } from '../store/quality-repair.js';
|
|
7
|
-
import { DAY_MS } from '../util/time.js';
|
|
8
|
-
import { requireGroup, storeFor } from '../store/index.js';
|
|
9
|
-
/** Read audit events scoped to `ctx.tenantId` on the store the request runs on. Read-only, no audit emit. */
|
|
10
|
-
export async function auditList(ctx, opts) {
|
|
11
|
-
return requireGroup(storeFor(ctx), 'auditLog').listAuditEvents({
|
|
12
|
-
tenantId: ctx.tenantId, op: opts.op, since: opts.since, limit: opts.limit, after: opts.after,
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
/** Delete the memories an audit marked as errors, each with its own forget row, and answer the ids that went: a pinned or raw row stays. */
|
|
16
|
-
export function removeAuditErrors(ctx, pass, issues) {
|
|
17
|
-
const removals = issues
|
|
18
|
-
.filter((issue) => issue.severity === 'error')
|
|
19
|
-
.map((issue) => ({ id: issue.memoryId, reason: `${pass}: ${issue.reason}` }));
|
|
20
|
-
return deleteEntriesAutomatically(ctx.hippoRoot, removals, ctx.actor.subject);
|
|
21
|
-
}
|
|
22
|
-
// SHORTCUT: hippo.db only, as the port has no whole-tenant read, backing-object read or automatic delete with a reason; another store kind
|
|
23
|
-
// answers 501 at the open. Port groups for them once a served store must audit.
|
|
24
|
-
/** The caller's memories run through the quality audit; a memory that backs an object is never marked for removal. */
|
|
25
|
-
export function auditMemoryQuality(ctx) {
|
|
26
|
-
return auditMemories(loadAllEntries(ctx.hippoRoot, ctx.tenantId), memoriesBackingObjects(ctx.hippoRoot));
|
|
27
|
-
}
|
|
28
|
-
/** Audit repair for the caller's tenant: a preview, or with `apply` the moves of certain defects to dormant storage behind a backup. */
|
|
29
|
-
export function repairMemoryQuality(ctx, apply) {
|
|
30
|
-
return repairAutomaticMemories(ctx.hippoRoot, { tenantId: ctx.tenantId, apply });
|
|
31
|
-
}
|
|
32
|
-
/** The repair sleep and the daily runner apply once per store after an upgrade; null when it already ran there. */
|
|
33
|
-
export function repairMemoryQualityOnce(ctx) {
|
|
34
|
-
return repairQualityOnce(ctx.hippoRoot, ctx.tenantId);
|
|
35
|
-
}
|
|
36
|
-
/** Cutoff ISO timestamp for N days ago; exported so tests can pin "now" without mocking Date. */
|
|
37
|
-
export function computeCutoff(days, now = new Date()) {
|
|
38
|
-
const cutoff = new Date(now.getTime() - days * DAY_MS);
|
|
39
|
-
return cutoff.toISOString();
|
|
40
|
-
}
|
|
41
|
-
/** Delete the caller's tenant's audit_log rows older than `olderThanDays`, then record an `audit_prune` row as `ctx.actor`; opt-in, since
|
|
42
|
-
* retention floors (HIPAA, SOX, GDPR) apply. The row is written after the DELETE, so a call never prunes its own record.
|
|
43
|
-
* Throws on non-positive days or an empty tenant. */
|
|
44
|
-
export function pruneAuditLog(ctx, opts) {
|
|
45
|
-
if (!Number.isFinite(opts.olderThanDays) || opts.olderThanDays <= 0) {
|
|
46
|
-
throw new Error(`pruneAuditLog: olderThanDays must be a positive number, got ${opts.olderThanDays}`);
|
|
47
|
-
}
|
|
48
|
-
if (!ctx.tenantId) {
|
|
49
|
-
throw new Error('pruneAuditLog: tenantId is required');
|
|
50
|
-
}
|
|
51
|
-
const dryRun = opts.dryRun === true;
|
|
52
|
-
const cutoff = computeCutoff(opts.olderThanDays);
|
|
53
|
-
const count = pruneAuditRows(ctx.hippoRoot, { tenantId: ctx.tenantId, cutoff, actor: ctx.actor.subject, olderThanDays: opts.olderThanDays, dryRun });
|
|
54
|
-
return { cutoff, count, dryRun };
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=audit.js.map
|
package/dist/api/cards.d.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { Card, CardComment, CardRun, CardStatus } from '../core/card.js';
|
|
2
|
-
import type { HandoffOutcome } from '../core/handoff.js';
|
|
3
|
-
import { type CardDetail } from '../store/card-detail.js';
|
|
4
|
-
import type { Context } from './types.js';
|
|
5
|
-
/** Create a card in the caller's tenant. Throws on an empty title or an unknown dependency. */
|
|
6
|
-
export declare function cardCreate(ctx: Context, input: {
|
|
7
|
-
title: string;
|
|
8
|
-
repo?: string;
|
|
9
|
-
contract?: string;
|
|
10
|
-
budget?: number;
|
|
11
|
-
dependsOn?: string[];
|
|
12
|
-
}): Card;
|
|
13
|
-
/** One card by id, or null when the caller's tenant has none. */
|
|
14
|
-
export declare function cardLoad(ctx: Context, id: string): Card | null;
|
|
15
|
-
/** The card with its dependencies, runs, comments and latest handoff, or null when unknown. */
|
|
16
|
-
export declare function cardDetail(ctx: Context, id: string): CardDetail | null;
|
|
17
|
-
/** The caller's cards, newest-updated first, optionally filtered to one status. */
|
|
18
|
-
export declare function cardList(ctx: Context, opts?: {
|
|
19
|
-
status?: CardStatus;
|
|
20
|
-
}): Card[];
|
|
21
|
-
/** Every run of a card, newest first. */
|
|
22
|
-
export declare function cardRuns(ctx: Context, id: string): CardRun[];
|
|
23
|
-
/** Claim a ready or blocked card for a runtime; null when it cannot be claimed. */
|
|
24
|
-
export declare function cardClaim(ctx: Context, id: string, runtime: string, sessionId?: string): (Card & {
|
|
25
|
-
runId: number;
|
|
26
|
-
}) | null;
|
|
27
|
-
/** Extend a live run's lease; null when the run is not live. */
|
|
28
|
-
export declare function cardHeartbeat(ctx: Context, id: string, runId: number): Card | null;
|
|
29
|
-
/** Block a running card with a reason; null when it is not running. */
|
|
30
|
-
export declare function cardBlock(ctx: Context, id: string, reason: string, runId?: number): Card | null;
|
|
31
|
-
/** Move a running card to review; null when it is not running. */
|
|
32
|
-
export declare function cardReview(ctx: Context, id: string, runId?: number): Card | null;
|
|
33
|
-
/** Complete a card in review and promote the children it unblocks; null when not in review. */
|
|
34
|
-
export declare function cardComplete(ctx: Context, id: string, outcome: HandoffOutcome, runId?: number): {
|
|
35
|
-
card: Card;
|
|
36
|
-
promotedChildren: string[];
|
|
37
|
-
} | null;
|
|
38
|
-
/** Return every card with an expired lease to ready; yields the reclaimed ids. */
|
|
39
|
-
export declare function cardReclaimExpired(ctx: Context): string[];
|
|
40
|
-
/** Add a comment to a card. Throws on an empty body. */
|
|
41
|
-
export declare function cardComment(ctx: Context, cardId: string, author: string, body: string): CardComment;
|
|
42
|
-
//# sourceMappingURL=cards.d.ts.map
|
package/dist/api/conflicts.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { MemoryConflict } from '../store/rows.js';
|
|
2
|
-
import type { CallerProject } from './prompt-hook.js';
|
|
3
|
-
import { type Context } from './types.js';
|
|
4
|
-
import type { TenantReach } from './memories.js';
|
|
5
|
-
export interface ResolveMemoryConflictOpts {
|
|
6
|
-
/** One of the conflict's two memories; the other is the loser. */
|
|
7
|
-
keepId: string;
|
|
8
|
-
/** Delete the loser instead of halving its half-life. */
|
|
9
|
-
forget?: boolean;
|
|
10
|
-
/** Tombstone the loser's value as well, which removes it whatever `forget` says. */
|
|
11
|
-
rejectLoser?: boolean;
|
|
12
|
-
/** Kept on the tombstone; a conflict-context reason when unset. */
|
|
13
|
-
reason?: string;
|
|
14
|
-
}
|
|
15
|
-
export interface ResolveMemoryConflictResult {
|
|
16
|
-
conflictId: number;
|
|
17
|
-
keptId: string;
|
|
18
|
-
loserId: string;
|
|
19
|
-
}
|
|
20
|
-
/** Keeps `keepId` and weakens, deletes or rejects the other side of an open conflict in the caller's tenant, auditing as `ctx.actor`.
|
|
21
|
-
* NotFound: missing, untouchable or no longer live. Conflict: already resolved. BadRequest: `keepId` outside the pair. */
|
|
22
|
-
export declare function resolveMemoryConflict(ctx: Context, conflictId: number, opts: ResolveMemoryConflictOpts): ResolveMemoryConflictResult;
|
|
23
|
-
/** Open conflicts whose two rows the caller may touch; with `project`, only pairs it could also recall:
|
|
24
|
-
* its repo or user-global, and no scope it was not asked for. */
|
|
25
|
-
export declare function listOpenConflicts(ctx: Context, project?: CallerProject): MemoryConflict[];
|
|
26
|
-
/** Conflicts with `status` ('*' for any) in reach, with no scope filter: the host's own view, so the host admin only. */
|
|
27
|
-
export declare function listConflicts(ctx: Context, status: string, reach?: TenantReach): MemoryConflict[];
|
|
28
|
-
//# sourceMappingURL=conflicts.d.ts.map
|