hippo-memory 1.69.0 → 1.71.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 +5 -2
- package/dist/agent-memories/apply.d.ts +3 -3
- package/dist/agent-memories/apply.js +16 -31
- package/dist/agent-memories/claude-code.d.ts +5 -5
- package/dist/agent-memories/claude-code.js +25 -12
- package/dist/agent-memories/copilot.js +3 -2
- package/dist/agent-memories/files.js +26 -14
- package/dist/agent-memories/gemini.js +6 -5
- package/dist/agent-memories/keys.js +3 -2
- package/dist/agent-memories/legacy.d.ts +2 -2
- package/dist/agent-memories/legacy.js +2 -2
- package/dist/agent-memories/markdown.d.ts +1 -3
- package/dist/agent-memories/markdown.js +1 -3
- package/dist/agent-memories/report.d.ts +1 -1
- package/dist/agent-memories/report.js +3 -2
- package/dist/agent-memories/source.d.ts +1 -1
- package/dist/agent-memories/source.js +6 -5
- package/dist/agent-memories/sync.d.ts +5 -3
- package/dist/agent-memories/sync.js +34 -38
- package/dist/agent-memories/types.d.ts +1 -1
- package/dist/api/assemble.d.ts +9 -46
- package/dist/api/assemble.js +44 -54
- package/dist/api/audit.d.ts +8 -7
- package/dist/api/audit.js +15 -21
- package/dist/api/auth.d.ts +17 -39
- package/dist/api/auth.js +76 -216
- package/dist/api/auto-sleep.d.ts +13 -0
- package/dist/api/auto-sleep.js +32 -0
- package/dist/{availability.d.ts → api/availability.d.ts} +4 -17
- package/dist/{availability.js → api/availability.js} +14 -44
- package/dist/{context-auto.js → api/context-auto.js} +2 -1
- package/dist/{context-render.d.ts → api/context-render.d.ts} +4 -4
- package/dist/{context-render.js → api/context-render.js} +7 -6
- package/dist/api/context-select.d.ts +5 -5
- package/dist/api/context-select.js +39 -48
- package/dist/api/context-types.d.ts +15 -40
- package/dist/api/context.d.ts +7 -26
- package/dist/api/context.js +67 -97
- package/dist/api/dormant.d.ts +7 -23
- package/dist/api/dormant.js +40 -128
- package/dist/api/drill-down.d.ts +9 -48
- package/dist/api/drill-down.js +41 -90
- package/dist/api/forget.d.ts +5 -33
- package/dist/api/forget.js +17 -73
- package/dist/api/goals.d.ts +1 -1
- package/dist/api/goals.js +2 -2
- package/dist/api/graph.d.ts +8 -0
- package/dist/api/graph.js +7 -0
- package/dist/api/index.d.ts +28 -0
- package/dist/api/index.js +31 -0
- package/dist/api/instruction-detect.js +85 -0
- package/dist/api/learn.js +63 -55
- package/dist/api/ledger-db.d.ts +21 -0
- package/dist/api/ledger-db.js +81 -0
- package/dist/api/memories.d.ts +5 -0
- package/dist/api/memories.js +7 -0
- package/dist/api/objects.d.ts +9 -0
- package/dist/api/objects.js +11 -0
- package/dist/api/on-store.d.ts +16 -0
- package/dist/api/on-store.js +38 -0
- package/dist/api/outcome.d.ts +5 -42
- package/dist/api/outcome.js +15 -80
- package/dist/{pilot-arm.d.ts → api/pilot-arm.d.ts} +1 -1
- package/dist/{pilot-arm.js → api/pilot-arm.js} +15 -23
- package/dist/api/predictions.d.ts +9 -0
- package/dist/api/predictions.js +18 -0
- package/dist/api/promote.d.ts +16 -31
- package/dist/api/promote.js +38 -123
- package/dist/{prompt-hook.d.ts → api/prompt-hook.d.ts} +11 -11
- package/dist/{prompt-hook.js → api/prompt-hook.js} +42 -60
- package/dist/api/quarantine.d.ts +5 -5
- package/dist/api/quarantine.js +30 -106
- package/dist/api/recall-cli.d.ts +55 -0
- package/dist/api/recall-cli.js +94 -0
- package/dist/api/recall-core.d.ts +4 -0
- package/dist/api/recall-core.js +120 -0
- package/dist/api/recall-finish.d.ts +53 -0
- package/dist/api/recall-finish.js +30 -0
- package/dist/api/recall-history.d.ts +64 -0
- package/dist/api/recall-history.js +159 -0
- package/dist/{recall-pipeline.d.ts → api/recall-pipeline.d.ts} +7 -8
- package/dist/{recall-pipeline.js → api/recall-pipeline.js} +60 -48
- package/dist/api/recall-record.d.ts +10 -13
- package/dist/api/recall-record.js +10 -30
- package/dist/api/recall-request.d.ts +2 -2
- package/dist/api/recall-request.js +3 -3
- package/dist/api/recall-types.d.ts +101 -316
- package/dist/api/recall.d.ts +5 -33
- package/dist/api/recall.js +92 -91
- package/dist/api/refine.d.ts +7 -0
- package/dist/api/refine.js +10 -0
- package/dist/api/remember-local.d.ts +57 -0
- package/dist/api/remember-local.js +90 -0
- package/dist/api/remember.d.ts +27 -12
- package/dist/api/remember.js +42 -46
- package/dist/api/session-owners.d.ts +4 -0
- package/dist/api/session-owners.js +17 -0
- package/dist/api/sleep-run.d.ts +7 -9
- package/dist/api/sleep-run.js +78 -94
- package/dist/api/sleep.d.ts +10 -29
- package/dist/api/tokens.d.ts +5 -12
- package/dist/api/tokens.js +12 -31
- package/dist/api/types.d.ts +8 -31
- package/dist/api/types.js +5 -23
- package/dist/capture/caller-session.d.ts +2 -2
- package/dist/capture/caller-session.js +8 -8
- package/dist/{capture-error.d.ts → capture/capture-error.d.ts} +2 -2
- package/dist/{capture-error.js → capture/capture-error.js} +7 -7
- package/dist/{codex-patch.js → capture/codex-patch.js} +1 -1
- package/dist/capture/command.d.ts +5 -13
- package/dist/capture/command.js +57 -60
- package/dist/capture/compact-resume-caller.d.ts +1 -1
- package/dist/capture/compact-resume-caller.js +7 -7
- package/dist/capture/compact.d.ts +8 -16
- package/dist/capture/compact.js +56 -47
- package/dist/capture/compaction-items-caller.d.ts +1 -1
- package/dist/capture/compaction-items-caller.js +7 -5
- package/dist/{compaction-items.js → capture/compaction-items.js} +27 -3
- package/dist/{compaction-record.d.ts → capture/compaction-record.d.ts} +10 -6
- package/dist/{compaction-record.js → capture/compaction-record.js} +143 -157
- package/dist/{compaction-spool.d.ts → capture/compaction-spool.d.ts} +1 -1
- package/dist/{compaction-spool.js → capture/compaction-spool.js} +18 -14
- package/dist/capture/copilot-transcript.js +1 -1
- package/dist/capture/extract.js +2 -2
- package/dist/capture/failure-caller.d.ts +2 -2
- package/dist/capture/failure-caller.js +6 -6
- package/dist/capture/failure-reading.d.ts +2 -5
- package/dist/capture/failure-reading.js +11 -12
- package/dist/{handoff-evidence.d.ts → capture/handoff-evidence.d.ts} +1 -1
- package/dist/{handoff-evidence.js → capture/handoff-evidence.js} +2 -1
- package/dist/capture/pre-compact-caller.d.ts +1 -1
- package/dist/capture/pre-compact-caller.js +2 -2
- package/dist/{session-digest.d.ts → capture/session-digest.d.ts} +2 -6
- package/dist/{session-digest.js → capture/session-digest.js} +29 -29
- package/dist/capture/session-end-caller.d.ts +2 -2
- package/dist/capture/session-end-caller.js +1 -1
- package/dist/capture/session-texts.d.ts +1 -1
- package/dist/capture/session-texts.js +5 -5
- package/dist/capture/session-worker.js +6 -4
- package/dist/{share-scrub.js → capture/share-scrub.js} +2 -2
- package/dist/capture/transcript.d.ts +2 -10
- package/dist/capture/transcript.js +72 -92
- package/dist/capture/working-state.d.ts +0 -3
- package/dist/capture/working-state.js +7 -7
- package/dist/cli/api-context.d.ts +3 -0
- package/dist/cli/api-context.js +6 -0
- package/dist/cli/audit-prune.d.ts +28 -0
- package/dist/cli/audit-prune.js +40 -0
- package/dist/cli/audit.d.ts +2 -2
- package/dist/cli/audit.js +92 -88
- package/dist/cli/auth.d.ts +2 -1
- package/dist/cli/auth.js +69 -53
- package/dist/cli/briefs.d.ts +4 -3
- package/dist/cli/briefs.js +76 -202
- package/dist/cli/card.d.ts +2 -1
- package/dist/cli/card.js +55 -54
- package/dist/cli/client.d.ts +28 -0
- package/dist/{client.js → cli/client.js} +25 -44
- package/dist/cli/compact-resume-payload.d.ts +8 -0
- package/dist/cli/compact-resume-payload.js +40 -0
- package/dist/cli/context.d.ts +1 -13
- package/dist/cli/context.js +51 -77
- package/dist/cli/continuity.d.ts +6 -5
- package/dist/cli/continuity.js +153 -145
- package/dist/cli/correction-latency.d.ts +24 -0
- package/dist/{correction-latency.js → cli/correction-latency.js} +2 -14
- package/dist/cli/curate.d.ts +13 -17
- package/dist/cli/curate.js +226 -222
- package/dist/cli/dag.d.ts +4 -4
- package/dist/cli/dag.js +70 -52
- package/dist/cli/decisions.d.ts +4 -3
- package/dist/cli/decisions.js +129 -253
- package/dist/cli/eval.d.ts +1 -3
- package/dist/cli/eval.js +56 -42
- package/dist/cli/exit.d.ts +6 -0
- package/dist/cli/exit.js +11 -0
- package/dist/cli/explain.d.ts +1 -2
- package/dist/cli/explain.js +39 -21
- package/dist/cli/flag-values.d.ts +30 -0
- package/dist/cli/flag-values.js +120 -0
- package/dist/cli/flags.d.ts +304 -0
- package/dist/cli/flags.js +169 -0
- package/dist/cli/github.d.ts +14 -0
- package/dist/cli/github.js +184 -0
- package/dist/cli/goals.d.ts +2 -1
- package/dist/cli/goals.js +76 -75
- package/dist/cli/hook-runtime.d.ts +31 -0
- package/dist/cli/hook-runtime.js +139 -0
- package/dist/cli/init.d.ts +2 -1
- package/dist/cli/init.js +153 -126
- package/dist/cli/install-steps.d.ts +7 -0
- package/dist/cli/install-steps.js +101 -0
- package/dist/cli/last-sleep.d.ts +3 -1
- package/dist/cli/last-sleep.js +12 -7
- package/dist/cli/maintenance.d.ts +5 -4
- package/dist/cli/maintenance.js +41 -42
- package/dist/cli/object-verbs.d.ts +40 -0
- package/dist/cli/object-verbs.js +66 -0
- package/dist/cli/owner-validation.d.ts +18 -0
- package/dist/cli/owner-validation.js +33 -0
- package/dist/cli/playbooks.d.ts +4 -3
- package/dist/cli/playbooks.js +98 -306
- package/dist/cli/print.d.ts +15 -0
- package/dist/cli/print.js +82 -0
- package/dist/cli/projects.d.ts +2 -3
- package/dist/cli/projects.js +56 -51
- package/dist/cli/provenance-coverage.d.ts +14 -0
- package/dist/{provenance-coverage.js → cli/provenance-coverage.js} +2 -6
- package/dist/cli/quality-repair-once.js +4 -4
- package/dist/cli/recall.d.ts +2 -6
- package/dist/cli/recall.js +128 -253
- package/dist/cli/refine-llm.d.ts +35 -0
- package/dist/cli/refine-llm.js +128 -0
- package/dist/cli/remember.d.ts +4 -6
- package/dist/cli/remember.js +193 -230
- package/dist/{scheduler.d.ts → cli/scheduler.d.ts} +4 -17
- package/dist/{scheduler.js → cli/scheduler.js} +22 -22
- package/dist/cli/serve.d.ts +1 -1
- package/dist/cli/serve.js +46 -7
- package/dist/cli/session-hooks.d.ts +11 -19
- package/dist/cli/session-hooks.js +263 -258
- package/dist/cli/setup.d.ts +4 -3
- package/dist/cli/setup.js +55 -37
- package/dist/cli/shared.d.ts +14 -118
- package/dist/cli/shared.js +26 -400
- package/dist/cli/slack.d.ts +2 -1
- package/dist/cli/slack.js +46 -74
- package/dist/cli/sleep-render.d.ts +4 -0
- package/dist/cli/sleep-render.js +61 -0
- package/dist/cli/sleep.d.ts +3 -8
- package/dist/cli/sleep.js +34 -91
- package/dist/cli/status.d.ts +9 -12
- package/dist/cli/status.js +86 -131
- package/dist/{stdin.d.ts → cli/stdin.d.ts} +4 -6
- package/dist/{stdin.js → cli/stdin.js} +8 -9
- package/dist/cli/transfer.d.ts +9 -9
- package/dist/cli/transfer.js +125 -122
- package/dist/cli/usage.js +13 -5
- package/dist/cli.d.ts +69 -167
- package/dist/cli.js +187 -296
- package/dist/connectors/dlq.d.ts +44 -0
- package/dist/connectors/dlq.js +30 -0
- package/dist/connectors/github/backfill.d.ts +6 -26
- package/dist/connectors/github/backfill.js +42 -114
- package/dist/connectors/github/deletion.d.ts +6 -21
- package/dist/connectors/github/deletion.js +17 -64
- package/dist/connectors/github/dlq.d.ts +12 -91
- package/dist/connectors/github/dlq.js +23 -140
- package/dist/connectors/github/ingest.d.ts +4 -37
- package/dist/connectors/github/ingest.js +24 -93
- package/dist/connectors/github/octokit-client.d.ts +5 -17
- package/dist/connectors/github/octokit-client.js +29 -25
- package/dist/connectors/github/ratelimit.d.ts +3 -14
- package/dist/connectors/github/ratelimit.js +3 -14
- package/dist/connectors/github/scope.d.ts +3 -5
- package/dist/connectors/github/scope.js +3 -5
- package/dist/connectors/github/signature.d.ts +4 -26
- package/dist/connectors/github/signature.js +4 -26
- package/dist/connectors/github/tenant-routing.d.ts +4 -26
- package/dist/connectors/github/tenant-routing.js +13 -61
- package/dist/connectors/github/transform.d.ts +1 -1
- package/dist/connectors/github/transform.js +2 -16
- package/dist/connectors/github/types.d.ts +4 -16
- package/dist/connectors/github/types.js +17 -27
- package/dist/connectors/github/webhook.d.ts +5 -18
- package/dist/connectors/github/webhook.js +86 -105
- package/dist/connectors/slack/backfill.d.ts +5 -18
- package/dist/connectors/slack/backfill.js +9 -42
- package/dist/connectors/slack/deletion.d.ts +4 -7
- package/dist/connectors/slack/deletion.js +20 -49
- package/dist/connectors/slack/dlq.d.ts +9 -68
- package/dist/connectors/slack/dlq.js +26 -136
- package/dist/connectors/slack/ingest.d.ts +4 -18
- package/dist/connectors/slack/ingest.js +26 -91
- package/dist/connectors/slack/scope.d.ts +2 -8
- package/dist/connectors/slack/scope.js +2 -8
- package/dist/connectors/slack/signature.d.ts +1 -6
- package/dist/connectors/slack/signature.js +2 -1
- package/dist/connectors/slack/tenant-routing.d.ts +4 -18
- package/dist/connectors/slack/tenant-routing.js +11 -31
- package/dist/connectors/slack/transform.d.ts +3 -19
- package/dist/connectors/slack/transform.js +2 -18
- package/dist/connectors/slack/types.d.ts +4 -10
- package/dist/connectors/slack/types.js +5 -16
- package/dist/connectors/slack/web-client.js +34 -28
- package/dist/connectors/slack/webhook.d.ts +5 -21
- package/dist/connectors/slack/webhook.js +80 -108
- package/dist/connectors/slack/workspaces.d.ts +8 -41
- package/dist/connectors/slack/workspaces.js +8 -58
- package/dist/consolidate/conflicts.d.ts +1 -1
- package/dist/consolidate/conflicts.js +10 -18
- package/dist/consolidate/dag-summary.d.ts +8 -0
- package/dist/consolidate/dag-summary.js +41 -0
- package/dist/{dag.d.ts → consolidate/dag.d.ts} +6 -29
- package/dist/{dag.js → consolidate/dag.js} +49 -131
- package/dist/consolidate/decay.d.ts +2 -2
- package/dist/consolidate/decay.js +35 -41
- package/dist/consolidate/dedupe.d.ts +29 -0
- package/dist/consolidate/dedupe.js +103 -0
- package/dist/consolidate/flush-units.d.ts +5 -6
- package/dist/consolidate/flush-units.js +3 -3
- package/dist/consolidate/half-life-migration.d.ts +34 -0
- package/dist/consolidate/half-life-migration.js +89 -0
- package/dist/consolidate/llm-passes.js +12 -29
- package/dist/consolidate/memory-value-weights.d.ts +8 -0
- package/dist/{memory-value-weights.js → consolidate/memory-value-weights.js} +2 -13
- package/dist/consolidate/memory-value.d.ts +45 -0
- package/dist/consolidate/memory-value.js +164 -0
- package/dist/consolidate/merge.js +65 -83
- package/dist/{merged-row.d.ts → consolidate/merged-row.d.ts} +1 -1
- package/dist/{merged-row.js → consolidate/merged-row.js} +4 -3
- package/dist/consolidate/physics-pass.js +46 -48
- package/dist/consolidate/replay.d.ts +9 -0
- package/dist/consolidate/replay.js +84 -0
- package/dist/consolidate/run.d.ts +7 -13
- package/dist/consolidate/run.js +6 -37
- package/dist/consolidate/sleep.d.ts +2 -9
- package/dist/consolidate/sleep.js +69 -151
- package/dist/consolidate/trace.d.ts +19 -0
- package/dist/{trace.js → consolidate/trace.js} +7 -24
- package/dist/consolidate/traces.js +40 -51
- package/dist/core/ablation.d.ts +15 -0
- package/dist/core/ablation.js +49 -0
- package/dist/{agent-memories/tools.d.ts → core/agent-memory-tools.d.ts} +1 -1
- package/dist/{agent-memories/tools.js → core/agent-memory-tools.js} +1 -1
- package/dist/{ambient.d.ts → core/ambient.d.ts} +1 -8
- package/dist/{ambient.js → core/ambient.js} +13 -18
- package/dist/{capture-contract.d.ts → core/capture-contract.d.ts} +16 -3
- package/dist/{capture-contract.js → core/capture-contract.js} +67 -1
- package/dist/{card.d.ts → core/card.d.ts} +4 -1
- package/dist/{card.js → core/card.js} +8 -0
- package/dist/core/compare.d.ts +32 -0
- package/dist/core/compare.js +70 -0
- package/dist/{config.d.ts → core/config.d.ts} +14 -28
- package/dist/{config.js → core/config.js} +101 -75
- package/dist/{handoff.d.ts → core/handoff.d.ts} +1 -7
- package/dist/core/handoff.js +81 -0
- package/dist/{memory-quality.js → core/memory-quality.js} +2 -2
- package/dist/core/memory.d.ts +183 -0
- package/dist/core/memory.js +380 -0
- package/dist/core/package-root.d.ts +3 -0
- package/dist/core/package-root.js +5 -0
- package/dist/{physics-config.d.ts → core/physics-config.d.ts} +1 -4
- package/dist/{physics-config.js → core/physics-config.js} +3 -8
- package/dist/{physics.d.ts → core/physics.d.ts} +16 -62
- package/dist/{physics.js → core/physics.js} +60 -122
- package/dist/{project-identity.d.ts → core/project-identity.d.ts} +17 -63
- package/dist/{project-identity.js → core/project-identity.js} +22 -55
- package/dist/{project-remote.js → core/project-remote.js} +17 -6
- package/dist/{prompt-recall.js → core/prompt-recall.js} +1 -1
- package/dist/core/raw-append-only.d.ts +5 -0
- package/dist/core/raw-append-only.js +7 -0
- package/dist/{salience.d.ts → core/salience.d.ts} +1 -7
- package/dist/{salience.js → core/salience.js} +36 -27
- package/dist/{search/types.d.ts → core/search-types.d.ts} +2 -2
- package/dist/{search/types.js → core/search-types.js} +1 -1
- package/dist/core/session-digest-row.d.ts +5 -0
- package/dist/core/session-digest-row.js +6 -0
- package/dist/{dashboard-actions.d.ts → dashboard/dashboard-actions.d.ts} +1 -1
- package/dist/{dashboard-actions.js → dashboard/dashboard-actions.js} +7 -7
- package/dist/{dashboard-queries.d.ts → dashboard/dashboard-queries.d.ts} +7 -2
- package/dist/{dashboard-queries.js → dashboard/dashboard-queries.js} +6 -10
- package/dist/{dashboard-snapshot.d.ts → dashboard/dashboard-snapshot.d.ts} +11 -10
- package/dist/{dashboard-snapshot.js → dashboard/dashboard-snapshot.js} +110 -104
- package/dist/{dashboard-types.d.ts → dashboard/dashboard-types.d.ts} +2 -1
- package/dist/{dashboard.d.ts → dashboard/dashboard.d.ts} +1 -0
- package/dist/{dashboard.js → dashboard/dashboard.js} +172 -55
- package/dist/db/backup.js +1 -1
- package/dist/db/busy.d.ts +19 -2
- package/dist/db/busy.js +88 -14
- package/dist/db/connect.d.ts +11 -2
- package/dist/db/connect.js +43 -10
- package/dist/db/index.d.ts +9 -0
- package/dist/db/index.js +8 -0
- package/dist/db/meta.d.ts +4 -0
- package/dist/db/meta.js +11 -1
- package/dist/db/migrate.d.ts +8 -1
- package/dist/db/migrate.js +28 -33
- package/dist/db/migrations/types.d.ts +2 -5
- package/dist/db/migrations/v08.js +1 -1
- package/dist/db/migrations/v14.js +39 -36
- package/dist/db/migrations/v15.js +2 -8
- package/dist/db/migrations/v16.js +31 -29
- package/dist/db/migrations/v17.js +2 -3
- package/dist/db/migrations/v18.js +6 -5
- package/dist/db/migrations/v19.js +2 -5
- package/dist/db/migrations/v20.js +5 -8
- package/dist/db/migrations/v22.js +28 -38
- package/dist/db/migrations/v23.js +3 -14
- package/dist/db/migrations/v24.js +25 -22
- package/dist/db/migrations/v25.js +3 -8
- package/dist/db/migrations/v26.js +2 -13
- package/dist/db/migrations/v27.js +3 -11
- package/dist/db/migrations/v28.js +2 -14
- package/dist/db/migrations/v29.js +23 -32
- package/dist/db/migrations/v30.js +4 -16
- package/dist/db/migrations/v31.js +23 -31
- package/dist/db/migrations/v32.js +4 -22
- package/dist/db/migrations/v33.js +2 -15
- package/dist/db/migrations/v34.js +2 -11
- package/dist/db/migrations/v35.js +2 -11
- package/dist/db/migrations/v36.js +2 -11
- package/dist/db/migrations/v37.js +8 -33
- package/dist/db/migrations/v38.js +5 -38
- package/dist/db/migrations/v39.js +10 -21
- package/dist/db/migrations/v40.js +8 -14
- package/dist/db/migrations/v41.js +2 -24
- package/dist/db/migrations/v43.js +7 -6
- package/dist/db/migrations/v44.js +2 -8
- package/dist/db/migrations/v45.js +2 -7
- package/dist/db/migrations/v46.js +1 -1
- package/dist/db/migrations/v47.js +2 -3
- package/dist/db/migrations/v48.js +1 -1
- package/dist/db/migrations/v49.js +1 -1
- package/dist/db/migrations/v50.js +8 -7
- package/dist/db/migrations/v51.js +1 -1
- package/dist/db/migrations/v52.js +1 -1
- package/dist/db/open.d.ts +11 -1
- package/dist/db/open.js +37 -4
- package/dist/db/physics-state.d.ts +23 -0
- package/dist/{physics-state.js → db/physics-state.js} +34 -52
- package/dist/db/raw-archive-mirror-cleanup.d.ts +5 -0
- package/dist/{raw-archive-mirror-cleanup.js → db/raw-archive-mirror-cleanup.js} +10 -20
- package/dist/db/request-stores.d.ts +15 -2
- package/dist/db/request-stores.js +37 -15
- package/dist/db/tables.d.ts +2 -0
- package/dist/db/tables.js +6 -0
- package/dist/{vector-store.d.ts → db/vector-store.d.ts} +6 -2
- package/dist/{vector-store.js → db/vector-store.js} +83 -51
- package/dist/db/wal-checkpointer.d.ts +11 -0
- package/dist/db/wal-checkpointer.js +92 -0
- package/dist/doctor.js +176 -152
- package/dist/entry/json-hooks.d.ts +1 -1
- package/dist/entry/json-hooks.js +1 -1
- package/dist/entry/project-identity.d.ts +1 -1
- package/dist/entry/project-identity.js +1 -1
- package/dist/entry/session-text.d.ts +3 -3
- package/dist/entry/session-text.js +5 -4
- package/dist/{eval-stats.d.ts → eval/eval-stats.d.ts} +15 -53
- package/dist/{eval-stats.js → eval/eval-stats.js} +24 -51
- package/dist/{eval-suite.d.ts → eval/eval-suite.d.ts} +3 -14
- package/dist/{eval-suite.js → eval/eval-suite.js} +99 -57
- package/dist/{eval.d.ts → eval/eval.d.ts} +7 -25
- package/dist/{eval.js → eval/eval.js} +35 -55
- package/dist/{judgment.d.ts → eval/judgment.d.ts} +1 -6
- package/dist/{judgment.js → eval/judgment.js} +23 -20
- package/dist/extensions/openclaw-plugin/index.js +2 -3
- package/dist/graph/delta.d.ts +3 -2
- package/dist/graph/delta.js +9 -23
- package/dist/{graph-extract.d.ts → graph/extract.d.ts} +10 -32
- package/dist/{graph-extract.js → graph/extract.js} +40 -81
- package/dist/{graph-recall.d.ts → graph/recall.d.ts} +9 -22
- package/dist/{graph-recall.js → graph/recall.js} +65 -108
- package/dist/graph/stream.d.ts +38 -0
- package/dist/{graph-stream.js → graph/stream.js} +20 -41
- package/dist/graph/view.d.ts +50 -0
- package/dist/graph/view.js +265 -0
- package/dist/graph/write.d.ts +4 -76
- package/dist/graph/write.js +13 -397
- package/dist/hooks/codex-session.js +1 -1
- package/dist/hooks/codex-wrapper.js +16 -17
- package/dist/hooks/copilot.d.ts +1 -8
- package/dist/hooks/copilot.js +16 -16
- package/dist/{cli → hooks}/hook-blocks.d.ts +6 -2
- package/dist/{cli → hooks}/hook-blocks.js +38 -125
- package/dist/hooks/json-hooks.d.ts +5 -37
- package/dist/hooks/json-hooks.js +49 -179
- package/dist/hooks/opencode.d.ts +0 -38
- package/dist/hooks/opencode.js +44 -103
- package/dist/hooks/shared.d.ts +8 -21
- package/dist/hooks/shared.js +30 -25
- package/dist/importers/core.d.ts +13 -42
- package/dist/importers/core.js +48 -64
- package/dist/importers/markdown-parse.d.ts +9 -32
- package/dist/importers/markdown-parse.js +10 -44
- package/dist/importers/markdown.js +5 -13
- package/dist/importers/sources.js +57 -81
- package/dist/importers/vault.d.ts +2 -8
- package/dist/importers/vault.js +95 -172
- package/dist/index.d.ts +26 -22
- package/dist/index.js +25 -21
- package/dist/learn/autolearn.d.ts +29 -0
- package/dist/{autolearn.js → learn/autolearn.js} +26 -51
- package/dist/{churn-git.d.ts → learn/churn-git.d.ts} +1 -1
- package/dist/{churn-git.js → learn/churn-git.js} +6 -4
- package/dist/{extract.d.ts → learn/extract.d.ts} +1 -1
- package/dist/learn/extract.js +123 -0
- package/dist/learn/forward-claim-detector.d.ts +12 -0
- package/dist/learn/forward-claim-detector.js +60 -0
- package/dist/{invalidation.d.ts → learn/invalidation.d.ts} +10 -18
- package/dist/{invalidation.js → learn/invalidation.js} +92 -125
- package/dist/mcp/admin-tools.d.ts +1 -1
- package/dist/mcp/admin-tools.js +39 -64
- package/dist/mcp/format.d.ts +5 -5
- package/dist/mcp/format.js +7 -6
- package/dist/mcp/framing.d.ts +6 -0
- package/dist/mcp/framing.js +11 -3
- package/dist/mcp/memory-tools.js +10 -35
- package/dist/mcp/protocol.d.ts +14 -36
- package/dist/mcp/protocol.js +10 -19
- package/dist/mcp/recall-tools.d.ts +2 -2
- package/dist/mcp/recall-tools.js +70 -52
- package/dist/mcp/request.d.ts +3 -11
- package/dist/mcp/request.js +71 -85
- package/dist/mcp/server.d.ts +3 -9
- package/dist/mcp/server.js +6 -17
- package/dist/mcp/session-state.d.ts +2 -3
- package/dist/mcp/session-state.js +7 -13
- package/dist/mcp/shared-gate.js +1 -1
- package/dist/mcp/stdio.d.ts +2 -6
- package/dist/mcp/stdio.js +112 -38
- package/dist/mcp/tool-args.js +2 -1
- package/dist/mcp/tools.js +7 -5
- package/dist/objects/customer-notes.d.ts +44 -0
- package/dist/objects/customer-notes.js +71 -0
- package/dist/objects/decisions.d.ts +41 -0
- package/dist/objects/decisions.js +63 -0
- package/dist/objects/descriptor.d.ts +52 -0
- package/dist/objects/descriptor.js +4 -0
- package/dist/objects/fields.d.ts +15 -0
- package/dist/objects/fields.js +21 -0
- package/dist/objects/incidents.d.ts +45 -0
- package/dist/objects/incidents.js +96 -0
- package/dist/objects/lifecycle.d.ts +27 -0
- package/dist/objects/lifecycle.js +96 -0
- package/dist/objects/policies.d.ts +60 -0
- package/dist/objects/policies.js +102 -0
- package/dist/objects/processes.d.ts +43 -0
- package/dist/objects/processes.js +92 -0
- package/dist/objects/project-briefs.d.ts +63 -0
- package/dist/objects/project-briefs.js +194 -0
- package/dist/objects/skills.d.ts +51 -0
- package/dist/objects/skills.js +110 -0
- package/dist/postinstall.js +10 -21
- package/dist/predictions/planning-fallacy.d.ts +14 -109
- package/dist/predictions/planning-fallacy.js +4 -129
- package/dist/rerankers/clef.d.ts +2 -6
- package/dist/rerankers/clef.js +28 -76
- package/dist/rerankers/cross-encoder.d.ts +0 -7
- package/dist/rerankers/cross-encoder.js +18 -28
- package/dist/rerankers/index.js +8 -7
- package/dist/rerankers/jev.d.ts +1 -4
- package/dist/rerankers/jev.js +36 -52
- package/dist/rerankers/llm.d.ts +2 -13
- package/dist/rerankers/llm.js +42 -59
- package/dist/rerankers/outage-warning.d.ts +8 -0
- package/dist/rerankers/outage-warning.js +32 -0
- package/dist/rerankers/remote.d.ts +4 -0
- package/dist/rerankers/remote.js +25 -0
- package/dist/rerankers/types.d.ts +3 -15
- package/dist/search/as-of.d.ts +1 -1
- package/dist/search/bm25-search.d.ts +2 -2
- package/dist/search/bm25-search.js +7 -7
- package/dist/search/bm25.d.ts +1 -1
- package/dist/search/bm25.js +1 -1
- package/dist/search/boosts.d.ts +5 -3
- package/dist/search/boosts.js +36 -15
- package/dist/search/breakdown.d.ts +2 -2
- package/dist/search/breakdown.js +2 -1
- package/dist/search/explain.d.ts +1 -1
- package/dist/search/explain.js +3 -2
- package/dist/search/finalize.d.ts +2 -2
- package/dist/search/finalize.js +4 -3
- package/dist/search/fusion.d.ts +1 -1
- package/dist/search/fusion.js +3 -3
- package/dist/search/goal-boost.d.ts +23 -0
- package/dist/search/goal-boost.js +90 -0
- package/dist/search/hybrid-score.d.ts +2 -2
- package/dist/search/hybrid-score.js +1 -1
- package/dist/search/hybrid.d.ts +6 -4
- package/dist/search/hybrid.js +11 -8
- package/dist/{multihop.d.ts → search/multihop.d.ts} +2 -2
- package/dist/{multihop.js → search/multihop.js} +9 -8
- package/dist/search/path-context.d.ts +11 -0
- package/dist/{path-context.js → search/path-context.js} +8 -19
- package/dist/search/physics-search.d.ts +4 -4
- package/dist/search/physics-search.js +25 -22
- package/dist/search/rerank.d.ts +3 -3
- package/dist/search/rerank.js +4 -3
- package/dist/search/rrf.d.ts +15 -0
- package/dist/search/rrf.js +36 -0
- package/dist/search/temporal.d.ts +1 -1
- package/dist/search/temporal.js +5 -2
- package/dist/search/vector.d.ts +10 -3
- package/dist/search/vector.js +51 -15
- package/dist/server/auth.d.ts +10 -29
- package/dist/server/auth.js +57 -42
- package/dist/server/boot.d.ts +5 -0
- package/dist/server/boot.js +432 -0
- package/dist/server/client-ip.d.ts +8 -20
- package/dist/server/client-ip.js +23 -34
- package/dist/server/cursor.d.ts +1 -1
- package/dist/server/cursor.js +2 -3
- package/dist/server/deadline.d.ts +13 -0
- package/dist/server/deadline.js +45 -0
- package/dist/server/defaults.d.ts +3 -0
- package/dist/server/defaults.js +4 -0
- package/dist/server/key-check-bounds.d.ts +9 -0
- package/dist/server/key-check-bounds.js +46 -0
- package/dist/server/lifecycle.d.ts +5 -4
- package/dist/server/lifecycle.js +20 -5
- package/dist/server/mcp-http.d.ts +1 -4
- package/dist/server/mcp-http.js +44 -68
- package/dist/server/rate-limit.d.ts +21 -0
- package/dist/{rate-limit.js → server/rate-limit.js} +4 -13
- package/dist/server/ready.d.ts +7 -0
- package/dist/server/ready.js +38 -0
- package/dist/server/request.d.ts +14 -12
- package/dist/server/request.js +71 -28
- package/dist/server/route-table.d.ts +15 -0
- package/dist/server/route-table.js +202 -0
- package/dist/server/routes/admin.js +29 -30
- package/dist/server/routes/customer-notes.d.ts +5 -5
- package/dist/server/routes/customer-notes.js +35 -105
- package/dist/server/routes/decisions.d.ts +5 -5
- package/dist/server/routes/decisions.js +45 -115
- package/dist/server/routes/incidents.d.ts +5 -5
- package/dist/server/routes/incidents.js +44 -105
- package/dist/server/routes/memories.js +21 -43
- package/dist/server/routes/object-routes.d.ts +35 -0
- package/dist/server/routes/object-routes.js +72 -0
- package/dist/server/routes/policies.d.ts +6 -6
- package/dist/server/routes/policies.js +42 -134
- package/dist/server/routes/predictions.js +35 -63
- package/dist/server/routes/processes.d.ts +5 -5
- package/dist/server/routes/processes.js +44 -134
- package/dist/server/routes/project-briefs.d.ts +6 -6
- package/dist/server/routes/project-briefs.js +41 -120
- package/dist/server/routes/recall.js +21 -44
- package/dist/server/routes/skills.d.ts +6 -6
- package/dist/server/routes/skills.js +40 -138
- package/dist/server/server-detect.d.ts +28 -0
- package/dist/server/server-detect.js +156 -0
- package/dist/server/sleep-child.d.ts +2 -0
- package/dist/server/sleep-child.js +19 -0
- package/dist/server/sleep-offload.d.ts +20 -0
- package/dist/server/sleep-offload.js +73 -0
- package/dist/server/tls.d.ts +6 -0
- package/dist/server/tls.js +24 -0
- package/dist/server/types.d.ts +35 -14
- package/dist/server/validation.d.ts +6 -5
- package/dist/server/validation.js +16 -34
- package/dist/server.d.ts +39 -61
- package/dist/server.js +26 -569
- package/dist/sharing/global-store.d.ts +19 -0
- package/dist/sharing/global-store.js +75 -0
- package/dist/sharing/global-sync.d.ts +6 -0
- package/dist/sharing/global-sync.js +80 -0
- package/dist/{project-merge.d.ts → sharing/project-merge.d.ts} +5 -6
- package/dist/{project-merge.js → sharing/project-merge.js} +34 -51
- package/dist/sharing/scope.d.ts +7 -0
- package/dist/{scope.js → sharing/scope.js} +5 -12
- package/dist/sharing/search-both.d.ts +60 -0
- package/dist/sharing/search-both.js +138 -0
- package/dist/sharing/share.d.ts +38 -0
- package/dist/sharing/share.js +226 -0
- package/dist/{ambient-store.d.ts → store/ambient.d.ts} +2 -2
- package/dist/{ambient-store.js → store/ambient.js} +11 -16
- package/dist/store/audit-event.d.ts +15 -17
- package/dist/store/audit-event.js +9 -16
- package/dist/{audit.d.ts → store/audit.d.ts} +29 -8
- package/dist/{audit.js → store/audit.js} +95 -18
- package/dist/{auth.d.ts → store/auth.d.ts} +19 -36
- package/dist/{auth.js → store/auth.js} +108 -99
- package/dist/store/candidates.d.ts +41 -13
- package/dist/store/candidates.js +141 -60
- package/dist/{card-detail.d.ts → store/card-detail.d.ts} +5 -4
- package/dist/{card-detail.js → store/card-detail.js} +3 -2
- package/dist/{store-cards.d.ts → store/cards.d.ts} +26 -16
- package/dist/{store-cards.js → store/cards.js} +133 -248
- package/dist/store/compactions.d.ts +78 -0
- package/dist/store/compactions.js +93 -0
- package/dist/store/conflicts.d.ts +26 -26
- package/dist/store/conflicts.js +194 -222
- package/dist/store/connectors/github.d.ts +84 -0
- package/dist/store/connectors/github.js +180 -0
- package/dist/store/connectors/slack.d.ts +69 -0
- package/dist/store/connectors/slack.js +177 -0
- package/dist/store/dashboard-reads.d.ts +27 -0
- package/dist/store/dashboard-reads.js +88 -0
- package/dist/store/delete-and-batch.d.ts +27 -51
- package/dist/store/delete-and-batch.js +100 -92
- package/dist/{delivery-recorder.d.ts → store/delivery-recorder.d.ts} +16 -5
- package/dist/{delivery-recorder.js → store/delivery-recorder.js} +60 -38
- package/dist/store/descendant-page.d.ts +12 -0
- package/dist/store/descendant-page.js +99 -0
- package/dist/store/diagnostics.d.ts +47 -0
- package/dist/store/diagnostics.js +44 -0
- package/dist/store/doctor-reads.d.ts +16 -0
- package/dist/store/doctor-reads.js +19 -0
- package/dist/store/dormant.d.ts +105 -0
- package/dist/store/dormant.js +241 -0
- package/dist/store/embeddings/index.d.ts +36 -0
- package/dist/{embeddings.js → store/embeddings/index.js} +104 -224
- package/dist/{local-embedding.d.ts → store/embeddings/local.d.ts} +1 -1
- package/dist/{local-embedding.js → store/embeddings/local.js} +69 -75
- package/dist/store/embeddings/provider.d.ts +40 -0
- package/dist/{embedding-provider.js → store/embeddings/provider.js} +78 -91
- package/dist/store/entry-reads.d.ts +66 -63
- package/dist/store/entry-reads.js +159 -121
- package/dist/store/entry-row.d.ts +14 -37
- package/dist/store/entry-row.js +37 -45
- package/dist/store/entry-writes.d.ts +40 -17
- package/dist/store/entry-writes.js +105 -41
- package/dist/{failure-log.d.ts → store/failure-log.d.ts} +7 -2
- package/dist/{failure-log.js → store/failure-log.js} +9 -2
- package/dist/store/goals.d.ts +96 -0
- package/dist/store/goals.js +260 -0
- package/dist/store/graph-queue.d.ts +13 -0
- package/dist/store/graph-queue.js +70 -0
- package/dist/store/graph-reads.d.ts +41 -0
- package/dist/{graph/read.js → store/graph-reads.js} +72 -162
- package/dist/{graph/types.d.ts → store/graph-rows.d.ts} +71 -14
- package/dist/{graph/rows.js → store/graph-rows.js} +20 -12
- package/dist/store/graph-view-rows.d.ts +13 -0
- package/dist/store/graph-view-rows.js +68 -0
- package/dist/store/graph-writes.d.ts +33 -0
- package/dist/store/graph-writes.js +232 -0
- package/dist/store/half-life.d.ts +35 -0
- package/dist/store/half-life.js +75 -0
- package/dist/store/handoffs.d.ts +6 -12
- package/dist/store/handoffs.js +54 -63
- package/dist/store/index-and-stats.d.ts +14 -20
- package/dist/store/index-and-stats.js +74 -119
- package/dist/store/index.d.ts +4 -0
- package/dist/store/index.js +3 -0
- package/dist/store/key-audit.d.ts +2 -2
- package/dist/store/key-audit.js +4 -4
- package/dist/store/key-writes.d.ts +12 -5
- package/dist/store/key-writes.js +30 -4
- package/dist/store/ledger-turn.d.ts +17 -0
- package/dist/store/ledger-turn.js +27 -0
- package/dist/store/markdown.d.ts +3 -7
- package/dist/store/markdown.js +25 -23
- package/dist/store/mirrors.d.ts +7 -13
- package/dist/store/mirrors.js +52 -47
- package/dist/store/object-types.d.ts +189 -0
- package/dist/store/object-types.js +4 -0
- package/dist/store/open.d.ts +6 -4
- package/dist/store/open.js +30 -36
- package/dist/store/planning-fallacy-evidence.d.ts +14 -0
- package/dist/store/planning-fallacy-evidence.js +52 -0
- package/dist/store/port.d.ts +649 -0
- package/dist/store/port.js +17 -0
- package/dist/{predictions/store.d.ts → store/predictions.d.ts} +25 -52
- package/dist/{predictions/store.js → store/predictions.js} +88 -184
- package/dist/{quality-repair.js → store/quality-repair.js} +27 -57
- package/dist/{quarantine.d.ts → store/quarantine.d.ts} +8 -8
- package/dist/{quarantine.js → store/quarantine.js} +64 -22
- package/dist/store/raw-archive.d.ts +14 -0
- package/dist/{raw-archive.js → store/raw-archive.js} +20 -31
- package/dist/store/recall-scope.d.ts +78 -0
- package/dist/{recall-scope.js → store/recall-scope.js} +23 -84
- package/dist/{recall-trace.d.ts → store/recall-trace.d.ts} +13 -81
- package/dist/{recall-trace.js → store/recall-trace.js} +41 -122
- package/dist/store/rejected-values.d.ts +55 -0
- package/dist/store/rejected-values.js +150 -0
- package/dist/store/rejection.d.ts +54 -0
- package/dist/{rejection.js → store/rejection.js} +16 -67
- package/dist/store/report-reads.d.ts +6 -0
- package/dist/store/report-reads.js +29 -0
- package/dist/store/rows.d.ts +11 -22
- package/dist/store/rows.js +52 -43
- package/dist/store/rule-sql.d.ts +5 -0
- package/dist/store/rule-sql.js +37 -0
- package/dist/store/search-rows.d.ts +22 -42
- package/dist/store/search-rows.js +55 -78
- package/dist/store/sessions.d.ts +23 -49
- package/dist/store/sessions.js +96 -118
- package/dist/store/sqlite/commit-watch.d.ts +4 -0
- package/dist/store/sqlite/commit-watch.js +29 -0
- package/dist/store/sqlite/connector-events-group.d.ts +5 -0
- package/dist/store/sqlite/connector-events-group.js +50 -0
- package/dist/store/sqlite/connector-writes-group.d.ts +6 -0
- package/dist/store/sqlite/connector-writes-group.js +65 -0
- package/dist/store/sqlite/dag-reads-group.d.ts +3 -0
- package/dist/store/sqlite/dag-reads-group.js +45 -0
- package/dist/store/sqlite/entry-writes-group.d.ts +18 -0
- package/dist/store/{entry-writes-group.js → sqlite/entry-writes-group.js} +73 -60
- package/dist/store/sqlite/error-codec.d.ts +17 -0
- package/dist/store/sqlite/error-codec.js +61 -0
- package/dist/store/sqlite/executor-counts.d.ts +10 -0
- package/dist/store/sqlite/executor-counts.js +11 -0
- package/dist/store/sqlite/executor.d.ts +29 -0
- package/dist/store/sqlite/executor.js +287 -0
- package/dist/store/sqlite/graph-reads-group.d.ts +5 -0
- package/dist/store/sqlite/graph-reads-group.js +18 -0
- package/dist/store/sqlite/local.d.ts +21 -0
- package/dist/store/sqlite/local.js +39 -0
- package/dist/store/sqlite/object-rows.d.ts +102 -0
- package/dist/store/sqlite/object-rows.js +221 -0
- package/dist/store/sqlite/objects-group.d.ts +20 -0
- package/dist/store/sqlite/objects-group.js +316 -0
- package/dist/store/sqlite/predictions-group.d.ts +5 -0
- package/dist/store/sqlite/predictions-group.js +28 -0
- package/dist/store/sqlite/quarantine-group.d.ts +5 -0
- package/dist/store/sqlite/quarantine-group.js +38 -0
- package/dist/store/sqlite/store.d.ts +23 -0
- package/dist/store/sqlite/store.js +294 -0
- package/dist/store/sqlite/vector-pack.d.ts +18 -0
- package/dist/store/sqlite/vector-pack.js +46 -0
- package/dist/store/sqlite/vector-reads-group.d.ts +3 -0
- package/dist/store/sqlite/vector-reads-group.js +23 -0
- package/dist/store/sqlite/worker-entry.d.ts +2 -0
- package/dist/store/sqlite/worker-entry.js +8 -0
- package/dist/store/sqlite/worker-jobs.d.ts +5 -0
- package/dist/store/sqlite/worker-jobs.js +116 -0
- package/dist/store/sqlite/worker-ops.d.ts +135 -0
- package/dist/store/sqlite/worker-ops.js +93 -0
- package/dist/store/sqlite/worker-store.d.ts +8 -0
- package/dist/store/sqlite/worker-store.js +79 -0
- package/dist/store/summaries.d.ts +11 -72
- package/dist/store/summaries.js +47 -186
- package/dist/{summary-dirty.d.ts → store/summary-dirty.d.ts} +1 -1
- package/dist/{summary-dirty.js → store/summary-dirty.js} +1 -1
- package/dist/store/tenant-lookup.d.ts +6 -1
- package/dist/store/tenant-lookup.js +7 -0
- package/dist/store/tenant.d.ts +11 -0
- package/dist/store/tenant.js +28 -0
- package/dist/store/token-ledger-rows.d.ts +61 -0
- package/dist/store/token-ledger-rows.js +68 -0
- package/dist/{token-ledger.d.ts → store/token-ledger.d.ts} +14 -51
- package/dist/{token-ledger.js → store/token-ledger.js} +51 -129
- package/dist/store/tombstone-checks.d.ts +12 -0
- package/dist/store/tombstone-checks.js +31 -0
- package/dist/store/usage-reports.d.ts +7 -0
- package/dist/store/usage-reports.js +18 -0
- package/dist/store/vector-index.d.ts +46 -0
- package/dist/store/vector-index.js +170 -0
- package/dist/{working-memory.d.ts → store/working-memory.d.ts} +11 -26
- package/dist/store/working-memory.js +118 -0
- package/dist/{yaml.d.ts → store/yaml.d.ts} +1 -5
- package/dist/{yaml.js → store/yaml.js} +2 -6
- package/dist/support-bundle.d.ts +1 -1
- package/dist/support-bundle.js +19 -37
- package/dist/{gated-write.d.ts → trust/gated-write.d.ts} +2 -2
- package/dist/{gated-write.js → trust/gated-write.js} +6 -6
- package/dist/trust/quarantine.d.ts +4 -0
- package/dist/trust/quarantine.js +8 -0
- package/dist/trust/reject-flow.d.ts +23 -0
- package/dist/trust/reject-flow.js +65 -0
- package/dist/util/anthropic-messages.d.ts +31 -0
- package/dist/util/anthropic-messages.js +58 -0
- package/dist/util/atomic-write.d.ts +4 -0
- package/dist/util/atomic-write.js +138 -0
- package/dist/util/capped-json.d.ts +6 -0
- package/dist/util/capped-json.js +46 -0
- package/dist/util/crash-handlers.d.ts +12 -0
- package/dist/util/crash-handlers.js +72 -0
- package/dist/{env.d.ts → util/env.d.ts} +27 -7
- package/dist/{env.js → util/env.js} +33 -8
- package/dist/{home-path.d.ts → util/home-path.d.ts} +2 -1
- package/dist/util/home-path.js +69 -0
- package/dist/{http-retry.d.ts → util/http-retry.d.ts} +8 -2
- package/dist/util/http-retry.js +103 -0
- package/dist/{http-util.d.ts → util/http-util.d.ts} +14 -3
- package/dist/{http-util.js → util/http-util.js} +31 -11
- package/dist/util/json.d.ts +17 -0
- package/dist/util/json.js +25 -0
- package/dist/{log.d.ts → util/log.d.ts} +7 -3
- package/dist/{log.js → util/log.js} +36 -11
- package/dist/util/real-path.d.ts +3 -0
- package/dist/util/real-path.js +15 -0
- package/dist/util/request-scope.d.ts +28 -0
- package/dist/util/request-scope.js +48 -0
- package/dist/{same-text.d.ts → util/same-text.d.ts} +1 -1
- package/dist/{secret-detect.d.ts → util/secret-detect.d.ts} +5 -30
- package/dist/{secret-detect.js → util/secret-detect.js} +17 -42
- package/dist/util/stored-json.d.ts +9 -0
- package/dist/util/stored-json.js +8 -0
- package/dist/util/time.d.ts +2 -0
- package/dist/util/time.js +3 -0
- package/dist/util/token-text.d.ts +15 -0
- package/dist/util/token-text.js +20 -0
- package/dist/{transcript-tail.d.ts → util/transcript-tail.d.ts} +2 -0
- package/dist/util/transcript-tail.js +49 -0
- package/dist/util/version.d.ts +11 -0
- package/dist/util/version.js +26 -0
- package/extensions/openclaw-plugin/index.ts +2 -6
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -2
- package/dist/ablation.d.ts +0 -102
- package/dist/ablation.js +0 -136
- package/dist/api.d.ts +0 -26
- package/dist/api.js +0 -29
- package/dist/audit-prune.d.ts +0 -62
- package/dist/audit-prune.js +0 -107
- package/dist/autolearn.d.ts +0 -56
- package/dist/client.d.ts +0 -48
- package/dist/compare.d.ts +0 -86
- package/dist/compare.js +0 -117
- package/dist/connectors/github/cli-impl.d.ts +0 -25
- package/dist/connectors/github/cli-impl.js +0 -227
- package/dist/connectors/github/idempotency.d.ts +0 -19
- package/dist/connectors/github/idempotency.js +0 -27
- package/dist/connectors/slack/idempotency.d.ts +0 -17
- package/dist/connectors/slack/idempotency.js +0 -31
- package/dist/correction-latency.d.ts +0 -36
- package/dist/customer-notes.d.ts +0 -96
- package/dist/customer-notes.js +0 -336
- package/dist/db.d.ts +0 -9
- package/dist/db.js +0 -8
- package/dist/decisions.d.ts +0 -94
- package/dist/decisions.js +0 -326
- package/dist/dedupe.d.ts +0 -75
- package/dist/dedupe.js +0 -169
- package/dist/dormant.d.ts +0 -93
- package/dist/dormant.js +0 -137
- package/dist/embedding-provider.d.ts +0 -77
- package/dist/embeddings.d.ts +0 -101
- package/dist/extract.js +0 -133
- package/dist/forward-claim-detector.d.ts +0 -36
- package/dist/forward-claim-detector.js +0 -112
- package/dist/goals.d.ts +0 -173
- package/dist/goals.js +0 -448
- package/dist/graph/read.d.ts +0 -73
- package/dist/graph/rows.d.ts +0 -45
- package/dist/graph/types.js +0 -11
- package/dist/graph-stream.d.ts +0 -70
- package/dist/graph-view.d.ts +0 -73
- package/dist/graph-view.js +0 -333
- package/dist/half-life-migration.d.ts +0 -63
- package/dist/half-life-migration.js +0 -182
- package/dist/handoff.js +0 -68
- package/dist/home-path.js +0 -24
- package/dist/http-retry.js +0 -51
- package/dist/incidents.d.ts +0 -103
- package/dist/incidents.js +0 -349
- package/dist/instruction-detect.js +0 -27
- package/dist/json.d.ts +0 -7
- package/dist/json.js +0 -11
- package/dist/ledger-db.d.ts +0 -10
- package/dist/ledger-db.js +0 -42
- package/dist/memory-value-weights.d.ts +0 -19
- package/dist/memory-value.d.ts +0 -113
- package/dist/memory-value.js +0 -250
- package/dist/memory.d.ts +0 -294
- package/dist/memory.js +0 -522
- package/dist/owner-validation.d.ts +0 -42
- package/dist/owner-validation.js +0 -56
- package/dist/path-context.d.ts +0 -24
- package/dist/physics-state.d.ts +0 -39
- package/dist/policies.d.ts +0 -151
- package/dist/policies.js +0 -434
- package/dist/processes.d.ts +0 -108
- package/dist/processes.js +0 -371
- package/dist/project-briefs.d.ts +0 -128
- package/dist/project-briefs.js +0 -523
- package/dist/provenance-coverage.d.ts +0 -18
- package/dist/rate-limit.d.ts +0 -34
- package/dist/raw-archive-mirror-cleanup.d.ts +0 -20
- package/dist/raw-archive.d.ts +0 -24
- package/dist/recall-history.d.ts +0 -131
- package/dist/recall-history.js +0 -227
- package/dist/recall-scope.d.ts +0 -138
- package/dist/refine-llm.d.ts +0 -61
- package/dist/refine-llm.js +0 -167
- package/dist/reject-flow.d.ts +0 -69
- package/dist/reject-flow.js +0 -260
- package/dist/rejection.d.ts +0 -100
- package/dist/replay.d.ts +0 -41
- package/dist/replay.js +0 -122
- package/dist/rrf.d.ts +0 -43
- package/dist/rrf.js +0 -61
- package/dist/scope.d.ts +0 -14
- package/dist/server-detect.d.ts +0 -72
- package/dist/server-detect.js +0 -222
- package/dist/session-owners.d.ts +0 -7
- package/dist/session-owners.js +0 -54
- package/dist/shared.d.ts +0 -186
- package/dist/shared.js +0 -540
- package/dist/skills.d.ts +0 -101
- package/dist/skills.js +0 -367
- package/dist/store/entry-writes-group.d.ts +0 -9
- package/dist/store/vector-writes.d.ts +0 -6
- package/dist/store/vector-writes.js +0 -59
- package/dist/store-port.d.ts +0 -262
- package/dist/store-port.js +0 -178
- package/dist/tenant.d.ts +0 -25
- package/dist/tenant.js +0 -43
- package/dist/trace.d.ts +0 -34
- package/dist/transcript-tail.js +0 -48
- package/dist/version.d.ts +0 -26
- package/dist/version.js +0 -41
- package/dist/working-memory.js +0 -154
- /package/dist/{context-auto.d.ts → api/context-auto.d.ts} +0 -0
- /package/dist/{instruction-detect.d.ts → api/instruction-detect.d.ts} +0 -0
- /package/dist/{codex-patch.d.ts → capture/codex-patch.d.ts} +0 -0
- /package/dist/{compaction-items.d.ts → capture/compaction-items.d.ts} +0 -0
- /package/dist/{share-scrub.d.ts → capture/share-scrub.d.ts} +0 -0
- /package/dist/{overlap-index.d.ts → consolidate/overlap-index.d.ts} +0 -0
- /package/dist/{overlap-index.js → consolidate/overlap-index.js} +0 -0
- /package/dist/{api-errors.d.ts → core/api-errors.d.ts} +0 -0
- /package/dist/{api-errors.js → core/api-errors.js} +0 -0
- /package/dist/{memory-quality.d.ts → core/memory-quality.d.ts} +0 -0
- /package/dist/{project-remote.d.ts → core/project-remote.d.ts} +0 -0
- /package/dist/{prompt-recall.d.ts → core/prompt-recall.d.ts} +0 -0
- /package/dist/{dashboard-params.d.ts → dashboard/dashboard-params.d.ts} +0 -0
- /package/dist/{dashboard-params.js → dashboard/dashboard-params.js} +0 -0
- /package/dist/{dashboard-types.js → dashboard/dashboard-types.js} +0 -0
- /package/dist/{quality-repair.d.ts → store/quality-repair.d.ts} +0 -0
- /package/dist/{escape.d.ts → util/escape.d.ts} +0 -0
- /package/dist/{escape.js → util/escape.js} +0 -0
- /package/dist/{keyset.d.ts → util/keyset.d.ts} +0 -0
- /package/dist/{keyset.js → util/keyset.js} +0 -0
- /package/dist/{same-text.js → util/same-text.js} +0 -0
- /package/dist/{db → util}/sqlite-blocked.d.ts +0 -0
- /package/dist/{db → util}/sqlite-blocked.js +0 -0
- /package/dist/{tokenize.d.ts → util/tokenize.d.ts} +0 -0
- /package/dist/{tokenize.js → util/tokenize.js} +0 -0
- /package/dist/{write-budget.d.ts → util/write-budget.d.ts} +0 -0
- /package/dist/{write-budget.js → util/write-budget.js} +0 -0
package/dist/cli/card.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
// The `hippo card` verb (the agent work board); main() loads it lazily from the command table.
|
|
2
|
-
import { createCard, loadCard, listCards, loadCardRuns, claimCard, heartbeatCard, blockCard, reviewCard, completeCard, reclaimExpiredCards, addCardComment, } from '../store
|
|
3
|
-
import { isHandoffOutcome } from '../handoff.js';
|
|
4
|
-
import { isCardStatus } from '../card.js';
|
|
5
|
-
import { loadCardDetail } from '../card-detail.js';
|
|
6
|
-
import { resolveTenantId } from '../tenant.js';
|
|
2
|
+
import { createCard, loadCard, listCards, loadCardRuns, claimCard, heartbeatCard, blockCard, reviewCard, completeCard, reclaimExpiredCards, addCardComment, } from '../store/cards.js';
|
|
3
|
+
import { isHandoffOutcome } from '../core/handoff.js';
|
|
4
|
+
import { isCardStatus } from '../core/card.js';
|
|
5
|
+
import { loadCardDetail } from '../store/card-detail.js';
|
|
7
6
|
import { printError } from './output.js';
|
|
8
|
-
import {
|
|
7
|
+
import { stringFlagOrExit } from './flag-values.js';
|
|
8
|
+
import { requireInit } from './shared.js';
|
|
9
|
+
import { errorMessage } from '../util/log.js';
|
|
10
|
+
import { CliExit } from './exit.js';
|
|
9
11
|
// Mirrors ARCHIVE_REASON_REQUIRED so the block message can't drift from its usage line.
|
|
10
12
|
const CARD_BLOCK_REASON_REQUIRED = 'hippo card block <id> requires --reason "<why>" (recorded as a comment).';
|
|
11
13
|
function printCard(detail) {
|
|
@@ -51,13 +53,13 @@ function printCard(detail) {
|
|
|
51
53
|
}
|
|
52
54
|
// A too-large --run would silently round to a different id (mirrors parsePositiveIncidentId).
|
|
53
55
|
function cardRunFlag(flags) {
|
|
54
|
-
const raw =
|
|
56
|
+
const raw = stringFlagOrExit(flags, 'run');
|
|
55
57
|
if (raw === undefined)
|
|
56
58
|
return undefined;
|
|
57
59
|
const n = Number(raw);
|
|
58
60
|
if (!/^\d+$/.test(raw) || !Number.isSafeInteger(n) || n <= 0) {
|
|
59
61
|
printError(`Invalid --run: "${raw}" (expected a positive integer).`);
|
|
60
|
-
|
|
62
|
+
throw new CliExit(1);
|
|
61
63
|
}
|
|
62
64
|
return n;
|
|
63
65
|
}
|
|
@@ -80,13 +82,12 @@ const CARD_SUBCOMMAND_FLAGS = {
|
|
|
80
82
|
comment: ['body', 'author'],
|
|
81
83
|
};
|
|
82
84
|
/** Runs `hippo card <subcommand>`: rejects flags the subcommand never reads, then hands off to its handler. */
|
|
83
|
-
export function
|
|
85
|
+
export function handleCard({ hippoRoot, tenantId, args, flags }) {
|
|
84
86
|
requireInit(hippoRoot);
|
|
85
|
-
const tenantId = resolveTenantId({});
|
|
86
87
|
const subcommand = args[0] ?? '';
|
|
87
88
|
if (!Object.hasOwn(CARD_SUBCOMMAND_FLAGS, subcommand)) {
|
|
88
89
|
printError('Usage: hippo card <create|show|list|claim|heartbeat|block|review|complete|reclaim|comment>');
|
|
89
|
-
|
|
90
|
+
throw new CliExit(1);
|
|
90
91
|
}
|
|
91
92
|
// SAFETY: hasOwn, unlike `in`, skips inherited keys such as constructor, so subcommand is a real key.
|
|
92
93
|
const known = subcommand;
|
|
@@ -95,32 +96,32 @@ export function cmdCard(hippoRoot, args, flags) {
|
|
|
95
96
|
if (!allowedFlags.includes(key)) {
|
|
96
97
|
const valid = allowedFlags.length > 0 ? allowedFlags.map((f) => `--${f}`).join(', ') : '(none)';
|
|
97
98
|
printError(`Unknown flag --${key} for hippo card ${subcommand}. Valid flags: ${valid}`);
|
|
98
|
-
|
|
99
|
+
throw new CliExit(1);
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
CARD_HANDLERS[known](hippoRoot, tenantId, args, flags);
|
|
102
103
|
}
|
|
103
104
|
function cardCreate(hippoRoot, tenantId, _args, flags) {
|
|
104
|
-
const title =
|
|
105
|
+
const title = stringFlagOrExit(flags, 'title') ?? '';
|
|
105
106
|
if (!title) {
|
|
106
107
|
printError('Usage: hippo card create --title "..." [--repo <name>] [--contract <text>] [--budget <n>] [--depends-on <id>...]');
|
|
107
|
-
|
|
108
|
+
throw new CliExit(1);
|
|
108
109
|
}
|
|
109
|
-
const repo =
|
|
110
|
-
const contract =
|
|
111
|
-
const budgetRaw =
|
|
110
|
+
const repo = stringFlagOrExit(flags, 'repo') || undefined;
|
|
111
|
+
const contract = stringFlagOrExit(flags, 'contract') || undefined;
|
|
112
|
+
const budgetRaw = stringFlagOrExit(flags, 'budget');
|
|
112
113
|
let budget;
|
|
113
114
|
if (budgetRaw !== undefined) {
|
|
114
115
|
if (!/^\d+$/.test(budgetRaw)) {
|
|
115
116
|
printError(`Invalid budget: "${budgetRaw}" (expected a positive integer)`);
|
|
116
|
-
|
|
117
|
+
throw new CliExit(1);
|
|
117
118
|
}
|
|
118
119
|
budget = Number(budgetRaw);
|
|
119
120
|
}
|
|
120
121
|
const dependsOnFlag = flags['depends-on'];
|
|
121
122
|
if (dependsOnFlag === true) {
|
|
122
123
|
printError('--depends-on requires a value');
|
|
123
|
-
|
|
124
|
+
throw new CliExit(1);
|
|
124
125
|
}
|
|
125
126
|
const dependsOn = Array.isArray(dependsOnFlag) ? dependsOnFlag : [];
|
|
126
127
|
let card;
|
|
@@ -128,8 +129,8 @@ function cardCreate(hippoRoot, tenantId, _args, flags) {
|
|
|
128
129
|
card = createCard(hippoRoot, tenantId, { title, repo, contract, budget, dependsOn });
|
|
129
130
|
}
|
|
130
131
|
catch (error) {
|
|
131
|
-
printError(
|
|
132
|
-
|
|
132
|
+
printError(errorMessage(error));
|
|
133
|
+
throw new CliExit(1);
|
|
133
134
|
}
|
|
134
135
|
console.log(`Created card ${card.id} (status: ${card.status})`);
|
|
135
136
|
}
|
|
@@ -137,12 +138,12 @@ function cardShow(hippoRoot, tenantId, args, flags) {
|
|
|
137
138
|
const id = args[1];
|
|
138
139
|
if (!id) {
|
|
139
140
|
printError('Usage: hippo card show <id> [--json]');
|
|
140
|
-
|
|
141
|
+
throw new CliExit(1);
|
|
141
142
|
}
|
|
142
143
|
const detail = loadCardDetail(hippoRoot, tenantId, id);
|
|
143
144
|
if (!detail) {
|
|
144
145
|
printError(`No card found with id ${id}.`);
|
|
145
|
-
|
|
146
|
+
throw new CliExit(1);
|
|
146
147
|
}
|
|
147
148
|
if (flags['json']) {
|
|
148
149
|
console.log(JSON.stringify(detail, null, 2));
|
|
@@ -151,10 +152,10 @@ function cardShow(hippoRoot, tenantId, args, flags) {
|
|
|
151
152
|
printCard(detail);
|
|
152
153
|
}
|
|
153
154
|
function cardList(hippoRoot, tenantId, _args, flags) {
|
|
154
|
-
const status =
|
|
155
|
+
const status = stringFlagOrExit(flags, 'status');
|
|
155
156
|
if (status !== undefined && !isCardStatus(status)) {
|
|
156
157
|
printError(`Invalid status: "${status}".`);
|
|
157
|
-
|
|
158
|
+
throw new CliExit(1);
|
|
158
159
|
}
|
|
159
160
|
const cards = listCards(hippoRoot, tenantId, { status });
|
|
160
161
|
if (flags['json']) {
|
|
@@ -171,23 +172,23 @@ function cardList(hippoRoot, tenantId, _args, flags) {
|
|
|
171
172
|
}
|
|
172
173
|
function cardClaim(hippoRoot, tenantId, args, flags) {
|
|
173
174
|
const id = args[1];
|
|
174
|
-
const runtime =
|
|
175
|
+
const runtime = stringFlagOrExit(flags, 'runtime') ?? '';
|
|
175
176
|
if (!id || !runtime) {
|
|
176
177
|
printError('Usage: hippo card claim <id> --runtime <name> [--session <id>]');
|
|
177
|
-
|
|
178
|
+
throw new CliExit(1);
|
|
178
179
|
}
|
|
179
|
-
const sessionId =
|
|
180
|
+
const sessionId = stringFlagOrExit(flags, 'session') || undefined;
|
|
180
181
|
let card;
|
|
181
182
|
try {
|
|
182
183
|
card = claimCard(hippoRoot, tenantId, id, runtime, sessionId);
|
|
183
184
|
}
|
|
184
185
|
catch (error) {
|
|
185
|
-
printError(
|
|
186
|
-
|
|
186
|
+
printError(errorMessage(error));
|
|
187
|
+
throw new CliExit(1);
|
|
187
188
|
}
|
|
188
189
|
if (!card) {
|
|
189
190
|
printError(`Could not claim card ${id} (not ready/blocked, or already claimed).`);
|
|
190
|
-
|
|
191
|
+
throw new CliExit(1);
|
|
191
192
|
}
|
|
192
193
|
console.log(`Claimed card ${card.id} for ${runtime} (run ${card.runId}, lease until ${card.leaseUntil})`);
|
|
193
194
|
}
|
|
@@ -196,28 +197,28 @@ function cardHeartbeat(hippoRoot, tenantId, args, flags) {
|
|
|
196
197
|
const runId = cardRunFlag(flags);
|
|
197
198
|
if (!id || runId === undefined) {
|
|
198
199
|
printError('Usage: hippo card heartbeat <id> --run <n>');
|
|
199
|
-
|
|
200
|
+
throw new CliExit(1);
|
|
200
201
|
}
|
|
201
202
|
let card;
|
|
202
203
|
try {
|
|
203
204
|
card = heartbeatCard(hippoRoot, tenantId, id, runId);
|
|
204
205
|
}
|
|
205
206
|
catch (error) {
|
|
206
|
-
printError(
|
|
207
|
-
|
|
207
|
+
printError(errorMessage(error));
|
|
208
|
+
throw new CliExit(1);
|
|
208
209
|
}
|
|
209
210
|
if (!card) {
|
|
210
211
|
printError(`Could not heartbeat card ${id} (${cardRefusal(hippoRoot, tenantId, id)}).`);
|
|
211
|
-
|
|
212
|
+
throw new CliExit(1);
|
|
212
213
|
}
|
|
213
214
|
console.log(`Heartbeat card ${card.id}: lease until ${card.leaseUntil}`);
|
|
214
215
|
}
|
|
215
216
|
function cardBlock(hippoRoot, tenantId, args, flags) {
|
|
216
217
|
const id = args[1];
|
|
217
|
-
const reason =
|
|
218
|
+
const reason = stringFlagOrExit(flags, 'reason') ?? '';
|
|
218
219
|
if (!id || !reason) {
|
|
219
220
|
printError(CARD_BLOCK_REASON_REQUIRED);
|
|
220
|
-
|
|
221
|
+
throw new CliExit(1);
|
|
221
222
|
}
|
|
222
223
|
const runId = cardRunFlag(flags);
|
|
223
224
|
let card;
|
|
@@ -225,13 +226,13 @@ function cardBlock(hippoRoot, tenantId, args, flags) {
|
|
|
225
226
|
card = blockCard(hippoRoot, tenantId, id, reason, runId);
|
|
226
227
|
}
|
|
227
228
|
catch (error) {
|
|
228
|
-
printError(
|
|
229
|
-
|
|
229
|
+
printError(errorMessage(error));
|
|
230
|
+
throw new CliExit(1);
|
|
230
231
|
}
|
|
231
232
|
if (!card) {
|
|
232
233
|
const why = runId === undefined ? 'not running' : cardRefusal(hippoRoot, tenantId, id);
|
|
233
234
|
printError(`Could not block card ${id} (${why}).`);
|
|
234
|
-
|
|
235
|
+
throw new CliExit(1);
|
|
235
236
|
}
|
|
236
237
|
console.log(`Blocked card ${card.id}`);
|
|
237
238
|
}
|
|
@@ -239,7 +240,7 @@ function cardReview(hippoRoot, tenantId, args, flags) {
|
|
|
239
240
|
const id = args[1];
|
|
240
241
|
if (!id) {
|
|
241
242
|
printError('Usage: hippo card review <id> [--run <n>]');
|
|
242
|
-
|
|
243
|
+
throw new CliExit(1);
|
|
243
244
|
}
|
|
244
245
|
const runId = cardRunFlag(flags);
|
|
245
246
|
let card;
|
|
@@ -247,13 +248,13 @@ function cardReview(hippoRoot, tenantId, args, flags) {
|
|
|
247
248
|
card = reviewCard(hippoRoot, tenantId, id, runId);
|
|
248
249
|
}
|
|
249
250
|
catch (error) {
|
|
250
|
-
printError(
|
|
251
|
-
|
|
251
|
+
printError(errorMessage(error));
|
|
252
|
+
throw new CliExit(1);
|
|
252
253
|
}
|
|
253
254
|
if (!card) {
|
|
254
255
|
const why = runId === undefined ? 'not running' : cardRefusal(hippoRoot, tenantId, id);
|
|
255
256
|
printError(`Could not move card ${id} to review (${why}).`);
|
|
256
|
-
|
|
257
|
+
throw new CliExit(1);
|
|
257
258
|
}
|
|
258
259
|
console.log(`Card ${card.id} moved to review`);
|
|
259
260
|
}
|
|
@@ -262,7 +263,7 @@ function cardComplete(hippoRoot, tenantId, args, flags) {
|
|
|
262
263
|
const outcomeRaw = flags['outcome'];
|
|
263
264
|
if (!id || !isHandoffOutcome(outcomeRaw)) {
|
|
264
265
|
printError('Usage: hippo card complete <id> --outcome <success|failure|partial> [--run <n>]');
|
|
265
|
-
|
|
266
|
+
throw new CliExit(1);
|
|
266
267
|
}
|
|
267
268
|
const runId = cardRunFlag(flags);
|
|
268
269
|
let result;
|
|
@@ -270,13 +271,13 @@ function cardComplete(hippoRoot, tenantId, args, flags) {
|
|
|
270
271
|
result = completeCard(hippoRoot, tenantId, id, outcomeRaw, runId);
|
|
271
272
|
}
|
|
272
273
|
catch (error) {
|
|
273
|
-
printError(
|
|
274
|
-
|
|
274
|
+
printError(errorMessage(error));
|
|
275
|
+
throw new CliExit(1);
|
|
275
276
|
}
|
|
276
277
|
if (!result) {
|
|
277
278
|
const why = runId === undefined ? 'not in review' : cardRefusal(hippoRoot, tenantId, id);
|
|
278
279
|
printError(`Could not complete card ${id} (${why}).`);
|
|
279
|
-
|
|
280
|
+
throw new CliExit(1);
|
|
280
281
|
}
|
|
281
282
|
console.log(`Completed card ${result.card.id} (status: ${result.card.status})`);
|
|
282
283
|
if (result.promotedChildren.length > 0) {
|
|
@@ -286,7 +287,7 @@ function cardComplete(hippoRoot, tenantId, args, flags) {
|
|
|
286
287
|
function cardReclaim(hippoRoot, tenantId, args) {
|
|
287
288
|
if (args.length > 1) {
|
|
288
289
|
printError('Usage: hippo card reclaim (sweeps every expired lease; use hippo card block <id> for one card)');
|
|
289
|
-
|
|
290
|
+
throw new CliExit(1);
|
|
290
291
|
}
|
|
291
292
|
const ids = reclaimExpiredCards(hippoRoot, tenantId);
|
|
292
293
|
if (ids.length === 0) {
|
|
@@ -301,20 +302,20 @@ function cardComment(hippoRoot, tenantId, args, flags) {
|
|
|
301
302
|
const id = args[1];
|
|
302
303
|
if (!id) {
|
|
303
304
|
printError('Usage: hippo card comment <id> --body "..." [--author <name>]');
|
|
304
|
-
|
|
305
|
+
throw new CliExit(1);
|
|
305
306
|
}
|
|
306
307
|
// Only show and comment look the card up directly; claim/heartbeat/block/review/complete throw from the store instead.
|
|
307
308
|
const card = loadCard(hippoRoot, tenantId, id);
|
|
308
309
|
if (!card) {
|
|
309
310
|
printError(`No card found with id ${id}.`);
|
|
310
|
-
|
|
311
|
+
throw new CliExit(1);
|
|
311
312
|
}
|
|
312
|
-
const body =
|
|
313
|
+
const body = stringFlagOrExit(flags, 'body') ?? '';
|
|
313
314
|
if (!body) {
|
|
314
315
|
printError('Usage: hippo card comment <id> --body "..." [--author <name>]');
|
|
315
|
-
|
|
316
|
+
throw new CliExit(1);
|
|
316
317
|
}
|
|
317
|
-
const author =
|
|
318
|
+
const author = stringFlagOrExit(flags, 'author') || 'cli';
|
|
318
319
|
const comment = addCardComment(hippoRoot, tenantId, id, author, body);
|
|
319
320
|
console.log(`Added comment ${comment.id} to card ${id}`);
|
|
320
321
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** HTTP client wrapper for `hippo serve`: only the routed writes (remember, forget, archive, promote); every other command opens the store directly.
|
|
2
|
+
* Server errors rethrow with the message verbatim so CLI substring matches still work; network errors propagate as the native fetch failure. */
|
|
3
|
+
import type { RememberOpts, RememberResult } from '../api/index.js';
|
|
4
|
+
/** An error the server answered with, not one the transport raised: the refused-connection classifier sniffs message text,
|
|
5
|
+
* and a server message quotes the caller's own id or content back verbatim. */
|
|
6
|
+
export declare class HttpResponseError extends Error {
|
|
7
|
+
readonly status: number;
|
|
8
|
+
constructor(message: string, status: number);
|
|
9
|
+
}
|
|
10
|
+
export declare function remember(serverUrl: string, apiKey: string | undefined, opts: RememberOpts): Promise<RememberResult>;
|
|
11
|
+
export declare function forget(serverUrl: string, apiKey: string | undefined, id: string): Promise<{
|
|
12
|
+
ok: true;
|
|
13
|
+
id: string;
|
|
14
|
+
}>;
|
|
15
|
+
export declare function promote(serverUrl: string, apiKey: string | undefined, id: string): Promise<{
|
|
16
|
+
ok: true;
|
|
17
|
+
sourceId: string;
|
|
18
|
+
globalId: string;
|
|
19
|
+
}>;
|
|
20
|
+
export declare function archiveRaw(serverUrl: string, apiKey: string | undefined, id: string, reason: string): Promise<{
|
|
21
|
+
ok: true;
|
|
22
|
+
archivedAt: string;
|
|
23
|
+
}>;
|
|
24
|
+
/** 'never-sent': connection never opened, safe to replay locally. 'delivery-unknown': the request was on the wire and may have
|
|
25
|
+
* committed, so never replay a write. 'none': not a transport failure. */
|
|
26
|
+
export type TransportFailure = 'none' | 'never-sent' | 'delivery-unknown';
|
|
27
|
+
export declare function classifyTransportFailure(err: Error): TransportFailure;
|
|
28
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1,23 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* directly. Each call returns the same shape that api.ts would.
|
|
7
|
-
*
|
|
8
|
-
* Errors from the server (4xx/5xx) are mapped back into thrown Errors with
|
|
9
|
-
* the server's `error` message preserved verbatim so existing CLI handlers
|
|
10
|
-
* that match on substrings (e.g. "not found", "already superseded") still
|
|
11
|
-
* work unchanged.
|
|
12
|
-
*
|
|
13
|
-
* Network errors (ECONNREFUSED on a stale pidfile, etc.) propagate as the
|
|
14
|
-
* native fetch failure so the caller can detect them and self-heal.
|
|
15
|
-
*/
|
|
16
|
-
import { fetchWithRetry } from './http-retry.js';
|
|
1
|
+
/** HTTP client wrapper for `hippo serve`: only the routed writes (remember, forget, archive, promote); every other command opens the store directly.
|
|
2
|
+
* Server errors rethrow with the message verbatim so CLI substring matches still work; network errors propagate as the native fetch failure. */
|
|
3
|
+
import { fetchWithRetry } from '../util/http-retry.js';
|
|
4
|
+
import { readCappedJson } from '../util/capped-json.js';
|
|
5
|
+
import { isJsonObject, isJsonString } from '../util/json.js';
|
|
17
6
|
/** A write the local server has not answered in this long is stuck; the caller treats it as delivery-unknown. */
|
|
18
7
|
const SERVER_TIMEOUT_MS = 30_000;
|
|
19
8
|
/** Five tries at the server's 1 s Retry-After keeps the roughly 5 s wait the CLI had before the server answered busy with 503. */
|
|
20
9
|
const STORE_BUSY_ATTEMPTS = 5;
|
|
10
|
+
/** Every routed write answers with a few short fields; the pidfile's port may now be another process, so cap what it sends. */
|
|
11
|
+
const MAX_REPLY_BYTES = 1024 * 1024;
|
|
21
12
|
/** The server sets Retry-After on a 503 only for a held write lock (server.ts replyFor); the auth-provider 503 has none. */
|
|
22
13
|
function isStoreBusy(res) {
|
|
23
14
|
return res.status === 503 && res.headers.has('retry-after');
|
|
@@ -34,12 +25,8 @@ function buildHeaders(apiKey, withBody) {
|
|
|
34
25
|
headers['authorization'] = `Bearer ${apiKey}`;
|
|
35
26
|
return headers;
|
|
36
27
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
/** An error the server answered with, not one the transport raised. The
|
|
41
|
-
* refused-connection classifier sniffs message text, and a server message
|
|
42
|
-
* quotes the caller's own id or content back verbatim. */
|
|
28
|
+
/** An error the server answered with, not one the transport raised: the refused-connection classifier sniffs message text,
|
|
29
|
+
* and a server message quotes the caller's own id or content back verbatim. */
|
|
43
30
|
export class HttpResponseError extends Error {
|
|
44
31
|
status;
|
|
45
32
|
constructor(message, status) {
|
|
@@ -48,25 +35,26 @@ export class HttpResponseError extends Error {
|
|
|
48
35
|
this.name = 'HttpResponseError';
|
|
49
36
|
}
|
|
50
37
|
}
|
|
51
|
-
/**
|
|
52
|
-
*
|
|
53
|
-
* intact so cli.ts handlers can match on the same substrings ("not found",
|
|
54
|
-
* "already superseded", "Unknown key_id") whether the call went through
|
|
55
|
-
* api.ts or client.ts.
|
|
56
|
-
*/
|
|
38
|
+
/** Throw an Error carrying the server's message verbatim, so cli.ts handlers can match the same substrings
|
|
39
|
+
* ("not found", "already superseded") as on the direct path. */
|
|
57
40
|
async function throwForStatus(res) {
|
|
58
41
|
let message = `${res.status} ${res.statusText}`;
|
|
59
42
|
try {
|
|
60
|
-
const body = await res
|
|
61
|
-
if (body &&
|
|
43
|
+
const body = await readCappedJson(res, MAX_REPLY_BYTES);
|
|
44
|
+
if (isJsonObject(body) && isJsonString(body.error) && body.error.length > 0) {
|
|
62
45
|
message = body.error;
|
|
63
46
|
}
|
|
64
47
|
}
|
|
65
48
|
catch {
|
|
66
|
-
// body wasn't JSON; fall back to status line.
|
|
49
|
+
// body wasn't JSON or ran past the cap; fall back to status line.
|
|
67
50
|
}
|
|
68
51
|
throw new HttpResponseError(message, res.status);
|
|
69
52
|
}
|
|
53
|
+
/** A 2xx reply's body, read under the cap. */
|
|
54
|
+
async function readReply(res) {
|
|
55
|
+
// SAFETY: the reply comes from hippo's own server, whose route returns this api result as JSON.
|
|
56
|
+
return (await readCappedJson(res, MAX_REPLY_BYTES));
|
|
57
|
+
}
|
|
70
58
|
export async function remember(serverUrl, apiKey, opts) {
|
|
71
59
|
const res = await sendWrite(`${serverUrl}/v1/memories`, {
|
|
72
60
|
method: 'POST',
|
|
@@ -75,8 +63,7 @@ export async function remember(serverUrl, apiKey, opts) {
|
|
|
75
63
|
});
|
|
76
64
|
if (!res.ok)
|
|
77
65
|
await throwForStatus(res);
|
|
78
|
-
|
|
79
|
-
return result;
|
|
66
|
+
return readReply(res);
|
|
80
67
|
}
|
|
81
68
|
export async function forget(serverUrl, apiKey, id) {
|
|
82
69
|
const res = await sendWrite(`${serverUrl}/v1/memories/${encodeURIComponent(id)}`, {
|
|
@@ -85,8 +72,7 @@ export async function forget(serverUrl, apiKey, id) {
|
|
|
85
72
|
});
|
|
86
73
|
if (!res.ok)
|
|
87
74
|
await throwForStatus(res);
|
|
88
|
-
|
|
89
|
-
return result;
|
|
75
|
+
return readReply(res);
|
|
90
76
|
}
|
|
91
77
|
export async function promote(serverUrl, apiKey, id) {
|
|
92
78
|
const res = await sendWrite(`${serverUrl}/v1/memories/${encodeURIComponent(id)}/promote`, {
|
|
@@ -95,8 +81,7 @@ export async function promote(serverUrl, apiKey, id) {
|
|
|
95
81
|
});
|
|
96
82
|
if (!res.ok)
|
|
97
83
|
await throwForStatus(res);
|
|
98
|
-
|
|
99
|
-
return result;
|
|
84
|
+
return readReply(res);
|
|
100
85
|
}
|
|
101
86
|
export async function archiveRaw(serverUrl, apiKey, id, reason) {
|
|
102
87
|
const res = await sendWrite(`${serverUrl}/v1/memories/${encodeURIComponent(id)}/archive`, {
|
|
@@ -106,18 +91,14 @@ export async function archiveRaw(serverUrl, apiKey, id, reason) {
|
|
|
106
91
|
});
|
|
107
92
|
if (!res.ok)
|
|
108
93
|
await throwForStatus(res);
|
|
109
|
-
|
|
110
|
-
return result;
|
|
94
|
+
return readReply(res);
|
|
111
95
|
}
|
|
112
96
|
function hasObjectCause(e) {
|
|
113
|
-
// Node's fs/net system errors (ECONNREFUSED, ECONNRESET) attach the syscall
|
|
114
|
-
//
|
|
115
|
-
// validate the code value before it is used for anything.
|
|
97
|
+
// Node's fs/net system errors (ECONNREFUSED, ECONNRESET) attach the syscall code on a non-null object `cause`;
|
|
98
|
+
// the strict-equality checks below validate it before use.
|
|
116
99
|
return typeof e.cause === 'object' && e.cause !== null;
|
|
117
100
|
}
|
|
118
101
|
export function classifyTransportFailure(err) {
|
|
119
|
-
if (!(err instanceof Error))
|
|
120
|
-
return 'none';
|
|
121
102
|
// The server answered, so the transport worked, whatever the message says.
|
|
122
103
|
if (err instanceof HttpResponseError)
|
|
123
104
|
return 'none';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface CompactResumePayload {
|
|
2
|
+
suppressOutput: boolean;
|
|
3
|
+
payloadSessionId: string | null;
|
|
4
|
+
boundary: boolean;
|
|
5
|
+
}
|
|
6
|
+
/** Fail-closed read of the SessionStart payload: only a manual run or a main-session `source: 'compact'` payload may print. */
|
|
7
|
+
export declare function readCompactResumePayload(stdinText: string | undefined, stdinTimedOut: boolean): CompactResumePayload;
|
|
8
|
+
//# sourceMappingURL=compact-resume-payload.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// The payload gate for `hippo compact-resume`.
|
|
2
|
+
import { isSubagentPayload } from '../store/token-ledger.js';
|
|
3
|
+
import { isJsonObject, isJsonString } from '../util/json.js';
|
|
4
|
+
/** Fail-closed read of the SessionStart payload: only a manual run or a main-session `source: 'compact'` payload may print. */
|
|
5
|
+
export function readCompactResumePayload(stdinText, stdinTimedOut) {
|
|
6
|
+
// An older Claude Code that ignores `matcher: 'compact'` runs this on every SessionStart, so a parsed payload with any other source stays silent.
|
|
7
|
+
const nonEmptyStdin = !!stdinText && stdinText.trim() !== '';
|
|
8
|
+
// Without a payload session_id the cross-restore guard can never fire, so a timed-out empty read must not reach the print path.
|
|
9
|
+
let suppressOutput = stdinTimedOut && !nonEmptyStdin;
|
|
10
|
+
let payloadSessionId = null;
|
|
11
|
+
// A boundary is a manual run or a payload that says it follows a compaction; anything else is not one.
|
|
12
|
+
let boundary = !nonEmptyStdin && !stdinTimedOut;
|
|
13
|
+
if (nonEmptyStdin) {
|
|
14
|
+
let payload = null;
|
|
15
|
+
try {
|
|
16
|
+
payload = JSON.parse(stdinText.trim());
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// Malformed JSON is handled as a null payload by the fail-closed check below.
|
|
20
|
+
payload = null;
|
|
21
|
+
}
|
|
22
|
+
if (!isJsonObject(payload)) {
|
|
23
|
+
// Fail closed on malformed non-empty stdin; only a TTY/no-stdin manual run, which never reaches here, prints.
|
|
24
|
+
suppressOutput = true;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// Fail closed on structurally incomplete payloads too ({}, [], source missing/non-string): a real SessionStart payload always carries source.
|
|
28
|
+
// A sub-agent's payload carries its parent's session id, so the mismatch guard would pass and restore the parent's snapshot into it.
|
|
29
|
+
boundary = payload.source === 'compact';
|
|
30
|
+
if (payload.source !== 'compact' || isSubagentPayload(stdinText)) {
|
|
31
|
+
suppressOutput = true;
|
|
32
|
+
}
|
|
33
|
+
if (isJsonString(payload.session_id)) {
|
|
34
|
+
payloadSessionId = payload.session_id;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return { suppressOutput, payloadSessionId, boundary };
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=compact-resume-payload.js.map
|
package/dist/cli/context.d.ts
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type CommandContext } from './shared.js';
|
|
3
|
-
export declare function cmdContext(hippoRoot: string, args: string[], flags: Record<string, string | boolean | string[]>, stdinText?: string): Promise<void>;
|
|
4
|
-
/** @internal Exported for the render snapshot test; not a stable public API. */
|
|
5
|
-
export declare function printContextMarkdown(items: Array<{
|
|
6
|
-
entry: MemoryEntry;
|
|
7
|
-
score: number;
|
|
8
|
-
tokens: number;
|
|
9
|
-
isGlobal: boolean;
|
|
10
|
-
}>, totalTokens: number, framing?: string, opts?: {
|
|
11
|
-
showStrength?: boolean;
|
|
12
|
-
heading?: string;
|
|
13
|
-
}): void;
|
|
1
|
+
import { type CommandContext } from './flag-values.js';
|
|
14
2
|
export declare function handleContext({ hippoRoot, args, flags }: CommandContext): Promise<void>;
|
|
15
3
|
//# sourceMappingURL=context.d.ts.map
|