@getrift/rift 0.1.0-beta.15 → 0.1.0-beta.17
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/dist/src/capture/auto-capture.d.ts +7 -0
- package/dist/src/capture/auto-capture.d.ts.map +1 -1
- package/dist/src/capture/auto-capture.js +82 -15
- package/dist/src/capture/auto-capture.js.map +1 -1
- package/dist/src/capture/observability.d.ts +6 -0
- package/dist/src/capture/observability.d.ts.map +1 -1
- package/dist/src/capture/observability.js +3 -0
- package/dist/src/capture/observability.js.map +1 -1
- package/dist/src/capture/recover-quarantine.d.ts +28 -0
- package/dist/src/capture/recover-quarantine.d.ts.map +1 -1
- package/dist/src/capture/recover-quarantine.js +43 -0
- package/dist/src/capture/recover-quarantine.js.map +1 -1
- package/dist/src/cli/commands/capture-recover.d.ts +28 -0
- package/dist/src/cli/commands/capture-recover.d.ts.map +1 -1
- package/dist/src/cli/commands/capture-recover.js +109 -52
- package/dist/src/cli/commands/capture-recover.js.map +1 -1
- package/dist/src/cli/commands/capture.d.ts.map +1 -1
- package/dist/src/cli/commands/capture.js +14 -1
- package/dist/src/cli/commands/capture.js.map +1 -1
- package/dist/src/cli/commands/doctor.d.ts.map +1 -1
- package/dist/src/cli/commands/doctor.js +60 -1
- package/dist/src/cli/commands/doctor.js.map +1 -1
- package/dist/src/cli/commands/onboard.d.ts.map +1 -1
- package/dist/src/cli/commands/onboard.js +8 -1
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/status/friend-header.d.ts.map +1 -1
- package/dist/src/cli/status/friend-header.js +17 -10
- package/dist/src/cli/status/friend-header.js.map +1 -1
- package/dist/src/diagnostics/doctor.js +11 -10
- package/dist/src/diagnostics/doctor.js.map +1 -1
- package/dist/src/diagnostics/repair-prompt.d.ts.map +1 -1
- package/dist/src/diagnostics/repair-prompt.js +17 -1
- package/dist/src/diagnostics/repair-prompt.js.map +1 -1
- package/dist/src/jobs/handlers/reconcile.d.ts +17 -0
- package/dist/src/jobs/handlers/reconcile.d.ts.map +1 -1
- package/dist/src/jobs/handlers/reconcile.js +85 -13
- 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 +1 -0
- 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 +32 -0
- package/dist/src/jobs/handlers/save.js.map +1 -1
- package/dist/src/jobs/queue.d.ts +40 -1
- package/dist/src/jobs/queue.d.ts.map +1 -1
- package/dist/src/jobs/queue.js +448 -26
- package/dist/src/jobs/queue.js.map +1 -1
- package/dist/src/providers/codex-cli-runner.d.ts +14 -0
- package/dist/src/providers/codex-cli-runner.d.ts.map +1 -1
- package/dist/src/providers/codex-cli-runner.js +120 -39
- package/dist/src/providers/codex-cli-runner.js.map +1 -1
- package/dist/src/retrieval/context-pack.d.ts +6 -0
- package/dist/src/retrieval/context-pack.d.ts.map +1 -1
- package/dist/src/retrieval/context-pack.js +1 -0
- package/dist/src/retrieval/context-pack.js.map +1 -1
- package/dist/src/retrieval/current-truth.d.ts +36 -2
- package/dist/src/retrieval/current-truth.d.ts.map +1 -1
- package/dist/src/retrieval/current-truth.js +48 -29
- package/dist/src/retrieval/current-truth.js.map +1 -1
- package/dist/src/retrieval/locator-boost.d.ts +37 -0
- package/dist/src/retrieval/locator-boost.d.ts.map +1 -0
- package/dist/src/retrieval/locator-boost.js +129 -0
- package/dist/src/retrieval/locator-boost.js.map +1 -0
- package/dist/src/retrieval/report-demotion.d.ts +46 -0
- package/dist/src/retrieval/report-demotion.d.ts.map +1 -0
- package/dist/src/retrieval/report-demotion.js +169 -0
- package/dist/src/retrieval/report-demotion.js.map +1 -0
- package/dist/src/server/app.d.ts.map +1 -1
- package/dist/src/server/app.js +8 -2
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/server/routes/compact.d.ts.map +1 -1
- package/dist/src/server/routes/compact.js +4 -1
- package/dist/src/server/routes/compact.js.map +1 -1
- package/dist/src/server/routes/context.d.ts +1 -1
- package/dist/src/server/routes/context.d.ts.map +1 -1
- package/dist/src/server/routes/context.js +2 -1
- package/dist/src/server/routes/context.js.map +1 -1
- package/dist/src/server/routes/enqueue.d.ts +11 -0
- package/dist/src/server/routes/enqueue.d.ts.map +1 -0
- package/dist/src/server/routes/enqueue.js +17 -0
- package/dist/src/server/routes/enqueue.js.map +1 -0
- package/dist/src/server/routes/friend-status.d.ts +9 -0
- package/dist/src/server/routes/friend-status.d.ts.map +1 -1
- package/dist/src/server/routes/friend-status.js +9 -0
- package/dist/src/server/routes/friend-status.js.map +1 -1
- package/dist/src/server/routes/ingest.d.ts.map +1 -1
- package/dist/src/server/routes/ingest.js +4 -1
- package/dist/src/server/routes/ingest.js.map +1 -1
- package/dist/src/server/routes/reconcile.d.ts.map +1 -1
- package/dist/src/server/routes/reconcile.js +4 -1
- package/dist/src/server/routes/reconcile.js.map +1 -1
- package/dist/src/server/routes/reindex.d.ts.map +1 -1
- package/dist/src/server/routes/reindex.js +4 -1
- package/dist/src/server/routes/reindex.js.map +1 -1
- package/dist/src/server/routes/save.d.ts.map +1 -1
- package/dist/src/server/routes/save.js +4 -1
- 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 +44 -1
- package/dist/src/server/routes/search.js.map +1 -1
- package/dist/src/server/routes/triage.d.ts.map +1 -1
- package/dist/src/server/routes/triage.js +4 -1
- package/dist/src/server/routes/triage.js.map +1 -1
- package/dist/src/storage/rebuild.d.ts +21 -0
- package/dist/src/storage/rebuild.d.ts.map +1 -1
- package/dist/src/storage/rebuild.js +135 -66
- package/dist/src/storage/rebuild.js.map +1 -1
- package/operator/swiftbar/render-menu.py +47 -10
- package/package.json +6 -3
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import type { Config } from "../config/schema.js";
|
|
2
2
|
import type { EmbeddingProvider } from "../providers/types.js";
|
|
3
3
|
import type { TableName } from "./tables.js";
|
|
4
|
+
/**
|
|
5
|
+
* Shared duplicate-resolution policy for conversation raw files.
|
|
6
|
+
*
|
|
7
|
+
* Both repair paths — reconcile and full rebuild — must pick the SAME winner
|
|
8
|
+
* when several raw files compete for one row id or idempotency_key, otherwise
|
|
9
|
+
* the canonical conversation row could flip depending on which tool last ran,
|
|
10
|
+
* which is corrosive to trust and debugging. Policy: most-recent raw wins,
|
|
11
|
+
* ordered by filename (`<timestamp>_<id>.json`, ISO-8601-derived → lexicographic
|
|
12
|
+
* == chronological). Compare basenames so the ordering is stable regardless of
|
|
13
|
+
* which source folder a file lives in. Sorts most-recent FIRST (descending).
|
|
14
|
+
*/
|
|
15
|
+
export declare function compareRawRecencyDesc(aPath: string, bPath: string): number;
|
|
4
16
|
export interface RebuildDeps {
|
|
5
17
|
config: Config;
|
|
6
18
|
embeddingProvider: EmbeddingProvider;
|
|
@@ -11,6 +23,15 @@ export interface RebuildDeps {
|
|
|
11
23
|
export interface RebuildReport {
|
|
12
24
|
tables_rebuilt: TableName[];
|
|
13
25
|
rows_reindexed: number;
|
|
26
|
+
/**
|
|
27
|
+
* Conversation raw files skipped because a row with the same non-empty
|
|
28
|
+
* `idempotency_key` was already inserted into the rebuilt index under a
|
|
29
|
+
* different row id. Mirrors reconcile's `missing_skipped_duplicate_key`:
|
|
30
|
+
* without it, an orphan raw left on disk (e.g. one reconcile already
|
|
31
|
+
* skipped) would resurface as a duplicate every time the index is rebuilt
|
|
32
|
+
* from raw — rebuild groups by row id and would otherwise miss the dup.
|
|
33
|
+
*/
|
|
34
|
+
conversations_skipped_duplicate_key: number;
|
|
14
35
|
}
|
|
15
36
|
/**
|
|
16
37
|
* Full rebuild from raw disk state via shadow-table swap.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../../../src/storage/rebuild.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAO/D,OAAO,KAAK,EAIV,SAAS,EACV,MAAM,aAAa,CAAC;AAWrB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,sBAAsB,CAAC,EAAE,iBAAiB,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,SAAS,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../../../src/storage/rebuild.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAO/D,OAAO,KAAK,EAIV,SAAS,EACV,MAAM,aAAa,CAAC;AAWrB;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,sBAAsB,CAAC,EAAE,iBAAiB,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,SAAS,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,mCAAmC,EAAE,MAAM,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAgD3E;AAqTD,MAAM,MAAM,YAAY,GACpB,KAAK,GACL,eAAe,GACf,WAAW,GACX,iBAAiB,CAAC;AAEtB,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,KAAK,EAAE,YAAY,CAAC;IACpB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sBAAsB,CAAC,EAAE,iBAAiB,CAAC;CAC5C;AAED,wBAAsB,OAAO,CAC3B,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,sBAAsB,CAAC,EAAE,iBAAiB,GACzC,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAoDjB;AAyPD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1E;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,GACf,IAAI,GAAG,SAAS,CAclB"}
|
|
@@ -18,6 +18,20 @@ import { createShadowSwap } from "./shadow-swap.js";
|
|
|
18
18
|
import { recordEmbed } from "../observability/embedding-events.js";
|
|
19
19
|
import { appendIndexEvent, recordIndexWrite, } from "../observability/index-events.js";
|
|
20
20
|
const ALL_CONV_SOURCES = [...CONVERSATION_SOURCES, "inbox"];
|
|
21
|
+
/**
|
|
22
|
+
* Shared duplicate-resolution policy for conversation raw files.
|
|
23
|
+
*
|
|
24
|
+
* Both repair paths — reconcile and full rebuild — must pick the SAME winner
|
|
25
|
+
* when several raw files compete for one row id or idempotency_key, otherwise
|
|
26
|
+
* the canonical conversation row could flip depending on which tool last ran,
|
|
27
|
+
* which is corrosive to trust and debugging. Policy: most-recent raw wins,
|
|
28
|
+
* ordered by filename (`<timestamp>_<id>.json`, ISO-8601-derived → lexicographic
|
|
29
|
+
* == chronological). Compare basenames so the ordering is stable regardless of
|
|
30
|
+
* which source folder a file lives in. Sorts most-recent FIRST (descending).
|
|
31
|
+
*/
|
|
32
|
+
export function compareRawRecencyDesc(aPath, bPath) {
|
|
33
|
+
return path.basename(bPath).localeCompare(path.basename(aPath));
|
|
34
|
+
}
|
|
21
35
|
/**
|
|
22
36
|
* Full rebuild from raw disk state via shadow-table swap.
|
|
23
37
|
* Creates shadow tables for all four tables, populates them from
|
|
@@ -25,7 +39,11 @@ const ALL_CONV_SOURCES = [...CONVERSATION_SOURCES, "inbox"];
|
|
|
25
39
|
*/
|
|
26
40
|
export async function fullRebuild(deps) {
|
|
27
41
|
const swap = createShadowSwap(deps.dataDir);
|
|
28
|
-
const report = {
|
|
42
|
+
const report = {
|
|
43
|
+
tables_rebuilt: [],
|
|
44
|
+
rows_reindexed: 0,
|
|
45
|
+
conversations_skipped_duplicate_key: 0,
|
|
46
|
+
};
|
|
29
47
|
const swaps = new Map();
|
|
30
48
|
// Per-table populate counts. Used to emit one post-commit "live"
|
|
31
49
|
// index-event per table so `index.last_update_at` is only credited
|
|
@@ -100,7 +118,11 @@ async function populateStructuredDocsShadows(deps, swap, swaps, populated, repor
|
|
|
100
118
|
const targetShadow = isLocal ? localShadow : cloudShadow;
|
|
101
119
|
try {
|
|
102
120
|
const content = fs.readFileSync(canonical, "utf-8");
|
|
103
|
-
const embedding = await recordEmbed(deps.dataDir, provider, {
|
|
121
|
+
const embedding = await recordEmbed(deps.dataDir, provider, {
|
|
122
|
+
pipeline: "backfill",
|
|
123
|
+
operation: "structured_doc_embedding",
|
|
124
|
+
input_count: 1,
|
|
125
|
+
}, () => provider.embed(content));
|
|
104
126
|
const row = {
|
|
105
127
|
id,
|
|
106
128
|
source_path: canonical,
|
|
@@ -114,7 +136,9 @@ async function populateStructuredDocsShadows(deps, swap, swaps, populated, repor
|
|
|
114
136
|
indexed_at: new Date().toISOString(),
|
|
115
137
|
metadata: "{}",
|
|
116
138
|
};
|
|
117
|
-
const targetTableName = isLocal
|
|
139
|
+
const targetTableName = isLocal
|
|
140
|
+
? "structured_docs_local"
|
|
141
|
+
: "structured_docs";
|
|
118
142
|
await recordIndexWrite(deps.dataDir, {
|
|
119
143
|
table: targetTableName,
|
|
120
144
|
pipeline: "backfill",
|
|
@@ -138,74 +162,95 @@ async function populateConversationShadows(deps, swap, swaps, populated, report)
|
|
|
138
162
|
swaps.set("conversations_cold", coldShadow);
|
|
139
163
|
const cutoff = new Date();
|
|
140
164
|
cutoff.setDate(cutoff.getDate() - (deps.config.compaction.age_threshold_days ?? 30));
|
|
165
|
+
// Durable dedup across the whole rebuild: a non-empty idempotency_key may
|
|
166
|
+
// only be inserted once. Mirrors reconcile's key-skip so a raw file that
|
|
167
|
+
// reconcile already declined to revive cannot reappear as a duplicate here.
|
|
168
|
+
const seenKeys = new Set();
|
|
169
|
+
// Group raw files by stable row id ACROSS ALL SOURCES first. Refresh-on-grow
|
|
170
|
+
// may leave more than one raw artifact for the same id on disk if pruning was
|
|
171
|
+
// interrupted; reinserting all of them duplicates the conversation. Keep only
|
|
172
|
+
// the most-recent raw per id (shared recency policy). Collecting globally —
|
|
173
|
+
// rather than per source folder — matters because `seenKeys` is global: if we
|
|
174
|
+
// sorted within each source folder, an older raw in an earlier folder could
|
|
175
|
+
// claim a key before a newer same-key raw in a later folder was ever seen.
|
|
176
|
+
const latestByRowId = new Map();
|
|
141
177
|
for (const source of ALL_CONV_SOURCES) {
|
|
142
178
|
const rawDir = path.join(deps.dataDir, "raw", "conversations", source);
|
|
143
179
|
if (!fs.existsSync(rawDir))
|
|
144
180
|
continue;
|
|
145
|
-
// Group raw files by stable row id. Refresh-on-grow may leave more
|
|
146
|
-
// than one raw artifact for the same id on disk if pruning was
|
|
147
|
-
// interrupted; reinserting all of them duplicates the conversation
|
|
148
|
-
// into the rebuilt index. Keep only the lexicographically greatest
|
|
149
|
-
// filename per id — filenames are `<timestamp>_<id>.json` with an
|
|
150
|
-
// ISO-8601-derived timestamp, so lexicographic order = chronological.
|
|
151
|
-
const latestByRowId = new Map();
|
|
152
181
|
for (const file of fs.readdirSync(rawDir)) {
|
|
153
182
|
if (!file.endsWith(".json"))
|
|
154
183
|
continue;
|
|
155
184
|
const id = extractIdFromFilename(file);
|
|
156
185
|
if (!id)
|
|
157
186
|
continue;
|
|
187
|
+
const rawPath = path.join(rawDir, file);
|
|
158
188
|
const prior = latestByRowId.get(id);
|
|
159
|
-
if (!prior ||
|
|
160
|
-
latestByRowId.set(id,
|
|
189
|
+
if (!prior || compareRawRecencyDesc(rawPath, prior) < 0) {
|
|
190
|
+
latestByRowId.set(id, rawPath);
|
|
161
191
|
}
|
|
162
192
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
const row = {
|
|
177
|
-
id,
|
|
178
|
-
content,
|
|
179
|
-
summary,
|
|
180
|
-
embedding: vec,
|
|
181
|
-
source: raw.source ?? "claude_code",
|
|
182
|
-
domain: raw.domain ?? "tech",
|
|
183
|
-
intent: raw.intent ?? "build",
|
|
184
|
-
quality: raw.quality ?? "medium",
|
|
185
|
-
topics: JSON.stringify(raw.topics ?? []),
|
|
186
|
-
decisions: JSON.stringify(raw.decisions ?? []),
|
|
187
|
-
key_outputs: JSON.stringify(raw.key_outputs ?? []),
|
|
188
|
-
indexed_at: new Date().toISOString(),
|
|
189
|
-
idempotency_key: raw.idempotency_key ?? "",
|
|
190
|
-
conversation_fingerprint: fingerprint,
|
|
191
|
-
};
|
|
192
|
-
const filenameTime = extractTimestampFromFilename(file);
|
|
193
|
-
const rowTime = filenameTime ?? fs.statSync(rawPath).mtime;
|
|
194
|
-
const targetTable = rowTime >= cutoff ? "conversations_hot" : "conversations_cold";
|
|
195
|
-
const targetShadow = rowTime >= cutoff ? hotShadow : coldShadow;
|
|
196
|
-
await recordIndexWrite(deps.dataDir, {
|
|
197
|
-
table: targetTable,
|
|
198
|
-
pipeline: "backfill",
|
|
199
|
-
operation: "conversation_upsert",
|
|
200
|
-
row_count: 1,
|
|
201
|
-
phase: "shadow",
|
|
202
|
-
}, () => targetShadow.add([row]));
|
|
203
|
-
populated.set(targetTable, (populated.get(targetTable) ?? 0) + 1);
|
|
204
|
-
report.rows_reindexed++;
|
|
205
|
-
}
|
|
206
|
-
catch (err) {
|
|
207
|
-
process.stderr.write(`rebuild: failed to index conversation ${id}: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
193
|
+
}
|
|
194
|
+
// Process most-recent raw first (global order) so that when two row ids share
|
|
195
|
+
// one idempotency_key the newest wins and older duplicates are skipped —
|
|
196
|
+
// identical winner to reconcile via the shared recency comparator.
|
|
197
|
+
const ordered = [...latestByRowId.entries()].sort(([, a], [, b]) => compareRawRecencyDesc(a, b));
|
|
198
|
+
for (const [id, rawPath] of ordered) {
|
|
199
|
+
const file = path.basename(rawPath);
|
|
200
|
+
try {
|
|
201
|
+
const raw = JSON.parse(fs.readFileSync(rawPath, "utf-8"));
|
|
202
|
+
const key = typeof raw.idempotency_key === "string" ? raw.idempotency_key : "";
|
|
203
|
+
if (key && seenKeys.has(key)) {
|
|
204
|
+
report.conversations_skipped_duplicate_key++;
|
|
205
|
+
continue;
|
|
208
206
|
}
|
|
207
|
+
const summary = raw.summary ?? "";
|
|
208
|
+
const content = raw.content ?? summary;
|
|
209
|
+
const vec = await recordEmbed(deps.dataDir, deps.embeddingProvider, {
|
|
210
|
+
pipeline: "backfill",
|
|
211
|
+
operation: "conversation_embedding",
|
|
212
|
+
input_count: 1,
|
|
213
|
+
}, () => deps.embeddingProvider.embed(content || summary));
|
|
214
|
+
const fingerprint = typeof raw.conversation_fingerprint === "string" &&
|
|
215
|
+
raw.conversation_fingerprint.length > 0
|
|
216
|
+
? raw.conversation_fingerprint
|
|
217
|
+
: content
|
|
218
|
+
? conversationContentFingerprint(content)
|
|
219
|
+
: "";
|
|
220
|
+
const row = {
|
|
221
|
+
id,
|
|
222
|
+
content,
|
|
223
|
+
summary,
|
|
224
|
+
embedding: vec,
|
|
225
|
+
source: raw.source ?? "claude_code",
|
|
226
|
+
domain: raw.domain ?? "tech",
|
|
227
|
+
intent: raw.intent ?? "build",
|
|
228
|
+
quality: raw.quality ?? "medium",
|
|
229
|
+
topics: JSON.stringify(raw.topics ?? []),
|
|
230
|
+
decisions: JSON.stringify(raw.decisions ?? []),
|
|
231
|
+
key_outputs: JSON.stringify(raw.key_outputs ?? []),
|
|
232
|
+
indexed_at: new Date().toISOString(),
|
|
233
|
+
idempotency_key: raw.idempotency_key ?? "",
|
|
234
|
+
conversation_fingerprint: fingerprint,
|
|
235
|
+
};
|
|
236
|
+
const filenameTime = extractTimestampFromFilename(file);
|
|
237
|
+
const rowTime = filenameTime ?? fs.statSync(rawPath).mtime;
|
|
238
|
+
const targetTable = rowTime >= cutoff ? "conversations_hot" : "conversations_cold";
|
|
239
|
+
const targetShadow = rowTime >= cutoff ? hotShadow : coldShadow;
|
|
240
|
+
await recordIndexWrite(deps.dataDir, {
|
|
241
|
+
table: targetTable,
|
|
242
|
+
pipeline: "backfill",
|
|
243
|
+
operation: "conversation_upsert",
|
|
244
|
+
row_count: 1,
|
|
245
|
+
phase: "shadow",
|
|
246
|
+
}, () => targetShadow.add([row]));
|
|
247
|
+
if (key)
|
|
248
|
+
seenKeys.add(key);
|
|
249
|
+
populated.set(targetTable, (populated.get(targetTable) ?? 0) + 1);
|
|
250
|
+
report.rows_reindexed++;
|
|
251
|
+
}
|
|
252
|
+
catch (err) {
|
|
253
|
+
process.stderr.write(`rebuild: failed to index conversation ${id}: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
209
254
|
}
|
|
210
255
|
}
|
|
211
256
|
}
|
|
@@ -222,7 +267,11 @@ async function populateDigestShadow(deps, swap, swaps, populated, report) {
|
|
|
222
267
|
if (typeof raw.id !== "string" || !raw.id)
|
|
223
268
|
continue;
|
|
224
269
|
const summary = raw.summary ?? raw.content ?? "";
|
|
225
|
-
const vec = await recordEmbed(deps.dataDir, deps.embeddingProvider, {
|
|
270
|
+
const vec = await recordEmbed(deps.dataDir, deps.embeddingProvider, {
|
|
271
|
+
pipeline: "backfill",
|
|
272
|
+
operation: "digest_embedding",
|
|
273
|
+
input_count: 1,
|
|
274
|
+
}, () => deps.embeddingProvider.embed(summary));
|
|
226
275
|
const row = {
|
|
227
276
|
id: raw.id,
|
|
228
277
|
content: raw.content ?? "",
|
|
@@ -336,7 +385,11 @@ async function reembedStructuredDocs(cloudProvider, dataDir, config, localProvid
|
|
|
336
385
|
for (const row of allRows) {
|
|
337
386
|
try {
|
|
338
387
|
const provider = resolveProviderForPath(row.source_path, cloudProvider, config, localProvider);
|
|
339
|
-
const newEmbedding = await recordEmbed(dataDir, provider, {
|
|
388
|
+
const newEmbedding = await recordEmbed(dataDir, provider, {
|
|
389
|
+
pipeline: "reindex",
|
|
390
|
+
operation: "structured_doc_embedding",
|
|
391
|
+
input_count: 1,
|
|
392
|
+
}, () => provider.embed(row.content));
|
|
340
393
|
const oldTimestamp = row.indexed_at;
|
|
341
394
|
const newTimestamp = new Date().toISOString();
|
|
342
395
|
await recordIndexWrite(dataDir, {
|
|
@@ -344,7 +397,9 @@ async function reembedStructuredDocs(cloudProvider, dataDir, config, localProvid
|
|
|
344
397
|
pipeline: "reindex",
|
|
345
398
|
operation: "structured_doc_upsert",
|
|
346
399
|
row_count: 1,
|
|
347
|
-
}, () => table.add([
|
|
400
|
+
}, () => table.add([
|
|
401
|
+
{ ...row, embedding: newEmbedding, indexed_at: newTimestamp },
|
|
402
|
+
]));
|
|
348
403
|
try {
|
|
349
404
|
await table.delete(`id = '${row.id}' AND indexed_at = '${oldTimestamp}'`);
|
|
350
405
|
count++;
|
|
@@ -353,7 +408,9 @@ async function reembedStructuredDocs(cloudProvider, dataDir, config, localProvid
|
|
|
353
408
|
try {
|
|
354
409
|
await table.delete(`id = '${row.id}' AND indexed_at = '${newTimestamp}'`);
|
|
355
410
|
}
|
|
356
|
-
catch {
|
|
411
|
+
catch {
|
|
412
|
+
/* duplicate remains — reconcile will repair */
|
|
413
|
+
}
|
|
357
414
|
}
|
|
358
415
|
}
|
|
359
416
|
catch (err) {
|
|
@@ -373,7 +430,11 @@ async function reembedLocalStructuredDocs(localProvider, dataDir) {
|
|
|
373
430
|
let count = 0;
|
|
374
431
|
for (const row of allRows) {
|
|
375
432
|
try {
|
|
376
|
-
const newEmbedding = await recordEmbed(dataDir, localProvider, {
|
|
433
|
+
const newEmbedding = await recordEmbed(dataDir, localProvider, {
|
|
434
|
+
pipeline: "reindex",
|
|
435
|
+
operation: "structured_doc_local_embedding",
|
|
436
|
+
input_count: 1,
|
|
437
|
+
}, () => localProvider.embed(row.content));
|
|
377
438
|
const oldTimestamp = row.indexed_at;
|
|
378
439
|
const newTimestamp = new Date().toISOString();
|
|
379
440
|
await recordIndexWrite(dataDir, {
|
|
@@ -381,7 +442,9 @@ async function reembedLocalStructuredDocs(localProvider, dataDir) {
|
|
|
381
442
|
pipeline: "reindex",
|
|
382
443
|
operation: "structured_doc_local_upsert",
|
|
383
444
|
row_count: 1,
|
|
384
|
-
}, () => table.add([
|
|
445
|
+
}, () => table.add([
|
|
446
|
+
{ ...row, embedding: newEmbedding, indexed_at: newTimestamp },
|
|
447
|
+
]));
|
|
385
448
|
try {
|
|
386
449
|
await table.delete(`id = '${row.id}' AND indexed_at = '${oldTimestamp}'`);
|
|
387
450
|
count++;
|
|
@@ -390,7 +453,9 @@ async function reembedLocalStructuredDocs(localProvider, dataDir) {
|
|
|
390
453
|
try {
|
|
391
454
|
await table.delete(`id = '${row.id}' AND indexed_at = '${newTimestamp}'`);
|
|
392
455
|
}
|
|
393
|
-
catch {
|
|
456
|
+
catch {
|
|
457
|
+
/* duplicate remains — reconcile will repair */
|
|
458
|
+
}
|
|
394
459
|
}
|
|
395
460
|
}
|
|
396
461
|
catch (err) {
|
|
@@ -452,7 +517,9 @@ async function reembedTable(tableName, embeddingProvider, dataDir, operation, ge
|
|
|
452
517
|
pipeline: "reindex",
|
|
453
518
|
operation: `${operation.replace(/_embedding$/, "")}_upsert`,
|
|
454
519
|
row_count: 1,
|
|
455
|
-
}, () => table.add([
|
|
520
|
+
}, () => table.add([
|
|
521
|
+
{ ...row, embedding: newEmbedding, [timestampField]: newTimestamp },
|
|
522
|
+
]));
|
|
456
523
|
try {
|
|
457
524
|
await table.delete(`id = '${row.id}' AND ${timestampField} = '${oldTimestamp}'`);
|
|
458
525
|
count++;
|
|
@@ -461,7 +528,9 @@ async function reembedTable(tableName, embeddingProvider, dataDir, operation, ge
|
|
|
461
528
|
try {
|
|
462
529
|
await table.delete(`id = '${row.id}' AND ${timestampField} = '${newTimestamp}'`);
|
|
463
530
|
}
|
|
464
|
-
catch {
|
|
531
|
+
catch {
|
|
532
|
+
/* duplicate remains — reconcile will repair */
|
|
533
|
+
}
|
|
465
534
|
}
|
|
466
535
|
}
|
|
467
536
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../../../src/storage/rebuild.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../../../src/storage/rebuild.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qDAAqD,CAAC;AAOrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,gBAAgB,GAAG,CAAC,GAAG,oBAAoB,EAAE,OAAO,CAAU,CAAC;AAErE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,KAAa;IAChE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE,CAAC;AAwBD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAiB;IACjD,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAkB;QAC5B,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,CAAC;QACjB,mCAAmC,EAAE,CAAC;KACvC,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,iEAAiE;IACjE,mEAAmE;IACnE,oEAAoE;IACpE,+DAA+D;IAC/D,oEAAoE;IACpE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE/C,MAAM,6BAA6B,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACxE,MAAM,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEjE,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAEjC,iEAAiE;IACjE,iEAAiE;IACjE,sDAAsD;IACtD,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QAC9C,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE;YAC7B,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,oBAAoB;YAC/B,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,QAAQ;YACnB,EAAE,EAAE,CAAC;YACL,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAI,CACxB,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,CACV,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAE9E,KAAK,UAAU,6BAA6B,CAC1C,IAAiB,EACjB,IAAoD,EACpD,KAA4B,EAC5B,SAAiC,EACjC,MAAqB;IAErB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;IACrE,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC1C,KAAK,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;IAEhD,iEAAiE;IACjE,6DAA6D;IAC7D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACzC,oEAAoE;QACpE,mEAAmE;QACnE,mEAAmE;QACnE,2BAA2B;QAC3B,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE;YACvC,YAAY,EAAE,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;SAChE,CAAC,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBAAE,SAAS;YACpC,IAAI,SAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEb,4DAA4D;YAC5D,yDAAyD;YACzD,qBAAqB;YACrB,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;YACjE,MAAM,OAAO,GACX,KAAK,CAAC,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAChE,MAAM,QAAQ,GAAG,OAAO;gBACtB,CAAC,CAAC,IAAI,CAAC,sBAAuB;gBAC9B,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;YAEzD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACpD,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,IAAI,CAAC,OAAO,EACZ,QAAQ,EACR;oBACE,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,0BAA0B;oBACrC,WAAW,EAAE,CAAC;iBACf,EACD,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAC9B,CAAC;gBACF,MAAM,GAAG,GAAqB;oBAC5B,EAAE;oBACF,WAAW,EAAE,SAAS;oBACtB,OAAO;oBACP,SAAS;oBACT,WAAW,EACT,KAAK,CAAC,IAAI,KAAK,OAAO;wBACpB,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,2BAA2B;oBACjC,YAAY,EAAE,KAAK,CAAC,KAAK;oBACzB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;oBACpC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACpC,QAAQ,EAAE,IAAI;iBACf,CAAC;gBACF,MAAM,eAAe,GAAc,OAAO;oBACxC,CAAC,CAAC,uBAAuB;oBACzB,CAAC,CAAC,iBAAiB,CAAC;gBACtB,MAAM,gBAAgB,CACpB,IAAI,CAAC,OAAO,EACZ;oBACE,KAAK,EAAE,eAAe;oBACtB,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,uBAAuB;oBAClC,SAAS,EAAE,CAAC;oBACZ,KAAK,EAAE,QAAQ;iBAChB,EACD,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAC9B,CAAC;gBACF,SAAS,CAAC,GAAG,CACX,eAAe,EACf,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAC1C,CAAC;gBACF,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4BAA4B,SAAS,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAC/F,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,IAAiB,EACjB,IAAoD,EACpD,KAA4B,EAC5B,SAAiC,EACjC,MAAqB;IAErB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;IACjE,KAAK,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;IAC1C,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,IAAI,EAAE,CAAC,CACrE,CAAC;IAEF,0EAA0E;IAC1E,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,6EAA6E;IAC7E,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,8EAA8E;IAC9E,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QACrC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,SAAS;YACtC,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,EAAE;gBAAE,SAAS;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,IAAI,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxD,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,yEAAyE;IACzE,mEAAmE;IACnE,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACjE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAC5B,CAAC;IACF,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAGvD,CAAC;YACF,MAAM,GAAG,GACP,OAAO,GAAG,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,mCAAmC,EAAE,CAAC;gBAC7C,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAI,GAAG,CAAC,OAAkB,IAAI,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAI,GAAG,CAAC,OAAkB,IAAI,OAAO,CAAC;YACnD,MAAM,GAAG,GAAG,MAAM,WAAW,CAC3B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,iBAAiB,EACtB;gBACE,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,wBAAwB;gBACnC,WAAW,EAAE,CAAC;aACf,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,CACvD,CAAC;YAEF,MAAM,WAAW,GACf,OAAO,GAAG,CAAC,wBAAwB,KAAK,QAAQ;gBAChD,GAAG,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC;gBACrC,CAAC,CAAC,GAAG,CAAC,wBAAwB;gBAC9B,CAAC,CAAC,OAAO;oBACP,CAAC,CAAC,8BAA8B,CAAC,OAAO,CAAC;oBACzC,CAAC,CAAC,EAAE,CAAC;YAEX,MAAM,GAAG,GAAoB;gBAC3B,EAAE;gBACF,OAAO;gBACP,OAAO;gBACP,SAAS,EAAE,GAAG;gBACd,MAAM,EAAG,GAAG,CAAC,MAAoC,IAAI,aAAa;gBAClE,MAAM,EAAG,GAAG,CAAC,MAAoC,IAAI,MAAM;gBAC3D,MAAM,EAAG,GAAG,CAAC,MAAoC,IAAI,OAAO;gBAC5D,OAAO,EAAG,GAAG,CAAC,OAAsC,IAAI,QAAQ;gBAChE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAE,GAAG,CAAC,MAAmB,IAAI,EAAE,CAAC;gBACtD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAE,GAAG,CAAC,SAAsB,IAAI,EAAE,CAAC;gBAC5D,WAAW,EAAE,IAAI,CAAC,SAAS,CAAE,GAAG,CAAC,WAAwB,IAAI,EAAE,CAAC;gBAChE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,eAAe,EAAG,GAAG,CAAC,eAA0B,IAAI,EAAE;gBACtD,wBAAwB,EAAE,WAAW;aACtC,CAAC;YAEF,MAAM,YAAY,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,YAAY,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;YAC3D,MAAM,WAAW,GACf,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,oBAAoB,CAAC;YACjE,MAAM,YAAY,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;YAChE,MAAM,gBAAgB,CACpB,IAAI,CAAC,OAAO,EACZ;gBACE,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,qBAAqB;gBAChC,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,QAAQ;aAChB,EACD,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAC9B,CAAC;YACF,IAAI,GAAG;gBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yCAAyC,EAAE,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACrG,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAiB,EACjB,IAAoD,EACpD,KAA4B,EAC5B,SAAiC,EACjC,MAAqB;IAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAClD,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAE5D,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAGvD,CAAC;gBACF,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;oBAAE,SAAS;gBAEpD,MAAM,OAAO,GACV,GAAG,CAAC,OAAkB,IAAK,GAAG,CAAC,OAAkB,IAAI,EAAE,CAAC;gBAC3D,MAAM,GAAG,GAAG,MAAM,WAAW,CAC3B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,iBAAiB,EACtB;oBACE,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,kBAAkB;oBAC7B,WAAW,EAAE,CAAC;iBACf,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAC5C,CAAC;gBAEF,MAAM,GAAG,GAAc;oBACrB,EAAE,EAAE,GAAG,CAAC,EAAY;oBACpB,OAAO,EAAG,GAAG,CAAC,OAAkB,IAAI,EAAE;oBACtC,OAAO,EAAG,GAAG,CAAC,OAAkB,IAAI,EAAE;oBACtC,SAAS,EAAE,GAAG;oBACd,YAAY,EAAG,GAAG,CAAC,YAAuB,IAAI,EAAE;oBAChD,UAAU,EAAG,GAAG,CAAC,UAAqB,IAAI,EAAE;oBAC5C,WAAW,EAAG,GAAG,CAAC,WAAsB,IAAI,QAAQ;oBACpD,UAAU,EAAG,GAAG,CAAC,UAAqB,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACnE,CAAC;gBAEF,MAAM,gBAAgB,CACpB,IAAI,CAAC,OAAO,EACZ;oBACE,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,eAAe;oBAC1B,SAAS,EAAE,CAAC;oBACZ,KAAK,EAAE,QAAQ;iBAChB,EACD,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CACxB,CAAC;gBACF,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9D,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wCAAwC,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACtG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAoBD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,iBAAoC,EACpC,KAAmB,EACnB,OAAe,EACf,MAAe,EACf,sBAA0C;IAE1C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,iBAAiB,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC5E,KAAK,IAAI,MAAM,qBAAqB,CAClC,iBAAiB,EACjB,OAAO,EACP,MAAM,EACN,sBAAsB,CACvB,CAAC;QACF,IAAI,sBAAsB,EAAE,CAAC;YAC3B,KAAK,IAAI,MAAM,0BAA0B,CACvC,sBAAsB,EACtB,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;QACjD,KAAK,IAAI,MAAM,YAAY,CACzB,mBAAmB,EACnB,iBAAiB,EACjB,OAAO,EACP,wBAAwB,EACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAC7B,YAAY,CACb,CAAC;QACF,KAAK,IAAI,MAAM,YAAY,CACzB,oBAAoB,EACpB,iBAAiB,EACjB,OAAO,EACP,wBAAwB,EACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAC7B,YAAY,CACb,CAAC;QACF,KAAK,IAAI,MAAM,YAAY,CACzB,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,kBAAkB,EAClB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAC7B,YAAY,CACb,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAe,EACf,MAAe;IAEf,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,UAAU,GAAgB,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;IAC7E,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,KAAY,CAAC;QACjB,IAAI,CAAC;YACH,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAuB,CAAC;QAEnE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAmB,CAAC;QACjD,MAAM,WAAW,GAAG,CAAC,IAAY,EAAW,EAAE;YAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC;YACxC,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IACE,GAAG,CAAC,WAAW,KAAK,oBAAoB;gBACxC,GAAG,CAAC,WAAW,KAAK,2BAA2B;gBAE/C,SAAS;YAEX,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACxD,IAAI,CAAC,KAAK;oBAAE,SAAS;gBACrB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,SAAS;YACzC,CAAC;YAED,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;gBAAE,SAAS;YAE7C,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;gBACvC,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2BAA2B,SAAS,QAAQ,GAAG,CAAC,EAAE,qBAAqB,GAAG,CAAC,WAAW,KAAK,CAC5F,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oCAAoC,GAAG,CAAC,EAAE,OAAO,SAAS,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACpH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,qBAAqB,CAClC,aAAgC,EAChC,OAAe,EACf,MAAe,EACf,aAAiC;IAEjC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAuB,CAAC;IACtE,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,sBAAsB,CACrC,GAAG,CAAC,WAAW,EACf,aAAa,EACb,MAAM,EACN,aAAa,CACd,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,WAAW,CACpC,OAAO,EACP,QAAQ,EACR;gBACE,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,0BAA0B;gBACrC,WAAW,EAAE,CAAC;aACf,EACD,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAClC,CAAC;YACF,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,gBAAgB,CACpB,OAAO,EACP;gBACE,KAAK,EAAE,iBAAiB;gBACxB,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,uBAAuB;gBAClC,SAAS,EAAE,CAAC;aACb,EACD,GAAG,EAAE,CACH,KAAK,CAAC,GAAG,CAAC;gBACR,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;aAC9D,CAAC,CACL,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,MAAM,CAChB,SAAS,GAAG,CAAC,EAAE,uBAAuB,YAAY,GAAG,CACtD,CAAC;gBACF,KAAK,EAAE,CAAC;YACV,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,MAAM,CAChB,SAAS,GAAG,CAAC,EAAE,uBAAuB,YAAY,GAAG,CACtD,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,+CAA+C;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+BAA+B,GAAG,CAAC,EAAE,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAClH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,0BAA0B,CACvC,aAAgC,EAChC,OAAe;IAEf,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAuB,CAAC;IACtE,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,WAAW,CACpC,OAAO,EACP,aAAa,EACb;gBACE,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,gCAAgC;gBAC3C,WAAW,EAAE,CAAC;aACf,EACD,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CACvC,CAAC;YACF,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,gBAAgB,CACpB,OAAO,EACP;gBACE,KAAK,EAAE,uBAAuB;gBAC9B,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,6BAA6B;gBACxC,SAAS,EAAE,CAAC;aACb,EACD,GAAG,EAAE,CACH,KAAK,CAAC,GAAG,CAAC;gBACR,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;aAC9D,CAAC,CACL,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,MAAM,CAChB,SAAS,GAAG,CAAC,EAAE,uBAAuB,YAAY,GAAG,CACtD,CAAC;gBACF,KAAK,EAAE,CAAC;YACV,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,MAAM,CAChB,SAAS,GAAG,CAAC,EAAE,uBAAuB,YAAY,GAAG,CACtD,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,+CAA+C;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+BAA+B,GAAG,CAAC,EAAE,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACxH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAC7B,UAAkB,EAClB,aAAgC,EAChC,MAAe,EACf,aAAiC;IAEjC,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa;QAAE,OAAO,aAAa,CAAC;IACpD,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,MAAM,EAAE,UAAU,KAAK,OAAO;QAAE,OAAO,aAAa,CAAC;IACzD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACvB,QAAgB,EAChB,MAAc;IAEd,IAAI,IAA2C,CAAC;IAChD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;YAC9D,IAAI,GAAG,CAAC,CAAC;YACT,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,SAAoB,EACpB,iBAAoC,EACpC,OAAe,EACf,SAAiB,EACjB,OAA2B,EAC3B,cAAsB;IAEtB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAQ,CAAC;IACvD,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,YAAY,GAAG,MAAM,WAAW,CACpC,OAAO,EACP,iBAAiB,EACjB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,EAClD,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CACpC,CAAC;YACF,MAAM,YAAY,GAAI,GAA+B,CACnD,cAAc,CACL,CAAC;YACZ,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,gBAAgB,CACpB,OAAO,EACP;gBACE,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,SAAS;gBAC3D,SAAS,EAAE,CAAC;aACb,EACD,GAAG,EAAE,CACH,KAAK,CAAC,GAAG,CAAC;gBACR,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE;aACpE,CAAC,CACL,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,MAAM,CAChB,SAAS,GAAG,CAAC,EAAE,SAAS,cAAc,OAAO,YAAY,GAAG,CAC7D,CAAC;gBACF,KAAK,EAAE,CAAC;YACV,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,MAAM,CAChB,SAAS,GAAG,CAAC,EAAE,SAAS,cAAc,OAAO,YAAY,GAAG,CAC7D,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,+CAA+C;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+BAA+B,GAAG,CAAC,EAAE,OAAO,SAAS,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAC/G,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAgB;IAEhB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GACvE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5C,GAAG,CAAC;IACJ,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -286,6 +286,40 @@ def has_voyage_issue(doctor):
|
|
|
286
286
|
)
|
|
287
287
|
|
|
288
288
|
|
|
289
|
+
# Warning kinds whose repair a non-technical user may want an AI to walk them
|
|
290
|
+
# through. An explicit allowlist, not a blacklist: most warnings either carry
|
|
291
|
+
# their own one-click action (update_available, mcp_not_installed) or have no
|
|
292
|
+
# action at all (capture_daemon_stale's nextAction is literally "Nothing to
|
|
293
|
+
# do") — offering "Copy fix prompt" for those would promise a fix that isn't
|
|
294
|
+
# needed. Add a kind here only once `rift doctor --copy-prompt` produces a
|
|
295
|
+
# genuinely useful repair prompt for it.
|
|
296
|
+
REPAIRABLE_WARNINGS = {"capture_quarantined"}
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
def has_repairable_warning(doctor):
|
|
300
|
+
"""A warning whose repair the user may want an AI to walk them through."""
|
|
301
|
+
if not isinstance(doctor, dict):
|
|
302
|
+
return False
|
|
303
|
+
return any(
|
|
304
|
+
i.get("severity") == "warning" and i.get("kind") in REPAIRABLE_WARNINGS
|
|
305
|
+
for i in (doctor.get("issues") or [])
|
|
306
|
+
)
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
def copy_prompt_actions():
|
|
310
|
+
"""The 'Copy fix prompt for Claude/Codex' menu rows (no embedded prompt)."""
|
|
311
|
+
out = []
|
|
312
|
+
for label, target in (("Claude", "claude"), ("Codex", "codex")):
|
|
313
|
+
action = rift_action(
|
|
314
|
+
f"Copy fix prompt for {label}",
|
|
315
|
+
["doctor", "--copy-prompt", f"--target={target}"],
|
|
316
|
+
terminal=False,
|
|
317
|
+
)
|
|
318
|
+
if action:
|
|
319
|
+
out.append(action)
|
|
320
|
+
return out
|
|
321
|
+
|
|
322
|
+
|
|
289
323
|
def render_advisories(doctor):
|
|
290
324
|
"""Warning-level issues that aren't already shown as client rows."""
|
|
291
325
|
rows = []
|
|
@@ -307,28 +341,27 @@ def render_advisories(doctor):
|
|
|
307
341
|
return rows
|
|
308
342
|
|
|
309
343
|
|
|
310
|
-
def render_footer_actions(broken, doctor_ok):
|
|
344
|
+
def render_footer_actions(broken, doctor_ok, offer_copy_prompt=False):
|
|
311
345
|
"""Common Rift-owned actions. Order differs by state per the plan.
|
|
312
346
|
|
|
313
347
|
`doctor_ok` gates the doctor-powered actions (`Copy fix prompt …` and
|
|
314
348
|
`Troubleshooting`): they appear only when the CLI actually produced a
|
|
315
349
|
report, never merely because the rift binary resolved.
|
|
350
|
+
|
|
351
|
+
`offer_copy_prompt` extends the AI repair prompt to the non-broken
|
|
352
|
+
(warning) state: a warning with a repair action (e.g. large sessions
|
|
353
|
+
parked) gets the same one-click Claude/Codex help a broken state does.
|
|
316
354
|
"""
|
|
317
355
|
lines = ["---"]
|
|
318
356
|
if broken:
|
|
319
357
|
if doctor_ok:
|
|
320
|
-
|
|
321
|
-
action = rift_action(
|
|
322
|
-
f"Copy fix prompt for {label}",
|
|
323
|
-
["doctor", "--copy-prompt", f"--target={target}"],
|
|
324
|
-
terminal=False,
|
|
325
|
-
)
|
|
326
|
-
if action:
|
|
327
|
-
lines.append(action)
|
|
358
|
+
lines += copy_prompt_actions()
|
|
328
359
|
logs = open_action("Open logs", env("RIFT_LOG_DIR"))
|
|
329
360
|
if logs:
|
|
330
361
|
lines.append(logs)
|
|
331
362
|
else:
|
|
363
|
+
if doctor_ok and offer_copy_prompt:
|
|
364
|
+
lines += copy_prompt_actions()
|
|
332
365
|
cap = rift_action("Capture now", ["capture"], terminal=False, refresh=True)
|
|
333
366
|
if cap:
|
|
334
367
|
lines.append(cap)
|
|
@@ -427,7 +460,11 @@ def render(doctor, status, mcp, health, now):
|
|
|
427
460
|
lines.append("Heads up:")
|
|
428
461
|
lines += advisories
|
|
429
462
|
|
|
430
|
-
lines += render_footer_actions(
|
|
463
|
+
lines += render_footer_actions(
|
|
464
|
+
broken=False,
|
|
465
|
+
doctor_ok=has_doctor_report(doctor),
|
|
466
|
+
offer_copy_prompt=has_repairable_warning(doctor),
|
|
467
|
+
)
|
|
431
468
|
return lines
|
|
432
469
|
|
|
433
470
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getrift/rift",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.17",
|
|
4
4
|
"description": "Local-first personal memory + reasoning infrastructure with an MCP interface.",
|
|
5
5
|
"homepage": "https://getrift.dev",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -22,13 +22,16 @@
|
|
|
22
22
|
"test": "vitest run",
|
|
23
23
|
"test:watch": "vitest",
|
|
24
24
|
"build:clean": "rm -rf dist",
|
|
25
|
-
"build": "
|
|
25
|
+
"build": "npm run build:clean && tsc",
|
|
26
26
|
"check": "tsc --noEmit",
|
|
27
|
+
"ci:typecheck": "npm run check",
|
|
28
|
+
"ci:test:focused": "tsx tests/fixtures/generate.ts && vitest tests/retrieval/current-truth.test.ts tests/retrieval/report-demotion.test.ts tests/retrieval/locator-boost.test.ts tests/retrieval/context-pack.test.ts tests/server/routes/search.test.ts tests/server/routes/context.test.ts --run",
|
|
29
|
+
"ci:pr": "npm run ci:typecheck && npm run check:rename && npm run ci:test:focused",
|
|
27
30
|
"check:rename": "bash scripts/check-rename.sh",
|
|
28
31
|
"check:tarball": "bash scripts/verify-tarball.sh",
|
|
29
32
|
"plist:generate": "bash scripts/generate-plist.sh",
|
|
30
33
|
"postinstall": "node -e \"const e=process.env;if(e.RIFT_SKIP_POSTINSTALL_MENUBAR==='1'||(e.RIFT_POSTINSTALL_MENUBAR!=='1'&&e.npm_config_global!=='true'&&e.npm_config_location!=='global'))process.exit(0);import('./dist/src/cli/postinstall-menubar.js').catch(() => {})\"",
|
|
31
|
-
"prepublishOnly": "
|
|
34
|
+
"prepublishOnly": "npm run check && npm run check:rename && npm run build && npm run check:tarball"
|
|
32
35
|
},
|
|
33
36
|
"dependencies": {
|
|
34
37
|
"@fastify/multipart": "^9.4.0",
|