@getrift/rift 0.1.0-beta.21 → 0.1.0-beta.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -3
- package/dist/src/capture/auto-capture.d.ts +105 -4
- package/dist/src/capture/auto-capture.d.ts.map +1 -1
- package/dist/src/capture/auto-capture.js +313 -34
- package/dist/src/capture/auto-capture.js.map +1 -1
- package/dist/src/capture/claude-cli-triage-provider.d.ts +28 -0
- package/dist/src/capture/claude-cli-triage-provider.d.ts.map +1 -0
- package/dist/src/capture/claude-cli-triage-provider.js +88 -0
- package/dist/src/capture/claude-cli-triage-provider.js.map +1 -0
- package/dist/src/capture/codex-cli-triage-provider.d.ts.map +1 -1
- package/dist/src/capture/codex-cli-triage-provider.js +1 -33
- package/dist/src/capture/codex-cli-triage-provider.js.map +1 -1
- package/dist/src/capture/cursor-capture.d.ts +89 -0
- package/dist/src/capture/cursor-capture.d.ts.map +1 -0
- package/dist/src/capture/cursor-capture.js +121 -0
- package/dist/src/capture/cursor-capture.js.map +1 -0
- package/dist/src/capture/observability.d.ts +30 -0
- package/dist/src/capture/observability.d.ts.map +1 -1
- package/dist/src/capture/observability.js +29 -0
- package/dist/src/capture/observability.js.map +1 -1
- package/dist/src/capture/recover-quarantine.d.ts +4 -4
- package/dist/src/capture/sources.d.ts +41 -3
- package/dist/src/capture/sources.d.ts.map +1 -1
- package/dist/src/capture/sources.js +43 -1
- package/dist/src/capture/sources.js.map +1 -1
- package/dist/src/capture/triage-classification.d.ts +69 -0
- package/dist/src/capture/triage-classification.d.ts.map +1 -0
- package/dist/src/capture/triage-classification.js +62 -0
- package/dist/src/capture/triage-classification.js.map +1 -0
- package/dist/src/capture/triage-provider-factory.d.ts +36 -0
- package/dist/src/capture/triage-provider-factory.d.ts.map +1 -0
- package/dist/src/capture/triage-provider-factory.js +55 -0
- package/dist/src/capture/triage-provider-factory.js.map +1 -0
- package/dist/src/capture/triage.d.ts +1 -1
- package/dist/src/capture/triage.d.ts.map +1 -1
- package/dist/src/capture/triage.js +8 -6
- package/dist/src/capture/triage.js.map +1 -1
- package/dist/src/cli/commands/capture.d.ts.map +1 -1
- package/dist/src/cli/commands/capture.js +79 -17
- package/dist/src/cli/commands/capture.js.map +1 -1
- package/dist/src/cli/commands/chunk-backfill.d.ts +13 -0
- package/dist/src/cli/commands/chunk-backfill.d.ts.map +1 -0
- package/dist/src/cli/commands/chunk-backfill.js +157 -0
- package/dist/src/cli/commands/chunk-backfill.js.map +1 -0
- package/dist/src/cli/commands/cursor-probe.d.ts +20 -0
- package/dist/src/cli/commands/cursor-probe.d.ts.map +1 -0
- package/dist/src/cli/commands/cursor-probe.js +162 -0
- package/dist/src/cli/commands/cursor-probe.js.map +1 -0
- package/dist/src/cli/commands/menubar.d.ts +3 -1
- package/dist/src/cli/commands/menubar.d.ts.map +1 -1
- package/dist/src/cli/commands/menubar.js +36 -12
- package/dist/src/cli/commands/menubar.js.map +1 -1
- package/dist/src/cli/commands/onboard.d.ts +22 -2
- package/dist/src/cli/commands/onboard.d.ts.map +1 -1
- package/dist/src/cli/commands/onboard.js +160 -32
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/status.d.ts.map +1 -1
- package/dist/src/cli/commands/status.js +12 -0
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/commands/update.d.ts +34 -1
- package/dist/src/cli/commands/update.d.ts.map +1 -1
- package/dist/src/cli/commands/update.js +166 -1
- package/dist/src/cli/commands/update.js.map +1 -1
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +4 -0
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/postinstall-menubar.d.ts +20 -13
- package/dist/src/cli/postinstall-menubar.d.ts.map +1 -1
- package/dist/src/cli/postinstall-menubar.js +56 -1
- package/dist/src/cli/postinstall-menubar.js.map +1 -1
- package/dist/src/cli/status/friend-header.d.ts +16 -3
- package/dist/src/cli/status/friend-header.d.ts.map +1 -1
- package/dist/src/cli/status/friend-header.js +186 -10
- package/dist/src/cli/status/friend-header.js.map +1 -1
- package/dist/src/cli/status/local-signals.d.ts +42 -4
- package/dist/src/cli/status/local-signals.d.ts.map +1 -1
- package/dist/src/cli/status/local-signals.js +52 -1
- package/dist/src/cli/status/local-signals.js.map +1 -1
- package/dist/src/config/schema.d.ts +220 -14
- package/dist/src/config/schema.d.ts.map +1 -1
- package/dist/src/config/schema.js +82 -7
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/diagnostics/claude-preflight.d.ts +35 -0
- package/dist/src/diagnostics/claude-preflight.d.ts.map +1 -0
- package/dist/src/diagnostics/claude-preflight.js +90 -0
- package/dist/src/diagnostics/claude-preflight.js.map +1 -0
- package/dist/src/diagnostics/codex-preflight.d.ts +1 -1
- package/dist/src/diagnostics/codex-preflight.d.ts.map +1 -1
- package/dist/src/diagnostics/codex-preflight.js +24 -0
- package/dist/src/diagnostics/codex-preflight.js.map +1 -1
- package/dist/src/diagnostics/doctor.d.ts +7 -4
- package/dist/src/diagnostics/doctor.d.ts.map +1 -1
- package/dist/src/diagnostics/doctor.js +70 -11
- package/dist/src/diagnostics/doctor.js.map +1 -1
- package/dist/src/diagnostics/memory-coverage.d.ts +54 -0
- package/dist/src/diagnostics/memory-coverage.d.ts.map +1 -0
- package/dist/src/diagnostics/memory-coverage.js +272 -0
- package/dist/src/diagnostics/memory-coverage.js.map +1 -0
- package/dist/src/diagnostics/notify.d.ts +20 -3
- package/dist/src/diagnostics/notify.d.ts.map +1 -1
- package/dist/src/diagnostics/notify.js +54 -14
- package/dist/src/diagnostics/notify.js.map +1 -1
- package/dist/src/ingestion/chunk-meta.d.ts +85 -0
- package/dist/src/ingestion/chunk-meta.d.ts.map +1 -0
- package/dist/src/ingestion/chunk-meta.js +167 -0
- package/dist/src/ingestion/chunk-meta.js.map +1 -0
- package/dist/src/ingestion/chunk-text.d.ts +39 -0
- package/dist/src/ingestion/chunk-text.d.ts.map +1 -0
- package/dist/src/ingestion/chunk-text.js +114 -0
- package/dist/src/ingestion/chunk-text.js.map +1 -0
- package/dist/src/ingestion/cursor/cursor-store.d.ts +177 -0
- package/dist/src/ingestion/cursor/cursor-store.d.ts.map +1 -0
- package/dist/src/ingestion/cursor/cursor-store.js +243 -0
- package/dist/src/ingestion/cursor/cursor-store.js.map +1 -0
- package/dist/src/ingestion/cursor/enrich-roots.d.ts +16 -0
- package/dist/src/ingestion/cursor/enrich-roots.d.ts.map +1 -0
- package/dist/src/ingestion/cursor/enrich-roots.js +22 -0
- package/dist/src/ingestion/cursor/enrich-roots.js.map +1 -0
- package/dist/src/ingestion/cursor/vscdb-reader.d.ts +32 -0
- package/dist/src/ingestion/cursor/vscdb-reader.d.ts.map +1 -0
- package/dist/src/ingestion/cursor/vscdb-reader.js +113 -0
- package/dist/src/ingestion/cursor/vscdb-reader.js.map +1 -0
- package/dist/src/ingestion/cursor/workspace-root.d.ts +96 -0
- package/dist/src/ingestion/cursor/workspace-root.d.ts.map +1 -0
- package/dist/src/ingestion/cursor/workspace-root.js +187 -0
- package/dist/src/ingestion/cursor/workspace-root.js.map +1 -0
- package/dist/src/ingestion/indexer.d.ts.map +1 -1
- package/dist/src/ingestion/indexer.js +41 -32
- package/dist/src/ingestion/indexer.js.map +1 -1
- package/dist/src/jobs/handlers/compact.d.ts.map +1 -1
- package/dist/src/jobs/handlers/compact.js +9 -4
- package/dist/src/jobs/handlers/compact.js.map +1 -1
- package/dist/src/jobs/handlers/ingest.d.ts.map +1 -1
- package/dist/src/jobs/handlers/ingest.js +60 -30
- package/dist/src/jobs/handlers/ingest.js.map +1 -1
- package/dist/src/jobs/handlers/reconcile.d.ts.map +1 -1
- package/dist/src/jobs/handlers/reconcile.js +128 -45
- package/dist/src/jobs/handlers/reconcile.js.map +1 -1
- package/dist/src/jobs/handlers/save.d.ts.map +1 -1
- package/dist/src/jobs/handlers/save.js +122 -72
- package/dist/src/jobs/handlers/save.js.map +1 -1
- package/dist/src/jobs/types.d.ts +1 -1
- package/dist/src/main.js +27 -16
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp/capture-diagnostics.d.ts +51 -0
- package/dist/src/mcp/capture-diagnostics.d.ts.map +1 -0
- package/dist/src/mcp/capture-diagnostics.js +127 -0
- package/dist/src/mcp/capture-diagnostics.js.map +1 -0
- package/dist/src/mcp/memory-diagnostics.d.ts +6 -0
- package/dist/src/mcp/memory-diagnostics.d.ts.map +1 -0
- package/dist/src/mcp/memory-diagnostics.js +51 -0
- package/dist/src/mcp/memory-diagnostics.js.map +1 -0
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +10 -3
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools/context-pack.d.ts.map +1 -1
- package/dist/src/mcp/tools/context-pack.js +7 -1
- package/dist/src/mcp/tools/context-pack.js.map +1 -1
- package/dist/src/mcp/tools/conversations-search.d.ts +1 -1
- package/dist/src/mcp/tools/conversations-search.d.ts.map +1 -1
- package/dist/src/mcp/tools/conversations-search.js +7 -1
- package/dist/src/mcp/tools/conversations-search.js.map +1 -1
- package/dist/src/mcp/tools/evidence-feedback.d.ts +60 -0
- package/dist/src/mcp/tools/evidence-feedback.d.ts.map +1 -0
- package/dist/src/mcp/tools/evidence-feedback.js +62 -0
- package/dist/src/mcp/tools/evidence-feedback.js.map +1 -0
- package/dist/src/mcp/tools/log-outcome.d.ts +72 -0
- package/dist/src/mcp/tools/log-outcome.d.ts.map +1 -0
- package/dist/src/mcp/tools/log-outcome.js +59 -0
- package/dist/src/mcp/tools/log-outcome.js.map +1 -0
- package/dist/src/mcp/tools/open-evidence.d.ts +37 -0
- package/dist/src/mcp/tools/open-evidence.d.ts.map +1 -0
- package/dist/src/mcp/tools/open-evidence.js +72 -0
- package/dist/src/mcp/tools/open-evidence.js.map +1 -0
- package/dist/src/mcp/tools/save.d.ts +7 -2
- package/dist/src/mcp/tools/save.d.ts.map +1 -1
- package/dist/src/mcp/tools/save.js +7 -2
- package/dist/src/mcp/tools/save.js.map +1 -1
- package/dist/src/mcp/tools/search.d.ts.map +1 -1
- package/dist/src/mcp/tools/search.js +7 -1
- package/dist/src/mcp/tools/search.js.map +1 -1
- package/dist/src/mcp/tools/status.d.ts +15 -1
- package/dist/src/mcp/tools/status.d.ts.map +1 -1
- package/dist/src/mcp/tools/status.js +53 -2
- package/dist/src/mcp/tools/status.js.map +1 -1
- package/dist/src/observability/retrieval-feedback.d.ts +82 -0
- package/dist/src/observability/retrieval-feedback.d.ts.map +1 -0
- package/dist/src/observability/retrieval-feedback.js +231 -0
- package/dist/src/observability/retrieval-feedback.js.map +1 -0
- package/dist/src/observability/rift-context.d.ts.map +1 -1
- package/dist/src/observability/rift-context.js +3 -0
- package/dist/src/observability/rift-context.js.map +1 -1
- package/dist/src/observability/tool-usage-stats.d.ts +13 -0
- package/dist/src/observability/tool-usage-stats.d.ts.map +1 -1
- package/dist/src/observability/tool-usage-stats.js +15 -0
- package/dist/src/observability/tool-usage-stats.js.map +1 -1
- package/dist/src/observability/tool-usage.d.ts +56 -0
- package/dist/src/observability/tool-usage.d.ts.map +1 -1
- package/dist/src/observability/tool-usage.js +86 -0
- package/dist/src/observability/tool-usage.js.map +1 -1
- package/dist/src/providers/claude-cli-metadata-extraction.d.ts +47 -0
- package/dist/src/providers/claude-cli-metadata-extraction.d.ts.map +1 -0
- package/dist/src/providers/claude-cli-metadata-extraction.js +120 -0
- package/dist/src/providers/claude-cli-metadata-extraction.js.map +1 -0
- package/dist/src/providers/claude-cli-runner.d.ts +92 -0
- package/dist/src/providers/claude-cli-runner.d.ts.map +1 -0
- package/dist/src/providers/claude-cli-runner.js +598 -0
- package/dist/src/providers/claude-cli-runner.js.map +1 -0
- package/dist/src/providers/codex-cli-metadata-extraction.d.ts.map +1 -1
- package/dist/src/providers/codex-cli-metadata-extraction.js +1 -40
- package/dist/src/providers/codex-cli-metadata-extraction.js.map +1 -1
- package/dist/src/providers/codex-cli-runner.d.ts +7 -0
- package/dist/src/providers/codex-cli-runner.d.ts.map +1 -1
- package/dist/src/providers/codex-cli-runner.js +131 -5
- package/dist/src/providers/codex-cli-runner.js.map +1 -1
- package/dist/src/providers/conversation-generation.d.ts +10 -0
- package/dist/src/providers/conversation-generation.d.ts.map +1 -1
- package/dist/src/providers/conversation-generation.js +54 -13
- package/dist/src/providers/conversation-generation.js.map +1 -1
- package/dist/src/providers/openai-metadata-extraction.d.ts +48 -1
- package/dist/src/providers/openai-metadata-extraction.d.ts.map +1 -1
- package/dist/src/providers/openai-metadata-extraction.js +51 -2
- package/dist/src/providers/openai-metadata-extraction.js.map +1 -1
- package/dist/src/providers/types.d.ts +1 -1
- package/dist/src/providers/types.d.ts.map +1 -1
- package/dist/src/providers/types.js +4 -0
- package/dist/src/providers/types.js.map +1 -1
- package/dist/src/retrieval/canonical-files.d.ts +48 -0
- package/dist/src/retrieval/canonical-files.d.ts.map +1 -0
- package/dist/src/retrieval/canonical-files.js +210 -0
- package/dist/src/retrieval/canonical-files.js.map +1 -0
- package/dist/src/retrieval/compact.d.ts +95 -0
- package/dist/src/retrieval/compact.d.ts.map +1 -1
- package/dist/src/retrieval/compact.js +254 -8
- package/dist/src/retrieval/compact.js.map +1 -1
- package/dist/src/retrieval/context-pack.d.ts.map +1 -1
- package/dist/src/retrieval/context-pack.js +65 -15
- package/dist/src/retrieval/context-pack.js.map +1 -1
- package/dist/src/retrieval/conversation-dedup.d.ts +40 -0
- package/dist/src/retrieval/conversation-dedup.d.ts.map +1 -0
- package/dist/src/retrieval/conversation-dedup.js +141 -0
- package/dist/src/retrieval/conversation-dedup.js.map +1 -0
- package/dist/src/retrieval/evidence-key.d.ts +48 -0
- package/dist/src/retrieval/evidence-key.d.ts.map +1 -0
- package/dist/src/retrieval/evidence-key.js +131 -0
- package/dist/src/retrieval/evidence-key.js.map +1 -0
- package/dist/src/retrieval/feedback-ranking.d.ts +49 -0
- package/dist/src/retrieval/feedback-ranking.d.ts.map +1 -0
- package/dist/src/retrieval/feedback-ranking.js +138 -0
- package/dist/src/retrieval/feedback-ranking.js.map +1 -0
- package/dist/src/retrieval/git-state.d.ts +9 -0
- package/dist/src/retrieval/git-state.d.ts.map +1 -1
- package/dist/src/retrieval/git-state.js +18 -0
- package/dist/src/retrieval/git-state.js.map +1 -1
- package/dist/src/retrieval/group-by-parent.d.ts +38 -0
- package/dist/src/retrieval/group-by-parent.d.ts.map +1 -0
- package/dist/src/retrieval/group-by-parent.js +40 -0
- package/dist/src/retrieval/group-by-parent.js.map +1 -0
- package/dist/src/retrieval/lexical.d.ts.map +1 -1
- package/dist/src/retrieval/lexical.js +1 -3
- package/dist/src/retrieval/lexical.js.map +1 -1
- package/dist/src/retrieval/receipt.d.ts +57 -0
- package/dist/src/retrieval/receipt.d.ts.map +1 -0
- package/dist/src/retrieval/receipt.js +119 -0
- package/dist/src/retrieval/receipt.js.map +1 -0
- package/dist/src/retrieval/reranker.d.ts +49 -2
- package/dist/src/retrieval/reranker.d.ts.map +1 -1
- package/dist/src/retrieval/reranker.js +64 -4
- package/dist/src/retrieval/reranker.js.map +1 -1
- package/dist/src/retrieval/stitch-chunks.d.ts +73 -0
- package/dist/src/retrieval/stitch-chunks.d.ts.map +1 -0
- package/dist/src/retrieval/stitch-chunks.js +106 -0
- package/dist/src/retrieval/stitch-chunks.js.map +1 -0
- package/dist/src/server/app.d.ts +1 -1
- package/dist/src/server/app.d.ts.map +1 -1
- package/dist/src/server/app.js +20 -3
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/server/routes/conversations-search.d.ts.map +1 -1
- package/dist/src/server/routes/conversations-search.js +22 -3
- package/dist/src/server/routes/conversations-search.js.map +1 -1
- package/dist/src/server/routes/friend-status.d.ts +64 -6
- package/dist/src/server/routes/friend-status.d.ts.map +1 -1
- package/dist/src/server/routes/friend-status.js +114 -18
- package/dist/src/server/routes/friend-status.js.map +1 -1
- package/dist/src/server/routes/mcp-usage.d.ts +9 -6
- package/dist/src/server/routes/mcp-usage.d.ts.map +1 -1
- package/dist/src/server/routes/mcp-usage.js.map +1 -1
- package/dist/src/server/routes/retrieval-feedback.d.ts +3 -0
- package/dist/src/server/routes/retrieval-feedback.d.ts.map +1 -0
- package/dist/src/server/routes/retrieval-feedback.js +290 -0
- package/dist/src/server/routes/retrieval-feedback.js.map +1 -0
- package/dist/src/server/routes/save.d.ts +3 -3
- package/dist/src/server/routes/save.d.ts.map +1 -1
- package/dist/src/server/routes/save.js +6 -2
- package/dist/src/server/routes/save.js.map +1 -1
- package/dist/src/server/routes/search.d.ts +1 -1
- package/dist/src/server/routes/search.d.ts.map +1 -1
- package/dist/src/server/routes/search.js +55 -8
- package/dist/src/server/routes/search.js.map +1 -1
- package/dist/src/server/serving-marker.d.ts +85 -0
- package/dist/src/server/serving-marker.d.ts.map +1 -0
- package/dist/src/server/serving-marker.js +226 -0
- package/dist/src/server/serving-marker.js.map +1 -0
- package/dist/src/storage/chunk-backfill.d.ts +39 -0
- package/dist/src/storage/chunk-backfill.d.ts.map +1 -0
- package/dist/src/storage/chunk-backfill.js +295 -0
- package/dist/src/storage/chunk-backfill.js.map +1 -0
- package/dist/src/storage/filter.d.ts +42 -0
- package/dist/src/storage/filter.d.ts.map +1 -0
- package/dist/src/storage/filter.js +70 -0
- package/dist/src/storage/filter.js.map +1 -0
- package/dist/src/storage/rebuild.d.ts.map +1 -1
- package/dist/src/storage/rebuild.js +44 -27
- package/dist/src/storage/rebuild.js.map +1 -1
- package/dist/src/storage/tables.d.ts +41 -0
- package/dist/src/storage/tables.d.ts.map +1 -1
- package/dist/src/storage/tables.js +64 -1
- package/dist/src/storage/tables.js.map +1 -1
- package/operator/swiftbar/render-menu.py +60 -18
- package/package.json +6 -4
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retrieval-feedback ranking integration (Slice 16).
|
|
3
|
+
*
|
|
4
|
+
* Slice 15 shipped the rails: agents open/cite evidence via the MCP tools, and
|
|
5
|
+
* positive-only events accrue in an append-only ledger. `computeFeedbackBoosts`
|
|
6
|
+
* turns those events into a bounded `B_feed` per stable evidence key, but until
|
|
7
|
+
* now nothing fed that boost back into live ranking — it was shadow-only,
|
|
8
|
+
* surfaced through `rift why` for inspection.
|
|
9
|
+
*
|
|
10
|
+
* This module is the candidate-boost LOOKUP that closes the loop, behind a
|
|
11
|
+
* default-OFF flag (`RIFT_FEEDBACK_RANKING`). With the flag off (or an empty
|
|
12
|
+
* ledger) it is never invoked / is a guaranteed no-op, so the ship path is
|
|
13
|
+
* unchanged. With it on, a search:
|
|
14
|
+
* 1. resolves each reranked candidate to its stable evidence key (the SAME
|
|
15
|
+
* `stableEvidenceIdentityForRow` the open/cite path keyed events with, so a
|
|
16
|
+
* candidate matches its own recorded feedback);
|
|
17
|
+
* 2. computes the bounded B_feed for those keys from the ledger;
|
|
18
|
+
* 3. applies it via {@link applyFeedbackBoost} (a re-score identical to having
|
|
19
|
+
* reranked with that B_feed).
|
|
20
|
+
*
|
|
21
|
+
* Scope choice (v0): the lookup uses a GLOBAL scope — every positive event for a
|
|
22
|
+
* key counts, regardless of project/intent. `project`/`intent` on events are
|
|
23
|
+
* agent-supplied and optional (see `rift_log_outcome` / `rift_open_evidence`),
|
|
24
|
+
* so they are frequently absent; a narrow `(project, intent)` lookup scope would
|
|
25
|
+
* silently exclude those events and the boost would mysteriously never fire.
|
|
26
|
+
* Global is the conservative correct default for a single-user tool ("this
|
|
27
|
+
* source helped me before" is a meaningful global signal), it is positive-only
|
|
28
|
+
* and bounded (B_feed ≤ 1.25, weight 0.10 → ≤ +0.025 to a candidate's score),
|
|
29
|
+
* and the `applied[]` explain output lets dogfooding SEE whether global is too
|
|
30
|
+
* coarse before any narrowing. Per-scope ranking is a deliberate follow-up.
|
|
31
|
+
*/
|
|
32
|
+
import { getTable } from "../storage/tables.js";
|
|
33
|
+
import { inFilter } from "../storage/filter.js";
|
|
34
|
+
import { rankedKey } from "./group-by-parent.js";
|
|
35
|
+
import { applyFeedbackBoost, } from "./reranker.js";
|
|
36
|
+
import { stableEvidenceIdentityForRow } from "./evidence-key.js";
|
|
37
|
+
import { readRetrievalFeedbackEvents, computeFeedbackBoosts, B_FEED_NEUTRAL, } from "../observability/retrieval-feedback.js";
|
|
38
|
+
/**
|
|
39
|
+
* Whether retrieval-feedback ranking is enabled. Single env flag
|
|
40
|
+
* `RIFT_FEEDBACK_RANKING`, default OFF — mirrors the `RIFT_CHUNKING` /
|
|
41
|
+
* `RIFT_LOCATOR_BOOST` gated-rollout pattern. Only `"1"` enables it.
|
|
42
|
+
*/
|
|
43
|
+
export function feedbackRankingEnabled(env = process.env) {
|
|
44
|
+
return env["RIFT_FEEDBACK_RANKING"] === "1";
|
|
45
|
+
}
|
|
46
|
+
/** Minimal projections needed to key a candidate the same way the ledger did. */
|
|
47
|
+
const CONV_KEY_COLUMNS = ["id", "parent_id", "source"];
|
|
48
|
+
const DOC_KEY_COLUMNS = ["id", "source_path"];
|
|
49
|
+
/**
|
|
50
|
+
* Resolve each reranked candidate to its stable evidence key via a
|
|
51
|
+
* projection-only query per source table (no `content`, no embedding vector —
|
|
52
|
+
* the same hot-path discipline as {@link fetchParentKeysForRanked}). Returns
|
|
53
|
+
* `rankedKey(r) → stable_evidence_key`, keyed by `(source_table, id)` so a row
|
|
54
|
+
* id shared across cloud/local doc tables can't collide. Ids with no backing
|
|
55
|
+
* row are simply absent (→ treated as neutral by the caller).
|
|
56
|
+
*/
|
|
57
|
+
export async function fetchStableEvidenceKeysForRanked(ranked) {
|
|
58
|
+
const byTable = new Map();
|
|
59
|
+
for (const r of ranked) {
|
|
60
|
+
const arr = byTable.get(r.source_table) ?? [];
|
|
61
|
+
arr.push(r.id);
|
|
62
|
+
byTable.set(r.source_table, arr);
|
|
63
|
+
}
|
|
64
|
+
const out = new Map();
|
|
65
|
+
for (const [tableName, ids] of byTable) {
|
|
66
|
+
if (ids.length === 0)
|
|
67
|
+
continue;
|
|
68
|
+
const keyOf = (id) => rankedKey({ source_table: tableName, id });
|
|
69
|
+
// Digests key on their id alone — no projection needed.
|
|
70
|
+
if (tableName === "digests") {
|
|
71
|
+
for (const id of ids) {
|
|
72
|
+
out.set(keyOf(id), stableEvidenceIdentityForRow("digests", { id }).stable_evidence_key);
|
|
73
|
+
}
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
const columns = tableName === "conversations_hot" || tableName === "conversations_cold"
|
|
77
|
+
? CONV_KEY_COLUMNS
|
|
78
|
+
: DOC_KEY_COLUMNS;
|
|
79
|
+
const rows = (await getTable(tableName)
|
|
80
|
+
.query()
|
|
81
|
+
.where(inFilter("id", ids, { validateAsRowId: true }))
|
|
82
|
+
.select([...columns])
|
|
83
|
+
.limit(ids.length)
|
|
84
|
+
.toArray());
|
|
85
|
+
for (const row of rows) {
|
|
86
|
+
const id = typeof row["id"] === "string" ? row["id"] : undefined;
|
|
87
|
+
if (!id)
|
|
88
|
+
continue;
|
|
89
|
+
out.set(keyOf(id), stableEvidenceIdentityForRow(tableName, row).stable_evidence_key);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return out;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Boost a reranked set by accumulated retrieval feedback. The caller gates this
|
|
96
|
+
* on {@link feedbackRankingEnabled}; here it is unconditional so it can be
|
|
97
|
+
* exercised directly in tests.
|
|
98
|
+
*
|
|
99
|
+
* Two fast no-ops avoid any cost when there is nothing to do: an empty ledger
|
|
100
|
+
* skips the DB projection entirely, and {@link applyFeedbackBoost} preserves the
|
|
101
|
+
* input order when no candidate's boost is non-neutral.
|
|
102
|
+
*
|
|
103
|
+
* @param keyResolver - test seam; defaults to the DB-backed
|
|
104
|
+
* {@link fetchStableEvidenceKeysForRanked}.
|
|
105
|
+
*/
|
|
106
|
+
export async function applyFeedbackRanking(dataDir, ranked, opts = {}) {
|
|
107
|
+
const events = readRetrievalFeedbackEvents(dataDir);
|
|
108
|
+
if (events.length === 0)
|
|
109
|
+
return { ranked, applied: [] };
|
|
110
|
+
const resolveKeys = opts.keyResolver ?? fetchStableEvidenceKeysForRanked;
|
|
111
|
+
const keyByRanked = await resolveKeys(ranked);
|
|
112
|
+
const uniqueKeys = [...new Set(keyByRanked.values())];
|
|
113
|
+
if (uniqueKeys.length === 0)
|
|
114
|
+
return { ranked, applied: [] };
|
|
115
|
+
const boosts = computeFeedbackBoosts(events, uniqueKeys, opts.scope ?? {});
|
|
116
|
+
const boostOf = (r) => {
|
|
117
|
+
const k = keyByRanked.get(rankedKey(r));
|
|
118
|
+
return k ? boosts.get(k)?.B_feed : undefined;
|
|
119
|
+
};
|
|
120
|
+
const { ranked: rescored } = applyFeedbackBoost(ranked, boostOf);
|
|
121
|
+
const applied = [];
|
|
122
|
+
for (const r of ranked) {
|
|
123
|
+
const k = keyByRanked.get(rankedKey(r));
|
|
124
|
+
const b = k ? boosts.get(k) : undefined;
|
|
125
|
+
if (b && b.B_feed > B_FEED_NEUTRAL) {
|
|
126
|
+
applied.push({
|
|
127
|
+
id: r.id,
|
|
128
|
+
source_table: r.source_table,
|
|
129
|
+
stable_evidence_key: b.stable_evidence_key,
|
|
130
|
+
B_feed: b.B_feed,
|
|
131
|
+
weighted_credit: b.weighted_credit,
|
|
132
|
+
positive_event_count: b.positive_event_count,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return { ranked: rescored, applied };
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=feedback-ranking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-ranking.js","sourceRoot":"","sources":["../../../src/retrieval/feedback-ranking.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,4 +50,13 @@ export interface ProbeOptions {
|
|
|
50
50
|
* - Otherwise classified per {@link GitState} precedence.
|
|
51
51
|
*/
|
|
52
52
|
export declare function probeGitStates(inputs: readonly GitStateInput[], opts: ProbeOptions): Map<string, GitState>;
|
|
53
|
+
/**
|
|
54
|
+
* Resolve the git top-level for `cwd` via `git rev-parse --show-toplevel`,
|
|
55
|
+
* so callers can locate repo-root files (PROJECT_STATE.md, TODO.md) even when
|
|
56
|
+
* the agent's cwd is a subdirectory (the same problem {@link probeGitStates}
|
|
57
|
+
* solves for path classification). Returns the resolved absolute repo root, or
|
|
58
|
+
* the resolved `cwd` when git is unavailable / `cwd` is not a repo — a safe
|
|
59
|
+
* fallback that simply looks in `cwd`.
|
|
60
|
+
*/
|
|
61
|
+
export declare function resolveRepoRoot(cwd: string): string;
|
|
53
62
|
//# sourceMappingURL=git-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-state.d.ts","sourceRoot":"","sources":["../../../src/retrieval/git-state.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,eAAe,GACf,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;OASG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,IAAI,EAAE,YAAY,GACjB,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CA+BvB"}
|
|
1
|
+
{"version":3,"file":"git-state.d.ts","sourceRoot":"","sources":["../../../src/retrieval/git-state.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,eAAe,GACf,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;OASG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,IAAI,EAAE,YAAY,GACjB,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CA+BvB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQnD"}
|
|
@@ -68,6 +68,24 @@ export function probeGitStates(inputs, opts) {
|
|
|
68
68
|
}
|
|
69
69
|
return out;
|
|
70
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Resolve the git top-level for `cwd` via `git rev-parse --show-toplevel`,
|
|
73
|
+
* so callers can locate repo-root files (PROJECT_STATE.md, TODO.md) even when
|
|
74
|
+
* the agent's cwd is a subdirectory (the same problem {@link probeGitStates}
|
|
75
|
+
* solves for path classification). Returns the resolved absolute repo root, or
|
|
76
|
+
* the resolved `cwd` when git is unavailable / `cwd` is not a repo — a safe
|
|
77
|
+
* fallback that simply looks in `cwd`.
|
|
78
|
+
*/
|
|
79
|
+
export function resolveRepoRoot(cwd) {
|
|
80
|
+
const base = path.resolve(cwd);
|
|
81
|
+
try {
|
|
82
|
+
const top = runGit(base, ["rev-parse", "--show-toplevel"]).trim();
|
|
83
|
+
return top ? path.resolve(top) : base;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return base;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
71
89
|
function runGit(cwd, args) {
|
|
72
90
|
return execFileSync("git", ["-C", cwd, ...args], {
|
|
73
91
|
encoding: "utf8",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-state.js","sourceRoot":"","sources":["../../../src/retrieval/git-state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git-state.js","sourceRoot":"","sources":["../../../src/retrieval/git-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Post-rerank collapse of chunk siblings.
|
|
3
|
+
*
|
|
4
|
+
* When a long document/conversation is indexed as multiple chunk rows, several
|
|
5
|
+
* chunks of the SAME source can rank in the deep pool and would otherwise flood
|
|
6
|
+
* top-k. This pass keeps the best-scoring chunk per parent as the representative
|
|
7
|
+
* and drops the siblings, recording how many rows the parent contributed so the
|
|
8
|
+
* UI can render "+N more sections".
|
|
9
|
+
*
|
|
10
|
+
* Flag-off / legacy safety: collapse is driven ENTIRELY by `parentKeyOf`, which
|
|
11
|
+
* returns `null` for any row without an explicit chunk marker (see
|
|
12
|
+
* `parentKeyForRow` in `../ingestion/chunk-meta.ts`). Rows that merely share a
|
|
13
|
+
* `source_path` or `idempotency_key` get `null` and are never grouped — so with
|
|
14
|
+
* `RIFT_CHUNKING` off (no marked rows exist) this is provably a no-op.
|
|
15
|
+
*
|
|
16
|
+
* Input is assumed score-descending (reranker output), so the first row seen for
|
|
17
|
+
* a parent is its best; overall order is otherwise preserved.
|
|
18
|
+
*/
|
|
19
|
+
import type { RankedResult } from "./reranker.js";
|
|
20
|
+
/**
|
|
21
|
+
* Composite key that preserves table identity. The SAME row id can exist in two
|
|
22
|
+
* source tables (notably `structured_docs` vs `structured_docs_local`, but also
|
|
23
|
+
* hot/cold conversation tiers), so any map keyed by bare `id` would collide and
|
|
24
|
+
* could silently merge a cloud row with a local one — the exact cross-table
|
|
25
|
+
* collapse the table-namespaced parent key is meant to prevent. Always key
|
|
26
|
+
* parent-key lookups, sibling counts, AND raw-row maps by `(source_table, id)`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function rankedKey(r: Pick<RankedResult, "source_table" | "id">): string;
|
|
29
|
+
export interface GroupByParentResult {
|
|
30
|
+
/** Collapsed list: best chunk per parent, siblings removed, order preserved. */
|
|
31
|
+
ranked: RankedResult[];
|
|
32
|
+
/** {@link rankedKey} of the representative → number of rows in its parent
|
|
33
|
+
* group (≥ 2 only when grouped). Keyed by `(source_table, id)`, NOT bare id,
|
|
34
|
+
* so a cross-table id clash can never misattribute a sibling count. */
|
|
35
|
+
siblingCountById: Map<string, number>;
|
|
36
|
+
}
|
|
37
|
+
export declare function groupByParent(ranked: RankedResult[], parentKeyOf: (r: RankedResult) => string | null): GroupByParentResult;
|
|
38
|
+
//# sourceMappingURL=group-by-parent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-by-parent.d.ts","sourceRoot":"","sources":["../../../src/retrieval/group-by-parent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,IAAI,CAAC,GAAG,MAAM,CAK9E;AAED,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB;;4EAEwE;IACxE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EAAE,EACtB,WAAW,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,MAAM,GAAG,IAAI,GAC9C,mBAAmB,CAyBrB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composite key that preserves table identity. The SAME row id can exist in two
|
|
3
|
+
* source tables (notably `structured_docs` vs `structured_docs_local`, but also
|
|
4
|
+
* hot/cold conversation tiers), so any map keyed by bare `id` would collide and
|
|
5
|
+
* could silently merge a cloud row with a local one — the exact cross-table
|
|
6
|
+
* collapse the table-namespaced parent key is meant to prevent. Always key
|
|
7
|
+
* parent-key lookups, sibling counts, AND raw-row maps by `(source_table, id)`.
|
|
8
|
+
*/
|
|
9
|
+
export function rankedKey(r) {
|
|
10
|
+
// Space separator: a TableName is a fixed [a-z_] enum and a row id is
|
|
11
|
+
// charset-guarded ([A-Za-z0-9_:.-]) — neither can contain a space, so the
|
|
12
|
+
// join is unambiguous. Plain printable text, never a literal control byte.
|
|
13
|
+
return `${r.source_table} ${r.id}`;
|
|
14
|
+
}
|
|
15
|
+
export function groupByParent(ranked, parentKeyOf) {
|
|
16
|
+
const kept = [];
|
|
17
|
+
const siblingCountById = new Map();
|
|
18
|
+
// parent key → representative result (the first/best row for that parent)
|
|
19
|
+
const repByKey = new Map();
|
|
20
|
+
for (const r of ranked) {
|
|
21
|
+
const key = parentKeyOf(r);
|
|
22
|
+
if (key === null) {
|
|
23
|
+
kept.push(r); // unmarked row: its own singleton, never collapsed
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
const rep = repByKey.get(key);
|
|
27
|
+
if (rep === undefined) {
|
|
28
|
+
repByKey.set(key, r);
|
|
29
|
+
siblingCountById.set(rankedKey(r), 1);
|
|
30
|
+
kept.push(r);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
// A lower-ranked sibling of an already-kept parent — drop, bump count.
|
|
34
|
+
const repKey = rankedKey(rep);
|
|
35
|
+
siblingCountById.set(repKey, (siblingCountById.get(repKey) ?? 1) + 1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return { ranked: kept, siblingCountById };
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=group-by-parent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-by-parent.js","sourceRoot":"","sources":["../../../src/retrieval/group-by-parent.ts"],"names":[],"mappings":"AAoBA;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,CAA4C;IACpE,sEAAsE;IACtE,0EAA0E;IAC1E,2EAA2E;IAC3E,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;AACrC,CAAC;AAWD,MAAM,UAAU,aAAa,CAC3B,MAAsB,EACtB,WAA+C;IAE/C,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEjD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,mDAAmD;YACjE,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,uEAAuE;YACvE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9B,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexical.d.ts","sourceRoot":"","sources":["../../../src/retrieval/lexical.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"lexical.d.ts","sourceRoot":"","sources":["../../../src/retrieval/lexical.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAW5E,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,YAAY,EAAE,CAAC,CAgEzB;AAyHD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAsB/C;AA8CD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,kBAAkB,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACjI,OAAO,CAAC,YAAY,EAAE,CAAC,CA4EzB"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { getTable } from "../storage/tables.js";
|
|
8
8
|
import { escapeLike } from "./cwd.js";
|
|
9
|
+
import { escapeSql } from "../storage/filter.js";
|
|
9
10
|
import { isRiftBasicMetadata } from "../providers/basic-metadata-extraction.js";
|
|
10
11
|
// --- BM25 parameters ---
|
|
11
12
|
const K1 = 1.2;
|
|
@@ -311,7 +312,4 @@ export async function lexicalSearchTables(query, tables, options) {
|
|
|
311
312
|
allResults.sort((a, b) => b.score - a.score);
|
|
312
313
|
return allResults.slice(0, options.top_k);
|
|
313
314
|
}
|
|
314
|
-
function escapeSql(value) {
|
|
315
|
-
return value.replace(/'/g, "''");
|
|
316
|
-
}
|
|
317
315
|
//# sourceMappingURL=lexical.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexical.js","sourceRoot":"","sources":["../../../src/retrieval/lexical.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lexical.js","sourceRoot":"","sources":["../../../src/retrieval/lexical.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Point-of-use receipt (Slice 1 of the value-visibility thread).
|
|
3
|
+
*
|
|
4
|
+
* A receipt is the ONE human-facing line a retrieval response leads with:
|
|
5
|
+
* a humble, plain-language summary of what Rift recalled, so the client
|
|
6
|
+
* agent (Claude Code / Codex / Cursor) can relay it at the moment of use.
|
|
7
|
+
* The menu-bar scoreboard is too late for attribution — this is.
|
|
8
|
+
*
|
|
9
|
+
* Design rules (see TODO.md "Value visibility" slice):
|
|
10
|
+
* - Human audience, not machine: NO scores, tiers, `source` codes,
|
|
11
|
+
* retrieval methods, or byte/token counts. Those stay in the hit list,
|
|
12
|
+
* which is the agent's working data.
|
|
13
|
+
* - Name the specific sources, capped at {@link NAMED_MAX}; the tail is a
|
|
14
|
+
* plain count (`+N more`), NEVER a token volume — we must not imply Rift
|
|
15
|
+
* literally read every token of every source.
|
|
16
|
+
* - Humble verb: "recalled", never "improved your answer".
|
|
17
|
+
* - Agent-mediated: Rift can pre-format and instruct, but cannot see
|
|
18
|
+
* whether the client rendered it. So this is best-effort text, not
|
|
19
|
+
* telemetry — omitted entirely when there is nothing honest to say.
|
|
20
|
+
*/
|
|
21
|
+
import type { CompactHit } from "./compact.js";
|
|
22
|
+
import type { ContextPack } from "./context-pack.js";
|
|
23
|
+
/** Maximum number of named sources before collapsing the rest into `+N more`. */
|
|
24
|
+
export declare const NAMED_MAX = 3;
|
|
25
|
+
/**
|
|
26
|
+
* Receipts default ON; opt out with RIFT_RECEIPT=false|0|off|no. Default-on
|
|
27
|
+
* is deliberate: the whole point is visibility, and an off-by-default flag
|
|
28
|
+
* would mean it never shows during dogfood (the only signal we get on which
|
|
29
|
+
* clients actually relay it).
|
|
30
|
+
*/
|
|
31
|
+
export declare function receiptEnabled(): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Build the receipt for rift_search / rift_conversations_search.
|
|
34
|
+
*
|
|
35
|
+
* Plain search mixes kinds, so naming the things is enough — no kind label.
|
|
36
|
+
* Prefers each hit's `summary` (reads like English) over `title` (often
|
|
37
|
+
* tag-salad like "rift, cli-tool, typescript").
|
|
38
|
+
*/
|
|
39
|
+
export declare function buildSearchReceipt(hits: CompactHit[] | undefined): string | null;
|
|
40
|
+
/**
|
|
41
|
+
* Build the receipt for rift_context_pack.
|
|
42
|
+
*
|
|
43
|
+
* Here the buckets ARE trustworthy kinds, so we lead with the kind
|
|
44
|
+
* ("a prior decision", "the current state") — that is exactly the signal
|
|
45
|
+
* the slice calls for. We draw from durable/current buckets first and
|
|
46
|
+
* deliberately EXCLUDE `discounted` (stale by definition — claiming we
|
|
47
|
+
* "recalled" it would be dishonest) and `recommended_live_files` (Rift
|
|
48
|
+
* points at those, it did not recall their contents).
|
|
49
|
+
*/
|
|
50
|
+
export declare function buildContextPackReceipt(pack: ContextPack | undefined): string | null;
|
|
51
|
+
/**
|
|
52
|
+
* Prepend a receipt as the leading line of a response body (leading, because
|
|
53
|
+
* agents relay what they read first and drop trailing content). No-op when
|
|
54
|
+
* the receipt is null.
|
|
55
|
+
*/
|
|
56
|
+
export declare function withReceipt(receipt: string | null, body: string): string;
|
|
57
|
+
//# sourceMappingURL=receipt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../../../src/retrieval/receipt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,iFAAiF;AACjF,eAAO,MAAM,SAAS,IAAI,CAAC;AAa3B;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAIxC;AAgCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAShF;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAsBpF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExE"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/** Maximum number of named sources before collapsing the rest into `+N more`. */
|
|
2
|
+
export const NAMED_MAX = 3;
|
|
3
|
+
/** Word budget per named phrase before eliding with `…`. */
|
|
4
|
+
const PHRASE_MAX_WORDS = 9;
|
|
5
|
+
/**
|
|
6
|
+
* Hard character budget per phrase, applied AFTER the word cap. The word cap
|
|
7
|
+
* alone can't bound a single long unbroken token (a URL, a path, or a
|
|
8
|
+
* comma-less tag blob counts as one "word"), and this is the exact line agents
|
|
9
|
+
* are most likely to quote — so it must stay short no matter the input shape.
|
|
10
|
+
*/
|
|
11
|
+
const PHRASE_MAX_CHARS = 64;
|
|
12
|
+
/**
|
|
13
|
+
* Receipts default ON; opt out with RIFT_RECEIPT=false|0|off|no. Default-on
|
|
14
|
+
* is deliberate: the whole point is visibility, and an off-by-default flag
|
|
15
|
+
* would mean it never shows during dogfood (the only signal we get on which
|
|
16
|
+
* clients actually relay it).
|
|
17
|
+
*/
|
|
18
|
+
export function receiptEnabled() {
|
|
19
|
+
const v = process.env["RIFT_RECEIPT"];
|
|
20
|
+
if (v == null)
|
|
21
|
+
return true;
|
|
22
|
+
return !/^(false|0|off|no)$/i.test(v.trim());
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Reduce a raw title/summary/decision to a short, single-line, italics-safe
|
|
26
|
+
* phrase. Collapses whitespace, word-caps with an ellipsis, then ESCAPES
|
|
27
|
+
* markdown emphasis (`\_`, `\*`) so an embedded underscore can't prematurely
|
|
28
|
+
* close the wrapping italics — escaping rather than stripping keeps real
|
|
29
|
+
* filenames like `PROJECT_STATE.md` intact. Returns null for empty input so
|
|
30
|
+
* callers can skip it.
|
|
31
|
+
*/
|
|
32
|
+
function phrase(raw, maxWords = PHRASE_MAX_WORDS) {
|
|
33
|
+
if (!raw)
|
|
34
|
+
return null;
|
|
35
|
+
const full = raw.replace(/\s+/g, " ").trim();
|
|
36
|
+
if (!full)
|
|
37
|
+
return null;
|
|
38
|
+
let s = full.split(" ").slice(0, maxWords).join(" ");
|
|
39
|
+
if (s.length > PHRASE_MAX_CHARS)
|
|
40
|
+
s = s.slice(0, PHRASE_MAX_CHARS).trimEnd();
|
|
41
|
+
// `s` is a prefix of `full`, so a shorter length means we elided something
|
|
42
|
+
// (by word OR by char) and owe the reader an ellipsis.
|
|
43
|
+
if (s.length < full.length)
|
|
44
|
+
s += "…";
|
|
45
|
+
// Backticks aren't reliably escapable inside italics, so drop them; escape
|
|
46
|
+
// emphasis markers that would otherwise toggle the wrapping `_..._`.
|
|
47
|
+
return s.replace(/`/g, "").replace(/([_*])/g, "\\$1");
|
|
48
|
+
}
|
|
49
|
+
/** Wrap named phrases + tail count into the final italic receipt line. */
|
|
50
|
+
function render(named, total) {
|
|
51
|
+
if (named.length === 0)
|
|
52
|
+
return null;
|
|
53
|
+
const more = Math.max(0, total - named.length);
|
|
54
|
+
const tail = more > 0 ? ` — +${more} more` : "";
|
|
55
|
+
return `_Rift recalled ${named.join(", ")}${tail}._`;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build the receipt for rift_search / rift_conversations_search.
|
|
59
|
+
*
|
|
60
|
+
* Plain search mixes kinds, so naming the things is enough — no kind label.
|
|
61
|
+
* Prefers each hit's `summary` (reads like English) over `title` (often
|
|
62
|
+
* tag-salad like "rift, cli-tool, typescript").
|
|
63
|
+
*/
|
|
64
|
+
export function buildSearchReceipt(hits) {
|
|
65
|
+
if (!receiptEnabled() || !hits?.length)
|
|
66
|
+
return null;
|
|
67
|
+
const named = [];
|
|
68
|
+
for (const h of hits) {
|
|
69
|
+
if (named.length >= NAMED_MAX)
|
|
70
|
+
break;
|
|
71
|
+
const p = phrase(h.summary || h.title);
|
|
72
|
+
if (p)
|
|
73
|
+
named.push(p);
|
|
74
|
+
}
|
|
75
|
+
return render(named, hits.length);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Build the receipt for rift_context_pack.
|
|
79
|
+
*
|
|
80
|
+
* Here the buckets ARE trustworthy kinds, so we lead with the kind
|
|
81
|
+
* ("a prior decision", "the current state") — that is exactly the signal
|
|
82
|
+
* the slice calls for. We draw from durable/current buckets first and
|
|
83
|
+
* deliberately EXCLUDE `discounted` (stale by definition — claiming we
|
|
84
|
+
* "recalled" it would be dishonest) and `recommended_live_files` (Rift
|
|
85
|
+
* points at those, it did not recall their contents).
|
|
86
|
+
*/
|
|
87
|
+
export function buildContextPackReceipt(pack) {
|
|
88
|
+
if (!receiptEnabled() || !pack)
|
|
89
|
+
return null;
|
|
90
|
+
// Ordered by durability/currency: a decision is worth surfacing before a
|
|
91
|
+
// passing discussion. Each entry is [kind label, raw phrase source].
|
|
92
|
+
const candidates = [
|
|
93
|
+
...(pack.decisions ?? []).map((d) => ["a prior decision", d.text]),
|
|
94
|
+
...(pack.current_truth ?? []).map((e) => ["the current state", e.title]),
|
|
95
|
+
...(pack.constraints ?? []).map((c) => ["a constraint", c.text]),
|
|
96
|
+
...(pack.rules ?? []).map((r) => ["a rule", r.title]),
|
|
97
|
+
...(pack.past_reasoning ?? []).map((e) => ["a past discussion", e.title]),
|
|
98
|
+
...(pack.examples ?? []).map((e) => ["a past discussion", e.summary || e.title]),
|
|
99
|
+
...(pack.older_memory ?? []).map((e) => ["older memory", e.title]),
|
|
100
|
+
];
|
|
101
|
+
const named = [];
|
|
102
|
+
for (const [label, raw] of candidates) {
|
|
103
|
+
if (named.length >= NAMED_MAX)
|
|
104
|
+
break;
|
|
105
|
+
const p = phrase(raw);
|
|
106
|
+
if (p)
|
|
107
|
+
named.push(`${label} (${p})`);
|
|
108
|
+
}
|
|
109
|
+
return render(named, candidates.length);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Prepend a receipt as the leading line of a response body (leading, because
|
|
113
|
+
* agents relay what they read first and drop trailing content). No-op when
|
|
114
|
+
* the receipt is null.
|
|
115
|
+
*/
|
|
116
|
+
export function withReceipt(receipt, body) {
|
|
117
|
+
return receipt ? `${receipt}\n\n${body}` : body;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=receipt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../../src/retrieval/receipt.ts"],"names":[],"mappings":"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"}
|