opencode-rag-plugin 1.3.2 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ReadMe.md CHANGED
@@ -104,7 +104,7 @@ The script will:
104
104
  2. Install it into OpenCode's runtime (`~/.opencode/node_modules/`)
105
105
  3. Register it in the global OpenCode config (`~/.config/opencode/opencode.jsonc`)
106
106
 
107
- **Restart OpenCode after installation.**
107
+ **Restart OpenCode after installation.**
108
108
 
109
109
  ---
110
110
 
@@ -310,7 +310,7 @@ This eliminates a tool-call round-trip for roughly 70% of code-related messages.
310
310
 
311
311
  | Option | Default | Description |
312
312
  |--------|---------|-------------|
313
- | `openCode.readOverride` | `false` | When `true`, registers a RAG-backed `read` tool that shadows OpenCode's built-in file reader — the agent gets indexed chunks instead of full file contents |
313
+ | `openCode.readOverride` | `false` | When `true`, registers a RAG-backed `read` tool that shadows OpenCode's built-in file reader — returns full file contents with relevant RAG chunks appended as supplementary context |
314
314
  | `openCode.maxContextChunks` | `5` | Maximum chunks returned by `opencode-rag-context` |
315
315
  | `openCode.autoInject.enabled` | `true` | Enable or disable auto-injection |
316
316
  | `openCode.autoInject.minScore` | `0.75` | Minimum relevance score for auto-injection (0–1) |
