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/postinstall.js
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { envSkipPostinstall } from './env.js';
|
|
1
|
+
import { envSkipPostinstall } from './util/env.js';
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import * as os from 'node:os';
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import { detectRealCodexPath, isCodexWrapperInstalled, repairCodexWrapperIfInstalled } from './hooks/codex-wrapper.js';
|
|
6
6
|
import { claudeConfigDir } from './hooks/shared.js';
|
|
7
|
+
import { errorMessage, log } from './util/log.js';
|
|
7
8
|
function main() {
|
|
8
9
|
if (envSkipPostinstall())
|
|
9
10
|
return;
|
|
10
11
|
try {
|
|
11
|
-
// Repair-only, for users who opted in (a Codex update can restore the real binary over our shim)
|
|
12
|
-
//
|
|
13
|
-
// hijacking, so first install is `hippo hook install codex` only.
|
|
12
|
+
// Repair-only, for users who opted in (a Codex update can restore the real binary over our shim): swapping the binary from postinstall
|
|
13
|
+
// is a consent violation that supply-chain scanners read as hijacking, so first install is `hippo hook install codex` only.
|
|
14
14
|
repairCodexWrapperIfInstalled();
|
|
15
15
|
}
|
|
16
|
-
catch {
|
|
16
|
+
catch (err) {
|
|
17
17
|
// Never fail package install because auto-integration could not be applied.
|
|
18
|
+
log.debug(`postinstall: codex wrapper not repaired: ${errorMessage(err)}`);
|
|
18
19
|
}
|
|
19
20
|
try {
|
|
20
21
|
printClaudeCodeNudge();
|
|
@@ -29,16 +30,8 @@ function main() {
|
|
|
29
30
|
// Never fail package install because the install hint could not be printed.
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
|
-
/**
|
|
33
|
-
*
|
|
34
|
-
* UserPromptSubmit hook is NOT yet installed, print a short message pointing
|
|
35
|
-
* the user at `hippo init`. No config writes. Silent otherwise.
|
|
36
|
-
*
|
|
37
|
-
* We avoid aggressively auto-patching ~/.claude/settings.json from a package
|
|
38
|
-
* postinstall — that's surprising, breaks the principle of least authority,
|
|
39
|
-
* and trips security scanners. A one-line visible prompt is the friendly
|
|
40
|
-
* middle ground.
|
|
41
|
-
*/
|
|
33
|
+
/** Read-only nudge: if Claude Code is detected and the Hippo UserPromptSubmit hook is not installed, point the user at `hippo init`.
|
|
34
|
+
* It never patches ~/.claude/settings.json from a package postinstall: surprising, against least authority, and trips security scanners. */
|
|
42
35
|
function printClaudeCodeNudge() {
|
|
43
36
|
const claudeDir = claudeConfigDir(os.homedir());
|
|
44
37
|
if (!fs.existsSync(claudeDir))
|
|
@@ -74,12 +67,8 @@ function printClaudeCodeNudge() {
|
|
|
74
67
|
line('To skip this message on future installs: export HIPPO_SKIP_POSTINSTALL=1');
|
|
75
68
|
line('');
|
|
76
69
|
}
|
|
77
|
-
/**
|
|
78
|
-
*
|
|
79
|
-
* wrapper is NOT installed, print the opt-in command. Mirrors the Claude Code
|
|
80
|
-
* nudge above — same least-authority reasoning: we tell the user what to run,
|
|
81
|
-
* we never swap their binary for them.
|
|
82
|
-
*/
|
|
70
|
+
/** Read-only nudge: if the Codex CLI is on PATH and the session-capture wrapper is not installed, print the opt-in command;
|
|
71
|
+
* same least-authority reasoning as the Claude Code nudge, we never swap the user's binary. */
|
|
83
72
|
function printCodexNudge() {
|
|
84
73
|
if (isCodexWrapperInstalled())
|
|
85
74
|
return;
|
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type ForwardClaimMatch } from '../forward-claim-detector.js';
|
|
3
|
-
import {
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
6
|
-
* agent's recall query carries a forward-prediction phrase AND the closest
|
|
7
|
-
* matching prediction class has closed historical data.
|
|
8
|
-
*
|
|
9
|
-
* The agent sees its track record at the moment of forecasting, anchoring
|
|
10
|
-
* on the outside view (Lovallo-Kahneman 2003) rather than the inside-view
|
|
11
|
-
* inside the planning fallacy.
|
|
12
|
-
*/
|
|
1
|
+
import type { AppendAuditOpts } from '../store/audit.js';
|
|
2
|
+
import { type ForwardClaimMatch } from '../learn/forward-claim-detector.js';
|
|
3
|
+
import type { PlanningFallacyEvidence } from '../store/planning-fallacy-evidence.js';
|
|
4
|
+
/** Surface delivered on `RecallResult.planningFallacyHint` when a recall query carries a forward-prediction phrase and the closest class has closed history,
|
|
5
|
+
* so the agent sees its own track record at the moment of forecasting. */
|
|
13
6
|
export interface PlanningFallacyHint {
|
|
14
7
|
classTag: string;
|
|
15
8
|
/** Verbatim PredictionBaserate.summary, e.g.
|
|
@@ -17,131 +10,43 @@ export interface PlanningFallacyHint {
|
|
|
17
10
|
baserateSummary: string;
|
|
18
11
|
/** Discriminator vs hypothetical future manual-override hints. */
|
|
19
12
|
source: 'j3.2-auto';
|
|
20
|
-
/** The regex match snippet that triggered detection
|
|
21
|
-
* see WHY the hint appeared and self-correct if detection misfires
|
|
22
|
-
* (e.g. "I wasn't predicting; ignore"). */
|
|
13
|
+
/** The regex match snippet that triggered detection, so the agent sees WHY the hint appeared and can self-correct if detection misfired. */
|
|
23
14
|
detectedPhrase: string;
|
|
24
15
|
nClosed: number;
|
|
25
16
|
/** Null only when every closed-row had estimate_value=0 (ratio undefined). */
|
|
26
17
|
meanRatio: number | null;
|
|
27
18
|
}
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
* PlanningFallacyHint baserate was returned. Silence was the most common
|
|
31
|
-
* real-world failure: a natural-language query carries a
|
|
32
|
-
* forward-claim phrase but its non-stopword tokens don't overlap with
|
|
33
|
-
* any prediction class tag, so hippo emitted nothing despite
|
|
34
|
-
* the regex match. The watching variant surfaces the detection event
|
|
35
|
-
* + a one-line suggestion so the agent can either re-tag the prediction
|
|
36
|
-
* or pass the suggestion through to the user.
|
|
37
|
-
*/
|
|
19
|
+
/** "Watching" variant emitted when the forward-claim regex matched but no baserate hint was returned (no prediction class tag overlaps the query's tokens).
|
|
20
|
+
* It surfaces the detection plus a one-line suggestion so the agent can re-tag the prediction or pass the suggestion to the user. */
|
|
38
21
|
export interface PlanningFallacyWatching {
|
|
39
22
|
/** The forward-claim phrase the detector matched (verbatim regex match snippet). */
|
|
40
23
|
detectedPhrase: string;
|
|
41
|
-
/** Why hippo
|
|
42
|
-
*
|
|
43
|
-
* - 'tiebreak': >=2 classes tied at the same best score (silent on ambiguity). */
|
|
24
|
+
/** Why hippo could not produce a baserate hint despite the match: 'no_class_match' (no class scored >=1 on token overlap)
|
|
25
|
+
* or 'tiebreak' (>=2 classes tied at the best score; silent on ambiguity). */
|
|
44
26
|
reason: 'no_class_match' | 'tiebreak';
|
|
45
27
|
/** One-line agent-facing suggestion for how the user can give hippo
|
|
46
28
|
* enough signal to produce a baserate next time. */
|
|
47
29
|
suggestion: string;
|
|
48
30
|
}
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
* `computePlanningFallacyOutput`. Carries EITHER `hint` (baserate
|
|
52
|
-
* available) OR `watching` (regex fired, no baserate), or NEITHER (mode=off,
|
|
53
|
-
* no queryText, no regex match, or nClosed=0 silent path). Never both.
|
|
54
|
-
*/
|
|
31
|
+
/** What `decidePlanningFallacy` hands to recall: EITHER `hint` (baserate available) OR `watching` (regex fired, no baserate), or NEITHER (mode=off,
|
|
32
|
+
* no queryText, no regex match, or nClosed=0). Never both. */
|
|
55
33
|
export interface PlanningFallacyOutput {
|
|
56
34
|
hint?: PlanningFallacyHint;
|
|
57
35
|
watching?: PlanningFallacyWatching;
|
|
58
36
|
}
|
|
59
37
|
export type AutodebiasMode = 'off' | 'regex';
|
|
60
38
|
export interface ComputePlanningFallacyHintOpts {
|
|
61
|
-
/** Override env
|
|
62
|
-
*
|
|
63
|
-
* reload). 'off' short-circuits to null BEFORE the regex gate so the
|
|
64
|
-
* AUTODEBIAS=off path pays zero work. */
|
|
39
|
+
/** Override env; undefined reads process.env.HIPPO_AUTODEBIAS per call (so tests can toggle it).
|
|
40
|
+
* 'off' short-circuits to null before the regex gate. */
|
|
65
41
|
mode?: AutodebiasMode;
|
|
66
|
-
/** Actor for any audit emissions. Defaults to 'recall' (caller didn't
|
|
67
|
-
* specify). MUST thread through to the inner computePredictionBaserate
|
|
68
|
-
* call (passed as its `actor` arg) so MCP/HTTP-originated auto-hints
|
|
69
|
-
* carry the right attribution instead of the 'cli' default. */
|
|
70
|
-
actor?: string;
|
|
71
|
-
}
|
|
72
|
-
export interface ClassResolution {
|
|
73
|
-
classTag: string | null;
|
|
74
|
-
/** True when ≥2 classes tied at the best overlap score AND best ≥ 1.
|
|
75
|
-
* Caller emits `recall_autodebias_hint_tiebreak` audit and returns
|
|
76
|
-
* null hint (silent — prevents the "show wrong class half the time"
|
|
77
|
-
* failure mode the alphabetical-tiebreak alternative would create). */
|
|
78
|
-
tiebreak: boolean;
|
|
79
|
-
}
|
|
80
|
-
/** The prediction class a forward claim resolves to, and that class's closed-prediction stats when one resolved. */
|
|
81
|
-
export interface PlanningFallacyEvidence extends ClassResolution {
|
|
82
|
-
readonly baserate: PredictionBaserate | null;
|
|
83
42
|
}
|
|
84
43
|
/** The output a claim earns from its evidence, and the audit row that records the decision when there is one. */
|
|
85
44
|
export interface PlanningFallacyDecision {
|
|
86
45
|
output: PlanningFallacyOutput;
|
|
87
46
|
audit?: AppendAuditOpts;
|
|
88
47
|
}
|
|
89
|
-
/**
|
|
90
|
-
* Resolve a query-token set to a unique best-matching class_tag for the
|
|
91
|
-
* tenant. Scores by lower-cased token overlap; requires best score ≥ 1
|
|
92
|
-
* AND strictly greater than the 2nd-best score.
|
|
93
|
-
*
|
|
94
|
-
* Indexed via idx_predictions_tenant_class (db.ts:1015) → O(log n) seek
|
|
95
|
-
* plus a small DISTINCT scan over the per-tenant class-tag set.
|
|
96
|
-
*
|
|
97
|
-
* Scope behaviour (deliberate): class_tag selection is TENANT-GLOBAL,
|
|
98
|
-
* NOT scope-filtered against
|
|
99
|
-
* the recall's opts.scope. The class_tag is an aggregator label across
|
|
100
|
-
* historical predictions in the class, not a per-memory scope-bound
|
|
101
|
-
* property. A no-scope recall CAN surface a class_tag from a privately-
|
|
102
|
-
* scoped prediction's class in PlanningFallacyHint.classTag — by design,
|
|
103
|
-
* because base-rate reasoning needs the full historical sample.
|
|
104
|
-
* Implications:
|
|
105
|
-
* - The hint payload itself carries no memory content (only the aggregate
|
|
106
|
-
* summary string + numeric stats), so memory bodies do not leak.
|
|
107
|
-
* - The class_tag NAME is the side-channel. If sensitive labels are a
|
|
108
|
-
* concern, callers should either use opaque class names (e.g. hashes
|
|
109
|
-
* or numeric tokens) or set HIPPO_AUTODEBIAS=off.
|
|
110
|
-
* - tests/api-recall-autodebias.test.ts locks this with an explicit
|
|
111
|
-
* test asserting that scope-set predictions surface via no-scope
|
|
112
|
-
* recalls (so future "fix" attempts that scope-filter trip CI).
|
|
113
|
-
*/
|
|
114
|
-
export declare function resolveClassFromTokens(hippoRoot: string, tenantId: string, queryTokens: readonly string[]): ClassResolution;
|
|
115
|
-
/**
|
|
116
|
-
* Planning-fallacy orchestrator.
|
|
117
|
-
*
|
|
118
|
-
* Composes the forward-claim detector + class resolver + baserate compute,
|
|
119
|
-
* with telemetry-grade audit emission at every decision point (success,
|
|
120
|
-
* no-class-match, tiebreak).
|
|
121
|
-
*
|
|
122
|
-
* Returns `{}` (neither hint nor watching) on:
|
|
123
|
-
* - mode === 'off' (env-disabled; pays only the env read, skips regex)
|
|
124
|
-
* - empty queryText
|
|
125
|
-
* - no forward-claim regex match
|
|
126
|
-
* - resolved class has nClosed=0 (no historical data yet; silent)
|
|
127
|
-
*
|
|
128
|
-
* Returns `{ watching: ... }` on:
|
|
129
|
-
* - resolver returns no class (no overlap ≥ 1; emits no_class_match audit)
|
|
130
|
-
* - resolver returns tiebreak (≥2 classes tied at best; emits tiebreak audit)
|
|
131
|
-
*
|
|
132
|
-
* Returns `{ hint: ... }` on success: calls computePredictionBaserate(...,
|
|
133
|
-
* emitAudit=false) so the predict_baserate audit channel stays scoped to
|
|
134
|
-
* deliberate predict-baserate calls (the orchestrator's own recall_autodebias_hint
|
|
135
|
-
* audit carries n_closed + mean_ratio in metadata so no telemetry is lost),
|
|
136
|
-
* then emits recall_autodebias_hint audit + returns the hint.
|
|
137
|
-
*
|
|
138
|
-
* Latency budget: well under 50ms; a miss pays only the regex.
|
|
139
|
-
*/
|
|
140
|
-
export declare function computePlanningFallacyOutput(hippoRoot: string, tenantId: string, queryText: string, opts?: ComputePlanningFallacyHintOpts): PlanningFallacyOutput;
|
|
141
48
|
/** The forward claim in a recall query; null when HIPPO_AUTODEBIAS=off, the query is empty or no claim matches. */
|
|
142
49
|
export declare function detectPlanningClaim(queryText: string, opts?: ComputePlanningFallacyHintOpts): ForwardClaimMatch | null;
|
|
143
|
-
/** Resolves a claim's tokens to one class and reads its baserate, writing no audit row. */
|
|
144
|
-
export declare function planningFallacyEvidenceAt(hippoRoot: string, tenantId: string, classQueryTokens: readonly string[]): PlanningFallacyEvidence;
|
|
145
50
|
/** The hint, the watching variant or nothing for a claim and its class evidence; reads and writes nothing itself. */
|
|
146
51
|
export declare function decidePlanningFallacy(match: ForwardClaimMatch, evidence: PlanningFallacyEvidence, tenantId: string, actor: string): PlanningFallacyDecision;
|
|
147
52
|
//# sourceMappingURL=planning-fallacy.d.ts.map
|
|
@@ -1,114 +1,6 @@
|
|
|
1
|
-
import { envAutodebiasOff } from '../env.js';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import { detectForwardClaim } from '../forward-claim-detector.js';
|
|
5
|
-
import { computePredictionBaserate } from './store.js';
|
|
6
|
-
/**
|
|
7
|
-
* Resolve a query-token set to a unique best-matching class_tag for the
|
|
8
|
-
* tenant. Scores by lower-cased token overlap; requires best score ≥ 1
|
|
9
|
-
* AND strictly greater than the 2nd-best score.
|
|
10
|
-
*
|
|
11
|
-
* Indexed via idx_predictions_tenant_class (db.ts:1015) → O(log n) seek
|
|
12
|
-
* plus a small DISTINCT scan over the per-tenant class-tag set.
|
|
13
|
-
*
|
|
14
|
-
* Scope behaviour (deliberate): class_tag selection is TENANT-GLOBAL,
|
|
15
|
-
* NOT scope-filtered against
|
|
16
|
-
* the recall's opts.scope. The class_tag is an aggregator label across
|
|
17
|
-
* historical predictions in the class, not a per-memory scope-bound
|
|
18
|
-
* property. A no-scope recall CAN surface a class_tag from a privately-
|
|
19
|
-
* scoped prediction's class in PlanningFallacyHint.classTag — by design,
|
|
20
|
-
* because base-rate reasoning needs the full historical sample.
|
|
21
|
-
* Implications:
|
|
22
|
-
* - The hint payload itself carries no memory content (only the aggregate
|
|
23
|
-
* summary string + numeric stats), so memory bodies do not leak.
|
|
24
|
-
* - The class_tag NAME is the side-channel. If sensitive labels are a
|
|
25
|
-
* concern, callers should either use opaque class names (e.g. hashes
|
|
26
|
-
* or numeric tokens) or set HIPPO_AUTODEBIAS=off.
|
|
27
|
-
* - tests/api-recall-autodebias.test.ts locks this with an explicit
|
|
28
|
-
* test asserting that scope-set predictions surface via no-scope
|
|
29
|
-
* recalls (so future "fix" attempts that scope-filter trip CI).
|
|
30
|
-
*/
|
|
31
|
-
export function resolveClassFromTokens(hippoRoot, tenantId, queryTokens) {
|
|
32
|
-
if (queryTokens.length === 0)
|
|
33
|
-
return { classTag: null, tiebreak: false };
|
|
34
|
-
const db = openHippoDb(hippoRoot);
|
|
35
|
-
try {
|
|
36
|
-
// SAFETY: rows' shape matches the single `class_tag` column named in the SELECT above.
|
|
37
|
-
const rows = db.prepare(`SELECT DISTINCT class_tag FROM predictions WHERE tenant_id = ?`).all(tenantId);
|
|
38
|
-
const querySet = new Set(queryTokens);
|
|
39
|
-
let bestScore = 0;
|
|
40
|
-
let bestClass = null;
|
|
41
|
-
let secondBest = 0;
|
|
42
|
-
for (const { class_tag } of rows) {
|
|
43
|
-
const classTokens = class_tag
|
|
44
|
-
.toLowerCase()
|
|
45
|
-
.split(/[-_\s]+/)
|
|
46
|
-
.filter((t) => t.length >= 3);
|
|
47
|
-
let score = 0;
|
|
48
|
-
for (const t of classTokens)
|
|
49
|
-
if (querySet.has(t))
|
|
50
|
-
score++;
|
|
51
|
-
if (score > bestScore) {
|
|
52
|
-
secondBest = bestScore;
|
|
53
|
-
bestScore = score;
|
|
54
|
-
bestClass = class_tag;
|
|
55
|
-
}
|
|
56
|
-
else if (score === bestScore && score > 0) {
|
|
57
|
-
// Tie at current best — bump secondBest. Do NOT update bestClass
|
|
58
|
-
// (alphabetical tiebreak would pick wrong class on ambiguous query
|
|
59
|
-
// like "migration will take 3 days" between migration-effort vs
|
|
60
|
-
// migration-risk; silent on tie instead).
|
|
61
|
-
secondBest = score;
|
|
62
|
-
}
|
|
63
|
-
else if (score > secondBest) {
|
|
64
|
-
secondBest = score;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (bestScore < 1)
|
|
68
|
-
return { classTag: null, tiebreak: false };
|
|
69
|
-
if (bestScore === secondBest)
|
|
70
|
-
return { classTag: null, tiebreak: true };
|
|
71
|
-
return { classTag: bestClass, tiebreak: false };
|
|
72
|
-
}
|
|
73
|
-
finally {
|
|
74
|
-
closeHippoDb(db);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Planning-fallacy orchestrator.
|
|
79
|
-
*
|
|
80
|
-
* Composes the forward-claim detector + class resolver + baserate compute,
|
|
81
|
-
* with telemetry-grade audit emission at every decision point (success,
|
|
82
|
-
* no-class-match, tiebreak).
|
|
83
|
-
*
|
|
84
|
-
* Returns `{}` (neither hint nor watching) on:
|
|
85
|
-
* - mode === 'off' (env-disabled; pays only the env read, skips regex)
|
|
86
|
-
* - empty queryText
|
|
87
|
-
* - no forward-claim regex match
|
|
88
|
-
* - resolved class has nClosed=0 (no historical data yet; silent)
|
|
89
|
-
*
|
|
90
|
-
* Returns `{ watching: ... }` on:
|
|
91
|
-
* - resolver returns no class (no overlap ≥ 1; emits no_class_match audit)
|
|
92
|
-
* - resolver returns tiebreak (≥2 classes tied at best; emits tiebreak audit)
|
|
93
|
-
*
|
|
94
|
-
* Returns `{ hint: ... }` on success: calls computePredictionBaserate(...,
|
|
95
|
-
* emitAudit=false) so the predict_baserate audit channel stays scoped to
|
|
96
|
-
* deliberate predict-baserate calls (the orchestrator's own recall_autodebias_hint
|
|
97
|
-
* audit carries n_closed + mean_ratio in metadata so no telemetry is lost),
|
|
98
|
-
* then emits recall_autodebias_hint audit + returns the hint.
|
|
99
|
-
*
|
|
100
|
-
* Latency budget: well under 50ms; a miss pays only the regex.
|
|
101
|
-
*/
|
|
102
|
-
export function computePlanningFallacyOutput(hippoRoot, tenantId, queryText, opts = {}) {
|
|
103
|
-
const match = detectPlanningClaim(queryText, opts);
|
|
104
|
-
if (!match)
|
|
105
|
-
return {};
|
|
106
|
-
const actor = opts.actor ?? 'recall';
|
|
107
|
-
const { output, audit } = decidePlanningFallacy(match, planningFallacyEvidenceAt(hippoRoot, tenantId, match.classQueryTokens), tenantId, actor);
|
|
108
|
-
if (audit)
|
|
109
|
-
appendAuditEventOnce(hippoRoot, audit);
|
|
110
|
-
return output;
|
|
111
|
-
}
|
|
1
|
+
import { envAutodebiasOff } from '../util/env.js';
|
|
2
|
+
import { detectForwardClaim } from '../learn/forward-claim-detector.js';
|
|
3
|
+
const TARGET_ID_CHARS = 100;
|
|
112
4
|
/** The forward claim in a recall query; null when HIPPO_AUTODEBIAS=off, the query is empty or no claim matches. */
|
|
113
5
|
export function detectPlanningClaim(queryText, opts = {}) {
|
|
114
6
|
// Env read FIRST so AUTODEBIAS=off pays zero regex cost; read per call so tests can toggle it without a module reload.
|
|
@@ -119,13 +11,6 @@ export function detectPlanningClaim(queryText, opts = {}) {
|
|
|
119
11
|
return null;
|
|
120
12
|
return detectForwardClaim(queryText);
|
|
121
13
|
}
|
|
122
|
-
/** Resolves a claim's tokens to one class and reads its baserate, writing no audit row. */
|
|
123
|
-
export function planningFallacyEvidenceAt(hippoRoot, tenantId, classQueryTokens) {
|
|
124
|
-
const resolution = resolveClassFromTokens(hippoRoot, tenantId, classQueryTokens);
|
|
125
|
-
// emitAudit=false: the recall_autodebias_hint row carries n_closed and mean_ratio, so predict_baserate stays off.
|
|
126
|
-
const baserate = resolution.classTag ? computePredictionBaserate(hippoRoot, tenantId, resolution.classTag, 'recall', false) : null;
|
|
127
|
-
return { ...resolution, baserate };
|
|
128
|
-
}
|
|
129
14
|
/** The hint, the watching variant or nothing for a claim and its class evidence; reads and writes nothing itself. */
|
|
130
15
|
export function decidePlanningFallacy(match, evidence, tenantId, actor) {
|
|
131
16
|
if (evidence.tiebreak) {
|
|
@@ -168,16 +53,6 @@ export function decidePlanningFallacy(match, evidence, tenantId, actor) {
|
|
|
168
53
|
}
|
|
169
54
|
const TIEBREAK_SUGGESTION = 'Multiple prediction classes tied on this query. Refine the query or rename overlapping classes to break the tie.';
|
|
170
55
|
const NO_CLASS_MATCH_SUGGESTION = 'No matching prediction class for this forward-claim. Tag your prediction with `hippo predict --class <name>` to start tracking this class.';
|
|
171
|
-
/** One audit row on its own short-lived connection. */
|
|
172
|
-
function appendAuditEventOnce(hippoRoot, event) {
|
|
173
|
-
const db = openHippoDb(hippoRoot);
|
|
174
|
-
try {
|
|
175
|
-
appendAuditEvent(db, event);
|
|
176
|
-
}
|
|
177
|
-
finally {
|
|
178
|
-
closeHippoDb(db);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
56
|
function watchingWithAudit(tenantId, actor, match, reason, suggestion) {
|
|
182
57
|
return {
|
|
183
58
|
output: {
|
|
@@ -191,7 +66,7 @@ function watchingWithAudit(tenantId, actor, match, reason, suggestion) {
|
|
|
191
66
|
tenantId,
|
|
192
67
|
actor,
|
|
193
68
|
op: reason === 'tiebreak' ? 'recall_autodebias_hint_tiebreak' : 'recall_autodebias_hint_no_class_match',
|
|
194
|
-
targetId: match.phrase.slice(0,
|
|
69
|
+
targetId: match.phrase.slice(0, TARGET_ID_CHARS),
|
|
195
70
|
metadata: { detected_phrase: match.phrase, token_count: match.classQueryTokens.length },
|
|
196
71
|
},
|
|
197
72
|
};
|
package/dist/rerankers/clef.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RerankerFn, RerankProvenance } from './types.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type JsonValue } from '../util/json.js';
|
|
3
3
|
/** The two pretrained CLEF decision models served by Cloudflare Workers AI. */
|
|
4
4
|
export type ClefModel = 'clef-flash' | 'clef';
|
|
5
5
|
/** True when `name` is one of the CLEF reranker names. */
|
|
@@ -19,11 +19,7 @@ interface ClefScores {
|
|
|
19
19
|
export declare function resolveClefRoute(model: ClefModel): ClefRoute;
|
|
20
20
|
/** Unwraps a Workers AI `{ result }` envelope or a bare System One reply and checks model and `c1..cN`; a string is the rejection reason. */
|
|
21
21
|
export declare function parseClefReply(body: JsonValue, n: number, model: ClefModel, requireModel: boolean): ClefScores | string;
|
|
22
|
-
/** A CLEF reranker for one model: Jev's request shape and pool; any failure keeps the native order (never paid Jev)
|
|
22
|
+
/** A CLEF reranker for one model: Jev's request shape and pool; any failure keeps the native order (never paid Jev) and warns. */
|
|
23
23
|
export declare function createClefReranker(model: ClefModel): RerankerFn;
|
|
24
|
-
/** Opt-in CLEF-flash reranker (Cloudflare Workers AI or HIPPO_CLEF_ENDPOINT); off unless named, so defaults stay native. */
|
|
25
|
-
export declare const clefFlashReranker: RerankerFn;
|
|
26
|
-
/** Opt-in CLEF reranker, the larger model. Same transport and fallback as clef-flash. */
|
|
27
|
-
export declare const clefReranker: RerankerFn;
|
|
28
24
|
export {};
|
|
29
25
|
//# sourceMappingURL=clef.d.ts.map
|
package/dist/rerankers/clef.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { envClefEndpoint, envClefEndpointToken, envClefTimeoutMs, envCloudflareAccountId, envCloudflareApiToken } from '../env.js';
|
|
1
|
+
import { envClefEndpoint, envClefEndpointToken, envClefTimeoutMs, envCloudflareAccountId, envCloudflareApiToken } from '../util/env.js';
|
|
2
2
|
import { buildRelevanceRequest, JEV_DEFAULT_TOP_K, rankByScores } from './jev.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { createOutageWarning } from './outage-warning.js';
|
|
4
|
+
import { rerankerPost, RERANKER_MAX_REPLY_BYTES } from './remote.js';
|
|
5
|
+
import { readCappedJson } from '../util/capped-json.js';
|
|
6
|
+
import { isJsonObject } from '../util/json.js';
|
|
7
|
+
import { errorMessage } from '../util/log.js';
|
|
8
|
+
const RAY_ID_MAX_CHARS = 64;
|
|
5
9
|
const CLEF_MODELS = ['clef-flash', 'clef'];
|
|
6
10
|
const DEFAULT_TIMEOUT_MS = 15_000;
|
|
7
11
|
const MAX_TIMEOUT_MS = 120_000;
|
|
8
|
-
// 64 answers fit in a few KB; 1 MiB leaves room for a verbose envelope.
|
|
9
|
-
const MAX_REPLY_BYTES = 1024 * 1024;
|
|
10
12
|
// Workers AI rejects a request with more than 64 questions, one per candidate here.
|
|
11
13
|
const MAX_CANDIDATES = 64;
|
|
12
14
|
const ACCOUNT_ID = /^[0-9a-f]{32}$/i;
|
|
@@ -73,12 +75,12 @@ export function resolveClefRoute(model) {
|
|
|
73
75
|
}
|
|
74
76
|
/** Unwraps a Workers AI `{ result }` envelope or a bare System One reply and checks model and `c1..cN`; a string is the rejection reason. */
|
|
75
77
|
export function parseClefReply(body, n, model, requireModel) {
|
|
76
|
-
if (!
|
|
78
|
+
if (!isJsonObject(body))
|
|
77
79
|
return 'reply is not a JSON object';
|
|
78
80
|
if (body.success === false)
|
|
79
81
|
return 'provider reported failure';
|
|
80
82
|
const reply = body.result === undefined ? body : body.result;
|
|
81
|
-
if (!
|
|
83
|
+
if (!isJsonObject(reply))
|
|
82
84
|
return 'reply has no result object';
|
|
83
85
|
const actual = reply.model;
|
|
84
86
|
if (actual !== undefined && (!isString(actual) || actual.trim() !== model))
|
|
@@ -86,21 +88,21 @@ export function parseClefReply(body, n, model, requireModel) {
|
|
|
86
88
|
if (actual === undefined && requireModel)
|
|
87
89
|
return 'reply does not name its model';
|
|
88
90
|
const answers = reply.answers;
|
|
89
|
-
if (!
|
|
91
|
+
if (!isJsonObject(answers))
|
|
90
92
|
return 'reply has no answers';
|
|
91
93
|
if (Object.keys(answers).length !== n)
|
|
92
94
|
return 'incomplete or out-of-range answers';
|
|
93
95
|
const scores = [];
|
|
94
96
|
for (let i = 1; i <= n; i++) {
|
|
95
97
|
const a = answers[`c${i}`];
|
|
96
|
-
if (!
|
|
98
|
+
if (!isJsonObject(a) || (a.type !== undefined && a.type !== 'noul'))
|
|
97
99
|
return 'incomplete or out-of-range answers';
|
|
98
100
|
const v = a.noul;
|
|
99
101
|
if (!isNumber(v) || v < 0 || v > 1)
|
|
100
102
|
return 'incomplete or out-of-range answers';
|
|
101
103
|
scores.push(v);
|
|
102
104
|
}
|
|
103
|
-
const usage =
|
|
105
|
+
const usage = isJsonObject(reply.usage) ? reply.usage : {};
|
|
104
106
|
return {
|
|
105
107
|
scores,
|
|
106
108
|
actualModel: isString(actual) ? actual.trim() : undefined,
|
|
@@ -108,33 +110,6 @@ export function parseClefReply(body, n, model, requireModel) {
|
|
|
108
110
|
outputTokens: isNumber(usage.output_tokens) ? usage.output_tokens : undefined,
|
|
109
111
|
};
|
|
110
112
|
}
|
|
111
|
-
// The timeout bounds time, not bytes: a hostile endpoint could stream a huge 2xx body into memory.
|
|
112
|
-
async function readCappedJson(resp) {
|
|
113
|
-
if (!resp.body)
|
|
114
|
-
throw new Error('reply has no body');
|
|
115
|
-
const reader = resp.body.getReader();
|
|
116
|
-
const decoder = new TextDecoder();
|
|
117
|
-
let raw = '';
|
|
118
|
-
let received = 0;
|
|
119
|
-
for (;;) {
|
|
120
|
-
const { done, value } = await reader.read();
|
|
121
|
-
if (done)
|
|
122
|
-
break;
|
|
123
|
-
received += value.byteLength;
|
|
124
|
-
if (received > MAX_REPLY_BYTES) {
|
|
125
|
-
await reader.cancel();
|
|
126
|
-
throw new Error(`reply over ${MAX_REPLY_BYTES} bytes`);
|
|
127
|
-
}
|
|
128
|
-
raw += decoder.decode(value, { stream: true });
|
|
129
|
-
}
|
|
130
|
-
raw += decoder.decode();
|
|
131
|
-
try {
|
|
132
|
-
return JSON.parse(raw);
|
|
133
|
-
}
|
|
134
|
-
catch {
|
|
135
|
-
throw new Error('reply is not JSON');
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
113
|
async function requestScores(model, query, head, route) {
|
|
139
114
|
const { state, questions } = buildRelevanceRequest(query, head);
|
|
140
115
|
// Strict parse: parseInt would read "15s" as 15 ms, and Node clamps a delay past 2^31-1 to 1 ms.
|
|
@@ -143,35 +118,18 @@ async function requestScores(model, query, head, route) {
|
|
|
143
118
|
const headers = new Headers({ 'content-type': 'application/json' });
|
|
144
119
|
if (route.token)
|
|
145
120
|
headers.set('authorization', `Bearer ${route.token}`);
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
body: JSON.stringify({ state, model, questions }),
|
|
153
|
-
signal: controller.signal,
|
|
154
|
-
});
|
|
155
|
-
if (!resp.ok) {
|
|
156
|
-
// A third-party header ends up on stderr, so keep printable ASCII only.
|
|
157
|
-
const ray = resp.headers.get('cf-ray')?.replace(/[^\x20-\x7e]/g, '').slice(0, 64);
|
|
158
|
-
await resp.body?.cancel();
|
|
159
|
-
throw new Error(`HTTP ${resp.status}${ray ? `, ray ${ray}` : ''}`);
|
|
160
|
-
}
|
|
161
|
-
const body = await readCappedJson(resp);
|
|
162
|
-
const parsed = parseClefReply(body, head.length, model, route.backend === 'cloudflare');
|
|
163
|
-
if (isRejection(parsed))
|
|
164
|
-
throw new Error(parsed);
|
|
165
|
-
return parsed;
|
|
166
|
-
}
|
|
167
|
-
catch (err) {
|
|
168
|
-
if (err instanceof Error && err.name === 'AbortError')
|
|
169
|
-
throw new Error(`no answer within ${timeoutMs} ms`);
|
|
170
|
-
throw err;
|
|
171
|
-
}
|
|
172
|
-
finally {
|
|
173
|
-
clearTimeout(timer);
|
|
121
|
+
const resp = await rerankerPost(route.url, { headers, body: JSON.stringify({ state, model, questions }) }, timeoutMs);
|
|
122
|
+
if (!resp.ok) {
|
|
123
|
+
// A third-party header ends up on stderr, so keep printable ASCII only.
|
|
124
|
+
const ray = resp.headers.get('cf-ray')?.replace(/[^\x20-\x7e]/g, '').slice(0, RAY_ID_MAX_CHARS);
|
|
125
|
+
await resp.body?.cancel();
|
|
126
|
+
throw new Error(`HTTP ${resp.status}${ray ? `, ray ${ray}` : ''}`);
|
|
174
127
|
}
|
|
128
|
+
const body = await readCappedJson(resp, RERANKER_MAX_REPLY_BYTES);
|
|
129
|
+
const parsed = parseClefReply(body, head.length, model, route.backend === 'cloudflare');
|
|
130
|
+
if (isRejection(parsed))
|
|
131
|
+
throw new Error(parsed);
|
|
132
|
+
return parsed;
|
|
175
133
|
}
|
|
176
134
|
/** The input order, unchanged, with the reason recorded. Never a partial reorder. */
|
|
177
135
|
function nativeOrder(head, provenance) {
|
|
@@ -184,9 +142,9 @@ function nativeOrder(head, provenance) {
|
|
|
184
142
|
rerankProvenance: { ...provenance },
|
|
185
143
|
}));
|
|
186
144
|
}
|
|
187
|
-
/** A CLEF reranker for one model: Jev's request shape and pool; any failure keeps the native order (never paid Jev)
|
|
145
|
+
/** A CLEF reranker for one model: Jev's request shape and pool; any failure keeps the native order (never paid Jev) and warns. */
|
|
188
146
|
export function createClefReranker(model) {
|
|
189
|
-
|
|
147
|
+
const outage = createOutageWarning(model, 'keeping the native order');
|
|
190
148
|
return async (query, results, options) => {
|
|
191
149
|
const head = results.slice(0, options?.topK ?? JEV_DEFAULT_TOP_K);
|
|
192
150
|
if (head.length === 0)
|
|
@@ -198,13 +156,11 @@ export function createClefReranker(model) {
|
|
|
198
156
|
throw new Error(`more than ${MAX_CANDIDATES} candidates`);
|
|
199
157
|
route = resolveClefRoute(model);
|
|
200
158
|
got = await requestScores(model, query, head, route);
|
|
159
|
+
outage.answered();
|
|
201
160
|
}
|
|
202
161
|
catch (err) {
|
|
203
|
-
const reason = err
|
|
204
|
-
|
|
205
|
-
warned = true;
|
|
206
|
-
log.warn(`${model} reranker unavailable (${reason}); keeping the native order. Subsequent calls will not repeat this warning.`);
|
|
207
|
-
}
|
|
162
|
+
const reason = errorMessage(err);
|
|
163
|
+
outage.failed(reason);
|
|
208
164
|
return nativeOrder(head, { backend: 'native', requestedModel: model, fallbackReason: reason });
|
|
209
165
|
}
|
|
210
166
|
const rerankProvenance = {
|
|
@@ -217,8 +173,4 @@ export function createClefReranker(model) {
|
|
|
217
173
|
return rankByScores(head, got.scores).map((r) => ({ ...r, rerankProvenance: { ...rerankProvenance } }));
|
|
218
174
|
};
|
|
219
175
|
}
|
|
220
|
-
/** Opt-in CLEF-flash reranker (Cloudflare Workers AI or HIPPO_CLEF_ENDPOINT); off unless named, so defaults stay native. */
|
|
221
|
-
export const clefFlashReranker = createClefReranker('clef-flash');
|
|
222
|
-
/** Opt-in CLEF reranker, the larger model. Same transport and fallback as clef-flash. */
|
|
223
|
-
export const clefReranker = createClefReranker('clef');
|
|
224
176
|
//# sourceMappingURL=clef.js.map
|
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import type { RerankerFn } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* True if a Transformers.js backend is importable. Note: this does NOT confirm
|
|
4
|
-
* that the model is downloadable from Hugging Face CDN — in sandboxed
|
|
5
|
-
* environments the package may import but the model fetch may be blocked.
|
|
6
|
-
* The reranker silently falls back to identity ordering in that case.
|
|
7
|
-
*/
|
|
8
|
-
export declare function isCrossEncoderAvailable(): Promise<boolean>;
|
|
9
2
|
/** Track 2 reranker: MS-MARCO MiniLM cross-encoder, identity fallback if the model will not load. */
|
|
10
3
|
export declare const crossEncoderReranker: RerankerFn;
|
|
11
4
|
//# sourceMappingURL=cross-encoder.d.ts.map
|