hippo-memory 1.72.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/dist/agent-memories/apply.d.ts +7 -5
- package/dist/agent-memories/apply.js +66 -39
- package/dist/agent-memories/claude-code.d.ts +8 -2
- package/dist/agent-memories/claude-code.js +26 -7
- package/dist/agent-memories/copilot.js +2 -1
- package/dist/agent-memories/files.js +2 -1
- package/dist/agent-memories/legacy.d.ts +6 -3
- package/dist/agent-memories/legacy.js +35 -14
- package/dist/agent-memories/markdown.d.ts +3 -1
- package/dist/agent-memories/markdown.js +3 -1
- package/dist/agent-memories/openclaw.js +5 -2
- package/dist/agent-memories/plan.js +11 -1
- package/dist/agent-memories/project-folds.js +2 -1
- package/dist/agent-memories/report.d.ts +4 -1
- package/dist/agent-memories/report.js +43 -9
- package/dist/agent-memories/source.d.ts +8 -2
- package/dist/agent-memories/source.js +11 -3
- package/dist/agent-memories/sync.d.ts +7 -2
- package/dist/agent-memories/sync.js +141 -101
- package/dist/api/assemble.d.ts +6 -4
- package/dist/api/assemble.js +11 -5
- package/dist/api/{audit.d.ts → auth/audit.d.ts} +18 -16
- package/dist/api/auth/audit.js +58 -0
- package/dist/api/{auth.d.ts → auth/auth.d.ts} +19 -16
- package/dist/api/{auth.js → auth/auth.js} +66 -54
- package/dist/api/{quarantine.d.ts → auth/quarantine.d.ts} +8 -7
- package/dist/api/{quarantine.js → auth/quarantine.js} +8 -7
- package/dist/api/auth/session-owners.d.ts +10 -0
- package/dist/api/auth/session-owners.js +35 -0
- package/dist/api/availability.d.ts +3 -1
- package/dist/api/availability.js +3 -1
- package/dist/api/busy.d.ts +2 -0
- package/dist/api/busy.js +2 -0
- package/dist/api/cli-surface.d.ts +6 -0
- package/dist/api/cli-surface.js +6 -0
- package/dist/api/config-of.d.ts +5 -0
- package/dist/api/config-of.js +6 -0
- package/dist/api/context-auto.d.ts +4 -1
- package/dist/api/context-auto.js +14 -4
- package/dist/api/context-render.js +14 -7
- package/dist/api/context-select.d.ts +4 -1
- package/dist/api/context-select.js +31 -34
- package/dist/api/context-types.d.ts +38 -12
- package/dist/api/context.d.ts +8 -5
- package/dist/api/context.js +120 -63
- package/dist/api/continuity.d.ts +24 -21
- package/dist/api/continuity.js +18 -20
- package/dist/api/correction-latency.d.ts +3 -1
- package/dist/api/correction-latency.js +3 -1
- package/dist/api/error-reply.d.ts +4 -1
- package/dist/api/error-reply.js +12 -3
- package/dist/api/index.d.ts +39 -23
- package/dist/api/index.js +21 -23
- package/dist/api/instruction-detect.d.ts +4 -1
- package/dist/api/instruction-detect.js +75 -20
- package/dist/api/ledger-db.d.ts +15 -11
- package/dist/api/ledger-db.js +21 -23
- package/dist/api/memories/conflicts.d.ts +33 -0
- package/dist/api/memories/conflicts.js +67 -0
- package/dist/api/{forget.d.ts → memories/forget.d.ts} +11 -9
- package/dist/api/{forget.js → memories/forget.js} +23 -17
- package/dist/api/memories/memories.d.ts +27 -0
- package/dist/api/memories/memories.js +52 -0
- package/dist/api/memories/outcome.d.ts +22 -0
- package/dist/api/memories/outcome.js +28 -0
- package/dist/api/memories/promote.d.ts +40 -0
- package/dist/api/memories/promote.js +76 -0
- package/dist/api/memories/refine.d.ts +10 -0
- package/dist/api/memories/refine.js +12 -0
- package/dist/api/{remember-local.d.ts → memories/remember-local.d.ts} +17 -9
- package/dist/api/{remember-local.js → memories/remember-local.js} +46 -24
- package/dist/api/{remember.d.ts → memories/remember.d.ts} +22 -13
- package/dist/api/{remember.js → memories/remember.js} +50 -32
- package/dist/api/objects/cards.d.ts +39 -0
- package/dist/api/{cards.js → objects/cards.js} +12 -14
- package/dist/api/{drill-down.d.ts → objects/drill-down.d.ts} +12 -10
- package/dist/api/{drill-down.js → objects/drill-down.js} +7 -7
- package/dist/api/objects/goals.d.ts +18 -0
- package/dist/api/{goals.js → objects/goals.js} +12 -12
- package/dist/api/objects/graph.d.ts +11 -0
- package/dist/api/objects/graph.js +16 -0
- package/dist/api/objects/objects.d.ts +9 -0
- package/dist/api/{objects.js → objects/objects.js} +2 -3
- package/dist/api/objects/predictions.d.ts +11 -0
- package/dist/api/{predictions.js → objects/predictions.js} +7 -5
- package/dist/api/{projects.d.ts → objects/projects.d.ts} +8 -5
- package/dist/api/{projects.js → objects/projects.js} +8 -4
- package/dist/api/pilot-arm.d.ts +8 -4
- package/dist/api/pilot-arm.js +5 -4
- package/dist/api/prompt-hook.d.ts +35 -20
- package/dist/api/prompt-hook.js +66 -44
- package/dist/api/provenance-coverage.d.ts +3 -1
- package/dist/api/provenance-coverage.js +3 -1
- package/dist/api/recall/finish.d.ts +185 -0
- package/dist/api/recall/finish.js +301 -0
- package/dist/api/{recall-pipeline.d.ts → recall/pipeline.d.ts} +12 -8
- package/dist/api/{recall-pipeline.js → recall/pipeline.js} +185 -101
- package/dist/api/recall/recall.d.ts +6 -0
- package/dist/api/{recall.js → recall/recall.js} +116 -72
- package/dist/api/recall/render.d.ts +39 -0
- package/dist/api/recall/render.js +60 -0
- package/dist/api/{recall-request.d.ts → recall/request.d.ts} +7 -5
- package/dist/api/recall/request.js +261 -0
- package/dist/api/{recall-cli.d.ts → recall/rows.d.ts} +18 -12
- package/dist/api/{recall-cli.js → recall/rows.js} +28 -27
- package/dist/api/{recall-types.d.ts → recall/types.d.ts} +95 -68
- package/dist/api/{recall-types.js → recall/types.js} +1 -1
- package/dist/api/session-end.d.ts +36 -8
- package/dist/api/session-end.js +71 -25
- package/dist/api/{auto-sleep.d.ts → sleep/auto-sleep.d.ts} +9 -5
- package/dist/api/{auto-sleep.js → sleep/auto-sleep.js} +7 -12
- package/dist/api/sleep/dormant.d.ts +25 -0
- package/dist/api/sleep/dormant.js +64 -0
- package/dist/api/{learn.d.ts → sleep/learn.d.ts} +5 -4
- package/dist/api/sleep/learn.js +138 -0
- package/dist/api/sleep/sleep-run.d.ts +38 -0
- package/dist/api/{sleep-run.js → sleep/sleep-run.js} +54 -45
- package/dist/api/{sleep.d.ts → sleep/sleep.d.ts} +17 -11
- package/dist/api/sleep/sleep.js +9 -0
- package/dist/api/status.d.ts +3 -1
- package/dist/api/status.js +3 -1
- package/dist/api/store-init.d.ts +4 -1
- package/dist/api/store-init.js +4 -1
- package/dist/api/tokens.d.ts +10 -9
- package/dist/api/tokens.js +9 -10
- package/dist/api/types.d.ts +27 -12
- package/dist/api/types.js +13 -4
- package/dist/capture/caller-session.d.ts +8 -2
- package/dist/capture/caller-session.js +16 -6
- package/dist/capture/capture-error.d.ts +3 -1
- package/dist/capture/capture-error.js +3 -1
- package/dist/capture/codex-patch.js +7 -2
- package/dist/capture/command.d.ts +4 -2
- package/dist/capture/command.js +34 -15
- package/dist/capture/compact-resume-caller.js +15 -8
- package/dist/capture/compact.d.ts +8 -5
- package/dist/capture/compact.js +34 -23
- package/dist/capture/compaction-items-caller.js +9 -3
- package/dist/capture/compaction-record.d.ts +4 -3
- package/dist/capture/compaction-record.js +20 -12
- package/dist/capture/compaction-spool.d.ts +18 -9
- package/dist/capture/compaction-spool.js +105 -63
- package/dist/capture/copilot-transcript.d.ts +11 -3
- package/dist/capture/copilot-transcript.js +16 -6
- package/dist/capture/extract.js +20 -8
- package/dist/capture/failure-caller.js +23 -12
- package/dist/capture/failure-reading.d.ts +10 -3
- package/dist/capture/failure-reading.js +24 -7
- package/dist/capture/pre-compact-caller.js +11 -4
- package/dist/capture/session-digest.d.ts +15 -4
- package/dist/capture/session-digest.js +39 -13
- package/dist/capture/session-end-caller.d.ts +4 -1
- package/dist/capture/session-end-caller.js +20 -8
- package/dist/capture/session-texts.d.ts +6 -2
- package/dist/capture/session-texts.js +22 -7
- package/dist/capture/session-worker.d.ts +4 -2
- package/dist/capture/session-worker.js +58 -17
- package/dist/capture/transcript.d.ts +13 -4
- package/dist/capture/transcript.js +32 -10
- package/dist/capture/working-state.d.ts +13 -4
- package/dist/capture/working-state.js +50 -56
- package/dist/cli/api-context.d.ts +14 -2
- package/dist/cli/api-context.js +45 -2
- package/dist/cli/audit.js +33 -33
- package/dist/cli/auth.js +23 -31
- package/dist/cli/briefs.d.ts +1 -1
- package/dist/cli/briefs.js +20 -15
- package/dist/cli/card.d.ts +1 -1
- package/dist/cli/card.js +56 -73
- package/dist/cli/client.d.ts +12 -5
- package/dist/cli/client.js +53 -23
- package/dist/cli/compact-resume-payload.d.ts +4 -1
- package/dist/cli/compact-resume-payload.js +12 -5
- package/dist/cli/context.js +43 -18
- package/dist/cli/continuity.d.ts +5 -5
- package/dist/cli/continuity.js +90 -107
- package/dist/cli/curate.d.ts +5 -4
- package/dist/cli/curate.js +55 -77
- package/dist/cli/dag.d.ts +1 -1
- package/dist/cli/dag.js +14 -17
- package/dist/cli/decisions.js +30 -30
- package/dist/cli/eval.js +16 -21
- package/dist/cli/exit.d.ts +4 -1
- package/dist/cli/exit.js +10 -2
- package/dist/cli/explain.js +12 -11
- package/dist/cli/flag-values.d.ts +1 -1
- package/dist/cli/flag-values.js +9 -18
- package/dist/cli/github.d.ts +6 -0
- package/dist/cli/github.js +25 -13
- package/dist/cli/goals.d.ts +1 -1
- package/dist/cli/goals.js +39 -56
- package/dist/cli/graph.d.ts +1 -1
- package/dist/cli/graph.js +15 -11
- package/dist/cli/hook-runtime.d.ts +34 -10
- package/dist/cli/hook-runtime.js +41 -16
- package/dist/cli/incidents.d.ts +1 -1
- package/dist/cli/incidents.js +25 -25
- package/dist/cli/init.d.ts +1 -1
- package/dist/cli/init.js +35 -20
- package/dist/cli/install-steps.d.ts +12 -3
- package/dist/cli/install-steps.js +42 -18
- package/dist/cli/last-sleep.d.ts +4 -1
- package/dist/cli/last-sleep.js +9 -4
- package/dist/cli/maintenance.d.ts +1 -1
- package/dist/cli/maintenance.js +11 -12
- package/dist/cli/notes.d.ts +1 -1
- package/dist/cli/notes.js +8 -5
- package/dist/cli/object-verbs.d.ts +5 -5
- package/dist/cli/object-verbs.js +13 -16
- package/dist/cli/open-browser.js +11 -2
- package/dist/cli/playbooks.d.ts +3 -3
- package/dist/cli/playbooks.js +40 -32
- package/dist/cli/predictions.js +17 -22
- package/dist/cli/print.js +4 -2
- package/dist/cli/projects.js +21 -11
- package/dist/cli/quality-repair-once.d.ts +1 -1
- package/dist/cli/quality-repair-once.js +7 -6
- package/dist/cli/recall.js +129 -93
- package/dist/cli/refine-llm.d.ts +15 -4
- package/dist/cli/refine-llm.js +17 -7
- package/dist/cli/remember.js +51 -55
- package/dist/cli/scheduler.d.ts +4 -1
- package/dist/cli/scheduler.js +9 -5
- package/dist/cli/serve.js +28 -18
- package/dist/cli/session-hooks.d.ts +2 -6
- package/dist/cli/session-hooks.js +140 -112
- package/dist/cli/setup.d.ts +1 -1
- package/dist/cli/setup.js +56 -34
- package/dist/cli/shared.d.ts +4 -2
- package/dist/cli/shared.js +26 -11
- package/dist/cli/slack.js +15 -24
- package/dist/cli/sleep-render.d.ts +3 -1
- package/dist/cli/sleep-render.js +8 -5
- package/dist/cli/sleep.js +16 -8
- package/dist/cli/status.d.ts +4 -4
- package/dist/cli/status.js +32 -27
- package/dist/cli/stdin.d.ts +10 -3
- package/dist/cli/stdin.js +10 -3
- package/dist/cli/transfer.d.ts +4 -4
- package/dist/cli/transfer.js +97 -82
- package/dist/cli/usage.d.ts +1 -1
- package/dist/cli/usage.js +1 -1
- package/dist/cli/verb-row.d.ts +2 -0
- package/dist/cli/verbs/health.js +2 -0
- package/dist/cli/verbs/memory.js +47 -53
- package/dist/cli/verbs/objects.js +16 -7
- package/dist/cli/verbs/sessions.js +4 -2
- package/dist/cli/versioned-verbs.d.ts +8 -7
- package/dist/cli/versioned-verbs.js +31 -21
- package/dist/cli.js +14 -18
- package/dist/connectors/dlq.d.ts +6 -6
- package/dist/connectors/dlq.js +12 -7
- package/dist/connectors/github/backfill.d.ts +4 -4
- package/dist/connectors/github/backfill.js +6 -4
- package/dist/connectors/github/deletion.d.ts +6 -4
- package/dist/connectors/github/deletion.js +5 -4
- package/dist/connectors/github/dlq.d.ts +8 -6
- package/dist/connectors/github/dlq.js +11 -5
- package/dist/connectors/github/ingest.d.ts +2 -2
- package/dist/connectors/github/ingest.js +9 -5
- package/dist/connectors/github/octokit-client.d.ts +3 -1
- package/dist/connectors/github/octokit-client.js +7 -2
- package/dist/connectors/github/ratelimit.d.ts +6 -2
- package/dist/connectors/github/ratelimit.js +6 -2
- package/dist/connectors/github/signature.d.ts +14 -3
- package/dist/connectors/github/signature.js +17 -3
- package/dist/connectors/github/tenant-routing.d.ts +6 -4
- package/dist/connectors/github/tenant-routing.js +6 -5
- package/dist/connectors/github/transform.js +50 -67
- package/dist/connectors/github/types.d.ts +10 -3
- package/dist/connectors/github/types.js +6 -2
- package/dist/connectors/github/webhook.d.ts +5 -5
- package/dist/connectors/github/webhook.js +36 -23
- package/dist/connectors/ingest.d.ts +5 -3
- package/dist/connectors/ingest.js +3 -3
- package/dist/connectors/slack/backfill.d.ts +5 -5
- package/dist/connectors/slack/backfill.js +3 -3
- package/dist/connectors/slack/deletion.d.ts +4 -4
- package/dist/connectors/slack/deletion.js +6 -5
- package/dist/connectors/slack/dlq.d.ts +4 -4
- package/dist/connectors/slack/dlq.js +6 -6
- package/dist/connectors/slack/ingest.d.ts +6 -4
- package/dist/connectors/slack/ingest.js +5 -4
- package/dist/connectors/slack/signature.d.ts +4 -1
- package/dist/connectors/slack/tenant-routing.d.ts +6 -4
- package/dist/connectors/slack/tenant-routing.js +6 -5
- package/dist/connectors/slack/transform.d.ts +6 -2
- package/dist/connectors/slack/transform.js +6 -2
- package/dist/connectors/slack/types.d.ts +3 -1
- package/dist/connectors/slack/web-client.js +8 -3
- package/dist/connectors/slack/webhook.d.ts +5 -5
- package/dist/connectors/slack/webhook.js +19 -11
- package/dist/connectors/slack/workspaces.d.ts +7 -3
- package/dist/connectors/slack/workspaces.js +7 -3
- package/dist/connectors/store.d.ts +8 -0
- package/dist/connectors/store.js +2 -0
- package/dist/consolidate/conflicts.js +24 -10
- package/dist/consolidate/dag-summary.js +2 -1
- package/dist/consolidate/dag.d.ts +10 -5
- package/dist/consolidate/dag.js +45 -39
- package/dist/consolidate/decay.js +19 -6
- package/dist/consolidate/dedupe.d.ts +14 -5
- package/dist/consolidate/dedupe.js +28 -17
- package/dist/consolidate/flush-units.d.ts +4 -1
- package/dist/consolidate/flush-units.js +4 -1
- package/dist/consolidate/half-life-migration.d.ts +18 -8
- package/dist/consolidate/half-life-migration.js +48 -18
- package/dist/consolidate/llm-passes.js +27 -11
- package/dist/consolidate/memory-value-weights.d.ts +6 -2
- package/dist/consolidate/memory-value-weights.js +6 -2
- package/dist/consolidate/memory-value.d.ts +30 -10
- package/dist/consolidate/memory-value.js +37 -14
- package/dist/consolidate/merge.d.ts +4 -1
- package/dist/consolidate/merge.js +47 -37
- package/dist/consolidate/overlap-index.d.ts +8 -2
- package/dist/consolidate/overlap-index.js +11 -4
- package/dist/consolidate/physics-pass.d.ts +3 -1
- package/dist/consolidate/physics-pass.js +10 -7
- package/dist/consolidate/replay.d.ts +11 -4
- package/dist/consolidate/replay.js +19 -7
- package/dist/consolidate/run.d.ts +13 -5
- package/dist/consolidate/run.js +4 -4
- package/dist/consolidate/sleep.d.ts +14 -6
- package/dist/consolidate/sleep.js +42 -39
- package/dist/consolidate/trace.d.ts +7 -2
- package/dist/consolidate/trace.js +7 -2
- package/dist/consolidate/traces.js +27 -30
- package/dist/core/ablation.d.ts +9 -3
- package/dist/core/ablation.js +14 -4
- package/dist/core/active-scope.d.ts +3 -1
- package/dist/core/active-scope.js +3 -1
- package/dist/core/agent-memory-tools.d.ts +2 -0
- package/dist/core/agent-memory-tools.js +2 -0
- package/dist/core/ambient.d.ts +4 -3
- package/dist/core/ambient.js +8 -6
- package/dist/core/api-errors.d.ts +9 -3
- package/dist/core/api-errors.js +9 -3
- package/dist/core/capture-contract.d.ts +4 -1
- package/dist/core/capture-contract.js +27 -8
- package/dist/core/compare.d.ts +24 -8
- package/dist/core/compare.js +24 -8
- package/dist/core/config.d.ts +18 -9
- package/dist/core/config.js +38 -29
- package/dist/core/cosine.d.ts +4 -1
- package/dist/core/cosine.js +4 -1
- package/dist/core/handoff.d.ts +7 -2
- package/dist/core/handoff.js +4 -1
- package/dist/core/markdown.js +22 -17
- package/dist/core/memory-audit.js +14 -3
- package/dist/core/memory-quality.d.ts +12 -3
- package/dist/core/memory-quality.js +57 -21
- package/dist/core/memory.d.ts +87 -30
- package/dist/core/memory.js +82 -33
- package/dist/core/merged-row.d.ts +8 -2
- package/dist/core/merged-row.js +10 -3
- package/dist/core/package-root.d.ts +3 -1
- package/dist/core/package-root.js +3 -1
- package/dist/core/particle-refresh.d.ts +8 -0
- package/dist/core/particle-refresh.js +22 -0
- package/dist/core/physics-config.d.ts +4 -1
- package/dist/core/physics-config.js +6 -2
- package/dist/core/physics.d.ts +39 -11
- package/dist/core/physics.js +71 -21
- package/dist/core/project-identity.d.ts +34 -17
- package/dist/core/project-identity.js +35 -18
- package/dist/core/project-remote.d.ts +8 -4
- package/dist/core/project-remote.js +31 -14
- package/dist/core/recall-scope.d.ts +33 -11
- package/dist/core/recall-scope.js +42 -15
- package/dist/core/rejection-digest.d.ts +7 -0
- package/dist/core/rejection-digest.js +13 -0
- package/dist/core/salience.d.ts +3 -1
- package/dist/core/salience.js +10 -4
- package/dist/core/search-types.d.ts +15 -2
- package/dist/core/search-types.js +11 -0
- package/dist/dashboard/dashboard-actions.d.ts +2 -2
- package/dist/dashboard/dashboard-actions.js +18 -7
- package/dist/dashboard/dashboard-queries.js +2 -7
- package/dist/dashboard/dashboard-snapshot.d.ts +2 -2
- package/dist/dashboard/dashboard-snapshot.js +5 -7
- package/dist/dashboard/dashboard.js +22 -8
- package/dist/db/backup.js +2 -2
- package/dist/db/busy.d.ts +10 -3
- package/dist/db/busy.js +27 -5
- package/dist/db/connect.d.ts +10 -2
- package/dist/db/connect.js +8 -2
- package/dist/db/continuity.d.ts +1 -1
- package/dist/db/continuity.js +27 -11
- package/dist/db/meta.d.ts +4 -1
- package/dist/db/meta.js +4 -1
- package/dist/db/migrate.d.ts +10 -5
- package/dist/db/migrate.js +40 -20
- package/dist/db/migrations/index.d.ts +1 -1
- package/dist/db/migrations/index.js +3 -1
- package/dist/db/migrations/types.d.ts +2 -1
- package/dist/db/migrations/v11.js +1 -0
- package/dist/db/migrations/v12.js +2 -1
- package/dist/db/migrations/v14.js +2 -0
- package/dist/db/migrations/v15.js +4 -2
- package/dist/db/migrations/v16.js +6 -3
- package/dist/db/migrations/v17.js +2 -1
- package/dist/db/migrations/v19.js +4 -2
- package/dist/db/migrations/v20.js +2 -1
- package/dist/db/migrations/v22.js +12 -6
- package/dist/db/migrations/v23.js +6 -3
- package/dist/db/migrations/v24.js +6 -3
- package/dist/db/migrations/v25.js +4 -2
- package/dist/db/migrations/v26.js +4 -2
- package/dist/db/migrations/v27.js +6 -3
- package/dist/db/migrations/v28.js +4 -2
- package/dist/db/migrations/v29.js +4 -2
- package/dist/db/migrations/v30.js +6 -3
- package/dist/db/migrations/v31.js +4 -2
- package/dist/db/migrations/v32.js +6 -3
- package/dist/db/migrations/v33.js +4 -2
- package/dist/db/migrations/v34.js +2 -1
- package/dist/db/migrations/v35.js +2 -1
- package/dist/db/migrations/v36.js +2 -1
- package/dist/db/migrations/v37.js +10 -5
- package/dist/db/migrations/v38.js +10 -5
- package/dist/db/migrations/v39.js +14 -6
- package/dist/db/migrations/v40.js +4 -2
- package/dist/db/migrations/v41.js +4 -2
- package/dist/db/migrations/v42.js +2 -1
- package/dist/db/migrations/v44.js +4 -2
- package/dist/db/migrations/v45.js +4 -2
- package/dist/db/migrations/v49.js +2 -1
- package/dist/db/migrations/v50.js +4 -2
- package/dist/db/migrations/v51.js +4 -2
- package/dist/db/migrations/v52.js +2 -1
- package/dist/db/migrations/v53.js +8 -4
- package/dist/db/migrations/v54.js +2 -1
- package/dist/db/migrations/v55.js +4 -2
- package/dist/db/migrations/v56.d.ts +3 -0
- package/dist/db/migrations/v56.js +28 -0
- package/dist/db/open.d.ts +24 -12
- package/dist/db/open.js +25 -13
- package/dist/db/physics-state.d.ts +8 -8
- package/dist/db/physics-state.js +17 -50
- package/dist/db/raw-archive-mirror-cleanup.d.ts +4 -2
- package/dist/db/raw-archive-mirror-cleanup.js +6 -4
- package/dist/db/request-stores.d.ts +20 -5
- package/dist/db/request-stores.js +15 -5
- package/dist/db/tables.d.ts +2 -1
- package/dist/db/tables.js +12 -4
- package/dist/db/vector-store.d.ts +13 -4
- package/dist/db/vector-store.js +35 -14
- package/dist/db/wal-checkpointer.d.ts +2 -1
- package/dist/db/wal-checkpointer.js +19 -7
- package/dist/doctor.d.ts +7 -1
- package/dist/doctor.js +128 -46
- package/dist/embeddings/local.d.ts +8 -4
- package/dist/embeddings/local.js +11 -7
- package/dist/embeddings/provider.d.ts +19 -10
- package/dist/embeddings/provider.js +32 -27
- package/dist/embeddings/transformers.d.ts +16 -4
- package/dist/embeddings/transformers.js +32 -15
- package/dist/entry/json-hooks.d.ts +1 -1
- package/dist/entry/json-hooks.js +1 -1
- package/dist/entry/project-identity.js +2 -1
- package/dist/entry/session-text.d.ts +1 -1
- package/dist/entry/session-text.js +1 -1
- package/dist/entry/sqlite-handles.d.ts +10 -0
- package/dist/entry/sqlite-handles.js +9 -0
- package/dist/entry/store-kit.d.ts +50 -0
- package/dist/entry/store-kit.js +27 -0
- package/dist/entry/testing.d.ts +6 -0
- package/dist/entry/testing.js +7 -0
- package/dist/eval/eval-stats.d.ts +27 -8
- package/dist/eval/eval-stats.js +17 -5
- package/dist/eval/eval-suite.d.ts +3 -1
- package/dist/eval/eval-suite.js +409 -187
- package/dist/eval/eval.d.ts +8 -2
- package/dist/eval/eval.js +8 -2
- package/dist/eval/judgment.js +17 -7
- package/dist/graph/delta.d.ts +9 -42
- package/dist/graph/delta.js +17 -11
- package/dist/graph/extract.d.ts +10 -7
- package/dist/graph/extract.js +57 -25
- package/dist/graph/recall.d.ts +12 -4
- package/dist/graph/recall.js +30 -13
- package/dist/graph/stream.d.ts +18 -6
- package/dist/graph/stream.js +32 -10
- package/dist/graph/view.d.ts +19 -6
- package/dist/graph/view.js +42 -17
- package/dist/hooks/codex-session.js +2 -2
- package/dist/hooks/codex-wrapper.d.ts +3 -1
- package/dist/hooks/codex-wrapper.js +9 -4
- package/dist/hooks/copilot.d.ts +19 -5
- package/dist/hooks/copilot.js +54 -15
- package/dist/hooks/hook-blocks.d.ts +4 -1
- package/dist/hooks/hook-blocks.js +8 -3
- package/dist/hooks/json-hooks.d.ts +9 -5
- package/dist/hooks/json-hooks.js +72 -33
- package/dist/hooks/opencode.js +15 -5
- package/dist/hooks/shared.d.ts +27 -8
- package/dist/hooks/shared.js +57 -16
- package/dist/importers/core.d.ts +12 -4
- package/dist/importers/core.js +11 -10
- package/dist/importers/markdown-parse.d.ts +15 -5
- package/dist/importers/markdown-parse.js +16 -7
- package/dist/importers/markdown.js +6 -9
- package/dist/importers/sources.js +10 -23
- package/dist/importers/vault.d.ts +3 -3
- package/dist/importers/vault.js +61 -45
- package/dist/index.d.ts +33 -7
- package/dist/index.js +26 -8
- package/dist/learn/autolearn.d.ts +21 -6
- package/dist/learn/autolearn.js +57 -26
- package/dist/learn/churn-git.d.ts +4 -1
- package/dist/learn/churn-git.js +29 -5
- package/dist/learn/extract.d.ts +4 -1
- package/dist/learn/extract.js +17 -10
- package/dist/learn/forward-claim-detector.d.ts +17 -5
- package/dist/learn/forward-claim-detector.js +34 -15
- package/dist/learn/invalidation.d.ts +12 -6
- package/dist/learn/invalidation.js +62 -28
- package/dist/learn/roots.d.ts +3 -0
- package/dist/learn/roots.js +5 -0
- package/dist/mcp/admin-tools.d.ts +5 -5
- package/dist/mcp/admin-tools.js +28 -23
- package/dist/mcp/format.d.ts +1 -1
- package/dist/mcp/format.js +4 -2
- package/dist/mcp/framing.d.ts +3 -1
- package/dist/mcp/framing.js +20 -8
- package/dist/mcp/memory-tools.d.ts +3 -3
- package/dist/mcp/memory-tools.js +21 -20
- package/dist/mcp/protocol.d.ts +32 -16
- package/dist/mcp/protocol.js +12 -9
- package/dist/mcp/recall-tools.d.ts +3 -3
- package/dist/mcp/recall-tools.js +62 -74
- package/dist/mcp/request.d.ts +7 -5
- package/dist/mcp/request.js +61 -77
- package/dist/mcp/server.d.ts +3 -1
- package/dist/mcp/server.js +8 -3
- package/dist/mcp/session-state.d.ts +1 -1
- package/dist/mcp/session-state.js +4 -3
- package/dist/mcp/shared-gate.d.ts +3 -2
- package/dist/mcp/shared-gate.js +3 -2
- package/dist/mcp/stdio.d.ts +6 -3
- package/dist/mcp/stdio.js +59 -23
- package/dist/mcp/tool-args.d.ts +4 -1
- package/dist/mcp/tool-args.js +8 -3
- package/dist/mcp/tools.js +76 -32
- package/dist/objects/customer-notes.d.ts +12 -10
- package/dist/objects/customer-notes.js +21 -15
- package/dist/objects/decisions.d.ts +18 -10
- package/dist/objects/decisions.js +23 -17
- package/dist/objects/descriptor.js +2 -1
- package/dist/objects/fields.d.ts +4 -1
- package/dist/objects/fields.js +6 -2
- package/dist/objects/incidents.d.ts +14 -16
- package/dist/objects/incidents.js +29 -30
- package/dist/objects/lifecycle.d.ts +0 -4
- package/dist/objects/lifecycle.js +21 -24
- package/dist/objects/policies.d.ts +12 -16
- package/dist/objects/policies.js +17 -21
- package/dist/objects/processes.d.ts +16 -10
- package/dist/objects/processes.js +20 -15
- package/dist/objects/project-briefs.d.ts +13 -14
- package/dist/objects/project-briefs.js +33 -39
- package/dist/objects/skills.d.ts +10 -12
- package/dist/objects/skills.js +17 -22
- package/dist/postinstall.js +15 -7
- package/dist/predictions/planning-fallacy.d.ts +19 -6
- package/dist/predictions/planning-fallacy.js +4 -2
- package/dist/rerankers/clef.d.ts +8 -2
- package/dist/rerankers/clef.js +14 -9
- package/dist/rerankers/cross-encoder.d.ts +2 -1
- package/dist/rerankers/cross-encoder.js +19 -9
- package/dist/rerankers/index.js +2 -1
- package/dist/rerankers/jev.js +2 -1
- package/dist/rerankers/llm.d.ts +6 -2
- package/dist/rerankers/llm.js +8 -3
- package/dist/rerankers/remote.d.ts +3 -1
- package/dist/rerankers/remote.js +5 -2
- package/dist/rerankers/types.d.ts +6 -2
- package/dist/search/bm25-search.d.ts +3 -1
- package/dist/search/bm25-search.js +15 -2
- package/dist/search/boosts.js +4 -3
- package/dist/search/embed-memories.d.ts +12 -4
- package/dist/search/embed-memories.js +96 -58
- package/dist/search/engine.d.ts +11 -0
- package/dist/search/engine.js +14 -0
- package/dist/search/goal-boost.d.ts +10 -3
- package/dist/search/goal-boost.js +13 -6
- package/dist/search/hybrid-score.d.ts +4 -1
- package/dist/search/hybrid-score.js +4 -1
- package/dist/search/hybrid.d.ts +23 -8
- package/dist/search/hybrid.js +12 -7
- package/dist/search/multihop.js +14 -13
- package/dist/search/path-context.d.ts +10 -3
- package/dist/search/path-context.js +10 -3
- package/dist/search/physics-search.d.ts +9 -4
- package/dist/search/physics-search.js +38 -14
- package/dist/search/rerank.d.ts +2 -1
- package/dist/search/rerank.js +2 -1
- package/dist/search/rrf.d.ts +14 -5
- package/dist/search/rrf.js +11 -4
- package/dist/search/vector.d.ts +8 -2
- package/dist/search/vector.js +14 -8
- package/dist/server/auth.d.ts +19 -15
- package/dist/server/auth.js +68 -38
- package/dist/server/boot.d.ts +4 -1
- package/dist/server/boot.js +115 -67
- package/dist/server/client-ip.d.ts +17 -5
- package/dist/server/client-ip.js +56 -21
- package/dist/server/cursor.d.ts +10 -3
- package/dist/server/cursor.js +10 -3
- package/dist/server/deadline.d.ts +5 -2
- package/dist/server/deadline.js +10 -3
- package/dist/server/key-check-bounds.js +12 -4
- package/dist/server/lifecycle.d.ts +4 -1
- package/dist/server/lifecycle.js +10 -4
- package/dist/server/mcp-http.d.ts +2 -1
- package/dist/server/mcp-http.js +37 -22
- package/dist/server/rate-limit.d.ts +17 -5
- package/dist/server/rate-limit.js +55 -26
- package/dist/server/ready.js +7 -4
- package/dist/server/request.d.ts +15 -4
- package/dist/server/request.js +42 -15
- package/dist/server/route-checks.d.ts +4 -1
- package/dist/server/route-checks.js +8 -3
- package/dist/server/route-table.d.ts +8 -6
- package/dist/server/route-table.js +550 -97
- package/dist/server/routes/admin.d.ts +7 -7
- package/dist/server/routes/admin.js +36 -15
- package/dist/server/routes/customer-notes.d.ts +5 -5
- package/dist/server/routes/customer-notes.js +5 -4
- package/dist/server/routes/decisions.d.ts +5 -5
- package/dist/server/routes/decisions.js +12 -6
- package/dist/server/routes/incidents.d.ts +5 -5
- package/dist/server/routes/incidents.js +10 -4
- package/dist/server/routes/memories.d.ts +8 -8
- package/dist/server/routes/memories.js +12 -17
- package/dist/server/routes/object-routes.d.ts +8 -5
- package/dist/server/routes/object-routes.js +4 -2
- package/dist/server/routes/policies.d.ts +6 -6
- package/dist/server/routes/policies.js +11 -4
- package/dist/server/routes/predictions.d.ts +5 -5
- package/dist/server/routes/predictions.js +9 -4
- package/dist/server/routes/processes.d.ts +5 -5
- package/dist/server/routes/processes.js +15 -6
- package/dist/server/routes/project-briefs.d.ts +6 -6
- package/dist/server/routes/project-briefs.js +3 -2
- package/dist/server/routes/recall.d.ts +3 -3
- package/dist/server/routes/recall.js +21 -10
- package/dist/server/routes/skills.d.ts +6 -6
- package/dist/server/routes/skills.js +12 -4
- package/dist/server/server-detect.d.ts +24 -8
- package/dist/server/server-detect.js +57 -22
- package/dist/server/sleep-child.js +16 -10
- package/dist/server/sleep-offload.d.ts +8 -5
- package/dist/server/sleep-offload.js +40 -18
- package/dist/server/tls.d.ts +10 -2
- package/dist/server/tls.js +25 -5
- package/dist/server/types.d.ts +41 -24
- package/dist/server/validation.d.ts +4 -1
- package/dist/server/validation.js +22 -9
- package/dist/server.d.ts +17 -49
- package/dist/server.js +33 -40
- package/dist/sharing/global-store.d.ts +6 -12
- package/dist/sharing/global-store.js +8 -48
- package/dist/sharing/global-sync.d.ts +3 -1
- package/dist/sharing/global-sync.js +17 -7
- package/dist/sharing/project-merge.d.ts +25 -7
- package/dist/sharing/project-merge.js +49 -17
- package/dist/sharing/search-both.d.ts +8 -4
- package/dist/sharing/search-both.js +28 -14
- package/dist/sharing/share.d.ts +8 -4
- package/dist/sharing/share.js +40 -18
- package/dist/store/ambient.js +10 -5
- package/dist/store/audit-event.d.ts +2 -2
- package/dist/store/audit-event.js +8 -3
- package/dist/store/audit.d.ts +6 -3
- package/dist/store/audit.js +16 -6
- package/dist/store/auth.d.ts +4 -2
- package/dist/store/auth.js +63 -20
- package/dist/store/busy.d.ts +9 -0
- package/dist/store/busy.js +16 -0
- package/dist/store/candidates.d.ts +12 -5
- package/dist/store/candidates.js +90 -41
- package/dist/store/capture-write.d.ts +2 -1
- package/dist/store/capture-write.js +2 -1
- package/dist/store/card-detail.d.ts +4 -4
- package/dist/store/card-detail.js +15 -8
- package/dist/store/cards.d.ts +24 -10
- package/dist/store/cards.js +97 -63
- package/dist/store/compaction-caller.d.ts +2 -1
- package/dist/store/compaction-caller.js +2 -1
- package/dist/store/compactions-record.d.ts +14 -8
- package/dist/store/compactions-record.js +101 -37
- package/dist/store/compactions.js +35 -15
- package/dist/store/conflicts.d.ts +16 -5
- package/dist/store/conflicts.js +104 -48
- package/dist/store/connectors/dlq.d.ts +17 -5
- package/dist/store/connectors/dlq.js +58 -6
- package/dist/store/connectors/event-log.d.ts +122 -0
- package/dist/store/connectors/event-log.js +25 -0
- package/dist/store/connectors/github.d.ts +6 -3
- package/dist/store/connectors/github.js +30 -48
- package/dist/store/connectors/slack.d.ts +2 -1
- package/dist/store/connectors/slack.js +31 -47
- package/dist/store/dashboard-reads.d.ts +7 -3
- package/dist/store/dashboard-reads.js +32 -10
- package/dist/store/delete-and-batch.d.ts +17 -11
- package/dist/store/delete-and-batch.js +70 -28
- package/dist/store/delivery-recorder.d.ts +10 -7
- package/dist/store/delivery-recorder.js +70 -37
- package/dist/store/descendant-page.d.ts +2 -1
- package/dist/store/descendant-page.js +26 -10
- package/dist/store/diagnostics.d.ts +2 -1
- package/dist/store/diagnostics.js +2 -1
- package/dist/store/doctor-reads.d.ts +2 -1
- package/dist/store/doctor-reads.js +13 -5
- package/dist/store/dormant.d.ts +19 -11
- package/dist/store/dormant.js +45 -19
- package/dist/store/embeddings/index.d.ts +13 -9
- package/dist/store/embeddings/index.js +19 -12
- package/dist/store/entry-reads.d.ts +72 -21
- package/dist/store/entry-reads.js +215 -69
- package/dist/store/entry-row.d.ts +10 -6
- package/dist/store/entry-row.js +26 -14
- package/dist/store/entry-writes.d.ts +28 -13
- package/dist/store/entry-writes.js +61 -22
- package/dist/store/failure-log-at.js +1 -1
- package/dist/store/failure-log.d.ts +4 -2
- package/dist/store/failure-log.js +13 -6
- package/dist/store/gated-write.d.ts +3 -3
- package/dist/store/gated-write.js +3 -3
- package/dist/store/goals.d.ts +5 -4
- package/dist/store/goals.js +11 -12
- package/dist/store/graph-apply.d.ts +21 -0
- package/dist/{graph/write.js → store/graph-apply.js} +31 -11
- package/dist/store/graph-queue.d.ts +9 -6
- package/dist/store/graph-queue.js +15 -10
- package/dist/store/graph-reads.d.ts +16 -11
- package/dist/store/graph-reads.js +29 -19
- package/dist/store/graph-rows.d.ts +41 -3
- package/dist/store/graph-rows.js +10 -7
- package/dist/store/graph-view-rows.js +15 -7
- package/dist/store/graph-writes.d.ts +16 -10
- package/dist/store/graph-writes.js +59 -36
- package/dist/store/half-life.js +2 -2
- package/dist/store/handoffs.d.ts +13 -7
- package/dist/store/handoffs.js +44 -22
- package/dist/store/index-and-stats.d.ts +2 -2
- package/dist/store/index-and-stats.js +6 -5
- package/dist/store/index.d.ts +4 -2
- package/dist/store/index.js +2 -1
- package/dist/store/key-audit.d.ts +2 -1
- package/dist/store/key-audit.js +2 -1
- package/dist/store/key-writes.d.ts +2 -1
- package/dist/store/key-writes.js +9 -2
- package/dist/store/ledger-turn.d.ts +4 -1
- package/dist/store/ledger-turn.js +7 -2
- package/dist/store/mirrors.d.ts +11 -4
- package/dist/store/mirrors.js +96 -19
- package/dist/store/narrow.d.ts +6 -0
- package/dist/store/narrow.js +11 -0
- package/dist/store/open.d.ts +6 -3
- package/dist/store/open.js +20 -10
- package/dist/store/pilot-arm.d.ts +2 -1
- package/dist/store/pilot-arm.js +18 -6
- package/dist/store/planning-fallacy-evidence.d.ts +2 -2
- package/dist/store/planning-fallacy-evidence.js +8 -5
- package/dist/store/port/agent-import.d.ts +62 -0
- package/dist/store/port/agent-import.js +2 -0
- package/dist/store/port/consolidation.d.ts +129 -0
- package/dist/store/port/consolidation.js +2 -0
- package/dist/store/port/learning.d.ts +19 -0
- package/dist/store/port/learning.js +2 -0
- package/dist/store/port/local-files.d.ts +18 -0
- package/dist/store/port/local-files.js +2 -0
- package/dist/store/port/promotion.d.ts +20 -0
- package/dist/store/port/promotion.js +3 -0
- package/dist/store/port-groups.d.ts +160 -0
- package/dist/store/port-groups.js +2 -0
- package/dist/store/port.d.ts +261 -219
- package/dist/store/port.js +3 -9
- package/dist/store/predictions.d.ts +14 -10
- package/dist/store/predictions.js +37 -17
- package/dist/store/project-tags.d.ts +4 -1
- package/dist/store/project-tags.js +16 -5
- package/dist/store/quality-repair.d.ts +8 -4
- package/dist/store/quality-repair.js +53 -20
- package/dist/store/quarantine.d.ts +1 -0
- package/dist/store/quarantine.js +23 -9
- package/dist/store/raw-archive.d.ts +5 -4
- package/dist/store/raw-archive.js +11 -10
- package/dist/store/recall-trace.d.ts +22 -17
- package/dist/store/recall-trace.js +128 -64
- package/dist/store/rejected-values.d.ts +15 -10
- package/dist/store/rejected-values.js +46 -20
- package/dist/store/rejection.d.ts +12 -11
- package/dist/store/rejection.js +18 -19
- package/dist/store/report-reads.d.ts +2 -1
- package/dist/store/report-reads.js +2 -1
- package/dist/store/rows.d.ts +7 -5
- package/dist/store/rows.js +20 -13
- package/dist/store/rule-sql.d.ts +7 -3
- package/dist/store/rule-sql.js +26 -13
- package/dist/store/search-rows.d.ts +16 -11
- package/dist/store/search-rows.js +54 -32
- package/dist/store/sessions.d.ts +12 -10
- package/dist/store/sessions.js +40 -21
- package/dist/store/set-aside.d.ts +2 -2
- package/dist/store/set-aside.js +18 -5
- package/dist/store/sqlite/agent-import.d.ts +3 -0
- package/dist/store/sqlite/agent-import.js +77 -0
- package/dist/store/sqlite/cards-group.d.ts +6 -0
- package/dist/store/sqlite/cards-group.js +37 -0
- package/dist/store/sqlite/conflicts-group.d.ts +6 -0
- package/dist/store/sqlite/conflicts-group.js +18 -0
- package/dist/store/sqlite/connector-events-group.d.ts +2 -1
- package/dist/store/sqlite/connector-events-group.js +17 -6
- package/dist/store/sqlite/connector-writes-group.d.ts +2 -1
- package/dist/store/sqlite/connector-writes-group.js +12 -5
- package/dist/store/sqlite/consolidation-group.d.ts +4 -0
- package/dist/store/sqlite/consolidation-group.js +64 -0
- package/dist/store/sqlite/dag-reads-group.js +1 -1
- package/dist/store/sqlite/dormant-group.d.ts +6 -0
- package/dist/store/sqlite/dormant-group.js +29 -0
- package/dist/store/sqlite/entry-writes-group.d.ts +9 -6
- package/dist/store/sqlite/entry-writes-group.js +37 -14
- package/dist/store/sqlite/error-codec.d.ts +4 -2
- package/dist/store/sqlite/error-codec.js +32 -10
- package/dist/store/sqlite/executor-counts.js +2 -1
- package/dist/store/sqlite/executor.d.ts +8 -3
- package/dist/store/sqlite/executor.js +56 -18
- package/dist/store/sqlite/global-promote.d.ts +5 -0
- package/dist/store/sqlite/global-promote.js +48 -0
- package/dist/store/sqlite/goals-group.d.ts +6 -0
- package/dist/store/sqlite/goals-group.js +23 -0
- package/dist/store/sqlite/graph-reads-group.d.ts +2 -1
- package/dist/store/sqlite/graph-reads-group.js +2 -1
- package/dist/store/sqlite/held-connection.d.ts +8 -0
- package/dist/store/sqlite/held-connection.js +34 -7
- package/dist/store/sqlite/last-recall-group.d.ts +15 -0
- package/dist/store/sqlite/last-recall-group.js +62 -0
- package/dist/store/sqlite/learning-group.d.ts +4 -0
- package/dist/store/sqlite/learning-group.js +17 -0
- package/dist/store/sqlite/maintenance-groups.d.ts +6 -0
- package/dist/store/sqlite/maintenance-groups.js +61 -0
- package/dist/store/sqlite/object-rows.d.ts +6 -3
- package/dist/store/sqlite/object-rows.js +34 -5
- package/dist/store/sqlite/objects-group.d.ts +5 -4
- package/dist/store/sqlite/objects-group.js +97 -38
- package/dist/store/sqlite/predictions-group.d.ts +2 -1
- package/dist/store/sqlite/predictions-group.js +4 -2
- package/dist/store/sqlite/promotion-group.d.ts +3 -0
- package/dist/store/sqlite/promotion-group.js +10 -0
- package/dist/store/sqlite/quarantine-group.d.ts +2 -1
- package/dist/store/sqlite/quarantine-group.js +4 -2
- package/dist/store/sqlite/reports-group.d.ts +6 -0
- package/dist/store/sqlite/reports-group.js +33 -0
- package/dist/store/sqlite/request-scope.d.ts +6 -0
- package/dist/store/sqlite/request-scope.js +18 -0
- package/dist/store/sqlite/sessions-group.d.ts +6 -0
- package/dist/store/sqlite/sessions-group.js +46 -0
- package/dist/store/sqlite/store.d.ts +22 -18
- package/dist/store/sqlite/store.js +95 -33
- package/dist/store/sqlite/vector-pack.js +2 -1
- package/dist/store/sqlite/vector-reads-group.js +2 -1
- package/dist/store/sqlite/worker-jobs.d.ts +2 -1
- package/dist/store/sqlite/worker-jobs.js +19 -7
- package/dist/store/sqlite/worker-ops.d.ts +10 -5
- package/dist/store/sqlite/worker-ops.js +6 -3
- package/dist/store/sqlite/worker-store.d.ts +4 -3
- package/dist/store/sqlite/worker-store.js +24 -14
- package/dist/store/summaries.d.ts +25 -11
- package/dist/store/summaries.js +84 -27
- package/dist/store/summary-dirty.d.ts +2 -1
- package/dist/store/summary-dirty.js +2 -1
- package/dist/store/tenant.d.ts +3 -2
- package/dist/store/tenant.js +5 -4
- package/dist/store/token-ledger-rows.js +8 -4
- package/dist/store/token-ledger.d.ts +19 -13
- package/dist/store/token-ledger.js +27 -14
- package/dist/store/tombstone-checks.d.ts +4 -1
- package/dist/store/tombstone-checks.js +10 -1
- package/dist/store/usage-reports.js +2 -1
- package/dist/store/vector-index.d.ts +8 -5
- package/dist/store/vector-index.js +28 -11
- package/dist/store/working-memory.d.ts +6 -4
- package/dist/store/working-memory.js +14 -9
- package/dist/support-bundle.js +10 -5
- package/dist/trust/quarantine.d.ts +1 -2
- package/dist/trust/quarantine.js +1 -5
- package/dist/trust/reject-flow.d.ts +12 -3
- package/dist/trust/reject-flow.js +12 -4
- package/dist/util/anthropic-messages.d.ts +7 -2
- package/dist/util/anthropic-messages.js +18 -7
- package/dist/util/atomic-write.d.ts +8 -3
- package/dist/util/atomic-write.js +36 -21
- package/dist/util/compaction-items.d.ts +4 -1
- package/dist/util/compaction-items.js +8 -2
- package/dist/util/crash-handlers.d.ts +7 -2
- package/dist/util/crash-handlers.js +13 -4
- package/dist/util/env.d.ts +26 -5
- package/dist/util/env.js +87 -25
- package/dist/util/format.d.ts +2 -0
- package/dist/util/format.js +4 -0
- package/dist/util/home-path.js +12 -6
- package/dist/util/hook-payload.d.ts +3 -1
- package/dist/util/hook-payload.js +3 -1
- package/dist/util/http-retry.d.ts +12 -6
- package/dist/util/http-retry.js +16 -6
- package/dist/util/http-util.d.ts +20 -5
- package/dist/util/http-util.js +28 -9
- package/dist/util/json.d.ts +4 -1
- package/dist/util/json.js +4 -1
- package/dist/util/keyset.js +2 -1
- package/dist/util/limits.js +4 -2
- package/dist/util/log.d.ts +13 -5
- package/dist/util/log.js +29 -6
- package/dist/util/net.d.ts +5 -0
- package/dist/util/net.js +19 -0
- package/dist/util/real-path.d.ts +2 -1
- package/dist/util/real-path.js +4 -3
- package/dist/util/request-scope.d.ts +16 -4
- package/dist/util/request-scope.js +19 -6
- package/dist/util/same-text.d.ts +10 -3
- package/dist/util/same-text.js +10 -3
- package/dist/util/secret-detect.d.ts +24 -7
- package/dist/util/secret-detect.js +49 -14
- package/dist/util/spawn-argv.d.ts +11 -0
- package/dist/util/spawn-argv.js +66 -0
- package/dist/util/sql.d.ts +3 -0
- package/dist/util/sql.js +6 -0
- package/dist/util/sqlite-blocked.d.ts +15 -4
- package/dist/util/sqlite-blocked.js +19 -6
- package/dist/util/stored-json.d.ts +4 -1
- package/dist/util/stored-json.js +6 -2
- package/dist/util/stream-tee.d.ts +2 -1
- package/dist/util/stream-tee.js +8 -5
- package/dist/util/transcript-tail.d.ts +4 -1
- package/dist/util/transcript-tail.js +4 -1
- package/dist/util/vector-codec.d.ts +4 -0
- package/dist/util/vector-codec.js +15 -0
- package/dist/util/version.d.ts +8 -3
- package/dist/util/version.js +8 -3
- package/dist/util/write-budget.d.ts +7 -2
- package/dist/util/write-budget.js +5 -2
- package/dist/util/yaml.d.ts +4 -1
- package/dist/util/yaml.js +4 -1
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +4 -1
- package/scripts/postinstall.cjs +3 -1
- package/dist/api/audit.js +0 -56
- package/dist/api/cards.d.ts +0 -42
- package/dist/api/conflicts.d.ts +0 -28
- package/dist/api/conflicts.js +0 -61
- package/dist/api/dormant.d.ts +0 -14
- package/dist/api/dormant.js +0 -58
- package/dist/api/goals.d.ts +0 -18
- package/dist/api/graph.d.ts +0 -8
- package/dist/api/graph.js +0 -7
- package/dist/api/learn.js +0 -124
- package/dist/api/memories.d.ts +0 -23
- package/dist/api/memories.js +0 -46
- package/dist/api/objects.d.ts +0 -9
- package/dist/api/on-store.d.ts +0 -16
- package/dist/api/on-store.js +0 -38
- package/dist/api/outcome.d.ts +0 -19
- package/dist/api/outcome.js +0 -21
- package/dist/api/predictions.d.ts +0 -11
- package/dist/api/promote.d.ts +0 -36
- package/dist/api/promote.js +0 -65
- package/dist/api/recall-core.d.ts +0 -4
- package/dist/api/recall-core.js +0 -120
- package/dist/api/recall-finish.d.ts +0 -53
- package/dist/api/recall-finish.js +0 -30
- package/dist/api/recall-history.d.ts +0 -64
- package/dist/api/recall-history.js +0 -159
- package/dist/api/recall-record.d.ts +0 -43
- package/dist/api/recall-record.js +0 -78
- package/dist/api/recall-request.js +0 -121
- package/dist/api/recall.d.ts +0 -6
- package/dist/api/refine.d.ts +0 -7
- package/dist/api/refine.js +0 -10
- package/dist/api/session-owners.d.ts +0 -4
- package/dist/api/session-owners.js +0 -17
- package/dist/api/sleep-run.d.ts +0 -26
- package/dist/api/sleep.js +0 -10
- package/dist/cli/lenient-id.d.ts +0 -2
- package/dist/cli/lenient-id.js +0 -13
- package/dist/graph/write.d.ts +0 -14
- package/dist/store/sqlite/busy.d.ts +0 -3
- package/dist/store/sqlite/busy.js +0 -8
- package/dist/store/sqlite/local.d.ts +0 -21
- package/dist/store/sqlite/local.js +0 -39
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
// The init and setup steps that touch the machine: Codex hooks, the settings.json warning and the daily schedule.
|
|
2
2
|
import * as path from 'path';
|
|
3
|
-
import { execFileSync
|
|
3
|
+
import { execFileSync } from 'child_process';
|
|
4
4
|
import { installJsonHooks } from '../hooks/json-hooks.js';
|
|
5
5
|
import { CODEX_TRUST_LINE } from '../hooks/shared.js';
|
|
6
6
|
import { envSkipSchedule } from '../util/env.js';
|
|
7
7
|
import { DAILY_TASK_NAME, buildDailyRunnerCommand, hasUnsafeRunnerPathChars, buildSchtasksCreateArgs, buildWindowsTaskRun, quoteInsideWindowsArg, } from './scheduler.js';
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Adds hippo's two Codex hooks and says what changed; each install ends on the trust reminder, since Codex skips an
|
|
10
|
+
* untrusted hook.
|
|
11
|
+
*/
|
|
9
12
|
export function installCodexMemoryHooks(indent) {
|
|
10
13
|
const result = installJsonHooks('codex');
|
|
11
14
|
if (result.invalidJson) {
|
|
12
|
-
console.log(`${indent}WARNING: ${result.settingsPath} is not a hooks file hippo can merge into; fix it, then run \`hippo
|
|
15
|
+
console.log(`${indent}WARNING: ${result.settingsPath} is not a hooks file hippo can merge into; fix it, then run \`hippo ` +
|
|
16
|
+
`hook install codex\`.`);
|
|
13
17
|
return;
|
|
14
18
|
}
|
|
15
19
|
const added = [
|
|
@@ -21,7 +25,9 @@ export function installCodexMemoryHooks(indent) {
|
|
|
21
25
|
: `${indent}hippo's Codex memory hooks already in ${result.settingsPath}`);
|
|
22
26
|
console.log(`${indent}${CODEX_TRUST_LINE}`);
|
|
23
27
|
}
|
|
24
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* The one line init, hook install, hook uninstall and setup print when Claude Code's settings.json is not JSON hippo
|
|
30
|
+
* can edit and so was
|
|
25
31
|
* left unchanged; true when it printed. */
|
|
26
32
|
export function warnClaudeSettingsUnusable(result, indent, action = 'install') {
|
|
27
33
|
if (!result.invalidJson)
|
|
@@ -30,17 +36,34 @@ export function warnClaudeSettingsUnusable(result, indent, action = 'install') {
|
|
|
30
36
|
`fix it, then run \`hippo hook ${action} claude-code\`.`);
|
|
31
37
|
return true;
|
|
32
38
|
}
|
|
33
|
-
/**
|
|
34
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Machine-level daily runner sweeping all registered workspaces: user crontab on Linux/macOS, a scheduled task on
|
|
41
|
+
* Windows; skips if installed.
|
|
42
|
+
*/
|
|
43
|
+
/**
|
|
44
|
+
* Bound on each schtasks and crontab call, so a scheduler that never answers cannot hang `hippo init` or `hippo setup`.
|
|
45
|
+
*/
|
|
35
46
|
const SCHEDULER_CALL_TIMEOUT_MS = 30_000;
|
|
36
|
-
|
|
47
|
+
// Piped stderr stands in for `2>nul` and `2>/dev/null`, so no shell is needed to keep the scheduler's complaints off
|
|
48
|
+
// the terminal.
|
|
49
|
+
const SCHEDULER_CALL = {
|
|
50
|
+
encoding: 'utf-8',
|
|
51
|
+
stdio: 'pipe',
|
|
52
|
+
windowsHide: true,
|
|
53
|
+
timeout: SCHEDULER_CALL_TIMEOUT_MS,
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Node kills a child at its timeout and reports ETIMEDOUT; every other failure here means the scheduler refused or is
|
|
57
|
+
* missing.
|
|
58
|
+
*/
|
|
37
59
|
function schedulerTimedOut(err) {
|
|
38
60
|
return err instanceof Error && 'code' in err && err.code === 'ETIMEDOUT';
|
|
39
61
|
}
|
|
40
62
|
function warnSchedulerTimedOut(command) {
|
|
41
|
-
console.log(` ${command} did not answer within ${SCHEDULER_CALL_TIMEOUT_MS / 1000} s and was stopped, so the daily runner
|
|
63
|
+
console.log(` ${command} did not answer within ${SCHEDULER_CALL_TIMEOUT_MS / 1000} s and was stopped, so the daily runner ` +
|
|
64
|
+
`is not scheduled.`);
|
|
42
65
|
}
|
|
43
|
-
export function setupDailySchedule(globalRoot) {
|
|
66
|
+
export function setupDailySchedule(globalRoot, run = execFileSync) {
|
|
44
67
|
// Checked here, not per caller, so init, init --scan and setup all honour it.
|
|
45
68
|
if (envSkipSchedule()) {
|
|
46
69
|
console.log(' HIPPO_SKIP_SCHEDULE=1, so the machine-level daily runner was not scheduled.');
|
|
@@ -55,14 +78,14 @@ export function setupDailySchedule(globalRoot) {
|
|
|
55
78
|
const taskName = DAILY_TASK_NAME;
|
|
56
79
|
const cmd = buildDailyRunnerCommand(runnerDir);
|
|
57
80
|
if (isWindows)
|
|
58
|
-
scheduleOnWindows(taskName, cmd);
|
|
81
|
+
scheduleOnWindows(taskName, cmd, run);
|
|
59
82
|
else
|
|
60
|
-
scheduleOnCrontab(taskName, cmd);
|
|
83
|
+
scheduleOnCrontab(taskName, cmd, run);
|
|
61
84
|
}
|
|
62
|
-
function scheduleOnWindows(taskName, cmd) {
|
|
85
|
+
function scheduleOnWindows(taskName, cmd, run) {
|
|
63
86
|
// Check if task already exists
|
|
64
87
|
try {
|
|
65
|
-
const existing =
|
|
88
|
+
const existing = run('schtasks', ['/query', '/tn', taskName], SCHEDULER_CALL);
|
|
66
89
|
if (existing.includes(taskName)) {
|
|
67
90
|
return; // already scheduled
|
|
68
91
|
}
|
|
@@ -73,7 +96,7 @@ function scheduleOnWindows(taskName, cmd) {
|
|
|
73
96
|
warnSchedulerTimedOut('schtasks /query');
|
|
74
97
|
}
|
|
75
98
|
try {
|
|
76
|
-
|
|
99
|
+
run('schtasks', buildSchtasksCreateArgs(taskName, cmd), SCHEDULER_CALL);
|
|
77
100
|
console.log(` Scheduled machine-level daily runner (6:15am) via Task Scheduler: ${taskName}`);
|
|
78
101
|
}
|
|
79
102
|
catch (err) {
|
|
@@ -81,20 +104,21 @@ function scheduleOnWindows(taskName, cmd) {
|
|
|
81
104
|
warnSchedulerTimedOut('schtasks /create');
|
|
82
105
|
// No admin rights or schtasks unavailable, fall back to printing instructions
|
|
83
106
|
console.log(` To schedule the machine-level daily runner, run:`);
|
|
84
|
-
console.log(` schtasks /create /tn "${taskName}" /tr "${quoteInsideWindowsArg(buildWindowsTaskRun(cmd))}" /sc daily /st
|
|
107
|
+
console.log(` schtasks /create /tn "${taskName}" /tr "${quoteInsideWindowsArg(buildWindowsTaskRun(cmd))}" /sc daily /st ` +
|
|
108
|
+
`06:15`);
|
|
85
109
|
}
|
|
86
110
|
}
|
|
87
|
-
function scheduleOnCrontab(taskName, cmd) {
|
|
111
|
+
function scheduleOnCrontab(taskName, cmd, run) {
|
|
88
112
|
// Unix: check crontab for existing entry
|
|
89
113
|
const marker = `# hippo:${taskName}`;
|
|
90
114
|
try {
|
|
91
|
-
const existing =
|
|
115
|
+
const existing = run('crontab', ['-l'], SCHEDULER_CALL);
|
|
92
116
|
if (existing.includes(marker)) {
|
|
93
117
|
return; // already scheduled
|
|
94
118
|
}
|
|
95
119
|
const cronLine = `15 6 * * * ${cmd} ${marker}`;
|
|
96
120
|
const newCrontab = existing.trimEnd() + '\n' + cronLine + '\n';
|
|
97
|
-
|
|
121
|
+
run('crontab', ['-'], { ...SCHEDULER_CALL, input: newCrontab });
|
|
98
122
|
console.log(` Scheduled machine-level daily runner (6:15am) via crontab`);
|
|
99
123
|
}
|
|
100
124
|
catch (err) {
|
package/dist/cli/last-sleep.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { type CliFlags, type CommandContext } from './flag-values.js';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* The line the user sees when the last sleep failed, a spool step hit an unexpected error, or the spool holds `.bad`
|
|
4
|
+
* files; null when none did.
|
|
5
|
+
*/
|
|
3
6
|
export declare function sleepProblems(logText: string, bad: number): string | null;
|
|
4
7
|
/** Prints the SessionEnd sleep log on stderr, then clears it. In a hook, stdout carries only `systemMessage`,
|
|
5
8
|
* because Claude Code shows that to the user and adds any other SessionStart stdout to the model's context. */
|
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,12 +9,12 @@ 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
|
-
export declare function idArgOrExit(args: string[], usage: string, label: string
|
|
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;
|
|
19
19
|
/** How a kind is named in usage lines (`cmd`), in messages (`noun`) and in the invalid-id error (`idLabel`). */
|
|
20
20
|
export interface ObjectNames {
|
|
@@ -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
|
-
}
|
|
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;
|
|
@@ -29,25 +28,23 @@ export function listObjects(flags, spec) {
|
|
|
29
28
|
spec.printRow(o);
|
|
30
29
|
}
|
|
31
30
|
/** The `<id>` after the subcommand; prints `usage` and exits 1 when it is missing. */
|
|
32
|
-
export function idArgOrExit(args, usage, label
|
|
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
|
-
return
|
|
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
|
|
49
|
-
const id = idArgOrExit(args, `Usage: hippo ${names.cmd} close <id>`, names.idLabel
|
|
50
|
-
console.log(`${names.noun} #${close(id).id} closed.`);
|
|
45
|
+
export async function closeObject(args, names, close) {
|
|
46
|
+
const id = idArgOrExit(args, `Usage: hippo ${names.cmd} close <id>`, names.idLabel);
|
|
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
|