opencode-rag-plugin 1.12.17 → 1.14.6

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 (335) hide show
  1. package/ReadMe.md +15 -13
  2. package/dist/api.d.ts +54 -2
  3. package/dist/api.js +41 -1
  4. package/dist/api.js.map +1 -1
  5. package/dist/chunker/base.js +2 -0
  6. package/dist/chunker/base.js.map +1 -1
  7. package/dist/chunker/bash.d.ts +5 -0
  8. package/dist/chunker/bash.js +5 -0
  9. package/dist/chunker/bash.js.map +1 -1
  10. package/dist/chunker/c.d.ts +6 -0
  11. package/dist/chunker/c.js +6 -0
  12. package/dist/chunker/c.js.map +1 -1
  13. package/dist/chunker/cpp.d.ts +6 -0
  14. package/dist/chunker/cpp.js +6 -0
  15. package/dist/chunker/cpp.js.map +1 -1
  16. package/dist/chunker/csharp.d.ts +6 -0
  17. package/dist/chunker/csharp.js +6 -0
  18. package/dist/chunker/csharp.js.map +1 -1
  19. package/dist/chunker/css.d.ts +6 -0
  20. package/dist/chunker/css.js +6 -0
  21. package/dist/chunker/css.js.map +1 -1
  22. package/dist/chunker/doc.d.ts +18 -0
  23. package/dist/chunker/doc.js +18 -0
  24. package/dist/chunker/doc.js.map +1 -1
  25. package/dist/chunker/dockerfile.d.ts +6 -0
  26. package/dist/chunker/dockerfile.js +6 -0
  27. package/dist/chunker/dockerfile.js.map +1 -1
  28. package/dist/chunker/docx.d.ts +18 -0
  29. package/dist/chunker/docx.js +18 -0
  30. package/dist/chunker/docx.js.map +1 -1
  31. package/dist/chunker/excel.d.ts +19 -0
  32. package/dist/chunker/excel.js +19 -0
  33. package/dist/chunker/excel.js.map +1 -1
  34. package/dist/chunker/go.d.ts +5 -0
  35. package/dist/chunker/go.js +5 -0
  36. package/dist/chunker/go.js.map +1 -1
  37. package/dist/chunker/grammar.d.ts +62 -0
  38. package/dist/chunker/grammar.js +133 -0
  39. package/dist/chunker/grammar.js.map +1 -1
  40. package/dist/chunker/html.d.ts +5 -0
  41. package/dist/chunker/html.js +5 -0
  42. package/dist/chunker/html.js.map +1 -1
  43. package/dist/chunker/image.d.ts +31 -0
  44. package/dist/chunker/image.js +50 -4
  45. package/dist/chunker/image.js.map +1 -1
  46. package/dist/chunker/ini.d.ts +5 -0
  47. package/dist/chunker/ini.js +5 -0
  48. package/dist/chunker/ini.js.map +1 -1
  49. package/dist/chunker/java.d.ts +5 -0
  50. package/dist/chunker/java.js +5 -0
  51. package/dist/chunker/java.js.map +1 -1
  52. package/dist/chunker/javascript.d.ts +6 -0
  53. package/dist/chunker/javascript.js +6 -0
  54. package/dist/chunker/javascript.js.map +1 -1
  55. package/dist/chunker/json.d.ts +5 -0
  56. package/dist/chunker/json.js +5 -0
  57. package/dist/chunker/json.js.map +1 -1
  58. package/dist/chunker/kotlin.d.ts +6 -0
  59. package/dist/chunker/kotlin.js +6 -0
  60. package/dist/chunker/kotlin.js.map +1 -1
  61. package/dist/chunker/loader.d.ts +11 -0
  62. package/dist/chunker/loader.js +20 -0
  63. package/dist/chunker/loader.js.map +1 -1
  64. package/dist/chunker/markdown.d.ts +5 -0
  65. package/dist/chunker/markdown.js +5 -0
  66. package/dist/chunker/markdown.js.map +1 -1
  67. package/dist/chunker/pdf.d.ts +19 -0
  68. package/dist/chunker/pdf.js +30 -0
  69. package/dist/chunker/pdf.js.map +1 -1
  70. package/dist/chunker/php.d.ts +5 -0
  71. package/dist/chunker/php.js +5 -0
  72. package/dist/chunker/php.js.map +1 -1
  73. package/dist/chunker/powershell.d.ts +5 -0
  74. package/dist/chunker/powershell.js +5 -0
  75. package/dist/chunker/powershell.js.map +1 -1
  76. package/dist/chunker/python.d.ts +5 -0
  77. package/dist/chunker/python.js +5 -0
  78. package/dist/chunker/python.js.map +1 -1
  79. package/dist/chunker/razor.d.ts +12 -0
  80. package/dist/chunker/razor.js +25 -0
  81. package/dist/chunker/razor.js.map +1 -1
  82. package/dist/chunker/ruby.d.ts +5 -0
  83. package/dist/chunker/ruby.js +5 -0
  84. package/dist/chunker/ruby.js.map +1 -1
  85. package/dist/chunker/rust.d.ts +6 -0
  86. package/dist/chunker/rust.js +6 -0
  87. package/dist/chunker/rust.js.map +1 -1
  88. package/dist/chunker/sln.d.ts +11 -0
  89. package/dist/chunker/sln.js +11 -0
  90. package/dist/chunker/sln.js.map +1 -1
  91. package/dist/chunker/sql.d.ts +5 -0
  92. package/dist/chunker/sql.js +5 -0
  93. package/dist/chunker/sql.js.map +1 -1
  94. package/dist/chunker/ssl.d.ts +12 -0
  95. package/dist/chunker/ssl.js +21 -2
  96. package/dist/chunker/ssl.js.map +1 -1
  97. package/dist/chunker/swift.d.ts +5 -0
  98. package/dist/chunker/swift.js +5 -0
  99. package/dist/chunker/swift.js.map +1 -1
  100. package/dist/chunker/tex.d.ts +12 -0
  101. package/dist/chunker/tex.js +12 -0
  102. package/dist/chunker/tex.js.map +1 -1
  103. package/dist/chunker/toml.d.ts +5 -0
  104. package/dist/chunker/toml.js +5 -0
  105. package/dist/chunker/toml.js.map +1 -1
  106. package/dist/chunker/typescript.d.ts +6 -0
  107. package/dist/chunker/typescript.js +6 -0
  108. package/dist/chunker/typescript.js.map +1 -1
  109. package/dist/chunker/xml.d.ts +5 -0
  110. package/dist/chunker/xml.js +5 -0
  111. package/dist/chunker/xml.js.map +1 -1
  112. package/dist/chunker/yaml.d.ts +5 -0
  113. package/dist/chunker/yaml.js +5 -0
  114. package/dist/chunker/yaml.js.map +1 -1
  115. package/dist/cli/commands/clear.d.ts +12 -0
  116. package/dist/cli/commands/clear.js +81 -0
  117. package/dist/cli/commands/clear.js.map +1 -0
  118. package/dist/cli/commands/describe-image.d.ts +14 -0
  119. package/dist/cli/commands/describe-image.js +68 -0
  120. package/dist/cli/commands/describe-image.js.map +1 -0
  121. package/dist/cli/commands/dump.d.ts +13 -0
  122. package/dist/cli/commands/dump.js +55 -0
  123. package/dist/cli/commands/dump.js.map +1 -0
  124. package/dist/cli/commands/eval.d.ts +32 -0
  125. package/dist/cli/commands/eval.js +158 -0
  126. package/dist/cli/commands/eval.js.map +1 -0
  127. package/dist/cli/commands/index-command.d.ts +17 -0
  128. package/dist/cli/commands/index-command.js +167 -0
  129. package/dist/cli/commands/index-command.js.map +1 -0
  130. package/dist/cli/commands/index.d.ts +16 -0
  131. package/dist/cli/commands/index.js +17 -0
  132. package/dist/cli/commands/index.js.map +1 -0
  133. package/dist/cli/commands/init-helpers.d.ts +101 -0
  134. package/dist/cli/commands/init-helpers.js +397 -0
  135. package/dist/cli/commands/init-helpers.js.map +1 -0
  136. package/dist/cli/commands/init.d.ts +19 -0
  137. package/dist/cli/commands/init.js +251 -0
  138. package/dist/cli/commands/init.js.map +1 -0
  139. package/dist/cli/commands/list.d.ts +13 -0
  140. package/dist/cli/commands/list.js +46 -0
  141. package/dist/cli/commands/list.js.map +1 -0
  142. package/dist/cli/commands/mcp.d.ts +14 -0
  143. package/dist/cli/commands/mcp.js +35 -0
  144. package/dist/cli/commands/mcp.js.map +1 -0
  145. package/dist/cli/commands/query.d.ts +14 -0
  146. package/dist/cli/commands/query.js +86 -0
  147. package/dist/cli/commands/query.js.map +1 -0
  148. package/dist/cli/commands/show.d.ts +13 -0
  149. package/dist/cli/commands/show.js +51 -0
  150. package/dist/cli/commands/show.js.map +1 -0
  151. package/dist/cli/commands/status.d.ts +14 -0
  152. package/dist/cli/commands/status.js +104 -0
  153. package/dist/cli/commands/status.js.map +1 -0
  154. package/dist/cli/commands/ui.d.ts +14 -0
  155. package/dist/cli/commands/ui.js +69 -0
  156. package/dist/cli/commands/ui.js.map +1 -0
  157. package/dist/cli/commands/update.d.ts +14 -0
  158. package/dist/cli/commands/update.js +76 -0
  159. package/dist/cli/commands/update.js.map +1 -0
  160. package/dist/cli/format.d.ts +112 -0
  161. package/dist/cli/format.js +184 -0
  162. package/dist/cli/format.js.map +1 -0
  163. package/dist/cli/helpers.d.ts +51 -0
  164. package/dist/cli/helpers.js +86 -0
  165. package/dist/cli/helpers.js.map +1 -0
  166. package/dist/cli/index.d.ts +28 -0
  167. package/dist/cli/index.js +104 -0
  168. package/dist/cli/index.js.map +1 -0
  169. package/dist/cli/progress.d.ts +39 -0
  170. package/dist/cli/progress.js +137 -0
  171. package/dist/cli/progress.js.map +1 -0
  172. package/dist/cli/types.d.ts +40 -0
  173. package/dist/cli/types.js +3 -0
  174. package/dist/cli/types.js.map +1 -0
  175. package/dist/cli.d.ts +11 -4
  176. package/dist/cli.js +9 -1253
  177. package/dist/cli.js.map +1 -1
  178. package/dist/content/doc.d.ts +1 -1
  179. package/dist/content/doc.js +1 -1
  180. package/dist/content/doc.js.map +1 -1
  181. package/dist/content/docx.d.ts +1 -1
  182. package/dist/content/docx.js +1 -1
  183. package/dist/content/docx.js.map +1 -1
  184. package/dist/content/excel.d.ts +1 -1
  185. package/dist/content/excel.js +1 -1
  186. package/dist/content/excel.js.map +1 -1
  187. package/dist/content/pdf.d.ts +1 -1
  188. package/dist/content/pdf.js +1 -1
  189. package/dist/content/pdf.js.map +1 -1
  190. package/dist/content/reader.d.ts +3 -1
  191. package/dist/content/reader.js +42 -10
  192. package/dist/content/reader.js.map +1 -1
  193. package/dist/core/bootstrap.d.ts +18 -0
  194. package/dist/core/bootstrap.js +9 -15
  195. package/dist/core/bootstrap.js.map +1 -1
  196. package/dist/core/config.d.ts +144 -0
  197. package/dist/core/config.js +65 -14
  198. package/dist/core/config.js.map +1 -1
  199. package/dist/core/doc-progress.d.ts +15 -0
  200. package/dist/core/doc-progress.js +61 -0
  201. package/dist/core/doc-progress.js.map +1 -0
  202. package/dist/core/fileLogger.d.ts +7 -0
  203. package/dist/core/fileLogger.js +2 -0
  204. package/dist/core/fileLogger.js.map +1 -1
  205. package/dist/core/interfaces.d.ts +52 -1
  206. package/dist/core/manifest.d.ts +25 -0
  207. package/dist/core/manifest.js +15 -1
  208. package/dist/core/manifest.js.map +1 -1
  209. package/dist/core/provider-defaults.d.ts +8 -0
  210. package/dist/core/provider-defaults.js +3 -0
  211. package/dist/core/provider-defaults.js.map +1 -1
  212. package/dist/core/rag-injection-flag.d.ts +3 -0
  213. package/dist/core/rag-injection-flag.js +2 -0
  214. package/dist/core/rag-injection-flag.js.map +1 -1
  215. package/dist/core/resolve-api-key.d.ts +1 -0
  216. package/dist/core/resolve-api-key.js +1 -0
  217. package/dist/core/resolve-api-key.js.map +1 -1
  218. package/dist/core/runtime-overrides.d.ts +4 -0
  219. package/dist/core/runtime-overrides.js +4 -1
  220. package/dist/core/runtime-overrides.js.map +1 -1
  221. package/dist/describer/anthropic.d.ts +22 -2
  222. package/dist/describer/anthropic.js +42 -110
  223. package/dist/describer/anthropic.js.map +1 -1
  224. package/dist/describer/describer.d.ts +21 -4
  225. package/dist/describer/describer.js +52 -111
  226. package/dist/describer/describer.js.map +1 -1
  227. package/dist/describer/gemini.d.ts +1 -2
  228. package/dist/describer/gemini.js +20 -113
  229. package/dist/describer/gemini.js.map +1 -1
  230. package/dist/describer/shared.d.ts +3 -0
  231. package/dist/describer/shared.js +19 -0
  232. package/dist/describer/shared.js.map +1 -0
  233. package/dist/embedder/factory.d.ts +25 -0
  234. package/dist/embedder/factory.js +25 -0
  235. package/dist/embedder/factory.js.map +1 -1
  236. package/dist/embedder/health.d.ts +10 -0
  237. package/dist/embedder/health.js +26 -14
  238. package/dist/embedder/health.js.map +1 -1
  239. package/dist/embedder/http.d.ts +47 -0
  240. package/dist/embedder/http.js +61 -3
  241. package/dist/embedder/http.js.map +1 -1
  242. package/dist/eval/index.d.ts +6 -0
  243. package/dist/eval/index.js.map +1 -1
  244. package/dist/eval/run-token-test.js +1 -5
  245. package/dist/eval/run-token-test.js.map +1 -1
  246. package/dist/eval/session-logger.d.ts +5 -0
  247. package/dist/eval/session-logger.js +4 -0
  248. package/dist/eval/session-logger.js.map +1 -1
  249. package/dist/eval/storage.d.ts +9 -0
  250. package/dist/eval/storage.js +9 -5
  251. package/dist/eval/storage.js.map +1 -1
  252. package/dist/eval/token-analysis.d.ts +8 -0
  253. package/dist/eval/token-analysis.js +6 -2
  254. package/dist/eval/token-analysis.js.map +1 -1
  255. package/dist/eval/token-counter.d.ts +1 -3
  256. package/dist/eval/token-counter.js +4 -5
  257. package/dist/eval/token-counter.js.map +1 -1
  258. package/dist/eval/types.d.ts +6 -0
  259. package/dist/eval/types.js +2 -0
  260. package/dist/eval/types.js.map +1 -1
  261. package/dist/index.d.ts +11 -0
  262. package/dist/index.js +12 -3
  263. package/dist/index.js.map +1 -1
  264. package/dist/indexer/description-stage.js +11 -2
  265. package/dist/indexer/description-stage.js.map +1 -1
  266. package/dist/indexer/embed-stage.js +0 -8
  267. package/dist/indexer/embed-stage.js.map +1 -1
  268. package/dist/indexer/pipeline.d.ts +27 -3
  269. package/dist/indexer/pipeline.js +314 -143
  270. package/dist/indexer/pipeline.js.map +1 -1
  271. package/dist/indexer/stats.d.ts +35 -0
  272. package/dist/indexer/stats.js +9 -0
  273. package/dist/indexer/stats.js.map +1 -1
  274. package/dist/indexer/watch.d.ts +25 -0
  275. package/dist/indexer/watch.js +21 -0
  276. package/dist/indexer/watch.js.map +1 -1
  277. package/dist/indexer/worker.d.ts +90 -2
  278. package/dist/indexer/worker.js +109 -24
  279. package/dist/indexer/worker.js.map +1 -1
  280. package/dist/indexer.d.ts +11 -1
  281. package/dist/indexer.js +9 -0
  282. package/dist/indexer.js.map +1 -1
  283. package/dist/mcp/cli.d.ts +3 -0
  284. package/dist/mcp/cli.js +1 -0
  285. package/dist/mcp/cli.js.map +1 -1
  286. package/dist/mcp/handlers.d.ts +41 -0
  287. package/dist/mcp/handlers.js +40 -1
  288. package/dist/mcp/handlers.js.map +1 -1
  289. package/dist/mcp/server.d.ts +8 -0
  290. package/dist/mcp/server.js +18 -1
  291. package/dist/mcp/server.js.map +1 -1
  292. package/dist/opencode/create-read-tool.js +1 -0
  293. package/dist/opencode/create-read-tool.js.map +1 -1
  294. package/dist/opencode/tools.d.ts +8 -17
  295. package/dist/opencode/tools.js +74 -109
  296. package/dist/opencode/tools.js.map +1 -1
  297. package/dist/plugin-entry.d.ts +6 -0
  298. package/dist/plugin-entry.js +6 -0
  299. package/dist/plugin-entry.js.map +1 -1
  300. package/dist/plugin.d.ts +37 -0
  301. package/dist/plugin.js +265 -40
  302. package/dist/plugin.js.map +1 -1
  303. package/dist/retriever/keyword-index.js +9 -9
  304. package/dist/retriever/keyword-index.js.map +1 -1
  305. package/dist/retriever/retriever.js +14 -4
  306. package/dist/retriever/retriever.js.map +1 -1
  307. package/dist/tui.d.ts +5 -0
  308. package/dist/tui.js +100 -12
  309. package/dist/tui.js.map +1 -1
  310. package/dist/types/opencode-plugin.d.ts +4 -1
  311. package/dist/updater.d.ts +23 -1
  312. package/dist/updater.js +55 -16
  313. package/dist/updater.js.map +1 -1
  314. package/dist/vectorstore/factory.d.ts +13 -0
  315. package/dist/vectorstore/factory.js +13 -0
  316. package/dist/vectorstore/factory.js.map +1 -1
  317. package/dist/vectorstore/lancedb.d.ts +78 -1
  318. package/dist/vectorstore/lancedb.js +195 -21
  319. package/dist/vectorstore/lancedb.js.map +1 -1
  320. package/dist/vectorstore/memory.d.ts +5 -0
  321. package/dist/vectorstore/memory.js +11 -0
  322. package/dist/vectorstore/memory.js.map +1 -1
  323. package/dist/watcher.d.ts +24 -0
  324. package/dist/watcher.js +17 -35
  325. package/dist/watcher.js.map +1 -1
  326. package/dist/web/api.d.ts +37 -0
  327. package/dist/web/api.js +54 -0
  328. package/dist/web/api.js.map +1 -1
  329. package/dist/web/server.d.ts +15 -0
  330. package/dist/web/server.js +14 -0
  331. package/dist/web/server.js.map +1 -1
  332. package/dist/web/static.d.ts +8 -0
  333. package/dist/web/static.js +8 -0
  334. package/dist/web/static.js.map +1 -1
  335. package/package.json +11 -15
