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
package/dist/store/port.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { AmbientTallies } from '../core/ambient.js';
|
|
|
2
2
|
import type { AmbientStoreFilter } from './ambient.js';
|
|
3
3
|
import type { ApiKeyListRow, ApiKeyRecord, ListApiKeysOpts, NewApiKey } from './auth.js';
|
|
4
4
|
import type { AppendAuditOpts, AuditEvent, ListAuditAfterOpts, QueryAuditOpts } from './audit.js';
|
|
5
|
-
import type { EmbeddingIndexState } from './
|
|
5
|
+
import type { EmbeddingIndexState } from './vector-index.js';
|
|
6
6
|
import type { Entity, Relation } from './graph-rows.js';
|
|
7
7
|
import type { ActiveGoals, GetActiveGoalsOpts, GoalRecallLogRow } from './goals.js';
|
|
8
8
|
import type { SessionHandoff } from '../core/handoff.js';
|
|
@@ -10,14 +10,15 @@ import type { JsonValue } from '../util/json.js';
|
|
|
10
10
|
import type { KeysetPosition } from '../util/keyset.js';
|
|
11
11
|
import type { MemoryEntry } from '../core/memory.js';
|
|
12
12
|
import type { PhysicsParticle } from '../core/physics.js';
|
|
13
|
-
import type { BriefReceipt, Incident, IncidentFields, ObjectByKind, ObjectFields, ObjectKind, Policy, SavableKind, Skill } from '
|
|
13
|
+
import type { BriefReceipt, Incident, IncidentFields, ObjectByKind, ObjectFields, ObjectKind, Policy, SavableKind, Skill } from '../core/object-types.js';
|
|
14
14
|
import type { PlanningFallacyEvidence } from './planning-fallacy-evidence.js';
|
|
15
|
-
import type {
|
|
15
|
+
import type { Prediction, PredictionBaserate, SavePredictionOpts } from './predictions.js';
|
|
16
|
+
import type { ClosureState } from '../core/prediction.js';
|
|
16
17
|
import type { QuarantineRow, QuarantineStatus } from './quarantine.js';
|
|
17
|
-
import type { ScopeActor } from '
|
|
18
|
+
import type { ScopeActor } from '../core/recall-scope.js';
|
|
18
19
|
import type { RecallTraceInput } from './recall-trace.js';
|
|
19
20
|
import type { AmbientLoadResult, AmbientRecallRequest, ContextCandidateFilter, RecentOrigins } from './candidates.js';
|
|
20
|
-
import type {
|
|
21
|
+
import type { GitHubDlqInsert, GitHubRouting } from './connectors/github.js';
|
|
21
22
|
import type { SlackDlqInsert, SlackTeamRoute } from './connectors/slack.js';
|
|
22
23
|
import type { StrengthenOptions } from './entry-writes.js';
|
|
23
24
|
import type { SessionEvent, TaskSnapshot } from './rows.js';
|
|
@@ -55,8 +56,8 @@ export interface VectorReads {
|
|
|
55
56
|
/** The stored model and whether any vector exists, in one snapshot. */
|
|
56
57
|
embeddingIndexState(): Promise<EmbeddingIndexState>;
|
|
57
58
|
storedVectors(ids: readonly string[]): Promise<Map<string, number[]>>;
|
|
58
|
-
/** The `spec.limit ?? 50` rows nearest `queryVector` by `rankVectorRows
|
|
59
|
-
*
|
|
59
|
+
/** The `spec.limit ?? 50` rows nearest `queryVector` by `rankVectorRows`, filtered by tenant (when set), kind != 'archived', superseded only with
|
|
60
|
+
* `includeSuperseded`, scope per `RecallScopeFilter`, and origin '' or listed (when `spec.origin` is set). */
|
|
60
61
|
nearestEntries(queryVector: readonly number[], spec: VectorCandidateSpec): Promise<MemoryEntry[]>;
|
|
61
62
|
/** The particles of `ids` only; an empty list reads nothing. */
|
|
62
63
|
physicsParticles(ids: readonly string[]): Promise<Map<string, PhysicsParticle>>;
|
|
@@ -95,8 +96,8 @@ export interface VectorBackfillQuery {
|
|
|
95
96
|
export interface VectorWrites {
|
|
96
97
|
/** Memories of any kind with no vector stored under `query.model`, by id ascending in byte order. */
|
|
97
98
|
entriesWithoutVector(query: VectorBackfillQuery): Promise<MemoryEntry[]>;
|
|
98
|
-
/** In one transaction: refuses with `modelMismatch` if `replacesIndex` and not `replaceIndex`; else
|
|
99
|
-
*
|
|
99
|
+
/** In one transaction: refuses with `modelMismatch` if `replacesIndex` and not `replaceIndex`; else drops every vector and particle if `replacesIndex`,
|
|
100
|
+
* keeps each writable row (memory in `tenantId`, finite non-empty vector) under `model` with its particle, sets `model`. No audit row. */
|
|
100
101
|
writeVectors(write: VectorWrite): Promise<VectorWriteResult>;
|
|
101
102
|
}
|
|
102
103
|
export interface KeyRevoke {
|
|
@@ -163,14 +164,14 @@ export interface RawArchive extends EntryRemoval {
|
|
|
163
164
|
/** The memory-row writes behind remember, outcome, supersede, archive and forget. Each writes its audit rows in the write's own transaction,
|
|
164
165
|
* a child row's change marks its level 2 or 3 summary parent dirty (one summary_marked_dirty row on the flip), and the schema's rules hold. */
|
|
165
166
|
export interface EntryWrites {
|
|
166
|
-
/** Upserts the row, its full-text row and one remember row ({kind, scope}) in the entry's tenant; an id another tenant
|
|
167
|
-
*
|
|
167
|
+
/** Upserts the row, its full-text row and one remember row ({kind, scope}) in the entry's tenant; an id held by another tenant rejects with ConflictError.
|
|
168
|
+
* Content from a tenant that tombstoned it rejects with RejectedValueError and writes one reject_refusal row after the rollback, best effort. */
|
|
168
169
|
writeEntry(write: EntryWrite): Promise<void>;
|
|
169
|
-
/**
|
|
170
|
-
*
|
|
170
|
+
/** Per id in order, a row of the tenant within reach gets `entryAfterOutcome` (rewrite as writeEntry does) and one outcome row ({good}); other ids skipped.
|
|
171
|
+
* Each read holds the row lock to commit (SELECT ... FOR UPDATE), so a concurrent supersede is not undone. Resolves to the ids applied, repeats kept. */
|
|
171
172
|
applyOutcome(outcome: OutcomeWrite): Promise<string[]>;
|
|
172
|
-
/** Sets the old row's superseded_by
|
|
173
|
-
*
|
|
173
|
+
/** Sets the old row's superseded_by if it is within reach and not yet superseded (both checked in the transaction), else rejects NotFoundError or
|
|
174
|
+
* ConflictError. Then writes the successor as writeEntry does and one supersede row ({newId}), all or nothing. */
|
|
174
175
|
supersede(write: SupersedeWrite): Promise<void>;
|
|
175
176
|
/** Moves a raw row to raw_archive (metadata only, no content), deletes it and its full-text row and writes one archive_raw row ({reason});
|
|
176
177
|
* resolves to the archived_at written. A row out of reach rejects with NotFoundError `memory not found: <id>`, any other kind with BadRequestError. */
|
|
@@ -201,14 +202,14 @@ export interface KeyWrites {
|
|
|
201
202
|
/** Inserts the key and appends its auth_create row in one transaction; with either one failing, neither is written. A key id taken in any tenant
|
|
202
203
|
* rejects, since keys are looked up by id alone. */
|
|
203
204
|
createApiKey(mint: KeyMint): Promise<void>;
|
|
204
|
-
/**
|
|
205
|
-
*
|
|
206
|
-
* then the auth_create row; resolves to the revoked ids. Live: unrevoked, expires_at null or Date.parse(expires_at) after createdAt (NaN counts as expired). */
|
|
205
|
+
/** Serialized per (tenant, owner) before the count (BEGIN IMMEDIATE / pg_advisory_xact_lock): revoke the owner's oldest live keys to `perSubject - 1`,
|
|
206
|
+
* then insert the key; append auth_revoke `{ replacedBy }` per revoked key, then auth_create. Live: unrevoked and not expired (NaN counts as expired). */
|
|
207
207
|
createSelfApiKey(mint: SelfKeyMint): Promise<string[]>;
|
|
208
208
|
/** As `listApiKeyRows`: newest inserted first, each with its scope grants; `active` drops revoked rows and an expires_at not above now's toISOString. */
|
|
209
209
|
listApiKeys(query: KeyListQuery): Promise<ApiKeyListRow[]>;
|
|
210
210
|
}
|
|
211
|
-
/** A claim to save and the memory row that mirrors it into recall: core builds it with
|
|
211
|
+
/** A claim to save and the memory row that mirrors it into recall: core builds it with
|
|
212
|
+
* `predictionMirror` in the tenant the save names, so every store keeps the same row. */
|
|
212
213
|
export interface PredictionSave extends SavePredictionOpts {
|
|
213
214
|
readonly mirror: MemoryEntry;
|
|
214
215
|
}
|
|
@@ -217,7 +218,8 @@ export interface PredictionClose {
|
|
|
217
218
|
readonly actualValue?: number;
|
|
218
219
|
readonly closureNote?: string;
|
|
219
220
|
}
|
|
220
|
-
/** Which of a tenant's predictions a list reads: every class when `classTag` is unset (it is
|
|
221
|
+
/** Which of a tenant's predictions a list reads: every class when `classTag` is unset (it is
|
|
222
|
+
* never empty), every state when `closureState` is, and a closed state only inside a class. */
|
|
221
223
|
export type PredictionFilter = {
|
|
222
224
|
readonly classTag?: string;
|
|
223
225
|
readonly closureState?: 'open';
|
|
@@ -229,25 +231,26 @@ export type PredictionListQuery = PredictionFilter & {
|
|
|
229
231
|
readonly limit: number;
|
|
230
232
|
readonly after?: KeysetPosition;
|
|
231
233
|
};
|
|
232
|
-
/** The reads and writes behind the predictions routes. createdAt and closedAt are the store's
|
|
234
|
+
/** The reads and writes behind the predictions routes. createdAt and closedAt are the store's
|
|
235
|
+
* own clock at the write, as `toISOString` gives it, since the list orders createdAt as text. */
|
|
233
236
|
export interface Predictions {
|
|
234
|
-
/** In one transaction: writes `mirror` as `EntryWrites.writeEntry` does, inserts the open row
|
|
235
|
-
*
|
|
237
|
+
/** In one transaction: writes `mirror` as `EntryWrites.writeEntry` does, inserts the open row under the next id, and appends one predict_create row
|
|
238
|
+
* ({prediction_id, class_tag, has_estimate, target_date}) ahead of the mirror's remember row. Resolves to the row saved. */
|
|
236
239
|
savePrediction(tenantId: string, input: PredictionSave, actor: string): Promise<Prediction>;
|
|
237
|
-
/** Closes the tenant's open row and appends one predict_close row ({prediction_id, closure_state, has_actual}
|
|
238
|
-
*
|
|
240
|
+
/** Closes the tenant's open row and appends one predict_close row ({prediction_id, closure_state, has_actual}) in one transaction; the mirror stays as saved.
|
|
241
|
+
* A missing or other-tenant id rejects with NotFoundError, an already-closed row with BadRequestError; neither writes anything. */
|
|
239
242
|
closePrediction(tenantId: string, id: number, close: PredictionClose, actor: string): Promise<Prediction>;
|
|
240
243
|
/** The tenant's row; null for a missing id or another tenant's. No audit row. */
|
|
241
244
|
predictionById(tenantId: string, id: number): Promise<Prediction | null>;
|
|
242
245
|
/** At most `limit` rows, newest first: by createdAt compared as text in byte order, then by id, both descending, so the order is total.
|
|
243
246
|
* `after` keeps only the rows below its (createdAt, id) pair in that order. No audit row. */
|
|
244
247
|
listPredictions(tenantId: string, query: PredictionListQuery): Promise<Prediction[]>;
|
|
245
|
-
/** `predictionBaserateOf` over the tenant's
|
|
246
|
-
*
|
|
248
|
+
/** `predictionBaserateOf` over the tenant's closed (not closed-unknown) rows of the class with an estimate and an actual, in ascending id order (its
|
|
249
|
+
* float sums depend on it). Then appends one predict_baserate row ({class_tag, n_closed}), also for a class with no such row. */
|
|
247
250
|
predictionBaserate(tenantId: string, classTag: string, actor: string): Promise<PredictionBaserate>;
|
|
248
251
|
}
|
|
249
|
-
/** Which of a tenant's rows of one kind a list reads: every status when `status` is unset,
|
|
250
|
-
*
|
|
252
|
+
/** Which of a tenant's rows of one kind a list reads: every status when `status` is unset, every value of the kind's one filter column (customer, repo)
|
|
253
|
+
* when `filter` is. Neither is ever empty; a kind with no filter column ignores `filter`. */
|
|
251
254
|
export interface ObjectListQuery<K extends ObjectKind = ObjectKind> {
|
|
252
255
|
readonly status?: ObjectByKind[K]['status'];
|
|
253
256
|
readonly filter?: string;
|
|
@@ -261,7 +264,8 @@ export interface ObjectClose<K extends ObjectKind = ObjectKind> {
|
|
|
261
264
|
/** The row's closedAt: core's clock, as `toISOString` gives it. */
|
|
262
265
|
readonly at: string;
|
|
263
266
|
}
|
|
264
|
-
/** One row to save and the memory that mirrors it into recall: core builds the mirror in the
|
|
267
|
+
/** One row to save and the memory that mirrors it into recall: core builds the mirror in the
|
|
268
|
+
* tenant the save names with the kind as its `source`, so every store keeps the same row. */
|
|
265
269
|
export interface ObjectSave<K extends SavableKind = SavableKind> {
|
|
266
270
|
readonly mirror: MemoryEntry;
|
|
267
271
|
readonly fields: ObjectFields[K];
|
|
@@ -295,7 +299,8 @@ export interface IncidentOpen {
|
|
|
295
299
|
/** The row's createdAt: core's clock, as `toISOString` gives it. */
|
|
296
300
|
readonly at: string;
|
|
297
301
|
}
|
|
298
|
-
/** Why an incident was not opened: `memoryId` is the first linked id, in the order
|
|
302
|
+
/** Why an incident was not opened: `memoryId` is the first linked id, in the order
|
|
303
|
+
* given, that is no memory of the tenant; or the written row could not be read back. */
|
|
299
304
|
export type IncidentOpenRefusal = {
|
|
300
305
|
readonly refused: 'unlinked';
|
|
301
306
|
readonly memoryId: string;
|
|
@@ -315,39 +320,33 @@ export interface PoliciesInForceQuery {
|
|
|
315
320
|
readonly name?: string;
|
|
316
321
|
readonly limit: number;
|
|
317
322
|
}
|
|
318
|
-
/** The reads and writes behind the typed-object routes. An audit row names the object under the kind's id key
|
|
319
|
-
*
|
|
323
|
+
/** The reads and writes behind the typed-object routes. An audit row names the object under the kind's id key (decision_id, incident_id, ...).
|
|
324
|
+
* A row belongs to one tenant: another tenant's id reads as missing in every method. */
|
|
320
325
|
export interface Objects {
|
|
321
326
|
/** At most `limit` rows of the kind, newest first: by createdAt compared as text in byte order, then by id, both descending, so the order is total.
|
|
322
327
|
* `after` keeps only the rows below its (createdAt, id) pair in that order. No audit row. */
|
|
323
328
|
listObjects<K extends ObjectKind>(tenantId: string, kind: K, query: ObjectListQuery<K>): Promise<ObjectByKind[K][]>;
|
|
324
329
|
/** The tenant's row; null for a missing id or another tenant's. No audit row. */
|
|
325
330
|
objectById<K extends ObjectKind>(tenantId: string, kind: K, id: number): Promise<ObjectByKind[K] | null>;
|
|
326
|
-
/** In one transaction: moves the tenant's row from a
|
|
327
|
-
*
|
|
331
|
+
/** In one transaction: moves the tenant's row from a `close.from` status to closed at `close.at` and appends one <kind>_close row; a refusal writes nothing.
|
|
332
|
+
* After the commit a kind the graph reads has its graph rows dropped and its mirror queued for a rebuild; a failure there is logged, never thrown. */
|
|
328
333
|
closeObject<K extends ObjectKind>(tenantId: string, kind: K, id: number, close: ObjectClose<K>): Promise<ObjectByKind[K] | ObjectRefusal>;
|
|
329
|
-
/** In one transaction, in
|
|
330
|
-
*
|
|
331
|
-
* new_version on a versioned kind, then a brief's refresh keys}, target the replaced id); appends the <kind>_create row ({<id key>: id, then the kind's own keys}, target the id); then the
|
|
332
|
-
* mirror's remember row. The kind's own keys: decision has_context; process version, step_count, has_description; policy version, open_ended; skill version, has_trigger; project_brief
|
|
333
|
-
* repo, version, refreshed, and receipt_count when refreshed; customer_note customer, version. A refusal (`missing` or `status` for the replaced row, `raced`, `vanished`) leaves no
|
|
334
|
-
* mirror, row or audit row. After the commit a kind the graph reads has its mirror queued for a rebuild, which is logged on failure and never thrown. */
|
|
334
|
+
/** In one transaction, in order: writes `mirror` as `EntryWrites.writeEntry` does; inserts the row active (version 1, or the replaced row's plus one);
|
|
335
|
+
* with `supersedesId`, supersedes that row; appends the supersede and create rows. A refusal (`missing`, `status`, `raced`, `vanished`) writes nothing. */
|
|
335
336
|
saveObject<K extends SavableKind>(tenantId: string, kind: K, save: ObjectSave<K>): Promise<ObjectByKind[K] | ObjectRefusal>;
|
|
336
|
-
/** In one transaction, in
|
|
337
|
-
*
|
|
338
|
-
* that is not empty); then the mirror's remember row. A refusal leaves no mirror, row or audit row. */
|
|
337
|
+
/** In one transaction, in order: writes `mirror` as `EntryWrites.writeEntry` does; checks each linked id is a memory of the tenant; inserts the row open
|
|
338
|
+
* under the next id; appends the incident_open row, then the mirror's remember row. A refusal leaves no mirror, row or audit row. */
|
|
339
339
|
openIncident(tenantId: string, open: IncidentOpen): Promise<Incident | IncidentOpenRefusal>;
|
|
340
|
-
/** In one transaction: moves the tenant's incident from open to resolved with
|
|
341
|
-
*
|
|
340
|
+
/** In one transaction: moves the tenant's incident from open to resolved with `resolve.text` and `resolve.at`, then appends one incident_resolve row.
|
|
341
|
+
* A refusal (`missing`, `status`, or `vanished`) writes nothing. */
|
|
342
342
|
resolveIncident(tenantId: string, id: number, resolve: IncidentResolve): Promise<Incident | ObjectRefusal>;
|
|
343
|
-
/**
|
|
344
|
-
*
|
|
343
|
+
/** Policies in force at `asOf` (max `limit`): not closed, validFrom <= asOf < validTo (or unset), and active or superseded by a row whose validFrom is
|
|
344
|
+
* after asOf. Newest validFrom first, compared as text in byte order, then larger id. No audit row. */
|
|
345
345
|
policiesInForce(tenantId: string, query: PoliciesInForceQuery): Promise<Policy[]>;
|
|
346
346
|
/** At most `limit` of the tenant's active skills, by skillName ascending compared as text in byte order, then by id ascending. No audit row. */
|
|
347
347
|
activeSkillsByName(tenantId: string, limit: number): Promise<Skill[]>;
|
|
348
|
-
/** At most `limit` of the tenant's memories
|
|
349
|
-
*
|
|
350
|
-
* given and not escaped, once the ASCII letters of both are folded. No audit row. */
|
|
348
|
+
/** At most `limit` of the tenant's memories carrying `tag` (tag list as JSON, matched between double quotes, unescaped, ASCII case-folded) whose source
|
|
349
|
+
* is not project_brief and whose scope recall admits with no scope asked, newest first by created (text, byte order) then id. No audit row. */
|
|
351
350
|
briefReceipts(tenantId: string, tag: string, limit: number): Promise<BriefReceipt[]>;
|
|
352
351
|
}
|
|
353
352
|
/** One session's unsuperseded raw rows inside a tenant; `origins` keeps those projects' rows and rows of no project, unset keeps every origin. */
|
|
@@ -391,12 +390,14 @@ export interface SummaryDescendants {
|
|
|
391
390
|
}
|
|
392
391
|
/** The reads behind session assembly and summary drill-down. None writes an audit row. */
|
|
393
392
|
export interface DagReads {
|
|
394
|
-
/** The newest `cap` rows by created then id, returned oldest first (created, then id,
|
|
393
|
+
/** The newest `cap` rows by created then id, returned oldest first (created, then id,
|
|
394
|
+
* ascending) as `loadSessionRawMemories` does; an empty session id reads nothing. */
|
|
395
395
|
sessionRawEntries(query: SessionRawWindow): Promise<MemoryEntry[]>;
|
|
396
|
-
/** How many rows the session holds with no cap, under the scope rule `passesScopeFilterForRecall`
|
|
396
|
+
/** How many rows the session holds with no cap, under the scope rule `passesScopeFilterForRecall`
|
|
397
|
+
* applies, so the count never tells of a row the caller could not read. */
|
|
397
398
|
sessionRawCount(query: SessionRawCount): Promise<number>;
|
|
398
|
-
/** The tenant's row `id` and up to `walk.depth` levels under it, read in one call so no write of this process lands between
|
|
399
|
-
*
|
|
399
|
+
/** The tenant's row `id` and up to `walk.depth` levels under it, read in one call so no write of this process lands between levels; null if no such row.
|
|
400
|
+
* Each level lists the children of the one above, parent by parent, children by created then id ascending; a row is listed once, at its first level. */
|
|
400
401
|
summaryWithDescendants(tenantId: string, id: string, walk: DescendantWalk): Promise<SummaryDescendants | null>;
|
|
401
402
|
}
|
|
402
403
|
/** The read behind the audit list. It writes no audit row. */
|
|
@@ -438,21 +439,21 @@ export type QuarantineRejection = {
|
|
|
438
439
|
} | QuarantineRefusal;
|
|
439
440
|
/** The review queue behind the quarantine routes. A refusal is a resolved value, never a rejection, and writes nothing. */
|
|
440
441
|
export interface Quarantine {
|
|
441
|
-
/** At most `limit` of the tenant's records, newest first
|
|
442
|
-
*
|
|
442
|
+
/** At most `limit` of the tenant's records, newest first (quarantinedAt as text in byte order, then memoryId, both descending); `after` keeps only
|
|
443
|
+
* records below its pair. 'pending' leaves out a record whose memory row is gone; every other status keeps it, with null content. No audit row. */
|
|
443
444
|
listQuarantined(tenantId: string, query: QuarantineListQuery): Promise<QuarantinedMemory[]>;
|
|
444
|
-
/** In one transaction, all
|
|
445
|
-
*
|
|
445
|
+
/** In one transaction, all or none: restores the memory's originalScope if it is in the tenant and still under `quarantine:private:...`;
|
|
446
|
+
* marks the record approved (decidedAt from the store's clock, decidedBy `actor`); appends one quarantine_approve row ({originalScope}). */
|
|
446
447
|
approveQuarantined(tenantId: string, id: string, actor: string): Promise<QuarantineApproval>;
|
|
447
|
-
/** In one transaction, both or neither: marks the record rejected
|
|
448
|
-
*
|
|
448
|
+
/** In one transaction, both or neither: marks the record rejected (decidedAt/decidedBy as approve) and appends one quarantine_reject row.
|
|
449
|
+
* The memory row is not touched, so it stays under its quarantine scope and a record with no memory row can still be rejected. */
|
|
449
450
|
rejectQuarantined(tenantId: string, id: string, actor: string): Promise<QuarantineRejection>;
|
|
450
451
|
}
|
|
451
|
-
/** What one graph view reads. `limit` is a positive integer
|
|
452
|
-
*
|
|
452
|
+
/** What one graph view reads. `limit` is a positive integer capping each read on its own; newest means createdAt, then id, both descending. A row shows
|
|
453
|
+
* when it cites no memory, or its memory is in the tenant with a null scope or one `canReadScope(reader, scope)` admits; no `reader` shows every row. */
|
|
453
454
|
export interface GraphViewQuery {
|
|
454
|
-
/** Unset reads the whole graph. Set, the start entities are the first `limit` of exactly this name
|
|
455
|
-
*
|
|
455
|
+
/** Unset reads the whole graph. Set, the start entities are the first `limit` of exactly this name (lowest id first) that show; none left answers empty.
|
|
456
|
+
* Per 400 start ids, the newest `limit` relations with an end among them join in, each adding its other end to the ids held, until `limit` ids are held. */
|
|
456
457
|
readonly entity?: string;
|
|
457
458
|
readonly limit: number;
|
|
458
459
|
readonly reader?: ScopeActor;
|
|
@@ -461,14 +462,14 @@ export interface GraphRows {
|
|
|
461
462
|
readonly entities: Entity[];
|
|
462
463
|
/** May name an entity `entities` lacks; the caller drops such a relation. */
|
|
463
464
|
readonly relations: Relation[];
|
|
464
|
-
/** Judged before a row is hidden:
|
|
465
|
-
*
|
|
465
|
+
/** Judged before a row is hidden: true when start entities, joined relations, returned relations or (whole graph) returned entities came back `limit` long,
|
|
466
|
+
* or the walk held `limit` ids with a relation still to join. */
|
|
466
467
|
readonly truncated: boolean;
|
|
467
468
|
}
|
|
468
469
|
/** The rows behind GET /v1/graph. */
|
|
469
470
|
export interface GraphReads {
|
|
470
|
-
/** Every read from one snapshot, then
|
|
471
|
-
*
|
|
471
|
+
/** Every read from one snapshot, then rows that do not show are dropped. Whole graph: the tenant's newest `limit` entities and relations.
|
|
472
|
+
* From a name: the entities of the ids held (id ascending, 400 at a time) and the newest `limit` relations with both ends among those ids. */
|
|
472
473
|
graphRows(tenantId: string, query: GraphViewQuery): Promise<GraphRows>;
|
|
473
474
|
}
|
|
474
475
|
/** The source event a connector's write answers, by the source's own key. The store logs each key once per connector, across every tenant. */
|
|
@@ -499,14 +500,14 @@ export type ConnectorWriteOutcome = {
|
|
|
499
500
|
export interface ConnectorArchive extends RawArchive {
|
|
500
501
|
readonly event: ConnectorEvent;
|
|
501
502
|
}
|
|
502
|
-
/** A connector's writes with the rows that must commit with them: the event log row
|
|
503
|
+
/** A connector's writes with the rows that must commit with them: the event log row
|
|
504
|
+
* that turns a redelivery into a no-op, and the quarantine record of flagged content. */
|
|
503
505
|
export interface ConnectorWrites {
|
|
504
|
-
/** entryWrites.writeEntry
|
|
505
|
-
*
|
|
506
|
-
* stores nothing of this write: no memory, no record, no audit row. A duplicate is a resolved value, never a rejection; every other refusal is writeEntry's own and is decided first, so a refused entry rejects under a logged key too. */
|
|
506
|
+
/** entryWrites.writeEntry plus, in its transaction: with `quarantine`, one pending record and quarantine row; with `event`, one log row. All commit or none.
|
|
507
|
+
* A key logged before resolves 'duplicate' and stores nothing (never a rejection); every other refusal is writeEntry's own, decided first. */
|
|
507
508
|
writeConnectorEntry(write: ConnectorWrite): Promise<ConnectorWriteOutcome>;
|
|
508
|
-
/** entryWrites.archiveRaw
|
|
509
|
-
*
|
|
509
|
+
/** entryWrites.archiveRaw plus, in its transaction, one log row for `event` naming the archived id, so a redelivery finds it logged; a failed log write
|
|
510
|
+
* undoes the archive. A key logged before keeps its row and does not stop the archive. Reach and every rejection are archiveRaw's own. */
|
|
510
511
|
archiveConnectorEntry(archive: ConnectorArchive): Promise<string>;
|
|
511
512
|
}
|
|
512
513
|
/** What the event log holds for one event's key; `memoryId` is null for an event logged with no memory. */
|
|
@@ -542,17 +543,19 @@ export type ConnectorDeadLetter = ({
|
|
|
542
543
|
readonly connector: 'slack';
|
|
543
544
|
} & SlackDlqInsert) | ({
|
|
544
545
|
readonly connector: 'github';
|
|
545
|
-
} &
|
|
546
|
-
/** What a connector delivery reads and writes beside connectorWrites: the event log,
|
|
546
|
+
} & GitHubDlqInsert);
|
|
547
|
+
/** What a connector delivery reads and writes beside connectorWrites: the event log,
|
|
548
|
+
* tenant routing, the dead-letter queue and the archive of a deleted artifact. */
|
|
547
549
|
export interface ConnectorEvents {
|
|
548
550
|
/** The log row of the event's key, in its connector's own key space. */
|
|
549
551
|
eventRecord(event: ConnectorEvent): Promise<ConnectorEventRecord>;
|
|
550
552
|
/** Logs an event that stored no memory, so its redelivery finds it. A key logged before keeps its row, the memory id it names included. */
|
|
551
553
|
markEventSeen(event: ConnectorEvent): Promise<void>;
|
|
552
|
-
/** Both reads on one snapshot: an event logged before answers `seen`, else the raw row the
|
|
554
|
+
/** Both reads on one snapshot: an event logged before answers `seen`, else the raw row the
|
|
555
|
+
* tenant holds for the artifact. Another tenant's row under the same ref is never returned. */
|
|
553
556
|
deletionTarget(lookup: DeletionLookup): Promise<DeletionTarget>;
|
|
554
|
-
/**
|
|
555
|
-
*
|
|
557
|
+
/** A logged event answers `duplicate` and changes nothing. Else one transaction archives every raw row of the artifact (archive_raw row each, under `actor`)
|
|
558
|
+
* and logs the event naming the first, or no memory if none; one failed archive undoes all and the log row. No reach check. */
|
|
556
559
|
archiveDeletedArtifact(archive: ArtifactArchive): Promise<{
|
|
557
560
|
readonly duplicate: boolean;
|
|
558
561
|
readonly archived: number;
|
|
@@ -563,7 +566,7 @@ export interface ConnectorEvents {
|
|
|
563
566
|
githubRouting(query: {
|
|
564
567
|
readonly installationId?: string | null;
|
|
565
568
|
readonly repoFullName?: string | null;
|
|
566
|
-
}): Promise<
|
|
569
|
+
}): Promise<GitHubRouting>;
|
|
567
570
|
/** Appends the row and answers its id. */
|
|
568
571
|
parkDeadLetter(letter: ConnectorDeadLetter): Promise<number>;
|
|
569
572
|
}
|
|
@@ -601,7 +604,13 @@ export type StoreGroup = 'base' | keyof StoreGroups;
|
|
|
601
604
|
export declare function hasGroup(store: HippoStore, group: StoreGroup): boolean;
|
|
602
605
|
/** The group's methods; a store without them throws StoreNotPortedError, which answers 501 as any unported path does. */
|
|
603
606
|
export declare function requireGroup<G extends keyof StoreGroups>(store: HippoStore, group: G): StoreGroups[G];
|
|
604
|
-
|
|
607
|
+
export declare const STORE_BUSY_MESSAGE = "store busy (another hippo process holds the write lock); retry shortly";
|
|
608
|
+
/** A store behind the port throws this when its lock wait runs out, so the server answers 503 as it does for a busy hippo.db. */
|
|
609
|
+
export declare class StoreBusyError extends Error {
|
|
610
|
+
constructor(message?: string, options?: ErrorOptions);
|
|
611
|
+
}
|
|
612
|
+
/** What `serve()` reads and writes through. Each method is atomic and no transaction spans an
|
|
613
|
+
* await, since SQLite's lock wait blocks the event loop; a lock timeout throws `StoreBusyError`. */
|
|
605
614
|
export interface HippoStore extends Partial<StoreGroups> {
|
|
606
615
|
/** 'sqlite' is hippo.db under the served root. Under any other kind, an unported route answers 501 and a hippo.db open inside a request throws. */
|
|
607
616
|
readonly kind: string;
|
package/dist/store/port.js
CHANGED
|
@@ -14,4 +14,12 @@ export function requireGroup(store, group) {
|
|
|
14
14
|
throw new StoreNotPortedError(store.kind, group);
|
|
15
15
|
return methods;
|
|
16
16
|
}
|
|
17
|
+
export const STORE_BUSY_MESSAGE = 'store busy (another hippo process holds the write lock); retry shortly';
|
|
18
|
+
/** A store behind the port throws this when its lock wait runs out, so the server answers 503 as it does for a busy hippo.db. */
|
|
19
|
+
export class StoreBusyError extends Error {
|
|
20
|
+
constructor(message = STORE_BUSY_MESSAGE, options) {
|
|
21
|
+
super(message, options);
|
|
22
|
+
this.name = 'StoreBusyError';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
17
25
|
//# sourceMappingURL=port.js.map
|
|
@@ -1,32 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Canonical store for ex-ante claims that can be closed against ex-post
|
|
5
|
-
* outcomes. The `predictions` table holds every field (including
|
|
6
|
-
* `claim_text`); a memory row mirrors the claim for recall/inspect surfaces
|
|
7
|
-
* but is NOT the source of truth — ON DELETE SET NULL on memory_id means
|
|
8
|
-
* memory deletion gracefully orphans the prediction without losing data.
|
|
9
|
-
*
|
|
10
|
-
* Tenant scoping: every helper requires tenantId. The schema's BEFORE INSERT
|
|
11
|
-
* + BEFORE UPDATE triggers (`trg_predictions_tenant_match_*`) enforce that
|
|
12
|
-
* `predictions.tenant_id` matches the referenced memory's tenant_id when
|
|
13
|
-
* `memory_id IS NOT NULL`. Cross-tenant references are unrepresentable at
|
|
14
|
-
* the schema level.
|
|
15
|
-
*
|
|
16
|
-
* Dual-write atomicity: `savePrediction` writes the memory + predictions
|
|
17
|
-
* row inside `writeEntry`'s SAVEPOINT 'write_entry' (store/entry-writes.ts). The
|
|
18
|
-
* afterWrite hook (store/entry-writes.ts) runs inside the same SAVEPOINT, so
|
|
19
|
-
* a failure in either step rolls back both. Pattern matches supersede
|
|
20
|
-
* (api.ts:1486) and the Slack/GitHub connectors.
|
|
21
|
-
*
|
|
22
|
-
* The planning-fallacy detector reads `loadPredictionsByClass` and computes
|
|
23
|
-
* per-class base rates from (estimate_value, actual_value) at query time.
|
|
24
|
-
*/
|
|
1
|
+
/** First-class prediction: an ex-ante claim closed against an outcome. The `predictions` table is the source of truth; the memory row only mirrors the claim.
|
|
2
|
+
* Every helper requires tenantId; `trg_predictions_tenant_match_*` triggers enforce the prediction's tenant matches the referenced memory's.
|
|
3
|
+
* `savePrediction` writes memory and prediction inside `writeEntry`'s SAVEPOINT (via afterWrite), so a failure in either rolls back both. */
|
|
25
4
|
import { type MemoryEntry } from '../core/memory.js';
|
|
26
5
|
import { type KeysetPosition } from '../util/keyset.js';
|
|
27
6
|
import type { PredictionSave } from './port.js';
|
|
28
|
-
|
|
29
|
-
export declare const VALID_CLOSURE_STATES: ReadonlySet<ClosureState>;
|
|
7
|
+
import { type ClosureState } from '../core/prediction.js';
|
|
30
8
|
export interface Prediction {
|
|
31
9
|
id: number;
|
|
32
10
|
/** Nullable: ON DELETE SET NULL allows memory deletion (forget /
|
|
@@ -62,27 +40,16 @@ export interface ListPredictionsOpts {
|
|
|
62
40
|
/** Resume after this row: the position the previous page ended on. */
|
|
63
41
|
after?: KeysetPosition;
|
|
64
42
|
}
|
|
65
|
-
/**
|
|
66
|
-
*
|
|
67
|
-
* row atomically inside `writeEntry`'s SAVEPOINT 'write_entry'. On any
|
|
68
|
-
* failure (audit write, predictions INSERT, trigger ABORT), the SAVEPOINT
|
|
69
|
-
* rolls back — neither the memory row nor the predictions row lands.
|
|
70
|
-
*
|
|
71
|
-
* The memory is tagged `['prediction', classTag]` with `source='prediction'`
|
|
72
|
-
* and `kind='distilled'`. It surfaces in `hippo recall` so the agent can
|
|
73
|
-
* see open predictions naturally; the predictions table is the canonical
|
|
74
|
-
* structured store used by the planning-fallacy detector.
|
|
75
|
-
*/
|
|
43
|
+
/** Create a prediction: memory mirror and predictions row land atomically inside `writeEntry`'s SAVEPOINT; any failure rolls back both.
|
|
44
|
+
* The memory (tags `['prediction', classTag]`, kind 'distilled') surfaces in `hippo recall`; the predictions table feeds the planning-fallacy detector. */
|
|
76
45
|
export declare function savePrediction(hippoRoot: string, tenantId: string, opts: SavePredictionOpts, actor?: string): Prediction;
|
|
77
46
|
/** The memory row that mirrors a claim into recall, built here alone so every store keeps the same row for it. */
|
|
78
47
|
export declare function predictionMirror(tenantId: string, claim: SavePredictionOpts, baseHalfLifeDays: number): MemoryEntry;
|
|
79
|
-
/** The store port's save on hippo.db: the mirror goes in as the port's writeEntry has it, tenant
|
|
48
|
+
/** The store port's save on hippo.db: the mirror goes in as the port's writeEntry has it, tenant
|
|
49
|
+
* check included, and its predictions row shares that write scope, so neither lands alone. */
|
|
80
50
|
export declare function writePrediction(hippoRoot: string, tenantId: string, save: PredictionSave, actor: string): Prediction;
|
|
81
|
-
/**
|
|
82
|
-
*
|
|
83
|
-
* the memory mirror is NOT mutated in v1 (predictions table is canonical).
|
|
84
|
-
* Accuracy is computed from (estimateValue, actualValue) at query time.
|
|
85
|
-
*/
|
|
51
|
+
/** Close an open prediction. Updates the predictions row only; the memory mirror is not mutated (the predictions table is the source of truth).
|
|
52
|
+
* Accuracy is computed from (estimateValue, actualValue) at query time. */
|
|
86
53
|
export declare function closePrediction(hippoRoot: string, tenantId: string, id: number, opts: ClosePredictionOpts, actor?: string): Prediction;
|
|
87
54
|
export declare function loadPredictionById(hippoRoot: string, tenantId: string, id: number): Prediction | null;
|
|
88
55
|
export declare function loadPredictionsByClass(hippoRoot: string, tenantId: string, classTag: string, opts?: ListPredictionsOpts): Prediction[];
|
|
@@ -117,16 +84,8 @@ export interface BaserateRow {
|
|
|
117
84
|
estimate_value: number;
|
|
118
85
|
actual_value: number;
|
|
119
86
|
}
|
|
120
|
-
/**
|
|
121
|
-
*
|
|
122
|
-
* planning-fallacy detector: Lovallo-Kahneman (2003) inside-vs-outside view.
|
|
123
|
-
*
|
|
124
|
-
* Filter: closure_state='closed' AND estimate_value IS NOT NULL AND
|
|
125
|
-
* actual_value IS NOT NULL. Excludes closed-unknown (no actual to
|
|
126
|
-
* compare against) and open (not yet resolved).
|
|
127
|
-
*
|
|
128
|
-
* Audit-emit is built in here, not at the 3 call sites, so callers cannot drift.
|
|
129
|
-
*/
|
|
87
|
+
/** Base-rate stats for closed predictions in a class (Lovallo-Kahneman inside-vs-outside view): closure_state='closed' with estimate and actual non-null;
|
|
88
|
+
* closed-unknown and open are excluded. Audit-emit is built in here, not at the 3 call sites, so callers cannot drift. */
|
|
130
89
|
export declare function computePredictionBaserate(hippoRoot: string, tenantId: string, classTag: string, actor?: string,
|
|
131
90
|
/** False skips the predict_baserate audit so that channel only records deliberate
|
|
132
91
|
* baserate calls, not every recall the planning-fallacy orchestrator inspects. */
|