codesift-mcp 0.14.0 → 0.15.1

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 (458) hide show
  1. package/README.md +5 -1
  2. package/dist/cli/commands-admin.d.ts +18 -0
  3. package/dist/cli/commands-admin.d.ts.map +1 -0
  4. package/dist/cli/commands-admin.js +187 -0
  5. package/dist/cli/commands-admin.js.map +1 -0
  6. package/dist/cli/commands-daemon.d.ts +42 -0
  7. package/dist/cli/commands-daemon.d.ts.map +1 -0
  8. package/dist/cli/commands-daemon.js +163 -0
  9. package/dist/cli/commands-daemon.js.map +1 -0
  10. package/dist/cli/commands-index.d.ts +12 -0
  11. package/dist/cli/commands-index.d.ts.map +1 -0
  12. package/dist/cli/commands-index.js +133 -0
  13. package/dist/cli/commands-index.js.map +1 -0
  14. package/dist/cli/commands-maintenance.d.ts +12 -0
  15. package/dist/cli/commands-maintenance.d.ts.map +1 -0
  16. package/dist/cli/commands-maintenance.js +409 -0
  17. package/dist/cli/commands-maintenance.js.map +1 -0
  18. package/dist/cli/commands-query.d.ts +21 -0
  19. package/dist/cli/commands-query.d.ts.map +1 -0
  20. package/dist/cli/commands-query.js +270 -0
  21. package/dist/cli/commands-query.js.map +1 -0
  22. package/dist/cli/commands.d.ts +2 -36
  23. package/dist/cli/commands.d.ts.map +1 -1
  24. package/dist/cli/commands.js +8 -867
  25. package/dist/cli/commands.js.map +1 -1
  26. package/dist/cli/embed-child.js +13 -2
  27. package/dist/cli/embed-child.js.map +1 -1
  28. package/dist/instructions.d.ts +1 -1
  29. package/dist/instructions.d.ts.map +1 -1
  30. package/dist/instructions.js +5 -2
  31. package/dist/instructions.js.map +1 -1
  32. package/dist/parser/extractors/php-class-metadata.d.ts +10 -0
  33. package/dist/parser/extractors/php-class-metadata.d.ts.map +1 -0
  34. package/dist/parser/extractors/php-class-metadata.js +65 -0
  35. package/dist/parser/extractors/php-class-metadata.js.map +1 -0
  36. package/dist/parser/extractors/php-doc.d.ts +13 -0
  37. package/dist/parser/extractors/php-doc.d.ts.map +1 -0
  38. package/dist/parser/extractors/php-doc.js +39 -0
  39. package/dist/parser/extractors/php-doc.js.map +1 -0
  40. package/dist/parser/extractors/php-node-metadata.d.ts +26 -0
  41. package/dist/parser/extractors/php-node-metadata.d.ts.map +1 -0
  42. package/dist/parser/extractors/php-node-metadata.js +132 -0
  43. package/dist/parser/extractors/php-node-metadata.js.map +1 -0
  44. package/dist/parser/extractors/php-symbol-builders.d.ts +13 -0
  45. package/dist/parser/extractors/php-symbol-builders.d.ts.map +1 -0
  46. package/dist/parser/extractors/php-symbol-builders.js +58 -0
  47. package/dist/parser/extractors/php-symbol-builders.js.map +1 -0
  48. package/dist/parser/extractors/php-walker.d.ts +4 -0
  49. package/dist/parser/extractors/php-walker.d.ts.map +1 -0
  50. package/dist/parser/extractors/php-walker.js +238 -0
  51. package/dist/parser/extractors/php-walker.js.map +1 -0
  52. package/dist/parser/extractors/php.d.ts +2 -33
  53. package/dist/parser/extractors/php.d.ts.map +1 -1
  54. package/dist/parser/extractors/php.js +2 -747
  55. package/dist/parser/extractors/php.js.map +1 -1
  56. package/dist/register-tool-loaders.d.ts +11 -11
  57. package/dist/register-tool-loaders.d.ts.map +1 -1
  58. package/dist/register-tools/runtime.d.ts +11 -0
  59. package/dist/register-tools/runtime.d.ts.map +1 -1
  60. package/dist/register-tools/runtime.js +40 -0
  61. package/dist/register-tools/runtime.js.map +1 -1
  62. package/dist/register-tools.d.ts.map +1 -1
  63. package/dist/register-tools.js +5 -1
  64. package/dist/register-tools.js.map +1 -1
  65. package/dist/retrieval/semantic-handlers.d.ts.map +1 -1
  66. package/dist/retrieval/semantic-handlers.js +10 -3
  67. package/dist/retrieval/semantic-handlers.js.map +1 -1
  68. package/dist/search/semantic.d.ts +2 -0
  69. package/dist/search/semantic.d.ts.map +1 -1
  70. package/dist/search/semantic.js +41 -9
  71. package/dist/search/semantic.js.map +1 -1
  72. package/dist/storage/chunk-store.d.ts +14 -2
  73. package/dist/storage/chunk-store.d.ts.map +1 -1
  74. package/dist/storage/chunk-store.js +214 -34
  75. package/dist/storage/chunk-store.js.map +1 -1
  76. package/dist/storage/embedding-store.d.ts +0 -12
  77. package/dist/storage/embedding-store.d.ts.map +1 -1
  78. package/dist/storage/embedding-store.js +69 -9
  79. package/dist/storage/embedding-store.js.map +1 -1
  80. package/dist/storage/index-cache.d.ts +12 -0
  81. package/dist/storage/index-cache.d.ts.map +1 -0
  82. package/dist/storage/index-cache.js +89 -0
  83. package/dist/storage/index-cache.js.map +1 -0
  84. package/dist/storage/index-json-mutations.d.ts +11 -0
  85. package/dist/storage/index-json-mutations.d.ts.map +1 -0
  86. package/dist/storage/index-json-mutations.js +93 -0
  87. package/dist/storage/index-json-mutations.js.map +1 -0
  88. package/dist/storage/index-migration.d.ts +22 -0
  89. package/dist/storage/index-migration.d.ts.map +1 -0
  90. package/dist/storage/index-migration.js +80 -0
  91. package/dist/storage/index-migration.js.map +1 -0
  92. package/dist/storage/index-store.d.ts +5 -61
  93. package/dist/storage/index-store.d.ts.map +1 -1
  94. package/dist/storage/index-store.js +33 -414
  95. package/dist/storage/index-store.js.map +1 -1
  96. package/dist/storage/index-version.d.ts +39 -0
  97. package/dist/storage/index-version.d.ts.map +1 -0
  98. package/dist/storage/index-version.js +87 -0
  99. package/dist/storage/index-version.js.map +1 -0
  100. package/dist/storage/registry.d.ts +9 -1
  101. package/dist/storage/registry.d.ts.map +1 -1
  102. package/dist/storage/registry.js +169 -8
  103. package/dist/storage/registry.js.map +1 -1
  104. package/dist/storage/shared-embedding-cache.d.ts +23 -3
  105. package/dist/storage/shared-embedding-cache.d.ts.map +1 -1
  106. package/dist/storage/shared-embedding-cache.js +300 -45
  107. package/dist/storage/shared-embedding-cache.js.map +1 -1
  108. package/dist/storage/telemetry/config.d.ts.map +1 -1
  109. package/dist/storage/telemetry/config.js +3 -2
  110. package/dist/storage/telemetry/config.js.map +1 -1
  111. package/dist/storage/telemetry/retro-aggregator.d.ts +21 -0
  112. package/dist/storage/telemetry/retro-aggregator.d.ts.map +1 -1
  113. package/dist/storage/telemetry/retro-aggregator.js +58 -16
  114. package/dist/storage/telemetry/retro-aggregator.js.map +1 -1
  115. package/dist/storage/telemetry/sanitizer.d.ts +16 -0
  116. package/dist/storage/telemetry/sanitizer.d.ts.map +1 -1
  117. package/dist/storage/telemetry/sanitizer.js +2 -0
  118. package/dist/storage/telemetry/sanitizer.js.map +1 -1
  119. package/dist/storage/telemetry/uploader.d.ts +3 -1
  120. package/dist/storage/telemetry/uploader.d.ts.map +1 -1
  121. package/dist/storage/telemetry/uploader.js +158 -21
  122. package/dist/storage/telemetry/uploader.js.map +1 -1
  123. package/dist/storage/usage-tracker.d.ts +8 -12
  124. package/dist/storage/usage-tracker.d.ts.map +1 -1
  125. package/dist/storage/usage-tracker.js +74 -1
  126. package/dist/storage/usage-tracker.js.map +1 -1
  127. package/dist/tools/cross-repo-contract-adapters.d.ts +39 -0
  128. package/dist/tools/cross-repo-contract-adapters.d.ts.map +1 -0
  129. package/dist/tools/cross-repo-contract-adapters.js +70 -0
  130. package/dist/tools/cross-repo-contract-adapters.js.map +1 -0
  131. package/dist/tools/cross-repo-contract-group.d.ts +17 -0
  132. package/dist/tools/cross-repo-contract-group.d.ts.map +1 -0
  133. package/dist/tools/cross-repo-contract-group.js +89 -0
  134. package/dist/tools/cross-repo-contract-group.js.map +1 -0
  135. package/dist/tools/cross-repo-contract-matcher.d.ts +24 -0
  136. package/dist/tools/cross-repo-contract-matcher.d.ts.map +1 -0
  137. package/dist/tools/cross-repo-contract-matcher.js +134 -0
  138. package/dist/tools/cross-repo-contract-matcher.js.map +1 -0
  139. package/dist/tools/cross-repo-contract-resolver.d.ts +9 -0
  140. package/dist/tools/cross-repo-contract-resolver.d.ts.map +1 -0
  141. package/dist/tools/cross-repo-contract-resolver.js +86 -0
  142. package/dist/tools/cross-repo-contract-resolver.js.map +1 -0
  143. package/dist/tools/cross-repo-contract-tools.d.ts +12 -135
  144. package/dist/tools/cross-repo-contract-tools.d.ts.map +1 -1
  145. package/dist/tools/cross-repo-contract-tools.js +8 -589
  146. package/dist/tools/cross-repo-contract-tools.js.map +1 -1
  147. package/dist/tools/cross-repo-contract-types.d.ts +30 -0
  148. package/dist/tools/cross-repo-contract-types.d.ts.map +1 -0
  149. package/dist/tools/cross-repo-contract-types.js +3 -0
  150. package/dist/tools/cross-repo-contract-types.js.map +1 -0
  151. package/dist/tools/cross-repo-outbound-calls.d.ts +28 -0
  152. package/dist/tools/cross-repo-outbound-calls.d.ts.map +1 -0
  153. package/dist/tools/cross-repo-outbound-calls.js +347 -0
  154. package/dist/tools/cross-repo-outbound-calls.js.map +1 -0
  155. package/dist/tools/cross-repo-outbound-lexer/call-detectors.d.ts.map +1 -1
  156. package/dist/tools/cross-repo-outbound-lexer/call-detectors.js +2 -0
  157. package/dist/tools/cross-repo-outbound-lexer/call-detectors.js.map +1 -1
  158. package/dist/tools/cross-repo-outbound-lexer/types.d.ts +2 -0
  159. package/dist/tools/cross-repo-outbound-lexer/types.d.ts.map +1 -1
  160. package/dist/tools/index-tools/file-indexer.js +3 -3
  161. package/dist/tools/index-tools/file-indexer.js.map +1 -1
  162. package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -1
  163. package/dist/tools/index-tools/folder-indexer.js +47 -2
  164. package/dist/tools/index-tools/folder-indexer.js.map +1 -1
  165. package/dist/tools/index-tools/parse.d.ts +12 -3
  166. package/dist/tools/index-tools/parse.d.ts.map +1 -1
  167. package/dist/tools/index-tools/parse.js +33 -8
  168. package/dist/tools/index-tools/parse.js.map +1 -1
  169. package/dist/tools/index-tools/registry.d.ts +19 -0
  170. package/dist/tools/index-tools/registry.d.ts.map +1 -1
  171. package/dist/tools/index-tools/registry.js +88 -2
  172. package/dist/tools/index-tools/registry.js.map +1 -1
  173. package/dist/tools/index-tools/state.d.ts +31 -0
  174. package/dist/tools/index-tools/state.d.ts.map +1 -1
  175. package/dist/tools/index-tools/state.js +53 -0
  176. package/dist/tools/index-tools/state.js.map +1 -1
  177. package/dist/tools/index-tools/types.d.ts +9 -0
  178. package/dist/tools/index-tools/types.d.ts.map +1 -1
  179. package/dist/tools/index-tools/watcher.js +3 -3
  180. package/dist/tools/index-tools/watcher.js.map +1 -1
  181. package/dist/tools/index-tools/worktree-seed.d.ts +44 -0
  182. package/dist/tools/index-tools/worktree-seed.d.ts.map +1 -0
  183. package/dist/tools/index-tools/worktree-seed.js +302 -0
  184. package/dist/tools/index-tools/worktree-seed.js.map +1 -0
  185. package/dist/tools/index-tools.d.ts.map +1 -1
  186. package/dist/tools/index-tools.js +3 -1
  187. package/dist/tools/index-tools.js.map +1 -1
  188. package/dist/tools/nest-ext-tools/graphql.d.ts +17 -0
  189. package/dist/tools/nest-ext-tools/graphql.d.ts.map +1 -0
  190. package/dist/tools/nest-ext-tools/graphql.js +54 -0
  191. package/dist/tools/nest-ext-tools/graphql.js.map +1 -0
  192. package/dist/tools/nest-ext-tools/microservice.d.ts +17 -0
  193. package/dist/tools/nest-ext-tools/microservice.d.ts.map +1 -0
  194. package/dist/tools/nest-ext-tools/microservice.js +51 -0
  195. package/dist/tools/nest-ext-tools/microservice.js.map +1 -0
  196. package/dist/tools/nest-ext-tools/openapi.d.ts +81 -0
  197. package/dist/tools/nest-ext-tools/openapi.d.ts.map +1 -0
  198. package/dist/tools/nest-ext-tools/openapi.js +254 -0
  199. package/dist/tools/nest-ext-tools/openapi.js.map +1 -0
  200. package/dist/tools/nest-ext-tools/queue.d.ts +27 -0
  201. package/dist/tools/nest-ext-tools/queue.d.ts.map +1 -0
  202. package/dist/tools/nest-ext-tools/queue.js +95 -0
  203. package/dist/tools/nest-ext-tools/queue.js.map +1 -0
  204. package/dist/tools/nest-ext-tools/schedule.d.ts +19 -0
  205. package/dist/tools/nest-ext-tools/schedule.d.ts.map +1 -0
  206. package/dist/tools/nest-ext-tools/schedule.js +89 -0
  207. package/dist/tools/nest-ext-tools/schedule.js.map +1 -0
  208. package/dist/tools/nest-ext-tools/scope.d.ts +19 -0
  209. package/dist/tools/nest-ext-tools/scope.d.ts.map +1 -0
  210. package/dist/tools/nest-ext-tools/scope.js +151 -0
  211. package/dist/tools/nest-ext-tools/scope.js.map +1 -0
  212. package/dist/tools/nest-ext-tools/shared.d.ts +33 -0
  213. package/dist/tools/nest-ext-tools/shared.d.ts.map +1 -0
  214. package/dist/tools/nest-ext-tools/shared.js +279 -0
  215. package/dist/tools/nest-ext-tools/shared.js.map +1 -0
  216. package/dist/tools/nest-ext-tools/typeorm.d.ts +22 -0
  217. package/dist/tools/nest-ext-tools/typeorm.d.ts.map +1 -0
  218. package/dist/tools/nest-ext-tools/typeorm.js +59 -0
  219. package/dist/tools/nest-ext-tools/typeorm.js.map +1 -0
  220. package/dist/tools/nest-ext-tools/websocket.d.ts +21 -0
  221. package/dist/tools/nest-ext-tools/websocket.d.ts.map +1 -0
  222. package/dist/tools/nest-ext-tools/websocket.js +70 -0
  223. package/dist/tools/nest-ext-tools/websocket.js.map +1 -0
  224. package/dist/tools/nest-ext-tools.d.ts +10 -204
  225. package/dist/tools/nest-ext-tools.d.ts.map +1 -1
  226. package/dist/tools/nest-ext-tools.js +10 -749
  227. package/dist/tools/nest-ext-tools.js.map +1 -1
  228. package/dist/tools/perf-tools.js +2 -2
  229. package/dist/tools/python-audit/checks/dead-code.d.ts +1 -1
  230. package/dist/tools/python-audit/checks/dead-code.d.ts.map +1 -1
  231. package/dist/tools/python-constants/constant-match.d.ts +5 -0
  232. package/dist/tools/python-constants/constant-match.d.ts.map +1 -0
  233. package/dist/tools/python-constants/constant-match.js +24 -0
  234. package/dist/tools/python-constants/constant-match.js.map +1 -0
  235. package/dist/tools/python-constants/file-context.d.ts +5 -0
  236. package/dist/tools/python-constants/file-context.d.ts.map +1 -0
  237. package/dist/tools/python-constants/file-context.js +91 -0
  238. package/dist/tools/python-constants/file-context.js.map +1 -0
  239. package/dist/tools/python-constants/function-defaults.d.ts +5 -0
  240. package/dist/tools/python-constants/function-defaults.d.ts.map +1 -0
  241. package/dist/tools/python-constants/function-defaults.js +98 -0
  242. package/dist/tools/python-constants/function-defaults.js.map +1 -0
  243. package/dist/tools/python-constants/model.d.ts +78 -0
  244. package/dist/tools/python-constants/model.d.ts.map +1 -0
  245. package/dist/tools/python-constants/model.js +2 -0
  246. package/dist/tools/python-constants/model.js.map +1 -0
  247. package/dist/tools/python-constants/syntax.d.ts +22 -0
  248. package/dist/tools/python-constants/syntax.d.ts.map +1 -0
  249. package/dist/tools/python-constants/syntax.js +93 -0
  250. package/dist/tools/python-constants/syntax.js.map +1 -0
  251. package/dist/tools/python-constants/value-resolver.d.ts +6 -0
  252. package/dist/tools/python-constants/value-resolver.d.ts.map +1 -0
  253. package/dist/tools/python-constants/value-resolver.js +320 -0
  254. package/dist/tools/python-constants/value-resolver.js.map +1 -0
  255. package/dist/tools/python-constants-tools.d.ts +3 -45
  256. package/dist/tools/python-constants-tools.d.ts.map +1 -1
  257. package/dist/tools/python-constants-tools.js +2 -505
  258. package/dist/tools/python-constants-tools.js.map +1 -1
  259. package/dist/tools/route-tools/django.d.ts +8 -0
  260. package/dist/tools/route-tools/django.d.ts.map +1 -0
  261. package/dist/tools/route-tools/django.js +52 -0
  262. package/dist/tools/route-tools/django.js.map +1 -0
  263. package/dist/tools/route-tools/express.d.ts +5 -0
  264. package/dist/tools/route-tools/express.d.ts.map +1 -0
  265. package/dist/tools/route-tools/express.js +33 -0
  266. package/dist/tools/route-tools/express.js.map +1 -0
  267. package/dist/tools/route-tools/file-sources.d.ts +7 -0
  268. package/dist/tools/route-tools/file-sources.d.ts.map +1 -0
  269. package/dist/tools/route-tools/file-sources.js +15 -0
  270. package/dist/tools/route-tools/file-sources.js.map +1 -0
  271. package/dist/tools/route-tools/handler-discovery.d.ts +4 -0
  272. package/dist/tools/route-tools/handler-discovery.d.ts.map +1 -0
  273. package/dist/tools/route-tools/handler-discovery.js +38 -0
  274. package/dist/tools/route-tools/handler-discovery.js.map +1 -0
  275. package/dist/tools/route-tools/hono.d.ts +5 -0
  276. package/dist/tools/route-tools/hono.d.ts.map +1 -0
  277. package/dist/tools/route-tools/hono.js +61 -0
  278. package/dist/tools/route-tools/hono.js.map +1 -0
  279. package/dist/tools/route-tools/ktor.d.ts +5 -0
  280. package/dist/tools/route-tools/ktor.d.ts.map +1 -0
  281. package/dist/tools/route-tools/ktor.js +76 -0
  282. package/dist/tools/route-tools/ktor.js.map +1 -0
  283. package/dist/tools/route-tools/laravel.d.ts +5 -0
  284. package/dist/tools/route-tools/laravel.d.ts.map +1 -0
  285. package/dist/tools/route-tools/laravel.js +45 -0
  286. package/dist/tools/route-tools/laravel.js.map +1 -0
  287. package/dist/tools/route-tools/mermaid-call-chain.d.ts +3 -0
  288. package/dist/tools/route-tools/mermaid-call-chain.d.ts.map +1 -0
  289. package/dist/tools/route-tools/mermaid-call-chain.js +50 -0
  290. package/dist/tools/route-tools/mermaid-call-chain.js.map +1 -0
  291. package/dist/tools/route-tools/nest.d.ts +5 -0
  292. package/dist/tools/route-tools/nest.d.ts.map +1 -0
  293. package/dist/tools/route-tools/nest.js +75 -0
  294. package/dist/tools/route-tools/nest.js.map +1 -0
  295. package/dist/tools/route-tools/next-trace.d.ts +4 -0
  296. package/dist/tools/route-tools/next-trace.d.ts.map +1 -0
  297. package/dist/tools/route-tools/next-trace.js +48 -0
  298. package/dist/tools/route-tools/next-trace.js.map +1 -0
  299. package/dist/tools/route-tools/next.d.ts +7 -0
  300. package/dist/tools/route-tools/next.d.ts.map +1 -0
  301. package/dist/tools/route-tools/next.js +77 -0
  302. package/dist/tools/route-tools/next.js.map +1 -0
  303. package/dist/tools/route-tools/python-decorators.d.ts +7 -0
  304. package/dist/tools/route-tools/python-decorators.d.ts.map +1 -0
  305. package/dist/tools/route-tools/python-decorators.js +53 -0
  306. package/dist/tools/route-tools/python-decorators.js.map +1 -0
  307. package/dist/tools/route-tools/route-mermaid.d.ts +4 -0
  308. package/dist/tools/route-tools/route-mermaid.d.ts.map +1 -0
  309. package/dist/tools/route-tools/route-mermaid.js +53 -0
  310. package/dist/tools/route-tools/route-mermaid.js.map +1 -0
  311. package/dist/tools/route-tools/spring-kotlin.d.ts +5 -0
  312. package/dist/tools/route-tools/spring-kotlin.d.ts.map +1 -0
  313. package/dist/tools/route-tools/spring-kotlin.js +52 -0
  314. package/dist/tools/route-tools/spring-kotlin.js.map +1 -0
  315. package/dist/tools/route-tools/trace-analysis.d.ts +4 -0
  316. package/dist/tools/route-tools/trace-analysis.d.ts.map +1 -0
  317. package/dist/tools/route-tools/trace-analysis.js +37 -0
  318. package/dist/tools/route-tools/trace-analysis.js.map +1 -0
  319. package/dist/tools/route-tools/trace-route.d.ts +6 -0
  320. package/dist/tools/route-tools/trace-route.d.ts.map +1 -0
  321. package/dist/tools/route-tools/trace-route.js +53 -0
  322. package/dist/tools/route-tools/trace-route.js.map +1 -0
  323. package/dist/tools/route-tools/types.d.ts +35 -0
  324. package/dist/tools/route-tools/types.d.ts.map +1 -0
  325. package/dist/tools/route-tools/types.js +2 -0
  326. package/dist/tools/route-tools/types.js.map +1 -0
  327. package/dist/tools/route-tools/yii2.d.ts +5 -0
  328. package/dist/tools/route-tools/yii2.d.ts.map +1 -0
  329. package/dist/tools/route-tools/yii2.js +73 -0
  330. package/dist/tools/route-tools/yii2.js.map +1 -0
  331. package/dist/tools/route-tools.d.ts +7 -49
  332. package/dist/tools/route-tools.d.ts.map +1 -1
  333. package/dist/tools/route-tools.js +5 -978
  334. package/dist/tools/route-tools.js.map +1 -1
  335. package/dist/tools/symbol-analysis-tools.d.ts +81 -0
  336. package/dist/tools/symbol-analysis-tools.d.ts.map +1 -0
  337. package/dist/tools/symbol-analysis-tools.js +327 -0
  338. package/dist/tools/symbol-analysis-tools.js.map +1 -0
  339. package/dist/tools/symbol-context-tools.d.ts +68 -0
  340. package/dist/tools/symbol-context-tools.d.ts.map +1 -0
  341. package/dist/tools/symbol-context-tools.js +232 -0
  342. package/dist/tools/symbol-context-tools.js.map +1 -0
  343. package/dist/tools/symbol-lookup-tools.d.ts +77 -0
  344. package/dist/tools/symbol-lookup-tools.d.ts.map +1 -0
  345. package/dist/tools/symbol-lookup-tools.js +305 -0
  346. package/dist/tools/symbol-lookup-tools.js.map +1 -0
  347. package/dist/tools/symbol-reference-tools.d.ts +38 -0
  348. package/dist/tools/symbol-reference-tools.d.ts.map +1 -0
  349. package/dist/tools/symbol-reference-tools.js +253 -0
  350. package/dist/tools/symbol-reference-tools.js.map +1 -0
  351. package/dist/tools/symbol-tool-internals.d.ts +9 -0
  352. package/dist/tools/symbol-tool-internals.d.ts.map +1 -0
  353. package/dist/tools/symbol-tool-internals.js +47 -0
  354. package/dist/tools/symbol-tool-internals.js.map +1 -0
  355. package/dist/tools/symbol-tools.d.ts +11 -270
  356. package/dist/tools/symbol-tools.d.ts.map +1 -1
  357. package/dist/tools/symbol-tools.js +7 -1131
  358. package/dist/tools/symbol-tools.js.map +1 -1
  359. package/dist/tools/taint/python-context.d.ts +10 -0
  360. package/dist/tools/taint/python-context.d.ts.map +1 -0
  361. package/dist/tools/taint/python-context.js +150 -0
  362. package/dist/tools/taint/python-context.js.map +1 -0
  363. package/dist/tools/taint/taint-analyzer.d.ts +2 -0
  364. package/dist/tools/taint/taint-analyzer.d.ts.map +1 -0
  365. package/dist/tools/taint/taint-analyzer.js +2 -0
  366. package/dist/tools/taint/taint-analyzer.js.map +1 -0
  367. package/dist/tools/taint/taint-expression.d.ts +18 -0
  368. package/dist/tools/taint/taint-expression.d.ts.map +1 -0
  369. package/dist/tools/taint/taint-expression.js +265 -0
  370. package/dist/tools/taint/taint-expression.js.map +1 -0
  371. package/dist/tools/taint/taint-flow.d.ts +10 -0
  372. package/dist/tools/taint/taint-flow.d.ts.map +1 -0
  373. package/dist/tools/taint/taint-flow.js +178 -0
  374. package/dist/tools/taint/taint-flow.js.map +1 -0
  375. package/dist/tools/taint/taint-model.d.ts +113 -0
  376. package/dist/tools/taint/taint-model.d.ts.map +1 -0
  377. package/dist/tools/taint/taint-model.js +277 -0
  378. package/dist/tools/taint/taint-model.js.map +1 -0
  379. package/dist/tools/taint-tools.d.ts +2 -34
  380. package/dist/tools/taint-tools.d.ts.map +1 -1
  381. package/dist/tools/taint-tools.js +2 -852
  382. package/dist/tools/taint-tools.js.map +1 -1
  383. package/dist/tools/typescript-constants/file-context.d.ts +7 -0
  384. package/dist/tools/typescript-constants/file-context.d.ts.map +1 -0
  385. package/dist/tools/typescript-constants/file-context.js +219 -0
  386. package/dist/tools/typescript-constants/file-context.js.map +1 -0
  387. package/dist/tools/typescript-constants/symbol-resolver.d.ts +7 -0
  388. package/dist/tools/typescript-constants/symbol-resolver.d.ts.map +1 -0
  389. package/dist/tools/typescript-constants/symbol-resolver.js +165 -0
  390. package/dist/tools/typescript-constants/symbol-resolver.js.map +1 -0
  391. package/dist/tools/typescript-constants/types.d.ts +44 -0
  392. package/dist/tools/typescript-constants/types.d.ts.map +1 -0
  393. package/dist/tools/typescript-constants/types.js +2 -0
  394. package/dist/tools/typescript-constants/types.js.map +1 -0
  395. package/dist/tools/typescript-constants/value-evaluator.d.ts +8 -0
  396. package/dist/tools/typescript-constants/value-evaluator.d.ts.map +1 -0
  397. package/dist/tools/typescript-constants/value-evaluator.js +404 -0
  398. package/dist/tools/typescript-constants/value-evaluator.js.map +1 -0
  399. package/dist/tools/typescript-constants-tools.d.ts.map +1 -1
  400. package/dist/tools/typescript-constants-tools.js +19 -709
  401. package/dist/tools/typescript-constants-tools.js.map +1 -1
  402. package/dist/utils/import-graph/collect.d.ts +5 -0
  403. package/dist/utils/import-graph/collect.d.ts.map +1 -0
  404. package/dist/utils/import-graph/collect.js +47 -0
  405. package/dist/utils/import-graph/collect.js.map +1 -0
  406. package/dist/utils/import-graph/edge-accumulator.d.ts +7 -0
  407. package/dist/utils/import-graph/edge-accumulator.d.ts.map +1 -0
  408. package/dist/utils/import-graph/edge-accumulator.js +47 -0
  409. package/dist/utils/import-graph/edge-accumulator.js.map +1 -0
  410. package/dist/utils/import-graph/language-imports.d.ts +6 -0
  411. package/dist/utils/import-graph/language-imports.d.ts.map +1 -0
  412. package/dist/utils/import-graph/language-imports.js +84 -0
  413. package/dist/utils/import-graph/language-imports.js.map +1 -0
  414. package/dist/utils/import-graph/metrics.d.ts +6 -0
  415. package/dist/utils/import-graph/metrics.d.ts.map +1 -0
  416. package/dist/utils/import-graph/metrics.js +51 -0
  417. package/dist/utils/import-graph/metrics.js.map +1 -0
  418. package/dist/utils/import-graph/path-map.d.ts +7 -0
  419. package/dist/utils/import-graph/path-map.d.ts.map +1 -0
  420. package/dist/utils/import-graph/path-map.js +56 -0
  421. package/dist/utils/import-graph/path-map.js.map +1 -0
  422. package/dist/utils/import-graph/python-php-edge-collectors.d.ts +5 -0
  423. package/dist/utils/import-graph/python-php-edge-collectors.d.ts.map +1 -0
  424. package/dist/utils/import-graph/python-php-edge-collectors.js +56 -0
  425. package/dist/utils/import-graph/python-php-edge-collectors.js.map +1 -0
  426. package/dist/utils/import-graph/source-edge-collector.d.ts +13 -0
  427. package/dist/utils/import-graph/source-edge-collector.d.ts.map +1 -0
  428. package/dist/utils/import-graph/source-edge-collector.js +42 -0
  429. package/dist/utils/import-graph/source-edge-collector.js.map +1 -0
  430. package/dist/utils/import-graph/source-imports.d.ts +5 -0
  431. package/dist/utils/import-graph/source-imports.d.ts.map +1 -0
  432. package/dist/utils/import-graph/source-imports.js +33 -0
  433. package/dist/utils/import-graph/source-imports.js.map +1 -0
  434. package/dist/utils/import-graph/types.d.ts +15 -0
  435. package/dist/utils/import-graph/types.d.ts.map +1 -0
  436. package/dist/utils/import-graph/types.js +2 -0
  437. package/dist/utils/import-graph/types.js.map +1 -0
  438. package/dist/utils/import-graph/typescript-edge-collector.d.ts +7 -0
  439. package/dist/utils/import-graph/typescript-edge-collector.d.ts.map +1 -0
  440. package/dist/utils/import-graph/typescript-edge-collector.js +58 -0
  441. package/dist/utils/import-graph/typescript-edge-collector.js.map +1 -0
  442. package/dist/utils/import-graph/workspace-alias.d.ts +7 -0
  443. package/dist/utils/import-graph/workspace-alias.d.ts.map +1 -0
  444. package/dist/utils/import-graph/workspace-alias.js +95 -0
  445. package/dist/utils/import-graph/workspace-alias.js.map +1 -0
  446. package/dist/utils/import-graph/workspace-entry.d.ts +3 -0
  447. package/dist/utils/import-graph/workspace-entry.d.ts.map +1 -0
  448. package/dist/utils/import-graph/workspace-entry.js +81 -0
  449. package/dist/utils/import-graph/workspace-entry.js.map +1 -0
  450. package/dist/utils/import-graph.d.ts +10 -94
  451. package/dist/utils/import-graph.d.ts.map +1 -1
  452. package/dist/utils/import-graph.js +6 -702
  453. package/dist/utils/import-graph.js.map +1 -1
  454. package/package.json +1 -1
  455. package/rules/codesift.md +11 -2
  456. package/rules/codesift.mdc +11 -2
  457. package/rules/codex.md +11 -2
  458. package/rules/gemini.md +11 -2
