hippo-memory 1.71.0 → 1.72.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 +1 -1
- package/dist/agent-memories/apply.d.ts +0 -11
- package/dist/agent-memories/apply.js +6 -21
- package/dist/agent-memories/claude-code.js +1 -1
- package/dist/agent-memories/codex.js +1 -1
- package/dist/agent-memories/copilot.d.ts +1 -3
- package/dist/agent-memories/copilot.js +1 -17
- package/dist/agent-memories/project-folds.d.ts +10 -0
- package/dist/agent-memories/project-folds.js +34 -0
- package/dist/agent-memories/sync.js +8 -6
- package/dist/api/assemble.js +1 -1
- package/dist/api/audit.d.ts +29 -1
- package/dist/api/audit.js +44 -5
- package/dist/api/auth.d.ts +7 -4
- package/dist/api/auth.js +12 -8
- package/dist/api/auto-sleep.d.ts +5 -2
- package/dist/api/auto-sleep.js +7 -3
- package/dist/api/availability.js +2 -3
- package/dist/api/cards.d.ts +42 -0
- package/dist/api/cards.js +52 -0
- package/dist/api/conflicts.d.ts +28 -0
- package/dist/api/conflicts.js +61 -0
- package/dist/api/context-render.js +4 -3
- package/dist/api/context-select.js +9 -11
- package/dist/api/context.js +17 -8
- package/dist/api/continuity.d.ts +47 -0
- package/dist/api/continuity.js +66 -0
- package/dist/api/dormant.js +4 -2
- package/dist/api/drill-down.js +1 -1
- package/dist/api/embeddings.d.ts +17 -0
- package/dist/api/embeddings.js +28 -0
- package/dist/api/error-reply.d.ts +8 -0
- package/dist/api/error-reply.js +21 -0
- package/dist/api/forget.d.ts +6 -2
- package/dist/api/forget.js +18 -7
- package/dist/api/goals.d.ts +1 -1
- package/dist/api/goals.js +5 -9
- package/dist/api/index.d.ts +4 -2
- package/dist/api/index.js +4 -2
- package/dist/api/instruction-detect.js +5 -1
- package/dist/api/learn.d.ts +4 -0
- package/dist/api/learn.js +53 -27
- package/dist/api/ledger-db.d.ts +2 -6
- package/dist/api/ledger-db.js +4 -36
- package/dist/api/memories.d.ts +19 -1
- package/dist/api/memories.js +39 -0
- package/dist/api/objects.d.ts +1 -1
- package/dist/api/outcome.js +1 -1
- package/dist/api/pilot-arm.d.ts +1 -11
- package/dist/api/pilot-arm.js +5 -45
- package/dist/api/predictions.d.ts +3 -1
- package/dist/api/predictions.js +6 -0
- package/dist/api/projects.d.ts +21 -0
- package/dist/api/projects.js +24 -0
- package/dist/api/promote.js +1 -1
- package/dist/api/prompt-hook.d.ts +15 -2
- package/dist/api/prompt-hook.js +44 -4
- package/dist/api/recall-cli.d.ts +3 -0
- package/dist/api/recall-cli.js +13 -4
- package/dist/api/recall-core.js +3 -3
- package/dist/api/recall-pipeline.js +6 -7
- package/dist/api/recall-request.js +1 -1
- package/dist/api/recall.d.ts +0 -3
- package/dist/api/recall.js +19 -44
- package/dist/api/remember-local.js +1 -1
- package/dist/api/remember.d.ts +2 -1
- package/dist/api/remember.js +3 -2
- package/dist/api/session-end.d.ts +22 -0
- package/dist/api/session-end.js +101 -0
- package/dist/api/sleep-run.d.ts +1 -1
- package/dist/api/sleep-run.js +13 -9
- package/dist/api/status.d.ts +24 -0
- package/dist/api/status.js +40 -0
- package/dist/api/store-init.d.ts +4 -0
- package/dist/api/store-init.js +9 -0
- package/dist/api/tokens.js +1 -1
- package/dist/api/types.d.ts +2 -0
- package/dist/api/types.js +6 -1
- package/dist/capture/caller-session.d.ts +0 -3
- package/dist/capture/caller-session.js +1 -12
- package/dist/capture/capture-error.d.ts +2 -2
- package/dist/capture/capture-error.js +23 -18
- package/dist/capture/codex-patch.js +3 -1
- package/dist/capture/command.js +36 -95
- package/dist/capture/compact.js +10 -5
- package/dist/capture/compaction-items-caller.js +11 -20
- package/dist/capture/compaction-record.d.ts +7 -93
- package/dist/capture/compaction-record.js +29 -426
- package/dist/capture/compaction-spool.d.ts +4 -2
- package/dist/capture/compaction-spool.js +20 -6
- package/dist/capture/copilot-transcript.d.ts +2 -1
- package/dist/capture/copilot-transcript.js +2 -1
- package/dist/capture/extract.d.ts +5 -2
- package/dist/capture/extract.js +4 -3
- package/dist/capture/failure-caller.d.ts +1 -1
- package/dist/capture/failure-caller.js +21 -16
- package/dist/capture/failure-reading.d.ts +2 -1
- package/dist/capture/failure-reading.js +7 -9
- package/dist/capture/pre-compact-caller.js +5 -4
- package/dist/capture/session-digest.js +4 -3
- package/dist/capture/session-end-caller.js +2 -1
- package/dist/capture/session-worker.js +3 -4
- package/dist/capture/transcript.d.ts +2 -1
- package/dist/capture/transcript.js +6 -3
- package/dist/capture/working-state.d.ts +4 -2
- package/dist/capture/working-state.js +4 -2
- package/dist/cli/audit-prune.d.ts +0 -25
- package/dist/cli/audit-prune.js +1 -27
- package/dist/cli/audit.js +13 -13
- package/dist/cli/auth.d.ts +1 -1
- package/dist/cli/auth.js +12 -13
- package/dist/cli/briefs.d.ts +1 -4
- package/dist/cli/briefs.js +37 -292
- package/dist/cli/card.js +41 -33
- package/dist/cli/client.d.ts +5 -0
- package/dist/cli/client.js +24 -8
- package/dist/cli/compact-resume-payload.js +1 -1
- package/dist/cli/context.d.ts +1 -1
- package/dist/cli/context.js +12 -12
- package/dist/cli/continuity.d.ts +1 -1
- package/dist/cli/continuity.js +36 -39
- package/dist/cli/curate.d.ts +1 -1
- package/dist/cli/curate.js +23 -27
- package/dist/cli/dag.d.ts +1 -1
- package/dist/cli/dag.js +23 -8
- package/dist/cli/decisions.d.ts +0 -2
- package/dist/cli/decisions.js +4 -281
- package/dist/cli/eval.d.ts +1 -1
- package/dist/cli/eval.js +12 -13
- package/dist/cli/explain.d.ts +1 -1
- package/dist/cli/explain.js +21 -25
- package/dist/cli/flag-values.js +16 -6
- package/dist/cli/flags.d.ts +0 -289
- package/dist/cli/flags.js +3 -138
- package/dist/cli/graph.d.ts +3 -0
- package/dist/cli/graph.js +83 -0
- package/dist/cli/hook-runtime.d.ts +3 -5
- package/dist/cli/hook-runtime.js +7 -34
- package/dist/cli/incidents.d.ts +3 -0
- package/dist/cli/incidents.js +112 -0
- package/dist/cli/init.d.ts +1 -1
- package/dist/cli/init.js +28 -19
- package/dist/cli/install-steps.d.ts +2 -1
- package/dist/cli/install-steps.js +11 -3
- package/dist/cli/last-sleep.js +1 -1
- package/dist/cli/lenient-id.d.ts +2 -0
- package/dist/cli/lenient-id.js +13 -0
- package/dist/cli/maintenance.d.ts +3 -3
- package/dist/cli/maintenance.js +29 -30
- package/dist/cli/notes.d.ts +2 -0
- package/dist/cli/notes.js +41 -0
- package/dist/cli/open-browser.d.ts +14 -0
- package/dist/cli/open-browser.js +26 -0
- package/dist/cli/playbooks.d.ts +3 -4
- package/dist/cli/playbooks.js +126 -290
- package/dist/cli/predictions.d.ts +3 -0
- package/dist/cli/predictions.js +175 -0
- package/dist/cli/print.js +2 -1
- package/dist/cli/projects.js +30 -22
- package/dist/cli/quality-repair-once.d.ts +1 -1
- package/dist/cli/quality-repair-once.js +6 -5
- package/dist/cli/recall.js +13 -7
- package/dist/cli/refine-llm.js +17 -17
- package/dist/cli/remember.js +12 -12
- package/dist/cli/scheduler.js +2 -1
- package/dist/cli/serve.js +3 -3
- package/dist/cli/session-hooks.d.ts +1 -1
- package/dist/cli/session-hooks.js +45 -115
- package/dist/cli/setup.d.ts +1 -1
- package/dist/cli/setup.js +17 -10
- package/dist/cli/shared.d.ts +2 -6
- package/dist/cli/shared.js +9 -29
- package/dist/cli/sleep-render.js +6 -3
- package/dist/cli/sleep.js +6 -37
- package/dist/cli/status.d.ts +3 -3
- package/dist/cli/status.js +32 -35
- package/dist/cli/transfer.d.ts +1 -1
- package/dist/cli/transfer.js +33 -31
- package/dist/cli/usage.d.ts +0 -79
- package/dist/cli/usage.js +1 -695
- package/dist/cli/verb-row.d.ts +32 -0
- package/dist/cli/verb-row.js +6 -0
- package/dist/cli/verbs/health.d.ts +27 -0
- package/dist/cli/verbs/health.js +232 -0
- package/dist/cli/verbs/memory.d.ts +16 -0
- package/dist/cli/verbs/memory.js +244 -0
- package/dist/cli/verbs/objects.d.ts +20 -0
- package/dist/cli/verbs/objects.js +254 -0
- package/dist/cli/verbs/sessions.d.ts +31 -0
- package/dist/cli/verbs/sessions.js +312 -0
- package/dist/cli/verbs.d.ts +81 -0
- package/dist/cli/verbs.js +7 -0
- package/dist/cli/versioned-verbs.d.ts +51 -0
- package/dist/cli/versioned-verbs.js +79 -0
- package/dist/cli.d.ts +1 -272
- package/dist/cli.js +23 -313
- package/dist/connectors/dlq.d.ts +39 -3
- package/dist/connectors/dlq.js +37 -3
- package/dist/connectors/github/backfill.js +12 -3
- package/dist/connectors/github/dlq.js +31 -73
- package/dist/connectors/github/ingest.d.ts +2 -6
- package/dist/connectors/github/ingest.js +3 -28
- package/dist/connectors/github/webhook.d.ts +2 -1
- package/dist/connectors/github/webhook.js +33 -2
- package/dist/connectors/ingest.d.ts +10 -0
- package/dist/connectors/ingest.js +28 -0
- package/dist/connectors/slack/dlq.js +49 -71
- package/dist/connectors/slack/ingest.d.ts +2 -6
- package/dist/connectors/slack/ingest.js +2 -27
- package/dist/connectors/slack/webhook.d.ts +2 -1
- package/dist/connectors/slack/webhook.js +2 -1
- package/dist/consolidate/conflicts.js +1 -1
- package/dist/consolidate/dag.js +15 -9
- package/dist/consolidate/dedupe.d.ts +7 -0
- package/dist/consolidate/dedupe.js +5 -3
- package/dist/consolidate/llm-passes.js +45 -19
- package/dist/consolidate/memory-value.js +2 -1
- package/dist/consolidate/merge.js +2 -2
- package/dist/consolidate/physics-pass.d.ts +6 -1
- package/dist/consolidate/physics-pass.js +26 -6
- package/dist/consolidate/replay.js +11 -4
- package/dist/consolidate/sleep.js +8 -5
- package/dist/consolidate/traces.js +3 -3
- package/dist/core/ablation.d.ts +10 -0
- package/dist/core/ablation.js +12 -0
- package/dist/{sharing/scope.d.ts → core/active-scope.d.ts} +1 -1
- package/dist/{sharing/scope.js → core/active-scope.js} +1 -1
- package/dist/core/ambient.d.ts +4 -0
- package/dist/core/ambient.js +39 -18
- package/dist/core/api-errors.d.ts +16 -0
- package/dist/core/api-errors.js +20 -0
- package/dist/core/card.js +3 -1
- package/dist/core/compaction-timing.d.ts +7 -0
- package/dist/core/compaction-timing.js +9 -0
- package/dist/core/config.d.ts +1 -1
- package/dist/core/config.js +7 -2
- package/dist/core/cosine.d.ts +3 -0
- package/dist/core/cosine.js +19 -0
- package/dist/{store → core}/markdown.d.ts +1 -1
- package/dist/{store → core}/markdown.js +2 -2
- package/dist/core/memory-audit.d.ts +17 -0
- package/dist/core/memory-audit.js +54 -0
- package/dist/core/memory.d.ts +10 -4
- package/dist/core/memory.js +25 -18
- package/dist/{consolidate → core}/merged-row.d.ts +1 -1
- package/dist/{consolidate → core}/merged-row.js +1 -1
- package/dist/core/physics.js +6 -16
- package/dist/core/prediction.d.ts +3 -0
- package/dist/core/prediction.js +6 -0
- package/dist/core/project-identity.d.ts +3 -0
- package/dist/core/project-identity.js +10 -1
- package/dist/{store → core}/recall-scope.d.ts +1 -10
- package/dist/{store → core}/recall-scope.js +2 -19
- package/dist/db/busy.d.ts +2 -7
- package/dist/db/busy.js +21 -26
- package/dist/db/connect.d.ts +0 -1
- package/dist/db/connect.js +5 -6
- package/dist/db/index.d.ts +3 -3
- package/dist/db/index.js +3 -3
- package/dist/db/migrations/index.d.ts +1 -1
- package/dist/db/migrations/index.js +3 -1
- package/dist/db/migrations/v55.d.ts +3 -0
- package/dist/db/migrations/v55.js +17 -0
- package/dist/db/open.d.ts +0 -2
- package/dist/db/open.js +6 -10
- package/dist/db/physics-state.js +3 -3
- package/dist/db/tables.d.ts +2 -0
- package/dist/db/tables.js +6 -2
- package/dist/db/vector-store.js +17 -4
- package/dist/db/wal-checkpointer.js +2 -1
- package/dist/doctor.js +11 -8
- package/dist/embeddings/local.d.ts +62 -0
- package/dist/embeddings/local.js +146 -0
- package/dist/{store/embeddings → embeddings}/provider.d.ts +5 -2
- package/dist/{store/embeddings → embeddings}/provider.js +18 -15
- package/dist/embeddings/transformers.d.ts +26 -0
- package/dist/embeddings/transformers.js +89 -0
- package/dist/entry/session-text.d.ts +1 -1
- package/dist/entry/session-text.js +1 -1
- package/dist/eval/eval-suite.js +17 -11
- package/dist/eval/eval.js +1 -1
- package/dist/eval/judgment.js +11 -4
- package/dist/graph/extract.js +3 -3
- package/dist/graph/recall.js +1 -1
- package/dist/graph/view.js +13 -5
- package/dist/graph/write.d.ts +1 -1
- package/dist/graph/write.js +9 -9
- package/dist/hooks/codex-session.js +3 -2
- package/dist/hooks/codex-wrapper.js +2 -1
- package/dist/hooks/json-hooks.js +4 -2
- package/dist/hooks/opencode.js +8 -5
- package/dist/hooks/shared.d.ts +0 -6
- package/dist/hooks/shared.js +4 -15
- package/dist/importers/core.js +1 -1
- package/dist/importers/sources.js +5 -4
- package/dist/importers/vault.js +7 -5
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -2
- package/dist/learn/autolearn.d.ts +10 -2
- package/dist/learn/autolearn.js +32 -12
- package/dist/learn/churn-git.js +13 -4
- package/dist/learn/extract.d.ts +3 -2
- package/dist/learn/extract.js +6 -4
- package/dist/learn/forward-claim-detector.js +4 -2
- package/dist/learn/invalidation.js +10 -6
- package/dist/mcp/admin-tools.d.ts +2 -2
- package/dist/mcp/admin-tools.js +27 -48
- package/dist/mcp/format.js +3 -2
- package/dist/mcp/framing.d.ts +1 -0
- package/dist/mcp/framing.js +1 -1
- package/dist/mcp/memory-tools.js +3 -1
- package/dist/mcp/protocol.d.ts +11 -7
- package/dist/mcp/protocol.js +25 -12
- package/dist/mcp/recall-tools.js +12 -9
- package/dist/mcp/request.js +2 -1
- package/dist/mcp/stdio.js +24 -8
- package/dist/mcp/tool-args.js +2 -1
- package/dist/mcp/tools.js +44 -21
- package/dist/objects/customer-notes.d.ts +2 -2
- package/dist/objects/decisions.d.ts +2 -2
- package/dist/objects/descriptor.d.ts +1 -1
- package/dist/objects/incidents.d.ts +2 -2
- package/dist/objects/lifecycle.d.ts +1 -1
- package/dist/objects/lifecycle.js +2 -1
- package/dist/objects/policies.d.ts +2 -2
- package/dist/objects/policies.js +2 -1
- package/dist/objects/processes.d.ts +2 -2
- package/dist/objects/project-briefs.d.ts +2 -2
- package/dist/objects/project-briefs.js +2 -3
- package/dist/objects/skills.d.ts +2 -2
- package/dist/postinstall.js +1 -1
- package/dist/rerankers/clef.js +3 -6
- package/dist/rerankers/cross-encoder.d.ts +31 -2
- package/dist/rerankers/cross-encoder.js +63 -97
- package/dist/rerankers/index.js +5 -4
- package/dist/rerankers/jev.js +2 -4
- package/dist/rerankers/outage-warning.d.ts +3 -1
- package/dist/rerankers/outage-warning.js +5 -3
- package/dist/search/bm25-search.js +1 -1
- package/dist/search/boosts.js +1 -1
- package/dist/search/embed-memories.d.ts +9 -0
- package/dist/search/embed-memories.js +377 -0
- package/dist/search/goal-boost.d.ts +1 -1
- package/dist/search/goal-boost.js +6 -3
- package/dist/search/hybrid.d.ts +9 -2
- package/dist/search/hybrid.js +9 -4
- package/dist/search/physics-search.d.ts +6 -3
- package/dist/search/physics-search.js +22 -15
- package/dist/search/rerank.js +1 -1
- package/dist/search/vector.d.ts +8 -6
- package/dist/search/vector.js +10 -13
- package/dist/server/auth.d.ts +2 -0
- package/dist/server/auth.js +17 -7
- package/dist/server/boot.js +7 -66
- package/dist/server/client-ip.d.ts +0 -2
- package/dist/server/client-ip.js +3 -2
- package/dist/server/deadline.d.ts +0 -2
- package/dist/server/deadline.js +1 -7
- package/dist/server/defaults.d.ts +1 -0
- package/dist/server/defaults.js +1 -0
- package/dist/server/mcp-http.js +16 -11
- package/dist/server/request.js +7 -2
- package/dist/server/route-checks.d.ts +7 -0
- package/dist/server/route-checks.js +42 -0
- package/dist/server/route-table.d.ts +9 -8
- package/dist/server/route-table.js +127 -132
- package/dist/server/routes/admin.d.ts +8 -8
- package/dist/server/routes/admin.js +13 -21
- package/dist/server/routes/customer-notes.d.ts +6 -6
- package/dist/server/routes/customer-notes.js +1 -2
- package/dist/server/routes/decisions.d.ts +6 -6
- package/dist/server/routes/decisions.js +2 -4
- package/dist/server/routes/incidents.d.ts +6 -6
- package/dist/server/routes/incidents.js +2 -5
- package/dist/server/routes/memories.d.ts +9 -9
- package/dist/server/routes/memories.js +15 -38
- package/dist/server/routes/object-routes.d.ts +6 -6
- package/dist/server/routes/object-routes.js +4 -7
- package/dist/server/routes/policies.d.ts +7 -7
- package/dist/server/routes/policies.js +2 -4
- package/dist/server/routes/predictions.d.ts +6 -6
- package/dist/server/routes/predictions.js +9 -13
- package/dist/server/routes/processes.d.ts +6 -6
- package/dist/server/routes/processes.js +1 -2
- package/dist/server/routes/project-briefs.d.ts +7 -7
- package/dist/server/routes/project-briefs.js +2 -4
- package/dist/server/routes/recall.d.ts +5 -5
- package/dist/server/routes/recall.js +6 -10
- package/dist/server/routes/skills.d.ts +7 -7
- package/dist/server/routes/skills.js +2 -4
- package/dist/server/server-detect.d.ts +7 -1
- package/dist/server/server-detect.js +36 -11
- package/dist/server/sleep-child.js +26 -7
- package/dist/server/sleep-offload.d.ts +11 -5
- package/dist/server/sleep-offload.js +17 -11
- package/dist/server/types.d.ts +22 -10
- package/dist/server/validation.d.ts +1 -2
- package/dist/server/validation.js +6 -11
- package/dist/server.d.ts +5 -4
- package/dist/server.js +5 -4
- package/dist/sharing/global-store.js +2 -2
- package/dist/sharing/global-sync.js +38 -45
- package/dist/sharing/project-merge.d.ts +7 -14
- package/dist/sharing/project-merge.js +57 -121
- package/dist/sharing/search-both.js +1 -1
- package/dist/sharing/share.d.ts +2 -0
- package/dist/sharing/share.js +37 -34
- package/dist/store/ambient.js +5 -6
- package/dist/store/audit-event.d.ts +1 -1
- package/dist/store/audit.d.ts +0 -16
- package/dist/store/audit.js +4 -55
- package/dist/store/auth.d.ts +4 -2
- package/dist/store/auth.js +7 -3
- package/dist/store/candidates.d.ts +3 -2
- package/dist/store/candidates.js +42 -23
- package/dist/store/capture-write.d.ts +17 -0
- package/dist/store/capture-write.js +35 -0
- package/dist/store/cards.js +1 -1
- package/dist/store/compaction-caller.d.ts +18 -0
- package/dist/store/compaction-caller.js +29 -0
- package/dist/store/compactions-record.d.ts +115 -0
- package/dist/store/compactions-record.js +417 -0
- package/dist/store/compactions.js +6 -4
- package/dist/store/conflicts.js +7 -4
- package/dist/store/connectors/dlq.d.ts +10 -0
- package/dist/store/connectors/dlq.js +32 -0
- package/dist/store/connectors/github.d.ts +7 -9
- package/dist/store/connectors/github.js +30 -53
- package/dist/store/connectors/slack.d.ts +2 -11
- package/dist/store/connectors/slack.js +18 -47
- package/dist/store/dashboard-reads.js +7 -6
- package/dist/store/delete-and-batch.d.ts +6 -0
- package/dist/store/delete-and-batch.js +36 -3
- package/dist/store/delivery-recorder.d.ts +10 -3
- package/dist/store/delivery-recorder.js +12 -5
- package/dist/store/descendant-page.js +6 -3
- package/dist/store/dormant.d.ts +1 -1
- package/dist/store/dormant.js +3 -1
- package/dist/store/embeddings/index.d.ts +2 -12
- package/dist/store/embeddings/index.js +5 -374
- package/dist/store/entry-reads.d.ts +13 -4
- package/dist/store/entry-reads.js +47 -11
- package/dist/store/entry-writes.d.ts +5 -5
- package/dist/store/entry-writes.js +32 -12
- package/dist/store/failure-log-at.d.ts +8 -0
- package/dist/store/failure-log-at.js +16 -0
- package/dist/store/failure-log.d.ts +2 -2
- package/dist/store/failure-log.js +5 -3
- package/dist/{trust → store}/gated-write.d.ts +3 -1
- package/dist/{trust → store}/gated-write.js +7 -5
- package/dist/store/goals.js +20 -18
- package/dist/store/graph-reads.js +4 -2
- package/dist/store/graph-writes.d.ts +6 -6
- package/dist/store/graph-writes.js +48 -71
- package/dist/store/handoffs.d.ts +1 -1
- package/dist/store/handoffs.js +6 -6
- package/dist/store/index-and-stats.js +2 -2
- package/dist/store/key-writes.js +1 -1
- package/dist/store/ledger-turn.d.ts +9 -0
- package/dist/store/ledger-turn.js +38 -0
- package/dist/store/mirrors.js +10 -6
- package/dist/store/open.d.ts +0 -4
- package/dist/store/open.js +40 -53
- package/dist/store/pilot-arm.d.ts +12 -0
- package/dist/store/pilot-arm.js +42 -0
- package/dist/store/port.d.ts +9 -3
- package/dist/store/port.js +8 -0
- package/dist/store/predictions.d.ts +1 -2
- package/dist/store/predictions.js +3 -6
- package/dist/store/project-tags.d.ts +62 -0
- package/dist/store/project-tags.js +67 -0
- package/dist/store/quarantine.js +2 -1
- package/dist/store/recall-trace.d.ts +2 -0
- package/dist/store/recall-trace.js +18 -2
- package/dist/store/rejected-values.js +2 -1
- package/dist/store/rejection-probe.d.ts +4 -0
- package/dist/store/rejection-probe.js +19 -0
- package/dist/store/rejection.d.ts +0 -17
- package/dist/store/rejection.js +1 -21
- package/dist/store/rule-sql.d.ts +9 -0
- package/dist/store/rule-sql.js +21 -2
- package/dist/store/search-rows.js +9 -4
- package/dist/store/sessions.js +4 -2
- package/dist/store/set-aside.d.ts +14 -0
- package/dist/store/set-aside.js +23 -0
- package/dist/store/sqlite/busy.d.ts +3 -0
- package/dist/store/sqlite/busy.js +8 -0
- package/dist/store/sqlite/connector-events-group.js +4 -7
- package/dist/store/sqlite/connector-writes-group.js +3 -3
- package/dist/store/sqlite/entry-writes-group.js +2 -2
- package/dist/store/sqlite/error-codec.js +4 -3
- package/dist/store/sqlite/executor.js +10 -4
- package/dist/store/sqlite/graph-reads-group.js +1 -1
- package/dist/store/sqlite/held-connection.d.ts +9 -0
- package/dist/store/sqlite/held-connection.js +41 -0
- package/dist/store/sqlite/object-rows.d.ts +1 -1
- package/dist/store/sqlite/objects-group.d.ts +1 -1
- package/dist/store/sqlite/objects-group.js +1 -1
- package/dist/store/sqlite/store.js +14 -12
- package/dist/store/summaries.d.ts +3 -3
- package/dist/store/summaries.js +5 -4
- package/dist/store/token-ledger.d.ts +0 -7
- package/dist/store/token-ledger.js +0 -35
- package/dist/store/vector-index.js +3 -2
- package/dist/support-bundle.js +2 -3
- package/dist/trust/reject-flow.js +2 -2
- package/dist/util/agent-homes.d.ts +15 -0
- package/dist/util/agent-homes.js +34 -0
- package/dist/util/anthropic-messages.d.ts +3 -0
- package/dist/util/anthropic-messages.js +22 -5
- package/dist/util/chunked.d.ts +3 -0
- package/dist/util/chunked.js +10 -0
- package/dist/util/ellipsize.d.ts +3 -0
- package/dist/util/ellipsize.js +5 -0
- package/dist/util/env.d.ts +2 -1
- package/dist/util/env.js +2 -1
- package/dist/util/format.d.ts +3 -0
- package/dist/util/format.js +6 -0
- package/dist/util/hook-payload.d.ts +8 -0
- package/dist/util/hook-payload.js +37 -0
- package/dist/util/http-retry.d.ts +6 -0
- package/dist/util/http-retry.js +43 -5
- package/dist/util/http-util.d.ts +0 -8
- package/dist/util/http-util.js +10 -21
- package/dist/util/limits.d.ts +7 -0
- package/dist/util/limits.js +14 -0
- package/dist/util/log.d.ts +4 -0
- package/dist/util/log.js +9 -0
- package/dist/util/request-scope.d.ts +3 -1
- package/dist/util/request-scope.js +11 -6
- package/dist/util/secret-detect.js +6 -1
- package/dist/util/sqlite-blocked.d.ts +2 -0
- package/dist/util/sqlite-blocked.js +5 -0
- package/dist/util/stream-tee.d.ts +3 -0
- package/dist/util/stream-tee.js +35 -0
- package/dist/util/time.d.ts +4 -0
- package/dist/util/time.js +4 -0
- package/dist/util/version.d.ts +1 -1
- package/dist/util/version.js +1 -1
- package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
- package/extensions/openclaw-plugin/package.json +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -2
- package/dist/store/embeddings/local.d.ts +0 -15
- package/dist/store/embeddings/local.js +0 -175
- /package/dist/{cli → api}/correction-latency.d.ts +0 -0
- /package/dist/{cli → api}/correction-latency.js +0 -0
- /package/dist/{cli → api}/provenance-coverage.d.ts +0 -0
- /package/dist/{cli → api}/provenance-coverage.js +0 -0
- /package/dist/{store → core}/object-types.d.ts +0 -0
- /package/dist/{store → core}/object-types.js +0 -0
- /package/dist/{capture → util}/compaction-items.d.ts +0 -0
- /package/dist/{capture → util}/compaction-items.js +0 -0
- /package/dist/{store → util}/yaml.d.ts +0 -0
- /package/dist/{store → util}/yaml.js +0 -0
|
@@ -1,108 +1,53 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';
|
|
2
|
-
import { pathToFileURL } from 'node:url';
|
|
3
1
|
import { createOutageWarning } from './outage-warning.js';
|
|
4
2
|
import { compareScoresDesc } from '../core/compare.js';
|
|
5
|
-
import {
|
|
3
|
+
import { createModelLoads, importTransformers, MODEL_LOAD_POLICY } from '../embeddings/transformers.js';
|
|
4
|
+
import { errorFields, errorMessage, log } from '../util/log.js';
|
|
6
5
|
const DEFAULT_CROSS_ENCODER_TOP_K = 50;
|
|
7
6
|
const MODEL_NAME = 'Xenova/ms-marco-MiniLM-L-6-v2';
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// import.meta.resolve is missing under some module runners (vitest's
|
|
19
|
-
// included); fall through to the require-based resolve there.
|
|
20
|
-
try {
|
|
21
|
-
return pathToFileURL(_require.resolve(name)).href;
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
// Try the legacy fallback only when the preferred package is not installed.
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
async function loadTransformersModule() {
|
|
31
|
-
// Import one backend only. Loading both native ONNX runtimes in one process
|
|
32
|
-
// can abort during finalization; Hugging Face is the maintained default.
|
|
33
|
-
const url = resolveTransformersPackage();
|
|
34
|
-
if (!url)
|
|
35
|
-
return null;
|
|
36
|
-
try {
|
|
37
|
-
const mod = await import(/* @vite-ignore */ url);
|
|
38
|
-
const tok = mod.AutoTokenizer ?? mod.default?.AutoTokenizer;
|
|
39
|
-
const seq = mod.AutoModelForSequenceClassification ?? mod.default?.AutoModelForSequenceClassification;
|
|
40
|
-
return tok && seq ? { AutoTokenizer: tok, AutoModelForSequenceClassification: seq } : null;
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
log.debug(`cross-encoder: transformers import failed: ${errorMessage(err)}`);
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
7
|
+
async function importModelClasses(importModule) {
|
|
8
|
+
const imported = await importModule();
|
|
9
|
+
if (!imported)
|
|
10
|
+
throw new Error('no Transformers.js package is installed');
|
|
11
|
+
const { name, mod } = imported;
|
|
12
|
+
const tok = mod.AutoTokenizer ?? mod.default?.AutoTokenizer;
|
|
13
|
+
const seq = mod.AutoModelForSequenceClassification ?? mod.default?.AutoModelForSequenceClassification;
|
|
14
|
+
if (!tok || !seq)
|
|
15
|
+
throw new Error(`${name} exports no AutoTokenizer or AutoModelForSequenceClassification`);
|
|
16
|
+
return { AutoTokenizer: tok, AutoModelForSequenceClassification: seq };
|
|
46
17
|
}
|
|
47
|
-
let pipelineLoading = null;
|
|
48
|
-
const outage = createOutageWarning('cross-encoder', 'falling back to identity ordering');
|
|
49
18
|
// NOT the text-classification pipeline: this is a num_labels=1 regression head and that pipeline softmaxes a length-1 logit vector (always 1.0).
|
|
50
19
|
// Read the logit, then squash it.
|
|
51
|
-
async function buildPipeline() {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
throw new Error('cross-encoder returned a non-finite score');
|
|
72
|
-
return score;
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
catch (err) {
|
|
76
|
-
log.debug(`cross-encoder: model load failed: ${errorMessage(err)}`);
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
20
|
+
async function buildPipeline(importModule) {
|
|
21
|
+
const mod = await importModelClasses(importModule);
|
|
22
|
+
const [tokenizer, model] = await Promise.all([
|
|
23
|
+
mod.AutoTokenizer.from_pretrained(MODEL_NAME),
|
|
24
|
+
mod.AutoModelForSequenceClassification.from_pretrained(MODEL_NAME),
|
|
25
|
+
]);
|
|
26
|
+
return async (query, candidate) => {
|
|
27
|
+
const inputs = await tokenizer(query, {
|
|
28
|
+
text_pair: candidate,
|
|
29
|
+
padding: true,
|
|
30
|
+
truncation: true,
|
|
31
|
+
});
|
|
32
|
+
const { logits } = await model(inputs);
|
|
33
|
+
const score = 1 / (1 + Math.exp(-Number(logits.data[0])));
|
|
34
|
+
// NaN would make the sort comparator a no-op; throwing hands this
|
|
35
|
+
// candidate to the per-candidate fallback instead.
|
|
36
|
+
if (!Number.isFinite(score))
|
|
37
|
+
throw new Error('cross-encoder returned a non-finite score');
|
|
38
|
+
return score;
|
|
39
|
+
};
|
|
79
40
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
});
|
|
88
|
-
return pipelineLoading;
|
|
41
|
+
/** The head in its input order, scored as it came. */
|
|
42
|
+
function identityOrder(head) {
|
|
43
|
+
return head.map((r, i) => ({
|
|
44
|
+
...r,
|
|
45
|
+
rerankScore: r.score,
|
|
46
|
+
preRerankRank: r.preRerankRank ?? i + 1,
|
|
47
|
+
postRerankRank: i + 1,
|
|
48
|
+
}));
|
|
89
49
|
}
|
|
90
|
-
|
|
91
|
-
export const crossEncoderReranker = async (query, results, options) => {
|
|
92
|
-
const topK = options?.topK ?? DEFAULT_CROSS_ENCODER_TOP_K;
|
|
93
|
-
const head = results.slice(0, topK);
|
|
94
|
-
const pipe = await loadPipeline();
|
|
95
|
-
if (!pipe) {
|
|
96
|
-
// A silent identity fallback otherwise reads as a working reranker.
|
|
97
|
-
outage.failed('no Transformers.js backend, or model fetch blocked');
|
|
98
|
-
return head.map((r, i) => ({
|
|
99
|
-
...r,
|
|
100
|
-
rerankScore: r.score,
|
|
101
|
-
preRerankRank: r.preRerankRank ?? i + 1,
|
|
102
|
-
postRerankRank: i + 1,
|
|
103
|
-
}));
|
|
104
|
-
}
|
|
105
|
-
outage.answered();
|
|
50
|
+
async function scoreHead(pipe, query, head) {
|
|
106
51
|
const scored = await Promise.all(head.map(async (r, i) => {
|
|
107
52
|
let ceScore;
|
|
108
53
|
try {
|
|
@@ -125,5 +70,26 @@ export const crossEncoderReranker = async (query, results, options) => {
|
|
|
125
70
|
scored.sort((a, b) => compareScoresDesc(a.rerankScore, b.rerankScore));
|
|
126
71
|
scored.forEach((r, i) => (r.postRerankRank = i + 1));
|
|
127
72
|
return scored;
|
|
128
|
-
}
|
|
73
|
+
}
|
|
74
|
+
/** Track 2 reranker: MS-MARCO MiniLM cross-encoder, identity fallback if the model will not load. Each instance owns its model and outage warning. */
|
|
75
|
+
export function createCrossEncoderReranker(importModule = importTransformers) {
|
|
76
|
+
const outage = createOutageWarning('cross-encoder', 'falling back to identity ordering');
|
|
77
|
+
// The outage warning already says each failure, at most once per window, so the loads report nothing themselves.
|
|
78
|
+
const pipelines = createModelLoads(MODEL_LOAD_POLICY);
|
|
79
|
+
return async (query, results, options) => {
|
|
80
|
+
const head = results.slice(0, options?.topK ?? DEFAULT_CROSS_ENCODER_TOP_K);
|
|
81
|
+
let pipe;
|
|
82
|
+
try {
|
|
83
|
+
// One shared load per backoff window: two first calls fetch the model once, and a failure is not fetched again on every recall.
|
|
84
|
+
pipe = await pipelines.load(MODEL_NAME, () => buildPipeline(importModule));
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
// A silent identity fallback otherwise reads as a working reranker.
|
|
88
|
+
outage.failed(errorMessage(err), errorFields(err));
|
|
89
|
+
return identityOrder(head);
|
|
90
|
+
}
|
|
91
|
+
outage.answered();
|
|
92
|
+
return scoreHead(pipe, query, head);
|
|
93
|
+
};
|
|
94
|
+
}
|
|
129
95
|
//# sourceMappingURL=cross-encoder.js.map
|
package/dist/rerankers/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { createClefReranker } from './clef.js';
|
|
2
|
-
import {
|
|
2
|
+
import { createCrossEncoderReranker } from './cross-encoder.js';
|
|
3
3
|
import { createJevReranker } from './jev.js';
|
|
4
4
|
import { createLlmReranker } from './llm.js';
|
|
5
|
-
// Each
|
|
5
|
+
// Each reranker is built once here, so its outage warning lasts the process; jev falls back to the same cross-encoder, so one model loads.
|
|
6
|
+
const crossEncoder = createCrossEncoderReranker();
|
|
6
7
|
const REGISTRY = {
|
|
7
8
|
clef: createClefReranker('clef'),
|
|
8
9
|
'clef-flash': createClefReranker('clef-flash'),
|
|
9
|
-
'cross-encoder':
|
|
10
|
-
jev: createJevReranker(
|
|
10
|
+
'cross-encoder': crossEncoder,
|
|
11
|
+
jev: createJevReranker(crossEncoder),
|
|
11
12
|
llm: createLlmReranker(),
|
|
12
13
|
};
|
|
13
14
|
function isRegisteredRerankerName(name) {
|
package/dist/rerankers/jev.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { truncateWithEllipsis } from '../util/ellipsize.js';
|
|
1
2
|
import { envJevModel, envJevTimeoutMs, envTypesafeApiKey } from '../util/env.js';
|
|
2
3
|
import { redactSecretsStrict } from '../util/secret-detect.js';
|
|
3
4
|
import { createOutageWarning } from './outage-warning.js';
|
|
@@ -15,9 +16,6 @@ const TRUNCATE_CHARS = 1200;
|
|
|
15
16
|
const DEFAULT_MODEL = 'jev-1.13.0';
|
|
16
17
|
// The pool size the eval numbers were measured at.
|
|
17
18
|
export const JEV_DEFAULT_TOP_K = 40;
|
|
18
|
-
function truncate(s, n) {
|
|
19
|
-
return s.length <= n ? s : `${s.slice(0, n)}...`;
|
|
20
|
-
}
|
|
21
19
|
// Number.isFinite rejects a string or null without coercing it, which the
|
|
22
20
|
// declared type cannot promise about a third-party payload.
|
|
23
21
|
function isProbability(v) {
|
|
@@ -40,7 +38,7 @@ function parseScores(body, n) {
|
|
|
40
38
|
/** Redacted query plus numbered, redacted, truncated candidates. Shared with CLEF so both arms see matched input. */
|
|
41
39
|
export function buildRelevanceRequest(query, head) {
|
|
42
40
|
// Strict: this text leaves the machine, so Bearer, Basic-auth and JWT shapes go too.
|
|
43
|
-
const lines = head.map((r, i) => `[${i + 1}] ${
|
|
41
|
+
const lines = head.map((r, i) => `[${i + 1}] ${truncateWithEllipsis(redactSecretsStrict(r.entry.content), TRUNCATE_CHARS)}`);
|
|
44
42
|
const state = `Query: ${redactSecretsStrict(query)}\n\nNumbered candidate memories from an AI coding agent's project store:\n\n${lines.join('\n\n')}`;
|
|
45
43
|
const questions = {};
|
|
46
44
|
for (let i = 1; i <= head.length; i++) {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { type LogFields } from '../util/log.js';
|
|
1
2
|
export interface OutageWarning {
|
|
2
|
-
|
|
3
|
+
/** `fields` carries the error's class and stack onto the warning line. */
|
|
4
|
+
failed(reason: string, fields?: LogFields): void;
|
|
3
5
|
answered(): void;
|
|
4
6
|
}
|
|
5
7
|
/** Warns when `name` starts failing, at most every five minutes while it keeps failing,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// One way for a reranker to report that it stopped working, without a line per recall.
|
|
2
|
+
import { MINUTE_MS } from '../util/time.js';
|
|
2
3
|
import { log } from '../util/log.js';
|
|
3
|
-
const REPEAT_MS = 5 *
|
|
4
|
+
const REPEAT_MS = 5 * MINUTE_MS;
|
|
4
5
|
/** Warns when `name` starts failing, at most every five minutes while it keeps failing,
|
|
5
6
|
* and once when it answers again. `fallback` says what recall does meanwhile. */
|
|
6
7
|
export function createOutageWarning(name, fallback) {
|
|
@@ -8,14 +9,15 @@ export function createOutageWarning(name, fallback) {
|
|
|
8
9
|
let unreported = 0;
|
|
9
10
|
let warnedAt = 0;
|
|
10
11
|
return {
|
|
11
|
-
failed(reason) {
|
|
12
|
+
failed(reason, fields) {
|
|
12
13
|
failures++;
|
|
13
14
|
if (failures > 1 && Date.now() - warnedAt < REPEAT_MS) {
|
|
14
15
|
unreported++;
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
18
|
const skipped = unreported > 0 ? ` ${unreported} more calls failed since the last warning.` : '';
|
|
18
|
-
|
|
19
|
+
const repeat = `While it fails this repeats at most every ${REPEAT_MS / MINUTE_MS} minutes.`;
|
|
20
|
+
log.warn(`${name} reranker unavailable (${reason}); ${fallback}.${skipped} ${repeat}`, fields);
|
|
19
21
|
warnedAt = Date.now();
|
|
20
22
|
unreported = 0;
|
|
21
23
|
},
|
|
@@ -2,7 +2,7 @@ import { estimateTokens } from '../util/token-text.js';
|
|
|
2
2
|
import { tokenize } from '../util/tokenize.js';
|
|
3
3
|
import { evalNow } from '../core/ablation.js';
|
|
4
4
|
import { extractPathTags } from './path-context.js';
|
|
5
|
-
import { detectScope } from '../
|
|
5
|
+
import { detectScope } from '../core/active-scope.js';
|
|
6
6
|
import { compareScoredResults } from '../core/compare.js';
|
|
7
7
|
import { bm25Score, buildCorpus, entryText } from './bm25.js';
|
|
8
8
|
import { currentEntries } from './as-of.js';
|
package/dist/search/boosts.js
CHANGED
|
@@ -2,7 +2,7 @@ import { envSummaryDeboost } from '../util/env.js';
|
|
|
2
2
|
import { calculateStrength, CHURN_STALE_TAG } from '../core/memory.js';
|
|
3
3
|
import { isOutcomeFastAblated, isRecencyAblated, evalRecencyScaleDays } from '../core/ablation.js';
|
|
4
4
|
import { pathBoostMultiplier } from './path-context.js';
|
|
5
|
-
import { scopeMatch } from '../
|
|
5
|
+
import { scopeMatch } from '../core/active-scope.js';
|
|
6
6
|
import { temporalBoost } from './temporal.js';
|
|
7
7
|
import { DAY_MS } from '../util/time.js';
|
|
8
8
|
const CHURN_STALE_RANK_MULTIPLIER = 0.5; // SHORTCUT: untuned; measure on real recall before any default.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MemoryEntry } from '../core/memory.js';
|
|
2
|
+
import { type EmbeddingProvider } from '../embeddings/provider.js';
|
|
3
|
+
import { type HippoStore } from '../store/port.js';
|
|
4
|
+
/** Embed a single memory entry and cache the result in the embedding index; with `store`, through its vectorWrites, never opening hippo.db. */
|
|
5
|
+
export declare function embedMemory(hippoRoot: string, entry: MemoryEntry, model?: string, store?: HippoStore): Promise<void>;
|
|
6
|
+
/** Embeds every entry with no cached vector, prunes vectors of deleted memories, and returns how many it embedded; `provider` defaults to the
|
|
7
|
+
* configured one. With `store`, every tenant's memories with no vector for the provider's model go through its `vectorWrites`, never hippo.db. */
|
|
8
|
+
export declare function embedAll(hippoRoot: string, model?: string, provider?: EmbeddingProvider, store?: HippoStore): Promise<number>;
|
|
9
|
+
//# sourceMappingURL=embed-memories.d.ts.map
|