@zbigniewsobiecki/squint 1.0.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 (649) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1065 -0
  3. package/bin/dev.js +5 -0
  4. package/bin/run.js +5 -0
  5. package/dist/commands/_shared/db-helper.d.ts +18 -0
  6. package/dist/commands/_shared/db-helper.d.ts.map +1 -0
  7. package/dist/commands/_shared/db-helper.js +72 -0
  8. package/dist/commands/_shared/db-helper.js.map +1 -0
  9. package/dist/commands/_shared/flags.d.ts +20 -0
  10. package/dist/commands/_shared/flags.d.ts.map +1 -0
  11. package/dist/commands/_shared/flags.js +38 -0
  12. package/dist/commands/_shared/flags.js.map +1 -0
  13. package/dist/commands/_shared/index.d.ts +6 -0
  14. package/dist/commands/_shared/index.d.ts.map +1 -0
  15. package/dist/commands/_shared/index.js +6 -0
  16. package/dist/commands/_shared/index.js.map +1 -0
  17. package/dist/commands/_shared/output.d.ts +22 -0
  18. package/dist/commands/_shared/output.d.ts.map +1 -0
  19. package/dist/commands/_shared/output.js +36 -0
  20. package/dist/commands/_shared/output.js.map +1 -0
  21. package/dist/commands/_shared/source-reader.d.ts +23 -0
  22. package/dist/commands/_shared/source-reader.d.ts.map +1 -0
  23. package/dist/commands/_shared/source-reader.js +45 -0
  24. package/dist/commands/_shared/source-reader.js.map +1 -0
  25. package/dist/commands/_shared/symbol-resolver.d.ts +35 -0
  26. package/dist/commands/_shared/symbol-resolver.d.ts.map +1 -0
  27. package/dist/commands/_shared/symbol-resolver.js +102 -0
  28. package/dist/commands/_shared/symbol-resolver.js.map +1 -0
  29. package/dist/commands/browse.d.ts +13 -0
  30. package/dist/commands/browse.d.ts.map +1 -0
  31. package/dist/commands/browse.js +106 -0
  32. package/dist/commands/browse.js.map +1 -0
  33. package/dist/commands/domains/create.d.ts +15 -0
  34. package/dist/commands/domains/create.d.ts.map +1 -0
  35. package/dist/commands/domains/create.js +34 -0
  36. package/dist/commands/domains/create.js.map +1 -0
  37. package/dist/commands/domains/delete.d.ts +14 -0
  38. package/dist/commands/domains/delete.d.ts.map +1 -0
  39. package/dist/commands/domains/delete.js +41 -0
  40. package/dist/commands/domains/delete.js.map +1 -0
  41. package/dist/commands/domains/index.d.ts +2 -0
  42. package/dist/commands/domains/index.d.ts.map +1 -0
  43. package/dist/commands/domains/index.js +2 -0
  44. package/dist/commands/domains/index.js.map +1 -0
  45. package/dist/commands/domains/list.d.ts +12 -0
  46. package/dist/commands/domains/list.d.ts.map +1 -0
  47. package/dist/commands/domains/list.js +67 -0
  48. package/dist/commands/domains/list.js.map +1 -0
  49. package/dist/commands/domains/merge.d.ts +14 -0
  50. package/dist/commands/domains/merge.d.ts.map +1 -0
  51. package/dist/commands/domains/merge.js +40 -0
  52. package/dist/commands/domains/merge.js.map +1 -0
  53. package/dist/commands/domains/rename.d.ts +14 -0
  54. package/dist/commands/domains/rename.d.ts.map +1 -0
  55. package/dist/commands/domains/rename.js +33 -0
  56. package/dist/commands/domains/rename.js.map +1 -0
  57. package/dist/commands/domains/show.d.ts +14 -0
  58. package/dist/commands/domains/show.d.ts.map +1 -0
  59. package/dist/commands/domains/show.js +47 -0
  60. package/dist/commands/domains/show.js.map +1 -0
  61. package/dist/commands/domains/sync.d.ts +11 -0
  62. package/dist/commands/domains/sync.d.ts.map +1 -0
  63. package/dist/commands/domains/sync.js +33 -0
  64. package/dist/commands/domains/sync.js.map +1 -0
  65. package/dist/commands/domains/update.d.ts +14 -0
  66. package/dist/commands/domains/update.d.ts.map +1 -0
  67. package/dist/commands/domains/update.js +28 -0
  68. package/dist/commands/domains/update.js.map +1 -0
  69. package/dist/commands/features/assign.d.ts +16 -0
  70. package/dist/commands/features/assign.d.ts.map +1 -0
  71. package/dist/commands/features/assign.js +51 -0
  72. package/dist/commands/features/assign.js.map +1 -0
  73. package/dist/commands/features/create.d.ts +15 -0
  74. package/dist/commands/features/create.d.ts.map +1 -0
  75. package/dist/commands/features/create.js +30 -0
  76. package/dist/commands/features/create.js.map +1 -0
  77. package/dist/commands/features/delete.d.ts +14 -0
  78. package/dist/commands/features/delete.d.ts.map +1 -0
  79. package/dist/commands/features/delete.js +37 -0
  80. package/dist/commands/features/delete.js.map +1 -0
  81. package/dist/commands/features/generate.d.ts +34 -0
  82. package/dist/commands/features/generate.d.ts.map +1 -0
  83. package/dist/commands/features/generate.js +178 -0
  84. package/dist/commands/features/generate.js.map +1 -0
  85. package/dist/commands/features/index.d.ts +2 -0
  86. package/dist/commands/features/index.d.ts.map +1 -0
  87. package/dist/commands/features/index.js +2 -0
  88. package/dist/commands/features/index.js.map +1 -0
  89. package/dist/commands/features/list.d.ts +11 -0
  90. package/dist/commands/features/list.d.ts.map +1 -0
  91. package/dist/commands/features/list.js +45 -0
  92. package/dist/commands/features/list.js.map +1 -0
  93. package/dist/commands/features/show.d.ts +15 -0
  94. package/dist/commands/features/show.d.ts.map +1 -0
  95. package/dist/commands/features/show.js +61 -0
  96. package/dist/commands/features/show.js.map +1 -0
  97. package/dist/commands/features/unassign.d.ts +16 -0
  98. package/dist/commands/features/unassign.d.ts.map +1 -0
  99. package/dist/commands/features/unassign.js +55 -0
  100. package/dist/commands/features/unassign.js.map +1 -0
  101. package/dist/commands/features/update.d.ts +16 -0
  102. package/dist/commands/features/update.d.ts.map +1 -0
  103. package/dist/commands/features/update.js +54 -0
  104. package/dist/commands/features/update.js.map +1 -0
  105. package/dist/commands/files/imported-by.d.ts +13 -0
  106. package/dist/commands/files/imported-by.d.ts.map +1 -0
  107. package/dist/commands/files/imported-by.js +40 -0
  108. package/dist/commands/files/imported-by.js.map +1 -0
  109. package/dist/commands/files/imports.d.ts +14 -0
  110. package/dist/commands/files/imports.d.ts.map +1 -0
  111. package/dist/commands/files/imports.js +48 -0
  112. package/dist/commands/files/imports.js.map +1 -0
  113. package/dist/commands/files/index.d.ts +2 -0
  114. package/dist/commands/files/index.d.ts.map +1 -0
  115. package/dist/commands/files/index.js +2 -0
  116. package/dist/commands/files/index.js.map +1 -0
  117. package/dist/commands/files/list.d.ts +11 -0
  118. package/dist/commands/files/list.d.ts.map +1 -0
  119. package/dist/commands/files/list.js +35 -0
  120. package/dist/commands/files/list.js.map +1 -0
  121. package/dist/commands/files/orphans.d.ts +12 -0
  122. package/dist/commands/files/orphans.d.ts.map +1 -0
  123. package/dist/commands/files/orphans.js +43 -0
  124. package/dist/commands/files/orphans.js.map +1 -0
  125. package/dist/commands/files/show.d.ts +14 -0
  126. package/dist/commands/files/show.d.ts.map +1 -0
  127. package/dist/commands/files/show.js +95 -0
  128. package/dist/commands/files/show.js.map +1 -0
  129. package/dist/commands/flows/add-step.d.ts +19 -0
  130. package/dist/commands/flows/add-step.d.ts.map +1 -0
  131. package/dist/commands/flows/add-step.js +46 -0
  132. package/dist/commands/flows/add-step.js.map +1 -0
  133. package/dist/commands/flows/create.d.ts +17 -0
  134. package/dist/commands/flows/create.d.ts.map +1 -0
  135. package/dist/commands/flows/create.js +39 -0
  136. package/dist/commands/flows/create.js.map +1 -0
  137. package/dist/commands/flows/delete.d.ts +14 -0
  138. package/dist/commands/flows/delete.d.ts.map +1 -0
  139. package/dist/commands/flows/delete.js +37 -0
  140. package/dist/commands/flows/delete.js.map +1 -0
  141. package/dist/commands/flows/generate.d.ts +50 -0
  142. package/dist/commands/flows/generate.d.ts.map +1 -0
  143. package/dist/commands/flows/generate.js +438 -0
  144. package/dist/commands/flows/generate.js.map +1 -0
  145. package/dist/commands/flows/index.d.ts +2 -0
  146. package/dist/commands/flows/index.d.ts.map +1 -0
  147. package/dist/commands/flows/index.js +2 -0
  148. package/dist/commands/flows/index.js.map +1 -0
  149. package/dist/commands/flows/list.d.ts +12 -0
  150. package/dist/commands/flows/list.d.ts.map +1 -0
  151. package/dist/commands/flows/list.js +98 -0
  152. package/dist/commands/flows/list.js.map +1 -0
  153. package/dist/commands/flows/remove-step.d.ts +18 -0
  154. package/dist/commands/flows/remove-step.d.ts.map +1 -0
  155. package/dist/commands/flows/remove-step.js +41 -0
  156. package/dist/commands/flows/remove-step.js.map +1 -0
  157. package/dist/commands/flows/show.d.ts +17 -0
  158. package/dist/commands/flows/show.d.ts.map +1 -0
  159. package/dist/commands/flows/show.js +136 -0
  160. package/dist/commands/flows/show.js.map +1 -0
  161. package/dist/commands/flows/trace.d.ts +22 -0
  162. package/dist/commands/flows/trace.d.ts.map +1 -0
  163. package/dist/commands/flows/trace.js +217 -0
  164. package/dist/commands/flows/trace.js.map +1 -0
  165. package/dist/commands/flows/update.d.ts +17 -0
  166. package/dist/commands/flows/update.d.ts.map +1 -0
  167. package/dist/commands/flows/update.js +60 -0
  168. package/dist/commands/flows/update.js.map +1 -0
  169. package/dist/commands/flows/verify.d.ts +21 -0
  170. package/dist/commands/flows/verify.d.ts.map +1 -0
  171. package/dist/commands/flows/verify.js +123 -0
  172. package/dist/commands/flows/verify.js.map +1 -0
  173. package/dist/commands/gaps.d.ts +14 -0
  174. package/dist/commands/gaps.d.ts.map +1 -0
  175. package/dist/commands/gaps.js +184 -0
  176. package/dist/commands/gaps.js.map +1 -0
  177. package/dist/commands/hierarchy/index.d.ts +20 -0
  178. package/dist/commands/hierarchy/index.d.ts.map +1 -0
  179. package/dist/commands/hierarchy/index.js +344 -0
  180. package/dist/commands/hierarchy/index.js.map +1 -0
  181. package/dist/commands/ingest.d.ts +23 -0
  182. package/dist/commands/ingest.d.ts.map +1 -0
  183. package/dist/commands/ingest.js +249 -0
  184. package/dist/commands/ingest.js.map +1 -0
  185. package/dist/commands/interactions/create.d.ts +16 -0
  186. package/dist/commands/interactions/create.d.ts.map +1 -0
  187. package/dist/commands/interactions/create.js +58 -0
  188. package/dist/commands/interactions/create.js.map +1 -0
  189. package/dist/commands/interactions/delete.d.ts +16 -0
  190. package/dist/commands/interactions/delete.d.ts.map +1 -0
  191. package/dist/commands/interactions/delete.js +28 -0
  192. package/dist/commands/interactions/delete.js.map +1 -0
  193. package/dist/commands/interactions/generate.d.ts +62 -0
  194. package/dist/commands/interactions/generate.d.ts.map +1 -0
  195. package/dist/commands/interactions/generate.js +870 -0
  196. package/dist/commands/interactions/generate.js.map +1 -0
  197. package/dist/commands/interactions/index.d.ts +2 -0
  198. package/dist/commands/interactions/index.d.ts.map +1 -0
  199. package/dist/commands/interactions/index.js +2 -0
  200. package/dist/commands/interactions/index.js.map +1 -0
  201. package/dist/commands/interactions/list.d.ts +15 -0
  202. package/dist/commands/interactions/list.d.ts.map +1 -0
  203. package/dist/commands/interactions/list.js +127 -0
  204. package/dist/commands/interactions/list.js.map +1 -0
  205. package/dist/commands/interactions/show.d.ts +17 -0
  206. package/dist/commands/interactions/show.d.ts.map +1 -0
  207. package/dist/commands/interactions/show.js +80 -0
  208. package/dist/commands/interactions/show.js.map +1 -0
  209. package/dist/commands/interactions/update.d.ts +20 -0
  210. package/dist/commands/interactions/update.d.ts.map +1 -0
  211. package/dist/commands/interactions/update.js +57 -0
  212. package/dist/commands/interactions/update.js.map +1 -0
  213. package/dist/commands/interactions/validate.d.ts +12 -0
  214. package/dist/commands/interactions/validate.d.ts.map +1 -0
  215. package/dist/commands/interactions/validate.js +94 -0
  216. package/dist/commands/interactions/validate.js.map +1 -0
  217. package/dist/commands/interactions/verify.d.ts +18 -0
  218. package/dist/commands/interactions/verify.d.ts.map +1 -0
  219. package/dist/commands/interactions/verify.js +127 -0
  220. package/dist/commands/interactions/verify.js.map +1 -0
  221. package/dist/commands/llm/_shared/base-llm-command.d.ts +44 -0
  222. package/dist/commands/llm/_shared/base-llm-command.d.ts.map +1 -0
  223. package/dist/commands/llm/_shared/base-llm-command.js +73 -0
  224. package/dist/commands/llm/_shared/base-llm-command.js.map +1 -0
  225. package/dist/commands/llm/_shared/coverage.d.ts +61 -0
  226. package/dist/commands/llm/_shared/coverage.d.ts.map +1 -0
  227. package/dist/commands/llm/_shared/coverage.js +161 -0
  228. package/dist/commands/llm/_shared/coverage.js.map +1 -0
  229. package/dist/commands/llm/_shared/csv-utils.d.ts +65 -0
  230. package/dist/commands/llm/_shared/csv-utils.d.ts.map +1 -0
  231. package/dist/commands/llm/_shared/csv-utils.js +231 -0
  232. package/dist/commands/llm/_shared/csv-utils.js.map +1 -0
  233. package/dist/commands/llm/_shared/csv.d.ts +44 -0
  234. package/dist/commands/llm/_shared/csv.d.ts.map +1 -0
  235. package/dist/commands/llm/_shared/csv.js +76 -0
  236. package/dist/commands/llm/_shared/csv.js.map +1 -0
  237. package/dist/commands/llm/_shared/entity-utils.d.ts +11 -0
  238. package/dist/commands/llm/_shared/entity-utils.d.ts.map +1 -0
  239. package/dist/commands/llm/_shared/entity-utils.js +87 -0
  240. package/dist/commands/llm/_shared/entity-utils.js.map +1 -0
  241. package/dist/commands/llm/_shared/flow-csv.d.ts +74 -0
  242. package/dist/commands/llm/_shared/flow-csv.d.ts.map +1 -0
  243. package/dist/commands/llm/_shared/flow-csv.js +198 -0
  244. package/dist/commands/llm/_shared/flow-csv.js.map +1 -0
  245. package/dist/commands/llm/_shared/flow-prompts.d.ts +61 -0
  246. package/dist/commands/llm/_shared/flow-prompts.d.ts.map +1 -0
  247. package/dist/commands/llm/_shared/flow-prompts.js +281 -0
  248. package/dist/commands/llm/_shared/flow-prompts.js.map +1 -0
  249. package/dist/commands/llm/_shared/flow-validation.d.ts +69 -0
  250. package/dist/commands/llm/_shared/flow-validation.d.ts.map +1 -0
  251. package/dist/commands/llm/_shared/flow-validation.js +176 -0
  252. package/dist/commands/llm/_shared/flow-validation.js.map +1 -0
  253. package/dist/commands/llm/_shared/llm-utils.d.ts +88 -0
  254. package/dist/commands/llm/_shared/llm-utils.d.ts.map +1 -0
  255. package/dist/commands/llm/_shared/llm-utils.js +256 -0
  256. package/dist/commands/llm/_shared/llm-utils.js.map +1 -0
  257. package/dist/commands/llm/_shared/module-csv.d.ts +76 -0
  258. package/dist/commands/llm/_shared/module-csv.d.ts.map +1 -0
  259. package/dist/commands/llm/_shared/module-csv.js +196 -0
  260. package/dist/commands/llm/_shared/module-csv.js.map +1 -0
  261. package/dist/commands/llm/_shared/module-prompts.d.ts +107 -0
  262. package/dist/commands/llm/_shared/module-prompts.d.ts.map +1 -0
  263. package/dist/commands/llm/_shared/module-prompts.js +395 -0
  264. package/dist/commands/llm/_shared/module-prompts.js.map +1 -0
  265. package/dist/commands/llm/_shared/process-utils.d.ts +52 -0
  266. package/dist/commands/llm/_shared/process-utils.d.ts.map +1 -0
  267. package/dist/commands/llm/_shared/process-utils.js +214 -0
  268. package/dist/commands/llm/_shared/process-utils.js.map +1 -0
  269. package/dist/commands/llm/_shared/prompts.d.ts +132 -0
  270. package/dist/commands/llm/_shared/prompts.d.ts.map +1 -0
  271. package/dist/commands/llm/_shared/prompts.js +391 -0
  272. package/dist/commands/llm/_shared/prompts.js.map +1 -0
  273. package/dist/commands/llm/_shared/pure-check.d.ts +10 -0
  274. package/dist/commands/llm/_shared/pure-check.d.ts.map +1 -0
  275. package/dist/commands/llm/_shared/pure-check.js +449 -0
  276. package/dist/commands/llm/_shared/pure-check.js.map +1 -0
  277. package/dist/commands/llm/_shared/verify/content-verifier.d.ts +40 -0
  278. package/dist/commands/llm/_shared/verify/content-verifier.d.ts.map +1 -0
  279. package/dist/commands/llm/_shared/verify/content-verifier.js +247 -0
  280. package/dist/commands/llm/_shared/verify/content-verifier.js.map +1 -0
  281. package/dist/commands/llm/_shared/verify/coverage-checker.d.ts +34 -0
  282. package/dist/commands/llm/_shared/verify/coverage-checker.d.ts.map +1 -0
  283. package/dist/commands/llm/_shared/verify/coverage-checker.js +1096 -0
  284. package/dist/commands/llm/_shared/verify/coverage-checker.js.map +1 -0
  285. package/dist/commands/llm/_shared/verify/verify-prompts.d.ts +30 -0
  286. package/dist/commands/llm/_shared/verify/verify-prompts.d.ts.map +1 -0
  287. package/dist/commands/llm/_shared/verify/verify-prompts.js +118 -0
  288. package/dist/commands/llm/_shared/verify/verify-prompts.js.map +1 -0
  289. package/dist/commands/llm/_shared/verify/verify-types.d.ts +47 -0
  290. package/dist/commands/llm/_shared/verify/verify-types.d.ts.map +1 -0
  291. package/dist/commands/llm/_shared/verify/verify-types.js +2 -0
  292. package/dist/commands/llm/_shared/verify/verify-types.js.map +1 -0
  293. package/dist/commands/llm/annotate.d.ts +7 -0
  294. package/dist/commands/llm/annotate.d.ts.map +1 -0
  295. package/dist/commands/llm/annotate.js +11 -0
  296. package/dist/commands/llm/annotate.js.map +1 -0
  297. package/dist/commands/llm/features/feature-grouper.d.ts +31 -0
  298. package/dist/commands/llm/features/feature-grouper.d.ts.map +1 -0
  299. package/dist/commands/llm/features/feature-grouper.js +223 -0
  300. package/dist/commands/llm/features/feature-grouper.js.map +1 -0
  301. package/dist/commands/llm/features/index.d.ts +6 -0
  302. package/dist/commands/llm/features/index.d.ts.map +1 -0
  303. package/dist/commands/llm/features/index.js +6 -0
  304. package/dist/commands/llm/features/index.js.map +1 -0
  305. package/dist/commands/llm/features/types.d.ts +10 -0
  306. package/dist/commands/llm/features/types.d.ts.map +1 -0
  307. package/dist/commands/llm/features/types.js +5 -0
  308. package/dist/commands/llm/features/types.js.map +1 -0
  309. package/dist/commands/llm/features.d.ts +7 -0
  310. package/dist/commands/llm/features.d.ts.map +1 -0
  311. package/dist/commands/llm/features.js +11 -0
  312. package/dist/commands/llm/features.js.map +1 -0
  313. package/dist/commands/llm/flows/atomic-flow-builder.d.ts +51 -0
  314. package/dist/commands/llm/flows/atomic-flow-builder.d.ts.map +1 -0
  315. package/dist/commands/llm/flows/atomic-flow-builder.js +247 -0
  316. package/dist/commands/llm/flows/atomic-flow-builder.js.map +1 -0
  317. package/dist/commands/llm/flows/dedup.d.ts +18 -0
  318. package/dist/commands/llm/flows/dedup.d.ts.map +1 -0
  319. package/dist/commands/llm/flows/dedup.js +76 -0
  320. package/dist/commands/llm/flows/dedup.js.map +1 -0
  321. package/dist/commands/llm/flows/entry-point-detector.d.ts +41 -0
  322. package/dist/commands/llm/flows/entry-point-detector.d.ts.map +1 -0
  323. package/dist/commands/llm/flows/entry-point-detector.js +388 -0
  324. package/dist/commands/llm/flows/entry-point-detector.js.map +1 -0
  325. package/dist/commands/llm/flows/flow-enhancer.d.ts +21 -0
  326. package/dist/commands/llm/flows/flow-enhancer.d.ts.map +1 -0
  327. package/dist/commands/llm/flows/flow-enhancer.js +166 -0
  328. package/dist/commands/llm/flows/flow-enhancer.js.map +1 -0
  329. package/dist/commands/llm/flows/flow-tracer.d.ts +50 -0
  330. package/dist/commands/llm/flows/flow-tracer.d.ts.map +1 -0
  331. package/dist/commands/llm/flows/flow-tracer.js +271 -0
  332. package/dist/commands/llm/flows/flow-tracer.js.map +1 -0
  333. package/dist/commands/llm/flows/flow-validator.d.ts +31 -0
  334. package/dist/commands/llm/flows/flow-validator.d.ts.map +1 -0
  335. package/dist/commands/llm/flows/flow-validator.js +262 -0
  336. package/dist/commands/llm/flows/flow-validator.js.map +1 -0
  337. package/dist/commands/llm/flows/gap-flow-generator.d.ts +13 -0
  338. package/dist/commands/llm/flows/gap-flow-generator.d.ts.map +1 -0
  339. package/dist/commands/llm/flows/gap-flow-generator.js +48 -0
  340. package/dist/commands/llm/flows/gap-flow-generator.js.map +1 -0
  341. package/dist/commands/llm/flows/index.d.ts +12 -0
  342. package/dist/commands/llm/flows/index.d.ts.map +1 -0
  343. package/dist/commands/llm/flows/index.js +12 -0
  344. package/dist/commands/llm/flows/index.js.map +1 -0
  345. package/dist/commands/llm/flows/types.d.ts +87 -0
  346. package/dist/commands/llm/flows/types.d.ts.map +1 -0
  347. package/dist/commands/llm/flows/types.js +5 -0
  348. package/dist/commands/llm/flows/types.js.map +1 -0
  349. package/dist/commands/llm/flows.d.ts +7 -0
  350. package/dist/commands/llm/flows.d.ts.map +1 -0
  351. package/dist/commands/llm/flows.js +11 -0
  352. package/dist/commands/llm/flows.js.map +1 -0
  353. package/dist/commands/llm/interactions.d.ts +7 -0
  354. package/dist/commands/llm/interactions.d.ts.map +1 -0
  355. package/dist/commands/llm/interactions.js +11 -0
  356. package/dist/commands/llm/interactions.js.map +1 -0
  357. package/dist/commands/llm/modules.d.ts +7 -0
  358. package/dist/commands/llm/modules.d.ts.map +1 -0
  359. package/dist/commands/llm/modules.js +11 -0
  360. package/dist/commands/llm/modules.js.map +1 -0
  361. package/dist/commands/llm/relationships.d.ts +7 -0
  362. package/dist/commands/llm/relationships.d.ts.map +1 -0
  363. package/dist/commands/llm/relationships.js +11 -0
  364. package/dist/commands/llm/relationships.js.map +1 -0
  365. package/dist/commands/modules/assign.d.ts +14 -0
  366. package/dist/commands/modules/assign.d.ts.map +1 -0
  367. package/dist/commands/modules/assign.js +54 -0
  368. package/dist/commands/modules/assign.js.map +1 -0
  369. package/dist/commands/modules/create.d.ts +16 -0
  370. package/dist/commands/modules/create.d.ts.map +1 -0
  371. package/dist/commands/modules/create.js +37 -0
  372. package/dist/commands/modules/create.js.map +1 -0
  373. package/dist/commands/modules/delete.d.ts +14 -0
  374. package/dist/commands/modules/delete.d.ts.map +1 -0
  375. package/dist/commands/modules/delete.js +54 -0
  376. package/dist/commands/modules/delete.js.map +1 -0
  377. package/dist/commands/modules/generate.d.ts +84 -0
  378. package/dist/commands/modules/generate.d.ts.map +1 -0
  379. package/dist/commands/modules/generate.js +1234 -0
  380. package/dist/commands/modules/generate.js.map +1 -0
  381. package/dist/commands/modules/index.d.ts +2 -0
  382. package/dist/commands/modules/index.d.ts.map +1 -0
  383. package/dist/commands/modules/index.js +2 -0
  384. package/dist/commands/modules/index.js.map +1 -0
  385. package/dist/commands/modules/list.d.ts +13 -0
  386. package/dist/commands/modules/list.d.ts.map +1 -0
  387. package/dist/commands/modules/list.js +92 -0
  388. package/dist/commands/modules/list.js.map +1 -0
  389. package/dist/commands/modules/prune.d.ts +10 -0
  390. package/dist/commands/modules/prune.d.ts.map +1 -0
  391. package/dist/commands/modules/prune.js +23 -0
  392. package/dist/commands/modules/prune.js.map +1 -0
  393. package/dist/commands/modules/show.d.ts +15 -0
  394. package/dist/commands/modules/show.d.ts.map +1 -0
  395. package/dist/commands/modules/show.js +95 -0
  396. package/dist/commands/modules/show.js.map +1 -0
  397. package/dist/commands/modules/unassign.d.ts +13 -0
  398. package/dist/commands/modules/unassign.d.ts.map +1 -0
  399. package/dist/commands/modules/unassign.js +49 -0
  400. package/dist/commands/modules/unassign.js.map +1 -0
  401. package/dist/commands/modules/update.d.ts +15 -0
  402. package/dist/commands/modules/update.d.ts.map +1 -0
  403. package/dist/commands/modules/update.js +50 -0
  404. package/dist/commands/modules/update.js.map +1 -0
  405. package/dist/commands/modules/verify.d.ts +18 -0
  406. package/dist/commands/modules/verify.d.ts.map +1 -0
  407. package/dist/commands/modules/verify.js +114 -0
  408. package/dist/commands/modules/verify.js.map +1 -0
  409. package/dist/commands/overview.d.ts +12 -0
  410. package/dist/commands/overview.d.ts.map +1 -0
  411. package/dist/commands/overview.js +219 -0
  412. package/dist/commands/overview.js.map +1 -0
  413. package/dist/commands/parse.d.ts +30 -0
  414. package/dist/commands/parse.d.ts.map +1 -0
  415. package/dist/commands/parse.js +211 -0
  416. package/dist/commands/parse.js.map +1 -0
  417. package/dist/commands/process-groups/index.d.ts +2 -0
  418. package/dist/commands/process-groups/index.d.ts.map +1 -0
  419. package/dist/commands/process-groups/index.js +2 -0
  420. package/dist/commands/process-groups/index.js.map +1 -0
  421. package/dist/commands/process-groups/list.d.ts +11 -0
  422. package/dist/commands/process-groups/list.d.ts.map +1 -0
  423. package/dist/commands/process-groups/list.js +98 -0
  424. package/dist/commands/process-groups/list.js.map +1 -0
  425. package/dist/commands/relationships/annotate.d.ts +27 -0
  426. package/dist/commands/relationships/annotate.d.ts.map +1 -0
  427. package/dist/commands/relationships/annotate.js +453 -0
  428. package/dist/commands/relationships/annotate.js.map +1 -0
  429. package/dist/commands/relationships/index.d.ts +2 -0
  430. package/dist/commands/relationships/index.d.ts.map +1 -0
  431. package/dist/commands/relationships/index.js +2 -0
  432. package/dist/commands/relationships/index.js.map +1 -0
  433. package/dist/commands/relationships/list.d.ts +18 -0
  434. package/dist/commands/relationships/list.d.ts.map +1 -0
  435. package/dist/commands/relationships/list.js +147 -0
  436. package/dist/commands/relationships/list.js.map +1 -0
  437. package/dist/commands/relationships/next.d.ts +17 -0
  438. package/dist/commands/relationships/next.d.ts.map +1 -0
  439. package/dist/commands/relationships/next.js +178 -0
  440. package/dist/commands/relationships/next.js.map +1 -0
  441. package/dist/commands/relationships/set.d.ts +19 -0
  442. package/dist/commands/relationships/set.d.ts.map +1 -0
  443. package/dist/commands/relationships/set.js +65 -0
  444. package/dist/commands/relationships/set.js.map +1 -0
  445. package/dist/commands/relationships/show.d.ts +13 -0
  446. package/dist/commands/relationships/show.d.ts.map +1 -0
  447. package/dist/commands/relationships/show.js +59 -0
  448. package/dist/commands/relationships/show.js.map +1 -0
  449. package/dist/commands/relationships/unset.d.ts +16 -0
  450. package/dist/commands/relationships/unset.d.ts.map +1 -0
  451. package/dist/commands/relationships/unset.js +62 -0
  452. package/dist/commands/relationships/unset.js.map +1 -0
  453. package/dist/commands/relationships/verify.d.ts +24 -0
  454. package/dist/commands/relationships/verify.d.ts.map +1 -0
  455. package/dist/commands/relationships/verify.js +328 -0
  456. package/dist/commands/relationships/verify.js.map +1 -0
  457. package/dist/commands/stats.d.ts +11 -0
  458. package/dist/commands/stats.d.ts.map +1 -0
  459. package/dist/commands/stats.js +207 -0
  460. package/dist/commands/stats.js.map +1 -0
  461. package/dist/commands/symbols/annotate.d.ts +32 -0
  462. package/dist/commands/symbols/annotate.d.ts.map +1 -0
  463. package/dist/commands/symbols/annotate.js +862 -0
  464. package/dist/commands/symbols/annotate.js.map +1 -0
  465. package/dist/commands/symbols/deps.d.ts +18 -0
  466. package/dist/commands/symbols/deps.d.ts.map +1 -0
  467. package/dist/commands/symbols/deps.js +104 -0
  468. package/dist/commands/symbols/deps.js.map +1 -0
  469. package/dist/commands/symbols/index.d.ts +2 -0
  470. package/dist/commands/symbols/index.d.ts.map +1 -0
  471. package/dist/commands/symbols/index.js +2 -0
  472. package/dist/commands/symbols/index.js.map +1 -0
  473. package/dist/commands/symbols/list.d.ts +17 -0
  474. package/dist/commands/symbols/list.d.ts.map +1 -0
  475. package/dist/commands/symbols/list.js +136 -0
  476. package/dist/commands/symbols/list.js.map +1 -0
  477. package/dist/commands/symbols/next.d.ts +15 -0
  478. package/dist/commands/symbols/next.d.ts.map +1 -0
  479. package/dist/commands/symbols/next.js +147 -0
  480. package/dist/commands/symbols/next.js.map +1 -0
  481. package/dist/commands/symbols/prereqs.d.ts +18 -0
  482. package/dist/commands/symbols/prereqs.d.ts.map +1 -0
  483. package/dist/commands/symbols/prereqs.js +107 -0
  484. package/dist/commands/symbols/prereqs.js.map +1 -0
  485. package/dist/commands/symbols/ready.d.ts +17 -0
  486. package/dist/commands/symbols/ready.d.ts.map +1 -0
  487. package/dist/commands/symbols/ready.js +126 -0
  488. package/dist/commands/symbols/ready.js.map +1 -0
  489. package/dist/commands/symbols/set.d.ts +27 -0
  490. package/dist/commands/symbols/set.d.ts.map +1 -0
  491. package/dist/commands/symbols/set.js +241 -0
  492. package/dist/commands/symbols/set.js.map +1 -0
  493. package/dist/commands/symbols/show.d.ts +19 -0
  494. package/dist/commands/symbols/show.d.ts.map +1 -0
  495. package/dist/commands/symbols/show.js +182 -0
  496. package/dist/commands/symbols/show.js.map +1 -0
  497. package/dist/commands/symbols/understood.d.ts +15 -0
  498. package/dist/commands/symbols/understood.d.ts.map +1 -0
  499. package/dist/commands/symbols/understood.js +101 -0
  500. package/dist/commands/symbols/understood.js.map +1 -0
  501. package/dist/commands/symbols/unset.d.ts +16 -0
  502. package/dist/commands/symbols/unset.d.ts.map +1 -0
  503. package/dist/commands/symbols/unset.js +48 -0
  504. package/dist/commands/symbols/unset.js.map +1 -0
  505. package/dist/commands/symbols/verify.d.ts +25 -0
  506. package/dist/commands/symbols/verify.d.ts.map +1 -0
  507. package/dist/commands/symbols/verify.js +360 -0
  508. package/dist/commands/symbols/verify.js.map +1 -0
  509. package/dist/db/connection.d.ts +14 -0
  510. package/dist/db/connection.d.ts.map +1 -0
  511. package/dist/db/connection.js +37 -0
  512. package/dist/db/connection.js.map +1 -0
  513. package/dist/db/database-facade.d.ts +125 -0
  514. package/dist/db/database-facade.d.ts.map +1 -0
  515. package/dist/db/database-facade.js +347 -0
  516. package/dist/db/database-facade.js.map +1 -0
  517. package/dist/db/database.d.ts +9 -0
  518. package/dist/db/database.d.ts.map +1 -0
  519. package/dist/db/database.js +11 -0
  520. package/dist/db/database.js.map +1 -0
  521. package/dist/db/index.d.ts +7 -0
  522. package/dist/db/index.d.ts.map +1 -0
  523. package/dist/db/index.js +11 -0
  524. package/dist/db/index.js.map +1 -0
  525. package/dist/db/repositories/_shared/call-graph-query.d.ts +10 -0
  526. package/dist/db/repositories/_shared/call-graph-query.d.ts.map +1 -0
  527. package/dist/db/repositories/_shared/call-graph-query.js +59 -0
  528. package/dist/db/repositories/_shared/call-graph-query.js.map +1 -0
  529. package/dist/db/repositories/call-graph-service.d.ts +28 -0
  530. package/dist/db/repositories/call-graph-service.d.ts.map +1 -0
  531. package/dist/db/repositories/call-graph-service.js +223 -0
  532. package/dist/db/repositories/call-graph-service.js.map +1 -0
  533. package/dist/db/repositories/definition-repository.d.ts +99 -0
  534. package/dist/db/repositories/definition-repository.d.ts.map +1 -0
  535. package/dist/db/repositories/definition-repository.js +317 -0
  536. package/dist/db/repositories/definition-repository.js.map +1 -0
  537. package/dist/db/repositories/dependency-repository.d.ts +78 -0
  538. package/dist/db/repositories/dependency-repository.d.ts.map +1 -0
  539. package/dist/db/repositories/dependency-repository.js +446 -0
  540. package/dist/db/repositories/dependency-repository.js.map +1 -0
  541. package/dist/db/repositories/domain-repository.d.ts +97 -0
  542. package/dist/db/repositories/domain-repository.d.ts.map +1 -0
  543. package/dist/db/repositories/domain-repository.js +261 -0
  544. package/dist/db/repositories/domain-repository.js.map +1 -0
  545. package/dist/db/repositories/feature-repository.d.ts +64 -0
  546. package/dist/db/repositories/feature-repository.d.ts.map +1 -0
  547. package/dist/db/repositories/feature-repository.js +189 -0
  548. package/dist/db/repositories/feature-repository.js.map +1 -0
  549. package/dist/db/repositories/file-repository.d.ts +67 -0
  550. package/dist/db/repositories/file-repository.d.ts.map +1 -0
  551. package/dist/db/repositories/file-repository.js +179 -0
  552. package/dist/db/repositories/file-repository.js.map +1 -0
  553. package/dist/db/repositories/flow-repository.d.ts +172 -0
  554. package/dist/db/repositories/flow-repository.d.ts.map +1 -0
  555. package/dist/db/repositories/flow-repository.js +599 -0
  556. package/dist/db/repositories/flow-repository.js.map +1 -0
  557. package/dist/db/repositories/graph-repository.d.ts +93 -0
  558. package/dist/db/repositories/graph-repository.d.ts.map +1 -0
  559. package/dist/db/repositories/graph-repository.js +413 -0
  560. package/dist/db/repositories/graph-repository.js.map +1 -0
  561. package/dist/db/repositories/index.d.ts +20 -0
  562. package/dist/db/repositories/index.d.ts.map +1 -0
  563. package/dist/db/repositories/index.js +15 -0
  564. package/dist/db/repositories/index.js.map +1 -0
  565. package/dist/db/repositories/interaction-analysis.d.ts +78 -0
  566. package/dist/db/repositories/interaction-analysis.d.ts.map +1 -0
  567. package/dist/db/repositories/interaction-analysis.js +340 -0
  568. package/dist/db/repositories/interaction-analysis.js.map +1 -0
  569. package/dist/db/repositories/interaction-repository.d.ts +145 -0
  570. package/dist/db/repositories/interaction-repository.d.ts.map +1 -0
  571. package/dist/db/repositories/interaction-repository.js +395 -0
  572. package/dist/db/repositories/interaction-repository.js.map +1 -0
  573. package/dist/db/repositories/metadata-repository.d.ts +110 -0
  574. package/dist/db/repositories/metadata-repository.d.ts.map +1 -0
  575. package/dist/db/repositories/metadata-repository.js +294 -0
  576. package/dist/db/repositories/metadata-repository.js.map +1 -0
  577. package/dist/db/repositories/module-repository.d.ts +162 -0
  578. package/dist/db/repositories/module-repository.d.ts.map +1 -0
  579. package/dist/db/repositories/module-repository.js +519 -0
  580. package/dist/db/repositories/module-repository.js.map +1 -0
  581. package/dist/db/repositories/relationship-repository.d.ts +98 -0
  582. package/dist/db/repositories/relationship-repository.d.ts.map +1 -0
  583. package/dist/db/repositories/relationship-repository.js +421 -0
  584. package/dist/db/repositories/relationship-repository.js.map +1 -0
  585. package/dist/db/schema-manager.d.ts +31 -0
  586. package/dist/db/schema-manager.d.ts.map +1 -0
  587. package/dist/db/schema-manager.js +398 -0
  588. package/dist/db/schema-manager.js.map +1 -0
  589. package/dist/db/schema.d.ts +404 -0
  590. package/dist/db/schema.d.ts.map +1 -0
  591. package/dist/db/schema.js +234 -0
  592. package/dist/db/schema.js.map +1 -0
  593. package/dist/db/utils/tree-builder.d.ts +25 -0
  594. package/dist/db/utils/tree-builder.d.ts.map +1 -0
  595. package/dist/db/utils/tree-builder.js +38 -0
  596. package/dist/db/utils/tree-builder.js.map +1 -0
  597. package/dist/index.d.ts +2 -0
  598. package/dist/index.d.ts.map +1 -0
  599. package/dist/index.js +2 -0
  600. package/dist/index.js.map +1 -0
  601. package/dist/parser/ast-parser.d.ts +23 -0
  602. package/dist/parser/ast-parser.d.ts.map +1 -0
  603. package/dist/parser/ast-parser.js +65 -0
  604. package/dist/parser/ast-parser.js.map +1 -0
  605. package/dist/parser/definition-extractor.d.ts +29 -0
  606. package/dist/parser/definition-extractor.d.ts.map +1 -0
  607. package/dist/parser/definition-extractor.js +379 -0
  608. package/dist/parser/definition-extractor.js.map +1 -0
  609. package/dist/parser/reference-extractor.d.ts +72 -0
  610. package/dist/parser/reference-extractor.d.ts.map +1 -0
  611. package/dist/parser/reference-extractor.js +759 -0
  612. package/dist/parser/reference-extractor.js.map +1 -0
  613. package/dist/utils/file-scanner.d.ts +6 -0
  614. package/dist/utils/file-scanner.d.ts.map +1 -0
  615. package/dist/utils/file-scanner.js +33 -0
  616. package/dist/utils/file-scanner.js.map +1 -0
  617. package/dist/web/api-transforms.d.ts +4 -0
  618. package/dist/web/api-transforms.d.ts.map +1 -0
  619. package/dist/web/api-transforms.js +4 -0
  620. package/dist/web/api-transforms.js.map +1 -0
  621. package/dist/web/server.d.ts +16 -0
  622. package/dist/web/server.d.ts.map +1 -0
  623. package/dist/web/server.js +229 -0
  624. package/dist/web/server.js.map +1 -0
  625. package/dist/web/server.test.d.ts +2 -0
  626. package/dist/web/server.test.d.ts.map +1 -0
  627. package/dist/web/server.test.js +505 -0
  628. package/dist/web/server.test.js.map +1 -0
  629. package/dist/web/transforms/flow-transforms.d.ts +117 -0
  630. package/dist/web/transforms/flow-transforms.d.ts.map +1 -0
  631. package/dist/web/transforms/flow-transforms.js +202 -0
  632. package/dist/web/transforms/flow-transforms.js.map +1 -0
  633. package/dist/web/transforms/index.d.ts +4 -0
  634. package/dist/web/transforms/index.d.ts.map +1 -0
  635. package/dist/web/transforms/index.js +4 -0
  636. package/dist/web/transforms/index.js.map +1 -0
  637. package/dist/web/transforms/module-transforms.d.ts +42 -0
  638. package/dist/web/transforms/module-transforms.d.ts.map +1 -0
  639. package/dist/web/transforms/module-transforms.js +64 -0
  640. package/dist/web/transforms/module-transforms.js.map +1 -0
  641. package/dist/web/transforms/symbol-transforms.d.ts +31 -0
  642. package/dist/web/transforms/symbol-transforms.d.ts.map +1 -0
  643. package/dist/web/transforms/symbol-transforms.js +95 -0
  644. package/dist/web/transforms/symbol-transforms.js.map +1 -0
  645. package/package.json +96 -0
  646. package/ui/dist/assets/index-DP3dRMlh.js +268 -0
  647. package/ui/dist/assets/index-DP3dRMlh.js.map +1 -0
  648. package/ui/dist/assets/index-Db204Xn1.css +1 -0
  649. package/ui/dist/index.html +67 -0
