opencode-rag-plugin 1.3.6 → 1.5.1

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.
Files changed (67) hide show
  1. package/ReadMe.md +51 -1
  2. package/dist/cli.d.ts +0 -5
  3. package/dist/cli.js +250 -103
  4. package/dist/cli.js.map +1 -1
  5. package/dist/core/config.d.ts +18 -1
  6. package/dist/core/config.js +16 -0
  7. package/dist/core/config.js.map +1 -1
  8. package/dist/core/interfaces.d.ts +6 -1
  9. package/dist/core/manifest.d.ts +2 -0
  10. package/dist/core/manifest.js +5 -2
  11. package/dist/core/manifest.js.map +1 -1
  12. package/dist/core/provider-defaults.d.ts +9 -0
  13. package/dist/core/provider-defaults.js +84 -0
  14. package/dist/core/provider-defaults.js.map +1 -0
  15. package/dist/core/resolve-api-key.d.ts +2 -0
  16. package/dist/core/resolve-api-key.js +71 -0
  17. package/dist/core/resolve-api-key.js.map +1 -0
  18. package/dist/core/runtime-overrides.d.ts +36 -0
  19. package/dist/core/runtime-overrides.js +106 -0
  20. package/dist/core/runtime-overrides.js.map +1 -0
  21. package/dist/describer/anthropic.d.ts +10 -0
  22. package/dist/describer/anthropic.js +167 -0
  23. package/dist/describer/anthropic.js.map +1 -0
  24. package/dist/describer/describer.d.ts +12 -0
  25. package/dist/describer/describer.js +177 -0
  26. package/dist/describer/describer.js.map +1 -0
  27. package/dist/describer/factory.d.ts +3 -0
  28. package/dist/describer/factory.js +19 -0
  29. package/dist/describer/factory.js.map +1 -0
  30. package/dist/describer/gemini.d.ts +10 -0
  31. package/dist/describer/gemini.js +177 -0
  32. package/dist/describer/gemini.js.map +1 -0
  33. package/dist/embedder/cohere.d.ts +12 -0
  34. package/dist/embedder/cohere.js +35 -0
  35. package/dist/embedder/cohere.js.map +1 -0
  36. package/dist/embedder/factory.d.ts +1 -1
  37. package/dist/embedder/factory.js +19 -12
  38. package/dist/embedder/factory.js.map +1 -1
  39. package/dist/embedder/ollama.d.ts +1 -1
  40. package/dist/embedder/ollama.js +1 -1
  41. package/dist/embedder/ollama.js.map +1 -1
  42. package/dist/embedder/openai.d.ts +8 -1
  43. package/dist/embedder/openai.js +30 -2
  44. package/dist/embedder/openai.js.map +1 -1
  45. package/dist/index.d.ts +3 -2
  46. package/dist/index.js +1 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/indexer.d.ts +2 -1
  49. package/dist/indexer.js +38 -1
  50. package/dist/indexer.js.map +1 -1
  51. package/dist/opencode/create-read-tool.js +2 -2
  52. package/dist/opencode/create-read-tool.js.map +1 -1
  53. package/dist/plugin.d.ts +2 -1
  54. package/dist/plugin.js +67 -18
  55. package/dist/plugin.js.map +1 -1
  56. package/dist/retriever/retriever.d.ts +1 -0
  57. package/dist/retriever/retriever.js +2 -1
  58. package/dist/retriever/retriever.js.map +1 -1
  59. package/dist/tui.js +474 -11
  60. package/dist/tui.js.map +1 -1
  61. package/dist/vectorstore/lancedb.d.ts +19 -0
  62. package/dist/vectorstore/lancedb.js +162 -41
  63. package/dist/vectorstore/lancedb.js.map +1 -1
  64. package/dist/watcher.d.ts +6 -1
  65. package/dist/watcher.js +72 -26
  66. package/dist/watcher.js.map +1 -1
  67. package/package.json +3 -2
package/dist/tui.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { createElement, insert, setProp } from "@opentui/solid";
2
- import { readFileSync } from "node:fs";
3
- import { existsSync } from "node:fs";
4
- import { dirname, join } from "node:path";
2
+ import { readFileSync, existsSync, writeFileSync } from "node:fs";
3
+ import { dirname, join, resolve } from "node:path";
5
4
  import { fileURLToPath } from "node:url";
5
+ import { loadRuntimeOverrides, saveRuntimeOverride } from "./core/runtime-overrides.js";
6
+ import { PROVIDER_DEFAULTS } from "./core/provider-defaults.js";
6
7
  let _version;
