@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
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { getTable, TABLE_NAMES } from "../storage/tables.js";
|
|
13
13
|
import { tokenize } from "./lexical.js";
|
|
14
|
+
import { parentKeyForRow, readChunkMarker, } from "../ingestion/chunk-meta.js";
|
|
15
|
+
import { rankedKey } from "./group-by-parent.js";
|
|
16
|
+
import { stitchChunkContents } from "./stitch-chunks.js";
|
|
17
|
+
import { eqFilter, inFilter } from "../storage/filter.js";
|
|
18
|
+
import { stableEvidenceIdentityForRow } from "./evidence-key.js";
|
|
14
19
|
export const SNIPPET_MAX = 400;
|
|
15
20
|
export const SUMMARY_MAX = 800;
|
|
16
21
|
export const TITLE_MAX = 120;
|
|
@@ -39,6 +44,14 @@ export const LARGE_HIT_TOKEN_THRESHOLD = 10_000;
|
|
|
39
44
|
export const MIDDLE_HEAD_CHARS = 8_000;
|
|
40
45
|
export const MIDDLE_TAIL_CHARS = 4_000;
|
|
41
46
|
export const MIDDLE_INLINE_THRESHOLD_CHARS = 12_000;
|
|
47
|
+
/**
|
|
48
|
+
* Neighbor chunks to include on each side of the matched chunk for a
|
|
49
|
+
* `detail="middle"` expand of a chunked source. The window is `[i-K, i+K]`
|
|
50
|
+
* clamped to the set, so K=1 yields up to 3 contiguous chunks (~5k chars /
|
|
51
|
+
* ~1.4k tokens at the default 1800-char target) — enough surrounding context to
|
|
52
|
+
* read the matched section in place without re-dumping the whole conversation.
|
|
53
|
+
*/
|
|
54
|
+
export const MIDDLE_CHUNK_NEIGHBORS = 1;
|
|
42
55
|
/**
|
|
43
56
|
* Pre-call size advert for an expansion: every compact hit carries this on
|
|
44
57
|
* both the top-level fields and inside `expand.params`, so an agent that
|
|
@@ -78,9 +91,33 @@ function formatTokensShort(tokens) {
|
|
|
78
91
|
return `${Math.round(tokens / 1000)}k`;
|
|
79
92
|
return String(tokens);
|
|
80
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Pointer fields that let an agent re-cite this exact evidence for retrieval
|
|
96
|
+
* feedback without the route having to re-derive identity from a stale/partial
|
|
97
|
+
* pointer. `stable_evidence_key` is authoritative; `source` + `parent_id` are
|
|
98
|
+
* carried so conversation identity survives even if the key is ever dropped.
|
|
99
|
+
* Empty when no backing row is available (the expand path can still fetch by id).
|
|
100
|
+
*/
|
|
101
|
+
function evidencePointerParams(sourceTable, row) {
|
|
102
|
+
if (!row)
|
|
103
|
+
return {};
|
|
104
|
+
const identity = stableEvidenceIdentityForRow(sourceTable, row);
|
|
105
|
+
const source = row["source"];
|
|
106
|
+
const parentId = row["parent_id"];
|
|
107
|
+
return {
|
|
108
|
+
stable_evidence_key: identity.stable_evidence_key,
|
|
109
|
+
...(typeof source === "string" && source ? { source } : {}),
|
|
110
|
+
...(typeof parentId === "string" && parentId ? { parent_id: parentId } : {}),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
81
113
|
/**
|
|
82
114
|
* Batch-fetch the raw source rows for reranked results.
|
|
83
115
|
* Groups ids by source table and issues one `id IN (...)` query per table.
|
|
116
|
+
*
|
|
117
|
+
* Keyed by {@link rankedKey} — `(source_table, id)`, NOT bare id — so a row id
|
|
118
|
+
* shared across two tables (cloud vs local docs, hot vs cold) can never have one
|
|
119
|
+
* table's row overwrite the other's and produce a dishonest snippet/title/source
|
|
120
|
+
* for the surviving hit. Callers must look up via `get(rankedKey(r))`.
|
|
84
121
|
*/
|
|
85
122
|
export async function fetchRawRowsForRanked(ranked) {
|
|
86
123
|
const byTable = new Map();
|
|
@@ -93,18 +130,84 @@ export async function fetchRawRowsForRanked(ranked) {
|
|
|
93
130
|
for (const [tableName, ids] of byTable) {
|
|
94
131
|
if (ids.length === 0)
|
|
95
132
|
continue;
|
|
96
|
-
const quoted = ids.map((i) => `'${i.replace(/'/g, "''")}'`).join(",");
|
|
97
133
|
const rows = (await getTable(tableName)
|
|
98
134
|
.query()
|
|
99
|
-
.where(
|
|
135
|
+
.where(inFilter("id", ids, { validateAsRowId: true }))
|
|
100
136
|
.limit(ids.length)
|
|
101
137
|
.toArray());
|
|
102
138
|
for (const row of rows) {
|
|
103
|
-
out.set(row.id, row);
|
|
139
|
+
out.set(rankedKey({ source_table: tableName, id: row.id }), row);
|
|
104
140
|
}
|
|
105
141
|
}
|
|
106
142
|
return out;
|
|
107
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* The minimal column projections each table family needs for
|
|
146
|
+
* {@link parentKeyForRow}. Deliberately excludes `content` and the embedding
|
|
147
|
+
* vector: chunk-grouping must inspect the WHOLE reranked pool (siblings beyond
|
|
148
|
+
* top_k still have to collapse before the top_k slice), and pulling full rows —
|
|
149
|
+
* embeddings included — for the entire deep pool on every query was a real
|
|
150
|
+
* hot-path regression. These projections let us key the pool cheaply, then fetch
|
|
151
|
+
* full rows only for the surviving representatives.
|
|
152
|
+
*/
|
|
153
|
+
const CONV_MARKER_COLUMNS = [
|
|
154
|
+
"id",
|
|
155
|
+
"parent_id",
|
|
156
|
+
"chunk_index",
|
|
157
|
+
"chunk_count",
|
|
158
|
+
"source",
|
|
159
|
+
];
|
|
160
|
+
const DOC_MARKER_COLUMNS = ["id", "source_path", "metadata"];
|
|
161
|
+
/**
|
|
162
|
+
* Compute the parent grouping key for every reranked result using a
|
|
163
|
+
* projection-only query (no `content`, no embedding vector) per source table.
|
|
164
|
+
*
|
|
165
|
+
* Returns `rankedKey(r) → parentKey | null`, keyed by `(source_table, id)` so a
|
|
166
|
+
* row id shared across two tables (cloud vs local docs, hot vs cold) can never
|
|
167
|
+
* collide into one entry. `null` for any row with no explicit chunk marker (the
|
|
168
|
+
* flag-off / legacy case — never grouped) and for any id with no backing row.
|
|
169
|
+
* Digests never chunk, so their ids map to `null` without a query. Pair with
|
|
170
|
+
* {@link groupByParent} (which looks up via {@link rankedKey}), then call
|
|
171
|
+
* {@link fetchRawRowsForRanked} on the post-group top-k representatives only.
|
|
172
|
+
*/
|
|
173
|
+
export async function fetchParentKeysForRanked(ranked) {
|
|
174
|
+
const byTable = new Map();
|
|
175
|
+
for (const r of ranked) {
|
|
176
|
+
const arr = byTable.get(r.source_table) ?? [];
|
|
177
|
+
arr.push(r.id);
|
|
178
|
+
byTable.set(r.source_table, arr);
|
|
179
|
+
}
|
|
180
|
+
const out = new Map();
|
|
181
|
+
for (const [tableName, ids] of byTable) {
|
|
182
|
+
if (ids.length === 0)
|
|
183
|
+
continue;
|
|
184
|
+
const keyOf = (id) => rankedKey({ source_table: tableName, id });
|
|
185
|
+
// Digests can never be chunked — skip the query entirely.
|
|
186
|
+
if (tableName === "digests") {
|
|
187
|
+
for (const id of ids)
|
|
188
|
+
out.set(keyOf(id), null);
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
const columns = tableName === "conversations_hot" || tableName === "conversations_cold"
|
|
192
|
+
? CONV_MARKER_COLUMNS
|
|
193
|
+
: DOC_MARKER_COLUMNS;
|
|
194
|
+
const rows = (await getTable(tableName)
|
|
195
|
+
.query()
|
|
196
|
+
.where(inFilter("id", ids, { validateAsRowId: true }))
|
|
197
|
+
.select([...columns])
|
|
198
|
+
.limit(ids.length)
|
|
199
|
+
.toArray());
|
|
200
|
+
for (const row of rows) {
|
|
201
|
+
const id = row.id;
|
|
202
|
+
out.set(keyOf(id), parentKeyForRow(tableName, row));
|
|
203
|
+
}
|
|
204
|
+
// Any id with no returned row reads as ungrouped.
|
|
205
|
+
for (const id of ids)
|
|
206
|
+
if (!out.has(keyOf(id)))
|
|
207
|
+
out.set(keyOf(id), null);
|
|
208
|
+
}
|
|
209
|
+
return out;
|
|
210
|
+
}
|
|
108
211
|
/** Derive the compact `tier` label from source_table (+ source_scope for docs). */
|
|
109
212
|
export function deriveTier(sourceTable, row) {
|
|
110
213
|
switch (sourceTable) {
|
|
@@ -152,14 +255,15 @@ export function tablesForTier(tier) {
|
|
|
152
255
|
* hand-crafted expansion requests that don't carry `source_table`.
|
|
153
256
|
*/
|
|
154
257
|
export async function fetchRowByIdForTier(id, tier, sourceTableHint) {
|
|
155
|
-
const escaped = id.replace(/'/g, "''");
|
|
156
258
|
const candidates = sourceTableHint
|
|
157
259
|
? [sourceTableHint]
|
|
158
260
|
: tablesForTier(tier);
|
|
159
261
|
for (const tableName of candidates) {
|
|
160
262
|
const rows = (await getTable(tableName)
|
|
161
263
|
.query()
|
|
162
|
-
|
|
264
|
+
// `id` is user-supplied via /search → escape only (no charset throw, so a
|
|
265
|
+
// malformed id stays a clean 404 rather than a 500).
|
|
266
|
+
.where(eqFilter("id", id))
|
|
163
267
|
.limit(1)
|
|
164
268
|
.toArray());
|
|
165
269
|
if (rows.length > 0) {
|
|
@@ -189,12 +293,12 @@ export async function fetchRowsByIdAcrossTables(id) {
|
|
|
189
293
|
* first-match-wins.
|
|
190
294
|
*/
|
|
191
295
|
export async function fetchRowsByIdInTables(id, tables) {
|
|
192
|
-
const escaped = id.replace(/'/g, "''");
|
|
193
296
|
const matches = [];
|
|
194
297
|
for (const tableName of tables) {
|
|
195
298
|
const rows = (await getTable(tableName)
|
|
196
299
|
.query()
|
|
197
|
-
|
|
300
|
+
// `id` is user-supplied via /search → escape only (see fetchRowByIdForTier).
|
|
301
|
+
.where(eqFilter("id", id))
|
|
198
302
|
.limit(2)
|
|
199
303
|
.toArray());
|
|
200
304
|
for (const row of rows) {
|
|
@@ -241,6 +345,7 @@ export function buildCompactHitFromRow(row, sourceTable, opts) {
|
|
|
241
345
|
detail: "full",
|
|
242
346
|
content_bytes,
|
|
243
347
|
content_tokens_estimate,
|
|
348
|
+
...evidencePointerParams(sourceTable, row),
|
|
244
349
|
},
|
|
245
350
|
},
|
|
246
351
|
};
|
|
@@ -255,6 +360,134 @@ export function buildCompactHitFromRow(row, sourceTable, opts) {
|
|
|
255
360
|
}
|
|
256
361
|
return hit;
|
|
257
362
|
}
|
|
363
|
+
/** Projection columns needed to stitch a conversation / document chunk set. */
|
|
364
|
+
const CONV_STITCH_COLUMNS = [
|
|
365
|
+
"id",
|
|
366
|
+
"content",
|
|
367
|
+
"parent_id",
|
|
368
|
+
"chunk_index",
|
|
369
|
+
"chunk_count",
|
|
370
|
+
"source",
|
|
371
|
+
];
|
|
372
|
+
const DOC_STITCH_COLUMNS = [
|
|
373
|
+
"id",
|
|
374
|
+
"content",
|
|
375
|
+
"metadata",
|
|
376
|
+
"source_path",
|
|
377
|
+
];
|
|
378
|
+
/**
|
|
379
|
+
* Fetch the WHOLE parent chunk set of `matchedRow`. Reads only the columns
|
|
380
|
+
* needed to reassemble content (never the embedding vector). Best-effort: a
|
|
381
|
+
* sibling missing from the table (a partially-written set) simply doesn't appear,
|
|
382
|
+
* and the stitcher renders the gap honestly.
|
|
383
|
+
*
|
|
384
|
+
* The caller always needs the full set: even a bounded `middle` window must
|
|
385
|
+
* advertise the full-parent size on its `detail="full"` escalation pointer, so we
|
|
386
|
+
* stitch the whole set for that advert and a sub-window for the returned body.
|
|
387
|
+
* Server-side IO/memory therefore scales with parent length regardless of detail
|
|
388
|
+
* — fine for the bounded response, but not free for very long Codex/Claude
|
|
389
|
+
* threads. We read each sibling's ordinal from the authoritative column /
|
|
390
|
+
* metadata because that is simpler and more robust than an index-range predicate
|
|
391
|
+
* over the stringified `chunk_index`; a range/ID-targeted fetch is the follow-up
|
|
392
|
+
* if long-parent expand cost shows up in practice.
|
|
393
|
+
*/
|
|
394
|
+
async function fetchChunkSiblings(sourceTable, matchedRow, marker) {
|
|
395
|
+
const isConv = sourceTable === "conversations_hot" || sourceTable === "conversations_cold";
|
|
396
|
+
const limit = marker.count + 4; // small slack to surface any stray duplicate
|
|
397
|
+
const where = isConv
|
|
398
|
+
? // A conversation chunk set shares parent_id AND source (the namespaced
|
|
399
|
+
// retrieval key includes source), so scope to both.
|
|
400
|
+
`${eqFilter("parent_id", marker.parentId)} AND ${eqFilter("source", typeof matchedRow["source"] === "string" ? matchedRow["source"] : "")}`
|
|
401
|
+
: eqFilter("source_path", marker.parentId);
|
|
402
|
+
const rows = (await getTable(sourceTable)
|
|
403
|
+
.query()
|
|
404
|
+
.where(where)
|
|
405
|
+
.select([...(isConv ? CONV_STITCH_COLUMNS : DOC_STITCH_COLUMNS)])
|
|
406
|
+
.limit(limit)
|
|
407
|
+
.toArray());
|
|
408
|
+
const out = [];
|
|
409
|
+
for (const row of rows) {
|
|
410
|
+
const m = readChunkMarker(sourceTable, row);
|
|
411
|
+
if (!m)
|
|
412
|
+
continue;
|
|
413
|
+
out.push({ index: m.index, content: row.content ?? "" });
|
|
414
|
+
}
|
|
415
|
+
return out;
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Build a CompactHit for the exact-ID expand path, reassembling chunk siblings
|
|
419
|
+
* when the matched row belongs to a chunk set.
|
|
420
|
+
*
|
|
421
|
+
* - Unchunked rows, and any `detail="summary"` request, are returned verbatim by
|
|
422
|
+
* {@link buildCompactHitFromRow} — so with `RIFT_CHUNKING` off (no marked rows)
|
|
423
|
+
* this is provably the pre-stitching behavior.
|
|
424
|
+
* - For a chunked row, `detail="full"` reassembles the whole parent in
|
|
425
|
+
* `chunk_index` order; `detail="middle"` reassembles the matched chunk plus a
|
|
426
|
+
* bounded neighbor window (`MIDDLE_CHUNK_NEIGHBORS` each side). Both ranges are
|
|
427
|
+
* contiguous, and seams are de-overlapped so duplicated text appears once.
|
|
428
|
+
*
|
|
429
|
+
* The representative identity (id, title, source, timestamp, snippet, score)
|
|
430
|
+
* comes from the matched row. `content` and the TOP-LEVEL size fields are
|
|
431
|
+
* replaced with the stitched body actually returned, while the `expand.params`
|
|
432
|
+
* size fields advertise the FULL parent (what the `detail="full"` escalation
|
|
433
|
+
* pointer would return), plus `chunk_count` / `stitched_chunks` for observability.
|
|
434
|
+
*/
|
|
435
|
+
export async function buildExpandedHit(row, sourceTable, opts) {
|
|
436
|
+
const detail = opts.detail ?? "full";
|
|
437
|
+
const marker = readChunkMarker(sourceTable, row);
|
|
438
|
+
if (!marker || detail === "summary") {
|
|
439
|
+
return buildCompactHitFromRow(row, sourceTable, opts);
|
|
440
|
+
}
|
|
441
|
+
// Fetch the whole parent set once, then stitch it twice: the full ordered set
|
|
442
|
+
// sizes the `detail="full"` escalation pointer (expand.params), and a bounded
|
|
443
|
+
// sub-window is the body we actually return for `detail="middle"`.
|
|
444
|
+
const allSiblings = await fetchChunkSiblings(sourceTable, row, marker);
|
|
445
|
+
// Expected range = the whole parent [0, count-1]; passing it lets the stitcher
|
|
446
|
+
// mark a missing leading/trailing section (a partially-written set) instead of
|
|
447
|
+
// returning a partial body that reads as the complete parent.
|
|
448
|
+
const fullStitched = stitchChunkContents(allSiblings, {
|
|
449
|
+
expectedStart: 0,
|
|
450
|
+
expectedEnd: marker.count - 1,
|
|
451
|
+
});
|
|
452
|
+
let returned = fullStitched;
|
|
453
|
+
if (detail === "middle") {
|
|
454
|
+
const start = Math.max(0, marker.index - MIDDLE_CHUNK_NEIGHBORS);
|
|
455
|
+
const end = Math.min(marker.count - 1, marker.index + MIDDLE_CHUNK_NEIGHBORS);
|
|
456
|
+
// Expected range = the requested window [start, end]; a sibling missing
|
|
457
|
+
// inside it (including its first/last index) renders as an omission marker.
|
|
458
|
+
// The deliberately out-of-window chunks are not "missing" and aren't marked.
|
|
459
|
+
returned = stitchChunkContents(allSiblings.filter((c) => c.index >= start && c.index <= end), { expectedStart: start, expectedEnd: end });
|
|
460
|
+
}
|
|
461
|
+
// Reuse all the title/source/snippet/timestamp derivation from the matched
|
|
462
|
+
// row, but start from "summary" so buildCompactHitFromRow doesn't also emit
|
|
463
|
+
// the single-chunk content — we replace content + size with the stitched body.
|
|
464
|
+
const hit = buildCompactHitFromRow(row, sourceTable, {
|
|
465
|
+
...opts,
|
|
466
|
+
detail: "summary",
|
|
467
|
+
});
|
|
468
|
+
// Top-level size = the body actually returned (middle window or full parent).
|
|
469
|
+
// The escalation pointer keeps detail="full" (set by buildCompactHitFromRow)
|
|
470
|
+
// and must advertise the FULL parent body re-expanding would return — so a
|
|
471
|
+
// bounded `middle` hit never under-states the cost of escalating to `full`.
|
|
472
|
+
const returnedSize = computeContentSize(returned.text);
|
|
473
|
+
const fullSize = computeContentSize(fullStitched.text);
|
|
474
|
+
hit.content = returned.text;
|
|
475
|
+
hit.content_bytes = returnedSize.content_bytes;
|
|
476
|
+
hit.content_tokens_estimate = returnedSize.content_tokens_estimate;
|
|
477
|
+
hit.expand.params["content_bytes"] = fullSize.content_bytes;
|
|
478
|
+
hit.expand.params["content_tokens_estimate"] = fullSize.content_tokens_estimate;
|
|
479
|
+
hit.chunk_count = marker.count;
|
|
480
|
+
hit.stitched_chunks = returned.sectionsUsed;
|
|
481
|
+
// A returned body that omits any sibling is an incomplete view of the parent.
|
|
482
|
+
// `content_truncated` is the existing contract downstream telemetry/agents use
|
|
483
|
+
// to know the body is partial: a bounded `middle` window trips it, and so does
|
|
484
|
+
// a `full` reassembly missing a sibling (a partially-written set). When a small
|
|
485
|
+
// parent's window happens to cover every chunk, sectionsUsed === count and it
|
|
486
|
+
// is correctly NOT flagged.
|
|
487
|
+
if (returned.sectionsUsed < marker.count)
|
|
488
|
+
hit.content_truncated = true;
|
|
489
|
+
return hit;
|
|
490
|
+
}
|
|
258
491
|
/** Derive a stable `source` string (what produced this row). */
|
|
259
492
|
export function deriveSource(sourceTable, row) {
|
|
260
493
|
if (sourceTable === "conversations_hot" || sourceTable === "conversations_cold") {
|
|
@@ -355,6 +588,7 @@ export function buildCompactHit(ranked, row, opts) {
|
|
|
355
588
|
detail: "full",
|
|
356
589
|
content_bytes,
|
|
357
590
|
content_tokens_estimate,
|
|
591
|
+
...evidencePointerParams(ranked.source_table, row),
|
|
358
592
|
},
|
|
359
593
|
},
|
|
360
594
|
};
|
|
@@ -367,6 +601,12 @@ export function buildCompactHit(ranked, row, opts) {
|
|
|
367
601
|
if (excerpt.truncated)
|
|
368
602
|
hit.content_truncated = true;
|
|
369
603
|
}
|
|
604
|
+
if (opts.siblingCount !== undefined && opts.siblingCount > 1) {
|
|
605
|
+
hit.matched_sections = opts.siblingCount;
|
|
606
|
+
}
|
|
607
|
+
if (opts.duplicateCount !== undefined && opts.duplicateCount > 1) {
|
|
608
|
+
hit.duplicate_count = opts.duplicateCount;
|
|
609
|
+
}
|
|
370
610
|
return hit;
|
|
371
611
|
}
|
|
372
612
|
// --- Markdown rendering (MCP text channel) ---
|
|
@@ -391,7 +631,13 @@ export function renderCompactMarkdown(hits, opts = {}) {
|
|
|
391
631
|
const score = typeof h.score === "number" ? h.score.toFixed(3) : "?";
|
|
392
632
|
const method = h.retrieval_method ?? "?";
|
|
393
633
|
const sizeWarning = formatSizeWarning(h.content_tokens_estimate);
|
|
394
|
-
|
|
634
|
+
const sections = typeof h.matched_sections === "number" && h.matched_sections > 1
|
|
635
|
+
? ` · +${h.matched_sections - 1} more section${h.matched_sections - 1 === 1 ? "" : "s"}`
|
|
636
|
+
: "";
|
|
637
|
+
const duplicates = typeof h.duplicate_count === "number" && h.duplicate_count > 1
|
|
638
|
+
? ` · +${h.duplicate_count - 1} duplicate capture${h.duplicate_count - 1 === 1 ? "" : "s"}`
|
|
639
|
+
: "";
|
|
640
|
+
lines.push(`${i + 1}. **${title}** — _${tier}_ · ${source} · score ${score} (${method})${sizeWarning ? ` · ${sizeWarning}` : ""}${sections}${duplicates}`);
|
|
395
641
|
if (h.snippet)
|
|
396
642
|
lines.push(` ${escapeMd(h.snippet)}`);
|
|
397
643
|
// Render the expand pointer with the *actual* params object the route
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../src/retrieval/compact.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../src/retrieval/compact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-pack.d.ts","sourceRoot":"","sources":["../../../src/retrieval/context-pack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"context-pack.d.ts","sourceRoot":"","sources":["../../../src/retrieval/context-pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,13 @@ import { rerank } from "./reranker.js";
|
|
|
3
3
|
import { getTable } from "../storage/tables.js";
|
|
4
4
|
import { resolveCwdRoot } from "./cwd.js";
|
|
5
5
|
import { computeContentSize } from "./compact.js";
|
|
6
|
+
import { groupByParent, rankedKey } from "./group-by-parent.js";
|
|
7
|
+
import { collapseConversationDuplicates, convDedupEnabled, poolHasChunkMarkers, } from "./conversation-dedup.js";
|
|
8
|
+
import { parentKeyForRow } from "../ingestion/chunk-meta.js";
|
|
9
|
+
import { inFilter } from "../storage/filter.js";
|
|
6
10
|
import { classifyClaimType, classifyEvidenceIntent, partitionEvidence, } from "./current-truth.js";
|
|
7
|
-
import { probeGitStates } from "./git-state.js";
|
|
11
|
+
import { probeGitStates, resolveRepoRoot, } from "./git-state.js";
|
|
12
|
+
import { buildCanonicalFileEvidence, canonicalFilesEnabled, } from "./canonical-files.js";
|
|
8
13
|
// --- Locked caps ---
|
|
9
14
|
export const ITEM_TEXT_MAX = 200;
|
|
10
15
|
export const SNIPPET_MAX = 200;
|
|
@@ -74,8 +79,8 @@ export async function buildContextPack(opts) {
|
|
|
74
79
|
]);
|
|
75
80
|
const degraded = convRes.degraded || docRes.degraded;
|
|
76
81
|
const degradedReason = convRes.degraded_reason ?? docRes.degraded_reason;
|
|
77
|
-
|
|
78
|
-
|
|
82
|
+
let convRanked = rerank(toRerankInput(convRes.candidates)).slice(0, fetchK);
|
|
83
|
+
let docRanked = rerank(toRerankInput(docRes.candidates.filter((c) => c.source_table === "structured_docs" ||
|
|
79
84
|
c.source_table === "structured_docs_local"))).slice(0, fetchK);
|
|
80
85
|
// Fetch raw rows for the top ranked results so we can pull `decisions`,
|
|
81
86
|
// `content`, `metadata.title`, `source_path`, etc.
|
|
@@ -83,6 +88,25 @@ export async function buildContextPack(opts) {
|
|
|
83
88
|
fetchRowsById(convRanked),
|
|
84
89
|
fetchRowsById(docRanked),
|
|
85
90
|
]);
|
|
91
|
+
// Collapse chunk siblings so one long conversation/document contributes a
|
|
92
|
+
// single card downstream (decisions / examples / rules / evidence) instead of
|
|
93
|
+
// one per chunk. No-op for unchunked/legacy rows (parentKeyForRow → null).
|
|
94
|
+
const parentKeyOf = (rows) => (r) => {
|
|
95
|
+
const row = rows.get(rankedKey(r));
|
|
96
|
+
return row ? parentKeyForRow(r.source_table, row) : null;
|
|
97
|
+
};
|
|
98
|
+
const convGrouped = groupByParent(convRanked, parentKeyOf(convRows));
|
|
99
|
+
convRanked = convGrouped.ranked;
|
|
100
|
+
docRanked = groupByParent(docRanked, parentKeyOf(docRows)).ranked;
|
|
101
|
+
// Collapse near-duplicate conversation captures (same task re-captured across
|
|
102
|
+
// sessions = distinct rows groupByParent can't merge) so one card per topic
|
|
103
|
+
// reaches decisions/examples/evidence instead of N redundant copies.
|
|
104
|
+
// Conversation rows only; docs pass through. Flag-gated (RIFT_CONV_DEDUP),
|
|
105
|
+
// provable no-op when off. Skipped when the conversation pool has chunk markers
|
|
106
|
+
// (best-chunk text would false-merge distinct conversations — see conversation-dedup).
|
|
107
|
+
if (convDedupEnabled() && !poolHasChunkMarkers(convGrouped)) {
|
|
108
|
+
convRanked = collapseConversationDuplicates(convRanked).ranked;
|
|
109
|
+
}
|
|
86
110
|
// Drop any doc candidates whose source_path points into engine-internal or
|
|
87
111
|
// build-artifact directories. These rows are not project rules — they are
|
|
88
112
|
// raw conversation snapshots, embedding cache files, quarantine drops,
|
|
@@ -90,7 +114,7 @@ export async function buildContextPack(opts) {
|
|
|
90
114
|
// real project-rule files (CLAUDE.md / AGENTS.md / PROJECT_STATE.md /
|
|
91
115
|
// TODO.md) out of the `rules` and `constraints` buckets. Conversation
|
|
92
116
|
// content is still reachable via `convRanked`.
|
|
93
|
-
const docRankedClean = docRanked.filter((r) => !shouldExcludeDocFromRules(docRows.get(r
|
|
117
|
+
const docRankedClean = docRanked.filter((r) => !shouldExcludeDocFromRules(docRows.get(rankedKey(r))?.["source_path"]));
|
|
94
118
|
// Constraints layer an extra filter on top via the contract helper:
|
|
95
119
|
// one-shot agent prompts (`*-prompt.md`) routinely carry "Hard
|
|
96
120
|
// Constraints" sections that match `extractConstraintLines`'s marker
|
|
@@ -100,7 +124,7 @@ export async function buildContextPack(opts) {
|
|
|
100
124
|
// `shouldExcludeDocFromConstraints` here — rather than composing the
|
|
101
125
|
// two helpers inline — keeps the constraint-exclusion contract in one
|
|
102
126
|
// place, so any future per-bucket exclusion is picked up automatically.
|
|
103
|
-
const docRankedForConstraints = docRanked.filter((r) => !shouldExcludeDocFromConstraints(docRows.get(r
|
|
127
|
+
const docRankedForConstraints = docRanked.filter((r) => !shouldExcludeDocFromConstraints(docRows.get(rankedKey(r))?.["source_path"]));
|
|
104
128
|
// Re-sort the conversation candidates by query relevance before
|
|
105
129
|
// extracting `decisions` and `examples`. The global rerank() composite
|
|
106
130
|
// weights S_sim at only 55% — quality/tier/freshness can pull a
|
|
@@ -130,7 +154,7 @@ export async function buildContextPack(opts) {
|
|
|
130
154
|
const gitStateInputs = [];
|
|
131
155
|
if (opts.cwd) {
|
|
132
156
|
for (const r of docRankedClean) {
|
|
133
|
-
const row = docRows.get(r
|
|
157
|
+
const row = docRows.get(rankedKey(r));
|
|
134
158
|
const sourcePath = row?.["source_path"] || undefined;
|
|
135
159
|
if (!sourcePath)
|
|
136
160
|
continue;
|
|
@@ -144,11 +168,11 @@ export async function buildContextPack(opts) {
|
|
|
144
168
|
const evidenceInputs = [
|
|
145
169
|
...convByRelevance.map((r) => ({
|
|
146
170
|
ranked: r,
|
|
147
|
-
row: convRows.get(r
|
|
171
|
+
row: convRows.get(rankedKey(r)),
|
|
148
172
|
kind: "conversation",
|
|
149
173
|
})),
|
|
150
174
|
...docRankedClean.map((r) => {
|
|
151
|
-
const row = docRows.get(r
|
|
175
|
+
const row = docRows.get(rankedKey(r));
|
|
152
176
|
const sourcePath = row?.["source_path"] || undefined;
|
|
153
177
|
const gs = sourcePath ? gitStateBySourcePath.get(sourcePath) : undefined;
|
|
154
178
|
const input = {
|
|
@@ -161,6 +185,30 @@ export async function buildContextPack(opts) {
|
|
|
161
185
|
return input;
|
|
162
186
|
}),
|
|
163
187
|
];
|
|
188
|
+
// Current-decision source coverage (read-only canonical-file lane, flag-gated,
|
|
189
|
+
// default OFF). Trackers aren't indexed, so a query like "what did we decide
|
|
190
|
+
// about pricing" can't retrieve PROJECT_STATE.md / TODO.md — read them live and
|
|
191
|
+
// prepend their query-matching sections as tracker-tier evidence. The
|
|
192
|
+
// partitioner below is UNCHANGED and decides placement BY INTENT: tracker docs
|
|
193
|
+
// lead `current_truth` for current_truth/blended, and stay `current_truth`
|
|
194
|
+
// background under reasoning_archive — so we run regardless of intent (note:
|
|
195
|
+
// "what did we decide …" itself classifies as reasoning_archive, the exact case
|
|
196
|
+
// this lane must cover). Gated only on the flag + a project root to locate the
|
|
197
|
+
// files; a non-matching query yields no inputs, so this is a no-op when off or
|
|
198
|
+
// when nothing matches.
|
|
199
|
+
if (canonicalFilesEnabled() && opts.cwd) {
|
|
200
|
+
// opts.cwd is the agent's working dir, often a SUBDIR (src/, tests/). The
|
|
201
|
+
// canonical files live at the repo root, so resolve the git top-level first
|
|
202
|
+
// (same resolution probeGitStates does) — otherwise we'd look in the subdir,
|
|
203
|
+
// find nothing, and silently no-op. Falls back to cwd outside a git repo.
|
|
204
|
+
const repoRoot = resolveRepoRoot(opts.cwd);
|
|
205
|
+
const canonical = buildCanonicalFileEvidence({
|
|
206
|
+
projectRoot: repoRoot,
|
|
207
|
+
query: opts.task,
|
|
208
|
+
});
|
|
209
|
+
if (canonical.length > 0)
|
|
210
|
+
evidenceInputs.unshift(...canonical);
|
|
211
|
+
}
|
|
164
212
|
const partition = partitionEvidence(evidenceInputs, {
|
|
165
213
|
intent,
|
|
166
214
|
claimType,
|
|
@@ -262,7 +310,7 @@ function extractDecisions(ranked, rows, cap) {
|
|
|
262
310
|
for (const r of ranked) {
|
|
263
311
|
if (out.length >= cap)
|
|
264
312
|
break;
|
|
265
|
-
const row = rows.get(r
|
|
313
|
+
const row = rows.get(rankedKey(r));
|
|
266
314
|
if (!row)
|
|
267
315
|
continue;
|
|
268
316
|
const raw = row["decisions"];
|
|
@@ -294,7 +342,7 @@ function buildExamples(ranked, rows, cap) {
|
|
|
294
342
|
for (const r of ranked) {
|
|
295
343
|
if (out.length >= cap)
|
|
296
344
|
break;
|
|
297
|
-
const row = rows.get(r
|
|
345
|
+
const row = rows.get(rankedKey(r));
|
|
298
346
|
const fullContent = row?.["content"] || r.content || "";
|
|
299
347
|
const summary = truncate(collapseWhitespace(row?.["summary"] || fullContent), SNIPPET_MAX);
|
|
300
348
|
if (!summary)
|
|
@@ -336,7 +384,7 @@ function buildRules(ranked, rows, cap) {
|
|
|
336
384
|
for (const r of ranked) {
|
|
337
385
|
if (out.length >= cap)
|
|
338
386
|
break;
|
|
339
|
-
const row = rows.get(r
|
|
387
|
+
const row = rows.get(rankedKey(r));
|
|
340
388
|
const content = row?.["content"] || r.content || "";
|
|
341
389
|
const snippet = truncate(collapseWhitespace(content), SNIPPET_MAX);
|
|
342
390
|
if (!snippet)
|
|
@@ -381,7 +429,7 @@ function extractConstraints(ranked, rows, cap) {
|
|
|
381
429
|
for (const r of ranked) {
|
|
382
430
|
if (out.length >= cap)
|
|
383
431
|
break;
|
|
384
|
-
const row = rows.get(r
|
|
432
|
+
const row = rows.get(rankedKey(r));
|
|
385
433
|
const content = row?.["content"] || r.content;
|
|
386
434
|
if (!content)
|
|
387
435
|
continue;
|
|
@@ -661,18 +709,20 @@ async function fetchRowsById(ranked) {
|
|
|
661
709
|
arr.push(r.id);
|
|
662
710
|
byTable.set(r.source_table, arr);
|
|
663
711
|
}
|
|
712
|
+
// Keyed by rankedKey — (source_table, id), not bare id — so a doc id present
|
|
713
|
+
// in both the cloud and local tables can't have one row overwrite the other
|
|
714
|
+
// and misattribute evidence. Look up via get(rankedKey(r)).
|
|
664
715
|
const out = new Map();
|
|
665
716
|
for (const [tableName, ids] of byTable) {
|
|
666
717
|
if (ids.length === 0)
|
|
667
718
|
continue;
|
|
668
|
-
const quoted = ids.map((i) => `'${i.replace(/'/g, "''")}'`).join(",");
|
|
669
719
|
const rows = (await getTable(tableName)
|
|
670
720
|
.query()
|
|
671
|
-
.where(
|
|
721
|
+
.where(inFilter("id", ids, { validateAsRowId: true }))
|
|
672
722
|
.limit(ids.length)
|
|
673
723
|
.toArray());
|
|
674
724
|
for (const row of rows) {
|
|
675
|
-
out.set(row["id"], row);
|
|
725
|
+
out.set(rankedKey({ source_table: tableName, id: row["id"] }), row);
|
|
676
726
|
}
|
|
677
727
|
}
|
|
678
728
|
return out;
|