hippo-memory 1.70.0 → 1.72.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/agent-memories/apply.d.ts +0 -11
- package/dist/agent-memories/apply.js +6 -21
- package/dist/agent-memories/claude-code.d.ts +4 -2
- package/dist/agent-memories/claude-code.js +15 -6
- package/dist/agent-memories/codex.js +1 -1
- package/dist/agent-memories/copilot.d.ts +1 -3
- package/dist/agent-memories/copilot.js +1 -17
- package/dist/agent-memories/files.js +23 -12
- package/dist/agent-memories/markdown.d.ts +1 -3
- package/dist/agent-memories/markdown.js +1 -3
- package/dist/agent-memories/project-folds.d.ts +10 -0
- package/dist/agent-memories/project-folds.js +34 -0
- package/dist/agent-memories/report.js +2 -1
- package/dist/agent-memories/sync.d.ts +4 -2
- package/dist/agent-memories/sync.js +18 -11
- package/dist/api/assemble.d.ts +7 -44
- package/dist/api/assemble.js +3 -23
- package/dist/api/audit.d.ts +33 -1
- package/dist/api/audit.js +48 -1
- package/dist/api/auth.d.ts +20 -26
- package/dist/api/auth.js +43 -29
- package/dist/api/auto-sleep.d.ts +5 -2
- package/dist/api/auto-sleep.js +9 -5
- package/dist/api/availability.d.ts +2 -15
- package/dist/api/availability.js +4 -18
- package/dist/api/cards.d.ts +42 -0
- package/dist/api/cards.js +52 -0
- package/dist/api/conflicts.d.ts +28 -0
- package/dist/api/conflicts.js +61 -0
- package/dist/api/context-render.js +4 -3
- package/dist/api/context-select.js +12 -15
- package/dist/api/context-types.d.ts +10 -35
- package/dist/api/context.d.ts +5 -22
- package/dist/api/context.js +38 -46
- package/dist/api/continuity.d.ts +47 -0
- package/dist/api/continuity.js +66 -0
- package/dist/{cli → api}/correction-latency.d.ts +2 -14
- package/dist/{cli → api}/correction-latency.js +2 -14
- package/dist/api/dormant.d.ts +5 -21
- package/dist/api/dormant.js +11 -28
- package/dist/api/drill-down.d.ts +7 -46
- package/dist/api/drill-down.js +6 -27
- package/dist/api/embeddings.d.ts +17 -0
- package/dist/api/embeddings.js +28 -0
- package/dist/api/error-reply.d.ts +8 -0
- package/dist/api/error-reply.js +21 -0
- package/dist/api/forget.d.ts +11 -26
- package/dist/api/forget.js +23 -35
- package/dist/api/goals.d.ts +1 -1
- package/dist/api/goals.js +5 -9
- package/dist/api/graph.d.ts +8 -0
- package/dist/api/graph.js +7 -0
- package/dist/api/index.d.ts +6 -2
- package/dist/api/index.js +6 -2
- package/dist/api/instruction-detect.js +21 -6
- package/dist/api/learn.d.ts +4 -0
- package/dist/api/learn.js +53 -27
- package/dist/api/ledger-db.d.ts +2 -5
- package/dist/api/ledger-db.js +5 -35
- package/dist/api/memories.d.ts +23 -0
- package/dist/api/memories.js +46 -0
- package/dist/api/objects.d.ts +9 -0
- package/dist/api/objects.js +11 -0
- package/dist/api/on-store.js +5 -3
- package/dist/api/outcome.js +1 -1
- package/dist/api/pilot-arm.d.ts +1 -11
- package/dist/api/pilot-arm.js +5 -45
- package/dist/api/predictions.d.ts +11 -0
- package/dist/api/predictions.js +24 -0
- package/dist/api/projects.d.ts +21 -0
- package/dist/api/projects.js +24 -0
- package/dist/api/promote.d.ts +13 -17
- package/dist/api/promote.js +12 -20
- package/dist/api/prompt-hook.d.ts +19 -6
- package/dist/api/prompt-hook.js +54 -13
- package/dist/api/provenance-coverage.d.ts +14 -0
- package/dist/{cli → api}/provenance-coverage.js +2 -6
- package/dist/api/recall-cli.d.ts +58 -0
- package/dist/api/recall-cli.js +103 -0
- package/dist/api/recall-core.js +17 -9
- package/dist/api/recall-finish.d.ts +53 -0
- package/dist/api/recall-finish.js +30 -0
- package/dist/api/recall-history.d.ts +17 -84
- package/dist/api/recall-history.js +15 -88
- package/dist/api/recall-pipeline.d.ts +2 -3
- package/dist/api/recall-pipeline.js +21 -15
- package/dist/api/recall-request.js +1 -1
- package/dist/api/recall-types.d.ts +64 -304
- package/dist/api/recall.d.ts +3 -34
- package/dist/api/recall.js +63 -89
- package/dist/api/refine.d.ts +7 -0
- package/dist/api/refine.js +10 -0
- package/dist/api/remember-local.d.ts +57 -0
- package/dist/api/remember-local.js +90 -0
- package/dist/api/remember.d.ts +20 -2
- package/dist/api/remember.js +16 -3
- package/dist/api/session-end.d.ts +22 -0
- package/dist/api/session-end.js +101 -0
- package/dist/api/sleep-run.d.ts +2 -4
- package/dist/api/sleep-run.js +28 -28
- package/dist/api/sleep.d.ts +9 -28
- package/dist/api/status.d.ts +24 -0
- package/dist/api/status.js +40 -0
- package/dist/api/store-init.d.ts +4 -0
- package/dist/api/store-init.js +9 -0
- package/dist/api/tokens.d.ts +3 -10
- package/dist/api/tokens.js +4 -11
- package/dist/api/types.d.ts +8 -29
- package/dist/api/types.js +10 -23
- package/dist/capture/caller-session.d.ts +0 -3
- package/dist/capture/caller-session.js +1 -12
- package/dist/capture/capture-error.d.ts +2 -2
- package/dist/capture/capture-error.js +23 -18
- package/dist/capture/codex-patch.js +3 -1
- package/dist/capture/command.d.ts +4 -12
- package/dist/capture/command.js +39 -114
- package/dist/capture/compact.d.ts +4 -15
- package/dist/capture/compact.js +26 -30
- package/dist/capture/compaction-items-caller.js +11 -20
- package/dist/capture/compaction-record.d.ts +7 -93
- package/dist/capture/compaction-record.js +34 -399
- package/dist/capture/compaction-spool.d.ts +5 -3
- package/dist/capture/compaction-spool.js +21 -7
- package/dist/capture/copilot-transcript.d.ts +2 -1
- package/dist/capture/copilot-transcript.js +2 -1
- package/dist/capture/extract.d.ts +5 -2
- package/dist/capture/extract.js +4 -3
- package/dist/capture/failure-caller.d.ts +1 -1
- package/dist/capture/failure-caller.js +21 -16
- package/dist/capture/failure-reading.d.ts +2 -1
- package/dist/capture/failure-reading.js +7 -9
- package/dist/capture/pre-compact-caller.js +5 -4
- package/dist/capture/session-digest.d.ts +1 -1
- package/dist/capture/session-digest.js +17 -10
- package/dist/capture/session-end-caller.js +2 -1
- package/dist/capture/session-worker.js +3 -4
- package/dist/capture/transcript.d.ts +4 -11
- package/dist/capture/transcript.js +10 -21
- package/dist/capture/working-state.d.ts +4 -2
- package/dist/capture/working-state.js +4 -2
- package/dist/cli/api-context.d.ts +3 -0
- package/dist/cli/api-context.js +6 -0
- package/dist/cli/audit-prune.d.ts +1 -59
- package/dist/cli/audit-prune.js +2 -61
- package/dist/cli/audit.d.ts +1 -1
- package/dist/cli/audit.js +42 -43
- package/dist/cli/auth.d.ts +2 -2
- package/dist/cli/auth.js +61 -44
- package/dist/cli/briefs.d.ts +1 -4
- package/dist/cli/briefs.js +42 -301
- package/dist/cli/card.d.ts +2 -2
- package/dist/cli/card.js +63 -56
- package/dist/cli/client.d.ts +12 -27
- package/dist/cli/client.js +41 -44
- package/dist/cli/compact-resume-payload.js +4 -3
- package/dist/cli/context.d.ts +2 -3
- package/dist/cli/context.js +22 -18
- package/dist/cli/continuity.d.ts +6 -6
- package/dist/cli/continuity.js +81 -86
- package/dist/cli/curate.d.ts +13 -17
- package/dist/cli/curate.js +88 -116
- package/dist/cli/dag.d.ts +4 -4
- package/dist/cli/dag.js +55 -34
- package/dist/cli/decisions.d.ts +2 -4
- package/dist/cli/decisions.js +18 -309
- package/dist/cli/eval.d.ts +1 -1
- package/dist/cli/eval.js +27 -26
- package/dist/cli/exit.d.ts +6 -0
- package/dist/cli/exit.js +11 -0
- package/dist/cli/explain.d.ts +2 -3
- package/dist/cli/explain.js +25 -27
- package/dist/cli/flag-values.d.ts +6 -1
- package/dist/cli/flag-values.js +42 -15
- package/dist/cli/flags.d.ts +0 -288
- package/dist/cli/flags.js +3 -138
- package/dist/cli/github.d.ts +14 -0
- package/dist/{connectors/github/cli-impl.js → cli/github.js} +43 -71
- package/dist/cli/goals.d.ts +2 -2
- package/dist/cli/goals.js +46 -50
- package/dist/cli/graph.d.ts +3 -0
- package/dist/cli/graph.js +83 -0
- package/dist/cli/hook-runtime.d.ts +12 -32
- package/dist/cli/hook-runtime.js +21 -64
- package/dist/cli/incidents.d.ts +3 -0
- package/dist/cli/incidents.js +112 -0
- package/dist/cli/init.d.ts +2 -2
- package/dist/cli/init.js +33 -30
- package/dist/cli/install-steps.d.ts +2 -1
- package/dist/cli/install-steps.js +13 -14
- package/dist/cli/last-sleep.d.ts +2 -1
- package/dist/cli/last-sleep.js +4 -1
- package/dist/cli/lenient-id.d.ts +2 -0
- package/dist/cli/lenient-id.js +13 -0
- package/dist/cli/maintenance.d.ts +5 -5
- package/dist/cli/maintenance.js +37 -43
- package/dist/cli/notes.d.ts +2 -0
- package/dist/cli/notes.js +41 -0
- package/dist/cli/object-verbs.js +4 -3
- package/dist/cli/open-browser.d.ts +14 -0
- package/dist/cli/open-browser.js +26 -0
- package/dist/cli/owner-validation.d.ts +5 -28
- package/dist/cli/owner-validation.js +5 -28
- package/dist/cli/playbooks.d.ts +3 -4
- package/dist/cli/playbooks.js +131 -300
- package/dist/cli/predictions.d.ts +3 -0
- package/dist/cli/predictions.js +175 -0
- package/dist/cli/print.d.ts +2 -5
- package/dist/cli/print.js +3 -5
- package/dist/cli/projects.d.ts +2 -2
- package/dist/cli/projects.js +31 -25
- package/dist/cli/quality-repair-once.d.ts +1 -1
- package/dist/cli/quality-repair-once.js +7 -6
- package/dist/cli/recall.d.ts +2 -4
- package/dist/cli/recall.js +67 -137
- package/dist/cli/refine-llm.d.ts +5 -31
- package/dist/cli/refine-llm.js +23 -50
- package/dist/cli/remember.d.ts +3 -3
- package/dist/cli/remember.js +134 -192
- package/dist/cli/scheduler.d.ts +2 -17
- package/dist/cli/scheduler.js +14 -19
- package/dist/cli/serve.js +23 -14
- package/dist/cli/session-hooks.d.ts +11 -19
- package/dist/cli/session-hooks.js +143 -214
- package/dist/cli/setup.d.ts +4 -4
- package/dist/cli/setup.js +35 -30
- package/dist/cli/shared.d.ts +7 -25
- package/dist/cli/shared.js +17 -60
- package/dist/cli/slack.d.ts +2 -2
- package/dist/cli/slack.js +19 -23
- package/dist/cli/sleep-render.js +6 -3
- package/dist/cli/sleep.d.ts +3 -2
- package/dist/cli/sleep.js +17 -49
- package/dist/cli/status.d.ts +11 -14
- package/dist/cli/status.js +74 -120
- package/dist/cli/stdin.d.ts +4 -6
- package/dist/cli/stdin.js +2 -3
- package/dist/cli/transfer.d.ts +9 -9
- package/dist/cli/transfer.js +87 -108
- package/dist/cli/usage.d.ts +0 -79
- package/dist/cli/usage.js +1 -689
- package/dist/cli/verb-row.d.ts +32 -0
- package/dist/cli/verb-row.js +6 -0
- package/dist/cli/verbs/health.d.ts +27 -0
- package/dist/cli/verbs/health.js +232 -0
- package/dist/cli/verbs/memory.d.ts +16 -0
- package/dist/cli/verbs/memory.js +244 -0
- package/dist/cli/verbs/objects.d.ts +20 -0
- package/dist/cli/verbs/objects.js +254 -0
- package/dist/cli/verbs/sessions.d.ts +31 -0
- package/dist/cli/verbs/sessions.js +312 -0
- package/dist/cli/verbs.d.ts +81 -0
- package/dist/cli/verbs.js +7 -0
- package/dist/cli/versioned-verbs.d.ts +51 -0
- package/dist/cli/versioned-verbs.js +79 -0
- package/dist/cli.d.ts +1 -654
- package/dist/cli.js +44 -510
- package/dist/connectors/dlq.d.ts +39 -3
- package/dist/connectors/dlq.js +37 -3
- package/dist/connectors/github/backfill.d.ts +5 -25
- package/dist/connectors/github/backfill.js +26 -52
- package/dist/connectors/github/deletion.d.ts +4 -18
- package/dist/connectors/github/deletion.js +2 -15
- package/dist/connectors/github/dlq.d.ts +8 -33
- package/dist/connectors/github/dlq.js +34 -93
- package/dist/connectors/github/ingest.d.ts +4 -12
- package/dist/connectors/github/ingest.js +5 -36
- package/dist/connectors/github/octokit-client.d.ts +4 -16
- package/dist/connectors/github/octokit-client.js +27 -24
- package/dist/connectors/github/ratelimit.d.ts +3 -14
- package/dist/connectors/github/ratelimit.js +3 -14
- package/dist/connectors/github/scope.d.ts +3 -5
- package/dist/connectors/github/scope.js +3 -5
- package/dist/connectors/github/signature.d.ts +4 -26
- package/dist/connectors/github/signature.js +4 -26
- package/dist/connectors/github/tenant-routing.d.ts +2 -24
- package/dist/connectors/github/tenant-routing.js +4 -26
- package/dist/connectors/github/transform.js +2 -16
- package/dist/connectors/github/types.d.ts +3 -15
- package/dist/connectors/github/types.js +2 -9
- package/dist/connectors/github/webhook.d.ts +3 -16
- package/dist/connectors/github/webhook.js +38 -23
- package/dist/connectors/ingest.d.ts +10 -0
- package/dist/connectors/ingest.js +28 -0
- package/dist/connectors/slack/backfill.d.ts +4 -17
- package/dist/connectors/slack/backfill.js +4 -13
- package/dist/connectors/slack/dlq.d.ts +2 -19
- package/dist/connectors/slack/dlq.js +51 -90
- package/dist/connectors/slack/ingest.d.ts +4 -9
- package/dist/connectors/slack/ingest.js +4 -30
- package/dist/connectors/slack/scope.d.ts +2 -8
- package/dist/connectors/slack/scope.js +2 -8
- package/dist/connectors/slack/signature.d.ts +1 -6
- package/dist/connectors/slack/tenant-routing.d.ts +2 -19
- package/dist/connectors/slack/tenant-routing.js +2 -21
- package/dist/connectors/slack/transform.d.ts +2 -18
- package/dist/connectors/slack/transform.js +2 -18
- package/dist/connectors/slack/types.d.ts +3 -9
- package/dist/connectors/slack/types.js +2 -4
- package/dist/connectors/slack/web-client.js +33 -27
- package/dist/connectors/slack/webhook.d.ts +3 -19
- package/dist/connectors/slack/webhook.js +6 -26
- package/dist/connectors/slack/workspaces.d.ts +4 -24
- package/dist/connectors/slack/workspaces.js +4 -24
- package/dist/consolidate/conflicts.js +7 -15
- package/dist/consolidate/dag-summary.d.ts +8 -0
- package/dist/consolidate/dag-summary.js +41 -0
- package/dist/consolidate/dag.d.ts +5 -28
- package/dist/consolidate/dag.js +29 -84
- package/dist/consolidate/decay.js +7 -19
- package/dist/consolidate/dedupe.d.ts +13 -52
- package/dist/consolidate/dedupe.js +18 -74
- package/dist/consolidate/flush-units.d.ts +3 -4
- package/dist/consolidate/flush-units.js +3 -3
- package/dist/consolidate/half-life-migration.d.ts +3 -26
- package/dist/consolidate/half-life-migration.js +11 -28
- package/dist/consolidate/llm-passes.js +49 -40
- package/dist/consolidate/memory-value-weights.d.ts +2 -13
- package/dist/consolidate/memory-value-weights.js +2 -13
- package/dist/consolidate/memory-value.d.ts +11 -84
- package/dist/consolidate/memory-value.js +18 -105
- package/dist/consolidate/merge.js +12 -33
- package/dist/consolidate/physics-pass.d.ts +6 -1
- package/dist/consolidate/physics-pass.js +27 -9
- package/dist/consolidate/replay.d.ts +6 -38
- package/dist/consolidate/replay.js +25 -56
- package/dist/consolidate/run.js +1 -1
- package/dist/consolidate/sleep.d.ts +1 -8
- package/dist/consolidate/sleep.js +13 -22
- package/dist/consolidate/trace.d.ts +3 -18
- package/dist/consolidate/trace.js +3 -18
- package/dist/consolidate/traces.js +9 -25
- package/dist/core/ablation.d.ts +14 -91
- package/dist/core/ablation.js +16 -91
- package/dist/core/active-scope.d.ts +7 -0
- package/dist/{sharing/scope.js → core/active-scope.js} +5 -12
- package/dist/core/ambient.d.ts +5 -8
- package/dist/core/ambient.js +40 -26
- package/dist/core/api-errors.d.ts +16 -0
- package/dist/core/api-errors.js +20 -0
- package/dist/core/capture-contract.d.ts +4 -2
- package/dist/core/capture-contract.js +4 -2
- package/dist/core/card.d.ts +4 -1
- package/dist/core/card.js +11 -1
- package/dist/core/compaction-timing.d.ts +7 -0
- package/dist/core/compaction-timing.js +9 -0
- package/dist/core/compare.d.ts +11 -67
- package/dist/core/compare.js +9 -63
- package/dist/core/config.d.ts +10 -24
- package/dist/core/config.js +20 -16
- package/dist/core/cosine.d.ts +3 -0
- package/dist/core/cosine.js +19 -0
- package/dist/core/handoff.d.ts +1 -7
- package/dist/core/handoff.js +1 -7
- package/dist/core/markdown.d.ts +6 -0
- package/dist/{store → core}/markdown.js +23 -22
- package/dist/core/memory-audit.d.ts +17 -0
- package/dist/core/memory-audit.js +54 -0
- package/dist/core/memory-quality.js +1 -1
- package/dist/core/memory.d.ts +51 -168
- package/dist/core/memory.js +76 -239
- package/dist/{consolidate → core}/merged-row.d.ts +1 -1
- package/dist/{consolidate → core}/merged-row.js +3 -2
- package/dist/core/package-root.d.ts +3 -0
- package/dist/core/package-root.js +5 -0
- package/dist/core/physics-config.d.ts +1 -4
- package/dist/core/physics-config.js +3 -8
- package/dist/core/physics.d.ts +15 -61
- package/dist/core/physics.js +65 -138
- package/dist/core/prediction.d.ts +3 -0
- package/dist/core/prediction.js +6 -0
- package/dist/core/project-identity.d.ts +20 -58
- package/dist/core/project-identity.js +27 -39
- package/dist/core/project-remote.js +13 -2
- package/dist/core/raw-append-only.d.ts +5 -0
- package/dist/core/raw-append-only.js +7 -0
- package/dist/core/recall-scope.d.ts +69 -0
- package/dist/core/recall-scope.js +138 -0
- package/dist/core/salience.d.ts +1 -7
- package/dist/core/salience.js +1 -7
- package/dist/dashboard/dashboard-actions.js +2 -2
- package/dist/dashboard/dashboard-snapshot.d.ts +2 -1
- package/dist/dashboard/dashboard-snapshot.js +11 -2
- package/dist/dashboard/dashboard-types.d.ts +2 -1
- package/dist/dashboard/dashboard.d.ts +1 -0
- package/dist/dashboard/dashboard.js +50 -4
- package/dist/db/busy.d.ts +3 -8
- package/dist/db/busy.js +37 -33
- package/dist/db/connect.js +7 -8
- package/dist/db/index.d.ts +3 -3
- package/dist/db/index.js +3 -3
- package/dist/db/migrate.js +3 -3
- 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 -5
- package/dist/db/migrations/v14.js +2 -3
- package/dist/db/migrations/v15.js +2 -8
- package/dist/db/migrations/v16.js +2 -3
- package/dist/db/migrations/v17.js +2 -3
- package/dist/db/migrations/v19.js +2 -5
- package/dist/db/migrations/v20.js +2 -7
- package/dist/db/migrations/v22.js +4 -17
- package/dist/db/migrations/v23.js +3 -14
- package/dist/db/migrations/v24.js +2 -4
- package/dist/db/migrations/v25.js +3 -8
- package/dist/db/migrations/v26.js +2 -13
- package/dist/db/migrations/v27.js +3 -11
- package/dist/db/migrations/v28.js +2 -14
- package/dist/db/migrations/v29.js +4 -18
- package/dist/db/migrations/v30.js +4 -16
- package/dist/db/migrations/v31.js +2 -15
- package/dist/db/migrations/v32.js +4 -22
- package/dist/db/migrations/v33.js +2 -15
- package/dist/db/migrations/v34.js +2 -11
- package/dist/db/migrations/v35.js +2 -11
- package/dist/db/migrations/v36.js +2 -11
- package/dist/db/migrations/v37.js +8 -33
- package/dist/db/migrations/v38.js +5 -38
- package/dist/db/migrations/v39.js +9 -20
- package/dist/db/migrations/v40.js +2 -9
- package/dist/db/migrations/v41.js +2 -24
- package/dist/db/migrations/v43.js +1 -1
- package/dist/db/migrations/v44.js +2 -8
- package/dist/db/migrations/v45.js +2 -7
- package/dist/db/migrations/v47.js +2 -3
- package/dist/db/migrations/v51.js +1 -1
- package/dist/db/migrations/v55.d.ts +3 -0
- package/dist/db/migrations/v55.js +17 -0
- package/dist/db/open.d.ts +2 -2
- package/dist/db/open.js +21 -9
- package/dist/db/physics-state.d.ts +6 -22
- package/dist/db/physics-state.js +28 -39
- package/dist/db/raw-archive-mirror-cleanup.d.ts +2 -17
- package/dist/db/raw-archive-mirror-cleanup.js +2 -17
- package/dist/db/tables.d.ts +2 -0
- package/dist/db/tables.js +6 -2
- package/dist/db/vector-store.d.ts +2 -0
- package/dist/db/vector-store.js +25 -5
- package/dist/db/wal-checkpointer.js +2 -1
- package/dist/doctor.js +85 -27
- package/dist/embeddings/local.d.ts +62 -0
- package/dist/embeddings/local.js +146 -0
- package/dist/embeddings/provider.d.ts +43 -0
- package/dist/{store/embeddings → embeddings}/provider.js +58 -83
- package/dist/embeddings/transformers.d.ts +26 -0
- package/dist/embeddings/transformers.js +89 -0
- package/dist/entry/session-text.d.ts +1 -1
- package/dist/entry/session-text.js +3 -2
- package/dist/eval/eval-stats.d.ts +15 -53
- package/dist/eval/eval-stats.js +12 -42
- package/dist/eval/eval-suite.d.ts +2 -13
- package/dist/eval/eval-suite.js +91 -45
- package/dist/eval/eval.d.ts +6 -24
- package/dist/eval/eval.js +8 -35
- package/dist/eval/judgment.d.ts +0 -3
- package/dist/eval/judgment.js +30 -15
- package/dist/extensions/openclaw-plugin/index.js +1 -1
- package/dist/graph/extract.d.ts +5 -27
- package/dist/graph/extract.js +10 -36
- package/dist/graph/recall.d.ts +7 -20
- package/dist/graph/recall.js +15 -77
- package/dist/graph/stream.d.ts +7 -39
- package/dist/graph/stream.js +11 -34
- package/dist/graph/view.d.ts +9 -35
- package/dist/graph/view.js +24 -44
- package/dist/graph/write.d.ts +1 -1
- package/dist/graph/write.js +9 -9
- package/dist/hooks/codex-session.js +3 -2
- package/dist/hooks/codex-wrapper.js +4 -3
- package/dist/hooks/copilot.js +2 -1
- package/dist/hooks/hook-blocks.d.ts +6 -2
- package/dist/hooks/hook-blocks.js +37 -124
- package/dist/hooks/json-hooks.d.ts +4 -36
- package/dist/hooks/json-hooks.js +22 -59
- package/dist/hooks/opencode.d.ts +0 -38
- package/dist/hooks/opencode.js +17 -81
- package/dist/hooks/shared.d.ts +6 -21
- package/dist/hooks/shared.js +31 -33
- package/dist/importers/core.d.ts +12 -37
- package/dist/importers/core.js +10 -28
- package/dist/importers/markdown-parse.d.ts +8 -22
- package/dist/importers/markdown-parse.js +8 -25
- package/dist/importers/markdown.js +3 -12
- package/dist/importers/sources.js +12 -39
- package/dist/importers/vault.d.ts +2 -8
- package/dist/importers/vault.js +31 -85
- package/dist/index.d.ts +8 -3
- package/dist/index.js +8 -3
- package/dist/learn/autolearn.d.ts +23 -42
- package/dist/learn/autolearn.js +45 -52
- package/dist/learn/churn-git.js +13 -4
- package/dist/learn/extract.d.ts +3 -2
- package/dist/learn/extract.js +8 -8
- package/dist/learn/forward-claim-detector.d.ts +6 -30
- package/dist/learn/forward-claim-detector.js +18 -68
- package/dist/learn/invalidation.d.ts +6 -18
- package/dist/learn/invalidation.js +18 -31
- package/dist/mcp/admin-tools.d.ts +2 -2
- package/dist/mcp/admin-tools.js +30 -53
- package/dist/mcp/format.js +3 -2
- package/dist/mcp/framing.d.ts +1 -0
- package/dist/mcp/framing.js +1 -1
- package/dist/mcp/memory-tools.js +7 -10
- package/dist/mcp/protocol.d.ts +15 -29
- package/dist/mcp/protocol.js +26 -16
- package/dist/mcp/recall-tools.js +14 -11
- package/dist/mcp/request.d.ts +3 -11
- package/dist/mcp/request.js +12 -27
- package/dist/mcp/server.d.ts +3 -9
- package/dist/mcp/server.js +5 -16
- package/dist/mcp/session-state.d.ts +1 -1
- package/dist/mcp/session-state.js +5 -11
- package/dist/mcp/stdio.d.ts +2 -6
- package/dist/mcp/stdio.js +68 -16
- package/dist/mcp/tool-args.js +2 -1
- package/dist/mcp/tools.js +47 -22
- package/dist/objects/customer-notes.d.ts +9 -44
- package/dist/objects/customer-notes.js +7 -48
- package/dist/objects/decisions.d.ts +14 -52
- package/dist/objects/decisions.js +15 -53
- package/dist/objects/descriptor.d.ts +1 -1
- package/dist/objects/incidents.d.ts +9 -40
- package/dist/objects/incidents.js +7 -41
- package/dist/objects/lifecycle.d.ts +1 -1
- package/dist/objects/lifecycle.js +2 -1
- package/dist/objects/policies.d.ts +13 -91
- package/dist/objects/policies.js +13 -99
- package/dist/objects/processes.d.ts +9 -54
- package/dist/objects/processes.js +7 -61
- package/dist/objects/project-briefs.d.ts +13 -57
- package/dist/objects/project-briefs.js +16 -78
- package/dist/objects/skills.d.ts +9 -44
- package/dist/objects/skills.js +8 -54
- package/dist/postinstall.js +7 -20
- package/dist/predictions/planning-fallacy.d.ts +11 -34
- package/dist/rerankers/clef.js +6 -37
- package/dist/rerankers/cross-encoder.d.ts +31 -2
- package/dist/rerankers/cross-encoder.js +65 -101
- package/dist/rerankers/index.js +5 -4
- package/dist/rerankers/jev.js +11 -10
- package/dist/rerankers/llm.d.ts +2 -11
- package/dist/rerankers/llm.js +14 -14
- package/dist/rerankers/outage-warning.d.ts +5 -2
- package/dist/rerankers/outage-warning.js +7 -4
- package/dist/rerankers/remote.d.ts +1 -0
- package/dist/rerankers/remote.js +2 -0
- package/dist/rerankers/types.d.ts +2 -14
- package/dist/search/bm25-search.js +1 -1
- package/dist/search/boosts.d.ts +0 -2
- package/dist/search/boosts.js +3 -3
- package/dist/search/embed-memories.d.ts +9 -0
- package/dist/search/embed-memories.js +377 -0
- package/dist/search/goal-boost.d.ts +23 -0
- package/dist/search/goal-boost.js +93 -0
- package/dist/search/hybrid.d.ts +11 -2
- package/dist/search/hybrid.js +9 -4
- package/dist/search/multihop.js +2 -3
- package/dist/search/path-context.d.ts +5 -18
- package/dist/search/path-context.js +5 -18
- package/dist/search/physics-search.d.ts +6 -3
- package/dist/search/physics-search.js +29 -19
- package/dist/search/rerank.js +1 -1
- package/dist/search/rrf.d.ts +7 -35
- package/dist/search/rrf.js +5 -30
- package/dist/search/vector.d.ts +13 -4
- package/dist/search/vector.js +40 -13
- package/dist/server/auth.d.ts +11 -28
- package/dist/server/auth.js +49 -32
- package/dist/server/boot.d.ts +2 -21
- package/dist/server/boot.js +69 -161
- package/dist/server/client-ip.d.ts +3 -21
- package/dist/server/client-ip.js +8 -30
- package/dist/server/deadline.d.ts +0 -2
- package/dist/server/deadline.js +1 -7
- package/dist/server/defaults.d.ts +4 -0
- package/dist/server/defaults.js +5 -0
- package/dist/server/key-check-bounds.d.ts +2 -1
- package/dist/server/lifecycle.d.ts +5 -4
- package/dist/server/lifecycle.js +19 -4
- package/dist/server/mcp-http.js +24 -53
- package/dist/server/rate-limit.d.ts +5 -18
- package/dist/server/rate-limit.js +4 -13
- package/dist/server/request.d.ts +4 -8
- package/dist/server/request.js +16 -19
- package/dist/server/route-checks.d.ts +7 -0
- package/dist/server/route-checks.js +42 -0
- package/dist/server/route-table.d.ts +9 -8
- package/dist/server/route-table.js +127 -139
- package/dist/server/routes/admin.d.ts +8 -8
- package/dist/server/routes/admin.js +35 -49
- package/dist/server/routes/customer-notes.d.ts +6 -6
- package/dist/server/routes/customer-notes.js +8 -14
- package/dist/server/routes/decisions.d.ts +6 -6
- package/dist/server/routes/decisions.js +12 -21
- package/dist/server/routes/incidents.d.ts +6 -6
- package/dist/server/routes/incidents.js +14 -25
- package/dist/server/routes/memories.d.ts +9 -9
- package/dist/server/routes/memories.js +20 -63
- package/dist/server/routes/object-routes.d.ts +6 -11
- package/dist/server/routes/object-routes.js +11 -22
- package/dist/server/routes/policies.d.ts +7 -7
- package/dist/server/routes/policies.js +12 -22
- package/dist/server/routes/predictions.d.ts +6 -6
- package/dist/server/routes/predictions.js +22 -38
- package/dist/server/routes/processes.d.ts +6 -6
- package/dist/server/routes/processes.js +17 -28
- package/dist/server/routes/project-briefs.d.ts +7 -7
- package/dist/server/routes/project-briefs.js +11 -20
- package/dist/server/routes/recall.d.ts +5 -5
- package/dist/server/routes/recall.js +16 -45
- package/dist/server/routes/skills.d.ts +7 -7
- package/dist/server/routes/skills.js +10 -22
- package/dist/server/server-detect.d.ts +15 -53
- package/dist/server/server-detect.js +55 -96
- package/dist/server/sleep-child.js +26 -7
- package/dist/server/sleep-offload.d.ts +11 -5
- package/dist/server/sleep-offload.js +21 -12
- package/dist/server/types.d.ts +32 -18
- package/dist/server/validation.d.ts +3 -2
- package/dist/server/validation.js +15 -33
- package/dist/server.d.ts +7 -6
- package/dist/server.js +8 -6
- package/dist/sharing/global-store.d.ts +19 -0
- package/dist/sharing/global-store.js +75 -0
- package/dist/sharing/global-sync.d.ts +6 -0
- package/dist/sharing/global-sync.js +73 -0
- package/dist/sharing/project-merge.d.ts +11 -19
- package/dist/sharing/project-merge.js +63 -125
- package/dist/sharing/search-both.d.ts +60 -0
- package/dist/sharing/search-both.js +138 -0
- package/dist/sharing/share.d.ts +40 -0
- package/dist/sharing/share.js +229 -0
- package/dist/store/ambient.js +9 -15
- package/dist/store/audit-event.d.ts +5 -13
- package/dist/store/audit-event.js +4 -12
- package/dist/store/audit.d.ts +2 -21
- package/dist/store/audit.js +8 -67
- package/dist/store/auth.d.ts +10 -8
- package/dist/store/auth.js +17 -12
- package/dist/store/candidates.d.ts +23 -5
- package/dist/store/candidates.js +119 -71
- package/dist/store/capture-write.d.ts +17 -0
- package/dist/store/capture-write.js +35 -0
- package/dist/store/card-detail.d.ts +2 -1
- package/dist/store/card-detail.js +2 -1
- package/dist/store/cards.d.ts +14 -9
- package/dist/store/cards.js +72 -126
- package/dist/store/compaction-caller.d.ts +18 -0
- package/dist/store/compaction-caller.js +29 -0
- package/dist/store/compactions-record.d.ts +115 -0
- package/dist/store/compactions-record.js +417 -0
- package/dist/store/compactions.js +6 -4
- package/dist/store/conflicts.d.ts +4 -21
- package/dist/store/conflicts.js +76 -152
- package/dist/store/connectors/dlq.d.ts +10 -0
- package/dist/store/connectors/dlq.js +32 -0
- package/dist/store/connectors/github.d.ts +14 -16
- package/dist/store/connectors/github.js +34 -57
- package/dist/store/connectors/slack.d.ts +2 -11
- package/dist/store/connectors/slack.js +18 -47
- package/dist/store/dashboard-reads.js +11 -14
- package/dist/store/delete-and-batch.d.ts +17 -31
- package/dist/store/delete-and-batch.js +84 -67
- package/dist/store/delivery-recorder.d.ts +15 -4
- package/dist/store/delivery-recorder.js +34 -17
- package/dist/store/descendant-page.js +6 -3
- package/dist/store/diagnostics.js +6 -13
- package/dist/store/dormant.d.ts +8 -30
- package/dist/store/dormant.js +18 -57
- package/dist/store/embeddings/index.d.ts +11 -90
- package/dist/store/embeddings/index.js +18 -523
- package/dist/store/entry-reads.d.ts +34 -61
- package/dist/store/entry-reads.js +111 -136
- package/dist/store/entry-row.d.ts +6 -35
- package/dist/store/entry-row.js +9 -37
- package/dist/store/entry-writes.d.ts +12 -18
- package/dist/store/entry-writes.js +46 -44
- package/dist/store/failure-log-at.d.ts +8 -0
- package/dist/store/failure-log-at.js +16 -0
- package/dist/store/failure-log.d.ts +2 -2
- package/dist/store/failure-log.js +5 -3
- package/dist/{trust → store}/gated-write.d.ts +3 -1
- package/dist/{trust → store}/gated-write.js +7 -5
- package/dist/store/goals.d.ts +3 -40
- package/dist/store/goals.js +41 -178
- package/dist/store/graph-queue.d.ts +6 -22
- package/dist/store/graph-queue.js +14 -45
- package/dist/store/graph-reads.d.ts +11 -35
- package/dist/store/graph-reads.js +24 -60
- package/dist/store/graph-rows.d.ts +3 -6
- package/dist/store/graph-rows.js +6 -9
- package/dist/store/graph-view-rows.d.ts +2 -1
- package/dist/store/graph-view-rows.js +2 -1
- package/dist/store/graph-writes.d.ts +10 -35
- package/dist/store/graph-writes.js +59 -106
- package/dist/store/half-life.d.ts +2 -1
- package/dist/store/half-life.js +14 -16
- package/dist/store/handoffs.d.ts +6 -12
- package/dist/store/handoffs.js +22 -40
- package/dist/store/index-and-stats.d.ts +6 -19
- package/dist/store/index-and-stats.js +36 -84
- package/dist/store/key-writes.js +1 -1
- package/dist/store/ledger-turn.d.ts +9 -0
- package/dist/store/ledger-turn.js +38 -0
- package/dist/store/mirrors.d.ts +2 -6
- package/dist/store/mirrors.js +24 -29
- package/dist/store/open.d.ts +0 -4
- package/dist/store/open.js +42 -62
- package/dist/store/pilot-arm.d.ts +12 -0
- package/dist/store/pilot-arm.js +42 -0
- package/dist/store/planning-fallacy-evidence.d.ts +2 -30
- package/dist/store/planning-fallacy-evidence.js +8 -37
- package/dist/store/port.d.ts +91 -82
- package/dist/store/port.js +8 -0
- package/dist/store/predictions.d.ts +12 -53
- package/dist/store/predictions.js +41 -125
- package/dist/store/project-tags.d.ts +62 -0
- package/dist/store/project-tags.js +67 -0
- package/dist/{cli → store}/quality-repair.js +15 -31
- package/dist/store/quarantine.js +2 -1
- package/dist/store/raw-archive.d.ts +4 -16
- package/dist/store/raw-archive.js +14 -29
- package/dist/store/recall-trace.d.ts +12 -77
- package/dist/store/recall-trace.js +37 -97
- package/dist/store/rejected-values.js +9 -20
- package/dist/store/rejection-probe.d.ts +4 -0
- package/dist/store/rejection-probe.js +19 -0
- package/dist/store/rejection.d.ts +10 -73
- package/dist/store/rejection.js +12 -84
- package/dist/store/report-reads.d.ts +6 -0
- package/dist/store/report-reads.js +29 -0
- package/dist/store/rows.d.ts +9 -19
- package/dist/store/rows.js +36 -34
- package/dist/store/rule-sql.d.ts +14 -0
- package/dist/store/rule-sql.js +56 -0
- package/dist/store/search-rows.d.ts +7 -38
- package/dist/store/search-rows.js +23 -54
- package/dist/store/sessions.d.ts +10 -47
- package/dist/store/sessions.js +21 -75
- package/dist/store/set-aside.d.ts +14 -0
- package/dist/store/set-aside.js +23 -0
- package/dist/store/sqlite/busy.d.ts +3 -0
- package/dist/store/sqlite/busy.js +8 -0
- package/dist/store/sqlite/connector-events-group.js +5 -8
- package/dist/store/sqlite/connector-writes-group.js +3 -3
- package/dist/store/sqlite/entry-writes-group.js +4 -4
- package/dist/store/sqlite/error-codec.js +8 -5
- package/dist/store/sqlite/executor.d.ts +2 -1
- package/dist/store/sqlite/executor.js +12 -5
- package/dist/store/sqlite/graph-reads-group.js +1 -1
- package/dist/store/sqlite/held-connection.d.ts +9 -0
- package/dist/store/sqlite/held-connection.js +41 -0
- package/dist/store/sqlite/local.d.ts +3 -3
- package/dist/store/sqlite/local.js +1 -0
- package/dist/store/sqlite/object-rows.d.ts +1 -1
- package/dist/store/sqlite/object-rows.js +6 -3
- package/dist/store/sqlite/objects-group.d.ts +1 -1
- package/dist/store/sqlite/objects-group.js +5 -3
- package/dist/store/sqlite/quarantine-group.js +2 -2
- package/dist/store/sqlite/store.d.ts +1 -4
- package/dist/store/sqlite/store.js +16 -15
- package/dist/store/sqlite/vector-reads-group.js +2 -2
- package/dist/store/sqlite/worker-jobs.js +1 -1
- package/dist/store/sqlite/worker-ops.d.ts +13 -2
- package/dist/store/sqlite/worker-ops.js +13 -2
- package/dist/store/sqlite/worker-store.js +5 -2
- package/dist/store/summaries.d.ts +11 -63
- package/dist/store/summaries.js +37 -148
- package/dist/store/summary-dirty.js +1 -1
- package/dist/store/tenant-lookup.d.ts +6 -1
- package/dist/store/tenant-lookup.js +7 -0
- package/dist/store/tenant.d.ts +2 -16
- package/dist/store/tenant.js +4 -19
- package/dist/store/token-ledger.d.ts +13 -50
- package/dist/store/token-ledger.js +19 -85
- package/dist/store/usage-reports.js +5 -13
- package/dist/store/vector-index.d.ts +46 -0
- package/dist/store/vector-index.js +171 -0
- package/dist/store/working-memory.d.ts +6 -25
- package/dist/store/working-memory.js +18 -52
- package/dist/support-bundle.js +9 -8
- package/dist/trust/reject-flow.js +3 -5
- package/dist/util/agent-homes.d.ts +15 -0
- package/dist/util/agent-homes.js +34 -0
- package/dist/util/anthropic-messages.d.ts +3 -0
- package/dist/util/anthropic-messages.js +35 -6
- package/dist/util/atomic-write.d.ts +2 -1
- package/dist/util/atomic-write.js +35 -4
- package/dist/util/capped-json.d.ts +6 -0
- package/dist/util/capped-json.js +46 -0
- package/dist/util/chunked.d.ts +3 -0
- package/dist/util/chunked.js +10 -0
- package/dist/util/crash-handlers.d.ts +8 -1
- package/dist/util/crash-handlers.js +52 -10
- package/dist/util/ellipsize.d.ts +3 -0
- package/dist/util/ellipsize.js +5 -0
- package/dist/util/env.d.ts +14 -6
- package/dist/util/env.js +15 -7
- package/dist/util/format.d.ts +3 -0
- package/dist/util/format.js +6 -0
- package/dist/util/home-path.d.ts +2 -1
- package/dist/util/home-path.js +4 -2
- package/dist/util/hook-payload.d.ts +8 -0
- package/dist/util/hook-payload.js +37 -0
- package/dist/util/http-retry.d.ts +9 -1
- package/dist/util/http-retry.js +67 -8
- package/dist/util/http-util.d.ts +0 -8
- package/dist/util/http-util.js +10 -21
- package/dist/util/limits.d.ts +7 -0
- package/dist/util/limits.js +14 -0
- package/dist/util/log.d.ts +7 -2
- package/dist/util/log.js +34 -9
- package/dist/util/request-scope.d.ts +5 -2
- package/dist/util/request-scope.js +13 -7
- package/dist/util/secret-detect.d.ts +5 -30
- package/dist/util/secret-detect.js +19 -40
- package/dist/util/sqlite-blocked.d.ts +2 -0
- package/dist/util/sqlite-blocked.js +5 -0
- package/dist/util/stored-json.d.ts +1 -1
- package/dist/util/stored-json.js +1 -1
- package/dist/util/stream-tee.d.ts +3 -0
- package/dist/util/stream-tee.js +35 -0
- package/dist/util/time.d.ts +4 -0
- package/dist/util/time.js +4 -0
- package/dist/util/token-text.d.ts +1 -4
- package/dist/util/token-text.js +1 -4
- package/dist/util/transcript-tail.d.ts +2 -0
- package/dist/util/transcript-tail.js +24 -23
- package/dist/util/version.d.ts +5 -20
- package/dist/util/version.js +5 -20
- package/dist/{store → util}/yaml.d.ts +1 -5
- package/dist/{store → util}/yaml.js +2 -6
- package/extensions/openclaw-plugin/index.ts +1 -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 -2
- package/dist/cli/provenance-coverage.d.ts +0 -18
- package/dist/connectors/github/cli-impl.d.ts +0 -25
- package/dist/sharing/scope.d.ts +0 -14
- package/dist/sharing/shared.d.ts +0 -187
- package/dist/sharing/shared.js +0 -563
- package/dist/store/embeddings/local.d.ts +0 -15
- package/dist/store/embeddings/local.js +0 -192
- package/dist/store/embeddings/provider.d.ts +0 -77
- package/dist/store/markdown.d.ts +0 -10
- package/dist/store/recall-scope.d.ts +0 -138
- package/dist/store/recall-scope.js +0 -216
- package/dist/store/vector-writes.d.ts +0 -13
- package/dist/store/vector-writes.js +0 -89
- /package/dist/{store → core}/object-types.d.ts +0 -0
- /package/dist/{store → core}/object-types.js +0 -0
- /package/dist/{cli → store}/quality-repair.d.ts +0 -0
- /package/dist/{capture → util}/compaction-items.d.ts +0 -0
- /package/dist/{capture → util}/compaction-items.js +0 -0
|
@@ -2,31 +2,31 @@
|
|
|
2
2
|
import { withWriteScope } from '../../db/index.js';
|
|
3
3
|
import { archiveRawMemory } from '../raw-archive.js';
|
|
4
4
|
import { onHandle } from '../open.js';
|
|
5
|
-
|
|
5
|
+
import { getDlqRow, insertDlqRow, listDlqRows, markDlqRetried } from './dlq.js';
|
|
6
|
+
export function githubEventSeenAt(db, idempotencyKey) {
|
|
6
7
|
const row = db.prepare(`SELECT 1 FROM github_event_log WHERE idempotency_key = ?`).get(idempotencyKey);
|
|
7
8
|
return !!row;
|
|
8
9
|
}
|
|
9
|
-
export function
|
|
10
|
+
export function githubEventMemoryAt(db, idempotencyKey) {
|
|
10
11
|
// SAFETY: the SELECT projects exactly the memory_id column of github_event_log.
|
|
11
12
|
const row = db.prepare(`SELECT memory_id FROM github_event_log WHERE idempotency_key = ?`).get(idempotencyKey);
|
|
12
13
|
return row?.memory_id ?? null;
|
|
13
14
|
}
|
|
14
15
|
/** False when the key was already logged, so a caller inside a write scope can roll its own row back. */
|
|
15
|
-
export function
|
|
16
|
+
export function markGitHubEventSeenAt(db, entry) {
|
|
16
17
|
const inserted = db.prepare(`INSERT OR IGNORE INTO github_event_log (idempotency_key, delivery_id, event_name, ingested_at, memory_id) VALUES (?, ?, ?, ?, ?)`).run(entry.idempotencyKey, entry.deliveryId, entry.eventName, new Date().toISOString(), entry.memoryId);
|
|
17
18
|
return Number(inserted.changes ?? 0) !== 0;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return onHandle(hippoRoot, (db) => eventSeenAt(db, idempotencyKey) ? { memoryId: eventMemoryAt(db, idempotencyKey) } : null);
|
|
20
|
+
export function githubEventRecord(hippoRoot, idempotencyKey) {
|
|
21
|
+
return onHandle(hippoRoot, (db) => githubEventSeenAt(db, idempotencyKey) ? { seen: true, memoryId: githubEventMemoryAt(db, idempotencyKey) } : { seen: false });
|
|
22
22
|
}
|
|
23
|
-
export function
|
|
24
|
-
onHandle(hippoRoot, (db) => {
|
|
23
|
+
export function markGitHubEventSeen(hippoRoot, entry) {
|
|
24
|
+
onHandle(hippoRoot, (db) => { markGitHubEventSeenAt(db, entry); });
|
|
25
25
|
}
|
|
26
26
|
/** Archives every active raw row of one tenant's artifact and logs the delete event; a failed archive rolls back the batch and the log row. */
|
|
27
27
|
export function archiveDeletedArtifact(hippoRoot, del) {
|
|
28
28
|
return onHandle(hippoRoot, (db) => {
|
|
29
|
-
if (
|
|
29
|
+
if (githubEventSeenAt(db, del.idempotencyKey))
|
|
30
30
|
return { duplicate: true, archived: 0 };
|
|
31
31
|
const logged = { idempotencyKey: del.idempotencyKey, deliveryId: del.deliveryId, eventName: del.eventName };
|
|
32
32
|
// SAFETY: the SELECT projects only the `id` column.
|
|
@@ -36,29 +36,17 @@ export function archiveDeletedArtifact(hippoRoot, del) {
|
|
|
36
36
|
const memoryIds = rows.map((r) => r.id);
|
|
37
37
|
if (memoryIds.length === 0) {
|
|
38
38
|
// Still logged, so a retry of the same delete answers 'duplicate'.
|
|
39
|
-
|
|
39
|
+
markGitHubEventSeenAt(db, { ...logged, memoryId: null });
|
|
40
40
|
return { duplicate: false, archived: 0 };
|
|
41
41
|
}
|
|
42
42
|
withWriteScope(db, 'github_delete_all', () => {
|
|
43
43
|
for (const id of memoryIds)
|
|
44
44
|
archiveRawMemory(db, id, { reason: del.reason, who: del.who });
|
|
45
|
-
|
|
45
|
+
markGitHubEventSeenAt(db, { ...logged, memoryId: memoryIds[0] });
|
|
46
46
|
});
|
|
47
47
|
return { duplicate: false, archived: memoryIds.length };
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
|
-
function insertDlqAt(db, row) {
|
|
51
|
-
const result = db
|
|
52
|
-
.prepare(`INSERT INTO github_dlq
|
|
53
|
-
(tenant_id, raw_payload, error, event_name, delivery_id, signature,
|
|
54
|
-
installation_id, repo_full_name, received_at, bucket)
|
|
55
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
56
|
-
.run(row.tenantId, row.rawPayload, row.error, row.eventName ?? null, row.deliveryId ?? null, row.signature, row.installationId ?? null, row.repoFullName ?? null, new Date().toISOString(), row.bucket);
|
|
57
|
-
return Number(result.lastInsertRowid);
|
|
58
|
-
}
|
|
59
|
-
export function insertDlq(hippoRoot, row) {
|
|
60
|
-
return onHandle(hippoRoot, (db) => insertDlqAt(db, row));
|
|
61
|
-
}
|
|
62
50
|
const SELECT_COLUMNS = `id, tenant_id, raw_payload, error, event_name, delivery_id,
|
|
63
51
|
signature, installation_id, repo_full_name, retry_count,
|
|
64
52
|
received_at, retried_at, bucket`;
|
|
@@ -79,42 +67,31 @@ function rowToItem(r) {
|
|
|
79
67
|
bucket: r.bucket == null ? 'parse_error' : String(r.bucket),
|
|
80
68
|
};
|
|
81
69
|
}
|
|
82
|
-
function
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
.get(id);
|
|
103
|
-
if (!row)
|
|
104
|
-
return null;
|
|
105
|
-
return rowToItem(row);
|
|
106
|
-
}
|
|
107
|
-
export function dlqEntry(hippoRoot, id) {
|
|
108
|
-
return onHandle(hippoRoot, (db) => dlqEntryAt(db, id));
|
|
109
|
-
}
|
|
110
|
-
export function bumpDlqRetry(hippoRoot, id) {
|
|
111
|
-
onHandle(hippoRoot, (db) => {
|
|
112
|
-
db.prepare(`UPDATE github_dlq
|
|
113
|
-
SET retry_count = retry_count + 1,
|
|
114
|
-
retried_at = ?
|
|
115
|
-
WHERE id = ?`).run(new Date().toISOString(), id);
|
|
70
|
+
export function insertGitHubDlq(hippoRoot, row) {
|
|
71
|
+
return onHandle(hippoRoot, (db) => insertDlqRow(db, 'github_dlq', [
|
|
72
|
+
['tenant_id', row.tenantId],
|
|
73
|
+
['raw_payload', row.rawPayload],
|
|
74
|
+
['error', row.error],
|
|
75
|
+
['event_name', row.eventName ?? null],
|
|
76
|
+
['delivery_id', row.deliveryId ?? null],
|
|
77
|
+
['signature', row.signature],
|
|
78
|
+
['installation_id', row.installationId ?? null],
|
|
79
|
+
['repo_full_name', row.repoFullName ?? null],
|
|
80
|
+
['bucket', row.bucket],
|
|
81
|
+
]));
|
|
82
|
+
}
|
|
83
|
+
export function listGitHubDlq(hippoRoot, tenantId, limit) {
|
|
84
|
+
return onHandle(hippoRoot, (db) => listDlqRows(db, 'github_dlq', SELECT_COLUMNS, tenantId, limit).map(rowToItem));
|
|
85
|
+
}
|
|
86
|
+
export function githubDlqEntry(hippoRoot, id) {
|
|
87
|
+
return onHandle(hippoRoot, (db) => {
|
|
88
|
+
const row = getDlqRow(db, 'github_dlq', SELECT_COLUMNS, id);
|
|
89
|
+
return row ? rowToItem(row) : null;
|
|
116
90
|
});
|
|
117
91
|
}
|
|
92
|
+
export function markGitHubDlqRetried(hippoRoot, id) {
|
|
93
|
+
onHandle(hippoRoot, (db) => markDlqRetried(db, 'github_dlq', id));
|
|
94
|
+
}
|
|
118
95
|
export function githubRouting(hippoRoot, args) {
|
|
119
96
|
return onHandle(hippoRoot, (db) => {
|
|
120
97
|
// SAFETY: the SELECT projects exactly one column, `c`, as a COUNT(*).
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DatabaseSyncLike } from '../../db/index.js';
|
|
2
|
+
import type { ConnectorEventRecord } from '../port.js';
|
|
2
3
|
export declare function slackCursorAt(db: DatabaseSyncLike, tenantId: string, channelId: string): string | null;
|
|
3
4
|
export declare function saveSlackCursorAt(db: DatabaseSyncLike, tenantId: string, channelId: string, latestTs: string): void;
|
|
4
5
|
export declare function slackCursor(hippoRoot: string, tenantId: string, channelId: string): string | null;
|
|
@@ -7,14 +8,7 @@ export declare function slackEventSeenAt(db: DatabaseSyncLike, eventId: string):
|
|
|
7
8
|
/** Records the event unless a row already holds its id; false means another writer got there first. */
|
|
8
9
|
export declare function markSlackEventSeenAt(db: DatabaseSyncLike, eventId: string, memoryId: string | null): boolean;
|
|
9
10
|
export declare function slackEventMemoryAt(db: DatabaseSyncLike, eventId: string): string | null;
|
|
10
|
-
|
|
11
|
-
export type SlackEventRecord = {
|
|
12
|
-
seen: false;
|
|
13
|
-
} | {
|
|
14
|
-
seen: true;
|
|
15
|
-
memoryId: string | null;
|
|
16
|
-
};
|
|
17
|
-
export declare function slackEventRecord(hippoRoot: string, eventId: string): SlackEventRecord;
|
|
11
|
+
export declare function slackEventRecord(hippoRoot: string, eventId: string): ConnectorEventRecord;
|
|
18
12
|
export declare function markSlackEventSeen(hippoRoot: string, eventId: string, memoryId: string | null): void;
|
|
19
13
|
/** The raw memory a Slack message became. The tenant filter keeps one tenant's deletion from reaching another's row with the same ref. */
|
|
20
14
|
export declare function rawMemoryIdForArtifactAt(db: DatabaseSyncLike, artifactRef: string, tenantId: string): string | null;
|
|
@@ -42,13 +36,10 @@ export interface SlackDlqInsert {
|
|
|
42
36
|
signature: string | null;
|
|
43
37
|
slackTimestamp?: string | null;
|
|
44
38
|
}
|
|
45
|
-
/** Counts a failed replay and leaves `retried_at` alone, so the row still reads as never drained. */
|
|
46
|
-
export declare function bumpSlackDlqRetryCountAt(db: DatabaseSyncLike, id: number): void;
|
|
47
39
|
export declare function insertSlackDlq(hippoRoot: string, row: SlackDlqInsert): number;
|
|
48
40
|
export declare function listSlackDlq(hippoRoot: string, tenantId: string, limit: number): DlqItem[];
|
|
49
41
|
export declare function slackDlqEntry(hippoRoot: string, id: number): DlqItem | null;
|
|
50
42
|
export declare function markSlackDlqRetried(hippoRoot: string, id: number): void;
|
|
51
|
-
export declare function bumpSlackDlqRetryCount(hippoRoot: string, id: number): void;
|
|
52
43
|
/** The tenant a team maps to, or how many workspaces are registered when it maps to none. */
|
|
53
44
|
export type SlackTeamRoute = {
|
|
54
45
|
tenantId: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Every statement the Slack connector runs on hippo.db: backfill cursors, the event log, the dead-letter queue and workspace routing.
|
|
2
2
|
// `xAt(db, ...)` runs on the caller's handle; the same name without `At` opens hippo.db for that one call.
|
|
3
3
|
import { onHandle } from '../open.js';
|
|
4
|
+
import { getDlqRow, insertDlqRow, listDlqRows, markDlqRetried } from './dlq.js';
|
|
4
5
|
// Backfill cursors
|
|
5
6
|
export function slackCursorAt(db, tenantId, channelId) {
|
|
6
7
|
// SAFETY: the SELECT names the single `latest_ts` column; sqlite returns undefined when no row matches.
|
|
@@ -51,6 +52,8 @@ export function rawMemoryIdForArtifactAt(db, artifactRef, tenantId) {
|
|
|
51
52
|
.get(artifactRef, tenantId);
|
|
52
53
|
return row?.id ?? null;
|
|
53
54
|
}
|
|
55
|
+
const SELECT_COLUMNS = `id, tenant_id, team_id, raw_payload, error, received_at, retried_at,
|
|
56
|
+
bucket, retry_count, signature, slack_timestamp`;
|
|
54
57
|
function rowToItem(r) {
|
|
55
58
|
return {
|
|
56
59
|
id: Number(r.id),
|
|
@@ -66,60 +69,28 @@ function rowToItem(r) {
|
|
|
66
69
|
slackTimestamp: r.slack_timestamp == null ? null : String(r.slack_timestamp),
|
|
67
70
|
};
|
|
68
71
|
}
|
|
69
|
-
function insertSlackDlqAt(db, row) {
|
|
70
|
-
const result = db
|
|
71
|
-
.prepare(`INSERT INTO slack_dlq
|
|
72
|
-
(tenant_id, team_id, raw_payload, error, received_at, bucket, signature, slack_timestamp)
|
|
73
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
74
|
-
.run(row.tenantId, row.teamId ?? null, row.rawPayload, row.error, new Date().toISOString(), row.bucket, row.signature, row.slackTimestamp ?? null);
|
|
75
|
-
return Number(result.lastInsertRowid);
|
|
76
|
-
}
|
|
77
|
-
function listSlackDlqAt(db, tenantId, limit) {
|
|
78
|
-
// SAFETY: row shape matches the columns named in the SELECT below.
|
|
79
|
-
const rows = db
|
|
80
|
-
.prepare(`SELECT id, tenant_id, team_id, raw_payload, error, received_at, retried_at,
|
|
81
|
-
bucket, retry_count, signature, slack_timestamp
|
|
82
|
-
FROM slack_dlq
|
|
83
|
-
WHERE tenant_id = ?
|
|
84
|
-
ORDER BY received_at ASC
|
|
85
|
-
LIMIT ?`)
|
|
86
|
-
.all(tenantId, limit);
|
|
87
|
-
return rows.map(rowToItem);
|
|
88
|
-
}
|
|
89
|
-
function slackDlqEntryAt(db, id) {
|
|
90
|
-
// SAFETY: row shape matches the columns named in the SELECT below.
|
|
91
|
-
const row = db
|
|
92
|
-
.prepare(`SELECT id, tenant_id, team_id, raw_payload, error, received_at, retried_at,
|
|
93
|
-
bucket, retry_count, signature, slack_timestamp
|
|
94
|
-
FROM slack_dlq
|
|
95
|
-
WHERE id = ?`)
|
|
96
|
-
.get(id);
|
|
97
|
-
if (!row)
|
|
98
|
-
return null;
|
|
99
|
-
return rowToItem(row);
|
|
100
|
-
}
|
|
101
|
-
function markSlackDlqRetriedAt(db, id) {
|
|
102
|
-
db.prepare(`UPDATE slack_dlq SET retried_at = ?, retry_count = retry_count + 1 WHERE id = ?`)
|
|
103
|
-
.run(new Date().toISOString(), id);
|
|
104
|
-
}
|
|
105
|
-
/** Counts a failed replay and leaves `retried_at` alone, so the row still reads as never drained. */
|
|
106
|
-
export function bumpSlackDlqRetryCountAt(db, id) {
|
|
107
|
-
db.prepare(`UPDATE slack_dlq SET retry_count = retry_count + 1 WHERE id = ?`).run(id);
|
|
108
|
-
}
|
|
109
72
|
export function insertSlackDlq(hippoRoot, row) {
|
|
110
|
-
return onHandle(hippoRoot, (db) =>
|
|
73
|
+
return onHandle(hippoRoot, (db) => insertDlqRow(db, 'slack_dlq', [
|
|
74
|
+
['tenant_id', row.tenantId],
|
|
75
|
+
['team_id', row.teamId ?? null],
|
|
76
|
+
['raw_payload', row.rawPayload],
|
|
77
|
+
['error', row.error],
|
|
78
|
+
['bucket', row.bucket],
|
|
79
|
+
['signature', row.signature],
|
|
80
|
+
['slack_timestamp', row.slackTimestamp ?? null],
|
|
81
|
+
]));
|
|
111
82
|
}
|
|
112
83
|
export function listSlackDlq(hippoRoot, tenantId, limit) {
|
|
113
|
-
return onHandle(hippoRoot, (db) =>
|
|
84
|
+
return onHandle(hippoRoot, (db) => listDlqRows(db, 'slack_dlq', SELECT_COLUMNS, tenantId, limit).map(rowToItem));
|
|
114
85
|
}
|
|
115
86
|
export function slackDlqEntry(hippoRoot, id) {
|
|
116
|
-
return onHandle(hippoRoot, (db) =>
|
|
87
|
+
return onHandle(hippoRoot, (db) => {
|
|
88
|
+
const row = getDlqRow(db, 'slack_dlq', SELECT_COLUMNS, id);
|
|
89
|
+
return row ? rowToItem(row) : null;
|
|
90
|
+
});
|
|
117
91
|
}
|
|
118
92
|
export function markSlackDlqRetried(hippoRoot, id) {
|
|
119
|
-
onHandle(hippoRoot, (db) =>
|
|
120
|
-
}
|
|
121
|
-
export function bumpSlackDlqRetryCount(hippoRoot, id) {
|
|
122
|
-
onHandle(hippoRoot, (db) => bumpSlackDlqRetryCountAt(db, id));
|
|
93
|
+
onHandle(hippoRoot, (db) => markDlqRetried(db, 'slack_dlq', id));
|
|
123
94
|
}
|
|
124
95
|
export function slackTeamRouteAt(db, teamId) {
|
|
125
96
|
// SAFETY: the SELECT names only `tenant_id`; .get() returns undefined when no row matches.
|
|
@@ -5,10 +5,11 @@ import { withReadSnapshot } from '../db/busy.js';
|
|
|
5
5
|
import { pragmaDataVersion } from '../db/meta.js';
|
|
6
6
|
import { tableExists } from '../db/tables.js';
|
|
7
7
|
import { storedVectorIds } from '../db/vector-store.js';
|
|
8
|
-
import { openStore } from './open.js';
|
|
8
|
+
import { onHandle, openStore } from './open.js';
|
|
9
9
|
import { QUARANTINE_SCOPE_PREFIX } from './quarantine.js';
|
|
10
10
|
import { parseJsonArray } from './rows.js';
|
|
11
|
-
const LIVE_COLUMNS = 'id, created, last_retrieved, retrieval_count, half_life_days, layer, tags_json, emotional_valence, outcome_positive,
|
|
11
|
+
const LIVE_COLUMNS = 'id, created, last_retrieved, retrieval_count, half_life_days, layer, tags_json, emotional_valence, outcome_positive, ' +
|
|
12
|
+
'outcome_negative, pinned, confidence, content, superseded_by, kind, scope, origin_project';
|
|
12
13
|
// SQL twins of isQuarantineScope and of the two halves of isLiveMemory; substr compares bytes, as startsWith does, where LIKE would fold case.
|
|
13
14
|
const QUARANTINED = `(scope IS NOT NULL AND substr(scope, 1, ${QUARANTINE_SCOPE_PREFIX.length}) = '${QUARANTINE_SCOPE_PREFIX}')`;
|
|
14
15
|
const SUPERSEDED_BY = `(superseded_by IS NOT NULL AND superseded_by <> '')`;
|
|
@@ -24,7 +25,7 @@ function toDashboardRow(row) {
|
|
|
24
25
|
retrieval_count: Number(row.retrieval_count ?? 0),
|
|
25
26
|
half_life_days: Number(row.half_life_days ?? 7),
|
|
26
27
|
layer: row.layer,
|
|
27
|
-
tags: parseJsonArray(row.tags_json),
|
|
28
|
+
tags: parseJsonArray(row.tags_json, { table: 'memories', id: row.id, column: 'tags_json' }),
|
|
28
29
|
emotional_valence: row.emotional_valence ?? 'neutral',
|
|
29
30
|
outcome_positive: Number(row.outcome_positive ?? 0),
|
|
30
31
|
outcome_negative: Number(row.outcome_negative ?? 0),
|
|
@@ -39,27 +40,23 @@ function toDashboardRow(row) {
|
|
|
39
40
|
}
|
|
40
41
|
/** One tenant's live rows and the counts of the rest, read in one transaction so the two agree. */
|
|
41
42
|
export function loadDashboardRows(hippoRoot, tenantId) {
|
|
42
|
-
|
|
43
|
-
try {
|
|
43
|
+
return onHandle(hippoRoot, (db) => {
|
|
44
44
|
return withReadSnapshot(db, () => {
|
|
45
45
|
// SAFETY: the SELECT names exactly LiveRow's columns.
|
|
46
46
|
const live = db.prepare(`SELECT ${LIVE_COLUMNS} FROM memories WHERE tenant_id = ? AND ${LIVE} ORDER BY created ASC, id ASC`).all(tenantId);
|
|
47
47
|
// SAFETY: the SELECT names exactly these two fields, and `why` is one of the three CASE arms or NULL.
|
|
48
|
-
const counts = db.prepare(`
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
`).all(tenantId);
|
|
48
|
+
const counts = db.prepare(`\n SELECT CASE WHEN ${QUARANTINED} THEN 'quarantined' ` +
|
|
49
|
+
`WHEN ${SUPERSEDED_BY} OR ${KIND} = 'superseded' THEN 'superseded' ` +
|
|
50
|
+
`WHEN ${KIND} = 'archived' THEN 'archived' END AS why,\n` +
|
|
51
|
+
` COUNT(*) AS n\n` +
|
|
52
|
+
` FROM memories WHERE tenant_id = ? AND NOT (${LIVE}) GROUP BY why\n `).all(tenantId);
|
|
53
53
|
const excluded = { superseded: 0, archived: 0, quarantined: 0 };
|
|
54
54
|
for (const { why, n } of counts)
|
|
55
55
|
if (why !== null)
|
|
56
56
|
excluded[why] = Number(n);
|
|
57
57
|
return { live: live.map(toDashboardRow), excluded };
|
|
58
58
|
});
|
|
59
|
-
}
|
|
60
|
-
finally {
|
|
61
|
-
closeHippoDb(db);
|
|
62
|
-
}
|
|
59
|
+
}, openStore);
|
|
63
60
|
}
|
|
64
61
|
/** The dashboard's one read-only connection, kept across refreshes for the commit signal; it opens on the first read that finds a database. */
|
|
65
62
|
export class DashboardConnection {
|
|
@@ -8,16 +8,8 @@ export declare const MEMORY_BACKED_TABLES: readonly ["predictions", "decisions",
|
|
|
8
8
|
export declare function memoriesBackingObjects(hippoRoot: string): Set<string>;
|
|
9
9
|
/** memoriesBackingObjects on the caller's handle. */
|
|
10
10
|
export declare function memoriesBackingObjectsOn(db: DatabaseSyncLike): Set<string>;
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* NO filesystem I/O: the caller's transaction may still roll back, and mirrors are written post-commit.
|
|
14
|
-
*
|
|
15
|
-
* `opts.suppressForgetAudit` (default false): `rejectValue` and `resolveConflict` set it because each
|
|
16
|
-
* writes its own aggregate audit row, so a removed row must not ALSO emit a `forget` row.
|
|
17
|
-
*
|
|
18
|
-
* Returns `{tenantId, dagParentId}` for the removed row, or `null` if no row with `id`
|
|
19
|
-
* existed or `automatic` refused it (pinned, raw, kept for good or backing an object at DELETE time, so a late pin wins).
|
|
20
|
-
*/
|
|
11
|
+
/** db-scoped delete core, composable inside a caller's transaction; NO filesystem I/O, mirrors are written post-commit. `suppressForgetAudit` is set by
|
|
12
|
+
* rejectValue and resolveConflict (own audit row). Returns `{tenantId, dagParentId}`, or null if absent or `automatic` refused it. */
|
|
21
13
|
export declare function deleteEntryCore(db: ReturnType<typeof openHippoDb>, id: string, opts?: {
|
|
22
14
|
actor?: string;
|
|
23
15
|
suppressForgetAudit?: boolean;
|
|
@@ -27,29 +19,23 @@ export declare function deleteEntryCore(db: ReturnType<typeof openHippoDb>, id:
|
|
|
27
19
|
tenantId: string;
|
|
28
20
|
dagParentId: string | null;
|
|
29
21
|
} | null;
|
|
30
|
-
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* `opts.actor` defaults to 'cli'. The api.* layer threads `ctx.actor` so HTTP
|
|
34
|
-
* callers land with `api_key:<key_id>` in the audit log without a duplicate
|
|
35
|
-
* emit from the api wrapper.
|
|
36
|
-
*
|
|
37
|
-
* Thin wrapper over `deleteEntryCore` (open → core → mirrors → close);
|
|
38
|
-
* behavior is byte-identical to the pre-split implementation for every
|
|
39
|
-
* existing caller.
|
|
40
|
-
*/
|
|
22
|
+
/** Delete an entry from SQLite and mirrors; thin wrapper over `deleteEntryCore` (open, core, mirrors, close).
|
|
23
|
+
* `opts.actor` defaults to 'cli'; the api layer threads `ctx.actor` so HTTP callers land as `api_key:<key_id>` in the audit log. */
|
|
41
24
|
export declare function deleteEntry(hippoRoot: string, id: string, opts?: {
|
|
42
25
|
actor?: string;
|
|
43
26
|
reason?: string;
|
|
44
27
|
automatic?: boolean;
|
|
45
28
|
}): boolean;
|
|
46
|
-
/**
|
|
47
|
-
*
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
29
|
+
/** deleteEntry with `automatic` for each removal and its own forget row and reason, all in one transaction after one read of the id set.
|
|
30
|
+
* Returns the ids deleted, in `removals` order; a missing, repeated, pinned, raw or object-backing id is left out. */
|
|
31
|
+
export declare function deleteEntriesAutomatically(hippoRoot: string, removals: readonly {
|
|
32
|
+
id: string;
|
|
33
|
+
reason: string;
|
|
34
|
+
}[], actor: string): string[];
|
|
35
|
+
/** Each row as the caller loaded it, by id; a `ReadonlyMap` fits. */
|
|
36
|
+
export type LoadedRows = Pick<ReadonlyMap<string, MemoryEntry>, 'get'>;
|
|
37
|
+
/** Writes, deletes and dormant moves in one transaction. With `snapshot`, a write keeps only the fields the caller changed and never resurrects a gone row.
|
|
38
|
+
* Dormant moves (src/store/dormant.ts) leave `memories` like a delete; both skip rows no longer auto-deletable. Returns ids that left `memories`. */
|
|
53
39
|
export declare function batchWriteAndDelete(hippoRoot: string, toWrite: MemoryEntry[], toDeleteIds: string[], opts?: {
|
|
54
40
|
snapshot?: ReadonlyMap<string, MemoryEntry>;
|
|
55
41
|
dormant?: DormantMove[];
|
|
@@ -70,10 +56,10 @@ export declare function deleteEntriesOneByOne(hippoRoot: string, targets: readon
|
|
|
70
56
|
actor?: string;
|
|
71
57
|
automatic?: boolean;
|
|
72
58
|
}): boolean[];
|
|
73
|
-
/** Commits whole components in transactions of about `budget.holdMs
|
|
74
|
-
*
|
|
59
|
+
/** Commits whole components in transactions of about `budget.holdMs`, letting other writers in between; returns the ids that left `memories`.
|
|
60
|
+
* The snapshot keeps what other writers changed after the caller loaded its rows. */
|
|
75
61
|
export declare function commitInChunks(hippoRoot: string, components: readonly FlushComponent[], opts: {
|
|
76
|
-
snapshot:
|
|
62
|
+
snapshot: LoadedRows;
|
|
77
63
|
budget: WriteBudget;
|
|
78
64
|
busyWaitMs: number;
|
|
79
65
|
}): Promise<string[]>;
|