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
package/dist/store/set-aside.js
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
// Takes an imported agent note out of recall on the caller's transaction; the note sync and the project repair both use
|
|
1
|
+
// Takes an imported agent note out of recall on the caller's transaction; the note sync and the project repair both use
|
|
2
|
+
// it.
|
|
2
3
|
import { appendAuditEvent } from './audit.js';
|
|
4
|
+
import { SYNC_ACTOR } from '../core/agent-memory-tools.js';
|
|
3
5
|
import { insertDormantRow } from './dormant.js';
|
|
4
6
|
import { calculateStrength } from '../core/memory.js';
|
|
5
7
|
import { deleteEntryRowInTx, setEntryTagsInTx } from './entry-writes.js';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
/** Design 6's set-aside on the caller's transaction: a pinned row only loses the tag, any other goes dormant,
|
|
9
|
+
* restorable. */
|
|
8
10
|
export function setAsideRow(db, tag, row, why) {
|
|
9
11
|
const untagged = { ...row, tags: row.tags.filter((t) => t !== tag) };
|
|
10
|
-
const audit = (metadata) => appendAuditEvent(db, {
|
|
12
|
+
const audit = (metadata) => appendAuditEvent(db, {
|
|
13
|
+
tenantId: row.tenant_id,
|
|
14
|
+
actor: SYNC_ACTOR,
|
|
15
|
+
op: 'agent_memory_set_aside',
|
|
16
|
+
targetId: row.id,
|
|
17
|
+
metadata,
|
|
18
|
+
});
|
|
11
19
|
if (row.pinned) {
|
|
12
20
|
setEntryTagsInTx(db, untagged);
|
|
13
21
|
audit({ why, untagged: true });
|
|
@@ -15,7 +23,12 @@ export function setAsideRow(db, tag, row, why) {
|
|
|
15
23
|
}
|
|
16
24
|
const now = new Date();
|
|
17
25
|
// Sleep's dormant move skips kept rows, so the steps are written out here without its filter.
|
|
18
|
-
insertDormantRow(db, {
|
|
26
|
+
insertDormantRow(db, {
|
|
27
|
+
entry: untagged,
|
|
28
|
+
strength: calculateStrength(row, now),
|
|
29
|
+
reason: 'source-deleted',
|
|
30
|
+
dormantAt: now.toISOString(),
|
|
31
|
+
});
|
|
19
32
|
deleteEntryRowInTx(db, row, SYNC_ACTOR);
|
|
20
33
|
audit({ why });
|
|
21
34
|
return { kind: 'dormant', id: row.id };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// AgentImport on hippo.db: each target holds one bare handle, and a container's calls run on it in one scope.
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { closeHippoDb, isSqliteBusy, outsideRequestStores, withTrialScope, withWriteScope, } from '../../db/index.js';
|
|
6
|
+
import { appendAuditEvent } from '../audit.js';
|
|
7
|
+
import { deleteDormantRow, dormantSnapshotsBySourcePrefix, readDormantSnapshot, replaceDormantEntry, } from '../dormant.js';
|
|
8
|
+
import { stampOriginProject } from '../entry-row.js';
|
|
9
|
+
import { entryIdTakenAt, selectLiveEntriesBySourcePrefix, selectRowsOutsideSourcePrefixAt } from '../entry-reads.js';
|
|
10
|
+
import { renameEntrySourceAndOriginAt, renameEntrySourceAt, setEntryTagsInTx, supersedeEntryAt, writeEntryMirrors, } from '../entry-writes.js';
|
|
11
|
+
import { gatedWrite } from '../gated-write.js';
|
|
12
|
+
import { updateStats } from '../index-and-stats.js';
|
|
13
|
+
import { removeEntryMirrors } from '../mirrors.js';
|
|
14
|
+
import { initStore, openBareHandle } from '../open.js';
|
|
15
|
+
import { projectTagReads } from '../project-tags.js';
|
|
16
|
+
import { findRejectedValue, rejectionDigest } from '../rejection.js';
|
|
17
|
+
import { setAsideRow } from '../set-aside.js';
|
|
18
|
+
import { markSummaryDirtyInTx } from '../summary-dirty.js';
|
|
19
|
+
import { resolveTenantId } from '../tenant.js';
|
|
20
|
+
function containerTx(db, root) {
|
|
21
|
+
return {
|
|
22
|
+
liveBySourcePrefix: (tenantId, prefix) => selectLiveEntriesBySourcePrefix(db, tenantId, prefix),
|
|
23
|
+
dormantBySourcePrefix: (tenantId, prefix) => dormantSnapshotsBySourcePrefix(db, tenantId, prefix),
|
|
24
|
+
readDormant: (tenantId, id) => readDormantSnapshot(db, tenantId, id),
|
|
25
|
+
deleteDormant: (tenantId, id) => {
|
|
26
|
+
deleteDormantRow(db, tenantId, id);
|
|
27
|
+
},
|
|
28
|
+
replaceDormant: (tenantId, id, entry) => replaceDormantEntry(db, tenantId, id, entry),
|
|
29
|
+
entryIdTaken: (id) => entryIdTakenAt(db, id),
|
|
30
|
+
isRejected: (tenantId, text) => findRejectedValue(db, tenantId, rejectionDigest(text)) !== null,
|
|
31
|
+
renameSource: (tenantId, id, from, to) => renameEntrySourceAt(db, tenantId, id, from, to),
|
|
32
|
+
renameSourceAndOrigin: (tenantId, id, move) => renameEntrySourceAndOriginAt(db, tenantId, id, move),
|
|
33
|
+
setTags: (entry) => setEntryTagsInTx(db, entry),
|
|
34
|
+
supersede: (tenantId, id, newId) => supersedeEntryAt(db, tenantId, id, newId),
|
|
35
|
+
markSummaryDirty: (summaryId, tenantId, actor) => markSummaryDirtyInTx(db, summaryId, tenantId, actor),
|
|
36
|
+
appendAudit: (event) => appendAuditEvent(db, event),
|
|
37
|
+
gatedWrite: (entry, opts) => gatedWrite(db, root, entry, opts),
|
|
38
|
+
setAside: (tag, row, why) => setAsideRow(db, tag, row, why),
|
|
39
|
+
stampOrigin: (entry) => stampOriginProject(root, entry),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function importTarget(db, root, close) {
|
|
43
|
+
const tenantId = resolveTenantId({});
|
|
44
|
+
return {
|
|
45
|
+
root,
|
|
46
|
+
tenantId,
|
|
47
|
+
liveBySourcePrefix: (prefix) => selectLiveEntriesBySourcePrefix(db, tenantId, prefix),
|
|
48
|
+
rowsOutsideSourcePrefix: (prefix, origins) => selectRowsOutsideSourcePrefixAt(db, tenantId, prefix, origins),
|
|
49
|
+
projectTagReads: () => projectTagReads(db, tenantId),
|
|
50
|
+
inContainer: (scope, dryRun, work) => {
|
|
51
|
+
const run = () => work(containerTx(db, root));
|
|
52
|
+
return dryRun ? withTrialScope(db, scope, run) : withWriteScope(db, scope, run);
|
|
53
|
+
},
|
|
54
|
+
writeMirror: (entry) => writeEntryMirrors(root, entry),
|
|
55
|
+
removeMirror: (id) => removeEntryMirrors(root, id),
|
|
56
|
+
bumpRemembered: (count) => updateStats(root, { remembered: count }),
|
|
57
|
+
close,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export const sqliteAgentImport = {
|
|
61
|
+
create: (root) => initStore(root),
|
|
62
|
+
open: (root, opts) => {
|
|
63
|
+
const db = openBareHandle(root, { busyWaitMs: opts.busyWaitMs });
|
|
64
|
+
return importTarget(db, root, () => closeHippoDb(db));
|
|
65
|
+
},
|
|
66
|
+
openStandIn: () => {
|
|
67
|
+
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'hippo-agent-memories-'));
|
|
68
|
+
// Its folder is deleted at close, so a request scope must not keep the file open past that.
|
|
69
|
+
const db = outsideRequestStores(() => openBareHandle(root));
|
|
70
|
+
return importTarget(db, root, () => {
|
|
71
|
+
closeHippoDb(db);
|
|
72
|
+
fs.rmSync(root, { recursive: true, force: true });
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
isBusy: (err) => isSqliteBusy(err),
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=agent-import.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Cards } from '../port-groups.js';
|
|
2
|
+
import type { Sync } from '../port.js';
|
|
3
|
+
export declare function sqliteCards(hippoRoot: string): Sync<Cards>;
|
|
4
|
+
/** The group as a served store answers it: a throw rejects as another store's would. */
|
|
5
|
+
export declare function servedCards(sync: Sync<Cards>): Cards;
|
|
6
|
+
//# sourceMappingURL=cards-group.d.ts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// hippo.db's Cards group: the agent work board.
|
|
2
|
+
import { loadCardDetail } from '../card-detail.js';
|
|
3
|
+
import { addCardComment, blockCard, claimCard, completeCard, createCard, heartbeatCard, listCards, loadCard, loadCardRuns, reclaimExpiredCards, reviewCard, } from '../cards.js';
|
|
4
|
+
export function sqliteCards(hippoRoot) {
|
|
5
|
+
return {
|
|
6
|
+
create: (tenantId, input) => createCard(hippoRoot, tenantId, { ...input, dependsOn: input.dependsOn ? [...input.dependsOn] : undefined }),
|
|
7
|
+
load: (tenantId, id) => loadCard(hippoRoot, tenantId, id),
|
|
8
|
+
detail: (tenantId, id) => loadCardDetail(hippoRoot, tenantId, id),
|
|
9
|
+
list: (tenantId, opts) => listCards(hippoRoot, tenantId, opts),
|
|
10
|
+
runs: (tenantId, id) => loadCardRuns(hippoRoot, tenantId, id),
|
|
11
|
+
claim: (tenantId, id, runtime, sessionId) => claimCard(hippoRoot, tenantId, id, runtime, sessionId),
|
|
12
|
+
heartbeat: (tenantId, id, runId) => heartbeatCard(hippoRoot, tenantId, id, runId),
|
|
13
|
+
block: (tenantId, id, reason, runId) => blockCard(hippoRoot, tenantId, id, reason, runId),
|
|
14
|
+
review: (tenantId, id, runId) => reviewCard(hippoRoot, tenantId, id, runId),
|
|
15
|
+
complete: (tenantId, id, outcome, runId) => completeCard(hippoRoot, tenantId, id, outcome, runId),
|
|
16
|
+
reclaimExpired: (tenantId) => reclaimExpiredCards(hippoRoot, tenantId),
|
|
17
|
+
comment: (tenantId, cardId, author, body) => addCardComment(hippoRoot, tenantId, cardId, author, body),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/** The group as a served store answers it: a throw rejects as another store's would. */
|
|
21
|
+
export function servedCards(sync) {
|
|
22
|
+
return {
|
|
23
|
+
create: async (tenantId, input) => sync.create(tenantId, input),
|
|
24
|
+
load: async (tenantId, id) => sync.load(tenantId, id),
|
|
25
|
+
detail: async (tenantId, id) => sync.detail(tenantId, id),
|
|
26
|
+
list: async (tenantId, opts) => sync.list(tenantId, opts),
|
|
27
|
+
runs: async (tenantId, id) => sync.runs(tenantId, id),
|
|
28
|
+
claim: async (tenantId, id, runtime, sessionId) => sync.claim(tenantId, id, runtime, sessionId),
|
|
29
|
+
heartbeat: async (tenantId, id, runId) => sync.heartbeat(tenantId, id, runId),
|
|
30
|
+
block: async (tenantId, id, reason, runId) => sync.block(tenantId, id, reason, runId),
|
|
31
|
+
review: async (tenantId, id, runId) => sync.review(tenantId, id, runId),
|
|
32
|
+
complete: async (tenantId, id, outcome, runId) => sync.complete(tenantId, id, outcome, runId),
|
|
33
|
+
reclaimExpired: async (tenantId) => sync.reclaimExpired(tenantId),
|
|
34
|
+
comment: async (tenantId, cardId, author, body) => sync.comment(tenantId, cardId, author, body),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=cards-group.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Conflicts } from '../port-groups.js';
|
|
2
|
+
import type { Sync } from '../port.js';
|
|
3
|
+
export declare function sqliteConflicts(hippoRoot: string): Sync<Conflicts>;
|
|
4
|
+
/** The group as a served store answers it: a throw rejects as another store's would. */
|
|
5
|
+
export declare function servedConflicts(sync: Sync<Conflicts>): Conflicts;
|
|
6
|
+
//# sourceMappingURL=conflicts-group.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// hippo.db's Conflicts group: listing and resolving the memory_conflicts rows.
|
|
2
|
+
import { listMemoryConflicts, listTouchableConflicts, resolveConflict } from '../conflicts.js';
|
|
3
|
+
export function sqliteConflicts(hippoRoot) {
|
|
4
|
+
return {
|
|
5
|
+
list: (tenantId, status) => listMemoryConflicts(hippoRoot, status, tenantId ?? undefined),
|
|
6
|
+
listTouchable: (tenantId, status, actor) => listTouchableConflicts(hippoRoot, status, tenantId, actor),
|
|
7
|
+
resolve: (tenantId, request, opts) => resolveConflict(hippoRoot, { ...request, tenantId }, opts),
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
/** The group as a served store answers it: a throw rejects as another store's would. */
|
|
11
|
+
export function servedConflicts(sync) {
|
|
12
|
+
return {
|
|
13
|
+
list: async (tenantId, status) => sync.list(tenantId, status),
|
|
14
|
+
listTouchable: async (tenantId, status, actor) => sync.listTouchable(tenantId, status, actor),
|
|
15
|
+
resolve: async (tenantId, request, opts) => sync.resolve(tenantId, request, opts),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=conflicts-group.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ConnectorEvents, Sync } from '../port.js';
|
|
2
2
|
export declare function sqliteConnectorEvents(hippoRoot: string): Sync<ConnectorEvents>;
|
|
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 servedConnectorEvents(sync: Sync<ConnectorEvents>): ConnectorEvents;
|
|
5
6
|
//# sourceMappingURL=connector-events-group.d.ts.map
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// hippo.db's half of the ConnectorEvents store group: each call on a handle of its own.
|
|
2
|
-
import { archiveDeletedArtifact, githubEventRecord, githubEventSeenAt, githubRouting, insertGitHubDlq, markGitHubEventSeen } from '../connectors/github.js';
|
|
3
|
-
import { insertSlackDlq, markSlackEventSeen, rawMemoryIdForArtifactAt, slackEventRecord, slackEventSeenAt, slackTeamRoute } from '../connectors/slack.js';
|
|
2
|
+
import { archiveDeletedArtifact, githubEventRecord, githubEventSeenAt, githubRouting, insertGitHubDlq, markGitHubEventSeen, } from '../connectors/github.js';
|
|
3
|
+
import { insertSlackDlq, markSlackEventSeen, rawMemoryIdForArtifactAt, slackEventRecord, slackEventSeenAt, slackTeamRoute, } from '../connectors/slack.js';
|
|
4
4
|
import { onHandle } from '../open.js';
|
|
5
5
|
function eventRecord(hippoRoot, event) {
|
|
6
|
-
return event.connector === 'slack'
|
|
6
|
+
return event.connector === 'slack'
|
|
7
|
+
? slackEventRecord(hippoRoot, event.eventId)
|
|
8
|
+
: githubEventRecord(hippoRoot, event.idempotencyKey);
|
|
7
9
|
}
|
|
8
10
|
function markEventSeen(hippoRoot, event) {
|
|
9
11
|
if (event.connector === 'slack')
|
|
@@ -19,7 +21,15 @@ function deletionTarget(hippoRoot, { event, artifactRef, tenantId }) {
|
|
|
19
21
|
}
|
|
20
22
|
function archiveArtifact(hippoRoot, { tenantId, actor, artifactRef, reason, event }) {
|
|
21
23
|
const { idempotencyKey, deliveryId, eventName } = event;
|
|
22
|
-
return archiveDeletedArtifact(hippoRoot, {
|
|
24
|
+
return archiveDeletedArtifact(hippoRoot, {
|
|
25
|
+
tenantId,
|
|
26
|
+
artifactRef,
|
|
27
|
+
idempotencyKey,
|
|
28
|
+
deliveryId,
|
|
29
|
+
eventName,
|
|
30
|
+
reason,
|
|
31
|
+
who: actor,
|
|
32
|
+
});
|
|
23
33
|
}
|
|
24
34
|
export function sqliteConnectorEvents(hippoRoot) {
|
|
25
35
|
return {
|
|
@@ -29,10 +39,11 @@ export function sqliteConnectorEvents(hippoRoot) {
|
|
|
29
39
|
archiveDeletedArtifact: (archive) => archiveArtifact(hippoRoot, archive),
|
|
30
40
|
slackTeamRoute: (teamId) => slackTeamRoute(hippoRoot, teamId),
|
|
31
41
|
githubRouting: (query) => githubRouting(hippoRoot, query),
|
|
32
|
-
parkDeadLetter: (letter) =>
|
|
42
|
+
parkDeadLetter: (letter) => letter.connector === 'slack' ? insertSlackDlq(hippoRoot, letter) : insertGitHubDlq(hippoRoot, letter),
|
|
33
43
|
};
|
|
34
44
|
}
|
|
35
|
-
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
45
|
+
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
46
|
+
* another store's would. */
|
|
36
47
|
export function servedConnectorEvents(sync) {
|
|
37
48
|
return {
|
|
38
49
|
eventRecord: async (event) => sync.eventRecord(event),
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ConnectorWrites, Sync } from '../port.js';
|
|
2
2
|
/** Each call on its own handle; the mirror follows the commit, so a duplicate or a rolled-back write leaves none. */
|
|
3
3
|
export declare function sqliteConnectorWrites(hippoRoot: string): Sync<ConnectorWrites>;
|
|
4
|
-
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
4
|
+
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
5
|
+
* another store's would. */
|
|
5
6
|
export declare function servedConnectorWrites(sync: Sync<ConnectorWrites>): ConnectorWrites;
|
|
6
7
|
//# sourceMappingURL=connector-writes-group.d.ts.map
|
|
@@ -16,15 +16,19 @@ function logEvent(db, event, memoryId) {
|
|
|
16
16
|
return markGitHubEventSeenAt(db, { idempotencyKey, deliveryId, eventName, memoryId });
|
|
17
17
|
}
|
|
18
18
|
function loggedMemory(db, event) {
|
|
19
|
-
return event.connector === 'slack'
|
|
19
|
+
return event.connector === 'slack'
|
|
20
|
+
? slackEventMemoryAt(db, event.eventId)
|
|
21
|
+
: githubEventMemoryAt(db, event.idempotencyKey);
|
|
20
22
|
}
|
|
21
|
-
/** The record, then the log row, go in after the memory row and ahead of its remember row, as a second store must order
|
|
23
|
+
/** The record, then the log row, go in after the memory row and ahead of its remember row, as a second store must order
|
|
24
|
+
* them. */
|
|
22
25
|
function writeWithCompanions(db, { entry, actor, event, quarantine }) {
|
|
23
26
|
writeInOwnTenant(db, entry, actor, (handle, memoryId) => {
|
|
24
|
-
if (quarantine)
|
|
27
|
+
if (quarantine) {
|
|
25
28
|
recordQuarantine(handle, {
|
|
26
29
|
tenantId: entry.tenant_id, memoryId, originalScope: quarantine.originalScope, reason: quarantine.reason, actor,
|
|
27
30
|
});
|
|
31
|
+
}
|
|
28
32
|
if (event && !logEvent(handle, event, memoryId))
|
|
29
33
|
throw new EventAlreadyLogged();
|
|
30
34
|
});
|
|
@@ -57,7 +61,8 @@ export function sqliteConnectorWrites(hippoRoot) {
|
|
|
57
61
|
},
|
|
58
62
|
};
|
|
59
63
|
}
|
|
60
|
-
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
64
|
+
/** The group as a served store answers it: each call runs at once and resolves through a Promise, so a throw rejects as
|
|
65
|
+
* another store's would. */
|
|
61
66
|
export function servedConnectorWrites(sync) {
|
|
62
67
|
return {
|
|
63
68
|
writeConnectorEntry: async (write) => sync.writeConnectorEntry(write),
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Consolidation } from '../port/consolidation.js';
|
|
2
|
+
/** Sleep's store work on the hippo.db under `hippoRoot`, each call on its own short-lived handle. */
|
|
3
|
+
export declare function sqliteConsolidation(hippoRoot: string): Consolidation;
|
|
4
|
+
//# sourceMappingURL=consolidation-group.d.ts.map
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { SLEEP_DB_WAIT_MS } from '../../db/index.js';
|
|
2
|
+
import { recordAuditEventsRowByRow, reportAuditWriteFailure } from '../audit.js';
|
|
3
|
+
import { replaceDetectedConflicts } from '../conflicts.js';
|
|
4
|
+
import { commitInChunks, deleteEntriesOneByOne, failedUnitOf, memoriesBackingObjects } from '../delete-and-batch.js';
|
|
5
|
+
import { expireDormantBefore } from '../dormant.js';
|
|
6
|
+
import { loadAllEntries, loadAllEntriesWithBase, loadCurrentDistilledEntries } from '../entry-reads.js';
|
|
7
|
+
import { ftsDrift } from '../entry-row.js';
|
|
8
|
+
import { writeEntriesTogether, writeEntry } from '../entry-writes.js';
|
|
9
|
+
import { loadPendingExtractionTenants, markPendingProcessedUpTo } from '../graph-queue.js';
|
|
10
|
+
import { moveHalfLives, recordedHalfLifeBase } from '../half-life.js';
|
|
11
|
+
import { appendConsolidationRun, incrementSleepCount, loadSessionDecayContext } from '../index-and-stats.js';
|
|
12
|
+
import { findPromotableSessions, listSessionEvents, traceExistsForSession } from '../sessions.js';
|
|
13
|
+
import { applyRebuildResult, childrenKey, clearSummaryDirtyAfterBuild, loadAllDirtySummaries, loadAllL2Summaries, loadChildrenOfSummaries, loadChildrenOfSummary, } from '../summaries.js';
|
|
14
|
+
import { lazyTombstoneChecks } from '../tombstone-checks.js';
|
|
15
|
+
import { loadStoredParticles, saveStoredParticles } from '../vector-index.js';
|
|
16
|
+
import { errorMessage } from '../../util/log.js';
|
|
17
|
+
/** Sleep's store work on the hippo.db under `hippoRoot`, each call on its own short-lived handle. */
|
|
18
|
+
export function sqliteConsolidation(hippoRoot) {
|
|
19
|
+
return {
|
|
20
|
+
entriesWithBase: () => loadAllEntriesWithBase(hippoRoot),
|
|
21
|
+
objectBackedIds: () => memoriesBackingObjects(hippoRoot),
|
|
22
|
+
ftsDrift: (repair) => ftsDrift(hippoRoot, repair),
|
|
23
|
+
sessionDecayContext: () => loadSessionDecayContext(hippoRoot),
|
|
24
|
+
tombstoneChecks: (dryRun) => lazyTombstoneChecks(hippoRoot, dryRun),
|
|
25
|
+
halfLifeBase: () => recordedHalfLifeBase(hippoRoot),
|
|
26
|
+
moveHalfLives: (to, opts, plan) => moveHalfLives(hippoRoot, to, opts, plan),
|
|
27
|
+
promotableSessions: (tenantId, sinceMs) => findPromotableSessions(hippoRoot, tenantId, sinceMs),
|
|
28
|
+
traceExists: (tenantId, sessionId) => traceExistsForSession(hippoRoot, tenantId, sessionId),
|
|
29
|
+
sessionEvents: (tenantId, opts) => listSessionEvents(hippoRoot, tenantId, opts),
|
|
30
|
+
storedParticles: () => loadStoredParticles(hippoRoot),
|
|
31
|
+
saveParticles: (particles) => saveStoredParticles(hippoRoot, particles),
|
|
32
|
+
// The wait is sleep's own, not a server request's 250 ms.
|
|
33
|
+
commitFlush: (components, opts) => commitInChunks(hippoRoot, components, { ...opts, busyWaitMs: SLEEP_DB_WAIT_MS }),
|
|
34
|
+
expireDormant: (cutoffIso, opts) => expireDormantBefore(hippoRoot, cutoffIso, { ...opts, busyWaitMs: SLEEP_DB_WAIT_MS }),
|
|
35
|
+
replaceConflicts: (detected, detectedAt) => replaceDetectedConflicts(hippoRoot, detected, detectedAt),
|
|
36
|
+
recordRun: (run) => appendConsolidationRun(hippoRoot, run),
|
|
37
|
+
countSleep: () => incrementSleepCount(hippoRoot),
|
|
38
|
+
auditEachRow(events) {
|
|
39
|
+
const failed = recordAuditEventsRowByRow(hippoRoot, events);
|
|
40
|
+
for (const { event, error } of failed)
|
|
41
|
+
reportAuditWriteFailure(event.op, errorMessage(error), event.targetId);
|
|
42
|
+
return failed.length;
|
|
43
|
+
},
|
|
44
|
+
reportAuditFailure: (op, reason) => reportAuditWriteFailure(op, reason),
|
|
45
|
+
allEntries: () => loadAllEntries(hippoRoot),
|
|
46
|
+
currentDistilledEntries: () => loadCurrentDistilledEntries(hippoRoot),
|
|
47
|
+
deleteOneByOne: (targets, opts) => deleteEntriesOneByOne(hippoRoot, targets, opts),
|
|
48
|
+
failedUnitOf,
|
|
49
|
+
dirtyGraphTenants: () => loadPendingExtractionTenants(hippoRoot),
|
|
50
|
+
markGraphDrained: (tenantId, maxId) => markPendingProcessedUpTo(hippoRoot, tenantId, maxId),
|
|
51
|
+
writeEntry: (entry) => writeEntry(hippoRoot, entry),
|
|
52
|
+
writeTogether: (entries) => writeEntriesTogether(hippoRoot, entries),
|
|
53
|
+
dirtySummaries: (limit) => loadAllDirtySummaries(hippoRoot, limit),
|
|
54
|
+
childrenOfSummary: (summaryId, tenantId) => loadChildrenOfSummary(hippoRoot, summaryId, tenantId),
|
|
55
|
+
childrenOfSummaries(summaries) {
|
|
56
|
+
const byParent = loadChildrenOfSummaries(hippoRoot, summaries);
|
|
57
|
+
return (summary) => byParent.get(childrenKey(summary.tenant_id, summary.id)) ?? [];
|
|
58
|
+
},
|
|
59
|
+
applyRebuild: (summary, patch) => applyRebuildResult(hippoRoot, summary, patch),
|
|
60
|
+
clearSummaryDirty: (summaryId, tenantId, actor, source) => clearSummaryDirtyAfterBuild(hippoRoot, summaryId, tenantId, actor, source),
|
|
61
|
+
unprofiledTopicSummaries: () => loadAllL2Summaries(hippoRoot),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=consolidation-group.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { pagedDescendants } from '../descendant-page.js';
|
|
2
|
-
import { countSessionRawMemories, loadSessionRawMemories, selectChildrenByParent, selectEntriesByIds } from '../entry-reads.js';
|
|
2
|
+
import { countSessionRawMemories, loadSessionRawMemories, selectChildrenByParent, selectEntriesByIds, } from '../entry-reads.js';
|
|
3
3
|
import { onHandle, openStore } from '../open.js';
|
|
4
4
|
export function sqliteDagReads(hippoRoot) {
|
|
5
5
|
return {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Dormant } from '../port-groups.js';
|
|
2
|
+
import type { Sync } from '../port.js';
|
|
3
|
+
export declare function sqliteDormant(hippoRoot: string): Sync<Dormant>;
|
|
4
|
+
/** The group as a served store answers it: a throw rejects as another store's would. */
|
|
5
|
+
export declare function servedDormant(sync: Sync<Dormant>): Dormant;
|
|
6
|
+
//# sourceMappingURL=dormant-group.d.ts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// hippo.db's Dormant group: the memories sleep set aside, listed, restored or forgotten for good.
|
|
2
|
+
import { forgetDormantMemory, holdsDormantMemory, loadDormantMemories, restoreDormantMemory } from '../dormant.js';
|
|
3
|
+
import { updateStatsUnlessBusy } from '../index-and-stats.js';
|
|
4
|
+
import { touchableScopeSql } from '../rule-sql.js';
|
|
5
|
+
export function sqliteDormant(hippoRoot) {
|
|
6
|
+
return {
|
|
7
|
+
list: (tenantId, ownScope, opts) => loadDormantMemories(hippoRoot, tenantId, opts, touchableScopeSql('', ownScope)),
|
|
8
|
+
holds: (tenantId, ownScope, id) => holdsDormantMemory(hippoRoot, tenantId, id, touchableScopeSql('', ownScope)),
|
|
9
|
+
restore: (tenantId, request) => restoreDormantMemory(hippoRoot, { ...request, tenantId }),
|
|
10
|
+
forget(tenantId, ownScope, id, actor) {
|
|
11
|
+
const admit = touchableScopeSql('', ownScope);
|
|
12
|
+
if (!forgetDormantMemory(hippoRoot, { tenantId, id, actor, admit }))
|
|
13
|
+
return false;
|
|
14
|
+
// Counted like every other permanent removal (forget, archiveRaw).
|
|
15
|
+
updateStatsUnlessBusy(hippoRoot, { forgotten: 1 }, `removed ${id}`);
|
|
16
|
+
return true;
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/** The group as a served store answers it: a throw rejects as another store's would. */
|
|
21
|
+
export function servedDormant(sync) {
|
|
22
|
+
return {
|
|
23
|
+
list: async (tenantId, ownScope, opts) => sync.list(tenantId, ownScope, opts),
|
|
24
|
+
holds: async (tenantId, ownScope, id) => sync.holds(tenantId, ownScope, id),
|
|
25
|
+
restore: async (tenantId, request) => sync.restore(tenantId, request),
|
|
26
|
+
forget: async (tenantId, ownScope, id, actor) => sync.forget(tenantId, ownScope, id, actor),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=dormant-group.js.map
|
|
@@ -3,13 +3,16 @@ import { type MemoryEntry } from '../../core/memory.js';
|
|
|
3
3
|
import { type ArchiveOpts } from '../raw-archive.js';
|
|
4
4
|
import type { EntryWrite, EntryWrites, OutcomeWrite, RawArchive, Sync } from '../port.js';
|
|
5
5
|
import { type WriteEntryInternalOptions } from '../entry-writes.js';
|
|
6
|
-
/** Each call on its own handle; mirrors and the forgotten counter follow the commit, so a rolled-back write leaves
|
|
6
|
+
/** Each call on its own handle; mirrors and the forgotten counter follow the commit, so a rolled-back write leaves
|
|
7
|
+
* neither. */
|
|
7
8
|
export declare function sqliteEntryWrites(hippoRoot: string): Sync<EntryWrites>;
|
|
8
9
|
/** A store-side hook writes on the row's handle inside its write scope, so its throw undoes the row. */
|
|
9
10
|
export declare function writeEntryAt(hippoRoot: string, { entry, actor }: EntryWrite, afterWrite?: WriteEntryInternalOptions['afterWrite']): void;
|
|
10
|
-
/** A trace link follows the commit on the same handle and names only the ids applied, so a rolled-back outcome leaves
|
|
11
|
+
/** A trace link follows the commit on the same handle and names only the ids applied, so a rolled-back outcome leaves
|
|
12
|
+
* none. */
|
|
11
13
|
export declare function applyOutcomeAt(hippoRoot: string, outcome: OutcomeWrite, traceId?: number): string[];
|
|
12
|
-
/** Reach is checked inside the archive's write scope. A store-side hook writes on the same handle inside that scope, so
|
|
14
|
+
/** Reach is checked inside the archive's write scope. A store-side hook writes on the same handle inside that scope, so
|
|
15
|
+
* its throw undoes the archive. */
|
|
13
16
|
export declare function archiveRawAt(hippoRoot: string, archive: RawArchive, afterArchive?: ArchiveOpts['afterArchive']): string;
|
|
14
17
|
/** The refusal row lands after `write` has rolled back, in a fresh implicit transaction the aborted one cannot undo. */
|
|
15
18
|
export declare function auditingRefusal<T>(db: DatabaseSyncLike, actor: string, write: () => T): T;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// hippo.db's half of the EntryWrites store group: the queries remember, outcome, supersede, archive and forget run
|
|
1
|
+
// hippo.db's half of the EntryWrites store group: the queries remember, outcome, supersede, archive and forget run
|
|
2
|
+
// today.
|
|
2
3
|
import { ConflictError, NotFoundError } from '../../core/api-errors.js';
|
|
3
4
|
import { appendAuditEvent } from '../audit.js';
|
|
4
5
|
import { isSqliteBusy, withWriteScope } from '../../db/index.js';
|
|
@@ -18,7 +19,8 @@ import { updateStatsUnlessBusy } from '../index-and-stats.js';
|
|
|
18
19
|
import { purgeMirrorBestEffort, removeEntryMirrors } from '../mirrors.js';
|
|
19
20
|
import { onHandle, openStore } from '../open.js';
|
|
20
21
|
import { selectMemoryReach } from '../tenant-lookup.js';
|
|
21
|
-
/** Each call on its own handle; mirrors and the forgotten counter follow the commit, so a rolled-back write leaves
|
|
22
|
+
/** Each call on its own handle; mirrors and the forgotten counter follow the commit, so a rolled-back write leaves
|
|
23
|
+
* neither. */
|
|
22
24
|
export function sqliteEntryWrites(hippoRoot) {
|
|
23
25
|
return {
|
|
24
26
|
writeEntry(write) {
|
|
@@ -52,13 +54,19 @@ export function writeEntryAt(hippoRoot, { entry, actor }, afterWrite) {
|
|
|
52
54
|
onHandle(hippoRoot, (db) => writeInOwnTenant(db, stamped, actor, afterWrite), openStore);
|
|
53
55
|
writeEntryMirrors(hippoRoot, stamped);
|
|
54
56
|
}
|
|
55
|
-
/** A trace link follows the commit on the same handle and names only the ids applied, so a rolled-back outcome leaves
|
|
57
|
+
/** A trace link follows the commit on the same handle and names only the ids applied, so a rolled-back outcome leaves
|
|
58
|
+
* none. */
|
|
56
59
|
export function applyOutcomeAt(hippoRoot, outcome, traceId) {
|
|
57
60
|
const applied = onHandle(hippoRoot, (db) => {
|
|
58
61
|
const rows = applyOutcomeOn(db, outcome);
|
|
59
62
|
const memoryIds = rows.map((entry) => entry.id);
|
|
60
63
|
if (traceId !== undefined && rows.length > 0) {
|
|
61
|
-
recordTraceOutcome(db, {
|
|
64
|
+
recordTraceOutcome(db, {
|
|
65
|
+
traceId,
|
|
66
|
+
tenantId: outcome.tenantId,
|
|
67
|
+
outcome: outcome.good ? 'positive' : 'negative',
|
|
68
|
+
memoryIds,
|
|
69
|
+
});
|
|
62
70
|
}
|
|
63
71
|
return rows;
|
|
64
72
|
}, openStore);
|
|
@@ -66,7 +74,8 @@ export function applyOutcomeAt(hippoRoot, outcome, traceId) {
|
|
|
66
74
|
writeEntryMirrors(hippoRoot, entry);
|
|
67
75
|
return applied.map((entry) => entry.id);
|
|
68
76
|
}
|
|
69
|
-
/** Reach is checked inside the archive's write scope. A store-side hook writes on the same handle inside that scope, so
|
|
77
|
+
/** Reach is checked inside the archive's write scope. A store-side hook writes on the same handle inside that scope, so
|
|
78
|
+
* its throw undoes the archive. */
|
|
70
79
|
export function archiveRawAt(hippoRoot, archive, afterArchive) {
|
|
71
80
|
const archivedAt = onHandle(hippoRoot, (db) => {
|
|
72
81
|
const at = withWriteScope(db, 'archive_raw_in_reach', () => {
|
|
@@ -88,11 +97,13 @@ function assertInReach(db, target, id) {
|
|
|
88
97
|
if (reach?.tenantId !== target.tenantId || !ownScopeTouches(target.ownScope, reach.scope))
|
|
89
98
|
throw notFound(id);
|
|
90
99
|
}
|
|
91
|
-
/** hippo.db's upsert would move the row into the writer's tenant, so a store write refuses an id another tenant
|
|
100
|
+
/** hippo.db's upsert would move the row into the writer's tenant, so a store write refuses an id another tenant
|
|
101
|
+
* holds. */
|
|
92
102
|
function assertIdInTenant(db, entry) {
|
|
93
103
|
const holder = selectMemoryReach(db, entry.id)?.tenantId;
|
|
94
|
-
if (holder !== undefined && holder !== entry.tenant_id)
|
|
104
|
+
if (holder !== undefined && holder !== entry.tenant_id) {
|
|
95
105
|
throw new ConflictError(`Memory ${entry.id} belongs to another tenant`);
|
|
106
|
+
}
|
|
96
107
|
}
|
|
97
108
|
/** The refusal row lands after `write` has rolled back, in a fresh implicit transaction the aborted one cannot undo. */
|
|
98
109
|
export function auditingRefusal(db, actor, write) {
|
|
@@ -112,7 +123,8 @@ export function writeInOwnTenant(db, entry, actor, afterWrite) {
|
|
|
112
123
|
writeEntryDbOnly(db, entry, { actor, afterWrite });
|
|
113
124
|
}));
|
|
114
125
|
}
|
|
115
|
-
/** The reads, rewrites and outcome rows share one BEGIN IMMEDIATE transaction, hippo.db's form of the port's row lock;
|
|
126
|
+
/** The reads, rewrites and outcome rows share one BEGIN IMMEDIATE transaction, hippo.db's form of the port's row lock;
|
|
127
|
+
* the caller writes the mirrors after. */
|
|
116
128
|
function applyOutcomeOn(db, outcome) {
|
|
117
129
|
return auditingRefusal(db, outcome.actor, () => withWriteScope(db, 'apply_outcome', () => {
|
|
118
130
|
const live = selectEntriesByIds(db, outcome.ids, outcome.tenantId);
|
|
@@ -124,20 +136,29 @@ function applyOutcomeOn(db, outcome) {
|
|
|
124
136
|
const updated = entryAfterOutcome(entry, outcome.good);
|
|
125
137
|
writeEntryDbOnly(db, updated, { actor: outcome.actor });
|
|
126
138
|
live.set(id, updated);
|
|
127
|
-
appendAuditEvent(db, {
|
|
139
|
+
appendAuditEvent(db, {
|
|
140
|
+
tenantId: outcome.tenantId,
|
|
141
|
+
actor: outcome.actor,
|
|
142
|
+
op: 'outcome',
|
|
143
|
+
targetId: id,
|
|
144
|
+
metadata: { good: outcome.good },
|
|
145
|
+
});
|
|
128
146
|
applied.push(updated);
|
|
129
147
|
}
|
|
130
148
|
return applied;
|
|
131
149
|
}));
|
|
132
150
|
}
|
|
133
|
-
/** Reach, the CAS on the old row, the successor's insert and the supersede row in one BEGIN IMMEDIATE transaction. Two
|
|
151
|
+
/** Reach, the CAS on the old row, the successor's insert and the supersede row in one BEGIN IMMEDIATE transaction. Two
|
|
152
|
+
* racing supersedes: one CAS wins. */
|
|
134
153
|
function commitSupersede(db, write) {
|
|
135
154
|
const { tenantId, actor, oldId, successor } = write;
|
|
136
155
|
// The refusal row lands after the scope has rolled back, in a fresh implicit transaction the aborted one cannot undo.
|
|
137
156
|
auditingRefusal(db, actor, () => withWriteScope(db, 'supersede', () => {
|
|
138
157
|
assertInReach(db, write, oldId);
|
|
139
158
|
// SAFETY: RETURNING names one column, dag_parent_id; no row means another writer got there first.
|
|
140
|
-
const won = db
|
|
159
|
+
const won = db
|
|
160
|
+
.prepare('UPDATE memories SET superseded_by = ? WHERE id = ? AND tenant_id = ? AND superseded_by IS NULL RETURNING ' +
|
|
161
|
+
'dag_parent_id')
|
|
141
162
|
.get(successor.id, oldId, tenantId);
|
|
142
163
|
if (!won)
|
|
143
164
|
throw new ConflictError(`Memory ${oldId} already superseded by another writer`);
|
|
@@ -149,13 +170,15 @@ function commitSupersede(db, write) {
|
|
|
149
170
|
appendAuditEvent(db, { tenantId, actor, op: 'supersede', targetId: oldId, metadata: { newId: successor.id } });
|
|
150
171
|
}));
|
|
151
172
|
}
|
|
152
|
-
/** A mirror left on disk would bring the archived row back on the next import; on failure the reaper retries, as
|
|
173
|
+
/** A mirror left on disk would bring the archived row back on the next import; on failure the reaper retries, as
|
|
174
|
+
* mirror_cleaned_at stays NULL. */
|
|
153
175
|
function cleanArchivedMirrors(db, hippoRoot, id) {
|
|
154
176
|
try {
|
|
155
177
|
removeEntryMirrors(hippoRoot, id);
|
|
156
178
|
}
|
|
157
179
|
catch (mirrorErr) {
|
|
158
|
-
log.error(`archiveRaw: mirror cleanup failed for ${id} (will retry via reaper on next openHippoDb):
|
|
180
|
+
log.error(`archiveRaw: mirror cleanup failed for ${id} (will retry via reaper on next openHippoDb): ` +
|
|
181
|
+
`${errorMessage(mirrorErr)}`, errorFields(mirrorErr));
|
|
159
182
|
return;
|
|
160
183
|
}
|
|
161
184
|
try {
|
|
@@ -164,7 +187,7 @@ function cleanArchivedMirrors(db, hippoRoot, id) {
|
|
|
164
187
|
catch (err) {
|
|
165
188
|
if (!isSqliteBusy(err))
|
|
166
189
|
throw err;
|
|
167
|
-
log.warnThenDebug('archive-mirror-stamp-busy', `archived ${id}; the store was busy, so the mirror reaper will re-check it on the next open
|
|
190
|
+
log.warnThenDebug('archive-mirror-stamp-busy', `archived ${id}; the store was busy, so the mirror reaper will re-check it on the next open`, errorFields(err));
|
|
168
191
|
}
|
|
169
192
|
}
|
|
170
193
|
//# sourceMappingURL=entry-writes-group.js.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
type FieldValue = string | number | boolean | null;
|
|
2
2
|
/** One error as a thread message can carry it. */
|
|
3
3
|
export interface WireError {
|
|
4
|
-
/** Constructor names from the thrown class up to Error: several classes set no `name`, so a name alone cannot pick
|
|
4
|
+
/** Constructor names from the thrown class up to Error: several classes set no `name`, so a name alone cannot pick
|
|
5
|
+
* the class. */
|
|
5
6
|
readonly classes: readonly string[];
|
|
6
7
|
readonly message: string;
|
|
7
8
|
readonly stack: string | undefined;
|
|
@@ -11,7 +12,8 @@ export interface WireError {
|
|
|
11
12
|
}
|
|
12
13
|
/** Worker side. A thrown value that is not an Error carries its text and no class. */
|
|
13
14
|
export declare function encodeError<E>(err: E, depth?: number): WireError;
|
|
14
|
-
/** Server side: an instance of the thrown class, or of its nearest ancestor in the table, with the worker's stack,
|
|
15
|
+
/** Server side: an instance of the thrown class, or of its nearest ancestor in the table, with the worker's stack,
|
|
16
|
+
* cause and fields. */
|
|
15
17
|
export declare function decodeError(wire: WireError): Error;
|
|
16
18
|
export {};
|
|
17
19
|
//# sourceMappingURL=error-codec.d.ts.map
|