package/dist/cli.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ export declare function removeStaleGlobalPluginRegistrations(homeDir: string, pluginName: string): string[];
2
3
  /**
3
4
  * Determine whether the CLI should auto-run for the current module.
4
5
  * Resolves the first argv entry so symlinked binaries compare against the
package/dist/cli.js CHANGED
@@ -2,13 +2,13 @@
2
2
  import { Command } from "commander";
3
3
  import path from "node:path";
4
4
  import { existsSync, mkdirSync, readFileSync, realpathSync, writeFileSync } from "node:fs";
5
+ import os from "node:os";
5
6
  import { spawnSync } from "node:child_process";
6
7
  import { fileURLToPath } from "node:url";
7
8
  import chokidar from "chokidar";
8
9
  import { loadConfig, DEFAULT_CONFIG, resolveLogConfig } from "./core/config.js";
9
10
  import { loadChunkersFromConfig } from "./chunker/loader.js";
10
11
  import { createEmbedder } from "./embedder/factory.js";
11
- import { LanceDBStore } from "./vectorstore/lancedb.js";
12
12
  import { retrieve } from "./retriever/retriever.js";
13
13
  import { createWatchPassScheduler, createWatchIgnore, getIndexStatusSummary, runIndexPass, } from "./indexer.js";
14
14
  function logCliError(logFilePath, scope, message, error) {
@@ -152,15 +152,51 @@ function buildOpencodeConfig(existing) {
152
152
  delete next.plugin;
153
153
  return next;
154
154
  }
155
+ export function removeStaleGlobalPluginRegistrations(homeDir, pluginName) {
156
+ const globalConfigDir = path.join(homeDir, ".config", "opencode");
157
+ const updatedPaths = [];
158
+ for (const cfgFile of ["opencode.jsonc", "opencode.json"]) {
159
+ const configPath = path.join(globalConfigDir, cfgFile);
160
+ if (!existsSync(configPath)) {
161
+ continue;
162
+ }
163
+ try {
164
+ const cfg = readJsonObject(configPath);
165
+ if (!cfg || !Array.isArray(cfg.plugin)) {
166
+ continue;
167
+ }
168
+ const nextPlugins = cfg.plugin.filter((entry) => typeof entry === "string" && entry !== pluginName);
169
+ if (nextPlugins.length === cfg.plugin.length) {
170
+ continue;
171
+ }
172
+ if (nextPlugins.length > 0) {
173
+ cfg.plugin = nextPlugins;
174
+ }
175
+ else {
176
+ delete cfg.plugin;
177
+ }
178
+ writeJsonFile(configPath, cfg);
179
+ updatedPaths.push(configPath);
180
+ }
181
+ catch {
182
+ // Ignore malformed OpenCode config files and leave them unchanged.
183
+ }
184
+ }
185
+ return updatedPaths;
186
+ }
155
187
  function generateWorkspacePluginFile(packageName) {
156
188
  return [
157
- `export { id, server, default } from "../node_modules/${packageName}/dist/plugin-entry.js";`,
189
+ `import plugin from "../node_modules/${packageName}/dist/plugin-entry.js";`,
190
+ `export const id = plugin.id;`,
191
+ `export const server = plugin.server;`,
192
+ `export default plugin;`,
158
193
  "",
159
194
  ].join("\n");
160
195
  }
161
196
  function generateWorkspaceTuiPluginFile(packageName) {
162
197
  return [
163
- `export { default } from "../node_modules/${packageName}/dist/tui.js";`,
198
+ `import plugin from "../node_modules/${packageName}/dist/tui.js";`,
199
+ `export default plugin;`,
164
200
  "",
165
201
  ].join("\n");
166
202
  }
@@ -262,6 +298,7 @@ program
262
298
  vectorDimension = probe[0].length;
263
299
  }
264
300
  logCliInfo(logFilePath, "index", ` Vector dimension: ${vectorDimension}`);
301
+ const { LanceDBStore } = await import("./vectorstore/lancedb.js");
265
302
  const store = new LanceDBStore(path.resolve(cwd, config.vectorStore.path), vectorDimension);
266
303
  const keywordIndex = await loadCliKeywordIndex(path.resolve(cwd, config.vectorStore.path), logFilePath);
267
304
  logCliInfo(logFilePath, "index", `Scanning: ${cwd}`);
@@ -345,6 +382,7 @@ program
345
382
  logCliInfo(logFilePath, "query", `\nQuerying: "${query}"`);
346
383
  logCliInfo(logFilePath, "query", `Top-K: ${parseInt(options.topK ?? "10", 10)}`);
347
384
  const embedder = createEmbedder(config);
385
+ const { LanceDBStore } = await import("./vectorstore/lancedb.js");
348
386
  const store = new LanceDBStore(path.resolve(cwd, config.vectorStore.path));
349
387
  const indexedCount = await store.count();
350
388
  if (indexedCount === 0) {
@@ -390,6 +428,7 @@ program
390
428
  let logFilePath = path.resolve(cwd, ".opencode", "opencode-rag.log");
391
429
  const config = await resolveConfig(options, logFilePath);
392
430
  logFilePath = path.resolve(cwd, resolveLogConfig(config).logFilePath);
431
+ const { LanceDBStore } = await import("./vectorstore/lancedb.js");
393
432
  const store = new LanceDBStore(path.resolve(cwd, config.vectorStore.path));
394
433
  const prevCount = await store.count();
395
434
  if (prevCount === 0) {
@@ -420,6 +459,7 @@ program
420
459
  let logFilePath = path.resolve(cwd, ".opencode", "opencode-rag.log");
421
460
  const config = await resolveConfig(options, logFilePath);
422
461
  logFilePath = path.resolve(cwd, resolveLogConfig(config).logFilePath);
462
+ const { LanceDBStore } = await import("./vectorstore/lancedb.js");
423
463
  const store = new LanceDBStore(path.resolve(cwd, config.vectorStore.path));
424
464
  const count = await store.count();
425
465
  const summary = await getIndexStatusSummary(cwd, path.resolve(cwd, config.vectorStore.path), config, store);
@@ -455,7 +495,6 @@ program
455
495
  });
456
496
  function generateDefaultConfigJson() {
457
497
  return JSON.stringify({
458
- $schema: "https://raw.githubusercontent.com/MrDoe/OpenCodeRAG/main/opencode-rag.schema.json",
459
498
  embedding: {
460
499
  provider: DEFAULT_CONFIG.embedding.provider,
461
500
  baseUrl: DEFAULT_CONFIG.embedding.baseUrl,
@@ -474,6 +513,10 @@ function generateDefaultConfigJson() {
474
513
  retrieval: {
475
514
  topK: DEFAULT_CONFIG.retrieval.topK,
476
515
  minScore: DEFAULT_CONFIG.retrieval.minScore,
516
+ hybridSearch: {
517
+ enabled: DEFAULT_CONFIG.retrieval.hybridSearch.enabled,
518
+ keywordWeight: DEFAULT_CONFIG.retrieval.hybridSearch.keywordWeight,
519
+ },
477
520
  },
478
521
  openCode: {
479
522
  enabled: DEFAULT_CONFIG.openCode.enabled,
@@ -484,6 +527,12 @@ function generateDefaultConfigJson() {
484
527
  debounceMs: DEFAULT_CONFIG.openCode.autoIndex.debounceMs,
485
528
  intervalMs: DEFAULT_CONFIG.openCode.autoIndex.intervalMs,
486
529
  },
530
+ autoInject: {
531
+ enabled: DEFAULT_CONFIG.openCode.autoInject.enabled,
532
+ minScore: DEFAULT_CONFIG.openCode.autoInject.minScore,
533
+ maxChunks: DEFAULT_CONFIG.openCode.autoInject.maxChunks,
534
+ maxTokens: DEFAULT_CONFIG.openCode.autoInject.maxTokens,
535
+ },
487
536
  },
488
537
  logging: {
489
538
  level: DEFAULT_CONFIG.logging.level,
@@ -506,6 +555,7 @@ program
506
555
  const pluginsDir = path.join(opencodeDir, "plugins");
507
556
  const pluginEntryPath = path.join(pluginsDir, "rag-plugin.js");
508
557
  const tuiPluginEntryPath = path.join(pluginsDir, "rag-tui.js");
558
+ const tuiConfigPath = path.join(opencodeDir, "tui.json");
509
559
  const opencodePackagePath = path.join(opencodeDir, "package.json");
510
560
  console.log("Initializing OpenCodeRAG in workspace...\n");
511
561
  if (!existsSync(opencodeDir)) {
@@ -570,6 +620,19 @@ program
570
620
  else {
571
621
  console.log(" Exists: .opencode/plugins/rag-tui.js");
572
622
  }
623
+ const tuiConfigExists = existsSync(tuiConfigPath);
624
+ const nextTuiConfig = { plugin: ["./plugins/rag-tui.js"] };
625
+ if (!tuiConfigExists || options.force) {
626
+ writeJsonFile(tuiConfigPath, nextTuiConfig);
627
+ console.log(` ${tuiConfigExists ? "Updated" : "Created"}: .opencode/tui.json`);
628
+ }
629
+ else if (JSON.stringify(readJsonObject(tuiConfigPath)) !== JSON.stringify(nextTuiConfig)) {
630
+ writeJsonFile(tuiConfigPath, nextTuiConfig);
631
+ console.log(" Updated: .opencode/tui.json");
632
+ }
633
+ else {
634
+ console.log(" Exists: .opencode/tui.json");
635
+ }
573
636
  const workspacePackageExists = existsSync(opencodePackagePath);
574
637
  const nextWorkspacePackage = buildWorkspacePackageJson(readJsonObject(opencodePackagePath), packageMetadata, opencodeDir);
575
638
  if (!workspacePackageExists || options.force) {
@@ -595,44 +658,13 @@ program
595
658
  console.log("\nInstalling workspace-local plugin dependencies...\n");
596
659
  installWorkspaceDependencies(opencodeDir);
597
660
  console.log("\n Installed: .opencode/node_modules/");
598
- // Best-effort: try to register the plugin with the OpenCode CLI so users
599
- // who rely on the global `opencode` command get the plugin registered.
600
- // This is non-fatal: if the CLI is missing or registration fails we
601
- // continue and only warn the user.
602
- try {
603
- console.log("\nAttempting to register plugin with OpenCode CLI (opencode plugin)...");
604
- const pluginName = packageMetadata.name;
605
- // Quick availability check for the `opencode` binary
606
- let opencodeAvailable = true;
607
- try {
608
- const check = process.platform === "win32"
609
- ? spawnSync(process.env.ComSpec ?? "cmd.exe", ["/d", "/s", "/c", "opencode --version"], { cwd, stdio: "ignore" })
610
- : spawnSync("opencode", ["--version"], { cwd, stdio: "ignore" });
611
- if (check && check.error) {
612
- opencodeAvailable = false;
613
- }
661
+ const updatedGlobalConfigs = removeStaleGlobalPluginRegistrations(os.homedir(), packageMetadata.name);
662
+ if (updatedGlobalConfigs.length > 0) {
663
+ for (const configPath of updatedGlobalConfigs) {
664
+ console.log(` Removed stale plugin registration from ${configPath}`);
614
665
  }
615
- catch {
616
- opencodeAvailable = false;
617
- }
618
- if (!opencodeAvailable) {
619
- console.log(" opencode CLI not found in PATH; skipping plugin registration.");
620
- }
621
- else {
622
- const regResult = process.platform === "win32"
623
- ? spawnSync(process.env.ComSpec ?? "cmd.exe", ["/d", "/s", "/c", `opencode plugin ${pluginName}`], { cwd, stdio: "inherit", env: process.env })
624
- : spawnSync("opencode", ["plugin", pluginName], { cwd, stdio: "inherit", env: process.env });
625
- if (regResult && regResult.status === 0) {
626
- console.log(" Registered via opencode plugin");
627
- }
628
- else {
629
- console.log(" opencode plugin returned a non-zero exit code; registration may have failed.");
630
- }
631
- }
632
- }
633
- catch (err) {
634
- console.log(` Registration via 'opencode plugin' failed: ${err instanceof Error ? err.message : String(err)}`);
635
666
  }
667
+ console.log(" OpenCode loads the plugin from .opencode/plugins/rag-plugin.js; no global plugin registration is required.");
636
668
  }
637
669
  else {
638
670
  console.log("\n Skipped: dependency installation (--skip-install)");
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { env } from "node:process";
3
3
  export const DEFAULT_CONFIG = {
4
4
  embedding: {
5
5
  provider: "ollama",
6
- baseUrl: "http://localhost:11434/api",
7
- model: "embeddinggemma",
6
+ baseUrl: "http://127.0.0.1:11434/api",
7
+ model: "embeddinggemma:latest",
8
8
  timeoutMs: 30000,
9
9
  },
10
10
  indexing: {
@@ -60,14 +60,14 @@ export const DEFAULT_CONFIG = {
60
60
  ".venv",
61
61
  ],
62
62
  chunkOverlap: 0,
63
- minFileSizeBytes: 10,
63
+ minFileSizeBytes: 0,
64
64
  },
65
65
  vectorStore: {
66
66
  path: "./.opencode/rag_db",
67
67
  },
68
68
  retrieval: {
69
69
  topK: 10,
70
- minScore: 0,
70
+ minScore: 0.5,
71
71
  hybridSearch: {
72
72
  enabled: true,
73
73
  keywordWeight: 0.4,
@@ -75,11 +75,11 @@ export const DEFAULT_CONFIG = {
75
75
  },
76
76
  openCode: {
77
77
  enabled: true,
78
- maxContextChunks: 5,
79
- readOverride: false,
78
+ maxContextChunks: 10,
79
+ readOverride: true,
80
80
  autoIndex: {
81
81
  enabled: true,
82
- debounceMs: 5000,
82
+ debounceMs: 2000,
83
83
  intervalMs: 300000,
84
84
  },
85
85
  autoInject: {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AA2EnC,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,SAAS,EAAE;QACT,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,4BAA4B;QACrC,KAAK,EAAE,uBAAuB;QAC9B,SAAS,EAAE,KAAK;KACjB;IACD,QAAQ,EAAE;QACR,iBAAiB,EAAE;YACjB,KAAK;YACL,MAAM;YACN,KAAK;YACL,MAAM;YACN,MAAM;YACN,MAAM;YACN,KAAK;YACL,OAAO;YACP,KAAK;YACL,KAAK;YACL,MAAM;YACN,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,KAAK;YACL,MAAM;YACN,MAAM;YACN,MAAM;YACN,KAAK;YACL,OAAO;YACP,QAAQ;YACR,SAAS;YACT,OAAO;YACP,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,SAAS;YACT,MAAM;YACN,KAAK;YACL,KAAK;YACL,KAAK;YACL,MAAM;YACN,QAAQ;YACR,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,OAAO;SACR;QACD,WAAW,EAAE;YACX,cAAc;YACd,MAAM;YACN,WAAW;YACX,MAAM;YACN,OAAO;YACP,aAAa;YACb,OAAO;SACR;QACD,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,CAAC;KACpB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,oBAAoB;KAC3B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,GAAG;QACb,YAAY,EAAE;YACZ,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,GAAG;SACnB;KACF;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,IAAI;QACb,gBAAgB,EAAE,EAAE;QACpB,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;SACnB;QACD,UAAU,EAAE;YACV,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,IAAI;SAChB;KACF;IACD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,8BAA8B;KAC5C;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,cAAc,CAAC,OAAO,CAAC,KAAK;QAC5D,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,IAAI,GAAG,CAAC,aAAa,IAAI,cAAc,CAAC,OAAO,CAAC,WAAW;KACpG,CAAC;AACJ,CAAC;AASD,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAuB,CAAC;IAErD,OAAO;QACL,SAAS,EAAE;YACT,GAAG,cAAc,CAAC,SAAS;YAC3B,GAAG,MAAM,CAAC,SAAS;SACpB;QACD,QAAQ,EAAE;YACR,GAAG,cAAc,CAAC,QAAQ;YAC1B,GAAG,MAAM,CAAC,QAAQ;SACnB;QACD,WAAW,EAAE;YACX,GAAG,cAAc,CAAC,WAAW;YAC7B,GAAG,MAAM,CAAC,WAAW;SACtB;QACD,SAAS,EAAE;YACT,GAAG,cAAc,CAAC,SAAS;YAC3B,GAAG,MAAM,CAAC,SAAS;YACnB,YAAY,EAAE;gBACZ,GAAG,cAAc,CAAC,SAAS,CAAC,YAAY;gBACxC,GAAG,CAAE,MAAM,CAAC,SAAiD,EAAE,YAAiF,IAAI,EAAE,CAAC;aACzG;SACjD;QACD,QAAQ,EAAE,CAAC,GAAG,EAAE;YACd,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC;YACrC,MAAM,IAAI,GAA0B,MAA8C,CAAC,QAAQ,IAAI,EAAE,CAAC;YAClG,MAAM,MAAM,GAAgB;gBAC1B,GAAG,IAAI;gBACP,GAAG,IAAI;gBACP,SAAS,EAAE;oBACT,GAAG,IAAI,CAAC,SAAS;oBACjB,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;iBACP;gBACpB,UAAU,EAAE;oBACV,GAAG,IAAI,CAAC,UAAU;oBAClB,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;iBACP;aACtB,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ;QACpD,OAAO,EAAE;YACP,GAAG,cAAc,CAAC,OAAO;YACzB,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;SACT;KACnB,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -7,4 +7,10 @@ export { createBackgroundIndexer } from "./watcher.js";
7
7
  export { createWatchIgnore } from "./indexer.js";
8
8
  export type { RagConfig } from "./core/config.js";
9
9
  export type { Chunk, SearchResult, Chunker, EmbeddingProvider, VectorStore } from "./core/interfaces.js";
10
- export { ragPlugin as server } from "./plugin.js";
10
+ export declare const server: import("@opencode-ai/plugin").Plugin;
11
+ export declare const id = "opencode-rag-plugin";
12
+ declare const _default: {
13
+ id: string;
14
+ server: import("@opencode-ai/plugin").Plugin;
15
+ };
16
+ export default _default;
package/dist/index.js CHANGED
@@ -6,5 +6,8 @@ export { loadConfig, DEFAULT_CONFIG } from "./core/config.js";
6
6
  export { createBackgroundIndexer } from "./watcher.js";
7
7
  export { createWatchIgnore } from "./indexer.js";
8
8
  // Plugin is only importable inside OpenCode's runtime
9
- export { ragPlugin as server } from "./plugin.js";
9
+ import { ragPlugin } from "./plugin.js";
10
+ export const server = ragPlugin;
11
+ export const id = "opencode-rag-plugin";
12
+ export default { id, server: ragPlugin };
10
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAIjD,sDAAsD;AACtD,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAIjD,sDAAsD;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC;AAChC,MAAM,CAAC,MAAM,EAAE,GAAG,qBAAqB,CAAC;AACxC,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC"}
@@ -25,8 +25,7 @@ export interface RagReadToolOptions {
25
25
  /**
26
26
  * Create the RAG-backed read tool for OpenCode plugin registration.
27
27
  *
28
- * The tool accepts read-like arguments (filePath/path/absolutePath,
29
- * offset/limit, startLine/endLine, query/reason) and returns
30
- * relevant indexed chunks instead of full file contents.
28
+ * The tool always returns full file contents. When RAG chunks are available
29
+ * for the file, they are appended as supplementary context after the file.
31
30
  */
