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/transfer.js
CHANGED
|
@@ -1,33 +1,38 @@
|
|
|
1
1
|
// Verbs that move memories in and out: watch, learn, import, export, promote, sync, share and peers.
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import * as fs from 'fs';
|
|
4
|
-
import { calculateStrength, deriveHalfLife, computeSchemaFit } from '../memory.js';
|
|
5
4
|
import { isInitialized } from '../store/open.js';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { loadConfig } from '../config.js';
|
|
12
|
-
import { captureError, runWatched } from '../autolearn.js';
|
|
5
|
+
import { loadAllEntries } from '../store/entry-reads.js';
|
|
6
|
+
import { RejectedValueError } from '../store/rejection.js';
|
|
7
|
+
import { embedAll } from '../store/embeddings/index.js';
|
|
8
|
+
import { loadEmbeddingIndex } from '../store/vector-index.js';
|
|
9
|
+
import { captureError, runWatched } from '../learn/autolearn.js';
|
|
13
10
|
import { currentMachine, importAtSessionEnd, importForStore } from '../agent-memories/sync.js';
|
|
14
11
|
import { detailLines } from '../agent-memories/report.js';
|
|
15
|
-
import { getGlobalRoot, initGlobal
|
|
12
|
+
import { getGlobalRoot, initGlobal } from '../sharing/global-store.js';
|
|
13
|
+
import { shareMemory, listPeers, autoShare, transferScore } from '../sharing/share.js';
|
|
14
|
+
import { syncGlobalToLocal } from '../sharing/global-sync.js';
|
|
16
15
|
import { importChatGPT, importClaude, importCursor, importGenericFile, } from '../importers/sources.js';
|
|
17
16
|
import { importMarkdown } from '../importers/markdown.js';
|
|
18
17
|
import { importVault } from '../importers/vault.js';
|
|
19
|
-
import * as api from '../api.js';
|
|
20
|
-
import
|
|
21
|
-
import
|
|
18
|
+
import * as api from '../api/index.js';
|
|
19
|
+
import { getMemory } from '../api/memories.js';
|
|
20
|
+
import * as client from './client.js';
|
|
21
|
+
import { cliApiContext } from './api-context.js';
|
|
22
22
|
import { printError } from './output.js';
|
|
23
|
-
import {
|
|
24
|
-
|
|
23
|
+
import { errorMessage, log } from '../util/log.js';
|
|
24
|
+
import { requireInit, runViaServerIfAvailable, learnFromRepo } from './shared.js';
|
|
25
|
+
import { fmt } from './print.js';
|
|
26
|
+
import { boolFlag, flagIsTrue, isStringFlag, nonEmptyStringFlag } from './flag-values.js';
|
|
27
|
+
import { CONTENT_PREVIEW_CHARS, DATE_PREFIX_CHARS } from '../util/token-text.js';
|
|
28
|
+
import { CliExit } from './exit.js';
|
|
29
|
+
const STDERR_PREVIEW_CHARS = 80;
|
|
30
|
+
const MAX_ENTRIES_SHOWN = 10;
|
|
25
31
|
// Watch command
|
|
26
|
-
|
|
27
|
-
async function cmdWatch(command, hippoRoot) {
|
|
32
|
+
async function cmdWatch(command, hippoRoot, tenantId) {
|
|
28
33
|
if (!command) {
|
|
29
34
|
printError('Usage: hippo watch "<command>"');
|
|
30
|
-
|
|
35
|
+
throw new CliExit(1);
|
|
31
36
|
}
|
|
32
37
|
const { exitCode, stderr } = await runWatched(command);
|
|
33
38
|
if (exitCode === 0) {
|
|
@@ -37,22 +42,22 @@ async function cmdWatch(command, hippoRoot) {
|
|
|
37
42
|
// Only create memory if hippo is initialized
|
|
38
43
|
if (!isInitialized(hippoRoot)) {
|
|
39
44
|
printError('Command failed but .hippo not initialized. Run `hippo init` to enable auto-learn.');
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
const
|
|
43
|
-
// Compute schema fit against existing memories
|
|
44
|
-
const existingWatch = loadAllEntries(hippoRoot, entry.tenantId);
|
|
45
|
-
const watchFit = computeSchemaFit(entry.content, entry.tags, existingWatch);
|
|
46
|
-
entry.schema_fit = watchFit;
|
|
47
|
-
entry.half_life_days = deriveHalfLife(loadConfig(hippoRoot).defaultHalfLifeDays, entry);
|
|
48
|
-
entry.strength = calculateStrength(entry);
|
|
45
|
+
throw new CliExit(exitCode);
|
|
46
|
+
}
|
|
47
|
+
const failure = captureError(exitCode, stderr, command, tenantId);
|
|
49
48
|
// A rejection-guard refusal of a failed command's output must not crash the watcher:
|
|
50
49
|
// skip with the message below and still exit with the wrapped command's real exit code.
|
|
51
50
|
try {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
api.rememberLocally(cliApiContext(hippoRoot, tenantId), {
|
|
52
|
+
content: failure.content,
|
|
53
|
+
tags: failure.tags,
|
|
54
|
+
layer: failure.layer,
|
|
55
|
+
source: failure.source,
|
|
56
|
+
confidence: failure.confidence,
|
|
57
|
+
// A failure is stored each time it happens: watch has never put it to the salience gate.
|
|
58
|
+
force: true,
|
|
59
|
+
});
|
|
60
|
+
const preview = stderr.trim().slice(0, STDERR_PREVIEW_CHARS);
|
|
56
61
|
printError(`\nHippo learned from failure: "${preview}"`);
|
|
57
62
|
}
|
|
58
63
|
catch (err) {
|
|
@@ -63,21 +68,19 @@ async function cmdWatch(command, hippoRoot) {
|
|
|
63
68
|
throw err;
|
|
64
69
|
}
|
|
65
70
|
}
|
|
66
|
-
|
|
71
|
+
throw new CliExit(exitCode);
|
|
67
72
|
}
|
|
68
|
-
// ---------------------------------------------------------------------------
|
|
69
73
|
// Learn command
|
|
70
|
-
|
|
71
|
-
export function cmdLearn(hippoRoot, flags) {
|
|
74
|
+
export function handleLearn({ hippoRoot, flags }) {
|
|
72
75
|
requireInit(hippoRoot);
|
|
73
76
|
if (!flags['git']) {
|
|
74
77
|
printError('Usage: hippo learn --git [--days <n>] [--repos <paths>]');
|
|
75
|
-
|
|
78
|
+
throw new CliExit(1);
|
|
76
79
|
}
|
|
77
80
|
const days = parseInt(String(flags['days'] ?? '7'), 10);
|
|
78
81
|
console.log(`Scanning git log for the last ${days} days...`);
|
|
79
|
-
const reposFlag = flags
|
|
80
|
-
if (reposFlag
|
|
82
|
+
const reposFlag = nonEmptyStringFlag(flags, 'repos');
|
|
83
|
+
if (reposFlag) {
|
|
81
84
|
const repos = reposFlag.split(',').map((r) => r.trim()).filter(Boolean);
|
|
82
85
|
let totalAdded = 0;
|
|
83
86
|
let totalSkipped = 0;
|
|
@@ -94,16 +97,26 @@ export function cmdLearn(hippoRoot, flags) {
|
|
|
94
97
|
console.log(`Git learn complete: ${added} new lessons added, ${skipped} duplicates skipped.`);
|
|
95
98
|
}
|
|
96
99
|
}
|
|
97
|
-
// ---------------------------------------------------------------------------
|
|
98
100
|
// Import command
|
|
99
|
-
|
|
101
|
+
/** The rows are saved either way; a failed backfill only delays vectors, so it warns with how many wait and the command that finishes them. */
|
|
102
|
+
function warnBackfillFailed(root, embedCommand, err) {
|
|
103
|
+
let waiting;
|
|
104
|
+
try {
|
|
105
|
+
const vectors = loadEmbeddingIndex(root);
|
|
106
|
+
waiting = String(loadAllEntries(root).filter((entry) => !Object.hasOwn(vectors, entry.id)).length);
|
|
107
|
+
}
|
|
108
|
+
catch (countErr) {
|
|
109
|
+
waiting = `an unknown number of (count failed: ${errorMessage(countErr)})`;
|
|
110
|
+
}
|
|
111
|
+
log.warn(`import: embedding backfill failed (${errorMessage(err)}); ${waiting} rows have no vector; run '${embedCommand}' to backfill`);
|
|
112
|
+
}
|
|
100
113
|
function warnRedacted(count) {
|
|
101
114
|
if (count)
|
|
102
115
|
printError(`Warning: secret-shaped text was redacted from ${count} imported ${count === 1 ? 'entry' : 'entries'} before storing`);
|
|
103
116
|
}
|
|
104
|
-
export function
|
|
105
|
-
const useGlobal =
|
|
106
|
-
const dryRun =
|
|
117
|
+
export function handleImport({ hippoRoot, tenantId, args, flags }) {
|
|
118
|
+
const useGlobal = boolFlag(flags, 'global');
|
|
119
|
+
const dryRun = boolFlag(flags, 'dry-run');
|
|
107
120
|
const extraTags = Array.isArray(flags['tag'])
|
|
108
121
|
? flags['tag']
|
|
109
122
|
: flags['tag']
|
|
@@ -124,15 +137,11 @@ export function cmdImport(hippoRoot, args, flags) {
|
|
|
124
137
|
extraTags,
|
|
125
138
|
hippoRoot,
|
|
126
139
|
};
|
|
127
|
-
// Vault import
|
|
128
|
-
//
|
|
129
|
-
// separately from the single-file `importer` function-pointer slot below.
|
|
130
|
-
// It writes through api.remember/archiveRaw which are tenant-scoped, so we
|
|
131
|
-
// resolve the tenant and pass it through. --global is not supported for
|
|
132
|
-
// vault import (the connector raw-archive path is tenant-local).
|
|
140
|
+
// Vault import is a FOLDER importer that dispatches apart from the single-file slot below; it writes through tenant-scoped api calls,
|
|
141
|
+
// so the tenant is resolved and passed through. --global is unsupported (the connector raw-archive path is tenant-local).
|
|
133
142
|
if (flags['vault'])
|
|
134
|
-
return importVaultFolder(hippoRoot, flags, importOptions, useGlobal, dryRun);
|
|
135
|
-
importFromFile(targetRoot, args, flags, importOptions, useGlobal, dryRun);
|
|
143
|
+
return importVaultFolder(hippoRoot, tenantId, flags, importOptions, useGlobal, dryRun);
|
|
144
|
+
importFromFile(targetRoot, args, flags, { importOptions, useGlobal, dryRun });
|
|
136
145
|
}
|
|
137
146
|
// Determine which importer to use based on flag
|
|
138
147
|
function pickImporter(args, flags) {
|
|
@@ -151,27 +160,27 @@ function pickImporter(args, flags) {
|
|
|
151
160
|
return { filePath: args[0], importer: importGenericFile, importerName: 'File' };
|
|
152
161
|
return { filePath: undefined, importer: undefined, importerName: '' };
|
|
153
162
|
}
|
|
154
|
-
function importFromFile(targetRoot, args, flags,
|
|
163
|
+
function importFromFile(targetRoot, args, flags, options) {
|
|
164
|
+
const { importOptions, useGlobal, dryRun } = options;
|
|
155
165
|
const { filePath, importer, importerName } = pickImporter(args, flags);
|
|
156
166
|
if (!filePath || !importer) {
|
|
157
167
|
printError('Usage: hippo import <--chatgpt|--claude|--cursor|--file|--markdown|--vault> <path>, or hippo import --agents [--dry-run]');
|
|
158
|
-
|
|
168
|
+
throw new CliExit(1);
|
|
159
169
|
}
|
|
160
170
|
if (!fs.existsSync(filePath)) {
|
|
161
171
|
printError(`File not found: ${filePath}`);
|
|
162
|
-
|
|
172
|
+
throw new CliExit(1);
|
|
163
173
|
}
|
|
164
174
|
const result = importer(filePath, importOptions);
|
|
165
|
-
// Batch
|
|
166
|
-
//
|
|
167
|
-
// floating promise is deliberate: libuv keeps the process alive until it
|
|
168
|
-
// settles, so it is not dropped on process exit; `hippo embed --global` (or
|
|
169
|
-
// a local `hippo embed`) is the backstop if it does get interrupted. Do not
|
|
170
|
-
// "fix" this by awaiting it, that would block the CLI on model load/backfill.
|
|
175
|
+
// Batch-embed newly imported rows in one pass (the importers' writeEntry sites don't embed). The floating promise is deliberate: libuv keeps the process
|
|
176
|
+
// alive until it settles; do not await it, that would block the CLI on model load. `hippo embed` is the backstop if interrupted.
|
|
171
177
|
if (!dryRun && result.imported >= 1) {
|
|
172
|
-
void embedAll(targetRoot).catch(() =>
|
|
178
|
+
void embedAll(targetRoot).catch((err) => warnBackfillFailed(targetRoot, useGlobal ? 'hippo embed --global' : 'hippo embed', err));
|
|
173
179
|
}
|
|
174
180
|
const storeLabel = useGlobal ? `global (${getGlobalRoot()})` : targetRoot;
|
|
181
|
+
printFileImportSummary(result, importerName, filePath, storeLabel, dryRun);
|
|
182
|
+
}
|
|
183
|
+
function printFileImportSummary(result, importerName, filePath, storeLabel, dryRun) {
|
|
175
184
|
console.log(`\nImport ${importerName}: ${filePath}`);
|
|
176
185
|
console.log(` Source entries found: ${result.total}`);
|
|
177
186
|
console.log(` Imported: ${result.imported}`);
|
|
@@ -184,8 +193,8 @@ function importFromFile(targetRoot, args, flags, importOptions, useGlobal, dryRu
|
|
|
184
193
|
console.log('\n (dry run - nothing written)');
|
|
185
194
|
if (result.entries.length > 0) {
|
|
186
195
|
console.log('\n Would import:');
|
|
187
|
-
for (const e of result.entries.slice(0,
|
|
188
|
-
console.log(` - ${e.content.slice(0,
|
|
196
|
+
for (const e of result.entries.slice(0, MAX_ENTRIES_SHOWN)) {
|
|
197
|
+
console.log(` - ${e.content.slice(0, CONTENT_PREVIEW_CHARS)}`);
|
|
189
198
|
}
|
|
190
199
|
if (result.entries.length > 10) {
|
|
191
200
|
console.log(` ... and ${result.entries.length - 10} more`);
|
|
@@ -207,37 +216,41 @@ function importAgentMemories(hippoRoot, useGlobal, dryRun) {
|
|
|
207
216
|
for (const warning of report.warnings)
|
|
208
217
|
printError(`hippo: agent memories: ${warning}`);
|
|
209
218
|
}
|
|
210
|
-
function importVaultFolder(hippoRoot, flags, importOptions, useGlobal, dryRun) {
|
|
219
|
+
function importVaultFolder(hippoRoot, tenantId, flags, importOptions, useGlobal, dryRun) {
|
|
211
220
|
const folderPath = String(flags['vault']);
|
|
221
|
+
checkVaultArgs(folderPath, flags, useGlobal);
|
|
222
|
+
const vaultOptions = {
|
|
223
|
+
...importOptions,
|
|
224
|
+
tenantId,
|
|
225
|
+
name: flags['name'] ? String(flags['name']) : undefined,
|
|
226
|
+
scope: flags['scope'] ? String(flags['scope']) : undefined,
|
|
227
|
+
};
|
|
228
|
+
const vaultResult = importVault(folderPath, vaultOptions);
|
|
229
|
+
printVaultSummary(vaultResult, folderPath, hippoRoot, dryRun);
|
|
230
|
+
}
|
|
231
|
+
function checkVaultArgs(folderPath, flags, useGlobal) {
|
|
212
232
|
if (!fs.existsSync(folderPath) || !fs.statSync(folderPath).isDirectory()) {
|
|
213
233
|
printError(`Vault folder not found (or not a directory): ${folderPath}`);
|
|
214
|
-
|
|
234
|
+
throw new CliExit(1);
|
|
215
235
|
}
|
|
216
236
|
if (useGlobal) {
|
|
217
237
|
printError('hippo import --vault does not support --global (raw rows are tenant-local).');
|
|
218
|
-
|
|
238
|
+
throw new CliExit(1);
|
|
219
239
|
}
|
|
220
|
-
if (
|
|
240
|
+
if (!isStringFlag(flags['name']) || !flags['name'].trim()) {
|
|
221
241
|
// --name keys the destructive source-deletion sync; a folder-basename default lets same-basename vaults clobber
|
|
222
242
|
// each other, and a valueless `--name` (boolean true) would silently import under vault:true:*.
|
|
223
243
|
printError('hippo import --vault requires --name <vault> (a non-empty identity key for source-deletion sync).');
|
|
224
|
-
|
|
244
|
+
throw new CliExit(1);
|
|
225
245
|
}
|
|
226
|
-
if (flags['scope'] !== undefined && (
|
|
227
|
-
// Same valueless-flag trap: a bare `--scope` must not become scope "true".
|
|
228
|
-
//
|
|
229
|
-
// is NOT treated as private by recall and importVault rejects it.
|
|
246
|
+
if (flags['scope'] !== undefined && (!isStringFlag(flags['scope']) || !flags['scope'].trim())) {
|
|
247
|
+
// Same valueless-flag trap: a bare `--scope` must not become scope "true". The example uses the source-prefixed private form,
|
|
248
|
+
// since a bare `private` scope is not treated as private by recall and importVault rejects it.
|
|
230
249
|
printError('hippo import --vault: --scope requires a value (e.g. --scope vault:private:notes).');
|
|
231
|
-
|
|
250
|
+
throw new CliExit(1);
|
|
232
251
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
...importOptions,
|
|
236
|
-
tenantId,
|
|
237
|
-
name: flags['name'] ? String(flags['name']) : undefined,
|
|
238
|
-
scope: flags['scope'] ? String(flags['scope']) : undefined,
|
|
239
|
-
};
|
|
240
|
-
const vaultResult = importVault(folderPath, vaultOptions);
|
|
252
|
+
}
|
|
253
|
+
function printVaultSummary(vaultResult, folderPath, hippoRoot, dryRun) {
|
|
241
254
|
console.log(`\nImport Vault: ${folderPath}${dryRun ? ' (dry run - no writes)' : ''}`);
|
|
242
255
|
console.log(` Notes found: ${vaultResult.total}`);
|
|
243
256
|
console.log(` ${dryRun ? 'Would import: ' : 'Imported: '}${vaultResult.imported}`);
|
|
@@ -248,41 +261,32 @@ function importVaultFolder(hippoRoot, flags, importOptions, useGlobal, dryRun) {
|
|
|
248
261
|
warnRedacted(vaultResult.redacted);
|
|
249
262
|
console.log(` ${dryRun ? 'Would archive: ' : 'Archived (removed): '}${vaultResult.archived ?? 0}`);
|
|
250
263
|
console.log(` Store: ${hippoRoot}`);
|
|
251
|
-
// Batch producer, same contract as the single-file import above: vault rows
|
|
252
|
-
//
|
|
253
|
-
// Floating promise is deliberate; see the comment at the single-file site.
|
|
264
|
+
// Batch producer, same contract as the single-file import above: vault rows write through api.remember (which never embeds), so backfill them here.
|
|
265
|
+
// The floating promise is deliberate; see the single-file site.
|
|
254
266
|
if (!dryRun && vaultResult.imported >= 1) {
|
|
255
|
-
void embedAll(hippoRoot).catch(() =>
|
|
267
|
+
void embedAll(hippoRoot).catch((err) => warnBackfillFailed(hippoRoot, 'hippo embed', err));
|
|
256
268
|
}
|
|
257
269
|
}
|
|
258
|
-
// ---------------------------------------------------------------------------
|
|
259
270
|
// Promote command
|
|
260
|
-
|
|
261
|
-
function cmdPromote(hippoRoot, id) {
|
|
271
|
+
function cmdPromote(hippoRoot, tenantId, id) {
|
|
262
272
|
requireInit(hippoRoot);
|
|
263
273
|
if (!id) {
|
|
264
274
|
printError('Usage: hippo promote <id>');
|
|
265
|
-
|
|
275
|
+
throw new CliExit(1);
|
|
266
276
|
}
|
|
267
|
-
const ctx =
|
|
268
|
-
hippoRoot,
|
|
269
|
-
tenantId: resolveTenantId({}),
|
|
270
|
-
actor: api.adminActor('cli'),
|
|
271
|
-
};
|
|
277
|
+
const ctx = cliApiContext(hippoRoot, tenantId);
|
|
272
278
|
try {
|
|
273
279
|
const result = api.promote(ctx, id);
|
|
274
280
|
console.log(`Promoted ${id} to global store as ${result.globalId}`);
|
|
275
281
|
console.log(` Global store: ${getGlobalRoot()}`);
|
|
276
282
|
}
|
|
277
283
|
catch (err) {
|
|
278
|
-
printError(`Failed to promote: ${err
|
|
279
|
-
|
|
284
|
+
printError(`Failed to promote: ${errorMessage(err)}`);
|
|
285
|
+
throw new CliExit(1);
|
|
280
286
|
}
|
|
281
287
|
}
|
|
282
|
-
// ---------------------------------------------------------------------------
|
|
283
288
|
// Sync command
|
|
284
|
-
|
|
285
|
-
export function cmdSync(hippoRoot, flags = {}) {
|
|
289
|
+
export function handleSync({ hippoRoot, flags }) {
|
|
286
290
|
requireInit(hippoRoot);
|
|
287
291
|
const globalRoot = getGlobalRoot();
|
|
288
292
|
if (!isInitialized(globalRoot)) {
|
|
@@ -290,19 +294,19 @@ export function cmdSync(hippoRoot, flags = {}) {
|
|
|
290
294
|
return;
|
|
291
295
|
}
|
|
292
296
|
// v39: other-project rows are skipped by default; secrets always are.
|
|
293
|
-
const includeCrossProject = flags
|
|
297
|
+
const includeCrossProject = flagIsTrue(flags, 'cross-project');
|
|
294
298
|
const count = syncGlobalToLocal(hippoRoot, globalRoot, { includeCrossProject });
|
|
295
299
|
console.log(`Synced ${count} global memories into local project.${includeCrossProject ? '' : ' (other-project rows skipped; use --cross-project to include them)'}`);
|
|
296
300
|
}
|
|
297
|
-
export async function handleWatch({ hippoRoot, args }) {
|
|
301
|
+
export async function handleWatch({ hippoRoot, tenantId, args }) {
|
|
298
302
|
const watchCmd = args.join(' ').trim();
|
|
299
|
-
await cmdWatch(watchCmd, hippoRoot);
|
|
303
|
+
await cmdWatch(watchCmd, hippoRoot, tenantId);
|
|
300
304
|
}
|
|
301
|
-
export async function handlePromote({ hippoRoot, args }) {
|
|
305
|
+
export async function handlePromote({ hippoRoot, tenantId, args }) {
|
|
302
306
|
const id = args[0];
|
|
303
307
|
if (!id) {
|
|
304
308
|
printError('Please provide a memory ID.');
|
|
305
|
-
|
|
309
|
+
throw new CliExit(1);
|
|
306
310
|
}
|
|
307
311
|
const promoted = await runViaServerIfAvailable(hippoRoot, async (info, apiKey) => {
|
|
308
312
|
try {
|
|
@@ -310,22 +314,22 @@ export async function handlePromote({ hippoRoot, args }) {
|
|
|
310
314
|
console.log(`Promoted ${id} to global store as ${result.globalId}`);
|
|
311
315
|
}
|
|
312
316
|
catch (err) {
|
|
313
|
-
printError(`Failed to promote: ${err
|
|
314
|
-
|
|
317
|
+
printError(`Failed to promote: ${errorMessage(err)}`);
|
|
318
|
+
throw new CliExit(1);
|
|
315
319
|
}
|
|
316
320
|
});
|
|
317
321
|
if (promoted)
|
|
318
322
|
return;
|
|
319
|
-
cmdPromote(hippoRoot, id);
|
|
323
|
+
cmdPromote(hippoRoot, tenantId, id);
|
|
320
324
|
}
|
|
321
|
-
export function handleShare({ hippoRoot, args, flags }) {
|
|
325
|
+
export async function handleShare({ hippoRoot, tenantId, args, flags }) {
|
|
322
326
|
const shareId = args[0];
|
|
323
327
|
if (shareId === '--auto' || flags['auto']) {
|
|
324
328
|
// Auto-share mode
|
|
325
329
|
requireInit(hippoRoot);
|
|
326
330
|
const minScore = parseFloat(String(flags['min-score'] ?? '0.6'));
|
|
327
|
-
const dryRun =
|
|
328
|
-
const results = autoShare(hippoRoot, { minScore, dryRun, tenantId
|
|
331
|
+
const dryRun = boolFlag(flags, 'dry-run');
|
|
332
|
+
const results = autoShare(hippoRoot, { minScore, dryRun, tenantId });
|
|
329
333
|
if (results.length === 0) {
|
|
330
334
|
console.log('No memories meet the sharing threshold.');
|
|
331
335
|
}
|
|
@@ -333,7 +337,7 @@ export function handleShare({ hippoRoot, args, flags }) {
|
|
|
333
337
|
console.log(`Would share ${results.length} memories:\n`);
|
|
334
338
|
for (const e of results) {
|
|
335
339
|
const score = transferScore(e);
|
|
336
|
-
console.log(` ${e.id} (transfer=${fmt(score)}) ${e.content.slice(0,
|
|
340
|
+
console.log(` ${e.id} (transfer=${fmt(score)}) ${e.content.slice(0, CONTENT_PREVIEW_CHARS)}...`);
|
|
337
341
|
}
|
|
338
342
|
}
|
|
339
343
|
else {
|
|
@@ -345,15 +349,14 @@ export function handleShare({ hippoRoot, args, flags }) {
|
|
|
345
349
|
}
|
|
346
350
|
else if (shareId) {
|
|
347
351
|
requireInit(hippoRoot);
|
|
348
|
-
const force =
|
|
349
|
-
const tenantId = resolveTenantId({});
|
|
352
|
+
const force = boolFlag(flags, 'force');
|
|
350
353
|
const result = shareMemory(hippoRoot, shareId, { force, tenantId });
|
|
351
354
|
if (result) {
|
|
352
355
|
console.log(`Shared [${result.id}] to global store.`);
|
|
353
356
|
console.log(` Source: ${result.source}`);
|
|
354
357
|
}
|
|
355
358
|
else {
|
|
356
|
-
const entry =
|
|
359
|
+
const entry = await getMemory(cliApiContext(hippoRoot, tenantId), shareId);
|
|
357
360
|
if (entry) {
|
|
358
361
|
const score = transferScore(entry);
|
|
359
362
|
console.log(`Transfer score too low (${fmt(score)}). This memory looks project-specific.`);
|
|
@@ -361,19 +364,19 @@ export function handleShare({ hippoRoot, args, flags }) {
|
|
|
361
364
|
}
|
|
362
365
|
else {
|
|
363
366
|
printError(`Memory not found: ${shareId}`);
|
|
364
|
-
|
|
367
|
+
throw new CliExit(1);
|
|
365
368
|
}
|
|
366
369
|
}
|
|
367
370
|
}
|
|
368
371
|
else {
|
|
369
372
|
printError('Usage: hippo share <memory_id> [--force] or hippo share --auto [--dry-run]');
|
|
370
|
-
|
|
373
|
+
throw new CliExit(1);
|
|
371
374
|
}
|
|
372
375
|
}
|
|
373
|
-
export function handlePeers({ flags }) {
|
|
376
|
+
export function handlePeers({ tenantId, flags }) {
|
|
374
377
|
// Tenant-scoped by default; --all-tenants gives the host-wide view for cross-tenant peer discovery.
|
|
375
|
-
const allTenants = flags
|
|
376
|
-
const tenantScope = allTenants ? undefined :
|
|
378
|
+
const allTenants = flagIsTrue(flags, 'all-tenants');
|
|
379
|
+
const tenantScope = allTenants ? undefined : tenantId;
|
|
377
380
|
const peers = listPeers(undefined, tenantScope);
|
|
378
381
|
if (peers.length === 0) {
|
|
379
382
|
console.log('No peers found. Share memories with: hippo share <id>');
|
|
@@ -382,15 +385,15 @@ export function handlePeers({ flags }) {
|
|
|
382
385
|
const scopeLabel = allTenants ? 'global store (all tenants)' : `global store (tenant "${tenantScope}")`;
|
|
383
386
|
console.log(`${peers.length} project${peers.length === 1 ? '' : 's'} contributing to ${scopeLabel}:\n`);
|
|
384
387
|
for (const p of peers) {
|
|
385
|
-
console.log(` ${p.project.padEnd(25)} ${String(p.count).padStart(4)} memories (latest: ${p.latest.slice(0,
|
|
388
|
+
console.log(` ${p.project.padEnd(25)} ${String(p.count).padStart(4)} memories (latest: ${p.latest.slice(0, DATE_PREFIX_CHARS)})`);
|
|
386
389
|
}
|
|
387
390
|
}
|
|
388
391
|
}
|
|
389
|
-
export function handleExport({ hippoRoot, args, flags }) {
|
|
392
|
+
export function handleExport({ hippoRoot, tenantId, args, flags }) {
|
|
390
393
|
requireInit(hippoRoot);
|
|
391
|
-
const format = flags['format'] || 'json';
|
|
394
|
+
const format = String(flags['format'] || 'json');
|
|
392
395
|
const outputPath = args[0] || null;
|
|
393
|
-
const entries = loadAllEntries(hippoRoot,
|
|
396
|
+
const entries = loadAllEntries(hippoRoot, tenantId);
|
|
394
397
|
let output;
|
|
395
398
|
if (format === 'markdown' || format === 'md') {
|
|
396
399
|
output = entries.map(e => {
|
package/dist/cli/usage.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// Help text for every verb, keyed like the command table in cli.ts; no command logic lives here.
|
|
2
2
|
import { TAIL_MAX_LINES } from '../support-bundle.js';
|
|
3
|
-
import { DEFAULT_LOCAL_BUMP, DEFAULT_RECALL_BUDGET } from '../search
|
|
3
|
+
import { DEFAULT_LOCAL_BUMP, DEFAULT_RECALL_BUDGET } from '../core/search-types.js';
|
|
4
4
|
import { DEFAULT_ASSEMBLE_BUDGET } from '../api/assemble.js';
|
|
5
|
+
import { DEFAULT_SERVER_HOST, DEFAULT_SERVER_PORT } from '../server/defaults.js';
|
|
5
6
|
export function printAuditPruneUsage() {
|
|
6
7
|
console.log('hippo audit prune --older-than <Nd> [--dry-run] [--tenant <t>]');
|
|
7
8
|
console.log(' --older-than <Nd> Delete audit_log rows with ts older than N days (e.g. 90d).');
|
|
@@ -165,7 +166,7 @@ export const VERB_USAGE = {
|
|
|
165
166
|
the goal tag get a 1.5x score boost and results are
|
|
166
167
|
re-sorted. Default off. RESEARCH.md §PFC.dlPFC.
|
|
167
168
|
--session-id <id> Session identifier for dlPFC goal-stack boost.
|
|
168
|
-
Defaults to
|
|
169
|
+
Defaults to $HIPPO_SESSION_ID. When set and the
|
|
169
170
|
(tenant, session) has active goals (see
|
|
170
171
|
'hippo goal push'), recall auto-boosts memories
|
|
171
172
|
whose tags match an active goal name. Boost stacks
|
|
@@ -291,7 +292,9 @@ export const VERB_USAGE = {
|
|
|
291
292
|
auth <sub> Manage API keys (A5 stub auth)
|
|
292
293
|
auth create Mint a new API key (plaintext shown ONCE)
|
|
293
294
|
--label <s> Optional human label
|
|
294
|
-
--role <r> admin | member (default:
|
|
295
|
+
--role <r> admin | member (default: member; member blocked from /v1/sleep)
|
|
296
|
+
--ttl-days <n> Days until the key expires (default: 90, at most 3650)
|
|
297
|
+
--no-expiry Mint a key that never expires
|
|
295
298
|
--tenant <id> Override tenant (defaults to HIPPO_TENANT)
|
|
296
299
|
--json Output as JSON
|
|
297
300
|
--global Operate on the global store
|
|
@@ -662,8 +665,13 @@ export const VERB_USAGE = {
|
|
|
662
665
|
mcp Start MCP server (stdio transport)`],
|
|
663
666
|
serve: [`
|
|
664
667
|
serve Start the HTTP API server for this store (Ctrl+C stops it)
|
|
665
|
-
--port <n> Port to serve on (default: $HIPPO_PORT or
|
|
666
|
-
--host <host> Address to bind (default:
|
|
668
|
+
--port <n> Port to serve on (default: $HIPPO_PORT or ${DEFAULT_SERVER_PORT})
|
|
669
|
+
--host <host> Address to bind (default: ${DEFAULT_SERVER_HOST})
|
|
670
|
+
--tls-cert <file> PEM certificate; serve HTTPS only (or $HIPPO_TLS_CERT)
|
|
671
|
+
--tls-key <file> PEM private key for it; give both (or $HIPPO_TLS_KEY)
|
|
672
|
+
Every request needs an API key (hippo auth create).
|
|
673
|
+
$HIPPO_ALLOW_KEYLESS_LOCAL=1 lets requests from this machine
|
|
674
|
+
in without one; $HIPPO_REQUIRE_AUTH=1 wins over it.`],
|
|
667
675
|
invalidate: [`
|
|
668
676
|
invalidate "<pattern>" Actively weaken memories matching an old pattern
|
|
669
677
|
(content overlap, or a tag EXACTLY equal to the
|