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
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
// First-class object, server, goal and auth verbs, in `hippo help` order.
|
|
2
|
+
import { DEFAULT_KEY_TTL_DAYS, MAX_TTL_DAYS } from '../../api/auth.js';
|
|
3
|
+
import { DEFAULT_SERVER_HOST, DEFAULT_SERVER_PORT } from '../../server/defaults.js';
|
|
4
|
+
import { verb } from '../verb-row.js';
|
|
5
|
+
export const OBJECT_VERBS = {
|
|
6
|
+
predict: verb(() => import('../predictions.js'), 'handlePredict', {
|
|
7
|
+
flags: {
|
|
8
|
+
values: ['actual', 'class', 'estimate', 'note', 'state', 'status', 'target', 'unit'],
|
|
9
|
+
numbers: ['limit'],
|
|
10
|
+
},
|
|
11
|
+
usage: [`
|
|
12
|
+
predict "<claim>" Record a prediction to score against the actual outcome later
|
|
13
|
+
--class <c> Reference class (required)
|
|
14
|
+
--estimate <v> Numeric estimate
|
|
15
|
+
--unit <u> Unit of the estimate
|
|
16
|
+
--target <YYYY-MM-DD> When the outcome is due
|
|
17
|
+
predict close <id> Close a prediction
|
|
18
|
+
--state <s> closed | closed-unknown (required)
|
|
19
|
+
--actual <v> The actual value
|
|
20
|
+
--note "<text>" Closure note
|
|
21
|
+
predict list [--class <c>] [--status open|closed|closed-unknown|all] [--limit N]
|
|
22
|
+
List predictions (closed and closed-unknown need --class)
|
|
23
|
+
predict show <id> Show one prediction
|
|
24
|
+
predict baserate --class <c>
|
|
25
|
+
How past estimates in a class compared with the actuals`],
|
|
26
|
+
}),
|
|
27
|
+
decide: verb(() => import('../decisions.js'), 'handleDecide', {
|
|
28
|
+
flags: { values: ['context', 'status', 'supersedes'], numbers: ['limit'] },
|
|
29
|
+
usage: [`
|
|
30
|
+
decide "<decision>" Record a decision (first-class object + memory mirror)
|
|
31
|
+
--context "<why>" Why this decision was made
|
|
32
|
+
--supersedes <mem-id> Supersede the decision backed by this memory id
|
|
33
|
+
decide list [--status active|superseded|closed|all] [--limit N]
|
|
34
|
+
List decisions (table is authoritative, survives decay)
|
|
35
|
+
decide get <id> Show a decision by its table id
|
|
36
|
+
decide close <id> Retire (close) an active decision by its table id`],
|
|
37
|
+
}),
|
|
38
|
+
incident: verb(() => import('../incidents.js'), 'handleIncident', {
|
|
39
|
+
flags: { values: ['context', 'resolution', 'status'], numbers: ['limit'], lists: ['link'] },
|
|
40
|
+
usage: [`
|
|
41
|
+
incident "<incident>" Record an incident (first-class object + memory mirror)
|
|
42
|
+
--context "<details>" What happened / surrounding detail
|
|
43
|
+
--link <mem-id> Link a memory as evidence (repeatable)
|
|
44
|
+
incident list [--status open|resolved|closed|all] [--limit N]
|
|
45
|
+
List incidents (table is authoritative, survives decay)
|
|
46
|
+
incident get <id> Show an incident by its table id
|
|
47
|
+
incident resolve <id> Resolve an open incident (open -> resolved)
|
|
48
|
+
--resolution "<text>" How it was resolved (required)
|
|
49
|
+
incident close <id> Retire (close) an open or resolved incident by its table id`],
|
|
50
|
+
}),
|
|
51
|
+
process: verb(() => import('../playbooks.js'), 'handleProcess', {
|
|
52
|
+
flags: { values: ['change', 'description', 'status'], numbers: ['limit'], lists: ['step'] },
|
|
53
|
+
usage: [`
|
|
54
|
+
process new "<name>" Record a process map (first-class object + memory mirror)
|
|
55
|
+
--step "<text>" An ordered step (repeatable)
|
|
56
|
+
--description "<text>" Optional summary of the process
|
|
57
|
+
process list [--status active|superseded|closed|all] [--limit N]
|
|
58
|
+
List processes (table is authoritative, survives decay)
|
|
59
|
+
process get <id> Show a process (with its steps) by its table id
|
|
60
|
+
process supersede <id> Record a new version that supersedes an active process
|
|
61
|
+
--step "<text>" A step of the new version (repeatable, required)
|
|
62
|
+
--change "<summary>" What changed in this version (the delta note)
|
|
63
|
+
--description "<text>" Optional summary of the new version
|
|
64
|
+
process close <id> Retire (close) an active process by its table id`],
|
|
65
|
+
}),
|
|
66
|
+
policy: verb(() => import('../playbooks.js'), 'handlePolicy', {
|
|
67
|
+
flags: { values: ['change', 'from', 'name', 'status', 'text', 'to'], numbers: ['limit'] },
|
|
68
|
+
usage: [`
|
|
69
|
+
policy new "<name>" Record a policy (bi-temporal first-class object + mirror)
|
|
70
|
+
--text "<rule>" The policy rule/statement (required)
|
|
71
|
+
--from "<iso>" Effective-from date (default: now)
|
|
72
|
+
--to "<iso>" Effective-to date (optional; open-ended if omitted)
|
|
73
|
+
policy list [--status active|superseded|closed|all] [--limit N]
|
|
74
|
+
List policies (table is authoritative, survives decay)
|
|
75
|
+
policy get <id> Show a policy by its table id
|
|
76
|
+
policy asof "<iso-date>" Show active policies in force at a valid-time
|
|
77
|
+
--name "<policy>" Filter to one policy by name
|
|
78
|
+
policy supersede <id> Record a new version that supersedes an active policy
|
|
79
|
+
--text "<rule>" The new rule (required)
|
|
80
|
+
--from "<iso>" New effective-from (default: now)
|
|
81
|
+
--to "<iso>" New effective-to (optional)
|
|
82
|
+
--change "<summary>" What changed in this version (the delta note)
|
|
83
|
+
policy close <id> Retire (close) an active policy by its table id`],
|
|
84
|
+
}),
|
|
85
|
+
skill: verb(() => import('../playbooks.js'), 'handleSkill', {
|
|
86
|
+
flags: { values: ['change', 'instructions', 'status', 'trigger'], numbers: ['limit'] },
|
|
87
|
+
usage: [`
|
|
88
|
+
skill new "<name>" Record a skill (reusable agent-followable capability)
|
|
89
|
+
--instructions "<txt>" The skill body (required)
|
|
90
|
+
--trigger "<when>" Optional: when to apply this skill
|
|
91
|
+
skill list [--status active|superseded|closed|all] [--limit N]
|
|
92
|
+
List skills (table is authoritative, survives decay)
|
|
93
|
+
skill get <id> Show a skill by its table id
|
|
94
|
+
skill export Render active skills as an AGENTS.md/CLAUDE.md markdown block
|
|
95
|
+
skill supersede <id> Record a new version that supersedes an active skill
|
|
96
|
+
--instructions "<txt>" The new skill body (required)
|
|
97
|
+
--trigger "<when>" Optional new trigger
|
|
98
|
+
--change "<summary>" What changed in this version (the delta note)
|
|
99
|
+
skill close <id> Retire (close) an active skill by its table id`],
|
|
100
|
+
}),
|
|
101
|
+
brief: verb(() => import('../briefs.js'), 'handleProjectBrief', {
|
|
102
|
+
aliases: ['project-brief'],
|
|
103
|
+
dryRun: { form: 'refresh', honoured: (args) => args[0] === 'refresh' },
|
|
104
|
+
flags: { switches: ['dry-run'], values: ['change', 'repo', 'status', 'summary'], numbers: ['limit'] },
|
|
105
|
+
usage: [`
|
|
106
|
+
brief new "<repo>" Record a repo-scoped project brief
|
|
107
|
+
--summary "<text>" The brief body (required)
|
|
108
|
+
brief list [--status active|superseded|closed|all] [--repo "<repo>"] [--limit N]
|
|
109
|
+
List project briefs (table is authoritative, survives decay)
|
|
110
|
+
brief get <id> Show a project brief by its table id
|
|
111
|
+
brief supersede <id> Record a new version that supersedes an active brief
|
|
112
|
+
--summary "<text>" The new brief body (required)
|
|
113
|
+
--change "<summary>" What changed in this version (the delta note)
|
|
114
|
+
brief close <id> Retire (close) an active project brief by its table id
|
|
115
|
+
brief refresh "<repo>" Auto-assemble the brief from the repo's receipts (path:<repo>)
|
|
116
|
+
--dry-run Print the assembled brief without writing it`],
|
|
117
|
+
}),
|
|
118
|
+
note: verb(() => import('../notes.js'), 'handleCustomerNote', {
|
|
119
|
+
aliases: ['customer-note'],
|
|
120
|
+
flags: { values: ['change', 'customer', 'status', 'text'], numbers: ['limit'] },
|
|
121
|
+
usage: [`
|
|
122
|
+
note new "<customer>" Record a customer/account-scoped note
|
|
123
|
+
--text "<note>" The note body (required)
|
|
124
|
+
note list [--status active|superseded|closed|all] [--customer "<id>"] [--limit N]
|
|
125
|
+
List customer notes (table is authoritative, survives decay)
|
|
126
|
+
note get <id> Show a customer note by its table id
|
|
127
|
+
note supersede <id> Record a new version that supersedes an active note
|
|
128
|
+
--text "<note>" The new note body (required)
|
|
129
|
+
--change "<summary>" What changed in this version (the delta note)
|
|
130
|
+
note close <id> Retire (close) an active customer note by its table id`],
|
|
131
|
+
}),
|
|
132
|
+
graph: verb(() => import('../graph.js'), 'handleGraph', {
|
|
133
|
+
flags: { switches: ['json', 'open'], values: ['entity', 'format', 'out'] },
|
|
134
|
+
usage: [`
|
|
135
|
+
graph extract Rebuild the entity/relation graph from consolidated objects
|
|
136
|
+
(decisions/policies/customer-notes/project-briefs); idempotent`],
|
|
137
|
+
}),
|
|
138
|
+
invalidate: verb(() => import('../curate.js'), 'handleInvalidate', {
|
|
139
|
+
destructive: true,
|
|
140
|
+
flags: { switches: ['churn', 'dry-run'], values: ['id', 'reason'] },
|
|
141
|
+
usage: [`
|
|
142
|
+
invalidate "<pattern>" Actively weaken memories matching an old pattern
|
|
143
|
+
(content overlap, or a tag EXACTLY equal to the
|
|
144
|
+
full pattern - never token-level tag matching)
|
|
145
|
+
--id <memory-id> Invalidate exactly one memory (instead of a pattern)
|
|
146
|
+
--dry-run Preview what would be hit; writes nothing
|
|
147
|
+
Note: a pattern equal to the system tag
|
|
148
|
+
'invalidated' re-weakens previously invalidated
|
|
149
|
+
memories - preview with --dry-run first
|
|
150
|
+
--reason "<why>" Optional: what replaced it
|
|
151
|
+
invalidate --churn FE2: tag memories 'churn-stale' whose named file
|
|
152
|
+
changed or was deleted, or whose named symbol or
|
|
153
|
+
npm script was removed, in this repo's git history
|
|
154
|
+
since the memory was stored or confirmed
|
|
155
|
+
--dry-run Preview what would be tagged; writes nothing`],
|
|
156
|
+
}),
|
|
157
|
+
wm: verb(() => import('../continuity.js'), 'handleWm', {
|
|
158
|
+
flags: { switches: ['json'], values: ['content', 'importance', 'scope', 'session', 'task'], numbers: ['limit'] },
|
|
159
|
+
usage: [`
|
|
160
|
+
wm <sub> Working memory — bounded buffer for current state
|
|
161
|
+
wm push Push a working memory entry
|
|
162
|
+
--scope <scope> Scope name (default: default)
|
|
163
|
+
--content <text> Content to store (required)
|
|
164
|
+
--importance <n> Priority 0-1 (default: 0.5)
|
|
165
|
+
--session <id> Session ID
|
|
166
|
+
--task <id> Task ID
|
|
167
|
+
wm read Read working memory entries
|
|
168
|
+
--scope <scope> Filter by scope
|
|
169
|
+
--session <id> Filter by session
|
|
170
|
+
--limit <n> Max entries (default: 20)
|
|
171
|
+
--json Output as JSON
|
|
172
|
+
wm clear Clear working memory entries
|
|
173
|
+
--scope <scope> Filter by scope
|
|
174
|
+
--session <id> Filter by session
|
|
175
|
+
wm flush Same as clear; nothing runs it at session end
|
|
176
|
+
--scope <scope> Filter by scope
|
|
177
|
+
--session <id> Filter by session`],
|
|
178
|
+
}),
|
|
179
|
+
dashboard: verb(() => import('../serve.js'), 'handleDashboard', {
|
|
180
|
+
flags: { numbers: ['port'] },
|
|
181
|
+
usage: [`
|
|
182
|
+
dashboard Open web dashboard for memory health
|
|
183
|
+
--port <n> Port to serve on (default: 3333)`],
|
|
184
|
+
}),
|
|
185
|
+
mcp: verb(() => import('../serve.js'), 'handleMcp', {
|
|
186
|
+
flags: {},
|
|
187
|
+
usage: [`
|
|
188
|
+
mcp Start MCP server (stdio transport)`],
|
|
189
|
+
}),
|
|
190
|
+
serve: verb(() => import('../serve.js'), 'handleServe', {
|
|
191
|
+
flags: { switches: ['allow-cleartext'], values: ['host', 'tls-cert', 'tls-key'], numbers: ['port'] },
|
|
192
|
+
usage: [`
|
|
193
|
+
serve Start the HTTP API server for this store (Ctrl+C stops it)
|
|
194
|
+
--port <n> Port to serve on (default: $HIPPO_PORT or ${DEFAULT_SERVER_PORT})
|
|
195
|
+
--host <host> Address to bind (default: ${DEFAULT_SERVER_HOST})
|
|
196
|
+
--tls-cert <file> PEM certificate; serve HTTPS only (or $HIPPO_TLS_CERT)
|
|
197
|
+
--tls-key <file> PEM private key for it; give both (or $HIPPO_TLS_KEY)
|
|
198
|
+
--allow-cleartext Bind a non-loopback host without TLS, for a TLS proxy
|
|
199
|
+
in front (or $HIPPO_ALLOW_CLEARTEXT=1)
|
|
200
|
+
Every request needs an API key (hippo auth create).
|
|
201
|
+
$HIPPO_ALLOW_KEYLESS_LOCAL=1 lets requests from this machine
|
|
202
|
+
in without one, as a member ($HIPPO_KEYLESS_LOCAL_ROLE=admin
|
|
203
|
+
for host admin); $HIPPO_REQUIRE_AUTH=1 wins over it.`],
|
|
204
|
+
}),
|
|
205
|
+
goal: verb(() => import('../goals.js'), 'handleGoal', {
|
|
206
|
+
scoped: true,
|
|
207
|
+
flags: {
|
|
208
|
+
switches: ['all', 'no-propagate'],
|
|
209
|
+
values: ['level', 'outcome', 'parent', 'policy', 'session-id', 'success', 'tenant-id'],
|
|
210
|
+
},
|
|
211
|
+
usage: [`
|
|
212
|
+
goal <sub> Goal stack, scoped per session
|
|
213
|
+
goal push <name> Push a new active goal; prints the new goal id
|
|
214
|
+
--policy <type> schema-fit-biased | error-prioritized |
|
|
215
|
+
recency-first | hybrid
|
|
216
|
+
--success "<cond>" Optional success condition text
|
|
217
|
+
--level <n> Goal level (default: 0)
|
|
218
|
+
--parent <goalId> Parent goal id (for sub-goals)
|
|
219
|
+
--session-id <s> Override session (defaults to HIPPO_SESSION_ID)
|
|
220
|
+
--tenant-id <t> Override tenant (defaults to HIPPO_TENANT)
|
|
221
|
+
goal list Show active goals as a table
|
|
222
|
+
--all Include suspended/completed goals
|
|
223
|
+
goal complete <id> Mark a goal completed
|
|
224
|
+
--outcome <0..1> Outcome score; >=0.7 boosts, <0.3 decays recalled mems
|
|
225
|
+
--no-propagate Close the goal without applying strength side-effects
|
|
226
|
+
goal suspend <id> Move an active goal to suspended
|
|
227
|
+
goal resume <id> Move a suspended goal back to active (depth-capped)`],
|
|
228
|
+
}),
|
|
229
|
+
auth: verb(() => import('../auth.js'), 'handleAuth', {
|
|
230
|
+
scoped: true,
|
|
231
|
+
flags: { switches: ['all', 'global', 'json', 'no-expiry'], values: ['label', 'role', 'tenant'], numbers: ['ttl-days'] },
|
|
232
|
+
usage: [`
|
|
233
|
+
auth <sub> Manage API keys (A5 stub auth)
|
|
234
|
+
auth create Mint a new API key (plaintext shown ONCE)
|
|
235
|
+
--label <s> Optional human label
|
|
236
|
+
--role <r> admin | member (default: member; member blocked from /v1/sleep)
|
|
237
|
+
--ttl-days <n> Days until the key expires (default: ${DEFAULT_KEY_TTL_DAYS}, at most ${MAX_TTL_DAYS})
|
|
238
|
+
--no-expiry Mint a key that never expires
|
|
239
|
+
--tenant <id> Override tenant (defaults to HIPPO_TENANT)
|
|
240
|
+
--json Output as JSON
|
|
241
|
+
--global Operate on the global store
|
|
242
|
+
auth list List API keys (active by default)
|
|
243
|
+
--all Include revoked and expired keys
|
|
244
|
+
--json Output as JSON
|
|
245
|
+
--global Operate on the global store
|
|
246
|
+
auth revoke <key_id> Revoke an API key (subsequent validate fails)
|
|
247
|
+
--json Output as JSON
|
|
248
|
+
--global Operate on the global store
|
|
249
|
+
auth grant <key_id> <scope> Let a member key read one restricted scope
|
|
250
|
+
--json Output as JSON
|
|
251
|
+
--global Operate on the global store
|
|
252
|
+
auth ungrant <key_id> <scope> Remove a scope grant
|
|
253
|
+
--json Output as JSON
|
|
254
|
+
--global Operate on the global store`],
|
|
255
|
+
}),
|
|
256
|
+
};
|
|
257
|
+
//# sourceMappingURL=objects.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type VerbSpec } from '../verb-row.js';
|
|
2
|
+
export declare const SESSION_VERBS: {
|
|
3
|
+
snapshot: VerbSpec;
|
|
4
|
+
session: VerbSpec;
|
|
5
|
+
handoff: VerbSpec;
|
|
6
|
+
card: VerbSpec;
|
|
7
|
+
current: VerbSpec;
|
|
8
|
+
forget: VerbSpec;
|
|
9
|
+
inspect: VerbSpec;
|
|
10
|
+
embed: VerbSpec;
|
|
11
|
+
watch: VerbSpec;
|
|
12
|
+
learn: VerbSpec;
|
|
13
|
+
promote: VerbSpec;
|
|
14
|
+
share: VerbSpec;
|
|
15
|
+
peers: VerbSpec;
|
|
16
|
+
sync: VerbSpec;
|
|
17
|
+
import: VerbSpec;
|
|
18
|
+
export: VerbSpec;
|
|
19
|
+
capture: VerbSpec;
|
|
20
|
+
setup: VerbSpec;
|
|
21
|
+
'last-sleep': VerbSpec;
|
|
22
|
+
'session-end': VerbSpec;
|
|
23
|
+
'__session-end-worker': VerbSpec;
|
|
24
|
+
'pre-compact': VerbSpec;
|
|
25
|
+
'compact-resume': VerbSpec;
|
|
26
|
+
'post-compact': VerbSpec;
|
|
27
|
+
'codex-run': VerbSpec;
|
|
28
|
+
'__codex-session-end-worker': VerbSpec;
|
|
29
|
+
hook: VerbSpec;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=sessions.d.ts.map
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
// Continuity, transfer, capture and agent-hook verbs, in `hippo help` order.
|
|
2
|
+
import { boolFlag } from '../flag-values.js';
|
|
3
|
+
import { verb } from '../verb-row.js';
|
|
4
|
+
export const SESSION_VERBS = {
|
|
5
|
+
snapshot: verb(() => import('../continuity.js'), 'handleSnapshot', {
|
|
6
|
+
flags: { switches: ['json'], values: ['id', 'next-step', 'session', 'source', 'status', 'summary', 'task'] },
|
|
7
|
+
usage: [`
|
|
8
|
+
snapshot <sub> Persist or inspect the current active task
|
|
9
|
+
snapshot save Save active task state
|
|
10
|
+
--task <task>
|
|
11
|
+
--summary <summary>
|
|
12
|
+
--next-step <step>
|
|
13
|
+
--source <source> Optional source label
|
|
14
|
+
--session <id> Link snapshot to a session trail
|
|
15
|
+
snapshot show Show the active task snapshot
|
|
16
|
+
--json Output as JSON
|
|
17
|
+
snapshot clear Clear the active task snapshot
|
|
18
|
+
--status <status> Mark final status (default: cleared)`],
|
|
19
|
+
}),
|
|
20
|
+
session: verb(() => import('../continuity.js'), 'handleSession', {
|
|
21
|
+
flags: {
|
|
22
|
+
switches: ['json'],
|
|
23
|
+
values: ['content', 'id', 'outcome', 'session', 'source', 'summary', 'task', 'type'],
|
|
24
|
+
numbers: ['limit'],
|
|
25
|
+
},
|
|
26
|
+
usage: [`
|
|
27
|
+
session <sub> Append or inspect short-term session history
|
|
28
|
+
session log Append a structured session event
|
|
29
|
+
--id <session-id>
|
|
30
|
+
--content <text>
|
|
31
|
+
--type <type> Event type (default: note)
|
|
32
|
+
--task <task> Optional task label
|
|
33
|
+
--source <source> Optional source label
|
|
34
|
+
session show Show recent events for a session or task
|
|
35
|
+
--id <session-id>
|
|
36
|
+
--task <task>
|
|
37
|
+
--limit <n> Event limit (default: 8)
|
|
38
|
+
--json Output as JSON
|
|
39
|
+
session latest Show latest task snapshot + events
|
|
40
|
+
--id <session-id> Filter by session
|
|
41
|
+
--json Output as JSON
|
|
42
|
+
session resume Re-inject latest handoff as context output
|
|
43
|
+
--id <session-id> Filter by session`],
|
|
44
|
+
}),
|
|
45
|
+
handoff: verb(() => import('../continuity.js'), 'handleHandoff', {
|
|
46
|
+
flags: {
|
|
47
|
+
switches: ['json'],
|
|
48
|
+
values: ['card-id', 'id', 'next', 'outcome', 'session', 'summary', 'target-runtime', 'task', 'tests'],
|
|
49
|
+
lists: ['artifact', 'constraint'],
|
|
50
|
+
},
|
|
51
|
+
usage: [`
|
|
52
|
+
handoff <sub> Manage session handoffs for continuity
|
|
53
|
+
handoff create Create a new session handoff
|
|
54
|
+
--summary <text> Handoff summary (required)
|
|
55
|
+
--next <text> Next action for successor
|
|
56
|
+
--session <id> Session ID (auto-generated if omitted)
|
|
57
|
+
--task <id> Associated task ID
|
|
58
|
+
--artifact <path> Related file path (repeatable)
|
|
59
|
+
--constraint <text> Constraint for the successor to respect (repeatable)
|
|
60
|
+
--outcome <o> success | failure | partial
|
|
61
|
+
--target-runtime <n> Name of the runtime the successor will run in
|
|
62
|
+
--card-id <id> Associated card/ticket ID
|
|
63
|
+
--tests <status> pass | fail | unknown (default: unknown)
|
|
64
|
+
handoff latest Show the most recent handoff
|
|
65
|
+
--session <id> Filter by session
|
|
66
|
+
--json Output as JSON
|
|
67
|
+
handoff show <id> Show a specific handoff by ID`],
|
|
68
|
+
}),
|
|
69
|
+
card: verb(() => import('../card.js'), 'handleCard', {
|
|
70
|
+
// Every card subcommand's flags together; card.ts then refuses the ones its subcommand does not read.
|
|
71
|
+
flags: {
|
|
72
|
+
switches: ['json'],
|
|
73
|
+
values: ['author', 'body', 'budget', 'contract', 'outcome', 'reason', 'repo', 'run', 'runtime', 'session',
|
|
74
|
+
'status', 'title'],
|
|
75
|
+
lists: ['depends-on'],
|
|
76
|
+
},
|
|
77
|
+
usage: [`
|
|
78
|
+
card <sub> Manage claimable work-queue cards
|
|
79
|
+
card create Create a new card
|
|
80
|
+
--title <text> Card title (required)
|
|
81
|
+
--repo <name> Associated repo
|
|
82
|
+
--contract <text> Associated contract
|
|
83
|
+
--budget <n> Token/step budget
|
|
84
|
+
--depends-on <id> Parent card id (repeatable)
|
|
85
|
+
card show <id> Show a card, its deps, runs, comments and latest handoff
|
|
86
|
+
--json Output as JSON
|
|
87
|
+
card list List cards, newest-updated first
|
|
88
|
+
--status <status> Filter by status
|
|
89
|
+
card claim <id> Claim a ready or blocked card; prints its run id and lease
|
|
90
|
+
--runtime <name> Claiming runtime (required)
|
|
91
|
+
--session <id> Session ID
|
|
92
|
+
card heartbeat <id> Extend a running card's lease
|
|
93
|
+
--run <n> Your run id, as card claim printed it (required)
|
|
94
|
+
card block <id> Block a running card
|
|
95
|
+
--reason "<why>" Reason recorded as a card comment (required)
|
|
96
|
+
--run <n> Refuse unless <n> is the card's live run
|
|
97
|
+
card review <id> Move a running card to review
|
|
98
|
+
--run <n> Refuse unless <n> is the card's live run
|
|
99
|
+
card complete <id> Complete a card in review
|
|
100
|
+
--outcome <o> success | failure | partial (required)
|
|
101
|
+
--run <n> Refuse unless <n> is the card's live run
|
|
102
|
+
card reclaim Return every running card whose lease has expired to ready
|
|
103
|
+
card comment <id> Add a comment to a card
|
|
104
|
+
--body <text> Comment body (required)
|
|
105
|
+
--author <name> Comment author (default: cli)`],
|
|
106
|
+
}),
|
|
107
|
+
current: verb(() => import('../continuity.js'), 'handleCurrent', {
|
|
108
|
+
flags: { switches: ['json'] },
|
|
109
|
+
usage: [`
|
|
110
|
+
current <sub> Show compact current state for agent injection
|
|
111
|
+
current show Active task + recent session events (default)
|
|
112
|
+
--json Output as JSON`],
|
|
113
|
+
}),
|
|
114
|
+
forget: verb(() => import('../curate.js'), 'handleForget', {
|
|
115
|
+
destructive: true,
|
|
116
|
+
scoped: true,
|
|
117
|
+
flags: { switches: ['archive', 'dry-run'], values: ['reason'] },
|
|
118
|
+
usage: [`
|
|
119
|
+
forget <id> Force remove a memory
|
|
120
|
+
--archive Archive a raw (append-only) memory instead of deleting
|
|
121
|
+
--reason "<why>" Reason recorded on the archive (required with --archive)`],
|
|
122
|
+
}),
|
|
123
|
+
inspect: verb(() => import('../status.js'), 'handleInspect', {
|
|
124
|
+
flags: {},
|
|
125
|
+
usage: [`
|
|
126
|
+
inspect <id> Show full memory detail`],
|
|
127
|
+
}),
|
|
128
|
+
embed: verb(() => import('../maintenance.js'), 'handleEmbed', {
|
|
129
|
+
flags: { switches: ['global', 'reset-physics', 'status'] },
|
|
130
|
+
usage: [`
|
|
131
|
+
embed Embed all memories for semantic search
|
|
132
|
+
--status Show embedding coverage`],
|
|
133
|
+
}),
|
|
134
|
+
watch: verb(() => import('../transfer.js'), 'handleWatch', {
|
|
135
|
+
flags: { values: ['shell'] },
|
|
136
|
+
usage: [`
|
|
137
|
+
watch -- <cmd> [args] Run command, auto-learn from failures (no shell)
|
|
138
|
+
--shell "<line>" Run one command line through the shell instead`],
|
|
139
|
+
}),
|
|
140
|
+
learn: verb(() => import('../transfer.js'), 'handleLearn', {
|
|
141
|
+
scoped: true,
|
|
142
|
+
flags: { switches: ['git'], values: ['repos'], numbers: ['days'] },
|
|
143
|
+
usage: [`
|
|
144
|
+
learn Learn lessons from repository history
|
|
145
|
+
--git Scan recent git commits for lessons
|
|
146
|
+
--days <n> Scan this many days back (default: 7)
|
|
147
|
+
--repos <paths> Comma-separated repo paths to scan`],
|
|
148
|
+
}),
|
|
149
|
+
promote: verb(() => import('../transfer.js'), 'handlePromote', {
|
|
150
|
+
scoped: true,
|
|
151
|
+
flags: {},
|
|
152
|
+
usage: [`
|
|
153
|
+
promote <id> Copy a local memory to the global store`],
|
|
154
|
+
}),
|
|
155
|
+
share: verb(() => import('../transfer.js'), 'handleShare', {
|
|
156
|
+
dryRun: { form: '--auto', honoured: (args, flags) => args[0] === '--auto' || boolFlag(flags, 'auto') },
|
|
157
|
+
flags: { switches: ['auto', 'dry-run', 'force'], numbers: ['min-score'] },
|
|
158
|
+
usage: [`
|
|
159
|
+
share <id> Share a memory with attribution + transfer scoring
|
|
160
|
+
--force Share even if transfer score is low
|
|
161
|
+
--auto Auto-share all high-transfer-score memories
|
|
162
|
+
--dry-run Preview what would be shared
|
|
163
|
+
--min-score <n> Minimum transfer score (default: 0.6)`],
|
|
164
|
+
}),
|
|
165
|
+
peers: verb(() => import('../transfer.js'), 'handlePeers', {
|
|
166
|
+
flags: { switches: ['all-tenants'] },
|
|
167
|
+
usage: [`
|
|
168
|
+
peers List projects contributing to global store`],
|
|
169
|
+
}),
|
|
170
|
+
sync: verb(() => import('../transfer.js'), 'handleSync', {
|
|
171
|
+
flags: { switches: ['cross-project'] },
|
|
172
|
+
usage: [`
|
|
173
|
+
sync Pull global memories into local project`],
|
|
174
|
+
}),
|
|
175
|
+
import: verb(() => import('../transfer.js'), 'handleImport', {
|
|
176
|
+
flags: {
|
|
177
|
+
switches: ['agents', 'dry-run', 'global'],
|
|
178
|
+
values: ['chatgpt', 'claude', 'cursor', 'file', 'markdown', 'name', 'scope', 'vault'],
|
|
179
|
+
lists: ['tag'],
|
|
180
|
+
},
|
|
181
|
+
usage: [`
|
|
182
|
+
import Import memories from other AI tools
|
|
183
|
+
--chatgpt <path> Import from ChatGPT memory export (JSON or txt)
|
|
184
|
+
--claude <path> Import from CLAUDE.md or Claude memory.json
|
|
185
|
+
--cursor <path> Import from .cursorrules or .cursor/rules
|
|
186
|
+
--file <path> Import from any markdown or text file
|
|
187
|
+
--markdown <path> Import from structured MEMORY.md / AGENTS.md
|
|
188
|
+
--vault <path> Import a markdown-vault FOLDER as kind='raw' notes
|
|
189
|
+
(Obsidian/Foam/Dendron). Requires --name <vault>.
|
|
190
|
+
[--scope <scope>]
|
|
191
|
+
--agents Sync every coding agent's own memories (Claude Code, Codex,
|
|
192
|
+
Gemini CLI, Copilot, OpenClaw, Qwen Code) now; with
|
|
193
|
+
--dry-run, print each tool's folders and what would change.
|
|
194
|
+
HIPPO_AGENT_MEMORY_TOOLS=<ids> or config agentMemories.tools
|
|
195
|
+
picks the tools; "none" or [] turns the import off
|
|
196
|
+
--dry-run Preview without writing
|
|
197
|
+
--global Write to global store ($HIPPO_HOME or ~/.hippo/)
|
|
198
|
+
--tag <tag> Add extra tag (repeatable)`],
|
|
199
|
+
}),
|
|
200
|
+
export: verb(() => import('../transfer.js'), 'handleExport', {
|
|
201
|
+
flags: { values: ['format'] },
|
|
202
|
+
usage: [`
|
|
203
|
+
export [file] Export all memories (default: stdout)
|
|
204
|
+
--format <fmt> Output format: json (default) or markdown`],
|
|
205
|
+
}),
|
|
206
|
+
capture: verb(() => import('../session-hooks.js'), 'handleCapture', {
|
|
207
|
+
repairsCodexWrapper: true,
|
|
208
|
+
flags: { switches: ['dry-run', 'global', 'last-session', 'stdin'], values: ['file', 'log-file', 'transcript'] },
|
|
209
|
+
usage: [`
|
|
210
|
+
capture Extract memories from conversation text
|
|
211
|
+
--stdin Read from piped input
|
|
212
|
+
--file <path> Read from a file
|
|
213
|
+
--last-session Read the transcript a hook names on stdin, else the newest
|
|
214
|
+
Claude Code one from any project
|
|
215
|
+
--transcript <path> Explicit transcript path (implies --last-session)
|
|
216
|
+
--log-file <path> Tee output to a log file (paired with 'hippo last-sleep')
|
|
217
|
+
--dry-run Preview without writing
|
|
218
|
+
--global Write to global store ($HIPPO_HOME or ~/.hippo/)`],
|
|
219
|
+
}),
|
|
220
|
+
setup: verb(() => import('../setup.js'), 'handleSetup', {
|
|
221
|
+
flags: { switches: ['all', 'dry-run', 'no-learn', 'no-schedule'] },
|
|
222
|
+
usage: [`
|
|
223
|
+
setup One-shot: detect installed AI tools and install their hooks:
|
|
224
|
+
claude-code gets 7 hooks in $CLAUDE_CONFIG_DIR/settings.json
|
|
225
|
+
(~/.claude by default), opencode a plugin, codex 2 hooks in
|
|
226
|
+
its hooks.json plus a launcher wrapper, copilot 4 hooks, the
|
|
227
|
+
MCP server and an instructions block under $COPILOT_HOME
|
|
228
|
+
(~/.copilot by default); other tools get a
|
|
229
|
+
hint. Then imports each agent's
|
|
230
|
+
user-level memories into the global store
|
|
231
|
+
--all Install for every JSON-hook tool, even if not detected
|
|
232
|
+
--dry-run Show what would be installed without writing
|
|
233
|
+
--no-schedule Skip installing or repairing the daily runner
|
|
234
|
+
--no-learn Skip the agent memory import`],
|
|
235
|
+
}),
|
|
236
|
+
'last-sleep': verb(() => import('../last-sleep.js'), 'handleLastSleep', {
|
|
237
|
+
flags: { switches: ['keep'], values: ['path'] },
|
|
238
|
+
usage: [`
|
|
239
|
+
last-sleep Show the last sleep log on stderr, one problems line to the user, and clear it
|
|
240
|
+
--path <p> Log path (default: ~/.hippo/logs/last-sleep.log)
|
|
241
|
+
--keep Print without clearing`],
|
|
242
|
+
}),
|
|
243
|
+
'session-end': verb(() => import('../session-hooks.js'), 'handleSessionEnd', {
|
|
244
|
+
// Its sleep step reads --dry-run, but the capture after it writes for real.
|
|
245
|
+
dryRun: false,
|
|
246
|
+
flags: {
|
|
247
|
+
switches: ['dry-run', 'no-learn', 'no-share', 'turn'],
|
|
248
|
+
values: ['format', 'log-file', 'runtime', 'session-id', 'transcript'],
|
|
249
|
+
},
|
|
250
|
+
usage: [`
|
|
251
|
+
session-end SessionEnd hook: count this session's re-read tokens, run sleep, then
|
|
252
|
+
capture from the session's last 20 user and 10 assistant messages,
|
|
253
|
+
in a detached worker
|
|
254
|
+
--log-file <path> Tee the worker's output to a log file (paired with 'hippo last-sleep')
|
|
255
|
+
--runtime copilot The payload came from a Copilot hook: use the store of its cwd and find
|
|
256
|
+
the Copilot CLI session log by session id; with no --log-file, log to
|
|
257
|
+
~/.hippo/logs/copilot-sleep.log
|
|
258
|
+
--turn VS Code Stop hook, after each reply: capture only the new turns, sleep
|
|
259
|
+
only at the auto-sleep threshold, and keep the session's snapshot; does
|
|
260
|
+
nothing for any other payload`],
|
|
261
|
+
}),
|
|
262
|
+
'__session-end-worker': verb(() => import('../session-hooks.js'), 'handleSessionEndWorker', {
|
|
263
|
+
dryRun: false,
|
|
264
|
+
flags: {
|
|
265
|
+
switches: ['dry-run', 'no-learn', 'no-share', 'turn'],
|
|
266
|
+
values: ['log-file', 'session-id', 'transcript'],
|
|
267
|
+
},
|
|
268
|
+
}),
|
|
269
|
+
'pre-compact': verb(() => import('../session-hooks.js'), 'handlePreCompact', {
|
|
270
|
+
flags: { values: ['format', 'log-file', 'runtime'] },
|
|
271
|
+
usage: [`
|
|
272
|
+
pre-compact PreCompact hook: record the compaction, save a working-state snapshot, and
|
|
273
|
+
ask the summariser to end with a "Memories for hippo" list
|
|
274
|
+
--log-file <p> Diagnostic log path (default: ~/.hippo/logs/pre-compact.log)
|
|
275
|
+
--runtime copilot The payload came from a Copilot hook: use the store of its cwd and save
|
|
276
|
+
the snapshot only (Copilot has no PostCompact hook to close a record)`],
|
|
277
|
+
}),
|
|
278
|
+
'compact-resume': verb(() => import('../session-hooks.js'), 'handleCompactResume', {
|
|
279
|
+
flags: {},
|
|
280
|
+
usage: [`
|
|
281
|
+
compact-resume SessionStart(compact) hook: re-print the snapshot, if under 15 minutes old`],
|
|
282
|
+
}),
|
|
283
|
+
'post-compact': verb(() => import('../session-hooks.js'), 'handlePostCompact', {
|
|
284
|
+
flags: { values: ['log-file'] },
|
|
285
|
+
usage: [`
|
|
286
|
+
post-compact PostCompact hook: keep that list as memories (a busy store leaves the save to
|
|
287
|
+
the next hippo sleep) and print one line saying how many
|
|
288
|
+
--log-file <p> Same log path as pre-compact (default: ~/.hippo/logs/pre-compact.log)`],
|
|
289
|
+
}),
|
|
290
|
+
'codex-run': verb(() => import('../session-hooks.js'), 'handleCodexRun', {
|
|
291
|
+
flags: {},
|
|
292
|
+
usage: [`
|
|
293
|
+
codex-run [-- ...args] Launch real Codex behind Hippo's session-end wrapper`],
|
|
294
|
+
}),
|
|
295
|
+
'__codex-session-end-worker': verb(() => import('../session-hooks.js'), 'handleCodexSessionEndWorker', {
|
|
296
|
+
flags: { values: ['codex-home', 'history-path', 'log-file', 'start-offset', 'started-at'] },
|
|
297
|
+
}),
|
|
298
|
+
hook: verb(() => import('../setup.js'), 'handleHook', {
|
|
299
|
+
flags: {},
|
|
300
|
+
usage: [`
|
|
301
|
+
hook <sub> [target] Manage framework integrations
|
|
302
|
+
hook list Show available hooks
|
|
303
|
+
hook install <target> Install hook (claude-code|codex|copilot|cursor|openclaw|opencode|pi)
|
|
304
|
+
claude-code adds 7 hooks to $CLAUDE_CONFIG_DIR/settings.json
|
|
305
|
+
(~/.claude by default); opencode installs a plugin; codex
|
|
306
|
+
adds 2 hooks to $CODEX_HOME/hooks.json (trust them once in /hooks) and
|
|
307
|
+
wraps the detected launcher in place; copilot writes
|
|
308
|
+
hooks/hippo.json, the "hippo" MCP server and an instructions
|
|
309
|
+
block under $COPILOT_HOME (~/.copilot by default); all but
|
|
310
|
+
claude-code and copilot also patch an existing AGENTS.md
|
|
311
|
+
hook uninstall <target> Remove hook; for copilot, only what hippo wrote`],
|
|
312
|
+
}),
|
|
313
|
+
};
|
|
314
|
+
//# sourceMappingURL=sessions.js.map
|