@@ -0,0 +1,33 @@
1
+ const IMPORT_PATTERNS = [
2
+ /import\s+.*?\s+from\s+['"]([^'"]+)['"]/g,
3
+ /import\s*\(\s*['"]([^'"]+)['"]\s*\)/g,
4
+ /require\s*\(\s*['"]([^'"]+)['"]\s*\)/g,
5
+ /(?:require|include)(?:_once)?\s*\(?\s*(?:__DIR__\s*\.\s*)?['"](\.\.?\/[^'"]+\.php)['"]/g,
6
+ ];
7
+ function collectImports(source, includeBare) {
8
+ const imports = new Set();
9
+ for (const pattern of IMPORT_PATTERNS) {
10
+ pattern.lastIndex = 0;
11
+ let match;
12
+ while ((match = pattern.exec(source)) !== null) {
13
+ const importPath = match[1];
14
+ if (!importPath)
15
+ continue;
16
+ const isRelative = importPath.startsWith(".");
17
+ if ((includeBare && !isRelative && !importPath.startsWith("/")) ||
18
+ (!includeBare && isRelative)) {
19
+ imports.add(importPath);
20
+ }
21
+ }
22
+ }
23
+ return [...imports];
24
+ }
25
+ /** Extract relative import paths from a source string. */
26
+ export function extractImports(source) {
27
+ return collectImports(source, false);
28
+ }
29
+ /** Extract bare-specifier imports for workspace and tsconfig resolution. */
30
+ export function extractBareImports(source) {
31
+ return collectImports(source, true);
32
+ }
33
+ //# sourceMappingURL=source-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-imports.js","sourceRoot":"","sources":["../../../src/utils/import-graph/source-imports.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG;IACtB,yCAAyC;IACzC,sCAAsC;IACtC,uCAAuC;IACvC,yFAAyF;CAC1F,CAAC;AAEF,SAAS,cAAc,CAAC,MAAc,EAAE,WAAoB;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU;gBAAE,SAAS;YAC1B,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC3D,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface ImportEdge {
2
+ from: string;
3
+ to: string;
4
+ type_only?: boolean;
5
+ star_import?: boolean;
6
+ raw?: string;
7
+ }
8
+ export type ImportEdgeExtras = Pick<ImportEdge, "type_only" | "star_import" | "raw">;
9
+ export type AddImportEdge = (from: string, to: string, extras?: ImportEdgeExtras) => void;
10
+ export interface PythonImportContext {
11
+ disabled: boolean;
12
+ indexedFiles: Set<string>;
13
+ srcLayout: string | null;
14
+ }
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,aAAa,GAAG,KAAK,CAAC,CAAC;AAErF,MAAM,MAAM,aAAa,GAAG,CAC1B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,gBAAgB,KACtB,IAAI,CAAC;AAEV,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/import-graph/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { CodeIndex } from "../../types.js";
2
+ import type { AddImportEdge } from "./types.js";
3
+ export interface TsCollectionOutcome {
4
+ astHandled: boolean;
5
+ }
6
+ export declare function collectTypeScriptEdges(index: CodeIndex, filePath: string, source: string, normalizedPaths: Map<string, string>, addEdge: AddImportEdge): Promise<TsCollectionOutcome>;
7
+ //# sourceMappingURL=typescript-edge-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-edge-collector.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/typescript-edge-collector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,OAAO,CAAC;CACrB;AA6BD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,CAAC,CA6B9B"}
@@ -0,0 +1,58 @@
1
+ import { isAbsolute, join, relative, resolve, sep } from "node:path";
2
+ import { getCachedParse, setCachedParse } from "../../parser/parse-cache.js";
3
+ import { getParser } from "../../parser/parser-manager.js";
4
+ import { extractTypeScriptImports } from "../ts-imports.js";
5
+ import { resolveTsAliasedImport } from "../tsconfig-paths.js";
6
+ import { resolveImportPath } from "./path-map.js";
7
+ function resolveRelativeImport(importerFile, importPath, normalizedPaths) {
8
+ let normalized = resolveImportPath(importerFile, importPath);
9
+ if (normalized.startsWith("./"))
10
+ normalized = normalized.slice(2);
11
+ return normalizedPaths.get(normalized) ?? null;
12
+ }
13
+ function resolveAliasedImport(index, importerFile, importPath, normalizedPaths) {
14
+ const aliased = resolveTsAliasedImport(join(index.root, importerFile), importPath, index.root);
15
+ if (!aliased)
16
+ return null;
17
+ const relativePath = relative(resolve(index.root), resolve(aliased));
18
+ const insideRoot = relativePath !== "" && !isAbsolute(relativePath) && !relativePath.startsWith("..");
19
+ if (!insideRoot)
20
+ return null;
21
+ const normalizedRelativePath = relativePath.split(sep).join("/");
22
+ const indexed = normalizedPaths.has(normalizedRelativePath.replace(/\.[^./]+$/, "")) ||
23
+ index.files.some((file) => file.path === normalizedRelativePath);
24
+ return indexed ? normalizedRelativePath : null;
25
+ }
26
+ export async function collectTypeScriptEdges(index, filePath, source, normalizedPaths, addEdge) {
27
+ if (!/\.tsx?$/.test(filePath))
28
+ return { astHandled: false };
29
+ try {
30
+ const language = filePath.endsWith(".tsx") ? "tsx" : "typescript";
31
+ const parser = await getParser(language);
32
+ if (!parser)
33
+ return { astHandled: false };
34
+ let tree = getCachedParse(language, source);
35
+ if (!tree) {
36
+ tree = parser.parse(source);
37
+ if (!tree) {
38
+ console.warn(`[import-graph] TS parser returned null for ${filePath}; falling back to regex`);
39
+ return { astHandled: false };
40
+ }
41
+ setCachedParse(language, source, tree);
42
+ }
43
+ for (const imported of extractTypeScriptImports(tree)) {
44
+ const resolved = imported.path.startsWith(".")
45
+ ? resolveRelativeImport(filePath, imported.path, normalizedPaths)
46
+ : resolveAliasedImport(index, filePath, imported.path, normalizedPaths);
47
+ if (resolved)
48
+ addEdge(filePath, resolved, { type_only: imported.is_type_only });
49
+ }
50
+ return { astHandled: true };
51
+ }
52
+ catch (error) {
53
+ const message = error instanceof Error ? error.message : String(error);
54
+ console.warn(`[import-graph] TS AST extraction failed for ${filePath}; falling back to regex: ${message}`);
55
+ return { astHandled: false };
56
+ }
57
+ }
58
+ //# sourceMappingURL=typescript-edge-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-edge-collector.js","sourceRoot":"","sources":["../../../src/utils/import-graph/typescript-edge-collector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { CodeIndex } from "../../types.js";
2
+ export interface WorkspaceAliasResolver {
3
+ resolve: (importPath: string, importerFile: string) => string | null;
4
+ }
5
+ export declare const NULL_RESOLVER: WorkspaceAliasResolver;
6
+ export declare function buildWorkspaceAliasResolver(index: CodeIndex): WorkspaceAliasResolver;
7
+ //# sourceMappingURL=workspace-alias.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-alias.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/workspace-alias.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,gBAAgB,CAAC;AAO3D,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtE;AAED,eAAO,MAAM,aAAa,EAAE,sBAAgD,CAAC;AAwE7E,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,sBAAsB,CAiCpF"}
@@ -0,0 +1,95 @@
1
+ import { buildNormalizedPathMap } from "./path-map.js";
2
+ import { relativeWorkspaceRoot, resolveWorkspaceEntry } from "./workspace-entry.js";
3
+ const INDEX_SUFFIXES = ["/index.ts", "/index.tsx", "/index.js", "/index.jsx"];
4
+ const WORKSPACE_SOURCE_EXTENSION = /\.(astro|ts|tsx|js|jsx|mjs|cjs)$/;
5
+ export const NULL_RESOLVER = { resolve: () => null };
6
+ function lookupFile(candidate, lookup) {
7
+ if (lookup.fileSet.has(candidate))
8
+ return candidate;
9
+ const normalized = lookup.normalizedPaths.get(candidate.replace(WORKSPACE_SOURCE_EXTENSION, ""));
10
+ if (normalized)
11
+ return normalized;
12
+ for (const suffix of INDEX_SUFFIXES) {
13
+ const indexedCandidate = candidate + suffix;
14
+ if (lookup.fileSet.has(indexedCandidate))
15
+ return indexedCandidate;
16
+ }
17
+ return null;
18
+ }
19
+ function findOriginatingWorkspace(importerFile, workspacesByPath) {
20
+ for (const { rel, workspace } of workspacesByPath) {
21
+ if (rel === "" || importerFile === rel || importerFile.startsWith(rel + "/")) {
22
+ return workspace;
23
+ }
24
+ }
25
+ return null;
26
+ }
27
+ function resolveWorkspaceSubpath(importPath, rootsByName, lookup) {
28
+ for (const [workspaceName, workspaceRoot] of rootsByName) {
29
+ if (!importPath.startsWith(workspaceName + "/"))
30
+ continue;
31
+ const subpath = importPath.slice(workspaceName.length + 1);
32
+ for (const candidate of [`${workspaceRoot}/${subpath}`, `${workspaceRoot}/src/${subpath}`]) {
33
+ const found = lookupFile(candidate, lookup);
34
+ if (found)
35
+ return found;
36
+ }
37
+ }
38
+ return null;
39
+ }
40
+ function resolveTsconfigPath(importPath, importerFile, index, workspacesByPath, lookup) {
41
+ const workspace = findOriginatingWorkspace(importerFile, workspacesByPath);
42
+ if (!workspace)
43
+ return null;
44
+ const workspaceRoot = relativeWorkspaceRoot(workspace.root, index.root) ?? "";
45
+ for (const mapping of workspace.tsconfig_paths) {
46
+ const wildcard = mapping.from_pattern.endsWith("/*");
47
+ const prefix = wildcard ? mapping.from_pattern.slice(0, -1) : mapping.from_pattern;
48
+ if ((wildcard && !importPath.startsWith(prefix)) || (!wildcard && prefix !== importPath))
49
+ continue;
50
+ const captured = wildcard ? importPath.slice(prefix.length) : "";
51
+ for (const target of mapping.to_paths) {
52
+ const expanded = wildcard ? target.replaceAll("*", captured) : target;
53
+ for (const candidate of [expanded, ...(workspaceRoot ? [`${workspaceRoot}/${expanded}`] : [])]) {
54
+ const found = lookupFile(candidate, lookup);
55
+ if (found)
56
+ return found;
57
+ }
58
+ }
59
+ }
60
+ return null;
61
+ }
62
+ export function buildWorkspaceAliasResolver(index) {
63
+ if (!index.workspaces || index.workspaces.length === 0)
64
+ return NULL_RESOLVER;
65
+ const lookup = {
66
+ fileSet: new Set(index.files.map((file) => file.path)),
67
+ normalizedPaths: buildNormalizedPathMap(index),
68
+ };
69
+ const rootsByName = new Map();
70
+ const entriesByName = new Map();
71
+ const workspacesByPath = [];
72
+ for (const workspace of index.workspaces) {
73
+ const rel = relativeWorkspaceRoot(workspace.root, index.root);
74
+ if (rel === null)
75
+ continue;
76
+ workspacesByPath.push({ rel, workspace });
77
+ if (workspace.name) {
78
+ rootsByName.set(workspace.name, rel);
79
+ entriesByName.set(workspace.name, resolveWorkspaceEntry(workspace.root, rel, lookup.fileSet, lookup.normalizedPaths));
80
+ }
81
+ }
82
+ workspacesByPath.sort((left, right) => right.rel.length - left.rel.length);
83
+ return {
84
+ resolve: (importPath, importerFile) => {
85
+ const directEntry = entriesByName.get(importPath);
86
+ if (directEntry)
87
+ return directEntry;
88
+ const subpath = resolveWorkspaceSubpath(importPath, rootsByName, lookup);
89
+ if (subpath)
90
+ return subpath;
91
+ return resolveTsconfigPath(importPath, importerFile, index, workspacesByPath, lookup);
92
+ },
93
+ };
94
+ }
95
+ //# sourceMappingURL=workspace-alias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-alias.js","sourceRoot":"","sources":["../../../src/utils/import-graph/workspace-alias.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function relativeWorkspaceRoot(absPath: string, indexRoot: string): string | null;
2
+ export declare function resolveWorkspaceEntry(workspaceRoot: string, relativeRoot: string, fileSet: Set<string>, normalizedPaths: Map<string, string>): string | null;
3
+ //# sourceMappingURL=workspace-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-entry.d.ts","sourceRoot":"","sources":["../../../src/utils/import-graph/workspace-entry.ts"],"names":[],"mappings":"AAoBA,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvF;AAyCD,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,MAAM,GAAG,IAAI,CAcf"}
@@ -0,0 +1,81 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { isAbsolute, relative, sep } from "node:path";
3
+ const DEFAULT_WORKSPACE_ENTRIES = [
4
+ "src/index.ts", "src/index.tsx", "src/index.js",
5
+ "index.ts", "index.tsx", "index.js",
6
+ ];
7
+ const WORKSPACE_SOURCE_EXTENSION = /\.(astro|ts|tsx|js|jsx|mjs|cjs)$/;
8
+ const RUNTIME_EXPORT_CONDITIONS = [
9
+ "import", "default", "require", "node",
10
+ ];
11
+ export function relativeWorkspaceRoot(absPath, indexRoot) {
12
+ const rel = relative(indexRoot, absPath);
13
+ if (isAbsolute(rel) || rel === ".." || rel.startsWith(`..${sep}`)) {
14
+ return null;
15
+ }
16
+ return rel.replaceAll("\\", "/");
17
+ }
18
+ function readWorkspacePackageJson(absRoot) {
19
+ try {
20
+ return JSON.parse(readFileSync(`${absRoot}/package.json`, "utf-8"));
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ }
26
+ function pickConditionalEntry(root, depth = 0) {
27
+ if (depth > 8 || Array.isArray(root))
28
+ return null;
29
+ if (typeof root === "string")
30
+ return root;
31
+ if (!root || typeof root !== "object")
32
+ return null;
33
+ const conditional = root;
34
+ for (const key of RUNTIME_EXPORT_CONDITIONS) {
35
+ const entry = pickConditionalEntry(conditional[key], depth + 1);
36
+ if (entry)
37
+ return entry;
38
+ }
39
+ return null;
40
+ }
41
+ function pickEntry(pkg) {
42
+ if (!pkg)
43
+ return undefined;
44
+ if (typeof pkg.source === "string")
45
+ return pkg.source;
46
+ if (typeof pkg.exports === "string") {
47
+ return pkg.exports.trim() ? pkg.exports : null;
48
+ }
49
+ if (pkg.exports && typeof pkg.exports === "object") {
50
+ const exportsMap = pkg.exports;
51
+ const rootExport = exportsMap["."]
52
+ ?? (Object.keys(exportsMap).some((key) => key.startsWith(".")) ? null : exportsMap);
53
+ const exportedEntry = pickConditionalEntry(rootExport);
54
+ if (exportedEntry)
55
+ return exportedEntry;
56
+ return null;
57
+ }
58
+ if (typeof pkg.module === "string")
59
+ return pkg.module;
60
+ if (typeof pkg.main === "string")
61
+ return pkg.main;
62
+ return undefined;
63
+ }
64
+ export function resolveWorkspaceEntry(workspaceRoot, relativeRoot, fileSet, normalizedPaths) {
65
+ const configuredEntry = pickEntry(readWorkspacePackageJson(workspaceRoot));
66
+ if (configuredEntry === null)
67
+ return null;
68
+ const relativeEntries = configuredEntry
69
+ ? [configuredEntry.replace(/^\.?\/+/, ""), ...DEFAULT_WORKSPACE_ENTRIES]
70
+ : [...DEFAULT_WORKSPACE_ENTRIES];
71
+ for (const entry of relativeEntries) {
72
+ const candidate = relativeRoot ? `${relativeRoot}/${entry}` : entry;
73
+ if (fileSet.has(candidate))
74
+ return candidate;
75
+ const normalized = normalizedPaths.get(candidate.replace(WORKSPACE_SOURCE_EXTENSION, ""));
76
+ if (normalized)
77
+ return normalized;
78
+ }
79
+ return null;
80
+ }
81
+ //# sourceMappingURL=workspace-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-entry.js","sourceRoot":"","sources":["../../../src/utils/import-graph/workspace-entry.ts"],"names":[],"mappings":"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"}
@@ -1,98 +1,14 @@
1
- import type { CodeIndex } from "../types.js";
2
- export interface ImportEdge {
3
- from: string;
4
- to: string;
5
- type_only?: boolean;
6
- star_import?: boolean;
7
- raw?: string;
8
- }
9
1
  /**
10
- * Extract import paths from a source string.
11
- * Returns relative paths only (skips node_modules / bare specifiers).
12
- */
13
- export declare function extractImports(source: string): string[];
14
- /**
15
- * Extract bare-specifier imports (e.g. `@org/shared`, `@/utils`).
16
- * Only used by the workspace-alias / tsconfig-paths resolvers when
17
- * `index.workspaces` is present. Skips relative paths and skips imports
18
- * that look like absolute file URLs.
19
- *
20
- * Task 6 of monorepo workspace intelligence plan.
21
- */
22
- export declare function extractBareImports(source: string): string[];
23
- /**
24
- * Normalize an import path relative to the importing file.
25
- * Resolves "./foo" and "../bar" relative to the importer's directory.
26
- */
27
- export declare function resolveImportPath(importerFile: string, importPath: string): string;
28
- /**
29
- * Extract PHP `use` statements (FQCN imports).
30
- * Returns fully-qualified class/namespace names without the leading backslash.
31
- * These are NOT file paths — they require PSR-4 resolution against composer.json.
32
- *
33
- * Handles both single-FQCN and grouped forms:
34
- * `use App\Models\User;`
35
- * `use App\Models\User as U;`
36
- * `use App\Models\{User, Post, Comment};`
37
- * `use App\{Models\User, Services\Auth as A};`
38
- */
39
- export declare function extractPhpUseStatements(source: string): string[];
40
- /**
41
- * Extract Kotlin `import` statements (fully-qualified names).
42
- * Returns dot-separated package + class names. Wildcards (`com.example.*`) are
43
- * preserved as-is. These are NOT file paths — they require heuristic resolution
44
- * against the source root (usually `src/main/kotlin`, `src/commonMain/kotlin`, etc.).
45
- */
46
- export declare function extractKotlinImports(source: string): string[];
47
- /**
48
- * Heuristically resolve a Kotlin fully-qualified import to an indexed file.
49
- * Strategy: match the last segment of the FQN (the simple class name) against
50
- * file basenames. For `com.example.service.UserService`, tries to find a file
51
- * whose basename (without .kt/.kts) is `UserService` AND whose path contains
52
- * the package path `com/example/service`.
2
+ * Stable public facade for import-graph utilities.
53
3
  *
54
- * Returns the matched file path or null if no match.
55
- *
56
- * Limitations: single-repo heuristic. Doesn't handle wildcard imports
57
- * (`com.example.*`) or multi-module setups with complex source roots.
58
- */
59
- export declare function resolveKotlinImport(fqName: string, kotlinFilesByBasename: Map<string, string[]>): string | null;
60
- /**
61
- * Build a lookup map from Kotlin file basenames (without extension) to file paths.
62
- * Used by resolveKotlinImport for heuristic FQN resolution.
63
- */
64
- export declare function buildKotlinFilesByBasename(index: CodeIndex): Map<string, string[]>;
65
- interface WorkspaceAliasResolver {
66
- resolve: (importPath: string, importerFile: string) => string | null;
67
- }
68
- /** Build a workspace-alias resolver for the given index. Reads each
69
- * workspace's package.json once at construction time to discover entry
70
- * points; never reads disk afterwards. Returns a no-op resolver on flat
71
- * repos. */
72
- export declare function buildWorkspaceAliasResolver(index: CodeIndex): WorkspaceAliasResolver;
73
- /**
74
- * Build normalized path map for matching imports to indexed files.
75
- */
76
- export declare function buildNormalizedPathMap(index: CodeIndex): Map<string, string>;
77
- /**
78
- * Collect all import edges between files in the index.
79
- * Reads file source from disk to extract import statements.
80
- * Handles JS/TS/PHP relative imports AND Kotlin fully-qualified imports
81
- * (via heuristic basename + package-path matching).
82
- */
83
- export declare function collectImportEdges(index: CodeIndex, fileFilter?: Set<string>): Promise<ImportEdge[]>;
84
- /**
85
- * Compute file-level PageRank from import edges.
86
- *
87
- * Returns a Map of file path → PageRank score (sums to ~1). Isolated nodes
88
- * (files with neither incoming nor outgoing edges) are pre-filtered. On
89
- * empty input or a graphology/pagerank failure, returns an empty Map.
90
- * Used by wiki-hub-ranker (spec D4 Layer 2).
91
- */
92
- export declare function buildFilePageRank(edges: ImportEdge[]): Map<string, number>;
93
- /**
94
- * Build adjacency lists (bidirectional) from import edges.
4
+ * Keep consumers on this module while implementations remain split by
5
+ * responsibility under ./import-graph/.
95
6
  */
96
- export declare function buildImportAdjacency(edges: ImportEdge[]): Map<string, Set<string>>;
97
- export {};
7
+ export type { ImportEdge } from "./import-graph/types.js";
8
+ export { extractImports, extractBareImports } from "./import-graph/source-imports.js";
9
+ export { buildNormalizedPathMap, resolveImportPath } from "./import-graph/path-map.js";
10
+ export { buildKotlinFilesByBasename, extractKotlinImports, extractPhpUseStatements, resolveKotlinImport, } from "./import-graph/language-imports.js";
11
+ export { buildWorkspaceAliasResolver } from "./import-graph/workspace-alias.js";
12
+ export { collectImportEdges } from "./import-graph/collect.js";
13
+ export { buildFilePageRank, buildImportAdjacency } from "./import-graph/metrics.js";
98
14
  //# sourceMappingURL=import-graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-graph.d.ts","sourceRoot":"","sources":["../../src/utils/import-graph.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,aAAa,CAAC;AAexD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAkCD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAevD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAc3D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAoBlF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BhE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAS7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC3C,MAAM,GAAG,IAAI,CA8Bf;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAelF;AAWD,UAAU,sBAAsB;IAC9B,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtE;AAID;;;aAGa;AACb,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,sBAAsB,CA4GpF;AAuED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAc5E;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAChB,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACvB,OAAO,CAAC,UAAU,EAAE,CAAC,CAiOvB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAYlF"}
1
+ {"version":3,"file":"import-graph.d.ts","sourceRoot":"","sources":["../../src/utils/import-graph.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}