32
31
  export declare function createRagReadTool(options: RagReadToolOptions): ReturnType<typeof tool>;
@@ -1,27 +1,26 @@
1
+ import fs from "node:fs/promises";
1
2
  import { tool } from "@opencode-ai/plugin/tool";
2
3
  import { retrieve } from "../retriever/retriever.js";
3
4
  import { normalizeReadArgs, resolveWorkspacePath } from "./tool-args.js";
4
5
  import { buildReadQuery } from "./read-query.js";
5
- import { formatReadOutput, formatRelatedFiles } from "./read-format.js";
6
- import { missingIndexMessage, getNoResultsMessage, retrievalErrorMessage, } from "./read-fallback.js";
6
+ import { formatHybridReadOutput } from "./read-format.js";
7
+ import { retrievalErrorMessage } from "./read-fallback.js";
7
8
  /**
8
9
  * Create the RAG-backed read tool for OpenCode plugin registration.
9
10
  *
10
- * The tool accepts read-like arguments (filePath/path/absolutePath,
11
- * offset/limit, startLine/endLine, query/reason) and returns
12
- * relevant indexed chunks instead of full file contents.
11
+ * The tool always returns full file contents. When RAG chunks are available
12
+ * for the file, they are appended as supplementary context after the file.
13
13
  */