@@ -0,0 +1,519 @@
1
+ import { ensureModulesTables } from '../schema-manager.js';
2
+ import { buildSingleRootTree } from '../utils/tree-builder.js';
3
+ import { queryCallGraphEdges } from './_shared/call-graph-query.js';
4
+ const MODULE_COLS = `
5
+ id,
6
+ parent_id as parentId,
7
+ slug,
8
+ full_path as fullPath,
9
+ name,
10
+ description,
11
+ depth,
12
+ color_index as colorIndex,
13
+ is_test as isTest,
14
+ created_at as createdAt`;
15
+ const MODULE_COLS_M = `
16
+ m.id,
17
+ m.parent_id as parentId,
18
+ m.slug,
19
+ m.full_path as fullPath,
20
+ m.name,
21
+ m.description,
22
+ m.depth,
23
+ m.color_index as colorIndex,
24
+ m.is_test as isTest,
25
+ m.created_at as createdAt`;
26
+ function toModule(row) {
27
+ return { ...row, isTest: row.isTest === 1 };
28
+ }
29
+ function toModuleWithMembers(m, getMemberInfo) {
30
+ const members = getMemberInfo(m.id);
31
+ return { ...m, members };
32
+ }
33
+ /**
34
+ * Repository for module tree operations.
35
+ */
36
+ export class ModuleRepository {
37
+ db;
38
+ constructor(db) {
39
+ this.db = db;
40
+ }
41
+ /**
42
+ * Ensure the root "project" module exists and return its ID.
43
+ */
44
+ ensureRoot() {
45
+ ensureModulesTables(this.db);
46
+ const existing = this.db
47
+ .prepare(`
48
+ SELECT id FROM modules WHERE full_path = 'project'
49
+ `)
50
+ .get();
51
+ if (existing)
52
+ return existing.id;
53
+ const stmt = this.db.prepare(`
54
+ INSERT INTO modules (parent_id, slug, full_path, name, description, depth)
55
+ VALUES (NULL, 'project', 'project', 'Project', 'Root module for the project', 0)
56
+ `);
57
+ const result = stmt.run();
58
+ return result.lastInsertRowid;
59
+ }
60
+ /**
61
+ * Insert a new module in the tree.
62
+ */
63
+ insert(parentId, slug, name, description, isTest) {
64
+ ensureModulesTables(this.db);
65
+ // Calculate full_path and depth
66
+ let fullPath;
67
+ let depth;
68
+ let effectiveIsTest = isTest;
69
+ if (parentId === null) {
70
+ fullPath = slug;
71
+ depth = 0;
72
+ }
73
+ else {
74
+ const parent = this.db
75
+ .prepare(`
76
+ SELECT full_path, depth, is_test FROM modules WHERE id = ?
77
+ `)
78
+ .get(parentId);
79
+ if (!parent) {
80
+ throw new Error(`Parent module ${parentId} not found`);
81
+ }
82
+ fullPath = `${parent.full_path}.${slug}`;
83
+ depth = parent.depth + 1;
84
+ // Inherit test status from parent if parent is test
85
+ if (parent.is_test === 1) {
86
+ effectiveIsTest = true;
87
+ }
88
+ }
89
+ const stmt = this.db.prepare(`
90
+ INSERT INTO modules (parent_id, slug, full_path, name, description, depth, is_test)
91
+ VALUES (?, ?, ?, ?, ?, ?, ?)
92
+ `);
93
+ const result = stmt.run(parentId, slug, fullPath, name, description ?? null, depth, effectiveIsTest ? 1 : 0);
94
+ return result.lastInsertRowid;
95
+ }
96
+ /**
97
+ * Get a module by its full path.
98
+ */
99
+ getByPath(fullPath) {
100
+ ensureModulesTables(this.db);
101
+ const row = this.db
102
+ .prepare(`SELECT ${MODULE_COLS} FROM modules WHERE full_path = ?`)
103
+ .get(fullPath);
104
+ if (!row)
105
+ return null;
106
+ return toModule(row);
107
+ }
108
+ /**
109
+ * Get a module by ID.
110
+ */
111
+ getById(id) {
112
+ ensureModulesTables(this.db);
113
+ const row = this.db.prepare(`SELECT ${MODULE_COLS} FROM modules WHERE id = ?`).get(id);
114
+ if (!row)
115
+ return null;
116
+ return toModule(row);
117
+ }
118
+ /**
119
+ * Get direct children of a module.
120
+ */
121
+ getChildren(moduleId) {
122
+ ensureModulesTables(this.db);
123
+ const rows = this.db
124
+ .prepare(`SELECT ${MODULE_COLS} FROM modules WHERE parent_id = ? ORDER BY slug`)
125
+ .all(moduleId);
126
+ return rows.map(toModule);
127
+ }
128
+ /**
129
+ * Get all modules as a flat list.
130
+ */
131
+ getAll() {
132
+ ensureModulesTables(this.db);
133
+ const rows = this.db.prepare(`SELECT ${MODULE_COLS} FROM modules ORDER BY depth, full_path`).all();
134
+ return rows.map(toModule);
135
+ }
136
+ /**
137
+ * Get the module tree as a recursive structure.
138
+ */
139
+ getTree() {
140
+ ensureModulesTables(this.db);
141
+ const modules = this.getAll();
142
+ if (modules.length === 0)
143
+ return null;
144
+ return buildSingleRootTree(modules, (m) => ({ ...m, children: [] }));
145
+ }
146
+ /**
147
+ * Delete all modules and their memberships.
148
+ */
149
+ clear() {
150
+ ensureModulesTables(this.db);
151
+ this.db.exec('DELETE FROM modules');
152
+ }
153
+ /**
154
+ * Assign a symbol (definition) to a module.
155
+ */
156
+ assignSymbol(definitionId, moduleId) {
157
+ ensureModulesTables(this.db);
158
+ const stmt = this.db.prepare(`
159
+ INSERT OR REPLACE INTO module_members (module_id, definition_id)
160
+ VALUES (?, ?)
161
+ `);
162
+ stmt.run(moduleId, definitionId);
163
+ }
164
+ /**
165
+ * Get all symbols not yet assigned to any module.
166
+ */
167
+ getUnassigned() {
168
+ ensureModulesTables(this.db);
169
+ const stmt = this.db.prepare(`
170
+ SELECT
171
+ d.id,
172
+ d.name,
173
+ d.kind,
174
+ f.path as filePath,
175
+ d.line,
176
+ d.end_line as endLine,
177
+ d.is_exported as isExported,
178
+ MAX(CASE WHEN dm.key = 'purpose' THEN dm.value END) as purpose,
179
+ MAX(CASE WHEN dm.key = 'domain' THEN dm.value END) as domain,
180
+ MAX(CASE WHEN dm.key = 'role' THEN dm.value END) as role
181
+ FROM definitions d
182
+ JOIN files f ON d.file_id = f.id
183
+ LEFT JOIN definition_metadata dm ON dm.definition_id = d.id
184
+ WHERE d.id NOT IN (SELECT definition_id FROM module_members)
185
+ GROUP BY d.id
186
+ ORDER BY f.path, d.line
187
+ `);
188
+ const rows = stmt.all();
189
+ return rows.map((row) => ({
190
+ id: row.id,
191
+ name: row.name,
192
+ kind: row.kind,
193
+ filePath: row.filePath,
194
+ line: row.line,
195
+ endLine: row.endLine,
196
+ isExported: row.isExported === 1,
197
+ purpose: row.purpose,
198
+ domain: row.domain ? JSON.parse(row.domain) : null,
199
+ role: row.role,
200
+ }));
201
+ }
202
+ /**
203
+ * Get symbols assigned to a specific module.
204
+ */
205
+ getSymbols(moduleId) {
206
+ ensureModulesTables(this.db);
207
+ const stmt = this.db.prepare(`
208
+ SELECT
209
+ d.id,
210
+ d.name,
211
+ d.kind,
212
+ f.path as filePath,
213
+ d.line,
214
+ d.is_exported as isExported
215
+ FROM module_members mm
216
+ JOIN definitions d ON mm.definition_id = d.id
217
+ JOIN files f ON d.file_id = f.id
218
+ WHERE mm.module_id = ?
219
+ ORDER BY f.path, d.line
220
+ `);
221
+ const rows = stmt.all(moduleId);
222
+ return rows.map((row) => ({ ...row, isExported: row.isExported === 1 }));
223
+ }
224
+ /**
225
+ * Get a module with all its members.
226
+ */
227
+ getWithMembers(moduleId) {
228
+ ensureModulesTables(this.db);
229
+ const module = this.getById(moduleId);
230
+ if (!module)
231
+ return null;
232
+ const members = this.getSymbols(moduleId);
233
+ return {
234
+ ...module,
235
+ members: members.map((m) => ({ ...m, definitionId: m.id })),
236
+ };
237
+ }
238
+ /**
239
+ * Get all modules with their members.
240
+ */
241
+ getAllWithMembers() {
242
+ ensureModulesTables(this.db);
243
+ const modules = this.getAll();
244
+ return modules.map((m) => {
245
+ const members = this.getSymbols(m.id);
246
+ return {
247
+ ...m,
248
+ members: members.map((mem) => ({ ...mem, definitionId: mem.id })),
249
+ };
250
+ });
251
+ }
252
+ /**
253
+ * Get module statistics.
254
+ */
255
+ getStats() {
256
+ ensureModulesTables(this.db);
257
+ const moduleCount = this.db.prepare('SELECT COUNT(*) as count FROM modules').get().count;
258
+ const assigned = this.db.prepare('SELECT COUNT(*) as count FROM module_members').get().count;
259
+ const totalDefs = this.db.prepare('SELECT COUNT(*) as count FROM definitions').get().count;
260
+ return {
261
+ moduleCount,
262
+ assigned,
263
+ unassigned: totalDefs - assigned,
264
+ };
265
+ }
266
+ /**
267
+ * Get count of modules.
268
+ */
269
+ getCount() {
270
+ ensureModulesTables(this.db);
271
+ const stmt = this.db.prepare('SELECT COUNT(*) as count FROM modules');
272
+ const row = stmt.get();
273
+ return row.count;
274
+ }
275
+ /**
276
+ * Get module membership for a definition.
277
+ */
278
+ getDefinitionModule(definitionId) {
279
+ ensureModulesTables(this.db);
280
+ const row = this.db
281
+ .prepare(`SELECT ${MODULE_COLS_M} FROM module_members mm JOIN modules m ON mm.module_id = m.id WHERE mm.definition_id = ?`)
282
+ .get(definitionId);
283
+ if (!row)
284
+ return null;
285
+ return { module: toModule(row) };
286
+ }
287
+ /**
288
+ * Get the symbol-level call graph.
289
+ * This is needed by getModuleCallGraph and getIncomingEdgesFor.
290
+ */
291
+ getCallGraph() {
292
+ return queryCallGraphEdges(this.db);
293
+ }
294
+ /**
295
+ * Get modules that exceed a member threshold.
296
+ * Returns modules with member_count > threshold, including their member details.
297
+ */
298
+ getModulesExceedingThreshold(threshold) {
299
+ ensureModulesTables(this.db);
300
+ const rawModules = this.db
301
+ .prepare(`
302
+ SELECT ${MODULE_COLS_M}, COUNT(mm.definition_id) as memberCount
303
+ FROM modules m
304
+ JOIN module_members mm ON mm.module_id = m.id
305
+ GROUP BY m.id
306
+ HAVING COUNT(mm.definition_id) > ?
307
+ ORDER BY m.depth, m.full_path
308
+ `)
309
+ .all(threshold);
310
+ return rawModules.map((m) => toModuleWithMembers(toModule(m), (id) => this.getMemberInfo(id)));
311
+ }
312
+ /**
313
+ * Get detailed member info for a module (used by deepen phase).
314
+ */
315
+ getMemberInfo(moduleId) {
316
+ ensureModulesTables(this.db);
317
+ const stmt = this.db.prepare(`
318
+ SELECT
319
+ mm.definition_id as definitionId,
320
+ d.name,
321
+ d.kind,
322
+ f.path as filePath,
323
+ d.line,
324
+ d.is_exported as isExported
325
+ FROM module_members mm
326
+ JOIN definitions d ON mm.definition_id = d.id
327
+ JOIN files f ON d.file_id = f.id
328
+ WHERE mm.module_id = ?
329
+ ORDER BY f.path, d.line
330
+ `);
331
+ const rows = stmt.all(moduleId);
332
+ return rows.map((row) => ({ ...row, isExported: row.isExported === 1 }));
333
+ }
334
+ /**
335
+ * Assign color indices based on branch identity.
336
+ * Each depth-1 module gets a sequential index; descendants inherit their ancestor's index.
337
+ */
338
+ assignColorIndices() {
339
+ ensureModulesTables(this.db);
340
+ const depth1Modules = this.db
341
+ .prepare('SELECT id, full_path FROM modules WHERE depth = 1 ORDER BY id')
342
+ .all();
343
+ const updateStmt = this.db.prepare('UPDATE modules SET color_index = ? WHERE id = ? OR (full_path LIKE ? AND depth > 1)');
344
+ const transaction = this.db.transaction(() => {
345
+ for (let i = 0; i < depth1Modules.length; i++) {
346
+ const mod = depth1Modules[i];
347
+ updateStmt.run(i, mod.id, `${mod.full_path}.%`);
348
+ }
349
+ });
350
+ transaction();
351
+ }
352
+ /**
353
+ * Get IDs of all test modules (is_test = 1).
354
+ */
355
+ getTestModuleIds() {
356
+ ensureModulesTables(this.db);
357
+ const stmt = this.db.prepare('SELECT id FROM modules WHERE is_test = 1');
358
+ const rows = stmt.all();
359
+ return new Set(rows.map((r) => r.id));
360
+ }
361
+ /**
362
+ * Prune empty leaf modules iteratively.
363
+ * A leaf is a module with no children and no members.
364
+ * Deleting a leaf may turn its parent into a new empty leaf, so we loop.
365
+ */
366
+ pruneEmptyLeaves() {
367
+ let totalPruned = 0;
368
+ // foreign_keys pragma is OFF, so no CASCADE — but empty leaves
369
+ // have no members and no children by definition, so plain DELETE works.
370
+ const stmt = this.db.prepare(`
371
+ DELETE FROM modules WHERE full_path != 'project'
372
+ AND id NOT IN (SELECT DISTINCT parent_id FROM modules WHERE parent_id IS NOT NULL)
373
+ AND id NOT IN (SELECT DISTINCT module_id FROM module_members)
374
+ `);
375
+ while (true) {
376
+ const result = stmt.run();
377
+ if (result.changes === 0)
378
+ break;
379
+ totalPruned += result.changes;
380
+ }
381
+ return totalPruned;
382
+ }
383
+ /**
384
+ * Update a module's name and/or description.
385
+ */
386
+ update(id, updates) {
387
+ ensureModulesTables(this.db);
388
+ const sets = [];
389
+ const params = [];
390
+ if (updates.name !== undefined) {
391
+ sets.push('name = ?');
392
+ params.push(updates.name);
393
+ }
394
+ if (updates.description !== undefined) {
395
+ sets.push('description = ?');
396
+ params.push(updates.description);
397
+ }
398
+ if (sets.length === 0)
399
+ return false;
400
+ params.push(String(id));
401
+ const stmt = this.db.prepare(`UPDATE modules SET ${sets.join(', ')} WHERE id = ?`);
402
+ const result = stmt.run(...params);
403
+ return result.changes > 0;
404
+ }
405
+ /**
406
+ * Delete a module.
407
+ * Throws an error if the module has members unless the caller handles that externally.
408
+ */
409
+ delete(id) {
410
+ ensureModulesTables(this.db);
411
+ // Check for members
412
+ const memberCount = this.db.prepare('SELECT COUNT(*) as count FROM module_members WHERE module_id = ?').get(id).count;
413
+ if (memberCount > 0) {
414
+ throw new Error(`Module ${id} has ${memberCount} member(s). Remove members first or use --force.`);
415
+ }
416
+ const stmt = this.db.prepare('DELETE FROM modules WHERE id = ?');
417
+ const result = stmt.run(id);
418
+ return result.changes > 0;
419
+ }
420
+ /**
421
+ * Remove a symbol from its module assignment.
422
+ */
423
+ unassignSymbol(definitionId) {
424
+ ensureModulesTables(this.db);
425
+ const stmt = this.db.prepare('DELETE FROM module_members WHERE definition_id = ?');
426
+ const result = stmt.run(definitionId);
427
+ return result.changes > 0;
428
+ }
429
+ /**
430
+ * Get leaf modules exceeding a member threshold.
431
+ * Leaf = not a parent of any other module. Ordered by member count DESC (largest first).
432
+ */
433
+ getLeafModulesExceedingThreshold(threshold) {
434
+ ensureModulesTables(this.db);
435
+ const rawModules = this.db
436
+ .prepare(`
437
+ SELECT ${MODULE_COLS_M}, COUNT(mm.definition_id) as memberCount
438
+ FROM modules m
439
+ JOIN module_members mm ON mm.module_id = m.id
440
+ WHERE m.id NOT IN (SELECT DISTINCT parent_id FROM modules WHERE parent_id IS NOT NULL)
441
+ GROUP BY m.id
442
+ HAVING COUNT(mm.definition_id) > ?
443
+ ORDER BY COUNT(mm.definition_id) DESC
444
+ `)
445
+ .all(threshold);
446
+ return rawModules.map((m) => toModuleWithMembers(toModule(m), (id) => this.getMemberInfo(id)));
447
+ }
448
+ /**
449
+ * Get branch modules (has children) with direct members exceeding a threshold.
450
+ * These need rebalancing, not splitting.
451
+ */
452
+ getBranchModulesWithDirectMembers(threshold) {
453
+ ensureModulesTables(this.db);
454
+ const rawModules = this.db
455
+ .prepare(`
456
+ SELECT ${MODULE_COLS_M}, COUNT(mm.definition_id) as memberCount
457
+ FROM modules m
458
+ JOIN module_members mm ON mm.module_id = m.id
459
+ WHERE m.id IN (SELECT DISTINCT parent_id FROM modules WHERE parent_id IS NOT NULL)
460
+ GROUP BY m.id
461
+ HAVING COUNT(mm.definition_id) > ?
462
+ ORDER BY COUNT(mm.definition_id) DESC
463
+ `)
464
+ .all(threshold);
465
+ return rawModules.map((m) => toModuleWithMembers(toModule(m), (id) => this.getMemberInfo(id)));
466
+ }
467
+ /**
468
+ * Get all callers of a definition with their module assignments.
469
+ */
470
+ getIncomingEdgesFor(definitionId) {
471
+ ensureModulesTables(this.db);
472
+ const stmt = this.db.prepare(`
473
+ SELECT
474
+ caller.id as callerId,
475
+ caller.name as callerName,
476
+ mm.module_id as callerModuleId,
477
+ COUNT(*) as weight
478
+ FROM definitions caller
479
+ JOIN files f ON caller.file_id = f.id
480
+ JOIN symbols s ON s.file_id = f.id AND s.definition_id = ?
481
+ JOIN usages u ON u.symbol_id = s.id
482
+ LEFT JOIN module_members mm ON mm.definition_id = caller.id
483
+ WHERE u.context IN ('call_expression', 'new_expression')
484
+ AND caller.line <= u.line AND u.line <= caller.end_line
485
+ AND caller.id != ?
486
+ GROUP BY caller.id, mm.module_id
487
+ UNION ALL
488
+ SELECT
489
+ caller.id as callerId,
490
+ caller.name as callerName,
491
+ mm.module_id as callerModuleId,
492
+ COUNT(*) as weight
493
+ FROM definitions caller
494
+ JOIN files f ON caller.file_id = f.id
495
+ JOIN imports i ON i.from_file_id = f.id
496
+ JOIN symbols s ON s.reference_id = i.id AND s.definition_id = ?
497
+ JOIN usages u ON u.symbol_id = s.id
498
+ LEFT JOIN module_members mm ON mm.definition_id = caller.id
499
+ WHERE u.context IN ('call_expression', 'new_expression')
500
+ AND caller.line <= u.line AND u.line <= caller.end_line
501
+ AND caller.id != ?
502
+ GROUP BY caller.id, mm.module_id
503
+ `);
504
+ const rows = stmt.all(definitionId, definitionId, definitionId, definitionId);
505
+ // Aggregate duplicate callers (from the UNION)
506
+ const callerMap = new Map();
507
+ for (const row of rows) {
508
+ const existing = callerMap.get(row.callerId);
509
+ if (existing) {
510
+ existing.weight += row.weight;
511
+ }
512
+ else {
513
+ callerMap.set(row.callerId, { ...row });
514
+ }
515
+ }
516
+ return Array.from(callerMap.values());
517
+ }
518
+ }
519
+ //# sourceMappingURL=module-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-repository.js","sourceRoot":"","sources":["../../../src/db/repositories/module-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ import type Database from 'better-sqlite3';
2
+ import type { EnhancedRelationshipContext, RelationshipAnnotation, RelationshipType, RelationshipWithDetails } from '../schema.js';
3
+ export interface UnannotatedInheritance {
4
+ id: number;
5
+ fromId: number;
6
+ fromName: string;
7
+ fromKind: string;
8
+ fromFilePath: string;
9
+ toId: number;
10
+ toName: string;
11
+ toKind: string;
12
+ toFilePath: string;
13
+ relationshipType: 'extends' | 'implements';
14
+ }
15
+ export interface UnannotatedRelationship {
16
+ fromDefinitionId: number;
17
+ fromName: string;
18
+ fromKind: string;
19
+ fromFilePath: string;
20
+ fromLine: number;
21
+ toDefinitionId: number;
22
+ toName: string;
23
+ toKind: string;
24
+ toFilePath: string;
25
+ toLine: number;
26
+ }
27
+ /**
28
+ * Repository for relationship annotation operations.
29
+ * Handles CRUD operations for the relationship_annotations table.
30
+ */
31
+ export declare class RelationshipRepository {
32
+ private db;
33
+ constructor(db: Database.Database);
34
+ /**
35
+ * Set (insert or update) a semantic annotation for a relationship between two definitions.
36
+ */
37
+ set(fromDefinitionId: number, toDefinitionId: number, semantic: string, relationshipType?: RelationshipType): void;
38
+ /**
39
+ * Get a relationship annotation between two definitions.
40
+ */
41
+ get(fromDefinitionId: number, toDefinitionId: number): RelationshipAnnotation | null;
42
+ /**
43
+ * Update only the relationship type for an existing annotation.
44
+ */
45
+ updateType(fromDefinitionId: number, toDefinitionId: number, relationshipType: RelationshipType): boolean;
46
+ /**
47
+ * Remove a relationship annotation.
48
+ */
49
+ remove(fromDefinitionId: number, toDefinitionId: number): boolean;
50
+ /**
51
+ * Get all relationship annotations from a specific definition.
52
+ */
53
+ getFrom(fromDefinitionId: number): RelationshipWithDetails[];
54
+ /**
55
+ * Get all relationship annotations to a specific definition.
56
+ */
57
+ getTo(toDefinitionId: number): RelationshipWithDetails[];
58
+ /**
59
+ * Get all relationship annotations.
60
+ */
61
+ getAll(options?: {
62
+ limit?: number;
63
+ }): RelationshipWithDetails[];
64
+ /**
65
+ * Get count of relationship annotations.
66
+ */
67
+ getCount(): number;
68
+ /**
69
+ * Get unannotated inheritance relationships (extends/implements with placeholder semantic).
70
+ */
71
+ getUnannotatedInheritance(limit?: number): UnannotatedInheritance[];
72
+ /**
73
+ * Get count of unannotated inheritance relationships.
74
+ */
75
+ getUnannotatedInheritanceCount(): number;
76
+ /**
77
+ * Get definitions that have calls to other definitions but no annotation.
78
+ */
79
+ getUnannotated(options?: {
80
+ limit?: number;
81
+ fromDefinitionId?: number;
82
+ }): UnannotatedRelationship[];
83
+ /**
84
+ * Get count of unannotated relationships.
85
+ */
86
+ getUnannotatedCount(fromDefinitionId?: number): number;
87
+ /**
88
+ * Get the next relationship(s) that need annotation with rich context.
89
+ */
90
+ getNextToAnnotate(options: {
91
+ limit?: number;
92
+ fromDefinitionId?: number;
93
+ } | undefined, getDefinitionMetadata: (id: number) => Record<string, string>, getDefinitionDependencies: (id: number) => Array<{
94
+ dependencyId: number;
95
+ name: string;
96
+ }>): EnhancedRelationshipContext[];
97
+ }
98
+ //# sourceMappingURL=relationship-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationship-repository.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/relationship-repository.ts"],"names":[],"mappings":"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"}