opencode-rag-plugin 1.8.3 → 1.10.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 (75) hide show
  1. package/ReadMe.md +3 -3
  2. package/dist/api.d.ts +27 -0
  3. package/dist/api.js +119 -0
  4. package/dist/api.js.map +1 -0
  5. package/dist/chunker/base.d.ts +1 -0
  6. package/dist/chunker/base.js +5 -2
  7. package/dist/chunker/base.js.map +1 -1
  8. package/dist/chunker/bash.d.ts +8 -0
  9. package/dist/chunker/bash.js +11 -0
  10. package/dist/chunker/bash.js.map +1 -0
  11. package/dist/chunker/dockerfile.d.ts +8 -0
  12. package/dist/chunker/dockerfile.js +29 -0
  13. package/dist/chunker/dockerfile.js.map +1 -0
  14. package/dist/chunker/factory.d.ts +9 -1
  15. package/dist/chunker/factory.js +24 -3
  16. package/dist/chunker/factory.js.map +1 -1
  17. package/dist/chunker/grammar.d.ts +1 -0
  18. package/dist/chunker/grammar.js +42 -2
  19. package/dist/chunker/grammar.js.map +1 -1
  20. package/dist/chunker/ini.d.ts +8 -0
  21. package/dist/chunker/ini.js +11 -0
  22. package/dist/chunker/ini.js.map +1 -0
  23. package/dist/chunker/markdown.d.ts +4 -3
  24. package/dist/chunker/markdown.js +4 -91
  25. package/dist/chunker/markdown.js.map +1 -1
  26. package/dist/chunker/php.d.ts +8 -0
  27. package/dist/chunker/php.js +12 -0
  28. package/dist/chunker/php.js.map +1 -0
  29. package/dist/chunker/powershell.d.ts +8 -0
  30. package/dist/chunker/powershell.js +11 -0
  31. package/dist/chunker/powershell.js.map +1 -0
  32. package/dist/chunker/sql.d.ts +8 -0
  33. package/dist/chunker/sql.js +11 -0
  34. package/dist/chunker/sql.js.map +1 -0
  35. package/dist/chunker/toml.d.ts +8 -0
  36. package/dist/chunker/toml.js +13 -0
  37. package/dist/chunker/toml.js.map +1 -0
  38. package/dist/chunker/yaml.d.ts +8 -0
  39. package/dist/chunker/yaml.js +12 -0
  40. package/dist/chunker/yaml.js.map +1 -0
  41. package/dist/cli.js +35 -5
  42. package/dist/cli.js.map +1 -1
  43. package/dist/core/config.d.ts +15 -1
  44. package/dist/core/config.js +109 -2
  45. package/dist/core/config.js.map +1 -1
  46. package/dist/core/rag-injection-flag.d.ts +3 -0
  47. package/dist/core/rag-injection-flag.js +20 -0
  48. package/dist/core/rag-injection-flag.js.map +1 -0
  49. package/dist/core/runtime-overrides.d.ts +4 -0
  50. package/dist/core/runtime-overrides.js +9 -0
  51. package/dist/core/runtime-overrides.js.map +1 -1
  52. package/dist/eval/types.js +0 -1
  53. package/dist/eval/types.js.map +1 -1
  54. package/dist/index.d.ts +2 -0
  55. package/dist/index.js +3 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/indexer.d.ts +9 -0
  58. package/dist/indexer.js +3 -2
  59. package/dist/indexer.js.map +1 -1
  60. package/dist/mcp/cli.d.ts +4 -0
  61. package/dist/mcp/cli.js +15 -0
  62. package/dist/mcp/cli.js.map +1 -0
  63. package/dist/mcp/handlers.d.ts +46 -0
  64. package/dist/mcp/handlers.js +300 -0
  65. package/dist/mcp/handlers.js.map +1 -0
  66. package/dist/mcp/server.d.ts +12 -0
  67. package/dist/mcp/server.js +124 -0
  68. package/dist/mcp/server.js.map +1 -0
  69. package/dist/opencode/read-format.d.ts +1 -1
  70. package/dist/opencode/read-format.js +1 -1
  71. package/dist/plugin.js +70 -45
  72. package/dist/plugin.js.map +1 -1
  73. package/dist/tui.js +89 -277
  74. package/dist/tui.js.map +1 -1
  75. package/package.json +19 -2
