@getrift/rift 0.1.0-beta.1 → 0.1.0-beta.11
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 +154 -0
- package/dist/src/auth/keychain.d.ts +9 -0
- package/dist/src/auth/keychain.d.ts.map +1 -1
- package/dist/src/auth/keychain.js +37 -0
- package/dist/src/auth/keychain.js.map +1 -1
- package/dist/src/capture/recover-quarantine.d.ts +221 -0
- package/dist/src/capture/recover-quarantine.d.ts.map +1 -0
- package/dist/src/capture/recover-quarantine.js +453 -0
- package/dist/src/capture/recover-quarantine.js.map +1 -0
- package/dist/src/cli/commands/backfill.d.ts.map +1 -1
- package/dist/src/cli/commands/backfill.js +5 -2
- package/dist/src/cli/commands/backfill.js.map +1 -1
- package/dist/src/cli/commands/capture-recover.d.ts +12 -0
- package/dist/src/cli/commands/capture-recover.d.ts.map +1 -0
- package/dist/src/cli/commands/capture-recover.js +120 -0
- package/dist/src/cli/commands/capture-recover.js.map +1 -0
- package/dist/src/cli/commands/capture.d.ts.map +1 -1
- package/dist/src/cli/commands/capture.js +10 -4
- package/dist/src/cli/commands/capture.js.map +1 -1
- package/dist/src/cli/commands/feedback.d.ts.map +1 -1
- package/dist/src/cli/commands/feedback.js +6 -2
- package/dist/src/cli/commands/feedback.js.map +1 -1
- package/dist/src/cli/commands/mcp-install.js +5 -2
- package/dist/src/cli/commands/mcp-install.js.map +1 -1
- package/dist/src/cli/commands/onboard.d.ts +24 -0
- package/dist/src/cli/commands/onboard.d.ts.map +1 -1
- package/dist/src/cli/commands/onboard.js +119 -21
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/rebuild.d.ts.map +1 -1
- package/dist/src/cli/commands/rebuild.js +6 -3
- package/dist/src/cli/commands/rebuild.js.map +1 -1
- package/dist/src/cli/commands/review.d.ts.map +1 -1
- package/dist/src/cli/commands/review.js +22 -7
- package/dist/src/cli/commands/review.js.map +1 -1
- package/dist/src/cli/commands/search.d.ts.map +1 -1
- package/dist/src/cli/commands/search.js +28 -4
- package/dist/src/cli/commands/search.js.map +1 -1
- package/dist/src/cli/commands/status.d.ts.map +1 -1
- package/dist/src/cli/commands/status.js +48 -2
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/commands/token-issue.d.ts.map +1 -1
- package/dist/src/cli/commands/token-issue.js +9 -1
- package/dist/src/cli/commands/token-issue.js.map +1 -1
- package/dist/src/cli/commands/triage.d.ts.map +1 -1
- package/dist/src/cli/commands/triage.js +7 -5
- package/dist/src/cli/commands/triage.js.map +1 -1
- package/dist/src/cli/commands/update.d.ts +26 -0
- package/dist/src/cli/commands/update.d.ts.map +1 -0
- package/dist/src/cli/commands/update.js +130 -0
- package/dist/src/cli/commands/update.js.map +1 -0
- package/dist/src/cli/default-config-path.d.ts +15 -0
- package/dist/src/cli/default-config-path.d.ts.map +1 -0
- package/dist/src/cli/default-config-path.js +27 -0
- package/dist/src/cli/default-config-path.js.map +1 -0
- package/dist/src/cli/http-client.d.ts +56 -1
- package/dist/src/cli/http-client.d.ts.map +1 -1
- package/dist/src/cli/http-client.js +161 -6
- package/dist/src/cli/http-client.js.map +1 -1
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +25 -6
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/status/friend-header.d.ts.map +1 -1
- package/dist/src/cli/status/friend-header.js +117 -7
- package/dist/src/cli/status/friend-header.js.map +1 -1
- package/dist/src/ingestion/inbox-core/conversation-fingerprint.d.ts +2 -0
- package/dist/src/ingestion/inbox-core/conversation-fingerprint.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/conversation-fingerprint.js +27 -0
- package/dist/src/ingestion/inbox-core/conversation-fingerprint.js.map +1 -0
- package/dist/src/ingestion/inbox-core/conversation-key.d.ts +2 -0
- package/dist/src/ingestion/inbox-core/conversation-key.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/conversation-key.js +31 -0
- package/dist/src/ingestion/inbox-core/conversation-key.js.map +1 -0
- package/dist/src/ingestion/inbox-core/extensions.d.ts +3 -0
- package/dist/src/ingestion/inbox-core/extensions.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/extensions.js +16 -0
- package/dist/src/ingestion/inbox-core/extensions.js.map +1 -0
- package/dist/src/ingestion/inbox-core/idempotency.d.ts +2 -0
- package/dist/src/ingestion/inbox-core/idempotency.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/idempotency.js +22 -0
- package/dist/src/ingestion/inbox-core/idempotency.js.map +1 -0
- package/dist/src/ingestion/inbox-core/index.d.ts +20 -0
- package/dist/src/ingestion/inbox-core/index.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/index.js +20 -0
- package/dist/src/ingestion/inbox-core/index.js.map +1 -0
- package/dist/src/ingestion/inbox-core/source-detection.d.ts +2 -0
- package/dist/src/ingestion/inbox-core/source-detection.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/source-detection.js +23 -0
- package/dist/src/ingestion/inbox-core/source-detection.js.map +1 -0
- package/dist/src/ingestion/inbox-core/source-sniffer.d.ts +11 -0
- package/dist/src/ingestion/inbox-core/source-sniffer.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/source-sniffer.js +69 -0
- package/dist/src/ingestion/inbox-core/source-sniffer.js.map +1 -0
- package/dist/src/ingestion/inbox-core/zip-sniffer.d.ts +70 -0
- package/dist/src/ingestion/inbox-core/zip-sniffer.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/zip-sniffer.js +161 -0
- package/dist/src/ingestion/inbox-core/zip-sniffer.js.map +1 -0
- package/dist/src/ingestion/inbox-watcher.d.ts.map +1 -1
- package/dist/src/ingestion/inbox-watcher.js +34 -50
- package/dist/src/ingestion/inbox-watcher.js.map +1 -1
- package/dist/src/ingestion/indexer.d.ts +7 -0
- package/dist/src/ingestion/indexer.d.ts.map +1 -1
- package/dist/src/ingestion/indexer.js +36 -2
- package/dist/src/ingestion/indexer.js.map +1 -1
- package/dist/src/ingestion/metadata-extraction.d.ts +8 -5
- package/dist/src/ingestion/metadata-extraction.d.ts.map +1 -1
- package/dist/src/ingestion/metadata-extraction.js +24 -5
- package/dist/src/ingestion/metadata-extraction.js.map +1 -1
- package/dist/src/ingestion/skip-quarantine.d.ts +10 -0
- package/dist/src/ingestion/skip-quarantine.d.ts.map +1 -0
- package/dist/src/ingestion/skip-quarantine.js +35 -0
- package/dist/src/ingestion/skip-quarantine.js.map +1 -0
- package/dist/src/jobs/handlers/compact.d.ts.map +1 -1
- package/dist/src/jobs/handlers/compact.js +25 -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 +214 -36
- 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 +30 -8
- package/dist/src/jobs/handlers/reconcile.js.map +1 -1
- package/dist/src/jobs/handlers/reindex.d.ts.map +1 -1
- package/dist/src/jobs/handlers/reindex.js +12 -2
- package/dist/src/jobs/handlers/reindex.js.map +1 -1
- package/dist/src/jobs/handlers/save.d.ts.map +1 -1
- package/dist/src/jobs/handlers/save.js +9 -2
- package/dist/src/jobs/handlers/save.js.map +1 -1
- package/dist/src/jobs/queue.d.ts +11 -0
- package/dist/src/jobs/queue.d.ts.map +1 -1
- package/dist/src/jobs/queue.js +18 -0
- package/dist/src/jobs/queue.js.map +1 -1
- package/dist/src/jobs/worker-entry.d.ts.map +1 -1
- package/dist/src/jobs/worker-entry.js +2 -0
- package/dist/src/jobs/worker-entry.js.map +1 -1
- package/dist/src/main.js +36 -4
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp/errors.d.ts.map +1 -1
- package/dist/src/mcp/errors.js +20 -1
- package/dist/src/mcp/errors.js.map +1 -1
- package/dist/src/mcp/tools/context-pack.d.ts.map +1 -1
- package/dist/src/mcp/tools/context-pack.js +5 -2
- package/dist/src/mcp/tools/context-pack.js.map +1 -1
- package/dist/src/mcp/tools/search.d.ts +6 -2
- package/dist/src/mcp/tools/search.d.ts.map +1 -1
- package/dist/src/mcp/tools/search.js +34 -4
- package/dist/src/mcp/tools/search.js.map +1 -1
- package/dist/src/observability/embedding-events.d.ts +52 -0
- package/dist/src/observability/embedding-events.d.ts.map +1 -0
- package/dist/src/observability/embedding-events.js +149 -0
- package/dist/src/observability/embedding-events.js.map +1 -0
- package/dist/src/observability/index-events.d.ts +70 -0
- package/dist/src/observability/index-events.d.ts.map +1 -0
- package/dist/src/observability/index-events.js +148 -0
- package/dist/src/observability/index-events.js.map +1 -0
- package/dist/src/observability/tool-usage-stats.d.ts +69 -4
- package/dist/src/observability/tool-usage-stats.d.ts.map +1 -1
- package/dist/src/observability/tool-usage-stats.js +88 -31
- package/dist/src/observability/tool-usage-stats.js.map +1 -1
- package/dist/src/observability/tool-usage.d.ts +100 -7
- package/dist/src/observability/tool-usage.d.ts.map +1 -1
- package/dist/src/observability/tool-usage.js +196 -33
- package/dist/src/observability/tool-usage.js.map +1 -1
- package/dist/src/observability/version-check.d.ts +70 -0
- package/dist/src/observability/version-check.d.ts.map +1 -0
- package/dist/src/observability/version-check.js +197 -0
- package/dist/src/observability/version-check.js.map +1 -0
- package/dist/src/providers/ollama-embed.d.ts +2 -1
- package/dist/src/providers/ollama-embed.d.ts.map +1 -1
- package/dist/src/providers/ollama-embed.js +1 -0
- package/dist/src/providers/ollama-embed.js.map +1 -1
- package/dist/src/providers/openai-metadata-extraction.d.ts +3 -3
- package/dist/src/providers/openai-metadata-extraction.d.ts.map +1 -1
- package/dist/src/providers/openai-metadata-extraction.js +18 -3
- package/dist/src/providers/openai-metadata-extraction.js.map +1 -1
- package/dist/src/providers/stub.d.ts +2 -0
- package/dist/src/providers/stub.d.ts.map +1 -1
- package/dist/src/providers/stub.js +2 -0
- package/dist/src/providers/stub.js.map +1 -1
- package/dist/src/providers/types.d.ts +11 -0
- package/dist/src/providers/types.d.ts.map +1 -1
- package/dist/src/providers/voyage.d.ts +2 -1
- package/dist/src/providers/voyage.d.ts.map +1 -1
- package/dist/src/providers/voyage.js +1 -0
- package/dist/src/providers/voyage.js.map +1 -1
- package/dist/src/retrieval/compact.d.ts +115 -2
- package/dist/src/retrieval/compact.d.ts.map +1 -1
- package/dist/src/retrieval/compact.js +154 -5
- package/dist/src/retrieval/compact.js.map +1 -1
- package/dist/src/retrieval/context-pack.d.ts +8 -0
- package/dist/src/retrieval/context-pack.d.ts.map +1 -1
- package/dist/src/retrieval/context-pack.js +17 -2
- package/dist/src/retrieval/context-pack.js.map +1 -1
- package/dist/src/server/app.d.ts.map +1 -1
- package/dist/src/server/app.js +67 -1
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/server/routes/friend-status.d.ts +202 -3
- package/dist/src/server/routes/friend-status.d.ts.map +1 -1
- package/dist/src/server/routes/friend-status.js +290 -7
- package/dist/src/server/routes/friend-status.js.map +1 -1
- package/dist/src/server/routes/mcp-usage.d.ts +4 -4
- package/dist/src/server/routes/search.d.ts.map +1 -1
- package/dist/src/server/routes/search.js +144 -24
- package/dist/src/server/routes/search.js.map +1 -1
- package/dist/src/storage/rebuild.d.ts +14 -1
- package/dist/src/storage/rebuild.d.ts.map +1 -1
- package/dist/src/storage/rebuild.js +160 -34
- package/dist/src/storage/rebuild.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,31 @@ import type { RankedResult } from "./reranker.js";
|
|
|
3
3
|
export declare const SNIPPET_MAX = 400;
|
|
4
4
|
export declare const SUMMARY_MAX = 800;
|
|
5
5
|
export declare const TITLE_MAX = 120;
|
|
6
|
+
/**
|
|
7
|
+
* Token threshold above which `renderCompactMarkdown` annotates a hit with a
|
|
8
|
+
* compact `~Nk tokens` warning. The point is to make the agent see the size
|
|
9
|
+
* before it commits to a `detail=full` expansion that would blow context.
|
|
10
|
+
*/
|
|
11
|
+
export declare const LARGE_HIT_TOKEN_THRESHOLD = 10000;
|
|
12
|
+
/**
|
|
13
|
+
* Middle-detail excerpt caps (characters, matching SNIPPET_MAX / SUMMARY_MAX).
|
|
14
|
+
* Targets ~2k–4k tokens total for an evidence-focused view that sits between
|
|
15
|
+
* `summary` (≤800 chars) and `full` (entire row content):
|
|
16
|
+
*
|
|
17
|
+
* - rows at or below MIDDLE_INLINE_THRESHOLD_CHARS get the full content inline
|
|
18
|
+
* (the excerpt would be the same content with no truncation, so skip the
|
|
19
|
+
* elision overhead);
|
|
20
|
+
* - larger rows get the first MIDDLE_HEAD_CHARS + last MIDDLE_TAIL_CHARS with
|
|
21
|
+
* a single elision marker between, preserving the bookends most useful for
|
|
22
|
+
* fact-checking (initial question, final answer/decision) while bounding
|
|
23
|
+
* cost.
|
|
24
|
+
*
|
|
25
|
+
* Char-based bounds are an intentional approximation: for typical mixed text,
|
|
26
|
+
* 1 token ≈ 4 chars, so 8000 head + 4000 tail ≈ 3000 tokens.
|
|
27
|
+
*/
|
|
28
|
+
export declare const MIDDLE_HEAD_CHARS = 8000;
|
|
29
|
+
export declare const MIDDLE_TAIL_CHARS = 4000;
|
|
30
|
+
export declare const MIDDLE_INLINE_THRESHOLD_CHARS = 12000;
|
|
6
31
|
export type Tier = "hot" | "cold" | "digest" | "document" | "structured_doc";
|
|
7
32
|
export interface CompactExpand {
|
|
8
33
|
route: string;
|
|
@@ -18,10 +43,60 @@ export interface CompactHit {
|
|
|
18
43
|
tier: Tier;
|
|
19
44
|
snippet: string;
|
|
20
45
|
summary: string;
|
|
46
|
+
/**
|
|
47
|
+
* Exact UTF-8 byte length of the row's full content. Always populated, so
|
|
48
|
+
* callers can sort or filter by size before requesting `detail="full"`.
|
|
49
|
+
*/
|
|
50
|
+
content_bytes: number;
|
|
51
|
+
/**
|
|
52
|
+
* Rough token count for the row's full content (~bytes/4). Heuristic, not a
|
|
53
|
+
* model-accurate count — meant for "will this fit in my context" decisions.
|
|
54
|
+
*/
|
|
55
|
+
content_tokens_estimate: number;
|
|
21
56
|
expand: CompactExpand;
|
|
22
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Row content, present when the caller asked for detail="full" or
|
|
59
|
+
* detail="middle". For middle, this is a bounded excerpt (head + elision
|
|
60
|
+
* marker + tail) when the row is larger than MIDDLE_INLINE_THRESHOLD_CHARS,
|
|
61
|
+
* or the full content inline when the row fits under that threshold.
|
|
62
|
+
* `content_bytes` always reflects the *original* row size, so the agent
|
|
63
|
+
* can tell whether middle content was truncated.
|
|
64
|
+
*/
|
|
23
65
|
content?: string;
|
|
66
|
+
/**
|
|
67
|
+
* True when `content` is a bounded excerpt rather than the full row body
|
|
68
|
+
* (i.e., middle-detail hit large enough to require head+tail truncation).
|
|
69
|
+
* Absent otherwise — agents that care about completeness check this flag
|
|
70
|
+
* before treating `content` as authoritative.
|
|
71
|
+
*/
|
|
72
|
+
content_truncated?: boolean;
|
|
24
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Pre-call size advert for an expansion: every compact hit carries this on
|
|
76
|
+
* both the top-level fields and inside `expand.params`, so an agent that
|
|
77
|
+
* copy-pastes the expand pointer verbatim still sees the size warning at the
|
|
78
|
+
* exact moment it chooses whether to spend context on `detail="full"`.
|
|
79
|
+
*/
|
|
80
|
+
export declare function computeContentSize(content: string): {
|
|
81
|
+
content_bytes: number;
|
|
82
|
+
content_tokens_estimate: number;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Build the middle-detail content excerpt for a row body.
|
|
86
|
+
*
|
|
87
|
+
* - For content at or below MIDDLE_INLINE_THRESHOLD_CHARS, returns the content
|
|
88
|
+
* as-is (no truncation, `truncated: false`) — at that size the head+tail
|
|
89
|
+
* excerpt would equal the input anyway, and skipping the elision marker
|
|
90
|
+
* keeps the response identical to detail="full" for small rows.
|
|
91
|
+
* - For larger content, returns `head + elision marker + tail` where head is
|
|
92
|
+
* the first MIDDLE_HEAD_CHARS and tail is the last MIDDLE_TAIL_CHARS. The
|
|
93
|
+
* marker reports how many characters were elided so a reader knows the gap
|
|
94
|
+
* size without having to subtract.
|
|
95
|
+
*/
|
|
96
|
+
export declare function buildMiddleExcerpt(content: string): {
|
|
97
|
+
text: string;
|
|
98
|
+
truncated: boolean;
|
|
99
|
+
};
|
|
25
100
|
type RawRow = Record<string, unknown>;
|
|
26
101
|
/**
|
|
27
102
|
* Batch-fetch the raw source rows for reranked results.
|
|
@@ -52,6 +127,31 @@ export declare function fetchRowByIdForTier(id: string, tier: Tier, sourceTableH
|
|
|
52
127
|
row: RawRow;
|
|
53
128
|
sourceTable: TableName;
|
|
54
129
|
} | null>;
|
|
130
|
+
/**
|
|
131
|
+
* Fetch every row matching `id` across all supported tables.
|
|
132
|
+
*
|
|
133
|
+
* Used by the no-tier exact-ID path on /search: callers that pass only `id`
|
|
134
|
+
* deserve a deterministic answer — exactly one row, an explicit not-found,
|
|
135
|
+
* or an explicit ambiguous-ID error. Never silently fall back to ranked
|
|
136
|
+
* search.
|
|
137
|
+
*
|
|
138
|
+
* Returns an array of {row, sourceTable} hits — empty if nothing matches.
|
|
139
|
+
*/
|
|
140
|
+
export declare function fetchRowsByIdAcrossTables(id: string): Promise<Array<{
|
|
141
|
+
row: RawRow;
|
|
142
|
+
sourceTable: TableName;
|
|
143
|
+
}>>;
|
|
144
|
+
/**
|
|
145
|
+
* Fetch every row matching `id` across the given tables. Used by the
|
|
146
|
+
* tier-without-source_table path: when a tier maps to multiple backing
|
|
147
|
+
* tables (document / structured_doc → cloud + local), callers deserve the
|
|
148
|
+
* same ambiguity guarantee as the bare-id path rather than silent
|
|
149
|
+
* first-match-wins.
|
|
150
|
+
*/
|
|
151
|
+
export declare function fetchRowsByIdInTables(id: string, tables: readonly TableName[]): Promise<Array<{
|
|
152
|
+
row: RawRow;
|
|
153
|
+
sourceTable: TableName;
|
|
154
|
+
}>>;
|
|
55
155
|
/**
|
|
56
156
|
* Build a CompactHit directly from a raw row (bypassing retrieval/ranking).
|
|
57
157
|
* Used by the id-based expansion path: score is fixed at 1.0 and
|
|
@@ -60,6 +160,12 @@ export declare function fetchRowByIdForTier(id: string, tier: Tier, sourceTableH
|
|
|
60
160
|
export declare function buildCompactHitFromRow(row: RawRow, sourceTable: TableName, opts: {
|
|
61
161
|
query?: string;
|
|
62
162
|
expandRoute?: string;
|
|
163
|
+
/**
|
|
164
|
+
* Detail level for the returned hit. Defaults to "full" — the exact-ID
|
|
165
|
+
* path is overwhelmingly used to fetch the row body verbatim. "middle"
|
|
166
|
+
* yields a bounded head+tail excerpt; "summary" omits content entirely.
|
|
167
|
+
*/
|
|
168
|
+
detail?: DetailLevel;
|
|
63
169
|
}): CompactHit;
|
|
64
170
|
/** Derive a stable `source` string (what produced this row). */
|
|
65
171
|
export declare function deriveSource(sourceTable: TableName, row?: RawRow): string;
|
|
@@ -73,9 +179,10 @@ export declare function deriveTitle(sourceTable: TableName, row: RawRow | undefi
|
|
|
73
179
|
export declare function deriveSnippet(content: string, query: string, retrievalMethod: string): string;
|
|
74
180
|
/** Derive a bounded summary. Prefers stored summary, then content fallback. */
|
|
75
181
|
export declare function deriveSummary(row: RawRow | undefined, content: string): string;
|
|
182
|
+
export type DetailLevel = "summary" | "middle" | "full";
|
|
76
183
|
export interface BuildCompactHitOptions {
|
|
77
184
|
query: string;
|
|
78
|
-
detail:
|
|
185
|
+
detail: DetailLevel;
|
|
79
186
|
/** Route to advertise in `expand.route`. Defaults to "/search". */
|
|
80
187
|
expandRoute?: string;
|
|
81
188
|
}
|
|
@@ -85,5 +192,11 @@ export declare function renderCompactMarkdown(hits: CompactHit[], opts?: {
|
|
|
85
192
|
degraded?: boolean;
|
|
86
193
|
degradedReason?: string;
|
|
87
194
|
}): string;
|
|
195
|
+
/**
|
|
196
|
+
* Compact size warning for large hits, e.g. `~82k tokens`. Returns the empty
|
|
197
|
+
* string for hits below `LARGE_HIT_TOKEN_THRESHOLD` so the markdown stays
|
|
198
|
+
* concise when expansion would be cheap.
|
|
199
|
+
*/
|
|
200
|
+
export declare function formatSizeWarning(tokensEstimate: number | undefined): string;
|
|
88
201
|
export {};
|
|
89
202
|
//# sourceMappingURL=compact.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../src/retrieval/compact.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../src/retrieval/compact.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,75 @@
|
|
|
9
9
|
* - snippet <= 400 characters
|
|
10
10
|
* - summary <= 800 characters
|
|
11
11
|
*/
|
|
12
|
-
import { getTable } from "../storage/tables.js";
|
|
12
|
+
import { getTable, TABLE_NAMES } from "../storage/tables.js";
|
|
13
13
|
import { tokenize } from "./lexical.js";
|
|
14
14
|
export const SNIPPET_MAX = 400;
|
|
15
15
|
export const SUMMARY_MAX = 800;
|
|
16
16
|
export const TITLE_MAX = 120;
|
|
17
|
+
/**
|
|
18
|
+
* Token threshold above which `renderCompactMarkdown` annotates a hit with a
|
|
19
|
+
* compact `~Nk tokens` warning. The point is to make the agent see the size
|
|
20
|
+
* before it commits to a `detail=full` expansion that would blow context.
|
|
21
|
+
*/
|
|
22
|
+
export const LARGE_HIT_TOKEN_THRESHOLD = 10_000;
|
|
23
|
+
/**
|
|
24
|
+
* Middle-detail excerpt caps (characters, matching SNIPPET_MAX / SUMMARY_MAX).
|
|
25
|
+
* Targets ~2k–4k tokens total for an evidence-focused view that sits between
|
|
26
|
+
* `summary` (≤800 chars) and `full` (entire row content):
|
|
27
|
+
*
|
|
28
|
+
* - rows at or below MIDDLE_INLINE_THRESHOLD_CHARS get the full content inline
|
|
29
|
+
* (the excerpt would be the same content with no truncation, so skip the
|
|
30
|
+
* elision overhead);
|
|
31
|
+
* - larger rows get the first MIDDLE_HEAD_CHARS + last MIDDLE_TAIL_CHARS with
|
|
32
|
+
* a single elision marker between, preserving the bookends most useful for
|
|
33
|
+
* fact-checking (initial question, final answer/decision) while bounding
|
|
34
|
+
* cost.
|
|
35
|
+
*
|
|
36
|
+
* Char-based bounds are an intentional approximation: for typical mixed text,
|
|
37
|
+
* 1 token ≈ 4 chars, so 8000 head + 4000 tail ≈ 3000 tokens.
|
|
38
|
+
*/
|
|
39
|
+
export const MIDDLE_HEAD_CHARS = 8_000;
|
|
40
|
+
export const MIDDLE_TAIL_CHARS = 4_000;
|
|
41
|
+
export const MIDDLE_INLINE_THRESHOLD_CHARS = 12_000;
|
|
42
|
+
/**
|
|
43
|
+
* Pre-call size advert for an expansion: every compact hit carries this on
|
|
44
|
+
* both the top-level fields and inside `expand.params`, so an agent that
|
|
45
|
+
* copy-pastes the expand pointer verbatim still sees the size warning at the
|
|
46
|
+
* exact moment it chooses whether to spend context on `detail="full"`.
|
|
47
|
+
*/
|
|
48
|
+
export function computeContentSize(content) {
|
|
49
|
+
const content_bytes = Buffer.byteLength(content, "utf8");
|
|
50
|
+
const content_tokens_estimate = Math.ceil(content_bytes / 4);
|
|
51
|
+
return { content_bytes, content_tokens_estimate };
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Build the middle-detail content excerpt for a row body.
|
|
55
|
+
*
|
|
56
|
+
* - For content at or below MIDDLE_INLINE_THRESHOLD_CHARS, returns the content
|
|
57
|
+
* as-is (no truncation, `truncated: false`) — at that size the head+tail
|
|
58
|
+
* excerpt would equal the input anyway, and skipping the elision marker
|
|
59
|
+
* keeps the response identical to detail="full" for small rows.
|
|
60
|
+
* - For larger content, returns `head + elision marker + tail` where head is
|
|
61
|
+
* the first MIDDLE_HEAD_CHARS and tail is the last MIDDLE_TAIL_CHARS. The
|
|
62
|
+
* marker reports how many characters were elided so a reader knows the gap
|
|
63
|
+
* size without having to subtract.
|
|
64
|
+
*/
|
|
65
|
+
export function buildMiddleExcerpt(content) {
|
|
66
|
+
if (content.length <= MIDDLE_INLINE_THRESHOLD_CHARS) {
|
|
67
|
+
return { text: content, truncated: false };
|
|
68
|
+
}
|
|
69
|
+
const head = content.slice(0, MIDDLE_HEAD_CHARS);
|
|
70
|
+
const tail = content.slice(content.length - MIDDLE_TAIL_CHARS);
|
|
71
|
+
const elidedChars = content.length - MIDDLE_HEAD_CHARS - MIDDLE_TAIL_CHARS;
|
|
72
|
+
const elidedTokens = Math.ceil(Buffer.byteLength(content, "utf8") / 4);
|
|
73
|
+
const marker = `\n\n[…${elidedChars.toLocaleString("en-US")} chars elided — full row is ~${formatTokensShort(elidedTokens)} tokens, request detail="full" to expand…]\n\n`;
|
|
74
|
+
return { text: head + marker + tail, truncated: true };
|
|
75
|
+
}
|
|
76
|
+
function formatTokensShort(tokens) {
|
|
77
|
+
if (tokens >= 1000)
|
|
78
|
+
return `${Math.round(tokens / 1000)}k`;
|
|
79
|
+
return String(tokens);
|
|
80
|
+
}
|
|
17
81
|
/**
|
|
18
82
|
* Batch-fetch the raw source rows for reranked results.
|
|
19
83
|
* Groups ids by source table and issues one `id IN (...)` query per table.
|
|
@@ -104,6 +168,41 @@ export async function fetchRowByIdForTier(id, tier, sourceTableHint) {
|
|
|
104
168
|
}
|
|
105
169
|
return null;
|
|
106
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Fetch every row matching `id` across all supported tables.
|
|
173
|
+
*
|
|
174
|
+
* Used by the no-tier exact-ID path on /search: callers that pass only `id`
|
|
175
|
+
* deserve a deterministic answer — exactly one row, an explicit not-found,
|
|
176
|
+
* or an explicit ambiguous-ID error. Never silently fall back to ranked
|
|
177
|
+
* search.
|
|
178
|
+
*
|
|
179
|
+
* Returns an array of {row, sourceTable} hits — empty if nothing matches.
|
|
180
|
+
*/
|
|
181
|
+
export async function fetchRowsByIdAcrossTables(id) {
|
|
182
|
+
return fetchRowsByIdInTables(id, TABLE_NAMES);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Fetch every row matching `id` across the given tables. Used by the
|
|
186
|
+
* tier-without-source_table path: when a tier maps to multiple backing
|
|
187
|
+
* tables (document / structured_doc → cloud + local), callers deserve the
|
|
188
|
+
* same ambiguity guarantee as the bare-id path rather than silent
|
|
189
|
+
* first-match-wins.
|
|
190
|
+
*/
|
|
191
|
+
export async function fetchRowsByIdInTables(id, tables) {
|
|
192
|
+
const escaped = id.replace(/'/g, "''");
|
|
193
|
+
const matches = [];
|
|
194
|
+
for (const tableName of tables) {
|
|
195
|
+
const rows = (await getTable(tableName)
|
|
196
|
+
.query()
|
|
197
|
+
.where(`id = '${escaped}'`)
|
|
198
|
+
.limit(2)
|
|
199
|
+
.toArray());
|
|
200
|
+
for (const row of rows) {
|
|
201
|
+
matches.push({ row, sourceTable: tableName });
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return matches;
|
|
205
|
+
}
|
|
107
206
|
/**
|
|
108
207
|
* Build a CompactHit directly from a raw row (bypassing retrieval/ranking).
|
|
109
208
|
* Used by the id-based expansion path: score is fixed at 1.0 and
|
|
@@ -119,7 +218,9 @@ export function buildCompactHitFromRow(row, sourceTable, opts) {
|
|
|
119
218
|
row.created_at ||
|
|
120
219
|
"";
|
|
121
220
|
const id = row.id;
|
|
122
|
-
|
|
221
|
+
const { content_bytes, content_tokens_estimate } = computeContentSize(content);
|
|
222
|
+
const detail = opts.detail ?? "full";
|
|
223
|
+
const hit = {
|
|
123
224
|
id,
|
|
124
225
|
source: deriveSource(sourceTable, row),
|
|
125
226
|
title,
|
|
@@ -129,12 +230,30 @@ export function buildCompactHitFromRow(row, sourceTable, opts) {
|
|
|
129
230
|
tier,
|
|
130
231
|
snippet,
|
|
131
232
|
summary,
|
|
233
|
+
content_bytes,
|
|
234
|
+
content_tokens_estimate,
|
|
132
235
|
expand: {
|
|
133
236
|
route: opts.expandRoute ?? "/search",
|
|
134
|
-
params: {
|
|
237
|
+
params: {
|
|
238
|
+
id,
|
|
239
|
+
tier,
|
|
240
|
+
source_table: sourceTable,
|
|
241
|
+
detail: "full",
|
|
242
|
+
content_bytes,
|
|
243
|
+
content_tokens_estimate,
|
|
244
|
+
},
|
|
135
245
|
},
|
|
136
|
-
content,
|
|
137
246
|
};
|
|
247
|
+
if (detail === "full") {
|
|
248
|
+
hit.content = content;
|
|
249
|
+
}
|
|
250
|
+
else if (detail === "middle") {
|
|
251
|
+
const excerpt = buildMiddleExcerpt(content);
|
|
252
|
+
hit.content = excerpt.text;
|
|
253
|
+
if (excerpt.truncated)
|
|
254
|
+
hit.content_truncated = true;
|
|
255
|
+
}
|
|
256
|
+
return hit;
|
|
138
257
|
}
|
|
139
258
|
/** Derive a stable `source` string (what produced this row). */
|
|
140
259
|
export function deriveSource(sourceTable, row) {
|
|
@@ -207,6 +326,7 @@ export function buildCompactHit(ranked, row, opts) {
|
|
|
207
326
|
const timestamp = row?.indexed_at ||
|
|
208
327
|
row?.created_at ||
|
|
209
328
|
"";
|
|
329
|
+
const { content_bytes, content_tokens_estimate } = computeContentSize(content);
|
|
210
330
|
const hit = {
|
|
211
331
|
id: ranked.id,
|
|
212
332
|
source: deriveSource(ranked.source_table, row),
|
|
@@ -217,22 +337,36 @@ export function buildCompactHit(ranked, row, opts) {
|
|
|
217
337
|
tier,
|
|
218
338
|
snippet,
|
|
219
339
|
summary,
|
|
340
|
+
content_bytes,
|
|
341
|
+
content_tokens_estimate,
|
|
220
342
|
expand: {
|
|
221
343
|
route: opts.expandRoute ?? "/search",
|
|
222
344
|
// `source_table` is carried so the expansion path can fetch the exact
|
|
223
345
|
// backing row without guessing — critical for `document`/`structured_doc`
|
|
224
346
|
// tiers, where the same id may exist in both cloud and local tables.
|
|
347
|
+
//
|
|
348
|
+
// `content_bytes` and `content_tokens_estimate` are mirrored here so an
|
|
349
|
+
// agent that copy-pastes the `expand` pointer verbatim sees the size
|
|
350
|
+
// warning at the moment it chooses to spend context on `detail="full"`.
|
|
225
351
|
params: {
|
|
226
352
|
id: ranked.id,
|
|
227
353
|
tier,
|
|
228
354
|
source_table: ranked.source_table,
|
|
229
355
|
detail: "full",
|
|
356
|
+
content_bytes,
|
|
357
|
+
content_tokens_estimate,
|
|
230
358
|
},
|
|
231
359
|
},
|
|
232
360
|
};
|
|
233
361
|
if (opts.detail === "full") {
|
|
234
362
|
hit.content = content;
|
|
235
363
|
}
|
|
364
|
+
else if (opts.detail === "middle") {
|
|
365
|
+
const excerpt = buildMiddleExcerpt(content);
|
|
366
|
+
hit.content = excerpt.text;
|
|
367
|
+
if (excerpt.truncated)
|
|
368
|
+
hit.content_truncated = true;
|
|
369
|
+
}
|
|
236
370
|
return hit;
|
|
237
371
|
}
|
|
238
372
|
// --- Markdown rendering (MCP text channel) ---
|
|
@@ -252,7 +386,8 @@ export function renderCompactMarkdown(hits, opts = {}) {
|
|
|
252
386
|
const source = h.source ?? "?";
|
|
253
387
|
const score = typeof h.score === "number" ? h.score.toFixed(3) : "?";
|
|
254
388
|
const method = h.retrieval_method ?? "?";
|
|
255
|
-
|
|
389
|
+
const sizeWarning = formatSizeWarning(h.content_tokens_estimate);
|
|
390
|
+
lines.push(`${i + 1}. **${title}** — _${tier}_ · ${source} · score ${score} (${method})${sizeWarning ? ` · ${sizeWarning}` : ""}`);
|
|
256
391
|
if (h.snippet)
|
|
257
392
|
lines.push(` ${escapeMd(h.snippet)}`);
|
|
258
393
|
// Render the expand pointer with the *actual* params object the route
|
|
@@ -264,6 +399,20 @@ export function renderCompactMarkdown(hits, opts = {}) {
|
|
|
264
399
|
});
|
|
265
400
|
return lines.join("\n");
|
|
266
401
|
}
|
|
402
|
+
/**
|
|
403
|
+
* Compact size warning for large hits, e.g. `~82k tokens`. Returns the empty
|
|
404
|
+
* string for hits below `LARGE_HIT_TOKEN_THRESHOLD` so the markdown stays
|
|
405
|
+
* concise when expansion would be cheap.
|
|
406
|
+
*/
|
|
407
|
+
export function formatSizeWarning(tokensEstimate) {
|
|
408
|
+
if (typeof tokensEstimate !== "number" || tokensEstimate < LARGE_HIT_TOKEN_THRESHOLD) {
|
|
409
|
+
return "";
|
|
410
|
+
}
|
|
411
|
+
if (tokensEstimate >= 1000) {
|
|
412
|
+
return `~${Math.round(tokensEstimate / 1000)}k tokens`;
|
|
413
|
+
}
|
|
414
|
+
return `~${tokensEstimate} tokens`;
|
|
415
|
+
}
|
|
267
416
|
// --- Internals ---
|
|
268
417
|
function truncate(text, max) {
|
|
269
418
|
if (text.length <= max)
|
|
@@ -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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"}
|
|
@@ -65,6 +65,10 @@ export interface ExampleCard {
|
|
|
65
65
|
source: string;
|
|
66
66
|
summary: string;
|
|
67
67
|
timestamp?: string;
|
|
68
|
+
/** UTF-8 byte length of the underlying row's full content. */
|
|
69
|
+
content_bytes: number;
|
|
70
|
+
/** Heuristic token count (~bytes/4) for "will this fit in my context". */
|
|
71
|
+
content_tokens_estimate: number;
|
|
68
72
|
expand: {
|
|
69
73
|
route: string;
|
|
70
74
|
params: Record<string, unknown>;
|
|
@@ -75,6 +79,10 @@ export interface RuleCard {
|
|
|
75
79
|
title: string;
|
|
76
80
|
snippet: string;
|
|
77
81
|
source_path?: string;
|
|
82
|
+
/** UTF-8 byte length of the underlying row's full content. */
|
|
83
|
+
content_bytes: number;
|
|
84
|
+
/** Heuristic token count (~bytes/4) for "will this fit in my context". */
|
|
85
|
+
content_tokens_estimate: number;
|
|
78
86
|
expand: {
|
|
79
87
|
route: string;
|
|
80
88
|
params: Record<string, unknown>;
|
|
@@ -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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"}
|
|
@@ -2,6 +2,7 @@ import { hybridSearch } from "./hybrid.js";
|
|
|
2
2
|
import { rerank } from "./reranker.js";
|
|
3
3
|
import { getTable } from "../storage/tables.js";
|
|
4
4
|
import { resolveCwdRoot } from "./cwd.js";
|
|
5
|
+
import { computeContentSize } from "./compact.js";
|
|
5
6
|
// --- Locked caps ---
|
|
6
7
|
export const ITEM_TEXT_MAX = 200;
|
|
7
8
|
export const SNIPPET_MAX = 200;
|
|
@@ -155,24 +156,33 @@ function buildExamples(ranked, rows, cap) {
|
|
|
155
156
|
if (out.length >= cap)
|
|
156
157
|
break;
|
|
157
158
|
const row = rows.get(r.id);
|
|
158
|
-
const
|
|
159
|
+
const fullContent = row?.["content"] || r.content || "";
|
|
160
|
+
const summary = truncate(collapseWhitespace(row?.["summary"] || fullContent), SNIPPET_MAX);
|
|
159
161
|
if (!summary)
|
|
160
162
|
continue;
|
|
161
163
|
const title = deriveExampleTitle(row, summary);
|
|
162
164
|
const source = row?.["source"] || "conversation";
|
|
163
165
|
const timestamp = row?.["indexed_at"] || undefined;
|
|
166
|
+
const { content_bytes, content_tokens_estimate } = computeContentSize(fullContent);
|
|
164
167
|
const card = {
|
|
165
168
|
id: r.id,
|
|
166
169
|
title,
|
|
167
170
|
source,
|
|
168
171
|
summary,
|
|
172
|
+
content_bytes,
|
|
173
|
+
content_tokens_estimate,
|
|
169
174
|
expand: {
|
|
170
175
|
route: "/search",
|
|
176
|
+
// Size fields are mirrored into `expand.params` so an agent that
|
|
177
|
+
// copy-pastes the pointer sees the warning at the exact moment it
|
|
178
|
+
// decides whether to spend context on `detail="full"`.
|
|
171
179
|
params: {
|
|
172
180
|
id: r.id,
|
|
173
181
|
tier: r.source_table === "conversations_cold" ? "cold" : "hot",
|
|
174
182
|
source_table: r.source_table,
|
|
175
183
|
detail: "full",
|
|
184
|
+
content_bytes,
|
|
185
|
+
content_tokens_estimate,
|
|
176
186
|
},
|
|
177
187
|
},
|
|
178
188
|
};
|
|
@@ -188,16 +198,19 @@ function buildRules(ranked, rows, cap) {
|
|
|
188
198
|
if (out.length >= cap)
|
|
189
199
|
break;
|
|
190
200
|
const row = rows.get(r.id);
|
|
191
|
-
const content = row?.["content"] || r.content;
|
|
201
|
+
const content = row?.["content"] || r.content || "";
|
|
192
202
|
const snippet = truncate(collapseWhitespace(content), SNIPPET_MAX);
|
|
193
203
|
if (!snippet)
|
|
194
204
|
continue;
|
|
195
205
|
const sourcePath = row?.["source_path"] || "";
|
|
196
206
|
const title = deriveRuleTitle(row, sourcePath, snippet);
|
|
207
|
+
const { content_bytes, content_tokens_estimate } = computeContentSize(content);
|
|
197
208
|
const card = {
|
|
198
209
|
id: r.id,
|
|
199
210
|
title,
|
|
200
211
|
snippet,
|
|
212
|
+
content_bytes,
|
|
213
|
+
content_tokens_estimate,
|
|
201
214
|
expand: {
|
|
202
215
|
route: "/search",
|
|
203
216
|
params: {
|
|
@@ -205,6 +218,8 @@ function buildRules(ranked, rows, cap) {
|
|
|
205
218
|
tier: "structured_doc",
|
|
206
219
|
source_table: r.source_table,
|
|
207
220
|
detail: "full",
|
|
221
|
+
content_bytes,
|
|
222
|
+
content_tokens_estimate,
|
|
208
223
|
},
|
|
209
224
|
},
|
|
210
225
|
};
|