hippo-memory 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-memories/apply.d.ts +7 -5
- package/dist/agent-memories/apply.js +66 -39
- package/dist/agent-memories/claude-code.d.ts +8 -2
- package/dist/agent-memories/claude-code.js +26 -7
- package/dist/agent-memories/copilot.js +2 -1
- package/dist/agent-memories/files.js +2 -1
- package/dist/agent-memories/legacy.d.ts +6 -3
- package/dist/agent-memories/legacy.js +35 -14
- package/dist/agent-memories/markdown.d.ts +3 -1
- package/dist/agent-memories/markdown.js +3 -1
- package/dist/agent-memories/openclaw.js +5 -2
- package/dist/agent-memories/plan.js +11 -1
- package/dist/agent-memories/project-folds.js +2 -1
- package/dist/agent-memories/report.d.ts +4 -1
- package/dist/agent-memories/report.js +43 -9
- package/dist/agent-memories/source.d.ts +8 -2
- package/dist/agent-memories/source.js +11 -3
- package/dist/agent-memories/sync.d.ts +7 -2
- package/dist/agent-memories/sync.js +141 -101
- package/dist/api/assemble.d.ts +6 -4
- package/dist/api/assemble.js +11 -6
- package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
- package/dist/api/{audit.js → auth/audit.js} +11 -11
- package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -15
- package/dist/api/{auth.js → auth/auth.js} +46 -29
- package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
- package/dist/api/{quarantine.js → auth/quarantine.js} +8 -8
- package/dist/api/auth/session-owners.d.ts +10 -0
- package/dist/api/auth/session-owners.js +35 -0
- package/dist/api/availability.d.ts +3 -1
- package/dist/api/availability.js +3 -1
- package/dist/api/busy.d.ts +2 -0
- package/dist/api/busy.js +2 -0
- package/dist/api/cli-surface.d.ts +6 -0
- package/dist/api/cli-surface.js +6 -0
- package/dist/api/config-of.d.ts +5 -0
- package/dist/api/config-of.js +6 -0
- package/dist/api/context-auto.d.ts +4 -1
- package/dist/api/context-auto.js +10 -2
- package/dist/api/context-render.js +14 -7
- package/dist/api/context-select.d.ts +4 -1
- package/dist/api/context-select.js +23 -14
- package/dist/api/context-types.d.ts +38 -12
- package/dist/api/context.d.ts +8 -5
- package/dist/api/context.js +112 -57
- package/dist/api/continuity.d.ts +24 -21
- package/dist/api/continuity.js +18 -20
- package/dist/api/correction-latency.d.ts +3 -1
- package/dist/api/correction-latency.js +3 -1
- package/dist/api/error-reply.d.ts +4 -1
- package/dist/api/error-reply.js +12 -3
- package/dist/api/index.d.ts +39 -23
- package/dist/api/index.js +21 -23
- package/dist/api/instruction-detect.d.ts +4 -1
- package/dist/api/instruction-detect.js +75 -20
- package/dist/api/ledger-db.d.ts +15 -11
- package/dist/api/ledger-db.js +21 -23
- package/dist/api/memories/conflicts.d.ts +33 -0
- package/dist/api/memories/conflicts.js +67 -0
- package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
- package/dist/api/{forget.js → memories/forget.js} +22 -15
- package/dist/api/memories/memories.d.ts +27 -0
- package/dist/api/{memories.js → memories/memories.js} +16 -21
- package/dist/api/memories/outcome.d.ts +22 -0
- package/dist/api/{outcome.js → memories/outcome.js} +14 -8
- package/dist/api/memories/promote.d.ts +40 -0
- package/dist/api/{promote.js → memories/promote.js} +35 -22
- package/dist/api/memories/refine.d.ts +10 -0
- package/dist/api/memories/refine.js +12 -0
- package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +16 -11
- package/dist/api/{remember-local.js → memories/remember-local.js} +34 -20
- package/dist/api/{remember.d.ts → memories/remember.d.ts} +19 -13
- package/dist/api/{remember.js → memories/remember.js} +42 -26
- package/dist/api/objects/cards.d.ts +39 -0
- package/dist/api/{cards.js → objects/cards.js} +12 -14
- package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
- package/dist/api/{drill-down.js → objects/drill-down.js} +7 -8
- package/dist/api/objects/goals.d.ts +18 -0
- package/dist/api/{goals.js → objects/goals.js} +12 -12
- package/dist/api/objects/graph.d.ts +11 -0
- package/dist/api/objects/graph.js +16 -0
- package/dist/api/objects/objects.d.ts +9 -0
- package/dist/api/{objects.js → objects/objects.js} +2 -4
- package/dist/api/objects/predictions.d.ts +11 -0
- package/dist/api/{predictions.js → objects/predictions.js} +7 -6
- package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
- package/dist/api/{projects.js → objects/projects.js} +8 -4
- package/dist/api/pilot-arm.d.ts +8 -4
- package/dist/api/pilot-arm.js +5 -4
- package/dist/api/prompt-hook.d.ts +32 -19
- package/dist/api/prompt-hook.js +65 -44
- package/dist/api/provenance-coverage.d.ts +3 -1
- package/dist/api/provenance-coverage.js +3 -1
- package/dist/api/recall/finish.d.ts +185 -0
- package/dist/api/recall/finish.js +301 -0
- package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
- package/dist/api/{recall-pipeline.js → recall/pipeline.js} +176 -92
- package/dist/api/recall/recall.d.ts +6 -0
- package/dist/api/{recall.js → recall/recall.js} +101 -60
- package/dist/api/recall/render.d.ts +39 -0
- package/dist/api/recall/render.js +60 -0
- package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
- package/dist/api/recall/request.js +261 -0
- package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
- package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
- package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -70
- package/dist/api/{recall-types.js → recall/types.js} +1 -1
- package/dist/api/session-end.d.ts +16 -12
- package/dist/api/session-end.js +46 -30
- package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
- package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
- package/dist/api/sleep/dormant.d.ts +25 -0
- package/dist/api/sleep/dormant.js +64 -0
- package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
- package/dist/api/sleep/learn.js +138 -0
- package/dist/api/sleep/sleep-run.d.ts +38 -0
- package/dist/api/{sleep-run.js → sleep/sleep-run.js} +51 -43
- package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
- package/dist/api/sleep/sleep.js +9 -0
- package/dist/api/status.d.ts +3 -1
- package/dist/api/status.js +3 -1
- package/dist/api/store-init.d.ts +4 -1
- package/dist/api/store-init.js +4 -1
- package/dist/api/tokens.d.ts +10 -9
- package/dist/api/tokens.js +9 -10
- package/dist/api/types.d.ts +28 -7
- package/dist/api/types.js +13 -4
- package/dist/capture/caller-session.d.ts +8 -2
- package/dist/capture/caller-session.js +16 -6
- package/dist/capture/capture-error.d.ts +3 -1
- package/dist/capture/capture-error.js +3 -1
- package/dist/capture/codex-patch.js +7 -2
- package/dist/capture/command.d.ts +4 -2
- package/dist/capture/command.js +33 -14
- package/dist/capture/compact-resume-caller.js +15 -8
- package/dist/capture/compact.d.ts +8 -5
- package/dist/capture/compact.js +34 -23
- package/dist/capture/compaction-items-caller.js +9 -3
- package/dist/capture/compaction-record.d.ts +4 -3
- package/dist/capture/compaction-record.js +20 -12
- package/dist/capture/compaction-spool.d.ts +15 -4
- package/dist/capture/compaction-spool.js +64 -17
- package/dist/capture/copilot-transcript.d.ts +11 -3
- package/dist/capture/copilot-transcript.js +16 -6
- package/dist/capture/extract.js +20 -8
- package/dist/capture/failure-caller.js +23 -12
- package/dist/capture/failure-reading.d.ts +10 -3
- package/dist/capture/failure-reading.js +24 -7
- package/dist/capture/pre-compact-caller.js +11 -4
- package/dist/capture/session-digest.d.ts +15 -4
- package/dist/capture/session-digest.js +39 -13
- package/dist/capture/session-end-caller.d.ts +4 -1
- package/dist/capture/session-end-caller.js +20 -8
- package/dist/capture/session-texts.d.ts +6 -2
- package/dist/capture/session-texts.js +22 -7
- package/dist/capture/session-worker.d.ts +4 -2
- package/dist/capture/session-worker.js +45 -17
- package/dist/capture/transcript.d.ts +13 -4
- package/dist/capture/transcript.js +32 -10
- package/dist/capture/working-state.d.ts +13 -4
- package/dist/capture/working-state.js +50 -56
- package/dist/cli/api-context.d.ts +14 -2
- package/dist/cli/api-context.js +45 -2
- package/dist/cli/audit.js +23 -23
- package/dist/cli/auth.js +19 -27
- package/dist/cli/briefs.d.ts +1 -1
- package/dist/cli/briefs.js +20 -15
- package/dist/cli/card.d.ts +1 -1
- package/dist/cli/card.js +56 -73
- package/dist/cli/client.d.ts +12 -4
- package/dist/cli/client.js +43 -13
- package/dist/cli/compact-resume-payload.d.ts +4 -1
- package/dist/cli/compact-resume-payload.js +12 -5
- package/dist/cli/context.js +42 -17
- package/dist/cli/continuity.d.ts +5 -5
- package/dist/cli/continuity.js +90 -107
- package/dist/cli/curate.d.ts +4 -3
- package/dist/cli/curate.js +46 -68
- package/dist/cli/dag.d.ts +1 -1
- package/dist/cli/dag.js +14 -17
- package/dist/cli/decisions.js +27 -26
- package/dist/cli/eval.js +16 -21
- package/dist/cli/exit.d.ts +4 -1
- package/dist/cli/exit.js +10 -2
- package/dist/cli/explain.js +12 -11
- package/dist/cli/flag-values.d.ts +1 -1
- package/dist/cli/flag-values.js +9 -18
- package/dist/cli/github.d.ts +6 -0
- package/dist/cli/github.js +25 -13
- package/dist/cli/goals.d.ts +1 -1
- package/dist/cli/goals.js +39 -56
- package/dist/cli/graph.d.ts +1 -1
- package/dist/cli/graph.js +15 -11
- package/dist/cli/hook-runtime.d.ts +31 -9
- package/dist/cli/hook-runtime.js +40 -15
- package/dist/cli/incidents.d.ts +1 -1
- package/dist/cli/incidents.js +25 -25
- package/dist/cli/init.js +26 -11
- package/dist/cli/install-steps.d.ts +12 -3
- package/dist/cli/install-steps.js +42 -18
- package/dist/cli/last-sleep.d.ts +4 -1
- package/dist/cli/last-sleep.js +9 -4
- package/dist/cli/maintenance.d.ts +1 -1
- package/dist/cli/maintenance.js +11 -12
- package/dist/cli/notes.d.ts +1 -1
- package/dist/cli/notes.js +8 -5
- package/dist/cli/object-verbs.d.ts +4 -4
- package/dist/cli/object-verbs.js +10 -13
- package/dist/cli/open-browser.js +11 -2
- package/dist/cli/playbooks.d.ts +3 -3
- package/dist/cli/playbooks.js +40 -32
- package/dist/cli/predictions.js +15 -19
- package/dist/cli/print.js +4 -2
- package/dist/cli/projects.js +21 -11
- package/dist/cli/quality-repair-once.js +5 -4
- package/dist/cli/recall.js +129 -93
- package/dist/cli/refine-llm.d.ts +15 -4
- package/dist/cli/refine-llm.js +16 -7
- package/dist/cli/remember.js +46 -50
- package/dist/cli/scheduler.d.ts +4 -1
- package/dist/cli/scheduler.js +9 -5
- package/dist/cli/serve.js +22 -17
- package/dist/cli/session-hooks.d.ts +2 -2
- package/dist/cli/session-hooks.js +87 -50
- package/dist/cli/setup.js +54 -32
- package/dist/cli/shared.d.ts +3 -1
- package/dist/cli/shared.js +24 -9
- package/dist/cli/slack.js +15 -24
- package/dist/cli/sleep-render.d.ts +3 -1
- package/dist/cli/sleep-render.js +8 -5
- package/dist/cli/sleep.js +14 -6
- package/dist/cli/status.d.ts +4 -4
- package/dist/cli/status.js +32 -27
- package/dist/cli/stdin.d.ts +10 -3
- package/dist/cli/stdin.js +10 -3
- package/dist/cli/transfer.d.ts +1 -1
- package/dist/cli/transfer.js +71 -75
- package/dist/cli/verbs/memory.js +8 -6
- package/dist/cli/verbs/objects.js +10 -4
- package/dist/cli/versioned-verbs.d.ts +8 -7
- package/dist/cli/versioned-verbs.js +31 -21
- package/dist/cli.js +13 -16
- package/dist/connectors/dlq.d.ts +6 -6
- package/dist/connectors/dlq.js +12 -8
- package/dist/connectors/github/backfill.d.ts +4 -4
- package/dist/connectors/github/backfill.js +6 -4
- package/dist/connectors/github/deletion.d.ts +6 -4
- package/dist/connectors/github/deletion.js +5 -5
- package/dist/connectors/github/dlq.d.ts +8 -6
- package/dist/connectors/github/dlq.js +11 -5
- package/dist/connectors/github/ingest.d.ts +2 -2
- package/dist/connectors/github/ingest.js +9 -6
- package/dist/connectors/github/octokit-client.d.ts +3 -1
- package/dist/connectors/github/octokit-client.js +7 -2
- package/dist/connectors/github/ratelimit.d.ts +6 -2
- package/dist/connectors/github/ratelimit.js +6 -2
- package/dist/connectors/github/signature.d.ts +14 -3
- package/dist/connectors/github/signature.js +17 -3
- package/dist/connectors/github/tenant-routing.d.ts +6 -4
- package/dist/connectors/github/tenant-routing.js +6 -6
- package/dist/connectors/github/transform.js +50 -67
- package/dist/connectors/github/types.d.ts +10 -3
- package/dist/connectors/github/types.js +6 -2
- package/dist/connectors/github/webhook.d.ts +5 -5
- package/dist/connectors/github/webhook.js +34 -23
- package/dist/connectors/ingest.d.ts +5 -3
- package/dist/connectors/ingest.js +3 -4
- package/dist/connectors/slack/backfill.d.ts +5 -5
- package/dist/connectors/slack/backfill.js +3 -3
- package/dist/connectors/slack/deletion.d.ts +4 -4
- package/dist/connectors/slack/deletion.js +6 -6
- package/dist/connectors/slack/dlq.d.ts +4 -4
- package/dist/connectors/slack/dlq.js +6 -6
- package/dist/connectors/slack/ingest.d.ts +6 -4
- package/dist/connectors/slack/ingest.js +5 -5
- package/dist/connectors/slack/signature.d.ts +4 -1
- package/dist/connectors/slack/tenant-routing.d.ts +6 -4
- package/dist/connectors/slack/tenant-routing.js +6 -6
- package/dist/connectors/slack/transform.d.ts +6 -2
- package/dist/connectors/slack/transform.js +6 -2
- package/dist/connectors/slack/types.d.ts +3 -1
- package/dist/connectors/slack/web-client.js +8 -3
- package/dist/connectors/slack/webhook.d.ts +5 -5
- package/dist/connectors/slack/webhook.js +19 -11
- package/dist/connectors/slack/workspaces.d.ts +7 -3
- package/dist/connectors/slack/workspaces.js +7 -3
- package/dist/connectors/store.d.ts +8 -0
- package/dist/connectors/store.js +2 -0
- package/dist/consolidate/conflicts.js +23 -9
- package/dist/consolidate/dag-summary.js +2 -1
- package/dist/consolidate/dag.d.ts +10 -5
- package/dist/consolidate/dag.js +37 -36
- package/dist/consolidate/decay.js +19 -6
- package/dist/consolidate/dedupe.d.ts +14 -5
- package/dist/consolidate/dedupe.js +27 -16
- package/dist/consolidate/flush-units.d.ts +4 -1
- package/dist/consolidate/flush-units.js +4 -1
- package/dist/consolidate/half-life-migration.d.ts +18 -8
- package/dist/consolidate/half-life-migration.js +48 -18
- package/dist/consolidate/llm-passes.js +27 -11
- package/dist/consolidate/memory-value-weights.d.ts +6 -2
- package/dist/consolidate/memory-value-weights.js +6 -2
- package/dist/consolidate/memory-value.d.ts +30 -10
- package/dist/consolidate/memory-value.js +36 -13
- package/dist/consolidate/merge.d.ts +4 -1
- package/dist/consolidate/merge.js +42 -32
- package/dist/consolidate/overlap-index.d.ts +8 -2
- package/dist/consolidate/overlap-index.js +11 -4
- package/dist/consolidate/physics-pass.d.ts +3 -1
- package/dist/consolidate/physics-pass.js +10 -7
- package/dist/consolidate/replay.d.ts +11 -4
- package/dist/consolidate/replay.js +19 -7
- package/dist/consolidate/run.d.ts +13 -5
- package/dist/consolidate/run.js +4 -4
- package/dist/consolidate/sleep.d.ts +14 -6
- package/dist/consolidate/sleep.js +41 -38
- package/dist/consolidate/trace.d.ts +7 -2
- package/dist/consolidate/trace.js +7 -2
- package/dist/consolidate/traces.js +26 -29
- package/dist/core/ablation.d.ts +9 -3
- package/dist/core/ablation.js +14 -4
- package/dist/core/active-scope.d.ts +3 -1
- package/dist/core/active-scope.js +3 -1
- package/dist/core/agent-memory-tools.d.ts +2 -0
- package/dist/core/agent-memory-tools.js +2 -0
- package/dist/core/ambient.d.ts +4 -3
- package/dist/core/ambient.js +8 -6
- package/dist/core/api-errors.d.ts +9 -3
- package/dist/core/api-errors.js +9 -3
- package/dist/core/capture-contract.d.ts +4 -1
- package/dist/core/capture-contract.js +27 -8
- package/dist/core/compare.d.ts +24 -8
- package/dist/core/compare.js +24 -8
- package/dist/core/config.d.ts +18 -9
- package/dist/core/config.js +24 -14
- package/dist/core/cosine.d.ts +4 -1
- package/dist/core/cosine.js +4 -1
- package/dist/core/handoff.d.ts +7 -2
- package/dist/core/handoff.js +4 -1
- package/dist/core/markdown.js +21 -16
- package/dist/core/memory-audit.js +14 -3
- package/dist/core/memory-quality.d.ts +12 -3
- package/dist/core/memory-quality.js +57 -21
- package/dist/core/memory.d.ts +84 -27
- package/dist/core/memory.js +73 -29
- package/dist/core/merged-row.d.ts +8 -2
- package/dist/core/merged-row.js +10 -3
- package/dist/core/package-root.d.ts +3 -1
- package/dist/core/package-root.js +3 -1
- package/dist/core/particle-refresh.d.ts +8 -0
- package/dist/core/particle-refresh.js +22 -0
- package/dist/core/physics-config.d.ts +4 -1
- package/dist/core/physics-config.js +6 -2
- package/dist/core/physics.d.ts +37 -11
- package/dist/core/physics.js +55 -20
- package/dist/core/project-identity.d.ts +34 -17
- package/dist/core/project-identity.js +33 -17
- package/dist/core/project-remote.d.ts +8 -4
- package/dist/core/project-remote.js +31 -14
- package/dist/core/recall-scope.d.ts +33 -11
- package/dist/core/recall-scope.js +42 -15
- package/dist/core/rejection-digest.d.ts +7 -0
- package/dist/core/rejection-digest.js +13 -0
- package/dist/core/salience.d.ts +3 -1
- package/dist/core/salience.js +10 -4
- package/dist/core/search-types.d.ts +15 -2
- package/dist/core/search-types.js +11 -0
- package/dist/dashboard/dashboard-actions.js +13 -2
- package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
- package/dist/dashboard/dashboard-snapshot.js +4 -4
- package/dist/dashboard/dashboard.js +6 -3
- package/dist/db/backup.js +2 -2
- package/dist/db/busy.d.ts +10 -3
- package/dist/db/busy.js +27 -5
- package/dist/db/connect.d.ts +10 -3
- package/dist/db/connect.js +8 -3
- package/dist/db/continuity.d.ts +1 -1
- package/dist/db/continuity.js +27 -11
- package/dist/db/meta.d.ts +4 -1
- package/dist/db/meta.js +4 -1
- package/dist/db/migrate.d.ts +10 -5
- package/dist/db/migrate.js +26 -13
- package/dist/db/migrations/index.d.ts +1 -1
- package/dist/db/migrations/index.js +3 -1
- package/dist/db/migrations/types.d.ts +2 -1
- package/dist/db/migrations/v12.js +2 -1
- package/dist/db/migrations/v14.js +2 -1
- package/dist/db/migrations/v15.js +4 -2
- package/dist/db/migrations/v16.js +6 -3
- package/dist/db/migrations/v17.js +2 -1
- package/dist/db/migrations/v19.js +4 -2
- package/dist/db/migrations/v20.js +2 -1
- package/dist/db/migrations/v22.js +12 -6
- package/dist/db/migrations/v23.js +6 -3
- package/dist/db/migrations/v24.js +6 -3
- package/dist/db/migrations/v25.js +4 -2
- package/dist/db/migrations/v26.js +4 -2
- package/dist/db/migrations/v27.js +6 -3
- package/dist/db/migrations/v28.js +4 -2
- package/dist/db/migrations/v29.js +4 -2
- package/dist/db/migrations/v30.js +6 -3
- package/dist/db/migrations/v31.js +4 -2
- package/dist/db/migrations/v32.js +6 -3
- package/dist/db/migrations/v33.js +4 -2
- package/dist/db/migrations/v34.js +2 -1
- package/dist/db/migrations/v35.js +2 -1
- package/dist/db/migrations/v36.js +2 -1
- package/dist/db/migrations/v37.js +10 -5
- package/dist/db/migrations/v38.js +10 -5
- package/dist/db/migrations/v39.js +14 -6
- package/dist/db/migrations/v40.js +4 -2
- package/dist/db/migrations/v41.js +4 -2
- package/dist/db/migrations/v42.js +2 -1
- package/dist/db/migrations/v44.js +4 -2
- package/dist/db/migrations/v45.js +4 -2
- package/dist/db/migrations/v49.js +2 -1
- package/dist/db/migrations/v50.js +4 -2
- package/dist/db/migrations/v51.js +4 -2
- package/dist/db/migrations/v52.js +2 -1
- package/dist/db/migrations/v53.js +8 -4
- package/dist/db/migrations/v54.js +2 -1
- package/dist/db/migrations/v55.js +4 -2
- package/dist/db/migrations/v56.d.ts +3 -0
- package/dist/db/migrations/v56.js +28 -0
- package/dist/db/open.d.ts +24 -12
- package/dist/db/open.js +25 -13
- package/dist/db/physics-state.d.ts +8 -4
- package/dist/db/physics-state.js +13 -20
- package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
- package/dist/db/raw-archive-mirror-cleanup.js +6 -4
- package/dist/db/request-stores.d.ts +19 -5
- package/dist/db/request-stores.js +14 -5
- package/dist/db/tables.d.ts +2 -1
- package/dist/db/tables.js +12 -4
- package/dist/db/vector-store.d.ts +13 -4
- package/dist/db/vector-store.js +34 -14
- package/dist/db/wal-checkpointer.d.ts +2 -1
- package/dist/db/wal-checkpointer.js +19 -7
- package/dist/doctor.d.ts +4 -1
- package/dist/doctor.js +121 -39
- package/dist/embeddings/local.d.ts +8 -4
- package/dist/embeddings/local.js +9 -5
- package/dist/embeddings/provider.d.ts +19 -10
- package/dist/embeddings/provider.js +31 -17
- package/dist/embeddings/transformers.d.ts +16 -4
- package/dist/embeddings/transformers.js +32 -15
- package/dist/entry/json-hooks.d.ts +1 -1
- package/dist/entry/json-hooks.js +1 -1
- package/dist/entry/project-identity.js +2 -1
- package/dist/entry/session-text.d.ts +1 -1
- package/dist/entry/session-text.js +1 -1
- package/dist/entry/sqlite-handles.d.ts +10 -0
- package/dist/entry/sqlite-handles.js +9 -0
- package/dist/entry/store-kit.d.ts +19 -6
- package/dist/entry/store-kit.js +6 -4
- package/dist/eval/eval-stats.d.ts +27 -8
- package/dist/eval/eval-stats.js +17 -5
- package/dist/eval/eval-suite.d.ts +3 -1
- package/dist/eval/eval-suite.js +409 -187
- package/dist/eval/eval.d.ts +8 -2
- package/dist/eval/eval.js +8 -2
- package/dist/eval/judgment.js +16 -6
- package/dist/graph/delta.d.ts +9 -42
- package/dist/graph/delta.js +17 -11
- package/dist/graph/extract.d.ts +10 -7
- package/dist/graph/extract.js +57 -25
- package/dist/graph/recall.d.ts +12 -4
- package/dist/graph/recall.js +30 -13
- package/dist/graph/stream.d.ts +18 -6
- package/dist/graph/stream.js +32 -10
- package/dist/graph/view.d.ts +19 -6
- package/dist/graph/view.js +42 -17
- package/dist/hooks/codex-session.js +2 -2
- package/dist/hooks/codex-wrapper.d.ts +3 -1
- package/dist/hooks/codex-wrapper.js +9 -4
- package/dist/hooks/copilot.d.ts +19 -5
- package/dist/hooks/copilot.js +54 -15
- package/dist/hooks/hook-blocks.d.ts +4 -1
- package/dist/hooks/hook-blocks.js +8 -3
- package/dist/hooks/json-hooks.d.ts +9 -5
- package/dist/hooks/json-hooks.js +69 -34
- package/dist/hooks/opencode.js +15 -5
- package/dist/hooks/shared.d.ts +27 -8
- package/dist/hooks/shared.js +57 -16
- package/dist/importers/core.d.ts +12 -4
- package/dist/importers/core.js +8 -7
- package/dist/importers/markdown-parse.d.ts +15 -5
- package/dist/importers/markdown-parse.js +16 -7
- package/dist/importers/markdown.js +6 -9
- package/dist/importers/sources.js +10 -23
- package/dist/importers/vault.d.ts +2 -2
- package/dist/importers/vault.js +43 -27
- package/dist/index.d.ts +32 -6
- package/dist/index.js +25 -7
- package/dist/learn/autolearn.d.ts +17 -6
- package/dist/learn/autolearn.js +53 -24
- package/dist/learn/churn-git.d.ts +4 -1
- package/dist/learn/churn-git.js +29 -5
- package/dist/learn/extract.d.ts +4 -1
- package/dist/learn/extract.js +16 -9
- package/dist/learn/forward-claim-detector.d.ts +17 -5
- package/dist/learn/forward-claim-detector.js +34 -15
- package/dist/learn/invalidation.d.ts +12 -7
- package/dist/learn/invalidation.js +56 -27
- package/dist/learn/roots.d.ts +3 -0
- package/dist/learn/roots.js +5 -0
- package/dist/mcp/admin-tools.d.ts +5 -5
- package/dist/mcp/admin-tools.js +28 -23
- package/dist/mcp/format.d.ts +1 -1
- package/dist/mcp/format.js +4 -2
- package/dist/mcp/framing.d.ts +3 -1
- package/dist/mcp/framing.js +20 -8
- package/dist/mcp/memory-tools.d.ts +3 -3
- package/dist/mcp/memory-tools.js +18 -14
- package/dist/mcp/protocol.d.ts +32 -16
- package/dist/mcp/protocol.js +12 -9
- package/dist/mcp/recall-tools.d.ts +3 -3
- package/dist/mcp/recall-tools.js +62 -74
- package/dist/mcp/request.d.ts +7 -5
- package/dist/mcp/request.js +57 -74
- package/dist/mcp/server.d.ts +3 -1
- package/dist/mcp/server.js +8 -3
- package/dist/mcp/session-state.d.ts +1 -1
- package/dist/mcp/session-state.js +4 -3
- package/dist/mcp/shared-gate.d.ts +3 -2
- package/dist/mcp/shared-gate.js +3 -2
- package/dist/mcp/stdio.d.ts +6 -3
- package/dist/mcp/stdio.js +52 -21
- package/dist/mcp/tool-args.d.ts +4 -1
- package/dist/mcp/tool-args.js +8 -3
- package/dist/mcp/tools.js +76 -32
- package/dist/objects/customer-notes.d.ts +12 -10
- package/dist/objects/customer-notes.js +21 -15
- package/dist/objects/decisions.d.ts +18 -10
- package/dist/objects/decisions.js +23 -17
- package/dist/objects/descriptor.js +2 -1
- package/dist/objects/fields.d.ts +4 -1
- package/dist/objects/fields.js +6 -2
- package/dist/objects/incidents.d.ts +14 -16
- package/dist/objects/incidents.js +29 -30
- package/dist/objects/lifecycle.d.ts +0 -4
- package/dist/objects/lifecycle.js +21 -24
- package/dist/objects/policies.d.ts +12 -16
- package/dist/objects/policies.js +17 -21
- package/dist/objects/processes.d.ts +16 -10
- package/dist/objects/processes.js +20 -15
- package/dist/objects/project-briefs.d.ts +13 -14
- package/dist/objects/project-briefs.js +33 -39
- package/dist/objects/skills.d.ts +10 -12
- package/dist/objects/skills.js +17 -22
- package/dist/postinstall.js +15 -7
- package/dist/predictions/planning-fallacy.d.ts +19 -6
- package/dist/predictions/planning-fallacy.js +4 -2
- package/dist/rerankers/clef.d.ts +8 -2
- package/dist/rerankers/clef.js +14 -9
- package/dist/rerankers/cross-encoder.d.ts +2 -1
- package/dist/rerankers/cross-encoder.js +9 -6
- package/dist/rerankers/index.js +2 -1
- package/dist/rerankers/jev.js +2 -1
- package/dist/rerankers/llm.d.ts +6 -2
- package/dist/rerankers/llm.js +8 -3
- package/dist/rerankers/remote.d.ts +3 -1
- package/dist/rerankers/remote.js +5 -2
- package/dist/rerankers/types.d.ts +6 -2
- package/dist/search/bm25-search.d.ts +3 -1
- package/dist/search/bm25-search.js +15 -2
- package/dist/search/boosts.js +4 -3
- package/dist/search/embed-memories.d.ts +10 -5
- package/dist/search/embed-memories.js +62 -36
- package/dist/search/engine.d.ts +4 -1
- package/dist/search/engine.js +6 -2
- package/dist/search/goal-boost.d.ts +10 -3
- package/dist/search/goal-boost.js +13 -6
- package/dist/search/hybrid-score.d.ts +4 -1
- package/dist/search/hybrid-score.js +4 -1
- package/dist/search/hybrid.d.ts +23 -8
- package/dist/search/hybrid.js +12 -7
- package/dist/search/multihop.js +14 -13
- package/dist/search/path-context.d.ts +10 -3
- package/dist/search/path-context.js +10 -3
- package/dist/search/physics-search.d.ts +9 -4
- package/dist/search/physics-search.js +38 -14
- package/dist/search/rerank.d.ts +2 -1
- package/dist/search/rerank.js +2 -1
- package/dist/search/rrf.d.ts +14 -5
- package/dist/search/rrf.js +11 -4
- package/dist/search/vector.d.ts +8 -2
- package/dist/search/vector.js +9 -3
- package/dist/server/auth.d.ts +18 -14
- package/dist/server/auth.js +69 -38
- package/dist/server/boot.d.ts +3 -1
- package/dist/server/boot.js +95 -56
- package/dist/server/client-ip.d.ts +11 -4
- package/dist/server/client-ip.js +27 -10
- package/dist/server/cursor.d.ts +10 -3
- package/dist/server/cursor.js +10 -3
- package/dist/server/deadline.d.ts +5 -2
- package/dist/server/deadline.js +10 -3
- package/dist/server/key-check-bounds.js +12 -4
- package/dist/server/lifecycle.d.ts +4 -1
- package/dist/server/lifecycle.js +10 -4
- package/dist/server/mcp-http.d.ts +2 -1
- package/dist/server/mcp-http.js +37 -22
- package/dist/server/rate-limit.d.ts +17 -5
- package/dist/server/rate-limit.js +55 -26
- package/dist/server/ready.js +7 -4
- package/dist/server/request.d.ts +15 -4
- package/dist/server/request.js +42 -15
- package/dist/server/route-checks.d.ts +4 -1
- package/dist/server/route-checks.js +8 -3
- package/dist/server/route-table.d.ts +8 -6
- package/dist/server/route-table.js +547 -93
- package/dist/server/routes/admin.d.ts +7 -7
- package/dist/server/routes/admin.js +36 -15
- package/dist/server/routes/customer-notes.d.ts +5 -5
- package/dist/server/routes/customer-notes.js +5 -4
- package/dist/server/routes/decisions.d.ts +5 -5
- package/dist/server/routes/decisions.js +12 -6
- package/dist/server/routes/incidents.d.ts +5 -5
- package/dist/server/routes/incidents.js +10 -4
- package/dist/server/routes/memories.d.ts +8 -8
- package/dist/server/routes/memories.js +12 -19
- package/dist/server/routes/object-routes.d.ts +8 -5
- package/dist/server/routes/object-routes.js +4 -2
- package/dist/server/routes/policies.d.ts +6 -6
- package/dist/server/routes/policies.js +11 -4
- package/dist/server/routes/predictions.d.ts +5 -5
- package/dist/server/routes/predictions.js +9 -4
- package/dist/server/routes/processes.d.ts +5 -5
- package/dist/server/routes/processes.js +15 -6
- package/dist/server/routes/project-briefs.d.ts +6 -6
- package/dist/server/routes/project-briefs.js +3 -2
- package/dist/server/routes/recall.d.ts +3 -3
- package/dist/server/routes/recall.js +21 -10
- package/dist/server/routes/skills.d.ts +6 -6
- package/dist/server/routes/skills.js +12 -4
- package/dist/server/server-detect.d.ts +24 -8
- package/dist/server/server-detect.js +57 -22
- package/dist/server/sleep-child.js +16 -10
- package/dist/server/sleep-offload.d.ts +8 -5
- package/dist/server/sleep-offload.js +41 -19
- package/dist/server/tls.d.ts +4 -1
- package/dist/server/tls.js +13 -5
- package/dist/server/types.d.ts +38 -26
- package/dist/server/validation.d.ts +4 -1
- package/dist/server/validation.js +22 -9
- package/dist/server.d.ts +15 -10
- package/dist/server.js +32 -12
- package/dist/sharing/global-store.d.ts +5 -10
- package/dist/sharing/global-store.js +8 -43
- package/dist/sharing/global-sync.d.ts +3 -1
- package/dist/sharing/global-sync.js +16 -6
- package/dist/sharing/project-merge.d.ts +25 -7
- package/dist/sharing/project-merge.js +49 -17
- package/dist/sharing/search-both.d.ts +8 -4
- package/dist/sharing/search-both.js +19 -12
- package/dist/sharing/share.d.ts +8 -4
- package/dist/sharing/share.js +39 -15
- package/dist/store/ambient.js +9 -5
- package/dist/store/audit-event.d.ts +2 -2
- package/dist/store/audit-event.js +8 -3
- package/dist/store/audit.d.ts +6 -3
- package/dist/store/audit.js +16 -6
- package/dist/store/auth.d.ts +4 -2
- package/dist/store/auth.js +63 -20
- package/dist/store/busy.d.ts +9 -0
- package/dist/store/busy.js +16 -0
- package/dist/store/candidates.d.ts +12 -5
- package/dist/store/candidates.js +75 -36
- package/dist/store/capture-write.d.ts +2 -1
- package/dist/store/capture-write.js +2 -1
- package/dist/store/card-detail.d.ts +4 -4
- package/dist/store/card-detail.js +15 -8
- package/dist/store/cards.d.ts +24 -10
- package/dist/store/cards.js +93 -60
- package/dist/store/compaction-caller.d.ts +2 -1
- package/dist/store/compaction-caller.js +2 -1
- package/dist/store/compactions-record.d.ts +14 -8
- package/dist/store/compactions-record.js +95 -32
- package/dist/store/compactions.js +35 -15
- package/dist/store/conflicts.d.ts +9 -4
- package/dist/store/conflicts.js +100 -45
- package/dist/store/connectors/dlq.d.ts +17 -5
- package/dist/store/connectors/dlq.js +56 -5
- package/dist/store/connectors/event-log.d.ts +111 -2
- package/dist/store/connectors/event-log.js +2 -1
- package/dist/store/connectors/github.d.ts +6 -3
- package/dist/store/connectors/github.js +24 -40
- package/dist/store/connectors/slack.d.ts +2 -1
- package/dist/store/connectors/slack.js +25 -37
- package/dist/store/dashboard-reads.d.ts +7 -3
- package/dist/store/dashboard-reads.js +32 -11
- package/dist/store/delete-and-batch.d.ts +17 -11
- package/dist/store/delete-and-batch.js +67 -26
- package/dist/store/delivery-recorder.d.ts +8 -5
- package/dist/store/delivery-recorder.js +70 -32
- package/dist/store/descendant-page.d.ts +2 -1
- package/dist/store/descendant-page.js +24 -9
- package/dist/store/diagnostics.d.ts +2 -1
- package/dist/store/diagnostics.js +2 -1
- package/dist/store/doctor-reads.d.ts +2 -1
- package/dist/store/doctor-reads.js +13 -5
- package/dist/store/dormant.d.ts +19 -11
- package/dist/store/dormant.js +40 -18
- package/dist/store/embeddings/index.d.ts +13 -9
- package/dist/store/embeddings/index.js +19 -12
- package/dist/store/entry-reads.d.ts +49 -20
- package/dist/store/entry-reads.js +181 -66
- package/dist/store/entry-row.d.ts +10 -6
- package/dist/store/entry-row.js +17 -12
- package/dist/store/entry-writes.d.ts +22 -10
- package/dist/store/entry-writes.js +41 -14
- package/dist/store/failure-log-at.js +1 -1
- package/dist/store/failure-log.d.ts +4 -2
- package/dist/store/failure-log.js +13 -6
- package/dist/store/gated-write.d.ts +3 -3
- package/dist/store/gated-write.js +3 -3
- package/dist/store/goals.d.ts +5 -4
- package/dist/store/goals.js +8 -10
- package/dist/store/graph-apply.d.ts +21 -0
- package/dist/{graph/write.js → store/graph-apply.js} +31 -11
- package/dist/store/graph-queue.d.ts +9 -6
- package/dist/store/graph-queue.js +15 -10
- package/dist/store/graph-reads.d.ts +16 -11
- package/dist/store/graph-reads.js +24 -15
- package/dist/store/graph-rows.d.ts +41 -3
- package/dist/store/graph-rows.js +10 -7
- package/dist/store/graph-view-rows.js +14 -7
- package/dist/store/graph-writes.d.ts +16 -10
- package/dist/store/graph-writes.js +59 -36
- package/dist/store/handoffs.d.ts +4 -4
- package/dist/store/handoffs.js +40 -19
- package/dist/store/index-and-stats.d.ts +2 -2
- package/dist/store/index-and-stats.js +6 -5
- package/dist/store/index.d.ts +3 -1
- package/dist/store/index.js +1 -0
- package/dist/store/key-audit.d.ts +2 -1
- package/dist/store/key-audit.js +2 -1
- package/dist/store/key-writes.d.ts +2 -1
- package/dist/store/key-writes.js +9 -2
- package/dist/store/ledger-turn.d.ts +4 -1
- package/dist/store/ledger-turn.js +7 -2
- package/dist/store/mirrors.d.ts +11 -4
- package/dist/store/mirrors.js +88 -16
- package/dist/store/narrow.d.ts +6 -0
- package/dist/store/narrow.js +11 -0
- package/dist/store/open.d.ts +4 -2
- package/dist/store/open.js +18 -9
- package/dist/store/pilot-arm.d.ts +2 -1
- package/dist/store/pilot-arm.js +18 -6
- package/dist/store/planning-fallacy-evidence.d.ts +2 -2
- package/dist/store/planning-fallacy-evidence.js +8 -5
- package/dist/store/port/agent-import.d.ts +62 -0
- package/dist/store/port/agent-import.js +2 -0
- package/dist/store/port/consolidation.d.ts +129 -0
- package/dist/store/port/consolidation.js +2 -0
- package/dist/store/port/learning.d.ts +19 -0
- package/dist/store/port/learning.js +2 -0
- package/dist/store/port/local-files.d.ts +18 -0
- package/dist/store/port/local-files.js +2 -0
- package/dist/store/port/promotion.d.ts +20 -0
- package/dist/store/port/promotion.js +3 -0
- package/dist/store/port-groups.d.ts +160 -0
- package/dist/store/port-groups.js +2 -0
- package/dist/store/port.d.ts +215 -229
- package/dist/store/port.js +3 -9
- package/dist/store/predictions.d.ts +14 -10
- package/dist/store/predictions.js +37 -17
- package/dist/store/project-tags.d.ts +4 -1
- package/dist/store/project-tags.js +16 -5
- package/dist/store/quality-repair.d.ts +8 -4
- package/dist/store/quality-repair.js +53 -20
- package/dist/store/quarantine.d.ts +1 -0
- package/dist/store/quarantine.js +23 -9
- package/dist/store/raw-archive.d.ts +5 -4
- package/dist/store/raw-archive.js +11 -10
- package/dist/store/recall-trace.d.ts +22 -17
- package/dist/store/recall-trace.js +126 -63
- package/dist/store/rejected-values.d.ts +15 -10
- package/dist/store/rejected-values.js +33 -12
- package/dist/store/rejection.d.ts +12 -11
- package/dist/store/rejection.js +18 -19
- package/dist/store/report-reads.d.ts +2 -1
- package/dist/store/report-reads.js +2 -1
- package/dist/store/rows.d.ts +7 -5
- package/dist/store/rows.js +18 -11
- package/dist/store/rule-sql.d.ts +6 -4
- package/dist/store/rule-sql.js +16 -9
- package/dist/store/search-rows.d.ts +14 -9
- package/dist/store/search-rows.js +48 -23
- package/dist/store/sessions.d.ts +12 -10
- package/dist/store/sessions.js +40 -21
- package/dist/store/set-aside.d.ts +2 -2
- package/dist/store/set-aside.js +18 -5
- package/dist/store/sqlite/agent-import.d.ts +3 -0
- package/dist/store/sqlite/agent-import.js +77 -0
- package/dist/store/sqlite/cards-group.d.ts +6 -0
- package/dist/store/sqlite/cards-group.js +37 -0
- package/dist/store/sqlite/conflicts-group.d.ts +6 -0
- package/dist/store/sqlite/conflicts-group.js +18 -0
- package/dist/store/sqlite/connector-events-group.d.ts +2 -1
- package/dist/store/sqlite/connector-events-group.js +17 -6
- package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
- package/dist/store/sqlite/connector-writes-group.js +9 -4
- package/dist/store/sqlite/consolidation-group.d.ts +4 -0
- package/dist/store/sqlite/consolidation-group.js +64 -0
- package/dist/store/sqlite/dag-reads-group.js +1 -1
- package/dist/store/sqlite/dormant-group.d.ts +6 -0
- package/dist/store/sqlite/dormant-group.js +29 -0
- package/dist/store/sqlite/entry-writes-group.d.ts +6 -3
- package/dist/store/sqlite/entry-writes-group.js +37 -14
- package/dist/store/sqlite/error-codec.d.ts +4 -2
- package/dist/store/sqlite/error-codec.js +32 -10
- package/dist/store/sqlite/executor-counts.js +2 -1
- package/dist/store/sqlite/executor.d.ts +8 -3
- package/dist/store/sqlite/executor.js +56 -18
- package/dist/store/sqlite/global-promote.d.ts +5 -0
- package/dist/store/sqlite/global-promote.js +48 -0
- package/dist/store/sqlite/goals-group.d.ts +6 -0
- package/dist/store/sqlite/goals-group.js +23 -0
- package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
- package/dist/store/sqlite/graph-reads-group.js +2 -1
- package/dist/store/sqlite/held-connection.d.ts +7 -1
- package/dist/store/sqlite/held-connection.js +34 -7
- package/dist/store/sqlite/last-recall-group.d.ts +4 -2
- package/dist/store/sqlite/last-recall-group.js +9 -4
- package/dist/store/sqlite/learning-group.d.ts +4 -0
- package/dist/store/sqlite/learning-group.js +17 -0
- package/dist/store/sqlite/maintenance-groups.js +2 -1
- package/dist/store/sqlite/object-rows.d.ts +6 -3
- package/dist/store/sqlite/object-rows.js +34 -5
- package/dist/store/sqlite/objects-group.d.ts +5 -4
- package/dist/store/sqlite/objects-group.js +84 -33
- package/dist/store/sqlite/predictions-group.d.ts +2 -1
- package/dist/store/sqlite/predictions-group.js +4 -2
- package/dist/store/sqlite/promotion-group.d.ts +3 -0
- package/dist/store/sqlite/promotion-group.js +10 -0
- package/dist/store/sqlite/quarantine-group.d.ts +2 -1
- package/dist/store/sqlite/quarantine-group.js +4 -2
- package/dist/store/sqlite/reports-group.d.ts +6 -0
- package/dist/store/sqlite/reports-group.js +33 -0
- package/dist/store/sqlite/request-scope.d.ts +6 -0
- package/dist/store/sqlite/request-scope.js +18 -0
- package/dist/store/sqlite/sessions-group.d.ts +6 -0
- package/dist/store/sqlite/sessions-group.js +46 -0
- package/dist/store/sqlite/store.d.ts +22 -11
- package/dist/store/sqlite/store.js +84 -11
- package/dist/store/sqlite/vector-pack.js +2 -1
- package/dist/store/sqlite/vector-reads-group.js +2 -1
- package/dist/store/sqlite/worker-jobs.d.ts +2 -1
- package/dist/store/sqlite/worker-jobs.js +19 -7
- package/dist/store/sqlite/worker-ops.d.ts +10 -5
- package/dist/store/sqlite/worker-ops.js +6 -3
- package/dist/store/sqlite/worker-store.d.ts +4 -3
- package/dist/store/sqlite/worker-store.js +24 -14
- package/dist/store/summaries.d.ts +19 -12
- package/dist/store/summaries.js +36 -21
- package/dist/store/summary-dirty.d.ts +2 -1
- package/dist/store/summary-dirty.js +2 -1
- package/dist/store/tenant.d.ts +3 -2
- package/dist/store/tenant.js +5 -4
- package/dist/store/token-ledger-rows.js +6 -3
- package/dist/store/token-ledger.d.ts +19 -13
- package/dist/store/token-ledger.js +27 -14
- package/dist/store/tombstone-checks.d.ts +4 -1
- package/dist/store/tombstone-checks.js +10 -1
- package/dist/store/usage-reports.js +2 -1
- package/dist/store/vector-index.d.ts +8 -5
- package/dist/store/vector-index.js +24 -10
- package/dist/store/working-memory.d.ts +6 -4
- package/dist/store/working-memory.js +14 -9
- package/dist/support-bundle.js +10 -5
- package/dist/trust/quarantine.d.ts +1 -2
- package/dist/trust/quarantine.js +1 -5
- package/dist/trust/reject-flow.d.ts +12 -3
- package/dist/trust/reject-flow.js +12 -4
- package/dist/util/anthropic-messages.d.ts +4 -1
- package/dist/util/anthropic-messages.js +14 -5
- package/dist/util/atomic-write.d.ts +4 -2
- package/dist/util/atomic-write.js +25 -14
- package/dist/util/compaction-items.d.ts +4 -1
- package/dist/util/compaction-items.js +8 -2
- package/dist/util/crash-handlers.d.ts +7 -2
- package/dist/util/crash-handlers.js +13 -4
- package/dist/util/env.d.ts +16 -4
- package/dist/util/env.js +78 -25
- package/dist/util/home-path.js +12 -6
- package/dist/util/hook-payload.d.ts +3 -1
- package/dist/util/hook-payload.js +3 -1
- package/dist/util/http-retry.d.ts +12 -6
- package/dist/util/http-retry.js +16 -6
- package/dist/util/http-util.d.ts +20 -5
- package/dist/util/http-util.js +28 -9
- package/dist/util/json.d.ts +4 -1
- package/dist/util/json.js +4 -1
- package/dist/util/keyset.js +2 -1
- package/dist/util/limits.js +4 -2
- package/dist/util/log.d.ts +13 -5
- package/dist/util/log.js +29 -6
- package/dist/util/net.d.ts +5 -0
- package/dist/util/net.js +19 -0
- package/dist/util/real-path.d.ts +2 -1
- package/dist/util/real-path.js +4 -3
- package/dist/util/request-scope.d.ts +11 -3
- package/dist/util/request-scope.js +13 -4
- package/dist/util/same-text.d.ts +10 -3
- package/dist/util/same-text.js +10 -3
- package/dist/util/secret-detect.d.ts +24 -7
- package/dist/util/secret-detect.js +49 -14
- package/dist/util/spawn-argv.d.ts +3 -1
- package/dist/util/spawn-argv.js +13 -4
- package/dist/util/sqlite-blocked.d.ts +15 -4
- package/dist/util/sqlite-blocked.js +19 -6
- package/dist/util/stored-json.d.ts +4 -1
- package/dist/util/stored-json.js +6 -2
- package/dist/util/stream-tee.d.ts +2 -1
- package/dist/util/stream-tee.js +8 -5
- package/dist/util/transcript-tail.d.ts +4 -1
- package/dist/util/transcript-tail.js +4 -1
- package/dist/util/version.d.ts +8 -3
- package/dist/util/version.js +8 -3
- package/dist/util/write-budget.d.ts +7 -2
- package/dist/util/write-budget.js +5 -2
- package/dist/util/yaml.d.ts +4 -1
- package/dist/util/yaml.js +4 -1
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -1
- package/scripts/postinstall.cjs +3 -1
- package/dist/api/cards.d.ts +0 -42
- package/dist/api/conflicts.d.ts +0 -28
- package/dist/api/conflicts.js +0 -61
- package/dist/api/dormant.d.ts +0 -14
- package/dist/api/dormant.js +0 -58
- package/dist/api/goals.d.ts +0 -18
- package/dist/api/graph.d.ts +0 -8
- package/dist/api/graph.js +0 -8
- package/dist/api/learn.js +0 -125
- package/dist/api/memories.d.ts +0 -25
- package/dist/api/objects.d.ts +0 -9
- package/dist/api/outcome.d.ts +0 -19
- package/dist/api/predictions.d.ts +0 -11
- package/dist/api/promote.d.ts +0 -36
- package/dist/api/recall-core.d.ts +0 -4
- package/dist/api/recall-core.js +0 -125
- package/dist/api/recall-finish.d.ts +0 -53
- package/dist/api/recall-finish.js +0 -30
- package/dist/api/recall-history.d.ts +0 -64
- package/dist/api/recall-history.js +0 -159
- package/dist/api/recall-record.d.ts +0 -43
- package/dist/api/recall-record.js +0 -78
- package/dist/api/recall-request.js +0 -121
- package/dist/api/recall.d.ts +0 -6
- package/dist/api/refine.d.ts +0 -7
- package/dist/api/refine.js +0 -10
- package/dist/api/session-owners.d.ts +0 -4
- package/dist/api/session-owners.js +0 -17
- package/dist/api/sleep-run.d.ts +0 -26
- package/dist/api/sleep.js +0 -11
- package/dist/graph/write.d.ts +0 -14
- package/dist/store/sqlite/busy.d.ts +0 -3
- package/dist/store/sqlite/busy.js +0 -8
- package/dist/store/sqlite/local.d.ts +0 -4
- package/dist/store/sqlite/local.js +0 -8
package/dist/cli/context.js
CHANGED
|
@@ -3,22 +3,26 @@ import { isSubagentPayload } from '../util/hook-payload.js';
|
|
|
3
3
|
import { estimateTokens } from '../util/token-text.js';
|
|
4
4
|
import { autoDetectContext } from '../api/context-auto.js';
|
|
5
5
|
import { detectScope } from '../core/active-scope.js';
|
|
6
|
-
import { bookLedgerTurn } from '../api/ledger-db.js';
|
|
6
|
+
import { bookLedgerTurn, ledgerReachOf } from '../api/ledger-db.js';
|
|
7
7
|
import { readHookStdin } from './stdin.js';
|
|
8
8
|
import { isJsonObject, isJsonString } from '../util/json.js';
|
|
9
9
|
import * as api from '../api/index.js';
|
|
10
|
-
import { DEFAULT_CONTEXT_BUDGET } from '../api/context.js';
|
|
10
|
+
import { DEFAULT_CONTEXT_BUDGET, NO_QUERY } from '../api/context.js';
|
|
11
11
|
import { cliApiContext } from './api-context.js';
|
|
12
12
|
import { renderAmbientSummary } from '../core/ambient.js';
|
|
13
13
|
import { contextBlockLines, contextCost, crossProjectLines, settleTokens } from '../api/context-render.js';
|
|
14
14
|
import { additionalContextOutput, flushDeliveryRecorder, hasContextData, startDeliveryRecorder, sessionStartEnvelope, toRenderItems, } from '../api/prompt-hook.js';
|
|
15
|
-
import { parseLimitFlag, parseCountFlag, parseBudgetFlag, flagIsTrue } from './flag-values.js';
|
|
15
|
+
import { parseLimitFlag, parseCountFlag, parseBudgetFlag, flagIsTrue, stringFlagOrExit, } from './flag-values.js';
|
|
16
16
|
import { requireInit } from './shared.js';
|
|
17
|
+
import { errorFields, errorMessage, log } from '../util/log.js';
|
|
17
18
|
import { printActiveTaskSnapshot, printSessionEvents, printHandoff, captureConsole } from './print.js';
|
|
18
|
-
import { hostSessionId, hookStoreRoot, hookRuntime, payloadCwdRoot, runHookWithStores, inPilotHoldout } from './hook-runtime.js';
|
|
19
|
+
import { hostSessionId, hookStoreRoot, hookRuntime, payloadCwdRoot, runHookWithStores, inPilotHoldout, } from './hook-runtime.js';
|
|
19
20
|
async function cmdContext(hippoRoot, tenantId, args, flags, stdinText) {
|
|
20
21
|
const rec = startDeliveryRecorder(cliApiContext(hippoRoot, tenantId), {
|
|
21
|
-
stdinText,
|
|
22
|
+
stdinText,
|
|
23
|
+
runtime: hookRuntime(flags),
|
|
24
|
+
eventType: flagIsTrue(flags, 'pinned-only') ? undefined : 'context',
|
|
25
|
+
envSessionId: hostSessionId(),
|
|
22
26
|
});
|
|
23
27
|
// No try/finally: a render throw keeps its own exit code and writes no event.
|
|
24
28
|
await renderContext(hippoRoot, tenantId, args, flags, stdinText, rec);
|
|
@@ -38,13 +42,15 @@ function readHookPayload(stdinText) {
|
|
|
38
42
|
if (isJsonString(raw))
|
|
39
43
|
prompt = raw;
|
|
40
44
|
}
|
|
41
|
-
catch {
|
|
45
|
+
catch (err) {
|
|
42
46
|
// Malformed/non-JSON stdin: fall through to the env fallback below.
|
|
47
|
+
log.debug(`context: hook payload is not JSON: ${errorMessage(err)}`, errorFields(err));
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
50
|
return { sessionId, prompt };
|
|
46
51
|
}
|
|
47
|
-
|
|
52
|
+
/** Null when this call renders nothing: the pilot holdout arm, or a budget of zero. */
|
|
53
|
+
function contextGate(hippoRoot, resolvedTenant, flags, stdinText, rec) {
|
|
48
54
|
// --pinned-only fires on every prompt, even where no local .hippo exists, so it skips requireInit
|
|
49
55
|
// and api.getContext falls back to global-only.
|
|
50
56
|
const pinnedOnly = flagIsTrue(flags, 'pinned-only');
|
|
@@ -52,22 +58,30 @@ async function renderContext(hippoRoot, resolvedTenant, args, flags, stdinText,
|
|
|
52
58
|
requireInit(hippoRoot);
|
|
53
59
|
}
|
|
54
60
|
const session = resolveContextSession(stdinText);
|
|
55
|
-
const { currentSessionId,
|
|
61
|
+
const { currentSessionId, payloadSessionId } = session;
|
|
56
62
|
// The pilot arm is booked at the first hook call whatever the flags, so the holdout sees no budget or content branch.
|
|
57
63
|
if (inPilotHoldout(hippoRoot, resolvedTenant, currentSessionId, { write: payloadSessionId !== undefined })) {
|
|
58
64
|
rec?.disabled();
|
|
59
|
-
return;
|
|
65
|
+
return null;
|
|
60
66
|
}
|
|
61
67
|
const budget = parseBudgetFlag(flags['budget'], DEFAULT_CONTEXT_BUDGET);
|
|
62
68
|
if (budget <= 0) {
|
|
63
69
|
rec?.disabled();
|
|
64
|
-
return;
|
|
70
|
+
return null;
|
|
65
71
|
}
|
|
72
|
+
return { pinnedOnly, session, budget };
|
|
73
|
+
}
|
|
74
|
+
async function renderContext(hippoRoot, resolvedTenant, args, flags, stdinText, rec) {
|
|
75
|
+
const gate = contextGate(hippoRoot, resolvedTenant, flags, stdinText, rec);
|
|
76
|
+
if (gate === null)
|
|
77
|
+
return;
|
|
78
|
+
const { pinnedOnly, session, budget } = gate;
|
|
79
|
+
const { ledgerSessionId, payloadSessionId } = session;
|
|
66
80
|
// --auto shells out to git, so it stays CLI-side; api.getContext stays host-agnostic and falls back to '*'.
|
|
67
81
|
const query = contextQuery(args, flags);
|
|
68
82
|
const ctx = cliApiContext(hippoRoot, resolvedTenant);
|
|
69
|
-
const format =
|
|
70
|
-
const framing =
|
|
83
|
+
const format = stringFlagOrExit(flags, 'format') ?? 'markdown';
|
|
84
|
+
const framing = stringFlagOrExit(flags, 'framing') ?? 'observe';
|
|
71
85
|
const opts = buildContextOpts(flags, { query, budget, pinnedOnly, format, framing, session, rec });
|
|
72
86
|
const result = await api.getContext(ctx, opts);
|
|
73
87
|
if (!hasContextData(result)) {
|
|
@@ -75,7 +89,18 @@ async function renderContext(hippoRoot, resolvedTenant, args, flags, stdinText,
|
|
|
75
89
|
return;
|
|
76
90
|
}
|
|
77
91
|
const envelope = format === 'copilot' ? sessionStartEnvelope(stdinText) : undefined;
|
|
78
|
-
const view = {
|
|
92
|
+
const view = {
|
|
93
|
+
hippoRoot,
|
|
94
|
+
tenantId: ctx.tenantId,
|
|
95
|
+
ledgerSessionId,
|
|
96
|
+
payloadSessionId,
|
|
97
|
+
pinnedOnly,
|
|
98
|
+
framing,
|
|
99
|
+
rec,
|
|
100
|
+
result,
|
|
101
|
+
reach: ledgerReachOf(ctx),
|
|
102
|
+
envelope,
|
|
103
|
+
};
|
|
79
104
|
renderContextView(view, format, query);
|
|
80
105
|
}
|
|
81
106
|
function contextQuery(args, flags) {
|
|
@@ -110,7 +135,7 @@ function resolveContextSession(stdinText) {
|
|
|
110
135
|
}
|
|
111
136
|
function buildContextOpts(flags, input) {
|
|
112
137
|
// Scope detection uses cwd, so it is resolved here and passed in via opts.scope.
|
|
113
|
-
const ctxExplicitScope = flags
|
|
138
|
+
const ctxExplicitScope = stringFlagOrExit(flags, 'scope') ?? null;
|
|
114
139
|
const ctxActiveScope = ctxExplicitScope || detectScope();
|
|
115
140
|
// --cross-project re-includes other-project memories, rendered under their own section.
|
|
116
141
|
const crossProject = flagIsTrue(flags, 'cross-project');
|
|
@@ -143,7 +168,7 @@ function renderContextJson(view, query) {
|
|
|
143
168
|
category: r.category ?? null,
|
|
144
169
|
}));
|
|
145
170
|
const jsonText = JSON.stringify({
|
|
146
|
-
query: query ||
|
|
171
|
+
query: query || NO_QUERY,
|
|
147
172
|
activeSnapshot: result.activeSnapshot ?? null,
|
|
148
173
|
sessionHandoff: result.sessionHandoff ?? null,
|
|
149
174
|
recentSessionEvents: result.recentEvents ?? [],
|
|
@@ -158,7 +183,7 @@ function renderContextJson(view, query) {
|
|
|
158
183
|
event: 'inject', items: output.length, tokens: estimateTokens(jsonText),
|
|
159
184
|
}],
|
|
160
185
|
delivery: (write) => flushDeliveryRecorder(rec, write),
|
|
161
|
-
});
|
|
186
|
+
}, view.reach);
|
|
162
187
|
}
|
|
163
188
|
/** The default format; the header figure counts the whole block, sections included, as the ledger does. */
|
|
164
189
|
function renderContextMarkdown(view) {
|
|
@@ -193,7 +218,7 @@ function renderContextMarkdown(view) {
|
|
|
193
218
|
event: 'inject', items: renderItems.length, tokens: estimateTokens(text),
|
|
194
219
|
}],
|
|
195
220
|
delivery: (write) => flushDeliveryRecorder(rec, write),
|
|
196
|
-
});
|
|
221
|
+
}, view.reach);
|
|
197
222
|
}
|
|
198
223
|
function printCrossProjectSection(items) {
|
|
199
224
|
for (const line of crossProjectLines(items))
|
package/dist/cli/continuity.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
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, tenantId, args, flags }: CommandContext): void
|
|
2
|
+
export declare function handleSnapshot({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
3
|
+
export declare function handleSession({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
4
|
+
export declare function handleHandoff({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
5
|
+
export declare function handleCurrent({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
6
|
+
export declare function handleWm({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
7
7
|
//# sourceMappingURL=continuity.d.ts.map
|
package/dist/cli/continuity.js
CHANGED
|
@@ -3,26 +3,25 @@ import { snapshotSave as apiSnapshotSave, snapshotClear as apiSnapshotClear, sna
|
|
|
3
3
|
import { cliApiContext } from './api-context.js';
|
|
4
4
|
import { isHandoffOutcome, formatHandoffEvidenceLine } from '../core/handoff.js';
|
|
5
5
|
import { collectHandoffEvidence } from '../capture/handoff-evidence.js';
|
|
6
|
-
import { printError } from './output.js';
|
|
7
6
|
import { requireInit } from './shared.js';
|
|
8
7
|
import { printActiveTaskSnapshot, printSessionEvents, printHandoff } from './print.js';
|
|
9
|
-
import { boolFlag, isStringFlag, numberFlag } from './flag-values.js';
|
|
10
|
-
import {
|
|
8
|
+
import { boolFlag, isStringFlag, numberFlag, stringFlagOrExit, } from './flag-values.js';
|
|
9
|
+
import { fail } from './exit.js';
|
|
11
10
|
const ISO_DATETIME_CHARS = 19;
|
|
12
|
-
function snapshotSave(hippoRoot, tenantId, flags) {
|
|
13
|
-
const task =
|
|
14
|
-
const summary =
|
|
15
|
-
const nextStep =
|
|
16
|
-
const sessionId =
|
|
11
|
+
async function snapshotSave(hippoRoot, tenantId, flags) {
|
|
12
|
+
const task = stringFlagOrExit(flags, 'task') ?? '';
|
|
13
|
+
const summary = stringFlagOrExit(flags, 'summary') ?? '';
|
|
14
|
+
const nextStep = stringFlagOrExit(flags, 'next-step') ?? '';
|
|
15
|
+
const sessionId = stringFlagOrExit(flags, 'session') ?? stringFlagOrExit(flags, 'id') ?? '';
|
|
17
16
|
if (!task || !summary || !nextStep) {
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
fail('Usage: hippo snapshot save --task <task> --summary <summary> --next-step <step> ' +
|
|
18
|
+
'[--source <source>] [--session <session-id>]');
|
|
20
19
|
}
|
|
21
|
-
const snapshot = apiSnapshotSave(cliApiContext(hippoRoot, tenantId), {
|
|
20
|
+
const snapshot = await apiSnapshotSave(cliApiContext(hippoRoot, tenantId), {
|
|
22
21
|
task,
|
|
23
22
|
summary,
|
|
24
23
|
next_step: nextStep,
|
|
25
|
-
source:
|
|
24
|
+
source: stringFlagOrExit(flags, 'source') ?? 'cli',
|
|
26
25
|
session_id: sessionId || null,
|
|
27
26
|
});
|
|
28
27
|
console.log(`Saved active task snapshot #${snapshot.id}`);
|
|
@@ -32,16 +31,17 @@ function snapshotSave(hippoRoot, tenantId, flags) {
|
|
|
32
31
|
console.log(` Session: ${snapshot.session_id}`);
|
|
33
32
|
}
|
|
34
33
|
}
|
|
35
|
-
function snapshotClear(hippoRoot, tenantId, flags) {
|
|
36
|
-
const
|
|
34
|
+
async function snapshotClear(hippoRoot, tenantId, flags) {
|
|
35
|
+
const status = stringFlagOrExit(flags, 'status') ?? 'cleared';
|
|
36
|
+
const cleared = await apiSnapshotClear(cliApiContext(hippoRoot, tenantId), status);
|
|
37
37
|
if (!cleared) {
|
|
38
38
|
console.log('No active task snapshot to clear.');
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
41
|
console.log('Cleared active task snapshot.');
|
|
42
42
|
}
|
|
43
|
-
function snapshotShow(hippoRoot, tenantId, flags) {
|
|
44
|
-
const snapshot = snapshotLoad(cliApiContext(hippoRoot, tenantId));
|
|
43
|
+
async function snapshotShow(hippoRoot, tenantId, flags) {
|
|
44
|
+
const snapshot = await snapshotLoad(cliApiContext(hippoRoot, tenantId));
|
|
45
45
|
if (!snapshot) {
|
|
46
46
|
if (flags['json']) {
|
|
47
47
|
console.log(JSON.stringify({ snapshot: null }));
|
|
@@ -57,7 +57,7 @@ function snapshotShow(hippoRoot, tenantId, flags) {
|
|
|
57
57
|
}
|
|
58
58
|
printActiveTaskSnapshot(snapshot);
|
|
59
59
|
}
|
|
60
|
-
export function handleSnapshot({ hippoRoot, tenantId, args, flags }) {
|
|
60
|
+
export async function handleSnapshot({ hippoRoot, tenantId, args, flags }) {
|
|
61
61
|
requireInit(hippoRoot);
|
|
62
62
|
const subcommand = args[0] ?? 'show';
|
|
63
63
|
if (subcommand === 'save')
|
|
@@ -66,30 +66,29 @@ export function handleSnapshot({ hippoRoot, tenantId, args, flags }) {
|
|
|
66
66
|
return snapshotClear(hippoRoot, tenantId, flags);
|
|
67
67
|
if (subcommand === 'show')
|
|
68
68
|
return snapshotShow(hippoRoot, tenantId, flags);
|
|
69
|
-
|
|
70
|
-
throw new CliExit(1);
|
|
69
|
+
fail('Usage: hippo snapshot <save|show|clear>');
|
|
71
70
|
}
|
|
72
|
-
function sessionLog(hippoRoot, tenantId, s, flags) {
|
|
73
|
-
const eventType =
|
|
74
|
-
const content =
|
|
71
|
+
async function sessionLog(hippoRoot, tenantId, s, flags) {
|
|
72
|
+
const eventType = stringFlagOrExit(flags, 'type') ?? 'note';
|
|
73
|
+
const content = stringFlagOrExit(flags, 'content') ?? '';
|
|
75
74
|
if (!s.sessionId || !content) {
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
fail('Usage: hippo session log --id <session-id> --content <text> [--type <type>] [--task <task>] ' +
|
|
76
|
+
'[--source <source>]');
|
|
78
77
|
}
|
|
79
|
-
const event = sessionEventAppend(cliApiContext(hippoRoot, tenantId), {
|
|
78
|
+
const event = await sessionEventAppend(cliApiContext(hippoRoot, tenantId), {
|
|
80
79
|
session_id: s.sessionId,
|
|
81
80
|
task: s.task || null,
|
|
82
81
|
event_type: eventType || 'note',
|
|
83
82
|
content,
|
|
84
|
-
source:
|
|
83
|
+
source: stringFlagOrExit(flags, 'source') ?? 'cli',
|
|
85
84
|
});
|
|
86
85
|
console.log(`Logged session event #${event.id}`);
|
|
87
86
|
console.log(` Session: ${event.session_id}`);
|
|
88
87
|
console.log(` Type: ${event.event_type}`);
|
|
89
88
|
}
|
|
90
|
-
function sessionShow(hippoRoot, tenantId, s, flags) {
|
|
91
|
-
const events = sessionEventList(cliApiContext(hippoRoot, tenantId), {
|
|
92
|
-
|
|
89
|
+
async function sessionShow(hippoRoot, tenantId, s, flags) {
|
|
90
|
+
const events = await sessionEventList(cliApiContext(hippoRoot, tenantId), {
|
|
91
|
+
sessionId: s.sessionId || undefined,
|
|
93
92
|
task: s.task || undefined,
|
|
94
93
|
limit: s.limit,
|
|
95
94
|
});
|
|
@@ -99,8 +98,8 @@ function sessionShow(hippoRoot, tenantId, s, flags) {
|
|
|
99
98
|
}
|
|
100
99
|
printSessionEvents(events);
|
|
101
100
|
}
|
|
102
|
-
function sessionLatest(hippoRoot, tenantId, s, flags) {
|
|
103
|
-
const { snapshot, events } = continuityLatest(cliApiContext(hippoRoot, tenantId), {
|
|
101
|
+
async function sessionLatest(hippoRoot, tenantId, s, flags) {
|
|
102
|
+
const { snapshot, events } = await continuityLatest(cliApiContext(hippoRoot, tenantId), {
|
|
104
103
|
sessionId: s.sessionId,
|
|
105
104
|
limit: s.limit,
|
|
106
105
|
});
|
|
@@ -117,41 +116,39 @@ function sessionLatest(hippoRoot, tenantId, s, flags) {
|
|
|
117
116
|
}
|
|
118
117
|
printSessionEvents(events);
|
|
119
118
|
}
|
|
120
|
-
function sessionComplete(hippoRoot, tenantId, s, flags) {
|
|
119
|
+
async function sessionComplete(hippoRoot, tenantId, s, flags) {
|
|
121
120
|
const { sessionId, task } = s;
|
|
122
|
-
const outcomeRaw =
|
|
123
|
-
const summary =
|
|
121
|
+
const outcomeRaw = stringFlagOrExit(flags, 'outcome') ?? '';
|
|
122
|
+
const summary = stringFlagOrExit(flags, 'summary') ?? '';
|
|
124
123
|
if (!sessionId) {
|
|
125
|
-
|
|
126
|
-
throw new CliExit(1);
|
|
124
|
+
fail('Usage: hippo session complete --session <session-id> --outcome <success|failure|partial> [--summary "..."]');
|
|
127
125
|
}
|
|
128
126
|
if (!isHandoffOutcome(outcomeRaw)) {
|
|
129
|
-
|
|
130
|
-
throw new CliExit(1);
|
|
127
|
+
fail(`Invalid outcome: "${outcomeRaw}". Must be one of: success, failure, partial.`);
|
|
131
128
|
}
|
|
132
129
|
const outcome = outcomeRaw;
|
|
133
130
|
const metadata = { ended_at: new Date().toISOString() };
|
|
134
131
|
if (summary)
|
|
135
132
|
metadata.summary = summary;
|
|
136
|
-
const event = sessionEventAppend(cliApiContext(hippoRoot, tenantId), {
|
|
133
|
+
const event = await sessionEventAppend(cliApiContext(hippoRoot, tenantId), {
|
|
137
134
|
session_id: sessionId,
|
|
138
135
|
task: task || null,
|
|
139
136
|
event_type: 'session_complete',
|
|
140
137
|
content: outcome,
|
|
141
|
-
source:
|
|
138
|
+
source: stringFlagOrExit(flags, 'source') ?? 'cli',
|
|
142
139
|
metadata,
|
|
143
140
|
});
|
|
144
141
|
console.log(`Completed session ${event.session_id} with outcome=${outcome} (event #${event.id})`);
|
|
145
|
-
const stamped = handoffStampOutcome(cliApiContext(hippoRoot, tenantId), sessionId, outcome);
|
|
142
|
+
const stamped = await handoffStampOutcome(cliApiContext(hippoRoot, tenantId), sessionId, outcome);
|
|
146
143
|
if (stamped > 0) {
|
|
147
144
|
console.log(`Stamped outcome on handoff for session ${sessionId}`);
|
|
148
145
|
}
|
|
149
146
|
}
|
|
150
|
-
export function handleSession({ hippoRoot, tenantId, args, flags }) {
|
|
147
|
+
export async function handleSession({ hippoRoot, tenantId, args, flags }) {
|
|
151
148
|
requireInit(hippoRoot);
|
|
152
149
|
const subcommand = args[0] ?? 'show';
|
|
153
|
-
const sessionId =
|
|
154
|
-
const task =
|
|
150
|
+
const sessionId = stringFlagOrExit(flags, 'id') ?? stringFlagOrExit(flags, 'session') ?? '';
|
|
151
|
+
const task = stringFlagOrExit(flags, 'task') ?? '';
|
|
155
152
|
const limit = Math.max(1, numberFlag(flags, 'limit') || 8);
|
|
156
153
|
const s = { sessionId, task, limit };
|
|
157
154
|
if (subcommand === 'log')
|
|
@@ -164,11 +161,10 @@ export function handleSession({ hippoRoot, tenantId, args, flags }) {
|
|
|
164
161
|
return sessionComplete(hippoRoot, tenantId, s, flags);
|
|
165
162
|
if (subcommand === 'resume')
|
|
166
163
|
return sessionResume(hippoRoot, tenantId, sessionId);
|
|
167
|
-
|
|
168
|
-
throw new CliExit(1);
|
|
164
|
+
fail('Usage: hippo session <log|show|latest|resume|complete>');
|
|
169
165
|
}
|
|
170
|
-
function sessionResume(hippoRoot, tenantId, sessionId) {
|
|
171
|
-
const handoff = apiHandoffLatest(cliApiContext(hippoRoot, tenantId), sessionId || undefined);
|
|
166
|
+
async function sessionResume(hippoRoot, tenantId, sessionId) {
|
|
167
|
+
const handoff = await apiHandoffLatest(cliApiContext(hippoRoot, tenantId), sessionId || undefined);
|
|
172
168
|
if (!handoff) {
|
|
173
169
|
console.log('No handoff to resume from.');
|
|
174
170
|
return;
|
|
@@ -215,37 +211,30 @@ function sessionResume(hippoRoot, tenantId, sessionId) {
|
|
|
215
211
|
function flagList(value) {
|
|
216
212
|
return Array.isArray(value) ? value : (isStringFlag(value) ? [value] : []);
|
|
217
213
|
}
|
|
218
|
-
const HANDOFF_CREATE_USAGE = 'Usage: hippo handoff create --summary "..." [--next "..."] [--session <id>]
|
|
214
|
+
const HANDOFF_CREATE_USAGE = 'Usage: hippo handoff create --summary "..." [--next "..."] [--session <id>] ' +
|
|
215
|
+
'[--task <id>] [--artifact <path>...] ' +
|
|
219
216
|
'[--constraint <text>...] [--outcome <success|failure|partial>] [--target-runtime <name>] [--card-id <id>] ' +
|
|
220
217
|
'[--tests <pass|fail|unknown>]';
|
|
221
|
-
function handoffCreate(hippoRoot, tenantId, flags) {
|
|
222
|
-
const summary =
|
|
218
|
+
async function handoffCreate(hippoRoot, tenantId, flags) {
|
|
219
|
+
const summary = stringFlagOrExit(flags, 'summary') ?? '';
|
|
223
220
|
if (!summary) {
|
|
224
|
-
|
|
225
|
-
throw new CliExit(1);
|
|
221
|
+
fail(HANDOFF_CREATE_USAGE);
|
|
226
222
|
}
|
|
227
223
|
const outcomeRaw = flags['outcome'];
|
|
228
224
|
if (outcomeRaw !== undefined && !isHandoffOutcome(outcomeRaw)) {
|
|
229
|
-
|
|
230
|
-
throw new CliExit(1);
|
|
225
|
+
fail(`Invalid outcome: "${String(outcomeRaw)}". Must be one of: success, failure, partial.`);
|
|
231
226
|
}
|
|
232
|
-
const sessionId =
|
|
233
|
-
|
|
234
|
-
const
|
|
227
|
+
const sessionId = (stringFlagOrExit(flags, 'session') ?? stringFlagOrExit(flags, 'id') ?? '') ||
|
|
228
|
+
`fallback-${Date.now()}-${process.pid}`;
|
|
229
|
+
const nextAction = stringFlagOrExit(flags, 'next') || undefined;
|
|
230
|
+
const taskId = stringFlagOrExit(flags, 'task') || undefined;
|
|
235
231
|
const artifacts = flagList(flags['artifact']);
|
|
236
232
|
const constraints = flagList(flags['constraint']);
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
printError(`--${name} needs a value`);
|
|
241
|
-
throw new CliExit(1);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
const targetRuntime = String(flags['target-runtime'] ?? '').trim() || undefined;
|
|
245
|
-
const cardId = String(flags['card-id'] ?? '').trim() || undefined;
|
|
246
|
-
const testStatus = String(flags['tests'] ?? '').trim();
|
|
233
|
+
const targetRuntime = stringFlagOrExit(flags, 'target-runtime') || undefined;
|
|
234
|
+
const cardId = stringFlagOrExit(flags, 'card-id') || undefined;
|
|
235
|
+
const testStatus = stringFlagOrExit(flags, 'tests') ?? '';
|
|
247
236
|
const evidence = collectHandoffEvidence(process.cwd(), testStatus === 'pass' || testStatus === 'fail' ? testStatus : 'unknown');
|
|
248
|
-
const handoff = handoffSave(cliApiContext(hippoRoot, tenantId), {
|
|
237
|
+
const handoff = await handoffSave(cliApiContext(hippoRoot, tenantId), {
|
|
249
238
|
version: 1,
|
|
250
239
|
sessionId,
|
|
251
240
|
repoRoot: process.cwd(),
|
|
@@ -282,9 +271,9 @@ function printCreatedHandoff(handoff) {
|
|
|
282
271
|
if (handoff.evidence)
|
|
283
272
|
console.log(` Evidence: ${formatHandoffEvidenceLine(handoff.evidence)}`);
|
|
284
273
|
}
|
|
285
|
-
function handoffLatest(hippoRoot, tenantId, flags) {
|
|
286
|
-
const sessionId =
|
|
287
|
-
const handoff = apiHandoffLatest(cliApiContext(hippoRoot, tenantId), sessionId);
|
|
274
|
+
async function handoffLatest(hippoRoot, tenantId, flags) {
|
|
275
|
+
const sessionId = (stringFlagOrExit(flags, 'session') ?? stringFlagOrExit(flags, 'id') ?? '') || undefined;
|
|
276
|
+
const handoff = await apiHandoffLatest(cliApiContext(hippoRoot, tenantId), sessionId);
|
|
288
277
|
if (!handoff) {
|
|
289
278
|
if (flags['json']) {
|
|
290
279
|
console.log(JSON.stringify({ handoff: null }));
|
|
@@ -300,18 +289,16 @@ function handoffLatest(hippoRoot, tenantId, flags) {
|
|
|
300
289
|
}
|
|
301
290
|
printHandoff(handoff);
|
|
302
291
|
}
|
|
303
|
-
function handoffShow(hippoRoot, tenantId, args, flags) {
|
|
292
|
+
async function handoffShow(hippoRoot, tenantId, args, flags) {
|
|
304
293
|
const idArg = args[1];
|
|
305
294
|
if (!idArg) {
|
|
306
|
-
|
|
307
|
-
throw new CliExit(1);
|
|
295
|
+
fail('Usage: hippo handoff show <id> [--json]');
|
|
308
296
|
}
|
|
309
297
|
const handoffId = parseInt(idArg, 10);
|
|
310
298
|
if (!Number.isFinite(handoffId) || handoffId <= 0) {
|
|
311
|
-
|
|
312
|
-
throw new CliExit(1);
|
|
299
|
+
fail(`Invalid handoff ID: ${idArg}`);
|
|
313
300
|
}
|
|
314
|
-
const handoff = handoffById(cliApiContext(hippoRoot, tenantId), handoffId);
|
|
301
|
+
const handoff = await handoffById(cliApiContext(hippoRoot, tenantId), handoffId);
|
|
315
302
|
if (!handoff) {
|
|
316
303
|
if (flags['json']) {
|
|
317
304
|
console.log(JSON.stringify({ handoff: null }));
|
|
@@ -327,7 +314,7 @@ function handoffShow(hippoRoot, tenantId, args, flags) {
|
|
|
327
314
|
}
|
|
328
315
|
printHandoff(handoff);
|
|
329
316
|
}
|
|
330
|
-
export function handleHandoff({ hippoRoot, tenantId, args, flags }) {
|
|
317
|
+
export async function handleHandoff({ hippoRoot, tenantId, args, flags }) {
|
|
331
318
|
requireInit(hippoRoot);
|
|
332
319
|
const subcommand = args[0] ?? 'latest';
|
|
333
320
|
if (subcommand === 'create')
|
|
@@ -336,8 +323,7 @@ export function handleHandoff({ hippoRoot, tenantId, args, flags }) {
|
|
|
336
323
|
return handoffLatest(hippoRoot, tenantId, flags);
|
|
337
324
|
if (subcommand === 'show')
|
|
338
325
|
return handoffShow(hippoRoot, tenantId, args, flags);
|
|
339
|
-
|
|
340
|
-
throw new CliExit(1);
|
|
326
|
+
fail('Usage: hippo handoff <create|latest|show>');
|
|
341
327
|
}
|
|
342
328
|
function printCurrentState(snapshot, events) {
|
|
343
329
|
console.log('# Current State\n');
|
|
@@ -362,9 +348,9 @@ function printCurrentState(snapshot, events) {
|
|
|
362
348
|
}
|
|
363
349
|
}
|
|
364
350
|
}
|
|
365
|
-
function currentShow(hippoRoot, tenantId, flags) {
|
|
351
|
+
async function currentShow(hippoRoot, tenantId, flags) {
|
|
366
352
|
const asJson = boolFlag(flags, 'json');
|
|
367
|
-
const { snapshot, events } = continuityLatest(cliApiContext(hippoRoot, tenantId), { limit: 5 });
|
|
353
|
+
const { snapshot, events } = await continuityLatest(cliApiContext(hippoRoot, tenantId), { limit: 5 });
|
|
368
354
|
if (asJson) {
|
|
369
355
|
console.log(JSON.stringify({
|
|
370
356
|
snapshot: snapshot ?? null,
|
|
@@ -384,16 +370,15 @@ function currentShow(hippoRoot, tenantId, flags) {
|
|
|
384
370
|
}
|
|
385
371
|
printCurrentState(snapshot, events);
|
|
386
372
|
}
|
|
387
|
-
export function handleCurrent({ hippoRoot, tenantId, args, flags }) {
|
|
373
|
+
export async function handleCurrent({ hippoRoot, tenantId, args, flags }) {
|
|
388
374
|
requireInit(hippoRoot);
|
|
389
375
|
const subcommand = args[0] ?? 'show';
|
|
390
376
|
if (subcommand === 'show')
|
|
391
377
|
return currentShow(hippoRoot, tenantId, flags);
|
|
392
|
-
|
|
393
|
-
throw new CliExit(1);
|
|
378
|
+
fail('Usage: hippo current <show>');
|
|
394
379
|
}
|
|
395
380
|
// Working Memory
|
|
396
|
-
export function handleWm({ hippoRoot, tenantId, args, flags }) {
|
|
381
|
+
export async function handleWm({ hippoRoot, tenantId, args, flags }) {
|
|
397
382
|
requireInit(hippoRoot);
|
|
398
383
|
const subcommand = args[0] ?? '';
|
|
399
384
|
if (subcommand === 'push')
|
|
@@ -401,34 +386,32 @@ export function handleWm({ hippoRoot, tenantId, args, flags }) {
|
|
|
401
386
|
if (subcommand === 'read')
|
|
402
387
|
return wmReadCmd(hippoRoot, tenantId, flags);
|
|
403
388
|
if (subcommand === 'clear') {
|
|
404
|
-
const scope = flags
|
|
405
|
-
const sessionId = flags
|
|
406
|
-
const count = workingMemoryClear(cliApiContext(hippoRoot, tenantId), { scope, sessionId });
|
|
389
|
+
const scope = stringFlagOrExit(flags, 'scope') || undefined;
|
|
390
|
+
const sessionId = stringFlagOrExit(flags, 'session') || undefined;
|
|
391
|
+
const count = await workingMemoryClear(cliApiContext(hippoRoot, tenantId), { scope, sessionId });
|
|
407
392
|
console.log(`Cleared ${count} working memory entries.`);
|
|
408
393
|
return;
|
|
409
394
|
}
|
|
410
395
|
if (subcommand === 'flush') {
|
|
411
|
-
const scope = flags
|
|
412
|
-
const sessionId = flags
|
|
413
|
-
const count = workingMemoryFlush(cliApiContext(hippoRoot, tenantId), { scope, sessionId });
|
|
396
|
+
const scope = stringFlagOrExit(flags, 'scope') || undefined;
|
|
397
|
+
const sessionId = stringFlagOrExit(flags, 'session') || undefined;
|
|
398
|
+
const count = await workingMemoryFlush(cliApiContext(hippoRoot, tenantId), { scope, sessionId });
|
|
414
399
|
console.log(`Flushed ${count} working memory entries.`);
|
|
415
400
|
return;
|
|
416
401
|
}
|
|
417
|
-
|
|
418
|
-
throw new CliExit(1);
|
|
402
|
+
fail('Usage: hippo wm <push|read|clear|flush>');
|
|
419
403
|
}
|
|
420
404
|
const WM_DEFAULT_IMPORTANCE = 0.5;
|
|
421
|
-
function wmPushCmd(hippoRoot, tenantId, flags) {
|
|
422
|
-
const scope =
|
|
423
|
-
const content =
|
|
405
|
+
async function wmPushCmd(hippoRoot, tenantId, flags) {
|
|
406
|
+
const scope = stringFlagOrExit(flags, 'scope') ?? 'default';
|
|
407
|
+
const content = stringFlagOrExit(flags, 'content') ?? '';
|
|
424
408
|
const importance = numberFlag(flags, 'importance') ?? WM_DEFAULT_IMPORTANCE;
|
|
425
|
-
const sessionId = flags
|
|
426
|
-
const taskId = flags
|
|
409
|
+
const sessionId = stringFlagOrExit(flags, 'session') || undefined;
|
|
410
|
+
const taskId = stringFlagOrExit(flags, 'task') || undefined;
|
|
427
411
|
if (!content) {
|
|
428
|
-
|
|
429
|
-
throw new CliExit(1);
|
|
412
|
+
fail('Usage: hippo wm push --scope <scope> --content "..." [--importance 0.8] [--session <id>] [--task <id>]');
|
|
430
413
|
}
|
|
431
|
-
const id = workingMemoryPush(cliApiContext(hippoRoot, tenantId), {
|
|
414
|
+
const id = await workingMemoryPush(cliApiContext(hippoRoot, tenantId), {
|
|
432
415
|
scope,
|
|
433
416
|
content,
|
|
434
417
|
importance,
|
|
@@ -437,11 +420,11 @@ function wmPushCmd(hippoRoot, tenantId, flags) {
|
|
|
437
420
|
});
|
|
438
421
|
console.log(`Pushed working memory #${id} (scope=${scope}, importance=${importance})`);
|
|
439
422
|
}
|
|
440
|
-
function wmReadCmd(hippoRoot, tenantId, flags) {
|
|
441
|
-
const scope = flags
|
|
442
|
-
const sessionId = flags
|
|
423
|
+
async function wmReadCmd(hippoRoot, tenantId, flags) {
|
|
424
|
+
const scope = stringFlagOrExit(flags, 'scope') || undefined;
|
|
425
|
+
const sessionId = stringFlagOrExit(flags, 'session') || undefined;
|
|
443
426
|
const limit = numberFlag(flags, 'limit') || 20;
|
|
444
|
-
const items = workingMemoryRead(cliApiContext(hippoRoot, tenantId), { scope, sessionId, limit });
|
|
427
|
+
const items = await workingMemoryRead(cliApiContext(hippoRoot, tenantId), { scope, sessionId, limit });
|
|
445
428
|
if (flags['json']) {
|
|
446
429
|
console.log(JSON.stringify({ items }, null, 2));
|
|
447
430
|
return;
|
package/dist/cli/curate.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { type CommandContext } from './flag-values.js';
|
|
2
2
|
export declare function handleOutcome({ hippoRoot, tenantId, flags }: CommandContext): Promise<void>;
|
|
3
|
-
export declare function handleConflicts({ hippoRoot, tenantId, flags }: CommandContext): void
|
|
3
|
+
export declare function handleConflicts({ hippoRoot, tenantId, flags }: CommandContext): Promise<void>;
|
|
4
4
|
export declare function handleResolve({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
5
5
|
export declare function handleReject({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
6
6
|
export declare function handleRejections({ hippoRoot, tenantId, flags }: CommandContext): void;
|
|
7
7
|
export declare function handleUnreject({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
8
8
|
/** `hippo dormant [list|restore <id>|forget <id>]`: dormant memories are what sleep keeps instead of deleting
|
|
9
9
|
* (on by default; `"dormant": { "enabled": false }` in .hippo/config.json deletes instead). */
|
|
10
|
-
export declare function handleDormant({ hippoRoot, tenantId, args, flags }: CommandContext): void
|
|
11
|
-
/** `hippo quarantine [list] [--all] [--json] [--global]`,
|
|
10
|
+
export declare function handleDormant({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
11
|
+
/** `hippo quarantine [list] [--all] [--json] [--global]`,
|
|
12
|
+
* `quarantine approve <id>`, `quarantine reject <id>` (poisoning defence). */
|
|
12
13
|
export declare function handleQuarantine({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
13
14
|
export declare function handleForget({ hippoRoot, tenantId, args, flags }: CommandContext): Promise<void>;
|
|
14
15
|
export declare function handleInvalidate({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|