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,79 @@
1
+ export function detectStale(store) {
2
+ const staleEnrichments = [];
3
+ const staleAnnotations = [];
4
+ // Check all layers that have enriched zones
5
+ const layers = [
6
+ { list: () => store.listModules(), read: (id) => store.readModule(id), layer: 'module' },
7
+ { list: () => store.listConcepts(), read: (id) => store.readConcept(id), layer: 'concept' },
8
+ { list: () => store.listContracts(), read: (id) => store.readContract(id), layer: 'contract' },
9
+ { list: () => store.listFlows(), read: (id) => store.readFlow(id), layer: 'flow' },
10
+ ];
11
+ for (const { list, read, layer } of layers) {
12
+ for (const id of list()) {
13
+ const node = read(id);
14
+ // Check enrichment staleness
15
+ if (node.enriched && node.enriched.source_hash !== node.struct_hash) {
16
+ staleEnrichments.push({
17
+ nodeId: id,
18
+ layer,
19
+ source_hash: node.enriched.source_hash,
20
+ struct_hash: node.struct_hash,
21
+ });
22
+ }
23
+ // Check annotation staleness
24
+ if (node.annotations) {
25
+ for (let i = 0; i < node.annotations.length; i++) {
26
+ if (node.annotations[i].stale) {
27
+ staleAnnotations.push({
28
+ nodeId: id,
29
+ layer,
30
+ annotationIndex: i,
31
+ reason: node.annotations[i].stale_reason || 'struct_hash changed',
32
+ });
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
38
+ return {
39
+ staleEnrichments,
40
+ staleAnnotations,
41
+ summary: {
42
+ totalStale: staleEnrichments.length + staleAnnotations.length,
43
+ enrichments: staleEnrichments.length,
44
+ annotations: staleAnnotations.length,
45
+ },
46
+ };
47
+ }
48
+ // Mark annotations stale on nodes whose struct_hash changed
49
+ export function markStaleAnnotations(store, changedNodeIds, reason) {
50
+ let count = 0;
51
+ // Helper to process a layer
52
+ function processLayer(list, read, write) {
53
+ for (const id of list()) {
54
+ if (!changedNodeIds.has(id))
55
+ continue;
56
+ const node = read(id);
57
+ if (!node.annotations || node.annotations.length === 0)
58
+ continue;
59
+ let modified = false;
60
+ for (const ann of node.annotations) {
61
+ if (!ann.stale) {
62
+ ann.stale = true;
63
+ ann.stale_reason = reason;
64
+ modified = true;
65
+ count++;
66
+ }
67
+ }
68
+ if (modified) {
69
+ write(node);
70
+ }
71
+ }
72
+ }
73
+ processLayer(() => store.listModules(), (id) => store.readModule(id), (d) => store.writeModule(d));
74
+ processLayer(() => store.listConcepts(), (id) => store.readConcept(id), (d) => store.writeConcept(d));
75
+ processLayer(() => store.listContracts(), (id) => store.readContract(id), (d) => store.writeContract(d));
76
+ processLayer(() => store.listFlows(), (id) => store.readFlow(id), (d) => store.writeFlow(d));
77
+ return count;
78
+ }
79
+ //# sourceMappingURL=stale-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stale-detector.js","sourceRoot":"","sources":["../../src/compiler/stale-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type Ignore } from 'ignore';
2
+ import type { Path } from 'path-scurry';
3
+ export declare const shouldIgnorePath: (filePath: string) => boolean;
4
+ /** Check if a directory name is in the hardcoded ignore list */
5
+ export declare const isHardcodedIgnoredDirectory: (name: string) => boolean;
6
+ /**
7
+ * Load .gitignore and .cotxignore rules from the repo root.
8
+ * Returns an `ignore` instance with all patterns, or null if no files found.
9
+ */
10
+ export interface IgnoreOptions {
11
+ /** Skip .gitignore parsing, only read .cotxignore. Defaults to COTX_NO_GITIGNORE env var. */
12
+ noGitignore?: boolean;
13
+ }
14
+ export declare const loadIgnoreRules: (repoPath: string, options?: IgnoreOptions) => Promise<Ignore | null>;
15
+ /**
16
+ * Create a glob-compatible ignore filter combining:
17
+ * - .gitignore / .cotxignore patterns (via `ignore` package)
18
+ * - Hardcoded DEFAULT_IGNORE_LIST, IGNORED_EXTENSIONS, IGNORED_FILES
19
+ *
20
+ * Returns an IgnoreLike object for glob's `ignore` option,
21
+ * enabling directory-level pruning during traversal.
22
+ */
23
+ export declare const createIgnoreFilter: (repoPath: string, options?: IgnoreOptions) => Promise<{
24
+ ignored(p: Path): boolean;
25
+ childrenIgnored(p: Path): boolean;
26
+ }>;
@@ -0,0 +1,366 @@
1
+ import ignore from 'ignore';
2
+ import fs from 'fs/promises';
3
+ import nodePath from 'path';
4
+ const DEFAULT_IGNORE_LIST = new Set([
5
+ // Version Control
6
+ '.git',
7
+ '.svn',
8
+ '.hg',
9
+ '.bzr',
10
+ // IDEs & Editors
11
+ '.idea',
12
+ '.vscode',
13
+ '.vs',
14
+ '.eclipse',
15
+ '.settings',
16
+ '.DS_Store',
17
+ 'Thumbs.db',
18
+ // Dependencies
19
+ 'node_modules',
20
+ 'bower_components',
21
+ 'jspm_packages',
22
+ 'vendor', // PHP/Go
23
+ // 'packages' removed - commonly used for monorepo source code (lerna, pnpm, yarn workspaces)
24
+ 'venv',
25
+ '.venv',
26
+ 'env',
27
+ '.env',
28
+ '__pycache__',
29
+ '.pytest_cache',
30
+ '.mypy_cache',
31
+ 'site-packages',
32
+ '.tox',
33
+ 'eggs',
34
+ '.eggs',
35
+ 'lib64',
36
+ 'parts',
37
+ 'sdist',
38
+ 'wheels',
39
+ // Build Outputs
40
+ 'dist',
41
+ 'build',
42
+ 'out',
43
+ 'output',
44
+ 'bin',
45
+ 'obj',
46
+ 'target', // Java/Rust
47
+ '.next',
48
+ '.nuxt',
49
+ '.output',
50
+ '.vercel',
51
+ '.netlify',
52
+ '.serverless',
53
+ '_build',
54
+ 'public/build',
55
+ '.parcel-cache',
56
+ '.turbo',
57
+ '.svelte-kit',
58
+ '.cotx',
59
+ // Test & Coverage
60
+ 'coverage',
61
+ '.nyc_output',
62
+ 'htmlcov',
63
+ '.coverage',
64
+ '__tests__', // Often just test files
65
+ '__mocks__',
66
+ '.jest',
67
+ // Logs & Temp
68
+ 'logs',
69
+ 'log',
70
+ 'tmp',
71
+ 'temp',
72
+ 'cache',
73
+ '.cache',
74
+ '.tmp',
75
+ '.temp',
76
+ // Generated/Compiled
77
+ '.generated',
78
+ 'generated',
79
+ 'auto-generated',
80
+ '.terraform',
81
+ '.serverless',
82
+ // Documentation (optional - might want to keep)
83
+ // 'docs',
84
+ // 'documentation',
85
+ // Misc
86
+ '.husky',
87
+ '.github', // GitHub config, not code
88
+ '.circleci',
89
+ '.gitlab',
90
+ 'fixtures', // Test fixtures
91
+ 'snapshots', // Jest snapshots
92
+ '__snapshots__',
93
+ ]);
94
+ const IGNORED_EXTENSIONS = new Set([
95
+ // Images
96
+ '.png',
97
+ '.jpg',
98
+ '.jpeg',
99
+ '.gif',
100
+ '.svg',
101
+ '.ico',
102
+ '.webp',
103
+ '.bmp',
104
+ '.tiff',
105
+ '.tif',
106
+ '.psd',
107
+ '.ai',
108
+ '.sketch',
109
+ '.fig',
110
+ '.xd',
111
+ // Archives
112
+ '.zip',
113
+ '.tar',
114
+ '.gz',
115
+ '.rar',
116
+ '.7z',
117
+ '.bz2',
118
+ '.xz',
119
+ '.tgz',
120
+ // Binary/Compiled
121
+ '.exe',
122
+ '.dll',
123
+ '.so',
124
+ '.dylib',
125
+ '.a',
126
+ '.lib',
127
+ '.o',
128
+ '.obj',
129
+ '.class',
130
+ '.jar',
131
+ '.war',
132
+ '.ear',
133
+ '.pyc',
134
+ '.pyo',
135
+ '.pyd',
136
+ '.beam', // Erlang
137
+ '.wasm', // WebAssembly - important!
138
+ '.node', // Native Node addons
139
+ // Documents
140
+ '.pdf',
141
+ '.doc',
142
+ '.docx',
143
+ '.xls',
144
+ '.xlsx',
145
+ '.ppt',
146
+ '.pptx',
147
+ '.odt',
148
+ '.ods',
149
+ '.odp',
150
+ // Media
151
+ '.mp4',
152
+ '.mp3',
153
+ '.wav',
154
+ '.mov',
155
+ '.avi',
156
+ '.mkv',
157
+ '.flv',
158
+ '.wmv',
159
+ '.ogg',
160
+ '.webm',
161
+ '.flac',
162
+ '.aac',
163
+ '.m4a',
164
+ // Fonts
165
+ '.woff',
166
+ '.woff2',
167
+ '.ttf',
168
+ '.eot',
169
+ '.otf',
170
+ // Databases
171
+ '.db',
172
+ '.sqlite',
173
+ '.sqlite3',
174
+ '.mdb',
175
+ '.accdb',
176
+ // Minified/Bundled files
177
+ '.min.js',
178
+ '.min.css',
179
+ '.bundle.js',
180
+ '.chunk.js',
181
+ // Source maps (debug files, not source)
182
+ '.map',
183
+ // Lock files (handled separately, but also here)
184
+ '.lock',
185
+ // Certificates & Keys (security - don't index!)
186
+ '.pem',
187
+ '.key',
188
+ '.crt',
189
+ '.cer',
190
+ '.p12',
191
+ '.pfx',
192
+ // Data files (often large/binary)
193
+ '.csv',
194
+ '.tsv',
195
+ '.parquet',
196
+ '.avro',
197
+ '.feather',
198
+ '.npy',
199
+ '.npz',
200
+ '.pkl',
201
+ '.pickle',
202
+ '.h5',
203
+ '.hdf5',
204
+ // Misc binary
205
+ '.bin',
206
+ '.dat',
207
+ '.data',
208
+ '.raw',
209
+ '.iso',
210
+ '.img',
211
+ '.dmg',
212
+ ]);
213
+ // Files to ignore by exact name
214
+ const IGNORED_FILES = new Set([
215
+ 'package-lock.json',
216
+ 'yarn.lock',
217
+ 'pnpm-lock.yaml',
218
+ 'composer.lock',
219
+ 'Gemfile.lock',
220
+ 'poetry.lock',
221
+ 'Cargo.lock',
222
+ 'go.sum',
223
+ '.gitignore',
224
+ '.gitattributes',
225
+ '.npmrc',
226
+ '.yarnrc',
227
+ '.editorconfig',
228
+ '.prettierrc',
229
+ '.prettierignore',
230
+ '.eslintignore',
231
+ '.dockerignore',
232
+ 'Thumbs.db',
233
+ '.DS_Store',
234
+ 'LICENSE',
235
+ 'LICENSE.md',
236
+ 'LICENSE.txt',
237
+ 'CHANGELOG.md',
238
+ 'CHANGELOG',
239
+ 'CONTRIBUTING.md',
240
+ 'CODE_OF_CONDUCT.md',
241
+ 'SECURITY.md',
242
+ '.env',
243
+ '.env.local',
244
+ '.env.development',
245
+ '.env.production',
246
+ '.env.test',
247
+ '.env.example',
248
+ ]);
249
+ // NOTE: Negation patterns in .cotxignore (e.g. `!vendor/`) cannot override
250
+ // entries in DEFAULT_IGNORE_LIST — this is intentional. The hardcoded list protects
251
+ // against indexing directories that are almost never source code (node_modules, .git, etc.).
252
+ // Users who need to include such directories should remove them from the hardcoded list.
253
+ export const shouldIgnorePath = (filePath) => {
254
+ const normalizedPath = filePath.replace(/\\/g, '/');
255
+ const parts = normalizedPath.split('/');
256
+ const fileName = parts[parts.length - 1];
257
+ const fileNameLower = fileName.toLowerCase();
258
+ // Check if any path segment is in ignore list
259
+ for (const part of parts) {
260
+ if (DEFAULT_IGNORE_LIST.has(part)) {
261
+ return true;
262
+ }
263
+ }
264
+ // Check exact filename matches
265
+ if (IGNORED_FILES.has(fileName) || IGNORED_FILES.has(fileNameLower)) {
266
+ return true;
267
+ }
268
+ // Check extension
269
+ const lastDotIndex = fileNameLower.lastIndexOf('.');
270
+ if (lastDotIndex !== -1) {
271
+ const ext = fileNameLower.substring(lastDotIndex);
272
+ if (IGNORED_EXTENSIONS.has(ext))
273
+ return true;
274
+ // Handle compound extensions like .min.js, .bundle.js
275
+ const secondLastDot = fileNameLower.lastIndexOf('.', lastDotIndex - 1);
276
+ if (secondLastDot !== -1) {
277
+ const compoundExt = fileNameLower.substring(secondLastDot);
278
+ if (IGNORED_EXTENSIONS.has(compoundExt))
279
+ return true;
280
+ }
281
+ }
282
+ // Ignore hidden files (starting with .)
283
+ if (fileName.startsWith('.') && fileName !== '.') {
284
+ // But allow some important config files
285
+ const allowedDotFiles = ['.env', '.gitignore']; // Already in IGNORED_FILES, so this is redundant
286
+ // Actually, let's NOT ignore all dot files - many are important configs
287
+ // Just rely on the explicit lists above
288
+ }
289
+ // Ignore files that look like generated/bundled code
290
+ if (fileNameLower.includes('.bundle.') ||
291
+ fileNameLower.includes('.chunk.') ||
292
+ fileNameLower.includes('.generated.') ||
293
+ fileNameLower.endsWith('.d.ts')) {
294
+ // TypeScript declaration files
295
+ return true;
296
+ }
297
+ return false;
298
+ };
299
+ /** Check if a directory name is in the hardcoded ignore list */
300
+ export const isHardcodedIgnoredDirectory = (name) => {
301
+ return DEFAULT_IGNORE_LIST.has(name);
302
+ };
303
+ export const loadIgnoreRules = async (repoPath, options) => {
304
+ const ig = ignore();
305
+ let hasRules = false;
306
+ // Allow users to bypass .gitignore parsing (e.g. when .gitignore accidentally excludes source files)
307
+ const skipGitignore = options?.noGitignore ?? !!process.env.COTX_NO_GITIGNORE;
308
+ const filenames = skipGitignore ? ['.cotxignore'] : ['.gitignore', '.cotxignore'];
309
+ for (const filename of filenames) {
310
+ try {
311
+ const content = await fs.readFile(nodePath.join(repoPath, filename), 'utf-8');
312
+ ig.add(content);
313
+ hasRules = true;
314
+ }
315
+ catch (err) {
316
+ const code = err.code;
317
+ if (code !== 'ENOENT') {
318
+ console.warn(` Warning: could not read ${filename}: ${err.message}`);
319
+ }
320
+ }
321
+ }
322
+ return hasRules ? ig : null;
323
+ };
324
+ /**
325
+ * Create a glob-compatible ignore filter combining:
326
+ * - .gitignore / .cotxignore patterns (via `ignore` package)
327
+ * - Hardcoded DEFAULT_IGNORE_LIST, IGNORED_EXTENSIONS, IGNORED_FILES
328
+ *
329
+ * Returns an IgnoreLike object for glob's `ignore` option,
330
+ * enabling directory-level pruning during traversal.
331
+ */
332
+ export const createIgnoreFilter = async (repoPath, options) => {
333
+ const ig = await loadIgnoreRules(repoPath, options);
334
+ return {
335
+ ignored(p) {
336
+ // path-scurry's Path.relative() returns POSIX paths on all platforms,
337
+ // which is what the `ignore` package expects. No explicit normalization needed.
338
+ const rel = p.relative();
339
+ if (!rel)
340
+ return false;
341
+ // Check .gitignore / .cotxignore patterns
342
+ if (ig && ig.ignores(rel))
343
+ return true;
344
+ // Fall back to hardcoded rules
345
+ return shouldIgnorePath(rel);
346
+ },
347
+ childrenIgnored(p) {
348
+ // Fast path: check directory name against hardcoded list.
349
+ // Note: dot-directories (.git, .vscode, etc.) are primarily excluded by
350
+ // glob's `dot: false` option in filesystem-walker.ts. This check is
351
+ // defense-in-depth — do not remove `dot: false` assuming this covers it.
352
+ if (DEFAULT_IGNORE_LIST.has(p.name))
353
+ return true;
354
+ // Check against .gitignore / .cotxignore patterns.
355
+ // Test both bare path and path with trailing slash to handle
356
+ // bare-name patterns (e.g. `local`) and dir-only patterns (e.g. `local/`).
357
+ if (ig) {
358
+ const rel = p.relative();
359
+ if (rel && (ig.ignores(rel) || ig.ignores(rel + '/')))
360
+ return true;
361
+ }
362
+ return false;
363
+ },
364
+ };
365
+ };
366
+ //# sourceMappingURL=ignore-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ignore-service.js","sourceRoot":"","sources":["../../src/config/ignore-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Cluster Enricher
3
+ *
4
+ * LLM-based enrichment for community clusters.
5
+ * Generates semantic names, keywords, and descriptions using an LLM.
6
+ */
7
+ import { CommunityNode } from './community-processor.js';
8
+ export interface ClusterEnrichment {
9
+ name: string;
10
+ keywords: string[];
11
+ description: string;
12
+ }
13
+ export interface EnrichmentResult {
14
+ enrichments: Map<string, ClusterEnrichment>;
15
+ tokensUsed: number;
16
+ }
17
+ export interface LLMClient {
18
+ generate: (prompt: string) => Promise<string>;
19
+ }
20
+ export interface ClusterMemberInfo {
21
+ name: string;
22
+ filePath: string;
23
+ type: string;
24
+ }
25
+ /**
26
+ * Enrich clusters with LLM-generated names, keywords, and descriptions
27
+ *
28
+ * @param communities - Community nodes to enrich
29
+ * @param memberMap - Map of communityId -> member info
30
+ * @param llmClient - LLM client for generation
31
+ * @param onProgress - Progress callback
32
+ */
33
+ export declare const enrichClusters: (communities: CommunityNode[], memberMap: Map<string, ClusterMemberInfo[]>, llmClient: LLMClient, onProgress?: (current: number, total: number) => void) => Promise<EnrichmentResult>;
34
+ /**
35
+ * Enrich multiple clusters in a single LLM call (batch mode)
36
+ * More efficient for token usage but requires larger context window
37
+ */
38
+ export declare const enrichClustersBatch: (communities: CommunityNode[], memberMap: Map<string, ClusterMemberInfo[]>, llmClient: LLMClient, batchSize?: number, onProgress?: (current: number, total: number) => void) => Promise<EnrichmentResult>;