hippo-memory 1.72.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/dist/agent-memories/apply.d.ts +7 -5
- package/dist/agent-memories/apply.js +66 -39
- package/dist/agent-memories/claude-code.d.ts +8 -2
- package/dist/agent-memories/claude-code.js +26 -7
- package/dist/agent-memories/copilot.js +2 -1
- package/dist/agent-memories/files.js +2 -1
- package/dist/agent-memories/legacy.d.ts +6 -3
- package/dist/agent-memories/legacy.js +35 -14
- package/dist/agent-memories/markdown.d.ts +3 -1
- package/dist/agent-memories/markdown.js +3 -1
- package/dist/agent-memories/openclaw.js +5 -2
- package/dist/agent-memories/plan.js +11 -1
- package/dist/agent-memories/project-folds.js +2 -1
- package/dist/agent-memories/report.d.ts +4 -1
- package/dist/agent-memories/report.js +43 -9
- package/dist/agent-memories/source.d.ts +8 -2
- package/dist/agent-memories/source.js +11 -3
- package/dist/agent-memories/sync.d.ts +7 -2
- package/dist/agent-memories/sync.js +141 -101
- package/dist/api/assemble.d.ts +6 -4
- package/dist/api/assemble.js +11 -5
- package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
- package/dist/api/auth/audit.js +58 -0
- package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -16
- package/dist/api/{auth.js → auth/auth.js} +66 -54
- package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
- package/dist/api/{quarantine.js → auth/quarantine.js} +8 -7
- package/dist/api/auth/session-owners.d.ts +10 -0
- package/dist/api/auth/session-owners.js +35 -0
- package/dist/api/availability.d.ts +3 -1
- package/dist/api/availability.js +3 -1
- package/dist/api/busy.d.ts +2 -0
- package/dist/api/busy.js +2 -0
- package/dist/api/cli-surface.d.ts +6 -0
- package/dist/api/cli-surface.js +6 -0
- package/dist/api/config-of.d.ts +5 -0
- package/dist/api/config-of.js +6 -0
- package/dist/api/context-auto.d.ts +4 -1
- package/dist/api/context-auto.js +14 -4
- package/dist/api/context-render.js +14 -7
- package/dist/api/context-select.d.ts +4 -1
- package/dist/api/context-select.js +31 -34
- package/dist/api/context-types.d.ts +38 -12
- package/dist/api/context.d.ts +8 -5
- package/dist/api/context.js +120 -63
- package/dist/api/continuity.d.ts +24 -21
- package/dist/api/continuity.js +18 -20
- package/dist/api/correction-latency.d.ts +3 -1
- package/dist/api/correction-latency.js +3 -1
- package/dist/api/error-reply.d.ts +4 -1
- package/dist/api/error-reply.js +12 -3
- package/dist/api/index.d.ts +39 -23
- package/dist/api/index.js +21 -23
- package/dist/api/instruction-detect.d.ts +4 -1
- package/dist/api/instruction-detect.js +75 -20
- package/dist/api/ledger-db.d.ts +15 -11
- package/dist/api/ledger-db.js +21 -23
- package/dist/api/memories/conflicts.d.ts +33 -0
- package/dist/api/memories/conflicts.js +67 -0
- package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
- package/dist/api/{forget.js → memories/forget.js} +23 -17
- package/dist/api/memories/memories.d.ts +27 -0
- package/dist/api/memories/memories.js +52 -0
- package/dist/api/memories/outcome.d.ts +22 -0
- package/dist/api/memories/outcome.js +28 -0
- package/dist/api/memories/promote.d.ts +40 -0
- package/dist/api/memories/promote.js +76 -0
- package/dist/api/memories/refine.d.ts +10 -0
- package/dist/api/memories/refine.js +12 -0
- package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +17 -9
- package/dist/api/{remember-local.js → memories/remember-local.js} +46 -24
- package/dist/api/{remember.d.ts → memories/remember.d.ts} +22 -13
- package/dist/api/{remember.js → memories/remember.js} +50 -32
- package/dist/api/objects/cards.d.ts +39 -0
- package/dist/api/{cards.js → objects/cards.js} +12 -14
- package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
- package/dist/api/{drill-down.js → objects/drill-down.js} +7 -7
- package/dist/api/objects/goals.d.ts +18 -0
- package/dist/api/{goals.js → objects/goals.js} +12 -12
- package/dist/api/objects/graph.d.ts +11 -0
- package/dist/api/objects/graph.js +16 -0
- package/dist/api/objects/objects.d.ts +9 -0
- package/dist/api/{objects.js → objects/objects.js} +2 -3
- package/dist/api/objects/predictions.d.ts +11 -0
- package/dist/api/{predictions.js → objects/predictions.js} +7 -5
- package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
- package/dist/api/{projects.js → objects/projects.js} +8 -4
- package/dist/api/pilot-arm.d.ts +8 -4
- package/dist/api/pilot-arm.js +5 -4
- package/dist/api/prompt-hook.d.ts +35 -20
- package/dist/api/prompt-hook.js +66 -44
- package/dist/api/provenance-coverage.d.ts +3 -1
- package/dist/api/provenance-coverage.js +3 -1
- package/dist/api/recall/finish.d.ts +185 -0
- package/dist/api/recall/finish.js +301 -0
- package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
- package/dist/api/{recall-pipeline.js → recall/pipeline.js} +185 -101
- package/dist/api/recall/recall.d.ts +6 -0
- package/dist/api/{recall.js → recall/recall.js} +116 -72
- package/dist/api/recall/render.d.ts +39 -0
- package/dist/api/recall/render.js +60 -0
- package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
- package/dist/api/recall/request.js +261 -0
- package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
- package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
- package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -68
- package/dist/api/{recall-types.js → recall/types.js} +1 -1
- package/dist/api/session-end.d.ts +36 -8
- package/dist/api/session-end.js +71 -25
- package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
- package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
- package/dist/api/sleep/dormant.d.ts +25 -0
- package/dist/api/sleep/dormant.js +64 -0
- package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
- package/dist/api/sleep/learn.js +138 -0
- package/dist/api/sleep/sleep-run.d.ts +38 -0
- package/dist/api/{sleep-run.js → sleep/sleep-run.js} +54 -45
- package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
- package/dist/api/sleep/sleep.js +9 -0
- package/dist/api/status.d.ts +3 -1
- package/dist/api/status.js +3 -1
- package/dist/api/store-init.d.ts +4 -1
- package/dist/api/store-init.js +4 -1
- package/dist/api/tokens.d.ts +10 -9
- package/dist/api/tokens.js +9 -10
- package/dist/api/types.d.ts +27 -12
- package/dist/api/types.js +13 -4
- package/dist/capture/caller-session.d.ts +8 -2
- package/dist/capture/caller-session.js +16 -6
- package/dist/capture/capture-error.d.ts +3 -1
- package/dist/capture/capture-error.js +3 -1
- package/dist/capture/codex-patch.js +7 -2
- package/dist/capture/command.d.ts +4 -2
- package/dist/capture/command.js +34 -15
- package/dist/capture/compact-resume-caller.js +15 -8
- package/dist/capture/compact.d.ts +8 -5
- package/dist/capture/compact.js +34 -23
- package/dist/capture/compaction-items-caller.js +9 -3
- package/dist/capture/compaction-record.d.ts +4 -3
- package/dist/capture/compaction-record.js +20 -12
- package/dist/capture/compaction-spool.d.ts +18 -9
- package/dist/capture/compaction-spool.js +105 -63
- package/dist/capture/copilot-transcript.d.ts +11 -3
- package/dist/capture/copilot-transcript.js +16 -6
- package/dist/capture/extract.js +20 -8
- package/dist/capture/failure-caller.js +23 -12
- package/dist/capture/failure-reading.d.ts +10 -3
- package/dist/capture/failure-reading.js +24 -7
- package/dist/capture/pre-compact-caller.js +11 -4
- package/dist/capture/session-digest.d.ts +15 -4
- package/dist/capture/session-digest.js +39 -13
- package/dist/capture/session-end-caller.d.ts +4 -1
- package/dist/capture/session-end-caller.js +20 -8
- package/dist/capture/session-texts.d.ts +6 -2
- package/dist/capture/session-texts.js +22 -7
- package/dist/capture/session-worker.d.ts +4 -2
- package/dist/capture/session-worker.js +58 -17
- package/dist/capture/transcript.d.ts +13 -4
- package/dist/capture/transcript.js +32 -10
- package/dist/capture/working-state.d.ts +13 -4
- package/dist/capture/working-state.js +50 -56
- package/dist/cli/api-context.d.ts +14 -2
- package/dist/cli/api-context.js +45 -2
- package/dist/cli/audit.js +33 -33
- package/dist/cli/auth.js +23 -31
- package/dist/cli/briefs.d.ts +1 -1
- package/dist/cli/briefs.js +20 -15
- package/dist/cli/card.d.ts +1 -1
- package/dist/cli/card.js +56 -73
- package/dist/cli/client.d.ts +12 -5
- package/dist/cli/client.js +53 -23
- package/dist/cli/compact-resume-payload.d.ts +4 -1
- package/dist/cli/compact-resume-payload.js +12 -5
- package/dist/cli/context.js +43 -18
- package/dist/cli/continuity.d.ts +5 -5
- package/dist/cli/continuity.js +90 -107
- package/dist/cli/curate.d.ts +5 -4
- package/dist/cli/curate.js +55 -77
- package/dist/cli/dag.d.ts +1 -1
- package/dist/cli/dag.js +14 -17
- package/dist/cli/decisions.js +30 -30
- package/dist/cli/eval.js +16 -21
- package/dist/cli/exit.d.ts +4 -1
- package/dist/cli/exit.js +10 -2
- package/dist/cli/explain.js +12 -11
- package/dist/cli/flag-values.d.ts +1 -1
- package/dist/cli/flag-values.js +9 -18
- package/dist/cli/github.d.ts +6 -0
- package/dist/cli/github.js +25 -13
- package/dist/cli/goals.d.ts +1 -1
- package/dist/cli/goals.js +39 -56
- package/dist/cli/graph.d.ts +1 -1
- package/dist/cli/graph.js +15 -11
- package/dist/cli/hook-runtime.d.ts +34 -10
- package/dist/cli/hook-runtime.js +41 -16
- package/dist/cli/incidents.d.ts +1 -1
- package/dist/cli/incidents.js +25 -25
- package/dist/cli/init.d.ts +1 -1
- package/dist/cli/init.js +35 -20
- package/dist/cli/install-steps.d.ts +12 -3
- package/dist/cli/install-steps.js +42 -18
- package/dist/cli/last-sleep.d.ts +4 -1
- package/dist/cli/last-sleep.js +9 -4
- package/dist/cli/maintenance.d.ts +1 -1
- package/dist/cli/maintenance.js +11 -12
- package/dist/cli/notes.d.ts +1 -1
- package/dist/cli/notes.js +8 -5
- package/dist/cli/object-verbs.d.ts +5 -5
- package/dist/cli/object-verbs.js +13 -16
- package/dist/cli/open-browser.js +11 -2
- package/dist/cli/playbooks.d.ts +3 -3
- package/dist/cli/playbooks.js +40 -32
- package/dist/cli/predictions.js +17 -22
- package/dist/cli/print.js +4 -2
- package/dist/cli/projects.js +21 -11
- package/dist/cli/quality-repair-once.d.ts +1 -1
- package/dist/cli/quality-repair-once.js +7 -6
- package/dist/cli/recall.js +129 -93
- package/dist/cli/refine-llm.d.ts +15 -4
- package/dist/cli/refine-llm.js +17 -7
- package/dist/cli/remember.js +51 -55
- package/dist/cli/scheduler.d.ts +4 -1
- package/dist/cli/scheduler.js +9 -5
- package/dist/cli/serve.js +28 -18
- package/dist/cli/session-hooks.d.ts +2 -6
- package/dist/cli/session-hooks.js +140 -112
- package/dist/cli/setup.d.ts +1 -1
- package/dist/cli/setup.js +56 -34
- package/dist/cli/shared.d.ts +4 -2
- package/dist/cli/shared.js +26 -11
- package/dist/cli/slack.js +15 -24
- package/dist/cli/sleep-render.d.ts +3 -1
- package/dist/cli/sleep-render.js +8 -5
- package/dist/cli/sleep.js +16 -8
- package/dist/cli/status.d.ts +4 -4
- package/dist/cli/status.js +32 -27
- package/dist/cli/stdin.d.ts +10 -3
- package/dist/cli/stdin.js +10 -3
- package/dist/cli/transfer.d.ts +4 -4
- package/dist/cli/transfer.js +97 -82
- package/dist/cli/usage.d.ts +1 -1
- package/dist/cli/usage.js +1 -1
- package/dist/cli/verb-row.d.ts +2 -0
- package/dist/cli/verbs/health.js +2 -0
- package/dist/cli/verbs/memory.js +47 -53
- package/dist/cli/verbs/objects.js +16 -7
- package/dist/cli/verbs/sessions.js +4 -2
- package/dist/cli/versioned-verbs.d.ts +8 -7
- package/dist/cli/versioned-verbs.js +31 -21
- package/dist/cli.js +14 -18
- package/dist/connectors/dlq.d.ts +6 -6
- package/dist/connectors/dlq.js +12 -7
- package/dist/connectors/github/backfill.d.ts +4 -4
- package/dist/connectors/github/backfill.js +6 -4
- package/dist/connectors/github/deletion.d.ts +6 -4
- package/dist/connectors/github/deletion.js +5 -4
- package/dist/connectors/github/dlq.d.ts +8 -6
- package/dist/connectors/github/dlq.js +11 -5
- package/dist/connectors/github/ingest.d.ts +2 -2
- package/dist/connectors/github/ingest.js +9 -5
- package/dist/connectors/github/octokit-client.d.ts +3 -1
- package/dist/connectors/github/octokit-client.js +7 -2
- package/dist/connectors/github/ratelimit.d.ts +6 -2
- package/dist/connectors/github/ratelimit.js +6 -2
- package/dist/connectors/github/signature.d.ts +14 -3
- package/dist/connectors/github/signature.js +17 -3
- package/dist/connectors/github/tenant-routing.d.ts +6 -4
- package/dist/connectors/github/tenant-routing.js +6 -5
- package/dist/connectors/github/transform.js +50 -67
- package/dist/connectors/github/types.d.ts +10 -3
- package/dist/connectors/github/types.js +6 -2
- package/dist/connectors/github/webhook.d.ts +5 -5
- package/dist/connectors/github/webhook.js +36 -23
- package/dist/connectors/ingest.d.ts +5 -3
- package/dist/connectors/ingest.js +3 -3
- package/dist/connectors/slack/backfill.d.ts +5 -5
- package/dist/connectors/slack/backfill.js +3 -3
- package/dist/connectors/slack/deletion.d.ts +4 -4
- package/dist/connectors/slack/deletion.js +6 -5
- package/dist/connectors/slack/dlq.d.ts +4 -4
- package/dist/connectors/slack/dlq.js +6 -6
- package/dist/connectors/slack/ingest.d.ts +6 -4
- package/dist/connectors/slack/ingest.js +5 -4
- package/dist/connectors/slack/signature.d.ts +4 -1
- package/dist/connectors/slack/tenant-routing.d.ts +6 -4
- package/dist/connectors/slack/tenant-routing.js +6 -5
- package/dist/connectors/slack/transform.d.ts +6 -2
- package/dist/connectors/slack/transform.js +6 -2
- package/dist/connectors/slack/types.d.ts +3 -1
- package/dist/connectors/slack/web-client.js +8 -3
- package/dist/connectors/slack/webhook.d.ts +5 -5
- package/dist/connectors/slack/webhook.js +19 -11
- package/dist/connectors/slack/workspaces.d.ts +7 -3
- package/dist/connectors/slack/workspaces.js +7 -3
- package/dist/connectors/store.d.ts +8 -0
- package/dist/connectors/store.js +2 -0
- package/dist/consolidate/conflicts.js +24 -10
- package/dist/consolidate/dag-summary.js +2 -1
- package/dist/consolidate/dag.d.ts +10 -5
- package/dist/consolidate/dag.js +45 -39
- package/dist/consolidate/decay.js +19 -6
- package/dist/consolidate/dedupe.d.ts +14 -5
- package/dist/consolidate/dedupe.js +28 -17
- package/dist/consolidate/flush-units.d.ts +4 -1
- package/dist/consolidate/flush-units.js +4 -1
- package/dist/consolidate/half-life-migration.d.ts +18 -8
- package/dist/consolidate/half-life-migration.js +48 -18
- package/dist/consolidate/llm-passes.js +27 -11
- package/dist/consolidate/memory-value-weights.d.ts +6 -2
- package/dist/consolidate/memory-value-weights.js +6 -2
- package/dist/consolidate/memory-value.d.ts +30 -10
- package/dist/consolidate/memory-value.js +37 -14
- package/dist/consolidate/merge.d.ts +4 -1
- package/dist/consolidate/merge.js +47 -37
- package/dist/consolidate/overlap-index.d.ts +8 -2
- package/dist/consolidate/overlap-index.js +11 -4
- package/dist/consolidate/physics-pass.d.ts +3 -1
- package/dist/consolidate/physics-pass.js +10 -7
- package/dist/consolidate/replay.d.ts +11 -4
- package/dist/consolidate/replay.js +19 -7
- package/dist/consolidate/run.d.ts +13 -5
- package/dist/consolidate/run.js +4 -4
- package/dist/consolidate/sleep.d.ts +14 -6
- package/dist/consolidate/sleep.js +42 -39
- package/dist/consolidate/trace.d.ts +7 -2
- package/dist/consolidate/trace.js +7 -2
- package/dist/consolidate/traces.js +27 -30
- package/dist/core/ablation.d.ts +9 -3
- package/dist/core/ablation.js +14 -4
- package/dist/core/active-scope.d.ts +3 -1
- package/dist/core/active-scope.js +3 -1
- package/dist/core/agent-memory-tools.d.ts +2 -0
- package/dist/core/agent-memory-tools.js +2 -0
- package/dist/core/ambient.d.ts +4 -3
- package/dist/core/ambient.js +8 -6
- package/dist/core/api-errors.d.ts +9 -3
- package/dist/core/api-errors.js +9 -3
- package/dist/core/capture-contract.d.ts +4 -1
- package/dist/core/capture-contract.js +27 -8
- package/dist/core/compare.d.ts +24 -8
- package/dist/core/compare.js +24 -8
- package/dist/core/config.d.ts +18 -9
- package/dist/core/config.js +38 -29
- package/dist/core/cosine.d.ts +4 -1
- package/dist/core/cosine.js +4 -1
- package/dist/core/handoff.d.ts +7 -2
- package/dist/core/handoff.js +4 -1
- package/dist/core/markdown.js +22 -17
- package/dist/core/memory-audit.js +14 -3
- package/dist/core/memory-quality.d.ts +12 -3
- package/dist/core/memory-quality.js +57 -21
- package/dist/core/memory.d.ts +87 -30
- package/dist/core/memory.js +82 -33
- package/dist/core/merged-row.d.ts +8 -2
- package/dist/core/merged-row.js +10 -3
- package/dist/core/package-root.d.ts +3 -1
- package/dist/core/package-root.js +3 -1
- package/dist/core/particle-refresh.d.ts +8 -0
- package/dist/core/particle-refresh.js +22 -0
- package/dist/core/physics-config.d.ts +4 -1
- package/dist/core/physics-config.js +6 -2
- package/dist/core/physics.d.ts +39 -11
- package/dist/core/physics.js +71 -21
- package/dist/core/project-identity.d.ts +34 -17
- package/dist/core/project-identity.js +35 -18
- package/dist/core/project-remote.d.ts +8 -4
- package/dist/core/project-remote.js +31 -14
- package/dist/core/recall-scope.d.ts +33 -11
- package/dist/core/recall-scope.js +42 -15
- package/dist/core/rejection-digest.d.ts +7 -0
- package/dist/core/rejection-digest.js +13 -0
- package/dist/core/salience.d.ts +3 -1
- package/dist/core/salience.js +10 -4
- package/dist/core/search-types.d.ts +15 -2
- package/dist/core/search-types.js +11 -0
- package/dist/dashboard/dashboard-actions.d.ts +2 -2
- package/dist/dashboard/dashboard-actions.js +18 -7
- package/dist/dashboard/dashboard-queries.js +2 -7
- package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
- package/dist/dashboard/dashboard-snapshot.js +5 -7
- package/dist/dashboard/dashboard.js +22 -8
- package/dist/db/backup.js +2 -2
- package/dist/db/busy.d.ts +10 -3
- package/dist/db/busy.js +27 -5
- package/dist/db/connect.d.ts +10 -2
- package/dist/db/connect.js +8 -2
- package/dist/db/continuity.d.ts +1 -1
- package/dist/db/continuity.js +27 -11
- package/dist/db/meta.d.ts +4 -1
- package/dist/db/meta.js +4 -1
- package/dist/db/migrate.d.ts +10 -5
- package/dist/db/migrate.js +40 -20
- package/dist/db/migrations/index.d.ts +1 -1
- package/dist/db/migrations/index.js +3 -1
- package/dist/db/migrations/types.d.ts +2 -1
- package/dist/db/migrations/v11.js +1 -0
- package/dist/db/migrations/v12.js +2 -1
- package/dist/db/migrations/v14.js +2 -0
- package/dist/db/migrations/v15.js +4 -2
- package/dist/db/migrations/v16.js +6 -3
- package/dist/db/migrations/v17.js +2 -1
- package/dist/db/migrations/v19.js +4 -2
- package/dist/db/migrations/v20.js +2 -1
- package/dist/db/migrations/v22.js +12 -6
- package/dist/db/migrations/v23.js +6 -3
- package/dist/db/migrations/v24.js +6 -3
- package/dist/db/migrations/v25.js +4 -2
- package/dist/db/migrations/v26.js +4 -2
- package/dist/db/migrations/v27.js +6 -3
- package/dist/db/migrations/v28.js +4 -2
- package/dist/db/migrations/v29.js +4 -2
- package/dist/db/migrations/v30.js +6 -3
- package/dist/db/migrations/v31.js +4 -2
- package/dist/db/migrations/v32.js +6 -3
- package/dist/db/migrations/v33.js +4 -2
- package/dist/db/migrations/v34.js +2 -1
- package/dist/db/migrations/v35.js +2 -1
- package/dist/db/migrations/v36.js +2 -1
- package/dist/db/migrations/v37.js +10 -5
- package/dist/db/migrations/v38.js +10 -5
- package/dist/db/migrations/v39.js +14 -6
- package/dist/db/migrations/v40.js +4 -2
- package/dist/db/migrations/v41.js +4 -2
- package/dist/db/migrations/v42.js +2 -1
- package/dist/db/migrations/v44.js +4 -2
- package/dist/db/migrations/v45.js +4 -2
- package/dist/db/migrations/v49.js +2 -1
- package/dist/db/migrations/v50.js +4 -2
- package/dist/db/migrations/v51.js +4 -2
- package/dist/db/migrations/v52.js +2 -1
- package/dist/db/migrations/v53.js +8 -4
- package/dist/db/migrations/v54.js +2 -1
- package/dist/db/migrations/v55.js +4 -2
- package/dist/db/migrations/v56.d.ts +3 -0
- package/dist/db/migrations/v56.js +28 -0
- package/dist/db/open.d.ts +24 -12
- package/dist/db/open.js +25 -13
- package/dist/db/physics-state.d.ts +8 -8
- package/dist/db/physics-state.js +17 -50
- package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
- package/dist/db/raw-archive-mirror-cleanup.js +6 -4
- package/dist/db/request-stores.d.ts +20 -5
- package/dist/db/request-stores.js +15 -5
- package/dist/db/tables.d.ts +2 -1
- package/dist/db/tables.js +12 -4
- package/dist/db/vector-store.d.ts +13 -4
- package/dist/db/vector-store.js +35 -14
- package/dist/db/wal-checkpointer.d.ts +2 -1
- package/dist/db/wal-checkpointer.js +19 -7
- package/dist/doctor.d.ts +7 -1
- package/dist/doctor.js +128 -46
- package/dist/embeddings/local.d.ts +8 -4
- package/dist/embeddings/local.js +11 -7
- package/dist/embeddings/provider.d.ts +19 -10
- package/dist/embeddings/provider.js +32 -27
- package/dist/embeddings/transformers.d.ts +16 -4
- package/dist/embeddings/transformers.js +32 -15
- package/dist/entry/json-hooks.d.ts +1 -1
- package/dist/entry/json-hooks.js +1 -1
- package/dist/entry/project-identity.js +2 -1
- package/dist/entry/session-text.d.ts +1 -1
- package/dist/entry/session-text.js +1 -1
- package/dist/entry/sqlite-handles.d.ts +10 -0
- package/dist/entry/sqlite-handles.js +9 -0
- package/dist/entry/store-kit.d.ts +50 -0
- package/dist/entry/store-kit.js +27 -0
- package/dist/entry/testing.d.ts +6 -0
- package/dist/entry/testing.js +7 -0
- package/dist/eval/eval-stats.d.ts +27 -8
- package/dist/eval/eval-stats.js +17 -5
- package/dist/eval/eval-suite.d.ts +3 -1
- package/dist/eval/eval-suite.js +409 -187
- package/dist/eval/eval.d.ts +8 -2
- package/dist/eval/eval.js +8 -2
- package/dist/eval/judgment.js +17 -7
- package/dist/graph/delta.d.ts +9 -42
- package/dist/graph/delta.js +17 -11
- package/dist/graph/extract.d.ts +10 -7
- package/dist/graph/extract.js +57 -25
- package/dist/graph/recall.d.ts +12 -4
- package/dist/graph/recall.js +30 -13
- package/dist/graph/stream.d.ts +18 -6
- package/dist/graph/stream.js +32 -10
- package/dist/graph/view.d.ts +19 -6
- package/dist/graph/view.js +42 -17
- package/dist/hooks/codex-session.js +2 -2
- package/dist/hooks/codex-wrapper.d.ts +3 -1
- package/dist/hooks/codex-wrapper.js +9 -4
- package/dist/hooks/copilot.d.ts +19 -5
- package/dist/hooks/copilot.js +54 -15
- package/dist/hooks/hook-blocks.d.ts +4 -1
- package/dist/hooks/hook-blocks.js +8 -3
- package/dist/hooks/json-hooks.d.ts +9 -5
- package/dist/hooks/json-hooks.js +72 -33
- package/dist/hooks/opencode.js +15 -5
- package/dist/hooks/shared.d.ts +27 -8
- package/dist/hooks/shared.js +57 -16
- package/dist/importers/core.d.ts +12 -4
- package/dist/importers/core.js +11 -10
- package/dist/importers/markdown-parse.d.ts +15 -5
- package/dist/importers/markdown-parse.js +16 -7
- package/dist/importers/markdown.js +6 -9
- package/dist/importers/sources.js +10 -23
- package/dist/importers/vault.d.ts +3 -3
- package/dist/importers/vault.js +61 -45
- package/dist/index.d.ts +33 -7
- package/dist/index.js +26 -8
- package/dist/learn/autolearn.d.ts +21 -6
- package/dist/learn/autolearn.js +57 -26
- package/dist/learn/churn-git.d.ts +4 -1
- package/dist/learn/churn-git.js +29 -5
- package/dist/learn/extract.d.ts +4 -1
- package/dist/learn/extract.js +17 -10
- package/dist/learn/forward-claim-detector.d.ts +17 -5
- package/dist/learn/forward-claim-detector.js +34 -15
- package/dist/learn/invalidation.d.ts +12 -6
- package/dist/learn/invalidation.js +62 -28
- package/dist/learn/roots.d.ts +3 -0
- package/dist/learn/roots.js +5 -0
- package/dist/mcp/admin-tools.d.ts +5 -5
- package/dist/mcp/admin-tools.js +28 -23
- package/dist/mcp/format.d.ts +1 -1
- package/dist/mcp/format.js +4 -2
- package/dist/mcp/framing.d.ts +3 -1
- package/dist/mcp/framing.js +20 -8
- package/dist/mcp/memory-tools.d.ts +3 -3
- package/dist/mcp/memory-tools.js +21 -20
- package/dist/mcp/protocol.d.ts +32 -16
- package/dist/mcp/protocol.js +12 -9
- package/dist/mcp/recall-tools.d.ts +3 -3
- package/dist/mcp/recall-tools.js +62 -74
- package/dist/mcp/request.d.ts +7 -5
- package/dist/mcp/request.js +61 -77
- package/dist/mcp/server.d.ts +3 -1
- package/dist/mcp/server.js +8 -3
- package/dist/mcp/session-state.d.ts +1 -1
- package/dist/mcp/session-state.js +4 -3
- package/dist/mcp/shared-gate.d.ts +3 -2
- package/dist/mcp/shared-gate.js +3 -2
- package/dist/mcp/stdio.d.ts +6 -3
- package/dist/mcp/stdio.js +59 -23
- package/dist/mcp/tool-args.d.ts +4 -1
- package/dist/mcp/tool-args.js +8 -3
- package/dist/mcp/tools.js +76 -32
- package/dist/objects/customer-notes.d.ts +12 -10
- package/dist/objects/customer-notes.js +21 -15
- package/dist/objects/decisions.d.ts +18 -10
- package/dist/objects/decisions.js +23 -17
- package/dist/objects/descriptor.js +2 -1
- package/dist/objects/fields.d.ts +4 -1
- package/dist/objects/fields.js +6 -2
- package/dist/objects/incidents.d.ts +14 -16
- package/dist/objects/incidents.js +29 -30
- package/dist/objects/lifecycle.d.ts +0 -4
- package/dist/objects/lifecycle.js +21 -24
- package/dist/objects/policies.d.ts +12 -16
- package/dist/objects/policies.js +17 -21
- package/dist/objects/processes.d.ts +16 -10
- package/dist/objects/processes.js +20 -15
- package/dist/objects/project-briefs.d.ts +13 -14
- package/dist/objects/project-briefs.js +33 -39
- package/dist/objects/skills.d.ts +10 -12
- package/dist/objects/skills.js +17 -22
- package/dist/postinstall.js +15 -7
- package/dist/predictions/planning-fallacy.d.ts +19 -6
- package/dist/predictions/planning-fallacy.js +4 -2
- package/dist/rerankers/clef.d.ts +8 -2
- package/dist/rerankers/clef.js +14 -9
- package/dist/rerankers/cross-encoder.d.ts +2 -1
- package/dist/rerankers/cross-encoder.js +19 -9
- package/dist/rerankers/index.js +2 -1
- package/dist/rerankers/jev.js +2 -1
- package/dist/rerankers/llm.d.ts +6 -2
- package/dist/rerankers/llm.js +8 -3
- package/dist/rerankers/remote.d.ts +3 -1
- package/dist/rerankers/remote.js +5 -2
- package/dist/rerankers/types.d.ts +6 -2
- package/dist/search/bm25-search.d.ts +3 -1
- package/dist/search/bm25-search.js +15 -2
- package/dist/search/boosts.js +4 -3
- package/dist/search/embed-memories.d.ts +12 -4
- package/dist/search/embed-memories.js +96 -58
- package/dist/search/engine.d.ts +11 -0
- package/dist/search/engine.js +14 -0
- package/dist/search/goal-boost.d.ts +10 -3
- package/dist/search/goal-boost.js +13 -6
- package/dist/search/hybrid-score.d.ts +4 -1
- package/dist/search/hybrid-score.js +4 -1
- package/dist/search/hybrid.d.ts +23 -8
- package/dist/search/hybrid.js +12 -7
- package/dist/search/multihop.js +14 -13
- package/dist/search/path-context.d.ts +10 -3
- package/dist/search/path-context.js +10 -3
- package/dist/search/physics-search.d.ts +9 -4
- package/dist/search/physics-search.js +38 -14
- package/dist/search/rerank.d.ts +2 -1
- package/dist/search/rerank.js +2 -1
- package/dist/search/rrf.d.ts +14 -5
- package/dist/search/rrf.js +11 -4
- package/dist/search/vector.d.ts +8 -2
- package/dist/search/vector.js +14 -8
- package/dist/server/auth.d.ts +19 -15
- package/dist/server/auth.js +68 -38
- package/dist/server/boot.d.ts +4 -1
- package/dist/server/boot.js +115 -67
- package/dist/server/client-ip.d.ts +17 -5
- package/dist/server/client-ip.js +56 -21
- package/dist/server/cursor.d.ts +10 -3
- package/dist/server/cursor.js +10 -3
- package/dist/server/deadline.d.ts +5 -2
- package/dist/server/deadline.js +10 -3
- package/dist/server/key-check-bounds.js +12 -4
- package/dist/server/lifecycle.d.ts +4 -1
- package/dist/server/lifecycle.js +10 -4
- package/dist/server/mcp-http.d.ts +2 -1
- package/dist/server/mcp-http.js +37 -22
- package/dist/server/rate-limit.d.ts +17 -5
- package/dist/server/rate-limit.js +55 -26
- package/dist/server/ready.js +7 -4
- package/dist/server/request.d.ts +15 -4
- package/dist/server/request.js +42 -15
- package/dist/server/route-checks.d.ts +4 -1
- package/dist/server/route-checks.js +8 -3
- package/dist/server/route-table.d.ts +8 -6
- package/dist/server/route-table.js +550 -97
- package/dist/server/routes/admin.d.ts +7 -7
- package/dist/server/routes/admin.js +36 -15
- package/dist/server/routes/customer-notes.d.ts +5 -5
- package/dist/server/routes/customer-notes.js +5 -4
- package/dist/server/routes/decisions.d.ts +5 -5
- package/dist/server/routes/decisions.js +12 -6
- package/dist/server/routes/incidents.d.ts +5 -5
- package/dist/server/routes/incidents.js +10 -4
- package/dist/server/routes/memories.d.ts +8 -8
- package/dist/server/routes/memories.js +12 -17
- package/dist/server/routes/object-routes.d.ts +8 -5
- package/dist/server/routes/object-routes.js +4 -2
- package/dist/server/routes/policies.d.ts +6 -6
- package/dist/server/routes/policies.js +11 -4
- package/dist/server/routes/predictions.d.ts +5 -5
- package/dist/server/routes/predictions.js +9 -4
- package/dist/server/routes/processes.d.ts +5 -5
- package/dist/server/routes/processes.js +15 -6
- package/dist/server/routes/project-briefs.d.ts +6 -6
- package/dist/server/routes/project-briefs.js +3 -2
- package/dist/server/routes/recall.d.ts +3 -3
- package/dist/server/routes/recall.js +21 -10
- package/dist/server/routes/skills.d.ts +6 -6
- package/dist/server/routes/skills.js +12 -4
- package/dist/server/server-detect.d.ts +24 -8
- package/dist/server/server-detect.js +57 -22
- package/dist/server/sleep-child.js +16 -10
- package/dist/server/sleep-offload.d.ts +8 -5
- package/dist/server/sleep-offload.js +40 -18
- package/dist/server/tls.d.ts +10 -2
- package/dist/server/tls.js +25 -5
- package/dist/server/types.d.ts +41 -24
- package/dist/server/validation.d.ts +4 -1
- package/dist/server/validation.js +22 -9
- package/dist/server.d.ts +17 -49
- package/dist/server.js +33 -40
- package/dist/sharing/global-store.d.ts +6 -12
- package/dist/sharing/global-store.js +8 -48
- package/dist/sharing/global-sync.d.ts +3 -1
- package/dist/sharing/global-sync.js +17 -7
- package/dist/sharing/project-merge.d.ts +25 -7
- package/dist/sharing/project-merge.js +49 -17
- package/dist/sharing/search-both.d.ts +8 -4
- package/dist/sharing/search-both.js +28 -14
- package/dist/sharing/share.d.ts +8 -4
- package/dist/sharing/share.js +40 -18
- package/dist/store/ambient.js +10 -5
- package/dist/store/audit-event.d.ts +2 -2
- package/dist/store/audit-event.js +8 -3
- package/dist/store/audit.d.ts +6 -3
- package/dist/store/audit.js +16 -6
- package/dist/store/auth.d.ts +4 -2
- package/dist/store/auth.js +63 -20
- package/dist/store/busy.d.ts +9 -0
- package/dist/store/busy.js +16 -0
- package/dist/store/candidates.d.ts +12 -5
- package/dist/store/candidates.js +90 -41
- package/dist/store/capture-write.d.ts +2 -1
- package/dist/store/capture-write.js +2 -1
- package/dist/store/card-detail.d.ts +4 -4
- package/dist/store/card-detail.js +15 -8
- package/dist/store/cards.d.ts +24 -10
- package/dist/store/cards.js +97 -63
- package/dist/store/compaction-caller.d.ts +2 -1
- package/dist/store/compaction-caller.js +2 -1
- package/dist/store/compactions-record.d.ts +14 -8
- package/dist/store/compactions-record.js +101 -37
- package/dist/store/compactions.js +35 -15
- package/dist/store/conflicts.d.ts +16 -5
- package/dist/store/conflicts.js +104 -48
- package/dist/store/connectors/dlq.d.ts +17 -5
- package/dist/store/connectors/dlq.js +58 -6
- package/dist/store/connectors/event-log.d.ts +122 -0
- package/dist/store/connectors/event-log.js +25 -0
- package/dist/store/connectors/github.d.ts +6 -3
- package/dist/store/connectors/github.js +30 -48
- package/dist/store/connectors/slack.d.ts +2 -1
- package/dist/store/connectors/slack.js +31 -47
- package/dist/store/dashboard-reads.d.ts +7 -3
- package/dist/store/dashboard-reads.js +32 -10
- package/dist/store/delete-and-batch.d.ts +17 -11
- package/dist/store/delete-and-batch.js +70 -28
- package/dist/store/delivery-recorder.d.ts +10 -7
- package/dist/store/delivery-recorder.js +70 -37
- package/dist/store/descendant-page.d.ts +2 -1
- package/dist/store/descendant-page.js +26 -10
- package/dist/store/diagnostics.d.ts +2 -1
- package/dist/store/diagnostics.js +2 -1
- package/dist/store/doctor-reads.d.ts +2 -1
- package/dist/store/doctor-reads.js +13 -5
- package/dist/store/dormant.d.ts +19 -11
- package/dist/store/dormant.js +45 -19
- package/dist/store/embeddings/index.d.ts +13 -9
- package/dist/store/embeddings/index.js +19 -12
- package/dist/store/entry-reads.d.ts +72 -21
- package/dist/store/entry-reads.js +215 -69
- package/dist/store/entry-row.d.ts +10 -6
- package/dist/store/entry-row.js +26 -14
- package/dist/store/entry-writes.d.ts +28 -13
- package/dist/store/entry-writes.js +61 -22
- package/dist/store/failure-log-at.js +1 -1
- package/dist/store/failure-log.d.ts +4 -2
- package/dist/store/failure-log.js +13 -6
- package/dist/store/gated-write.d.ts +3 -3
- package/dist/store/gated-write.js +3 -3
- package/dist/store/goals.d.ts +5 -4
- package/dist/store/goals.js +11 -12
- package/dist/store/graph-apply.d.ts +21 -0
- package/dist/{graph/write.js → store/graph-apply.js} +31 -11
- package/dist/store/graph-queue.d.ts +9 -6
- package/dist/store/graph-queue.js +15 -10
- package/dist/store/graph-reads.d.ts +16 -11
- package/dist/store/graph-reads.js +29 -19
- package/dist/store/graph-rows.d.ts +41 -3
- package/dist/store/graph-rows.js +10 -7
- package/dist/store/graph-view-rows.js +15 -7
- package/dist/store/graph-writes.d.ts +16 -10
- package/dist/store/graph-writes.js +59 -36
- package/dist/store/half-life.js +2 -2
- package/dist/store/handoffs.d.ts +13 -7
- package/dist/store/handoffs.js +44 -22
- package/dist/store/index-and-stats.d.ts +2 -2
- package/dist/store/index-and-stats.js +6 -5
- package/dist/store/index.d.ts +4 -2
- package/dist/store/index.js +2 -1
- package/dist/store/key-audit.d.ts +2 -1
- package/dist/store/key-audit.js +2 -1
- package/dist/store/key-writes.d.ts +2 -1
- package/dist/store/key-writes.js +9 -2
- package/dist/store/ledger-turn.d.ts +4 -1
- package/dist/store/ledger-turn.js +7 -2
- package/dist/store/mirrors.d.ts +11 -4
- package/dist/store/mirrors.js +96 -19
- package/dist/store/narrow.d.ts +6 -0
- package/dist/store/narrow.js +11 -0
- package/dist/store/open.d.ts +6 -3
- package/dist/store/open.js +20 -10
- package/dist/store/pilot-arm.d.ts +2 -1
- package/dist/store/pilot-arm.js +18 -6
- package/dist/store/planning-fallacy-evidence.d.ts +2 -2
- package/dist/store/planning-fallacy-evidence.js +8 -5
- package/dist/store/port/agent-import.d.ts +62 -0
- package/dist/store/port/agent-import.js +2 -0
- package/dist/store/port/consolidation.d.ts +129 -0
- package/dist/store/port/consolidation.js +2 -0
- package/dist/store/port/learning.d.ts +19 -0
- package/dist/store/port/learning.js +2 -0
- package/dist/store/port/local-files.d.ts +18 -0
- package/dist/store/port/local-files.js +2 -0
- package/dist/store/port/promotion.d.ts +20 -0
- package/dist/store/port/promotion.js +3 -0
- package/dist/store/port-groups.d.ts +160 -0
- package/dist/store/port-groups.js +2 -0
- package/dist/store/port.d.ts +261 -219
- package/dist/store/port.js +3 -9
- package/dist/store/predictions.d.ts +14 -10
- package/dist/store/predictions.js +37 -17
- package/dist/store/project-tags.d.ts +4 -1
- package/dist/store/project-tags.js +16 -5
- package/dist/store/quality-repair.d.ts +8 -4
- package/dist/store/quality-repair.js +53 -20
- package/dist/store/quarantine.d.ts +1 -0
- package/dist/store/quarantine.js +23 -9
- package/dist/store/raw-archive.d.ts +5 -4
- package/dist/store/raw-archive.js +11 -10
- package/dist/store/recall-trace.d.ts +22 -17
- package/dist/store/recall-trace.js +128 -64
- package/dist/store/rejected-values.d.ts +15 -10
- package/dist/store/rejected-values.js +46 -20
- package/dist/store/rejection.d.ts +12 -11
- package/dist/store/rejection.js +18 -19
- package/dist/store/report-reads.d.ts +2 -1
- package/dist/store/report-reads.js +2 -1
- package/dist/store/rows.d.ts +7 -5
- package/dist/store/rows.js +20 -13
- package/dist/store/rule-sql.d.ts +7 -3
- package/dist/store/rule-sql.js +26 -13
- package/dist/store/search-rows.d.ts +16 -11
- package/dist/store/search-rows.js +54 -32
- package/dist/store/sessions.d.ts +12 -10
- package/dist/store/sessions.js +40 -21
- package/dist/store/set-aside.d.ts +2 -2
- package/dist/store/set-aside.js +18 -5
- package/dist/store/sqlite/agent-import.d.ts +3 -0
- package/dist/store/sqlite/agent-import.js +77 -0
- package/dist/store/sqlite/cards-group.d.ts +6 -0
- package/dist/store/sqlite/cards-group.js +37 -0
- package/dist/store/sqlite/conflicts-group.d.ts +6 -0
- package/dist/store/sqlite/conflicts-group.js +18 -0
- package/dist/store/sqlite/connector-events-group.d.ts +2 -1
- package/dist/store/sqlite/connector-events-group.js +17 -6
- package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
- package/dist/store/sqlite/connector-writes-group.js +12 -5
- package/dist/store/sqlite/consolidation-group.d.ts +4 -0
- package/dist/store/sqlite/consolidation-group.js +64 -0
- package/dist/store/sqlite/dag-reads-group.js +1 -1
- package/dist/store/sqlite/dormant-group.d.ts +6 -0
- package/dist/store/sqlite/dormant-group.js +29 -0
- package/dist/store/sqlite/entry-writes-group.d.ts +9 -6
- package/dist/store/sqlite/entry-writes-group.js +37 -14
- package/dist/store/sqlite/error-codec.d.ts +4 -2
- package/dist/store/sqlite/error-codec.js +32 -10
- package/dist/store/sqlite/executor-counts.js +2 -1
- package/dist/store/sqlite/executor.d.ts +8 -3
- package/dist/store/sqlite/executor.js +56 -18
- package/dist/store/sqlite/global-promote.d.ts +5 -0
- package/dist/store/sqlite/global-promote.js +48 -0
- package/dist/store/sqlite/goals-group.d.ts +6 -0
- package/dist/store/sqlite/goals-group.js +23 -0
- package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
- package/dist/store/sqlite/graph-reads-group.js +2 -1
- package/dist/store/sqlite/held-connection.d.ts +8 -0
- package/dist/store/sqlite/held-connection.js +34 -7
- package/dist/store/sqlite/last-recall-group.d.ts +15 -0
- package/dist/store/sqlite/last-recall-group.js +62 -0
- package/dist/store/sqlite/learning-group.d.ts +4 -0
- package/dist/store/sqlite/learning-group.js +17 -0
- package/dist/store/sqlite/maintenance-groups.d.ts +6 -0
- package/dist/store/sqlite/maintenance-groups.js +61 -0
- package/dist/store/sqlite/object-rows.d.ts +6 -3
- package/dist/store/sqlite/object-rows.js +34 -5
- package/dist/store/sqlite/objects-group.d.ts +5 -4
- package/dist/store/sqlite/objects-group.js +97 -38
- package/dist/store/sqlite/predictions-group.d.ts +2 -1
- package/dist/store/sqlite/predictions-group.js +4 -2
- package/dist/store/sqlite/promotion-group.d.ts +3 -0
- package/dist/store/sqlite/promotion-group.js +10 -0
- package/dist/store/sqlite/quarantine-group.d.ts +2 -1
- package/dist/store/sqlite/quarantine-group.js +4 -2
- package/dist/store/sqlite/reports-group.d.ts +6 -0
- package/dist/store/sqlite/reports-group.js +33 -0
- package/dist/store/sqlite/request-scope.d.ts +6 -0
- package/dist/store/sqlite/request-scope.js +18 -0
- package/dist/store/sqlite/sessions-group.d.ts +6 -0
- package/dist/store/sqlite/sessions-group.js +46 -0
- package/dist/store/sqlite/store.d.ts +22 -18
- package/dist/store/sqlite/store.js +95 -33
- package/dist/store/sqlite/vector-pack.js +2 -1
- package/dist/store/sqlite/vector-reads-group.js +2 -1
- package/dist/store/sqlite/worker-jobs.d.ts +2 -1
- package/dist/store/sqlite/worker-jobs.js +19 -7
- package/dist/store/sqlite/worker-ops.d.ts +10 -5
- package/dist/store/sqlite/worker-ops.js +6 -3
- package/dist/store/sqlite/worker-store.d.ts +4 -3
- package/dist/store/sqlite/worker-store.js +24 -14
- package/dist/store/summaries.d.ts +25 -11
- package/dist/store/summaries.js +84 -27
- package/dist/store/summary-dirty.d.ts +2 -1
- package/dist/store/summary-dirty.js +2 -1
- package/dist/store/tenant.d.ts +3 -2
- package/dist/store/tenant.js +5 -4
- package/dist/store/token-ledger-rows.js +8 -4
- package/dist/store/token-ledger.d.ts +19 -13
- package/dist/store/token-ledger.js +27 -14
- package/dist/store/tombstone-checks.d.ts +4 -1
- package/dist/store/tombstone-checks.js +10 -1
- package/dist/store/usage-reports.js +2 -1
- package/dist/store/vector-index.d.ts +8 -5
- package/dist/store/vector-index.js +28 -11
- package/dist/store/working-memory.d.ts +6 -4
- package/dist/store/working-memory.js +14 -9
- package/dist/support-bundle.js +10 -5
- package/dist/trust/quarantine.d.ts +1 -2
- package/dist/trust/quarantine.js +1 -5
- package/dist/trust/reject-flow.d.ts +12 -3
- package/dist/trust/reject-flow.js +12 -4
- package/dist/util/anthropic-messages.d.ts +7 -2
- package/dist/util/anthropic-messages.js +18 -7
- package/dist/util/atomic-write.d.ts +8 -3
- package/dist/util/atomic-write.js +36 -21
- package/dist/util/compaction-items.d.ts +4 -1
- package/dist/util/compaction-items.js +8 -2
- package/dist/util/crash-handlers.d.ts +7 -2
- package/dist/util/crash-handlers.js +13 -4
- package/dist/util/env.d.ts +26 -5
- package/dist/util/env.js +87 -25
- package/dist/util/format.d.ts +2 -0
- package/dist/util/format.js +4 -0
- package/dist/util/home-path.js +12 -6
- package/dist/util/hook-payload.d.ts +3 -1
- package/dist/util/hook-payload.js +3 -1
- package/dist/util/http-retry.d.ts +12 -6
- package/dist/util/http-retry.js +16 -6
- package/dist/util/http-util.d.ts +20 -5
- package/dist/util/http-util.js +28 -9
- package/dist/util/json.d.ts +4 -1
- package/dist/util/json.js +4 -1
- package/dist/util/keyset.js +2 -1
- package/dist/util/limits.js +4 -2
- package/dist/util/log.d.ts +13 -5
- package/dist/util/log.js +29 -6
- package/dist/util/net.d.ts +5 -0
- package/dist/util/net.js +19 -0
- package/dist/util/real-path.d.ts +2 -1
- package/dist/util/real-path.js +4 -3
- package/dist/util/request-scope.d.ts +16 -4
- package/dist/util/request-scope.js +19 -6
- package/dist/util/same-text.d.ts +10 -3
- package/dist/util/same-text.js +10 -3
- package/dist/util/secret-detect.d.ts +24 -7
- package/dist/util/secret-detect.js +49 -14
- package/dist/util/spawn-argv.d.ts +11 -0
- package/dist/util/spawn-argv.js +66 -0
- package/dist/util/sql.d.ts +3 -0
- package/dist/util/sql.js +6 -0
- package/dist/util/sqlite-blocked.d.ts +15 -4
- package/dist/util/sqlite-blocked.js +19 -6
- package/dist/util/stored-json.d.ts +4 -1
- package/dist/util/stored-json.js +6 -2
- package/dist/util/stream-tee.d.ts +2 -1
- package/dist/util/stream-tee.js +8 -5
- package/dist/util/transcript-tail.d.ts +4 -1
- package/dist/util/transcript-tail.js +4 -1
- package/dist/util/vector-codec.d.ts +4 -0
- package/dist/util/vector-codec.js +15 -0
- package/dist/util/version.d.ts +8 -3
- package/dist/util/version.js +8 -3
- package/dist/util/write-budget.d.ts +7 -2
- package/dist/util/write-budget.js +5 -2
- package/dist/util/yaml.d.ts +4 -1
- package/dist/util/yaml.js +4 -1
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +4 -1
- package/scripts/postinstall.cjs +3 -1
- package/dist/api/audit.js +0 -56
- package/dist/api/cards.d.ts +0 -42
- package/dist/api/conflicts.d.ts +0 -28
- package/dist/api/conflicts.js +0 -61
- package/dist/api/dormant.d.ts +0 -14
- package/dist/api/dormant.js +0 -58
- package/dist/api/goals.d.ts +0 -18
- package/dist/api/graph.d.ts +0 -8
- package/dist/api/graph.js +0 -7
- package/dist/api/learn.js +0 -124
- package/dist/api/memories.d.ts +0 -23
- package/dist/api/memories.js +0 -46
- package/dist/api/objects.d.ts +0 -9
- package/dist/api/on-store.d.ts +0 -16
- package/dist/api/on-store.js +0 -38
- package/dist/api/outcome.d.ts +0 -19
- package/dist/api/outcome.js +0 -21
- package/dist/api/predictions.d.ts +0 -11
- package/dist/api/promote.d.ts +0 -36
- package/dist/api/promote.js +0 -65
- package/dist/api/recall-core.d.ts +0 -4
- package/dist/api/recall-core.js +0 -120
- package/dist/api/recall-finish.d.ts +0 -53
- package/dist/api/recall-finish.js +0 -30
- package/dist/api/recall-history.d.ts +0 -64
- package/dist/api/recall-history.js +0 -159
- package/dist/api/recall-record.d.ts +0 -43
- package/dist/api/recall-record.js +0 -78
- package/dist/api/recall-request.js +0 -121
- package/dist/api/recall.d.ts +0 -6
- package/dist/api/refine.d.ts +0 -7
- package/dist/api/refine.js +0 -10
- package/dist/api/session-owners.d.ts +0 -4
- package/dist/api/session-owners.js +0 -17
- package/dist/api/sleep-run.d.ts +0 -26
- package/dist/api/sleep.js +0 -10
- package/dist/cli/lenient-id.d.ts +0 -2
- package/dist/cli/lenient-id.js +0 -13
- package/dist/graph/write.d.ts +0 -14
- package/dist/store/sqlite/busy.d.ts +0 -3
- package/dist/store/sqlite/busy.js +0 -8
- package/dist/store/sqlite/local.d.ts +0 -21
- package/dist/store/sqlite/local.js +0 -39
package/dist/cli/verbs/health.js
CHANGED
|
@@ -4,6 +4,7 @@ import { DEFAULT_ASSEMBLE_BUDGET } from '../../api/assemble.js';
|
|
|
4
4
|
import { verb } from '../verb-row.js';
|
|
5
5
|
export const HEALTH_VERBS = {
|
|
6
6
|
status: verb(() => import('../status.js'), 'handleStatus', {
|
|
7
|
+
repairsCodexWrapper: true,
|
|
7
8
|
flags: {},
|
|
8
9
|
usage: [`
|
|
9
10
|
status Show memory health stats`],
|
|
@@ -98,6 +99,7 @@ export const HEALTH_VERBS = {
|
|
|
98
99
|
--json Output as JSON`],
|
|
99
100
|
}),
|
|
100
101
|
outcome: verb(() => import('../curate.js'), 'handleOutcome', {
|
|
102
|
+
repairsCodexWrapper: true,
|
|
101
103
|
scoped: true,
|
|
102
104
|
flags: { switches: ['bad', 'good'], values: ['id'] },
|
|
103
105
|
usage: [`
|
package/dist/cli/verbs/memory.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
// Store, recall and maintenance verbs; every verbs/ file keeps its rows in the order `hippo help` lists them.
|
|
2
|
-
import { DEFAULT_LOCAL_BUMP, DEFAULT_RECALL_BUDGET } from '../../core/search-types.js';
|
|
3
|
-
import { DEFAULT_EMBEDDING_WEIGHT
|
|
2
|
+
import { CONFLICT_PEER_MULTIPLIER, DEFAULT_LOCAL_BUMP, DEFAULT_MMR_LAMBDA, DEFAULT_RECALL_BUDGET, SALIENCE_MIN_MULTIPLIER, UTILITY_LENGTH_PENALTY_CAP, UTILITY_LENGTH_TOKENS, VALUE_MULT_MAX, VALUE_MULT_MIN, VALUE_MULT_SLOPE, } from '../../core/search-types.js';
|
|
3
|
+
import { DEFAULT_EMBEDDING_WEIGHT } from '../../search/hybrid.js';
|
|
4
4
|
import { DEFAULT_GRAPH_HOPS, DEFAULT_GRAPH_SEED_COUNT } from '../../graph/stream.js';
|
|
5
5
|
import { verb } from '../verb-row.js';
|
|
6
|
+
const VALUE_CLIP = `clip(1 + ${VALUE_MULT_SLOPE}*tanh(pos - neg), ${VALUE_MULT_MIN}, ${VALUE_MULT_MAX})`;
|
|
6
7
|
export const MEMORY_VERBS = {
|
|
7
8
|
init: verb(() => import('../init.js'), 'handleInit', {
|
|
9
|
+
repairsCodexWrapper: true,
|
|
10
|
+
scoped: true,
|
|
8
11
|
flags: { switches: ['global', 'no-hooks', 'no-learn', 'no-schedule'], values: ['scan'], numbers: ['days'] },
|
|
9
12
|
usage: [`
|
|
10
13
|
init Create .hippo/ structure in current directory
|
|
@@ -18,6 +21,7 @@ export const MEMORY_VERBS = {
|
|
|
18
21
|
coding agents' own memories (every init imports those)`],
|
|
19
22
|
}),
|
|
20
23
|
remember: verb(() => import('../remember.js'), 'handleRemember', {
|
|
24
|
+
repairsCodexWrapper: true,
|
|
21
25
|
flags: {
|
|
22
26
|
switches: ['error', 'extract', 'force', 'global', 'inferred', 'observed', 'pin', 'verified'],
|
|
23
27
|
values: ['artifact-ref', 'kind', 'layer', 'owner', 'scope'],
|
|
@@ -43,6 +47,7 @@ export const MEMORY_VERBS = {
|
|
|
43
47
|
--pin Pin the new memory (default: pinned if the old one was)`],
|
|
44
48
|
}),
|
|
45
49
|
recall: verb(() => import('../recall.js'), 'handleRecall', {
|
|
50
|
+
repairsCodexWrapper: true,
|
|
46
51
|
scoped: true,
|
|
47
52
|
flags: {
|
|
48
53
|
switches: ['classic', 'continuity', 'equal-sources', 'evc-adaptive', 'filter-conflicts', 'graph-stream',
|
|
@@ -61,47 +66,40 @@ export const MEMORY_VERBS = {
|
|
|
61
66
|
--as-of <iso-date> Return the memories that were current on that date
|
|
62
67
|
--multihop Search a second time with the speaker: and topic: tags the
|
|
63
68
|
first pass found (also on when config multihop.enabled is true)
|
|
64
|
-
--hops <n>
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
light up the same traversal once extracted.
|
|
69
|
+
--hops <n> Also surface memories reached by walking the entity and
|
|
70
|
+
relation graph <n> hops (0..3, default off) out from the
|
|
71
|
+
lexical matches. Graph hits are tagged [graph: Nhop <rel>].
|
|
72
|
+
Today the graph holds supersedes edges; cross-object
|
|
73
|
+
edges light up the same walk once extracted.
|
|
70
74
|
--max-neighbors <n> Per-hop fanout cap for --hops (1..200, default 25).
|
|
71
|
-
--graph-stream
|
|
72
|
-
in-pool results by
|
|
73
|
-
|
|
74
|
-
only.
|
|
75
|
-
|
|
75
|
+
--graph-stream Fuse a graph-proximity ranking into the result list,
|
|
76
|
+
re-ranking in-pool results by closeness to the strong
|
|
77
|
+
lexical matches. Implies rrf scoring (default is blend).
|
|
78
|
+
Local store only. Unlike --hops, it adds no memories
|
|
79
|
+
from outside the candidate pool.
|
|
76
80
|
--graph-hops <n> Hops for --graph-stream (1..3, default ${DEFAULT_GRAPH_HOPS}).
|
|
77
81
|
--graph-seeds <n> Lexical anchors for --graph-stream (default ${DEFAULT_GRAPH_SEED_COUNT}). The stream
|
|
78
|
-
re-ranks the
|
|
79
|
-
every candidate is
|
|
82
|
+
re-ranks the results below the anchors; on a pool with <= n
|
|
83
|
+
candidates every candidate is an anchor and the stream is inert.
|
|
80
84
|
--no-mmr Disable MMR diversity re-ranking
|
|
81
85
|
--mmr-lambda <f> MMR balance 0..1 (default: ${DEFAULT_MMR_LAMBDA}, 1.0 = pure relevance)
|
|
82
|
-
--evc-adaptive
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
--filter-conflicts
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
--rerank-utility OFC option-value re-ranker: combine relevance,
|
|
97
|
-
strength, and integration cost into a single utility
|
|
98
|
-
= score * (0.5 + 0.5 * strength) * (1 - cost_factor)
|
|
99
|
-
where cost_factor = min(0.3, tokens / 10000). Re-sorts
|
|
100
|
-
results by utility. Default off. RESEARCH.md §PFC.OFC.
|
|
86
|
+
--evc-adaptive When the top results overlap heavily (a conflict
|
|
87
|
+
cluster), widen the pool and re-rank by recency.
|
|
88
|
+
Default off.
|
|
89
|
+
--filter-conflicts Drop superseded entries and down-weight by ${CONFLICT_PEER_MULTIPLIER}x any
|
|
90
|
+
entry in an open conflict with another result.
|
|
91
|
+
Uses recorded supersession and conflicts only, never
|
|
92
|
+
lexical inference. Default off.
|
|
93
|
+
--value-aware Boost memories with positive cumulative outcomes and
|
|
94
|
+
demote those with negative ones during ranking:
|
|
95
|
+
multiplier ${VALUE_CLIP}.
|
|
96
|
+
Reads outcome_positive and outcome_negative. Default off.
|
|
97
|
+
--rerank-utility Re-sort results by utility = score * (0.5 + 0.5 * strength)
|
|
98
|
+
* (1 - cost_factor), where cost_factor =
|
|
99
|
+
min(${UTILITY_LENGTH_PENALTY_CAP}, tokens / ${UTILITY_LENGTH_TOKENS}). Default off.
|
|
101
100
|
--reranker <name> Apply a reranker pass after retrieval
|
|
102
|
-
(cross-encoder|jev|clef-flash|clef|llm)
|
|
103
|
-
|
|
104
|
-
re-orders the top-K candidates. Default unset (no reranker).
|
|
101
|
+
(cross-encoder|jev|clef-flash|clef|llm) to re-order the
|
|
102
|
+
top-K candidates. Default unset (no reranker).
|
|
105
103
|
jev calls the hosted TypeSafe Jev API: it needs
|
|
106
104
|
TYPESAFE_API_KEY, sends the query and candidate
|
|
107
105
|
text to that API, costs about 0.0004 USD a recall,
|
|
@@ -110,30 +108,24 @@ export const MEMORY_VERBS = {
|
|
|
110
108
|
Cloudflare Workers AI (CLOUDFLARE_ACCOUNT_ID and
|
|
111
109
|
CLOUDFLARE_API_TOKEN) or to HIPPO_CLEF_ENDPOINT, and
|
|
112
110
|
keep the native order on any failure.
|
|
113
|
-
See docs/evals/2026-09-19-jev-reranker.md and
|
|
114
|
-
docs/plans/2026-05-10-f6-reranker-hardening.md.
|
|
115
111
|
--reranker-top-k <n> Cap candidates passed to the reranker (default 50;
|
|
116
112
|
40 for jev, clef-flash and clef).
|
|
117
|
-
--goal <tag>
|
|
118
|
-
|
|
119
|
-
re-sorted. Default off.
|
|
120
|
-
--session-id <id> Session identifier for
|
|
113
|
+
--goal <tag> Goal-conditioned recall: memories tagged with the
|
|
114
|
+
goal tag get a 1.5x score boost and results are
|
|
115
|
+
re-sorted. Default off.
|
|
116
|
+
--session-id <id> Session identifier for the goal-stack boost.
|
|
121
117
|
Defaults to $HIPPO_SESSION_ID. When set and the
|
|
122
118
|
(tenant, session) has active goals (see
|
|
123
119
|
'hippo goal push'), recall auto-boosts memories
|
|
124
120
|
whose tags match an active goal name. Boost stacks
|
|
125
121
|
on top of base BM25 score, capped at 3.0x.
|
|
126
122
|
--salience-threshold <n>
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
lexical gate destroyed LoCoMo 0.28 -> 0.02; this v2
|
|
134
|
-
is retrieval-side, opt-in only — see MEMORY.md
|
|
135
|
-
"Hippo salience gate destroys benchmark recall".)
|
|
136
|
-
--continuity Include continuity block (active task snapshot,
|
|
123
|
+
Down-weight memories retrieved fewer than n times:
|
|
124
|
+
score *= max(${SALIENCE_MIN_MULTIPLIER}, retrieval_count / n) for entries
|
|
125
|
+
with count < n; entries at or above n are unchanged.
|
|
126
|
+
Salience comes from use, not from lexical overlap.
|
|
127
|
+
Default off.
|
|
128
|
+
--continuity Include a continuity block (active task snapshot,
|
|
137
129
|
latest matching session handoff, last 5 session
|
|
138
130
|
events) above the memory list. Useful at agent
|
|
139
131
|
boot when you want both relevant memories AND
|
|
@@ -198,6 +190,7 @@ export const MEMORY_VERBS = {
|
|
|
198
190
|
--json Output full summary as JSON`],
|
|
199
191
|
}),
|
|
200
192
|
context: verb(() => import('../context.js'), 'handleContext', {
|
|
193
|
+
repairsCodexWrapper: true,
|
|
201
194
|
flags: {
|
|
202
195
|
switches: ['auto', 'cross-project', 'pinned-only'],
|
|
203
196
|
values: ['budget', 'format', 'framing', 'include-recent', 'runtime', 'scope'],
|
|
@@ -215,6 +208,7 @@ export const MEMORY_VERBS = {
|
|
|
215
208
|
--framing <mode> Framing: observe (default), suggest, assert`],
|
|
216
209
|
}),
|
|
217
210
|
sleep: verb(() => import('../sleep.js'), 'handleSleep', {
|
|
211
|
+
repairsCodexWrapper: true,
|
|
218
212
|
destructive: true,
|
|
219
213
|
scoped: true,
|
|
220
214
|
flags: { switches: ['dry-run', 'no-learn', 'no-share'], values: ['log-file'] },
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// First-class object, server, goal and auth verbs, in `hippo help` order.
|
|
2
|
-
import { DEFAULT_KEY_TTL_DAYS, MAX_TTL_DAYS } from '../../api/auth.js';
|
|
2
|
+
import { DEFAULT_KEY_TTL_DAYS, MAX_TTL_DAYS } from '../../api/auth/auth.js';
|
|
3
3
|
import { DEFAULT_SERVER_HOST, DEFAULT_SERVER_PORT } from '../../server/defaults.js';
|
|
4
4
|
import { verb } from '../verb-row.js';
|
|
5
5
|
export const OBJECT_VERBS = {
|
|
@@ -188,16 +188,19 @@ export const OBJECT_VERBS = {
|
|
|
188
188
|
mcp Start MCP server (stdio transport)`],
|
|
189
189
|
}),
|
|
190
190
|
serve: verb(() => import('../serve.js'), 'handleServe', {
|
|
191
|
-
flags: { values: ['host', 'tls-cert', 'tls-key'], numbers: ['port'] },
|
|
191
|
+
flags: { switches: ['allow-cleartext'], values: ['host', 'tls-cert', 'tls-key'], numbers: ['port'] },
|
|
192
192
|
usage: [`
|
|
193
193
|
serve Start the HTTP API server for this store (Ctrl+C stops it)
|
|
194
194
|
--port <n> Port to serve on (default: $HIPPO_PORT or ${DEFAULT_SERVER_PORT})
|
|
195
195
|
--host <host> Address to bind (default: ${DEFAULT_SERVER_HOST})
|
|
196
196
|
--tls-cert <file> PEM certificate; serve HTTPS only (or $HIPPO_TLS_CERT)
|
|
197
197
|
--tls-key <file> PEM private key for it; give both (or $HIPPO_TLS_KEY)
|
|
198
|
+
--allow-cleartext Bind a non-loopback host without TLS, for a TLS proxy
|
|
199
|
+
in front (or $HIPPO_ALLOW_CLEARTEXT=1)
|
|
198
200
|
Every request needs an API key (hippo auth create).
|
|
199
201
|
$HIPPO_ALLOW_KEYLESS_LOCAL=1 lets requests from this machine
|
|
200
|
-
in without one
|
|
202
|
+
in without one, as a member ($HIPPO_KEYLESS_LOCAL_ROLE=admin
|
|
203
|
+
for host admin); $HIPPO_REQUIRE_AUTH=1 wins over it.`],
|
|
201
204
|
}),
|
|
202
205
|
goal: verb(() => import('../goals.js'), 'handleGoal', {
|
|
203
206
|
scoped: true,
|
|
@@ -206,7 +209,7 @@ export const OBJECT_VERBS = {
|
|
|
206
209
|
values: ['level', 'outcome', 'parent', 'policy', 'session-id', 'success', 'tenant-id'],
|
|
207
210
|
},
|
|
208
211
|
usage: [`
|
|
209
|
-
goal <sub>
|
|
212
|
+
goal <sub> Goal stack, scoped per session
|
|
210
213
|
goal push <name> Push a new active goal; prints the new goal id
|
|
211
214
|
--policy <type> schema-fit-biased | error-prioritized |
|
|
212
215
|
recency-first | hybrid
|
|
@@ -225,8 +228,13 @@ export const OBJECT_VERBS = {
|
|
|
225
228
|
}),
|
|
226
229
|
auth: verb(() => import('../auth.js'), 'handleAuth', {
|
|
227
230
|
scoped: true,
|
|
228
|
-
flags: {
|
|
229
|
-
|
|
231
|
+
flags: {
|
|
232
|
+
switches: ['all', 'global', 'json', 'no-expiry'],
|
|
233
|
+
values: ['label', 'role', 'tenant'],
|
|
234
|
+
numbers: ['ttl-days'],
|
|
235
|
+
},
|
|
236
|
+
usage: [
|
|
237
|
+
`
|
|
230
238
|
auth <sub> Manage API keys (A5 stub auth)
|
|
231
239
|
auth create Mint a new API key (plaintext shown ONCE)
|
|
232
240
|
--label <s> Optional human label
|
|
@@ -248,7 +256,8 @@ export const OBJECT_VERBS = {
|
|
|
248
256
|
--global Operate on the global store
|
|
249
257
|
auth ungrant <key_id> <scope> Remove a scope grant
|
|
250
258
|
--json Output as JSON
|
|
251
|
-
--global Operate on the global store`
|
|
259
|
+
--global Operate on the global store`
|
|
260
|
+
],
|
|
252
261
|
}),
|
|
253
262
|
};
|
|
254
263
|
//# sourceMappingURL=objects.js.map
|
|
@@ -132,9 +132,10 @@ export const SESSION_VERBS = {
|
|
|
132
132
|
--status Show embedding coverage`],
|
|
133
133
|
}),
|
|
134
134
|
watch: verb(() => import('../transfer.js'), 'handleWatch', {
|
|
135
|
-
flags: {},
|
|
135
|
+
flags: { values: ['shell'] },
|
|
136
136
|
usage: [`
|
|
137
|
-
watch
|
|
137
|
+
watch -- <cmd> [args] Run command, auto-learn from failures (no shell)
|
|
138
|
+
--shell "<line>" Run one command line through the shell instead`],
|
|
138
139
|
}),
|
|
139
140
|
learn: verb(() => import('../transfer.js'), 'handleLearn', {
|
|
140
141
|
scoped: true,
|
|
@@ -203,6 +204,7 @@ export const SESSION_VERBS = {
|
|
|
203
204
|
--format <fmt> Output format: json (default) or markdown`],
|
|
204
205
|
}),
|
|
205
206
|
capture: verb(() => import('../session-hooks.js'), 'handleCapture', {
|
|
207
|
+
repairsCodexWrapper: true,
|
|
206
208
|
flags: { switches: ['dry-run', 'global', 'last-session', 'stdin'], values: ['file', 'log-file', 'transcript'] },
|
|
207
209
|
usage: [`
|
|
208
210
|
capture Extract memories from conversation text
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type CliFlags, type CommandContext } from './flag-values.js';
|
|
2
|
+
import type { Objects } from '../store/port.js';
|
|
2
3
|
import { printLifecycleTail, type ObjectNames } from './object-verbs.js';
|
|
3
4
|
type VersionedRow = Parameters<typeof printLifecycleTail>[0] & {
|
|
4
5
|
readonly id: number;
|
|
@@ -23,29 +24,29 @@ export interface VersionedKind<O extends VersionedRow, S extends string, B> {
|
|
|
23
24
|
readonly body: (flags: CliFlags, verb: 'new' | 'supersede') => B | undefined;
|
|
24
25
|
/** What a new version keeps from the one it supersedes: the repo, customer or name. */
|
|
25
26
|
readonly keyOf: (o: O) => string;
|
|
26
|
-
readonly save: (key: string, body: B, extraTags: string[], from?: Succession) => O
|
|
27
|
+
readonly save: (key: string, body: B, extraTags: string[], from?: Succession) => Promise<O>;
|
|
27
28
|
/** The first line `new` prints. */
|
|
28
29
|
readonly recorded: (o: O) => string;
|
|
29
30
|
readonly list: (opts: {
|
|
30
31
|
status?: S;
|
|
31
32
|
limit: number;
|
|
32
|
-
}, flags: CliFlags) => readonly O[]
|
|
33
|
-
readonly loadById: (id: number) => O | null
|
|
34
|
-
readonly close: (id: number) => {
|
|
33
|
+
}, flags: CliFlags) => Promise<readonly O[]>;
|
|
34
|
+
readonly loadById: (id: number) => Promise<O | null>;
|
|
35
|
+
readonly close: (id: number) => Promise<{
|
|
35
36
|
id: number;
|
|
36
|
-
}
|
|
37
|
+
}>;
|
|
37
38
|
readonly printRow: (o: O) => void;
|
|
38
39
|
/** The `get` lines between the header and the lifecycle tail. */
|
|
39
40
|
readonly printDetail: (o: O) => void;
|
|
40
41
|
/** A subcommand only this kind has. */
|
|
41
42
|
readonly extra?: {
|
|
42
43
|
readonly sub: string;
|
|
43
|
-
readonly run: (args: string[], flags: CliFlags) => void
|
|
44
|
+
readonly run: (args: string[], flags: CliFlags) => Promise<void>;
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
47
|
/** A flag that must carry text: its raw value, or undefined when absent or blank. */
|
|
47
48
|
export declare function requiredText(flags: CliFlags, name: string): string | undefined;
|
|
48
49
|
/** The `hippo <cmd>` handler for a kind; `kindAt` binds the descriptor to the store the command runs against. */
|
|
49
|
-
export declare function versionedVerbs<O extends VersionedRow, S extends string, B>(kindAt: (hippoRoot: string, tenantId: string) => VersionedKind<O, S, B>): (ctx: CommandContext) => void
|
|
50
|
+
export declare function versionedVerbs<O extends VersionedRow, S extends string, B>(kindAt: (objects: Objects, hippoRoot: string, tenantId: string) => VersionedKind<O, S, B>): (ctx: CommandContext) => Promise<void>;
|
|
50
51
|
export {};
|
|
51
52
|
//# sourceMappingURL=versioned-verbs.d.ts.map
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
// One handler set for the kinds that evolve by supersession (brief, note, policy, process, skill),
|
|
1
|
+
// One handler set for the kinds that evolve by supersession (brief, note, policy, process, skill),
|
|
2
|
+
// each driven by a descriptor.
|
|
2
3
|
import { extractPathTags } from '../search/path-context.js';
|
|
3
4
|
import { errorMessage } from '../util/log.js';
|
|
4
5
|
import { printError } from './output.js';
|
|
5
6
|
import { nonEmptyStringFlag, stringFlag } from './flag-values.js';
|
|
6
7
|
import { requireInit } from './shared.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
8
|
+
import { objectsOf } from '../api/objects/objects.js';
|
|
9
|
+
import { cliApiContext } from './api-context.js';
|
|
10
|
+
import { closeObject, foundOrExit, idArgOrExit, listObjects, printLifecycleTail, } from './object-verbs.js';
|
|
11
|
+
import { CliExit, fail } from './exit.js';
|
|
9
12
|
/** A flag that must carry text: its raw value, or undefined when absent or blank. */
|
|
10
13
|
export function requiredText(flags, name) {
|
|
11
14
|
const raw = stringFlag(flags, name);
|
|
@@ -13,14 +16,19 @@ export function requiredText(flags, name) {
|
|
|
13
16
|
}
|
|
14
17
|
/** The `hippo <cmd>` handler for a kind; `kindAt` binds the descriptor to the store the command runs against. */
|
|
15
18
|
export function versionedVerbs(kindAt) {
|
|
16
|
-
return ({ hippoRoot, tenantId, args, flags }) => {
|
|
19
|
+
return async ({ hippoRoot, tenantId, args, flags }) => {
|
|
17
20
|
requireInit(hippoRoot);
|
|
18
|
-
const kind = kindAt(hippoRoot, tenantId);
|
|
21
|
+
const kind = kindAt(objectsOf(cliApiContext(hippoRoot, tenantId)), hippoRoot, tenantId);
|
|
19
22
|
const sub = args[0] ?? '';
|
|
20
23
|
if (sub === kind.extra?.sub)
|
|
21
24
|
return kind.extra.run(args, flags);
|
|
22
25
|
if (sub === 'list') {
|
|
23
|
-
return listObjects(flags, {
|
|
26
|
+
return listObjects(flags, {
|
|
27
|
+
plural: kind.plural,
|
|
28
|
+
states: kind.states,
|
|
29
|
+
load: (opts) => kind.list(opts, flags),
|
|
30
|
+
printRow: kind.printRow,
|
|
31
|
+
});
|
|
24
32
|
}
|
|
25
33
|
if (sub === 'get')
|
|
26
34
|
return getVersion(kind, args);
|
|
@@ -29,46 +37,48 @@ export function versionedVerbs(kindAt) {
|
|
|
29
37
|
if (sub === 'close')
|
|
30
38
|
return closeObject(args, kind.names, kind.close);
|
|
31
39
|
// Both `<cmd> new "<key>"` and the bare `<cmd> "<key>"` create.
|
|
32
|
-
createVersion(kind, sub === 'new' ? (args[1] ?? '') : sub, flags);
|
|
40
|
+
await createVersion(kind, sub === 'new' ? (args[1] ?? '') : sub, flags);
|
|
33
41
|
};
|
|
34
42
|
}
|
|
35
|
-
function getVersion(kind, args) {
|
|
43
|
+
async function getVersion(kind, args) {
|
|
36
44
|
const id = idArgOrExit(args, `Usage: hippo ${kind.names.cmd} get <id>`, kind.names.idLabel);
|
|
37
|
-
const o = foundOrExit(kind.loadById(id), kind.names.noun, id);
|
|
45
|
+
const o = foundOrExit(await kind.loadById(id), kind.names.noun, id);
|
|
38
46
|
console.log(`${kind.names.noun} #${o.id}`);
|
|
39
47
|
kind.printDetail(o);
|
|
40
48
|
printLifecycleTail(o);
|
|
41
49
|
}
|
|
42
|
-
function createVersion(kind, key, flags) {
|
|
50
|
+
async function createVersion(kind, key, flags) {
|
|
43
51
|
const body = key ? kind.body(flags, 'new') : undefined;
|
|
44
52
|
if (body === undefined) {
|
|
45
53
|
for (const line of kind.usage)
|
|
46
54
|
printError(line);
|
|
47
55
|
throw new CliExit(1);
|
|
48
56
|
}
|
|
49
|
-
const created = saveVersion(kind, key, body);
|
|
57
|
+
const created = await saveVersion(kind, key, body);
|
|
50
58
|
printSaved(kind.recorded(created), created);
|
|
51
59
|
}
|
|
52
|
-
function supersedeVersion(kind, args, flags) {
|
|
60
|
+
async function supersedeVersion(kind, args, flags) {
|
|
53
61
|
const id = idArgOrExit(args, kind.supersedeUsage, kind.names.idLabel);
|
|
54
62
|
const body = kind.body(flags, 'supersede');
|
|
55
63
|
if (body === undefined) {
|
|
56
|
-
|
|
57
|
-
throw new CliExit(1);
|
|
64
|
+
fail(`hippo ${kind.names.cmd} supersede requires ${kind.bodyRequired} for the new version.`);
|
|
58
65
|
}
|
|
59
|
-
// The lookup only gives a missing id its not-found line; the save's own preflight is the
|
|
60
|
-
|
|
61
|
-
const
|
|
66
|
+
// The lookup only gives a missing id its not-found line; the save's own preflight is the
|
|
67
|
+
// authoritative active-state check.
|
|
68
|
+
const existing = foundOrExit(await kind.loadById(id), kind.names.noun, id);
|
|
69
|
+
const created = await saveVersion(kind, kind.keyOf(existing), body, {
|
|
70
|
+
id,
|
|
71
|
+
changeSummary: nonEmptyStringFlag(flags, 'change'),
|
|
72
|
+
});
|
|
62
73
|
printSaved(`${kind.names.noun} #${created.id} recorded (v${created.version}), superseding #${id}.`, created);
|
|
63
74
|
}
|
|
64
75
|
/** Every kind's save goes through here, so a refused write always prints the store's message and exits 1. */
|
|
65
|
-
function saveVersion(kind, key, body, from) {
|
|
76
|
+
async function saveVersion(kind, key, body, from) {
|
|
66
77
|
try {
|
|
67
|
-
return kind.save(key, body, extractPathTags(process.cwd()), from);
|
|
78
|
+
return await kind.save(key, body, extractPathTags(process.cwd()), from);
|
|
68
79
|
}
|
|
69
80
|
catch (e) {
|
|
70
|
-
|
|
71
|
-
throw new CliExit(1);
|
|
81
|
+
fail(errorMessage(e));
|
|
72
82
|
}
|
|
73
83
|
}
|
|
74
84
|
function printSaved(line, o) {
|
package/dist/cli.js
CHANGED
|
@@ -12,17 +12,18 @@ import { printGitHubBackfillUsage } from './cli/github.js';
|
|
|
12
12
|
import { printError } from './cli/output.js';
|
|
13
13
|
import { errorFields, errorMessage, isLevelEnabled, log } from './util/log.js';
|
|
14
14
|
import { STORE_BUSY_MESSAGE } from './store/port.js';
|
|
15
|
-
import { isStoreBusy } from './
|
|
15
|
+
import { isStoreBusy } from './api/busy.js';
|
|
16
16
|
import { flagIsTrue, isBooleanFlag, isStringFlag } from './cli/flag-values.js';
|
|
17
|
-
import { USAGE_HEADER, USAGE_EXAMPLES, printAuditPruneUsage, printSlackBackfillUsage, printSlackWorkspacesUsage } from './cli/usage.js';
|
|
17
|
+
import { USAGE_HEADER, USAGE_EXAMPLES, printAuditPruneUsage, printSlackBackfillUsage, printSlackWorkspacesUsage, } from './cli/usage.js';
|
|
18
18
|
import { flagKind, isKnownFlag, undeclaredFlags } from './cli/flags.js';
|
|
19
19
|
import { COMMANDS } from './cli/verbs.js';
|
|
20
|
-
import { CliExit } from './cli/exit.js';
|
|
21
|
-
// Helpers
|
|
20
|
+
import { CliExit, fail } from './cli/exit.js';
|
|
22
21
|
// A command that does not honour --dry-run would ignore it and run for real.
|
|
23
22
|
function dryRunRefusal(command, spec, args, flags) {
|
|
24
23
|
const only = spec?.dryRun;
|
|
25
|
-
const honoured = only === undefined
|
|
24
|
+
const honoured = only === undefined
|
|
25
|
+
? spec?.flags.switches?.includes('dry-run')
|
|
26
|
+
: only !== false && only.honoured(args, flags);
|
|
26
27
|
if (honoured)
|
|
27
28
|
return null;
|
|
28
29
|
const where = only ? ` outside \`hippo ${command} ${only.form}\`` : '';
|
|
@@ -59,7 +60,6 @@ function setSeparatedFlag(flags, key, next, kind) {
|
|
|
59
60
|
return 2;
|
|
60
61
|
}
|
|
61
62
|
if (!next || next.startsWith('--') || kind === 'switch') {
|
|
62
|
-
// Boolean flag
|
|
63
63
|
flags[key] = true;
|
|
64
64
|
return 1;
|
|
65
65
|
}
|
|
@@ -107,9 +107,8 @@ export function parseArgs(argv) {
|
|
|
107
107
|
export function shouldAutoRepairCodexWrapper(currentCommand, flags) {
|
|
108
108
|
if (envSkipAutoIntegrations())
|
|
109
109
|
return false;
|
|
110
|
-
if (!
|
|
110
|
+
if (!COMMAND_INDEX.get(currentCommand)?.repairsCodexWrapper)
|
|
111
111
|
return false;
|
|
112
|
-
}
|
|
113
112
|
if (currentCommand === 'init' && flagIsTrue(flags, 'no-hooks'))
|
|
114
113
|
return false;
|
|
115
114
|
return true;
|
|
@@ -123,7 +122,7 @@ function maybeRepairCodexWrapper(currentCommand, flags) {
|
|
|
123
122
|
repairCodexWrapperIfInstalled();
|
|
124
123
|
}
|
|
125
124
|
catch (err) {
|
|
126
|
-
log.debug(`codex wrapper not repaired: ${errorMessage(err)}
|
|
125
|
+
log.debug(`codex wrapper not repaired: ${errorMessage(err)}`, errorFields(err));
|
|
127
126
|
}
|
|
128
127
|
}
|
|
129
128
|
const ROWS = Object.values(COMMANDS);
|
|
@@ -155,7 +154,6 @@ function printHelp(command, args) {
|
|
|
155
154
|
else
|
|
156
155
|
console.log(verbUsage(command) ?? usageText());
|
|
157
156
|
}
|
|
158
|
-
// Entry point
|
|
159
157
|
function printVersion() {
|
|
160
158
|
const __filename_local = fileURLToPath(import.meta.url);
|
|
161
159
|
const __dirname_local = path.dirname(__filename_local);
|
|
@@ -169,8 +167,7 @@ function printVersion() {
|
|
|
169
167
|
* reject it once here so every command, thin-client relays included, sees only a non-empty string. */
|
|
170
168
|
function rejectEmptyScope(flags) {
|
|
171
169
|
if ('scope' in flags && (!isStringFlag(flags['scope']) || !flags['scope'].trim())) {
|
|
172
|
-
|
|
173
|
-
throw new CliExit(1);
|
|
170
|
+
fail('--scope requires a non-empty value (e.g. --scope slack:private:C1).');
|
|
174
171
|
}
|
|
175
172
|
}
|
|
176
173
|
// parseArgs stores a value-less flag as boolean true, and NaN then survives every
|
|
@@ -180,8 +177,7 @@ function rejectNonNumericFlags(flags, declared) {
|
|
|
180
177
|
if (flagKind(declared, key) !== 'number')
|
|
181
178
|
continue;
|
|
182
179
|
if (!isStringFlag(raw) || !raw.trim() || !Number.isFinite(Number(raw))) {
|
|
183
|
-
|
|
184
|
-
throw new CliExit(1);
|
|
180
|
+
fail(`--${key} requires a numeric value.`);
|
|
185
181
|
}
|
|
186
182
|
}
|
|
187
183
|
}
|
|
@@ -190,8 +186,7 @@ function rejectNonNumericFlags(flags, declared) {
|
|
|
190
186
|
function rejectValuedSwitches(flags, declared) {
|
|
191
187
|
for (const [key, raw] of Object.entries(flags)) {
|
|
192
188
|
if (flagKind(declared, key) === 'switch' && !isBooleanFlag(raw)) {
|
|
193
|
-
|
|
194
|
-
throw new CliExit(1);
|
|
189
|
+
fail(`--${key} takes no value`);
|
|
195
190
|
}
|
|
196
191
|
}
|
|
197
192
|
}
|
|
@@ -208,8 +203,9 @@ function checkUnknownFlags(command, flags, spec) {
|
|
|
208
203
|
}
|
|
209
204
|
// main() refuses --dry-run by name on a verb without one, so that flag is not also called ignored.
|
|
210
205
|
const ignored = declared ? undeclaredFlags(declared, Object.keys(flags)).filter((key) => key !== 'dry-run') : unknown;
|
|
211
|
-
if (ignored.length > 0)
|
|
206
|
+
if (ignored.length > 0) {
|
|
212
207
|
printError(`hippo: ignoring unknown flag ${flagNames(ignored)}. A later release will reject it.`);
|
|
208
|
+
}
|
|
213
209
|
}
|
|
214
210
|
async function main(command, args, flags, hippoRoot) {
|
|
215
211
|
if (command === '--version' || command === '-v' || flags['version'])
|
|
@@ -240,7 +236,7 @@ async function main(command, args, flags, hippoRoot) {
|
|
|
240
236
|
throw new CliExit(1);
|
|
241
237
|
}
|
|
242
238
|
const run = () => spec.run({ hippoRoot, tenantId: resolveTenantId({}), args, flags });
|
|
243
|
-
await (spec.scoped ? (await import('./
|
|
239
|
+
await (spec.scoped ? (await import('./cli/api-context.js')).cliRequest(run) : run());
|
|
244
240
|
}
|
|
245
241
|
export async function runCli(argv = process.argv) {
|
|
246
242
|
const { command, args, flags } = parseArgs(argv);
|
package/dist/connectors/dlq.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { StoreWith } from '../store/index.js';
|
|
2
2
|
import type { ConnectorDeadLetter } from '../store/port.js';
|
|
3
3
|
import type { JsonValue } from '../util/json.js';
|
|
4
4
|
declare const DEFAULT_BUCKET = "parse_error";
|
|
@@ -19,8 +19,8 @@ export interface ParkedRow<Bucket extends string> {
|
|
|
19
19
|
bucket: Bucket | typeof DEFAULT_BUCKET;
|
|
20
20
|
signature: string | null;
|
|
21
21
|
}
|
|
22
|
-
/** What one connector supplies: the tag that names its table to the store, its list, its one-row read and its retry
|
|
23
|
-
* `Own` is the columns only its table has. */
|
|
22
|
+
/** What one connector supplies: the tag that names its table to the store, its list, its one-row read and its retry
|
|
23
|
+
* bump. `Own` is the columns only its table has. */
|
|
24
24
|
export interface ConnectorDlq<Own, Bucket extends string, Item> {
|
|
25
25
|
readonly letter: (row: ParkedRow<Bucket> & Own) => ConnectorDeadLetter;
|
|
26
26
|
readonly list: (hippoRoot: string, tenantId: string, limit: number) => Item[];
|
|
@@ -28,8 +28,7 @@ export interface ConnectorDlq<Own, Bucket extends string, Item> {
|
|
|
28
28
|
/** Adds one to `retry_count` and stamps `retried_at`. */
|
|
29
29
|
readonly bump: (hippoRoot: string, id: number) => void;
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
export declare function parkInDlq<Own, Bucket extends string>(dlq: ConnectorDlq<Own, Bucket, unknown>, hippoRoot: string, opts: ParkOpts<Bucket> & NoInfer<Own>, store?: HippoStore): Promise<number>;
|
|
31
|
+
export declare function parkInDlq<Own, Bucket extends string>(dlq: ConnectorDlq<Own, Bucket, unknown>, store: StoreWith<'connectorEvents'>, opts: ParkOpts<Bucket> & NoInfer<Own>): Promise<number>;
|
|
33
32
|
export declare function listDlq<Item>(dlq: ConnectorDlq<never, never, Item>, hippoRoot: string, opts: {
|
|
34
33
|
tenantId: string;
|
|
35
34
|
limit?: number;
|
|
@@ -74,7 +73,8 @@ export interface ReplaySteps<Item, Envelope extends JsonValue> {
|
|
|
74
73
|
readonly notEnvelope: string;
|
|
75
74
|
readonly reingest: (row: Item, envelope: Envelope) => Promise<Reingest>;
|
|
76
75
|
}
|
|
77
|
-
/** Re-runs a parked row under today's secret and routing; every
|
|
76
|
+
/** Re-runs a parked row under today's secret and routing; every
|
|
77
|
+
* attempt past the read is counted once, except a missing signature. */
|
|
78
78
|
export declare function replayParked<Item extends ParkedEntry, Envelope extends JsonValue>(steps: ReplaySteps<Item, Envelope>, hippoRoot: string, id: number, force: boolean): Promise<ReplayResult>;
|
|
79
79
|
export {};
|
|
80
80
|
//# sourceMappingURL=dlq.d.ts.map
|
package/dist/connectors/dlq.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
// The dead-letter queue every webhook connector parks into: one redaction, one unroutable sentinel, one set of
|
|
1
|
+
// The dead-letter queue every webhook connector parks into: one redaction, one unroutable sentinel, one set of
|
|
2
|
+
// defaults, one replay result.
|
|
2
3
|
import { DEFAULT_LIST_LIMIT } from '../util/limits.js';
|
|
3
4
|
import { DLQ_REDACTED_NOTE, redactPayload } from '../util/secret-detect.js';
|
|
4
|
-
import { requireGroup, storeFor } from '../store/index.js';
|
|
5
5
|
import { errorMessage } from '../util/log.js';
|
|
6
6
|
/** The tenant stored on a row no tenant was resolved for; the column is NOT NULL. */
|
|
7
7
|
const UNROUTABLE_TENANT = '__unroutable__';
|
|
8
8
|
const DEFAULT_BUCKET = 'parse_error';
|
|
9
|
-
|
|
10
|
-
export async function parkInDlq(dlq, hippoRoot, opts, store) {
|
|
9
|
+
export async function parkInDlq(dlq, store, opts) {
|
|
11
10
|
const rawPayload = redactPayload(opts.rawPayload);
|
|
12
11
|
// A redacted body can never match its signature, so the row keeps none and replay needs --force.
|
|
13
12
|
const redacted = rawPayload !== opts.rawPayload;
|
|
@@ -19,7 +18,7 @@ export async function parkInDlq(dlq, hippoRoot, opts, store) {
|
|
|
19
18
|
bucket: opts.bucket ?? DEFAULT_BUCKET,
|
|
20
19
|
signature: redacted ? null : opts.signature ?? null,
|
|
21
20
|
});
|
|
22
|
-
return
|
|
21
|
+
return store.connectorEvents.parkDeadLetter(letter);
|
|
23
22
|
}
|
|
24
23
|
export function listDlq(dlq, hippoRoot, opts) {
|
|
25
24
|
return dlq.list(hippoRoot, opts.tenantId, opts.limit ?? DEFAULT_LIST_LIMIT);
|
|
@@ -33,7 +32,8 @@ function failAndBump(dlq, hippoRoot, row, status, reason) {
|
|
|
33
32
|
dlq.bump(hippoRoot, row.id);
|
|
34
33
|
return replayFailed(status, row.retryCount + 1, reason);
|
|
35
34
|
}
|
|
36
|
-
/** Re-runs a parked row under today's secret and routing; every
|
|
35
|
+
/** Re-runs a parked row under today's secret and routing; every
|
|
36
|
+
* attempt past the read is counted once, except a missing signature. */
|
|
37
37
|
export async function replayParked(steps, hippoRoot, id, force) {
|
|
38
38
|
const row = steps.dlq.entry(hippoRoot, id);
|
|
39
39
|
if (!row)
|
|
@@ -56,7 +56,12 @@ export async function replayParked(steps, hippoRoot, id, force) {
|
|
|
56
56
|
if (!outcome.ok)
|
|
57
57
|
return failAndBump(steps.dlq, hippoRoot, row, outcome.status, outcome.reason);
|
|
58
58
|
steps.dlq.bump(hippoRoot, row.id);
|
|
59
|
-
const result = {
|
|
59
|
+
const result = {
|
|
60
|
+
ok: true,
|
|
61
|
+
status: outcome.status,
|
|
62
|
+
memoryId: outcome.memoryId,
|
|
63
|
+
retryCount: row.retryCount + 1,
|
|
64
|
+
};
|
|
60
65
|
if (outcome.reason !== undefined)
|
|
61
66
|
result.reason = outcome.reason;
|
|
62
67
|
return result;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/** Paginated backfill of the GitHub issues, issue-comments and PR-review-comments streams, each with its own
|
|
2
|
-
* An HWM is
|
|
1
|
+
/** Paginated backfill of the GitHub issues, issue-comments and PR-review-comments streams, each with its own HWM.
|
|
2
|
+
* An HWM (high-water mark) is saved only after its stream fully drains, so a crash in stream 2 keeps stream 1.
|
|
3
3
|
* `repository.private` is left undefined (REST lists omit it), so scopeFromRepository falls through to private. */
|
|
4
|
-
import type {
|
|
4
|
+
import type { ConnectorContext } from '../store.js';
|
|
5
5
|
import type { GitHubFetcher } from './octokit-client.js';
|
|
6
6
|
export interface BackfillOpts {
|
|
7
7
|
/** e.g. 'acme/repo'. */
|
|
@@ -24,5 +24,5 @@ export interface BackfillResult {
|
|
|
24
24
|
ingested: BackfillStreamCounts;
|
|
25
25
|
pages: BackfillStreamCounts;
|
|
26
26
|
}
|
|
27
|
-
export declare function backfillRepo(ctx:
|
|
27
|
+
export declare function backfillRepo(ctx: ConnectorContext, opts: BackfillOpts): Promise<BackfillResult>;
|
|
28
28
|
//# sourceMappingURL=backfill.d.ts.map
|