@@ -1,8 +1,26 @@
1
1
  import type { Chunker, Chunk } from "../core/interfaces.js";
2
+ /**
3
+ * Extract the raw text from a Word (.docx) file buffer.
4
+ * Uses the `mammoth` library under the hood.
5
+ * @param buffer - Raw buffer of the .docx file.
6
+ * @returns The extracted raw text as a string.
7
+ */
2
8
  export declare function extractDocxText(buffer: Buffer): Promise<string>;
9
+ /**
10
+ * Chunker for Word (.docx) documents.
11
+ * Splits the extracted plain text by paragraph boundaries, grouping small
12
+ * paragraphs into chunks of up to 4000 characters.
13
+ */
3
14
  export declare class DocxChunker implements Chunker {
4
15
  readonly language = "docx";
5
16
  readonly fileExtensions: string[];
17
+ /**
18
+ * Split the document text into chunks by paragraph grouping.
19
+ * @param filePath - Original file path (for metadata).
20
+ * @param content - Extracted plain-text content of the .docx file.
21
+ * @returns A list of text chunks with file-path and line-range metadata.
22
+ */
6
23
  chunk(filePath: string, content: string): Promise<Chunk[]>;
7
24
  }
25
+ /** Default singleton instance of {@link DocxChunker}. */
8
26
  export declare const docxChunker: DocxChunker;