7
8
  function getVersion() {
8
9
  if (_version !== undefined)
@@ -23,7 +24,23 @@ const DEFAULT_STATUS = {
23
24
  model: "",
24
25
  lastIndexedAt: undefined,
25
26
  indexed: false,
27
+ watcher: { running: false, lastRunAt: undefined },
26
28
  };
29
+ function loadWatcherStatus(storePath) {
30
+ const statusPath = join(storePath, "watcher-status.json");
31
+ if (!existsSync(statusPath))
32
+ return { running: false, lastRunAt: undefined };
33
+ try {
34
+ const raw = JSON.parse(readFileSync(statusPath, "utf-8"));
35
+ return {
36
+ running: raw.running === true,
37
+ lastRunAt: typeof raw.lastRunAt === "number" ? raw.lastRunAt : undefined,
38
+ };
39
+ }
40
+ catch {
41
+ return { running: false, lastRunAt: undefined };
42
+ }
43
+ }
27
44
  function loadRagStatus(worktree) {
28
45
  const status = { ...DEFAULT_STATUS };
29
46
  for (const loc of ["opencode-rag.json", ".opencode/opencode-rag.json", ".opencode/rag.json"]) {
@@ -32,21 +49,25 @@ function loadRagStatus(worktree) {
32
49
  continue;
33
50
  try {
34
51
  const cfg = JSON.parse(readFileSync(configPath, "utf-8"));
35
- if (cfg.embedding) {
36
- status.provider = cfg.embedding.provider ?? status.provider;
37
- status.model = cfg.embedding.model ?? status.model;
52
+ const embedding = cfg.embedding;
53
+ if (embedding) {
54
+ status.provider = embedding.provider ?? status.provider;
55
+ status.model = embedding.model ?? status.model;
38
56
  }
39
- const storePath = cfg.vectorStore?.path ?? ".opencode/rag_db";
40
- const manifestPath = join(worktree, storePath, "manifest.json");
57
+ const vs = cfg.vectorStore;
58
+ const storeRelPath = vs?.path ?? ".opencode/rag_db";
59
+ const storePath = resolve(worktree, storeRelPath);
60
+ const manifestPath = join(storePath, "manifest.json");
41
61
  if (existsSync(manifestPath)) {
42
62
  const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
43
- if (manifest.files && typeof manifest.files === "object") {
44
- status.chunkCount = Object.values(manifest.files)
45
- .reduce((sum, entry) => sum + (entry.chunkCount ?? 0), 0);
63
+ const files = manifest.files;
64
+ if (files && typeof files === "object") {
65
+ status.chunkCount = Object.values(files).reduce((sum, entry) => sum + (entry.chunkCount ?? 0), 0);
46
66
  }
47
67
  status.lastIndexedAt = manifest.lastIndexedAt;
48
68
  status.indexed = status.chunkCount > 0;
49
69
  }
70
+ status.watcher = loadWatcherStatus(storePath);
50
71
  break;
51
72
  }
52
73
  catch {
@@ -96,6 +117,10 @@ function renderSidebar(theme, version, status) {
96
117
  ? `${status.chunkCount} chunks \u00B7 ${status.provider}/${status.model}`
97
118
  : "Not indexed";
98
119
  const timeLine = `Indexed ${formatRelativeTime(status.lastIndexedAt)}`;
120
+ const watcherRunning = status.watcher.running;
121
+ const watcherLine = watcherRunning
122
+ ? "Watcher running\u2026"
123
+ : `Watcher idle \u00B7 last ${formatRelativeTime(status.watcher.lastRunAt)}`;
99
124
  return box({
100
125
  width: "100%",
101
126
  flexDirection: "column",
@@ -119,8 +144,424 @@ function renderSidebar(theme, version, status) {
119
144
  ]),
120
145
  text({ fg: theme.text }, [statusLine]),
121
146
  text({ fg: theme.textMuted }, [timeLine]),
147
+ text({ fg: watcherRunning ? theme.accent : theme.textMuted }, [watcherLine]),
148
+ text({ fg: theme.textMuted }, ["Ctrl+Shift+R Settings"]),
122
149
  ]);
123
150
  }
151
+ // ── Settings dialog ────────────────────────────────────────────────
152
+ function getConfigPath(worktree) {
153
+ for (const loc of ["opencode-rag.json", ".opencode/opencode-rag.json", ".opencode/rag.json"]) {
154
+ const p = join(worktree, loc);
155
+ if (existsSync(p))
156
+ return p;
157
+ }
158
+ return undefined;
159
+ }
160
+ function readJsonFile(filePath) {
161
+ try {
162
+ return JSON.parse(readFileSync(filePath, "utf-8"));
163
+ }
164
+ catch {
165
+ return undefined;
166
+ }
167
+ }
168
+ function buildModelOptions(providers) {
169
+ const options = [];
170
+ for (const provider of providers) {
171
+ if (!provider.models)
172
+ continue;
173
+ for (const [modelId, model] of Object.entries(provider.models)) {
174
+ options.push({
175
+ title: model.name ?? modelId,
176
+ value: `${provider.id}/${modelId}`,
177
+ description: provider.name,
178
+ category: provider.name,
179
+ });
180
+ }
181
+ }
182
+ options.sort((a, b) => {
183
+ if ((a.category ?? "") < (b.category ?? ""))
184
+ return -1;
185
+ if ((a.category ?? "") > (b.category ?? ""))
186
+ return 1;
187
+ return (a.title ?? "").localeCompare(b.title ?? "");
188
+ });
189
+ options.push({ title: "Custom\u2026", value: "__custom__", description: "Enter provider/model manually" });
190
+ return options;
191
+ }
192
+ function providerIdToRagProvider(providerId) {
193
+ if (providerId === "ollama")
194
+ return "ollama";
195
+ const defaults = PROVIDER_DEFAULTS[providerId];
196
+ if (defaults)
197
+ return providerId;
198
+ return "openai";
199
+ }
200
+ function resolveProviderBaseUrl(provider) {
201
+ const baseUrl = provider.options?.baseURL ?? "";
202
+ if (provider.id === "ollama") {
203
+ const clean = baseUrl.replace(/\/+$/, "");
204
+ return clean ? `${clean}/api` : PROVIDER_DEFAULTS.ollama.defaultBaseUrl + "/api";
205
+ }
206
+ const defaults = PROVIDER_DEFAULTS[provider.id];
207
+ return baseUrl || (defaults?.defaultBaseUrl ?? "https://api.openai.com/v1");
208
+ }
209
+ function saveConfigValue(configPath, path, value) {
210
+ try {
211
+ const data = JSON.parse(readFileSync(configPath, "utf-8"));
212
+ let target = data;
213
+ for (let i = 0; i < path.length - 1; i++) {
214
+ const key = path[i];
215
+ if (!target[key] || typeof target[key] !== "object") {
216
+ target[key] = {};
217
+ }
218
+ target = target[key];
219
+ }
220
+ target[path[path.length - 1]] = value;
221
+ writeFileSync(configPath, JSON.stringify(data, null, 2), "utf-8");
222
+ }
223
+ catch {
224
+ // silently ignore write errors
225
+ }
226
+ }
227
+ function saveModelSelection(storePath, configPath, selectionValue, path, providers) {
228
+ const section = path[0];
229
+ if (selectionValue === "__custom__")
230
+ return undefined;
231
+ const parts = selectionValue.split("/");
232
+ if (parts.length < 2)
233
+ return undefined;
234
+ const providerId = parts[0];
235
+ const modelId = parts.slice(1).join("/");
236
+ const provider = providers?.find((p) => p.id === providerId);
237
+ const ragProvider = providerIdToRagProvider(providerId);
238
+ const baseUrl = provider ? resolveProviderBaseUrl(provider) : "";
239
+ saveRuntimeOverride(storePath, [section, "provider"], ragProvider);
240
+ saveConfigValue(configPath, [section, "provider"], ragProvider);
241
+ saveRuntimeOverride(storePath, [section, "model"], modelId);
242
+ saveConfigValue(configPath, [section, "model"], modelId);
243
+ if (baseUrl) {
244
+ saveRuntimeOverride(storePath, [section, "baseUrl"], baseUrl);
245
+ saveConfigValue(configPath, [section, "baseUrl"], baseUrl);
246
+ }
247
+ const apiKey = provider?.options?.apiKey ?? "";
248
+ if (apiKey) {
249
+ saveRuntimeOverride(storePath, [section, "apiKey"], apiKey);
250
+ saveConfigValue(configPath, [section, "apiKey"], apiKey);
251
+ }
252
+ return selectionValue;
253
+ }
254
+ function buildSettingCategories(cfg, ro, providers) {
255
+ const retrievalCfg = (cfg.retrieval ?? {});
256
+ const retrievalRo = (ro.retrieval ?? {});
257
+ const retrievalHybridCfg = (retrievalCfg.hybridSearch ?? {});
258
+ const retrievalHybridRo = (retrievalRo.hybridSearch ?? {});
259
+ const openCodeCfg = (cfg.openCode ?? {});
260
+ const openCodeRo = (ro.openCode ?? {});
261
+ const aiCfg = (openCodeCfg.autoIndex ?? {});
262
+ const aiRo = (openCodeRo.autoIndex ?? {});
263
+ const ajCfg = (openCodeCfg.autoInject ?? {});
264
+ const ajRo = (openCodeRo.autoInject ?? {});
265
+ const descCfg = (cfg.description ?? {});
266
+ const descRo = (ro.description ?? {});
267
+ const embeddingCfg = (cfg.embedding ?? {});
268
+ const embeddingRo = (ro.embedding ?? {});
269
+ const modelOptions = providers ? buildModelOptions(providers) : undefined;
270
+ function displayModel(roProvider, roModel, cfgProvider, cfgModel, defaultProvider, defaultModel) {
271
+ const p = roProvider ?? cfgProvider ?? defaultProvider;
272
+ const m = roModel ?? cfgModel ?? defaultModel;
273
+ return `${p}/${m}`;
274
+ }
275
+ return [
276
+ {
277
+ id: "retrieval",
278
+ label: "Retrieval",
279
+ entries: [
280
+ {
281
+ path: ["retrieval", "topK"],
282
+ label: "Top-K results",
283
+ type: "number",
284
+ currentValue: retrievalRo.topK ?? retrievalCfg.topK ?? 10,
285
+ },
286
+ {
287
+ path: ["retrieval", "minScore"],
288
+ label: "Min relevance score",
289
+ type: "number",
290
+ currentValue: retrievalRo.minScore ?? retrievalCfg.minScore ?? 0.5,
291
+ },
292
+ {
293
+ path: ["retrieval", "hybridSearch", "enabled"],
294
+ label: "Hybrid search",
295
+ type: "boolean",
296
+ currentValue: retrievalHybridRo.enabled ?? retrievalHybridCfg.enabled ?? true,
297
+ },
298
+ {
299
+ path: ["retrieval", "hybridSearch", "keywordWeight"],
300
+ label: "Keyword weight",
301
+ type: "number",
302
+ currentValue: retrievalHybridRo.keywordWeight ?? retrievalHybridCfg.keywordWeight ?? 0.4,
303
+ },
304
+ ],
305
+ },
306
+ {
307
+ id: "autoindex",
308
+ label: "Auto-Indexing",
309
+ entries: [
310
+ {
311
+ path: ["openCode", "autoIndex", "enabled"],
312
+ label: "Auto-index watcher",
313
+ type: "boolean",
314
+ currentValue: aiRo.enabled ?? aiCfg.enabled ?? true,
315
+ },
316
+ {
317
+ path: ["openCode", "autoIndex", "debounceMs"],
318
+ label: "Debounce (ms)",
319
+ type: "number",
320
+ currentValue: aiRo.debounceMs ?? aiCfg.debounceMs ?? 2000,
321
+ },
322
+ ],
323
+ },
324
+ {
325
+ id: "autoinject",
326
+ label: "Auto-Inject",
327
+ entries: [
328
+ {
329
+ path: ["openCode", "autoInject", "enabled"],
330
+ label: "Auto-inject context",
331
+ type: "boolean",
332
+ currentValue: ajRo.enabled ?? ajCfg.enabled ?? true,
333
+ },
334
+ {
335
+ path: ["openCode", "autoInject", "minScore"],
336
+ label: "Inject min score",
337
+ type: "number",
338
+ currentValue: ajRo.minScore ?? ajCfg.minScore ?? 0.75,
339
+ },
340
+ {
341
+ path: ["openCode", "autoInject", "maxChunks"],
342
+ label: "Inject max chunks",
343
+ type: "number",
344
+ currentValue: ajRo.maxChunks ?? ajCfg.maxChunks ?? 3,
345
+ },
346
+ ],
347
+ },
348
+ {
349
+ id: "embedding",
350
+ label: "Embedding",
351
+ entries: [
352
+ {
353
+ path: ["embedding", "model"],
354
+ label: "Model",
355
+ type: "string",
356
+ currentValue: displayModel(embeddingRo.provider, embeddingRo.model, embeddingCfg.provider, embeddingCfg.model, "ollama", "embeddinggemma:latest"),
357
+ options: modelOptions,
358
+ },
359
+ ],
360
+ },
361
+ {
362
+ id: "description",
363
+ label: "LLM Descriptions",
364
+ entries: [
365
+ {
366
+ path: ["description", "enabled"],
367
+ label: "LLM descriptions",
368
+ type: "boolean",
369
+ currentValue: descRo.enabled ?? descCfg.enabled ?? true,
370
+ },
371
+ {
372
+ path: ["description", "model"],
373
+ label: "Model",
374
+ type: "string",
375
+ currentValue: displayModel(descRo.provider, descRo.model, descCfg.provider, descCfg.model, "ollama", "qwen2.5:3b"),
376
+ options: modelOptions,
377
+ },
378
+ ],
379
+ },
380
+ ];
381
+ }
382
+ async function openSettingsDialog(api) {
383
+ const worktree = api.state.path.worktree;
384
+ if (!worktree)
385
+ return;
386
+ const configPath = getConfigPath(worktree);
387
+ if (!configPath) {
388
+ api.ui.toast({ variant: "error", title: "Settings", message: "No config file found" });
389
+ return;
390
+ }
391
+ const cfgRaw = readJsonFile(configPath);
392
+ if (!cfgRaw) {
393
+ api.ui.toast({ variant: "error", title: "Settings", message: "Cannot read config" });
394
+ return;
395
+ }
396
+ const cfg = cfgRaw;
397
+ const vs = cfg.vectorStore;
398
+ const storeRelPath = vs?.path ?? ".opencode/rag_db";
399
+ const storePath = resolve(worktree, storeRelPath);
400
+ const providers = api.state.provider;
401
+ function getCurrentOverrides() {
402
+ return loadRuntimeOverrides(storePath);
403
+ }
404
+ function showCategoryMenu() {
405
+ const ro = getCurrentOverrides();
406
+ const cats = buildSettingCategories(cfg, ro, providers);
407
+ const options = [
408
+ ...cats.map((c) => ({
409
+ title: c.label,
410
+ value: c.id,
411
+ description: `${c.entries.length} setting${c.entries.length === 1 ? "" : "s"}`,
412
+ })),
413
+ { title: "Done", value: "__done__", description: "Close settings" },
414
+ ];
415
+ api.ui.dialog.replace(() => api.ui.DialogSelect({
416
+ title: "OpenCodeRAG Settings",
417
+ placeholder: "Select a category",
418
+ options,
419
+ onSelect: (option) => {
420
+ if (option.value === "__done__") {
421
+ api.ui.dialog.clear();
422
+ return;
423
+ }
424
+ const cat = cats.find((c) => c.id === option.value);
425
+ if (cat)
426
+ showSettingMenu(cat);
427
+ },
428
+ }));
429
+ }
430
+ function showSettingMenu(cat) {
431
+ const options = [
432
+ ...cat.entries.map((s) => ({
433
+ title: `${s.label}: ${s.type === "boolean" ? (s.currentValue ? "Yes" : "No") : String(s.currentValue)}`,
434
+ value: s.path.join("."),
435
+ description: s.options ? "Select to open model picker" : (s.type === "boolean" ? "Select to toggle" : "Select to edit"),
436
+ })),
437
+ { title: "\u2190 Back", value: "__back__", description: "Return to categories" },
438
+ ];
439
+ api.ui.dialog.replace(() => api.ui.DialogSelect({
440
+ title: cat.label,
441
+ placeholder: "Select a setting",
442
+ options,
443
+ onSelect: (option) => {
444
+ if (option.value === "__back__") {
445
+ showCategoryMenu();
446
+ return;
447
+ }
448
+ const entry = cat.entries.find((s) => s.path.join(".") === option.value);
449
+ if (!entry)
450
+ return;
451
+ if (entry.options) {
452
+ showModelPicker(entry, cat);
453
+ }
454
+ else if (entry.type === "boolean") {
455
+ const newVal = !entry.currentValue;
456
+ saveRuntimeOverride(storePath, entry.path, newVal);
457
+ saveConfigValue(configPath, entry.path, newVal);
458
+ api.ui.toast({
459
+ variant: "success",
460
+ title: "Settings",
461
+ message: `${entry.label}: ${newVal ? "Yes" : "No"}`,
462
+ });
463
+ entry.currentValue = newVal;
464
+ showSettingMenu(cat);
465
+ }
466
+ else if (entry.type === "number") {
467
+ api.ui.dialog.replace(() => api.ui.DialogPrompt({
468
+ title: `Edit ${entry.label}`,
469
+ placeholder: "Enter new value",
470
+ value: String(entry.currentValue),
471
+ onConfirm: (input) => {
472
+ const num = parseFloat(input);
473
+ if (!isNaN(num)) {
474
+ saveRuntimeOverride(storePath, entry.path, num);
475
+ saveConfigValue(configPath, entry.path, num);
476
+ api.ui.toast({
477
+ variant: "success",
478
+ title: "Settings",
479
+ message: `${entry.label}: ${num}`,
480
+ });
481
+ entry.currentValue = num;
482
+ }
483
+ showSettingMenu(cat);
484
+ },
485
+ onCancel: () => {
486
+ showSettingMenu(cat);
487
+ },
488
+ }));
489
+ }
490
+ else {
491
+ api.ui.dialog.replace(() => api.ui.DialogPrompt({
492
+ title: `Edit ${entry.label}`,
493
+ placeholder: "Enter new value",
494
+ value: String(entry.currentValue),
495
+ onConfirm: (input) => {
496
+ saveRuntimeOverride(storePath, entry.path, input);
497
+ saveConfigValue(configPath, entry.path, input);
498
+ api.ui.toast({
499
+ variant: "success",
500
+ title: "Settings",
501
+ message: `${entry.label}: ${input}`,
502
+ });
503
+ entry.currentValue = input;
504
+ showSettingMenu(cat);
505
+ },
506
+ onCancel: () => {
507
+ showSettingMenu(cat);
508
+ },
509
+ }));
510
+ }
511
+ },
512
+ }));
513
+ }
514
+ function showModelPicker(entry, cat) {
515
+ api.ui.dialog.replace(() => api.ui.DialogSelect({
516
+ title: `Select ${entry.label}`,
517
+ placeholder: "Search models\u2026",
518
+ options: entry.options ?? [],
519
+ onSelect: (option) => {
520
+ if (option.value === "__custom__") {
521
+ api.ui.dialog.replace(() => api.ui.DialogPrompt({
522
+ title: `Custom ${entry.label}`,
523
+ placeholder: "e.g. ollama/my-model or openai/custom-model",
524
+ value: typeof entry.currentValue === "string" ? entry.currentValue : "",
525
+ onConfirm: (input) => {
526
+ const saved = saveModelSelection(storePath, configPath, input, entry.path, providers);
527
+ if (saved) {
528
+ entry.currentValue = saved;
529
+ }
530
+ else if (input) {
531
+ saveRuntimeOverride(storePath, entry.path, input);
532
+ saveConfigValue(configPath, entry.path, input);
533
+ entry.currentValue = input;
534
+ }
535
+ showSettingMenu(cat);
536
+ },
537
+ onCancel: () => showSettingMenu(cat),
538
+ }));
539
+ return;
540
+ }
541
+ const saved = saveModelSelection(storePath, configPath, option.value, entry.path, providers);
542
+ if (saved) {
543
+ entry.currentValue = saved;
544
+ api.ui.toast({
545
+ variant: "success",
546
+ title: "Settings",
547
+ message: `${entry.label}: ${saved}`,
548
+ });
549
+ const isEmbedding = entry.path[0] === "embedding";
550
+ if (isEmbedding) {
551
+ api.ui.toast({
552
+ variant: "warning",
553
+ title: "Settings",
554
+ message: "Embedding changed. Re-index may be required. Restart OpenCode for changes.",
555
+ });
556
+ }
557
+ }
558
+ showSettingMenu(cat);
559
+ },
560
+ }));
561
+ }
562
+ showCategoryMenu();
563
+ }
564
+ // ── Plugin export ──────────────────────────────────────────────────
124
565
  const plugin = {
125
566
  id: `${PLUGIN_NAME}:tui`,
126
567
  tui: async (api, _options, meta) => {
@@ -136,6 +577,7 @@ const plugin = {
136
577
  }
137
578
  }
138
579
  refreshStatus();
580
+ // Register sidebar slot
139
581
  api.slots.register({
140
582
  order: 900,
141
583
  slots: {
@@ -147,6 +589,27 @@ const plugin = {
147
589
  },
148
590
  },
149
591
  });
592
+ // Register keybinding for settings dialog
593
+ try {
594
+ api.keymap.registerLayer({
595
+ bindings: [{ key: "ctrl+shift+r", cmd: "opencode-rag:settings" }],
596
+ commands: [
597
+ {
598
+ name: "opencode-rag:settings",
599
+ run: () => {
600
+ openSettingsDialog({
601
+ ui: api.ui,
602
+ state: api.state,
603
+ });
604
+ return undefined;
605
+ },
606
+ },
607
+ ],
608
+ });
609
+ }
610
+ catch (err) {
611
+ // Keymap registration may fail in older OpenCode versions; silently skip
612
+ }
150
613
  },
151
614
  };
152
615
  export default plugin;
package/dist/tui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,IAAI,QAA4B,CAAC;AACjC,SAAS,UAAU;IACjB,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACrF,QAAQ,GAAG,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IACD,OAAO,QAAS,CAAC;AACnB,CAAC;AAgBD,MAAM,cAAc,GAAc;IAChC,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,EAAE;IACT,aAAa,EAAE,SAAS;IACxB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE;CAClD,CAAC;AAEF,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,GAAG,GAA4B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACnF,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI;YAC7B,SAAS,EAAE,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACzE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,6BAA6B,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC;YACH,MAAM,GAAG,GAA4B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YACnF,MAAM,SAAS,GAAG,GAAG,CAAC,SAAgD,CAAC;YACvE,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,QAAQ,GAAI,SAAS,CAAC,QAAmB,IAAI,MAAM,CAAC,QAAQ,CAAC;gBACpE,MAAM,CAAC,KAAK,GAAI,SAAS,CAAC,KAAgB,IAAI,MAAM,CAAC,KAAK,CAAC;YAC7D,CAAC;YACD,MAAM,EAAE,GAAG,GAAG,CAAC,WAAkD,CAAC;YAClE,MAAM,YAAY,GAAI,EAAE,EAAE,IAAe,IAAI,kBAAkB,CAAC;YAChE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAElD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACtD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAA4B,CAAC;gBAC5F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAA4D,CAAC;gBACpF,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAC7C,CAAC,GAAW,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,EACrD,CAAC,CACF,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAmC,CAAC;gBACpE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;YACzC,CAAC;YAED,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM;QACR,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA6B;IACvD,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACxC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,UAAU,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,GAAG,KAAK,OAAO,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,OAAO,GAAG,IAAI,OAAO,CAAC;AACxB,CAAC;AAID,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C,SAAS,OAAO,CACd,GAAW,EACX,KAA8B,EAC9B,WAAoB,EAAE;IAEtB,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK;YAAE,SAAS;QACvE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,IAA8B,CAAC;AACxC,CAAC;AAED,SAAS,IAAI,CAAC,KAA8B,EAAE,WAAoB,EAAE;IAClE,OAAO,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,GAAG,CAAC,KAA8B,EAAE,WAAoB,EAAE;IACjE,OAAO,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CACpB,KAA6D,EAC7D,OAAe,EACf,MAAiB;IAEjB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO;QAC/B,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,kBAAkB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE;QACzE,CAAC,CAAC,aAAa,CAAC;IAClB,MAAM,QAAQ,GAAG,WAAW,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAEvE,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9C,MAAM,WAAW,GAAG,cAAc;QAChC,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,4BAA4B,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;IAE/E,OAAO,GAAG,CACR;QACE,KAAK,EAAE,MAAM;QACb,aAAa,EAAE,QAAQ;QACvB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;KAChB,EACD;QACE,GAAG,CACD;YACE,KAAK,EAAE,MAAM;YACb,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,eAAe;YAC/B,UAAU,EAAE,QAAQ;SACrB,EACD;YACE,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE;gBACtE,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;aACzC,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;SAC/C,CACF;QACD,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;QAC5E,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC;KACzD,CACF,CAAC;AACJ,CAAC;AAED,sEAAsE;AAEtE,SAAS,aAAa,CAAC,QAAgB;IACrC,KAAK,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,6BAA6B,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC7F,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC9B,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAA8B,QAAgB;IACjE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAM,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAgBD,SAAS,iBAAiB,CAAC,SAA8B;IACvD,MAAM,OAAO,GAAgF,EAAE,CAAC;IAChG,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,SAAS;QAC/B,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO;gBAC5B,KAAK,EAAE,GAAG,QAAQ,CAAC,EAAE,IAAI,OAAO,EAAE;gBAClC,WAAW,EAAE,QAAQ,CAAC,IAAI;gBAC1B,QAAQ,EAAE,QAAQ,CAAC,IAAI;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;YAAE,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC,CAAC;IAC3G,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB;IACjD,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,QAAQ;QAAE,OAAO,UAAU,CAAC;IAChC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkB;IAChD,MAAM,OAAO,GAAI,QAAQ,CAAC,OAAO,EAAE,OAAkB,IAAI,EAAE,CAAC;IAC5D,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAO,CAAC,cAAc,GAAG,MAAM,CAAC;IACpF,CAAC;IACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChD,OAAO,OAAO,IAAI,CAAC,QAAQ,EAAE,cAAc,IAAI,2BAA2B,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB,EAAE,IAAc,EAAE,KAAc;IACzE,IAAI,CAAC;QACH,MAAM,IAAI,GAA4B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACpF,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,GAAG,CAA4B,CAAC;QAClD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,GAAG,KAAK,CAAC;QACvC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,SAAiB,EACjB,UAAkB,EAClB,cAAsB,EACtB,IAAc,EACd,SAA+B;IAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;IACzB,IAAI,cAAc,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC;IAEtD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzC,MAAM,QAAQ,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,mBAAmB,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;IACnE,eAAe,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;IAChE,mBAAmB,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,eAAe,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACzD,IAAI,OAAO,EAAE,CAAC;QACZ,mBAAmB,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9D,eAAe,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,MAAM,GAAI,QAAQ,EAAE,OAAO,EAAE,MAAiB,IAAI,EAAE,CAAC;IAC3D,IAAI,MAAM,EAAE,CAAC;QACX,mBAAmB,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5D,eAAe,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,sBAAsB,CAC7B,GAA4B,EAC5B,EAA2B,EAC3B,SAA+B;IAE/B,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;IACtE,MAAM,WAAW,GAAG,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;IACpE,MAAM,kBAAkB,GAAG,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAA4B,CAAC;IACxF,MAAM,iBAAiB,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAA4B,CAAC;IAEtF,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;IACpE,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;IAClE,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;IACvE,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;IACrE,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IACxE,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IAEtE,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAA4B,CAAC;IACnE,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAA4B,CAAC;IAEjE,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;IACtE,MAAM,WAAW,GAAG,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;IAEpE,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1E,SAAS,YAAY,CAAC,UAAmB,EAAE,OAAgB,EAAE,WAAoB,EAAE,QAAiB,EAAE,eAAuB,EAAE,YAAoB;QACjJ,MAAM,CAAC,GAAI,UAAqB,IAAK,WAAsB,IAAI,eAAe,CAAC;QAC/E,MAAM,CAAC,GAAI,OAAkB,IAAK,QAAmB,IAAI,YAAY,CAAC;QACtE,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,OAAO;QACL;YACE,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;oBAC3B,KAAK,EAAE,eAAe;oBACtB,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAG,WAAW,CAAC,IAAe,IAAK,YAAY,CAAC,IAAe,IAAI,EAAE;iBAClF;gBACD;oBACE,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;oBAC/B,KAAK,EAAE,qBAAqB;oBAC5B,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAG,WAAW,CAAC,QAAmB,IAAK,YAAY,CAAC,QAAmB,IAAI,GAAG;iBAC3F;gBACD;oBACE,IAAI,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC;oBAC9C,KAAK,EAAE,eAAe;oBACtB,IAAI,EAAE,SAAS;oBACf,YAAY,EAAG,iBAAiB,CAAC,OAAmB,IAAK,kBAAkB,CAAC,OAAmB,IAAI,IAAI;iBACxG;gBACD;oBACE,IAAI,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,eAAe,CAAC;oBACpD,KAAK,EAAE,gBAAgB;oBACvB,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAG,iBAAiB,CAAC,aAAwB,IAAK,kBAAkB,CAAC,aAAwB,IAAI,GAAG;iBACjH;aACF;SACF;QACD;YACE,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC;oBAC1C,KAAK,EAAE,oBAAoB;oBAC3B,IAAI,EAAE,SAAS;oBACf,YAAY,EAAG,IAAI,CAAC,OAAmB,IAAK,KAAK,CAAC,OAAmB,IAAI,IAAI;iBAC9E;gBACD;oBACE,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC;oBAC7C,KAAK,EAAE,eAAe;oBACtB,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAG,IAAI,CAAC,UAAqB,IAAK,KAAK,CAAC,UAAqB,IAAI,IAAI;iBAClF;aACF;SACF;QACD;YACE,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC;oBAC3C,KAAK,EAAE,qBAAqB;oBAC5B,IAAI,EAAE,SAAS;oBACf,YAAY,EAAG,IAAI,CAAC,OAAmB,IAAK,KAAK,CAAC,OAAmB,IAAI,IAAI;iBAC9E;gBACD;oBACE,IAAI,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC;oBAC5C,KAAK,EAAE,kBAAkB;oBACzB,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAG,IAAI,CAAC,QAAmB,IAAK,KAAK,CAAC,QAAmB,IAAI,IAAI;iBAC9E;gBACD;oBACE,IAAI,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC;oBAC7C,KAAK,EAAE,mBAAmB;oBAC1B,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAG,IAAI,CAAC,SAAoB,IAAK,KAAK,CAAC,SAAoB,IAAI,CAAC;iBAC7E;aACF;SACF;QACD;YACE,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;oBAC5B,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC;oBACjJ,OAAO,EAAE,YAAY;iBACtB;aACF;SACF;QACD;YACE,EAAE,EAAE,aAAa;YACjB,KAAK,EAAE,kBAAkB;YACzB,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;oBAChC,KAAK,EAAE,kBAAkB;oBACzB,IAAI,EAAE,SAAS;oBACf,YAAY,EAAG,MAAM,CAAC,OAAmB,IAAK,OAAO,CAAC,OAAmB,IAAI,IAAI;iBAClF;gBACD;oBACE,IAAI,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC;oBAC9B,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,QAAQ;oBACd,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC;oBAClH,OAAO,EAAE,YAAY;iBACtB;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,GAWjC;IACC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzC,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACrF,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAA4B,MAAM,CAAC;IAC5C,MAAM,EAAE,GAAG,GAAG,CAAC,WAAkD,CAAC;IAClE,MAAM,YAAY,GAAI,EAAE,EAAE,IAAe,IAAI,kBAAkB,CAAC;IAChE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;IAErC,SAAS,mBAAmB;QAC1B,OAAO,oBAAoB,CAAC,SAAS,CAAuC,CAAC;IAC/E,CAAC;IAED,SAAS,gBAAgB;QACvB,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG;YACd,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC,EAAE;gBACX,WAAW,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;aAC/E,CAAC,CAAC;YACH,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE;SACpE,CAAC;QAEF,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CACnB,GAAG,EAAE,CACH,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;YAClB,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,mBAAmB;YAChC,OAAO;YACP,QAAQ,EAAE,CAAC,MAAwC,EAAE,EAAE;gBACrD,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;oBAChC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACtB,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpD,IAAI,GAAG;oBAAE,eAAe,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;SACF,CAAC,CACL,CAAC;IACJ,CAAC;IAED,SAAS,eAAe,CAAC,GAAoB;QAC3C,MAAM,OAAO,GAAG;YACd,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE;gBACvG,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACvB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC;aACxH,CAAC,CAAC;YACH,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE;SACjF,CAAC;QAEF,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CACnB,GAAG,EAAE,CACH,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;YAClB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,WAAW,EAAE,kBAAkB;YAC/B,OAAO;YACP,QAAQ,EAAE,CAAC,MAAwC,EAAE,EAAE;gBACrD,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;oBAChC,gBAAgB,EAAE,CAAC;oBACnB,OAAO;gBACT,CAAC;gBACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzE,IAAI,CAAC,KAAK;oBAAE,OAAO;gBAEnB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC9B,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACpC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;oBACnC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACnD,eAAe,CAAC,UAAW,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACjD,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;wBACX,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,UAAU;wBACjB,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;qBACpD,CAAC,CAAC;oBACH,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;oBAC5B,eAAe,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CACnB,GAAG,EAAE,CACH,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;wBAClB,KAAK,EAAE,QAAQ,KAAK,CAAC,KAAK,EAAE;wBAC5B,WAAW,EAAE,iBAAiB;wBAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;wBACjC,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE;4BAC3B,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;4BAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gCAChB,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gCAChD,eAAe,CAAC,UAAW,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gCAC9C,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;oCACX,OAAO,EAAE,SAAS;oCAClB,KAAK,EAAE,UAAU;oCACjB,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,GAAG,EAAE;iCAClC,CAAC,CAAC;gCACH,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC;4BAC3B,CAAC;4BACD,eAAe,CAAC,GAAG,CAAC,CAAC;wBACvB,CAAC;wBACD,QAAQ,EAAE,GAAG,EAAE;4BACb,eAAe,CAAC,GAAG,CAAC,CAAC;wBACvB,CAAC;qBACF,CAAC,CACL,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CACnB,GAAG,EAAE,CACH,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;wBAClB,KAAK,EAAE,QAAQ,KAAK,CAAC,KAAK,EAAE;wBAC5B,WAAW,EAAE,iBAAiB;wBAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;wBACjC,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE;4BAC3B,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;4BAClD,eAAe,CAAC,UAAW,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;4BAChD,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;gCACX,OAAO,EAAE,SAAS;gCAClB,KAAK,EAAE,UAAU;gCACjB,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE;6BACpC,CAAC,CAAC;4BACH,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;4BAC3B,eAAe,CAAC,GAAG,CAAC,CAAC;wBACvB,CAAC;wBACD,QAAQ,EAAE,GAAG,EAAE;4BACb,eAAe,CAAC,GAAG,CAAC,CAAC;wBACvB,CAAC;qBACF,CAAC,CACL,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CACL,CAAC;IACJ,CAAC;IAED,SAAS,eAAe,CAAC,KAAmB,EAAE,GAAoB;QAChE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CACnB,GAAG,EAAE,CACH,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;YAClB,KAAK,EAAE,UAAU,KAAK,CAAC,KAAK,EAAE;YAC9B,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,QAAQ,EAAE,CAAC,MAAwC,EAAE,EAAE;gBACrD,IAAI,MAAM,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;oBAClC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CACnB,GAAG,EAAE,CACH,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;wBAClB,KAAK,EAAE,UAAU,KAAK,CAAC,KAAK,EAAE;wBAC9B,WAAW,EAAE,6CAA6C;wBAC1D,KAAK,EAAE,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;wBACvE,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE;4BAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,EAAE,UAAW,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;4BACvF,IAAI,KAAK,EAAE,CAAC;gCACV,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;4BAC7B,CAAC;iCAAM,IAAI,KAAK,EAAE,CAAC;gCACjB,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gCAClD,eAAe,CAAC,UAAW,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gCAChD,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;4BAC7B,CAAC;4BACD,eAAe,CAAC,GAAG,CAAC,CAAC;wBACvB,CAAC;wBACD,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;qBACrC,CAAC,CACL,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,EAAE,UAAW,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC9F,IAAI,KAAK,EAAE,CAAC;oBACV,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;oBAC3B,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;wBACX,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,UAAU;wBACjB,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE;qBACpC,CAAC,CAAC;oBACH,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC;oBAClD,IAAI,WAAW,EAAE,CAAC;wBAChB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;4BACX,OAAO,EAAE,SAAS;4BAClB,KAAK,EAAE,UAAU;4BACjB,OAAO,EAAE,4EAA4E;yBACtF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,eAAe,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;SACF,CAAC,CACL,CAAC;IACJ,CAAC;IAED,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAED,sEAAsE;AAEtE,MAAM,MAAM,GAAqC;IAC/C,EAAE,EAAE,GAAG,WAAW,MAAM;IACxB,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;QAC7C,IAAI,YAAY,GAAc,cAAc,CAAC;QAC7C,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,mBAAmB,GAAG,MAAM,CAAC;QAEnC,SAAS,aAAa;YACpB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YACzC,IAAI,QAAQ,EAAE,CAAC;gBACb,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACvC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,aAAa,EAAE,CAAC;QAEhB,wBAAwB;QACxB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YACjB,KAAK,EAAE,GAAG;YACV,KAAK,EAAE;gBACL,eAAe;oBACb,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,mBAAmB,EAAE,CAAC;wBACnD,aAAa,EAAE,CAAC;oBAClB,CAAC;oBACD,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACjE,CAAC;aACF;SACF,CAAC,CAAC;QAEH,0CAA0C;QAC1C,IAAI,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;gBACvB,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,uBAAuB,EAAE,CAAC;gBACjE,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,uBAAuB;wBAC7B,GAAG,EAAE,GAAG,EAAE;4BACR,kBAAkB,CAAC;gCACjB,EAAE,EAAE,GAAG,CAAC,EAAE;gCACV,KAAK,EAAE,GAAG,CAAC,KAAK;6BACjB,CAAC,CAAC;4BACH,OAAO,SAAS,CAAC;wBACnB,CAAC;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,yEAAyE;QAC3E,CAAC;IACH,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { VectorStore, Chunk, SearchResult } from "../core/interfaces.js";
2
+ export declare function isCorruptionError(err: unknown): boolean;
2
3
  export declare class LanceDBStore implements VectorStore {
3
4
  private dbPath;
4
5
  private vectorDimension;
@@ -7,12 +8,30 @@ export declare class LanceDBStore implements VectorStore {
7
8
  constructor(dbPath: string, vectorDimension?: number);
8
9
  private getDb;
9
10
  private getTable;
11
+ private tableHasDescriptionColumn;
10
12
  addChunks(chunks: Chunk[]): Promise<void>;
13
+ private addChunksInternal;
11
14
  search(embedding: number[], topK: number): Promise<SearchResult[]>;
15
+ private rowToSearchResult;
16
+ listFiles(): Promise<{
17
+ filePath: string;
18
+ language: string;
19
+ chunkCount: number;
20
+ }[]>;
21
+ getChunksByFilePath(filePath: string): Promise<Chunk[]>;
22
+ getChunks(offset: number, limit: number): Promise<{
23
+ filePath: string;
24
+ language: string;
25
+ startLine: number;
26
+ endLine: number;
27
+ content: string;
28
+ }[]>;
12
29
  private searchInternal;
13
30
  count(): Promise<number>;
14
31
  clear(): Promise<void>;
32
+ dropDatabase(): Promise<void>;
15
33
  deleteByFilePath(filePath: string): Promise<void>;
34
+ private deleteByFilePathInternal;
16
35
  private isCorruptionError;
17
36
  private tryRepair;
18
37
  }