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/setup.js
CHANGED
|
@@ -3,7 +3,7 @@ import { MINUTE_MS } from '../util/time.js';
|
|
|
3
3
|
import * as path from 'path';
|
|
4
4
|
import * as fs from 'fs';
|
|
5
5
|
import { execFileSync } from 'child_process';
|
|
6
|
-
import { installJsonHooks, uninstallJsonHooks, checkUninstallable, copilotHookEvents, resolveJsonHookPaths } from '../hooks/json-hooks.js';
|
|
6
|
+
import { installJsonHooks, uninstallJsonHooks, checkUninstallable, copilotHookEvents, resolveJsonHookPaths, } from '../hooks/json-hooks.js';
|
|
7
7
|
import { detectInstalledTools } from '../hooks/shared.js';
|
|
8
8
|
import { ensureCodexWrapperInstalled, installCodexWrapper, detectRealCodexPath, uninstallCodexWrapper, } from '../hooks/codex-wrapper.js';
|
|
9
9
|
import { installOpencodePlugin, uninstallOpencodePlugin, resolveOpencodePluginPath } from '../hooks/opencode.js';
|
|
@@ -23,7 +23,7 @@ import { installCodexMemoryHooks, setupDailySchedule, warnClaudeSettingsUnusable
|
|
|
23
23
|
import { repairQualityOnceAt } from './quality-repair-once.js';
|
|
24
24
|
import { HOOK_MARKERS, HOOKS, hippoBlock, withoutHookBlock } from '../hooks/hook-blocks.js';
|
|
25
25
|
import { escapeRegex } from '../util/escape.js';
|
|
26
|
-
import {
|
|
26
|
+
import { fail } from './exit.js';
|
|
27
27
|
// Hook install/uninstall
|
|
28
28
|
export function handleHook({ args }) {
|
|
29
29
|
const subcommand = args[0];
|
|
@@ -34,8 +34,7 @@ export function handleHook({ args }) {
|
|
|
34
34
|
return hookInstall(target);
|
|
35
35
|
if (subcommand === 'uninstall')
|
|
36
36
|
return hookUninstall(target);
|
|
37
|
-
|
|
38
|
-
throw new CliExit(1);
|
|
37
|
+
fail('Usage: hippo hook <install|uninstall|list> [target]');
|
|
39
38
|
}
|
|
40
39
|
// Cursor has no init row, so the AGENTS.md block is usually another agent's, and Cursor reads that one as it is.
|
|
41
40
|
function othersBlock(target, text) {
|
|
@@ -46,7 +45,8 @@ function hookList() {
|
|
|
46
45
|
for (const [name, hook] of Object.entries(HOOKS)) {
|
|
47
46
|
console.log(` ${name.padEnd(15)} -> ${hook.file} (${hook.description})`);
|
|
48
47
|
}
|
|
49
|
-
console.log(` ${'copilot'.padEnd(15)} -> $COPILOT_HOME or ~/.copilot, and each VS Code User folder
|
|
48
|
+
console.log(` ${'copilot'.padEnd(15)} -> $COPILOT_HOME or ~/.copilot, and each VS Code User folder ` +
|
|
49
|
+
'(GitHub Copilot: hooks, MCP server and instructions)');
|
|
50
50
|
console.log('\nUsage: hippo hook install <name>');
|
|
51
51
|
console.log(' hippo hook uninstall <name>');
|
|
52
52
|
}
|
|
@@ -56,8 +56,7 @@ function hookInstall(target) {
|
|
|
56
56
|
return printCopilotInstall(installCopilot(), '');
|
|
57
57
|
if (!target || !HOOKS[target]) {
|
|
58
58
|
printError(`Unknown hook target: ${target ?? '(none)'}`);
|
|
59
|
-
|
|
60
|
-
throw new CliExit(1);
|
|
59
|
+
fail(` Available: ${[...Object.keys(HOOKS), 'copilot'].join(', ')}`);
|
|
61
60
|
}
|
|
62
61
|
const hook = HOOKS[target];
|
|
63
62
|
patchAgentFile(hook, target);
|
|
@@ -103,8 +102,8 @@ function patchAgentFile(hook, target) {
|
|
|
103
102
|
}
|
|
104
103
|
}
|
|
105
104
|
else {
|
|
106
|
-
// Do not create an agent-instructions file (CLAUDE.md, AGENTS.md, etc.) in directories without one, to avoid
|
|
107
|
-
// the settings.json hook below is still installed for claude-code.
|
|
105
|
+
// Do not create an agent-instructions file (CLAUDE.md, AGENTS.md, etc.) in directories without one, to avoid
|
|
106
|
+
// polluting cwd; the settings.json hook below is still installed for claude-code.
|
|
108
107
|
console.log(`${hook.file} not found in ${process.cwd()} — skipping agent-instructions patch.`);
|
|
109
108
|
console.log(` Create ${hook.file} and re-run \`hippo hook install ${target}\` if you want the agent prompt.`);
|
|
110
109
|
}
|
|
@@ -155,7 +154,8 @@ function installOpencodeHook() {
|
|
|
155
154
|
console.log(`Removed legacy Claude Code-style hooks block from opencode.json — opencode can now launch`);
|
|
156
155
|
}
|
|
157
156
|
if (result.jsonRepairFailed) {
|
|
158
|
-
console.log(`WARNING: opencode.json is unparseable; legacy hooks block could not be auto-removed.
|
|
157
|
+
console.log(`WARNING: opencode.json is unparseable; legacy hooks block could not be auto-removed. ` +
|
|
158
|
+
`Fix the file manually.`);
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
const addByHand = (host) => `add this under "${host.key}" by hand: ${copilotMcpSnippet(host)}`;
|
|
@@ -163,20 +163,24 @@ const MCP_MERGE_LINES = {
|
|
|
163
163
|
added: (file) => `Added the "hippo" MCP server -> ${file}`,
|
|
164
164
|
present: (file) => `The "hippo" MCP server is already in ${file}`,
|
|
165
165
|
'user-owned': (file) => `Left the "hippo" MCP server in ${file} as it is: hippo did not write it`,
|
|
166
|
-
unreadable: (file, host) => `WARNING: ${file} has comments or is not a JSON object hippo can merge into, so it was left unchanged;
|
|
166
|
+
unreadable: (file, host) => `WARNING: ${file} has comments or is not a JSON object hippo can merge into, so it was left unchanged; ` +
|
|
167
|
+
addByHand(host),
|
|
167
168
|
};
|
|
168
169
|
const mcpFailureLine = (file, failure, fix) => `WARNING: hippo could not use ${file} (${failure.failed}), so it was left unchanged; ${fix}`;
|
|
169
|
-
const unclosedLine = (file) => `WARNING: ${file} has ${HOOK_MARKERS.start} with no ${HOOK_MARKERS.end}, so hippo left it unchanged;
|
|
170
|
+
const unclosedLine = (file) => `WARNING: ${file} has ${HOOK_MARKERS.start} with no ${HOOK_MARKERS.end}, so hippo left it unchanged; ` +
|
|
171
|
+
'fix the markers by hand';
|
|
170
172
|
const INSTRUCTIONS_INSTALL_LINES = {
|
|
171
173
|
written: (file) => `Wrote the hippo block -> ${file}`,
|
|
172
174
|
present: (file) => `The hippo block is already in ${file}`,
|
|
173
|
-
kept: (file) => `Kept the hippo block in ${file} as it is: it is not the Copilot text hippo wrote,
|
|
175
|
+
kept: (file) => `Kept the hippo block in ${file} as it is: it is not the Copilot text hippo wrote, ` +
|
|
176
|
+
`so it was edited or is another agent's`,
|
|
174
177
|
unclosed: unclosedLine,
|
|
175
178
|
};
|
|
176
179
|
const INSTRUCTIONS_REMOVE_LINES = {
|
|
177
180
|
removed: (file) => `Removed the hippo block from ${file}`,
|
|
178
181
|
absent: () => '',
|
|
179
|
-
kept: (file) => `Left the hippo block in ${file}: it is not the Copilot text hippo wrote.
|
|
182
|
+
kept: (file) => `Left the hippo block in ${file}: it is not the Copilot text hippo wrote. ` +
|
|
183
|
+
'Delete it by hand if no agent needs it.',
|
|
180
184
|
unclosed: unclosedLine,
|
|
181
185
|
};
|
|
182
186
|
const VSCODE_INSTRUCTIONS_INSTALL_LINES = {
|
|
@@ -189,8 +193,8 @@ const VSCODE_INSTRUCTIONS_REMOVE_LINES = {
|
|
|
189
193
|
absent: () => '',
|
|
190
194
|
kept: (file) => `Left ${file}: it is not the text hippo wrote. Delete it by hand if no agent needs it.`,
|
|
191
195
|
};
|
|
192
|
-
const VSCODE_HOOKS_LINE = 'VS Code: hooks need VS Code 1.109.3 or later with chat.useHooks on (the default);
|
|
193
|
-
'instructions file only.';
|
|
196
|
+
const VSCODE_HOOKS_LINE = 'VS Code: hooks need VS Code 1.109.3 or later with chat.useHooks on (the default); ' +
|
|
197
|
+
'older versions get the MCP server and the instructions file only.';
|
|
194
198
|
function mcpInstallLine(file, mcp, host) {
|
|
195
199
|
return isMcpFailure(mcp) ? mcpFailureLine(file, mcp, addByHand(host)) : MCP_MERGE_LINES[mcp](file, host);
|
|
196
200
|
}
|
|
@@ -201,12 +205,15 @@ function printVscodeInstall(result, indent) {
|
|
|
201
205
|
if (paths.profiles.length > 0) {
|
|
202
206
|
const names = paths.profiles.map((dir) => path.basename(dir)).join(', ');
|
|
203
207
|
console.log(`${indent}Found VS Code profiles (${names}) under ${path.join(paths.userDir, 'profiles')}: ` +
|
|
204
|
-
'hippo set up the default profile only; copy the "hippo" server and prompts/hippo.instructions.md
|
|
208
|
+
'hippo set up the default profile only; copy the "hippo" server and prompts/hippo.instructions.md ' +
|
|
209
|
+
'into a profile to use hippo there.');
|
|
205
210
|
}
|
|
206
211
|
}
|
|
207
212
|
function printCopilotInstall(result, indent) {
|
|
208
213
|
const { paths } = result;
|
|
209
|
-
const hooks = result.hooks
|
|
214
|
+
const hooks = result.hooks
|
|
215
|
+
? `Installed hippo's Copilot hooks (${copilotHookEvents().join(', ')}) ->`
|
|
216
|
+
: "hippo's Copilot hooks are already in";
|
|
210
217
|
console.log(`${indent}${hooks} ${paths.hooks}`);
|
|
211
218
|
if (result.mcp === null || result.instructions === null) {
|
|
212
219
|
console.log(`${indent}No Copilot CLI files in ${path.dirname(paths.mcpConfig)}, ` +
|
|
@@ -257,8 +264,7 @@ function hookUninstall(target) {
|
|
|
257
264
|
if (target === 'copilot')
|
|
258
265
|
return printCopilotUninstall(uninstallCopilot());
|
|
259
266
|
if (!target || !HOOKS[target]) {
|
|
260
|
-
|
|
261
|
-
throw new CliExit(1);
|
|
267
|
+
fail(`Unknown hook target: ${target ?? '(none)'}`);
|
|
262
268
|
}
|
|
263
269
|
unpatchAgentFile(HOOKS[target], target);
|
|
264
270
|
// For Claude Code, also strip its SessionEnd/SessionStart entries.
|
|
@@ -271,7 +277,8 @@ function hookUninstall(target) {
|
|
|
271
277
|
}
|
|
272
278
|
}
|
|
273
279
|
else if (target === 'opencode') {
|
|
274
|
-
// opencode uses a TS plugin; uninstall removes the plugin file and also runs the legacy-hooks migration, so remove
|
|
280
|
+
// opencode uses a TS plugin; uninstall removes the plugin file and also runs the legacy-hooks migration, so remove
|
|
281
|
+
// leaves opencode launchable.
|
|
275
282
|
if (uninstallOpencodePlugin()) {
|
|
276
283
|
console.log(`Removed hippo opencode plugin (and any legacy hooks block from opencode.json)`);
|
|
277
284
|
}
|
|
@@ -318,7 +325,9 @@ function removeLegacyCursorRules() {
|
|
|
318
325
|
writeFileAtomic(legacy, left + '\n');
|
|
319
326
|
else
|
|
320
327
|
fs.unlinkSync(legacy);
|
|
321
|
-
console.log(left
|
|
328
|
+
console.log(left
|
|
329
|
+
? 'Removed the old Hippo hook from .cursorrules'
|
|
330
|
+
: 'Deleted .cursorrules, which held only the old Hippo hook');
|
|
322
331
|
}
|
|
323
332
|
}
|
|
324
333
|
function setupDetectedTools(tools, forceAll, dryRun) {
|
|
@@ -383,15 +392,19 @@ function setupCopilot(dryRun) {
|
|
|
383
392
|
if (!dryRun)
|
|
384
393
|
return printCopilotInstall(installCopilot(), indent);
|
|
385
394
|
const { hooks, mcpConfig, instructions, vscode } = copilotPaths();
|
|
386
|
-
const cliFiles = isCopilotCliPresent()
|
|
395
|
+
const cliFiles = isCopilotCliPresent()
|
|
396
|
+
? `, the MCP server in ${mcpConfig} and the hippo block in ${instructions}`
|
|
397
|
+
: '';
|
|
387
398
|
console.log(`[dry-run] would install hooks in ${hooks}${cliFiles}`);
|
|
388
|
-
for (const dir of vscode)
|
|
399
|
+
for (const dir of vscode) {
|
|
389
400
|
console.log(`[dry-run] would add the MCP server to ${dir.mcpConfig} and write ${dir.instructions}`);
|
|
401
|
+
}
|
|
390
402
|
}
|
|
391
403
|
function setupJsonTool(tool, dryRun) {
|
|
392
404
|
if (tool.name === 'copilot')
|
|
393
405
|
return setupCopilot(dryRun);
|
|
394
|
-
// SAFETY: detectInstalledTools gives kind 'json-hook' only to claude-code and copilot (hooks/shared.ts), and copilot
|
|
406
|
+
// SAFETY: detectInstalledTools gives kind 'json-hook' only to claude-code and copilot (hooks/shared.ts), and copilot
|
|
407
|
+
// returned above.
|
|
395
408
|
const target = tool.name;
|
|
396
409
|
if (dryRun) {
|
|
397
410
|
// Resolve the real settings path so the filename is right for each tool
|
|
@@ -433,8 +446,9 @@ function setupJsonTool(tool, dryRun) {
|
|
|
433
446
|
}
|
|
434
447
|
function setupWrapperTool(tool, dryRun) {
|
|
435
448
|
if (dryRun) {
|
|
436
|
-
if (tool.name === 'codex')
|
|
449
|
+
if (tool.name === 'codex') {
|
|
437
450
|
console.log(`[dry-run] would install Codex memory hooks in ${resolveJsonHookPaths('codex').settings}`);
|
|
451
|
+
}
|
|
438
452
|
console.log(`[dry-run] would wrap the detected ${tool.name} launcher in place`);
|
|
439
453
|
return;
|
|
440
454
|
}
|
|
@@ -478,22 +492,26 @@ function setupPluginTool(tool, dryRun) {
|
|
|
478
492
|
console.log(` ${tool.name.padEnd(14)} ${bits.join(', ')} -> ${result.pluginPath}`);
|
|
479
493
|
}
|
|
480
494
|
}
|
|
481
|
-
// Three times the 10 minutes POST /v1/sleep allows a consolidation, so a slow real sleep fits and a hung child cannot
|
|
495
|
+
// Three times the 10 minutes POST /v1/sleep allows a consolidation, so a slow real sleep fits and a hung child cannot
|
|
496
|
+
// stall every later workspace.
|
|
482
497
|
const DAILY_STEP_TIMEOUT_MS = 30 * MINUTE_MS;
|
|
483
|
-
/** Why a child step failed; a child killed at the deadline says so, since its own message is only the spawn error
|
|
498
|
+
/** Why a child step failed; a child killed at the deadline says so, since its own message is only the spawn error
|
|
499
|
+
* code. */
|
|
484
500
|
function dailyStepFailure(err, timeoutMs) {
|
|
485
|
-
if (err instanceof Error && 'code' in err && err.code === 'ETIMEDOUT')
|
|
501
|
+
if (err instanceof Error && 'code' in err && err.code === 'ETIMEDOUT') {
|
|
486
502
|
return `timed out after ${timeoutMs} ms and was stopped`;
|
|
503
|
+
}
|
|
487
504
|
return errorMessage(err);
|
|
488
505
|
}
|
|
489
|
-
export function handleDailyRunner({ tenantId }) {
|
|
506
|
+
export async function handleDailyRunner({ tenantId }) {
|
|
490
507
|
const globalRoot = getGlobalRoot();
|
|
491
508
|
// No workspace sleep ever opens the global store, yet hooks in folders without a store compact into it.
|
|
492
509
|
if (isInitialized(globalRoot)) {
|
|
493
510
|
const finished = replayCompactionsAt(globalRoot, (message) => log.warn(`compaction replay: ${message}`));
|
|
494
|
-
if (finished > 0)
|
|
511
|
+
if (finished > 0) {
|
|
495
512
|
console.log(`Finished saving ${finished} compaction${finished === 1 ? '' : 's'} left over in the global store.`);
|
|
496
|
-
|
|
513
|
+
}
|
|
514
|
+
await repairQualityOnceAt(globalRoot, tenantId);
|
|
497
515
|
}
|
|
498
516
|
printAgentImport(importUserMemories(globalRoot, { machine: currentMachine() }), '');
|
|
499
517
|
const workspaces = listRegisteredWorkspaces(globalRoot);
|
|
@@ -501,7 +519,8 @@ export function handleDailyRunner({ tenantId }) {
|
|
|
501
519
|
console.log('No registered Hippo workspaces found. Run `hippo init` inside a project first.');
|
|
502
520
|
return;
|
|
503
521
|
}
|
|
504
|
-
|
|
522
|
+
const plural = workspaces.length === 1 ? '' : 's';
|
|
523
|
+
console.log(`Running daily maintenance across ${workspaces.length} registered workspace${plural}...`);
|
|
505
524
|
let processed = 0;
|
|
506
525
|
let failed = 0;
|
|
507
526
|
const timeout = envDailyStepTimeoutMs() ?? DAILY_STEP_TIMEOUT_MS;
|
|
@@ -519,7 +538,10 @@ export function handleDailyRunner({ tenantId }) {
|
|
|
519
538
|
catch (err) {
|
|
520
539
|
failed++;
|
|
521
540
|
const action = args.join(' ');
|
|
522
|
-
log.error(`daily-runner failed in ${cwd} during \`${action}\`: ${dailyStepFailure(err, timeout)}`, {
|
|
541
|
+
log.error(`daily-runner failed in ${cwd} during \`${action}\`: ${dailyStepFailure(err, timeout)}`, {
|
|
542
|
+
workspace: cwd,
|
|
543
|
+
...errorFields(err),
|
|
544
|
+
});
|
|
523
545
|
}
|
|
524
546
|
});
|
|
525
547
|
console.log(`Daily maintenance complete: ${processed} workspace${processed === 1 ? '' : 's'} processed, ` +
|
package/dist/cli/shared.d.ts
CHANGED
|
@@ -7,7 +7,9 @@ export declare function runChurnStaleForRepo(hippoRoot: string, tenantId: string
|
|
|
7
7
|
root: string;
|
|
8
8
|
result: ChurnStaleResult;
|
|
9
9
|
}[];
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Run an HTTP-routed command if a `hippo serve` is detected: true if it ran, false on no server or a stale pidfile
|
|
12
|
+
* (removed if it names the dead server).
|
|
11
13
|
* With HIPPO_REQUIRE_SERVER set both fallbacks throw; a stale pidfile must self-heal, not crash. */
|
|
12
14
|
export declare function runViaServerIfAvailable(hippoRoot: string, httpFn: (info: ServerInfo, apiKey: string | undefined) => Promise<void>): Promise<boolean>;
|
|
13
15
|
/** True, after one line, on a shared store: this account's commits and agent notes are not its members' memories. */
|
|
@@ -17,7 +19,7 @@ interface LearnFromRepoResult {
|
|
|
17
19
|
skipped: number;
|
|
18
20
|
lowInfo: number;
|
|
19
21
|
}
|
|
20
|
-
export declare function learnFromRepo(hippoRoot: string, tenantId: string, repoPath: string, days: number, label?: string): LearnFromRepoResult
|
|
22
|
+
export declare function learnFromRepo(hippoRoot: string, tenantId: string, repoPath: string, days: number, label?: string): Promise<LearnFromRepoResult>;
|
|
21
23
|
export declare function resolveAuthRoot(hippoRoot: string, flags: CliFlags): string;
|
|
22
24
|
export {};
|
|
23
25
|
//# sourceMappingURL=shared.d.ts.map
|
package/dist/cli/shared.js
CHANGED
|
@@ -10,17 +10,23 @@ import * as client from './client.js';
|
|
|
10
10
|
import { detectServer, removePidfileIfOwned } from '../server/server-detect.js';
|
|
11
11
|
import { learn, CLI_LEARN } from '../api/index.js';
|
|
12
12
|
import { cliApiContext } from './api-context.js';
|
|
13
|
-
import { errorMessage, log } from '../util/log.js';
|
|
13
|
+
import { errorMessage, log, errorFields } from '../util/log.js';
|
|
14
14
|
import { printError } from './output.js';
|
|
15
15
|
export function requireInit(hippoRoot) {
|
|
16
16
|
if (!isInitialized(hippoRoot)) {
|
|
17
|
-
printError(`No hippo store at ${hippoRoot} (searched ${process.cwd()} and its parents up to your home directory). Run
|
|
17
|
+
printError(`No hippo store at ${hippoRoot} (searched ${process.cwd()} and its parents up to your home directory). Run ` +
|
|
18
|
+
`\`hippo init\` first.`);
|
|
18
19
|
process.exit(1);
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
/** Runs detectChurnStale against every store this repo's memories can live in. */
|
|
22
23
|
export function runChurnStaleForRepo(hippoRoot, tenantId, dryRun) {
|
|
23
|
-
const repoRoot = execFileSync('git', ['rev-parse', '--show-toplevel'], {
|
|
24
|
+
const repoRoot = execFileSync('git', ['rev-parse', '--show-toplevel'], {
|
|
25
|
+
cwd: process.cwd(),
|
|
26
|
+
encoding: 'utf8',
|
|
27
|
+
timeout: 10_000,
|
|
28
|
+
windowsHide: true,
|
|
29
|
+
}).trim();
|
|
24
30
|
const { name: projectName, legacyName } = resolveProjectIdentity(process.cwd());
|
|
25
31
|
const globalRoot = getGlobalRoot();
|
|
26
32
|
const roots = globalRoot !== hippoRoot && isInitialized(globalRoot) ? [hippoRoot, globalRoot] : [hippoRoot];
|
|
@@ -31,11 +37,16 @@ export function runChurnStaleForRepo(hippoRoot, tenantId, dryRun) {
|
|
|
31
37
|
}
|
|
32
38
|
catch (err) {
|
|
33
39
|
const message = errorMessage(err);
|
|
34
|
-
return {
|
|
40
|
+
return {
|
|
41
|
+
root,
|
|
42
|
+
result: { checked: 0, marked: 0, alreadyMarked: 0, skippedPinned: [], dryRun, preview: [], error: message },
|
|
43
|
+
};
|
|
35
44
|
}
|
|
36
45
|
});
|
|
37
46
|
}
|
|
38
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* With HIPPO_REQUIRE_SERVER set, throw rather than fall back to direct DB mode, which would mask a misconfiguration and
|
|
49
|
+
* discard HIPPO_API_KEY.
|
|
39
50
|
* Guards only the routed writes (remember, forget, archive, promote). */
|
|
40
51
|
function failIfServerRequired(reason) {
|
|
41
52
|
if (envRequireServer()) {
|
|
@@ -43,7 +54,9 @@ function failIfServerRequired(reason) {
|
|
|
43
54
|
`Start \`hippo serve\`, or unset HIPPO_REQUIRE_SERVER to allow direct-mode fallback.`);
|
|
44
55
|
}
|
|
45
56
|
}
|
|
46
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Run an HTTP-routed command if a `hippo serve` is detected: true if it ran, false on no server or a stale pidfile
|
|
59
|
+
* (removed if it names the dead server).
|
|
47
60
|
* With HIPPO_REQUIRE_SERVER set both fallbacks throw; a stale pidfile must self-heal, not crash. */
|
|
48
61
|
export async function runViaServerIfAvailable(hippoRoot, httpFn) {
|
|
49
62
|
const info = await detectServer(hippoRoot);
|
|
@@ -60,16 +73,18 @@ export async function runViaServerIfAvailable(hippoRoot, httpFn) {
|
|
|
60
73
|
const failure = err instanceof Error ? client.classifyTransportFailure(err) : 'none';
|
|
61
74
|
if (failure === 'never-sent') {
|
|
62
75
|
failIfServerRequired('the server pidfile was stale (connection refused)');
|
|
63
|
-
log.warn('stale server pidfile detected, falling back to direct mode');
|
|
76
|
+
log.warn('stale server pidfile detected, falling back to direct mode', errorFields(err));
|
|
64
77
|
// Clear the pidfile only if it still names the dead server we just
|
|
65
78
|
// probed — a newer server may have rewritten it (removePidfileIfOwned).
|
|
66
79
|
removePidfileIfOwned(hippoRoot, { pid: info.pid, startedAt: info.started_at });
|
|
67
80
|
return false;
|
|
68
81
|
}
|
|
69
82
|
if (failure === 'delivery-unknown') {
|
|
70
|
-
// Every caller is a non-idempotent write, so replaying on the direct path would store a row the server may
|
|
83
|
+
// Every caller is a non-idempotent write, so replaying on the direct path would store a row the server may
|
|
84
|
+
// already have committed;
|
|
71
85
|
// leave the pidfile alone: the next command's connect-phase failure heals it.
|
|
72
|
-
printError(`hippo: the connection to ${info.url} dropped or timed out mid-request, so the write may already have been
|
|
86
|
+
printError(`hippo: the connection to ${info.url} dropped or timed out mid-request, so the write may already have been ` +
|
|
87
|
+
`applied. ` +
|
|
73
88
|
'Not retrying locally. Check with `hippo recall` before running this again.');
|
|
74
89
|
process.exit(1);
|
|
75
90
|
}
|
|
@@ -83,9 +98,9 @@ export function skipLearnOnSharedStore(hippoRoot) {
|
|
|
83
98
|
console.log("Shared store: skipped learning from this account's git commits and coding agents' own memories.");
|
|
84
99
|
return true;
|
|
85
100
|
}
|
|
86
|
-
export function learnFromRepo(hippoRoot, tenantId, repoPath, days, label) {
|
|
101
|
+
export async function learnFromRepo(hippoRoot, tenantId, repoPath, days, label) {
|
|
87
102
|
const prefix = label ? `[${label}] ` : '';
|
|
88
|
-
const result = learn(cliApiContext(hippoRoot, tenantId), { repoPath, days, profile: CLI_LEARN });
|
|
103
|
+
const result = await learn(cliApiContext(hippoRoot, tenantId), { repoPath, days, profile: CLI_LEARN });
|
|
89
104
|
if (result.status === 'not-a-repo') {
|
|
90
105
|
console.log(`${prefix}No git history found (or not a git repository).`);
|
|
91
106
|
return { added: 0, skipped: 0, lowInfo: 0 };
|
package/dist/cli/slack.js
CHANGED
|
@@ -9,7 +9,8 @@ import { addWorkspace as addSlackWorkspace, listWorkspaces as listSlackWorkspace
|
|
|
9
9
|
import { printError } from './output.js';
|
|
10
10
|
import { printSlackBackfillUsage, printSlackWorkspacesUsage } from './usage.js';
|
|
11
11
|
import { stringFlag } from './flag-values.js';
|
|
12
|
-
import {
|
|
12
|
+
import { cliApiContext } from './api-context.js';
|
|
13
|
+
import { CliExit, fail } from './exit.js';
|
|
13
14
|
// Slack subcommands (`hippo slack backfill` / `hippo slack dlq list`)
|
|
14
15
|
function cmdSlackBackfill(hippoRoot, tenantId, flags) {
|
|
15
16
|
const channel = stringFlag(flags, 'channel');
|
|
@@ -23,15 +24,12 @@ function cmdSlackBackfill(hippoRoot, tenantId, flags) {
|
|
|
23
24
|
printError('SLACK_BOT_TOKEN is not set. Backfill requires a Slack bot token with channels:history scope.');
|
|
24
25
|
throw new CliExit(2);
|
|
25
26
|
}
|
|
26
|
-
// --since is advisory in V1: the slack_cursors row drives resume, so the backfill loop always continues where it left
|
|
27
|
+
// --since is advisory in V1: the slack_cursors row drives resume, so the backfill loop always continues where it left
|
|
28
|
+
// off (keeps idempotency clean).
|
|
27
29
|
const sinceIso = stringFlag(flags, 'since');
|
|
28
30
|
void sinceIso;
|
|
29
31
|
const fetcher = slackHistoryFetcher(token);
|
|
30
|
-
const ctx = {
|
|
31
|
-
hippoRoot,
|
|
32
|
-
tenantId,
|
|
33
|
-
actor: api.adminActor('cli:slack-backfill'),
|
|
34
|
-
};
|
|
32
|
+
const ctx = { ...cliApiContext(hippoRoot, tenantId), actor: api.adminActor('cli:slack-backfill') };
|
|
35
33
|
backfillChannel(ctx, {
|
|
36
34
|
teamId: envSlackTeamId() ?? 'T_UNKNOWN',
|
|
37
35
|
channel: { id: channel, is_private: false },
|
|
@@ -51,25 +49,22 @@ function cmdSlackDlqList(hippoRoot, tenantId, _flags) {
|
|
|
51
49
|
console.log(`${it.id}\t${it.receivedAt}\t${it.error}`);
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
|
-
async function cmdSlackDlqReplay(hippoRoot, args, flags) {
|
|
52
|
+
async function cmdSlackDlqReplay(hippoRoot, tenantId, args, flags) {
|
|
55
53
|
const idArg = args[2];
|
|
56
54
|
if (!idArg) {
|
|
57
|
-
|
|
58
|
-
throw new CliExit(1);
|
|
55
|
+
fail('Usage: hippo slack dlq replay <id> [--force]');
|
|
59
56
|
}
|
|
60
57
|
const id = Number(idArg);
|
|
61
58
|
if (!Number.isFinite(id) || !Number.isInteger(id) || id < 1) {
|
|
62
|
-
|
|
63
|
-
throw new CliExit(1);
|
|
59
|
+
fail(`replay: invalid id ${idArg}`);
|
|
64
60
|
}
|
|
65
61
|
const force = flags.force === true;
|
|
66
|
-
const result = await replayDlqEntry(
|
|
62
|
+
const result = await replayDlqEntry(cliApiContext(hippoRoot, tenantId), id, {
|
|
67
63
|
force,
|
|
68
64
|
signingSecret: envSlackSigningSecret(),
|
|
69
65
|
});
|
|
70
66
|
if (!result.ok) {
|
|
71
|
-
|
|
72
|
-
throw new CliExit(1);
|
|
67
|
+
fail(`replay failed: status=${result.status} retry_count=${result.retryCount}${result.reason ? ` reason=${result.reason}` : ''}`);
|
|
73
68
|
}
|
|
74
69
|
console.log(`replay ok: status=${result.status} memory_id=${result.memoryId ?? '(none)'} retry_count=${result.retryCount}`);
|
|
75
70
|
}
|
|
@@ -77,8 +72,7 @@ function cmdSlackWorkspacesAdd(hippoRoot, flags) {
|
|
|
77
72
|
const teamId = (stringFlag(flags, 'team') ?? '').trim();
|
|
78
73
|
const tenantId = (stringFlag(flags, 'tenant') ?? '').trim();
|
|
79
74
|
if (!teamId || !tenantId) {
|
|
80
|
-
|
|
81
|
-
throw new CliExit(1);
|
|
75
|
+
fail('Usage: hippo slack workspaces add --team <T> --tenant <t>');
|
|
82
76
|
}
|
|
83
77
|
const ws = addSlackWorkspace(hippoRoot, { teamId, tenantId });
|
|
84
78
|
console.log(`added: ${ws.teamId} -> ${ws.tenantId} (${ws.addedAt})`);
|
|
@@ -96,13 +90,11 @@ function cmdSlackWorkspacesList(hippoRoot) {
|
|
|
96
90
|
function cmdSlackWorkspacesRemove(hippoRoot, flags) {
|
|
97
91
|
const teamId = (stringFlag(flags, 'team') ?? '').trim();
|
|
98
92
|
if (!teamId) {
|
|
99
|
-
|
|
100
|
-
throw new CliExit(1);
|
|
93
|
+
fail('Usage: hippo slack workspaces remove --team <T>');
|
|
101
94
|
}
|
|
102
95
|
const removed = removeSlackWorkspace(hippoRoot, teamId);
|
|
103
96
|
if (!removed) {
|
|
104
|
-
|
|
105
|
-
throw new CliExit(1);
|
|
97
|
+
fail(`no workspace registered for team ${teamId}`);
|
|
106
98
|
}
|
|
107
99
|
console.log(`removed: ${teamId}`);
|
|
108
100
|
}
|
|
@@ -117,7 +109,7 @@ export async function handleSlack({ hippoRoot, tenantId, args, flags }) {
|
|
|
117
109
|
return;
|
|
118
110
|
}
|
|
119
111
|
if (sub === 'dlq' && args[1] === 'replay') {
|
|
120
|
-
await cmdSlackDlqReplay(hippoRoot, args, flags);
|
|
112
|
+
await cmdSlackDlqReplay(hippoRoot, tenantId, args, flags);
|
|
121
113
|
return;
|
|
122
114
|
}
|
|
123
115
|
if (sub === 'workspaces') {
|
|
@@ -137,7 +129,6 @@ export async function handleSlack({ hippoRoot, tenantId, args, flags }) {
|
|
|
137
129
|
printSlackWorkspacesUsage();
|
|
138
130
|
throw new CliExit(1);
|
|
139
131
|
}
|
|
140
|
-
|
|
141
|
-
throw new CliExit(1);
|
|
132
|
+
fail('Usage: hippo slack <backfill|dlq list|dlq replay <id> [--force]|workspaces add|workspaces list|workspaces remove> [...]');
|
|
142
133
|
}
|
|
143
134
|
//# sourceMappingURL=slack.js.map
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type * as api from '../api/index.js';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* The lines `hippo sleep` prints for an api.sleep result; pure, so the snapshot tests read them without a console spy.
|
|
4
|
+
*/
|
|
3
5
|
export declare function sleepResultLines(result: api.SleepResult): string[];
|
|
4
6
|
//# sourceMappingURL=sleep-render.d.ts.map
|
package/dist/cli/sleep-render.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// The text `hippo sleep` prints for an api.sleep result, kept pure so tests read the lines directly.
|
|
2
2
|
import { renderAmbientSummary } from '../core/ambient.js';
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* The lines `hippo sleep` prints for an api.sleep result; pure, so the snapshot tests read them without a console spy.
|
|
5
|
+
*/
|
|
4
6
|
export function sleepResultLines(result) {
|
|
5
7
|
return [...sleepCountLines(result), ...(result.dryRun ? ['\n(dry run - nothing ' +
|
|
6
8
|
'written)'] : []), ...sleepDedupeAndAuditLines(result), ...sleepShareAndGraphLines(result)];
|
|
@@ -31,12 +33,12 @@ function sleepDedupeAndAuditLines(result) {
|
|
|
31
33
|
parts.push(`${epiDups} duplicate episodic lessons`);
|
|
32
34
|
if (crossDups > 0)
|
|
33
35
|
parts.push(`${crossDups} cross-layer duplicates`);
|
|
34
|
-
lines.push(`\n${result.dryRun ? 'Would ' +
|
|
35
|
-
'dedupe' : 'Deduped'} ${removed} duplicates (${parts.join(', ')}). ${result.dryRun ? 'Would keep' : 'Kept'} stronger copies.`);
|
|
36
|
+
lines.push(`\n${result.dryRun ? 'Would ' + 'dedupe' : 'Deduped'} ${removed} duplicates (${parts.join(', ')}). ${result.dryRun ? 'Would keep' : 'Kept'} stronger copies.`);
|
|
36
37
|
}
|
|
37
38
|
if (result.audit) {
|
|
38
39
|
if (result.audit.errorsRemoved > 0) {
|
|
39
|
-
lines.push(`\nAudit: ${result.dryRun ? 'would remove' : 'removed'} ${result.audit.errorsRemoved} junk memories (too
|
|
40
|
+
lines.push(`\nAudit: ${result.dryRun ? 'would remove' : 'removed'} ${result.audit.errorsRemoved} junk memories (too ` +
|
|
41
|
+
`short/empty).`);
|
|
40
42
|
}
|
|
41
43
|
if (result.audit.warningCount > 0) {
|
|
42
44
|
lines.push(`Audit: ${result.audit.warningCount} low-quality memories detected (run \`hippo audit\` for details).`);
|
|
@@ -51,7 +53,8 @@ function sleepShareAndGraphLines(result) {
|
|
|
51
53
|
}
|
|
52
54
|
if (result.secretSkipped !== undefined && result.secretSkipped > 0) {
|
|
53
55
|
// The secret veto is never silent.
|
|
54
|
-
lines.push(`\nAuto-share: withheld ${result.secretSkipped} secret-flagged
|
|
56
|
+
lines.push(`\nAuto-share: withheld ${result.secretSkipped} secret-flagged ` +
|
|
57
|
+
`${result.secretSkipped === 1 ? 'memory' : 'memories'} (secret veto).`);
|
|
55
58
|
}
|
|
56
59
|
if (result.ambient)
|
|
57
60
|
lines.push(`\n${renderAmbientSummary(result.ambient)}`);
|
package/dist/cli/sleep.js
CHANGED
|
@@ -17,7 +17,8 @@ import { repairQualityOnceAt } from './quality-repair-once.js';
|
|
|
17
17
|
import { printError } from './output.js';
|
|
18
18
|
/** Runs `hippo sleep`; with `--log-file` it also tees its output to that file. */
|
|
19
19
|
export async function cmdSleep(hippoRoot, tenantId, flags) {
|
|
20
|
-
// Tee stdout/stderr to a log file when --log-file is set; the SessionEnd hook uses it so the SessionStart hook can
|
|
20
|
+
// Tee stdout/stderr to a log file when --log-file is set; the SessionEnd hook uses it so the SessionStart hook can
|
|
21
|
+
// re-display the output.
|
|
21
22
|
const logFile = stringFlag(flags, 'log-file') ?? null;
|
|
22
23
|
let restoreStdout = null;
|
|
23
24
|
if (logFile) {
|
|
@@ -61,7 +62,9 @@ function repairProjectTagsOnce(hippoRoot, tenantId) {
|
|
|
61
62
|
const parts = [
|
|
62
63
|
r.copies.length > 0 ? `set aside ${r.copies.length} misfiled note imports` : '',
|
|
63
64
|
r.folds.length > 0 ? `folded ${r.folds.map((f) => `${f.from} into ${f.into}`).join(', ')}` : '',
|
|
64
|
-
r.toProject.length + r.setAside.length > 0
|
|
65
|
+
r.toProject.length + r.setAside.length > 0
|
|
66
|
+
? `re-tagged ${r.toProject.length + r.setAside.length} merged memories`
|
|
67
|
+
: '',
|
|
65
68
|
].filter((p) => p !== '');
|
|
66
69
|
console.log(`Repaired project tags once after the upgrade: ${parts.join('; ')} (backup: ${r.backup}).`);
|
|
67
70
|
}
|
|
@@ -69,18 +72,18 @@ function repairProjectTagsOnce(hippoRoot, tenantId) {
|
|
|
69
72
|
log.warn(`project tag repair skipped, retried next sleep: ${errorMessage(err)}`);
|
|
70
73
|
}
|
|
71
74
|
}
|
|
72
|
-
async function
|
|
73
|
-
requireInit(hippoRoot);
|
|
75
|
+
async function learnBeforeSleep(hippoRoot, tenantId, flags) {
|
|
74
76
|
// Phase 1: Auto-learn from git and every coding agent's own memories (CLI-only, uses process.cwd() / os.homedir()).
|
|
75
77
|
// Stays in cli.ts; api.sleep covers Phase 2-6 only.
|
|
76
78
|
const learn = !flags['no-learn'] && !skipLearnOnSharedStore(hippoRoot);
|
|
77
79
|
if (learn && flags['dry-run']) {
|
|
78
|
-
console.log("Dry run: skipped learning from git commits and coding agents' own memories (`hippo import --agents --dry-run`
|
|
80
|
+
console.log("Dry run: skipped learning from git commits and coding agents' own memories (`hippo import --agents --dry-run` " +
|
|
81
|
+
"previews those).");
|
|
79
82
|
}
|
|
80
83
|
else if (learn) {
|
|
81
84
|
const config = loadConfig(hippoRoot);
|
|
82
85
|
if (config.autoLearnOnSleep && isGitRepo(process.cwd())) {
|
|
83
|
-
const { added } = learnFromRepo(hippoRoot, tenantId, process.cwd(), 1);
|
|
86
|
+
const { added } = await learnFromRepo(hippoRoot, tenantId, process.cwd(), 1);
|
|
84
87
|
if (added > 0)
|
|
85
88
|
console.log(`Auto-learned ${added} lessons from today's git commits.`);
|
|
86
89
|
}
|
|
@@ -95,13 +98,18 @@ async function cmdSleepCore(hippoRoot, tenantId, flags) {
|
|
|
95
98
|
}
|
|
96
99
|
printAgentImport(importForStore(hippoRoot, { machine: currentMachine() }), '');
|
|
97
100
|
}
|
|
101
|
+
}
|
|
102
|
+
async function cmdSleepCore(hippoRoot, tenantId, flags) {
|
|
103
|
+
requireInit(hippoRoot);
|
|
104
|
+
await learnBeforeSleep(hippoRoot, tenantId, flags);
|
|
98
105
|
// Finishes compactions a killed or busy post-compact hook left; never throws, and a dry run writes nothing.
|
|
99
106
|
if (!flags['dry-run']) {
|
|
100
107
|
const finished = replayCompactionsAt(hippoRoot, (message) => log.warn(`compaction replay: ${message}`));
|
|
101
|
-
if (finished > 0)
|
|
108
|
+
if (finished > 0) {
|
|
102
109
|
console.log(`Finished saving ${finished} compaction${finished === 1 ? '' : 's'} left over from earlier sessions.`);
|
|
110
|
+
}
|
|
103
111
|
repairProjectTagsOnce(hippoRoot, tenantId);
|
|
104
|
-
repairQualityOnceAt(hippoRoot, tenantId);
|
|
112
|
+
await repairQualityOnceAt(hippoRoot, tenantId);
|
|
105
113
|
}
|
|
106
114
|
// Phase 2-6: Pure-storage pipeline (consolidate + dedup + audit + share + ambient).
|
|
107
115
|
const ctx = cliApiContext(hippoRoot, tenantId);
|
package/dist/cli/status.d.ts
CHANGED
|
@@ -2,11 +2,11 @@ import { type PhysicsParticle } from '../core/physics.js';
|
|
|
2
2
|
import { type CommandContext } from './flag-values.js';
|
|
3
3
|
export declare function handleStatus({ hippoRoot, tenantId }: CommandContext): void;
|
|
4
4
|
export declare function physicsEnergyText(particles: PhysicsParticle[], gMemory: number): string;
|
|
5
|
-
/** `hippo tokens [--days <n>] [--json] [--global]`: the token ledger per surface, tokens saved by skipped unchanged
|
|
6
|
-
* Counts are estimates (characters / 4), the same estimate every budget uses. */
|
|
7
|
-
export declare function handleTokens({ hippoRoot, tenantId, flags }: CommandContext): void
|
|
5
|
+
/** `hippo tokens [--days <n>] [--json] [--global]`: the token ledger per surface, tokens saved by skipped unchanged
|
|
6
|
+
* blocks, and re-read hook tokens. Counts are estimates (characters / 4), the same estimate every budget uses. */
|
|
7
|
+
export declare function handleTokens({ hippoRoot, tenantId, flags }: CommandContext): Promise<void>;
|
|
8
8
|
/** `hippo failures [--days <n>] [--json] [--global]`: failed tool calls by outcome, and repeats across sessions. */
|
|
9
|
-
export declare function handleFailures({ hippoRoot, tenantId, flags }: CommandContext): void
|
|
9
|
+
export declare function handleFailures({ hippoRoot, tenantId, flags }: CommandContext): Promise<void>;
|
|
10
10
|
export declare function handleCorrectionLatency({ hippoRoot, tenantId, flags }: CommandContext): void;
|
|
11
11
|
export declare function handleProvenance({ hippoRoot, tenantId, flags }: CommandContext): void;
|
|
12
12
|
export declare function handleDoctor({ flags }: CommandContext): void;
|