hippo-memory 2.0.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/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 -6
- package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
- package/dist/api/{audit.js → auth/audit.js} +11 -11
- package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -15
- package/dist/api/{auth.js → auth/auth.js} +46 -29
- package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
- package/dist/api/{quarantine.js → auth/quarantine.js} +8 -8
- 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 +10 -2
- package/dist/api/context-render.js +14 -7
- package/dist/api/context-select.d.ts +4 -1
- package/dist/api/context-select.js +23 -14
- package/dist/api/context-types.d.ts +38 -12
- package/dist/api/context.d.ts +8 -5
- package/dist/api/context.js +112 -57
- 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} +22 -15
- package/dist/api/memories/memories.d.ts +27 -0
- package/dist/api/{memories.js → memories/memories.js} +16 -21
- package/dist/api/memories/outcome.d.ts +22 -0
- package/dist/api/{outcome.js → memories/outcome.js} +14 -8
- package/dist/api/memories/promote.d.ts +40 -0
- package/dist/api/{promote.js → memories/promote.js} +35 -22
- 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} +16 -11
- package/dist/api/{remember-local.js → memories/remember-local.js} +34 -20
- package/dist/api/{remember.d.ts → memories/remember.d.ts} +19 -13
- package/dist/api/{remember.js → memories/remember.js} +42 -26
- 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 -8
- 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 -4
- package/dist/api/objects/predictions.d.ts +11 -0
- package/dist/api/{predictions.js → objects/predictions.js} +7 -6
- 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 +32 -19
- package/dist/api/prompt-hook.js +65 -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} +176 -92
- package/dist/api/recall/recall.d.ts +6 -0
- package/dist/api/{recall.js → recall/recall.js} +101 -60
- 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 -70
- package/dist/api/{recall-types.js → recall/types.js} +1 -1
- package/dist/api/session-end.d.ts +16 -12
- package/dist/api/session-end.js +46 -30
- 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} +51 -43
- 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 +28 -7
- 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 +33 -14
- 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 +15 -4
- package/dist/capture/compaction-spool.js +64 -17
- 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 +45 -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 +23 -23
- package/dist/cli/auth.js +19 -27
- 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 -4
- package/dist/cli/client.js +43 -13
- package/dist/cli/compact-resume-payload.d.ts +4 -1
- package/dist/cli/compact-resume-payload.js +12 -5
- package/dist/cli/context.js +42 -17
- package/dist/cli/continuity.d.ts +5 -5
- package/dist/cli/continuity.js +90 -107
- package/dist/cli/curate.d.ts +4 -3
- package/dist/cli/curate.js +46 -68
- package/dist/cli/dag.d.ts +1 -1
- package/dist/cli/dag.js +14 -17
- package/dist/cli/decisions.js +27 -26
- 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 +31 -9
- package/dist/cli/hook-runtime.js +40 -15
- package/dist/cli/incidents.d.ts +1 -1
- package/dist/cli/incidents.js +25 -25
- package/dist/cli/init.js +26 -11
- 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 +4 -4
- package/dist/cli/object-verbs.js +10 -13
- 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 +15 -19
- package/dist/cli/print.js +4 -2
- package/dist/cli/projects.js +21 -11
- package/dist/cli/quality-repair-once.js +5 -4
- package/dist/cli/recall.js +129 -93
- package/dist/cli/refine-llm.d.ts +15 -4
- package/dist/cli/refine-llm.js +16 -7
- package/dist/cli/remember.js +46 -50
- package/dist/cli/scheduler.d.ts +4 -1
- package/dist/cli/scheduler.js +9 -5
- package/dist/cli/serve.js +22 -17
- package/dist/cli/session-hooks.d.ts +2 -2
- package/dist/cli/session-hooks.js +87 -50
- package/dist/cli/setup.js +54 -32
- package/dist/cli/shared.d.ts +3 -1
- package/dist/cli/shared.js +24 -9
- 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 +14 -6
- 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 +1 -1
- package/dist/cli/transfer.js +71 -75
- package/dist/cli/verbs/memory.js +8 -6
- package/dist/cli/verbs/objects.js +10 -4
- package/dist/cli/versioned-verbs.d.ts +8 -7
- package/dist/cli/versioned-verbs.js +31 -21
- package/dist/cli.js +13 -16
- package/dist/connectors/dlq.d.ts +6 -6
- package/dist/connectors/dlq.js +12 -8
- 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 -5
- 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 -6
- 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 -6
- 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 +34 -23
- package/dist/connectors/ingest.d.ts +5 -3
- package/dist/connectors/ingest.js +3 -4
- 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 -6
- 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 -5
- 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 -6
- 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 +23 -9
- package/dist/consolidate/dag-summary.js +2 -1
- package/dist/consolidate/dag.d.ts +10 -5
- package/dist/consolidate/dag.js +37 -36
- package/dist/consolidate/decay.js +19 -6
- package/dist/consolidate/dedupe.d.ts +14 -5
- package/dist/consolidate/dedupe.js +27 -16
- 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 +36 -13
- package/dist/consolidate/merge.d.ts +4 -1
- package/dist/consolidate/merge.js +42 -32
- 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 +41 -38
- package/dist/consolidate/trace.d.ts +7 -2
- package/dist/consolidate/trace.js +7 -2
- package/dist/consolidate/traces.js +26 -29
- 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 +24 -14
- 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 +21 -16
- 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 +84 -27
- package/dist/core/memory.js +73 -29
- 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 +37 -11
- package/dist/core/physics.js +55 -20
- package/dist/core/project-identity.d.ts +34 -17
- package/dist/core/project-identity.js +33 -17
- 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.js +13 -2
- package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
- package/dist/dashboard/dashboard-snapshot.js +4 -4
- package/dist/dashboard/dashboard.js +6 -3
- 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 -3
- package/dist/db/connect.js +8 -3
- 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 +26 -13
- 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/v12.js +2 -1
- package/dist/db/migrations/v14.js +2 -1
- 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 -4
- package/dist/db/physics-state.js +13 -20
- 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 +19 -5
- package/dist/db/request-stores.js +14 -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 +34 -14
- package/dist/db/wal-checkpointer.d.ts +2 -1
- package/dist/db/wal-checkpointer.js +19 -7
- package/dist/doctor.d.ts +4 -1
- package/dist/doctor.js +121 -39
- package/dist/embeddings/local.d.ts +8 -4
- package/dist/embeddings/local.js +9 -5
- package/dist/embeddings/provider.d.ts +19 -10
- package/dist/embeddings/provider.js +31 -17
- 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 +19 -6
- package/dist/entry/store-kit.js +6 -4
- 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 +16 -6
- 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 +69 -34
- 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 +8 -7
- 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 +2 -2
- package/dist/importers/vault.js +43 -27
- package/dist/index.d.ts +32 -6
- package/dist/index.js +25 -7
- package/dist/learn/autolearn.d.ts +17 -6
- package/dist/learn/autolearn.js +53 -24
- 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 +16 -9
- 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 -7
- package/dist/learn/invalidation.js +56 -27
- 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 +18 -14
- 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 +57 -74
- 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 +52 -21
- 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 +9 -6
- 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 +10 -5
- package/dist/search/embed-memories.js +62 -36
- package/dist/search/engine.d.ts +4 -1
- package/dist/search/engine.js +6 -2
- 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 +9 -3
- package/dist/server/auth.d.ts +18 -14
- package/dist/server/auth.js +69 -38
- package/dist/server/boot.d.ts +3 -1
- package/dist/server/boot.js +95 -56
- package/dist/server/client-ip.d.ts +11 -4
- package/dist/server/client-ip.js +27 -10
- 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 +547 -93
- 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 -19
- 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 +41 -19
- package/dist/server/tls.d.ts +4 -1
- package/dist/server/tls.js +13 -5
- package/dist/server/types.d.ts +38 -26
- package/dist/server/validation.d.ts +4 -1
- package/dist/server/validation.js +22 -9
- package/dist/server.d.ts +15 -10
- package/dist/server.js +32 -12
- package/dist/sharing/global-store.d.ts +5 -10
- package/dist/sharing/global-store.js +8 -43
- package/dist/sharing/global-sync.d.ts +3 -1
- package/dist/sharing/global-sync.js +16 -6
- 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 +19 -12
- package/dist/sharing/share.d.ts +8 -4
- package/dist/sharing/share.js +39 -15
- package/dist/store/ambient.js +9 -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 +75 -36
- 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 +93 -60
- 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 +95 -32
- package/dist/store/compactions.js +35 -15
- package/dist/store/conflicts.d.ts +9 -4
- package/dist/store/conflicts.js +100 -45
- package/dist/store/connectors/dlq.d.ts +17 -5
- package/dist/store/connectors/dlq.js +56 -5
- package/dist/store/connectors/event-log.d.ts +111 -2
- package/dist/store/connectors/event-log.js +2 -1
- package/dist/store/connectors/github.d.ts +6 -3
- package/dist/store/connectors/github.js +24 -40
- package/dist/store/connectors/slack.d.ts +2 -1
- package/dist/store/connectors/slack.js +25 -37
- package/dist/store/dashboard-reads.d.ts +7 -3
- package/dist/store/dashboard-reads.js +32 -11
- package/dist/store/delete-and-batch.d.ts +17 -11
- package/dist/store/delete-and-batch.js +67 -26
- package/dist/store/delivery-recorder.d.ts +8 -5
- package/dist/store/delivery-recorder.js +70 -32
- package/dist/store/descendant-page.d.ts +2 -1
- package/dist/store/descendant-page.js +24 -9
- 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 +40 -18
- package/dist/store/embeddings/index.d.ts +13 -9
- package/dist/store/embeddings/index.js +19 -12
- package/dist/store/entry-reads.d.ts +49 -20
- package/dist/store/entry-reads.js +181 -66
- package/dist/store/entry-row.d.ts +10 -6
- package/dist/store/entry-row.js +17 -12
- package/dist/store/entry-writes.d.ts +22 -10
- package/dist/store/entry-writes.js +41 -14
- 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 +8 -10
- 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 +24 -15
- package/dist/store/graph-rows.d.ts +41 -3
- package/dist/store/graph-rows.js +10 -7
- package/dist/store/graph-view-rows.js +14 -7
- package/dist/store/graph-writes.d.ts +16 -10
- package/dist/store/graph-writes.js +59 -36
- package/dist/store/handoffs.d.ts +4 -4
- package/dist/store/handoffs.js +40 -19
- 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 +3 -1
- package/dist/store/index.js +1 -0
- 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 +88 -16
- package/dist/store/narrow.d.ts +6 -0
- package/dist/store/narrow.js +11 -0
- package/dist/store/open.d.ts +4 -2
- package/dist/store/open.js +18 -9
- 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 +215 -229
- 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 +126 -63
- package/dist/store/rejected-values.d.ts +15 -10
- package/dist/store/rejected-values.js +33 -12
- 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 +18 -11
- package/dist/store/rule-sql.d.ts +6 -4
- package/dist/store/rule-sql.js +16 -9
- package/dist/store/search-rows.d.ts +14 -9
- package/dist/store/search-rows.js +48 -23
- 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 +9 -4
- 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 +6 -3
- 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 +7 -1
- package/dist/store/sqlite/held-connection.js +34 -7
- package/dist/store/sqlite/last-recall-group.d.ts +4 -2
- package/dist/store/sqlite/last-recall-group.js +9 -4
- 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.js +2 -1
- 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 +84 -33
- 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 -11
- package/dist/store/sqlite/store.js +84 -11
- 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 +19 -12
- package/dist/store/summaries.js +36 -21
- 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 +6 -3
- 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 +24 -10
- 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 +4 -1
- package/dist/util/anthropic-messages.js +14 -5
- package/dist/util/atomic-write.d.ts +4 -2
- package/dist/util/atomic-write.js +25 -14
- 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 +16 -4
- package/dist/util/env.js +78 -25
- 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 +11 -3
- package/dist/util/request-scope.js +13 -4
- 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 +3 -1
- package/dist/util/spawn-argv.js +13 -4
- 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/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 +2 -1
- package/scripts/postinstall.cjs +3 -1
- 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 -8
- package/dist/api/learn.js +0 -125
- package/dist/api/memories.d.ts +0 -25
- package/dist/api/objects.d.ts +0 -9
- package/dist/api/outcome.d.ts +0 -19
- package/dist/api/predictions.d.ts +0 -11
- package/dist/api/promote.d.ts +0 -36
- package/dist/api/recall-core.d.ts +0 -4
- package/dist/api/recall-core.js +0 -125
- 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 -11
- 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 -4
- package/dist/store/sqlite/local.js +0 -8
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BriefReceipt, Incident, ObjectByKind, ObjectKind, Policy, SavableKind, Skill } from '../../core/object-types.js';
|
|
2
2
|
import { type IncidentOpen, type IncidentOpenRefusal, type IncidentResolve, type ObjectClose, type ObjectListQuery, type ObjectRefusal, type Objects, type ObjectSave, type PoliciesInForceQuery } from '../port.js';
|
|
3
|
-
/** The group with each answer as its value; spelled out because
|
|
3
|
+
/** The group with each answer as its value; spelled out because
|
|
4
|
+
* `Sync<Objects>` would widen each method's kind to every kind. */
|
|
4
5
|
export interface SyncObjects {
|
|
5
6
|
listObjects<K extends ObjectKind>(tenantId: string, kind: K, query: ObjectListQuery<K>): ObjectByKind[K][];
|
|
6
7
|
objectById<K extends ObjectKind>(tenantId: string, kind: K, id: number): ObjectByKind[K] | null;
|
|
@@ -11,10 +12,10 @@ export interface SyncObjects {
|
|
|
11
12
|
policiesInForce(tenantId: string, query: PoliciesInForceQuery): Policy[];
|
|
12
13
|
activeSkillsByName(tenantId: string, limit: number): Skill[];
|
|
13
14
|
briefReceipts(tenantId: string, tag: string, limit: number): BriefReceipt[];
|
|
15
|
+
objectIdByMemory<K extends ObjectKind>(tenantId: string, kind: K, status: ObjectByKind[K]['status'], memoryId: string): number | null;
|
|
14
16
|
}
|
|
15
17
|
export declare function sqliteObjects(hippoRoot: string): SyncObjects;
|
|
16
|
-
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
18
|
+
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
19
|
+
* another store's would. */
|
|
17
20
|
export declare function servedObjects(sync: SyncObjects): Objects;
|
|
18
|
-
/** The newest object in `status` that a memory mirrors, for the CLI flags that name an object by its memory id. */
|
|
19
|
-
export declare function objectIdByMemory<K extends ObjectKind>(hippoRoot: string, tenantId: string, kind: K, status: ObjectByKind[K]['status'], memoryId: string): number | null;
|
|
20
21
|
//# sourceMappingURL=objects-group.d.ts.map
|
|
@@ -4,13 +4,13 @@ import { getMeta, withWriteScopeOr } from '../../db/index.js';
|
|
|
4
4
|
import { escapeLike } from '../../util/escape.js';
|
|
5
5
|
import { keysetAfter } from '../../util/keyset.js';
|
|
6
6
|
import { chunked } from '../../util/chunked.js';
|
|
7
|
-
import { calculateStrength, deriveHalfLife } from '../../core/memory.js';
|
|
7
|
+
import { calculateStrength, deriveHalfLife, LEGACY_TYPED_HALF_LIFE } from '../../core/memory.js';
|
|
8
8
|
import { scopeAdmitSql } from '../rule-sql.js';
|
|
9
9
|
import { stampOriginProject, upsertEntryRow } from '../entry-row.js';
|
|
10
10
|
import { auditEntryWrite, writeEntryMirrors } from '../entry-writes.js';
|
|
11
11
|
import { markGraphDirty } from '../graph-queue.js';
|
|
12
12
|
import { removeGraphEntitiesForObject } from '../graph-writes.js';
|
|
13
|
-
import {
|
|
13
|
+
import { onHandle, openStore, TYPED_HALF_LIFE_META_KEY } from '../open.js';
|
|
14
14
|
import { isObjectRefusal, } from '../port.js';
|
|
15
15
|
import { auditingRefusal } from './entry-writes-group.js';
|
|
16
16
|
import { insertSpec, rowSpec } from './object-rows.js';
|
|
@@ -29,9 +29,11 @@ export function sqliteObjects(hippoRoot) {
|
|
|
29
29
|
policiesInForce: (tenantId, query) => onHandle(hippoRoot, (db) => policiesInForce(db, tenantId, query)),
|
|
30
30
|
activeSkillsByName: (tenantId, limit) => onHandle(hippoRoot, (db) => activeSkillsByName(db, tenantId, limit)),
|
|
31
31
|
briefReceipts: (tenantId, tag, limit) => onHandle(hippoRoot, (db) => briefReceipts(db, tenantId, tag, limit)),
|
|
32
|
+
objectIdByMemory: (tenantId, kind, status, memoryId) => onHandle(hippoRoot, (db) => idByMemory(db, tenantId, kind, status, memoryId)),
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
|
-
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
35
|
+
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
36
|
+
* another store's would. */
|
|
35
37
|
export function servedObjects(sync) {
|
|
36
38
|
return {
|
|
37
39
|
listObjects: async (tenantId, kind, query) => sync.listObjects(tenantId, kind, query),
|
|
@@ -43,18 +45,22 @@ export function servedObjects(sync) {
|
|
|
43
45
|
policiesInForce: async (tenantId, query) => sync.policiesInForce(tenantId, query),
|
|
44
46
|
activeSkillsByName: async (tenantId, limit) => sync.activeSkillsByName(tenantId, limit),
|
|
45
47
|
briefReceipts: async (tenantId, tag, limit) => sync.briefReceipts(tenantId, tag, limit),
|
|
48
|
+
objectIdByMemory: async (tenantId, kind, status, memoryId) => sync.objectIdByMemory(tenantId, kind, status, memoryId),
|
|
46
49
|
};
|
|
47
50
|
}
|
|
48
51
|
/** The newest object in `status` that a memory mirrors, for the CLI flags that name an object by its memory id. */
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
function idByMemory(db, tenantId, kind, status, memoryId) {
|
|
53
|
+
const row = db
|
|
54
|
+
.prepare(`SELECT id FROM ${rowSpec(kind).table} WHERE memory_id = ? AND tenant_id = ? AND status = ? ORDER BY id DESC ` +
|
|
55
|
+
`LIMIT 1`)
|
|
56
|
+
.get(memoryId, tenantId, status);
|
|
57
|
+
return row ? row.id : null;
|
|
54
58
|
}
|
|
55
59
|
function selectRow(db, kind, tenantId, id) {
|
|
56
60
|
const spec = rowSpec(kind);
|
|
57
|
-
return db
|
|
61
|
+
return db
|
|
62
|
+
.prepare(`SELECT ${spec.cols} FROM ${spec.table} WHERE id = ? AND tenant_id = ?`)
|
|
63
|
+
.get(id, tenantId);
|
|
58
64
|
}
|
|
59
65
|
function listRows(db, tenantId, kind, query) {
|
|
60
66
|
const spec = rowSpec(kind);
|
|
@@ -70,12 +76,14 @@ function listRows(db, tenantId, kind, query) {
|
|
|
70
76
|
}
|
|
71
77
|
const after = keysetAfter('created_at', 'id', query.after);
|
|
72
78
|
// SAFETY: the SELECT names spec.cols, the columns the kind's row declares, whatever the WHERE clause holds.
|
|
73
|
-
const rows = db
|
|
79
|
+
const rows = db
|
|
80
|
+
.prepare(`
|
|
74
81
|
SELECT ${spec.cols} FROM ${spec.table}
|
|
75
82
|
WHERE ${clauses.join(' AND ')}${after.sql}
|
|
76
83
|
ORDER BY created_at DESC, id DESC
|
|
77
84
|
LIMIT ?
|
|
78
|
-
`)
|
|
85
|
+
`)
|
|
86
|
+
.all(...params, ...after.params, query.limit);
|
|
79
87
|
return rows.map((row) => spec.rowTo(row));
|
|
80
88
|
}
|
|
81
89
|
/** The status guard sits in the UPDATE, so zero rows changed means missing or not closable; the reread tells which. */
|
|
@@ -83,16 +91,26 @@ function closeRow(db, tenantId, kind, id, close) {
|
|
|
83
91
|
const spec = rowSpec(kind);
|
|
84
92
|
return withWriteScopeOr(db, 'close_object', (rollback) => {
|
|
85
93
|
const marks = placeholders(close.from.length);
|
|
86
|
-
const updated = db
|
|
94
|
+
const updated = db
|
|
95
|
+
.prepare(`UPDATE ${spec.table} SET status = 'closed', closed_at = ? WHERE id = ? AND tenant_id = ? AND status IN ` +
|
|
96
|
+
`(${marks})`)
|
|
97
|
+
.run(close.at, id, tenantId, ...close.from);
|
|
87
98
|
if (updated.changes === 0) {
|
|
88
|
-
const existing = db
|
|
99
|
+
const existing = db
|
|
100
|
+
.prepare(`SELECT status FROM ${spec.table} WHERE id = ? AND tenant_id = ?`)
|
|
89
101
|
.get(id, tenantId);
|
|
90
102
|
return rollback(existing ? { refused: 'status', status: existing.status } : { refused: 'missing' });
|
|
91
103
|
}
|
|
92
104
|
const row = selectRow(db, kind, tenantId, id);
|
|
93
105
|
if (!row)
|
|
94
106
|
return rollback({ refused: 'vanished' });
|
|
95
|
-
appendAuditEvent(db, {
|
|
107
|
+
appendAuditEvent(db, {
|
|
108
|
+
tenantId,
|
|
109
|
+
actor: close.actor,
|
|
110
|
+
op: spec.closeOp,
|
|
111
|
+
targetId: String(id),
|
|
112
|
+
metadata: { [spec.idKey]: id },
|
|
113
|
+
});
|
|
96
114
|
return spec.rowTo(row);
|
|
97
115
|
});
|
|
98
116
|
}
|
|
@@ -111,7 +129,10 @@ function closeAt(hippoRoot, tenantId, kind, id, close) {
|
|
|
111
129
|
}
|
|
112
130
|
/** Runs before the INSERT, so the new row's id can never be the id it replaces. */
|
|
113
131
|
function successorVersion(db, tenantId, kind, replaced) {
|
|
114
|
-
const pred = db
|
|
132
|
+
const pred = db
|
|
133
|
+
.prepare(`SELECT status, ${insertSpec(kind).versioned ? 'version' : '0 AS version'} FROM ${rowSpec(kind).table} WHERE ` +
|
|
134
|
+
`id = ? AND tenant_id = ?`)
|
|
135
|
+
.get(replaced, tenantId);
|
|
115
136
|
if (!pred)
|
|
116
137
|
return { refused: 'missing' };
|
|
117
138
|
if (pred.status !== 'active')
|
|
@@ -126,21 +147,27 @@ function insertRow(db, row) {
|
|
|
126
147
|
cols.push('version', 'change_summary');
|
|
127
148
|
values.push(row.version, row.save.supersedesId === undefined ? null : row.save.changeSummary ?? null);
|
|
128
149
|
}
|
|
129
|
-
const result = db
|
|
130
|
-
|
|
150
|
+
const result = db
|
|
151
|
+
.prepare(`
|
|
152
|
+
INSERT INTO ${rowSpec(row.kind).table}(${cols.join(', ')}, status, superseded_by, superseded_at, closed_at,
|
|
153
|
+
created_at)
|
|
131
154
|
VALUES (${placeholders(cols.length)}, 'active', NULL, NULL, NULL, ?)
|
|
132
|
-
`)
|
|
155
|
+
`)
|
|
156
|
+
.run(...values, row.save.at);
|
|
133
157
|
return Number(result.lastInsertRowid ?? 0);
|
|
134
158
|
}
|
|
135
|
-
/** The status guard sits in the UPDATE, so a row another writer
|
|
159
|
+
/** The status guard sits in the UPDATE, so a row another writer
|
|
160
|
+
* retired since the preflight fails the whole save; false says so. */
|
|
136
161
|
function supersedeRow(db, row, replaced, id) {
|
|
137
162
|
const spec = rowSpec(row.kind);
|
|
138
163
|
const insert = insertSpec(row.kind);
|
|
139
|
-
const updated = db
|
|
164
|
+
const updated = db
|
|
165
|
+
.prepare(`
|
|
140
166
|
UPDATE ${spec.table}
|
|
141
167
|
SET status = 'superseded', superseded_by = ?, superseded_at = ?
|
|
142
168
|
WHERE id = ? AND tenant_id = ? AND status = 'active' AND id != ?
|
|
143
|
-
`)
|
|
169
|
+
`)
|
|
170
|
+
.run(id, row.save.at, replaced, row.tenantId, id);
|
|
144
171
|
if (updated.changes === 0)
|
|
145
172
|
return false;
|
|
146
173
|
const own = insert.versioned
|
|
@@ -155,7 +182,8 @@ function supersedeRow(db, row, replaced, id) {
|
|
|
155
182
|
});
|
|
156
183
|
return true;
|
|
157
184
|
}
|
|
158
|
-
/** The object half of a save, inside the scope that holds the mirror memory: a refusal or a throw here leaves no row,
|
|
185
|
+
/** The object half of a save, inside the scope that holds the mirror memory: a refusal or a throw here leaves no row,
|
|
186
|
+
* memory or audit event. */
|
|
159
187
|
function writeObjectRow(db, tenantId, kind, memoryId, save) {
|
|
160
188
|
const replaced = save.supersedesId;
|
|
161
189
|
const next = replaced === undefined ? { version: 1 } : successorVersion(db, tenantId, kind, replaced);
|
|
@@ -188,7 +216,8 @@ function onStoreHalfLife(db, mirror) {
|
|
|
188
216
|
const legacy = { ...mirror, half_life_days: deriveHalfLife(LEGACY_TYPED_HALF_LIFE, mirror) };
|
|
189
217
|
return { ...legacy, strength: calculateStrength(legacy) };
|
|
190
218
|
}
|
|
191
|
-
/** One write scope on one handle holds the mirror, the row `writeRow` adds, the successor link and every audit row, the
|
|
219
|
+
/** One write scope on one handle holds the mirror, the row `writeRow` adds, the successor link and every audit row, the
|
|
220
|
+
* mirror's remember row last. */
|
|
192
221
|
function withMirror(hippoRoot, write, writeRow) {
|
|
193
222
|
return onHandle(hippoRoot, (db) => auditingRefusal(db, write.actor, () => {
|
|
194
223
|
let mirror = stampOriginProject(hippoRoot, write.mirror);
|
|
@@ -212,7 +241,11 @@ function withMirror(hippoRoot, write, writeRow) {
|
|
|
212
241
|
}
|
|
213
242
|
function saveAt(hippoRoot, tenantId, kind, save) {
|
|
214
243
|
const spec = rowSpec(kind);
|
|
215
|
-
const write = {
|
|
244
|
+
const write = {
|
|
245
|
+
mirror: save.mirror,
|
|
246
|
+
actor: save.actor,
|
|
247
|
+
graphTenant: spec.graphType ? tenantId : undefined,
|
|
248
|
+
};
|
|
216
249
|
const written = withMirror(hippoRoot, write, (db, memoryId) => writeObjectRow(db, tenantId, kind, memoryId, save));
|
|
217
250
|
return isObjectRefusal(written) ? written : spec.rowTo(written);
|
|
218
251
|
}
|
|
@@ -223,19 +256,23 @@ function openIncidentRow(db, tenantId, memoryId, open) {
|
|
|
223
256
|
for (const ids of chunked(linkedMemoryIds)) {
|
|
224
257
|
const marks = placeholders(ids.length);
|
|
225
258
|
// SAFETY: rows' shape matches the one column named in the SELECT.
|
|
226
|
-
const found = db
|
|
259
|
+
const found = db
|
|
260
|
+
.prepare(`SELECT id FROM memories WHERE tenant_id = ? AND id IN (${marks})`)
|
|
261
|
+
.all(tenantId, ...ids);
|
|
227
262
|
for (const r of found)
|
|
228
263
|
held.add(r.id);
|
|
229
264
|
}
|
|
230
265
|
const missing = linkedMemoryIds.find((linkId) => !held.has(linkId));
|
|
231
266
|
if (missing !== undefined)
|
|
232
267
|
return { refused: 'unlinked', memoryId: missing };
|
|
233
|
-
const result = db
|
|
268
|
+
const result = db
|
|
269
|
+
.prepare(`
|
|
234
270
|
INSERT INTO incidents(
|
|
235
271
|
memory_id, tenant_id, incident_text, context,
|
|
236
272
|
status, resolution_text, resolved_at, closed_at, linked_memory_ids, created_at
|
|
237
273
|
) VALUES (?, ?, ?, ?, 'open', NULL, NULL, NULL, ?, ?)
|
|
238
|
-
`)
|
|
274
|
+
`)
|
|
275
|
+
.run(memoryId, tenantId, incidentText, context ?? null, JSON.stringify(linkedMemoryIds), open.at);
|
|
239
276
|
const id = Number(result.lastInsertRowid ?? 0);
|
|
240
277
|
const row = selectRow(db, 'incident', tenantId, id);
|
|
241
278
|
if (!row)
|
|
@@ -245,7 +282,11 @@ function openIncidentRow(db, tenantId, memoryId, open) {
|
|
|
245
282
|
actor: open.actor,
|
|
246
283
|
op: 'incident_open',
|
|
247
284
|
targetId: String(id),
|
|
248
|
-
metadata: {
|
|
285
|
+
metadata: {
|
|
286
|
+
incident_id: id,
|
|
287
|
+
has_context: context !== undefined && context !== '',
|
|
288
|
+
linked_memory_count: linkedMemoryIds.length,
|
|
289
|
+
},
|
|
249
290
|
});
|
|
250
291
|
return row;
|
|
251
292
|
}
|
|
@@ -257,24 +298,34 @@ function openIncidentAt(hippoRoot, tenantId, open) {
|
|
|
257
298
|
/** The status guard sits in the UPDATE, so zero rows changed means missing or not open; the reread tells which. */
|
|
258
299
|
function resolveRow(db, tenantId, id, resolve) {
|
|
259
300
|
return withWriteScopeOr(db, 'resolve_incident', (rollback) => {
|
|
260
|
-
const updated = db
|
|
301
|
+
const updated = db
|
|
302
|
+
.prepare(`
|
|
261
303
|
UPDATE incidents
|
|
262
304
|
SET status = 'resolved', resolution_text = ?, resolved_at = ?
|
|
263
305
|
WHERE id = ? AND tenant_id = ? AND status = 'open'
|
|
264
|
-
`)
|
|
306
|
+
`)
|
|
307
|
+
.run(resolve.text, resolve.at, id, tenantId);
|
|
265
308
|
if (updated.changes === 0) {
|
|
266
|
-
const existing = db
|
|
309
|
+
const existing = db
|
|
310
|
+
.prepare(`SELECT status FROM incidents WHERE id = ? AND tenant_id = ?`)
|
|
267
311
|
.get(id, tenantId);
|
|
268
312
|
return rollback(existing ? { refused: 'status', status: existing.status } : { refused: 'missing' });
|
|
269
313
|
}
|
|
270
314
|
const row = selectRow(db, 'incident', tenantId, id);
|
|
271
315
|
if (!row)
|
|
272
316
|
return rollback({ refused: 'vanished' });
|
|
273
|
-
appendAuditEvent(db, {
|
|
317
|
+
appendAuditEvent(db, {
|
|
318
|
+
tenantId,
|
|
319
|
+
actor: resolve.actor,
|
|
320
|
+
op: 'incident_resolve',
|
|
321
|
+
targetId: String(id),
|
|
322
|
+
metadata: { incident_id: id },
|
|
323
|
+
});
|
|
274
324
|
return rowSpec('incident').rowTo(row);
|
|
275
325
|
});
|
|
276
326
|
}
|
|
277
|
-
/** The successor is joined in so a superseded version is kept
|
|
327
|
+
/** The successor is joined in so a superseded version is kept
|
|
328
|
+
* only while the row that replaced it is not yet in force. */
|
|
278
329
|
function policiesInForce(db, tenantId, query) {
|
|
279
330
|
const { asOf, name } = query;
|
|
280
331
|
const nameClause = name !== undefined ? 'AND p.policy_name = ?' : '';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Predictions, Sync } from '../port.js';
|
|
2
2
|
export declare function sqlitePredictions(hippoRoot: string): Sync<Predictions>;
|
|
3
|
-
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
3
|
+
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
4
|
+
* another store's would. */
|
|
4
5
|
export declare function servedPredictions(sync: Sync<Predictions>): Predictions;
|
|
5
6
|
//# sourceMappingURL=predictions-group.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// hippo.db's half of the Predictions store group: each method is one call into the queries the CLI and the MCP tools
|
|
1
|
+
// hippo.db's half of the Predictions store group: each method is one call into the queries the CLI and the MCP tools
|
|
2
|
+
// run.
|
|
2
3
|
import { closePrediction, computePredictionBaserate, loadAllPredictions, loadOpenPredictions, loadPredictionById, loadPredictionsByClass, writePrediction, } from '../predictions.js';
|
|
3
4
|
export function sqlitePredictions(hippoRoot) {
|
|
4
5
|
return {
|
|
@@ -15,7 +16,8 @@ export function sqlitePredictions(hippoRoot) {
|
|
|
15
16
|
predictionBaserate: (tenantId, classTag, actor) => computePredictionBaserate(hippoRoot, tenantId, classTag, actor),
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
|
-
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
19
|
+
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
20
|
+
* another store's would. */
|
|
19
21
|
export function servedPredictions(sync) {
|
|
20
22
|
return {
|
|
21
23
|
savePrediction: async (tenantId, input, actor) => sync.savePrediction(tenantId, input, actor),
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// The built-in store's promotion: the two existing functions, bound to this hippo root.
|
|
2
|
+
import { copyToGlobal } from './global-promote.js';
|
|
3
|
+
import { memoryReach } from '../tenant-lookup.js';
|
|
4
|
+
export function sqlitePromotion(hippoRoot) {
|
|
5
|
+
return {
|
|
6
|
+
reach: (id) => memoryReach(hippoRoot, id),
|
|
7
|
+
copyToGlobal: (id, opts) => copyToGlobal(hippoRoot, id, opts),
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=promotion-group.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Quarantine, Sync } from '../port.js';
|
|
2
2
|
export declare function sqliteQuarantine(hippoRoot: string): Sync<Quarantine>;
|
|
3
|
-
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
3
|
+
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
4
|
+
* another store's would. */
|
|
4
5
|
export declare function servedQuarantine(sync: Sync<Quarantine>): Quarantine;
|
|
5
6
|
//# sourceMappingURL=quarantine-group.d.ts.map
|
|
@@ -4,7 +4,8 @@ import { readEntry } from '../entry-reads.js';
|
|
|
4
4
|
import { writeEntryMirrors } from '../entry-writes.js';
|
|
5
5
|
import { onHandle } from '../open.js';
|
|
6
6
|
import { approveQuarantinedAt, listQuarantinedAt, rejectQuarantinedAt } from '../quarantine.js';
|
|
7
|
-
/** After the commit, best effort: a failed rewrite leaves the markdown mirror showing the quarantine scope, which still
|
|
7
|
+
/** After the commit, best effort: a failed rewrite leaves the markdown mirror showing the quarantine scope, which still
|
|
8
|
+
* hides the memory. */
|
|
8
9
|
function rewriteMirror(hippoRoot, tenantId, id) {
|
|
9
10
|
try {
|
|
10
11
|
const restored = readEntry(hippoRoot, id, tenantId);
|
|
@@ -27,7 +28,8 @@ export function sqliteQuarantine(hippoRoot) {
|
|
|
27
28
|
rejectQuarantined: (tenantId, id, actor) => onHandle(hippoRoot, (db) => rejectQuarantinedAt(db, tenantId, id, actor)),
|
|
28
29
|
};
|
|
29
30
|
}
|
|
30
|
-
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
31
|
+
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
32
|
+
* another store's would. */
|
|
31
33
|
export function servedQuarantine(sync) {
|
|
32
34
|
return {
|
|
33
35
|
listQuarantined: async (tenantId, query) => sync.listQuarantined(tenantId, query),
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Reports } from '../port-groups.js';
|
|
2
|
+
import type { Sync } from '../port.js';
|
|
3
|
+
export declare function sqliteReports(hippoRoot: string): Sync<Reports>;
|
|
4
|
+
/** The group as a served store answers it: a throw rejects as another store's would. */
|
|
5
|
+
export declare function servedReports(sync: Sync<Reports>): Reports;
|
|
6
|
+
//# sourceMappingURL=reports-group.d.ts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// hippo.db's Reports group: the tenant reports and listings the status verbs print.
|
|
2
|
+
import { withReadSnapshot } from '../../db/index.js';
|
|
3
|
+
import { strengthTalliesAt } from '../candidates.js';
|
|
4
|
+
import { countOpenConflictsAt } from '../conflicts.js';
|
|
5
|
+
import { countAllEntries, loadEntriesPage } from '../entry-reads.js';
|
|
6
|
+
import { onHandle, openStore } from '../open.js';
|
|
7
|
+
import { failureLogSummary, tokenUseSummary } from '../usage-reports.js';
|
|
8
|
+
export function sqliteReports(hippoRoot) {
|
|
9
|
+
return {
|
|
10
|
+
tokenUse: (tenantId, sinceIso) => tokenUseSummary(hippoRoot, tenantId, sinceIso),
|
|
11
|
+
failures: (tenantId, sinceIso) => failureLogSummary(hippoRoot, tenantId, sinceIso),
|
|
12
|
+
memoryStatus(tenantId, now, atRiskBelow) {
|
|
13
|
+
// One snapshot, so the tallies and the conflict count never straddle another process's write.
|
|
14
|
+
return onHandle(hippoRoot, (db) => withReadSnapshot(db, () => ({
|
|
15
|
+
...strengthTalliesAt(db, tenantId, now, atRiskBelow),
|
|
16
|
+
openConflicts: countOpenConflictsAt(db, tenantId),
|
|
17
|
+
})), openStore);
|
|
18
|
+
},
|
|
19
|
+
entriesPage: (tenantId, page) => loadEntriesPage(hippoRoot, tenantId ?? undefined, page),
|
|
20
|
+
countEntries: () => countAllEntries(hippoRoot),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/** The group as a served store answers it: a throw rejects as another store's would. */
|
|
24
|
+
export function servedReports(sync) {
|
|
25
|
+
return {
|
|
26
|
+
tokenUse: async (tenantId, sinceIso) => sync.tokenUse(tenantId, sinceIso),
|
|
27
|
+
failures: async (tenantId, sinceIso) => sync.failures(tenantId, sinceIso),
|
|
28
|
+
memoryStatus: async (tenantId, now, atRiskBelow) => sync.memoryStatus(tenantId, now, atRiskBelow),
|
|
29
|
+
entriesPage: async (tenantId, page) => sync.entriesPage(tenantId, page),
|
|
30
|
+
countEntries: async () => sync.countEntries(),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=reports-group.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type RequestPreset = 'cli' | 'hook' | 'server';
|
|
2
|
+
/** Runs `fn` with one store handle per store, closed with it, at the root's lock wait. */
|
|
3
|
+
export declare function runSqliteRequest<T>(fn: () => T | Promise<T>, preset: RequestPreset): Promise<T>;
|
|
4
|
+
/** A scope of its own: the caller closes a handle the work holds across its pauses; the lock wait carries over. */
|
|
5
|
+
export declare function runDetachedSqliteRequest<T>(fn: () => T | Promise<T>): Promise<T>;
|
|
6
|
+
//# sourceMappingURL=request-scope.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// The request-scope plumbing the composition roots (cli, server, stdio MCP) run their requests in.
|
|
2
|
+
import { HOOK_DB_WAIT_MS, outsideRequestStores, runWithRequestStores, scopedBusyWait, SERVER_DB_WAIT_MS, } from '../../db/index.js';
|
|
3
|
+
/** Lock wait per root; a hook also skips later writes once one wait runs out, so it never stalls its host. */
|
|
4
|
+
const PRESETS = {
|
|
5
|
+
cli: {},
|
|
6
|
+
hook: { busyWaitMs: HOOK_DB_WAIT_MS, failFastWhenBusy: true },
|
|
7
|
+
server: { busyWaitMs: SERVER_DB_WAIT_MS },
|
|
8
|
+
};
|
|
9
|
+
/** Runs `fn` with one store handle per store, closed with it, at the root's lock wait. */
|
|
10
|
+
export function runSqliteRequest(fn, preset) {
|
|
11
|
+
return runWithRequestStores(fn, PRESETS[preset]);
|
|
12
|
+
}
|
|
13
|
+
/** A scope of its own: the caller closes a handle the work holds across its pauses; the lock wait carries over. */
|
|
14
|
+
export function runDetachedSqliteRequest(fn) {
|
|
15
|
+
const busyWaitMs = scopedBusyWait();
|
|
16
|
+
return outsideRequestStores(() => runWithRequestStores(fn, { busyWaitMs }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=request-scope.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Sessions } from '../port-groups.js';
|
|
2
|
+
import type { Sync } from '../port.js';
|
|
3
|
+
export declare function sqliteSessions(hippoRoot: string): Sync<Sessions>;
|
|
4
|
+
/** The group as a served store answers it: a throw rejects as another store's would. */
|
|
5
|
+
export declare function servedSessions(sync: Sync<Sessions>): Sessions;
|
|
6
|
+
//# sourceMappingURL=sessions-group.d.ts.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// hippo.db's Sessions group: snapshots, session events, handoffs, working memory and session-owner binding.
|
|
2
|
+
import { loadHandoffById, loadLatestHandoff, saveSessionHandoff, stampHandoffOutcome, writeSessionEndHandoff, } from '../handoffs.js';
|
|
3
|
+
import { appendSessionEvent, clearActiveTaskSnapshot, closeTaskSnapshotsForSession, listSessionEvents, loadActiveTaskSnapshot, loadFreshActiveTaskSnapshot, saveActiveTaskSnapshot, sessionOwnerOrBind, } from '../sessions.js';
|
|
4
|
+
import { wmClear, wmPush, wmRead } from '../working-memory.js';
|
|
5
|
+
export function sqliteSessions(hippoRoot) {
|
|
6
|
+
return {
|
|
7
|
+
saveSnapshot: (tenantId, snapshot, key) => saveActiveTaskSnapshot(hippoRoot, tenantId, snapshot, key ?? undefined),
|
|
8
|
+
loadSnapshot: (tenantId, key) => loadActiveTaskSnapshot(hippoRoot, tenantId, key ?? undefined),
|
|
9
|
+
loadFreshSnapshot: (tenantId, opts, key) => loadFreshActiveTaskSnapshot(hippoRoot, tenantId, opts, key ?? undefined),
|
|
10
|
+
clearSnapshot: (tenantId, clearedStatus) => clearActiveTaskSnapshot(hippoRoot, tenantId, clearedStatus),
|
|
11
|
+
closeSessionSnapshots: (tenantId, sessionId, status, key) => closeTaskSnapshotsForSession(hippoRoot, tenantId, sessionId, status, key ?? undefined),
|
|
12
|
+
appendEvent: (tenantId, event) => appendSessionEvent(hippoRoot, tenantId, event),
|
|
13
|
+
listEvents: (tenantId, { sessionId, task, limit }) => listSessionEvents(hippoRoot, tenantId, { session_id: sessionId, task, limit }),
|
|
14
|
+
saveHandoff: (tenantId, handoff, key) => saveSessionHandoff(hippoRoot, tenantId, handoff, key ?? undefined),
|
|
15
|
+
latestHandoff: (tenantId, sessionId, filter, key) => loadLatestHandoff(hippoRoot, tenantId, sessionId ?? undefined, filter, key ?? undefined),
|
|
16
|
+
handoffById: (tenantId, id) => loadHandoffById(hippoRoot, tenantId, id),
|
|
17
|
+
stampHandoffOutcome: (tenantId, sessionId, outcome) => stampHandoffOutcome(hippoRoot, tenantId, sessionId, outcome),
|
|
18
|
+
writeSessionEndHandoff: (tenantId, request) => writeSessionEndHandoff(hippoRoot, { ...request, tenantId }),
|
|
19
|
+
pushWorkingMemory: (tenantId, item) => wmPush(hippoRoot, { ...item, tenantId }),
|
|
20
|
+
readWorkingMemory: (tenantId, filter) => wmRead(hippoRoot, { ...filter, tenantId }),
|
|
21
|
+
clearWorkingMemory: (tenantId, filter) => wmClear(hippoRoot, { ...filter, tenantId }),
|
|
22
|
+
bindSessionOwner: (tenantId, sessionId, owner, retentionMs) => sessionOwnerOrBind(hippoRoot, { tenantId, sessionId, owner, retentionMs }),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** The group as a served store answers it: a throw rejects as another store's would. */
|
|
26
|
+
export function servedSessions(sync) {
|
|
27
|
+
return {
|
|
28
|
+
saveSnapshot: async (tenantId, snapshot, key) => sync.saveSnapshot(tenantId, snapshot, key),
|
|
29
|
+
loadSnapshot: async (tenantId, key) => sync.loadSnapshot(tenantId, key),
|
|
30
|
+
loadFreshSnapshot: async (tenantId, opts, key) => sync.loadFreshSnapshot(tenantId, opts, key),
|
|
31
|
+
clearSnapshot: async (tenantId, clearedStatus) => sync.clearSnapshot(tenantId, clearedStatus),
|
|
32
|
+
closeSessionSnapshots: async (tenantId, sessionId, status, key) => sync.closeSessionSnapshots(tenantId, sessionId, status, key),
|
|
33
|
+
appendEvent: async (tenantId, event) => sync.appendEvent(tenantId, event),
|
|
34
|
+
listEvents: async (tenantId, opts) => sync.listEvents(tenantId, opts),
|
|
35
|
+
saveHandoff: async (tenantId, handoff, key) => sync.saveHandoff(tenantId, handoff, key),
|
|
36
|
+
latestHandoff: async (tenantId, sessionId, filter, key) => sync.latestHandoff(tenantId, sessionId, filter, key),
|
|
37
|
+
handoffById: async (tenantId, id) => sync.handoffById(tenantId, id),
|
|
38
|
+
stampHandoffOutcome: async (tenantId, sessionId, outcome) => sync.stampHandoffOutcome(tenantId, sessionId, outcome),
|
|
39
|
+
writeSessionEndHandoff: async (tenantId, request) => sync.writeSessionEndHandoff(tenantId, request),
|
|
40
|
+
pushWorkingMemory: async (tenantId, item) => sync.pushWorkingMemory(tenantId, item),
|
|
41
|
+
readWorkingMemory: async (tenantId, filter) => sync.readWorkingMemory(tenantId, filter),
|
|
42
|
+
clearWorkingMemory: async (tenantId, filter) => sync.clearWorkingMemory(tenantId, filter),
|
|
43
|
+
bindSessionOwner: async (tenantId, sessionId, owner, retentionMs) => sync.bindSessionOwner(tenantId, sessionId, owner, retentionMs),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=sessions-group.js.map
|
|
@@ -1,16 +1,27 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { type StoreWith } from '../narrow.js';
|
|
2
|
+
import { type HippoStore, type StoreGroup, type StoreGroups, type StoreReach, type Sync } from '../port.js';
|
|
3
|
+
/** `ctx` with its store filled (the one it carries, else hippo.db under its root) and its groups proven,
|
|
4
|
+
* so a public entry given a store without them still answers 501. */
|
|
5
|
+
export declare function withStoreGroups<C extends {
|
|
4
6
|
readonly hippoRoot: string;
|
|
5
7
|
readonly store?: HippoStore;
|
|
6
|
-
}):
|
|
7
|
-
|
|
8
|
+
}, G extends StoreGroup>(ctx: C, ...groups: readonly [G, ...G[]]): C & {
|
|
9
|
+
readonly store: StoreWith<G>;
|
|
10
|
+
};
|
|
11
|
+
/** Not on the synchronous store: the nearest-row scan yields to
|
|
12
|
+
* the event loop, so this group answers only through Promises. */
|
|
8
13
|
type AsyncOnly = 'vectors';
|
|
9
|
-
/** The port as hippo.db answers it: each call runs to its end
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
/** The port as hippo.db answers it: each call runs to its end
|
|
15
|
+
* and returns the value, so no write scope spans an await. */
|
|
16
|
+
export type SqliteSyncStore = Sync<Omit<HippoStore, AsyncOnly | 'localFiles'>> & Pick<HippoStore, 'localFiles'>;
|
|
17
|
+
/** The built-in store: hippo.db under the port's own method names, each call on its own short-lived handles, so close
|
|
18
|
+
* has nothing to release. */
|
|
19
|
+
export declare function sqliteSyncStore(hippoRoot: string): SqliteSyncStore & Sync<Omit<StoreGroups, AsyncOnly | 'localFiles'>> & Pick<StoreGroups, 'localFiles'>;
|
|
20
|
+
/** The composition roots reach the request scope through the adapter's one entry. */
|
|
21
|
+
export { runDetachedSqliteRequest, runSqliteRequest } from './request-scope.js';
|
|
22
|
+
/** What a call on `store` reaches, probed as the api's own context plan did (`shared` is the transport's flag). */
|
|
23
|
+
export declare function sqliteReach(hippoRoot: string, store: HippoStore, shared?: boolean): StoreReach;
|
|
24
|
+
/** `sqliteSyncStore` as a served store: each method runs at once and answers through a Promise, so a throw rejects as
|
|
25
|
+
* another store's would. */
|
|
14
26
|
export declare function sqliteStore(hippoRoot: string): HippoStore & StoreGroups;
|
|
15
|
-
export {};
|
|
16
27
|
//# sourceMappingURL=store.d.ts.map
|