@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,78 @@
1
+ import type Database from 'better-sqlite3';
2
+ import type { CallsiteResult, DependencyInfo, DependencyWithMetadata, IncomingDependency, ReadySymbolInfo } from '../schema.js';
3
+ export interface ImportGraphNode {
4
+ id: number;
5
+ name: string;
6
+ kind: string;
7
+ }
8
+ export interface ImportGraphLink {
9
+ source: number;
10
+ target: number;
11
+ type: string;
12
+ }
13
+ export declare class DependencyRepository {
14
+ private db;
15
+ constructor(db: Database.Database);
16
+ getCallsites(definitionId: number): CallsiteResult[];
17
+ getCallsitesForFile(fileId: number): CallsiteResult[];
18
+ getCallsiteCount(): number;
19
+ /**
20
+ * Get incoming dependencies - symbols that use this definition.
21
+ * This finds all definitions that have usages pointing to this definition.
22
+ */
23
+ getIncoming(definitionId: number, limit?: number): IncomingDependency[];
24
+ /**
25
+ * Get count of incoming dependencies - how many symbols use this definition.
26
+ */
27
+ getIncomingCount(definitionId: number): number;
28
+ /**
29
+ * Get all symbols that a definition depends on (uses within its line range).
30
+ * This finds usages within the definition's code that reference other definitions.
31
+ */
32
+ getForDefinition(definitionId: number): DependencyInfo[];
33
+ /**
34
+ * Get dependencies with their metadata status for a specific aspect.
35
+ * Combines dependency lookup with metadata check in a single efficient query.
36
+ */
37
+ getWithMetadata(definitionId: number, aspect?: string): DependencyWithMetadata[];
38
+ /**
39
+ * Get dependencies that don't have a specific aspect set.
40
+ * Orders by dependency count (leaf nodes first) for topological processing.
41
+ */
42
+ getUnmet(definitionId: number, aspect: string): DependencyInfo[];
43
+ /**
44
+ * Get the full prerequisite chain for understanding a symbol.
45
+ * Returns unmet dependencies in topological order (leaves first).
46
+ * Handles circular dependencies by tracking visited nodes.
47
+ */
48
+ getPrerequisiteChain(definitionId: number, aspect: string, getDefinitionById: (id: number) => {
49
+ name: string;
50
+ kind: string;
51
+ filePath: string;
52
+ line: number;
53
+ } | null): Array<DependencyInfo & {
54
+ unmetDepCount: number;
55
+ }>;
56
+ /**
57
+ * Find symbols that are "ready to understand" for a given aspect.
58
+ * A symbol is ready when all its dependencies already have the aspect set (or it has no dependencies).
59
+ * Excludes symbols that already have the aspect set.
60
+ */
61
+ getReadySymbols(aspect: string, options?: {
62
+ limit?: number;
63
+ kind?: string;
64
+ filePattern?: string;
65
+ }): {
66
+ symbols: ReadySymbolInfo[];
67
+ totalReady: number;
68
+ remaining: number;
69
+ };
70
+ /**
71
+ * Get import dependency graph data for D3 visualization
72
+ */
73
+ getImportGraph(): {
74
+ nodes: ImportGraphNode[];
75
+ links: ImportGraphLink[];
76
+ };
77
+ }
78
+ //# sourceMappingURL=dependency-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-repository.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/dependency-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EAChB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEzC,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,EAAE;IA6EpD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE;IAsDrD,gBAAgB,IAAI,MAAM;IAU1B;;;OAGG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,kBAAkB,EAAE;IAwBlE;;OAEG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAiB9C;;;OAGG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,EAAE;IA2BxD;;;OAGG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,EAAE;IA8ChF;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE;IA6BhE;;;;OAIG;IACH,oBAAoB,CAClB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GACvG,KAAK,CAAC,cAAc,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IA8CpD;;;;OAIG;IACH,eAAe,CACb,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAChE;QAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAyHxE;;OAEG;IACH,cAAc,IAAI;QAChB,KAAK,EAAE,eAAe,EAAE,CAAC;QACzB,KAAK,EAAE,eAAe,EAAE,CAAC;KAC1B;CAkBF"}
@@ -0,0 +1,446 @@
1
+ export class DependencyRepository {
2
+ db;
3
+ constructor(db) {
4
+ this.db = db;
5
+ }
6
+ getCallsites(definitionId) {
7
+ // Query for both imported and internal call sites using UNION
8
+ const stmt = this.db.prepare(`
9
+ SELECT
10
+ u.id as usage_id,
11
+ u.symbol_id,
12
+ s.definition_id,
13
+ f.path as file_path,
14
+ u.line,
15
+ u.column,
16
+ s.name as symbol_name,
17
+ s.local_name,
18
+ u.argument_count,
19
+ u.is_method_call,
20
+ u.is_constructor_call,
21
+ u.receiver_name
22
+ FROM usages u
23
+ JOIN symbols s ON u.symbol_id = s.id
24
+ JOIN imports i ON s.reference_id = i.id
25
+ JOIN files f ON i.from_file_id = f.id
26
+ WHERE s.definition_id = ?
27
+ AND (u.context = 'call_expression' OR u.context = 'new_expression')
28
+ AND u.argument_count IS NOT NULL
29
+ UNION ALL
30
+ SELECT
31
+ u.id as usage_id,
32
+ u.symbol_id,
33
+ s.definition_id,
34
+ f.path as file_path,
35
+ u.line,
36
+ u.column,
37
+ s.name as symbol_name,
38
+ s.local_name,
39
+ u.argument_count,
40
+ u.is_method_call,
41
+ u.is_constructor_call,
42
+ u.receiver_name
43
+ FROM usages u
44
+ JOIN symbols s ON u.symbol_id = s.id
45
+ JOIN files f ON s.file_id = f.id
46
+ WHERE s.definition_id = ?
47
+ AND s.reference_id IS NULL
48
+ AND (u.context = 'call_expression' OR u.context = 'new_expression')
49
+ AND u.argument_count IS NOT NULL
50
+ ORDER BY file_path, line
51
+ `);
52
+ const rows = stmt.all(definitionId, definitionId);
53
+ return rows.map((row) => ({
54
+ usageId: row.usage_id,
55
+ symbolId: row.symbol_id,
56
+ definitionId: row.definition_id,
57
+ filePath: row.file_path,
58
+ line: row.line,
59
+ column: row.column,
60
+ symbolName: row.symbol_name,
61
+ localName: row.local_name,
62
+ argumentCount: row.argument_count,
63
+ isMethodCall: row.is_method_call === 1,
64
+ isConstructorCall: row.is_constructor_call === 1,
65
+ receiverName: row.receiver_name,
66
+ }));
67
+ }
68
+ getCallsitesForFile(fileId) {
69
+ const stmt = this.db.prepare(`
70
+ SELECT
71
+ u.id as usage_id,
72
+ u.symbol_id,
73
+ s.definition_id,
74
+ f.path as file_path,
75
+ u.line,
76
+ u.column,
77
+ s.name as symbol_name,
78
+ s.local_name,
79
+ u.argument_count,
80
+ u.is_method_call,
81
+ u.is_constructor_call,
82
+ u.receiver_name
83
+ FROM usages u
84
+ JOIN symbols s ON u.symbol_id = s.id
85
+ JOIN imports i ON s.reference_id = i.id
86
+ JOIN files f ON i.from_file_id = f.id
87
+ WHERE i.from_file_id = ?
88
+ AND (u.context = 'call_expression' OR u.context = 'new_expression')
89
+ AND u.argument_count IS NOT NULL
90
+ `);
91
+ const rows = stmt.all(fileId);
92
+ return rows.map((row) => ({
93
+ usageId: row.usage_id,
94
+ symbolId: row.symbol_id,
95
+ definitionId: row.definition_id,
96
+ filePath: row.file_path,
97
+ line: row.line,
98
+ column: row.column,
99
+ symbolName: row.symbol_name,
100
+ localName: row.local_name,
101
+ argumentCount: row.argument_count,
102
+ isMethodCall: row.is_method_call === 1,
103
+ isConstructorCall: row.is_constructor_call === 1,
104
+ receiverName: row.receiver_name,
105
+ }));
106
+ }
107
+ getCallsiteCount() {
108
+ const stmt = this.db.prepare(`
109
+ SELECT COUNT(*) as count FROM usages
110
+ WHERE (context = 'call_expression' OR context = 'new_expression')
111
+ AND argument_count IS NOT NULL
112
+ `);
113
+ const row = stmt.get();
114
+ return row.count;
115
+ }
116
+ /**
117
+ * Get incoming dependencies - symbols that use this definition.
118
+ * This finds all definitions that have usages pointing to this definition.
119
+ */
120
+ getIncoming(definitionId, limit = 5) {
121
+ const stmt = this.db.prepare(`
122
+ SELECT DISTINCT
123
+ caller.id,
124
+ caller.name,
125
+ caller.kind,
126
+ f.path as filePath,
127
+ caller.line
128
+ FROM definitions caller
129
+ JOIN files f ON caller.file_id = f.id
130
+ JOIN usages u ON u.line >= caller.line AND u.line <= caller.end_line
131
+ JOIN symbols s ON u.symbol_id = s.id
132
+ WHERE s.definition_id = ?
133
+ AND caller.id != ?
134
+ AND (
135
+ s.reference_id IN (SELECT id FROM imports WHERE from_file_id = caller.file_id)
136
+ OR s.file_id = caller.file_id
137
+ )
138
+ ORDER BY f.path, caller.line
139
+ LIMIT ?
140
+ `);
141
+ return stmt.all(definitionId, definitionId, limit);
142
+ }
143
+ /**
144
+ * Get count of incoming dependencies - how many symbols use this definition.
145
+ */
146
+ getIncomingCount(definitionId) {
147
+ const stmt = this.db.prepare(`
148
+ SELECT COUNT(DISTINCT caller.id) as count
149
+ FROM definitions caller
150
+ JOIN usages u ON u.line >= caller.line AND u.line <= caller.end_line
151
+ JOIN symbols s ON u.symbol_id = s.id
152
+ WHERE s.definition_id = ?
153
+ AND caller.id != ?
154
+ AND (
155
+ s.reference_id IN (SELECT id FROM imports WHERE from_file_id = caller.file_id)
156
+ OR s.file_id = caller.file_id
157
+ )
158
+ `);
159
+ const row = stmt.get(definitionId, definitionId);
160
+ return row.count;
161
+ }
162
+ /**
163
+ * Get all symbols that a definition depends on (uses within its line range).
164
+ * This finds usages within the definition's code that reference other definitions.
165
+ */
166
+ getForDefinition(definitionId) {
167
+ const stmt = this.db.prepare(`
168
+ SELECT DISTINCT
169
+ dep_def.id as dependencyId,
170
+ dep_def.name,
171
+ dep_def.kind,
172
+ dep_f.path as filePath,
173
+ dep_def.line
174
+ FROM definitions source
175
+ JOIN usages u ON u.line >= source.line AND u.line <= source.end_line
176
+ JOIN symbols s ON u.symbol_id = s.id
177
+ JOIN definitions dep_def ON s.definition_id = dep_def.id
178
+ JOIN files dep_f ON dep_def.file_id = dep_f.id
179
+ JOIN files source_f ON source.file_id = source_f.id
180
+ WHERE source.id = ?
181
+ AND dep_def.id != source.id
182
+ AND (
183
+ -- Symbol is from an import in the same file
184
+ s.reference_id IN (SELECT id FROM imports WHERE from_file_id = source.file_id)
185
+ -- Or symbol is internal to the same file
186
+ OR s.file_id = source.file_id
187
+ )
188
+ ORDER BY dep_f.path, dep_def.line
189
+ `);
190
+ return stmt.all(definitionId);
191
+ }
192
+ /**
193
+ * Get dependencies with their metadata status for a specific aspect.
194
+ * Combines dependency lookup with metadata check in a single efficient query.
195
+ */
196
+ getWithMetadata(definitionId, aspect) {
197
+ const sql = `
198
+ SELECT DISTINCT
199
+ dep_def.id,
200
+ dep_def.name,
201
+ dep_def.kind,
202
+ dep_f.path as filePath,
203
+ dep_def.line,
204
+ CASE WHEN dm.value IS NOT NULL THEN 1 ELSE 0 END as hasAspect,
205
+ dm.value as aspectValue
206
+ FROM definitions source
207
+ JOIN usages u ON u.line >= source.line AND u.line <= source.end_line
208
+ JOIN symbols s ON u.symbol_id = s.id
209
+ JOIN definitions dep_def ON s.definition_id = dep_def.id
210
+ JOIN files dep_f ON dep_def.file_id = dep_f.id
211
+ LEFT JOIN definition_metadata dm ON dm.definition_id = dep_def.id AND dm.key = ?
212
+ WHERE source.id = ?
213
+ AND dep_def.id != source.id
214
+ AND (
215
+ s.reference_id IN (SELECT id FROM imports WHERE from_file_id = source.file_id)
216
+ OR s.file_id = source.file_id
217
+ )
218
+ ORDER BY dep_f.path, dep_def.line
219
+ `;
220
+ const stmt = this.db.prepare(sql);
221
+ const rows = stmt.all(aspect ?? '', definitionId);
222
+ return rows.map((row) => ({
223
+ id: row.id,
224
+ name: row.name,
225
+ kind: row.kind,
226
+ filePath: row.filePath,
227
+ line: row.line,
228
+ hasAspect: row.hasAspect === 1,
229
+ aspectValue: row.aspectValue,
230
+ }));
231
+ }
232
+ /**
233
+ * Get dependencies that don't have a specific aspect set.
234
+ * Orders by dependency count (leaf nodes first) for topological processing.
235
+ */
236
+ getUnmet(definitionId, aspect) {
237
+ const sql = `
238
+ WITH has_aspect AS (
239
+ SELECT definition_id FROM definition_metadata WHERE key = ?
240
+ )
241
+ SELECT DISTINCT
242
+ dep_def.id as dependencyId,
243
+ dep_def.name,
244
+ dep_def.kind,
245
+ dep_f.path as filePath,
246
+ dep_def.line
247
+ FROM definitions source
248
+ JOIN usages u ON u.line >= source.line AND u.line <= source.end_line
249
+ JOIN symbols s ON u.symbol_id = s.id
250
+ JOIN definitions dep_def ON s.definition_id = dep_def.id
251
+ JOIN files dep_f ON dep_def.file_id = dep_f.id
252
+ WHERE source.id = ?
253
+ AND dep_def.id != source.id
254
+ AND dep_def.id NOT IN (SELECT definition_id FROM has_aspect)
255
+ AND (
256
+ s.reference_id IN (SELECT id FROM imports WHERE from_file_id = source.file_id)
257
+ OR s.file_id = source.file_id
258
+ )
259
+ ORDER BY dep_f.path, dep_def.line
260
+ `;
261
+ const stmt = this.db.prepare(sql);
262
+ return stmt.all(aspect, definitionId);
263
+ }
264
+ /**
265
+ * Get the full prerequisite chain for understanding a symbol.
266
+ * Returns unmet dependencies in topological order (leaves first).
267
+ * Handles circular dependencies by tracking visited nodes.
268
+ */
269
+ getPrerequisiteChain(definitionId, aspect, getDefinitionById) {
270
+ const visited = new Set();
271
+ const result = [];
272
+ const processNode = (id) => {
273
+ if (visited.has(id))
274
+ return;
275
+ visited.add(id);
276
+ const unmetDeps = this.getUnmet(id, aspect);
277
+ // Process children first (depth-first)
278
+ for (const dep of unmetDeps) {
279
+ if (!visited.has(dep.dependencyId)) {
280
+ processNode(dep.dependencyId);
281
+ }
282
+ }
283
+ // Add this node after its dependencies (unless it's the root)
284
+ if (id !== definitionId) {
285
+ const nodeUnmetDeps = this.getUnmet(id, aspect);
286
+ const def = getDefinitionById(id);
287
+ if (def) {
288
+ result.push({
289
+ dependencyId: id,
290
+ name: def.name,
291
+ kind: def.kind,
292
+ filePath: def.filePath,
293
+ line: def.line,
294
+ unmetDepCount: nodeUnmetDeps.length,
295
+ });
296
+ }
297
+ }
298
+ };
299
+ // Start from the target definition
300
+ const directUnmet = this.getUnmet(definitionId, aspect);
301
+ for (const dep of directUnmet) {
302
+ processNode(dep.dependencyId);
303
+ }
304
+ // Sort by unmet dependency count (leaves first)
305
+ result.sort((a, b) => a.unmetDepCount - b.unmetDepCount);
306
+ return result;
307
+ }
308
+ /**
309
+ * Find symbols that are "ready to understand" for a given aspect.
310
+ * A symbol is ready when all its dependencies already have the aspect set (or it has no dependencies).
311
+ * Excludes symbols that already have the aspect set.
312
+ */
313
+ getReadySymbols(aspect, options) {
314
+ const limit = options?.limit ?? 20;
315
+ // Build filter conditions and collect filter params
316
+ let filterConditions = '';
317
+ const filterParams = [];
318
+ if (options?.kind) {
319
+ filterConditions += ' AND d.kind = ?';
320
+ filterParams.push(options.kind);
321
+ }
322
+ if (options?.filePattern) {
323
+ filterConditions += ' AND f.path LIKE ?';
324
+ filterParams.push(`%${options.filePattern}%`);
325
+ }
326
+ // The main query uses CTEs:
327
+ // 1. understood: definitions that already have the aspect set
328
+ // 2. definition_deps: maps each definition to its dependencies
329
+ // 3. unmet: definitions that have at least one dependency without the aspect
330
+ const sql = `
331
+ WITH understood AS (
332
+ SELECT definition_id FROM definition_metadata WHERE key = ?
333
+ ),
334
+ definition_deps AS (
335
+ SELECT DISTINCT
336
+ source.id as definition_id,
337
+ dep_def.id as dependency_id
338
+ FROM definitions source
339
+ JOIN usages u ON u.line >= source.line AND u.line <= source.end_line
340
+ JOIN symbols s ON u.symbol_id = s.id
341
+ JOIN definitions dep_def ON s.definition_id = dep_def.id
342
+ JOIN files source_f ON source.file_id = source_f.id
343
+ WHERE dep_def.id != source.id
344
+ AND (
345
+ s.reference_id IN (SELECT id FROM imports WHERE from_file_id = source.file_id)
346
+ OR s.file_id = source.file_id
347
+ )
348
+ ),
349
+ unmet AS (
350
+ SELECT DISTINCT definition_id
351
+ FROM definition_deps
352
+ WHERE dependency_id NOT IN (SELECT definition_id FROM understood)
353
+ )
354
+ SELECT
355
+ d.id,
356
+ d.name,
357
+ d.kind,
358
+ f.path as filePath,
359
+ d.line,
360
+ d.end_line as endLine,
361
+ COALESCE(dep_count.cnt, 0) as dependencyCount
362
+ FROM definitions d
363
+ JOIN files f ON d.file_id = f.id
364
+ LEFT JOIN (
365
+ SELECT definition_id, COUNT(*) as cnt
366
+ FROM definition_deps
367
+ GROUP BY definition_id
368
+ ) dep_count ON dep_count.definition_id = d.id
369
+ WHERE d.id NOT IN (SELECT definition_id FROM understood)
370
+ AND d.id NOT IN (SELECT definition_id FROM unmet)
371
+ ${filterConditions}
372
+ ORDER BY dependencyCount ASC, f.path, d.line
373
+ LIMIT ?
374
+ `;
375
+ const params = [aspect, ...filterParams, limit];
376
+ const stmt = this.db.prepare(sql);
377
+ const symbols = stmt.all(...params);
378
+ // Get counts for the summary
379
+ const countSql = `
380
+ WITH understood AS (
381
+ SELECT definition_id FROM definition_metadata WHERE key = ?
382
+ ),
383
+ definition_deps AS (
384
+ SELECT DISTINCT
385
+ source.id as definition_id,
386
+ dep_def.id as dependency_id
387
+ FROM definitions source
388
+ JOIN usages u ON u.line >= source.line AND u.line <= source.end_line
389
+ JOIN symbols s ON u.symbol_id = s.id
390
+ JOIN definitions dep_def ON s.definition_id = dep_def.id
391
+ JOIN files source_f ON source.file_id = source_f.id
392
+ WHERE dep_def.id != source.id
393
+ AND (
394
+ s.reference_id IN (SELECT id FROM imports WHERE from_file_id = source.file_id)
395
+ OR s.file_id = source.file_id
396
+ )
397
+ ),
398
+ unmet AS (
399
+ SELECT DISTINCT definition_id
400
+ FROM definition_deps
401
+ WHERE dependency_id NOT IN (SELECT definition_id FROM understood)
402
+ )
403
+ SELECT
404
+ COUNT(*) as totalReady,
405
+ (SELECT COUNT(*) FROM definitions d2
406
+ JOIN files f2 ON d2.file_id = f2.id
407
+ WHERE d2.id NOT IN (SELECT definition_id FROM understood)
408
+ ${filterConditions.replace(/d\./g, 'd2.').replace(/f\./g, 'f2.')}
409
+ ) as totalRemaining
410
+ FROM definitions d
411
+ JOIN files f ON d.file_id = f.id
412
+ WHERE d.id NOT IN (SELECT definition_id FROM understood)
413
+ AND d.id NOT IN (SELECT definition_id FROM unmet)
414
+ ${filterConditions}
415
+ `;
416
+ // Params: aspect, then filterParams for subquery, then filterParams for main WHERE
417
+ const countParams = [aspect, ...filterParams, ...filterParams];
418
+ const countStmt = this.db.prepare(countSql);
419
+ const countResult = countStmt.get(...countParams);
420
+ return {
421
+ symbols,
422
+ totalReady: countResult.totalReady,
423
+ remaining: countResult.totalRemaining - countResult.totalReady,
424
+ };
425
+ }
426
+ /**
427
+ * Get import dependency graph data for D3 visualization
428
+ */
429
+ getImportGraph() {
430
+ // Get all files as nodes
431
+ const nodesStmt = this.db.prepare(`
432
+ SELECT id, path as name, 'file' as kind
433
+ FROM files
434
+ `);
435
+ const nodes = nodesStmt.all();
436
+ // Get all internal imports as links
437
+ const linksStmt = this.db.prepare(`
438
+ SELECT DISTINCT from_file_id as source, to_file_id as target, type
439
+ FROM imports
440
+ WHERE to_file_id IS NOT NULL
441
+ `);
442
+ const links = linksStmt.all();
443
+ return { nodes, links };
444
+ }
445
+ }
446
+ //# sourceMappingURL=dependency-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-repository.js","sourceRoot":"","sources":["../../../src/db/repositories/dependency-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import type Database from 'better-sqlite3';
2
+ import type { Domain, DomainWithCount } from '../schema.js';
3
+ /**
4
+ * Repository for domain registry operations.
5
+ * Handles CRUD operations for the domains table and domain-related queries.
6
+ */
7
+ export declare class DomainRepository {
8
+ private db;
9
+ private metadata;
10
+ constructor(db: Database.Database);
11
+ /**
12
+ * Add a new domain to the registry.
13
+ * @returns The domain ID if created, or null if already exists.
14
+ */
15
+ add(name: string, description?: string): number | null;
16
+ /**
17
+ * Get a domain by name.
18
+ */
19
+ get(name: string): Domain | null;
20
+ /**
21
+ * Get all domains from the registry.
22
+ */
23
+ getAll(): Domain[];
24
+ /**
25
+ * Get all domains with their symbol counts.
26
+ */
27
+ getAllWithCounts(): DomainWithCount[];
28
+ /**
29
+ * Update a domain's description.
30
+ */
31
+ updateDescription(name: string, description: string): boolean;
32
+ /**
33
+ * Rename a domain in both the registry and all symbol metadata.
34
+ * @returns Number of symbols updated.
35
+ */
36
+ rename(oldName: string, newName: string): {
37
+ updated: boolean;
38
+ symbolsUpdated: number;
39
+ };
40
+ /**
41
+ * Merge one domain into another. The source domain is removed from all symbols
42
+ * and replaced with the target domain.
43
+ * @returns Number of symbols updated.
44
+ */
45
+ merge(fromName: string, intoName: string): {
46
+ symbolsUpdated: number;
47
+ registryRemoved: boolean;
48
+ };
49
+ /**
50
+ * Remove a domain from the registry.
51
+ * @param force If true, removes even if symbols still use this domain.
52
+ * @returns Object with removed status and count of symbols still using the domain.
53
+ */
54
+ remove(name: string, force?: boolean): {
55
+ removed: boolean;
56
+ symbolsUsingDomain: number;
57
+ };
58
+ /**
59
+ * Sync all domains currently in use to the registry.
60
+ * Registers any domain found in symbol metadata that isn't already registered.
61
+ * @returns Array of newly registered domain names.
62
+ */
63
+ syncFromMetadata(): string[];
64
+ /**
65
+ * Get all unregistered domains currently in use.
66
+ */
67
+ getUnregistered(): string[];
68
+ /**
69
+ * Check if a domain is registered.
70
+ */
71
+ isRegistered(name: string): boolean;
72
+ /**
73
+ * Get symbols that have a specific domain tag.
74
+ * Domain is stored as a JSON array in the 'domain' metadata key.
75
+ */
76
+ getSymbolsByDomain(domain: string): Array<{
77
+ id: number;
78
+ name: string;
79
+ kind: string;
80
+ filePath: string;
81
+ line: number;
82
+ domains: string[];
83
+ purpose: string | null;
84
+ }>;
85
+ /**
86
+ * Get symbols filtered by purity (pure = no side effects).
87
+ */
88
+ getSymbolsByPurity(isPure: boolean): Array<{
89
+ id: number;
90
+ name: string;
91
+ kind: string;
92
+ filePath: string;
93
+ line: number;
94
+ purpose: string | null;
95
+ }>;
96
+ }
97
+ //# sourceMappingURL=domain-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-repository.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/domain-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG5D;;;GAGG;AACH,qBAAa,gBAAgB;IAGf,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,QAAQ,CAAqB;gBAEjB,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAIzC;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiBtD;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAUhC;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE;IASlB;;OAEG;IACH,gBAAgB,IAAI,eAAe,EAAE;IA+BrC;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAS7D;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAwCtF;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE;IA6C/F;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE;IAsBrF;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAuB5B;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAO3B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQnC;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;QACxC,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IAIF;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC;QACzC,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;CAGH"}