@@ -2,14 +2,31 @@ import { uuid } from "./uuid.js";
2
2
  const MAX_CHUNK_CHARS = 4000;
3
3
  const MIN_GROUP_CHARS = 300;
4
4
  const PARAGRAPH_SPLIT = /\n\s*\n/;
5
+ /**
6
+ * Extract the raw text from a Word (.docx) file buffer.
7
+ * Uses the `mammoth` library under the hood.
8
+ * @param buffer - Raw buffer of the .docx file.
9
+ * @returns The extracted raw text as a string.
10
+ */
5
11
  export async function extractDocxText(buffer) {
6
12
  const mammoth = await import("mammoth");
7
13
  const result = await mammoth.extractRawText({ buffer });
8
14
  return result.value;
9
15
  }
16
+ /**
17
+ * Chunker for Word (.docx) documents.
18
+ * Splits the extracted plain text by paragraph boundaries, grouping small
19
+ * paragraphs into chunks of up to 4000 characters.
20
+ */
10
21
  export class DocxChunker {
11
22
  language = "docx";
12
23
  fileExtensions = [".docx"];
24
+ /**
25
+ * Split the document text into chunks by paragraph grouping.
26
+ * @param filePath - Original file path (for metadata).
27
+ * @param content - Extracted plain-text content of the .docx file.
28
+ * @returns A list of text chunks with file-path and line-range metadata.
29
+ */
13
30
  async chunk(filePath, content) {
14
31
  if (content.trim().length === 0)
15
32
  return [];
@@ -74,5 +91,6 @@ export class DocxChunker {
74
91
  return chunks;
75
92
  }
76
93
  }
94
+ /** Default singleton instance of {@link DocxChunker}. */
77
95
  export const docxChunker = new DocxChunker();
78
96
  //# sourceMappingURL=docx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docx.js","sourceRoot":"","sources":["../../src/chunker/docx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docx.js","sourceRoot":"","sources":["../../src/chunker/docx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAM,eAAe,GAAG,SAAS,CAAC;AAElC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc;IAClD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACb,QAAQ,GAAG,MAAM,CAAC;IAClB,cAAc,GAAG,CAAC,OAAO,CAAC,CAAC;IAEpC;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,OAAe;QAC3C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE3C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEvC,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,IAAI,YAAY,GAAa,EAAE,CAAC;QAChC,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,SAAS,KAAK;YACZ,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,IAAI,EAAE;gBACV,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE;oBACR,QAAQ;oBACR,SAAS,EAAE,cAAc,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC;oBACnD,OAAO,EAAE,cAAc;oBACvB,QAAQ,EAAE,MAAM;iBACjB;aACF,CAAC,CAAC;YACH,YAAY,GAAG,EAAE,CAAC;YAClB,WAAW,GAAG,CAAC,CAAC;QAClB,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,cAAc,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;YAE5B,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;gBAC9B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,IAAI,EAAE;oBACV,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE;wBACR,QAAQ;wBACR,SAAS,EAAE,cAAc;wBACzB,OAAO,EAAE,cAAc;wBACvB,QAAQ,EAAE,MAAM;qBACjB;iBACF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,GAAG,OAAO,GAAG,eAAe,EAAE,CAAC;gBACvE,KAAK,EAAE,CAAC;YACV,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,WAAW,IAAI,OAAO,CAAC;YAEvB,IAAI,WAAW,IAAI,eAAe,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC/D,MAAM,kBAAkB,GACtB,cAAc,GAAG,UAAU,CAAC,MAAM;oBAClC,UAAU,CAAC,cAAc,CAAE,CAAC,MAAM,GAAG,eAAe,CAAC;gBACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACxB,KAAK,EAAE,CAAC;gBACV,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,EAAE,CAAC;QACV,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
@@ -1,8 +1,27 @@
1
1
  import type { Chunker, Chunk } from "../core/interfaces.js";
2
+ /**
3
+ * Extract text content from an Excel workbook buffer (.xls / .xlsx).
4
+ * Reads all sheets, converting each to CSV, prefixed with a sheet header.
5
+ * Uses the `@e965/xlsx` library under the hood.
6
+ * @param buffer - Raw buffer of the Excel file.
7
+ * @returns A string with each sheet's CSV content separated by blank lines.
8
+ */
2
9
  export declare function extractExcelText(buffer: Buffer): Promise<string>;
10
+ /**
11
+ * Chunker for Excel spreadsheets (.xls, .xlsx).
12
+ * Splits the extracted CSV-per-sheet content into chunks, one per sheet,
13
+ * with large sheets further split into row-based batches of up to 4000 characters.
14
+ */
3
15
  export declare class ExcelChunker implements Chunker {
4
16
  readonly language = "excel";
5
17
  readonly fileExtensions: string[];
18
+ /**
19
+ * Split the spreadsheet text into chunks by sheet, breaking large sheets by row batches.
20
+ * @param filePath - Original file path (for metadata).
21
+ * @param content - Extracted CSV-per-sheet text of the Excel file.
22
+ * @returns A list of text chunks with file-path and line-range metadata.
23
+ */
6
24
  chunk(filePath: string, content: string): Promise<Chunk[]>;
7
25
  }
26
+ /** Default singleton instance of {@link ExcelChunker}. */
8
27
  export declare const excelChunker: ExcelChunker;
@@ -1,5 +1,12 @@
1
1
  import { uuid } from "./uuid.js";
2
2
  const MAX_CHUNK_CHARS = 4000;
3
+ /**
4
+ * Extract text content from an Excel workbook buffer (.xls / .xlsx).
5
+ * Reads all sheets, converting each to CSV, prefixed with a sheet header.
6
+ * Uses the `@e965/xlsx` library under the hood.
7
+ * @param buffer - Raw buffer of the Excel file.
8
+ * @returns A string with each sheet's CSV content separated by blank lines.
9
+ */
3
10
  export async function extractExcelText(buffer) {
4
11
  const XLSX = await import("@e965/xlsx");
5
12
  const workbook = XLSX.read(buffer, { type: "buffer" });
@@ -16,9 +23,20 @@ export async function extractExcelText(buffer) {
16
23
  }
17
24
  return lines.join("\n\n");
18
25
  }
26
+ /**
27
+ * Chunker for Excel spreadsheets (.xls, .xlsx).
28
+ * Splits the extracted CSV-per-sheet content into chunks, one per sheet,
29
+ * with large sheets further split into row-based batches of up to 4000 characters.
30
+ */
19
31
  export class ExcelChunker {
20
32
  language = "excel";
21
33
  fileExtensions = [".xls", ".xlsx"];
34
+ /**
35
+ * Split the spreadsheet text into chunks by sheet, breaking large sheets by row batches.
36
+ * @param filePath - Original file path (for metadata).
37
+ * @param content - Extracted CSV-per-sheet text of the Excel file.
38
+ * @returns A list of text chunks with file-path and line-range metadata.
39
+ */
22
40
  async chunk(filePath, content) {
23
41
  if (content.trim().length === 0)
24
42
  return [];
@@ -74,5 +92,6 @@ export class ExcelChunker {
74
92
  return chunks;
75
93
  }
76
94
  }
95
+ /** Default singleton instance of {@link ExcelChunker}. */
77
96
  export const excelChunker = new ExcelChunker();
78
97
  //# sourceMappingURL=excel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"excel.js","sourceRoot":"","sources":["../../src/chunker/excel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"excel.js","sourceRoot":"","sources":["../../src/chunker/excel.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
1
  import { TreeSitterChunker } from "./base.js";
2
+ /**
3
+ * Chunker for Go source files (.go).
4
+ * Uses tree-sitter to parse and split by function and method declarations.
5
+ */
2
6
  export declare class GoChunker extends TreeSitterChunker {
3
7
  readonly language = "go";
4
8
  readonly fileExtensions: string[];
5
9
  readonly grammarName = "go";
6
10
  readonly nodeTypes: Set<string>;
7
11
  }
12
+ /** Default singleton instance of {@link GoChunker}. */
8
13
  export declare const goChunker: GoChunker;
@@ -1,4 +1,8 @@
1
1
  import { TreeSitterChunker } from "./base.js";
2
+ /**
3
+ * Chunker for Go source files (.go).
4
+ * Uses tree-sitter to parse and split by function and method declarations.
5
+ */
2
6
  export class GoChunker extends TreeSitterChunker {
3
7
  language = "go";
4
8
  fileExtensions = [".go"];
@@ -8,5 +12,6 @@ export class GoChunker extends TreeSitterChunker {
8
12
  "method_declaration",
9
13
  ]);
10
14
  }
15
+ /** Default singleton instance of {@link GoChunker}. */
11
16
  export const goChunker = new GoChunker();
12
17
  //# sourceMappingURL=go.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"go.js","sourceRoot":"","sources":["../../src/chunker/go.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,OAAO,SAAU,SAAQ,iBAAiB;IACrC,QAAQ,GAAG,IAAI,CAAC;IAChB,cAAc,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,WAAW,GAAG,IAAI,CAAC;IACnB,SAAS,GAAG,IAAI,GAAG,CAAC;QAC3B,sBAAsB;QACtB,oBAAoB;KACrB,CAAC,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../src/chunker/go.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;GAGG;AACH,MAAM,OAAO,SAAU,SAAQ,iBAAiB;IACrC,QAAQ,GAAG,IAAI,CAAC;IAChB,cAAc,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,WAAW,GAAG,IAAI,CAAC;IACnB,SAAS,GAAG,IAAI,GAAG,CAAC;QAC3B,sBAAsB;QACtB,oBAAoB;KACrB,CAAC,CAAC;CACJ;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
@@ -1,13 +1,75 @@
1
1
  import { Language, Node } from "web-tree-sitter";
2
+ /**
3
+ * Ensure the tree-sitter WASM runtime is initialised.
4
+ *
5
+ * Safe to call multiple times — the initialisation promise is cached so that
6
+ * concurrent callers share a single init sequence.
7
+ */
2
8
  export declare function initParser(): Promise<void>;
9
+ /**
10
+ * Load a tree-sitter grammar WASM by language name.
11
+ *
12
+ * The grammar is resolved from either the `@vscode/tree-sitter-wasm` package
13
+ * or the project's own `wasm/` directory (see {@link resolveWasmPath}).
14
+ * Results are cached so each grammar is loaded at most once.
15
+ *
16
+ * @param lang - Language identifier (e.g. `"typescript"`, `"python"`).
17
+ * @returns A promise that resolves to the loaded {@link Language}.
18
+ */
3
19
  export declare function loadLanguage(lang: string): Promise<Language>;
20
+ /**
21
+ * Load a tree-sitter grammar WASM from an arbitrary filesystem path.
22
+ *
23
+ * Useful when a custom chunker provides its own grammar file rather than
24
+ * relying on the bundled WASM directory.
25
+ *
26
+ * @param cacheKey - Key under which the loaded grammar is cached (typically
27
+ * the chunker's {@link language} identifier).
28
+ * @param wasmPath - Absolute or relative path to the `.wasm` grammar file.
29
+ * @returns A promise that resolves to the loaded {@link Language}.
30
+ */
4
31
  export declare function loadLanguageFromPath(cacheKey: string, wasmPath: string): Promise<Language>;
32
+ /**
33
+ * Describes a single extracted AST node and its surrounding documentation.
34
+ *
35
+ * Produced by {@link walkTree} and consumed by chunkers to build
36
+ * {@link import("../core/interfaces.js").Chunk | Chunk} objects.
37
+ */
5
38
  export interface AstNode {
39
+ /** Source text spanned by this AST node. */
6
40
  text: string;
41
+ /** 1-based start line in the source file. */
7
42
  startLine: number;
43
+ /** 1-based end line in the source file. */
8
44
  endLine: number;
45
+ /** 0-based start byte offset in the source. */
9
46
  startIndex: number;
47
+ /** 0-based end byte offset (exclusive) in the source. */
10
48
  endIndex: number;
49
+ /** tree-sitter node type (e.g. `"function_definition"`). */
11
50
  type: string;
51
+ /**
52
+ * Doc comment or docstring text extracted from comments immediately
53
+ * preceding the node, if any.
54
+ */
55
+ leadingDoc?: string;
12
56
  }
57
+ /**
58
+ * Recursively walk a tree-sitter AST and collect nodes matching the given
59
+ * type set.
60
+ *
61
+ * For each matching node, leading comments and (for function/class
62
+ * definitions) body docstrings are extracted and joined into a single
63
+ * description.
64
+ *
65
+ * The root node is never returned as a chunk (depth must be > 0) so that
66
+ * the file itself is not treated as one large chunk.
67
+ *
68
+ * @param node - The current tree-sitter AST node.
69
+ * @param nodeTypes - Set of node type names to extract.
70
+ * @param source - Full source text (used to slice node text and comments).
71
+ * @param maxDepth - Maximum recursion depth (default: 10).
72
+ * @param depth - Current recursion depth (internal, start at 0).
73
+ * @returns An array of {@link AstNode} objects for matching declarations.
74
+ */
13
75
  export declare function walkTree(node: Node, nodeTypes: Set<string>, source: string, maxDepth?: number, depth?: number): AstNode[];
@@ -46,6 +46,12 @@ function resolveWasmPath(lang) {
46
46
  }
47
47
  let initialized = false;
48
48
  let initPromise = null;
49
+ /**
50
+ * Ensure the tree-sitter WASM runtime is initialised.
51
+ *
52
+ * Safe to call multiple times — the initialisation promise is cached so that
53
+ * concurrent callers share a single init sequence.
54
+ */
49
55
  export async function initParser() {
50
56
  if (initialized)
51
57
  return;
@@ -58,6 +64,16 @@ export async function initParser() {
58
64
  return initPromise;
59
65
  }
60
66
  const grammarCache = new Map();
67
+ /**
68
+ * Load a tree-sitter grammar WASM by language name.
69
+ *
70
+ * The grammar is resolved from either the `@vscode/tree-sitter-wasm` package
71
+ * or the project's own `wasm/` directory (see {@link resolveWasmPath}).
72
+ * Results are cached so each grammar is loaded at most once.
73
+ *
74
+ * @param lang - Language identifier (e.g. `"typescript"`, `"python"`).
75
+ * @returns A promise that resolves to the loaded {@link Language}.
76
+ */
61
77
  export async function loadLanguage(lang) {
62
78
  const cached = grammarCache.get(lang);
63
79
  if (cached)
@@ -69,6 +85,17 @@ export async function loadLanguage(lang) {
69
85
  grammarCache.set(lang, language);
70
86
  return language;
71
87
  }
88
+ /**
89
+ * Load a tree-sitter grammar WASM from an arbitrary filesystem path.
90
+ *
91
+ * Useful when a custom chunker provides its own grammar file rather than
92
+ * relying on the bundled WASM directory.
93
+ *
94
+ * @param cacheKey - Key under which the loaded grammar is cached (typically
95
+ * the chunker's {@link language} identifier).
96
+ * @param wasmPath - Absolute or relative path to the `.wasm` grammar file.
97
+ * @returns A promise that resolves to the loaded {@link Language}.
98
+ */
72
99
  export async function loadLanguageFromPath(cacheKey, wasmPath) {
73
100
  const cached = grammarCache.get(cacheKey);
74
101
  if (cached)
@@ -80,9 +107,114 @@ export async function loadLanguageFromPath(cacheKey, wasmPath) {
80
107
  grammarCache.set(cacheKey, language);
81
108
  return language;
82
109
  }
110
+ const COMMENT_NODE_TYPES = new Set([
111
+ "comment",
112
+ "line_comment",
113
+ "multiline_comment",
114
+ "marginalia",
115
+ "Comment",
116
+ ]);
117
+ function cleanCommentText(text) {
118
+ const lines = text.split("\n");
119
+ if (text.startsWith("/*")) {
120
+ let cleaned = lines.map((line) => {
121
+ let l = line;
122
+ l = l.replace(/^\/\*+\s?/, "");
123
+ l = l.replace(/\s?\*+\/$/, "");
124
+ l = l.replace(/^\s*\*\s?/, "");
125
+ return l;
126
+ });
127
+ return cleaned.filter((l) => l.trim().length > 0).join("\n");
128
+ }
129
+ if (text.startsWith("<!--")) {
130
+ let cleaned = lines.map((line) => line.replace(/^<!--\s?/, "").replace(/\s?-->$/, ""));
131
+ return cleaned.filter((l) => l.trim().length > 0).join("\n");
132
+ }
133
+ if (text.startsWith('"""') || text.startsWith("'''")) {
134
+ const quote = text.startsWith('"""') ? '"""' : "'''";
135
+ let cleaned = lines.map((line) => {
136
+ let l = line.trim();
137
+ if (l.startsWith(quote))
138
+ l = l.slice(quote.length);
139
+ if (l.endsWith(quote))
140
+ l = l.slice(0, -quote.length);
141
+ return l;
142
+ });
143
+ return cleaned.filter((l) => l.trim().length > 0).join("\n");
144
+ }
145
+ const prefix = /^(?:\/\/\/?|#|--|;|%)\s?/;
146
+ let cleaned = lines.map((line) => line.replace(prefix, ""));
147
+ return cleaned.filter((l) => l.trim().length > 0).join("\n");
148
+ }
149
+ function extractLeadingComments(node, source) {
150
+ const comments = [];
151
+ let sibling = node.previousSibling;
152
+ while (sibling) {
153
+ if (COMMENT_NODE_TYPES.has(sibling.type)) {
154
+ const raw = source.slice(sibling.startIndex, sibling.endIndex);
155
+ comments.unshift(cleanCommentText(raw));
156
+ sibling = sibling.previousSibling;
157
+ }
158
+ else if (sibling.type === "expression_statement") {
159
+ const firstChild = sibling.namedChildren[0];
160
+ if (firstChild?.type === "string") {
161
+ const raw = source.slice(firstChild.startIndex, firstChild.endIndex);
162
+ comments.unshift(cleanCommentText(raw));
163
+ sibling = sibling.previousSibling;
164
+ }
165
+ else {
166
+ break;
167
+ }
168
+ }
169
+ else {
170
+ break;
171
+ }
172
+ }
173
+ if (comments.length === 0)
174
+ return undefined;
175
+ return comments.join("\n\n");
176
+ }
177
+ function extractDocstringFromBody(node, source) {
178
+ if (node.type !== "function_definition" && node.type !== "class_definition") {
179
+ return undefined;
180
+ }
181
+ const body = node.children.find((c) => c.type === "block");
182
+ if (!body)
183
+ return undefined;
184
+ const firstStmt = body.namedChildren[0];
185
+ if (!firstStmt || firstStmt.type !== "expression_statement")
186
+ return undefined;
187
+ const stringNode = firstStmt.namedChildren[0];
188
+ if (!stringNode || stringNode.type !== "string")
189
+ return undefined;
190
+ return cleanCommentText(source.slice(stringNode.startIndex, stringNode.endIndex));
191
+ }
192
+ /**
193
+ * Recursively walk a tree-sitter AST and collect nodes matching the given
194
+ * type set.
195
+ *
196
+ * For each matching node, leading comments and (for function/class
197
+ * definitions) body docstrings are extracted and joined into a single
198
+ * description.
199
+ *
200
+ * The root node is never returned as a chunk (depth must be > 0) so that
201
+ * the file itself is not treated as one large chunk.
202
+ *
203
+ * @param node - The current tree-sitter AST node.
204
+ * @param nodeTypes - Set of node type names to extract.
205
+ * @param source - Full source text (used to slice node text and comments).
206
+ * @param maxDepth - Maximum recursion depth (default: 10).
207
+ * @param depth - Current recursion depth (internal, start at 0).
208
+ * @returns An array of {@link AstNode} objects for matching declarations.
209
+ */
83
210
  export function walkTree(node, nodeTypes, source, maxDepth = 10, depth = 0) {
84
211
  const results = [];
85
212
  if (nodeTypes.has(node.type) && depth > 0) {
213
+ const leadingComments = extractLeadingComments(node, source);
214
+ const bodyDocstring = extractDocstringFromBody(node, source);
215
+ const leadingDoc = [leadingComments, bodyDocstring]
216
+ .filter((d) => d !== undefined && d.length > 0)
217
+ .join("\n\n");
86
218
  results.push({
87
219
  text: source.slice(node.startIndex, node.endIndex),
88
220
  startLine: node.startPosition.row + 1,
@@ -90,6 +222,7 @@ export function walkTree(node, nodeTypes, source, maxDepth = 10, depth = 0) {
90
222
  startIndex: node.startIndex,
91
223
  endIndex: node.endIndex,
92
224
  type: node.type,
225
+ leadingDoc: leadingDoc.length > 0 ? leadingDoc : undefined,
93
226
  });
94
227
  return results;
95
228
  }
@@ -1 +1 @@
1
- {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../src/chunker/grammar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAQ,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAiB,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAElF,SAAS,gBAAgB;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAC9F,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QACzE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,gBAAgB,EAAE,CAAC;AAEvC,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAEpD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,MAAM;IACN,SAAS;IACT,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,YAAY;IACZ,KAAK;IACL,YAAY;IACZ,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,YAAY;CACb,CAAC,CAAC;AAEH,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,WAAW,EAAE,eAAe,MAAM,OAAO,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,OAAO,CAAC,aAAa,EAAE,eAAe,IAAI,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,WAAW,GAAyB,IAAI,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,WAAW;QAAE,OAAO;IACxB,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACpC,WAAW,GAAG,IAAI,CAAC;QACnB,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,UAAU,EAAE,CAAC;IACnB,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,QAAgB;IAEhB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,UAAU,EAAE,CAAC;IACnB,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAWD,MAAM,UAAU,QAAQ,CACtB,IAAU,EACV,SAAsB,EACtB,MAAc,EACd,WAAmB,EAAE,EACrB,QAAgB,CAAC;IAEjB,MAAM,OAAO,GAAc,EAAE,CAAC;IAE9B,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;YAClD,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;YACjC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CACV,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../src/chunker/grammar.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
1
  import { TreeSitterChunker } from "./base.js";
2
+ /**
3
+ * Chunker for HTML files (.html, .htm).
4
+ * Uses tree-sitter to parse and split by `<script>` and `<style>` element boundaries.
5
+ */
2
6
  export declare class HtmlChunker extends TreeSitterChunker {
3
7
  readonly language = "html";
4
8
  readonly fileExtensions: string[];
5
9
  readonly grammarName = "html";
6
10
  readonly nodeTypes: Set<string>;
7
11
  }
12
+ /** Default singleton instance of {@link HtmlChunker}. */
8
13
  export declare const htmlChunker: HtmlChunker;
@@ -1,4 +1,8 @@
1
1
  import { TreeSitterChunker } from "./base.js";
2
+ /**
3
+ * Chunker for HTML files (.html, .htm).
4
+ * Uses tree-sitter to parse and split by `<script>` and `<style>` element boundaries.
5
+ */
2
6
  export class HtmlChunker extends TreeSitterChunker {
3
7
  language = "html";
4
8
  fileExtensions = [".html", ".htm"];
@@ -8,5 +12,6 @@ export class HtmlChunker extends TreeSitterChunker {
8
12
  "style_element",
9
13
  ]);
10
14
  }
15
+ /** Default singleton instance of {@link HtmlChunker}. */
11
16
  export const htmlChunker = new HtmlChunker();
12
17
  //# sourceMappingURL=html.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/chunker/html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,OAAO,WAAY,SAAQ,iBAAiB;IACvC,QAAQ,GAAG,MAAM,CAAC;IAClB,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,GAAG,MAAM,CAAC;IACrB,SAAS,GAAG,IAAI,GAAG,CAAC;QAC3B,gBAAgB;QAChB,eAAe;KAChB,CAAC,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/chunker/html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAAiB;IACvC,QAAQ,GAAG,MAAM,CAAC;IAClB,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,GAAG,MAAM,CAAC;IACrB,SAAS,GAAG,IAAI,GAAG,CAAC;QAC3B,gBAAgB;QAChB,eAAe;KAChB,CAAC,CAAC;CACJ;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
@@ -1,14 +1,45 @@
1
1
  import type { Chunker, Chunk } from "../core/interfaces.js";
2
2
  import type { ImageDescriptionConfig } from "../core/config.js";
3
+ /** Set of image file extensions that can be processed by the vision providers. */
3
4
  export declare const SUPPORTED_IMAGE_EXTENSIONS: Set<string>;
5
+ /**
6
+ * Map a file extension to its corresponding MIME type string.
7
+ * Defaults to `image/png` for unknown extensions.
8
+ * @param ext - The file extension (with or without leading dot).
9
+ * @returns The MIME type string.
10
+ */
4
11
  export declare function getMimeType(ext: string): string;
12
+ /**
13
+ * Provider interface for describing images using a vision-language model.
14
+ * Each implementation communicates with a specific provider's API (Ollama,
15
+ * OpenAI, Anthropic, or Google Gemini).
16
+ */
5
17
  export interface ImageVisionProvider {
6
18
  describeImage(imageBase64: string, mimeType: string, prompt: string, abort?: AbortSignal): Promise<string>;
7
19
  }
20
+ /**
21
+ * Factory function that creates the appropriate {@link ImageVisionProvider}
22
+ * implementation based on the `provider` field in the config.
23
+ * @param config - The image description configuration.
24
+ * @returns A provider instance for the configured vision backend.
25
+ * @throws If `provider` is `"openai"` or `"anthropic"` but no `apiKey` is provided.
26
+ */
8
27
  export declare function createImageVisionProvider(config: ImageDescriptionConfig): ImageVisionProvider;
28
+ /**
29
+ * Chunker for image description text.
30
+ * This chunker is used after an image has been processed by a vision provider;
31
+ * it splits the resulting description text by paragraph boundaries, grouping
32
+ * small paragraphs into chunks of up to 4000 characters.
33
+ */
9
34
  export declare class ImageChunker implements Chunker {
10
35
  readonly language = "image";
11
36
  readonly fileExtensions: string[];
12
37
  constructor(extensions: string[]);
38
+ /**
39
+ * Split the image description text into chunks by paragraph grouping.
40
+ * @param filePath - Original file path (for metadata).
41
+ * @param content - The description text produced by a vision provider.
42
+ * @returns A list of text chunks with file-path and line-range metadata.
43
+ */
13
44
  chunk(filePath: string, content: string): Promise<Chunk[]>;
14
45
  }