@cdoing/core 0.1.0

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 (378) hide show
  1. package/dist/agents/coordinator.d.ts +114 -0
  2. package/dist/agents/coordinator.d.ts.map +1 -0
  3. package/dist/agents/coordinator.js +158 -0
  4. package/dist/agents/coordinator.js.map +1 -0
  5. package/dist/context-providers/clipboard.d.ts +13 -0
  6. package/dist/context-providers/clipboard.d.ts.map +1 -0
  7. package/dist/context-providers/clipboard.js +53 -0
  8. package/dist/context-providers/clipboard.js.map +1 -0
  9. package/dist/context-providers/codebase.d.ts +46 -0
  10. package/dist/context-providers/codebase.d.ts.map +1 -0
  11. package/dist/context-providers/codebase.js +273 -0
  12. package/dist/context-providers/codebase.js.map +1 -0
  13. package/dist/context-providers/diff.d.ts +18 -0
  14. package/dist/context-providers/diff.d.ts.map +1 -0
  15. package/dist/context-providers/diff.js +63 -0
  16. package/dist/context-providers/diff.js.map +1 -0
  17. package/dist/context-providers/docs.d.ts +21 -0
  18. package/dist/context-providers/docs.d.ts.map +1 -0
  19. package/dist/context-providers/docs.js +180 -0
  20. package/dist/context-providers/docs.js.map +1 -0
  21. package/dist/context-providers/file-include.d.ts +13 -0
  22. package/dist/context-providers/file-include.d.ts.map +1 -0
  23. package/dist/context-providers/file-include.js +82 -0
  24. package/dist/context-providers/file-include.js.map +1 -0
  25. package/dist/context-providers/folder.d.ts +19 -0
  26. package/dist/context-providers/folder.d.ts.map +1 -0
  27. package/dist/context-providers/folder.js +130 -0
  28. package/dist/context-providers/folder.js.map +1 -0
  29. package/dist/context-providers/git.d.ts +19 -0
  30. package/dist/context-providers/git.d.ts.map +1 -0
  31. package/dist/context-providers/git.js +74 -0
  32. package/dist/context-providers/git.js.map +1 -0
  33. package/dist/context-providers/index.d.ts +26 -0
  34. package/dist/context-providers/index.d.ts.map +1 -0
  35. package/dist/context-providers/index.js +37 -0
  36. package/dist/context-providers/index.js.map +1 -0
  37. package/dist/context-providers/open-files.d.ts +25 -0
  38. package/dist/context-providers/open-files.d.ts.map +1 -0
  39. package/dist/context-providers/open-files.js +134 -0
  40. package/dist/context-providers/open-files.js.map +1 -0
  41. package/dist/context-providers/problems.d.ts +24 -0
  42. package/dist/context-providers/problems.d.ts.map +1 -0
  43. package/dist/context-providers/problems.js +97 -0
  44. package/dist/context-providers/problems.js.map +1 -0
  45. package/dist/context-providers/registry.d.ts +61 -0
  46. package/dist/context-providers/registry.d.ts.map +1 -0
  47. package/dist/context-providers/registry.js +92 -0
  48. package/dist/context-providers/registry.js.map +1 -0
  49. package/dist/context-providers/terminal.d.ts +25 -0
  50. package/dist/context-providers/terminal.d.ts.map +1 -0
  51. package/dist/context-providers/terminal.js +55 -0
  52. package/dist/context-providers/terminal.js.map +1 -0
  53. package/dist/context-providers/tree.d.ts +29 -0
  54. package/dist/context-providers/tree.d.ts.map +1 -0
  55. package/dist/context-providers/tree.js +172 -0
  56. package/dist/context-providers/tree.js.map +1 -0
  57. package/dist/context-providers/types.d.ts +72 -0
  58. package/dist/context-providers/types.d.ts.map +1 -0
  59. package/dist/context-providers/types.js +10 -0
  60. package/dist/context-providers/types.js.map +1 -0
  61. package/dist/context-providers/url.d.ts +27 -0
  62. package/dist/context-providers/url.d.ts.map +1 -0
  63. package/dist/context-providers/url.js +131 -0
  64. package/dist/context-providers/url.js.map +1 -0
  65. package/dist/effort/index.d.ts +78 -0
  66. package/dist/effort/index.d.ts.map +1 -0
  67. package/dist/effort/index.js +146 -0
  68. package/dist/effort/index.js.map +1 -0
  69. package/dist/hooks/index.d.ts +47 -0
  70. package/dist/hooks/index.d.ts.map +1 -0
  71. package/dist/hooks/index.js +151 -0
  72. package/dist/hooks/index.js.map +1 -0
  73. package/dist/index.d.ts +75 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +152 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/indexing/chunker.d.ts +25 -0
  78. package/dist/indexing/chunker.d.ts.map +1 -0
  79. package/dist/indexing/chunker.js +217 -0
  80. package/dist/indexing/chunker.js.map +1 -0
  81. package/dist/indexing/database.d.ts +49 -0
  82. package/dist/indexing/database.d.ts.map +1 -0
  83. package/dist/indexing/database.js +287 -0
  84. package/dist/indexing/database.js.map +1 -0
  85. package/dist/indexing/index.d.ts +9 -0
  86. package/dist/indexing/index.d.ts.map +1 -0
  87. package/dist/indexing/index.js +13 -0
  88. package/dist/indexing/index.js.map +1 -0
  89. package/dist/indexing/indexer.d.ts +63 -0
  90. package/dist/indexing/indexer.d.ts.map +1 -0
  91. package/dist/indexing/indexer.js +352 -0
  92. package/dist/indexing/indexer.js.map +1 -0
  93. package/dist/indexing/recent-edits-cache.d.ts +77 -0
  94. package/dist/indexing/recent-edits-cache.d.ts.map +1 -0
  95. package/dist/indexing/recent-edits-cache.js +123 -0
  96. package/dist/indexing/recent-edits-cache.js.map +1 -0
  97. package/dist/indexing/types.d.ts +39 -0
  98. package/dist/indexing/types.d.ts.map +1 -0
  99. package/dist/indexing/types.js +6 -0
  100. package/dist/indexing/types.js.map +1 -0
  101. package/dist/mcp/index.d.ts +33 -0
  102. package/dist/mcp/index.d.ts.map +1 -0
  103. package/dist/mcp/index.js +37 -0
  104. package/dist/mcp/index.js.map +1 -0
  105. package/dist/mcp/manager.d.ts +123 -0
  106. package/dist/mcp/manager.d.ts.map +1 -0
  107. package/dist/mcp/manager.js +331 -0
  108. package/dist/mcp/manager.js.map +1 -0
  109. package/dist/oauth.d.ts +33 -0
  110. package/dist/oauth.d.ts.map +1 -0
  111. package/dist/oauth.js +312 -0
  112. package/dist/oauth.js.map +1 -0
  113. package/dist/permissions/index.d.ts +216 -0
  114. package/dist/permissions/index.d.ts.map +1 -0
  115. package/dist/permissions/index.js +938 -0
  116. package/dist/permissions/index.js.map +1 -0
  117. package/dist/plan/index.d.ts +20 -0
  118. package/dist/plan/index.d.ts.map +1 -0
  119. package/dist/plan/index.js +24 -0
  120. package/dist/plan/index.js.map +1 -0
  121. package/dist/plan/manager.d.ts +101 -0
  122. package/dist/plan/manager.d.ts.map +1 -0
  123. package/dist/plan/manager.js +170 -0
  124. package/dist/plan/manager.js.map +1 -0
  125. package/dist/rules/index.d.ts +28 -0
  126. package/dist/rules/index.d.ts.map +1 -0
  127. package/dist/rules/index.js +31 -0
  128. package/dist/rules/index.js.map +1 -0
  129. package/dist/rules/manager.d.ts +77 -0
  130. package/dist/rules/manager.d.ts.map +1 -0
  131. package/dist/rules/manager.js +279 -0
  132. package/dist/rules/manager.js.map +1 -0
  133. package/dist/rules/types.d.ts +34 -0
  134. package/dist/rules/types.d.ts.map +1 -0
  135. package/dist/rules/types.js +9 -0
  136. package/dist/rules/types.js.map +1 -0
  137. package/dist/sandbox/filesystem.d.ts +20 -0
  138. package/dist/sandbox/filesystem.d.ts.map +1 -0
  139. package/dist/sandbox/filesystem.js +141 -0
  140. package/dist/sandbox/filesystem.js.map +1 -0
  141. package/dist/sandbox/index.d.ts +4 -0
  142. package/dist/sandbox/index.d.ts.map +1 -0
  143. package/dist/sandbox/index.js +8 -0
  144. package/dist/sandbox/index.js.map +1 -0
  145. package/dist/sandbox/manager.d.ts +47 -0
  146. package/dist/sandbox/manager.d.ts.map +1 -0
  147. package/dist/sandbox/manager.js +220 -0
  148. package/dist/sandbox/manager.js.map +1 -0
  149. package/dist/sandbox/network.d.ts +14 -0
  150. package/dist/sandbox/network.d.ts.map +1 -0
  151. package/dist/sandbox/network.js +87 -0
  152. package/dist/sandbox/network.js.map +1 -0
  153. package/dist/sandbox/types.d.ts +42 -0
  154. package/dist/sandbox/types.d.ts.map +1 -0
  155. package/dist/sandbox/types.js +25 -0
  156. package/dist/sandbox/types.js.map +1 -0
  157. package/dist/tools/ast-edit.d.ts +57 -0
  158. package/dist/tools/ast-edit.d.ts.map +1 -0
  159. package/dist/tools/ast-edit.js +443 -0
  160. package/dist/tools/ast-edit.js.map +1 -0
  161. package/dist/tools/code-verify.d.ts +8 -0
  162. package/dist/tools/code-verify.d.ts.map +1 -0
  163. package/dist/tools/code-verify.js +159 -0
  164. package/dist/tools/code-verify.js.map +1 -0
  165. package/dist/tools/codebase-search.d.ts +17 -0
  166. package/dist/tools/codebase-search.d.ts.map +1 -0
  167. package/dist/tools/codebase-search.js +104 -0
  168. package/dist/tools/codebase-search.js.map +1 -0
  169. package/dist/tools/file-delete.d.ts +26 -0
  170. package/dist/tools/file-delete.d.ts.map +1 -0
  171. package/dist/tools/file-delete.js +179 -0
  172. package/dist/tools/file-delete.js.map +1 -0
  173. package/dist/tools/file-edit.d.ts +10 -0
  174. package/dist/tools/file-edit.d.ts.map +1 -0
  175. package/dist/tools/file-edit.js +138 -0
  176. package/dist/tools/file-edit.js.map +1 -0
  177. package/dist/tools/file-read.d.ts +12 -0
  178. package/dist/tools/file-read.d.ts.map +1 -0
  179. package/dist/tools/file-read.js +211 -0
  180. package/dist/tools/file-read.js.map +1 -0
  181. package/dist/tools/file-run.d.ts +10 -0
  182. package/dist/tools/file-run.d.ts.map +1 -0
  183. package/dist/tools/file-run.js +179 -0
  184. package/dist/tools/file-run.js.map +1 -0
  185. package/dist/tools/file-write.d.ts +10 -0
  186. package/dist/tools/file-write.d.ts.map +1 -0
  187. package/dist/tools/file-write.js +134 -0
  188. package/dist/tools/file-write.js.map +1 -0
  189. package/dist/tools/glob-search.d.ts +8 -0
  190. package/dist/tools/glob-search.d.ts.map +1 -0
  191. package/dist/tools/glob-search.js +108 -0
  192. package/dist/tools/glob-search.js.map +1 -0
  193. package/dist/tools/grep-search.d.ts +8 -0
  194. package/dist/tools/grep-search.d.ts.map +1 -0
  195. package/dist/tools/grep-search.js +139 -0
  196. package/dist/tools/grep-search.js.map +1 -0
  197. package/dist/tools/list-dir.d.ts +16 -0
  198. package/dist/tools/list-dir.d.ts.map +1 -0
  199. package/dist/tools/list-dir.js +183 -0
  200. package/dist/tools/list-dir.js.map +1 -0
  201. package/dist/tools/multi-edit.d.ts +16 -0
  202. package/dist/tools/multi-edit.d.ts.map +1 -0
  203. package/dist/tools/multi-edit.js +163 -0
  204. package/dist/tools/multi-edit.js.map +1 -0
  205. package/dist/tools/notebook-edit.d.ts +31 -0
  206. package/dist/tools/notebook-edit.d.ts.map +1 -0
  207. package/dist/tools/notebook-edit.js +321 -0
  208. package/dist/tools/notebook-edit.js.map +1 -0
  209. package/dist/tools/registry.d.ts +16 -0
  210. package/dist/tools/registry.d.ts.map +1 -0
  211. package/dist/tools/registry.js +41 -0
  212. package/dist/tools/registry.js.map +1 -0
  213. package/dist/tools/shell-exec.d.ts +12 -0
  214. package/dist/tools/shell-exec.d.ts.map +1 -0
  215. package/dist/tools/shell-exec.js +261 -0
  216. package/dist/tools/shell-exec.js.map +1 -0
  217. package/dist/tools/sub-agent-manager.d.ts +57 -0
  218. package/dist/tools/sub-agent-manager.d.ts.map +1 -0
  219. package/dist/tools/sub-agent-manager.js +153 -0
  220. package/dist/tools/sub-agent-manager.js.map +1 -0
  221. package/dist/tools/sub-agent-status.d.ts +12 -0
  222. package/dist/tools/sub-agent-status.d.ts.map +1 -0
  223. package/dist/tools/sub-agent-status.js +59 -0
  224. package/dist/tools/sub-agent-status.js.map +1 -0
  225. package/dist/tools/sub-agent-terminate.d.ts +12 -0
  226. package/dist/tools/sub-agent-terminate.d.ts.map +1 -0
  227. package/dist/tools/sub-agent-terminate.js +55 -0
  228. package/dist/tools/sub-agent-terminate.js.map +1 -0
  229. package/dist/tools/sub-agent.d.ts +34 -0
  230. package/dist/tools/sub-agent.d.ts.map +1 -0
  231. package/dist/tools/sub-agent.js +140 -0
  232. package/dist/tools/sub-agent.js.map +1 -0
  233. package/dist/tools/system-info.d.ts +24 -0
  234. package/dist/tools/system-info.d.ts.map +1 -0
  235. package/dist/tools/system-info.js +220 -0
  236. package/dist/tools/system-info.js.map +1 -0
  237. package/dist/tools/todo.d.ts +16 -0
  238. package/dist/tools/todo.d.ts.map +1 -0
  239. package/dist/tools/todo.js +144 -0
  240. package/dist/tools/todo.js.map +1 -0
  241. package/dist/tools/types.d.ts +20 -0
  242. package/dist/tools/types.d.ts.map +1 -0
  243. package/dist/tools/types.js +3 -0
  244. package/dist/tools/types.js.map +1 -0
  245. package/dist/tools/view-diff.d.ts +11 -0
  246. package/dist/tools/view-diff.d.ts.map +1 -0
  247. package/dist/tools/view-diff.js +88 -0
  248. package/dist/tools/view-diff.js.map +1 -0
  249. package/dist/tools/view-repo-map.d.ts +18 -0
  250. package/dist/tools/view-repo-map.d.ts.map +1 -0
  251. package/dist/tools/view-repo-map.js +245 -0
  252. package/dist/tools/view-repo-map.js.map +1 -0
  253. package/dist/tools/web-fetch.d.ts +13 -0
  254. package/dist/tools/web-fetch.d.ts.map +1 -0
  255. package/dist/tools/web-fetch.js +106 -0
  256. package/dist/tools/web-fetch.js.map +1 -0
  257. package/dist/tools/web-search.d.ts +10 -0
  258. package/dist/tools/web-search.d.ts.map +1 -0
  259. package/dist/tools/web-search.js +106 -0
  260. package/dist/tools/web-search.js.map +1 -0
  261. package/dist/utils/gitignore.d.ts +10 -0
  262. package/dist/utils/gitignore.d.ts.map +1 -0
  263. package/dist/utils/gitignore.js +104 -0
  264. package/dist/utils/gitignore.js.map +1 -0
  265. package/dist/utils/lazy-apply.d.ts +45 -0
  266. package/dist/utils/lazy-apply.d.ts.map +1 -0
  267. package/dist/utils/lazy-apply.js +164 -0
  268. package/dist/utils/lazy-apply.js.map +1 -0
  269. package/dist/utils/memory.d.ts +36 -0
  270. package/dist/utils/memory.d.ts.map +1 -0
  271. package/dist/utils/memory.js +136 -0
  272. package/dist/utils/memory.js.map +1 -0
  273. package/dist/utils/path-matching.d.ts +24 -0
  274. package/dist/utils/path-matching.d.ts.map +1 -0
  275. package/dist/utils/path-matching.js +116 -0
  276. package/dist/utils/path-matching.js.map +1 -0
  277. package/dist/utils/path-safety.d.ts +13 -0
  278. package/dist/utils/path-safety.d.ts.map +1 -0
  279. package/dist/utils/path-safety.js +54 -0
  280. package/dist/utils/path-safety.js.map +1 -0
  281. package/dist/utils/project-config.d.ts +18 -0
  282. package/dist/utils/project-config.d.ts.map +1 -0
  283. package/dist/utils/project-config.js +76 -0
  284. package/dist/utils/project-config.js.map +1 -0
  285. package/dist/utils/search-match.d.ts +63 -0
  286. package/dist/utils/search-match.d.ts.map +1 -0
  287. package/dist/utils/search-match.js +426 -0
  288. package/dist/utils/search-match.js.map +1 -0
  289. package/dist/utils/shell-paths.d.ts +17 -0
  290. package/dist/utils/shell-paths.d.ts.map +1 -0
  291. package/dist/utils/shell-paths.js +107 -0
  292. package/dist/utils/shell-paths.js.map +1 -0
  293. package/dist/utils/streaming-diff.d.ts +45 -0
  294. package/dist/utils/streaming-diff.d.ts.map +1 -0
  295. package/dist/utils/streaming-diff.js +230 -0
  296. package/dist/utils/streaming-diff.js.map +1 -0
  297. package/dist/utils/todo.d.ts +47 -0
  298. package/dist/utils/todo.d.ts.map +1 -0
  299. package/dist/utils/todo.js +102 -0
  300. package/dist/utils/todo.js.map +1 -0
  301. package/package.json +23 -0
  302. package/src/agents/coordinator.ts +240 -0
  303. package/src/context-providers/clipboard.ts +48 -0
  304. package/src/context-providers/codebase.ts +274 -0
  305. package/src/context-providers/diff.ts +66 -0
  306. package/src/context-providers/docs.ts +160 -0
  307. package/src/context-providers/file-include.ts +54 -0
  308. package/src/context-providers/folder.ts +106 -0
  309. package/src/context-providers/git.ts +72 -0
  310. package/src/context-providers/index.ts +26 -0
  311. package/src/context-providers/open-files.ts +113 -0
  312. package/src/context-providers/problems.ts +100 -0
  313. package/src/context-providers/registry.ts +99 -0
  314. package/src/context-providers/terminal.ts +58 -0
  315. package/src/context-providers/tree.ts +161 -0
  316. package/src/context-providers/types.ts +84 -0
  317. package/src/context-providers/url.ts +138 -0
  318. package/src/effort/index.ts +177 -0
  319. package/src/hooks/index.ts +148 -0
  320. package/src/index.ts +114 -0
  321. package/src/indexing/README.md +267 -0
  322. package/src/indexing/chunker.ts +206 -0
  323. package/src/indexing/database.ts +299 -0
  324. package/src/indexing/index.ts +15 -0
  325. package/src/indexing/indexer.ts +383 -0
  326. package/src/indexing/recent-edits-cache.ts +150 -0
  327. package/src/indexing/types.ts +44 -0
  328. package/src/mcp/index.ts +33 -0
  329. package/src/mcp/manager.ts +385 -0
  330. package/src/oauth.ts +330 -0
  331. package/src/permissions/index.ts +1011 -0
  332. package/src/plan/index.ts +20 -0
  333. package/src/plan/manager.ts +233 -0
  334. package/src/rules/index.ts +28 -0
  335. package/src/rules/manager.ts +276 -0
  336. package/src/rules/types.ts +40 -0
  337. package/src/sandbox/filesystem.ts +135 -0
  338. package/src/sandbox/index.ts +9 -0
  339. package/src/sandbox/manager.ts +213 -0
  340. package/src/sandbox/network.ts +101 -0
  341. package/src/sandbox/types.ts +63 -0
  342. package/src/tools/ast-edit.ts +493 -0
  343. package/src/tools/code-verify.ts +143 -0
  344. package/src/tools/codebase-search.ts +117 -0
  345. package/src/tools/file-delete.ts +155 -0
  346. package/src/tools/file-edit.ts +115 -0
  347. package/src/tools/file-read.ts +195 -0
  348. package/src/tools/file-run.ts +158 -0
  349. package/src/tools/file-write.ts +104 -0
  350. package/src/tools/glob-search.ts +80 -0
  351. package/src/tools/grep-search.ts +120 -0
  352. package/src/tools/list-dir.ts +172 -0
  353. package/src/tools/multi-edit.ts +138 -0
  354. package/src/tools/notebook-edit.ts +342 -0
  355. package/src/tools/registry.ts +43 -0
  356. package/src/tools/shell-exec.ts +251 -0
  357. package/src/tools/sub-agent-manager.ts +183 -0
  358. package/src/tools/sub-agent-status.ts +67 -0
  359. package/src/tools/sub-agent-terminate.ts +62 -0
  360. package/src/tools/sub-agent.ts +162 -0
  361. package/src/tools/system-info.ts +248 -0
  362. package/src/tools/todo.ts +149 -0
  363. package/src/tools/types.ts +21 -0
  364. package/src/tools/view-diff.ts +99 -0
  365. package/src/tools/view-repo-map.ts +249 -0
  366. package/src/tools/web-fetch.ts +118 -0
  367. package/src/tools/web-search.ts +129 -0
  368. package/src/utils/gitignore.ts +73 -0
  369. package/src/utils/lazy-apply.ts +189 -0
  370. package/src/utils/memory.ts +124 -0
  371. package/src/utils/path-matching.ts +84 -0
  372. package/src/utils/path-safety.ts +19 -0
  373. package/src/utils/project-config.ts +41 -0
  374. package/src/utils/search-match.ts +495 -0
  375. package/src/utils/shell-paths.ts +79 -0
  376. package/src/utils/streaming-diff.ts +260 -0
  377. package/src/utils/todo.ts +115 -0
  378. package/tsconfig.json +18 -0
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ /**
3
+ * Index Database — SQLite storage for codebase index.
4
+ *
5
+ * Tables:
6
+ * - chunks: file chunks with content and line ranges
7
+ * - fts: FTS5 virtual table for full-text search (trigram tokenizer)
8
+ * - fts_metadata: links FTS entries to chunks
9
+ * - embeddings: vector embeddings stored as JSON arrays
10
+ * - index_catalog: tracks which files have been indexed (for incremental updates)
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.IndexDatabase = void 0;
50
+ const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
51
+ const path = __importStar(require("path"));
52
+ const os = __importStar(require("os"));
53
+ const fs = __importStar(require("fs"));
54
+ const crypto = __importStar(require("crypto"));
55
+ const INDEX_DIR = path.join(os.homedir(), ".cdoing");
56
+ const INDEX_FILE = path.join(INDEX_DIR, "index.sqlite");
57
+ class IndexDatabase {
58
+ db;
59
+ constructor(dbPath) {
60
+ const filePath = dbPath || INDEX_FILE;
61
+ const dir = path.dirname(filePath);
62
+ if (!fs.existsSync(dir))
63
+ fs.mkdirSync(dir, { recursive: true });
64
+ this.db = new better_sqlite3_1.default(filePath);
65
+ this.db.pragma("journal_mode = WAL");
66
+ this.db.pragma("synchronous = NORMAL");
67
+ this.initTables();
68
+ }
69
+ initTables() {
70
+ this.db.exec(`
71
+ CREATE TABLE IF NOT EXISTS chunks (
72
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
73
+ path TEXT NOT NULL,
74
+ cacheKey TEXT NOT NULL,
75
+ content TEXT NOT NULL,
76
+ startLine INTEGER NOT NULL,
77
+ endLine INTEGER NOT NULL,
78
+ idx INTEGER NOT NULL DEFAULT 0,
79
+ UNIQUE(path, cacheKey, startLine, endLine)
80
+ );
81
+
82
+ CREATE INDEX IF NOT EXISTS idx_chunks_path ON chunks(path);
83
+ CREATE INDEX IF NOT EXISTS idx_chunks_cacheKey ON chunks(cacheKey);
84
+
85
+ CREATE VIRTUAL TABLE IF NOT EXISTS fts USING fts5(
86
+ path,
87
+ content,
88
+ tokenize = 'trigram'
89
+ );
90
+
91
+ CREATE TABLE IF NOT EXISTS fts_metadata (
92
+ id INTEGER PRIMARY KEY,
93
+ path TEXT NOT NULL,
94
+ cacheKey TEXT NOT NULL,
95
+ chunkId INTEGER NOT NULL,
96
+ FOREIGN KEY (chunkId) REFERENCES chunks(id) ON DELETE CASCADE
97
+ );
98
+
99
+ CREATE TABLE IF NOT EXISTS embeddings (
100
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
101
+ chunkId INTEGER NOT NULL,
102
+ path TEXT NOT NULL,
103
+ cacheKey TEXT NOT NULL,
104
+ vector TEXT NOT NULL,
105
+ model TEXT NOT NULL,
106
+ FOREIGN KEY (chunkId) REFERENCES chunks(id) ON DELETE CASCADE,
107
+ UNIQUE(chunkId, model)
108
+ );
109
+
110
+ CREATE TABLE IF NOT EXISTS index_catalog (
111
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
112
+ path TEXT NOT NULL,
113
+ cacheKey TEXT NOT NULL,
114
+ lastUpdated INTEGER NOT NULL,
115
+ directory TEXT NOT NULL,
116
+ UNIQUE(path, directory)
117
+ );
118
+ `);
119
+ }
120
+ // ── Cache key ─────────────────────────────────────────────────────────────
121
+ static cacheKey(content) {
122
+ return crypto.createHash("sha256").update(content).digest("hex").substring(0, 16);
123
+ }
124
+ // ── Chunk operations ──────────────────────────────────────────────────────
125
+ insertChunks(chunks) {
126
+ const insert = this.db.prepare(`INSERT OR IGNORE INTO chunks (path, cacheKey, content, startLine, endLine, idx) VALUES (?, ?, ?, ?, ?, ?)`);
127
+ const ids = [];
128
+ const tx = this.db.transaction(() => {
129
+ for (let i = 0; i < chunks.length; i++) {
130
+ const c = chunks[i];
131
+ const info = insert.run(c.path, c.cacheKey, c.content, c.startLine, c.endLine, i);
132
+ ids.push(Number(info.lastInsertRowid));
133
+ }
134
+ });
135
+ tx();
136
+ return ids;
137
+ }
138
+ deleteChunksByPath(filePath) {
139
+ // Get chunk IDs first for cascading cleanup
140
+ const chunkIds = this.db.prepare("SELECT id FROM chunks WHERE path = ?").all(filePath);
141
+ if (chunkIds.length === 0)
142
+ return;
143
+ const tx = this.db.transaction(() => {
144
+ for (const { id } of chunkIds) {
145
+ this.db.prepare("DELETE FROM fts_metadata WHERE chunkId = ?").run(id);
146
+ this.db.prepare("DELETE FROM embeddings WHERE chunkId = ?").run(id);
147
+ }
148
+ this.db.prepare("DELETE FROM chunks WHERE path = ?").run(filePath);
149
+ // FTS cleanup — delete by path
150
+ this.db.prepare("DELETE FROM fts WHERE path = ?").run(filePath);
151
+ });
152
+ tx();
153
+ }
154
+ // ── FTS operations ────────────────────────────────────────────────────────
155
+ insertFts(chunkId, filePath, content, cacheKey) {
156
+ // Insert into FTS virtual table
157
+ const ftsInsert = this.db.prepare("INSERT INTO fts (rowid, path, content) VALUES (?, ?, ?)");
158
+ const metaInsert = this.db.prepare("INSERT INTO fts_metadata (id, path, cacheKey, chunkId) VALUES (?, ?, ?, ?)");
159
+ // Use chunkId as rowid for direct mapping
160
+ const rowid = chunkId;
161
+ ftsInsert.run(rowid, filePath, content);
162
+ metaInsert.run(rowid, filePath, cacheKey, chunkId);
163
+ }
164
+ /**
165
+ * Full-text search with BM25 ranking.
166
+ * Path matches get a 10x boost.
167
+ */
168
+ searchFts(query, limit = 25, directory) {
169
+ // Escape special FTS5 characters
170
+ const escaped = query.replace(/[?"]/g, "");
171
+ if (!escaped.trim())
172
+ return [];
173
+ let sql = `
174
+ SELECT fts_metadata.chunkId, fts_metadata.path, fts.content,
175
+ rank AS score, chunks.startLine, chunks.endLine
176
+ FROM fts
177
+ JOIN fts_metadata ON fts.rowid = fts_metadata.id
178
+ JOIN chunks ON fts_metadata.chunkId = chunks.id
179
+ WHERE fts MATCH ?
180
+ `;
181
+ const params = [escaped];
182
+ if (directory) {
183
+ sql += " AND fts_metadata.path LIKE ?";
184
+ params.push(directory + "%");
185
+ }
186
+ sql += " ORDER BY bm25(fts, 10.0) LIMIT ?";
187
+ params.push(limit);
188
+ try {
189
+ const rows = this.db.prepare(sql).all(...params);
190
+ return rows.map((r) => ({
191
+ path: r.path,
192
+ content: r.content,
193
+ startLine: r.startLine,
194
+ endLine: r.endLine,
195
+ score: Math.abs(r.score),
196
+ source: "fts",
197
+ }));
198
+ }
199
+ catch {
200
+ // FTS query syntax error — return empty
201
+ return [];
202
+ }
203
+ }
204
+ // ── Embedding operations ──────────────────────────────────────────────────
205
+ insertEmbedding(chunkId, filePath, cacheKey, vector, model) {
206
+ this.db.prepare("INSERT OR REPLACE INTO embeddings (chunkId, path, cacheKey, vector, model) VALUES (?, ?, ?, ?, ?)").run(chunkId, filePath, cacheKey, JSON.stringify(vector), model);
207
+ }
208
+ /**
209
+ * Retrieve all embeddings for similarity search.
210
+ * Returns chunks with their vectors for in-process cosine similarity.
211
+ */
212
+ getEmbeddings(model, directory) {
213
+ let sql = `
214
+ SELECT e.chunkId, e.path, c.content, e.vector, c.startLine, c.endLine
215
+ FROM embeddings e
216
+ JOIN chunks c ON e.chunkId = c.id
217
+ WHERE e.model = ?
218
+ `;
219
+ const params = [model];
220
+ if (directory) {
221
+ sql += " AND e.path LIKE ?";
222
+ params.push(directory + "%");
223
+ }
224
+ const rows = this.db.prepare(sql).all(...params);
225
+ return rows.map((r) => ({
226
+ ...r,
227
+ vector: JSON.parse(r.vector),
228
+ }));
229
+ }
230
+ // ── Catalog operations (incremental updates) ─────────────────────────────
231
+ getCatalogEntry(filePath, directory) {
232
+ const row = this.db.prepare("SELECT cacheKey, lastUpdated FROM index_catalog WHERE path = ? AND directory = ?").get(filePath, directory);
233
+ return row || null;
234
+ }
235
+ updateCatalog(filePath, cacheKey, directory) {
236
+ this.db.prepare(`INSERT OR REPLACE INTO index_catalog (path, cacheKey, lastUpdated, directory)
237
+ VALUES (?, ?, ?, ?)`).run(filePath, cacheKey, Date.now(), directory);
238
+ }
239
+ removeCatalogEntry(filePath, directory) {
240
+ this.db.prepare("DELETE FROM index_catalog WHERE path = ? AND directory = ?").run(filePath, directory);
241
+ }
242
+ getCatalogPaths(directory) {
243
+ const rows = this.db.prepare("SELECT path, cacheKey FROM index_catalog WHERE directory = ?").all(directory);
244
+ const map = new Map();
245
+ for (const row of rows)
246
+ map.set(row.path, row.cacheKey);
247
+ return map;
248
+ }
249
+ // ── Stats ─────────────────────────────────────────────────────────────────
250
+ getStats() {
251
+ const chunks = this.db.prepare("SELECT COUNT(*) as c FROM chunks").get()?.c || 0;
252
+ const fts = this.db.prepare("SELECT COUNT(*) as c FROM fts_metadata").get()?.c || 0;
253
+ const emb = this.db.prepare("SELECT COUNT(*) as c FROM embeddings").get()?.c || 0;
254
+ const files = this.db.prepare("SELECT COUNT(DISTINCT path) as c FROM index_catalog").get()?.c || 0;
255
+ const lastRow = this.db.prepare("SELECT MAX(lastUpdated) as m FROM index_catalog").get();
256
+ let sizeBytes = 0;
257
+ try {
258
+ const dbPath = this.db.name;
259
+ if (fs.existsSync(dbPath))
260
+ sizeBytes = fs.statSync(dbPath).size;
261
+ }
262
+ catch { }
263
+ return {
264
+ totalFiles: files,
265
+ totalChunks: chunks,
266
+ ftsEntries: fts,
267
+ embeddingEntries: emb,
268
+ lastIndexed: lastRow?.m || 0,
269
+ indexSizeBytes: sizeBytes,
270
+ };
271
+ }
272
+ // ── Lifecycle ─────────────────────────────────────────────────────────────
273
+ close() {
274
+ this.db.close();
275
+ }
276
+ clearAll() {
277
+ this.db.exec(`
278
+ DELETE FROM embeddings;
279
+ DELETE FROM fts_metadata;
280
+ DELETE FROM fts;
281
+ DELETE FROM chunks;
282
+ DELETE FROM index_catalog;
283
+ `);
284
+ }
285
+ }
286
+ exports.IndexDatabase = IndexDatabase;
287
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/indexing/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { CodebaseIndexer } from "./indexer";
2
+ export { RecentEditsCache } from "./recent-edits-cache";
3
+ export type { CachedEdit } from "./recent-edits-cache";
4
+ export type { EmbeddingProvider } from "./indexer";
5
+ export { IndexDatabase } from "./database";
6
+ export { chunkDocument, shouldChunk } from "./chunker";
7
+ export type { Chunk } from "./chunker";
8
+ export type { IndexTag, ChunkWithMeta, SearchResult, IndexingProgress, IndexingProgressCallback, IndexStats, } from "./types";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACvD,YAAY,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,UAAU,GACX,MAAM,SAAS,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shouldChunk = exports.chunkDocument = exports.IndexDatabase = exports.RecentEditsCache = exports.CodebaseIndexer = void 0;
4
+ var indexer_1 = require("./indexer");
5
+ Object.defineProperty(exports, "CodebaseIndexer", { enumerable: true, get: function () { return indexer_1.CodebaseIndexer; } });
6
+ var recent_edits_cache_1 = require("./recent-edits-cache");
7
+ Object.defineProperty(exports, "RecentEditsCache", { enumerable: true, get: function () { return recent_edits_cache_1.RecentEditsCache; } });
8
+ var database_1 = require("./database");
9
+ Object.defineProperty(exports, "IndexDatabase", { enumerable: true, get: function () { return database_1.IndexDatabase; } });
10
+ var chunker_1 = require("./chunker");
11
+ Object.defineProperty(exports, "chunkDocument", { enumerable: true, get: function () { return chunker_1.chunkDocument; } });
12
+ Object.defineProperty(exports, "shouldChunk", { enumerable: true, get: function () { return chunker_1.shouldChunk; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/indexing/index.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAAnC,0GAAA,eAAe,OAAA;AACxB,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA;AAGzB,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AACtB,qCAAuD;AAA9C,wGAAA,aAAa,OAAA;AAAE,sGAAA,WAAW,OAAA"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Codebase Indexer — orchestrates indexing of an entire codebase.
3
+ *
4
+ * Pipeline:
5
+ * 1. Scan files (respects .gitignore, skips binaries/large files)
6
+ * 2. Compute cache keys (SHA-256 of content)
7
+ * 3. Diff against catalog (find new/modified/deleted files)
8
+ * 4. Chunk new/modified files
9
+ * 5. Insert chunks into SQLite
10
+ * 6. Build FTS5 index
11
+ * 7. Optionally compute embeddings (if provider configured)
12
+ *
13
+ * Supports incremental updates — only re-indexes changed files.
14
+ */
15
+ import type { IndexingProgressCallback } from "./types";
16
+ export interface EmbeddingProvider {
17
+ modelId: string;
18
+ embed(texts: string[]): Promise<number[][]>;
19
+ maxBatchSize?: number;
20
+ }
21
+ export declare class CodebaseIndexer {
22
+ private db;
23
+ private workingDir;
24
+ private embeddingProvider?;
25
+ constructor(workingDir: string, embeddingProvider?: EmbeddingProvider, dbPath?: string);
26
+ /**
27
+ * Index the entire codebase (incremental — only processes changed files).
28
+ */
29
+ index(onProgress?: IndexingProgressCallback): Promise<{
30
+ added: number;
31
+ updated: number;
32
+ deleted: number;
33
+ totalChunks: number;
34
+ }>;
35
+ /**
36
+ * Search the index using full-text search (BM25).
37
+ */
38
+ searchFts(query: string, limit?: number, directory?: string): import("./types").SearchResult[];
39
+ /**
40
+ * Search using vector similarity (cosine similarity).
41
+ * Requires an embedding provider.
42
+ */
43
+ searchSemantic(query: string, limit?: number, directory?: string): Promise<import("./types").SearchResult[]>;
44
+ /**
45
+ * Combined search: FTS (25%) + Embeddings (75%), deduplicated.
46
+ */
47
+ search(query: string, limit?: number, directory?: string): Promise<import("./types").SearchResult[]>;
48
+ /**
49
+ * Get index statistics.
50
+ */
51
+ getStats(): import("./types").IndexStats;
52
+ /**
53
+ * Clear the entire index.
54
+ */
55
+ clearIndex(): void;
56
+ /**
57
+ * Close the database connection.
58
+ */
59
+ close(): void;
60
+ private scanFiles;
61
+ private computeEmbeddings;
62
+ }
63
+ //# sourceMappingURL=indexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/indexing/indexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,KAAK,EAAmC,wBAAwB,EAAE,MAAM,SAAS,CAAC;AA6BzF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAgB;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAAC,CAAoB;gBAElC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM;IAMtF;;OAEG;IACG,KAAK,CAAC,UAAU,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC;QAC1D,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAuHF;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,SAAS,EAAE,YAAY,EAAE;IAI1F;;;OAGG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,SAAS,EAAE,YAAY,EAAE,CAAC;IA4B9G;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,SAAS,EAAE,YAAY,EAAE,CAAC;IAuBtG;;OAEG;IACH,QAAQ,IAAI,OAAO,SAAS,EAAE,UAAU;IAIxC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,KAAK,IAAI,IAAI;YAMC,SAAS;YAqCT,iBAAiB;CAkDhC"}