package/dist/tui.js CHANGED
@@ -4,11 +4,8 @@ import { dirname, join, resolve } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { loadRuntimeOverrides, saveRuntimeOverride } from "./core/runtime-overrides.js";
6
6
  import { PROVIDER_DEFAULTS } from "./core/provider-defaults.js";
7
- import { retrieve } from "./retriever/retriever.js";
8
- import { createEmbedder } from "./embedder/factory.js";
9
- import { LanceDBStore } from "./vectorstore/lancedb.js";
10
7
  import { loadConfig } from "./core/config.js";
11
- import { KeywordIndex } from "./retriever/keyword-index.js";
8
+ import { setPendingRagInjection } from "./core/rag-injection-flag.js";
12
9
  let _version;
13
10
  function getVersion() {
14
11
  if (_version !== undefined)
@@ -97,6 +94,12 @@ function formatRelativeTime(timestamp) {
97
94
  const days = Math.floor(hours / 24);
98
95
  return `${days}d ago`;
99
96
  }
97
+ function formatKeybinding(key) {
98
+ return key
99
+ .split("+")
100
+ .map((k) => k.charAt(0).toUpperCase() + k.slice(1))
101
+ .join("+");
102
+ }
100
103
  const PLUGIN_NAME = "opencode-rag-plugin";
101
104
  function element(tag, props, children = []) {
102
105
  const node = createElement(tag);
@@ -117,7 +120,7 @@ function text(props, children = []) {
117
120
  function box(props, children = []) {
118
121
  return element("box", props, children);
119
122
  }
120
- function renderSidebar(theme, version, status) {
123
+ function renderSidebar(theme, version, status, tuiConfig) {
121
124
  const statusLine = status.indexed
122
125
  ? `${status.chunkCount} chunks \u00B7 ${status.provider}/${status.model}`
123
126
  : "Not indexed";
@@ -126,6 +129,8 @@ function renderSidebar(theme, version, status) {
126
129
  const watcherLine = watcherRunning
127
130
  ? "Watcher running\u2026"
128
131
  : `Watcher idle \u00B7 last ${formatRelativeTime(status.watcher.lastRunAt)}`;
132
+ const fileListKey = tuiConfig?.fileListKeybinding ?? "ctrl+enter";
133
+ const chunksKey = tuiConfig?.chunksKeybinding ?? "ctrl+alt+enter";
129
134
  return box({
130
135
  width: "100%",
131
136
  flexDirection: "column",
@@ -151,237 +156,10 @@ function renderSidebar(theme, version, status) {
151
156
  text({ fg: theme.textMuted }, [timeLine]),
152
157
  text({ fg: watcherRunning ? theme.accent : theme.textMuted }, [watcherLine]),
153
158
  text({ fg: theme.textMuted }, ["Ctrl+Shift+R → Settings"]),
154
- text({ fg: theme.textMuted }, ["Ctrl+Enter → Add Files"]),
155
- text({ fg: theme.textMuted }, ["Ctrl+Alt+Enter → Add Chunks"]),
159
+ text({ fg: theme.textMuted }, [`${formatKeybinding(fileListKey)} → Add Files`]),
160
+ text({ fg: theme.textMuted }, [`${formatKeybinding(chunksKey)} → Add Chunks`]),
156
161
  ]);
157
162
  }
158
- // ── Add RAG Context ──────────────────────────────────────────────
159
- let currentPromptRef;
160
- function formatRagContextForPrompt(results) {
161
- if (results.length === 0)
162
- return "";
163
- const avgScore = results.reduce((sum, r) => sum + r.score, 0) / results.length;
164
- const lines = [];
165
- lines.push(`\n---\n**RAG Context** (${results.length} chunks, avg ${avgScore.toFixed(2)})\n`);
166
- for (const r of results) {
167
- const m = r.chunk.metadata;
168
- lines.push(`[${m.filePath}:${m.startLine}-${m.endLine}] (${m.language}, score: ${r.score.toFixed(2)})`);
169
- if (r.chunk.description) {
170
- lines.push(`> ${r.chunk.description}`);
171
- }
172
- lines.push("```" + m.language);
173
- lines.push(r.chunk.content);
174
- lines.push("```\n");
175
- }
176
- lines.push("---\n");
177
- return lines.join("\n");
178
- }
179
- async function addChunksToPrompt(api, query) {
180
- const worktree = api.state.path.worktree;
181
- if (!worktree) {
182
- api.ui.toast({ variant: "error", title: "RAG Context", message: "No workspace open" });
183
- return;
184
- }
185
- let searchQuery = query ?? currentPromptRef?.current.input?.trim() ?? "";
186
- if (!searchQuery) {
187
- api.ui.toast({
188
- variant: "info",
189
- title: "RAG Context",
190
- message: "Type a prompt first, then press Alt+Enter",
191
- });
192
- return;
193
- }
194
- try {
195
- const configPath = getConfigPath(worktree);
196
- if (!configPath) {
197
- api.ui.toast({ variant: "error", title: "RAG Context", message: "No config file found" });
198
- return;
199
- }
200
- const cfg = loadConfig(configPath);
201
- const embedder = createEmbedder(cfg);
202
- const storePath = resolve(worktree, cfg.vectorStore.path);
203
- const store = new LanceDBStore(storePath);
204
- const count = await store.count();
205
- if (count === 0) {
206
- api.ui.toast({
207
- variant: "warning",
208
- title: "RAG Context",
209
- message: "No indexed chunks available. Run `opencode-rag index` first.",
210
- });
211
- return;
212
- }
213
- let keywordIndex;
214
- try {
215
- keywordIndex = await KeywordIndex.load(storePath);
216
- }
217
- catch {
218
- // keyword index unavailable, continue with vector-only search
219
- }
220
- const results = await retrieve(searchQuery, embedder, store, {
221
- topK: cfg.retrieval.topK,
222
- minScore: cfg.retrieval.minScore,
223
- keywordIndex,
224
- keywordWeight: cfg.retrieval.hybridSearch?.keywordWeight,
225
- queryPrefix: cfg.embedding.queryPrefix,
226
- });
227
- if (results.length === 0) {
228
- api.ui.toast({
229
- variant: "info",
230
- title: "RAG Context",
231
- message: `No matching chunks found for "${searchQuery}"`,
232
- });
233
- return;
234
- }
235
- const formatted = formatRagContextForPrompt(results);
236
- if (currentPromptRef) {
237
- const current = currentPromptRef.current.input;
238
- currentPromptRef.set({
239
- input: current + "\n" + formatted,
240
- mode: currentPromptRef.current.mode ?? "normal",
241
- parts: currentPromptRef.current.parts ?? [],
242
- });
243
- currentPromptRef.submit();
244
- }
245
- api.ui.toast({
246
- variant: "success",
247
- title: "RAG Context",
248
- message: `Appended ${results.length} chunks for "${searchQuery}"`,
249
- });
250
- }
251
- catch (err) {
252
- const message = err instanceof Error ? err.message : String(err);
253
- api.ui.toast({
254
- variant: "error",
255
- title: "RAG Context",
256
- message: `Retrieval failed: ${message}`,
257
- });
258
- }
259
- }
260
- function formatFileListForDialog(results, worktree) {
261
- if (results.length === 0)
262
- return "";
263
- const fileMap = new Map();
264
- for (const r of results) {
265
- const m = r.chunk.metadata;
266
- const existing = fileMap.get(m.filePath);
267
- if (existing) {
268
- existing.lines.push(m.startLine, m.endLine);
269
- existing.scores.push(r.score);
270
- }
271
- else {
272
- fileMap.set(m.filePath, {
273
- lines: [m.startLine, m.endLine],
274
- scores: [r.score],
275
- language: m.language,
276
- });
277
- }
278
- }
279
- const sorted = [...fileMap.entries()]
280
- .sort((a, b) => Math.max(...b[1].scores) - Math.max(...a[1].scores))
281
- .slice(0, 10);
282
- const lines = [];
283
- lines.push(`Relevant files (${sorted.length}):\n`);
284
- for (const [filePath, info] of sorted) {
285
- const relPath = filePath.startsWith(worktree)
286
- ? filePath.slice(worktree.length + 1).replace(/\\/g, "/")
287
- : filePath.replace(/\\/g, "/");
288
- const minLine = Math.min(...info.lines);
289
- const maxLine = Math.max(...info.lines);
290
- const relevance = Math.max(...info.scores).toFixed(2);
291
- lines.push(` ${relPath} (${info.language}, lines ${minLine}-${maxLine}, relevance ${relevance})`);
292
- }
293
- lines.push("\nUse `opencode-rag-context` to retrieve full chunks, or `find_usages` before editing.");
294
- return lines.join("\n");
295
- }
296
- async function addFileListToPrompt(api, query) {
297
- const worktree = api.state.path.worktree;
298
- if (!worktree) {
299
- api.ui.toast({ variant: "error", title: "RAG File List", message: "No workspace open" });
300
- return;
301
- }
302
- let searchQuery = query ?? currentPromptRef?.current.input?.trim() ?? "";
303
- if (!searchQuery) {
304
- api.ui.toast({
305
- variant: "info",
306
- title: "RAG File List",
307
- message: "Type a prompt first, then press Ctrl+Enter",
308
- });
309
- return;
310
- }
311
- try {
312
- const configPath = getConfigPath(worktree);
313
- if (!configPath) {
314
- api.ui.toast({ variant: "error", title: "RAG File List", message: "No config file found" });
315
- return;
316
- }
317
- const cfg = loadConfig(configPath);
318
- const embedder = createEmbedder(cfg);
319
- const storePath = resolve(worktree, cfg.vectorStore.path);
320
- const store = new LanceDBStore(storePath);
321
- const count = await store.count();
322
- if (count === 0) {
323
- api.ui.toast({
324
- variant: "warning",
325
- title: "RAG File List",
326
- message: "No indexed chunks available. Run `opencode-rag index` first.",
327
- });
328
- return;
329
- }
330
- let keywordIndex;
331
- try {
332
- keywordIndex = await KeywordIndex.load(storePath);
333
- }
334
- catch {
335
- // keyword index unavailable, continue with vector-only search
336
- }
337
- const results = await retrieve(searchQuery, embedder, store, {
338
- topK: cfg.retrieval.topK,
339
- minScore: cfg.retrieval.minScore,
340
- keywordIndex,
341
- keywordWeight: cfg.retrieval.hybridSearch?.keywordWeight,
342
- queryPrefix: cfg.embedding.queryPrefix,
343
- });
344
- if (results.length === 0) {
345
- api.ui.toast({
346
- variant: "info",
347
- title: "RAG File List",
348
- message: `No matching chunks found for "${searchQuery}"`,
349
- });
350
- return;
351
- }
352
- const formatted = formatFileListForDialog(results, worktree);
353
- if (currentPromptRef) {
354
- const current = currentPromptRef.current.input;
355
- currentPromptRef.set({
356
- input: current + "\n" + formatted,
357
- mode: currentPromptRef.current.mode ?? "normal",
358
- parts: currentPromptRef.current.parts ?? [],
359
- });
360
- currentPromptRef.submit();
361
- }
362
- api.ui.toast({
363
- variant: "success",
364
- title: "RAG File List",
365
- message: `Appended ${results.length} files for "${searchQuery}"`,
366
- });
367
- }
368
- catch (err) {
369
- const message = err instanceof Error ? err.message : String(err);
370
- api.ui.toast({
371
- variant: "error",
372
- title: "RAG File List",
373
- message: `Retrieval failed: ${message}`,
374
- });
375
- }
376
- }
377
- function renderAddContextButton(api) {
378
- return box({
379
- onClick: () => addFileListToPrompt(api),
380
- paddingLeft: 1,
381
- paddingRight: 1,
382
- cursor: "pointer",
383
- }, [text({ fg: api.theme.current.textMuted }, ["+RAG"])]);
384
- }
385
163
  // ── Settings dialog ────────────────────────────────────────────────
386
164
  function getConfigPath(worktree) {
387
165
  for (const loc of ["opencode-rag.json", ".opencode/opencode-rag.json", ".opencode/rag.json"]) {
@@ -500,6 +278,8 @@ function buildSettingCategories(cfg, ro, providers) {
500
278
  const descRo = (ro.description ?? {});
501
279
  const embeddingCfg = (cfg.embedding ?? {});
502
280
  const embeddingRo = (ro.embedding ?? {});
281
+ const tuiCfg = (cfg.tui ?? {});
282
+ const tuiRo = (ro.tui ?? {});
503
283
  const modelOptions = providers ? buildModelOptions(providers) : undefined;
504
284
  function displayModel(roProvider, roModel, cfgProvider, cfgModel, defaultProvider, defaultModel) {
505
285
  const p = roProvider ?? cfgProvider ?? defaultProvider;
@@ -616,6 +396,25 @@ function buildSettingCategories(cfg, ro, providers) {
616
396
  },
617
397
  ],
618
398
  },
399
+ {
400
+ id: "keybindings",
401
+ label: "Keybindings",
402
+ description: "Configure keyboard shortcuts",
403
+ entries: [
404
+ {
405
+ path: ["tui", "fileListKeybinding"],
406
+ label: "Add file list",
407
+ type: "string",
408
+ currentValue: tuiRo.fileListKeybinding ?? tuiCfg.fileListKeybinding ?? "ctrl+enter",
409
+ },
410
+ {
411
+ path: ["tui", "chunksKeybinding"],
412
+ label: "Add chunks",
413
+ type: "string",
414
+ currentValue: tuiRo.chunksKeybinding ?? tuiCfg.chunksKeybinding ?? "ctrl+alt+enter",
415
+ },
416
+ ],
417
+ },
619
418
  ];
620
419
  }
621
420
  async function openSettingsDialog(api) {
@@ -808,10 +607,25 @@ const plugin = {
808
607
  let cachedStatus = DEFAULT_STATUS;
809
608
  let lastRefresh = 0;
810
609
  const REFRESH_INTERVAL_MS = 30_000;
610
+ // Load tui config for keybinding display
611
+ let tuiConfig;
612
+ const worktree = api.state.path.worktree;
613
+ if (worktree) {
614
+ const configPath = getConfigPath(worktree);
615
+ if (configPath) {
616
+ try {
617
+ const cfg = loadConfig(configPath);
618
+ tuiConfig = cfg.tui;
619
+ }
620
+ catch {
621
+ // use defaults
622
+ }
623
+ }
624
+ }
811
625
  function refreshStatus() {
812
- const worktree = api.state.path.worktree;
813
- if (worktree) {
814
- cachedStatus = loadRagStatus(worktree);
626
+ const wt = api.state.path.worktree;
627
+ if (wt) {
628
+ cachedStatus = loadRagStatus(wt);
815
629
  lastRefresh = Date.now();
816
630
  }
817
631
  }
@@ -824,50 +638,42 @@ const plugin = {
824
638
  if (Date.now() - lastRefresh > REFRESH_INTERVAL_MS) {
825
639
  refreshStatus();
826
640
  }
827
- return renderSidebar(api.theme.current, version, cachedStatus);
641
+ return renderSidebar(api.theme.current, version, cachedStatus, tuiConfig);
828
642
  },
829
643
  },
830
644
  });
831
- // Register prompt slots for "Add RAG Context" feature.
832
- // The session_prompt slot has mode="replace" returning null suppresses
833
- // the child Prompt entirely. Instead we render the Prompt ourselves so we
834
- // can intercept the ref callback and capture the PromptRef.
835
- function makePromptRefWrapper(originalRef) {
836
- return (r) => {
837
- currentPromptRef = r;
838
- originalRef?.(r);
839
- };
840
- }
645
+ // Register prompt slots return null to let host render its default prompt.
646
+ // The host's api.ui.Prompt() wrapper drops ref/right/sessionID props, so
647
+ // replacing the prompt doesn't work. Instead, keybinding handlers set a
648
+ // global flag consumed by the chat.message hook in the server plugin.
841
649
  api.slots.register({
842
650
  order: 901,
843
651
  slots: {
844
- session_prompt(_ctx, props) {
845
- const rightSlot = element("Slot", {
846
- name: "session_prompt_right",
847
- session_id: props.session_id,
848
- });
849
- return api.ui.Prompt({
850
- sessionID: props.session_id,
851
- visible: props.visible,
852
- disabled: props.disabled,
853
- onSubmit: props.on_submit,
854
- ref: makePromptRefWrapper(props.ref),
855
- right: rightSlot,
856
- });
857
- },
858
- home_prompt(_ctx, props) {
859
- return api.ui.Prompt({
860
- ref: makePromptRefWrapper(props.ref),
861
- });
652
+ session_prompt() {
653
+ return null;
862
654
  },
863
- session_prompt_right(_ctx, _props) {
864
- return renderAddContextButton(api);
865
- },
866
- home_prompt_right(_ctx, _props) {
867
- return renderAddContextButton(api);
655
+ home_prompt() {
656
+ return null;
868
657
  },
869
658
  },
870
659
  });
660
+ // Compute storePath for flag-based IPC with server plugin
661
+ let flagStorePath;
662
+ const worktreeForFlag = api.state.path.worktree;
663
+ if (worktreeForFlag) {
664
+ try {
665
+ const flagConfigPath = getConfigPath(worktreeForFlag);
666
+ if (flagConfigPath) {
667
+ const flagCfg = loadConfig(flagConfigPath);
668
+ const vs = flagCfg.vectorStore;
669
+ const storeRelPath = vs?.path ?? ".opencode/rag_db";
670
+ flagStorePath = resolve(worktreeForFlag, storeRelPath);
671
+ }
672
+ }
673
+ catch {
674
+ // ignore
675
+ }
676
+ }
871
677
  // Register keybinding for settings dialog
872
678
  try {
873
679
  api.keymap.registerLayer({
@@ -889,15 +695,18 @@ const plugin = {
889
695
  catch (err) {
890
696
  // Keymap registration may fail in older OpenCode versions; silently skip
891
697
  }
892
- // Register keybinding for "Show Relevant Files" (Ctrl+Enter)
698
+ // Register keybinding for "Add File List" (configurable)
893
699
  try {
700
+ const fileListKey = tuiConfig?.fileListKeybinding ?? "ctrl+enter";
894
701
  api.keymap.registerLayer({
895
- bindings: [{ key: "ctrl+enter", cmd: "opencode-rag:show-file-list" }],
702
+ bindings: [{ key: fileListKey, cmd: "opencode-rag:show-file-list" }],
896
703
  commands: [
897
704
  {
898
705
  name: "opencode-rag:show-file-list",
899
706
  run: () => {
900
- addFileListToPrompt(api);
707
+ if (flagStorePath)
708
+ setPendingRagInjection(flagStorePath, "files");
709
+ api.keymap.dispatchCommand("prompt.submit");
901
710
  return undefined;
902
711
  },
903
712
  },
@@ -907,15 +716,18 @@ const plugin = {
907
716
  catch (err) {
908
717
  // Keymap registration may fail in older OpenCode versions; silently skip
909
718
  }
910
- // Register keybinding for "Add RAG Chunks" (Ctrl+Alt+Enter)
719
+ // Register keybinding for "Add RAG Chunks" (configurable)
911
720
  try {
721
+ const chunksKey = tuiConfig?.chunksKeybinding ?? "ctrl+alt+enter";
912
722
  api.keymap.registerLayer({
913
- bindings: [{ key: "ctrl+alt+enter", cmd: "opencode-rag:add-chunks" }],
723
+ bindings: [{ key: chunksKey, cmd: "opencode-rag:add-chunks" }],
914
724
  commands: [
915
725
  {
916
726
  name: "opencode-rag:add-chunks",
917
727
  run: () => {
918
- addChunksToPrompt(api);
728
+ if (flagStorePath)
729
+ setPendingRagInjection(flagStorePath, "chunks");
730
+ api.keymap.dispatchCommand("prompt.submit");
919
731
  return undefined;
920
732
  },
921
733
  },
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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-rag-plugin",
3
- "version": "1.8.3",
3
+ "version": "1.10.1",
4
4
  "description": "OpenCode plugin for local-first RAG-based semantic code search",
5
5
  "type": "module",
6
6
  "main": "./dist/plugin-entry.js",
@@ -29,6 +29,10 @@
29
29
  "./ui": {
30
30
  "import": "./dist/web/server.js",
31
31
  "types": "./dist/web/server.d.ts"
32
+ },
33
+ "./mcp": {
34
+ "import": "./dist/mcp/server.js",
35
+ "types": "./dist/mcp/server.d.ts"
32
36
  }
33
37
  },
34
38
  "files": [
@@ -75,7 +79,11 @@
75
79
  "dependencies": {
76
80
  "@e965/xlsx": "^0.20.3",
77
81
  "@lancedb/lancedb": "^0.29.0",
82
+ "@modelcontextprotocol/sdk": "^1.29.0",
78
83
  "@thednp/dommatrix": "^3.0.4",
84
+ "@tree-sitter-grammars/tree-sitter-markdown": "^0.3.2",
85
+ "@tree-sitter-grammars/tree-sitter-xml": "^0.7.0",
86
+ "@vscode/tree-sitter-wasm": "^0.3.1",
79
87
  "apache-arrow": "18.1.0",
80
88
  "canvas": "^3.2.3",
81
89
  "chokidar": "^4.0.3",
@@ -84,19 +92,28 @@
84
92
  "p-limit": "^7.3.0",
85
93
  "pdfjs-dist": "^5.7.284",
86
94
  "picocolors": "^1.1.1",
87
- "tree-sitter-wasm": "^1.0.2",
95
+ "tree-sitter-c": "^0.24.1",
96
+ "tree-sitter-html": "^0.23.2",
97
+ "tree-sitter-json": "^0.24.8",
98
+ "tree-sitter-kotlin": "^0.3.8",
99
+ "tree-sitter-swift": "^0.7.1",
88
100
  "web-tree-sitter": "^0.26.9",
89
101
  "word-extractor": "^1.0.4"
90
102
  },
91
103
  "devDependencies": {
104
+ "@derekstride/tree-sitter-sql": "^0.3.11",
92
105
  "@opencode-ai/plugin": "1.15.5",
93
106
  "@opentui/core": "^0.4.0",
94
107
  "@opentui/keymap": "^0.4.0",
95
108
  "@opentui/solid": "^0.4.0",
109
+ "@tree-sitter-grammars/tree-sitter-toml": "^0.7.0",
110
+ "@tree-sitter-grammars/tree-sitter-yaml": "^0.7.1",
96
111
  "@types/node": "^22.15.0",
97
112
  "@types/react": "^19.2.17",
98
113
  "@types/word-extractor": "^1.0.6",
99
114
  "solid-js": "^1.9.12",
115
+ "tree-sitter-cli": "^0.26.9",
116
+ "tree-sitter-containerfile": "^0.8.0",
100
117
  "tsx": "^4.19.4",
101
118
  "typescript": "^5.8.3"
102
119
  },