hippo-memory 1.70.0 → 1.72.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/agent-memories/apply.d.ts +0 -11
- package/dist/agent-memories/apply.js +6 -21
- package/dist/agent-memories/claude-code.d.ts +4 -2
- package/dist/agent-memories/claude-code.js +15 -6
- package/dist/agent-memories/codex.js +1 -1
- package/dist/agent-memories/copilot.d.ts +1 -3
- package/dist/agent-memories/copilot.js +1 -17
- package/dist/agent-memories/files.js +23 -12
- package/dist/agent-memories/markdown.d.ts +1 -3
- package/dist/agent-memories/markdown.js +1 -3
- package/dist/agent-memories/project-folds.d.ts +10 -0
- package/dist/agent-memories/project-folds.js +34 -0
- package/dist/agent-memories/report.js +2 -1
- package/dist/agent-memories/sync.d.ts +4 -2
- package/dist/agent-memories/sync.js +18 -11
- package/dist/api/assemble.d.ts +7 -44
- package/dist/api/assemble.js +3 -23
- package/dist/api/audit.d.ts +33 -1
- package/dist/api/audit.js +48 -1
- package/dist/api/auth.d.ts +20 -26
- package/dist/api/auth.js +43 -29
- package/dist/api/auto-sleep.d.ts +5 -2
- package/dist/api/auto-sleep.js +9 -5
- package/dist/api/availability.d.ts +2 -15
- package/dist/api/availability.js +4 -18
- package/dist/api/cards.d.ts +42 -0
- package/dist/api/cards.js +52 -0
- package/dist/api/conflicts.d.ts +28 -0
- package/dist/api/conflicts.js +61 -0
- package/dist/api/context-render.js +4 -3
- package/dist/api/context-select.js +12 -15
- package/dist/api/context-types.d.ts +10 -35
- package/dist/api/context.d.ts +5 -22
- package/dist/api/context.js +38 -46
- package/dist/api/continuity.d.ts +47 -0
- package/dist/api/continuity.js +66 -0
- package/dist/{cli → api}/correction-latency.d.ts +2 -14
- package/dist/{cli → api}/correction-latency.js +2 -14
- package/dist/api/dormant.d.ts +5 -21
- package/dist/api/dormant.js +11 -28
- package/dist/api/drill-down.d.ts +7 -46
- package/dist/api/drill-down.js +6 -27
- package/dist/api/embeddings.d.ts +17 -0
- package/dist/api/embeddings.js +28 -0
- package/dist/api/error-reply.d.ts +8 -0
- package/dist/api/error-reply.js +21 -0
- package/dist/api/forget.d.ts +11 -26
- package/dist/api/forget.js +23 -35
- package/dist/api/goals.d.ts +1 -1
- package/dist/api/goals.js +5 -9
- package/dist/api/graph.d.ts +8 -0
- package/dist/api/graph.js +7 -0
- package/dist/api/index.d.ts +6 -2
- package/dist/api/index.js +6 -2
- package/dist/api/instruction-detect.js +21 -6
- package/dist/api/learn.d.ts +4 -0
- package/dist/api/learn.js +53 -27
- package/dist/api/ledger-db.d.ts +2 -5
- package/dist/api/ledger-db.js +5 -35
- package/dist/api/memories.d.ts +23 -0
- package/dist/api/memories.js +46 -0
- package/dist/api/objects.d.ts +9 -0
- package/dist/api/objects.js +11 -0
- package/dist/api/on-store.js +5 -3
- package/dist/api/outcome.js +1 -1
- package/dist/api/pilot-arm.d.ts +1 -11
- package/dist/api/pilot-arm.js +5 -45
- package/dist/api/predictions.d.ts +11 -0
- package/dist/api/predictions.js +24 -0
- package/dist/api/projects.d.ts +21 -0
- package/dist/api/projects.js +24 -0
- package/dist/api/promote.d.ts +13 -17
- package/dist/api/promote.js +12 -20
- package/dist/api/prompt-hook.d.ts +19 -6
- package/dist/api/prompt-hook.js +54 -13
- package/dist/api/provenance-coverage.d.ts +14 -0
- package/dist/{cli → api}/provenance-coverage.js +2 -6
- package/dist/api/recall-cli.d.ts +58 -0
- package/dist/api/recall-cli.js +103 -0
- package/dist/api/recall-core.js +17 -9
- package/dist/api/recall-finish.d.ts +53 -0
- package/dist/api/recall-finish.js +30 -0
- package/dist/api/recall-history.d.ts +17 -84
- package/dist/api/recall-history.js +15 -88
- package/dist/api/recall-pipeline.d.ts +2 -3
- package/dist/api/recall-pipeline.js +21 -15
- package/dist/api/recall-request.js +1 -1
- package/dist/api/recall-types.d.ts +64 -304
- package/dist/api/recall.d.ts +3 -34
- package/dist/api/recall.js +63 -89
- package/dist/api/refine.d.ts +7 -0
- package/dist/api/refine.js +10 -0
- package/dist/api/remember-local.d.ts +57 -0
- package/dist/api/remember-local.js +90 -0
- package/dist/api/remember.d.ts +20 -2
- package/dist/api/remember.js +16 -3
- package/dist/api/session-end.d.ts +22 -0
- package/dist/api/session-end.js +101 -0
- package/dist/api/sleep-run.d.ts +2 -4
- package/dist/api/sleep-run.js +28 -28
- package/dist/api/sleep.d.ts +9 -28
- package/dist/api/status.d.ts +24 -0
- package/dist/api/status.js +40 -0
- package/dist/api/store-init.d.ts +4 -0
- package/dist/api/store-init.js +9 -0
- package/dist/api/tokens.d.ts +3 -10
- package/dist/api/tokens.js +4 -11
- package/dist/api/types.d.ts +8 -29
- package/dist/api/types.js +10 -23
- package/dist/capture/caller-session.d.ts +0 -3
- package/dist/capture/caller-session.js +1 -12
- package/dist/capture/capture-error.d.ts +2 -2
- package/dist/capture/capture-error.js +23 -18
- package/dist/capture/codex-patch.js +3 -1
- package/dist/capture/command.d.ts +4 -12
- package/dist/capture/command.js +39 -114
- package/dist/capture/compact.d.ts +4 -15
- package/dist/capture/compact.js +26 -30
- package/dist/capture/compaction-items-caller.js +11 -20
- package/dist/capture/compaction-record.d.ts +7 -93
- package/dist/capture/compaction-record.js +34 -399
- package/dist/capture/compaction-spool.d.ts +5 -3
- package/dist/capture/compaction-spool.js +21 -7
- package/dist/capture/copilot-transcript.d.ts +2 -1
- package/dist/capture/copilot-transcript.js +2 -1
- package/dist/capture/extract.d.ts +5 -2
- package/dist/capture/extract.js +4 -3
- package/dist/capture/failure-caller.d.ts +1 -1
- package/dist/capture/failure-caller.js +21 -16
- package/dist/capture/failure-reading.d.ts +2 -1
- package/dist/capture/failure-reading.js +7 -9
- package/dist/capture/pre-compact-caller.js +5 -4
- package/dist/capture/session-digest.d.ts +1 -1
- package/dist/capture/session-digest.js +17 -10
- package/dist/capture/session-end-caller.js +2 -1
- package/dist/capture/session-worker.js +3 -4
- package/dist/capture/transcript.d.ts +4 -11
- package/dist/capture/transcript.js +10 -21
- package/dist/capture/working-state.d.ts +4 -2
- package/dist/capture/working-state.js +4 -2
- package/dist/cli/api-context.d.ts +3 -0
- package/dist/cli/api-context.js +6 -0
- package/dist/cli/audit-prune.d.ts +1 -59
- package/dist/cli/audit-prune.js +2 -61
- package/dist/cli/audit.d.ts +1 -1
- package/dist/cli/audit.js +42 -43
- package/dist/cli/auth.d.ts +2 -2
- package/dist/cli/auth.js +61 -44
- package/dist/cli/briefs.d.ts +1 -4
- package/dist/cli/briefs.js +42 -301
- package/dist/cli/card.d.ts +2 -2
- package/dist/cli/card.js +63 -56
- package/dist/cli/client.d.ts +12 -27
- package/dist/cli/client.js +41 -44
- package/dist/cli/compact-resume-payload.js +4 -3
- package/dist/cli/context.d.ts +2 -3
- package/dist/cli/context.js +22 -18
- package/dist/cli/continuity.d.ts +6 -6
- package/dist/cli/continuity.js +81 -86
- package/dist/cli/curate.d.ts +13 -17
- package/dist/cli/curate.js +88 -116
- package/dist/cli/dag.d.ts +4 -4
- package/dist/cli/dag.js +55 -34
- package/dist/cli/decisions.d.ts +2 -4
- package/dist/cli/decisions.js +18 -309
- package/dist/cli/eval.d.ts +1 -1
- package/dist/cli/eval.js +27 -26
- package/dist/cli/exit.d.ts +6 -0
- package/dist/cli/exit.js +11 -0
- package/dist/cli/explain.d.ts +2 -3
- package/dist/cli/explain.js +25 -27
- package/dist/cli/flag-values.d.ts +6 -1
- package/dist/cli/flag-values.js +42 -15
- package/dist/cli/flags.d.ts +0 -288
- package/dist/cli/flags.js +3 -138
- package/dist/cli/github.d.ts +14 -0
- package/dist/{connectors/github/cli-impl.js → cli/github.js} +43 -71
- package/dist/cli/goals.d.ts +2 -2
- package/dist/cli/goals.js +46 -50
- package/dist/cli/graph.d.ts +3 -0
- package/dist/cli/graph.js +83 -0
- package/dist/cli/hook-runtime.d.ts +12 -32
- package/dist/cli/hook-runtime.js +21 -64
- package/dist/cli/incidents.d.ts +3 -0
- package/dist/cli/incidents.js +112 -0
- package/dist/cli/init.d.ts +2 -2
- package/dist/cli/init.js +33 -30
- package/dist/cli/install-steps.d.ts +2 -1
- package/dist/cli/install-steps.js +13 -14
- package/dist/cli/last-sleep.d.ts +2 -1
- package/dist/cli/last-sleep.js +4 -1
- package/dist/cli/lenient-id.d.ts +2 -0
- package/dist/cli/lenient-id.js +13 -0
- package/dist/cli/maintenance.d.ts +5 -5
- package/dist/cli/maintenance.js +37 -43
- package/dist/cli/notes.d.ts +2 -0
- package/dist/cli/notes.js +41 -0
- package/dist/cli/object-verbs.js +4 -3
- package/dist/cli/open-browser.d.ts +14 -0
- package/dist/cli/open-browser.js +26 -0
- package/dist/cli/owner-validation.d.ts +5 -28
- package/dist/cli/owner-validation.js +5 -28
- package/dist/cli/playbooks.d.ts +3 -4
- package/dist/cli/playbooks.js +131 -300
- package/dist/cli/predictions.d.ts +3 -0
- package/dist/cli/predictions.js +175 -0
- package/dist/cli/print.d.ts +2 -5
- package/dist/cli/print.js +3 -5
- package/dist/cli/projects.d.ts +2 -2
- package/dist/cli/projects.js +31 -25
- package/dist/cli/quality-repair-once.d.ts +1 -1
- package/dist/cli/quality-repair-once.js +7 -6
- package/dist/cli/recall.d.ts +2 -4
- package/dist/cli/recall.js +67 -137
- package/dist/cli/refine-llm.d.ts +5 -31
- package/dist/cli/refine-llm.js +23 -50
- package/dist/cli/remember.d.ts +3 -3
- package/dist/cli/remember.js +134 -192
- package/dist/cli/scheduler.d.ts +2 -17
- package/dist/cli/scheduler.js +14 -19
- package/dist/cli/serve.js +23 -14
- package/dist/cli/session-hooks.d.ts +11 -19
- package/dist/cli/session-hooks.js +143 -214
- package/dist/cli/setup.d.ts +4 -4
- package/dist/cli/setup.js +35 -30
- package/dist/cli/shared.d.ts +7 -25
- package/dist/cli/shared.js +17 -60
- package/dist/cli/slack.d.ts +2 -2
- package/dist/cli/slack.js +19 -23
- package/dist/cli/sleep-render.js +6 -3
- package/dist/cli/sleep.d.ts +3 -2
- package/dist/cli/sleep.js +17 -49
- package/dist/cli/status.d.ts +11 -14
- package/dist/cli/status.js +74 -120
- package/dist/cli/stdin.d.ts +4 -6
- package/dist/cli/stdin.js +2 -3
- package/dist/cli/transfer.d.ts +9 -9
- package/dist/cli/transfer.js +87 -108
- package/dist/cli/usage.d.ts +0 -79
- package/dist/cli/usage.js +1 -689
- package/dist/cli/verb-row.d.ts +32 -0
- package/dist/cli/verb-row.js +6 -0
- package/dist/cli/verbs/health.d.ts +27 -0
- package/dist/cli/verbs/health.js +232 -0
- package/dist/cli/verbs/memory.d.ts +16 -0
- package/dist/cli/verbs/memory.js +244 -0
- package/dist/cli/verbs/objects.d.ts +20 -0
- package/dist/cli/verbs/objects.js +254 -0
- package/dist/cli/verbs/sessions.d.ts +31 -0
- package/dist/cli/verbs/sessions.js +312 -0
- package/dist/cli/verbs.d.ts +81 -0
- package/dist/cli/verbs.js +7 -0
- package/dist/cli/versioned-verbs.d.ts +51 -0
- package/dist/cli/versioned-verbs.js +79 -0
- package/dist/cli.d.ts +1 -654
- package/dist/cli.js +44 -510
- package/dist/connectors/dlq.d.ts +39 -3
- package/dist/connectors/dlq.js +37 -3
- package/dist/connectors/github/backfill.d.ts +5 -25
- package/dist/connectors/github/backfill.js +26 -52
- package/dist/connectors/github/deletion.d.ts +4 -18
- package/dist/connectors/github/deletion.js +2 -15
- package/dist/connectors/github/dlq.d.ts +8 -33
- package/dist/connectors/github/dlq.js +34 -93
- package/dist/connectors/github/ingest.d.ts +4 -12
- package/dist/connectors/github/ingest.js +5 -36
- package/dist/connectors/github/octokit-client.d.ts +4 -16
- package/dist/connectors/github/octokit-client.js +27 -24
- package/dist/connectors/github/ratelimit.d.ts +3 -14
- package/dist/connectors/github/ratelimit.js +3 -14
- package/dist/connectors/github/scope.d.ts +3 -5
- package/dist/connectors/github/scope.js +3 -5
- package/dist/connectors/github/signature.d.ts +4 -26
- package/dist/connectors/github/signature.js +4 -26
- package/dist/connectors/github/tenant-routing.d.ts +2 -24
- package/dist/connectors/github/tenant-routing.js +4 -26
- package/dist/connectors/github/transform.js +2 -16
- package/dist/connectors/github/types.d.ts +3 -15
- package/dist/connectors/github/types.js +2 -9
- package/dist/connectors/github/webhook.d.ts +3 -16
- package/dist/connectors/github/webhook.js +38 -23
- package/dist/connectors/ingest.d.ts +10 -0
- package/dist/connectors/ingest.js +28 -0
- package/dist/connectors/slack/backfill.d.ts +4 -17
- package/dist/connectors/slack/backfill.js +4 -13
- package/dist/connectors/slack/dlq.d.ts +2 -19
- package/dist/connectors/slack/dlq.js +51 -90
- package/dist/connectors/slack/ingest.d.ts +4 -9
- package/dist/connectors/slack/ingest.js +4 -30
- package/dist/connectors/slack/scope.d.ts +2 -8
- package/dist/connectors/slack/scope.js +2 -8
- package/dist/connectors/slack/signature.d.ts +1 -6
- package/dist/connectors/slack/tenant-routing.d.ts +2 -19
- package/dist/connectors/slack/tenant-routing.js +2 -21
- package/dist/connectors/slack/transform.d.ts +2 -18
- package/dist/connectors/slack/transform.js +2 -18
- package/dist/connectors/slack/types.d.ts +3 -9
- package/dist/connectors/slack/types.js +2 -4
- package/dist/connectors/slack/web-client.js +33 -27
- package/dist/connectors/slack/webhook.d.ts +3 -19
- package/dist/connectors/slack/webhook.js +6 -26
- package/dist/connectors/slack/workspaces.d.ts +4 -24
- package/dist/connectors/slack/workspaces.js +4 -24
- package/dist/consolidate/conflicts.js +7 -15
- package/dist/consolidate/dag-summary.d.ts +8 -0
- package/dist/consolidate/dag-summary.js +41 -0
- package/dist/consolidate/dag.d.ts +5 -28
- package/dist/consolidate/dag.js +29 -84
- package/dist/consolidate/decay.js +7 -19
- package/dist/consolidate/dedupe.d.ts +13 -52
- package/dist/consolidate/dedupe.js +18 -74
- package/dist/consolidate/flush-units.d.ts +3 -4
- package/dist/consolidate/flush-units.js +3 -3
- package/dist/consolidate/half-life-migration.d.ts +3 -26
- package/dist/consolidate/half-life-migration.js +11 -28
- package/dist/consolidate/llm-passes.js +49 -40
- package/dist/consolidate/memory-value-weights.d.ts +2 -13
- package/dist/consolidate/memory-value-weights.js +2 -13
- package/dist/consolidate/memory-value.d.ts +11 -84
- package/dist/consolidate/memory-value.js +18 -105
- package/dist/consolidate/merge.js +12 -33
- package/dist/consolidate/physics-pass.d.ts +6 -1
- package/dist/consolidate/physics-pass.js +27 -9
- package/dist/consolidate/replay.d.ts +6 -38
- package/dist/consolidate/replay.js +25 -56
- package/dist/consolidate/run.js +1 -1
- package/dist/consolidate/sleep.d.ts +1 -8
- package/dist/consolidate/sleep.js +13 -22
- package/dist/consolidate/trace.d.ts +3 -18
- package/dist/consolidate/trace.js +3 -18
- package/dist/consolidate/traces.js +9 -25
- package/dist/core/ablation.d.ts +14 -91
- package/dist/core/ablation.js +16 -91
- package/dist/core/active-scope.d.ts +7 -0
- package/dist/{sharing/scope.js → core/active-scope.js} +5 -12
- package/dist/core/ambient.d.ts +5 -8
- package/dist/core/ambient.js +40 -26
- package/dist/core/api-errors.d.ts +16 -0
- package/dist/core/api-errors.js +20 -0
- package/dist/core/capture-contract.d.ts +4 -2
- package/dist/core/capture-contract.js +4 -2
- package/dist/core/card.d.ts +4 -1
- package/dist/core/card.js +11 -1
- package/dist/core/compaction-timing.d.ts +7 -0
- package/dist/core/compaction-timing.js +9 -0
- package/dist/core/compare.d.ts +11 -67
- package/dist/core/compare.js +9 -63
- package/dist/core/config.d.ts +10 -24
- package/dist/core/config.js +20 -16
- package/dist/core/cosine.d.ts +3 -0
- package/dist/core/cosine.js +19 -0
- package/dist/core/handoff.d.ts +1 -7
- package/dist/core/handoff.js +1 -7
- package/dist/core/markdown.d.ts +6 -0
- package/dist/{store → core}/markdown.js +23 -22
- package/dist/core/memory-audit.d.ts +17 -0
- package/dist/core/memory-audit.js +54 -0
- package/dist/core/memory-quality.js +1 -1
- package/dist/core/memory.d.ts +51 -168
- package/dist/core/memory.js +76 -239
- package/dist/{consolidate → core}/merged-row.d.ts +1 -1
- package/dist/{consolidate → core}/merged-row.js +3 -2
- package/dist/core/package-root.d.ts +3 -0
- package/dist/core/package-root.js +5 -0
- package/dist/core/physics-config.d.ts +1 -4
- package/dist/core/physics-config.js +3 -8
- package/dist/core/physics.d.ts +15 -61
- package/dist/core/physics.js +65 -138
- package/dist/core/prediction.d.ts +3 -0
- package/dist/core/prediction.js +6 -0
- package/dist/core/project-identity.d.ts +20 -58
- package/dist/core/project-identity.js +27 -39
- package/dist/core/project-remote.js +13 -2
- package/dist/core/raw-append-only.d.ts +5 -0
- package/dist/core/raw-append-only.js +7 -0
- package/dist/core/recall-scope.d.ts +69 -0
- package/dist/core/recall-scope.js +138 -0
- package/dist/core/salience.d.ts +1 -7
- package/dist/core/salience.js +1 -7
- package/dist/dashboard/dashboard-actions.js +2 -2
- package/dist/dashboard/dashboard-snapshot.d.ts +2 -1
- package/dist/dashboard/dashboard-snapshot.js +11 -2
- package/dist/dashboard/dashboard-types.d.ts +2 -1
- package/dist/dashboard/dashboard.d.ts +1 -0
- package/dist/dashboard/dashboard.js +50 -4
- package/dist/db/busy.d.ts +3 -8
- package/dist/db/busy.js +37 -33
- package/dist/db/connect.js +7 -8
- package/dist/db/index.d.ts +3 -3
- package/dist/db/index.js +3 -3
- package/dist/db/migrate.js +3 -3
- package/dist/db/migrations/index.d.ts +1 -1
- package/dist/db/migrations/index.js +3 -1
- package/dist/db/migrations/types.d.ts +2 -5
- package/dist/db/migrations/v14.js +2 -3
- package/dist/db/migrations/v15.js +2 -8
- package/dist/db/migrations/v16.js +2 -3
- package/dist/db/migrations/v17.js +2 -3
- package/dist/db/migrations/v19.js +2 -5
- package/dist/db/migrations/v20.js +2 -7
- package/dist/db/migrations/v22.js +4 -17
- package/dist/db/migrations/v23.js +3 -14
- package/dist/db/migrations/v24.js +2 -4
- package/dist/db/migrations/v25.js +3 -8
- package/dist/db/migrations/v26.js +2 -13
- package/dist/db/migrations/v27.js +3 -11
- package/dist/db/migrations/v28.js +2 -14
- package/dist/db/migrations/v29.js +4 -18
- package/dist/db/migrations/v30.js +4 -16
- package/dist/db/migrations/v31.js +2 -15
- package/dist/db/migrations/v32.js +4 -22
- package/dist/db/migrations/v33.js +2 -15
- package/dist/db/migrations/v34.js +2 -11
- package/dist/db/migrations/v35.js +2 -11
- package/dist/db/migrations/v36.js +2 -11
- package/dist/db/migrations/v37.js +8 -33
- package/dist/db/migrations/v38.js +5 -38
- package/dist/db/migrations/v39.js +9 -20
- package/dist/db/migrations/v40.js +2 -9
- package/dist/db/migrations/v41.js +2 -24
- package/dist/db/migrations/v43.js +1 -1
- package/dist/db/migrations/v44.js +2 -8
- package/dist/db/migrations/v45.js +2 -7
- package/dist/db/migrations/v47.js +2 -3
- package/dist/db/migrations/v51.js +1 -1
- package/dist/db/migrations/v55.d.ts +3 -0
- package/dist/db/migrations/v55.js +17 -0
- package/dist/db/open.d.ts +2 -2
- package/dist/db/open.js +21 -9
- package/dist/db/physics-state.d.ts +6 -22
- package/dist/db/physics-state.js +28 -39
- package/dist/db/raw-archive-mirror-cleanup.d.ts +2 -17
- package/dist/db/raw-archive-mirror-cleanup.js +2 -17
- package/dist/db/tables.d.ts +2 -0
- package/dist/db/tables.js +6 -2
- package/dist/db/vector-store.d.ts +2 -0
- package/dist/db/vector-store.js +25 -5
- package/dist/db/wal-checkpointer.js +2 -1
- package/dist/doctor.js +85 -27
- package/dist/embeddings/local.d.ts +62 -0
- package/dist/embeddings/local.js +146 -0
- package/dist/embeddings/provider.d.ts +43 -0
- package/dist/{store/embeddings → embeddings}/provider.js +58 -83
- package/dist/embeddings/transformers.d.ts +26 -0
- package/dist/embeddings/transformers.js +89 -0
- package/dist/entry/session-text.d.ts +1 -1
- package/dist/entry/session-text.js +3 -2
- package/dist/eval/eval-stats.d.ts +15 -53
- package/dist/eval/eval-stats.js +12 -42
- package/dist/eval/eval-suite.d.ts +2 -13
- package/dist/eval/eval-suite.js +91 -45
- package/dist/eval/eval.d.ts +6 -24
- package/dist/eval/eval.js +8 -35
- package/dist/eval/judgment.d.ts +0 -3
- package/dist/eval/judgment.js +30 -15
- package/dist/extensions/openclaw-plugin/index.js +1 -1
- package/dist/graph/extract.d.ts +5 -27
- package/dist/graph/extract.js +10 -36
- package/dist/graph/recall.d.ts +7 -20
- package/dist/graph/recall.js +15 -77
- package/dist/graph/stream.d.ts +7 -39
- package/dist/graph/stream.js +11 -34
- package/dist/graph/view.d.ts +9 -35
- package/dist/graph/view.js +24 -44
- package/dist/graph/write.d.ts +1 -1
- package/dist/graph/write.js +9 -9
- package/dist/hooks/codex-session.js +3 -2
- package/dist/hooks/codex-wrapper.js +4 -3
- package/dist/hooks/copilot.js +2 -1
- package/dist/hooks/hook-blocks.d.ts +6 -2
- package/dist/hooks/hook-blocks.js +37 -124
- package/dist/hooks/json-hooks.d.ts +4 -36
- package/dist/hooks/json-hooks.js +22 -59
- package/dist/hooks/opencode.d.ts +0 -38
- package/dist/hooks/opencode.js +17 -81
- package/dist/hooks/shared.d.ts +6 -21
- package/dist/hooks/shared.js +31 -33
- package/dist/importers/core.d.ts +12 -37
- package/dist/importers/core.js +10 -28
- package/dist/importers/markdown-parse.d.ts +8 -22
- package/dist/importers/markdown-parse.js +8 -25
- package/dist/importers/markdown.js +3 -12
- package/dist/importers/sources.js +12 -39
- package/dist/importers/vault.d.ts +2 -8
- package/dist/importers/vault.js +31 -85
- package/dist/index.d.ts +8 -3
- package/dist/index.js +8 -3
- package/dist/learn/autolearn.d.ts +23 -42
- package/dist/learn/autolearn.js +45 -52
- package/dist/learn/churn-git.js +13 -4
- package/dist/learn/extract.d.ts +3 -2
- package/dist/learn/extract.js +8 -8
- package/dist/learn/forward-claim-detector.d.ts +6 -30
- package/dist/learn/forward-claim-detector.js +18 -68
- package/dist/learn/invalidation.d.ts +6 -18
- package/dist/learn/invalidation.js +18 -31
- package/dist/mcp/admin-tools.d.ts +2 -2
- package/dist/mcp/admin-tools.js +30 -53
- package/dist/mcp/format.js +3 -2
- package/dist/mcp/framing.d.ts +1 -0
- package/dist/mcp/framing.js +1 -1
- package/dist/mcp/memory-tools.js +7 -10
- package/dist/mcp/protocol.d.ts +15 -29
- package/dist/mcp/protocol.js +26 -16
- package/dist/mcp/recall-tools.js +14 -11
- package/dist/mcp/request.d.ts +3 -11
- package/dist/mcp/request.js +12 -27
- package/dist/mcp/server.d.ts +3 -9
- package/dist/mcp/server.js +5 -16
- package/dist/mcp/session-state.d.ts +1 -1
- package/dist/mcp/session-state.js +5 -11
- package/dist/mcp/stdio.d.ts +2 -6
- package/dist/mcp/stdio.js +68 -16
- package/dist/mcp/tool-args.js +2 -1
- package/dist/mcp/tools.js +47 -22
- package/dist/objects/customer-notes.d.ts +9 -44
- package/dist/objects/customer-notes.js +7 -48
- package/dist/objects/decisions.d.ts +14 -52
- package/dist/objects/decisions.js +15 -53
- package/dist/objects/descriptor.d.ts +1 -1
- package/dist/objects/incidents.d.ts +9 -40
- package/dist/objects/incidents.js +7 -41
- package/dist/objects/lifecycle.d.ts +1 -1
- package/dist/objects/lifecycle.js +2 -1
- package/dist/objects/policies.d.ts +13 -91
- package/dist/objects/policies.js +13 -99
- package/dist/objects/processes.d.ts +9 -54
- package/dist/objects/processes.js +7 -61
- package/dist/objects/project-briefs.d.ts +13 -57
- package/dist/objects/project-briefs.js +16 -78
- package/dist/objects/skills.d.ts +9 -44
- package/dist/objects/skills.js +8 -54
- package/dist/postinstall.js +7 -20
- package/dist/predictions/planning-fallacy.d.ts +11 -34
- package/dist/rerankers/clef.js +6 -37
- package/dist/rerankers/cross-encoder.d.ts +31 -2
- package/dist/rerankers/cross-encoder.js +65 -101
- package/dist/rerankers/index.js +5 -4
- package/dist/rerankers/jev.js +11 -10
- package/dist/rerankers/llm.d.ts +2 -11
- package/dist/rerankers/llm.js +14 -14
- package/dist/rerankers/outage-warning.d.ts +5 -2
- package/dist/rerankers/outage-warning.js +7 -4
- package/dist/rerankers/remote.d.ts +1 -0
- package/dist/rerankers/remote.js +2 -0
- package/dist/rerankers/types.d.ts +2 -14
- package/dist/search/bm25-search.js +1 -1
- package/dist/search/boosts.d.ts +0 -2
- package/dist/search/boosts.js +3 -3
- package/dist/search/embed-memories.d.ts +9 -0
- package/dist/search/embed-memories.js +377 -0
- package/dist/search/goal-boost.d.ts +23 -0
- package/dist/search/goal-boost.js +93 -0
- package/dist/search/hybrid.d.ts +11 -2
- package/dist/search/hybrid.js +9 -4
- package/dist/search/multihop.js +2 -3
- package/dist/search/path-context.d.ts +5 -18
- package/dist/search/path-context.js +5 -18
- package/dist/search/physics-search.d.ts +6 -3
- package/dist/search/physics-search.js +29 -19
- package/dist/search/rerank.js +1 -1
- package/dist/search/rrf.d.ts +7 -35
- package/dist/search/rrf.js +5 -30
- package/dist/search/vector.d.ts +13 -4
- package/dist/search/vector.js +40 -13
- package/dist/server/auth.d.ts +11 -28
- package/dist/server/auth.js +49 -32
- package/dist/server/boot.d.ts +2 -21
- package/dist/server/boot.js +69 -161
- package/dist/server/client-ip.d.ts +3 -21
- package/dist/server/client-ip.js +8 -30
- package/dist/server/deadline.d.ts +0 -2
- package/dist/server/deadline.js +1 -7
- package/dist/server/defaults.d.ts +4 -0
- package/dist/server/defaults.js +5 -0
- package/dist/server/key-check-bounds.d.ts +2 -1
- package/dist/server/lifecycle.d.ts +5 -4
- package/dist/server/lifecycle.js +19 -4
- package/dist/server/mcp-http.js +24 -53
- package/dist/server/rate-limit.d.ts +5 -18
- package/dist/server/rate-limit.js +4 -13
- package/dist/server/request.d.ts +4 -8
- package/dist/server/request.js +16 -19
- package/dist/server/route-checks.d.ts +7 -0
- package/dist/server/route-checks.js +42 -0
- package/dist/server/route-table.d.ts +9 -8
- package/dist/server/route-table.js +127 -139
- package/dist/server/routes/admin.d.ts +8 -8
- package/dist/server/routes/admin.js +35 -49
- package/dist/server/routes/customer-notes.d.ts +6 -6
- package/dist/server/routes/customer-notes.js +8 -14
- package/dist/server/routes/decisions.d.ts +6 -6
- package/dist/server/routes/decisions.js +12 -21
- package/dist/server/routes/incidents.d.ts +6 -6
- package/dist/server/routes/incidents.js +14 -25
- package/dist/server/routes/memories.d.ts +9 -9
- package/dist/server/routes/memories.js +20 -63
- package/dist/server/routes/object-routes.d.ts +6 -11
- package/dist/server/routes/object-routes.js +11 -22
- package/dist/server/routes/policies.d.ts +7 -7
- package/dist/server/routes/policies.js +12 -22
- package/dist/server/routes/predictions.d.ts +6 -6
- package/dist/server/routes/predictions.js +22 -38
- package/dist/server/routes/processes.d.ts +6 -6
- package/dist/server/routes/processes.js +17 -28
- package/dist/server/routes/project-briefs.d.ts +7 -7
- package/dist/server/routes/project-briefs.js +11 -20
- package/dist/server/routes/recall.d.ts +5 -5
- package/dist/server/routes/recall.js +16 -45
- package/dist/server/routes/skills.d.ts +7 -7
- package/dist/server/routes/skills.js +10 -22
- package/dist/server/server-detect.d.ts +15 -53
- package/dist/server/server-detect.js +55 -96
- package/dist/server/sleep-child.js +26 -7
- package/dist/server/sleep-offload.d.ts +11 -5
- package/dist/server/sleep-offload.js +21 -12
- package/dist/server/types.d.ts +32 -18
- package/dist/server/validation.d.ts +3 -2
- package/dist/server/validation.js +15 -33
- package/dist/server.d.ts +7 -6
- package/dist/server.js +8 -6
- package/dist/sharing/global-store.d.ts +19 -0
- package/dist/sharing/global-store.js +75 -0
- package/dist/sharing/global-sync.d.ts +6 -0
- package/dist/sharing/global-sync.js +73 -0
- package/dist/sharing/project-merge.d.ts +11 -19
- package/dist/sharing/project-merge.js +63 -125
- package/dist/sharing/search-both.d.ts +60 -0
- package/dist/sharing/search-both.js +138 -0
- package/dist/sharing/share.d.ts +40 -0
- package/dist/sharing/share.js +229 -0
- package/dist/store/ambient.js +9 -15
- package/dist/store/audit-event.d.ts +5 -13
- package/dist/store/audit-event.js +4 -12
- package/dist/store/audit.d.ts +2 -21
- package/dist/store/audit.js +8 -67
- package/dist/store/auth.d.ts +10 -8
- package/dist/store/auth.js +17 -12
- package/dist/store/candidates.d.ts +23 -5
- package/dist/store/candidates.js +119 -71
- package/dist/store/capture-write.d.ts +17 -0
- package/dist/store/capture-write.js +35 -0
- package/dist/store/card-detail.d.ts +2 -1
- package/dist/store/card-detail.js +2 -1
- package/dist/store/cards.d.ts +14 -9
- package/dist/store/cards.js +72 -126
- package/dist/store/compaction-caller.d.ts +18 -0
- package/dist/store/compaction-caller.js +29 -0
- package/dist/store/compactions-record.d.ts +115 -0
- package/dist/store/compactions-record.js +417 -0
- package/dist/store/compactions.js +6 -4
- package/dist/store/conflicts.d.ts +4 -21
- package/dist/store/conflicts.js +76 -152
- package/dist/store/connectors/dlq.d.ts +10 -0
- package/dist/store/connectors/dlq.js +32 -0
- package/dist/store/connectors/github.d.ts +14 -16
- package/dist/store/connectors/github.js +34 -57
- package/dist/store/connectors/slack.d.ts +2 -11
- package/dist/store/connectors/slack.js +18 -47
- package/dist/store/dashboard-reads.js +11 -14
- package/dist/store/delete-and-batch.d.ts +17 -31
- package/dist/store/delete-and-batch.js +84 -67
- package/dist/store/delivery-recorder.d.ts +15 -4
- package/dist/store/delivery-recorder.js +34 -17
- package/dist/store/descendant-page.js +6 -3
- package/dist/store/diagnostics.js +6 -13
- package/dist/store/dormant.d.ts +8 -30
- package/dist/store/dormant.js +18 -57
- package/dist/store/embeddings/index.d.ts +11 -90
- package/dist/store/embeddings/index.js +18 -523
- package/dist/store/entry-reads.d.ts +34 -61
- package/dist/store/entry-reads.js +111 -136
- package/dist/store/entry-row.d.ts +6 -35
- package/dist/store/entry-row.js +9 -37
- package/dist/store/entry-writes.d.ts +12 -18
- package/dist/store/entry-writes.js +46 -44
- package/dist/store/failure-log-at.d.ts +8 -0
- package/dist/store/failure-log-at.js +16 -0
- package/dist/store/failure-log.d.ts +2 -2
- package/dist/store/failure-log.js +5 -3
- package/dist/{trust → store}/gated-write.d.ts +3 -1
- package/dist/{trust → store}/gated-write.js +7 -5
- package/dist/store/goals.d.ts +3 -40
- package/dist/store/goals.js +41 -178
- package/dist/store/graph-queue.d.ts +6 -22
- package/dist/store/graph-queue.js +14 -45
- package/dist/store/graph-reads.d.ts +11 -35
- package/dist/store/graph-reads.js +24 -60
- package/dist/store/graph-rows.d.ts +3 -6
- package/dist/store/graph-rows.js +6 -9
- package/dist/store/graph-view-rows.d.ts +2 -1
- package/dist/store/graph-view-rows.js +2 -1
- package/dist/store/graph-writes.d.ts +10 -35
- package/dist/store/graph-writes.js +59 -106
- package/dist/store/half-life.d.ts +2 -1
- package/dist/store/half-life.js +14 -16
- package/dist/store/handoffs.d.ts +6 -12
- package/dist/store/handoffs.js +22 -40
- package/dist/store/index-and-stats.d.ts +6 -19
- package/dist/store/index-and-stats.js +36 -84
- package/dist/store/key-writes.js +1 -1
- package/dist/store/ledger-turn.d.ts +9 -0
- package/dist/store/ledger-turn.js +38 -0
- package/dist/store/mirrors.d.ts +2 -6
- package/dist/store/mirrors.js +24 -29
- package/dist/store/open.d.ts +0 -4
- package/dist/store/open.js +42 -62
- package/dist/store/pilot-arm.d.ts +12 -0
- package/dist/store/pilot-arm.js +42 -0
- package/dist/store/planning-fallacy-evidence.d.ts +2 -30
- package/dist/store/planning-fallacy-evidence.js +8 -37
- package/dist/store/port.d.ts +91 -82
- package/dist/store/port.js +8 -0
- package/dist/store/predictions.d.ts +12 -53
- package/dist/store/predictions.js +41 -125
- package/dist/store/project-tags.d.ts +62 -0
- package/dist/store/project-tags.js +67 -0
- package/dist/{cli → store}/quality-repair.js +15 -31
- package/dist/store/quarantine.js +2 -1
- package/dist/store/raw-archive.d.ts +4 -16
- package/dist/store/raw-archive.js +14 -29
- package/dist/store/recall-trace.d.ts +12 -77
- package/dist/store/recall-trace.js +37 -97
- package/dist/store/rejected-values.js +9 -20
- package/dist/store/rejection-probe.d.ts +4 -0
- package/dist/store/rejection-probe.js +19 -0
- package/dist/store/rejection.d.ts +10 -73
- package/dist/store/rejection.js +12 -84
- package/dist/store/report-reads.d.ts +6 -0
- package/dist/store/report-reads.js +29 -0
- package/dist/store/rows.d.ts +9 -19
- package/dist/store/rows.js +36 -34
- package/dist/store/rule-sql.d.ts +14 -0
- package/dist/store/rule-sql.js +56 -0
- package/dist/store/search-rows.d.ts +7 -38
- package/dist/store/search-rows.js +23 -54
- package/dist/store/sessions.d.ts +10 -47
- package/dist/store/sessions.js +21 -75
- package/dist/store/set-aside.d.ts +14 -0
- package/dist/store/set-aside.js +23 -0
- package/dist/store/sqlite/busy.d.ts +3 -0
- package/dist/store/sqlite/busy.js +8 -0
- package/dist/store/sqlite/connector-events-group.js +5 -8
- package/dist/store/sqlite/connector-writes-group.js +3 -3
- package/dist/store/sqlite/entry-writes-group.js +4 -4
- package/dist/store/sqlite/error-codec.js +8 -5
- package/dist/store/sqlite/executor.d.ts +2 -1
- package/dist/store/sqlite/executor.js +12 -5
- package/dist/store/sqlite/graph-reads-group.js +1 -1
- package/dist/store/sqlite/held-connection.d.ts +9 -0
- package/dist/store/sqlite/held-connection.js +41 -0
- package/dist/store/sqlite/local.d.ts +3 -3
- package/dist/store/sqlite/local.js +1 -0
- package/dist/store/sqlite/object-rows.d.ts +1 -1
- package/dist/store/sqlite/object-rows.js +6 -3
- package/dist/store/sqlite/objects-group.d.ts +1 -1
- package/dist/store/sqlite/objects-group.js +5 -3
- package/dist/store/sqlite/quarantine-group.js +2 -2
- package/dist/store/sqlite/store.d.ts +1 -4
- package/dist/store/sqlite/store.js +16 -15
- package/dist/store/sqlite/vector-reads-group.js +2 -2
- package/dist/store/sqlite/worker-jobs.js +1 -1
- package/dist/store/sqlite/worker-ops.d.ts +13 -2
- package/dist/store/sqlite/worker-ops.js +13 -2
- package/dist/store/sqlite/worker-store.js +5 -2
- package/dist/store/summaries.d.ts +11 -63
- package/dist/store/summaries.js +37 -148
- package/dist/store/summary-dirty.js +1 -1
- package/dist/store/tenant-lookup.d.ts +6 -1
- package/dist/store/tenant-lookup.js +7 -0
- package/dist/store/tenant.d.ts +2 -16
- package/dist/store/tenant.js +4 -19
- package/dist/store/token-ledger.d.ts +13 -50
- package/dist/store/token-ledger.js +19 -85
- package/dist/store/usage-reports.js +5 -13
- package/dist/store/vector-index.d.ts +46 -0
- package/dist/store/vector-index.js +171 -0
- package/dist/store/working-memory.d.ts +6 -25
- package/dist/store/working-memory.js +18 -52
- package/dist/support-bundle.js +9 -8
- package/dist/trust/reject-flow.js +3 -5
- package/dist/util/agent-homes.d.ts +15 -0
- package/dist/util/agent-homes.js +34 -0
- package/dist/util/anthropic-messages.d.ts +3 -0
- package/dist/util/anthropic-messages.js +35 -6
- package/dist/util/atomic-write.d.ts +2 -1
- package/dist/util/atomic-write.js +35 -4
- package/dist/util/capped-json.d.ts +6 -0
- package/dist/util/capped-json.js +46 -0
- package/dist/util/chunked.d.ts +3 -0
- package/dist/util/chunked.js +10 -0
- package/dist/util/crash-handlers.d.ts +8 -1
- package/dist/util/crash-handlers.js +52 -10
- package/dist/util/ellipsize.d.ts +3 -0
- package/dist/util/ellipsize.js +5 -0
- package/dist/util/env.d.ts +14 -6
- package/dist/util/env.js +15 -7
- package/dist/util/format.d.ts +3 -0
- package/dist/util/format.js +6 -0
- package/dist/util/home-path.d.ts +2 -1
- package/dist/util/home-path.js +4 -2
- package/dist/util/hook-payload.d.ts +8 -0
- package/dist/util/hook-payload.js +37 -0
- package/dist/util/http-retry.d.ts +9 -1
- package/dist/util/http-retry.js +67 -8
- package/dist/util/http-util.d.ts +0 -8
- package/dist/util/http-util.js +10 -21
- package/dist/util/limits.d.ts +7 -0
- package/dist/util/limits.js +14 -0
- package/dist/util/log.d.ts +7 -2
- package/dist/util/log.js +34 -9
- package/dist/util/request-scope.d.ts +5 -2
- package/dist/util/request-scope.js +13 -7
- package/dist/util/secret-detect.d.ts +5 -30
- package/dist/util/secret-detect.js +19 -40
- package/dist/util/sqlite-blocked.d.ts +2 -0
- package/dist/util/sqlite-blocked.js +5 -0
- package/dist/util/stored-json.d.ts +1 -1
- package/dist/util/stored-json.js +1 -1
- package/dist/util/stream-tee.d.ts +3 -0
- package/dist/util/stream-tee.js +35 -0
- package/dist/util/time.d.ts +4 -0
- package/dist/util/time.js +4 -0
- package/dist/util/token-text.d.ts +1 -4
- package/dist/util/token-text.js +1 -4
- package/dist/util/transcript-tail.d.ts +2 -0
- package/dist/util/transcript-tail.js +24 -23
- package/dist/util/version.d.ts +5 -20
- package/dist/util/version.js +5 -20
- package/dist/{store → util}/yaml.d.ts +1 -5
- package/dist/{store → util}/yaml.js +2 -6
- package/extensions/openclaw-plugin/index.ts +1 -1
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -2
- package/dist/cli/provenance-coverage.d.ts +0 -18
- package/dist/connectors/github/cli-impl.d.ts +0 -25
- package/dist/sharing/scope.d.ts +0 -14
- package/dist/sharing/shared.d.ts +0 -187
- package/dist/sharing/shared.js +0 -563
- package/dist/store/embeddings/local.d.ts +0 -15
- package/dist/store/embeddings/local.js +0 -192
- package/dist/store/embeddings/provider.d.ts +0 -77
- package/dist/store/markdown.d.ts +0 -10
- package/dist/store/recall-scope.d.ts +0 -138
- package/dist/store/recall-scope.js +0 -216
- package/dist/store/vector-writes.d.ts +0 -13
- package/dist/store/vector-writes.js +0 -89
- /package/dist/{store → core}/object-types.d.ts +0 -0
- /package/dist/{store → core}/object-types.js +0 -0
- /package/dist/{cli → store}/quality-repair.d.ts +0 -0
- /package/dist/{capture → util}/compaction-items.d.ts +0 -0
- /package/dist/{capture → util}/compaction-items.js +0 -0
package/dist/cli/sleep.js
CHANGED
|
@@ -6,57 +6,32 @@ import { isGitRepo } from '../learn/autolearn.js';
|
|
|
6
6
|
import { importForStore, currentMachine } from '../agent-memories/sync.js';
|
|
7
7
|
import { replayCompactionsAt } from '../capture/compaction-record.js';
|
|
8
8
|
import * as api from '../api/index.js';
|
|
9
|
-
import {
|
|
9
|
+
import { cliApiContext } from './api-context.js';
|
|
10
10
|
import { sleepResultLines } from './sleep-render.js';
|
|
11
11
|
import { errorMessage, log } from '../util/log.js';
|
|
12
|
-
import {
|
|
13
|
-
import { repairOnceOnSleep } from '../sharing/project-merge.js';
|
|
12
|
+
import { teeStdStreams } from '../util/stream-tee.js';
|
|
14
13
|
import { boolFlag, stringFlag } from './flag-values.js';
|
|
15
14
|
import { requireInit, learnFromRepo, runChurnStaleForRepo, skipLearnOnSharedStore } from './shared.js';
|
|
16
15
|
import { printAgentImport } from './print.js';
|
|
17
16
|
import { repairQualityOnceAt } from './quality-repair-once.js';
|
|
18
17
|
import { printError } from './output.js';
|
|
19
18
|
/** Runs `hippo sleep`; with `--log-file` it also tees its output to that file. */
|
|
20
|
-
export async function cmdSleep(hippoRoot, flags) {
|
|
21
|
-
// Tee stdout/stderr to a log file when --log-file is set
|
|
22
|
-
// hook uses this so the output is captured somewhere the SessionStart hook
|
|
23
|
-
// can re-display it next time the agent UI starts.
|
|
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 re-display the output.
|
|
24
21
|
const logFile = stringFlag(flags, 'log-file') ?? null;
|
|
25
22
|
let restoreStdout = null;
|
|
26
23
|
if (logFile) {
|
|
27
24
|
try {
|
|
28
25
|
fs.mkdirSync(path.dirname(logFile), { recursive: true });
|
|
29
26
|
fs.writeFileSync(logFile, `[hippo] ${new Date().toISOString()} consolidating memory...\n`, 'utf8');
|
|
30
|
-
|
|
31
|
-
const origStderrWrite = process.stderr.write.bind(process.stderr);
|
|
32
|
-
const tee = (chunk) => {
|
|
33
|
-
try {
|
|
34
|
-
const buf = typeof chunk === 'string' ? chunk : Buffer.isBuffer(chunk) ? chunk.toString('utf8') : String(chunk);
|
|
35
|
-
fs.appendFileSync(logFile, buf, 'utf8');
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
// log failures are non-fatal — still write to the real stream
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
process.stdout.write = ((chunk, enc, cb) => {
|
|
42
|
-
tee(chunk);
|
|
43
|
-
return origStdoutWrite(chunk, enc, cb);
|
|
44
|
-
});
|
|
45
|
-
process.stderr.write = ((chunk, enc, cb) => {
|
|
46
|
-
tee(chunk);
|
|
47
|
-
return origStderrWrite(chunk, enc, cb);
|
|
48
|
-
});
|
|
49
|
-
restoreStdout = () => {
|
|
50
|
-
process.stdout.write = origStdoutWrite;
|
|
51
|
-
process.stderr.write = origStderrWrite;
|
|
52
|
-
};
|
|
27
|
+
restoreStdout = teeStdStreams(logFile);
|
|
53
28
|
}
|
|
54
29
|
catch (err) {
|
|
55
30
|
log.warn(`could not open log file ${logFile}: ${errorMessage(err)}`);
|
|
56
31
|
}
|
|
57
32
|
}
|
|
58
33
|
try {
|
|
59
|
-
await cmdSleepCore(hippoRoot, flags);
|
|
34
|
+
await cmdSleepCore(hippoRoot, tenantId, flags);
|
|
60
35
|
if (logFile)
|
|
61
36
|
console.log('[hippo] sleep complete');
|
|
62
37
|
}
|
|
@@ -70,16 +45,17 @@ export async function cmdSleep(hippoRoot, flags) {
|
|
|
70
45
|
restoreStdout();
|
|
71
46
|
}
|
|
72
47
|
}
|
|
48
|
+
export function handleSleep({ hippoRoot, tenantId, flags }) {
|
|
49
|
+
return cmdSleep(hippoRoot, tenantId, flags);
|
|
50
|
+
}
|
|
73
51
|
function renderSleepResult(result) {
|
|
74
52
|
for (const line of sleepResultLines(result))
|
|
75
53
|
console.log(line);
|
|
76
54
|
}
|
|
77
55
|
/** Fault-isolated: a failed repair warns and runs again next sleep, and never stops the sleep. */
|
|
78
|
-
function repairProjectTagsOnce(hippoRoot) {
|
|
79
|
-
let db;
|
|
56
|
+
function repairProjectTagsOnce(hippoRoot, tenantId) {
|
|
80
57
|
try {
|
|
81
|
-
|
|
82
|
-
const r = repairOnceOnSleep(db, hippoRoot, resolveTenantId({}));
|
|
58
|
+
const r = api.repairProjectNamesOnce(cliApiContext(hippoRoot, tenantId));
|
|
83
59
|
if (r === null)
|
|
84
60
|
return;
|
|
85
61
|
const parts = [
|
|
@@ -92,12 +68,8 @@ function repairProjectTagsOnce(hippoRoot) {
|
|
|
92
68
|
catch (err) {
|
|
93
69
|
log.warn(`project tag repair skipped, retried next sleep: ${errorMessage(err)}`);
|
|
94
70
|
}
|
|
95
|
-
finally {
|
|
96
|
-
if (db)
|
|
97
|
-
closeHippoDb(db);
|
|
98
|
-
}
|
|
99
71
|
}
|
|
100
|
-
async function cmdSleepCore(hippoRoot, flags) {
|
|
72
|
+
async function cmdSleepCore(hippoRoot, tenantId, flags) {
|
|
101
73
|
requireInit(hippoRoot);
|
|
102
74
|
// Phase 1: Auto-learn from git and every coding agent's own memories (CLI-only, uses process.cwd() / os.homedir()).
|
|
103
75
|
// Stays in cli.ts; api.sleep covers Phase 2-6 only.
|
|
@@ -108,13 +80,13 @@ async function cmdSleepCore(hippoRoot, flags) {
|
|
|
108
80
|
else if (learn) {
|
|
109
81
|
const config = loadConfig(hippoRoot);
|
|
110
82
|
if (config.autoLearnOnSleep && isGitRepo(process.cwd())) {
|
|
111
|
-
const { added } = learnFromRepo(hippoRoot, process.cwd(), 1);
|
|
83
|
+
const { added } = learnFromRepo(hippoRoot, tenantId, process.cwd(), 1);
|
|
112
84
|
if (added > 0)
|
|
113
85
|
console.log(`Auto-learned ${added} lessons from today's git commits.`);
|
|
114
86
|
}
|
|
115
87
|
// Opt-in code-churn staleness, off by default (config.churnStaleness.enabled).
|
|
116
88
|
if (config.churnStaleness.enabled && isGitRepo(process.cwd())) {
|
|
117
|
-
for (const { root, result } of runChurnStaleForRepo(hippoRoot, false)) {
|
|
89
|
+
for (const { root, result } of runChurnStaleForRepo(hippoRoot, tenantId, false)) {
|
|
118
90
|
if (result.marked > 0)
|
|
119
91
|
console.log(`Tagged ${result.marked} memories churn-stale in ${root}.`);
|
|
120
92
|
if (result.error)
|
|
@@ -128,15 +100,11 @@ async function cmdSleepCore(hippoRoot, flags) {
|
|
|
128
100
|
const finished = replayCompactionsAt(hippoRoot, (message) => log.warn(`compaction replay: ${message}`));
|
|
129
101
|
if (finished > 0)
|
|
130
102
|
console.log(`Finished saving ${finished} compaction${finished === 1 ? '' : 's'} left over from earlier sessions.`);
|
|
131
|
-
repairProjectTagsOnce(hippoRoot);
|
|
132
|
-
repairQualityOnceAt(hippoRoot);
|
|
103
|
+
repairProjectTagsOnce(hippoRoot, tenantId);
|
|
104
|
+
repairQualityOnceAt(hippoRoot, tenantId);
|
|
133
105
|
}
|
|
134
106
|
// Phase 2-6: Pure-storage pipeline (consolidate + dedup + audit + share + ambient).
|
|
135
|
-
const ctx =
|
|
136
|
-
hippoRoot,
|
|
137
|
-
tenantId: resolveTenantId({}),
|
|
138
|
-
actor: api.adminActor('cli'),
|
|
139
|
-
};
|
|
107
|
+
const ctx = cliApiContext(hippoRoot, tenantId);
|
|
140
108
|
const result = await api.sleep(ctx, {
|
|
141
109
|
dryRun: boolFlag(flags, 'dry-run'),
|
|
142
110
|
noShare: boolFlag(flags, 'no-share'),
|
package/dist/cli/status.d.ts
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
* Counts are estimates (characters / 4), the same estimate every budget uses.
|
|
9
|
-
*/
|
|
10
|
-
export declare function cmdTokens(hippoRoot: string, flags: CliFlags): void;
|
|
1
|
+
import { type PhysicsParticle } from '../core/physics.js';
|
|
2
|
+
import { type CommandContext } from './flag-values.js';
|
|
3
|
+
export declare function handleStatus({ hippoRoot, tenantId }: CommandContext): void;
|
|
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 blocks, and re-read hook tokens.
|
|
6
|
+
* Counts are estimates (characters / 4), the same estimate every budget uses. */
|
|
7
|
+
export declare function handleTokens({ hippoRoot, tenantId, flags }: CommandContext): void;
|
|
11
8
|
/** `hippo failures [--days <n>] [--json] [--global]`: failed tool calls by outcome, and repeats across sessions. */
|
|
12
|
-
export declare function
|
|
13
|
-
export declare function handleCorrectionLatency({ hippoRoot, flags }: CommandContext): void;
|
|
14
|
-
export declare function handleProvenance({ hippoRoot, flags }: CommandContext): void;
|
|
9
|
+
export declare function handleFailures({ hippoRoot, tenantId, flags }: CommandContext): void;
|
|
10
|
+
export declare function handleCorrectionLatency({ hippoRoot, tenantId, flags }: CommandContext): void;
|
|
11
|
+
export declare function handleProvenance({ hippoRoot, tenantId, flags }: CommandContext): void;
|
|
15
12
|
export declare function handleDoctor({ flags }: CommandContext): void;
|
|
16
13
|
export declare function handleSupportBundle({ flags }: CommandContext): void;
|
|
17
|
-
export declare function handleInspect({ hippoRoot, args }: CommandContext): void
|
|
14
|
+
export declare function handleInspect({ hippoRoot, tenantId, args }: CommandContext): Promise<void>;
|
|
18
15
|
//# sourceMappingURL=status.d.ts.map
|
package/dist/cli/status.js
CHANGED
|
@@ -1,52 +1,47 @@
|
|
|
1
1
|
// Read-only report verbs: status, inspect, tokens, failures, provenance, correction latency, doctor and support bundle.
|
|
2
2
|
import { envHomeDir } from '../util/env.js';
|
|
3
|
-
import { evalNow } from '../core/ablation.js';
|
|
3
|
+
import { evalNow, strengthAblation } from '../core/ablation.js';
|
|
4
4
|
import * as path from 'path';
|
|
5
5
|
import * as fs from 'fs';
|
|
6
6
|
import * as os from 'os';
|
|
7
7
|
import { fileURLToPath } from 'node:url';
|
|
8
|
-
import { calculateStrength, calculateRewardFactor, resolveConfidence,
|
|
9
|
-
import {
|
|
10
|
-
import { loadStats } from '../store/index-and-stats.js';
|
|
11
|
-
import { listMemoryConflicts } from '../store/conflicts.js';
|
|
12
|
-
import { loadEmbeddingIndex, embeddingModelRequiresReindex } from '../store/embeddings/index.js';
|
|
13
|
-
import { resolveEmbeddingProvider } from '../store/embeddings/provider.js';
|
|
14
|
-
import { loadStoredParticles } from '../store/vector-writes.js';
|
|
8
|
+
import { calculateStrength, calculateRewardFactor, resolveConfidence, Layer } from '../core/memory.js';
|
|
9
|
+
import { resolveEmbeddingProvider } from '../embeddings/provider.js';
|
|
15
10
|
import { computeSystemEnergy, vecNorm } from '../core/physics.js';
|
|
16
11
|
import { loadConfig } from '../core/config.js';
|
|
17
12
|
import { runDoctor, formatDoctor } from '../doctor.js';
|
|
18
13
|
import { buildSupportBundle, TAIL_MAX_LINES } from '../support-bundle.js';
|
|
19
14
|
import { PACKAGE_VERSION } from '../util/version.js';
|
|
20
15
|
import { FAILURE_LOG_RETENTION_DAYS } from '../store/failure-log.js';
|
|
21
|
-
import { getGlobalRoot } from '../sharing/
|
|
22
|
-
import { buildProvenanceCoverage } from './provenance-coverage.js';
|
|
23
|
-
import { buildCorrectionLatency } from './correction-latency.js';
|
|
16
|
+
import { getGlobalRoot } from '../sharing/global-store.js';
|
|
24
17
|
import * as api from '../api/index.js';
|
|
25
|
-
import {
|
|
18
|
+
import { getMemory } from '../api/memories.js';
|
|
19
|
+
import { correctionLatencyReport, embeddingReindexNeeded, provenanceCoverageReport, storeStatus, storedParticles, vectorSummary, } from '../api/status.js';
|
|
20
|
+
import { cliApiContext } from './api-context.js';
|
|
26
21
|
import { errorMessage, log } from '../util/log.js';
|
|
27
22
|
import { printError } from './output.js';
|
|
28
23
|
import { parseCountFlag, stringFlagOrExit, flagIsTrue } from './flag-values.js';
|
|
29
24
|
import { requireInit, resolveAuthRoot } from './shared.js';
|
|
30
25
|
import { fmt } from './print.js';
|
|
26
|
+
import { isJsonObject } from '../util/json.js';
|
|
31
27
|
import { hookStoreRoot } from './hook-runtime.js';
|
|
32
|
-
import { DAY_MS } from '../util/time.js';
|
|
33
|
-
|
|
28
|
+
import { DAY_MS, HOUR_MS, MINUTE_MS } from '../util/time.js';
|
|
29
|
+
import { CliExit } from './exit.js';
|
|
30
|
+
export function handleStatus({ hippoRoot, tenantId }) {
|
|
34
31
|
requireInit(hippoRoot);
|
|
35
|
-
const
|
|
36
|
-
const stats =
|
|
37
|
-
const
|
|
38
|
-
const { byLayer, byConfidence, pinned, atRisk, agedOut, avgStrength } = tallyStatus(entries, now);
|
|
32
|
+
const ctx = cliApiContext(hippoRoot, tenantId);
|
|
33
|
+
const { stats, counts } = storeStatus(ctx, evalNow(), 0.2);
|
|
34
|
+
const { byLayer, byConfidence, pinned, atRisk, agedOut, avgStrength } = counts;
|
|
39
35
|
console.log('Hippo Status');
|
|
40
36
|
console.log('---------------------------');
|
|
41
|
-
console.log(`Total memories: ${
|
|
37
|
+
console.log(`Total memories: ${counts.total}`);
|
|
42
38
|
console.log(` Buffer: ${byLayer[Layer.Buffer]}`);
|
|
43
39
|
console.log(` Episodic: ${byLayer[Layer.Episodic]}`);
|
|
44
40
|
console.log(` Semantic: ${byLayer[Layer.Semantic]}`);
|
|
45
41
|
console.log(` Trace: ${byLayer[Layer.Trace]}`);
|
|
46
|
-
const conflictCount = listMemoryConflicts(hippoRoot).length;
|
|
47
42
|
console.log(`Pinned: ${pinned}`);
|
|
48
43
|
console.log(`At risk (<0.2): ${atRisk}`);
|
|
49
|
-
console.log(`Open conflicts: ${
|
|
44
|
+
console.log(`Open conflicts: ${counts.openConflicts}`);
|
|
50
45
|
console.log(`Avg strength: ${fmt(avgStrength)}`);
|
|
51
46
|
console.log('');
|
|
52
47
|
console.log('Confidence breakdown:');
|
|
@@ -56,58 +51,25 @@ export function cmdStatus(hippoRoot) {
|
|
|
56
51
|
console.log(` Stale: ${byConfidence['stale'] ?? 0}`);
|
|
57
52
|
console.log(` Aged out: ${agedOut} (of the above; excludes pinned, verified)`);
|
|
58
53
|
console.log('');
|
|
59
|
-
console.log(`Total remembered: ${stats
|
|
60
|
-
console.log(`Total recalled: ${stats
|
|
61
|
-
console.log(`Total forgotten: ${stats
|
|
62
|
-
const runs = stats
|
|
54
|
+
console.log(`Total remembered: ${stats.total_remembered ?? 0}`);
|
|
55
|
+
console.log(`Total recalled: ${stats.total_recalled ?? 0}`);
|
|
56
|
+
console.log(`Total forgotten: ${stats.total_forgotten ?? 0}`);
|
|
57
|
+
const runs = stats.consolidation_runs ?? [];
|
|
63
58
|
if (Array.isArray(runs) && runs.length > 0) {
|
|
64
59
|
const last = runs[runs.length - 1];
|
|
65
|
-
console.log(`Last sleep: ${last['timestamp']}`);
|
|
60
|
+
console.log(`Last sleep: ${isJsonObject(last) ? last['timestamp'] : undefined}`);
|
|
66
61
|
}
|
|
67
62
|
else {
|
|
68
63
|
console.log(`Last sleep: never`);
|
|
69
64
|
}
|
|
70
|
-
printEmbeddingStatus(
|
|
71
|
-
printPhysicsStatus(
|
|
72
|
-
}
|
|
73
|
-
function tallyStatus(entries, now) {
|
|
74
|
-
const byLayer = {
|
|
75
|
-
[Layer.Buffer]: 0,
|
|
76
|
-
[Layer.Episodic]: 0,
|
|
77
|
-
[Layer.Semantic]: 0,
|
|
78
|
-
[Layer.Trace]: 0,
|
|
79
|
-
};
|
|
80
|
-
const byConfidence = {
|
|
81
|
-
verified: 0,
|
|
82
|
-
observed: 0,
|
|
83
|
-
inferred: 0,
|
|
84
|
-
stale: 0,
|
|
85
|
-
};
|
|
86
|
-
let totalStrength = 0;
|
|
87
|
-
let pinned = 0;
|
|
88
|
-
let atRisk = 0; // strength < 0.2
|
|
89
|
-
let agedOut = 0;
|
|
90
|
-
for (const e of entries) {
|
|
91
|
-
const s = calculateStrength(e, now);
|
|
92
|
-
byLayer[e.layer] = (byLayer[e.layer] ?? 0) + 1;
|
|
93
|
-
totalStrength += s;
|
|
94
|
-
if (e.pinned)
|
|
95
|
-
pinned++;
|
|
96
|
-
if (s < 0.2)
|
|
97
|
-
atRisk++;
|
|
98
|
-
const facets = confidenceFacets(e, now);
|
|
99
|
-
byConfidence[facets.tier] = (byConfidence[facets.tier] ?? 0) + 1;
|
|
100
|
-
if (facets.agedOut)
|
|
101
|
-
agedOut++;
|
|
102
|
-
}
|
|
103
|
-
const avgStrength = entries.length > 0 ? totalStrength / entries.length : 0;
|
|
104
|
-
return { byLayer, byConfidence, pinned, atRisk, agedOut, avgStrength };
|
|
65
|
+
printEmbeddingStatus(ctx, counts);
|
|
66
|
+
printPhysicsStatus(ctx);
|
|
105
67
|
}
|
|
106
68
|
// Embedding status (provider-aware)
|
|
107
|
-
function printEmbeddingStatus(
|
|
69
|
+
function printEmbeddingStatus(ctx, counts) {
|
|
108
70
|
const embedProvider = (() => {
|
|
109
71
|
try {
|
|
110
|
-
return resolveEmbeddingProvider(hippoRoot);
|
|
72
|
+
return resolveEmbeddingProvider(ctx.hippoRoot);
|
|
111
73
|
}
|
|
112
74
|
catch {
|
|
113
75
|
// Status reports a bad provider config as "misconfigured" below instead of failing.
|
|
@@ -119,7 +81,7 @@ function printEmbeddingStatus(hippoRoot, entries) {
|
|
|
119
81
|
console.log(`Embeddings: misconfigured (check embeddings.provider / apiBaseUrl), BM25 only`);
|
|
120
82
|
return;
|
|
121
83
|
}
|
|
122
|
-
const embeddingsDisabled = loadConfig(hippoRoot).embeddings.enabled === false;
|
|
84
|
+
const embeddingsDisabled = loadConfig(ctx.hippoRoot).embeddings.enabled === false;
|
|
123
85
|
const embAvail = embedProvider.isAvailable();
|
|
124
86
|
if (embeddingsDisabled) {
|
|
125
87
|
console.log(`Embeddings: disabled in config (embeddings.enabled = false), BM25 only`);
|
|
@@ -135,36 +97,35 @@ function printEmbeddingStatus(hippoRoot, entries) {
|
|
|
135
97
|
}
|
|
136
98
|
// Show cached counts whenever vectors exist on disk (even when disabled or
|
|
137
99
|
// the key was removed), so the user still sees what is already indexed.
|
|
138
|
-
const
|
|
139
|
-
if (!embAvail &&
|
|
100
|
+
const { ids: embeddedIds, dims } = vectorSummary(ctx);
|
|
101
|
+
if (!embAvail && embeddedIds.size === 0)
|
|
140
102
|
return;
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
const orphaned = Object.keys(embIndex).length - activeEmbedded;
|
|
144
|
-
const dims = Object.values(embIndex)[0]?.length;
|
|
145
|
-
let line = `Embedded: ${activeEmbedded}/${entries.length} memories`;
|
|
103
|
+
const orphaned = embeddedIds.size - counts.embedded;
|
|
104
|
+
let line = `Embedded: ${counts.embedded}/${counts.total} memories`;
|
|
146
105
|
if (dims)
|
|
147
106
|
line += ` (${dims}-dim)`;
|
|
148
107
|
if (orphaned > 0)
|
|
149
108
|
line += ` (${orphaned} orphaned, run \`hippo embed\` to prune)`;
|
|
150
109
|
console.log(line);
|
|
151
|
-
|
|
110
|
+
// No index argument: the check then asks SQLite whether any vector exists instead of loading them.
|
|
111
|
+
if (embeddingReindexNeeded(ctx, embedProvider.id)) {
|
|
152
112
|
console.log(` model changed, run \`hippo embed\` to reindex`);
|
|
153
113
|
}
|
|
154
114
|
}
|
|
115
|
+
// The all-pairs energy sum is quadratic, so a large particle set skips it.
|
|
116
|
+
const PHYSICS_ENERGY_STATUS_MAX = 2000;
|
|
155
117
|
// Physics status
|
|
156
|
-
function printPhysicsStatus(
|
|
118
|
+
function printPhysicsStatus(ctx) {
|
|
157
119
|
try {
|
|
158
|
-
const particles =
|
|
120
|
+
const particles = storedParticles(ctx);
|
|
159
121
|
if (particles.length > 0) {
|
|
160
|
-
const physConfig = loadConfig(hippoRoot);
|
|
161
|
-
const energy = computeSystemEnergy(particles, physConfig.physics.G_memory);
|
|
162
122
|
let sumVelMag = 0;
|
|
163
123
|
for (const p of particles)
|
|
164
124
|
sumVelMag += vecNorm(p.velocity);
|
|
165
125
|
const avgVelMag = sumVelMag / particles.length;
|
|
166
126
|
console.log('');
|
|
167
|
-
console.log(`Physics: ${particles.length} particles,
|
|
127
|
+
console.log(`Physics: ${particles.length} particles, ` +
|
|
128
|
+
`${physicsEnergyText(particles, loadConfig(ctx.hippoRoot).physics.G_memory)}, avg vel: ${fmt(avgVelMag, 4)}`);
|
|
168
129
|
}
|
|
169
130
|
}
|
|
170
131
|
catch (err) {
|
|
@@ -172,15 +133,21 @@ function printPhysicsStatus(hippoRoot) {
|
|
|
172
133
|
log.debug(`physics status skipped: ${errorMessage(err)}`);
|
|
173
134
|
}
|
|
174
135
|
}
|
|
175
|
-
function
|
|
136
|
+
export function physicsEnergyText(particles, gMemory) {
|
|
137
|
+
if (particles.length > PHYSICS_ENERGY_STATUS_MAX)
|
|
138
|
+
return `energy: skipped (${particles.length} particles)`;
|
|
139
|
+
const energy = computeSystemEnergy(particles, gMemory);
|
|
140
|
+
return `energy: ${fmt(energy.total, 4)} (KE: ${fmt(energy.kinetic, 4)}, PE: ${fmt(energy.potential, 4)})`;
|
|
141
|
+
}
|
|
142
|
+
async function cmdInspect(hippoRoot, tenantId, id) {
|
|
176
143
|
requireInit(hippoRoot);
|
|
177
|
-
const entry =
|
|
144
|
+
const entry = await getMemory(cliApiContext(hippoRoot, tenantId), id);
|
|
178
145
|
if (!entry) {
|
|
179
146
|
printError(`Memory not found: ${id}`);
|
|
180
|
-
|
|
147
|
+
throw new CliExit(1);
|
|
181
148
|
}
|
|
182
149
|
const now = evalNow();
|
|
183
|
-
const currentStrength = calculateStrength(entry, now);
|
|
150
|
+
const currentStrength = calculateStrength(entry, now, { ablation: strengthAblation() });
|
|
184
151
|
const lastRetrieved = new Date(entry.last_retrieved);
|
|
185
152
|
const created = new Date(entry.created);
|
|
186
153
|
const ageDays = (now.getTime() - created.getTime()) / DAY_MS;
|
|
@@ -199,7 +166,7 @@ function cmdInspect(hippoRoot, id) {
|
|
|
199
166
|
console.log(`Schema fit: ${entry.schema_fit}`);
|
|
200
167
|
console.log(`Pinned: ${entry.pinned}`);
|
|
201
168
|
console.log(`Tags: ${entry.tags.join(', ') || 'none'}`);
|
|
202
|
-
const rewardFactor = calculateRewardFactor(entry);
|
|
169
|
+
const rewardFactor = calculateRewardFactor(entry, strengthAblation());
|
|
203
170
|
const pos = entry.outcome_positive ?? 0;
|
|
204
171
|
const neg = entry.outcome_negative ?? 0;
|
|
205
172
|
const outcomeLabel = pos === 0 && neg === 0
|
|
@@ -214,20 +181,11 @@ function cmdInspect(hippoRoot, id) {
|
|
|
214
181
|
console.log('-'.repeat(40));
|
|
215
182
|
console.log(entry.content);
|
|
216
183
|
}
|
|
217
|
-
/**
|
|
218
|
-
*
|
|
219
|
-
|
|
220
|
-
* the per-prompt hook skipped as unchanged and the tokens that saved,
|
|
221
|
-
* and the hook blocks' tokens later model calls re-read, counted when each session ends.
|
|
222
|
-
* Counts are estimates (characters / 4), the same estimate every budget uses.
|
|
223
|
-
*/
|
|
224
|
-
export function cmdTokens(hippoRoot, flags) {
|
|
184
|
+
/** `hippo tokens [--days <n>] [--json] [--global]`: the token ledger per surface, tokens saved by skipped unchanged blocks, and re-read hook tokens.
|
|
185
|
+
* Counts are estimates (characters / 4), the same estimate every budget uses. */
|
|
186
|
+
export function handleTokens({ hippoRoot, tenantId, flags }) {
|
|
225
187
|
const root = resolveAuthRoot(hippoRoot, flags);
|
|
226
|
-
const ctx =
|
|
227
|
-
hippoRoot: root,
|
|
228
|
-
tenantId: resolveTenantId({}),
|
|
229
|
-
actor: api.adminActor('cli'),
|
|
230
|
-
};
|
|
188
|
+
const ctx = cliApiContext(root, tenantId);
|
|
231
189
|
const days = parseCountFlag(flags['days']);
|
|
232
190
|
const summary = api.tokenSummary(ctx, { days: days > 0 ? days : undefined });
|
|
233
191
|
if (flags['json']) {
|
|
@@ -257,15 +215,11 @@ export function cmdTokens(hippoRoot, flags) {
|
|
|
257
215
|
console.log(" Re-reads usually bill at the provider's cached-input rate, a fraction of the full input price.");
|
|
258
216
|
}
|
|
259
217
|
/** `hippo failures [--days <n>] [--json] [--global]`: failed tool calls by outcome, and repeats across sessions. */
|
|
260
|
-
export function
|
|
218
|
+
export function handleFailures({ hippoRoot, tenantId, flags }) {
|
|
261
219
|
// The store the capture-error hook writes to; a report never creates one.
|
|
262
220
|
const root = flags['global'] ? getGlobalRoot() : hookStoreRoot(hippoRoot);
|
|
263
221
|
requireInit(root);
|
|
264
|
-
const ctx =
|
|
265
|
-
hippoRoot: root,
|
|
266
|
-
tenantId: resolveTenantId({}),
|
|
267
|
-
actor: api.adminActor('cli'),
|
|
268
|
-
};
|
|
222
|
+
const ctx = cliApiContext(root, tenantId);
|
|
269
223
|
const days = parseCountFlag(flags['days']);
|
|
270
224
|
const summary = api.failureSummary(ctx, { days: days > 0 ? days : undefined });
|
|
271
225
|
if (flags['json']) {
|
|
@@ -298,10 +252,9 @@ export function cmdFailures(hippoRoot, flags) {
|
|
|
298
252
|
console.log(`\n Repeats: ${summary.repeats} of ${summary.rated} errors first happened in another session.${unrated}`);
|
|
299
253
|
}
|
|
300
254
|
}
|
|
301
|
-
export function handleCorrectionLatency({ hippoRoot, flags }) {
|
|
255
|
+
export function handleCorrectionLatency({ hippoRoot, tenantId, flags }) {
|
|
302
256
|
requireInit(hippoRoot);
|
|
303
|
-
const
|
|
304
|
-
const report = buildCorrectionLatency(entries);
|
|
257
|
+
const report = correctionLatencyReport(cliApiContext(hippoRoot, tenantId));
|
|
305
258
|
if (flags['json']) {
|
|
306
259
|
console.log(JSON.stringify(report, null, 2));
|
|
307
260
|
}
|
|
@@ -314,11 +267,11 @@ export function handleCorrectionLatency({ hippoRoot, flags }) {
|
|
|
314
267
|
return 'n/a';
|
|
315
268
|
if (ms < 1000)
|
|
316
269
|
return `${ms}ms`;
|
|
317
|
-
if (ms <
|
|
270
|
+
if (ms < MINUTE_MS)
|
|
318
271
|
return `${(ms / 1000).toFixed(1)}s`;
|
|
319
|
-
if (ms <
|
|
320
|
-
return `${(ms /
|
|
321
|
-
return `${(ms /
|
|
272
|
+
if (ms < HOUR_MS)
|
|
273
|
+
return `${(ms / MINUTE_MS).toFixed(1)}m`;
|
|
274
|
+
return `${(ms / HOUR_MS).toFixed(1)}h`;
|
|
322
275
|
};
|
|
323
276
|
console.log(`Corrections: ${report.count} total (${report.extractionCount} extraction-driven, ${report.manualCount} manual)`);
|
|
324
277
|
console.log(`Latency p50: ${fmt(report.p50Ms)}, p95: ${fmt(report.p95Ms)}, max: ${fmt(report.maxMs)}`);
|
|
@@ -328,10 +281,9 @@ export function handleCorrectionLatency({ hippoRoot, flags }) {
|
|
|
328
281
|
}
|
|
329
282
|
}
|
|
330
283
|
}
|
|
331
|
-
export function handleProvenance({ hippoRoot, flags }) {
|
|
284
|
+
export function handleProvenance({ hippoRoot, tenantId, flags }) {
|
|
332
285
|
requireInit(hippoRoot);
|
|
333
|
-
const
|
|
334
|
-
const coverage = buildProvenanceCoverage(entries);
|
|
286
|
+
const coverage = provenanceCoverageReport(cliApiContext(hippoRoot, tenantId));
|
|
335
287
|
if (flags['json']) {
|
|
336
288
|
console.log(JSON.stringify(coverage, null, 2));
|
|
337
289
|
}
|
|
@@ -349,7 +301,7 @@ export function handleProvenance({ hippoRoot, flags }) {
|
|
|
349
301
|
}
|
|
350
302
|
}
|
|
351
303
|
if (flags['strict'] && coverage.coverage < 1) {
|
|
352
|
-
|
|
304
|
+
throw new CliExit(1);
|
|
353
305
|
}
|
|
354
306
|
}
|
|
355
307
|
export function handleDoctor({ flags }) {
|
|
@@ -358,13 +310,13 @@ export function handleDoctor({ flags }) {
|
|
|
358
310
|
const report = runDoctor({ version: pkg.version });
|
|
359
311
|
console.log(flags['json'] ? JSON.stringify(report, null, 2) : formatDoctor(report));
|
|
360
312
|
if (!report.ok)
|
|
361
|
-
|
|
313
|
+
throw new CliExit(1);
|
|
362
314
|
}
|
|
363
315
|
export function handleSupportBundle({ flags }) {
|
|
364
316
|
const outFlag = stringFlagOrExit(flags, 'out');
|
|
365
317
|
if (outFlag === '') {
|
|
366
318
|
printError('--out requires a file path.');
|
|
367
|
-
|
|
319
|
+
throw new CliExit(1);
|
|
368
320
|
}
|
|
369
321
|
const includeLogs = flagIsTrue(flags, 'include-logs');
|
|
370
322
|
const home = envHomeDir() || os.homedir();
|
|
@@ -383,20 +335,22 @@ export function handleSupportBundle({ flags }) {
|
|
|
383
335
|
else {
|
|
384
336
|
printError(errorMessage(err));
|
|
385
337
|
}
|
|
386
|
-
|
|
338
|
+
throw new CliExit(1);
|
|
387
339
|
}
|
|
388
340
|
const kb = Math.round(Buffer.byteLength(json) / 1024);
|
|
389
341
|
console.log(`Wrote ${file} (${kb} KB).`);
|
|
390
342
|
console.log(includeLogs
|
|
391
|
-
? `It holds versions, doctor checks, config with secrets removed, store counts, and the last ${TAIL_MAX_LINES} lines of
|
|
392
|
-
|
|
343
|
+
? `It holds versions, doctor checks, config with secrets removed, store counts, and the last ${TAIL_MAX_LINES} lines of ` +
|
|
344
|
+
'each hippo log with known secret shapes removed. Those log lines can quote memory text. Read it before you attach it to a ticket.'
|
|
345
|
+
: 'It holds versions, doctor checks, config with secrets removed, store counts and log file names. It never holds memory text. Read it before you ' +
|
|
346
|
+
'attach it to a ticket.');
|
|
393
347
|
}
|
|
394
|
-
export function handleInspect({ hippoRoot, args }) {
|
|
348
|
+
export async function handleInspect({ hippoRoot, tenantId, args }) {
|
|
395
349
|
const id = args[0];
|
|
396
350
|
if (!id) {
|
|
397
351
|
printError('Please provide a memory ID.');
|
|
398
|
-
|
|
352
|
+
throw new CliExit(1);
|
|
399
353
|
}
|
|
400
|
-
cmdInspect(hippoRoot, id);
|
|
354
|
+
await cmdInspect(hippoRoot, tenantId, id);
|
|
401
355
|
}
|
|
402
356
|
//# sourceMappingURL=status.js.map
|
package/dist/cli/stdin.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
/** `timedOut` means the window closed with stdin still open, so absent
|
|
2
|
-
*
|
|
3
|
-
* Treating absence as a manual run is only safe when it is false. */
|
|
1
|
+
/** `timedOut` means the window closed with stdin still open, so absent `text` is "unknown", not "none", and present `text` may be truncated;
|
|
2
|
+
* treating absence as a manual run is only safe when it is false. */
|
|
4
3
|
export interface BoundedStdin {
|
|
5
4
|
text?: string;
|
|
6
5
|
timedOut: boolean;
|
|
7
6
|
}
|
|
8
|
-
/** Never blocks: a TTY resolves at once, otherwise waits up to `waitMs` of
|
|
9
|
-
*
|
|
10
|
-
* so a slow but real write is not cut off, and capped at `waitMs * 10`. */
|
|
7
|
+
/** Never blocks: a TTY resolves at once, otherwise waits up to `waitMs` of idle (default 1000ms, or `HIPPO_STDIN_WAIT_MS`),
|
|
8
|
+
* refreshed on each chunk so a slow real write is not cut off, capped at `waitMs * 10`. */
|
|
11
9
|
export declare function readStdinBounded(waitMs?: number): Promise<BoundedStdin>;
|
|
12
10
|
/** A hook payload with Copilot's camelCase fields copied to the snake_case keys hippo reads. The camelCase keys stay,
|
|
13
11
|
* so the sessionStart reply can follow the sender's casing; text that needs no change comes back exactly as sent. */
|
package/dist/cli/stdin.js
CHANGED
|
@@ -4,9 +4,8 @@ const DEFAULT_STDIN_WAIT_MS = 1000;
|
|
|
4
4
|
function defaultWaitMs() {
|
|
5
5
|
return envStdinWaitMs() ?? DEFAULT_STDIN_WAIT_MS;
|
|
6
6
|
}
|
|
7
|
-
/** Never blocks: a TTY resolves at once, otherwise waits up to `waitMs` of
|
|
8
|
-
*
|
|
9
|
-
* so a slow but real write is not cut off, and capped at `waitMs * 10`. */
|
|
7
|
+
/** Never blocks: a TTY resolves at once, otherwise waits up to `waitMs` of idle (default 1000ms, or `HIPPO_STDIN_WAIT_MS`),
|
|
8
|
+
* refreshed on each chunk so a slow real write is not cut off, capped at `waitMs * 10`. */
|
|
10
9
|
export function readStdinBounded(waitMs = defaultWaitMs()) {
|
|
11
10
|
let stdin;
|
|
12
11
|
try {
|
package/dist/cli/transfer.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function handleWatch({ hippoRoot, args }: CommandContext): Promise<void>;
|
|
6
|
-
export declare function handlePromote({ hippoRoot, args }: CommandContext): Promise<void>;
|
|
7
|
-
export declare function handleShare({ hippoRoot, args, flags }: CommandContext): void
|
|
8
|
-
export declare function handlePeers({ flags }: CommandContext): void;
|
|
9
|
-
export declare function handleExport({ hippoRoot, args, flags }: CommandContext): void;
|
|
1
|
+
import { type CommandContext } from './flag-values.js';
|
|
2
|
+
export declare function handleLearn({ hippoRoot, tenantId, flags }: CommandContext): void;
|
|
3
|
+
export declare function handleImport({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
4
|
+
export declare function handleSync({ hippoRoot, flags }: CommandContext): void;
|
|
5
|
+
export declare function handleWatch({ hippoRoot, tenantId, args }: CommandContext): Promise<void>;
|
|
6
|
+
export declare function handlePromote({ hippoRoot, tenantId, args }: CommandContext): Promise<void>;
|
|
7
|
+
export declare function handleShare({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
8
|
+
export declare function handlePeers({ tenantId, flags }: CommandContext): void;
|
|
9
|
+
export declare function handleExport({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
10
10
|
//# sourceMappingURL=transfer.d.ts.map
|