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/last-sleep.js
CHANGED
|
@@ -4,19 +4,24 @@ import { isStringValue } from '../core/capture-contract.js';
|
|
|
4
4
|
import { REPLAY_AFTER_MS } from '../core/compaction-timing.js';
|
|
5
5
|
import { SPOOL_PROBLEM, spoolCounts } from '../capture/compaction-spool.js';
|
|
6
6
|
import { defaultSleepLogPath } from '../hooks/shared.js';
|
|
7
|
-
import { errorMessage, log } from '../util/log.js';
|
|
7
|
+
import { errorMessage, log, errorFields } from '../util/log.js';
|
|
8
8
|
import { truncateCodePointSafe } from '../util/transcript-tail.js';
|
|
9
9
|
import { printError } from './output.js';
|
|
10
10
|
import { hookStoreRoot } from './hook-runtime.js';
|
|
11
11
|
const SLEEP_FAILED = '[hippo] sleep failed: ';
|
|
12
12
|
const FAILURE_CHARS = 120;
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* The line the user sees when the last sleep failed, a spool step hit an unexpected error, or the spool holds `.bad`
|
|
15
|
+
* files; null when none did.
|
|
16
|
+
*/
|
|
14
17
|
export function sleepProblems(logText, bad) {
|
|
15
18
|
const lines = logText.split(/\r?\n/);
|
|
16
19
|
const failed = lines.find((line) => line.startsWith(SLEEP_FAILED));
|
|
17
20
|
const errors = lines.filter((line) => line.includes(SPOOL_PROBLEM)).length;
|
|
18
21
|
const parts = [
|
|
19
|
-
failed === undefined
|
|
22
|
+
failed === undefined
|
|
23
|
+
? ''
|
|
24
|
+
: `the last sleep failed (${truncateCodePointSafe(failed.slice(SLEEP_FAILED.length).trim(), FAILURE_CHARS)})`,
|
|
20
25
|
errors === 0 ? '' : `${errors} error${errors === 1 ? '' : 's'} while saving waiting compaction summaries`,
|
|
21
26
|
bad === 0 ? '' : `${bad} compaction ${bad === 1 ? 'summary' : 'summaries'} set aside as .bad`,
|
|
22
27
|
].filter((part) => part !== '');
|
|
@@ -63,7 +68,7 @@ export function cmdLastSleep(hippoRoot, flags, out = process.stdout.isTTY ? 'ter
|
|
|
63
68
|
fs.unlinkSync(logPath);
|
|
64
69
|
}
|
|
65
70
|
catch (err) {
|
|
66
|
-
log.debug(`last-sleep log not removed, it shows again next session: ${errorMessage(err)}
|
|
71
|
+
log.debug(`last-sleep log not removed, it shows again next session: ${errorMessage(err)}`, errorFields(err));
|
|
67
72
|
}
|
|
68
73
|
}
|
|
69
74
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type EmbeddingProvider } from '../embeddings/provider.js';
|
|
2
2
|
import { type CommandContext } from './flag-values.js';
|
|
3
3
|
export declare function handleRefine({ hippoRoot, tenantId, flags }: CommandContext): Promise<void>;
|
|
4
|
-
export declare function handleDedup({ hippoRoot, tenantId, flags }: CommandContext): void
|
|
4
|
+
export declare function handleDedup({ hippoRoot, tenantId, flags }: CommandContext): Promise<void>;
|
|
5
5
|
export declare function handleEmbed({ hippoRoot, tenantId, flags }: CommandContext, given?: EmbeddingProvider): Promise<void>;
|
|
6
6
|
//# sourceMappingURL=maintenance.d.ts.map
|
package/dist/cli/maintenance.js
CHANGED
|
@@ -3,15 +3,15 @@ import { envAnthropicApiKey } from '../util/env.js';
|
|
|
3
3
|
import { deduplicateStore } from '../consolidate/dedupe.js';
|
|
4
4
|
import { resolveEmbeddingProvider } from '../embeddings/provider.js';
|
|
5
5
|
import { embedCoverage, embedMissingMemories, resetPhysicsFromVectors, storedVectorCount } from '../api/embeddings.js';
|
|
6
|
-
import { countAllMemories } from '../api/memories.js';
|
|
7
|
-
import { cliApiContext } from './api-context.js';
|
|
6
|
+
import { countAllMemories } from '../api/memories/memories.js';
|
|
7
|
+
import { cliApiContext, cliLocalFiles } from './api-context.js';
|
|
8
8
|
import { loadConfig } from '../core/config.js';
|
|
9
9
|
import { refineStore } from './refine-llm.js';
|
|
10
10
|
import { printError } from './output.js';
|
|
11
|
-
import { boolFlag, numberFlag } from './flag-values.js';
|
|
11
|
+
import { boolFlag, numberFlag, stringFlagOrExit } from './flag-values.js';
|
|
12
12
|
import { requireInit, resolveAuthRoot } from './shared.js';
|
|
13
13
|
import { errorMessage } from '../util/log.js';
|
|
14
|
-
import {
|
|
14
|
+
import { fail } from './exit.js';
|
|
15
15
|
const MAX_FAILED_SHOWN = 5;
|
|
16
16
|
const MAX_PAIRS_SHOWN = 15;
|
|
17
17
|
const PAIR_PREVIEW_CHARS = 90;
|
|
@@ -19,13 +19,12 @@ export async function handleRefine({ hippoRoot, tenantId, flags }) {
|
|
|
19
19
|
requireInit(hippoRoot);
|
|
20
20
|
const apiKey = envAnthropicApiKey();
|
|
21
21
|
if (!apiKey) {
|
|
22
|
-
|
|
23
|
-
throw new CliExit(1);
|
|
22
|
+
fail('hippo refine needs ANTHROPIC_API_KEY in the environment.');
|
|
24
23
|
}
|
|
25
24
|
const dryRun = boolFlag(flags, 'dry-run');
|
|
26
25
|
const all = boolFlag(flags, 'all');
|
|
27
26
|
const limit = numberFlag(flags, 'limit');
|
|
28
|
-
const model = flags
|
|
27
|
+
const model = stringFlagOrExit(flags, 'model') || undefined;
|
|
29
28
|
const asJson = boolFlag(flags, 'json');
|
|
30
29
|
const result = await refineStore(hippoRoot, {
|
|
31
30
|
apiKey,
|
|
@@ -50,15 +49,15 @@ export async function handleRefine({ hippoRoot, tenantId, flags }) {
|
|
|
50
49
|
}
|
|
51
50
|
}
|
|
52
51
|
}
|
|
53
|
-
export function handleDedup({ hippoRoot, tenantId, flags }) {
|
|
52
|
+
export async function handleDedup({ hippoRoot, tenantId, flags }) {
|
|
54
53
|
requireInit(hippoRoot);
|
|
55
54
|
const dryRun = boolFlag(flags, 'dry-run');
|
|
56
55
|
if (flags['threshold'] !== undefined) {
|
|
57
56
|
printError('hippo dedup: --threshold is ignored; a duplicate is the same text apart from spacing.');
|
|
58
57
|
}
|
|
59
|
-
const total = countAllMemories(cliApiContext(hippoRoot, tenantId));
|
|
58
|
+
const total = await countAllMemories(cliApiContext(hippoRoot, tenantId));
|
|
60
59
|
console.log(`Scanning ${total} memories for duplicates (same text apart from spacing)${dryRun ? ' (dry run)' : ''}...\n`);
|
|
61
|
-
const result = deduplicateStore(hippoRoot, { dryRun });
|
|
60
|
+
const result = deduplicateStore(cliLocalFiles(hippoRoot).consolidation, { dryRun });
|
|
62
61
|
if (result.removed === 0) {
|
|
63
62
|
console.log('No duplicates found.');
|
|
64
63
|
return;
|
|
@@ -105,8 +104,8 @@ export async function handleEmbed({ hippoRoot, tenantId, flags }, given) {
|
|
|
105
104
|
// so it heals pre-1.27.0 global stores from a directory with no local .hippo.
|
|
106
105
|
const root = resolveAuthRoot(hippoRoot, flags);
|
|
107
106
|
const ctx = cliApiContext(root, tenantId);
|
|
108
|
-
// --status and --reset-physics only read cached state, so they must work with no provider key (e.g. removed after an
|
|
109
|
-
// the provider-availability gate is deferred to the embed path.
|
|
107
|
+
// --status and --reset-physics only read cached state, so they must work with no provider key (e.g. removed after an
|
|
108
|
+
// earlier embed); the provider-availability gate is deferred to the embed path.
|
|
110
109
|
if (flags['reset-physics']) {
|
|
111
110
|
resetPhysics(ctx);
|
|
112
111
|
return;
|
package/dist/cli/notes.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const handleCustomerNote: (ctx: import("./flag-values.js").CommandContext) => void
|
|
1
|
+
export declare const handleCustomerNote: (ctx: import("./flag-values.js").CommandContext) => Promise<void>;
|
|
2
2
|
//# sourceMappingURL=notes.d.ts.map
|
package/dist/cli/notes.js
CHANGED
|
@@ -7,7 +7,7 @@ function printNoteRow(n) {
|
|
|
7
7
|
if (n.changeSummary)
|
|
8
8
|
console.log(` change: ${n.changeSummary}`);
|
|
9
9
|
}
|
|
10
|
-
const noteKind = (hippoRoot, tenantId) => ({
|
|
10
|
+
const noteKind = (objects, hippoRoot, tenantId) => ({
|
|
11
11
|
names: { cmd: 'note', noun: 'Customer note', idLabel: 'note' },
|
|
12
12
|
plural: 'customer notes',
|
|
13
13
|
states: customerNotesModule.VALID_NOTE_STATES,
|
|
@@ -22,13 +22,16 @@ const noteKind = (hippoRoot, tenantId) => ({
|
|
|
22
22
|
bodyRequired: '--text "<note>"',
|
|
23
23
|
body: (flags) => requiredText(flags, 'text'),
|
|
24
24
|
keyOf: (n) => n.customer,
|
|
25
|
-
save: (customer, note, extraTags, from) => customerNotesModule.saveCustomerNote(hippoRoot, tenantId, {
|
|
25
|
+
save: (customer, note, extraTags, from) => customerNotesModule.saveCustomerNote(objects, hippoRoot, tenantId, {
|
|
26
26
|
customer, note, extraTags, changeSummary: from?.changeSummary, supersedesNoteId: from?.id,
|
|
27
27
|
}),
|
|
28
28
|
recorded: (n) => `Customer note recorded: #${n.id} (v${n.version}) for customer "${n.customer}"`,
|
|
29
|
-
list: (opts, flags) => customerNotesModule.loadCustomerNotes(
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
list: (opts, flags) => customerNotesModule.loadCustomerNotes(objects, tenantId, {
|
|
30
|
+
...opts,
|
|
31
|
+
customer: stringFlag(flags, 'customer')?.trim() || undefined,
|
|
32
|
+
}),
|
|
33
|
+
loadById: (id) => customerNotesModule.loadCustomerNoteById(objects, tenantId, id),
|
|
34
|
+
close: (id) => customerNotesModule.closeCustomerNote(objects, tenantId, id),
|
|
32
35
|
printRow: printNoteRow,
|
|
33
36
|
printDetail: (n) => {
|
|
34
37
|
console.log(` customer: ${n.customer}`);
|
|
@@ -9,10 +9,10 @@ export interface ObjectListSpec<O, S extends string> {
|
|
|
9
9
|
readonly load: (opts: {
|
|
10
10
|
status?: S;
|
|
11
11
|
limit: number;
|
|
12
|
-
}) => readonly O[]
|
|
12
|
+
}) => Promise<readonly O[]>;
|
|
13
13
|
readonly printRow: (o: O) => void;
|
|
14
14
|
}
|
|
15
|
-
export declare function listObjects<O, S extends string>(flags: CliFlags, spec: ObjectListSpec<O, S>): void
|
|
15
|
+
export declare function listObjects<O, S extends string>(flags: CliFlags, spec: ObjectListSpec<O, S>): Promise<void>;
|
|
16
16
|
/** The `<id>` after the subcommand; prints `usage` and exits 1 when it is missing. */
|
|
17
17
|
export declare function idArgOrExit(args: string[], usage: string, label: string): number;
|
|
18
18
|
export declare function foundOrExit<O>(found: O | null | undefined, noun: string, id: number): O;
|
|
@@ -23,9 +23,9 @@ export interface ObjectNames {
|
|
|
23
23
|
readonly idLabel: string;
|
|
24
24
|
}
|
|
25
25
|
/** `hippo <cmd> close <id>` for a kind whose close call returns the closed row. */
|
|
26
|
-
export declare function closeObject(args: string[], names: ObjectNames, close: (id: number) => {
|
|
26
|
+
export declare function closeObject(args: string[], names: ObjectNames, close: (id: number) => Promise<{
|
|
27
27
|
id: number;
|
|
28
|
-
}): void
|
|
28
|
+
}>): Promise<void>;
|
|
29
29
|
interface LifecycleTail {
|
|
30
30
|
readonly changeSummary?: string | null;
|
|
31
31
|
readonly supersededBy: number | null;
|
package/dist/cli/object-verbs.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
// The status, list, id and not-found paths the typed-object verbs (process, policy, skill, brief, note, decide,
|
|
2
|
-
|
|
1
|
+
// The status, list, id and not-found paths the typed-object verbs (process, policy, skill, brief, note, decide,
|
|
2
|
+
// incident, predict) share.
|
|
3
3
|
import { parseListLimit, parsePositiveId, stringFlag } from './flag-values.js';
|
|
4
|
-
import {
|
|
4
|
+
import { fail } from './exit.js';
|
|
5
5
|
/** The member of `states` named by `status`, or exit 1 with the message that lists every allowed value. */
|
|
6
6
|
export function requireStatus(status, states) {
|
|
7
7
|
const found = [...states].find((s) => s === status);
|
|
8
8
|
if (found === undefined) {
|
|
9
|
-
|
|
10
|
-
throw new CliExit(1);
|
|
9
|
+
fail(`Invalid --status: "${status}". Must be one of: ${[...states, 'all'].join(' | ')}.`);
|
|
11
10
|
}
|
|
12
11
|
return found;
|
|
13
12
|
}
|
|
@@ -16,10 +15,10 @@ export function statusFilter(flags, states) {
|
|
|
16
15
|
const status = stringFlag(flags, 'status')?.trim() ?? 'all';
|
|
17
16
|
return status === 'all' ? undefined : requireStatus(status, states);
|
|
18
17
|
}
|
|
19
|
-
export function listObjects(flags, spec) {
|
|
18
|
+
export async function listObjects(flags, spec) {
|
|
20
19
|
const limit = parseListLimit(flags);
|
|
21
20
|
const status = statusFilter(flags, spec.states);
|
|
22
|
-
const results = spec.load(status === undefined ? { limit } : { status, limit });
|
|
21
|
+
const results = await spec.load(status === undefined ? { limit } : { status, limit });
|
|
23
22
|
if (results.length === 0) {
|
|
24
23
|
console.log(`No ${spec.plural}.`);
|
|
25
24
|
return;
|
|
@@ -32,22 +31,20 @@ export function listObjects(flags, spec) {
|
|
|
32
31
|
export function idArgOrExit(args, usage, label) {
|
|
33
32
|
const idRaw = args[1];
|
|
34
33
|
if (!idRaw) {
|
|
35
|
-
|
|
36
|
-
throw new CliExit(1);
|
|
34
|
+
fail(usage);
|
|
37
35
|
}
|
|
38
36
|
return parsePositiveId(idRaw, label);
|
|
39
37
|
}
|
|
40
38
|
export function foundOrExit(found, noun, id) {
|
|
41
39
|
if (!found) {
|
|
42
|
-
|
|
43
|
-
throw new CliExit(1);
|
|
40
|
+
fail(`${noun} ${id} not found.`);
|
|
44
41
|
}
|
|
45
42
|
return found;
|
|
46
43
|
}
|
|
47
44
|
/** `hippo <cmd> close <id>` for a kind whose close call returns the closed row. */
|
|
48
|
-
export function closeObject(args, names, close) {
|
|
45
|
+
export async function closeObject(args, names, close) {
|
|
49
46
|
const id = idArgOrExit(args, `Usage: hippo ${names.cmd} close <id>`, names.idLabel);
|
|
50
|
-
console.log(`${names.noun} #${close(id).id} closed.`);
|
|
47
|
+
console.log(`${names.noun} #${(await close(id)).id} closed.`);
|
|
51
48
|
}
|
|
52
49
|
/** The detail lines every `get` ends with. */
|
|
53
50
|
export function printLifecycleTail(o) {
|
package/dist/cli/open-browser.js
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
// Best-effort browser launch for CLI verbs that write a file.
|
|
2
2
|
import { spawn } from 'child_process';
|
|
3
|
-
import { errorMessage, log } from '../util/log.js';
|
|
3
|
+
import { errorMessage, log, errorFields } from '../util/log.js';
|
|
4
|
+
// cmd.exe re-reads `start`'s argument as a command line, so one of these in the file name would end it and run the
|
|
5
|
+
// rest.
|
|
6
|
+
const CMD_METACHARS = /[&|<>^%!"\r\n]/;
|
|
4
7
|
/** `launch` is the process starter; tests hand in a stand-in. */
|
|
5
8
|
export function openInBrowser(out, launch = spawn) {
|
|
9
|
+
if (process.platform === 'win32' && CMD_METACHARS.test(out)) {
|
|
10
|
+
log.warn(`graph view: not opening ${out} in the browser, since cmd.exe would run part of its name as a command; open ` +
|
|
11
|
+
`the file by hand`);
|
|
12
|
+
process.exitCode = 1;
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
6
15
|
// Best-effort browser launch; never fail the command if it doesn't work.
|
|
7
16
|
try {
|
|
8
17
|
const [cmd, cmdArgs] = process.platform === 'win32'
|
|
@@ -20,7 +29,7 @@ export function openInBrowser(out, launch = spawn) {
|
|
|
20
29
|
}
|
|
21
30
|
catch (err) {
|
|
22
31
|
// The file is written and its path printed above, so a browser that will not start costs nothing.
|
|
23
|
-
log.debug(`browser not opened: ${errorMessage(err)}
|
|
32
|
+
log.debug(`browser not opened: ${errorMessage(err)}`, errorFields(err));
|
|
24
33
|
}
|
|
25
34
|
}
|
|
26
35
|
//# sourceMappingURL=open-browser.js.map
|
package/dist/cli/playbooks.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const handleProcess: (ctx: import("./flag-values.js").CommandContext) => void
|
|
2
|
-
export declare const handlePolicy: (ctx: import("./flag-values.js").CommandContext) => void
|
|
3
|
-
export declare const handleSkill: (ctx: import("./flag-values.js").CommandContext) => void
|
|
1
|
+
export declare const handleProcess: (ctx: import("./flag-values.js").CommandContext) => Promise<void>;
|
|
2
|
+
export declare const handlePolicy: (ctx: import("./flag-values.js").CommandContext) => Promise<void>;
|
|
3
|
+
export declare const handleSkill: (ctx: import("./flag-values.js").CommandContext) => Promise<void>;
|
|
4
4
|
//# sourceMappingURL=playbooks.d.ts.map
|
package/dist/cli/playbooks.js
CHANGED
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
import * as processesModule from '../objects/processes.js';
|
|
3
3
|
import * as policiesModule from '../objects/policies.js';
|
|
4
4
|
import * as skillsModule from '../objects/skills.js';
|
|
5
|
-
import { printError } from './output.js';
|
|
6
5
|
import { isStringFlag, nonEmptyStringFlag } from './flag-values.js';
|
|
7
6
|
import { errorMessage } from '../util/log.js';
|
|
8
|
-
import {
|
|
7
|
+
import { fail } from './exit.js';
|
|
9
8
|
import { requiredText, versionedVerbs } from './versioned-verbs.js';
|
|
10
9
|
// --step is a repeatable flag (collected into an array by parseArgs). A single
|
|
11
10
|
// --step yields a string; normalize both to string[]. A value-less --step errors.
|
|
@@ -15,8 +14,7 @@ function collectProcessSteps(stepRaw) {
|
|
|
15
14
|
if (isStringFlag(stepRaw))
|
|
16
15
|
return [stepRaw];
|
|
17
16
|
if (stepRaw === true) {
|
|
18
|
-
|
|
19
|
-
throw new CliExit(1);
|
|
17
|
+
fail('--step requires a value, e.g. hippo process new "<name>" --step "do X".');
|
|
20
18
|
}
|
|
21
19
|
return [];
|
|
22
20
|
}
|
|
@@ -26,7 +24,7 @@ function printProcessRow(proc) {
|
|
|
26
24
|
if (proc.changeSummary)
|
|
27
25
|
console.log(` change: ${proc.changeSummary}`);
|
|
28
26
|
}
|
|
29
|
-
const processKind = (hippoRoot, tenantId) => ({
|
|
27
|
+
const processKind = (objects, hippoRoot, tenantId) => ({
|
|
30
28
|
names: { cmd: 'process', noun: 'Process', idLabel: 'process' },
|
|
31
29
|
plural: 'processes',
|
|
32
30
|
states: processesModule.VALID_PROCESS_STATES,
|
|
@@ -47,13 +45,17 @@ const processKind = (hippoRoot, tenantId) => ({
|
|
|
47
45
|
return { steps, description: nonEmptyStringFlag(flags, 'description') };
|
|
48
46
|
},
|
|
49
47
|
keyOf: (proc) => proc.processName,
|
|
50
|
-
save: (processName, body, extraTags, from) => processesModule.saveProcess(hippoRoot, tenantId, {
|
|
51
|
-
processName,
|
|
48
|
+
save: (processName, body, extraTags, from) => processesModule.saveProcess(objects, hippoRoot, tenantId, {
|
|
49
|
+
processName,
|
|
50
|
+
...body,
|
|
51
|
+
extraTags,
|
|
52
|
+
changeSummary: from?.changeSummary,
|
|
53
|
+
supersedesProcessId: from?.id,
|
|
52
54
|
}),
|
|
53
55
|
recorded: (proc) => `Process recorded: #${proc.id} (v${proc.version}, ${proc.steps.length} steps)`,
|
|
54
|
-
list: (opts) => processesModule.loadProcesses(
|
|
55
|
-
loadById: (id) => processesModule.loadProcessById(
|
|
56
|
-
close: (id) => processesModule.closeProcess(
|
|
56
|
+
list: (opts) => processesModule.loadProcesses(objects, tenantId, opts),
|
|
57
|
+
loadById: (id) => processesModule.loadProcessById(objects, tenantId, id),
|
|
58
|
+
close: (id) => processesModule.closeProcess(objects, tenantId, id),
|
|
57
59
|
printRow: printProcessRow,
|
|
58
60
|
printDetail: (proc) => {
|
|
59
61
|
console.log(` name: ${proc.processName}`);
|
|
@@ -75,20 +77,18 @@ function printPolicyRow(p) {
|
|
|
75
77
|
if (p.changeSummary)
|
|
76
78
|
console.log(` change: ${p.changeSummary}`);
|
|
77
79
|
}
|
|
78
|
-
function policyAsOf(
|
|
80
|
+
async function policyAsOf(objects, tenantId, args, flags) {
|
|
79
81
|
const dateRaw = args[1];
|
|
80
82
|
if (!dateRaw) {
|
|
81
|
-
|
|
82
|
-
throw new CliExit(1);
|
|
83
|
+
fail('Usage: hippo policy asof <iso-date> [--name "<policy>"]');
|
|
83
84
|
}
|
|
84
85
|
const name = nonEmptyStringFlag(flags, 'name');
|
|
85
86
|
let results;
|
|
86
87
|
try {
|
|
87
|
-
results = policiesModule.
|
|
88
|
+
results = await policiesModule.policiesAsOf(objects, tenantId, dateRaw, { name });
|
|
88
89
|
}
|
|
89
90
|
catch (e) {
|
|
90
|
-
|
|
91
|
-
throw new CliExit(1);
|
|
91
|
+
fail(errorMessage(e));
|
|
92
92
|
}
|
|
93
93
|
if (results.length === 0) {
|
|
94
94
|
console.log(`No active policies in force at ${dateRaw}${name ? ` for "${name}"` : ''}.`);
|
|
@@ -98,7 +98,7 @@ function policyAsOf(hippoRoot, tenantId, args, flags) {
|
|
|
98
98
|
for (const p of results)
|
|
99
99
|
printPolicyRow(p);
|
|
100
100
|
}
|
|
101
|
-
const policyKind = (hippoRoot, tenantId) => ({
|
|
101
|
+
const policyKind = (objects, hippoRoot, tenantId) => ({
|
|
102
102
|
names: { cmd: 'policy', noun: 'Policy', idLabel: 'policy' },
|
|
103
103
|
plural: 'policies',
|
|
104
104
|
states: policiesModule.VALID_POLICY_STATES,
|
|
@@ -119,13 +119,17 @@ const policyKind = (hippoRoot, tenantId) => ({
|
|
|
119
119
|
return { policyText, validFrom: nonEmptyStringFlag(flags, 'from'), validTo: nonEmptyStringFlag(flags, 'to') };
|
|
120
120
|
},
|
|
121
121
|
keyOf: (p) => p.policyName,
|
|
122
|
-
save: (policyName, body, extraTags, from) => policiesModule.savePolicy(hippoRoot, tenantId, {
|
|
123
|
-
policyName,
|
|
122
|
+
save: (policyName, body, extraTags, from) => policiesModule.savePolicy(objects, hippoRoot, tenantId, {
|
|
123
|
+
policyName,
|
|
124
|
+
...body,
|
|
125
|
+
extraTags,
|
|
126
|
+
changeSummary: from?.changeSummary,
|
|
127
|
+
supersedesPolicyId: from?.id,
|
|
124
128
|
}),
|
|
125
129
|
recorded: (p) => `Policy recorded: #${p.id} (v${p.version}, effective ${policyRange(p)})`,
|
|
126
|
-
list: (opts) => policiesModule.loadPolicies(
|
|
127
|
-
loadById: (id) => policiesModule.loadPolicyById(
|
|
128
|
-
close: (id) => policiesModule.closePolicy(
|
|
130
|
+
list: (opts) => policiesModule.loadPolicies(objects, tenantId, opts),
|
|
131
|
+
loadById: (id) => policiesModule.loadPolicyById(objects, tenantId, id),
|
|
132
|
+
close: (id) => policiesModule.closePolicy(objects, tenantId, id),
|
|
129
133
|
printRow: printPolicyRow,
|
|
130
134
|
printDetail: (p) => {
|
|
131
135
|
console.log(` name: ${p.policyName}`);
|
|
@@ -135,7 +139,7 @@ const policyKind = (hippoRoot, tenantId) => ({
|
|
|
135
139
|
console.log(` valid_from: ${p.validFrom}`);
|
|
136
140
|
console.log(` valid_to: ${p.validTo ?? '(open-ended)'}`);
|
|
137
141
|
},
|
|
138
|
-
extra: { sub: 'asof', run: (args, flags) => policyAsOf(
|
|
142
|
+
extra: { sub: 'asof', run: (args, flags) => policyAsOf(objects, tenantId, args, flags) },
|
|
139
143
|
});
|
|
140
144
|
export const handlePolicy = versionedVerbs(policyKind);
|
|
141
145
|
function printSkillRow(s) {
|
|
@@ -145,15 +149,15 @@ function printSkillRow(s) {
|
|
|
145
149
|
if (s.changeSummary)
|
|
146
150
|
console.log(` change: ${s.changeSummary}`);
|
|
147
151
|
}
|
|
148
|
-
function skillExport(
|
|
149
|
-
const md = skillsModule.
|
|
152
|
+
async function skillExport(objects, tenantId) {
|
|
153
|
+
const md = await skillsModule.skillsMarkdown(objects, tenantId);
|
|
150
154
|
if (!md) {
|
|
151
155
|
console.log('No active skills.');
|
|
152
156
|
return;
|
|
153
157
|
}
|
|
154
158
|
console.log(md);
|
|
155
159
|
}
|
|
156
|
-
const skillKind = (hippoRoot, tenantId) => ({
|
|
160
|
+
const skillKind = (objects, hippoRoot, tenantId) => ({
|
|
157
161
|
names: { cmd: 'skill', noun: 'Skill', idLabel: 'skill' },
|
|
158
162
|
plural: 'skills',
|
|
159
163
|
states: skillsModule.VALID_SKILL_STATES,
|
|
@@ -174,13 +178,17 @@ const skillKind = (hippoRoot, tenantId) => ({
|
|
|
174
178
|
return { instructions, trigger: nonEmptyStringFlag(flags, 'trigger') };
|
|
175
179
|
},
|
|
176
180
|
keyOf: (s) => s.skillName,
|
|
177
|
-
save: (skillName, body, extraTags, from) => skillsModule.saveSkill(hippoRoot, tenantId, {
|
|
178
|
-
skillName,
|
|
181
|
+
save: (skillName, body, extraTags, from) => skillsModule.saveSkill(objects, hippoRoot, tenantId, {
|
|
182
|
+
skillName,
|
|
183
|
+
...body,
|
|
184
|
+
extraTags,
|
|
185
|
+
changeSummary: from?.changeSummary,
|
|
186
|
+
supersedesSkillId: from?.id,
|
|
179
187
|
}),
|
|
180
188
|
recorded: (s) => `Skill recorded: #${s.id} (v${s.version})`,
|
|
181
|
-
list: (opts) => skillsModule.loadSkills(
|
|
182
|
-
loadById: (id) => skillsModule.loadSkillById(
|
|
183
|
-
close: (id) => skillsModule.closeSkill(
|
|
189
|
+
list: (opts) => skillsModule.loadSkills(objects, tenantId, opts),
|
|
190
|
+
loadById: (id) => skillsModule.loadSkillById(objects, tenantId, id),
|
|
191
|
+
close: (id) => skillsModule.closeSkill(objects, tenantId, id),
|
|
184
192
|
printRow: printSkillRow,
|
|
185
193
|
printDetail: (s) => {
|
|
186
194
|
console.log(` name: ${s.skillName}`);
|
|
@@ -190,7 +198,7 @@ const skillKind = (hippoRoot, tenantId) => ({
|
|
|
190
198
|
console.log(` when: ${s.trigger}`);
|
|
191
199
|
console.log(` instructions: ${s.instructions}`);
|
|
192
200
|
},
|
|
193
|
-
extra: { sub: 'export', run: () => skillExport(
|
|
201
|
+
extra: { sub: 'export', run: () => skillExport(objects, tenantId) },
|
|
194
202
|
});
|
|
195
203
|
export const handleSkill = versionedVerbs(skillKind);
|
|
196
204
|
//# sourceMappingURL=playbooks.js.map
|
package/dist/cli/predictions.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// First-class object verbs for predictions: record a claim, close it against the actual, and read the class base rate.
|
|
2
|
-
import * as predictionsApi from '../api/predictions.js';
|
|
2
|
+
import * as predictionsApi from '../api/objects/predictions.js';
|
|
3
3
|
import { VALID_CLOSURE_STATES } from '../core/prediction.js';
|
|
4
4
|
import { cliApiContext } from './api-context.js';
|
|
5
5
|
import { printError } from './output.js';
|
|
6
6
|
import { parseListLimit, stringFlag } from './flag-values.js';
|
|
7
7
|
import { requireInit } from './shared.js';
|
|
8
8
|
import { foundOrExit, idArgOrExit, requireStatus } from './object-verbs.js';
|
|
9
|
-
import {
|
|
9
|
+
import { fail } from './exit.js';
|
|
10
10
|
const BASERATE_DECIMALS = 3;
|
|
11
11
|
const PREDICTION_NOUN = 'Prediction';
|
|
12
12
|
async function predictClose(ctx, args, flags) {
|
|
@@ -14,14 +14,12 @@ async function predictClose(ctx, args, flags) {
|
|
|
14
14
|
const stateRaw = (stringFlag(flags, 'state') ?? '').trim();
|
|
15
15
|
// SAFETY: Set.has only compares by value, so a string outside the closure states is a plain miss.
|
|
16
16
|
if (!VALID_CLOSURE_STATES.has(stateRaw) || stateRaw === 'open') {
|
|
17
|
-
|
|
18
|
-
throw new CliExit(1);
|
|
17
|
+
fail(`Invalid --state: "${stateRaw}". Must be one of: closed | closed-unknown.`);
|
|
19
18
|
}
|
|
20
19
|
const actualRaw = flags['actual'];
|
|
21
20
|
const actualValue = actualRaw !== undefined ? Number(actualRaw) : undefined;
|
|
22
21
|
if (actualRaw !== undefined && !Number.isFinite(actualValue)) {
|
|
23
|
-
|
|
24
|
-
throw new CliExit(1);
|
|
22
|
+
fail(`Invalid --actual: "${actualRaw}". Must be a number.`);
|
|
25
23
|
}
|
|
26
24
|
const closureNote = stringFlag(flags, 'note');
|
|
27
25
|
const closed = await predictionsApi.closePrediction(ctx, id, {
|
|
@@ -46,8 +44,7 @@ async function loadPredictionList(ctx, status, classTag, limit) {
|
|
|
46
44
|
const closureState = requireStatus(status, VALID_CLOSURE_STATES);
|
|
47
45
|
if (!classTag) {
|
|
48
46
|
// status filter without class: scan all classes is more complex; v1 requires --class for non-default status
|
|
49
|
-
|
|
50
|
-
throw new CliExit(1);
|
|
47
|
+
fail('--status filter (non-open) requires --class to be set.');
|
|
51
48
|
}
|
|
52
49
|
return predictionsApi.listPredictions(ctx, {
|
|
53
50
|
classTag,
|
|
@@ -82,8 +79,9 @@ async function predictShow(ctx, args) {
|
|
|
82
79
|
console.log(` class: ${pred.classTag}`);
|
|
83
80
|
console.log(` claim: ${pred.claimText}`);
|
|
84
81
|
console.log(` state: ${pred.closureState}`);
|
|
85
|
-
if (pred.estimateValue !== null)
|
|
82
|
+
if (pred.estimateValue !== null) {
|
|
86
83
|
console.log(` estimate: ${pred.estimateValue}${pred.estimateUnit ? ' ' + pred.estimateUnit : ''}`);
|
|
84
|
+
}
|
|
87
85
|
if (pred.targetDate)
|
|
88
86
|
console.log(` target: ${pred.targetDate}`);
|
|
89
87
|
if (pred.actualValue !== null)
|
|
@@ -100,8 +98,7 @@ async function predictBaserate(ctx, flags) {
|
|
|
100
98
|
// Reference-class / planning-fallacy detector
|
|
101
99
|
const classTag = stringFlag(flags, 'class')?.trim();
|
|
102
100
|
if (!classTag) {
|
|
103
|
-
|
|
104
|
-
throw new CliExit(1);
|
|
101
|
+
fail('Usage: hippo predict baserate --class <c>');
|
|
105
102
|
}
|
|
106
103
|
const baserate = await predictionsApi.predictionBaserate(ctx, classTag);
|
|
107
104
|
if (baserate.nClosed === 0) {
|
|
@@ -113,10 +110,12 @@ async function predictBaserate(ctx, flags) {
|
|
|
113
110
|
console.log(baserate.summary);
|
|
114
111
|
console.log(` n_closed: ${baserate.nClosed}`);
|
|
115
112
|
console.log(` n_ratio_eligible: ${baserate.nRatioEligible}`);
|
|
116
|
-
if (baserate.meanEstimate !== null)
|
|
113
|
+
if (baserate.meanEstimate !== null) {
|
|
117
114
|
console.log(` mean_estimate: ${baserate.meanEstimate.toFixed(BASERATE_DECIMALS)}`);
|
|
118
|
-
|
|
115
|
+
}
|
|
116
|
+
if (baserate.meanActual !== null) {
|
|
119
117
|
console.log(` mean_actual: ${baserate.meanActual.toFixed(BASERATE_DECIMALS)}`);
|
|
118
|
+
}
|
|
120
119
|
if (baserate.meanRatio !== null)
|
|
121
120
|
console.log(` mean_ratio: ${baserate.meanRatio.toFixed(BASERATE_DECIMALS)}x`);
|
|
122
121
|
if (baserate.p50Ratio !== null)
|
|
@@ -144,19 +143,16 @@ async function predictCreate(ctx, claimText, flags) {
|
|
|
144
143
|
printError('Usage: hippo predict "<claim>" --class <c> [--estimate <v>] [--unit <u>] [--target <YYYY-MM-DD>]');
|
|
145
144
|
printError(' hippo predict close <id> --state <closed|closed-unknown> [--actual <v>] [--note "..."]');
|
|
146
145
|
printError(' hippo predict list [--class X] [--status open|closed|closed-unknown|all] [--limit N]');
|
|
147
|
-
|
|
148
|
-
throw new CliExit(1);
|
|
146
|
+
fail(' hippo predict show <id>');
|
|
149
147
|
}
|
|
150
148
|
const classTag = stringFlag(flags, 'class')?.trim();
|
|
151
149
|
if (!classTag) {
|
|
152
|
-
|
|
153
|
-
throw new CliExit(1);
|
|
150
|
+
fail('--class is required for prediction creation.');
|
|
154
151
|
}
|
|
155
152
|
const estimateRaw = flags['estimate'];
|
|
156
153
|
const estimateValue = estimateRaw !== undefined ? Number(estimateRaw) : undefined;
|
|
157
154
|
if (estimateRaw !== undefined && !Number.isFinite(estimateValue)) {
|
|
158
|
-
|
|
159
|
-
throw new CliExit(1);
|
|
155
|
+
fail(`Invalid --estimate: "${estimateRaw}". Must be a number.`);
|
|
160
156
|
}
|
|
161
157
|
const estimateUnit = stringFlag(flags, 'unit');
|
|
162
158
|
const targetDate = stringFlag(flags, 'target');
|
package/dist/cli/print.js
CHANGED
|
@@ -15,9 +15,11 @@ export function recallEntryText(r, query, showWhy, isGlobal) {
|
|
|
15
15
|
const bars = Math.round(e.strength * 10);
|
|
16
16
|
const graphMark = r.graphVia ? ` [graph: ${r.graphVia.hops}hop ${r.graphVia.relType}]` : '';
|
|
17
17
|
const lines = [
|
|
18
|
-
`--- ${e.id} [${e.layer}]
|
|
18
|
+
`--- ${e.id} [${e.layer}] ` +
|
|
19
|
+
`${confLabel}${isGlobal ? ' [global]' : ''}${e.superseded_by ? ' [superseded]' : ''}${graphMark} ` +
|
|
19
20
|
`score=${fmt(r.score, 3)} strength=${fmt(e.strength)}`,
|
|
20
|
-
` [${'█'.repeat(bars)}${'░'.repeat(10 - bars)}] tags: ${e.tags.join(', ') || 'none'} | retrieved:
|
|
21
|
+
` [${'█'.repeat(bars)}${'░'.repeat(10 - bars)}] tags: ${e.tags.join(', ') || 'none'} | retrieved: ` +
|
|
22
|
+
`${e.retrieval_count}x`,
|
|
21
23
|
];
|
|
22
24
|
if (showWhy) {
|
|
23
25
|
const explanation = explainMatch(query, r);
|
package/dist/cli/projects.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// The `hippo projects` verb: list a store's project names, fold an old worktree name into its repo, repair old tags in
|
|
1
|
+
// The `hippo projects` verb: list a store's project names, fold an old worktree name into its repo, repair old tags in
|
|
2
|
+
// one pass.
|
|
2
3
|
import * as path from 'path';
|
|
3
4
|
import { execFileSync } from 'child_process';
|
|
4
5
|
import * as api from '../api/index.js';
|
|
@@ -17,7 +18,10 @@ function worktreeNames() {
|
|
|
17
18
|
stdio: ['ignore', 'pipe', 'ignore'],
|
|
18
19
|
windowsHide: true,
|
|
19
20
|
});
|
|
20
|
-
const paths = out
|
|
21
|
+
const paths = out
|
|
22
|
+
.split(/\r?\n/)
|
|
23
|
+
.filter((l) => l.startsWith('worktree '))
|
|
24
|
+
.map((l) => path.basename(l.slice('worktree '.length)));
|
|
21
25
|
return new Map(paths.slice(1).map((name) => [name, paths[0]]));
|
|
22
26
|
}
|
|
23
27
|
catch {
|
|
@@ -32,7 +36,9 @@ function hint(p, worktrees) {
|
|
|
32
36
|
const main = p.origin ? worktrees.get(p.origin) : undefined;
|
|
33
37
|
if (main)
|
|
34
38
|
return `\n a worktree of ${main}: hippo projects merge ${p.origin} ${main}`;
|
|
35
|
-
return p.copiesElsewhere > 0
|
|
39
|
+
return p.copiesElsewhere > 0
|
|
40
|
+
? `\n ${p.copiesElsewhere} of its imported notes are copies also held under another name`
|
|
41
|
+
: '';
|
|
36
42
|
}
|
|
37
43
|
function count(n, one, many = `${one}s`) {
|
|
38
44
|
return `${n} ${n === 1 ? one : many}`;
|
|
@@ -60,11 +66,12 @@ function projectsMerge(ctx, args, flags) {
|
|
|
60
66
|
return;
|
|
61
67
|
}
|
|
62
68
|
console.log(`${apply ? 'Merged' : 'Dry run: would merge'} ${from} into ${into}:`);
|
|
63
|
-
console.log(` ${count(r.setAside.length, 'imported note ' +
|
|
64
|
-
'copy', 'imported note copies')} set aside (${into} already holds the same note; the rest move under ${into} on the next sync)`);
|
|
69
|
+
console.log(` ${count(r.setAside.length, 'imported note ' + 'copy', 'imported note copies')} set aside (${into} already holds the same note; the rest move under ${into} on the next sync)`);
|
|
65
70
|
console.log(` ${count(r.restamped.length, 'memory', 'memories')} re-tagged, plus ${r.dormantRestamped.length} dormant ` +
|
|
66
71
|
`and ${count(r.compactions, 'compaction record')}`);
|
|
67
|
-
console.log(apply
|
|
72
|
+
console.log(apply
|
|
73
|
+
? `Backup: ${r.backup}\nEvery id is in the audit log: hippo audit list --op project_merge`
|
|
74
|
+
: 'Nothing written. Add --apply to run it.');
|
|
68
75
|
}
|
|
69
76
|
function projectsRepair(ctx, flags) {
|
|
70
77
|
const root = ctx.hippoRoot;
|
|
@@ -75,17 +82,20 @@ function projectsRepair(ctx, flags) {
|
|
|
75
82
|
return;
|
|
76
83
|
}
|
|
77
84
|
console.log(`${apply ? 'Repaired' : 'Dry run: would repair'} ${root}:`);
|
|
78
|
-
console.log(` ${count(r.copies.length, 'imported note ' +
|
|
79
|
-
'copy', 'imported note copies')} under the wrong project set aside (the note stays under its own, or user-global)`);
|
|
85
|
+
console.log(` ${count(r.copies.length, 'imported note ' + 'copy', 'imported note copies')} under the wrong project set aside (the note stays under its own, or user-global)`);
|
|
80
86
|
for (const f of r.folds)
|
|
81
87
|
console.log(` ${f.from} folded into ${f.into} (its sessions' folders resolve there now)`);
|
|
82
88
|
for (const c of r.collisions) {
|
|
83
|
-
console.log(` ${c.name} left as it is: its folders now resolve to ${c.ids.join(', ')}; fold it by hand with hippo
|
|
89
|
+
console.log(` ${c.name} left as it is: its folders now resolve to ${c.ids.join(', ')}; fold it by hand with hippo ` +
|
|
90
|
+
`projects merge`);
|
|
84
91
|
}
|
|
85
92
|
console.log(` sleep's user-global merged rows: ${r.toProject.length} re-tagged to their parents' project`);
|
|
86
93
|
console.log(` ${r.setAside.length} set aside (parents in two projects; sleep re-merges them per project)`);
|
|
87
|
-
console.log(` ${r.untraced.length} left as they are (no parent left to show which project; check them with hippo inspect
|
|
88
|
-
|
|
94
|
+
console.log(` ${r.untraced.length} left as they are (no parent left to show which project; check them with hippo inspect ` +
|
|
95
|
+
`<id>)`);
|
|
96
|
+
console.log(apply
|
|
97
|
+
? `Backup: ${r.backup}\nEvery id is in the audit log: hippo audit list --op project_repair`
|
|
98
|
+
: 'Nothing written. Add --apply to run it.');
|
|
89
99
|
}
|
|
90
100
|
export function handleProjects({ hippoRoot, tenantId, args, flags }) {
|
|
91
101
|
const ctx = cliApiContext(resolveAuthRoot(hippoRoot, flags), tenantId);
|