hippo-memory 1.70.0 → 1.71.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 +1 -1
- package/dist/agent-memories/claude-code.d.ts +4 -2
- package/dist/agent-memories/claude-code.js +14 -5
- 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/report.js +2 -1
- package/dist/agent-memories/sync.d.ts +4 -2
- package/dist/agent-memories/sync.js +10 -5
- package/dist/api/assemble.d.ts +7 -44
- package/dist/api/assemble.js +2 -22
- package/dist/api/audit.d.ts +5 -1
- package/dist/api/audit.js +9 -1
- package/dist/api/auth.d.ts +13 -22
- package/dist/api/auth.js +34 -24
- package/dist/api/auto-sleep.js +2 -2
- package/dist/api/availability.d.ts +2 -15
- package/dist/api/availability.js +2 -15
- package/dist/api/context-select.js +3 -4
- package/dist/api/context-types.d.ts +10 -35
- package/dist/api/context.d.ts +5 -22
- package/dist/api/context.js +21 -38
- package/dist/api/dormant.d.ts +5 -21
- package/dist/api/dormant.js +7 -26
- package/dist/api/drill-down.d.ts +7 -46
- package/dist/api/drill-down.js +5 -26
- package/dist/api/forget.d.ts +5 -24
- package/dist/api/forget.js +5 -28
- package/dist/api/graph.d.ts +8 -0
- package/dist/api/graph.js +7 -0
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.js +2 -0
- package/dist/api/instruction-detect.js +16 -5
- package/dist/api/ledger-db.d.ts +2 -1
- package/dist/api/ledger-db.js +5 -3
- package/dist/api/memories.d.ts +5 -0
- package/dist/api/memories.js +7 -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/predictions.d.ts +9 -0
- package/dist/api/predictions.js +18 -0
- package/dist/api/promote.d.ts +13 -17
- package/dist/api/promote.js +11 -19
- package/dist/api/prompt-hook.d.ts +4 -4
- package/dist/api/prompt-hook.js +10 -9
- package/dist/api/recall-cli.d.ts +55 -0
- package/dist/api/recall-cli.js +94 -0
- package/dist/api/recall-core.js +14 -6
- 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 +16 -9
- package/dist/api/recall-types.d.ts +64 -304
- package/dist/api/recall.d.ts +5 -33
- package/dist/api/recall.js +59 -60
- 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 +18 -1
- package/dist/api/remember.js +13 -1
- package/dist/api/sleep-run.d.ts +1 -3
- package/dist/api/sleep-run.js +17 -21
- package/dist/api/sleep.d.ts +9 -28
- package/dist/api/tokens.d.ts +3 -10
- package/dist/api/tokens.js +3 -10
- package/dist/api/types.d.ts +6 -29
- package/dist/api/types.js +4 -22
- package/dist/capture/command.d.ts +4 -12
- package/dist/capture/command.js +6 -22
- package/dist/capture/compact.d.ts +4 -15
- package/dist/capture/compact.js +16 -25
- package/dist/capture/compaction-record.js +101 -69
- package/dist/capture/compaction-spool.d.ts +1 -1
- package/dist/capture/compaction-spool.js +1 -1
- package/dist/capture/session-digest.d.ts +1 -1
- package/dist/capture/session-digest.js +13 -7
- package/dist/capture/transcript.d.ts +2 -10
- package/dist/capture/transcript.js +4 -18
- package/dist/cli/api-context.d.ts +3 -0
- package/dist/cli/api-context.js +6 -0
- package/dist/cli/audit-prune.d.ts +6 -39
- package/dist/cli/audit-prune.js +6 -39
- package/dist/cli/audit.d.ts +1 -1
- package/dist/cli/audit.js +33 -34
- package/dist/cli/auth.d.ts +2 -2
- package/dist/cli/auth.js +57 -39
- package/dist/cli/briefs.d.ts +4 -4
- package/dist/cli/briefs.js +18 -22
- package/dist/cli/card.d.ts +2 -2
- package/dist/cli/card.js +31 -32
- package/dist/cli/client.d.ts +7 -27
- package/dist/cli/client.js +24 -43
- package/dist/cli/compact-resume-payload.js +3 -2
- package/dist/cli/context.d.ts +1 -2
- package/dist/cli/context.js +12 -8
- package/dist/cli/continuity.d.ts +6 -6
- package/dist/cli/continuity.js +62 -64
- package/dist/cli/correction-latency.d.ts +2 -14
- package/dist/cli/correction-latency.js +2 -14
- package/dist/cli/curate.d.ts +13 -17
- package/dist/cli/curate.js +68 -92
- package/dist/cli/dag.d.ts +4 -4
- package/dist/cli/dag.js +33 -27
- package/dist/cli/decisions.d.ts +4 -4
- package/dist/cli/decisions.js +33 -47
- package/dist/cli/eval.js +15 -13
- package/dist/cli/exit.d.ts +6 -0
- package/dist/cli/exit.js +11 -0
- package/dist/cli/explain.d.ts +1 -2
- package/dist/cli/explain.js +6 -4
- package/dist/cli/flag-values.d.ts +6 -1
- package/dist/cli/flag-values.js +27 -10
- package/dist/cli/flags.d.ts +1 -0
- package/dist/cli/flags.js +1 -1
- 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/hook-runtime.d.ts +9 -27
- package/dist/cli/hook-runtime.js +15 -31
- package/dist/cli/init.d.ts +2 -2
- package/dist/cli/init.js +6 -12
- package/dist/cli/install-steps.js +3 -12
- package/dist/cli/last-sleep.d.ts +2 -1
- package/dist/cli/last-sleep.js +3 -0
- package/dist/cli/maintenance.d.ts +4 -4
- package/dist/cli/maintenance.js +14 -19
- package/dist/cli/object-verbs.js +4 -3
- package/dist/cli/owner-validation.d.ts +5 -28
- package/dist/cli/owner-validation.js +5 -28
- package/dist/cli/playbooks.d.ts +4 -4
- package/dist/cli/playbooks.js +23 -28
- package/dist/cli/print.d.ts +2 -5
- package/dist/cli/print.js +1 -4
- package/dist/cli/projects.d.ts +2 -2
- package/dist/cli/projects.js +1 -3
- package/dist/cli/provenance-coverage.d.ts +2 -6
- package/dist/cli/provenance-coverage.js +2 -6
- package/dist/cli/quality-repair-once.js +2 -2
- package/dist/cli/recall.d.ts +2 -4
- package/dist/cli/recall.js +55 -131
- package/dist/cli/refine-llm.d.ts +5 -31
- package/dist/cli/refine-llm.js +9 -36
- package/dist/cli/remember.d.ts +3 -3
- package/dist/cli/remember.js +122 -180
- package/dist/cli/scheduler.d.ts +2 -17
- package/dist/cli/scheduler.js +12 -18
- package/dist/cli/serve.js +21 -12
- package/dist/cli/session-hooks.d.ts +10 -18
- package/dist/cli/session-hooks.js +112 -113
- package/dist/cli/setup.d.ts +4 -4
- package/dist/cli/setup.js +19 -21
- package/dist/cli/shared.d.ts +9 -23
- package/dist/cli/shared.js +9 -32
- package/dist/cli/slack.d.ts +2 -2
- package/dist/cli/slack.js +19 -23
- package/dist/cli/sleep.d.ts +3 -2
- package/dist/cli/sleep.js +15 -16
- package/dist/cli/status.d.ts +9 -12
- package/dist/cli/status.js +55 -98
- 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 +66 -89
- package/dist/cli/usage.js +11 -5
- package/dist/cli.d.ts +66 -448
- package/dist/cli.js +87 -263
- package/dist/connectors/github/backfill.d.ts +5 -25
- package/dist/connectors/github/backfill.js +14 -49
- 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 +12 -29
- package/dist/connectors/github/ingest.d.ts +2 -6
- package/dist/connectors/github/ingest.js +4 -10
- 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 +2 -16
- package/dist/connectors/github/webhook.js +6 -22
- 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 +2 -19
- package/dist/connectors/slack/ingest.d.ts +2 -3
- package/dist/connectors/slack/ingest.js +2 -3
- 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 +2 -19
- package/dist/connectors/slack/webhook.js +5 -26
- package/dist/connectors/slack/workspaces.d.ts +4 -24
- package/dist/connectors/slack/workspaces.js +4 -24
- package/dist/consolidate/conflicts.js +6 -14
- 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 +14 -75
- package/dist/consolidate/decay.js +7 -19
- package/dist/consolidate/dedupe.d.ts +6 -52
- package/dist/consolidate/dedupe.js +13 -71
- 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 +4 -21
- 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 +16 -104
- package/dist/consolidate/merge.js +10 -31
- package/dist/consolidate/merged-row.js +2 -1
- package/dist/consolidate/physics-pass.js +1 -3
- package/dist/consolidate/replay.d.ts +6 -38
- package/dist/consolidate/replay.js +14 -52
- package/dist/consolidate/run.js +1 -1
- package/dist/consolidate/sleep.d.ts +1 -8
- package/dist/consolidate/sleep.js +5 -17
- package/dist/consolidate/trace.d.ts +3 -18
- package/dist/consolidate/trace.js +3 -18
- package/dist/consolidate/traces.js +6 -22
- package/dist/core/ablation.d.ts +4 -91
- package/dist/core/ablation.js +4 -91
- package/dist/core/ambient.d.ts +1 -8
- package/dist/core/ambient.js +1 -8
- 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 +8 -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 +13 -14
- package/dist/core/handoff.d.ts +1 -7
- package/dist/core/handoff.js +1 -7
- package/dist/core/memory-quality.js +1 -1
- package/dist/core/memory.d.ts +41 -164
- package/dist/core/memory.js +51 -221
- 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 +59 -122
- package/dist/core/project-identity.d.ts +17 -58
- package/dist/core/project-identity.js +17 -38
- 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/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 +1 -1
- package/dist/db/busy.js +17 -8
- package/dist/db/connect.d.ts +1 -0
- package/dist/db/connect.js +3 -3
- package/dist/db/migrate.js +3 -3
- 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/open.d.ts +2 -0
- package/dist/db/open.js +17 -1
- package/dist/db/physics-state.d.ts +6 -22
- package/dist/db/physics-state.js +25 -36
- package/dist/db/raw-archive-mirror-cleanup.d.ts +2 -17
- package/dist/db/raw-archive-mirror-cleanup.js +2 -17
- package/dist/db/vector-store.d.ts +2 -0
- package/dist/db/vector-store.js +8 -1
- package/dist/doctor.js +74 -19
- package/dist/entry/session-text.js +2 -1
- 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 +74 -34
- package/dist/eval/eval.d.ts +6 -24
- package/dist/eval/eval.js +7 -34
- package/dist/eval/judgment.d.ts +0 -3
- package/dist/eval/judgment.js +19 -11
- package/dist/extensions/openclaw-plugin/index.js +1 -1
- package/dist/graph/extract.d.ts +5 -27
- package/dist/graph/extract.js +7 -33
- package/dist/graph/recall.d.ts +7 -20
- package/dist/graph/recall.js +14 -76
- 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 +11 -39
- package/dist/hooks/codex-wrapper.js +2 -2
- 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 +18 -57
- package/dist/hooks/opencode.d.ts +0 -38
- package/dist/hooks/opencode.js +9 -76
- package/dist/hooks/shared.d.ts +8 -17
- package/dist/hooks/shared.js +29 -20
- package/dist/importers/core.d.ts +12 -37
- package/dist/importers/core.js +9 -27
- 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 +7 -35
- package/dist/importers/vault.d.ts +2 -8
- package/dist/importers/vault.js +25 -81
- package/dist/index.d.ts +6 -2
- package/dist/index.js +6 -2
- package/dist/learn/autolearn.d.ts +14 -41
- package/dist/learn/autolearn.js +14 -41
- package/dist/learn/extract.js +2 -4
- package/dist/learn/forward-claim-detector.d.ts +6 -30
- package/dist/learn/forward-claim-detector.js +14 -66
- package/dist/learn/invalidation.d.ts +6 -18
- package/dist/learn/invalidation.js +9 -26
- package/dist/mcp/admin-tools.js +3 -5
- package/dist/mcp/memory-tools.js +4 -9
- package/dist/mcp/protocol.d.ts +8 -26
- package/dist/mcp/protocol.js +3 -6
- package/dist/mcp/recall-tools.js +3 -3
- package/dist/mcp/request.d.ts +3 -11
- package/dist/mcp/request.js +10 -26
- 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 +48 -12
- package/dist/mcp/tools.js +5 -3
- package/dist/objects/customer-notes.d.ts +7 -42
- package/dist/objects/customer-notes.js +7 -48
- package/dist/objects/decisions.d.ts +12 -50
- package/dist/objects/decisions.js +15 -53
- package/dist/objects/incidents.d.ts +7 -38
- package/dist/objects/incidents.js +7 -41
- package/dist/objects/policies.d.ts +11 -89
- package/dist/objects/policies.js +11 -98
- package/dist/objects/processes.d.ts +7 -52
- package/dist/objects/processes.js +7 -61
- package/dist/objects/project-briefs.d.ts +11 -55
- package/dist/objects/project-briefs.js +14 -75
- package/dist/objects/skills.d.ts +7 -42
- package/dist/objects/skills.js +8 -54
- package/dist/postinstall.js +6 -19
- package/dist/predictions/planning-fallacy.d.ts +11 -34
- package/dist/rerankers/clef.js +3 -31
- package/dist/rerankers/cross-encoder.js +4 -6
- package/dist/rerankers/jev.js +9 -6
- package/dist/rerankers/llm.d.ts +2 -11
- package/dist/rerankers/llm.js +14 -14
- package/dist/rerankers/outage-warning.d.ts +2 -1
- package/dist/rerankers/outage-warning.js +2 -1
- 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/boosts.d.ts +0 -2
- package/dist/search/boosts.js +2 -2
- package/dist/search/goal-boost.d.ts +23 -0
- package/dist/search/goal-boost.js +90 -0
- package/dist/search/hybrid.d.ts +2 -0
- 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.js +11 -8
- package/dist/search/rrf.d.ts +7 -35
- package/dist/search/rrf.js +5 -30
- package/dist/search/vector.d.ts +7 -0
- package/dist/search/vector.js +35 -5
- package/dist/server/auth.d.ts +9 -28
- package/dist/server/auth.js +32 -25
- package/dist/server/boot.d.ts +2 -21
- package/dist/server/boot.js +63 -96
- package/dist/server/client-ip.d.ts +3 -19
- package/dist/server/client-ip.js +5 -28
- package/dist/server/defaults.d.ts +3 -0
- package/dist/server/defaults.js +4 -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 +10 -44
- 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 +9 -17
- package/dist/server/route-table.js +42 -49
- package/dist/server/routes/admin.js +22 -28
- package/dist/server/routes/customer-notes.js +7 -12
- package/dist/server/routes/decisions.js +10 -17
- package/dist/server/routes/incidents.js +12 -20
- package/dist/server/routes/memories.js +12 -32
- package/dist/server/routes/object-routes.d.ts +0 -5
- package/dist/server/routes/object-routes.js +7 -15
- package/dist/server/routes/policies.js +10 -18
- package/dist/server/routes/predictions.js +13 -25
- package/dist/server/routes/processes.js +16 -26
- package/dist/server/routes/project-briefs.js +9 -16
- package/dist/server/routes/recall.js +10 -35
- package/dist/server/routes/skills.js +8 -18
- package/dist/server/server-detect.d.ts +9 -53
- package/dist/server/server-detect.js +24 -90
- package/dist/server/sleep-offload.js +4 -1
- package/dist/server/types.d.ts +12 -10
- package/dist/server/validation.d.ts +3 -1
- package/dist/server/validation.js +10 -23
- package/dist/server.d.ts +2 -2
- package/dist/server.js +3 -2
- 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 +80 -0
- package/dist/sharing/project-merge.d.ts +4 -5
- package/dist/sharing/project-merge.js +9 -7
- package/dist/sharing/scope.d.ts +4 -11
- package/dist/sharing/scope.js +4 -11
- package/dist/sharing/search-both.d.ts +60 -0
- package/dist/sharing/search-both.js +138 -0
- package/dist/sharing/share.d.ts +38 -0
- package/dist/sharing/share.js +226 -0
- package/dist/store/ambient.js +4 -9
- package/dist/store/audit-event.d.ts +4 -12
- package/dist/store/audit-event.js +4 -12
- package/dist/store/audit.d.ts +2 -5
- package/dist/store/audit.js +4 -12
- package/dist/store/auth.d.ts +6 -6
- package/dist/store/auth.js +10 -9
- package/dist/store/candidates.d.ts +20 -3
- package/dist/store/candidates.js +77 -48
- 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/conflicts.d.ts +4 -21
- package/dist/store/conflicts.js +71 -150
- package/dist/store/connectors/github.d.ts +10 -10
- package/dist/store/connectors/github.js +10 -10
- package/dist/store/dashboard-reads.js +4 -8
- package/dist/store/delete-and-batch.d.ts +11 -31
- package/dist/store/delete-and-batch.js +48 -64
- package/dist/store/delivery-recorder.d.ts +8 -4
- package/dist/store/delivery-recorder.js +25 -15
- package/dist/store/diagnostics.js +6 -13
- package/dist/store/dormant.d.ts +7 -29
- package/dist/store/dormant.js +15 -56
- package/dist/store/embeddings/index.d.ts +11 -80
- package/dist/store/embeddings/index.js +71 -207
- package/dist/store/embeddings/local.js +15 -32
- package/dist/store/embeddings/provider.d.ts +16 -53
- package/dist/store/embeddings/provider.js +41 -69
- package/dist/store/entry-reads.d.ts +21 -57
- package/dist/store/entry-reads.js +65 -126
- package/dist/store/entry-row.d.ts +6 -35
- package/dist/store/entry-row.js +9 -37
- package/dist/store/entry-writes.d.ts +10 -16
- package/dist/store/entry-writes.js +17 -35
- package/dist/store/goals.d.ts +3 -40
- package/dist/store/goals.js +21 -160
- 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 +20 -58
- 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 +6 -31
- package/dist/store/graph-writes.js +13 -37
- package/dist/store/half-life.d.ts +2 -1
- package/dist/store/half-life.js +14 -16
- package/dist/store/handoffs.d.ts +5 -11
- package/dist/store/handoffs.js +16 -34
- package/dist/store/index-and-stats.d.ts +6 -19
- package/dist/store/index-and-stats.js +34 -82
- package/dist/store/markdown.d.ts +2 -6
- package/dist/store/markdown.js +21 -20
- package/dist/store/mirrors.d.ts +2 -6
- package/dist/store/mirrors.js +14 -23
- package/dist/store/open.js +6 -13
- 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 +82 -79
- package/dist/store/predictions.d.ts +11 -51
- package/dist/store/predictions.js +38 -119
- package/dist/{cli → store}/quality-repair.js +15 -31
- package/dist/store/raw-archive.d.ts +4 -16
- package/dist/store/raw-archive.js +14 -29
- package/dist/store/recall-scope.d.ts +19 -79
- package/dist/store/recall-scope.js +21 -82
- package/dist/store/recall-trace.d.ts +10 -77
- package/dist/store/recall-trace.js +19 -95
- package/dist/store/rejected-values.js +7 -19
- package/dist/store/rejection.d.ts +12 -58
- package/dist/store/rejection.js +13 -65
- 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 +5 -0
- package/dist/store/rule-sql.js +37 -0
- package/dist/store/search-rows.d.ts +7 -38
- package/dist/store/search-rows.js +14 -50
- package/dist/store/sessions.d.ts +10 -47
- package/dist/store/sessions.js +17 -73
- package/dist/store/sqlite/connector-events-group.js +2 -2
- package/dist/store/sqlite/entry-writes-group.js +2 -2
- package/dist/store/sqlite/error-codec.js +4 -2
- package/dist/store/sqlite/executor.d.ts +2 -1
- package/dist/store/sqlite/executor.js +2 -1
- package/dist/store/sqlite/local.d.ts +3 -3
- package/dist/store/sqlite/local.js +1 -0
- package/dist/store/sqlite/object-rows.js +6 -3
- package/dist/store/sqlite/objects-group.js +4 -2
- package/dist/store/sqlite/quarantine-group.js +2 -2
- package/dist/store/sqlite/store.d.ts +1 -4
- package/dist/store/sqlite/store.js +2 -3
- 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 +10 -62
- package/dist/store/summaries.js +34 -146
- 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 -43
- package/dist/store/token-ledger.js +19 -50
- package/dist/store/usage-reports.js +5 -13
- package/dist/store/vector-index.d.ts +46 -0
- package/dist/store/vector-index.js +170 -0
- package/dist/store/working-memory.d.ts +6 -25
- package/dist/store/working-memory.js +18 -52
- package/dist/store/yaml.d.ts +1 -5
- package/dist/store/yaml.js +2 -6
- package/dist/support-bundle.js +7 -5
- package/dist/trust/reject-flow.js +1 -3
- package/dist/util/anthropic-messages.js +14 -2
- 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/crash-handlers.d.ts +8 -1
- package/dist/util/crash-handlers.js +52 -10
- package/dist/util/env.d.ts +13 -6
- package/dist/util/env.js +14 -7
- package/dist/util/home-path.d.ts +2 -1
- package/dist/util/home-path.js +4 -2
- package/dist/util/http-retry.d.ts +3 -1
- package/dist/util/http-retry.js +26 -5
- package/dist/util/log.d.ts +3 -2
- package/dist/util/log.js +25 -9
- package/dist/util/request-scope.d.ts +2 -1
- package/dist/util/request-scope.js +2 -1
- package/dist/util/secret-detect.d.ts +5 -30
- package/dist/util/secret-detect.js +13 -39
- package/dist/util/stored-json.d.ts +1 -1
- package/dist/util/stored-json.js +1 -1
- 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/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 +1 -1
- package/dist/connectors/github/cli-impl.d.ts +0 -25
- package/dist/sharing/shared.d.ts +0 -187
- package/dist/sharing/shared.js +0 -563
- package/dist/store/vector-writes.d.ts +0 -13
- package/dist/store/vector-writes.js +0 -89
- /package/dist/{cli → store}/quality-repair.d.ts +0 -0
package/dist/cli/context.js
CHANGED
|
@@ -5,8 +5,11 @@ import { autoDetectContext } from '../api/context-auto.js';
|
|
|
5
5
|
import { detectScope } from '../sharing/scope.js';
|
|
6
6
|
import { bookLedgerTurn } from '../api/ledger-db.js';
|
|
7
7
|
import { readHookStdin } from './stdin.js';
|
|
8
|
+
import { isJsonObject, isJsonString } from '../util/json.js';
|
|
8
9
|
import * as api from '../api/index.js';
|
|
10
|
+
import { DEFAULT_CONTEXT_BUDGET } from '../api/context.js';
|
|
9
11
|
import { resolveTenantId } from '../store/tenant.js';
|
|
12
|
+
import { cliApiContext } from './api-context.js';
|
|
10
13
|
import { renderAmbientSummary } from '../core/ambient.js';
|
|
11
14
|
import { contextBlockLines, contextCost, crossProjectLines, settleTokens } from '../api/context-render.js';
|
|
12
15
|
import { additionalContextOutput, flushDeliveryRecorder, hasContextData, sessionStartEnvelope, toRenderItems, } from '../api/prompt-hook.js';
|
|
@@ -14,8 +17,8 @@ import { parseLimitFlag, parseCountFlag, parseBudgetFlag, flagIsTrue } from './f
|
|
|
14
17
|
import { requireInit } from './shared.js';
|
|
15
18
|
import { printActiveTaskSnapshot, printSessionEvents, printHandoff, captureConsole } from './print.js';
|
|
16
19
|
import { hostSessionId, hookStoreRoot, hookRuntime, payloadCwdRoot, runHookWithStores, inPilotHoldout, startDeliveryRecorder } from './hook-runtime.js';
|
|
17
|
-
|
|
18
|
-
const rec = flagIsTrue(flags, 'pinned-only') ?
|
|
20
|
+
async function cmdContext(hippoRoot, args, flags, stdinText) {
|
|
21
|
+
const rec = startDeliveryRecorder(hippoRoot, stdinText, hookRuntime(flags), flagIsTrue(flags, 'pinned-only') ? undefined : 'context');
|
|
19
22
|
// No try/finally: a render throw keeps its own exit code and writes no event.
|
|
20
23
|
await renderContext(hippoRoot, args, flags, stdinText, rec);
|
|
21
24
|
flushDeliveryRecorder(rec);
|
|
@@ -26,11 +29,12 @@ function readHookPayload(stdinText) {
|
|
|
26
29
|
let prompt;
|
|
27
30
|
if (stdinText && stdinText.trim() !== '') {
|
|
28
31
|
try {
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
+
const payload = JSON.parse(stdinText.trim());
|
|
33
|
+
const sid = isJsonObject(payload) ? payload['session_id'] : undefined;
|
|
34
|
+
const raw = isJsonObject(payload) ? payload['prompt'] : undefined;
|
|
35
|
+
if (isJsonString(sid) && sid.trim() !== '')
|
|
32
36
|
sessionId = sid;
|
|
33
|
-
if (
|
|
37
|
+
if (isJsonString(raw))
|
|
34
38
|
prompt = raw;
|
|
35
39
|
}
|
|
36
40
|
catch {
|
|
@@ -54,14 +58,14 @@ async function renderContext(hippoRoot, args, flags, stdinText, rec) {
|
|
|
54
58
|
rec?.disabled();
|
|
55
59
|
return;
|
|
56
60
|
}
|
|
57
|
-
const budget = parseBudgetFlag(flags['budget'],
|
|
61
|
+
const budget = parseBudgetFlag(flags['budget'], DEFAULT_CONTEXT_BUDGET);
|
|
58
62
|
if (budget <= 0) {
|
|
59
63
|
rec?.disabled();
|
|
60
64
|
return;
|
|
61
65
|
}
|
|
62
66
|
// --auto shells out to git, so it stays CLI-side; api.getContext stays host-agnostic and falls back to '*'.
|
|
63
67
|
const query = contextQuery(args, flags);
|
|
64
|
-
const ctx =
|
|
68
|
+
const ctx = cliApiContext(hippoRoot, resolvedTenant);
|
|
65
69
|
const format = String(flags['format'] ?? 'markdown');
|
|
66
70
|
const framing = String(flags['framing'] ?? 'observe');
|
|
67
71
|
const opts = buildContextOpts(flags, { query, budget, pinnedOnly, format, framing, session, rec });
|
package/dist/cli/continuity.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
1
|
+
import { type CommandContext } from './flag-values.js';
|
|
2
|
+
export declare function handleSnapshot({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
3
|
+
export declare function handleSession({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
4
|
+
export declare function handleHandoff({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
5
|
+
export declare function handleCurrent({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
6
|
+
export declare function handleWm({ hippoRoot, args, flags }: CommandContext): void;
|
|
7
7
|
//# sourceMappingURL=continuity.d.ts.map
|
package/dist/cli/continuity.js
CHANGED
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
import { saveActiveTaskSnapshot, loadActiveTaskSnapshot, clearActiveTaskSnapshot, appendSessionEvent, listSessionEvents, } from '../store/sessions.js';
|
|
3
3
|
import { saveSessionHandoff, loadLatestHandoff, loadHandoffById, stampHandoffOutcome } from '../store/handoffs.js';
|
|
4
4
|
import { isHandoffOutcome, formatHandoffEvidenceLine } from '../core/handoff.js';
|
|
5
|
-
import { resolveTenantId } from '../store/tenant.js';
|
|
6
5
|
import { wmPush, wmRead, wmClear, wmFlush } from '../store/working-memory.js';
|
|
7
6
|
import { collectHandoffEvidence } from '../capture/handoff-evidence.js';
|
|
8
7
|
import { printError } from './output.js';
|
|
9
8
|
import { requireInit } from './shared.js';
|
|
10
9
|
import { printActiveTaskSnapshot, printSessionEvents, printHandoff } from './print.js';
|
|
11
|
-
import { boolFlag } from './flag-values.js';
|
|
10
|
+
import { boolFlag, isStringFlag } from './flag-values.js';
|
|
11
|
+
import { CliExit } from './exit.js';
|
|
12
12
|
const ISO_DATETIME_CHARS = 19;
|
|
13
|
-
function snapshotSave(hippoRoot, flags) {
|
|
13
|
+
function snapshotSave(hippoRoot, tenantId, flags) {
|
|
14
14
|
const task = String(flags['task'] ?? '').trim();
|
|
15
15
|
const summary = String(flags['summary'] ?? '').trim();
|
|
16
16
|
const nextStep = String(flags['next-step'] ?? '').trim();
|
|
17
17
|
const sessionId = String(flags['session'] ?? flags['id'] ?? '').trim();
|
|
18
18
|
if (!task || !summary || !nextStep) {
|
|
19
19
|
printError('Usage: hippo snapshot save --task <task> --summary <summary> --next-step <step> [--source <source>] [--session <session-id>]');
|
|
20
|
-
|
|
20
|
+
throw new CliExit(1);
|
|
21
21
|
}
|
|
22
|
-
const snapshot = saveActiveTaskSnapshot(hippoRoot,
|
|
22
|
+
const snapshot = saveActiveTaskSnapshot(hippoRoot, tenantId, {
|
|
23
23
|
task,
|
|
24
24
|
summary,
|
|
25
25
|
next_step: nextStep,
|
|
@@ -33,16 +33,16 @@ function snapshotSave(hippoRoot, flags) {
|
|
|
33
33
|
console.log(` Session: ${snapshot.session_id}`);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
function snapshotClear(hippoRoot, flags) {
|
|
37
|
-
const cleared = clearActiveTaskSnapshot(hippoRoot,
|
|
36
|
+
function snapshotClear(hippoRoot, tenantId, flags) {
|
|
37
|
+
const cleared = clearActiveTaskSnapshot(hippoRoot, tenantId, String(flags['status'] ?? 'cleared'));
|
|
38
38
|
if (!cleared) {
|
|
39
39
|
console.log('No active task snapshot to clear.');
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
42
|
console.log('Cleared active task snapshot.');
|
|
43
43
|
}
|
|
44
|
-
function snapshotShow(hippoRoot, flags) {
|
|
45
|
-
const snapshot = loadActiveTaskSnapshot(hippoRoot,
|
|
44
|
+
function snapshotShow(hippoRoot, tenantId, flags) {
|
|
45
|
+
const snapshot = loadActiveTaskSnapshot(hippoRoot, tenantId);
|
|
46
46
|
if (!snapshot) {
|
|
47
47
|
if (flags['json']) {
|
|
48
48
|
console.log(JSON.stringify({ snapshot: null }));
|
|
@@ -58,26 +58,26 @@ function snapshotShow(hippoRoot, flags) {
|
|
|
58
58
|
}
|
|
59
59
|
printActiveTaskSnapshot(snapshot);
|
|
60
60
|
}
|
|
61
|
-
export function
|
|
61
|
+
export function handleSnapshot({ hippoRoot, tenantId, args, flags }) {
|
|
62
62
|
requireInit(hippoRoot);
|
|
63
63
|
const subcommand = args[0] ?? 'show';
|
|
64
64
|
if (subcommand === 'save')
|
|
65
|
-
return snapshotSave(hippoRoot, flags);
|
|
65
|
+
return snapshotSave(hippoRoot, tenantId, flags);
|
|
66
66
|
if (subcommand === 'clear')
|
|
67
|
-
return snapshotClear(hippoRoot, flags);
|
|
67
|
+
return snapshotClear(hippoRoot, tenantId, flags);
|
|
68
68
|
if (subcommand === 'show')
|
|
69
|
-
return snapshotShow(hippoRoot, flags);
|
|
69
|
+
return snapshotShow(hippoRoot, tenantId, flags);
|
|
70
70
|
printError('Usage: hippo snapshot <save|show|clear>');
|
|
71
|
-
|
|
71
|
+
throw new CliExit(1);
|
|
72
72
|
}
|
|
73
|
-
function sessionLog(hippoRoot, s, flags) {
|
|
73
|
+
function sessionLog(hippoRoot, tenantId, s, flags) {
|
|
74
74
|
const eventType = String(flags['type'] ?? 'note').trim();
|
|
75
75
|
const content = String(flags['content'] ?? '').trim();
|
|
76
76
|
if (!s.sessionId || !content) {
|
|
77
77
|
printError('Usage: hippo session log --id <session-id> --content <text> [--type <type>] [--task <task>] [--source <source>]');
|
|
78
|
-
|
|
78
|
+
throw new CliExit(1);
|
|
79
79
|
}
|
|
80
|
-
const event = appendSessionEvent(hippoRoot,
|
|
80
|
+
const event = appendSessionEvent(hippoRoot, tenantId, {
|
|
81
81
|
session_id: s.sessionId,
|
|
82
82
|
task: s.task || null,
|
|
83
83
|
event_type: eventType || 'note',
|
|
@@ -88,8 +88,8 @@ function sessionLog(hippoRoot, s, flags) {
|
|
|
88
88
|
console.log(` Session: ${event.session_id}`);
|
|
89
89
|
console.log(` Type: ${event.event_type}`);
|
|
90
90
|
}
|
|
91
|
-
function sessionShow(hippoRoot, s, flags) {
|
|
92
|
-
const events = listSessionEvents(hippoRoot,
|
|
91
|
+
function sessionShow(hippoRoot, tenantId, s, flags) {
|
|
92
|
+
const events = listSessionEvents(hippoRoot, tenantId, {
|
|
93
93
|
session_id: s.sessionId || undefined,
|
|
94
94
|
task: s.task || undefined,
|
|
95
95
|
limit: s.limit,
|
|
@@ -100,9 +100,9 @@ function sessionShow(hippoRoot, s, flags) {
|
|
|
100
100
|
}
|
|
101
101
|
printSessionEvents(events);
|
|
102
102
|
}
|
|
103
|
-
function sessionLatest(hippoRoot, s, flags) {
|
|
104
|
-
const snapshot = loadActiveTaskSnapshot(hippoRoot,
|
|
105
|
-
const events = listSessionEvents(hippoRoot,
|
|
103
|
+
function sessionLatest(hippoRoot, tenantId, s, flags) {
|
|
104
|
+
const snapshot = loadActiveTaskSnapshot(hippoRoot, tenantId);
|
|
105
|
+
const events = listSessionEvents(hippoRoot, tenantId, {
|
|
106
106
|
session_id: s.sessionId || snapshot?.session_id || undefined,
|
|
107
107
|
limit: s.limit,
|
|
108
108
|
});
|
|
@@ -119,23 +119,23 @@ function sessionLatest(hippoRoot, s, flags) {
|
|
|
119
119
|
}
|
|
120
120
|
printSessionEvents(events);
|
|
121
121
|
}
|
|
122
|
-
function sessionComplete(hippoRoot, s, flags) {
|
|
122
|
+
function sessionComplete(hippoRoot, tenantId, s, flags) {
|
|
123
123
|
const { sessionId, task } = s;
|
|
124
124
|
const outcomeRaw = String(flags['outcome'] ?? '').trim();
|
|
125
125
|
const summary = String(flags['summary'] ?? '').trim();
|
|
126
126
|
if (!sessionId) {
|
|
127
127
|
printError('Usage: hippo session complete --session <session-id> --outcome <success|failure|partial> [--summary "..."]');
|
|
128
|
-
|
|
128
|
+
throw new CliExit(1);
|
|
129
129
|
}
|
|
130
130
|
if (!isHandoffOutcome(outcomeRaw)) {
|
|
131
131
|
printError(`Invalid outcome: "${outcomeRaw}". Must be one of: success, failure, partial.`);
|
|
132
|
-
|
|
132
|
+
throw new CliExit(1);
|
|
133
133
|
}
|
|
134
134
|
const outcome = outcomeRaw;
|
|
135
135
|
const metadata = { ended_at: new Date().toISOString() };
|
|
136
136
|
if (summary)
|
|
137
137
|
metadata.summary = summary;
|
|
138
|
-
const event = appendSessionEvent(hippoRoot,
|
|
138
|
+
const event = appendSessionEvent(hippoRoot, tenantId, {
|
|
139
139
|
session_id: sessionId,
|
|
140
140
|
task: task || null,
|
|
141
141
|
event_type: 'session_complete',
|
|
@@ -144,12 +144,12 @@ function sessionComplete(hippoRoot, s, flags) {
|
|
|
144
144
|
metadata,
|
|
145
145
|
});
|
|
146
146
|
console.log(`Completed session ${event.session_id} with outcome=${outcome} (event #${event.id})`);
|
|
147
|
-
const stamped = stampHandoffOutcome(hippoRoot,
|
|
147
|
+
const stamped = stampHandoffOutcome(hippoRoot, tenantId, sessionId, outcome);
|
|
148
148
|
if (stamped > 0) {
|
|
149
149
|
console.log(`Stamped outcome on handoff for session ${sessionId}`);
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
-
export function
|
|
152
|
+
export function handleSession({ hippoRoot, tenantId, args, flags }) {
|
|
153
153
|
requireInit(hippoRoot);
|
|
154
154
|
const subcommand = args[0] ?? 'show';
|
|
155
155
|
const sessionId = String(flags['id'] ?? flags['session'] ?? '').trim();
|
|
@@ -157,20 +157,20 @@ export function cmdSession(hippoRoot, args, flags) {
|
|
|
157
157
|
const limit = Math.max(1, parseInt(String(flags['limit'] ?? '8'), 10) || 8);
|
|
158
158
|
const s = { sessionId, task, limit };
|
|
159
159
|
if (subcommand === 'log')
|
|
160
|
-
return sessionLog(hippoRoot, s, flags);
|
|
160
|
+
return sessionLog(hippoRoot, tenantId, s, flags);
|
|
161
161
|
if (subcommand === 'show')
|
|
162
|
-
return sessionShow(hippoRoot, s, flags);
|
|
162
|
+
return sessionShow(hippoRoot, tenantId, s, flags);
|
|
163
163
|
if (subcommand === 'latest')
|
|
164
|
-
return sessionLatest(hippoRoot, s, flags);
|
|
164
|
+
return sessionLatest(hippoRoot, tenantId, s, flags);
|
|
165
165
|
if (subcommand === 'complete')
|
|
166
|
-
return sessionComplete(hippoRoot, s, flags);
|
|
166
|
+
return sessionComplete(hippoRoot, tenantId, s, flags);
|
|
167
167
|
if (subcommand === 'resume')
|
|
168
|
-
return sessionResume(hippoRoot, sessionId);
|
|
168
|
+
return sessionResume(hippoRoot, tenantId, sessionId);
|
|
169
169
|
printError('Usage: hippo session <log|show|latest|resume|complete>');
|
|
170
|
-
|
|
170
|
+
throw new CliExit(1);
|
|
171
171
|
}
|
|
172
|
-
function sessionResume(hippoRoot, sessionId) {
|
|
173
|
-
const handoff = loadLatestHandoff(hippoRoot,
|
|
172
|
+
function sessionResume(hippoRoot, tenantId, sessionId) {
|
|
173
|
+
const handoff = loadLatestHandoff(hippoRoot, tenantId, sessionId || undefined);
|
|
174
174
|
if (!handoff) {
|
|
175
175
|
console.log('No handoff to resume from.');
|
|
176
176
|
return;
|
|
@@ -215,18 +215,18 @@ function sessionResume(hippoRoot, sessionId) {
|
|
|
215
215
|
}
|
|
216
216
|
/** A repeatable flag as a list: absent is empty, one value is a singleton. */
|
|
217
217
|
function flagList(value) {
|
|
218
|
-
return Array.isArray(value) ? value : (
|
|
218
|
+
return Array.isArray(value) ? value : (isStringFlag(value) ? [value] : []);
|
|
219
219
|
}
|
|
220
|
-
function handoffCreate(hippoRoot, flags) {
|
|
220
|
+
function handoffCreate(hippoRoot, tenantId, flags) {
|
|
221
221
|
const summary = String(flags['summary'] ?? '').trim();
|
|
222
222
|
if (!summary) {
|
|
223
223
|
printError('Usage: hippo handoff create --summary "..." [--next "..."] [--session <id>] [--task <id>] [--artifact <path>...] [--constraint <text>...] [--outcome <success|failure|partial>] [--target-runtime <name>] [--card-id <id>] [--tests <pass|fail|unknown>]');
|
|
224
|
-
|
|
224
|
+
throw new CliExit(1);
|
|
225
225
|
}
|
|
226
226
|
const outcomeRaw = flags['outcome'];
|
|
227
227
|
if (outcomeRaw !== undefined && !isHandoffOutcome(outcomeRaw)) {
|
|
228
228
|
printError(`Invalid outcome: "${String(outcomeRaw)}". Must be one of: success, failure, partial.`);
|
|
229
|
-
|
|
229
|
+
throw new CliExit(1);
|
|
230
230
|
}
|
|
231
231
|
const sessionId = String(flags['session'] ?? flags['id'] ?? '').trim() || `fallback-${Date.now()}-${process.pid}`;
|
|
232
232
|
const nextAction = String(flags['next'] ?? '').trim() || undefined;
|
|
@@ -237,14 +237,14 @@ function handoffCreate(hippoRoot, flags) {
|
|
|
237
237
|
// parseArgs turns a value-less flag into `true`; refuse rather than store "true".
|
|
238
238
|
if (flags[name] === true) {
|
|
239
239
|
printError(`--${name} needs a value`);
|
|
240
|
-
|
|
240
|
+
throw new CliExit(1);
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
243
|
const targetRuntime = String(flags['target-runtime'] ?? '').trim() || undefined;
|
|
244
244
|
const cardId = String(flags['card-id'] ?? '').trim() || undefined;
|
|
245
245
|
const testStatus = String(flags['tests'] ?? '').trim();
|
|
246
246
|
const evidence = collectHandoffEvidence(process.cwd(), testStatus === 'pass' || testStatus === 'fail' ? testStatus : 'unknown');
|
|
247
|
-
const handoff = saveSessionHandoff(hippoRoot,
|
|
247
|
+
const handoff = saveSessionHandoff(hippoRoot, tenantId, {
|
|
248
248
|
version: 1,
|
|
249
249
|
sessionId,
|
|
250
250
|
repoRoot: process.cwd(),
|
|
@@ -281,9 +281,9 @@ function printCreatedHandoff(handoff) {
|
|
|
281
281
|
if (handoff.evidence)
|
|
282
282
|
console.log(` Evidence: ${formatHandoffEvidenceLine(handoff.evidence)}`);
|
|
283
283
|
}
|
|
284
|
-
function handoffLatest(hippoRoot, flags) {
|
|
284
|
+
function handoffLatest(hippoRoot, tenantId, flags) {
|
|
285
285
|
const sessionId = String(flags['session'] ?? flags['id'] ?? '').trim() || undefined;
|
|
286
|
-
const handoff = loadLatestHandoff(hippoRoot,
|
|
286
|
+
const handoff = loadLatestHandoff(hippoRoot, tenantId, sessionId);
|
|
287
287
|
if (!handoff) {
|
|
288
288
|
if (flags['json']) {
|
|
289
289
|
console.log(JSON.stringify({ handoff: null }));
|
|
@@ -299,18 +299,18 @@ function handoffLatest(hippoRoot, flags) {
|
|
|
299
299
|
}
|
|
300
300
|
printHandoff(handoff);
|
|
301
301
|
}
|
|
302
|
-
function handoffShow(hippoRoot, args, flags) {
|
|
302
|
+
function handoffShow(hippoRoot, tenantId, args, flags) {
|
|
303
303
|
const idArg = args[1];
|
|
304
304
|
if (!idArg) {
|
|
305
305
|
printError('Usage: hippo handoff show <id> [--json]');
|
|
306
|
-
|
|
306
|
+
throw new CliExit(1);
|
|
307
307
|
}
|
|
308
308
|
const handoffId = parseInt(idArg, 10);
|
|
309
309
|
if (!Number.isFinite(handoffId) || handoffId <= 0) {
|
|
310
310
|
printError(`Invalid handoff ID: ${idArg}`);
|
|
311
|
-
|
|
311
|
+
throw new CliExit(1);
|
|
312
312
|
}
|
|
313
|
-
const handoff = loadHandoffById(hippoRoot,
|
|
313
|
+
const handoff = loadHandoffById(hippoRoot, tenantId, handoffId);
|
|
314
314
|
if (!handoff) {
|
|
315
315
|
if (flags['json']) {
|
|
316
316
|
console.log(JSON.stringify({ handoff: null }));
|
|
@@ -326,17 +326,17 @@ function handoffShow(hippoRoot, args, flags) {
|
|
|
326
326
|
}
|
|
327
327
|
printHandoff(handoff);
|
|
328
328
|
}
|
|
329
|
-
export function
|
|
329
|
+
export function handleHandoff({ hippoRoot, tenantId, args, flags }) {
|
|
330
330
|
requireInit(hippoRoot);
|
|
331
331
|
const subcommand = args[0] ?? 'latest';
|
|
332
332
|
if (subcommand === 'create')
|
|
333
|
-
return handoffCreate(hippoRoot, flags);
|
|
333
|
+
return handoffCreate(hippoRoot, tenantId, flags);
|
|
334
334
|
if (subcommand === 'latest')
|
|
335
|
-
return handoffLatest(hippoRoot, flags);
|
|
335
|
+
return handoffLatest(hippoRoot, tenantId, flags);
|
|
336
336
|
if (subcommand === 'show')
|
|
337
|
-
return handoffShow(hippoRoot, args, flags);
|
|
337
|
+
return handoffShow(hippoRoot, tenantId, args, flags);
|
|
338
338
|
printError('Usage: hippo handoff <create|latest|show>');
|
|
339
|
-
|
|
339
|
+
throw new CliExit(1);
|
|
340
340
|
}
|
|
341
341
|
function printCurrentState(snapshot, events) {
|
|
342
342
|
console.log('# Current State\n');
|
|
@@ -361,11 +361,11 @@ function printCurrentState(snapshot, events) {
|
|
|
361
361
|
}
|
|
362
362
|
}
|
|
363
363
|
}
|
|
364
|
-
function currentShow(hippoRoot, flags) {
|
|
364
|
+
function currentShow(hippoRoot, tenantId, flags) {
|
|
365
365
|
const asJson = boolFlag(flags, 'json');
|
|
366
|
-
const snapshot = loadActiveTaskSnapshot(hippoRoot,
|
|
366
|
+
const snapshot = loadActiveTaskSnapshot(hippoRoot, tenantId);
|
|
367
367
|
const sessionId = snapshot?.session_id ?? undefined;
|
|
368
|
-
const events = listSessionEvents(hippoRoot,
|
|
368
|
+
const events = listSessionEvents(hippoRoot, tenantId, {
|
|
369
369
|
session_id: sessionId,
|
|
370
370
|
limit: 5,
|
|
371
371
|
});
|
|
@@ -388,18 +388,16 @@ function currentShow(hippoRoot, flags) {
|
|
|
388
388
|
}
|
|
389
389
|
printCurrentState(snapshot, events);
|
|
390
390
|
}
|
|
391
|
-
export function
|
|
391
|
+
export function handleCurrent({ hippoRoot, tenantId, args, flags }) {
|
|
392
392
|
requireInit(hippoRoot);
|
|
393
393
|
const subcommand = args[0] ?? 'show';
|
|
394
394
|
if (subcommand === 'show')
|
|
395
|
-
return currentShow(hippoRoot, flags);
|
|
395
|
+
return currentShow(hippoRoot, tenantId, flags);
|
|
396
396
|
printError('Usage: hippo current <show>');
|
|
397
|
-
|
|
397
|
+
throw new CliExit(1);
|
|
398
398
|
}
|
|
399
|
-
// ---------------------------------------------------------------------------
|
|
400
399
|
// Working Memory
|
|
401
|
-
|
|
402
|
-
export function cmdWm(hippoRoot, args, flags) {
|
|
400
|
+
export function handleWm({ hippoRoot, args, flags }) {
|
|
403
401
|
requireInit(hippoRoot);
|
|
404
402
|
const subcommand = args[0] ?? '';
|
|
405
403
|
if (subcommand === 'push')
|
|
@@ -421,7 +419,7 @@ export function cmdWm(hippoRoot, args, flags) {
|
|
|
421
419
|
return;
|
|
422
420
|
}
|
|
423
421
|
printError('Usage: hippo wm <push|read|clear|flush>');
|
|
424
|
-
|
|
422
|
+
throw new CliExit(1);
|
|
425
423
|
}
|
|
426
424
|
function wmPushCmd(hippoRoot, flags) {
|
|
427
425
|
const scope = String(flags['scope'] ?? 'default').trim();
|
|
@@ -431,7 +429,7 @@ function wmPushCmd(hippoRoot, flags) {
|
|
|
431
429
|
const taskId = flags['task'] ? String(flags['task']).trim() : undefined;
|
|
432
430
|
if (!content) {
|
|
433
431
|
printError('Usage: hippo wm push --scope <scope> --content "..." [--importance 0.8] [--session <id>] [--task <id>]');
|
|
434
|
-
|
|
432
|
+
throw new CliExit(1);
|
|
435
433
|
}
|
|
436
434
|
const id = wmPush(hippoRoot, {
|
|
437
435
|
scope,
|
|
@@ -18,19 +18,7 @@ export interface CorrectionLatencyReport {
|
|
|
18
18
|
maxMs: number | null;
|
|
19
19
|
pairs: CorrectionPair[];
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
22
|
-
*
|
|
23
|
-
* change-of-truth and when the supersession actually landed.
|
|
24
|
-
*
|
|
25
|
-
* For each (old, new) chain via `old.superseded_by = new.id`:
|
|
26
|
-
* - `correctedAt` = `new.created` (always)
|
|
27
|
-
* - `observedAt` = source row's `created` if `new.extracted_from` is set,
|
|
28
|
-
* else `new.created` (no earlier observation possible)
|
|
29
|
-
*
|
|
30
|
-
* Pairs split into two cohorts:
|
|
31
|
-
* - `extraction` — derived from a raw receipt; latency is meaningful
|
|
32
|
-
* - `manual` — direct supersede call; latency is trivially 0 and
|
|
33
|
-
* excluded from percentiles to avoid masking real lag
|
|
34
|
-
*/
|
|
21
|
+
/** Correction latency = `new.created` minus the observation time (the extracted-from row's `created`, else `new.created`).
|
|
22
|
+
* Manual supersedes have latency 0 and are excluded from percentiles so they do not mask real lag. */
|
|
35
23
|
export declare function buildCorrectionLatency(entries: MemoryEntry[]): CorrectionLatencyReport;
|
|
36
24
|
//# sourceMappingURL=correction-latency.d.ts.map
|
|
@@ -10,20 +10,8 @@ function percentile(sorted, q) {
|
|
|
10
10
|
return sorted[lo];
|
|
11
11
|
return sorted[lo] + (sorted[hi] - sorted[lo]) * (idx - lo);
|
|
12
12
|
}
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* change-of-truth and when the supersession actually landed.
|
|
16
|
-
*
|
|
17
|
-
* For each (old, new) chain via `old.superseded_by = new.id`:
|
|
18
|
-
* - `correctedAt` = `new.created` (always)
|
|
19
|
-
* - `observedAt` = source row's `created` if `new.extracted_from` is set,
|
|
20
|
-
* else `new.created` (no earlier observation possible)
|
|
21
|
-
*
|
|
22
|
-
* Pairs split into two cohorts:
|
|
23
|
-
* - `extraction` — derived from a raw receipt; latency is meaningful
|
|
24
|
-
* - `manual` — direct supersede call; latency is trivially 0 and
|
|
25
|
-
* excluded from percentiles to avoid masking real lag
|
|
26
|
-
*/
|
|
13
|
+
/** Correction latency = `new.created` minus the observation time (the extracted-from row's `created`, else `new.created`).
|
|
14
|
+
* Manual supersedes have latency 0 and are excluded from percentiles so they do not mask real lag. */
|
|
27
15
|
export function buildCorrectionLatency(entries) {
|
|
28
16
|
const byId = new Map();
|
|
29
17
|
for (const e of entries)
|
package/dist/cli/curate.d.ts
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
/**
|
|
9
|
-
* `
|
|
10
|
-
|
|
11
|
-
* Dormant memories are what sleep keeps instead of deleting (on by default;
|
|
12
|
-
* `"dormant": { "enabled": false }` in .hippo/config.json deletes instead).
|
|
13
|
-
*/
|
|
14
|
-
export declare function cmdDormant(hippoRoot: string, args: string[], flags: CliFlags): void;
|
|
1
|
+
import { type CommandContext } from './flag-values.js';
|
|
2
|
+
export declare function handleOutcome({ hippoRoot, tenantId, flags }: CommandContext): void;
|
|
3
|
+
export declare function handleConflicts({ hippoRoot, flags }: CommandContext): void;
|
|
4
|
+
export declare function handleResolve({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
5
|
+
export declare function handleReject({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
6
|
+
export declare function handleRejections({ hippoRoot, tenantId, flags }: CommandContext): void;
|
|
7
|
+
export declare function handleUnreject({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
8
|
+
/** `hippo dormant [list|restore <id>|forget <id>]`: dormant memories are what sleep keeps instead of deleting
|
|
9
|
+
* (on by default; `"dormant": { "enabled": false }` in .hippo/config.json deletes instead). */
|
|
10
|
+
export declare function handleDormant({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
15
11
|
/** `hippo quarantine [list] [--all] [--json] [--global]`, `quarantine approve <id>`, `quarantine reject <id>` (poisoning defence). */
|
|
16
|
-
export declare function
|
|
17
|
-
export declare function handleForget({ hippoRoot, args, flags }: CommandContext): Promise<void>;
|
|
18
|
-
export declare function handleInvalidate({ hippoRoot, args, flags }: CommandContext): void;
|
|
12
|
+
export declare function handleQuarantine({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
13
|
+
export declare function handleForget({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
14
|
+
export declare function handleInvalidate({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
19
15
|
//# sourceMappingURL=curate.d.ts.map
|