cotx-engine 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/LICENSE +94 -0
  2. package/README.md +103 -0
  3. package/dist/commands/compile.d.ts +3 -0
  4. package/dist/commands/compile.js +93 -0
  5. package/dist/commands/compile.js.map +1 -0
  6. package/dist/commands/context.d.ts +1 -0
  7. package/dist/commands/context.js +98 -0
  8. package/dist/commands/context.js.map +1 -0
  9. package/dist/commands/diff.d.ts +19 -0
  10. package/dist/commands/diff.js +127 -0
  11. package/dist/commands/diff.js.map +1 -0
  12. package/dist/commands/impact.d.ts +3 -0
  13. package/dist/commands/impact.js +91 -0
  14. package/dist/commands/impact.js.map +1 -0
  15. package/dist/commands/init.d.ts +1 -0
  16. package/dist/commands/init.js +13 -0
  17. package/dist/commands/init.js.map +1 -0
  18. package/dist/commands/lint.d.ts +13 -0
  19. package/dist/commands/lint.js +290 -0
  20. package/dist/commands/lint.js.map +1 -0
  21. package/dist/commands/map.d.ts +6 -0
  22. package/dist/commands/map.js +409 -0
  23. package/dist/commands/map.js.map +1 -0
  24. package/dist/commands/migrate.d.ts +16 -0
  25. package/dist/commands/migrate.js +150 -0
  26. package/dist/commands/migrate.js.map +1 -0
  27. package/dist/commands/query.d.ts +3 -0
  28. package/dist/commands/query.js +47 -0
  29. package/dist/commands/query.js.map +1 -0
  30. package/dist/commands/rename.d.ts +5 -0
  31. package/dist/commands/rename.js +163 -0
  32. package/dist/commands/rename.js.map +1 -0
  33. package/dist/commands/snapshot.d.ts +6 -0
  34. package/dist/commands/snapshot.js +48 -0
  35. package/dist/commands/snapshot.js.map +1 -0
  36. package/dist/commands/status.d.ts +1 -0
  37. package/dist/commands/status.js +72 -0
  38. package/dist/commands/status.js.map +1 -0
  39. package/dist/commands/update.d.ts +8 -0
  40. package/dist/commands/update.js +163 -0
  41. package/dist/commands/update.js.map +1 -0
  42. package/dist/commands/write.d.ts +6 -0
  43. package/dist/commands/write.js +221 -0
  44. package/dist/commands/write.js.map +1 -0
  45. package/dist/compiler/auto-describe.d.ts +13 -0
  46. package/dist/compiler/auto-describe.js +91 -0
  47. package/dist/compiler/auto-describe.js.map +1 -0
  48. package/dist/compiler/concept-compiler.d.ts +21 -0
  49. package/dist/compiler/concept-compiler.js +125 -0
  50. package/dist/compiler/concept-compiler.js.map +1 -0
  51. package/dist/compiler/contract-compiler.d.ts +16 -0
  52. package/dist/compiler/contract-compiler.js +90 -0
  53. package/dist/compiler/contract-compiler.js.map +1 -0
  54. package/dist/compiler/delta-detector.d.ts +8 -0
  55. package/dist/compiler/delta-detector.js +34 -0
  56. package/dist/compiler/delta-detector.js.map +1 -0
  57. package/dist/compiler/flow-compiler.d.ts +18 -0
  58. package/dist/compiler/flow-compiler.js +69 -0
  59. package/dist/compiler/flow-compiler.js.map +1 -0
  60. package/dist/compiler/module-compiler.d.ts +18 -0
  61. package/dist/compiler/module-compiler.js +420 -0
  62. package/dist/compiler/module-compiler.js.map +1 -0
  63. package/dist/compiler/stale-detector.d.ts +22 -0
  64. package/dist/compiler/stale-detector.js +79 -0
  65. package/dist/compiler/stale-detector.js.map +1 -0
  66. package/dist/config/ignore-service.d.ts +26 -0
  67. package/dist/config/ignore-service.js +366 -0
  68. package/dist/config/ignore-service.js.map +1 -0
  69. package/dist/core/analysis/cluster-enricher.d.ts +38 -0
  70. package/dist/core/analysis/cluster-enricher.js +169 -0
  71. package/dist/core/analysis/cluster-enricher.js.map +1 -0
  72. package/dist/core/analysis/community-processor.d.ts +39 -0
  73. package/dist/core/analysis/community-processor.js +319 -0
  74. package/dist/core/analysis/community-processor.js.map +1 -0
  75. package/dist/core/analysis/process-processor.d.ts +51 -0
  76. package/dist/core/analysis/process-processor.js +318 -0
  77. package/dist/core/analysis/process-processor.js.map +1 -0
  78. package/dist/core/bridge.d.ts +15 -0
  79. package/dist/core/bridge.js +63 -0
  80. package/dist/core/bridge.js.map +1 -0
  81. package/dist/core/export/json-exporter.d.ts +43 -0
  82. package/dist/core/export/json-exporter.js +13 -0
  83. package/dist/core/export/json-exporter.js.map +1 -0
  84. package/dist/core/graph/graph.d.ts +2 -0
  85. package/dist/core/graph/graph.js +79 -0
  86. package/dist/core/graph/graph.js.map +1 -0
  87. package/dist/core/graph/types.d.ts +25 -0
  88. package/dist/core/graph/types.js +2 -0
  89. package/dist/core/graph/types.js.map +1 -0
  90. package/dist/core/parser/ast-cache.d.ts +11 -0
  91. package/dist/core/parser/ast-cache.js +36 -0
  92. package/dist/core/parser/ast-cache.js.map +1 -0
  93. package/dist/core/parser/call-processor.d.ts +105 -0
  94. package/dist/core/parser/call-processor.js +1807 -0
  95. package/dist/core/parser/call-processor.js.map +1 -0
  96. package/dist/core/parser/call-routing.d.ts +55 -0
  97. package/dist/core/parser/call-routing.js +113 -0
  98. package/dist/core/parser/call-routing.js.map +1 -0
  99. package/dist/core/parser/call-sites/extract-language-call-site.d.ts +10 -0
  100. package/dist/core/parser/call-sites/extract-language-call-site.js +23 -0
  101. package/dist/core/parser/call-sites/extract-language-call-site.js.map +1 -0
  102. package/dist/core/parser/call-sites/java.d.ts +9 -0
  103. package/dist/core/parser/call-sites/java.js +31 -0
  104. package/dist/core/parser/call-sites/java.js.map +1 -0
  105. package/dist/core/parser/cluster-enricher.d.ts +38 -0
  106. package/dist/core/parser/cluster-enricher.js +169 -0
  107. package/dist/core/parser/cluster-enricher.js.map +1 -0
  108. package/dist/core/parser/community-processor.d.ts +39 -0
  109. package/dist/core/parser/community-processor.js +321 -0
  110. package/dist/core/parser/community-processor.js.map +1 -0
  111. package/dist/core/parser/constants.d.ts +16 -0
  112. package/dist/core/parser/constants.js +17 -0
  113. package/dist/core/parser/constants.js.map +1 -0
  114. package/dist/core/parser/entry-point-scoring.d.ts +57 -0
  115. package/dist/core/parser/entry-point-scoring.js +377 -0
  116. package/dist/core/parser/entry-point-scoring.js.map +1 -0
  117. package/dist/core/parser/export-detection.d.ts +57 -0
  118. package/dist/core/parser/export-detection.js +234 -0
  119. package/dist/core/parser/export-detection.js.map +1 -0
  120. package/dist/core/parser/field-extractor.d.ts +34 -0
  121. package/dist/core/parser/field-extractor.js +33 -0
  122. package/dist/core/parser/field-extractor.js.map +1 -0
  123. package/dist/core/parser/field-extractors/configs/c-cpp.d.ts +16 -0
  124. package/dist/core/parser/field-extractors/configs/c-cpp.js +129 -0
  125. package/dist/core/parser/field-extractors/configs/c-cpp.js.map +1 -0
  126. package/dist/core/parser/field-extractors/configs/csharp.d.ts +15 -0
  127. package/dist/core/parser/field-extractors/configs/csharp.js +129 -0
  128. package/dist/core/parser/field-extractors/configs/csharp.js.map +1 -0
  129. package/dist/core/parser/field-extractors/configs/dart.d.ts +12 -0
  130. package/dist/core/parser/field-extractors/configs/dart.js +93 -0
  131. package/dist/core/parser/field-extractors/configs/dart.js.map +1 -0
  132. package/dist/core/parser/field-extractors/configs/go.d.ts +12 -0
  133. package/dist/core/parser/field-extractors/configs/go.js +66 -0
  134. package/dist/core/parser/field-extractors/configs/go.js.map +1 -0
  135. package/dist/core/parser/field-extractors/configs/helpers.d.ts +40 -0
  136. package/dist/core/parser/field-extractors/configs/helpers.js +118 -0
  137. package/dist/core/parser/field-extractors/configs/helpers.js.map +1 -0
  138. package/dist/core/parser/field-extractors/configs/jvm.d.ts +17 -0
  139. package/dist/core/parser/field-extractors/configs/jvm.js +139 -0
  140. package/dist/core/parser/field-extractors/configs/jvm.js.map +1 -0
  141. package/dist/core/parser/field-extractors/configs/php.d.ts +12 -0
  142. package/dist/core/parser/field-extractors/configs/php.js +69 -0
  143. package/dist/core/parser/field-extractors/configs/php.js.map +1 -0
  144. package/dist/core/parser/field-extractors/configs/python.d.ts +15 -0
  145. package/dist/core/parser/field-extractors/configs/python.js +92 -0
  146. package/dist/core/parser/field-extractors/configs/python.js.map +1 -0
  147. package/dist/core/parser/field-extractors/configs/ruby.d.ts +15 -0
  148. package/dist/core/parser/field-extractors/configs/ruby.js +68 -0
  149. package/dist/core/parser/field-extractors/configs/ruby.js.map +1 -0
  150. package/dist/core/parser/field-extractors/configs/rust.d.ts +12 -0
  151. package/dist/core/parser/field-extractors/configs/rust.js +58 -0
  152. package/dist/core/parser/field-extractors/configs/rust.js.map +1 -0
  153. package/dist/core/parser/field-extractors/configs/swift.d.ts +15 -0
  154. package/dist/core/parser/field-extractors/configs/swift.js +75 -0
  155. package/dist/core/parser/field-extractors/configs/swift.js.map +1 -0
  156. package/dist/core/parser/field-extractors/configs/typescript-javascript.d.ts +14 -0
  157. package/dist/core/parser/field-extractors/configs/typescript-javascript.js +72 -0
  158. package/dist/core/parser/field-extractors/configs/typescript-javascript.js.map +1 -0
  159. package/dist/core/parser/field-extractors/generic.d.ts +61 -0
  160. package/dist/core/parser/field-extractors/generic.js +170 -0
  161. package/dist/core/parser/field-extractors/generic.js.map +1 -0
  162. package/dist/core/parser/field-extractors/typescript.d.ts +16 -0
  163. package/dist/core/parser/field-extractors/typescript.js +167 -0
  164. package/dist/core/parser/field-extractors/typescript.js.map +1 -0
  165. package/dist/core/parser/field-types.d.ts +46 -0
  166. package/dist/core/parser/field-types.js +2 -0
  167. package/dist/core/parser/field-types.js.map +1 -0
  168. package/dist/core/parser/filesystem-walker.d.ts +28 -0
  169. package/dist/core/parser/filesystem-walker.js +82 -0
  170. package/dist/core/parser/filesystem-walker.js.map +1 -0
  171. package/dist/core/parser/framework-detection.d.ts +149 -0
  172. package/dist/core/parser/framework-detection.js +782 -0
  173. package/dist/core/parser/framework-detection.js.map +1 -0
  174. package/dist/core/parser/heritage-processor.d.ts +52 -0
  175. package/dist/core/parser/heritage-processor.js +339 -0
  176. package/dist/core/parser/heritage-processor.js.map +1 -0
  177. package/dist/core/parser/import-processor.d.ts +33 -0
  178. package/dist/core/parser/import-processor.js +382 -0
  179. package/dist/core/parser/import-processor.js.map +1 -0
  180. package/dist/core/parser/import-resolvers/csharp.d.ts +19 -0
  181. package/dist/core/parser/import-resolvers/csharp.js +132 -0
  182. package/dist/core/parser/import-resolvers/csharp.js.map +1 -0
  183. package/dist/core/parser/import-resolvers/dart.d.ts +7 -0
  184. package/dist/core/parser/import-resolvers/dart.js +45 -0
  185. package/dist/core/parser/import-resolvers/dart.js.map +1 -0
  186. package/dist/core/parser/import-resolvers/go.d.ts +18 -0
  187. package/dist/core/parser/import-resolvers/go.js +62 -0
  188. package/dist/core/parser/import-resolvers/go.js.map +1 -0
  189. package/dist/core/parser/import-resolvers/jvm.d.ts +32 -0
  190. package/dist/core/parser/import-resolvers/jvm.js +160 -0
  191. package/dist/core/parser/import-resolvers/jvm.js.map +1 -0
  192. package/dist/core/parser/import-resolvers/php.d.ts +25 -0
  193. package/dist/core/parser/import-resolvers/php.js +81 -0
  194. package/dist/core/parser/import-resolvers/php.js.map +1 -0
  195. package/dist/core/parser/import-resolvers/python.d.ts +25 -0
  196. package/dist/core/parser/import-resolvers/python.js +85 -0
  197. package/dist/core/parser/import-resolvers/python.js.map +1 -0
  198. package/dist/core/parser/import-resolvers/ruby.d.ts +15 -0
  199. package/dist/core/parser/import-resolvers/ruby.js +21 -0
  200. package/dist/core/parser/import-resolvers/ruby.js.map +1 -0
  201. package/dist/core/parser/import-resolvers/rust.d.ts +18 -0
  202. package/dist/core/parser/import-resolvers/rust.js +119 -0
  203. package/dist/core/parser/import-resolvers/rust.js.map +1 -0
  204. package/dist/core/parser/import-resolvers/standard.d.ts +36 -0
  205. package/dist/core/parser/import-resolvers/standard.js +144 -0
  206. package/dist/core/parser/import-resolvers/standard.js.map +1 -0
  207. package/dist/core/parser/import-resolvers/swift.d.ts +7 -0
  208. package/dist/core/parser/import-resolvers/swift.js +25 -0
  209. package/dist/core/parser/import-resolvers/swift.js.map +1 -0
  210. package/dist/core/parser/import-resolvers/types.d.ts +44 -0
  211. package/dist/core/parser/import-resolvers/types.js +7 -0
  212. package/dist/core/parser/import-resolvers/types.js.map +1 -0
  213. package/dist/core/parser/import-resolvers/utils.d.ts +35 -0
  214. package/dist/core/parser/import-resolvers/utils.js +150 -0
  215. package/dist/core/parser/import-resolvers/utils.js.map +1 -0
  216. package/dist/core/parser/import-resolvers/vue.d.ts +8 -0
  217. package/dist/core/parser/import-resolvers/vue.js +10 -0
  218. package/dist/core/parser/import-resolvers/vue.js.map +1 -0
  219. package/dist/core/parser/language-config.d.ts +52 -0
  220. package/dist/core/parser/language-config.js +182 -0
  221. package/dist/core/parser/language-config.js.map +1 -0
  222. package/dist/core/parser/language-provider.d.ts +126 -0
  223. package/dist/core/parser/language-provider.js +25 -0
  224. package/dist/core/parser/language-provider.js.map +1 -0
  225. package/dist/core/parser/languages/c-cpp.d.ts +12 -0
  226. package/dist/core/parser/languages/c-cpp.js +312 -0
  227. package/dist/core/parser/languages/c-cpp.js.map +1 -0
  228. package/dist/core/parser/languages/csharp.d.ts +8 -0
  229. package/dist/core/parser/languages/csharp.js +127 -0
  230. package/dist/core/parser/languages/csharp.js.map +1 -0
  231. package/dist/core/parser/languages/dart.d.ts +12 -0
  232. package/dist/core/parser/languages/dart.js +91 -0
  233. package/dist/core/parser/languages/dart.js.map +1 -0
  234. package/dist/core/parser/languages/go.d.ts +11 -0
  235. package/dist/core/parser/languages/go.js +32 -0
  236. package/dist/core/parser/languages/go.js.map +1 -0
  237. package/dist/core/parser/languages/index.d.ts +38 -0
  238. package/dist/core/parser/languages/index.js +63 -0
  239. package/dist/core/parser/languages/index.js.map +1 -0
  240. package/dist/core/parser/languages/java.d.ts +9 -0
  241. package/dist/core/parser/languages/java.js +33 -0
  242. package/dist/core/parser/languages/java.js.map +1 -0
  243. package/dist/core/parser/languages/kotlin.d.ts +9 -0
  244. package/dist/core/parser/languages/kotlin.js +112 -0
  245. package/dist/core/parser/languages/kotlin.js.map +1 -0
  246. package/dist/core/parser/languages/php.d.ts +8 -0
  247. package/dist/core/parser/languages/php.js +226 -0
  248. package/dist/core/parser/languages/php.js.map +1 -0
  249. package/dist/core/parser/languages/python.d.ts +12 -0
  250. package/dist/core/parser/languages/python.js +66 -0
  251. package/dist/core/parser/languages/python.js.map +1 -0
  252. package/dist/core/parser/languages/ruby.d.ts +9 -0
  253. package/dist/core/parser/languages/ruby.js +109 -0
  254. package/dist/core/parser/languages/ruby.js.map +1 -0
  255. package/dist/core/parser/languages/rust.d.ts +12 -0
  256. package/dist/core/parser/languages/rust.js +121 -0
  257. package/dist/core/parser/languages/rust.js.map +1 -0
  258. package/dist/core/parser/languages/swift.d.ts +12 -0
  259. package/dist/core/parser/languages/swift.js +233 -0
  260. package/dist/core/parser/languages/swift.js.map +1 -0
  261. package/dist/core/parser/languages/typescript.d.ts +11 -0
  262. package/dist/core/parser/languages/typescript.js +169 -0
  263. package/dist/core/parser/languages/typescript.js.map +1 -0
  264. package/dist/core/parser/languages/vue.d.ts +13 -0
  265. package/dist/core/parser/languages/vue.js +65 -0
  266. package/dist/core/parser/languages/vue.js.map +1 -0
  267. package/dist/core/parser/markdown-processor.d.ts +17 -0
  268. package/dist/core/parser/markdown-processor.js +125 -0
  269. package/dist/core/parser/markdown-processor.js.map +1 -0
  270. package/dist/core/parser/method-extractors/configs/c-cpp.d.ts +3 -0
  271. package/dist/core/parser/method-extractors/configs/c-cpp.js +276 -0
  272. package/dist/core/parser/method-extractors/configs/c-cpp.js.map +1 -0
  273. package/dist/core/parser/method-extractors/configs/csharp.d.ts +2 -0
  274. package/dist/core/parser/method-extractors/configs/csharp.js +243 -0
  275. package/dist/core/parser/method-extractors/configs/csharp.js.map +1 -0
  276. package/dist/core/parser/method-extractors/configs/dart.d.ts +2 -0
  277. package/dist/core/parser/method-extractors/configs/dart.js +263 -0
  278. package/dist/core/parser/method-extractors/configs/dart.js.map +1 -0
  279. package/dist/core/parser/method-extractors/configs/go.d.ts +2 -0
  280. package/dist/core/parser/method-extractors/configs/go.js +120 -0
  281. package/dist/core/parser/method-extractors/configs/go.js.map +1 -0
  282. package/dist/core/parser/method-extractors/configs/jvm.d.ts +3 -0
  283. package/dist/core/parser/method-extractors/configs/jvm.js +309 -0
  284. package/dist/core/parser/method-extractors/configs/jvm.js.map +1 -0
  285. package/dist/core/parser/method-extractors/configs/php.d.ts +2 -0
  286. package/dist/core/parser/method-extractors/configs/php.js +243 -0
  287. package/dist/core/parser/method-extractors/configs/php.js.map +1 -0
  288. package/dist/core/parser/method-extractors/configs/python.d.ts +2 -0
  289. package/dist/core/parser/method-extractors/configs/python.js +219 -0
  290. package/dist/core/parser/method-extractors/configs/python.js.map +1 -0
  291. package/dist/core/parser/method-extractors/configs/ruby.d.ts +2 -0
  292. package/dist/core/parser/method-extractors/configs/ruby.js +201 -0
  293. package/dist/core/parser/method-extractors/configs/ruby.js.map +1 -0
  294. package/dist/core/parser/method-extractors/configs/rust.d.ts +2 -0
  295. package/dist/core/parser/method-extractors/configs/rust.js +120 -0
  296. package/dist/core/parser/method-extractors/configs/rust.js.map +1 -0
  297. package/dist/core/parser/method-extractors/configs/swift.d.ts +2 -0
  298. package/dist/core/parser/method-extractors/configs/swift.js +191 -0
  299. package/dist/core/parser/method-extractors/configs/swift.js.map +1 -0
  300. package/dist/core/parser/method-extractors/configs/typescript-javascript.d.ts +3 -0
  301. package/dist/core/parser/method-extractors/configs/typescript-javascript.js +231 -0
  302. package/dist/core/parser/method-extractors/configs/typescript-javascript.js.map +1 -0
  303. package/dist/core/parser/method-extractors/generic.d.ts +11 -0
  304. package/dist/core/parser/method-extractors/generic.js +162 -0
  305. package/dist/core/parser/method-extractors/generic.js.map +1 -0
  306. package/dist/core/parser/method-types.d.ts +110 -0
  307. package/dist/core/parser/method-types.js +2 -0
  308. package/dist/core/parser/method-types.js.map +1 -0
  309. package/dist/core/parser/mro-processor.d.ts +46 -0
  310. package/dist/core/parser/mro-processor.js +677 -0
  311. package/dist/core/parser/mro-processor.js.map +1 -0
  312. package/dist/core/parser/named-binding-processor.d.ts +18 -0
  313. package/dist/core/parser/named-binding-processor.js +43 -0
  314. package/dist/core/parser/named-binding-processor.js.map +1 -0
  315. package/dist/core/parser/named-bindings/csharp.d.ts +3 -0
  316. package/dist/core/parser/named-bindings/csharp.js +38 -0
  317. package/dist/core/parser/named-bindings/csharp.js.map +1 -0
  318. package/dist/core/parser/named-bindings/java.d.ts +3 -0
  319. package/dist/core/parser/named-bindings/java.js +30 -0
  320. package/dist/core/parser/named-bindings/java.js.map +1 -0
  321. package/dist/core/parser/named-bindings/kotlin.d.ts +3 -0
  322. package/dist/core/parser/named-bindings/kotlin.js +37 -0
  323. package/dist/core/parser/named-bindings/kotlin.js.map +1 -0
  324. package/dist/core/parser/named-bindings/php.d.ts +3 -0
  325. package/dist/core/parser/named-bindings/php.js +62 -0
  326. package/dist/core/parser/named-bindings/php.js.map +1 -0
  327. package/dist/core/parser/named-bindings/python.d.ts +3 -0
  328. package/dist/core/parser/named-bindings/python.js +50 -0
  329. package/dist/core/parser/named-bindings/python.js.map +1 -0
  330. package/dist/core/parser/named-bindings/rust.d.ts +3 -0
  331. package/dist/core/parser/named-bindings/rust.js +67 -0
  332. package/dist/core/parser/named-bindings/rust.js.map +1 -0
  333. package/dist/core/parser/named-bindings/types.d.ts +16 -0
  334. package/dist/core/parser/named-bindings/types.js +7 -0
  335. package/dist/core/parser/named-bindings/types.js.map +1 -0
  336. package/dist/core/parser/named-bindings/typescript.d.ts +3 -0
  337. package/dist/core/parser/named-bindings/typescript.js +59 -0
  338. package/dist/core/parser/named-bindings/typescript.js.map +1 -0
  339. package/dist/core/parser/parsing-processor.d.ts +23 -0
  340. package/dist/core/parser/parsing-processor.js +464 -0
  341. package/dist/core/parser/parsing-processor.js.map +1 -0
  342. package/dist/core/parser/pipeline.d.ts +17 -0
  343. package/dist/core/parser/pipeline.js +1405 -0
  344. package/dist/core/parser/pipeline.js.map +1 -0
  345. package/dist/core/parser/process-processor.d.ts +51 -0
  346. package/dist/core/parser/process-processor.js +318 -0
  347. package/dist/core/parser/process-processor.js.map +1 -0
  348. package/dist/core/parser/resolution-context.d.ts +58 -0
  349. package/dist/core/parser/resolution-context.js +136 -0
  350. package/dist/core/parser/resolution-context.js.map +1 -0
  351. package/dist/core/parser/route-extractors/expo.d.ts +1 -0
  352. package/dist/core/parser/route-extractors/expo.js +37 -0
  353. package/dist/core/parser/route-extractors/expo.js.map +1 -0
  354. package/dist/core/parser/route-extractors/middleware.d.ts +47 -0
  355. package/dist/core/parser/route-extractors/middleware.js +168 -0
  356. package/dist/core/parser/route-extractors/middleware.js.map +1 -0
  357. package/dist/core/parser/route-extractors/nextjs.d.ts +3 -0
  358. package/dist/core/parser/route-extractors/nextjs.js +77 -0
  359. package/dist/core/parser/route-extractors/nextjs.js.map +1 -0
  360. package/dist/core/parser/route-extractors/php.d.ts +7 -0
  361. package/dist/core/parser/route-extractors/php.js +23 -0
  362. package/dist/core/parser/route-extractors/php.js.map +1 -0
  363. package/dist/core/parser/route-extractors/response-shapes.d.ts +20 -0
  364. package/dist/core/parser/route-extractors/response-shapes.js +295 -0
  365. package/dist/core/parser/route-extractors/response-shapes.js.map +1 -0
  366. package/dist/core/parser/structure-processor.d.ts +2 -0
  367. package/dist/core/parser/structure-processor.js +37 -0
  368. package/dist/core/parser/structure-processor.js.map +1 -0
  369. package/dist/core/parser/symbol-table.d.ts +79 -0
  370. package/dist/core/parser/symbol-table.js +116 -0
  371. package/dist/core/parser/symbol-table.js.map +1 -0
  372. package/dist/core/parser/tree-sitter-queries.d.ts +16 -0
  373. package/dist/core/parser/tree-sitter-queries.js +1180 -0
  374. package/dist/core/parser/tree-sitter-queries.js.map +1 -0
  375. package/dist/core/parser/type-env.d.ts +81 -0
  376. package/dist/core/parser/type-env.js +1048 -0
  377. package/dist/core/parser/type-env.js.map +1 -0
  378. package/dist/core/parser/type-extractors/c-cpp.d.ts +7 -0
  379. package/dist/core/parser/type-extractors/c-cpp.js +533 -0
  380. package/dist/core/parser/type-extractors/c-cpp.js.map +1 -0
  381. package/dist/core/parser/type-extractors/csharp.d.ts +2 -0
  382. package/dist/core/parser/type-extractors/csharp.js +584 -0
  383. package/dist/core/parser/type-extractors/csharp.js.map +1 -0
  384. package/dist/core/parser/type-extractors/dart.d.ts +15 -0
  385. package/dist/core/parser/type-extractors/dart.js +370 -0
  386. package/dist/core/parser/type-extractors/dart.js.map +1 -0
  387. package/dist/core/parser/type-extractors/go.d.ts +2 -0
  388. package/dist/core/parser/type-extractors/go.js +514 -0
  389. package/dist/core/parser/type-extractors/go.js.map +1 -0
  390. package/dist/core/parser/type-extractors/jvm.d.ts +3 -0
  391. package/dist/core/parser/type-extractors/jvm.js +857 -0
  392. package/dist/core/parser/type-extractors/jvm.js.map +1 -0
  393. package/dist/core/parser/type-extractors/php.d.ts +2 -0
  394. package/dist/core/parser/type-extractors/php.js +535 -0
  395. package/dist/core/parser/type-extractors/php.js.map +1 -0
  396. package/dist/core/parser/type-extractors/python.d.ts +2 -0
  397. package/dist/core/parser/type-extractors/python.js +475 -0
  398. package/dist/core/parser/type-extractors/python.js.map +1 -0
  399. package/dist/core/parser/type-extractors/ruby.d.ts +2 -0
  400. package/dist/core/parser/type-extractors/ruby.js +378 -0
  401. package/dist/core/parser/type-extractors/ruby.js.map +1 -0
  402. package/dist/core/parser/type-extractors/rust.d.ts +2 -0
  403. package/dist/core/parser/type-extractors/rust.js +516 -0
  404. package/dist/core/parser/type-extractors/rust.js.map +1 -0
  405. package/dist/core/parser/type-extractors/shared.d.ts +131 -0
  406. package/dist/core/parser/type-extractors/shared.js +797 -0
  407. package/dist/core/parser/type-extractors/shared.js.map +1 -0
  408. package/dist/core/parser/type-extractors/swift.d.ts +2 -0
  409. package/dist/core/parser/type-extractors/swift.js +485 -0
  410. package/dist/core/parser/type-extractors/swift.js.map +1 -0
  411. package/dist/core/parser/type-extractors/types.d.ts +172 -0
  412. package/dist/core/parser/type-extractors/types.js +2 -0
  413. package/dist/core/parser/type-extractors/types.js.map +1 -0
  414. package/dist/core/parser/type-extractors/typescript.d.ts +2 -0
  415. package/dist/core/parser/type-extractors/typescript.js +662 -0
  416. package/dist/core/parser/type-extractors/typescript.js.map +1 -0
  417. package/dist/core/parser/utils/ast-helpers.d.ts +73 -0
  418. package/dist/core/parser/utils/ast-helpers.js +415 -0
  419. package/dist/core/parser/utils/ast-helpers.js.map +1 -0
  420. package/dist/core/parser/utils/call-analysis.d.ts +75 -0
  421. package/dist/core/parser/utils/call-analysis.js +575 -0
  422. package/dist/core/parser/utils/call-analysis.js.map +1 -0
  423. package/dist/core/parser/utils/event-loop.d.ts +5 -0
  424. package/dist/core/parser/utils/event-loop.js +6 -0
  425. package/dist/core/parser/utils/event-loop.js.map +1 -0
  426. package/dist/core/parser/utils/method-props.d.ts +8 -0
  427. package/dist/core/parser/utils/method-props.js +39 -0
  428. package/dist/core/parser/utils/method-props.js.map +1 -0
  429. package/dist/core/parser/utils/verbose.d.ts +1 -0
  430. package/dist/core/parser/utils/verbose.js +8 -0
  431. package/dist/core/parser/utils/verbose.js.map +1 -0
  432. package/dist/core/parser/vue-sfc-extractor.d.ts +44 -0
  433. package/dist/core/parser/vue-sfc-extractor.js +95 -0
  434. package/dist/core/parser/vue-sfc-extractor.js.map +1 -0
  435. package/dist/core/parser/workers/parse-worker.d.ts +171 -0
  436. package/dist/core/parser/workers/parse-worker.js +1724 -0
  437. package/dist/core/parser/workers/parse-worker.js.map +1 -0
  438. package/dist/core/parser/workers/worker-pool.d.ts +16 -0
  439. package/dist/core/parser/workers/worker-pool.js +124 -0
  440. package/dist/core/parser/workers/worker-pool.js.map +1 -0
  441. package/dist/core/shared/graph-types.d.ts +61 -0
  442. package/dist/core/shared/graph-types.js +5 -0
  443. package/dist/core/shared/graph-types.js.map +1 -0
  444. package/dist/core/shared/index.d.ts +4 -0
  445. package/dist/core/shared/index.js +4 -0
  446. package/dist/core/shared/index.js.map +1 -0
  447. package/dist/core/shared/language-detection.d.ts +22 -0
  448. package/dist/core/shared/language-detection.js +137 -0
  449. package/dist/core/shared/language-detection.js.map +1 -0
  450. package/dist/core/shared/languages.d.ts +23 -0
  451. package/dist/core/shared/languages.js +25 -0
  452. package/dist/core/shared/languages.js.map +1 -0
  453. package/dist/core/shared/pipeline.d.ts +15 -0
  454. package/dist/core/shared/pipeline.js +5 -0
  455. package/dist/core/shared/pipeline.js.map +1 -0
  456. package/dist/core/tree-sitter/parser-loader.d.ts +5 -0
  457. package/dist/core/tree-sitter/parser-loader.js +71 -0
  458. package/dist/core/tree-sitter/parser-loader.js.map +1 -0
  459. package/dist/index.d.ts +2 -0
  460. package/dist/index.js +132 -0
  461. package/dist/index.js.map +1 -0
  462. package/dist/lib/hash.d.ts +1 -0
  463. package/dist/lib/hash.js +6 -0
  464. package/dist/lib/hash.js.map +1 -0
  465. package/dist/lib/naming.d.ts +12 -0
  466. package/dist/lib/naming.js +28 -0
  467. package/dist/lib/naming.js.map +1 -0
  468. package/dist/lib/utils.d.ts +1 -0
  469. package/dist/lib/utils.js +4 -0
  470. package/dist/lib/utils.js.map +1 -0
  471. package/dist/mcp/server.d.ts +26 -0
  472. package/dist/mcp/server.js +282 -0
  473. package/dist/mcp/server.js.map +1 -0
  474. package/dist/mcp/tools.d.ts +37 -0
  475. package/dist/mcp/tools.js +650 -0
  476. package/dist/mcp/tools.js.map +1 -0
  477. package/dist/query/bm25.d.ts +19 -0
  478. package/dist/query/bm25.js +60 -0
  479. package/dist/query/bm25.js.map +1 -0
  480. package/dist/query/graph-index.d.ts +40 -0
  481. package/dist/query/graph-index.js +178 -0
  482. package/dist/query/graph-index.js.map +1 -0
  483. package/dist/store/derived-index.d.ts +4 -0
  484. package/dist/store/derived-index.js +68 -0
  485. package/dist/store/derived-index.js.map +1 -0
  486. package/dist/store/meta.d.ts +1 -0
  487. package/dist/store/meta.js +3 -0
  488. package/dist/store/meta.js.map +1 -0
  489. package/dist/store/schema.d.ts +135 -0
  490. package/dist/store/schema.js +2 -0
  491. package/dist/store/schema.js.map +1 -0
  492. package/dist/store/store.d.ts +49 -0
  493. package/dist/store/store.js +254 -0
  494. package/dist/store/store.js.map +1 -0
  495. package/dist/types/pipeline.d.ts +12 -0
  496. package/dist/types/pipeline.js +2 -0
  497. package/dist/types/pipeline.js.map +1 -0
  498. package/package.json +69 -0
  499. package/skills/cotx-enrich/SKILL.md +59 -0
  500. package/vendor/leiden/index.cjs +355 -0
  501. package/vendor/leiden/utils.cjs +392 -0
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Generic table-driven field extractor factory.
3
+ *
4
+ * Instead of 14 separate 300-line files, define a config per language and
5
+ * generate extractors from configs. The factory produces a plain object
6
+ * implementing FieldExtractor — no class hierarchy needed.
7
+ */
8
+ // ---------------------------------------------------------------------------
9
+ // Factory
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * Create a FieldExtractor from a declarative config.
13
+ */
14
+ export function createFieldExtractor(config) {
15
+ const typeDeclarationSet = new Set(config.typeDeclarationNodes);
16
+ const fieldNodeSet = new Set(config.fieldNodeTypes);
17
+ const bodyNodeSet = new Set(config.bodyNodeTypes);
18
+ // -- helpers (closures, no class needed) --------------------------------
19
+ function normalizeType(type) {
20
+ if (!type)
21
+ return null;
22
+ return type.trim().replace(/\s+/g, ' ');
23
+ }
24
+ function resolveType(typeName, context) {
25
+ const fileBindings = context.typeEnv.fileScope();
26
+ const resolved = fileBindings.get(typeName);
27
+ if (resolved)
28
+ return resolved;
29
+ const matches = context.symbolTable.lookupExactAll(context.filePath, typeName);
30
+ if (matches.length === 1) {
31
+ return matches[0].nodeId;
32
+ }
33
+ return typeName;
34
+ }
35
+ function findBodies(node) {
36
+ const result = [];
37
+ // Try named 'body' field first
38
+ const bodyField = node.childForFieldName('body');
39
+ if (bodyField && bodyNodeSet.has(bodyField.type)) {
40
+ result.push(bodyField);
41
+ return result;
42
+ }
43
+ // Walk immediate children for matching body node types
44
+ for (let i = 0; i < node.namedChildCount; i++) {
45
+ const child = node.namedChild(i);
46
+ if (child && bodyNodeSet.has(child.type)) {
47
+ result.push(child);
48
+ }
49
+ }
50
+ // Fallback: use the body field even if its type is not in bodyNodeSet
51
+ if (result.length === 0 && bodyField) {
52
+ result.push(bodyField);
53
+ }
54
+ return result;
55
+ }
56
+ function buildField(node, name, context) {
57
+ if (!name)
58
+ return null;
59
+ let type = config.extractType(node) ?? null;
60
+ if (type) {
61
+ type = normalizeType(type);
62
+ if (type) {
63
+ const resolved = resolveType(type, context);
64
+ if (resolved)
65
+ type = resolved;
66
+ }
67
+ }
68
+ return {
69
+ name,
70
+ type,
71
+ visibility: config.extractVisibility(node),
72
+ isStatic: config.isStatic(node),
73
+ isReadonly: config.isReadonly(node),
74
+ sourceFile: context.filePath,
75
+ line: node.startPosition.row + 1,
76
+ };
77
+ }
78
+ function extractFieldsFromBody(body, context, out) {
79
+ for (let i = 0; i < body.namedChildCount; i++) {
80
+ const child = body.namedChild(i);
81
+ if (!child)
82
+ continue;
83
+ if (fieldNodeSet.has(child.type)) {
84
+ if (config.extractNames) {
85
+ // Multi-name path: one node may declare several fields (e.g. Ruby attr_accessor)
86
+ const names = config.extractNames(child);
87
+ for (const name of names) {
88
+ const field = buildField(child, name, context);
89
+ if (field)
90
+ out.push(field);
91
+ }
92
+ }
93
+ else {
94
+ const name = config.extractName(child);
95
+ if (name) {
96
+ const field = buildField(child, name, context);
97
+ if (field)
98
+ out.push(field);
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ function findNestedTypes(node) {
105
+ if (!config.nestedTypeNodeTypes || config.nestedTypeNodeTypes.length === 0) {
106
+ return [];
107
+ }
108
+ const nestedTypes = [];
109
+ const nestedNodeSet = new Set(config.nestedTypeNodeTypes);
110
+ // Use descendantsOfType for each nested type kind
111
+ for (const nodeType of nestedNodeSet) {
112
+ const descendants = node.descendantsOfType(nodeType);
113
+ for (const nested of descendants) {
114
+ // Skip the node itself
115
+ if (nested === node)
116
+ continue;
117
+ const nestedName = nested.childForFieldName('name');
118
+ if (nestedName) {
119
+ nestedTypes.push(nestedName.text);
120
+ }
121
+ }
122
+ }
123
+ return nestedTypes;
124
+ }
125
+ // -- public interface (plain object) ------------------------------------
126
+ return {
127
+ language: config.language,
128
+ isTypeDeclaration(node) {
129
+ return typeDeclarationSet.has(node.type);
130
+ },
131
+ extract(node, context) {
132
+ if (!typeDeclarationSet.has(node.type))
133
+ return null;
134
+ const nameNode = node.childForFieldName('name');
135
+ if (!nameNode)
136
+ return null;
137
+ const ownerFqn = nameNode.text;
138
+ const fields = [];
139
+ // Extract fields from value (e.g. TypeScript type alias with object type).
140
+ // When the hook handles extraction, skip body-based extraction to avoid
141
+ // double-counting (the value node may also match a bodyNodeType).
142
+ let handledByValueHook = false;
143
+ if (config.extractFromValue) {
144
+ const valueFields = config.extractFromValue(node, context);
145
+ if (valueFields.length > 0) {
146
+ for (const f of valueFields)
147
+ fields.push(f);
148
+ handledByValueHook = true;
149
+ }
150
+ }
151
+ // Find body container(s) and extract fields
152
+ if (!handledByValueHook) {
153
+ const bodies = findBodies(node);
154
+ for (const body of bodies) {
155
+ extractFieldsFromBody(body, context, fields);
156
+ }
157
+ }
158
+ // Extract fields from primary constructor parameters (e.g. C# records)
159
+ if (config.extractPrimaryFields) {
160
+ const primaryFields = config.extractPrimaryFields(node, context);
161
+ for (const f of primaryFields)
162
+ fields.push(f);
163
+ }
164
+ // Discover nested types
165
+ const nestedTypes = findNestedTypes(node);
166
+ return { ownerFqn, fields, nestedTypes };
167
+ },
168
+ };
169
+ }
170
+ //# sourceMappingURL=generic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../src/core/parser/field-extractors/generic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * TypeScript-specific field extraction, unified into the generic factory.
3
+ *
4
+ * Uses optional hooks (extractFromValue, nestedTypeNodeTypes) on the
5
+ * generic FieldExtractionConfig to handle:
6
+ * 1. type_alias_declaration with object type literals
7
+ * 2. Optional property detection (appends '| undefined')
8
+ * 3. Nested type discovery within class/interface bodies
9
+ *
10
+ * JavaScript uses the simpler config from configs/typescript-javascript.ts
11
+ * since it lacks type aliases and optional property syntax.
12
+ */
13
+ import { type FieldExtractionConfig } from './generic.js';
14
+ import type { FieldExtractor } from '../field-extractor.js';
15
+ export declare const typescriptFieldConfig: FieldExtractionConfig;
16
+ export declare const typescriptFieldExtractor: FieldExtractor;
@@ -0,0 +1,167 @@
1
+ /**
2
+ * TypeScript-specific field extraction, unified into the generic factory.
3
+ *
4
+ * Uses optional hooks (extractFromValue, nestedTypeNodeTypes) on the
5
+ * generic FieldExtractionConfig to handle:
6
+ * 1. type_alias_declaration with object type literals
7
+ * 2. Optional property detection (appends '| undefined')
8
+ * 3. Nested type discovery within class/interface bodies
9
+ *
10
+ * JavaScript uses the simpler config from configs/typescript-javascript.ts
11
+ * since it lacks type aliases and optional property syntax.
12
+ */
13
+ import { SupportedLanguages } from '../../shared/index.js';
14
+ import { createFieldExtractor } from './generic.js';
15
+ import { hasKeyword, findVisibility, typeFromAnnotation } from './configs/helpers.js';
16
+ // ---------------------------------------------------------------------------
17
+ // Shared helpers
18
+ // ---------------------------------------------------------------------------
19
+ const VISIBILITY_KEYWORDS = new Set(['public', 'private', 'protected']);
20
+ function extractName(node) {
21
+ const nameNode = node.childForFieldName('name') ?? node.childForFieldName('property');
22
+ return nameNode?.text;
23
+ }
24
+ function extractType(node) {
25
+ const typeField = node.childForFieldName('type');
26
+ if (typeField) {
27
+ if (typeField.type === 'type_annotation') {
28
+ const inner = typeField.firstNamedChild;
29
+ return inner?.text?.trim();
30
+ }
31
+ return typeField.text?.trim();
32
+ }
33
+ return typeFromAnnotation(node);
34
+ }
35
+ function extractVisibility(node) {
36
+ // TypeScript accessibility_modifier
37
+ for (let i = 0; i < node.namedChildCount; i++) {
38
+ const child = node.namedChild(i);
39
+ if (child && child.type === 'accessibility_modifier') {
40
+ const t = child.text.trim();
41
+ if (VISIBILITY_KEYWORDS.has(t))
42
+ return t;
43
+ }
44
+ }
45
+ return findVisibility(node, VISIBILITY_KEYWORDS, 'public', 'modifiers');
46
+ }
47
+ /**
48
+ * Check if a property is optional (has ?: syntax).
49
+ */
50
+ function isOptional(node) {
51
+ for (let i = 0; i < node.childCount; i++) {
52
+ const child = node.child(i);
53
+ if (child && !child.isNamed && child.text === '?')
54
+ return true;
55
+ }
56
+ const kind = node.childForFieldName('kind');
57
+ if (kind && kind.text === '?')
58
+ return true;
59
+ return false;
60
+ }
61
+ /**
62
+ * Normalize type text by collapsing redundant whitespace.
63
+ */
64
+ function normalizeType(type) {
65
+ if (!type)
66
+ return null;
67
+ return type.trim().replace(/\s+/g, ' ');
68
+ }
69
+ /**
70
+ * Resolve a type name through the type environment and symbol table.
71
+ */
72
+ function resolveType(typeName, context) {
73
+ const fileBindings = context.typeEnv.fileScope();
74
+ const resolved = fileBindings.get(typeName);
75
+ if (resolved)
76
+ return resolved;
77
+ const matches = context.symbolTable.lookupExactAll(context.filePath, typeName);
78
+ if (matches.length === 1)
79
+ return matches[0].nodeId;
80
+ return typeName;
81
+ }
82
+ /**
83
+ * Extract the full type text from a type node, handling type_annotation unwrapping.
84
+ */
85
+ function extractFullType(typeNode) {
86
+ if (!typeNode)
87
+ return null;
88
+ if (typeNode.type === 'type_annotation') {
89
+ const innerType = typeNode.firstNamedChild;
90
+ return innerType ? normalizeType(innerType.text) : null;
91
+ }
92
+ return normalizeType(typeNode.text);
93
+ }
94
+ /**
95
+ * Build a FieldInfo from a property_signature in an object type,
96
+ * including optional detection.
97
+ */
98
+ function buildObjectField(node, context) {
99
+ const nameNode = node.childForFieldName('name') ?? node.childForFieldName('property');
100
+ if (!nameNode)
101
+ return null;
102
+ const name = nameNode.text;
103
+ if (!name)
104
+ return null;
105
+ const typeNode = node.childForFieldName('type');
106
+ let type = extractFullType(typeNode);
107
+ if (type) {
108
+ const resolved = resolveType(type, context);
109
+ type = resolved ?? type;
110
+ }
111
+ // Append ' | undefined' for optional properties
112
+ if (isOptional(node) && type) {
113
+ type = type + ' | undefined';
114
+ }
115
+ return {
116
+ name,
117
+ type,
118
+ visibility: extractVisibility(node),
119
+ isStatic: hasKeyword(node, 'static'),
120
+ isReadonly: hasKeyword(node, 'readonly'),
121
+ sourceFile: context.filePath,
122
+ line: node.startPosition.row + 1,
123
+ };
124
+ }
125
+ // ---------------------------------------------------------------------------
126
+ // Config with TypeScript-specific hooks
127
+ // ---------------------------------------------------------------------------
128
+ export const typescriptFieldConfig = {
129
+ language: SupportedLanguages.TypeScript,
130
+ typeDeclarationNodes: [
131
+ 'class_declaration',
132
+ 'abstract_class_declaration',
133
+ 'interface_declaration',
134
+ 'type_alias_declaration',
135
+ ],
136
+ fieldNodeTypes: ['public_field_definition', 'property_signature', 'field_definition'],
137
+ bodyNodeTypes: ['class_body', 'interface_body', 'object_type'],
138
+ defaultVisibility: 'public',
139
+ extractName,
140
+ extractType,
141
+ extractVisibility,
142
+ isStatic: (node) => hasKeyword(node, 'static'),
143
+ isReadonly: (node) => hasKeyword(node, 'readonly'),
144
+ // Hook: extract fields from type_alias_declaration value (object type literals)
145
+ extractFromValue(ownerNode, context) {
146
+ if (ownerNode.type !== 'type_alias_declaration')
147
+ return [];
148
+ const valueNode = ownerNode.childForFieldName('value');
149
+ if (!valueNode || valueNode.type !== 'object_type')
150
+ return [];
151
+ const fields = [];
152
+ const propertySignatures = valueNode.descendantsOfType('property_signature');
153
+ for (const propNode of propertySignatures) {
154
+ const field = buildObjectField(propNode, context);
155
+ if (field)
156
+ fields.push(field);
157
+ }
158
+ return fields;
159
+ },
160
+ // Hook: discover nested types inside class/interface bodies
161
+ nestedTypeNodeTypes: ['class_declaration', 'interface_declaration'],
162
+ };
163
+ // ---------------------------------------------------------------------------
164
+ // Singleton instance
165
+ // ---------------------------------------------------------------------------
166
+ export const typescriptFieldExtractor = createFieldExtractor(typescriptFieldConfig);
167
+ //# sourceMappingURL=typescript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../../src/core/parser/field-extractors/typescript.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { TypeEnvironment } from './type-env.js';
2
+ import type { SymbolTable } from './symbol-table.js';
3
+ import { SupportedLanguages } from '../shared/index.js';
4
+ /**
5
+ * Access-level modifiers for class/struct fields across supported languages.
6
+ *
7
+ * Covers standard OOP visibility (public, private, protected) plus
8
+ * language-specific modifiers: C# internal/protected internal/private protected,
9
+ * Java package-private, Swift fileprivate/open.
10
+ */
11
+ export type FieldVisibility = 'public' | 'private' | 'protected' | 'internal' | 'protected internal' | 'private protected' | 'package' | 'fileprivate' | 'open';
12
+ /**
13
+ * Describes a single field or property declared inside a class, struct,
14
+ * interface, or similar type container.
15
+ */
16
+ export interface FieldInfo {
17
+ name: string;
18
+ type: string | null;
19
+ visibility: FieldVisibility;
20
+ isStatic: boolean;
21
+ isReadonly: boolean;
22
+ sourceFile: string;
23
+ line: number;
24
+ }
25
+ /**
26
+ * Association from a fully-qualified owner type name to its extracted fields.
27
+ */
28
+ export type FieldTypeMap = Map<string, FieldInfo[]>;
29
+ /**
30
+ * Runtime context passed into field extraction routines, providing access to
31
+ * type resolution infrastructure and file metadata.
32
+ */
33
+ export interface FieldExtractorContext {
34
+ typeEnv: TypeEnvironment;
35
+ symbolTable: SymbolTable;
36
+ filePath: string;
37
+ language: SupportedLanguages;
38
+ }
39
+ /**
40
+ * The output produced by extracting fields from a single type declaration node.
41
+ */
42
+ export interface ExtractedFields {
43
+ ownerFqn: string;
44
+ fields: FieldInfo[];
45
+ nestedTypes: string[];
46
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=field-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-types.js","sourceRoot":"","sources":["../../../src/core/parser/field-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ export interface FileEntry {
2
+ path: string;
3
+ content: string;
4
+ }
5
+ /** Lightweight entry — path + size from stat, no content in memory */
6
+ export interface ScannedFile {
7
+ path: string;
8
+ size: number;
9
+ }
10
+ /** Path-only reference (for type signatures) */
11
+ export interface FilePath {
12
+ path: string;
13
+ }
14
+ /**
15
+ * Phase 1: Scan repository — stat files to get paths + sizes, no content loaded.
16
+ * Memory: ~10MB for 100K files vs ~1GB+ with content.
17
+ */
18
+ export declare const walkRepositoryPaths: (repoPath: string, onProgress?: (current: number, total: number, filePath: string) => void) => Promise<ScannedFile[]>;
19
+ /**
20
+ * Phase 2: Read file contents for a specific set of relative paths.
21
+ * Returns a Map for O(1) lookup. Silently skips files that fail to read.
22
+ */
23
+ export declare const readFileContents: (repoPath: string, relativePaths: string[]) => Promise<Map<string, string>>;
24
+ /**
25
+ * Legacy API — scans and reads everything into memory.
26
+ * Used by sequential fallback path only.
27
+ */
28
+ export declare const walkRepository: (repoPath: string, onProgress?: (current: number, total: number, filePath: string) => void) => Promise<FileEntry[]>;
@@ -0,0 +1,82 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ import { glob } from 'glob';
4
+ import { createIgnoreFilter } from '../../config/ignore-service.js';
5
+ const READ_CONCURRENCY = 32;
6
+ /** Skip files larger than 512KB — they're usually generated/vendored and crash tree-sitter */
7
+ const MAX_FILE_SIZE = 512 * 1024;
8
+ /**
9
+ * Phase 1: Scan repository — stat files to get paths + sizes, no content loaded.
10
+ * Memory: ~10MB for 100K files vs ~1GB+ with content.
11
+ */
12
+ export const walkRepositoryPaths = async (repoPath, onProgress) => {
13
+ const ignoreFilter = await createIgnoreFilter(repoPath);
14
+ const filtered = await glob('**/*', {
15
+ cwd: repoPath,
16
+ nodir: true,
17
+ dot: false,
18
+ ignore: ignoreFilter,
19
+ });
20
+ const entries = [];
21
+ let processed = 0;
22
+ let skippedLarge = 0;
23
+ for (let start = 0; start < filtered.length; start += READ_CONCURRENCY) {
24
+ const batch = filtered.slice(start, start + READ_CONCURRENCY);
25
+ const results = await Promise.allSettled(batch.map(async (relativePath) => {
26
+ const fullPath = path.join(repoPath, relativePath);
27
+ const stat = await fs.stat(fullPath);
28
+ if (stat.size > MAX_FILE_SIZE) {
29
+ skippedLarge++;
30
+ return null;
31
+ }
32
+ return { path: relativePath.replace(/\\/g, '/'), size: stat.size };
33
+ }));
34
+ for (const result of results) {
35
+ processed++;
36
+ if (result.status === 'fulfilled' && result.value !== null) {
37
+ entries.push(result.value);
38
+ onProgress?.(processed, filtered.length, result.value.path);
39
+ }
40
+ else {
41
+ onProgress?.(processed, filtered.length, batch[results.indexOf(result)]);
42
+ }
43
+ }
44
+ }
45
+ if (skippedLarge > 0) {
46
+ console.warn(` Skipped ${skippedLarge} large files (>${MAX_FILE_SIZE / 1024}KB, likely generated/vendored)`);
47
+ }
48
+ return entries;
49
+ };
50
+ /**
51
+ * Phase 2: Read file contents for a specific set of relative paths.
52
+ * Returns a Map for O(1) lookup. Silently skips files that fail to read.
53
+ */
54
+ export const readFileContents = async (repoPath, relativePaths) => {
55
+ const contents = new Map();
56
+ for (let start = 0; start < relativePaths.length; start += READ_CONCURRENCY) {
57
+ const batch = relativePaths.slice(start, start + READ_CONCURRENCY);
58
+ const results = await Promise.allSettled(batch.map(async (relativePath) => {
59
+ const fullPath = path.join(repoPath, relativePath);
60
+ const content = await fs.readFile(fullPath, 'utf-8');
61
+ return { path: relativePath, content };
62
+ }));
63
+ for (const result of results) {
64
+ if (result.status === 'fulfilled') {
65
+ contents.set(result.value.path, result.value.content);
66
+ }
67
+ }
68
+ }
69
+ return contents;
70
+ };
71
+ /**
72
+ * Legacy API — scans and reads everything into memory.
73
+ * Used by sequential fallback path only.
74
+ */
75
+ export const walkRepository = async (repoPath, onProgress) => {
76
+ const scanned = await walkRepositoryPaths(repoPath, onProgress);
77
+ const contents = await readFileContents(repoPath, scanned.map((f) => f.path));
78
+ return scanned
79
+ .filter((f) => contents.has(f.path))
80
+ .map((f) => ({ path: f.path, content: contents.get(f.path) }));
81
+ };
82
+ //# sourceMappingURL=filesystem-walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-walker.js","sourceRoot":"","sources":["../../../src/core/parser/filesystem-walker.ts"],"names":[],"mappings":"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"}