14
14
  export function createRagReadTool(options) {
15
15
  const { worktree, config, embedder, store, sessionLastMessage, sessionRetrievalCache, keywordIndex } = options;
16
16
  const openCodeCfg = config.openCode;
17
17
  const maxContextChunks = openCodeCfg.maxContextChunks;
18
18
  const maxReadOutputChars = openCodeCfg.maxReadOutputChars ?? 20000;
19
- const noResultsBehavior = openCodeCfg.readNoResultsBehavior ?? "hint";
20
19
  const retrievalTopK = maxContextChunks * 4;
21
20
  const readRelatedFilesMax = openCodeCfg.readRelatedFilesMax ?? 5;
22
21
  return tool({
23
- description: "Read file contents from the workspace. Returns relevant indexed code chunks " +
24
- "instead of full file contents for token-efficient code understanding. " +
22
+ description: "Read file contents from the workspace. Returns full file contents with " +
23
+ "relevant RAG context appended when available. " +
25
24
  "Provide a file path and optionally a query/reason, line range, or both.",
26
25
  args: {
27
26
  filePath: tool.schema.string().optional(),
@@ -35,127 +34,88 @@ export function createRagReadTool(options) {
35
34
  reason: tool.schema.string().optional(),
36
35
  },
37
36
  async execute(args, ctx) {
37
+ let resolvedPath;
38
+ let normalized;
38
39
  try {
39
40
  // 1. Normalize and validate arguments
40
- const normalized = normalizeReadArgs(args);
41
+ normalized = normalizeReadArgs(args);
41
42
  // 2. Resolve workspace path
42
- const resolvedPath = resolveWorkspacePath(worktree, normalized.filePath);
43
- // 3. Build retrieval query (chat-context-aware if available)
44
- const sessionID = ctx?.sessionID;
45
- const messageText = sessionID ? sessionLastMessage?.get(sessionID) ?? "" : "";
46
- // 4. Check if index exists
47
- const count = await store.count();
48
- if (count === 0) {
49
- return {
50
- title: "Read (OpenCodeRAG)",
51
- output: missingIndexMessage(),
52
- metadata: {
53
- tool: "read",
54
- filePath: resolvedPath,
55
- indexed: false,
56
- },
57
- };
58
- }
59
- // 5. Get or create cached raw results for this session
60
- let rawResults;
61
- let retrievalQuery;
62
- if (sessionID && sessionRetrievalCache) {
63
- const cached = sessionRetrievalCache.get(sessionID);
64
- if (cached && cached.messageText === messageText) {
65
- // Cache hit — reuse raw results
66
- rawResults = cached.rawResults;
67
- retrievalQuery = messageText.length > 0
68
- ? messageText
69
- : (buildReadQuery({ filePath: resolvedPath }).split("\n")[0] ?? "");
70
- }
71
- else {
72
- // Cache miss or new message run retrieval
73
- retrievalQuery = buildSessionQuery(messageText, resolvedPath, normalized);
74
- rawResults = await retrieve(retrievalQuery, embedder, store, { topK: retrievalTopK, keywordIndex });
75
- sessionRetrievalCache.set(sessionID, { messageText, rawResults: rawResults });
43
+ resolvedPath = resolveWorkspacePath(worktree, normalized.filePath);
44
+ // 3. Always read the full file from disk
45
+ const fileContent = await fs.readFile(resolvedPath, "utf-8");
46
+ // 4. Run retrieval (best-effort RAG is supplementary)
47
+ let ragChunks = [];
48
+ let relatedFiles = [];
49
+ try {
50
+ const sessionID = ctx?.sessionID;
51
+ const messageText = sessionID ? sessionLastMessage?.get(sessionID) ?? "" : "";
52
+ const count = await store.count();
53
+ if (count > 0) {
54
+ let rawResults;
55
+ if (sessionID && sessionRetrievalCache) {
56
+ const cached = sessionRetrievalCache.get(sessionID);
57
+ if (cached && cached.messageText === messageText) {
58
+ rawResults = cached.rawResults;
59
+ }
60
+ else {
61
+ const retrievalQuery = buildSessionQuery(messageText, resolvedPath, normalized);
62
+ rawResults = await retrieve(retrievalQuery, embedder, store, { topK: retrievalTopK, keywordIndex });
63
+ sessionRetrievalCache.set(sessionID, { messageText, rawResults });
64
+ }
65
+ }
66
+ else {
67
+ const retrievalQuery = buildReadQuery({
68
+ query: normalized.query,
69
+ filePath: resolvedPath,
70
+ startLine: normalized.startLine,
71
+ endLine: normalized.endLine,
72
+ });
73
+ rawResults = await retrieve(retrievalQuery, embedder, store, { topK: retrievalTopK, keywordIndex });
74
+ }
75
+ // Collect related files from raw results (before filtering)
76
+ relatedFiles = collectRelatedFiles(rawResults, resolvedPath, readRelatedFilesMax);
77
+ // Filter to the requested file
78
+ const filtered = rawResults.filter((r) => r.chunk.metadata.filePath === resolvedPath);
79
+ // Apply line-range overlap filtering
80
+ const lineFiltered = applyLineRangeFilter(filtered, normalized.startLine, normalized.endLine);
81
+ // Sort by score descending and limit
82
+ lineFiltered.sort((a, b) => b.score - a.score);
83
+ ragChunks = lineFiltered.slice(0, maxContextChunks);
76
84
  }
77
85
  }
78
- else {
79
- // No session/contextdirect retrieval
80
- retrievalQuery = buildReadQuery({
81
- query: normalized.query,
82
- filePath: resolvedPath,
83
- startLine: normalized.startLine,
84
- endLine: normalized.endLine,
85
- });
86
- rawResults = await retrieve(retrievalQuery, embedder, store, { topK: retrievalTopK, keywordIndex });
87
- }
88
- // 6. Collect related files from raw results (before filtering)
89
- const relatedFiles = collectRelatedFiles(rawResults, resolvedPath, readRelatedFilesMax);
90
- if (rawResults.length === 0) {
91
- const output = getNoResultsMessage(noResultsBehavior, resolvedPath);
92
- return {
93
- title: "Read (OpenCodeRAG)",
94
- output,
95
- metadata: {
96
- tool: "read",
97
- filePath: resolvedPath,
98
- chunks: 0,
99
- indexed: true,
100
- },
101
- };
86
+ catch {
87
+ // Retrieval failedcontinue with just the file contents
102
88
  }
103
- // 7. Filter results to the requested file
104
- let filtered = rawResults.filter((r) => r.chunk.metadata.filePath === resolvedPath);
105
- // 8. If file has no results, use no-results behavior
106
- if (filtered.length === 0) {
107
- let output = getNoResultsMessage(noResultsBehavior, resolvedPath);
108
- if (readRelatedFilesMax > 0 && relatedFiles.length > 0) {
109
- output += "\n\n" + formatRelatedFiles(relatedFiles);
110
- }
111
- return {
112
- title: "Read (OpenCodeRAG)",
113
- output,
114
- metadata: {
115
- tool: "read",
116
- filePath: resolvedPath,
117
- chunks: 0,
118
- indexed: true,
119
- },
120
- };
121
- }
122
- // 9. Apply line-range overlap filtering
123
- const lineFiltered = applyLineRangeFilter(filtered, normalized.startLine, normalized.endLine);
124
- // Re-sort by score descending
125
- lineFiltered.sort((a, b) => b.score - a.score);
126
- // 10. Format output
127
- let output = formatReadOutput({
89
+ // 5. Format output: full file + optional RAG context
90
+ const output = formatHybridReadOutput({
128
91
  filePath: resolvedPath,
129
- retrievalQuery,
130
- results: lineFiltered,
131
- maxChunks: maxContextChunks,
92
+ fileContent,
93
+ startLine: normalized.startLine,
94
+ endLine: normalized.endLine,
95
+ ragChunks,
96
+ relatedFiles,
132
97
  maxChars: maxReadOutputChars,
133
98
  });
134
- // 11. Append related files if enabled
135
- if (readRelatedFilesMax > 0 && relatedFiles.length > 0) {
136
- output += "\n\n" + formatRelatedFiles(relatedFiles);
137
- }
138
- // 12. Return
99
+ // 6. Return
139
100
  return {
140
- title: `Read (OpenCodeRAG) — ${resolvedPath}`,
101
+ title: `Read — ${resolvedPath}`,
141
102
  output,
142
103
  metadata: {
143
104
  tool: "read",
144
105
  filePath: resolvedPath,
145
- chunks: Math.min(lineFiltered.length, maxContextChunks),
146
- totalResults: lineFiltered.length,
147
- indexed: true,
106
+ chunks: ragChunks.length,
107
+ indexed: ragChunks.length > 0,
148
108
  },
149
109
  };
150
110
  }
151
111
  catch (err) {
152
112
  const message = err instanceof Error ? err.message : String(err);
153
113
  return {
154
- title: "Read (OpenCodeRAG)",
114
+ title: "Read",
155
115
  output: retrievalErrorMessage(message),
156
116
  metadata: {
157
117
  tool: "read",
158
- filePath: undefined,
118
+ filePath: resolvedPath,
159
119
  error: message,
160
120
  },
161
121
  };
@@ -1 +1 @@
1
- {"version":3,"file":"create-read-tool.js","sourceRoot":"","sources":["../../src/opencode/create-read-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAqB5B;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA2B;IAE3B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAC/G,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;IACpC,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC;IACtD,MAAM,kBAAkB,GAAG,WAAW,CAAC,kBAAkB,IAAI,KAAK,CAAC;IACnE,MAAM,iBAAiB,GAAG,WAAW,CAAC,qBAAqB,IAAI,MAAM,CAAC;IACtE,MAAM,aAAa,GAAG,gBAAgB,GAAG,CAAC,CAAC;IAC3C,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAAmB,IAAI,CAAC,CAAC;IAEjE,OAAO,IAAI,CAAC;QACV,WAAW,EACT,8EAA8E;YAC9E,wEAAwE;YACxE,yEAAyE;QAE3E,IAAI,EAAE;YACJ,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACzC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACrC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAC7C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAC5C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAChD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAC9C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACxC;QAED,KAAK,CAAC,OAAO,CAAC,IAA6B,EAAE,GAA4B;YACvE,IAAI,CAAC;gBACH,sCAAsC;gBACtC,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAa,CAAC,CAAC;gBAEpD,4BAA4B;gBAC5B,MAAM,YAAY,GAAG,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAEzE,6DAA6D;gBAC7D,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,CAAC;gBACjC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAE9E,2BAA2B;gBAC3B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;gBAClC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAChB,OAAO;wBACL,KAAK,EAAE,oBAAoB;wBAC3B,MAAM,EAAE,mBAAmB,EAAE;wBAC7B,QAAQ,EAAE;4BACR,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,YAAY;4BACtB,OAAO,EAAE,KAAK;yBACf;qBACF,CAAC;gBACJ,CAAC;gBAED,uDAAuD;gBACvD,IAAI,UAA0B,CAAC;gBAC/B,IAAI,cAAsB,CAAC;gBAE3B,IAAI,SAAS,IAAI,qBAAqB,EAAE,CAAC;oBACvC,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAEpD,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;wBACjD,gCAAgC;wBAChC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;wBAC/B,cAAc,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;4BACrC,CAAC,CAAC,WAAW;4BACb,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxE,CAAC;yBAAM,CAAC;wBACN,4CAA4C;wBAC5C,cAAc,GAAG,iBAAiB,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;wBAC1E,UAAU,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;wBACpG,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;oBAChF,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,wCAAwC;oBACxC,cAAc,GAAG,cAAc,CAAC;wBAC9B,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE,UAAU,CAAC,SAAS;wBAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;qBAC5B,CAAC,CAAC;oBACH,UAAU,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;gBACtG,CAAC;gBAED,+DAA+D;gBAC/D,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;gBAExF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;oBACpE,OAAO;wBACL,KAAK,EAAE,oBAAoB;wBAC3B,MAAM;wBACN,QAAQ,EAAE;4BACR,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,YAAY;4BACtB,MAAM,EAAE,CAAC;4BACT,OAAO,EAAE,IAAI;yBACd;qBACF,CAAC;gBACJ,CAAC;gBAED,0CAA0C;gBAC1C,IAAI,QAAQ,GAAG,UAAU,CAAC,MAAM,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,KAAK,YAAY,CAClD,CAAC;gBAEF,qDAAqD;gBACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,IAAI,MAAM,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;oBAClE,IAAI,mBAAmB,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvD,MAAM,IAAI,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;oBACtD,CAAC;oBACD,OAAO;wBACL,KAAK,EAAE,oBAAoB;wBAC3B,MAAM;wBACN,QAAQ,EAAE;4BACR,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,YAAY;4BACtB,MAAM,EAAE,CAAC;4BACT,OAAO,EAAE,IAAI;yBACd;qBACF,CAAC;gBACJ,CAAC;gBAED,wCAAwC;gBACxC,MAAM,YAAY,GAAG,oBAAoB,CACvC,QAAQ,EACR,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,OAAO,CACnB,CAAC;gBAEF,8BAA8B;gBAC9B,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBAE/C,oBAAoB;gBACpB,IAAI,MAAM,GAAG,gBAAgB,CAAC;oBAC5B,QAAQ,EAAE,YAAY;oBACtB,cAAc;oBACd,OAAO,EAAE,YAAY;oBACrB,SAAS,EAAE,gBAAgB;oBAC3B,QAAQ,EAAE,kBAAkB;iBAC7B,CAAC,CAAC;gBAEH,sCAAsC;gBACtC,IAAI,mBAAmB,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvD,MAAM,IAAI,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBACtD,CAAC;gBAED,aAAa;gBACb,OAAO;oBACL,KAAK,EAAE,wBAAwB,YAAY,EAAE;oBAC7C,MAAM;oBACN,QAAQ,EAAE;wBACR,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,YAAY;wBACtB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC;wBACvD,YAAY,EAAE,YAAY,CAAC,MAAM;wBACjC,OAAO,EAAE,IAAI;qBACd;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GACX,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnD,OAAO;oBACL,KAAK,EAAE,oBAAoB;oBAC3B,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC;oBACtC,QAAQ,EAAE;wBACR,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,OAAO;qBACf;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAC3B,OAAuB,EACvB,SAAkB,EAClB,OAAgB;IAEhB,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QACtC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAEpC,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACrD,OAAO,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,SAAS,CAAC;QAC1C,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,EAAE,IAAI,SAAS,CAAC;QACzB,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,IAAI,OAAO,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AASD;;;;;;GAMG;AACH,SAAS,iBAAiB,CACxB,WAAmB,EACnB,YAAoB,EACpB,UAA4B;IAE5B,sDAAsD;IACtD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,+DAA+D;QAC/D,MAAM,KAAK,GAAG;YACZ,WAAW;YACX,sCAAsC,YAAY,EAAE;SACrD,CAAC;QACF,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3E,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC;QAC9E,CAAC;aAAM,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,uBAAuB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,8BAA8B;IAC9B,OAAO,cAAc,CAAC;QACpB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;KAC5B,CAAC,CAAC;AACL,CAAC;AAQD;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,UAA0B,EAC1B,aAAqB,EACrB,UAAkB;IAElB,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACrC,IAAI,EAAE,KAAK,aAAa;YAAE,SAAS;QACnC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC;YAC/C,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SACnC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;SACjD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"create-read-tool.js","sourceRoot":"","sources":["../../src/opencode/create-read-tool.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,4 @@
1
1
  import type { ReadNoResultsBehavior } from "../core/config.js";
2
- /**
3
- * Fallback message when no OpenCodeRAG index exists or the index is empty.
4
- */
5
- export declare function missingIndexMessage(): string;
6
- /**
7
- * Fallback message when the requested file has no indexed chunks.
8
- */
9
- export declare function fileNotIndexedMessage(filePath: string): string;
10
- /**
11
- * Fallback message when no relevant chunks matched the read request.
12
- */
13
- export declare function noRelevantChunksMessage(): string;
14
2
  /**
15
3
  * Error message wrapper for retrieval failures.
16
4
  */
@@ -1,69 +1,9 @@
1
- /**
2
- * Fallback message when no OpenCodeRAG index exists or the index is empty.
3
- */
4
- export function missingIndexMessage() {
5
- return [
6
- "OpenCodeRAG read override active.",
7
- "Full file read suppressed.",
8
- "",
9
- "No OpenCodeRAG index was found or the index is empty.",
10
- "",
11
- "Run:",
12
- "",
13
- "```bash",
14
- "npx tsx src/cli.ts index",
15
- "```",
16
- "",
17
- "Then retry the read request.",
18
- ].join("\n");
19
- }
20
- /**
21
- * Fallback message when the requested file has no indexed chunks.
22
- */
23
- export function fileNotIndexedMessage(filePath) {
24
- return [
25
- "OpenCodeRAG read override active.",
26
- "Full file read suppressed.",
27
- "",
28
- "No indexed chunks were found for:",
29
- `- ${filePath}`,
30
- "",
31
- "Possible reasons:",
32
- "- The file extension is not included.",
33
- "- The directory is excluded.",
34
- "- The index is stale.",
35
- "- The file was created after the last indexing run.",
36
- "",
37
- "Run:",
38
- "",
39
- "```bash",
40
- "npx tsx src/cli.ts index",
41
- "```",
42
- ].join("\n");
43
- }
44
- /**
45
- * Fallback message when no relevant chunks matched the read request.
46
- */
47
- export function noRelevantChunksMessage() {
48
- return [
49
- "OpenCodeRAG read override active.",
50
- "Full file read suppressed.",
51
- "",
52
- "No relevant chunks were found for this read request.",
53
- "",
54
- "Try:",
55
- "- Ask a more specific question.",
56
- "- Run the index again.",
57
- "- Request a smaller line range if range fallback is enabled.",
58
- ].join("\n");
59
- }
60
1
  /**
61
2
  * Error message wrapper for retrieval failures.
62
3
  */
63
4
  export function retrievalErrorMessage(shortError) {
64
5
  return [
65
6
  "OpenCodeRAG retrieval failed.",
66
- "Full file read suppressed.",
67
7
  "",
68
8
  "Error:",
69
9
  shortError,
@@ -78,13 +18,13 @@ export function getNoResultsMessage(behavior, filePath) {
78
18
  throw new Error("OpenCodeRAG read: no indexed chunks found." +
79
19
  (filePath ? ` File: ${filePath}` : ""));
80
20
  case "empty":
81
- return "OpenCodeRAG read override active. Full file read suppressed. No indexed chunks found.";
21
+ return "No indexed chunks found.";
82
22
  case "hint":
83
23
  default:
84
24
  if (filePath) {
85
- return fileNotIndexedMessage(filePath);
25
+ return `No indexed chunks found for ${filePath}.`;
86
26
  }
87
- return noRelevantChunksMessage();
27
+ return "No relevant chunks found.";
88
28
  }
89
29
  }
90
30
  //# sourceMappingURL=read-fallback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-fallback.js","sourceRoot":"","sources":["../../src/opencode/read-fallback.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,mCAAmC;QACnC,4BAA4B;QAC5B,EAAE;QACF,uDAAuD;QACvD,EAAE;QACF,MAAM;QACN,EAAE;QACF,SAAS;QACT,0BAA0B;QAC1B,KAAK;QACL,EAAE;QACF,8BAA8B;KAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,OAAO;QACL,mCAAmC;QACnC,4BAA4B;QAC5B,EAAE;QACF,mCAAmC;QACnC,KAAK,QAAQ,EAAE;QACf,EAAE;QACF,mBAAmB;QACnB,uCAAuC;QACvC,8BAA8B;QAC9B,uBAAuB;QACvB,qDAAqD;QACrD,EAAE;QACF,MAAM;QACN,EAAE;QACF,SAAS;QACT,0BAA0B;QAC1B,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,mCAAmC;QACnC,4BAA4B;QAC5B,EAAE;QACF,sDAAsD;QACtD,EAAE;QACF,MAAM;QACN,iCAAiC;QACjC,wBAAwB;QACxB,8DAA8D;KAC/D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,OAAO;QACL,+BAA+B;QAC/B,4BAA4B;QAC5B,EAAE;QACF,QAAQ;QACR,UAAU;KACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAA+B,EAC/B,QAAiB;IAEjB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,MAAM,IAAI,KAAK,CACb,4CAA4C;gBAC1C,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACzC,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,uFAAuF,CAAC;QACjG,KAAK,MAAM,CAAC;QACZ;YACE,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,uBAAuB,EAAE,CAAC;IACrC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"read-fallback.js","sourceRoot":"","sources":["../../src/opencode/read-fallback.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,OAAO;QACL,+BAA+B;QAC/B,EAAE;QACF,QAAQ;QACR,UAAU;KACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAA+B,EAC/B,QAAiB;IAEjB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,MAAM,IAAI,KAAK,CACb,4CAA4C;gBAC1C,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACzC,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,0BAA0B,CAAC;QACpC,KAAK,MAAM,CAAC;QACZ;YACE,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,+BAA+B,QAAQ,GAAG,CAAC;YACpD,CAAC;YACD,OAAO,2BAA2B,CAAC;IACvC,CAAC;AACH,CAAC"}
@@ -15,22 +15,71 @@ export interface FormatReadOutputOptions {
15
15
  maxChars: number;
16
16
  }
17
17
  /**
18
- * Format RAG retrieval results for the read tool output.
18
+ * Format RAG retrieval results for the opencode-rag-context tool output.
19
19
  *
20
- * The output:
21
- * - Clearly states full-file reading was suppressed.
22
- * - Includes request metadata (file path, query, chunk count).
23
- * - Formats each chunk with file path, line range, score, and code block.
24
- * - Enforces maxChars limit and appends truncation notice.
20
+ * Includes request metadata (file path, query, chunk count) and formats
21
+ * each chunk with file path, line range, score, and code block.
25
22
  *
26
23
  * Returns a string ready to return as the tool output.
27
24
  */
28
25
  export declare function formatReadOutput(options: FormatReadOutputOptions): string;
26
+ /**
27
+ * Options for formatting hybrid read output (full file + RAG context).
28
+ */
29
+ export interface FormatHybridReadOutputOptions {
30
+ /** Absolute file path. */
31
+ filePath: string;
32
+ /** Full file content (or already sliced). */
33
+ fileContent: string;
34
+ /** Optional start line (1-indexed). */
35
+ startLine?: number;
36
+ /** Optional end line (1-indexed). */
37
+ endLine?: number;
38
+ /** RAG search results to append as context. */
39
+ ragChunks: SearchResult[];
40
+ /** Related files to suggest. */
41
+ relatedFiles: RelatedFileEntry[];
42
+ /** Maximum output character count. */
43
+ maxChars: number;
44
+ }
45
+ /**
46
+ * Format hybrid read output: full file contents followed by optional RAG context.
47
+ *
48
+ * The output:
49
+ * - Always includes the full file contents in a code block.
50
+ * - Appends relevant RAG chunks as supplementary context when available.
51
+ * - Appends related file suggestions when available.
52
+ * - Enforces maxChars limit (truncates RAG section first).
53
+ */
54
+ export declare function formatHybridReadOutput(options: FormatHybridReadOutputOptions): string;
29
55
  /** A related file entry with path and score. */
30
56
  export interface RelatedFileEntry {
31
57
  filePath: string;
32
58
  score: number;
33
59
  }
60
+ /**
61
+ * Options for formatting a direct file fallback.
62
+ */
63
+ export interface FormatFileFallbackOptions {
64
+ /** Absolute file path. */
65
+ filePath: string;
66
+ /** Raw file content (full file). */
67
+ content: string;
68
+ /** Optional start line (1-indexed). */
69
+ startLine?: number;
70
+ /** Optional end line (1-indexed). */
71
+ endLine?: number;
72
+ /** Reason why fallback was used. */
73
+ reason: string;
74
+ /** Maximum output character count. */
75
+ maxChars?: number;
76
+ }
77
+ /**
78
+ * Format raw file contents as a fallback when no RAG chunks are available.
79
+ *
80
+ * Applies optional line-range slicing and enforces maxChars limit.
81
+ */
82
+ export declare function formatFileFallback(options: FormatFileFallbackOptions): string;
34
83
  /**
35
84
  * Format a list of related files as a lightweight suggestion section.
36
85
  *
@@ -1,17 +1,14 @@
1
1
  /**
2
- * Format RAG retrieval results for the read tool output.
2
+ * Format RAG retrieval results for the opencode-rag-context tool output.
3
3
  *
4
- * The output:
5
- * - Clearly states full-file reading was suppressed.
6
- * - Includes request metadata (file path, query, chunk count).
7
- * - Formats each chunk with file path, line range, score, and code block.
8
- * - Enforces maxChars limit and appends truncation notice.
4
+ * Includes request metadata (file path, query, chunk count) and formats
5
+ * each chunk with file path, line range, score, and code block.
9
6
  *
10
7
  * Returns a string ready to return as the tool output.
11
8
  */
12
9
  export function formatReadOutput(options) {
13
10
  const { filePath, retrievalQuery, results, maxChunks, maxChars } = options;
14
- const header = buildHeader(filePath, retrievalQuery, results.length, maxChunks);
11
+ const header = buildContextHeader(filePath, retrievalQuery, results.length, maxChunks);
15
12
  let output = header;
16
13
  const limited = results.slice(0, maxChunks);
17
14
  for (let i = 0; i < limited.length; i++) {
@@ -35,10 +32,70 @@ export function formatReadOutput(options) {
35
32
  }
36
33
  return output;
37
34
  }
38
- function buildHeader(filePath, retrievalQuery, totalResults, maxChunks) {
35
+ /**
36
+ * Format hybrid read output: full file contents followed by optional RAG context.
37
+ *
38
+ * The output:
39
+ * - Always includes the full file contents in a code block.
40
+ * - Appends relevant RAG chunks as supplementary context when available.
41
+ * - Appends related file suggestions when available.
42
+ * - Enforces maxChars limit (truncates RAG section first).
43
+ */
44
+ export function formatHybridReadOutput(options) {
45
+ const { filePath, fileContent, startLine, endLine, ragChunks, relatedFiles, maxChars } = options;
46
+ const lang = guessLanguage(filePath);
47
+ // Build the full file code block
48
+ const lines = fileContent.split("\n");
49
+ const sliceStart = startLine !== undefined ? startLine - 1 : 0;
50
+ const sliceEnd = endLine !== undefined ? endLine : lines.length;
51
+ const sliced = lines.slice(sliceStart, sliceEnd);
52
+ const fileBlock = "```" + lang + "\n" + sliced.join("\n") + "\n```";
53
+ // Build the RAG context section
54
+ let ragSection = "";
55
+ if (ragChunks.length > 0) {
56
+ const minScore = ragChunks[ragChunks.length - 1].score;
57
+ const maxScore = ragChunks[0].score;
58
+ const ragLines = [
59
+ "\n---\n",
60
+ `**Related code chunks** _(${ragChunks.length} chunk${ragChunks.length === 1 ? "" : "s"}, relevance ${minScore.toFixed(2)}\u2013${maxScore.toFixed(2)})_\n`,
61
+ ];
62
+ for (let i = 0; i < ragChunks.length; i++) {
63
+ const r = ragChunks[i];
64
+ ragLines.push(formatChunk(i + 1, r));
65
+ }
66
+ ragSection = ragLines.join("\n");
67
+ }
68
+ // Build related files section
69
+ let relatedSection = "";
70
+ if (relatedFiles.length > 0) {
71
+ relatedSection = "\n\n" + formatRelatedFiles(relatedFiles);
72
+ }
73
+ // Assemble output with maxChars enforcement
74
+ let output = fileBlock;
75
+ // Try adding RAG section
76
+ if (ragSection && (output + ragSection).length <= maxChars) {
77
+ output += ragSection;
78
+ }
79
+ else if (ragSection) {
80
+ // Truncate RAG chunks to fit
81
+ const available = maxChars - output.length - 100; // leave room for truncation notice
82
+ if (available > 200) {
83
+ output += ragSection.slice(0, available) + "\n\n---\nRAG context truncated.";
84
+ }
85
+ }
86
+ // Try adding related files section
87
+ if (relatedSection && (output + relatedSection).length <= maxChars) {
88
+ output += relatedSection;
89
+ }
90
+ // Final safety truncation
91
+ if (output.length > maxChars) {
92
+ output = output.slice(0, maxChars) + "\n\n---\nOutput truncated.";
93
+ }
94
+ return output;
95
+ }
96
+ function buildContextHeader(filePath, retrievalQuery, totalResults, maxChunks) {
39
97
  const parts = [
40
- "OpenCodeRAG read override active.",
41
- "Full file read suppressed. Returning relevant indexed chunks instead.",
98
+ "OpenCodeRAG context",
42
99
  "",
43
100
  "Requested file:",
44
101
  `- ${filePath}`,
@@ -71,6 +128,37 @@ function formatChunk(index, result) {
71
128
  lines.push("```");
72
129
  return lines.join("\n");
73
130
  }
131
+ /**
132
+ * Format raw file contents as a fallback when no RAG chunks are available.
133
+ *
134
+ * Applies optional line-range slicing and enforces maxChars limit.
135
+ */
136
+ export function formatFileFallback(options) {
137
+ const { filePath, content, startLine, endLine, maxChars } = options;
138
+ const lines = content.split("\n");
139
+ const sliceStart = startLine !== undefined ? startLine - 1 : 0;
140
+ const sliceEnd = endLine !== undefined ? endLine : lines.length;
141
+ const sliced = lines.slice(sliceStart, sliceEnd);
142
+ const lang = guessLanguage(filePath);
143
+ const codeBlock = "```" + lang + "\n" + sliced.join("\n") + "\n```";
144
+ let output = codeBlock;
145
+ if (maxChars && output.length > maxChars) {
146
+ output = output.slice(0, maxChars) + "\n\n---\nOutput truncated.";
147
+ }
148
+ return output;
149
+ }
150
+ function guessLanguage(filePath) {
151
+ const ext = filePath.split(".").pop()?.toLowerCase() ?? "";
152
+ const map = {
153
+ ts: "typescript", tsx: "typescript", js: "javascript", jsx: "javascript",
154
+ py: "python", rb: "ruby", go: "go", rs: "rust", java: "java",
155
+ kt: "kotlin", swift: "swift", c: "c", cpp: "cpp", h: "c", hpp: "cpp",
156
+ cs: "csharp", php: "php", sh: "bash", bash: "bash", zsh: "bash",
157
+ md: "markdown", json: "json", yaml: "yaml", yml: "yaml", xml: "xml",
158
+ html: "html", css: "css", scss: "scss", sql: "sql", toml: "toml",
159
+ };
160
+ return map[ext] ?? "";
161
+ }
74
162
  /**
75
163
  * Format a list of related files as a lightweight suggestion section.
76
164
  *
@@ -1 +1 @@
1
- {"version":3,"file":"read-format.js","sourceRoot":"","sources":["../../src/opencode/read-format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-format.js","sourceRoot":"","sources":["../../src/opencode/read-format.ts"],"names":[],"mappings":"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"}
package/dist/tui.js CHANGED
@@ -1,4 +1,76 @@
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";
5
+ import { fileURLToPath } from "node:url";
6
+ let _version;
7
+ function getVersion() {
8
+ if (_version !== undefined)
9
+ return _version;
10
+ try {
11
+ const __dirname = dirname(fileURLToPath(import.meta.url));
12
+ const pkg = JSON.parse(readFileSync(join(__dirname, "..", "package.json"), "utf-8"));
13
+ _version = pkg.version ?? "dev";
14
+ }
15
+ catch {
16
+ _version = "dev";
17
+ }
18
+ return _version;
19
+ }
20
+ const DEFAULT_STATUS = {
21
+ chunkCount: 0,
22
+ provider: "ollama",
23
+ model: "",
24
+ lastIndexedAt: undefined,
25
+ indexed: false,
26
+ };
27
+ function loadRagStatus(worktree) {
28
+ const status = { ...DEFAULT_STATUS };
29
+ for (const loc of ["opencode-rag.json", ".opencode/opencode-rag.json", ".opencode/rag.json"]) {
30
+ const configPath = join(worktree, loc);
31
+ if (!existsSync(configPath))
32
+ continue;
33
+ try {
34
+ 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;
38
+ }
39
+ const storePath = cfg.vectorStore?.path ?? ".opencode/rag_db";
40
+ const manifestPath = join(worktree, storePath, "manifest.json");
41
+ if (existsSync(manifestPath)) {
42
+ 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);
46
+ }
47
+ status.lastIndexedAt = manifest.lastIndexedAt;
48
+ status.indexed = status.chunkCount > 0;
49
+ }
50
+ break;
51
+ }
52
+ catch {
53
+ continue;
54
+ }
55
+ }
56
+ return status;
57
+ }
58
+ function formatRelativeTime(timestamp) {
59
+ if (timestamp === undefined)
60
+ return "never";
61
+ const diff = Date.now() - timestamp;
62
+ const seconds = Math.floor(diff / 1000);
63
+ if (seconds < 60)
64
+ return "just now";
65
+ const minutes = Math.floor(seconds / 60);
66
+ if (minutes < 60)
67
+ return `${minutes}m ago`;
68
+ const hours = Math.floor(minutes / 60);
69
+ if (hours < 24)
70
+ return `${hours}h ago`;
71
+ const days = Math.floor(hours / 24);
72
+ return `${days}d ago`;
73
+ }
2
74
  const PLUGIN_NAME = "opencode-rag-plugin";
3
75
  function element(tag, props, children = []) {
4
76
  const node = createElement(tag);
@@ -19,7 +91,11 @@ function text(props, children = []) {
19
91
  function box(props, children = []) {
20
92
  return element("box", props, children);
21
93
  }
22
- function renderSidebar(theme) {
94
+ function renderSidebar(theme, version, status) {
95
+ const statusLine = status.indexed
96
+ ? `${status.chunkCount} chunks \u00B7 ${status.provider}/${status.model}`
97
+ : "Not indexed";
98
+ const timeLine = `Indexed ${formatRelativeTime(status.lastIndexedAt)}`;
23
99
  return box({
24
100
  width: "100%",
25
101
  flexDirection: "column",
@@ -39,20 +115,35 @@ function renderSidebar(theme) {
39
115
  box({ paddingLeft: 1, paddingRight: 1, backgroundColor: theme.accent }, [
40
116
  text({ fg: "#000000" }, ["OpenCodeRAG"]),
41
117
  ]),
118
+ text({ fg: theme.textMuted }, [`v${version}`]),
42
119
  ]),
43
- box({ width: "100%", marginTop: 1 }, [
44
- text({ fg: theme.text }, ["Hello World"]),
45
- ]),
120
+ text({ fg: theme.text }, [statusLine]),
121
+ text({ fg: theme.textMuted }, [timeLine]),
46
122
  ]);
47
123
  }
48
124
  const plugin = {
49
125
  id: `${PLUGIN_NAME}:tui`,
50
- tui: async (api) => {
126
+ tui: async (api, _options, meta) => {
127
+ const version = meta.version ?? getVersion();
128
+ let cachedStatus = DEFAULT_STATUS;
129
+ let lastRefresh = 0;
130
+ const REFRESH_INTERVAL_MS = 30_000;
131
+ function refreshStatus() {
132
+ const worktree = api.state.path.worktree;
133
+ if (worktree) {
134
+ cachedStatus = loadRagStatus(worktree);
135
+ lastRefresh = Date.now();
136
+ }
137
+ }
138
+ refreshStatus();
51
139
  api.slots.register({
52
140
  order: 900,
53
141
  slots: {
54
142
  sidebar_content() {
55
- return renderSidebar(api.theme.current);
143
+ if (Date.now() - lastRefresh > REFRESH_INTERVAL_MS) {
144
+ refreshStatus();
145
+ }
146
+ return renderSidebar(api.theme.current, version, cachedStatus);
56
147
  },
57
148
  },
58
149
  });
package/dist/tui.js.map CHANGED
@@ -1 +1 @@
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;AAIhE,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C,SAAS,OAAO,CACd,GAAW,EACX,KAA8B,EAC9B,WAAoB,EAAE;IAEtB,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAEhC,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;IAED,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;IAED,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,CAAC,KAItB;IACC,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;SACH,CACF;QACD,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;SAC1C,CAAC;KACH,CACF,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAqC;IAC/C,EAAE,EAAE,GAAG,WAAW,MAAM;IACxB,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACjB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YACjB,KAAK,EAAE,GAAG;YACV,KAAK,EAAE;gBACL,eAAe;oBACb,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
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,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,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;AAUD,MAAM,cAAc,GAAc;IAChC,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,EAAE;IACT,aAAa,EAAE,SAAS;IACxB,OAAO,EAAE,KAAK;CACf,CAAC;AAEF,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,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAClB,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;gBAC5D,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;YACrD,CAAC;YACD,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,IAAI,kBAAkB,CAAC;YAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YAChE,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;gBACjE,IAAI,QAAQ,CAAC,KAAK,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACzD,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAgD,CAAC;yBACzF,MAAM,CAAC,CAAC,GAAW,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC;gBACD,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;gBAC9C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;YACzC,CAAC;YACD,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;IAEhC,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;IAED,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;IAED,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,KAIC,EACD,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,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;KAC1C,CACF,CAAC;AACJ,CAAC;AAED,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,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;IACL,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-rag-plugin",
3
- "version": "1.3.2",
3
+ "version": "1.3.5",
4
4
  "description": "OpenCode plugin for local-first RAG-based semantic code search",
5
5
  "type": "module",
6
6
  "main": "./dist/plugin-entry.js",