hippo-memory 1.71.0 → 2.0.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 +7 -5
- package/dist/agent-memories/apply.d.ts +0 -11
- package/dist/agent-memories/apply.js +11 -26
- package/dist/agent-memories/claude-code.js +1 -1
- package/dist/agent-memories/codex.js +1 -1
- package/dist/agent-memories/copilot.d.ts +1 -3
- package/dist/agent-memories/copilot.js +1 -17
- package/dist/agent-memories/project-folds.d.ts +10 -0
- package/dist/agent-memories/project-folds.js +34 -0
- package/dist/agent-memories/sync.js +8 -6
- package/dist/api/assemble.js +3 -2
- package/dist/api/audit.d.ts +30 -2
- package/dist/api/audit.js +48 -7
- package/dist/api/auth.d.ts +11 -9
- package/dist/api/auth.js +39 -40
- package/dist/api/auto-sleep.d.ts +5 -2
- package/dist/api/auto-sleep.js +7 -3
- package/dist/api/availability.js +2 -3
- package/dist/api/cards.d.ts +42 -0
- package/dist/api/cards.js +52 -0
- package/dist/api/conflicts.d.ts +28 -0
- package/dist/api/conflicts.js +61 -0
- package/dist/api/context-auto.js +4 -2
- package/dist/api/context-render.js +4 -3
- package/dist/api/context-select.js +15 -29
- package/dist/api/context.js +29 -18
- package/dist/api/continuity.d.ts +47 -0
- package/dist/api/continuity.js +66 -0
- package/dist/api/dormant.js +4 -2
- package/dist/api/drill-down.js +3 -2
- package/dist/api/embeddings.d.ts +17 -0
- package/dist/api/embeddings.js +28 -0
- package/dist/api/error-reply.d.ts +8 -0
- package/dist/api/error-reply.js +21 -0
- package/dist/api/forget.d.ts +7 -3
- package/dist/api/forget.js +24 -14
- package/dist/api/goals.d.ts +1 -1
- package/dist/api/goals.js +5 -9
- package/dist/api/graph.js +2 -1
- package/dist/api/index.d.ts +4 -2
- package/dist/api/index.js +4 -2
- package/dist/api/instruction-detect.js +5 -1
- package/dist/api/learn.d.ts +5 -1
- package/dist/api/learn.js +71 -44
- package/dist/api/ledger-db.d.ts +2 -6
- package/dist/api/ledger-db.js +4 -36
- package/dist/api/memories.d.ts +21 -1
- package/dist/api/memories.js +51 -1
- package/dist/api/objects.d.ts +1 -1
- package/dist/api/objects.js +2 -1
- package/dist/api/outcome.d.ts +5 -5
- package/dist/api/outcome.js +17 -16
- package/dist/api/pilot-arm.d.ts +1 -11
- package/dist/api/pilot-arm.js +5 -45
- package/dist/api/predictions.d.ts +3 -1
- package/dist/api/predictions.js +8 -1
- package/dist/api/projects.d.ts +21 -0
- package/dist/api/projects.js +24 -0
- package/dist/api/promote.d.ts +3 -3
- package/dist/api/promote.js +26 -28
- package/dist/api/prompt-hook.d.ts +17 -2
- package/dist/api/prompt-hook.js +45 -4
- package/dist/api/quarantine.js +2 -1
- package/dist/api/recall-cli.d.ts +3 -0
- package/dist/api/recall-cli.js +13 -4
- package/dist/api/recall-core.js +10 -5
- package/dist/api/recall-pipeline.js +23 -24
- package/dist/api/recall-request.js +1 -1
- package/dist/api/recall-types.d.ts +3 -1
- package/dist/api/recall.d.ts +0 -3
- package/dist/api/recall.js +51 -73
- package/dist/api/remember-local.d.ts +5 -2
- package/dist/api/remember-local.js +15 -7
- package/dist/api/remember.d.ts +7 -3
- package/dist/api/remember.js +19 -16
- package/dist/api/session-end.d.ts +46 -0
- package/dist/api/session-end.js +131 -0
- package/dist/api/sleep-run.d.ts +1 -1
- package/dist/api/sleep-run.js +16 -11
- package/dist/api/sleep.js +4 -3
- package/dist/api/status.d.ts +24 -0
- package/dist/api/status.js +40 -0
- package/dist/api/store-init.d.ts +4 -0
- package/dist/api/store-init.js +9 -0
- package/dist/api/tokens.js +2 -2
- package/dist/api/types.d.ts +3 -7
- package/dist/api/types.js +6 -1
- package/dist/capture/caller-session.d.ts +0 -3
- package/dist/capture/caller-session.js +1 -12
- package/dist/capture/capture-error.d.ts +2 -2
- package/dist/capture/capture-error.js +23 -18
- package/dist/capture/codex-patch.js +3 -1
- package/dist/capture/command.js +36 -95
- package/dist/capture/compact.js +10 -5
- package/dist/capture/compaction-items-caller.js +11 -20
- package/dist/capture/compaction-record.d.ts +7 -93
- package/dist/capture/compaction-record.js +29 -426
- package/dist/capture/compaction-spool.d.ts +7 -7
- package/dist/capture/compaction-spool.js +60 -51
- package/dist/capture/copilot-transcript.d.ts +2 -1
- package/dist/capture/copilot-transcript.js +2 -1
- package/dist/capture/extract.d.ts +5 -2
- package/dist/capture/extract.js +4 -3
- package/dist/capture/failure-caller.d.ts +1 -1
- package/dist/capture/failure-caller.js +21 -16
- package/dist/capture/failure-reading.d.ts +2 -1
- package/dist/capture/failure-reading.js +7 -9
- package/dist/capture/pre-compact-caller.js +5 -4
- package/dist/capture/session-digest.js +4 -3
- package/dist/capture/session-end-caller.js +3 -2
- package/dist/capture/session-worker.js +22 -10
- package/dist/capture/transcript.d.ts +2 -1
- package/dist/capture/transcript.js +6 -3
- package/dist/capture/working-state.d.ts +4 -2
- package/dist/capture/working-state.js +4 -2
- package/dist/cli/audit-prune.d.ts +0 -25
- package/dist/cli/audit-prune.js +1 -27
- package/dist/cli/audit.js +20 -20
- package/dist/cli/auth.d.ts +1 -1
- package/dist/cli/auth.js +16 -17
- package/dist/cli/briefs.d.ts +1 -4
- package/dist/cli/briefs.js +37 -292
- package/dist/cli/card.js +41 -33
- package/dist/cli/client.d.ts +6 -2
- package/dist/cli/client.js +37 -21
- package/dist/cli/compact-resume-payload.js +1 -1
- package/dist/cli/context.d.ts +1 -1
- package/dist/cli/context.js +13 -13
- package/dist/cli/continuity.d.ts +1 -1
- package/dist/cli/continuity.js +36 -39
- package/dist/cli/curate.d.ts +2 -2
- package/dist/cli/curate.js +32 -36
- package/dist/cli/dag.d.ts +1 -1
- package/dist/cli/dag.js +23 -8
- package/dist/cli/decisions.d.ts +0 -2
- package/dist/cli/decisions.js +7 -285
- package/dist/cli/eval.d.ts +1 -1
- package/dist/cli/eval.js +12 -13
- package/dist/cli/explain.d.ts +1 -1
- package/dist/cli/explain.js +21 -25
- package/dist/cli/flag-values.js +16 -6
- package/dist/cli/flags.d.ts +0 -289
- package/dist/cli/flags.js +3 -138
- package/dist/cli/graph.d.ts +3 -0
- package/dist/cli/graph.js +83 -0
- package/dist/cli/hook-runtime.d.ts +6 -6
- package/dist/cli/hook-runtime.js +9 -36
- package/dist/cli/incidents.d.ts +3 -0
- package/dist/cli/incidents.js +112 -0
- package/dist/cli/init.d.ts +1 -1
- package/dist/cli/init.js +28 -19
- package/dist/cli/install-steps.d.ts +2 -1
- package/dist/cli/install-steps.js +11 -3
- package/dist/cli/last-sleep.js +1 -1
- package/dist/cli/maintenance.d.ts +3 -3
- package/dist/cli/maintenance.js +29 -30
- package/dist/cli/notes.d.ts +2 -0
- package/dist/cli/notes.js +41 -0
- package/dist/cli/object-verbs.d.ts +2 -2
- package/dist/cli/object-verbs.js +4 -4
- package/dist/cli/open-browser.d.ts +14 -0
- package/dist/cli/open-browser.js +26 -0
- package/dist/cli/playbooks.d.ts +3 -4
- package/dist/cli/playbooks.js +126 -290
- package/dist/cli/predictions.d.ts +3 -0
- package/dist/cli/predictions.js +174 -0
- package/dist/cli/print.js +2 -1
- package/dist/cli/projects.js +30 -22
- package/dist/cli/quality-repair-once.d.ts +1 -1
- package/dist/cli/quality-repair-once.js +6 -5
- package/dist/cli/recall.js +13 -7
- package/dist/cli/refine-llm.js +18 -17
- package/dist/cli/remember.js +17 -17
- package/dist/cli/scheduler.js +2 -1
- package/dist/cli/serve.js +11 -6
- package/dist/cli/session-hooks.d.ts +1 -5
- package/dist/cli/session-hooks.js +89 -168
- package/dist/cli/setup.d.ts +1 -1
- package/dist/cli/setup.js +17 -10
- package/dist/cli/shared.d.ts +2 -6
- package/dist/cli/shared.js +9 -29
- package/dist/cli/sleep-render.js +6 -3
- package/dist/cli/sleep.js +6 -37
- package/dist/cli/status.d.ts +3 -3
- package/dist/cli/status.js +32 -35
- package/dist/cli/transfer.d.ts +3 -3
- package/dist/cli/transfer.js +64 -43
- package/dist/cli/usage.d.ts +1 -80
- package/dist/cli/usage.js +2 -696
- package/dist/cli/verb-row.d.ts +34 -0
- package/dist/cli/verb-row.js +6 -0
- package/dist/cli/verbs/health.d.ts +27 -0
- package/dist/cli/verbs/health.js +234 -0
- package/dist/cli/verbs/memory.d.ts +16 -0
- package/dist/cli/verbs/memory.js +236 -0
- package/dist/cli/verbs/objects.d.ts +20 -0
- package/dist/cli/verbs/objects.js +257 -0
- package/dist/cli/verbs/sessions.d.ts +31 -0
- package/dist/cli/verbs/sessions.js +314 -0
- package/dist/cli/verbs.d.ts +81 -0
- package/dist/cli/verbs.js +7 -0
- package/dist/cli/versioned-verbs.d.ts +51 -0
- package/dist/cli/versioned-verbs.js +79 -0
- package/dist/cli.d.ts +1 -272
- package/dist/cli.js +24 -315
- package/dist/connectors/dlq.d.ts +39 -3
- package/dist/connectors/dlq.js +39 -4
- package/dist/connectors/github/backfill.js +12 -3
- package/dist/connectors/github/deletion.js +2 -1
- package/dist/connectors/github/dlq.js +31 -73
- package/dist/connectors/github/ingest.d.ts +2 -6
- package/dist/connectors/github/ingest.js +5 -29
- package/dist/connectors/github/tenant-routing.js +2 -1
- package/dist/connectors/github/webhook.d.ts +2 -1
- package/dist/connectors/github/webhook.js +35 -2
- package/dist/connectors/ingest.d.ts +10 -0
- package/dist/connectors/ingest.js +29 -0
- package/dist/connectors/slack/deletion.js +2 -1
- package/dist/connectors/slack/dlq.js +49 -71
- package/dist/connectors/slack/ingest.d.ts +2 -6
- package/dist/connectors/slack/ingest.js +4 -28
- package/dist/connectors/slack/tenant-routing.js +2 -1
- package/dist/connectors/slack/webhook.d.ts +2 -1
- package/dist/connectors/slack/webhook.js +2 -1
- package/dist/consolidate/conflicts.js +2 -2
- package/dist/consolidate/dag.js +29 -18
- package/dist/consolidate/dedupe.d.ts +7 -0
- package/dist/consolidate/dedupe.js +6 -4
- package/dist/consolidate/llm-passes.js +45 -19
- package/dist/consolidate/memory-value.js +3 -2
- package/dist/consolidate/merge.js +8 -8
- package/dist/consolidate/physics-pass.d.ts +6 -1
- package/dist/consolidate/physics-pass.js +26 -6
- package/dist/consolidate/replay.js +11 -4
- package/dist/consolidate/sleep.js +9 -6
- package/dist/consolidate/traces.js +5 -5
- package/dist/core/ablation.d.ts +10 -0
- package/dist/core/ablation.js +12 -0
- package/dist/{sharing/scope.d.ts → core/active-scope.d.ts} +1 -1
- package/dist/{sharing/scope.js → core/active-scope.js} +1 -1
- package/dist/core/ambient.d.ts +4 -0
- package/dist/core/ambient.js +39 -18
- package/dist/core/api-errors.d.ts +16 -0
- package/dist/core/api-errors.js +20 -0
- package/dist/core/card.js +3 -1
- package/dist/core/compaction-timing.d.ts +7 -0
- package/dist/core/compaction-timing.js +9 -0
- package/dist/core/config.d.ts +1 -1
- package/dist/core/config.js +22 -18
- package/dist/core/cosine.d.ts +3 -0
- package/dist/core/cosine.js +19 -0
- package/dist/{store → core}/markdown.d.ts +1 -1
- package/dist/{store → core}/markdown.js +4 -4
- package/dist/core/memory-audit.d.ts +17 -0
- package/dist/core/memory-audit.js +54 -0
- package/dist/core/memory.d.ts +14 -8
- package/dist/core/memory.js +35 -23
- package/dist/{consolidate → core}/merged-row.d.ts +1 -1
- package/dist/{consolidate → core}/merged-row.js +1 -1
- package/dist/core/physics.d.ts +3 -1
- package/dist/core/physics.js +23 -18
- package/dist/core/prediction.d.ts +3 -0
- package/dist/core/prediction.js +6 -0
- package/dist/core/project-identity.d.ts +3 -0
- package/dist/core/project-identity.js +12 -2
- package/dist/{store → core}/recall-scope.d.ts +1 -10
- package/dist/{store → core}/recall-scope.js +2 -19
- package/dist/core/search-types.d.ts +1 -1
- package/dist/dashboard/dashboard-actions.d.ts +2 -2
- package/dist/dashboard/dashboard-actions.js +5 -5
- package/dist/dashboard/dashboard-queries.js +2 -7
- package/dist/dashboard/dashboard-snapshot.js +1 -3
- package/dist/dashboard/dashboard.js +16 -5
- package/dist/db/busy.d.ts +2 -7
- package/dist/db/busy.js +21 -26
- package/dist/db/connect.d.ts +2 -2
- package/dist/db/connect.js +7 -7
- package/dist/db/index.d.ts +3 -3
- package/dist/db/index.js +3 -3
- package/dist/db/migrate.js +14 -7
- package/dist/db/migrations/index.d.ts +1 -1
- package/dist/db/migrations/index.js +3 -1
- package/dist/db/migrations/v11.js +1 -0
- package/dist/db/migrations/v14.js +1 -0
- package/dist/db/migrations/v55.d.ts +3 -0
- package/dist/db/migrations/v55.js +17 -0
- package/dist/db/open.d.ts +0 -2
- package/dist/db/open.js +6 -10
- package/dist/db/physics-state.d.ts +0 -4
- package/dist/db/physics-state.js +7 -33
- package/dist/db/request-stores.d.ts +1 -0
- package/dist/db/request-stores.js +2 -1
- package/dist/db/tables.d.ts +2 -0
- package/dist/db/tables.js +6 -2
- package/dist/db/vector-store.js +19 -5
- package/dist/db/wal-checkpointer.js +2 -1
- package/dist/doctor.d.ts +3 -0
- package/dist/doctor.js +18 -15
- package/dist/embeddings/local.d.ts +62 -0
- package/dist/embeddings/local.js +146 -0
- package/dist/{store/embeddings → embeddings}/provider.d.ts +5 -2
- package/dist/{store/embeddings → embeddings}/provider.js +19 -25
- package/dist/embeddings/transformers.d.ts +26 -0
- package/dist/embeddings/transformers.js +89 -0
- package/dist/entry/session-text.d.ts +1 -1
- package/dist/entry/session-text.js +1 -1
- package/dist/entry/store-kit.d.ts +37 -0
- package/dist/entry/store-kit.js +25 -0
- package/dist/entry/testing.d.ts +6 -0
- package/dist/entry/testing.js +7 -0
- package/dist/eval/eval-suite.js +17 -11
- package/dist/eval/eval.js +1 -1
- package/dist/eval/judgment.js +12 -5
- package/dist/graph/extract.js +3 -3
- package/dist/graph/recall.js +1 -1
- package/dist/graph/view.js +13 -5
- package/dist/graph/write.d.ts +1 -1
- package/dist/graph/write.js +9 -9
- package/dist/hooks/codex-session.js +3 -2
- package/dist/hooks/codex-wrapper.js +2 -1
- package/dist/hooks/json-hooks.js +10 -4
- package/dist/hooks/opencode.js +8 -5
- package/dist/hooks/shared.d.ts +0 -6
- package/dist/hooks/shared.js +4 -15
- package/dist/importers/core.js +4 -4
- package/dist/importers/sources.js +5 -4
- package/dist/importers/vault.d.ts +1 -1
- package/dist/importers/vault.js +25 -23
- package/dist/index.d.ts +5 -4
- package/dist/index.js +4 -3
- package/dist/learn/autolearn.d.ts +15 -3
- package/dist/learn/autolearn.js +38 -16
- package/dist/learn/churn-git.js +13 -4
- package/dist/learn/extract.d.ts +3 -2
- package/dist/learn/extract.js +7 -5
- package/dist/learn/forward-claim-detector.js +4 -2
- package/dist/learn/invalidation.d.ts +2 -1
- package/dist/learn/invalidation.js +18 -9
- package/dist/mcp/admin-tools.d.ts +2 -2
- package/dist/mcp/admin-tools.js +27 -48
- package/dist/mcp/format.js +3 -2
- package/dist/mcp/framing.d.ts +1 -0
- package/dist/mcp/framing.js +1 -1
- package/dist/mcp/memory-tools.d.ts +1 -1
- package/dist/mcp/memory-tools.js +8 -9
- package/dist/mcp/protocol.d.ts +11 -7
- package/dist/mcp/protocol.js +25 -12
- package/dist/mcp/recall-tools.js +12 -9
- package/dist/mcp/request.js +22 -20
- package/dist/mcp/stdio.js +37 -16
- package/dist/mcp/tool-args.js +2 -1
- package/dist/mcp/tools.js +44 -21
- package/dist/objects/customer-notes.d.ts +2 -2
- package/dist/objects/decisions.d.ts +2 -2
- package/dist/objects/descriptor.d.ts +1 -1
- package/dist/objects/incidents.d.ts +2 -2
- package/dist/objects/lifecycle.d.ts +1 -1
- package/dist/objects/lifecycle.js +2 -1
- package/dist/objects/policies.d.ts +2 -2
- package/dist/objects/policies.js +2 -1
- package/dist/objects/processes.d.ts +2 -2
- package/dist/objects/project-briefs.d.ts +2 -2
- package/dist/objects/project-briefs.js +2 -3
- package/dist/objects/skills.d.ts +2 -2
- package/dist/postinstall.js +1 -1
- package/dist/rerankers/clef.js +3 -6
- package/dist/rerankers/cross-encoder.d.ts +31 -2
- package/dist/rerankers/cross-encoder.js +71 -98
- package/dist/rerankers/index.js +5 -4
- package/dist/rerankers/jev.js +2 -4
- package/dist/rerankers/outage-warning.d.ts +3 -1
- package/dist/rerankers/outage-warning.js +5 -3
- package/dist/search/bm25-search.js +1 -1
- package/dist/search/boosts.js +1 -1
- package/dist/search/embed-memories.d.ts +12 -0
- package/dist/search/embed-memories.js +389 -0
- package/dist/search/engine.d.ts +8 -0
- package/dist/search/engine.js +10 -0
- package/dist/search/goal-boost.d.ts +1 -1
- package/dist/search/goal-boost.js +6 -3
- package/dist/search/hybrid.d.ts +9 -2
- package/dist/search/hybrid.js +9 -4
- package/dist/search/physics-search.d.ts +6 -3
- package/dist/search/physics-search.js +22 -15
- package/dist/search/rerank.js +1 -1
- package/dist/search/vector.d.ts +8 -6
- package/dist/search/vector.js +14 -17
- package/dist/server/auth.d.ts +3 -1
- package/dist/server/auth.js +24 -15
- package/dist/server/boot.d.ts +2 -1
- package/dist/server/boot.js +34 -84
- package/dist/server/client-ip.d.ts +9 -6
- package/dist/server/client-ip.js +36 -17
- package/dist/server/deadline.d.ts +0 -2
- package/dist/server/deadline.js +1 -7
- package/dist/server/defaults.d.ts +1 -0
- package/dist/server/defaults.js +1 -0
- package/dist/server/mcp-http.js +16 -11
- package/dist/server/request.js +7 -2
- package/dist/server/route-checks.d.ts +7 -0
- package/dist/server/route-checks.js +42 -0
- package/dist/server/route-table.d.ts +9 -8
- package/dist/server/route-table.js +127 -133
- package/dist/server/routes/admin.d.ts +8 -8
- package/dist/server/routes/admin.js +13 -21
- package/dist/server/routes/customer-notes.d.ts +6 -6
- package/dist/server/routes/customer-notes.js +1 -2
- package/dist/server/routes/decisions.d.ts +6 -6
- package/dist/server/routes/decisions.js +2 -4
- package/dist/server/routes/incidents.d.ts +6 -6
- package/dist/server/routes/incidents.js +2 -5
- package/dist/server/routes/memories.d.ts +9 -9
- package/dist/server/routes/memories.js +19 -40
- package/dist/server/routes/object-routes.d.ts +6 -6
- package/dist/server/routes/object-routes.js +4 -7
- package/dist/server/routes/policies.d.ts +7 -7
- package/dist/server/routes/policies.js +2 -4
- package/dist/server/routes/predictions.d.ts +6 -6
- package/dist/server/routes/predictions.js +9 -13
- package/dist/server/routes/processes.d.ts +6 -6
- package/dist/server/routes/processes.js +1 -2
- package/dist/server/routes/project-briefs.d.ts +7 -7
- package/dist/server/routes/project-briefs.js +2 -4
- package/dist/server/routes/recall.d.ts +5 -5
- package/dist/server/routes/recall.js +6 -10
- package/dist/server/routes/skills.d.ts +7 -7
- package/dist/server/routes/skills.js +2 -4
- package/dist/server/server-detect.d.ts +7 -1
- package/dist/server/server-detect.js +36 -11
- package/dist/server/sleep-child.js +26 -7
- package/dist/server/sleep-offload.d.ts +11 -5
- package/dist/server/sleep-offload.js +17 -11
- package/dist/server/tls.d.ts +7 -2
- package/dist/server/tls.js +17 -5
- package/dist/server/types.d.ts +29 -12
- package/dist/server/validation.d.ts +1 -2
- package/dist/server/validation.js +6 -11
- package/dist/server.d.ts +4 -40
- package/dist/server.js +3 -29
- package/dist/sharing/global-store.d.ts +4 -5
- package/dist/sharing/global-store.js +8 -13
- package/dist/sharing/global-sync.js +38 -45
- package/dist/sharing/project-merge.d.ts +7 -14
- package/dist/sharing/project-merge.js +57 -121
- package/dist/sharing/search-both.js +10 -3
- package/dist/sharing/share.d.ts +2 -0
- package/dist/sharing/share.js +39 -38
- package/dist/store/ambient.js +7 -7
- package/dist/store/audit-event.d.ts +1 -1
- package/dist/store/audit.d.ts +0 -16
- package/dist/store/audit.js +4 -55
- package/dist/store/auth.d.ts +4 -2
- package/dist/store/auth.js +7 -3
- package/dist/store/candidates.d.ts +3 -2
- package/dist/store/candidates.js +59 -30
- package/dist/store/capture-write.d.ts +17 -0
- package/dist/store/capture-write.js +35 -0
- package/dist/store/cards.js +6 -5
- package/dist/store/compaction-caller.d.ts +18 -0
- package/dist/store/compaction-caller.js +29 -0
- package/dist/store/compactions-record.d.ts +115 -0
- package/dist/store/compactions-record.js +418 -0
- package/dist/store/compactions.js +6 -4
- package/dist/store/conflicts.d.ts +7 -1
- package/dist/store/conflicts.js +13 -9
- package/dist/store/connectors/dlq.d.ts +10 -0
- package/dist/store/connectors/dlq.js +33 -0
- package/dist/store/connectors/event-log.d.ts +13 -0
- package/dist/store/connectors/event-log.js +24 -0
- package/dist/store/connectors/github.d.ts +7 -9
- package/dist/store/connectors/github.js +35 -60
- package/dist/store/connectors/slack.d.ts +2 -11
- package/dist/store/connectors/slack.js +24 -57
- package/dist/store/dashboard-reads.js +8 -6
- package/dist/store/delete-and-batch.d.ts +6 -0
- package/dist/store/delete-and-batch.js +40 -6
- package/dist/store/delivery-recorder.d.ts +12 -5
- package/dist/store/delivery-recorder.js +13 -11
- package/dist/store/descendant-page.js +8 -4
- package/dist/store/dormant.d.ts +1 -1
- package/dist/store/dormant.js +10 -4
- package/dist/store/embeddings/index.d.ts +2 -12
- package/dist/store/embeddings/index.js +5 -374
- package/dist/store/entry-reads.d.ts +35 -4
- package/dist/store/entry-reads.js +86 -19
- package/dist/store/entry-row.js +9 -2
- package/dist/store/entry-writes.d.ts +15 -12
- package/dist/store/entry-writes.js +54 -22
- package/dist/store/failure-log-at.d.ts +8 -0
- package/dist/store/failure-log-at.js +16 -0
- package/dist/store/failure-log.d.ts +2 -2
- package/dist/store/failure-log.js +5 -3
- package/dist/{trust → store}/gated-write.d.ts +3 -1
- package/dist/{trust → store}/gated-write.js +7 -5
- package/dist/store/goals.js +22 -19
- package/dist/store/graph-reads.js +9 -6
- package/dist/store/graph-view-rows.js +2 -1
- package/dist/store/graph-writes.d.ts +6 -6
- package/dist/store/graph-writes.js +48 -71
- package/dist/store/half-life.js +2 -2
- package/dist/store/handoffs.d.ts +10 -4
- package/dist/store/handoffs.js +10 -9
- package/dist/store/index-and-stats.js +2 -2
- package/dist/store/index.d.ts +2 -2
- package/dist/store/index.js +1 -1
- package/dist/store/key-writes.js +1 -1
- package/dist/store/ledger-turn.d.ts +9 -0
- package/dist/store/ledger-turn.js +38 -0
- package/dist/store/mirrors.js +19 -10
- package/dist/store/open.d.ts +2 -5
- package/dist/store/open.js +42 -54
- package/dist/store/pilot-arm.d.ts +12 -0
- package/dist/store/pilot-arm.js +42 -0
- package/dist/store/port.d.ts +68 -6
- package/dist/store/port.js +8 -0
- package/dist/store/predictions.d.ts +1 -2
- package/dist/store/predictions.js +3 -6
- package/dist/store/project-tags.d.ts +62 -0
- package/dist/store/project-tags.js +67 -0
- package/dist/store/quality-repair.js +1 -1
- package/dist/store/quarantine.js +2 -1
- package/dist/store/recall-trace.d.ts +2 -0
- package/dist/store/recall-trace.js +20 -3
- package/dist/store/rejected-values.js +16 -10
- package/dist/store/rejection-probe.d.ts +4 -0
- package/dist/store/rejection-probe.js +19 -0
- package/dist/store/rejection.d.ts +0 -17
- package/dist/store/rejection.js +1 -21
- package/dist/store/rows.js +2 -2
- package/dist/store/rule-sql.d.ts +11 -0
- package/dist/store/rule-sql.js +31 -6
- package/dist/store/search-rows.d.ts +5 -5
- package/dist/store/search-rows.js +18 -16
- package/dist/store/sessions.js +4 -2
- package/dist/store/set-aside.d.ts +14 -0
- package/dist/store/set-aside.js +23 -0
- package/dist/store/sqlite/busy.d.ts +3 -0
- package/dist/store/sqlite/busy.js +8 -0
- package/dist/store/sqlite/connector-events-group.js +4 -7
- package/dist/store/sqlite/connector-writes-group.js +6 -4
- package/dist/store/sqlite/entry-writes-group.d.ts +3 -3
- package/dist/store/sqlite/entry-writes-group.js +3 -3
- package/dist/store/sqlite/error-codec.js +4 -3
- package/dist/store/sqlite/executor.js +10 -4
- package/dist/store/sqlite/graph-reads-group.js +1 -1
- package/dist/store/sqlite/held-connection.d.ts +11 -0
- package/dist/store/sqlite/held-connection.js +41 -0
- package/dist/store/sqlite/last-recall-group.d.ts +13 -0
- package/dist/store/sqlite/last-recall-group.js +57 -0
- package/dist/store/sqlite/local.d.ts +0 -17
- package/dist/store/sqlite/local.js +0 -31
- package/dist/store/sqlite/maintenance-groups.d.ts +6 -0
- package/dist/store/sqlite/maintenance-groups.js +60 -0
- package/dist/store/sqlite/object-rows.d.ts +1 -1
- package/dist/store/sqlite/objects-group.d.ts +1 -1
- package/dist/store/sqlite/objects-group.js +15 -7
- package/dist/store/sqlite/store.d.ts +1 -8
- package/dist/store/sqlite/store.js +13 -22
- package/dist/store/summaries.d.ts +10 -3
- package/dist/store/summaries.js +54 -11
- package/dist/store/token-ledger-rows.js +3 -2
- package/dist/store/token-ledger.d.ts +0 -7
- package/dist/store/token-ledger.js +0 -35
- package/dist/store/vector-index.js +8 -4
- package/dist/support-bundle.js +2 -3
- package/dist/trust/reject-flow.js +2 -2
- package/dist/util/agent-homes.d.ts +15 -0
- package/dist/util/agent-homes.js +34 -0
- package/dist/util/anthropic-messages.d.ts +6 -1
- package/dist/util/anthropic-messages.js +26 -7
- package/dist/util/atomic-write.d.ts +5 -2
- package/dist/util/atomic-write.js +12 -8
- package/dist/util/chunked.d.ts +3 -0
- package/dist/util/chunked.js +10 -0
- package/dist/util/ellipsize.d.ts +3 -0
- package/dist/util/ellipsize.js +5 -0
- package/dist/util/env.d.ts +12 -2
- package/dist/util/env.js +12 -2
- package/dist/util/format.d.ts +5 -0
- package/dist/util/format.js +10 -0
- package/dist/util/hook-payload.d.ts +8 -0
- package/dist/util/hook-payload.js +37 -0
- package/dist/util/http-retry.d.ts +6 -0
- package/dist/util/http-retry.js +43 -5
- package/dist/util/http-util.d.ts +0 -8
- package/dist/util/http-util.js +10 -21
- package/dist/util/limits.d.ts +7 -0
- package/dist/util/limits.js +14 -0
- package/dist/util/log.d.ts +4 -0
- package/dist/util/log.js +9 -0
- package/dist/util/request-scope.d.ts +9 -3
- package/dist/util/request-scope.js +18 -9
- package/dist/util/secret-detect.js +6 -1
- package/dist/util/spawn-argv.d.ts +9 -0
- package/dist/util/spawn-argv.js +57 -0
- package/dist/util/sql.d.ts +3 -0
- package/dist/util/sql.js +6 -0
- package/dist/util/sqlite-blocked.d.ts +2 -0
- package/dist/util/sqlite-blocked.js +5 -0
- package/dist/util/stream-tee.d.ts +3 -0
- package/dist/util/stream-tee.js +35 -0
- package/dist/util/time.d.ts +4 -0
- package/dist/util/time.js +4 -0
- package/dist/util/vector-codec.d.ts +4 -0
- package/dist/util/vector-codec.js +15 -0
- package/dist/util/version.d.ts +1 -1
- package/dist/util/version.js +1 -1
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +4 -2
- package/dist/api/on-store.d.ts +0 -16
- package/dist/api/on-store.js +0 -38
- package/dist/store/embeddings/local.d.ts +0 -15
- package/dist/store/embeddings/local.js +0 -175
- /package/dist/{cli → api}/correction-latency.d.ts +0 -0
- /package/dist/{cli → api}/correction-latency.js +0 -0
- /package/dist/{cli → api}/provenance-coverage.d.ts +0 -0
- /package/dist/{cli → api}/provenance-coverage.js +0 -0
- /package/dist/{store → core}/object-types.d.ts +0 -0
- /package/dist/{store → core}/object-types.js +0 -0
- /package/dist/{capture → util}/compaction-items.d.ts +0 -0
- /package/dist/{capture → util}/compaction-items.js +0 -0
- /package/dist/{store → util}/yaml.d.ts +0 -0
- /package/dist/{store → util}/yaml.js +0 -0
|
@@ -3,7 +3,8 @@ import * as path from 'path';
|
|
|
3
3
|
import { execFileSync, execSync } from 'child_process';
|
|
4
4
|
import { installJsonHooks } from '../hooks/json-hooks.js';
|
|
5
5
|
import { CODEX_TRUST_LINE } from '../hooks/shared.js';
|
|
6
|
-
import {
|
|
6
|
+
import { envSkipSchedule } from '../util/env.js';
|
|
7
|
+
import { DAILY_TASK_NAME, buildDailyRunnerCommand, hasUnsafeRunnerPathChars, buildSchtasksCreateArgs, buildWindowsTaskRun, quoteInsideWindowsArg, } from './scheduler.js';
|
|
7
8
|
/** Adds hippo's two Codex hooks and says what changed; each install ends on the trust reminder, since Codex skips an untrusted hook. */
|
|
8
9
|
export function installCodexMemoryHooks(indent) {
|
|
9
10
|
const result = installJsonHooks('codex');
|
|
@@ -20,11 +21,13 @@ export function installCodexMemoryHooks(indent) {
|
|
|
20
21
|
: `${indent}hippo's Codex memory hooks already in ${result.settingsPath}`);
|
|
21
22
|
console.log(`${indent}${CODEX_TRUST_LINE}`);
|
|
22
23
|
}
|
|
23
|
-
/** The one line init, hook install, hook uninstall and setup print when Claude Code's settings.json is not JSON hippo can edit and so was
|
|
24
|
+
/** The one line init, hook install, hook uninstall and setup print when Claude Code's settings.json is not JSON hippo can edit and so was
|
|
25
|
+
* left unchanged; true when it printed. */
|
|
24
26
|
export function warnClaudeSettingsUnusable(result, indent, action = 'install') {
|
|
25
27
|
if (!result.invalidJson)
|
|
26
28
|
return false;
|
|
27
|
-
console.log(`${indent}WARNING: ${result.settingsPath} is not a JSON object hippo can merge into, so it was left unchanged;
|
|
29
|
+
console.log(`${indent}WARNING: ${result.settingsPath} is not a JSON object hippo can merge into, so it was left unchanged; ` +
|
|
30
|
+
`fix it, then run \`hippo hook ${action} claude-code\`.`);
|
|
28
31
|
return true;
|
|
29
32
|
}
|
|
30
33
|
/** Machine-level daily runner sweeping all registered workspaces: user crontab on Linux/macOS, a scheduled task on Windows; skips if installed. */
|
|
@@ -38,6 +41,11 @@ function warnSchedulerTimedOut(command) {
|
|
|
38
41
|
console.log(` ${command} did not answer within ${SCHEDULER_CALL_TIMEOUT_MS / 1000} s and was stopped, so the daily runner is not scheduled.`);
|
|
39
42
|
}
|
|
40
43
|
export function setupDailySchedule(globalRoot) {
|
|
44
|
+
// Checked here, not per caller, so init, init --scan and setup all honour it.
|
|
45
|
+
if (envSkipSchedule()) {
|
|
46
|
+
console.log(' HIPPO_SKIP_SCHEDULE=1, so the machine-level daily runner was not scheduled.');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
41
49
|
const runnerDir = path.resolve(globalRoot);
|
|
42
50
|
if (hasUnsafeRunnerPathChars(runnerDir, process.platform)) {
|
|
43
51
|
console.log(` Skipping schedule: runner path contains unsafe characters.`);
|
package/dist/cli/last-sleep.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// `hippo last-sleep`: the previous session's sleep log for the debug log, and one problems line for the user.
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import { isStringValue } from '../core/capture-contract.js';
|
|
4
|
-
import { REPLAY_AFTER_MS } from '../
|
|
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
7
|
import { errorMessage, log } from '../util/log.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type EmbeddingProvider } from '../
|
|
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, flags }: CommandContext): void;
|
|
5
|
-
export declare function handleEmbed({ hippoRoot, flags }: CommandContext, given?: EmbeddingProvider): Promise<void>;
|
|
4
|
+
export declare function handleDedup({ hippoRoot, tenantId, flags }: CommandContext): void;
|
|
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
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// Store upkeep verbs: `hippo refine`, `hippo dedup` and `hippo embed`.
|
|
2
2
|
import { envAnthropicApiKey } from '../util/env.js';
|
|
3
|
-
import { loadAllEntries, loadAllEntryIds } from '../store/entry-reads.js';
|
|
4
3
|
import { deduplicateStore } from '../consolidate/dedupe.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
4
|
+
import { resolveEmbeddingProvider } from '../embeddings/provider.js';
|
|
5
|
+
import { embedCoverage, embedMissingMemories, resetPhysicsFromVectors, storedVectorCount } from '../api/embeddings.js';
|
|
6
|
+
import { countAllMemories } from '../api/memories.js';
|
|
7
|
+
import { cliApiContext } 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 } from './flag-values.js';
|
|
11
|
+
import { boolFlag, numberFlag } from './flag-values.js';
|
|
12
12
|
import { requireInit, resolveAuthRoot } from './shared.js';
|
|
13
13
|
import { errorMessage } from '../util/log.js';
|
|
14
14
|
import { CliExit } from './exit.js';
|
|
@@ -24,7 +24,7 @@ export async function handleRefine({ hippoRoot, tenantId, flags }) {
|
|
|
24
24
|
}
|
|
25
25
|
const dryRun = boolFlag(flags, 'dry-run');
|
|
26
26
|
const all = boolFlag(flags, 'all');
|
|
27
|
-
const limit = flags
|
|
27
|
+
const limit = numberFlag(flags, 'limit');
|
|
28
28
|
const model = flags['model'] ? String(flags['model']) : undefined;
|
|
29
29
|
const asJson = boolFlag(flags, 'json');
|
|
30
30
|
const result = await refineStore(hippoRoot, {
|
|
@@ -50,14 +50,14 @@ export async function handleRefine({ hippoRoot, tenantId, flags }) {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
export function handleDedup({ hippoRoot, flags }) {
|
|
53
|
+
export function handleDedup({ hippoRoot, tenantId, flags }) {
|
|
54
54
|
requireInit(hippoRoot);
|
|
55
55
|
const dryRun = boolFlag(flags, 'dry-run');
|
|
56
56
|
if (flags['threshold'] !== undefined) {
|
|
57
57
|
printError('hippo dedup: --threshold is ignored; a duplicate is the same text apart from spacing.');
|
|
58
58
|
}
|
|
59
|
-
const
|
|
60
|
-
console.log(`Scanning ${
|
|
59
|
+
const total = countAllMemories(cliApiContext(hippoRoot, tenantId));
|
|
60
|
+
console.log(`Scanning ${total} memories for duplicates (same text apart from spacing)${dryRun ? ' (dry run)' : ''}...\n`);
|
|
61
61
|
const result = deduplicateStore(hippoRoot, { dryRun });
|
|
62
62
|
if (result.removed === 0) {
|
|
63
63
|
console.log('No duplicates found.');
|
|
@@ -100,18 +100,19 @@ function printDedupPairs(result, dryRun) {
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
// Embed command
|
|
103
|
-
export async function handleEmbed({ hippoRoot, flags }, given) {
|
|
103
|
+
export async function handleEmbed({ hippoRoot, tenantId, flags }, given) {
|
|
104
104
|
// --global mirrors resolveAuthRoot: initGlobal() + the global root, skipping the local requireInit,
|
|
105
105
|
// so it heals pre-1.27.0 global stores from a directory with no local .hippo.
|
|
106
106
|
const root = resolveAuthRoot(hippoRoot, flags);
|
|
107
|
+
const ctx = cliApiContext(root, tenantId);
|
|
107
108
|
// --status and --reset-physics only read cached state, so they must work with no provider key (e.g. removed after an earlier embed);
|
|
108
109
|
// the provider-availability gate is deferred to the embed path.
|
|
109
110
|
if (flags['reset-physics']) {
|
|
110
|
-
resetPhysics(
|
|
111
|
+
resetPhysics(ctx);
|
|
111
112
|
return;
|
|
112
113
|
}
|
|
113
114
|
if (flags['status']) {
|
|
114
|
-
printEmbedStatus(
|
|
115
|
+
printEmbedStatus(ctx);
|
|
115
116
|
return;
|
|
116
117
|
}
|
|
117
118
|
const provider = readyEmbedProvider(root, given);
|
|
@@ -120,40 +121,38 @@ export async function handleEmbed({ hippoRoot, flags }, given) {
|
|
|
120
121
|
console.log('Embedding all memories (this may take a moment on first run to download model)...');
|
|
121
122
|
let count;
|
|
122
123
|
try {
|
|
123
|
-
count = await
|
|
124
|
+
count = await embedMissingMemories(ctx, provider);
|
|
124
125
|
}
|
|
125
126
|
catch (err) {
|
|
126
127
|
printError(`Embedding failed: ${errorMessage(err)}`);
|
|
127
|
-
|
|
128
|
-
printError(`Partial progress saved: ${Object.keys(partial).length} embeddings on disk. Re-run \`hippo embed\` to resume.`);
|
|
128
|
+
printError(`Partial progress saved: ${storedVectorCount(ctx)} embeddings on disk. Re-run \`hippo embed\` to resume.`);
|
|
129
129
|
process.exitCode = 1;
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const unembedded =
|
|
132
|
+
const after = embedCoverage(ctx);
|
|
133
|
+
console.log(`Done. ${count} new embeddings created. ${after.vectorIds.length}/${after.memoryIds.length} total.`);
|
|
134
|
+
const embeddedAfter = new Set(after.vectorIds);
|
|
135
|
+
const unembedded = after.memoryIds.filter((id) => !embeddedAfter.has(id)).length;
|
|
136
136
|
if (unembedded > 0) {
|
|
137
137
|
printError(`${unembedded} memories are still not embedded (the warnings above name them). Re-run \`hippo embed\` to retry.`);
|
|
138
138
|
process.exitCode = 1;
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
function resetPhysics(
|
|
142
|
-
const
|
|
143
|
-
const count = resetStoredParticles(root, loadAllEntryIds(root), embIndex);
|
|
141
|
+
function resetPhysics(ctx) {
|
|
142
|
+
const count = resetPhysicsFromVectors(ctx);
|
|
144
143
|
console.log(`Reset physics state: ${count} particles re-initialized from embeddings.`);
|
|
145
144
|
}
|
|
146
|
-
function printEmbedStatus(
|
|
147
|
-
const
|
|
148
|
-
const
|
|
149
|
-
const
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
console.log(`Embedding status: ${activeEmbedded}/${entries.length} memories embedded`);
|
|
145
|
+
function printEmbedStatus(ctx) {
|
|
146
|
+
const { memoryIds, vectorIds } = embedCoverage(ctx);
|
|
147
|
+
const activeIds = new Set(memoryIds);
|
|
148
|
+
const activeEmbedded = vectorIds.filter((id) => activeIds.has(id)).length;
|
|
149
|
+
const orphaned = vectorIds.length - activeEmbedded;
|
|
150
|
+
console.log(`Embedding status: ${activeEmbedded}/${memoryIds.length} memories embedded`);
|
|
153
151
|
if (orphaned > 0) {
|
|
154
152
|
console.log(` ${orphaned} orphaned embeddings (run \`hippo embed\` to prune)`);
|
|
155
153
|
}
|
|
156
|
-
const
|
|
154
|
+
const embedded = new Set(vectorIds);
|
|
155
|
+
const missing = memoryIds.filter((id) => !embedded.has(id));
|
|
157
156
|
if (missing.length > 0) {
|
|
158
157
|
console.log(` ${missing.length} memories need embedding (run \`hippo embed\` to embed them)`);
|
|
159
158
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// The customer note verbs: one account's note, versioned by supersession.
|
|
2
|
+
import * as customerNotesModule from '../objects/customer-notes.js';
|
|
3
|
+
import { stringFlag } from './flag-values.js';
|
|
4
|
+
import { requiredText, versionedVerbs } from './versioned-verbs.js';
|
|
5
|
+
function printNoteRow(n) {
|
|
6
|
+
console.log(`#${n.id} [${n.status}] v${n.version} customer="${n.customer}" memory=${n.memoryId ?? '-'}`);
|
|
7
|
+
if (n.changeSummary)
|
|
8
|
+
console.log(` change: ${n.changeSummary}`);
|
|
9
|
+
}
|
|
10
|
+
const noteKind = (hippoRoot, tenantId) => ({
|
|
11
|
+
names: { cmd: 'note', noun: 'Customer note', idLabel: 'note' },
|
|
12
|
+
plural: 'customer notes',
|
|
13
|
+
states: customerNotesModule.VALID_NOTE_STATES,
|
|
14
|
+
usage: [
|
|
15
|
+
'Usage: hippo note new "<customer>" --text "<note>"',
|
|
16
|
+
' hippo note list [--status active|superseded|closed|all] [--customer "<id>"] [--limit N]',
|
|
17
|
+
' hippo note get <id>',
|
|
18
|
+
' hippo note supersede <id> --text "<note>" [--change "<summary>"]',
|
|
19
|
+
' hippo note close <id>',
|
|
20
|
+
],
|
|
21
|
+
supersedeUsage: 'Usage: hippo note supersede <id> --text "<note>" [--change "<summary>"]',
|
|
22
|
+
bodyRequired: '--text "<note>"',
|
|
23
|
+
body: (flags) => requiredText(flags, 'text'),
|
|
24
|
+
keyOf: (n) => n.customer,
|
|
25
|
+
save: (customer, note, extraTags, from) => customerNotesModule.saveCustomerNote(hippoRoot, tenantId, {
|
|
26
|
+
customer, note, extraTags, changeSummary: from?.changeSummary, supersedesNoteId: from?.id,
|
|
27
|
+
}),
|
|
28
|
+
recorded: (n) => `Customer note recorded: #${n.id} (v${n.version}) for customer "${n.customer}"`,
|
|
29
|
+
list: (opts, flags) => customerNotesModule.loadCustomerNotes(hippoRoot, tenantId, { ...opts, customer: stringFlag(flags, 'customer')?.trim() || undefined }),
|
|
30
|
+
loadById: (id) => customerNotesModule.loadCustomerNoteById(hippoRoot, tenantId, id),
|
|
31
|
+
close: (id) => customerNotesModule.closeCustomerNote(hippoRoot, tenantId, id),
|
|
32
|
+
printRow: printNoteRow,
|
|
33
|
+
printDetail: (n) => {
|
|
34
|
+
console.log(` customer: ${n.customer}`);
|
|
35
|
+
console.log(` status: ${n.status}`);
|
|
36
|
+
console.log(` version: ${n.version}`);
|
|
37
|
+
console.log(` note: ${n.note}`);
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
export const handleCustomerNote = versionedVerbs(noteKind);
|
|
41
|
+
//# sourceMappingURL=notes.js.map
|
|
@@ -14,7 +14,7 @@ export interface ObjectListSpec<O, S extends string> {
|
|
|
14
14
|
}
|
|
15
15
|
export declare function listObjects<O, S extends string>(flags: CliFlags, spec: ObjectListSpec<O, S>): 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 {
|
|
@@ -25,7 +25,7 @@ export interface ObjectNames {
|
|
|
25
25
|
/** `hippo <cmd> close <id>` for a kind whose close call returns the closed row. */
|
|
26
26
|
export declare function closeObject(args: string[], names: ObjectNames, close: (id: number) => {
|
|
27
27
|
id: number;
|
|
28
|
-
}
|
|
28
|
+
}): void;
|
|
29
29
|
interface LifecycleTail {
|
|
30
30
|
readonly changeSummary?: string | null;
|
|
31
31
|
readonly supersededBy: number | null;
|
package/dist/cli/object-verbs.js
CHANGED
|
@@ -29,13 +29,13 @@ export function listObjects(flags, spec) {
|
|
|
29
29
|
spec.printRow(o);
|
|
30
30
|
}
|
|
31
31
|
/** The `<id>` after the subcommand; prints `usage` and exits 1 when it is missing. */
|
|
32
|
-
export function idArgOrExit(args, usage, label
|
|
32
|
+
export function idArgOrExit(args, usage, label) {
|
|
33
33
|
const idRaw = args[1];
|
|
34
34
|
if (!idRaw) {
|
|
35
35
|
printError(usage);
|
|
36
36
|
throw new CliExit(1);
|
|
37
37
|
}
|
|
38
|
-
return
|
|
38
|
+
return parsePositiveId(idRaw, label);
|
|
39
39
|
}
|
|
40
40
|
export function foundOrExit(found, noun, id) {
|
|
41
41
|
if (!found) {
|
|
@@ -45,8 +45,8 @@ export function foundOrExit(found, noun, id) {
|
|
|
45
45
|
return found;
|
|
46
46
|
}
|
|
47
47
|
/** `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
|
|
48
|
+
export function closeObject(args, names, close) {
|
|
49
|
+
const id = idArgOrExit(args, `Usage: hippo ${names.cmd} close <id>`, names.idLabel);
|
|
50
50
|
console.log(`${names.noun} #${close(id).id} closed.`);
|
|
51
51
|
}
|
|
52
52
|
/** The detail lines every `get` ends with. */
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** The part of a child process the launch reads. */
|
|
2
|
+
interface Launched {
|
|
3
|
+
on(event: 'error', listener: (err: Error) => void): void;
|
|
4
|
+
unref(): void;
|
|
5
|
+
}
|
|
6
|
+
type Launcher = (cmd: string, args: string[], opts: {
|
|
7
|
+
detached: boolean;
|
|
8
|
+
stdio: 'ignore';
|
|
9
|
+
windowsHide: boolean;
|
|
10
|
+
}) => Launched;
|
|
11
|
+
/** `launch` is the process starter; tests hand in a stand-in. */
|
|
12
|
+
export declare function openInBrowser(out: string, launch?: Launcher): void;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=open-browser.d.ts.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Best-effort browser launch for CLI verbs that write a file.
|
|
2
|
+
import { spawn } from 'child_process';
|
|
3
|
+
import { errorMessage, log } from '../util/log.js';
|
|
4
|
+
/** `launch` is the process starter; tests hand in a stand-in. */
|
|
5
|
+
export function openInBrowser(out, launch = spawn) {
|
|
6
|
+
// Best-effort browser launch; never fail the command if it doesn't work.
|
|
7
|
+
try {
|
|
8
|
+
const [cmd, cmdArgs] = process.platform === 'win32'
|
|
9
|
+
? ['cmd', ['/c', 'start', '', out]]
|
|
10
|
+
: process.platform === 'darwin'
|
|
11
|
+
? ['open', [out]]
|
|
12
|
+
: ['xdg-open', [out]];
|
|
13
|
+
const child = launch(cmd, cmdArgs, { detached: true, stdio: 'ignore', windowsHide: true });
|
|
14
|
+
// A missing launcher (e.g. xdg-open absent) emits 'error' asynchronously; unhandled, it would throw.
|
|
15
|
+
child.on('error', (err) => {
|
|
16
|
+
log.warn(`graph view: could not open the browser: ${errorMessage(err)}`);
|
|
17
|
+
process.exitCode = 1;
|
|
18
|
+
});
|
|
19
|
+
child.unref();
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
// 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)}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=open-browser.js.map
|
package/dist/cli/playbooks.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export declare
|
|
3
|
-
export declare
|
|
4
|
-
export declare function handleSkill({ hippoRoot, tenantId, args, flags }: CommandContext): void;
|
|
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;
|
|
5
4
|
//# sourceMappingURL=playbooks.d.ts.map
|