cgraphx 1.4.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1311) hide show
  1. package/LICENSE +1 -1
  2. package/README.en.md +126 -0
  3. package/README.md +78 -196
  4. package/dist/.claude-template/.cgraphx/timeline-current-turn.json +1 -0
  5. package/dist/.claude-template/CLAUDE.md +10 -0
  6. package/dist/.claude-template/FLOW-MAP.md +107 -0
  7. package/dist/.claude-template/agents/knowledge-recall.md +126 -0
  8. package/dist/.claude-template/commands/end.md +62 -0
  9. package/dist/.claude-template/commands/my-query.md +1 -1
  10. package/dist/.claude-template/deprecated-assets.json +11 -0
  11. package/dist/.claude-template/hooks/precommit-check/precommit-check.cjs +27 -24
  12. package/dist/.claude-template/skills/.cgraphx/timeline-current-turn.json +1 -0
  13. package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +22 -24
  14. package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +350 -165
  15. package/dist/.claude-template/skills/cgraphx-guide/how-to-use.md +211 -0
  16. package/dist/.claude-template/skills/clarify-requirements/SKILL.md +75 -383
  17. package/dist/.claude-template/skills/developer-timeline/SKILL.md +3 -2
  18. package/dist/.claude-template/skills/export-table-ddl/SKILL.md +3 -2
  19. package/dist/.claude-template/skills/handdrawn-deck/.cgraphx/timeline-current-turn.json +1 -0
  20. package/dist/.claude-template/skills/handdrawn-deck/SKILL.md +305 -0
  21. package/dist/.claude-template/skills/handdrawn-deck/references/.cgraphx/timeline-current-turn.json +1 -0
  22. package/dist/.claude-template/skills/handdrawn-deck/references/deck-template.html +469 -0
  23. package/dist/.claude-template/skills/handdrawn-deck/references/gen-script-md.cjs +44 -0
  24. package/dist/.claude-template/skills/handdrawn-deck/references/seg.cjs +54 -0
  25. package/dist/.claude-template/skills/handdrawn-sketch-engine/.cgraphx/timeline-current-turn.json +1 -0
  26. package/dist/.claude-template/skills/handdrawn-sketch-engine/SKILL.md +279 -0
  27. package/dist/.claude-template/skills/handdrawn-sketch-engine/assets/icon-library.js +238 -0
  28. package/dist/.claude-template/skills/handdrawn-sketch-engine/references/engine-template.html +275 -0
  29. package/dist/.claude-template/skills/handdrawn-sketch-engine/references/reference-render.html +445 -0
  30. package/dist/.claude-template/skills/implementation/SKILL.md +36 -110
  31. package/dist/.claude-template/skills/init-project-guides/SKILL.md +81 -0
  32. package/dist/.claude-template/skills/init-project-guides/templates/git-standards.md +37 -0
  33. package/dist/.claude-template/skills/init-project-guides/templates/go.md +160 -0
  34. package/dist/.claude-template/skills/init-project-guides/templates/java.md +173 -0
  35. package/dist/.claude-template/skills/init-project-guides/templates/schema-convention.md +11 -0
  36. package/dist/.claude-template/skills/init-project-guides/templates/typescript.md +156 -0
  37. package/dist/.claude-template/skills/knowledge-api/SKILL.md +143 -0
  38. package/dist/.claude-template/skills/knowledge-api/agent-prompt.md +51 -0
  39. package/dist/.claude-template/skills/knowledge-init/SKILL.md +761 -0
  40. package/dist/.claude-template/skills/knowledge-migrate/SKILL.md +173 -0
  41. package/dist/.claude-template/skills/knowledge-recall/SKILL.md +25 -0
  42. package/dist/.claude-template/skills/knowledge-write/SKILL.md +126 -0
  43. package/dist/.claude-template/skills/knowledge-write/template-concept.md +95 -0
  44. package/dist/.claude-template/skills/knowledge-write/template-flow.md +100 -0
  45. package/dist/.claude-template/skills/knowledge-write/template-guide.md +77 -0
  46. package/dist/.claude-template/skills/knowledge-write/template-memory.md +61 -0
  47. package/dist/.claude-template/skills/run-api-test/SKILL.md +6 -4
  48. package/dist/.claude-template/skills/run-api-test/assets/template-test-report.md +448 -55
  49. package/dist/.claude-template/skills/run-api-test/assets/template-test-verify.jsonl +5 -5
  50. package/dist/.claude-template/skills/run-api-test/references/report-format.md +54 -19
  51. package/dist/.claude-template/skills/subagent-implement/SKILL.md +60 -183
  52. package/dist/.claude-template/skills/subagent-implement/implementer-prompt.md +9 -4
  53. package/dist/.claude-template/skills/subagent-implement/quality-reviewer-prompt.md +1 -1
  54. package/dist/.claude-template/skills/subagent-implement/spec-reviewer-prompt.md +1 -0
  55. package/dist/.claude-template/skills/write-api/SKILL.md +7 -5
  56. package/dist/.claude-template/skills/write-api/assets/template-api-spec.md +2 -3
  57. package/dist/.claude-template/skills/write-api/assets/template-request.bru +21 -0
  58. package/dist/.claude-template/skills/write-api/references/ai-prompts.md +1 -2
  59. package/dist/.claude-template/skills/write-api/references/api-spec-format.md +0 -1
  60. package/dist/.claude-template/skills/write-api-doc/SKILL.md +8 -7
  61. package/dist/.claude-template/skills/write-design-doc/SKILL.md +86 -0
  62. package/dist/.claude-template/skills/write-design-doc/template-design-html.md +357 -0
  63. package/dist/.claude-template/skills/write-design-doc/template-design-md.md +164 -0
  64. package/dist/.claude-template/skills/write-plan/SKILL.md +94 -291
  65. package/dist/.claude-template/skills/write-plan/plan-document-reviewer-prompt.md +24 -6
  66. package/dist/.claude-template/skills/write-prd/SKILL.md +4 -2
  67. package/dist/.claude-template/skills/write-spec/SKILL.md +75 -282
  68. package/dist/.claude-template/skills/write-unit-test-code/SKILL.md +221 -0
  69. package/dist/.claude-template/skills/write-unit-test-spec/SKILL.md +115 -0
  70. package/dist/.claude-template/skills/write-workload/SKILL.md +130 -0
  71. package/dist/cli/fatal-handler.d.ts +21 -0
  72. package/dist/cli/fatal-handler.d.ts.map +1 -0
  73. package/dist/cli/fatal-handler.js +109 -0
  74. package/dist/cli/fatal-handler.js.map +1 -0
  75. package/dist/cli/index.d.ts +27 -0
  76. package/dist/cli/index.d.ts.map +1 -0
  77. package/dist/cli/index.js +248 -0
  78. package/dist/cli/index.js.map +1 -0
  79. package/dist/cli/installer/claude-assets.d.ts +101 -0
  80. package/dist/cli/installer/claude-assets.d.ts.map +1 -0
  81. package/dist/cli/installer/claude-assets.js +321 -0
  82. package/dist/cli/installer/claude-assets.js.map +1 -0
  83. package/dist/cli/installer/index.d.ts +105 -0
  84. package/dist/cli/installer/index.d.ts.map +1 -0
  85. package/dist/cli/installer/index.js +548 -0
  86. package/dist/cli/installer/index.js.map +1 -0
  87. package/dist/cli/installer/targets/claude.d.ts +72 -0
  88. package/dist/cli/installer/targets/claude.d.ts.map +1 -0
  89. package/dist/cli/installer/targets/claude.js +580 -0
  90. package/dist/cli/installer/targets/claude.js.map +1 -0
  91. package/dist/cli/installer/targets/registry.d.ts +32 -0
  92. package/dist/cli/installer/targets/registry.d.ts.map +1 -0
  93. package/dist/cli/installer/targets/registry.js +72 -0
  94. package/dist/cli/installer/targets/registry.js.map +1 -0
  95. package/dist/cli/installer/targets/shared.d.ts +66 -0
  96. package/dist/cli/installer/targets/shared.d.ts.map +1 -0
  97. package/dist/cli/installer/targets/shared.js +228 -0
  98. package/dist/cli/installer/targets/shared.js.map +1 -0
  99. package/dist/cli/installer/targets/types.d.ts +97 -0
  100. package/dist/cli/installer/targets/types.d.ts.map +1 -0
  101. package/dist/cli/installer/targets/types.js +16 -0
  102. package/dist/cli/installer/targets/types.js.map +1 -0
  103. package/dist/cli/node-version-check.d.ts +32 -0
  104. package/dist/cli/node-version-check.d.ts.map +1 -0
  105. package/dist/cli/node-version-check.js +54 -0
  106. package/dist/cli/node-version-check.js.map +1 -0
  107. package/dist/cli/ui/glyphs.d.ts +43 -0
  108. package/dist/cli/ui/glyphs.d.ts.map +1 -0
  109. package/dist/cli/ui/glyphs.js +79 -0
  110. package/dist/cli/ui/glyphs.js.map +1 -0
  111. package/dist/cli/uninstall.d.ts +18 -0
  112. package/dist/cli/uninstall.d.ts.map +1 -0
  113. package/dist/cli/uninstall.js +19 -0
  114. package/dist/cli/uninstall.js.map +1 -0
  115. package/dist/cli/upgrade/index.d.ts +81 -0
  116. package/dist/cli/upgrade/index.d.ts.map +1 -0
  117. package/dist/cli/upgrade/index.js +257 -0
  118. package/dist/cli/upgrade/index.js.map +1 -0
  119. package/dist/core/db/index.d.ts +123 -0
  120. package/dist/core/db/index.d.ts.map +1 -0
  121. package/dist/core/db/index.js +260 -0
  122. package/dist/core/db/index.js.map +1 -0
  123. package/dist/core/db/migrate.d.ts +29 -0
  124. package/dist/core/db/migrate.d.ts.map +1 -0
  125. package/dist/core/db/migrate.js +100 -0
  126. package/dist/core/db/migrate.js.map +1 -0
  127. package/dist/core/db/sqlite-adapter.d.ts +51 -0
  128. package/dist/core/db/sqlite-adapter.d.ts.map +1 -0
  129. package/dist/core/db/sqlite-adapter.js +116 -0
  130. package/dist/core/db/sqlite-adapter.js.map +1 -0
  131. package/dist/core/dbquery/cli.d.ts +17 -0
  132. package/dist/core/dbquery/cli.d.ts.map +1 -0
  133. package/dist/core/dbquery/cli.js +246 -0
  134. package/dist/core/dbquery/cli.js.map +1 -0
  135. package/dist/core/dbquery/config.d.ts.map +1 -0
  136. package/dist/core/dbquery/config.js.map +1 -0
  137. package/dist/core/dbquery/constants.d.ts.map +1 -0
  138. package/dist/core/dbquery/constants.js.map +1 -0
  139. package/dist/core/dbquery/drivers/mysql.d.ts.map +1 -0
  140. package/dist/core/dbquery/drivers/mysql.js.map +1 -0
  141. package/dist/core/dbquery/drivers/postgres.d.ts.map +1 -0
  142. package/dist/core/dbquery/drivers/postgres.js.map +1 -0
  143. package/dist/core/dbquery/errors.d.ts +40 -0
  144. package/dist/core/dbquery/errors.d.ts.map +1 -0
  145. package/dist/core/dbquery/errors.js +85 -0
  146. package/dist/core/dbquery/errors.js.map +1 -0
  147. package/dist/core/dbquery/executor.d.ts.map +1 -0
  148. package/dist/core/dbquery/executor.js.map +1 -0
  149. package/dist/core/dbquery/format.d.ts.map +1 -0
  150. package/dist/core/dbquery/format.js.map +1 -0
  151. package/dist/core/dbquery/identifiers.d.ts.map +1 -0
  152. package/dist/core/dbquery/identifiers.js.map +1 -0
  153. package/dist/core/dbquery/index.d.ts.map +1 -0
  154. package/dist/core/dbquery/index.js.map +1 -0
  155. package/dist/core/dbquery/init.d.ts +33 -0
  156. package/dist/core/dbquery/init.d.ts.map +1 -0
  157. package/dist/core/dbquery/init.js +125 -0
  158. package/dist/core/dbquery/init.js.map +1 -0
  159. package/dist/core/dbquery/logging.d.ts.map +1 -0
  160. package/dist/core/dbquery/logging.js.map +1 -0
  161. package/dist/core/dbquery/queries.d.ts.map +1 -0
  162. package/dist/core/dbquery/queries.js.map +1 -0
  163. package/dist/core/dbquery/safety.d.ts.map +1 -0
  164. package/dist/core/dbquery/safety.js.map +1 -0
  165. package/dist/core/dbquery/types.d.ts +139 -0
  166. package/dist/core/dbquery/types.d.ts.map +1 -0
  167. package/dist/core/dbquery/types.js +10 -0
  168. package/dist/core/dbquery/types.js.map +1 -0
  169. package/dist/core/directory.d.ts +60 -0
  170. package/dist/core/directory.d.ts.map +1 -0
  171. package/dist/core/directory.js +243 -0
  172. package/dist/core/directory.js.map +1 -0
  173. package/dist/core/errors.d.ts +79 -0
  174. package/dist/core/errors.d.ts.map +1 -0
  175. package/dist/core/errors.js +133 -0
  176. package/dist/core/errors.js.map +1 -0
  177. package/dist/core/features/cli.d.ts +12 -0
  178. package/dist/core/features/cli.d.ts.map +1 -0
  179. package/dist/core/features/cli.js +154 -0
  180. package/dist/core/features/cli.js.map +1 -0
  181. package/dist/core/features/index.d.ts +15 -0
  182. package/dist/core/features/index.d.ts.map +1 -0
  183. package/dist/core/features/index.js +39 -0
  184. package/dist/core/features/index.js.map +1 -0
  185. package/dist/core/features/scanner.d.ts +26 -0
  186. package/dist/core/features/scanner.d.ts.map +1 -0
  187. package/dist/core/features/scanner.js +198 -0
  188. package/dist/core/features/scanner.js.map +1 -0
  189. package/dist/core/features/sync.d.ts +26 -0
  190. package/dist/core/features/sync.d.ts.map +1 -0
  191. package/dist/core/features/sync.js +108 -0
  192. package/dist/core/features/sync.js.map +1 -0
  193. package/dist/core/features/types.d.ts +35 -0
  194. package/dist/core/features/types.d.ts.map +1 -0
  195. package/dist/core/features/types.js +12 -0
  196. package/dist/core/features/types.js.map +1 -0
  197. package/dist/core/markdown/cli.d.ts +16 -0
  198. package/dist/core/markdown/cli.d.ts.map +1 -0
  199. package/dist/core/markdown/cli.js +575 -0
  200. package/dist/core/markdown/cli.js.map +1 -0
  201. package/dist/core/markdown/constants.d.ts +22 -0
  202. package/dist/core/markdown/constants.d.ts.map +1 -0
  203. package/dist/core/markdown/constants.js +61 -0
  204. package/dist/core/markdown/constants.js.map +1 -0
  205. package/dist/core/markdown/dedup.d.ts.map +1 -0
  206. package/dist/core/markdown/dedup.js.map +1 -0
  207. package/dist/core/markdown/errors.d.ts +22 -0
  208. package/dist/core/markdown/errors.d.ts.map +1 -0
  209. package/dist/core/markdown/errors.js +45 -0
  210. package/dist/core/markdown/errors.js.map +1 -0
  211. package/dist/core/markdown/extractor.d.ts.map +1 -0
  212. package/dist/core/markdown/extractor.js.map +1 -0
  213. package/dist/core/markdown/frontmatter-parser.d.ts +54 -0
  214. package/dist/core/markdown/frontmatter-parser.d.ts.map +1 -0
  215. package/dist/core/markdown/frontmatter-parser.js +229 -0
  216. package/dist/core/markdown/frontmatter-parser.js.map +1 -0
  217. package/dist/core/markdown/index.d.ts +21 -0
  218. package/dist/core/markdown/index.d.ts.map +1 -0
  219. package/dist/core/markdown/index.js +36 -0
  220. package/dist/core/markdown/index.js.map +1 -0
  221. package/dist/core/markdown/indexer.d.ts +34 -0
  222. package/dist/core/markdown/indexer.d.ts.map +1 -0
  223. package/dist/core/markdown/indexer.js +256 -0
  224. package/dist/core/markdown/indexer.js.map +1 -0
  225. package/dist/core/markdown/query-dedup.d.ts +23 -0
  226. package/dist/core/markdown/query-dedup.d.ts.map +1 -0
  227. package/dist/core/markdown/query-dedup.js +141 -0
  228. package/dist/core/markdown/query-dedup.js.map +1 -0
  229. package/dist/core/markdown/query-helpers.d.ts +66 -0
  230. package/dist/core/markdown/query-helpers.d.ts.map +1 -0
  231. package/dist/core/markdown/query-helpers.js +334 -0
  232. package/dist/core/markdown/query-helpers.js.map +1 -0
  233. package/dist/core/markdown/query.d.ts +125 -0
  234. package/dist/core/markdown/query.d.ts.map +1 -0
  235. package/dist/core/markdown/query.js +367 -0
  236. package/dist/core/markdown/query.js.map +1 -0
  237. package/dist/core/markdown/schema-bootstrap.d.ts +40 -0
  238. package/dist/core/markdown/schema-bootstrap.d.ts.map +1 -0
  239. package/dist/core/markdown/schema-bootstrap.js +85 -0
  240. package/dist/core/markdown/schema-bootstrap.js.map +1 -0
  241. package/dist/core/markdown/schema.sql +124 -0
  242. package/dist/core/markdown/store.d.ts.map +1 -0
  243. package/dist/core/markdown/store.js.map +1 -0
  244. package/dist/core/markdown/summary-extractor.d.ts.map +1 -0
  245. package/dist/core/markdown/summary-extractor.js.map +1 -0
  246. package/dist/core/markdown/types.d.ts +186 -0
  247. package/dist/core/markdown/types.d.ts.map +1 -0
  248. package/dist/core/markdown/types.js.map +1 -0
  249. package/dist/core/markdown/validator.d.ts +44 -0
  250. package/dist/core/markdown/validator.d.ts.map +1 -0
  251. package/dist/core/markdown/validator.js +95 -0
  252. package/dist/core/markdown/validator.js.map +1 -0
  253. package/dist/core/timeline/bash-semantics.d.ts.map +1 -0
  254. package/dist/core/timeline/bash-semantics.js.map +1 -0
  255. package/dist/core/timeline/cli.d.ts.map +1 -0
  256. package/dist/core/timeline/cli.js.map +1 -0
  257. package/dist/core/timeline/constants.d.ts +62 -0
  258. package/dist/core/timeline/constants.d.ts.map +1 -0
  259. package/dist/core/timeline/constants.js +73 -0
  260. package/dist/core/timeline/constants.js.map +1 -0
  261. package/dist/core/timeline/errors.d.ts.map +1 -0
  262. package/dist/core/timeline/errors.js.map +1 -0
  263. package/dist/core/timeline/hook-runner.d.ts.map +1 -0
  264. package/dist/core/timeline/hook-runner.js.map +1 -0
  265. package/dist/core/timeline/hooks.d.ts.map +1 -0
  266. package/dist/core/timeline/hooks.js.map +1 -0
  267. package/dist/core/timeline/index.d.ts.map +1 -0
  268. package/dist/core/timeline/index.js.map +1 -0
  269. package/dist/core/timeline/indexer.d.ts.map +1 -0
  270. package/dist/core/timeline/indexer.js.map +1 -0
  271. package/dist/core/timeline/installer.d.ts.map +1 -0
  272. package/dist/core/timeline/installer.js.map +1 -0
  273. package/dist/core/timeline/payload.d.ts.map +1 -0
  274. package/dist/core/timeline/payload.js.map +1 -0
  275. package/dist/core/timeline/post-tool-summary.d.ts.map +1 -0
  276. package/dist/core/timeline/post-tool-summary.js.map +1 -0
  277. package/dist/core/timeline/recorder.d.ts.map +1 -0
  278. package/dist/core/timeline/recorder.js.map +1 -0
  279. package/dist/core/timeline/schema-bootstrap.d.ts +42 -0
  280. package/dist/core/timeline/schema-bootstrap.d.ts.map +1 -0
  281. package/dist/core/timeline/schema-bootstrap.js +81 -0
  282. package/dist/core/timeline/schema-bootstrap.js.map +1 -0
  283. package/dist/core/timeline/store.d.ts.map +1 -0
  284. package/dist/core/timeline/store.js.map +1 -0
  285. package/dist/core/timeline/types.d.ts.map +1 -0
  286. package/dist/core/timeline/types.js.map +1 -0
  287. package/dist/core/types.d.ts +25 -0
  288. package/dist/core/types.d.ts.map +1 -0
  289. package/dist/core/types.js +12 -0
  290. package/dist/core/types.js.map +1 -0
  291. package/dist/web/bootstrap.d.ts +26 -0
  292. package/dist/web/bootstrap.d.ts.map +1 -0
  293. package/dist/web/bootstrap.js +98 -0
  294. package/dist/web/bootstrap.js.map +1 -0
  295. package/dist/web/constants.d.ts +27 -0
  296. package/dist/web/constants.d.ts.map +1 -0
  297. package/dist/web/constants.js +41 -0
  298. package/dist/web/constants.js.map +1 -0
  299. package/dist/web/errors.d.ts +46 -0
  300. package/dist/web/errors.d.ts.map +1 -0
  301. package/dist/web/errors.js +56 -0
  302. package/dist/web/errors.js.map +1 -0
  303. package/dist/web/index.d.ts +13 -0
  304. package/dist/web/index.d.ts.map +1 -0
  305. package/dist/web/index.js +20 -0
  306. package/dist/web/index.js.map +1 -0
  307. package/dist/web/layout.d.ts +31 -0
  308. package/dist/web/layout.d.ts.map +1 -0
  309. package/dist/web/layout.js +77 -0
  310. package/dist/web/layout.js.map +1 -0
  311. package/dist/web/markdown.d.ts +23 -0
  312. package/dist/web/markdown.d.ts.map +1 -0
  313. package/dist/web/markdown.js +38 -0
  314. package/dist/web/markdown.js.map +1 -0
  315. package/dist/web/overview-templates.d.ts +123 -0
  316. package/dist/web/overview-templates.d.ts.map +1 -0
  317. package/dist/web/overview-templates.js +213 -0
  318. package/dist/web/overview-templates.js.map +1 -0
  319. package/dist/web/pages-detail.d.ts +32 -0
  320. package/dist/web/pages-detail.d.ts.map +1 -0
  321. package/dist/web/pages-detail.js +275 -0
  322. package/dist/web/pages-detail.js.map +1 -0
  323. package/dist/web/pages-overview.d.ts +60 -0
  324. package/dist/web/pages-overview.d.ts.map +1 -0
  325. package/dist/web/pages-overview.js +304 -0
  326. package/dist/web/pages-overview.js.map +1 -0
  327. package/dist/web/public/app.css +1772 -0
  328. package/dist/web/public/app.js +41 -0
  329. package/dist/web/register.d.ts +12 -0
  330. package/dist/web/register.d.ts.map +1 -0
  331. package/dist/web/register.js +88 -0
  332. package/dist/web/register.js.map +1 -0
  333. package/dist/web/render-utils.d.ts +28 -0
  334. package/dist/web/render-utils.d.ts.map +1 -0
  335. package/dist/web/render-utils.js +54 -0
  336. package/dist/web/render-utils.js.map +1 -0
  337. package/dist/web/server.d.ts +42 -0
  338. package/dist/web/server.d.ts.map +1 -0
  339. package/dist/web/server.js +292 -0
  340. package/dist/web/server.js.map +1 -0
  341. package/package.json +14 -27
  342. package/scripts/copy-assets.cjs +89 -0
  343. package/dist/.claude-template/commands/my-commit.md +0 -9
  344. package/dist/.claude-template/skills/cgraphx/SKILL.md +0 -143
  345. package/dist/.claude-template/skills/cgraphx/agent-prompt.md +0 -56
  346. package/dist/.claude-template/skills/code-impact-api/SKILL.md +0 -143
  347. package/dist/.claude-template/skills/code-impact-api/agent-prompt.md +0 -51
  348. package/dist/.claude-template/skills/code-impact-docgen/SKILL.md +0 -376
  349. package/dist/.claude-template/skills/code-impact-docgen/template-design-html.md +0 -357
  350. package/dist/.claude-template/skills/code-impact-docgen/template-design-md.md +0 -164
  351. package/dist/.claude-template/skills/code-impact-init/SKILL.md +0 -803
  352. package/dist/.claude-template/skills/code-impact-markdown/SKILL.md +0 -353
  353. package/dist/.claude-template/skills/code-impact-markdown/template-guide.md +0 -68
  354. package/dist/.claude-template/skills/code-impact-markdown/template-memory.md +0 -82
  355. package/dist/.claude-template/skills/code-impact-markdown/template-runbook.md +0 -58
  356. package/dist/.claude-template/skills/precommit-review/SKILL.md +0 -50
  357. package/dist/api-test/ai-fields.d.ts +0 -37
  358. package/dist/api-test/ai-fields.d.ts.map +0 -1
  359. package/dist/api-test/ai-fields.js +0 -114
  360. package/dist/api-test/ai-fields.js.map +0 -1
  361. package/dist/api-test/assemble.d.ts +0 -76
  362. package/dist/api-test/assemble.d.ts.map +0 -1
  363. package/dist/api-test/assemble.js +0 -185
  364. package/dist/api-test/assemble.js.map +0 -1
  365. package/dist/api-test/bru-cli-invoker.d.ts +0 -72
  366. package/dist/api-test/bru-cli-invoker.d.ts.map +0 -1
  367. package/dist/api-test/bru-cli-invoker.js +0 -169
  368. package/dist/api-test/bru-cli-invoker.js.map +0 -1
  369. package/dist/api-test/bru-report-parser.d.ts +0 -24
  370. package/dist/api-test/bru-report-parser.d.ts.map +0 -1
  371. package/dist/api-test/bru-report-parser.js +0 -110
  372. package/dist/api-test/bru-report-parser.js.map +0 -1
  373. package/dist/api-test/bru-runner.d.ts +0 -101
  374. package/dist/api-test/bru-runner.d.ts.map +0 -1
  375. package/dist/api-test/bru-runner.js +0 -316
  376. package/dist/api-test/bru-runner.js.map +0 -1
  377. package/dist/api-test/bru-writer.d.ts +0 -52
  378. package/dist/api-test/bru-writer.d.ts.map +0 -1
  379. package/dist/api-test/bru-writer.js +0 -159
  380. package/dist/api-test/bru-writer.js.map +0 -1
  381. package/dist/api-test/call-chain-extractor.d.ts +0 -80
  382. package/dist/api-test/call-chain-extractor.d.ts.map +0 -1
  383. package/dist/api-test/call-chain-extractor.js +0 -179
  384. package/dist/api-test/call-chain-extractor.js.map +0 -1
  385. package/dist/api-test/cli.d.ts +0 -133
  386. package/dist/api-test/cli.d.ts.map +0 -1
  387. package/dist/api-test/cli.js +0 -1009
  388. package/dist/api-test/cli.js.map +0 -1
  389. package/dist/api-test/config.d.ts +0 -75
  390. package/dist/api-test/config.d.ts.map +0 -1
  391. package/dist/api-test/config.js +0 -406
  392. package/dist/api-test/config.js.map +0 -1
  393. package/dist/api-test/db-query-cli.d.ts +0 -51
  394. package/dist/api-test/db-query-cli.d.ts.map +0 -1
  395. package/dist/api-test/db-query-cli.js +0 -119
  396. package/dist/api-test/db-query-cli.js.map +0 -1
  397. package/dist/api-test/enhance-prepare.d.ts +0 -111
  398. package/dist/api-test/enhance-prepare.d.ts.map +0 -1
  399. package/dist/api-test/enhance-prepare.js +0 -425
  400. package/dist/api-test/enhance-prepare.js.map +0 -1
  401. package/dist/api-test/enhance-write.d.ts +0 -28
  402. package/dist/api-test/enhance-write.d.ts.map +0 -1
  403. package/dist/api-test/enhance-write.js +0 -145
  404. package/dist/api-test/enhance-write.js.map +0 -1
  405. package/dist/api-test/errors.d.ts +0 -48
  406. package/dist/api-test/errors.d.ts.map +0 -1
  407. package/dist/api-test/errors.js +0 -76
  408. package/dist/api-test/errors.js.map +0 -1
  409. package/dist/api-test/field-extractor.d.ts +0 -98
  410. package/dist/api-test/field-extractor.d.ts.map +0 -1
  411. package/dist/api-test/field-extractor.js +0 -327
  412. package/dist/api-test/field-extractor.js.map +0 -1
  413. package/dist/api-test/impl-finder.d.ts +0 -37
  414. package/dist/api-test/impl-finder.d.ts.map +0 -1
  415. package/dist/api-test/impl-finder.js +0 -54
  416. package/dist/api-test/impl-finder.js.map +0 -1
  417. package/dist/api-test/index.d.ts +0 -41
  418. package/dist/api-test/index.d.ts.map +0 -1
  419. package/dist/api-test/index.js +0 -124
  420. package/dist/api-test/index.js.map +0 -1
  421. package/dist/api-test/java-parser.d.ts +0 -89
  422. package/dist/api-test/java-parser.d.ts.map +0 -1
  423. package/dist/api-test/java-parser.js +0 -508
  424. package/dist/api-test/java-parser.js.map +0 -1
  425. package/dist/api-test/md-writer.d.ts +0 -49
  426. package/dist/api-test/md-writer.d.ts.map +0 -1
  427. package/dist/api-test/md-writer.js +0 -202
  428. package/dist/api-test/md-writer.js.map +0 -1
  429. package/dist/api-test/parser-httpservice.d.ts +0 -91
  430. package/dist/api-test/parser-httpservice.d.ts.map +0 -1
  431. package/dist/api-test/parser-httpservice.js +0 -271
  432. package/dist/api-test/parser-httpservice.js.map +0 -1
  433. package/dist/api-test/report.d.ts +0 -188
  434. package/dist/api-test/report.d.ts.map +0 -1
  435. package/dist/api-test/report.js +0 -522
  436. package/dist/api-test/report.js.map +0 -1
  437. package/dist/api-test/snapshot.d.ts +0 -26
  438. package/dist/api-test/snapshot.d.ts.map +0 -1
  439. package/dist/api-test/snapshot.js +0 -150
  440. package/dist/api-test/snapshot.js.map +0 -1
  441. package/dist/api-test/test-history.d.ts +0 -48
  442. package/dist/api-test/test-history.d.ts.map +0 -1
  443. package/dist/api-test/test-history.js +0 -122
  444. package/dist/api-test/test-history.js.map +0 -1
  445. package/dist/api-test/types.d.ts +0 -174
  446. package/dist/api-test/types.d.ts.map +0 -1
  447. package/dist/api-test/types.js +0 -13
  448. package/dist/api-test/types.js.map +0 -1
  449. package/dist/api-test/verify-prepare.d.ts +0 -30
  450. package/dist/api-test/verify-prepare.d.ts.map +0 -1
  451. package/dist/api-test/verify-prepare.js +0 -150
  452. package/dist/api-test/verify-prepare.js.map +0 -1
  453. package/dist/api-test/verify-write.d.ts +0 -31
  454. package/dist/api-test/verify-write.d.ts.map +0 -1
  455. package/dist/api-test/verify-write.js +0 -159
  456. package/dist/api-test/verify-write.js.map +0 -1
  457. package/dist/bin/codegraph.d.ts +0 -26
  458. package/dist/bin/codegraph.d.ts.map +0 -1
  459. package/dist/bin/codegraph.js +0 -1914
  460. package/dist/bin/codegraph.js.map +0 -1
  461. package/dist/bin/fatal-handler.d.ts +0 -20
  462. package/dist/bin/fatal-handler.d.ts.map +0 -1
  463. package/dist/bin/fatal-handler.js +0 -118
  464. package/dist/bin/fatal-handler.js.map +0 -1
  465. package/dist/bin/node-version-check.d.ts +0 -51
  466. package/dist/bin/node-version-check.d.ts.map +0 -1
  467. package/dist/bin/node-version-check.js +0 -114
  468. package/dist/bin/node-version-check.js.map +0 -1
  469. package/dist/bin/uninstall.d.ts +0 -14
  470. package/dist/bin/uninstall.d.ts.map +0 -1
  471. package/dist/bin/uninstall.js +0 -36
  472. package/dist/bin/uninstall.js.map +0 -1
  473. package/dist/context/formatter.d.ts +0 -30
  474. package/dist/context/formatter.d.ts.map +0 -1
  475. package/dist/context/formatter.js +0 -263
  476. package/dist/context/formatter.js.map +0 -1
  477. package/dist/context/index.d.ts +0 -119
  478. package/dist/context/index.d.ts.map +0 -1
  479. package/dist/context/index.js +0 -1296
  480. package/dist/context/index.js.map +0 -1
  481. package/dist/context/markers.d.ts +0 -19
  482. package/dist/context/markers.d.ts.map +0 -1
  483. package/dist/context/markers.js +0 -22
  484. package/dist/context/markers.js.map +0 -1
  485. package/dist/db/index.d.ts +0 -122
  486. package/dist/db/index.d.ts.map +0 -1
  487. package/dist/db/index.js +0 -296
  488. package/dist/db/index.js.map +0 -1
  489. package/dist/db/migrations.d.ts +0 -44
  490. package/dist/db/migrations.d.ts.map +0 -1
  491. package/dist/db/migrations.js +0 -140
  492. package/dist/db/migrations.js.map +0 -1
  493. package/dist/db/queries.d.ts +0 -401
  494. package/dist/db/queries.d.ts.map +0 -1
  495. package/dist/db/queries.js +0 -1591
  496. package/dist/db/queries.js.map +0 -1
  497. package/dist/db/schema.sql +0 -152
  498. package/dist/db/sqlite-adapter.d.ts +0 -53
  499. package/dist/db/sqlite-adapter.d.ts.map +0 -1
  500. package/dist/db/sqlite-adapter.js +0 -117
  501. package/dist/db/sqlite-adapter.js.map +0 -1
  502. package/dist/dbquery/cli.d.ts +0 -17
  503. package/dist/dbquery/cli.d.ts.map +0 -1
  504. package/dist/dbquery/cli.js +0 -246
  505. package/dist/dbquery/cli.js.map +0 -1
  506. package/dist/dbquery/config.d.ts.map +0 -1
  507. package/dist/dbquery/config.js.map +0 -1
  508. package/dist/dbquery/constants.d.ts.map +0 -1
  509. package/dist/dbquery/constants.js.map +0 -1
  510. package/dist/dbquery/drivers/mysql.d.ts.map +0 -1
  511. package/dist/dbquery/drivers/mysql.js.map +0 -1
  512. package/dist/dbquery/drivers/postgres.d.ts.map +0 -1
  513. package/dist/dbquery/drivers/postgres.js.map +0 -1
  514. package/dist/dbquery/dump-schema.d.ts +0 -46
  515. package/dist/dbquery/dump-schema.d.ts.map +0 -1
  516. package/dist/dbquery/dump-schema.js +0 -379
  517. package/dist/dbquery/dump-schema.js.map +0 -1
  518. package/dist/dbquery/errors.d.ts +0 -40
  519. package/dist/dbquery/errors.d.ts.map +0 -1
  520. package/dist/dbquery/errors.js +0 -85
  521. package/dist/dbquery/errors.js.map +0 -1
  522. package/dist/dbquery/executor.d.ts.map +0 -1
  523. package/dist/dbquery/executor.js.map +0 -1
  524. package/dist/dbquery/format.d.ts.map +0 -1
  525. package/dist/dbquery/format.js.map +0 -1
  526. package/dist/dbquery/identifiers.d.ts.map +0 -1
  527. package/dist/dbquery/identifiers.js.map +0 -1
  528. package/dist/dbquery/index.d.ts.map +0 -1
  529. package/dist/dbquery/index.js.map +0 -1
  530. package/dist/dbquery/init.d.ts +0 -33
  531. package/dist/dbquery/init.d.ts.map +0 -1
  532. package/dist/dbquery/init.js +0 -125
  533. package/dist/dbquery/init.js.map +0 -1
  534. package/dist/dbquery/logging.d.ts.map +0 -1
  535. package/dist/dbquery/logging.js.map +0 -1
  536. package/dist/dbquery/mcp-tools.d.ts +0 -29
  537. package/dist/dbquery/mcp-tools.d.ts.map +0 -1
  538. package/dist/dbquery/mcp-tools.js +0 -206
  539. package/dist/dbquery/mcp-tools.js.map +0 -1
  540. package/dist/dbquery/queries.d.ts.map +0 -1
  541. package/dist/dbquery/queries.js.map +0 -1
  542. package/dist/dbquery/safety.d.ts.map +0 -1
  543. package/dist/dbquery/safety.js.map +0 -1
  544. package/dist/dbquery/types.d.ts +0 -139
  545. package/dist/dbquery/types.d.ts.map +0 -1
  546. package/dist/dbquery/types.js +0 -10
  547. package/dist/dbquery/types.js.map +0 -1
  548. package/dist/directory.d.ts +0 -147
  549. package/dist/directory.d.ts.map +0 -1
  550. package/dist/directory.js +0 -523
  551. package/dist/directory.js.map +0 -1
  552. package/dist/errors.d.ts +0 -136
  553. package/dist/errors.d.ts.map +0 -1
  554. package/dist/errors.js +0 -219
  555. package/dist/errors.js.map +0 -1
  556. package/dist/extraction/astro-extractor.d.ts +0 -79
  557. package/dist/extraction/astro-extractor.d.ts.map +0 -1
  558. package/dist/extraction/astro-extractor.js +0 -320
  559. package/dist/extraction/astro-extractor.js.map +0 -1
  560. package/dist/extraction/dfm-extractor.d.ts +0 -31
  561. package/dist/extraction/dfm-extractor.d.ts.map +0 -1
  562. package/dist/extraction/dfm-extractor.js +0 -151
  563. package/dist/extraction/dfm-extractor.js.map +0 -1
  564. package/dist/extraction/extraction-version.d.ts +0 -25
  565. package/dist/extraction/extraction-version.d.ts.map +0 -1
  566. package/dist/extraction/extraction-version.js +0 -28
  567. package/dist/extraction/extraction-version.js.map +0 -1
  568. package/dist/extraction/function-ref.d.ts +0 -118
  569. package/dist/extraction/function-ref.d.ts.map +0 -1
  570. package/dist/extraction/function-ref.js +0 -727
  571. package/dist/extraction/function-ref.js.map +0 -1
  572. package/dist/extraction/generated-detection.d.ts +0 -30
  573. package/dist/extraction/generated-detection.d.ts.map +0 -1
  574. package/dist/extraction/generated-detection.js +0 -83
  575. package/dist/extraction/generated-detection.js.map +0 -1
  576. package/dist/extraction/grammars.d.ts +0 -114
  577. package/dist/extraction/grammars.d.ts.map +0 -1
  578. package/dist/extraction/grammars.js +0 -477
  579. package/dist/extraction/grammars.js.map +0 -1
  580. package/dist/extraction/index.d.ts +0 -175
  581. package/dist/extraction/index.d.ts.map +0 -1
  582. package/dist/extraction/index.js +0 -1887
  583. package/dist/extraction/index.js.map +0 -1
  584. package/dist/extraction/languages/c-cpp.d.ts +0 -12
  585. package/dist/extraction/languages/c-cpp.d.ts.map +0 -1
  586. package/dist/extraction/languages/c-cpp.js +0 -275
  587. package/dist/extraction/languages/c-cpp.js.map +0 -1
  588. package/dist/extraction/languages/csharp.d.ts +0 -25
  589. package/dist/extraction/languages/csharp.d.ts.map +0 -1
  590. package/dist/extraction/languages/csharp.js +0 -175
  591. package/dist/extraction/languages/csharp.js.map +0 -1
  592. package/dist/extraction/languages/dart.d.ts +0 -3
  593. package/dist/extraction/languages/dart.d.ts.map +0 -1
  594. package/dist/extraction/languages/dart.js +0 -374
  595. package/dist/extraction/languages/dart.js.map +0 -1
  596. package/dist/extraction/languages/go.d.ts +0 -3
  597. package/dist/extraction/languages/go.d.ts.map +0 -1
  598. package/dist/extraction/languages/go.js +0 -111
  599. package/dist/extraction/languages/go.js.map +0 -1
  600. package/dist/extraction/languages/index.d.ts +0 -10
  601. package/dist/extraction/languages/index.d.ts.map +0 -1
  602. package/dist/extraction/languages/index.js +0 -53
  603. package/dist/extraction/languages/index.js.map +0 -1
  604. package/dist/extraction/languages/java.d.ts +0 -3
  605. package/dist/extraction/languages/java.d.ts.map +0 -1
  606. package/dist/extraction/languages/java.js +0 -315
  607. package/dist/extraction/languages/java.js.map +0 -1
  608. package/dist/extraction/languages/javascript.d.ts +0 -3
  609. package/dist/extraction/languages/javascript.d.ts.map +0 -1
  610. package/dist/extraction/languages/javascript.js +0 -106
  611. package/dist/extraction/languages/javascript.js.map +0 -1
  612. package/dist/extraction/languages/kotlin.d.ts +0 -3
  613. package/dist/extraction/languages/kotlin.d.ts.map +0 -1
  614. package/dist/extraction/languages/kotlin.js +0 -379
  615. package/dist/extraction/languages/kotlin.js.map +0 -1
  616. package/dist/extraction/languages/lua.d.ts +0 -3
  617. package/dist/extraction/languages/lua.d.ts.map +0 -1
  618. package/dist/extraction/languages/lua.js +0 -150
  619. package/dist/extraction/languages/lua.js.map +0 -1
  620. package/dist/extraction/languages/luau.d.ts +0 -3
  621. package/dist/extraction/languages/luau.d.ts.map +0 -1
  622. package/dist/extraction/languages/luau.js +0 -37
  623. package/dist/extraction/languages/luau.js.map +0 -1
  624. package/dist/extraction/languages/objc.d.ts +0 -3
  625. package/dist/extraction/languages/objc.d.ts.map +0 -1
  626. package/dist/extraction/languages/objc.js +0 -175
  627. package/dist/extraction/languages/objc.js.map +0 -1
  628. package/dist/extraction/languages/pascal.d.ts +0 -3
  629. package/dist/extraction/languages/pascal.d.ts.map +0 -1
  630. package/dist/extraction/languages/pascal.js +0 -77
  631. package/dist/extraction/languages/pascal.js.map +0 -1
  632. package/dist/extraction/languages/php.d.ts +0 -3
  633. package/dist/extraction/languages/php.d.ts.map +0 -1
  634. package/dist/extraction/languages/php.js +0 -196
  635. package/dist/extraction/languages/php.js.map +0 -1
  636. package/dist/extraction/languages/python.d.ts +0 -3
  637. package/dist/extraction/languages/python.d.ts.map +0 -1
  638. package/dist/extraction/languages/python.js +0 -56
  639. package/dist/extraction/languages/python.js.map +0 -1
  640. package/dist/extraction/languages/r.d.ts +0 -3
  641. package/dist/extraction/languages/r.d.ts.map +0 -1
  642. package/dist/extraction/languages/r.js +0 -314
  643. package/dist/extraction/languages/r.js.map +0 -1
  644. package/dist/extraction/languages/ruby.d.ts +0 -3
  645. package/dist/extraction/languages/ruby.d.ts.map +0 -1
  646. package/dist/extraction/languages/ruby.js +0 -149
  647. package/dist/extraction/languages/ruby.js.map +0 -1
  648. package/dist/extraction/languages/rust.d.ts +0 -3
  649. package/dist/extraction/languages/rust.d.ts.map +0 -1
  650. package/dist/extraction/languages/rust.js +0 -142
  651. package/dist/extraction/languages/rust.js.map +0 -1
  652. package/dist/extraction/languages/scala.d.ts +0 -3
  653. package/dist/extraction/languages/scala.d.ts.map +0 -1
  654. package/dist/extraction/languages/scala.js +0 -209
  655. package/dist/extraction/languages/scala.js.map +0 -1
  656. package/dist/extraction/languages/swift.d.ts +0 -3
  657. package/dist/extraction/languages/swift.d.ts.map +0 -1
  658. package/dist/extraction/languages/swift.js +0 -152
  659. package/dist/extraction/languages/swift.js.map +0 -1
  660. package/dist/extraction/languages/typescript.d.ts +0 -16
  661. package/dist/extraction/languages/typescript.d.ts.map +0 -1
  662. package/dist/extraction/languages/typescript.js +0 -167
  663. package/dist/extraction/languages/typescript.js.map +0 -1
  664. package/dist/extraction/liquid-extractor.d.ts +0 -59
  665. package/dist/extraction/liquid-extractor.d.ts.map +0 -1
  666. package/dist/extraction/liquid-extractor.js +0 -357
  667. package/dist/extraction/liquid-extractor.js.map +0 -1
  668. package/dist/extraction/mybatis-extractor.d.ts +0 -48
  669. package/dist/extraction/mybatis-extractor.d.ts.map +0 -1
  670. package/dist/extraction/mybatis-extractor.js +0 -198
  671. package/dist/extraction/mybatis-extractor.js.map +0 -1
  672. package/dist/extraction/parse-worker.d.ts +0 -8
  673. package/dist/extraction/parse-worker.d.ts.map +0 -1
  674. package/dist/extraction/parse-worker.js +0 -97
  675. package/dist/extraction/parse-worker.js.map +0 -1
  676. package/dist/extraction/razor-extractor.d.ts +0 -42
  677. package/dist/extraction/razor-extractor.d.ts.map +0 -1
  678. package/dist/extraction/razor-extractor.js +0 -285
  679. package/dist/extraction/razor-extractor.js.map +0 -1
  680. package/dist/extraction/svelte-extractor.d.ts +0 -56
  681. package/dist/extraction/svelte-extractor.d.ts.map +0 -1
  682. package/dist/extraction/svelte-extractor.js +0 -275
  683. package/dist/extraction/svelte-extractor.js.map +0 -1
  684. package/dist/extraction/tree-sitter-helpers.d.ts +0 -28
  685. package/dist/extraction/tree-sitter-helpers.d.ts.map +0 -1
  686. package/dist/extraction/tree-sitter-helpers.js +0 -152
  687. package/dist/extraction/tree-sitter-helpers.js.map +0 -1
  688. package/dist/extraction/tree-sitter-types.d.ts +0 -239
  689. package/dist/extraction/tree-sitter-types.d.ts.map +0 -1
  690. package/dist/extraction/tree-sitter-types.js +0 -10
  691. package/dist/extraction/tree-sitter-types.js.map +0 -1
  692. package/dist/extraction/tree-sitter.d.ts +0 -647
  693. package/dist/extraction/tree-sitter.d.ts.map +0 -1
  694. package/dist/extraction/tree-sitter.js +0 -5592
  695. package/dist/extraction/tree-sitter.js.map +0 -1
  696. package/dist/extraction/vue-extractor.d.ts +0 -51
  697. package/dist/extraction/vue-extractor.d.ts.map +0 -1
  698. package/dist/extraction/vue-extractor.js +0 -254
  699. package/dist/extraction/vue-extractor.js.map +0 -1
  700. package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  701. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  702. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  703. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  704. package/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
  705. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  706. package/dist/extraction/wasm-runtime-flags.d.ts +0 -38
  707. package/dist/extraction/wasm-runtime-flags.d.ts.map +0 -1
  708. package/dist/extraction/wasm-runtime-flags.js +0 -106
  709. package/dist/extraction/wasm-runtime-flags.js.map +0 -1
  710. package/dist/graph/index.d.ts +0 -8
  711. package/dist/graph/index.d.ts.map +0 -1
  712. package/dist/graph/index.js +0 -13
  713. package/dist/graph/index.js.map +0 -1
  714. package/dist/graph/queries.d.ts +0 -106
  715. package/dist/graph/queries.d.ts.map +0 -1
  716. package/dist/graph/queries.js +0 -339
  717. package/dist/graph/queries.js.map +0 -1
  718. package/dist/graph/traversal.d.ts +0 -127
  719. package/dist/graph/traversal.d.ts.map +0 -1
  720. package/dist/graph/traversal.js +0 -540
  721. package/dist/graph/traversal.js.map +0 -1
  722. package/dist/index.d.ts +0 -563
  723. package/dist/index.d.ts.map +0 -1
  724. package/dist/index.js +0 -1041
  725. package/dist/index.js.map +0 -1
  726. package/dist/installer/claude-assets.d.ts +0 -45
  727. package/dist/installer/claude-assets.d.ts.map +0 -1
  728. package/dist/installer/claude-assets.js +0 -144
  729. package/dist/installer/claude-assets.js.map +0 -1
  730. package/dist/installer/config-writer.d.ts +0 -28
  731. package/dist/installer/config-writer.d.ts.map +0 -1
  732. package/dist/installer/config-writer.js +0 -91
  733. package/dist/installer/config-writer.js.map +0 -1
  734. package/dist/installer/index.d.ts +0 -101
  735. package/dist/installer/index.d.ts.map +0 -1
  736. package/dist/installer/index.js +0 -692
  737. package/dist/installer/index.js.map +0 -1
  738. package/dist/installer/instructions-template.d.ts +0 -41
  739. package/dist/installer/instructions-template.d.ts.map +0 -1
  740. package/dist/installer/instructions-template.js +0 -53
  741. package/dist/installer/instructions-template.js.map +0 -1
  742. package/dist/installer/targets/antigravity.d.ts +0 -57
  743. package/dist/installer/targets/antigravity.d.ts.map +0 -1
  744. package/dist/installer/targets/antigravity.js +0 -308
  745. package/dist/installer/targets/antigravity.js.map +0 -1
  746. package/dist/installer/targets/claude.d.ts +0 -81
  747. package/dist/installer/targets/claude.d.ts.map +0 -1
  748. package/dist/installer/targets/claude.js +0 -617
  749. package/dist/installer/targets/claude.js.map +0 -1
  750. package/dist/installer/targets/codex.d.ts +0 -18
  751. package/dist/installer/targets/codex.d.ts.map +0 -1
  752. package/dist/installer/targets/codex.js +0 -185
  753. package/dist/installer/targets/codex.js.map +0 -1
  754. package/dist/installer/targets/cursor.d.ts +0 -35
  755. package/dist/installer/targets/cursor.d.ts.map +0 -1
  756. package/dist/installer/targets/cursor.js +0 -254
  757. package/dist/installer/targets/cursor.js.map +0 -1
  758. package/dist/installer/targets/gemini.d.ts +0 -26
  759. package/dist/installer/targets/gemini.d.ts.map +0 -1
  760. package/dist/installer/targets/gemini.js +0 -165
  761. package/dist/installer/targets/gemini.js.map +0 -1
  762. package/dist/installer/targets/hermes.d.ts +0 -18
  763. package/dist/installer/targets/hermes.d.ts.map +0 -1
  764. package/dist/installer/targets/hermes.js +0 -359
  765. package/dist/installer/targets/hermes.js.map +0 -1
  766. package/dist/installer/targets/kiro.d.ts +0 -27
  767. package/dist/installer/targets/kiro.d.ts.map +0 -1
  768. package/dist/installer/targets/kiro.js +0 -178
  769. package/dist/installer/targets/kiro.js.map +0 -1
  770. package/dist/installer/targets/opencode.d.ts +0 -38
  771. package/dist/installer/targets/opencode.d.ts.map +0 -1
  772. package/dist/installer/targets/opencode.js +0 -288
  773. package/dist/installer/targets/opencode.js.map +0 -1
  774. package/dist/installer/targets/registry.d.ts +0 -35
  775. package/dist/installer/targets/registry.d.ts.map +0 -1
  776. package/dist/installer/targets/registry.js +0 -91
  777. package/dist/installer/targets/registry.js.map +0 -1
  778. package/dist/installer/targets/shared.d.ts +0 -101
  779. package/dist/installer/targets/shared.d.ts.map +0 -1
  780. package/dist/installer/targets/shared.js +0 -264
  781. package/dist/installer/targets/shared.js.map +0 -1
  782. package/dist/installer/targets/toml.d.ts +0 -52
  783. package/dist/installer/targets/toml.d.ts.map +0 -1
  784. package/dist/installer/targets/toml.js +0 -147
  785. package/dist/installer/targets/toml.js.map +0 -1
  786. package/dist/installer/targets/types.d.ts +0 -108
  787. package/dist/installer/targets/types.d.ts.map +0 -1
  788. package/dist/installer/targets/types.js +0 -16
  789. package/dist/installer/targets/types.js.map +0 -1
  790. package/dist/markdown/cli.d.ts +0 -16
  791. package/dist/markdown/cli.d.ts.map +0 -1
  792. package/dist/markdown/cli.js +0 -575
  793. package/dist/markdown/cli.js.map +0 -1
  794. package/dist/markdown/constants.d.ts +0 -22
  795. package/dist/markdown/constants.d.ts.map +0 -1
  796. package/dist/markdown/constants.js +0 -71
  797. package/dist/markdown/constants.js.map +0 -1
  798. package/dist/markdown/dedup.d.ts.map +0 -1
  799. package/dist/markdown/dedup.js.map +0 -1
  800. package/dist/markdown/errors.d.ts +0 -22
  801. package/dist/markdown/errors.d.ts.map +0 -1
  802. package/dist/markdown/errors.js +0 -45
  803. package/dist/markdown/errors.js.map +0 -1
  804. package/dist/markdown/extractor.d.ts.map +0 -1
  805. package/dist/markdown/extractor.js.map +0 -1
  806. package/dist/markdown/frontmatter-parser.d.ts +0 -47
  807. package/dist/markdown/frontmatter-parser.d.ts.map +0 -1
  808. package/dist/markdown/frontmatter-parser.js +0 -199
  809. package/dist/markdown/frontmatter-parser.js.map +0 -1
  810. package/dist/markdown/indexer.d.ts +0 -34
  811. package/dist/markdown/indexer.d.ts.map +0 -1
  812. package/dist/markdown/indexer.js +0 -256
  813. package/dist/markdown/indexer.js.map +0 -1
  814. package/dist/markdown/mcp-tools.d.ts +0 -33
  815. package/dist/markdown/mcp-tools.d.ts.map +0 -1
  816. package/dist/markdown/mcp-tools.js +0 -300
  817. package/dist/markdown/mcp-tools.js.map +0 -1
  818. package/dist/markdown/query.d.ts +0 -108
  819. package/dist/markdown/query.d.ts.map +0 -1
  820. package/dist/markdown/query.js +0 -570
  821. package/dist/markdown/query.js.map +0 -1
  822. package/dist/markdown/schema-bootstrap.d.ts +0 -40
  823. package/dist/markdown/schema-bootstrap.d.ts.map +0 -1
  824. package/dist/markdown/schema-bootstrap.js +0 -85
  825. package/dist/markdown/schema-bootstrap.js.map +0 -1
  826. package/dist/markdown/schema.sql +0 -124
  827. package/dist/markdown/store.d.ts.map +0 -1
  828. package/dist/markdown/store.js.map +0 -1
  829. package/dist/markdown/summary-extractor.d.ts.map +0 -1
  830. package/dist/markdown/summary-extractor.js.map +0 -1
  831. package/dist/markdown/types.d.ts +0 -159
  832. package/dist/markdown/types.d.ts.map +0 -1
  833. package/dist/markdown/types.js.map +0 -1
  834. package/dist/markdown/validator.d.ts +0 -44
  835. package/dist/markdown/validator.d.ts.map +0 -1
  836. package/dist/markdown/validator.js +0 -95
  837. package/dist/markdown/validator.js.map +0 -1
  838. package/dist/mcp/daemon-manager.d.ts +0 -42
  839. package/dist/mcp/daemon-manager.d.ts.map +0 -1
  840. package/dist/mcp/daemon-manager.js +0 -129
  841. package/dist/mcp/daemon-manager.js.map +0 -1
  842. package/dist/mcp/daemon-paths.d.ts +0 -46
  843. package/dist/mcp/daemon-paths.d.ts.map +0 -1
  844. package/dist/mcp/daemon-paths.js +0 -125
  845. package/dist/mcp/daemon-paths.js.map +0 -1
  846. package/dist/mcp/daemon-registry.d.ts +0 -47
  847. package/dist/mcp/daemon-registry.d.ts.map +0 -1
  848. package/dist/mcp/daemon-registry.js +0 -229
  849. package/dist/mcp/daemon-registry.js.map +0 -1
  850. package/dist/mcp/daemon.d.ts +0 -220
  851. package/dist/mcp/daemon.d.ts.map +0 -1
  852. package/dist/mcp/daemon.js +0 -637
  853. package/dist/mcp/daemon.js.map +0 -1
  854. package/dist/mcp/dynamic-boundaries.d.ts +0 -41
  855. package/dist/mcp/dynamic-boundaries.d.ts.map +0 -1
  856. package/dist/mcp/dynamic-boundaries.js +0 -359
  857. package/dist/mcp/dynamic-boundaries.js.map +0 -1
  858. package/dist/mcp/engine.d.ts +0 -105
  859. package/dist/mcp/engine.d.ts.map +0 -1
  860. package/dist/mcp/engine.js +0 -278
  861. package/dist/mcp/engine.js.map +0 -1
  862. package/dist/mcp/index.d.ts +0 -113
  863. package/dist/mcp/index.d.ts.map +0 -1
  864. package/dist/mcp/index.js +0 -499
  865. package/dist/mcp/index.js.map +0 -1
  866. package/dist/mcp/liveness-watchdog.d.ts +0 -18
  867. package/dist/mcp/liveness-watchdog.d.ts.map +0 -1
  868. package/dist/mcp/liveness-watchdog.js +0 -207
  869. package/dist/mcp/liveness-watchdog.js.map +0 -1
  870. package/dist/mcp/ppid-watchdog.d.ts +0 -44
  871. package/dist/mcp/ppid-watchdog.d.ts.map +0 -1
  872. package/dist/mcp/ppid-watchdog.js +0 -27
  873. package/dist/mcp/ppid-watchdog.js.map +0 -1
  874. package/dist/mcp/proxy.d.ts +0 -87
  875. package/dist/mcp/proxy.d.ts.map +0 -1
  876. package/dist/mcp/proxy.js +0 -641
  877. package/dist/mcp/proxy.js.map +0 -1
  878. package/dist/mcp/server-instructions.d.ts +0 -34
  879. package/dist/mcp/server-instructions.d.ts.map +0 -1
  880. package/dist/mcp/server-instructions.js +0 -106
  881. package/dist/mcp/server-instructions.js.map +0 -1
  882. package/dist/mcp/session.d.ts +0 -79
  883. package/dist/mcp/session.d.ts.map +0 -1
  884. package/dist/mcp/session.js +0 -330
  885. package/dist/mcp/session.js.map +0 -1
  886. package/dist/mcp/stdin-teardown.d.ts +0 -27
  887. package/dist/mcp/stdin-teardown.d.ts.map +0 -1
  888. package/dist/mcp/stdin-teardown.js +0 -49
  889. package/dist/mcp/stdin-teardown.js.map +0 -1
  890. package/dist/mcp/tools.d.ts +0 -547
  891. package/dist/mcp/tools.d.ts.map +0 -1
  892. package/dist/mcp/tools.js +0 -4122
  893. package/dist/mcp/tools.js.map +0 -1
  894. package/dist/mcp/transport.d.ts +0 -188
  895. package/dist/mcp/transport.d.ts.map +0 -1
  896. package/dist/mcp/transport.js +0 -359
  897. package/dist/mcp/transport.js.map +0 -1
  898. package/dist/mcp/version.d.ts +0 -19
  899. package/dist/mcp/version.d.ts.map +0 -1
  900. package/dist/mcp/version.js +0 -71
  901. package/dist/mcp/version.js.map +0 -1
  902. package/dist/project-config.d.ts +0 -36
  903. package/dist/project-config.d.ts.map +0 -1
  904. package/dist/project-config.js +0 -235
  905. package/dist/project-config.js.map +0 -1
  906. package/dist/reasoning/config.d.ts +0 -45
  907. package/dist/reasoning/config.d.ts.map +0 -1
  908. package/dist/reasoning/config.js +0 -171
  909. package/dist/reasoning/config.js.map +0 -1
  910. package/dist/reasoning/credentials.d.ts +0 -5
  911. package/dist/reasoning/credentials.d.ts.map +0 -1
  912. package/dist/reasoning/credentials.js +0 -83
  913. package/dist/reasoning/credentials.js.map +0 -1
  914. package/dist/reasoning/login.d.ts +0 -21
  915. package/dist/reasoning/login.d.ts.map +0 -1
  916. package/dist/reasoning/login.js +0 -85
  917. package/dist/reasoning/login.js.map +0 -1
  918. package/dist/reasoning/reasoner.d.ts +0 -43
  919. package/dist/reasoning/reasoner.d.ts.map +0 -1
  920. package/dist/reasoning/reasoner.js +0 -308
  921. package/dist/reasoning/reasoner.js.map +0 -1
  922. package/dist/resolution/c-fnptr-synthesizer.d.ts +0 -33
  923. package/dist/resolution/c-fnptr-synthesizer.d.ts.map +0 -1
  924. package/dist/resolution/c-fnptr-synthesizer.js +0 -352
  925. package/dist/resolution/c-fnptr-synthesizer.js.map +0 -1
  926. package/dist/resolution/callback-synthesizer.d.ts +0 -15
  927. package/dist/resolution/callback-synthesizer.d.ts.map +0 -1
  928. package/dist/resolution/callback-synthesizer.js +0 -2926
  929. package/dist/resolution/callback-synthesizer.js.map +0 -1
  930. package/dist/resolution/frameworks/astro.d.ts +0 -9
  931. package/dist/resolution/frameworks/astro.d.ts.map +0 -1
  932. package/dist/resolution/frameworks/astro.js +0 -169
  933. package/dist/resolution/frameworks/astro.js.map +0 -1
  934. package/dist/resolution/frameworks/cargo-workspace.d.ts +0 -18
  935. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +0 -1
  936. package/dist/resolution/frameworks/cargo-workspace.js +0 -225
  937. package/dist/resolution/frameworks/cargo-workspace.js.map +0 -1
  938. package/dist/resolution/frameworks/csharp.d.ts +0 -8
  939. package/dist/resolution/frameworks/csharp.d.ts.map +0 -1
  940. package/dist/resolution/frameworks/csharp.js +0 -241
  941. package/dist/resolution/frameworks/csharp.js.map +0 -1
  942. package/dist/resolution/frameworks/drupal.d.ts +0 -51
  943. package/dist/resolution/frameworks/drupal.d.ts.map +0 -1
  944. package/dist/resolution/frameworks/drupal.js +0 -367
  945. package/dist/resolution/frameworks/drupal.js.map +0 -1
  946. package/dist/resolution/frameworks/expo-modules.d.ts +0 -3
  947. package/dist/resolution/frameworks/expo-modules.d.ts.map +0 -1
  948. package/dist/resolution/frameworks/expo-modules.js +0 -148
  949. package/dist/resolution/frameworks/expo-modules.js.map +0 -1
  950. package/dist/resolution/frameworks/express.d.ts +0 -8
  951. package/dist/resolution/frameworks/express.d.ts.map +0 -1
  952. package/dist/resolution/frameworks/express.js +0 -308
  953. package/dist/resolution/frameworks/express.js.map +0 -1
  954. package/dist/resolution/frameworks/fabric.d.ts +0 -3
  955. package/dist/resolution/frameworks/fabric.d.ts.map +0 -1
  956. package/dist/resolution/frameworks/fabric.js +0 -354
  957. package/dist/resolution/frameworks/fabric.js.map +0 -1
  958. package/dist/resolution/frameworks/go.d.ts +0 -8
  959. package/dist/resolution/frameworks/go.d.ts.map +0 -1
  960. package/dist/resolution/frameworks/go.js +0 -161
  961. package/dist/resolution/frameworks/go.js.map +0 -1
  962. package/dist/resolution/frameworks/goframe.d.ts +0 -41
  963. package/dist/resolution/frameworks/goframe.d.ts.map +0 -1
  964. package/dist/resolution/frameworks/goframe.js +0 -112
  965. package/dist/resolution/frameworks/goframe.js.map +0 -1
  966. package/dist/resolution/frameworks/index.d.ts +0 -50
  967. package/dist/resolution/frameworks/index.d.ts.map +0 -1
  968. package/dist/resolution/frameworks/index.js +0 -169
  969. package/dist/resolution/frameworks/index.js.map +0 -1
  970. package/dist/resolution/frameworks/java.d.ts +0 -8
  971. package/dist/resolution/frameworks/java.d.ts.map +0 -1
  972. package/dist/resolution/frameworks/java.js +0 -509
  973. package/dist/resolution/frameworks/java.js.map +0 -1
  974. package/dist/resolution/frameworks/laravel.d.ts +0 -13
  975. package/dist/resolution/frameworks/laravel.d.ts.map +0 -1
  976. package/dist/resolution/frameworks/laravel.js +0 -257
  977. package/dist/resolution/frameworks/laravel.js.map +0 -1
  978. package/dist/resolution/frameworks/nestjs.d.ts +0 -26
  979. package/dist/resolution/frameworks/nestjs.d.ts.map +0 -1
  980. package/dist/resolution/frameworks/nestjs.js +0 -698
  981. package/dist/resolution/frameworks/nestjs.js.map +0 -1
  982. package/dist/resolution/frameworks/play.d.ts +0 -19
  983. package/dist/resolution/frameworks/play.d.ts.map +0 -1
  984. package/dist/resolution/frameworks/play.js +0 -111
  985. package/dist/resolution/frameworks/play.js.map +0 -1
  986. package/dist/resolution/frameworks/python.d.ts +0 -10
  987. package/dist/resolution/frameworks/python.d.ts.map +0 -1
  988. package/dist/resolution/frameworks/python.js +0 -400
  989. package/dist/resolution/frameworks/python.js.map +0 -1
  990. package/dist/resolution/frameworks/react-native.d.ts +0 -3
  991. package/dist/resolution/frameworks/react-native.d.ts.map +0 -1
  992. package/dist/resolution/frameworks/react-native.js +0 -410
  993. package/dist/resolution/frameworks/react-native.js.map +0 -1
  994. package/dist/resolution/frameworks/react.d.ts +0 -8
  995. package/dist/resolution/frameworks/react.d.ts.map +0 -1
  996. package/dist/resolution/frameworks/react.js +0 -334
  997. package/dist/resolution/frameworks/react.js.map +0 -1
  998. package/dist/resolution/frameworks/ruby.d.ts +0 -8
  999. package/dist/resolution/frameworks/ruby.d.ts.map +0 -1
  1000. package/dist/resolution/frameworks/ruby.js +0 -302
  1001. package/dist/resolution/frameworks/ruby.js.map +0 -1
  1002. package/dist/resolution/frameworks/rust.d.ts +0 -8
  1003. package/dist/resolution/frameworks/rust.d.ts.map +0 -1
  1004. package/dist/resolution/frameworks/rust.js +0 -304
  1005. package/dist/resolution/frameworks/rust.js.map +0 -1
  1006. package/dist/resolution/frameworks/svelte.d.ts +0 -9
  1007. package/dist/resolution/frameworks/svelte.d.ts.map +0 -1
  1008. package/dist/resolution/frameworks/svelte.js +0 -253
  1009. package/dist/resolution/frameworks/svelte.js.map +0 -1
  1010. package/dist/resolution/frameworks/swift-objc.d.ts +0 -37
  1011. package/dist/resolution/frameworks/swift-objc.d.ts.map +0 -1
  1012. package/dist/resolution/frameworks/swift-objc.js +0 -252
  1013. package/dist/resolution/frameworks/swift-objc.js.map +0 -1
  1014. package/dist/resolution/frameworks/swift.d.ts +0 -10
  1015. package/dist/resolution/frameworks/swift.d.ts.map +0 -1
  1016. package/dist/resolution/frameworks/swift.js +0 -400
  1017. package/dist/resolution/frameworks/swift.js.map +0 -1
  1018. package/dist/resolution/frameworks/vue.d.ts +0 -9
  1019. package/dist/resolution/frameworks/vue.d.ts.map +0 -1
  1020. package/dist/resolution/frameworks/vue.js +0 -303
  1021. package/dist/resolution/frameworks/vue.js.map +0 -1
  1022. package/dist/resolution/go-module.d.ts +0 -26
  1023. package/dist/resolution/go-module.d.ts.map +0 -1
  1024. package/dist/resolution/go-module.js +0 -78
  1025. package/dist/resolution/go-module.js.map +0 -1
  1026. package/dist/resolution/goframe-synthesizer.d.ts +0 -28
  1027. package/dist/resolution/goframe-synthesizer.d.ts.map +0 -1
  1028. package/dist/resolution/goframe-synthesizer.js +0 -158
  1029. package/dist/resolution/goframe-synthesizer.js.map +0 -1
  1030. package/dist/resolution/import-resolver.d.ts +0 -78
  1031. package/dist/resolution/import-resolver.d.ts.map +0 -1
  1032. package/dist/resolution/import-resolver.js +0 -1849
  1033. package/dist/resolution/import-resolver.js.map +0 -1
  1034. package/dist/resolution/index.d.ts +0 -196
  1035. package/dist/resolution/index.d.ts.map +0 -1
  1036. package/dist/resolution/index.js +0 -1341
  1037. package/dist/resolution/index.js.map +0 -1
  1038. package/dist/resolution/lru-cache.d.ts +0 -24
  1039. package/dist/resolution/lru-cache.d.ts.map +0 -1
  1040. package/dist/resolution/lru-cache.js +0 -62
  1041. package/dist/resolution/lru-cache.js.map +0 -1
  1042. package/dist/resolution/name-matcher.d.ts +0 -93
  1043. package/dist/resolution/name-matcher.d.ts.map +0 -1
  1044. package/dist/resolution/name-matcher.js +0 -1212
  1045. package/dist/resolution/name-matcher.js.map +0 -1
  1046. package/dist/resolution/path-aliases.d.ts +0 -68
  1047. package/dist/resolution/path-aliases.d.ts.map +0 -1
  1048. package/dist/resolution/path-aliases.js +0 -238
  1049. package/dist/resolution/path-aliases.js.map +0 -1
  1050. package/dist/resolution/scope-index.d.ts +0 -86
  1051. package/dist/resolution/scope-index.d.ts.map +0 -1
  1052. package/dist/resolution/scope-index.js +0 -143
  1053. package/dist/resolution/scope-index.js.map +0 -1
  1054. package/dist/resolution/stdlib-blocklist.d.ts +0 -53
  1055. package/dist/resolution/stdlib-blocklist.d.ts.map +0 -1
  1056. package/dist/resolution/stdlib-blocklist.js +0 -143
  1057. package/dist/resolution/stdlib-blocklist.js.map +0 -1
  1058. package/dist/resolution/strip-comments.d.ts +0 -27
  1059. package/dist/resolution/strip-comments.d.ts.map +0 -1
  1060. package/dist/resolution/strip-comments.js +0 -443
  1061. package/dist/resolution/strip-comments.js.map +0 -1
  1062. package/dist/resolution/swift-objc-bridge.d.ts +0 -134
  1063. package/dist/resolution/swift-objc-bridge.d.ts.map +0 -1
  1064. package/dist/resolution/swift-objc-bridge.js +0 -256
  1065. package/dist/resolution/swift-objc-bridge.js.map +0 -1
  1066. package/dist/resolution/types.d.ts +0 -233
  1067. package/dist/resolution/types.d.ts.map +0 -1
  1068. package/dist/resolution/types.js +0 -8
  1069. package/dist/resolution/types.js.map +0 -1
  1070. package/dist/resolution/workspace-packages.d.ts +0 -48
  1071. package/dist/resolution/workspace-packages.d.ts.map +0 -1
  1072. package/dist/resolution/workspace-packages.js +0 -208
  1073. package/dist/resolution/workspace-packages.js.map +0 -1
  1074. package/dist/search/ast-helpers.d.ts +0 -42
  1075. package/dist/search/ast-helpers.d.ts.map +0 -1
  1076. package/dist/search/ast-helpers.js +0 -106
  1077. package/dist/search/ast-helpers.js.map +0 -1
  1078. package/dist/search/call-sites.d.ts +0 -398
  1079. package/dist/search/call-sites.d.ts.map +0 -1
  1080. package/dist/search/call-sites.js +0 -1433
  1081. package/dist/search/call-sites.js.map +0 -1
  1082. package/dist/search/context.d.ts +0 -134
  1083. package/dist/search/context.d.ts.map +0 -1
  1084. package/dist/search/context.js +0 -575
  1085. package/dist/search/context.js.map +0 -1
  1086. package/dist/search/impact.d.ts +0 -139
  1087. package/dist/search/impact.d.ts.map +0 -1
  1088. package/dist/search/impact.js +0 -646
  1089. package/dist/search/impact.js.map +0 -1
  1090. package/dist/search/query-parser.d.ts +0 -57
  1091. package/dist/search/query-parser.d.ts.map +0 -1
  1092. package/dist/search/query-parser.js +0 -177
  1093. package/dist/search/query-parser.js.map +0 -1
  1094. package/dist/search/query-utils.d.ts +0 -87
  1095. package/dist/search/query-utils.d.ts.map +0 -1
  1096. package/dist/search/query-utils.js +0 -449
  1097. package/dist/search/query-utils.js.map +0 -1
  1098. package/dist/search/related.d.ts +0 -178
  1099. package/dist/search/related.d.ts.map +0 -1
  1100. package/dist/search/related.js +0 -667
  1101. package/dist/search/related.js.map +0 -1
  1102. package/dist/search/slice.d.ts +0 -148
  1103. package/dist/search/slice.d.ts.map +0 -1
  1104. package/dist/search/slice.js +0 -460
  1105. package/dist/search/slice.js.map +0 -1
  1106. package/dist/search/snr-constants.d.ts +0 -41
  1107. package/dist/search/snr-constants.d.ts.map +0 -1
  1108. package/dist/search/snr-constants.js +0 -44
  1109. package/dist/search/snr-constants.js.map +0 -1
  1110. package/dist/search/types.d.ts +0 -28
  1111. package/dist/search/types.d.ts.map +0 -1
  1112. package/dist/search/types.js +0 -12
  1113. package/dist/search/types.js.map +0 -1
  1114. package/dist/sync/git-hooks.d.ts +0 -45
  1115. package/dist/sync/git-hooks.d.ts.map +0 -1
  1116. package/dist/sync/git-hooks.js +0 -225
  1117. package/dist/sync/git-hooks.js.map +0 -1
  1118. package/dist/sync/index.d.ts +0 -19
  1119. package/dist/sync/index.d.ts.map +0 -1
  1120. package/dist/sync/index.js +0 -35
  1121. package/dist/sync/index.js.map +0 -1
  1122. package/dist/sync/watch-policy.d.ts +0 -48
  1123. package/dist/sync/watch-policy.d.ts.map +0 -1
  1124. package/dist/sync/watch-policy.js +0 -124
  1125. package/dist/sync/watch-policy.js.map +0 -1
  1126. package/dist/sync/watcher.d.ts +0 -350
  1127. package/dist/sync/watcher.d.ts.map +0 -1
  1128. package/dist/sync/watcher.js +0 -811
  1129. package/dist/sync/watcher.js.map +0 -1
  1130. package/dist/sync/worktree.d.ts +0 -54
  1131. package/dist/sync/worktree.d.ts.map +0 -1
  1132. package/dist/sync/worktree.js +0 -137
  1133. package/dist/sync/worktree.js.map +0 -1
  1134. package/dist/telemetry/index.d.ts +0 -143
  1135. package/dist/telemetry/index.d.ts.map +0 -1
  1136. package/dist/telemetry/index.js +0 -541
  1137. package/dist/telemetry/index.js.map +0 -1
  1138. package/dist/timeline/bash-semantics.d.ts.map +0 -1
  1139. package/dist/timeline/bash-semantics.js.map +0 -1
  1140. package/dist/timeline/cli.d.ts.map +0 -1
  1141. package/dist/timeline/cli.js.map +0 -1
  1142. package/dist/timeline/constants.d.ts +0 -62
  1143. package/dist/timeline/constants.d.ts.map +0 -1
  1144. package/dist/timeline/constants.js +0 -73
  1145. package/dist/timeline/constants.js.map +0 -1
  1146. package/dist/timeline/errors.d.ts.map +0 -1
  1147. package/dist/timeline/errors.js.map +0 -1
  1148. package/dist/timeline/hook-runner.d.ts.map +0 -1
  1149. package/dist/timeline/hook-runner.js.map +0 -1
  1150. package/dist/timeline/hooks.d.ts.map +0 -1
  1151. package/dist/timeline/hooks.js.map +0 -1
  1152. package/dist/timeline/index.d.ts.map +0 -1
  1153. package/dist/timeline/index.js.map +0 -1
  1154. package/dist/timeline/indexer.d.ts.map +0 -1
  1155. package/dist/timeline/indexer.js.map +0 -1
  1156. package/dist/timeline/installer.d.ts.map +0 -1
  1157. package/dist/timeline/installer.js.map +0 -1
  1158. package/dist/timeline/payload.d.ts.map +0 -1
  1159. package/dist/timeline/payload.js.map +0 -1
  1160. package/dist/timeline/post-tool-summary.d.ts.map +0 -1
  1161. package/dist/timeline/post-tool-summary.js.map +0 -1
  1162. package/dist/timeline/recorder.d.ts.map +0 -1
  1163. package/dist/timeline/recorder.js.map +0 -1
  1164. package/dist/timeline/schema-bootstrap.d.ts +0 -42
  1165. package/dist/timeline/schema-bootstrap.d.ts.map +0 -1
  1166. package/dist/timeline/schema-bootstrap.js +0 -81
  1167. package/dist/timeline/schema-bootstrap.js.map +0 -1
  1168. package/dist/timeline/store.d.ts.map +0 -1
  1169. package/dist/timeline/store.js.map +0 -1
  1170. package/dist/timeline/types.d.ts.map +0 -1
  1171. package/dist/timeline/types.js.map +0 -1
  1172. package/dist/types.d.ts +0 -392
  1173. package/dist/types.d.ts.map +0 -1
  1174. package/dist/types.js +0 -81
  1175. package/dist/types.js.map +0 -1
  1176. package/dist/ui/glyphs.d.ts +0 -42
  1177. package/dist/ui/glyphs.d.ts.map +0 -1
  1178. package/dist/ui/glyphs.js +0 -78
  1179. package/dist/ui/glyphs.js.map +0 -1
  1180. package/dist/ui/shimmer-progress.d.ts +0 -11
  1181. package/dist/ui/shimmer-progress.d.ts.map +0 -1
  1182. package/dist/ui/shimmer-progress.js +0 -90
  1183. package/dist/ui/shimmer-progress.js.map +0 -1
  1184. package/dist/ui/shimmer-worker.d.ts +0 -2
  1185. package/dist/ui/shimmer-worker.d.ts.map +0 -1
  1186. package/dist/ui/shimmer-worker.js +0 -118
  1187. package/dist/ui/shimmer-worker.js.map +0 -1
  1188. package/dist/ui/types.d.ts +0 -17
  1189. package/dist/ui/types.d.ts.map +0 -1
  1190. package/dist/ui/types.js +0 -3
  1191. package/dist/ui/types.js.map +0 -1
  1192. package/dist/upgrade/index.d.ts +0 -132
  1193. package/dist/upgrade/index.d.ts.map +0 -1
  1194. package/dist/upgrade/index.js +0 -498
  1195. package/dist/upgrade/index.js.map +0 -1
  1196. package/dist/utils.d.ts +0 -224
  1197. package/dist/utils.d.ts.map +0 -1
  1198. package/dist/utils.js +0 -583
  1199. package/dist/utils.js.map +0 -1
  1200. package/scripts/add-lang/bench.sh +0 -60
  1201. package/scripts/add-lang/check-grammar.mjs +0 -75
  1202. package/scripts/add-lang/dump-ast.mjs +0 -103
  1203. package/scripts/add-lang/verify-extraction.mjs +0 -70
  1204. package/scripts/agent-eval/ab-adoption.sh +0 -91
  1205. package/scripts/agent-eval/ab-hook.sh +0 -86
  1206. package/scripts/agent-eval/ab-impl.sh +0 -78
  1207. package/scripts/agent-eval/ab-new-vs-baseline.sh +0 -102
  1208. package/scripts/agent-eval/ab-sufficiency.sh +0 -78
  1209. package/scripts/agent-eval/arms-F.sh +0 -21
  1210. package/scripts/agent-eval/arms-matrix.sh +0 -37
  1211. package/scripts/agent-eval/audit.sh +0 -68
  1212. package/scripts/agent-eval/bench-readme.sh +0 -28
  1213. package/scripts/agent-eval/bench-why-repo.sh +0 -22
  1214. package/scripts/agent-eval/block-read-hook.sh +0 -19
  1215. package/scripts/agent-eval/hook-settings.json +0 -15
  1216. package/scripts/agent-eval/itrun.sh +0 -120
  1217. package/scripts/agent-eval/offload-eval-3arm.sh +0 -72
  1218. package/scripts/agent-eval/offload-eval-cost.mjs +0 -133
  1219. package/scripts/agent-eval/offload-eval-effort.mjs +0 -108
  1220. package/scripts/agent-eval/offload-eval-frontload-matrix.sh +0 -25
  1221. package/scripts/agent-eval/offload-eval-frontload.sh +0 -47
  1222. package/scripts/agent-eval/offload-eval-ground-truth.json +0 -18
  1223. package/scripts/agent-eval/offload-eval-hook.mjs +0 -84
  1224. package/scripts/agent-eval/offload-eval-judge.mjs +0 -103
  1225. package/scripts/agent-eval/offload-eval-matrix.sh +0 -20
  1226. package/scripts/agent-eval/offload-eval-metrics.mjs +0 -94
  1227. package/scripts/agent-eval/offload-eval-refs1.sh +0 -50
  1228. package/scripts/agent-eval/offload-eval-setup.sh +0 -24
  1229. package/scripts/agent-eval/offload-eval-styles.sh +0 -72
  1230. package/scripts/agent-eval/offload-eval-summarize.mjs +0 -68
  1231. package/scripts/agent-eval/offload-eval.md +0 -76
  1232. package/scripts/agent-eval/parse-arms.mjs +0 -116
  1233. package/scripts/agent-eval/parse-bench-readme.mjs +0 -84
  1234. package/scripts/agent-eval/parse-run.mjs +0 -45
  1235. package/scripts/agent-eval/parse-session.mjs +0 -93
  1236. package/scripts/agent-eval/probe-context.mjs +0 -21
  1237. package/scripts/agent-eval/probe-explore.mjs +0 -40
  1238. package/scripts/agent-eval/probe-node.mjs +0 -20
  1239. package/scripts/agent-eval/probe-sweep.mjs +0 -119
  1240. package/scripts/agent-eval/probe-trace.mjs +0 -20
  1241. package/scripts/agent-eval/redirect-read-hook.sh +0 -38
  1242. package/scripts/agent-eval/run-agent.sh +0 -34
  1243. package/scripts/agent-eval/run-all.sh +0 -69
  1244. package/scripts/agent-eval/run-arms.sh +0 -56
  1245. package/scripts/agent-eval/seq-matrix.mjs +0 -137
  1246. package/scripts/agent-eval/subagent-token-cost.py +0 -188
  1247. package/scripts/build-bundle.sh +0 -118
  1248. package/scripts/extract-release-notes.mjs +0 -130
  1249. package/scripts/local-install.sh +0 -41
  1250. package/scripts/npm-sdk.js +0 -75
  1251. package/scripts/npm-shim.js +0 -246
  1252. package/scripts/pack-npm.sh +0 -118
  1253. package/scripts/prepare-release.mjs +0 -270
  1254. /package/dist/{dbquery → core/dbquery}/config.d.ts +0 -0
  1255. /package/dist/{dbquery → core/dbquery}/config.js +0 -0
  1256. /package/dist/{dbquery → core/dbquery}/constants.d.ts +0 -0
  1257. /package/dist/{dbquery → core/dbquery}/constants.js +0 -0
  1258. /package/dist/{dbquery → core/dbquery}/drivers/mysql.d.ts +0 -0
  1259. /package/dist/{dbquery → core/dbquery}/drivers/mysql.js +0 -0
  1260. /package/dist/{dbquery → core/dbquery}/drivers/postgres.d.ts +0 -0
  1261. /package/dist/{dbquery → core/dbquery}/drivers/postgres.js +0 -0
  1262. /package/dist/{dbquery → core/dbquery}/executor.d.ts +0 -0
  1263. /package/dist/{dbquery → core/dbquery}/executor.js +0 -0
  1264. /package/dist/{dbquery → core/dbquery}/format.d.ts +0 -0
  1265. /package/dist/{dbquery → core/dbquery}/format.js +0 -0
  1266. /package/dist/{dbquery → core/dbquery}/identifiers.d.ts +0 -0
  1267. /package/dist/{dbquery → core/dbquery}/identifiers.js +0 -0
  1268. /package/dist/{dbquery → core/dbquery}/index.d.ts +0 -0
  1269. /package/dist/{dbquery → core/dbquery}/index.js +0 -0
  1270. /package/dist/{dbquery → core/dbquery}/logging.d.ts +0 -0
  1271. /package/dist/{dbquery → core/dbquery}/logging.js +0 -0
  1272. /package/dist/{dbquery → core/dbquery}/queries.d.ts +0 -0
  1273. /package/dist/{dbquery → core/dbquery}/queries.js +0 -0
  1274. /package/dist/{dbquery → core/dbquery}/safety.d.ts +0 -0
  1275. /package/dist/{dbquery → core/dbquery}/safety.js +0 -0
  1276. /package/dist/{markdown → core/markdown}/dedup.d.ts +0 -0
  1277. /package/dist/{markdown → core/markdown}/dedup.js +0 -0
  1278. /package/dist/{markdown → core/markdown}/extractor.d.ts +0 -0
  1279. /package/dist/{markdown → core/markdown}/extractor.js +0 -0
  1280. /package/dist/{markdown → core/markdown}/store.d.ts +0 -0
  1281. /package/dist/{markdown → core/markdown}/store.js +0 -0
  1282. /package/dist/{markdown → core/markdown}/summary-extractor.d.ts +0 -0
  1283. /package/dist/{markdown → core/markdown}/summary-extractor.js +0 -0
  1284. /package/dist/{markdown → core/markdown}/types.js +0 -0
  1285. /package/dist/{timeline → core/timeline}/bash-semantics.d.ts +0 -0
  1286. /package/dist/{timeline → core/timeline}/bash-semantics.js +0 -0
  1287. /package/dist/{timeline → core/timeline}/cli.d.ts +0 -0
  1288. /package/dist/{timeline → core/timeline}/cli.js +0 -0
  1289. /package/dist/{timeline → core/timeline}/errors.d.ts +0 -0
  1290. /package/dist/{timeline → core/timeline}/errors.js +0 -0
  1291. /package/dist/{timeline → core/timeline}/hook-runner.d.ts +0 -0
  1292. /package/dist/{timeline → core/timeline}/hook-runner.js +0 -0
  1293. /package/dist/{timeline → core/timeline}/hooks.d.ts +0 -0
  1294. /package/dist/{timeline → core/timeline}/hooks.js +0 -0
  1295. /package/dist/{timeline → core/timeline}/index.d.ts +0 -0
  1296. /package/dist/{timeline → core/timeline}/index.js +0 -0
  1297. /package/dist/{timeline → core/timeline}/indexer.d.ts +0 -0
  1298. /package/dist/{timeline → core/timeline}/indexer.js +0 -0
  1299. /package/dist/{timeline → core/timeline}/installer.d.ts +0 -0
  1300. /package/dist/{timeline → core/timeline}/installer.js +0 -0
  1301. /package/dist/{timeline → core/timeline}/payload.d.ts +0 -0
  1302. /package/dist/{timeline → core/timeline}/payload.js +0 -0
  1303. /package/dist/{timeline → core/timeline}/post-tool-summary.d.ts +0 -0
  1304. /package/dist/{timeline → core/timeline}/post-tool-summary.js +0 -0
  1305. /package/dist/{timeline → core/timeline}/recorder.d.ts +0 -0
  1306. /package/dist/{timeline → core/timeline}/recorder.js +0 -0
  1307. /package/dist/{timeline → core/timeline}/schema.sql +0 -0
  1308. /package/dist/{timeline → core/timeline}/store.d.ts +0 -0
  1309. /package/dist/{timeline → core/timeline}/store.js +0 -0
  1310. /package/dist/{timeline → core/timeline}/types.d.ts +0 -0
  1311. /package/dist/{timeline → core/timeline}/types.js +0 -0
@@ -1,1341 +0,0 @@
1
- "use strict";
2
- /**
3
- * Reference Resolution Orchestrator
4
- *
5
- * Coordinates all reference resolution strategies.
6
- */
7
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
- if (k2 === undefined) k2 = k;
9
- var desc = Object.getOwnPropertyDescriptor(m, k);
10
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
- desc = { enumerable: true, get: function() { return m[k]; } };
12
- }
13
- Object.defineProperty(o, k2, desc);
14
- }) : (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- o[k2] = m[k];
17
- }));
18
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
- Object.defineProperty(o, "default", { enumerable: true, value: v });
20
- }) : function(o, v) {
21
- o["default"] = v;
22
- });
23
- var __importStar = (this && this.__importStar) || (function () {
24
- var ownKeys = function(o) {
25
- ownKeys = Object.getOwnPropertyNames || function (o) {
26
- var ar = [];
27
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
- return ar;
29
- };
30
- return ownKeys(o);
31
- };
32
- return function (mod) {
33
- if (mod && mod.__esModule) return mod;
34
- var result = {};
35
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
- __setModuleDefault(result, mod);
37
- return result;
38
- };
39
- })();
40
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
41
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
42
- };
43
- Object.defineProperty(exports, "__esModule", { value: true });
44
- exports.ReferenceResolver = void 0;
45
- exports.createResolver = createResolver;
46
- const fs = __importStar(require("fs"));
47
- const path = __importStar(require("path"));
48
- const name_matcher_1 = require("./name-matcher");
49
- const import_resolver_1 = require("./import-resolver");
50
- const frameworks_1 = require("./frameworks");
51
- const callback_synthesizer_1 = require("./callback-synthesizer");
52
- const stdlib_blocklist_1 = require("./stdlib-blocklist");
53
- const path_aliases_1 = require("./path-aliases");
54
- const go_module_1 = require("./go-module");
55
- const workspace_packages_1 = require("./workspace-packages");
56
- const errors_1 = require("../errors");
57
- const lru_cache_1 = require("./lru-cache");
58
- /** Node kinds that can declare supertypes (extends/implements). */
59
- const SUPERTYPE_BEARING_KINDS = new Set([
60
- 'class', 'struct', 'interface', 'trait', 'protocol', 'enum',
61
- ]);
62
- /**
63
- * Languages whose chained static-factory/fluent calls defer to the conformance
64
- * second pass. Dotted-receiver languages resolve via matchDottedCallChain; the
65
- * `::`-receiver ones (Rust) via matchScopedCallChain.
66
- */
67
- const CHAIN_LANGUAGES = new Set(['java', 'kotlin', 'csharp', 'swift', 'rust', 'go', 'scala', 'dart', 'objc', 'pascal']);
68
- const SCOPED_CHAIN_LANGUAGES = new Set(['rust']);
69
- /** The extractor's chained-receiver encoding: `<inner>().<method>`. */
70
- const CHAIN_SHAPE = /^(.+)\(\)\.(\w+)$/;
71
- /**
72
- * Cache size limits. Each per-resolver cache is bounded so memory
73
- * stays flat on large codebases (20k+ files). Sizes were chosen to
74
- * cover the working set for typical resolution batches without
75
- * exceeding a few hundred MB worst-case. Override via the env var
76
- * `CGRAPHX_RESOLVER_CACHE_SIZE` (single integer applied to all
77
- * caches) when tuning for very large or very small projects.
78
- */
79
- const DEFAULT_CACHE_LIMIT = 5_000;
80
- function resolveCacheLimit() {
81
- const raw = process.env.CGRAPHX_RESOLVER_CACHE_SIZE;
82
- if (!raw)
83
- return DEFAULT_CACHE_LIMIT;
84
- const parsed = Number.parseInt(raw, 10);
85
- if (Number.isFinite(parsed) && parsed > 0)
86
- return parsed;
87
- return DEFAULT_CACHE_LIMIT;
88
- }
89
- // Re-export types
90
- __exportStar(require("./types"), exports);
91
- // Pre-built Sets for O(1) built-in lookups (allocated once, shared across all instances)
92
- const JS_BUILT_INS = new Set([
93
- 'console', 'window', 'document', 'global', 'process',
94
- 'Promise', 'Array', 'Object', 'String', 'Number', 'Boolean',
95
- 'Date', 'Math', 'JSON', 'RegExp', 'Error', 'Map', 'Set',
96
- 'setTimeout', 'setInterval', 'clearTimeout', 'clearInterval',
97
- 'fetch', 'require', 'module', 'exports', '__dirname', '__filename',
98
- ]);
99
- const REACT_HOOKS = new Set([
100
- 'useState', 'useEffect', 'useContext', 'useReducer', 'useCallback',
101
- 'useMemo', 'useRef', 'useLayoutEffect', 'useImperativeHandle', 'useDebugValue',
102
- ]);
103
- const PYTHON_BUILT_INS = new Set([
104
- 'print', 'len', 'range', 'str', 'int', 'float', 'list', 'dict', 'set', 'tuple',
105
- 'open', 'input', 'type', 'isinstance', 'hasattr', 'getattr', 'setattr',
106
- 'super', 'self', 'cls', 'None', 'True', 'False',
107
- ]);
108
- const PYTHON_BUILT_IN_TYPES = new Set([
109
- 'list', 'dict', 'set', 'tuple', 'str', 'int', 'float', 'bool',
110
- 'bytes', 'bytearray', 'frozenset', 'object', 'super',
111
- ]);
112
- const PYTHON_BUILT_IN_METHODS = new Set([
113
- 'append', 'extend', 'insert', 'remove', 'pop', 'clear', 'sort', 'reverse', 'copy',
114
- 'update', 'keys', 'values', 'items', 'get',
115
- 'add', 'discard', 'union', 'intersection', 'difference',
116
- 'split', 'join', 'strip', 'lstrip', 'rstrip', 'replace', 'lower', 'upper',
117
- 'startswith', 'endswith', 'find', 'index', 'count', 'encode', 'decode',
118
- 'format', 'isdigit', 'isalpha', 'isalnum',
119
- 'read', 'write', 'readline', 'readlines', 'close', 'flush', 'seek',
120
- ]);
121
- const GO_STDLIB_PACKAGES = new Set([
122
- 'fmt', 'os', 'io', 'net', 'http', 'log', 'math', 'sort', 'sync',
123
- 'time', 'path', 'bytes', 'strings', 'strconv', 'errors', 'context',
124
- 'json', 'xml', 'csv', 'html', 'template', 'regexp', 'reflect',
125
- 'runtime', 'testing', 'flag', 'bufio', 'crypto', 'encoding',
126
- 'filepath', 'hash', 'mime', 'rand', 'signal', 'sql', 'syscall',
127
- 'unicode', 'unsafe', 'atomic', 'binary', 'debug', 'exec', 'heap',
128
- 'ring', 'scanner', 'tar', 'zip', 'gzip', 'zlib', 'tls', 'url',
129
- 'user', 'pprof', 'trace', 'ast', 'build', 'parser', 'printer',
130
- 'token', 'types', 'cgo', 'plugin', 'race', 'ioutil',
131
- // Kubernetes-common stdlib aliases
132
- 'utilruntime', 'utilwait', 'utilnet',
133
- ]);
134
- const GO_BUILT_INS = new Set([
135
- 'make', 'new', 'len', 'cap', 'append', 'copy', 'delete', 'close',
136
- 'panic', 'recover', 'print', 'println', 'complex', 'real', 'imag',
137
- 'error', 'nil', 'true', 'false', 'iota',
138
- 'int', 'int8', 'int16', 'int32', 'int64',
139
- 'uint', 'uint8', 'uint16', 'uint32', 'uint64', 'uintptr',
140
- 'float32', 'float64', 'complex64', 'complex128',
141
- 'string', 'bool', 'byte', 'rune', 'any',
142
- ]);
143
- const PASCAL_UNIT_PREFIXES = [
144
- 'System.', 'Winapi.', 'Vcl.', 'Fmx.', 'Data.', 'Datasnap.',
145
- 'Soap.', 'Xml.', 'Web.', 'REST.', 'FireDAC.', 'IBX.',
146
- 'IdHTTP', 'IdTCP', 'IdSSL',
147
- ];
148
- const PASCAL_BUILT_INS = new Set([
149
- 'System', 'SysUtils', 'Classes', 'Types', 'Variants', 'StrUtils',
150
- 'Math', 'DateUtils', 'IOUtils', 'Generics.Collections', 'Generics.Defaults',
151
- 'Rtti', 'TypInfo', 'SyncObjs', 'RegularExpressions',
152
- 'SysInit', 'Windows', 'Messages', 'Graphics', 'Controls', 'Forms',
153
- 'Dialogs', 'StdCtrls', 'ExtCtrls', 'ComCtrls', 'Menus', 'ActnList',
154
- 'WriteLn', 'Write', 'ReadLn', 'Read', 'Inc', 'Dec', 'Ord', 'Chr',
155
- 'Length', 'SetLength', 'High', 'Low', 'Assigned', 'FreeAndNil',
156
- 'Format', 'IntToStr', 'StrToInt', 'FloatToStr', 'StrToFloat',
157
- 'Trim', 'UpperCase', 'LowerCase', 'Pos', 'Copy', 'Delete', 'Insert',
158
- 'Now', 'Date', 'Time', 'DateToStr', 'StrToDate',
159
- 'Raise', 'Exit', 'Break', 'Continue', 'Abort',
160
- 'True', 'False', 'nil', 'Self', 'Result',
161
- 'Create', 'Destroy', 'Free',
162
- 'TObject', 'TComponent', 'TPersistent', 'TInterfacedObject',
163
- 'TList', 'TStringList', 'TStrings', 'TStream', 'TMemoryStream', 'TFileStream',
164
- 'Exception', 'EAbort', 'EConvertError', 'EAccessViolation',
165
- 'IInterface', 'IUnknown',
166
- ]);
167
- const C_BUILT_INS = new Set([
168
- // Standard C library functions
169
- 'printf', 'fprintf', 'sprintf', 'snprintf', 'scanf', 'fscanf', 'sscanf',
170
- 'malloc', 'calloc', 'realloc', 'free',
171
- 'memcpy', 'memmove', 'memset', 'memcmp', 'memchr',
172
- 'strlen', 'strcpy', 'strncpy', 'strcat', 'strncat', 'strcmp', 'strncmp',
173
- 'strstr', 'strchr', 'strrchr', 'strtok', 'strdup',
174
- 'fopen', 'fclose', 'fread', 'fwrite', 'fgets', 'fputs', 'fputc', 'fgetc',
175
- 'feof', 'ferror', 'fflush', 'fseek', 'ftell', 'rewind',
176
- 'exit', 'abort', 'atexit', 'atoi', 'atol', 'atof', 'strtol', 'strtoul', 'strtod',
177
- 'qsort', 'bsearch',
178
- 'abs', 'labs', 'rand', 'srand',
179
- 'sin', 'cos', 'tan', 'sqrt', 'pow', 'log', 'log10', 'exp', 'ceil', 'floor', 'fabs',
180
- 'time', 'clock', 'difftime', 'mktime', 'localtime', 'gmtime', 'strftime', 'asctime',
181
- 'assert', 'errno',
182
- 'perror', 'remove', 'rename', 'tmpfile', 'tmpnam',
183
- 'getenv', 'system',
184
- 'signal', 'raise',
185
- 'setjmp', 'longjmp',
186
- 'va_start', 'va_end', 'va_arg', 'va_copy',
187
- 'NULL', 'EOF', 'BUFSIZ', 'FILENAME_MAX', 'RAND_MAX', 'EXIT_SUCCESS', 'EXIT_FAILURE',
188
- 'size_t', 'ptrdiff_t', 'wchar_t', 'intptr_t', 'uintptr_t',
189
- 'int8_t', 'int16_t', 'int32_t', 'int64_t',
190
- 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
191
- 'FILE',
192
- // POSIX additions commonly seen
193
- 'stat', 'lstat', 'fstat', 'open', 'close', 'read', 'write', 'pipe',
194
- 'fork', 'exec', 'waitpid', 'getpid', 'getppid', 'kill', 'sleep', 'usleep',
195
- 'pthread_create', 'pthread_join', 'pthread_mutex_lock', 'pthread_mutex_unlock',
196
- 'dlopen', 'dlsym', 'dlclose',
197
- ]);
198
- const CPP_BUILT_INS = new Set([
199
- // iostream objects (often used without std:: prefix via using)
200
- 'cout', 'cin', 'cerr', 'clog', 'endl', 'flush', 'ws',
201
- 'std', // the namespace itself when used as std::something
202
- // Common C++ keywords that leak as references
203
- 'nullptr', 'true', 'false', 'this', 'sizeof', 'alignof', 'typeid',
204
- 'static_cast', 'dynamic_cast', 'reinterpret_cast', 'const_cast',
205
- 'make_unique', 'make_shared', 'make_pair',
206
- 'move', 'forward', 'swap',
207
- ]);
208
- /**
209
- * Reference Resolver
210
- *
211
- * Orchestrates reference resolution using multiple strategies.
212
- */
213
- class ReferenceResolver {
214
- projectRoot;
215
- queries;
216
- context;
217
- frameworks = [];
218
- // Chained static-factory/fluent call refs the first pass couldn't resolve,
219
- // collected in-memory (the batched resolver deletes unresolved refs from the
220
- // DB, so they can't be re-read). Drained by resolveChainedCallsViaConformance
221
- // once implements/extends edges exist, to resolve methods on a supertype the
222
- // receiver conforms to (#750).
223
- deferredChainRefs = [];
224
- // `this.<member>` function-as-value refs whose member is NOT on the
225
- // enclosing class itself — possibly inherited. Collected in-memory for the
226
- // same reason as deferredChainRefs and drained by
227
- // resolveDeferredThisMemberRefs once implements/extends edges exist (#808).
228
- deferredThisMemberRefs = [];
229
- // Per-`.razor`/`.cshtml`-file `@using` namespace set (own directives + folder
230
- // `_Imports.razor`, cascading to the project root). Used to disambiguate a
231
- // markup type ref to the right C# namespace.
232
- razorUsingsCache = new Map();
233
- // All per-resolver caches are LRU-bounded. Previously these were
234
- // unbounded Maps that grew with every distinct lookup and OOM'd on
235
- // codebases with 20k+ files (see issue: unbounded cache growth).
236
- nodeCache; // per-file node cache
237
- fileCache; // per-file content cache
238
- importMappingCache;
239
- reExportCache;
240
- nameCache; // name → nodes cache
241
- lowerNameCache; // lower(name) → nodes cache
242
- qualifiedNameCache; // qualified_name → nodes cache
243
- knownNames = null; // all known symbol names for fast pre-filtering
244
- knownFiles = null;
245
- cachesWarmed = false;
246
- // tsconfig/jsconfig path-alias map. `undefined` = not yet computed,
247
- // `null` = computed and absent. Treated as immutable for the
248
- // resolver's lifetime; callers re-create the resolver if config changes.
249
- projectAliases = undefined;
250
- // go.mod module path. Same lazy/immutable convention as projectAliases.
251
- goModule = undefined;
252
- // Monorepo workspace member packages. Same lazy/immutable convention.
253
- workspacePackages = undefined;
254
- constructor(projectRoot, queries) {
255
- this.projectRoot = projectRoot;
256
- this.queries = queries;
257
- const limit = resolveCacheLimit();
258
- // The content cache is heavier (full file text), so we give it a
259
- // smaller budget than the metadata caches.
260
- const contentLimit = Math.max(64, Math.floor(limit / 5));
261
- this.nodeCache = new lru_cache_1.LRUCache(limit);
262
- this.fileCache = new lru_cache_1.LRUCache(contentLimit);
263
- this.importMappingCache = new lru_cache_1.LRUCache(limit);
264
- this.reExportCache = new lru_cache_1.LRUCache(limit);
265
- this.nameCache = new lru_cache_1.LRUCache(limit);
266
- this.lowerNameCache = new lru_cache_1.LRUCache(limit);
267
- this.qualifiedNameCache = new lru_cache_1.LRUCache(limit);
268
- this.context = this.createContext();
269
- }
270
- /**
271
- * Initialize the resolver (detect frameworks, etc.)
272
- */
273
- initialize() {
274
- this.frameworks = (0, frameworks_1.detectFrameworks)(this.context);
275
- this.clearCaches();
276
- }
277
- /**
278
- * Run each framework resolver's cross-file finalization pass and persist
279
- * the returned node updates. Idempotent — safe to call after every indexAll
280
- * and every incremental sync. Returns the number of nodes updated.
281
- *
282
- * Caches are cleared before/after so the post-extract pass sees fresh DB
283
- * state and downstream queries see the updated names.
284
- */
285
- runPostExtract() {
286
- let updated = 0;
287
- this.clearCaches();
288
- for (const fw of this.frameworks) {
289
- if (!fw.postExtract)
290
- continue;
291
- try {
292
- const nodes = fw.postExtract(this.context);
293
- for (const node of nodes) {
294
- this.queries.updateNode(node);
295
- updated++;
296
- }
297
- }
298
- catch (err) {
299
- (0, errors_1.logDebug)(`Framework '${fw.name}' postExtract failed`, {
300
- error: err instanceof Error ? err.message : String(err),
301
- });
302
- }
303
- }
304
- if (updated > 0)
305
- this.clearCaches();
306
- return updated;
307
- }
308
- /**
309
- * Pre-build lightweight caches for resolution.
310
- * Node lookups are now handled by indexed SQLite queries instead of
311
- * loading all nodes into memory (which caused OOM on large codebases).
312
- * We cache the set of known symbol names for fast pre-filtering.
313
- */
314
- warmCaches() {
315
- if (this.cachesWarmed)
316
- return;
317
- // Only cache the set of known file paths (lightweight string set)
318
- this.knownFiles = new Set(this.queries.getAllFilePaths());
319
- // Cache all distinct symbol names for fast pre-filtering (just strings, not full nodes)
320
- this.knownNames = new Set(this.queries.getAllNodeNames());
321
- this.cachesWarmed = true;
322
- }
323
- /**
324
- * Clear internal caches
325
- */
326
- clearCaches() {
327
- this.nodeCache.clear();
328
- this.fileCache.clear();
329
- this.importMappingCache.clear();
330
- this.reExportCache.clear();
331
- this.nameCache.clear();
332
- this.lowerNameCache.clear();
333
- this.qualifiedNameCache.clear();
334
- this.knownNames = null;
335
- this.knownFiles = null;
336
- this.cachesWarmed = false;
337
- }
338
- /**
339
- * Create the resolution context
340
- */
341
- createContext() {
342
- return {
343
- getNodesInFile: (filePath) => {
344
- if (!this.nodeCache.has(filePath)) {
345
- this.nodeCache.set(filePath, this.queries.getNodesByFile(filePath));
346
- }
347
- return this.nodeCache.get(filePath);
348
- },
349
- getNodesByName: (name) => {
350
- const cached = this.nameCache.get(name);
351
- if (cached !== undefined)
352
- return cached;
353
- const result = this.queries.getNodesByName(name);
354
- this.nameCache.set(name, result);
355
- return result;
356
- },
357
- getNodesByQualifiedName: (qualifiedName) => {
358
- const cached = this.qualifiedNameCache.get(qualifiedName);
359
- if (cached !== undefined)
360
- return cached;
361
- const result = this.queries.getNodesByQualifiedNameExact(qualifiedName);
362
- this.qualifiedNameCache.set(qualifiedName, result);
363
- return result;
364
- },
365
- getNodesByKind: (kind) => {
366
- return this.queries.getNodesByKind(kind);
367
- },
368
- fileExists: (filePath) => {
369
- // Check pre-built known files set first (O(1))
370
- if (this.knownFiles) {
371
- const normalized = filePath.replace(/\\/g, '/');
372
- if (this.knownFiles.has(filePath) || this.knownFiles.has(normalized)) {
373
- return true;
374
- }
375
- }
376
- // Fall back to filesystem for files not yet indexed
377
- const fullPath = path.join(this.projectRoot, filePath);
378
- try {
379
- return fs.existsSync(fullPath);
380
- }
381
- catch (error) {
382
- (0, errors_1.logDebug)('Error checking file existence', { filePath, error: String(error) });
383
- return false;
384
- }
385
- },
386
- readFile: (filePath) => {
387
- if (this.fileCache.has(filePath)) {
388
- return this.fileCache.get(filePath);
389
- }
390
- const fullPath = path.join(this.projectRoot, filePath);
391
- try {
392
- const content = fs.readFileSync(fullPath, 'utf-8');
393
- this.fileCache.set(filePath, content);
394
- return content;
395
- }
396
- catch (error) {
397
- (0, errors_1.logDebug)('Failed to read file for resolution', { filePath, error: String(error) });
398
- this.fileCache.set(filePath, null);
399
- return null;
400
- }
401
- },
402
- getProjectRoot: () => this.projectRoot,
403
- getAllFiles: () => {
404
- return this.queries.getAllFilePaths();
405
- },
406
- listDirectories: (relativePath) => {
407
- const target = relativePath === '.' || relativePath === ''
408
- ? this.projectRoot
409
- : path.join(this.projectRoot, relativePath);
410
- try {
411
- return fs
412
- .readdirSync(target, { withFileTypes: true })
413
- .filter((entry) => entry.isDirectory())
414
- .map((entry) => entry.name);
415
- }
416
- catch (error) {
417
- (0, errors_1.logDebug)('Failed to list directory for resolution', {
418
- relativePath,
419
- error: String(error),
420
- });
421
- return [];
422
- }
423
- },
424
- getNodesByLowerName: (lowerName) => {
425
- const cached = this.lowerNameCache.get(lowerName);
426
- if (cached !== undefined)
427
- return cached;
428
- const result = this.queries.getNodesByLowerName(lowerName);
429
- this.lowerNameCache.set(lowerName, result);
430
- return result;
431
- },
432
- getNodeById: (id) => {
433
- return this.queries.getNodeById(id);
434
- },
435
- getSupertypes: (typeName, language) => {
436
- // Union the `implements`/`extends` targets of every same-named type node.
437
- // Matching by simple name (not id) reconciles a type declared in one node
438
- // (`KF::Builder`) with conformance declared in a separate extension node
439
- // (`KF.Builder: KFOptionSetter`) — both have name `Builder`.
440
- const typeNodes = this.context
441
- .getNodesByName(typeName)
442
- .filter((n) => SUPERTYPE_BEARING_KINDS.has(n.kind) && n.language === language);
443
- if (typeNodes.length === 0)
444
- return [];
445
- const supertypes = new Set();
446
- for (const tn of typeNodes) {
447
- for (const edge of this.queries.getOutgoingEdges(tn.id, ['implements', 'extends'])) {
448
- const target = this.queries.getNodeById(edge.target);
449
- if (target?.name && target.name !== typeName)
450
- supertypes.add(target.name);
451
- }
452
- }
453
- return [...supertypes];
454
- },
455
- getImportMappings: (filePath, language) => {
456
- const cacheKey = filePath;
457
- const cached = this.importMappingCache.get(cacheKey);
458
- if (cached)
459
- return cached;
460
- const content = this.context.readFile(filePath);
461
- if (!content) {
462
- this.importMappingCache.set(cacheKey, []);
463
- return [];
464
- }
465
- const mappings = (0, import_resolver_1.extractImportMappings)(filePath, content, language);
466
- this.importMappingCache.set(cacheKey, mappings);
467
- return mappings;
468
- },
469
- getProjectAliases: () => {
470
- if (this.projectAliases === undefined) {
471
- this.projectAliases = (0, path_aliases_1.loadProjectAliases)(this.projectRoot);
472
- }
473
- return this.projectAliases;
474
- },
475
- getGoModule: () => {
476
- if (this.goModule === undefined) {
477
- this.goModule = (0, go_module_1.loadGoModule)(this.projectRoot);
478
- }
479
- return this.goModule;
480
- },
481
- getWorkspacePackages: () => {
482
- if (this.workspacePackages === undefined) {
483
- this.workspacePackages = (0, workspace_packages_1.loadWorkspacePackages)(this.projectRoot);
484
- }
485
- return this.workspacePackages;
486
- },
487
- getReExports: (filePath, language) => {
488
- const cached = this.reExportCache.get(filePath);
489
- if (cached)
490
- return cached;
491
- const content = this.context.readFile(filePath);
492
- if (!content) {
493
- this.reExportCache.set(filePath, []);
494
- return [];
495
- }
496
- // Re-exports are a JS/TS-only construct, and what matters is the
497
- // BARREL file's own language — not the consuming reference's. A
498
- // `.svelte`/`.vue` consumer threads its own language down the
499
- // re-export chase, which would make extractReExports() bail on a
500
- // `.ts` index barrel and silently break the chain (#629). Re-key
501
- // the parse on the barrel's extension so the chase works no matter
502
- // what kind of file imports through it.
503
- const isJsFamily = /\.(?:d\.ts|[cm]?tsx?|[cm]?jsx?)$/i.test(filePath);
504
- const reExports = (0, import_resolver_1.extractReExports)(content, isJsFamily ? 'typescript' : language);
505
- this.reExportCache.set(filePath, reExports);
506
- return reExports;
507
- },
508
- getCppIncludeDirs: () => {
509
- return (0, import_resolver_1.loadCppIncludeDirs)(this.projectRoot);
510
- },
511
- };
512
- }
513
- /**
514
- * Resolve all unresolved references
515
- */
516
- resolveAll(unresolvedRefs, onProgress) {
517
- // Pre-load all nodes into memory for fast lookups
518
- this.warmCaches();
519
- const resolved = [];
520
- const unresolved = [];
521
- const byMethod = {};
522
- // Convert to our internal format, using denormalized fields when available
523
- const refs = unresolvedRefs.map((ref) => ({
524
- fromNodeId: ref.fromNodeId,
525
- referenceName: ref.referenceName,
526
- referenceKind: ref.referenceKind,
527
- line: ref.line,
528
- column: ref.column,
529
- filePath: ref.filePath || this.getFilePathFromNodeId(ref.fromNodeId),
530
- language: ref.language || this.getLanguageFromNodeId(ref.fromNodeId),
531
- }));
532
- const total = refs.length;
533
- let lastReportedPercent = -1;
534
- for (let i = 0; i < refs.length; i++) {
535
- const ref = refs[i]; // Array index is guaranteed to be in bounds
536
- const result = this.resolveOne(ref);
537
- if (result) {
538
- resolved.push(result);
539
- byMethod[result.resolvedBy] = (byMethod[result.resolvedBy] || 0) + 1;
540
- }
541
- else {
542
- unresolved.push(ref);
543
- }
544
- // Report progress every 1% to avoid too many updates
545
- if (onProgress) {
546
- const currentPercent = Math.floor((i / total) * 100);
547
- if (currentPercent > lastReportedPercent) {
548
- lastReportedPercent = currentPercent;
549
- onProgress(i + 1, total);
550
- }
551
- }
552
- }
553
- // Final progress report
554
- if (onProgress && total > 0) {
555
- onProgress(total, total);
556
- }
557
- return {
558
- resolved,
559
- unresolved,
560
- stats: {
561
- total: refs.length,
562
- resolved: resolved.length,
563
- unresolved: unresolved.length,
564
- byMethod,
565
- },
566
- };
567
- }
568
- /**
569
- * Check if a reference name has any possible match in the codebase.
570
- * Uses the pre-built knownNames set to skip expensive resolution
571
- * for names that definitely don't exist as symbols.
572
- */
573
- hasAnyPossibleMatch(name) {
574
- if (!this.knownNames)
575
- return true; // no pre-filter available
576
- // Direct name match
577
- if (this.knownNames.has(name))
578
- return true;
579
- // For qualified names like "obj.method" or "Class::method", check the parts
580
- const dotIdx = name.indexOf('.');
581
- if (dotIdx > 0) {
582
- const receiver = name.substring(0, dotIdx);
583
- const member = name.substring(dotIdx + 1);
584
- if (this.knownNames.has(receiver) || this.knownNames.has(member))
585
- return true;
586
- // Also check capitalized receiver (instance-method resolution)
587
- const capitalized = receiver.charAt(0).toUpperCase() + receiver.slice(1);
588
- if (this.knownNames.has(capitalized))
589
- return true;
590
- // JVM FQN: `com.example.foo.Bar` — the only useful segment is the
591
- // last one (`Bar`); the earlier check finds `example.foo.Bar` which
592
- // never matches a node name.
593
- const lastDot = name.lastIndexOf('.');
594
- if (lastDot > dotIdx) {
595
- const tail = name.substring(lastDot + 1);
596
- if (tail && this.knownNames.has(tail))
597
- return true;
598
- }
599
- }
600
- const colonIdx = name.indexOf('::');
601
- if (colonIdx > 0) {
602
- const receiver = name.substring(0, colonIdx);
603
- const member = name.substring(colonIdx + 2);
604
- if (this.knownNames.has(receiver) || this.knownNames.has(member))
605
- return true;
606
- // Multi-segment path `a::b::c` (a Rust/C++ module call like
607
- // `database::profiles::find`) — the only segment that names a symbol is
608
- // the last (`c`); `member` above is `b::c`, which never matches a node
609
- // name, so without this the pre-filter drops the ref before the Rust path
610
- // resolver ever sees it. Mirror the dotted-name leaf check above.
611
- const lastColon = name.lastIndexOf('::');
612
- if (lastColon > colonIdx) {
613
- const tail = name.substring(lastColon + 2);
614
- if (tail && this.knownNames.has(tail))
615
- return true;
616
- }
617
- }
618
- // For path-like references (e.g., "snippets/drawer-menu.liquid"), check the filename
619
- const slashIdx = name.lastIndexOf('/');
620
- if (slashIdx > 0) {
621
- const fileName = name.substring(slashIdx + 1);
622
- if (this.knownNames.has(fileName))
623
- return true;
624
- }
625
- return false;
626
- }
627
- /**
628
- * Does `ref.referenceName` match an import declared in its containing
629
- * file? Used as a pre-filter escape so re-export chain resolution
630
- * still gets a chance when the name has no project-wide declaration.
631
- */
632
- matchesAnyImport(ref) {
633
- const imports = this.context.getImportMappings(ref.filePath, ref.language);
634
- if (imports.length === 0)
635
- return false;
636
- for (const imp of imports) {
637
- if (imp.localName === ref.referenceName ||
638
- ref.referenceName.startsWith(imp.localName + '.')) {
639
- return true;
640
- }
641
- }
642
- return false;
643
- }
644
- /**
645
- * Resolve a single reference
646
- */
647
- resolveOne(ref) {
648
- // Skip built-in/external references
649
- if (this.isBuiltInOrExternal(ref)) {
650
- return null;
651
- }
652
- // Stdlib fast-path: JDK types (List / Date / Integer / java.util.Map / ...)
653
- // are virtually never defined in project source, but they fail the
654
- // generic fast-path below because every Java file declares
655
- // `import java.util.List;` and `matchesAnyImport` returns true. Short-
656
- // circuit them here, BEFORE the import escape — guarded by
657
- // `hasAnyPossibleMatch` so a project's own custom `List` class still
658
- // resolves normally. On a 10k-file Java monorepo this skips ~80k refs
659
- // that would otherwise walk the full resolver chain and fail.
660
- if ((0, stdlib_blocklist_1.isStdlibReference)(ref.referenceName) &&
661
- !this.hasAnyPossibleMatch(ref.referenceName)) {
662
- return null;
663
- }
664
- // Fast pre-filter: skip if no symbol with this name exists anywhere
665
- // AND the name doesn't match a local import. The import escape is
666
- // necessary because re-export rename chains (`import { login }
667
- // from './barrel'` where the barrel has `export { signIn as login }
668
- // from './auth'`) intentionally call a name that has no
669
- // declaration anywhere — only the renamed upstream symbol does.
670
- if (!this.hasAnyPossibleMatch(ref.referenceName) &&
671
- !this.matchesAnyImport(ref) &&
672
- !this.frameworks.some((f) => f.claimsReference?.(ref.referenceName))) {
673
- return null;
674
- }
675
- // Function-as-value refs (#756) get a dedicated, strictly-gated path:
676
- // import-based resolution first (an imported callback resolves through its
677
- // import, the most precise cross-file signal), then matchFunctionRef
678
- // (same-file first, unique-only cross-file, function/method targets only).
679
- // They never reach the framework or fuzzy strategies below.
680
- if (ref.referenceKind === 'function_ref') {
681
- // `this.<member>` values (TS/JS) resolve ONLY against the enclosing
682
- // class's own members — never a same-named symbol elsewhere.
683
- if (ref.referenceName.startsWith('this.')) {
684
- return this.gateLanguage(this.resolveThisMemberFnRef(ref), ref);
685
- }
686
- const viaImport = this.gateLanguage((0, import_resolver_1.resolveViaImport)(ref, this.context), ref);
687
- if (viaImport) {
688
- const target = this.queries.getNodeById(viaImport.targetNodeId);
689
- if (target && (target.kind === 'function' || target.kind === 'method')) {
690
- return viaImport;
691
- }
692
- }
693
- return this.gateLanguage((0, name_matcher_1.matchFunctionRef)(ref, this.context), ref);
694
- }
695
- // JVM FQN imports skip framework/name-matcher: `import com.example.Bar`
696
- // resolves directly through the qualifiedName index, which is unambiguous
697
- // even when several `Bar` classes exist in different packages.
698
- const jvmImport = (0, import_resolver_1.resolveJvmImport)(ref, this.context);
699
- if (jvmImport)
700
- return jvmImport;
701
- // Razor/Blazor: a markup or `@code` type ref resolves through the file's
702
- // `@using` namespaces (incl. folder `_Imports.razor`). This precisely
703
- // disambiguates a simple name that exists in several namespaces — e.g.
704
- // `CatalogBrand` resolving to `BlazorShared.Models::CatalogBrand` (the DTO,
705
- // which the `.razor` `@using`s) rather than the same-named domain entity.
706
- if (ref.language === 'razor') {
707
- const razorResult = this.resolveRazorUsing(ref);
708
- if (razorResult)
709
- return razorResult;
710
- }
711
- const candidates = [];
712
- // Strategy 1: Try framework-specific resolution. Cross-language bridges
713
- // are deliberately preserved (Drupal `routing.yml` → PHP controller, RN
714
- // JS → native `calls`) — `gateFrameworkLanguage` only drops a type/import
715
- // edge between two KNOWN families (see its doc), never a `calls` bridge or
716
- // a config↔code edge.
717
- for (const framework of this.frameworks) {
718
- const result = this.gateFrameworkLanguage(framework.resolve(ref, this.context), ref);
719
- if (result) {
720
- if (result.confidence >= 0.9)
721
- return result; // High confidence, return immediately
722
- candidates.push(result);
723
- }
724
- }
725
- // Strategy 2: Try import-based resolution
726
- const importResult = this.gateLanguage((0, import_resolver_1.resolveViaImport)(ref, this.context), ref);
727
- if (importResult) {
728
- if (importResult.confidence >= 0.9)
729
- return importResult;
730
- candidates.push(importResult);
731
- }
732
- // PHP include/require paths resolve to files via import resolution only.
733
- // If that didn't find the file, do NOT fall back to the symbol
734
- // name-matcher — it would mis-connect e.g. "inc/db.php" to an unrelated
735
- // db.php elsewhere in the tree (a wrong edge is worse than none, #660).
736
- if ((0, import_resolver_1.isPhpIncludePathRef)(ref)) {
737
- return candidates.length > 0
738
- ? candidates.reduce((best, curr) => curr.confidence > best.confidence ? curr : best)
739
- : null;
740
- }
741
- // Strategy 3: Try name matching
742
- const nameResult = this.gateLanguage((0, name_matcher_1.matchReference)(ref, this.context), ref);
743
- if (nameResult) {
744
- candidates.push(nameResult);
745
- }
746
- if (candidates.length === 0) {
747
- // Defer a chained static-factory/fluent call the first pass couldn't
748
- // resolve — its method may live on a supertype the receiver conforms to,
749
- // resolvable once implements/extends edges exist (the conformance pass).
750
- if (ref.referenceKind === 'calls' &&
751
- CHAIN_LANGUAGES.has(ref.language) &&
752
- CHAIN_SHAPE.test(ref.referenceName)) {
753
- this.deferredChainRefs.push(ref);
754
- }
755
- return null;
756
- }
757
- // Return highest confidence candidate
758
- return candidates.reduce((best, curr) => curr.confidence > best.confidence ? curr : best);
759
- }
760
- /**
761
- * Create edges from resolved references
762
- */
763
- createEdges(resolved) {
764
- return resolved.map((ref) => {
765
- // `function_ref` (#756) is internal-only: it persists as a `references`
766
- // edge (the registration site depends on the callback), distinguishable
767
- // by metadata.resolvedBy === 'function-ref'. callers/impact already
768
- // traverse `references`, so registration sites surface with no
769
- // graph-layer changes.
770
- let kind = ref.original.referenceKind === 'function_ref' ? 'references' : ref.original.referenceKind;
771
- // Promote "extends" to "implements" when a class/struct targets an interface
772
- if (kind === 'extends') {
773
- const targetNode = this.queries.getNodeById(ref.targetNodeId);
774
- if (targetNode && (targetNode.kind === 'interface' || targetNode.kind === 'protocol')) {
775
- const sourceNode = this.queries.getNodeById(ref.original.fromNodeId);
776
- if (sourceNode && sourceNode.kind !== 'interface' && sourceNode.kind !== 'protocol') {
777
- kind = 'implements';
778
- }
779
- }
780
- }
781
- // Promote "calls" to "instantiates" when the resolved target is a
782
- // class/struct. Languages without a `new` keyword (Python, Ruby)
783
- // express instantiation as `Foo()` — extraction can't tell that
784
- // apart from a function call without symbol info, but resolution
785
- // can: if `Foo` resolves to a class, the call IS an instantiation.
786
- if (kind === 'calls') {
787
- const targetNode = this.queries.getNodeById(ref.targetNodeId);
788
- if (targetNode && (targetNode.kind === 'class' || targetNode.kind === 'struct')) {
789
- kind = 'instantiates';
790
- }
791
- }
792
- return {
793
- source: ref.original.fromNodeId,
794
- target: ref.targetNodeId,
795
- kind,
796
- line: ref.original.line,
797
- column: ref.original.column,
798
- metadata: {
799
- confidence: ref.confidence,
800
- resolvedBy: ref.resolvedBy,
801
- // Uniform marker for function-as-value edges (#756), regardless of
802
- // which strategy resolved them (import vs matchFunctionRef) — lets
803
- // tooling label "callback registration" and lets validation diff
804
- // exactly the edges this feature added.
805
- ...(ref.original.referenceKind === 'function_ref' ? { fnRef: true } : {}),
806
- },
807
- };
808
- });
809
- }
810
- /**
811
- * Resolve and persist edges to database
812
- */
813
- resolveAndPersist(unresolvedRefs, onProgress) {
814
- const result = this.resolveAll(unresolvedRefs, onProgress);
815
- // Create edges from resolved references
816
- const edges = this.createEdges(result.resolved);
817
- // Insert edges into database
818
- if (edges.length > 0) {
819
- this.queries.insertEdges(edges);
820
- }
821
- // Clean up resolved refs from unresolved_refs table so metrics are accurate
822
- if (result.resolved.length > 0) {
823
- this.queries.deleteSpecificResolvedReferences(result.resolved.map((r) => ({
824
- fromNodeId: r.original.fromNodeId,
825
- referenceName: r.original.referenceName,
826
- referenceKind: r.original.referenceKind,
827
- })));
828
- }
829
- return result;
830
- }
831
- /**
832
- * Second resolution pass for chained static-factory / fluent calls whose
833
- * chained method is defined on a SUPERTYPE the receiver's type conforms to —
834
- * a protocol-extension / inherited / default-interface method (#750). The
835
- * first pass can't resolve these because `implements`/`extends` edges aren't
836
- * built yet; this runs AFTER edges are persisted, so `context.getSupertypes`
837
- * (and the conformance fallback in resolveMethodOnType) can walk them.
838
- *
839
- * Operates only on the leftover unresolved refs that have the `inner().method`
840
- * chain shape, for the dotted-chain languages — a small set — and is idempotent
841
- * (re-resolving an already-resolved ref is a no-op since it's been deleted).
842
- * Returns the number of newly-created edges.
843
- */
844
- resolveChainedCallsViaConformance() {
845
- const deferred = this.deferredChainRefs;
846
- this.deferredChainRefs = [];
847
- if (deferred.length === 0)
848
- return 0;
849
- // Read fresh edges (the main pass built the implements/extends edges after
850
- // these refs were deferred). matchDottedCallChain now resolves a method on a
851
- // supertype via context.getSupertypes -> resolveMethodOnType's conformance walk.
852
- this.clearCaches();
853
- const resolved = [];
854
- for (const ref of deferred) {
855
- // `::`-receiver languages (Rust) split on `::` (matchScopedCallChain);
856
- // dotted-receiver languages on `.` (matchDottedCallChain).
857
- const chainMatch = SCOPED_CHAIN_LANGUAGES.has(ref.language)
858
- ? (0, name_matcher_1.matchScopedCallChain)(ref, this.context)
859
- : (0, name_matcher_1.matchDottedCallChain)(ref, this.context);
860
- const match = this.gateLanguage(chainMatch, ref);
861
- if (match)
862
- resolved.push(match);
863
- }
864
- if (resolved.length === 0)
865
- return 0;
866
- const edges = this.createEdges(resolved);
867
- if (edges.length > 0) {
868
- this.queries.insertEdges(edges);
869
- this.clearCaches();
870
- }
871
- return edges.length;
872
- }
873
- /**
874
- * Resolve and persist in batches to keep memory bounded.
875
- * Processes unresolved references in chunks, persisting edges and cleaning
876
- * up resolved refs after each batch to avoid accumulating large arrays.
877
- */
878
- async resolveAndPersistBatched(onProgress, batchSize = 5000) {
879
- this.warmCaches();
880
- const total = this.queries.getUnresolvedReferencesCount();
881
- let processed = 0;
882
- const aggregateStats = {
883
- total: 0,
884
- resolved: 0,
885
- unresolved: 0,
886
- byMethod: {},
887
- };
888
- // Process in batches. We always read from offset 0 because resolved refs
889
- // are deleted after each batch, shifting the remaining rows forward.
890
- let prevRemaining = Number.POSITIVE_INFINITY;
891
- while (true) {
892
- const batch = this.queries.getUnresolvedReferencesBatch(0, batchSize);
893
- if (batch.length === 0)
894
- break;
895
- const result = this.resolveAll(batch);
896
- // Persist edges immediately
897
- const edges = this.createEdges(result.resolved);
898
- if (edges.length > 0) {
899
- this.queries.insertEdges(edges);
900
- }
901
- // Clean up resolved refs so they don't appear in the next batch
902
- if (result.resolved.length > 0) {
903
- this.queries.deleteSpecificResolvedReferences(result.resolved.map((r) => ({
904
- fromNodeId: r.original.fromNodeId,
905
- referenceName: r.original.referenceName,
906
- referenceKind: r.original.referenceKind,
907
- })));
908
- }
909
- // Delete unresolvable refs from this batch to avoid re-processing them
910
- if (result.unresolved.length > 0) {
911
- this.queries.deleteSpecificResolvedReferences(result.unresolved.map((r) => ({
912
- fromNodeId: r.fromNodeId,
913
- referenceName: r.referenceName,
914
- referenceKind: r.referenceKind,
915
- })));
916
- }
917
- // Aggregate stats
918
- aggregateStats.total += result.stats.total;
919
- aggregateStats.resolved += result.stats.resolved;
920
- aggregateStats.unresolved += result.stats.unresolved;
921
- for (const [method, count] of Object.entries(result.stats.byMethod)) {
922
- aggregateStats.byMethod[method] = (aggregateStats.byMethod[method] || 0) + count;
923
- }
924
- processed += batch.length;
925
- onProgress?.(processed, total);
926
- // Yield so progress UI can render between batches
927
- await new Promise(resolve => setImmediate(resolve));
928
- // If nothing was resolved or removed in this batch, we'd loop forever
929
- // on the same rows. Break to avoid infinite loop.
930
- if (result.resolved.length === 0 && result.unresolved.length === batch.length) {
931
- break;
932
- }
933
- // Non-progress guard (defense-in-depth). Because we re-read from offset 0
934
- // each pass, the unresolved_refs table MUST shrink every iteration — both
935
- // resolved and unresolved refs are deleted above. If it didn't shrink, a
936
- // resolver returned a match whose `original.referenceName` differs from the
937
- // stored row, so the keyed delete no-ops, and we'd re-read + re-resolve +
938
- // re-insert the same rows forever (the runaway that grew a 99-file repo to
939
- // 5M edges / 1.4 GB before the Go-fallback fix). Stop rather than grow the
940
- // graph without bound.
941
- const remaining = this.queries.getUnresolvedReferencesCount();
942
- if (remaining >= prevRemaining)
943
- break;
944
- prevRemaining = remaining;
945
- }
946
- // Dynamic-edge synthesis: now that all base `calls` edges are persisted,
947
- // synthesize observer/callback dispatch edges (dispatcher → registered
948
- // callbacks) that static parsing leaves out. Best-effort — never fail the
949
- // index on it. See docs/design/callback-edge-synthesis.md.
950
- try {
951
- aggregateStats.byMethod['callback-synthesis'] = (0, callback_synthesizer_1.synthesizeCallbackEdges)(this.queries, this.context);
952
- }
953
- catch {
954
- // synthesis is additive and optional; ignore failures
955
- }
956
- return {
957
- resolved: [],
958
- unresolved: [],
959
- stats: aggregateStats,
960
- };
961
- }
962
- /**
963
- * Get detected frameworks
964
- */
965
- getDetectedFrameworks() {
966
- return this.frameworks.map((f) => f.name);
967
- }
968
- /**
969
- * Check if reference is to a built-in or external symbol
970
- */
971
- isBuiltInOrExternal(ref) {
972
- const name = ref.referenceName;
973
- const isJsTs = ref.language === 'typescript' || ref.language === 'javascript'
974
- || ref.language === 'tsx' || ref.language === 'jsx';
975
- // JavaScript/TypeScript built-ins
976
- if (isJsTs && JS_BUILT_INS.has(name)) {
977
- return true;
978
- }
979
- // Common JS/TS library calls (console.log, Math.floor, JSON.parse)
980
- if (isJsTs && (name.startsWith('console.') || name.startsWith('Math.') || name.startsWith('JSON.'))) {
981
- return true;
982
- }
983
- // React hooks from React itself
984
- if (isJsTs && REACT_HOOKS.has(name)) {
985
- return true;
986
- }
987
- // Python built-ins (bare calls only — dotted calls like console.print are method calls)
988
- if (ref.language === 'python' && PYTHON_BUILT_INS.has(name)) {
989
- return true;
990
- }
991
- // Python built-in method calls (e.g., list.extend, dict.update)
992
- if (ref.language === 'python') {
993
- const dotIdx = name.indexOf('.');
994
- if (dotIdx > 0) {
995
- const receiver = name.substring(0, dotIdx);
996
- const method = name.substring(dotIdx + 1);
997
- // Filter calls on built-in types (list.append, dict.update, etc.)
998
- if (PYTHON_BUILT_IN_TYPES.has(receiver)) {
999
- return true;
1000
- }
1001
- // Filter built-in methods on non-class receivers
1002
- // (e.g., items.append where items is a local list variable)
1003
- // But allow if the capitalized receiver matches a known codebase class
1004
- if (PYTHON_BUILT_IN_METHODS.has(method)) {
1005
- const capitalized = receiver.charAt(0).toUpperCase() + receiver.slice(1);
1006
- if (!this.knownNames?.has(capitalized)) {
1007
- return true;
1008
- }
1009
- }
1010
- }
1011
- // A bare name colliding with a builtin method (index, get, update, count…)
1012
- // is only a builtin when NOTHING in the codebase declares it. A declared
1013
- // symbol with that exact name — e.g. a Flask/FastAPI view `def index()` or
1014
- // `def get()` — is a real reference target. Mirrors the knownNames guard on
1015
- // the dotted branch above; without it, every handler named after a builtin
1016
- // method silently loses its route→handler edge.
1017
- if (PYTHON_BUILT_IN_METHODS.has(name) && !this.knownNames?.has(name)) {
1018
- return true;
1019
- }
1020
- }
1021
- // Go standard library packages — refs like "fmt.Println", "http.ListenAndServe", etc.
1022
- if (ref.language === 'go') {
1023
- const dotIdx = name.indexOf('.');
1024
- if (dotIdx > 0) {
1025
- const pkg = name.substring(0, dotIdx);
1026
- if (GO_STDLIB_PACKAGES.has(pkg)) {
1027
- return true;
1028
- }
1029
- }
1030
- if (GO_BUILT_INS.has(name)) {
1031
- return true;
1032
- }
1033
- }
1034
- // Pascal/Delphi built-ins and standard library units
1035
- if (ref.language === 'pascal') {
1036
- if (PASCAL_UNIT_PREFIXES.some((p) => name.startsWith(p))) {
1037
- return true;
1038
- }
1039
- if (PASCAL_BUILT_INS.has(name)) {
1040
- return true;
1041
- }
1042
- }
1043
- // C/C++ standard library symbols (printf, malloc, std::vector, etc.).
1044
- // Names that collide with user-defined symbols are NOT filtered —
1045
- // C and C++ projects routinely shadow stdlib names (custom allocators
1046
- // define `malloc`/`free`, stream wrappers define `read`/`write`/`open`,
1047
- // containers define `move`/`swap`, logging libs wrap `printf`). Killing
1048
- // those resolutions makes the graph wrong, not cleaner. We only filter
1049
- // when there's no user node with this name — then name-matching would
1050
- // produce zero edges anyway and the filter just short-circuits work.
1051
- if (ref.language === 'c' || ref.language === 'cpp') {
1052
- // C++ std:: namespace prefix — safe to filter unconditionally,
1053
- // since `std::foo` is never a user-defined qualified name in
1054
- // tree-sitter output.
1055
- if (name.startsWith('std::'))
1056
- return true;
1057
- if (C_BUILT_INS.has(name) || CPP_BUILT_INS.has(name)) {
1058
- return !this.hasAnyPossibleMatch(name);
1059
- }
1060
- }
1061
- return false;
1062
- }
1063
- /**
1064
- * Get file path from node ID
1065
- */
1066
- getFilePathFromNodeId(nodeId) {
1067
- const node = this.queries.getNodeById(nodeId);
1068
- return node?.filePath || '';
1069
- }
1070
- /**
1071
- * Get language from node ID
1072
- */
1073
- getLanguageFromNodeId(nodeId) {
1074
- const node = this.queries.getNodeById(nodeId);
1075
- return node?.language || 'unknown';
1076
- }
1077
- /**
1078
- * Drop an import/name-strategy resolution that crosses a language family.
1079
- * Two regimes (mirrors `applyLanguageGate`'s candidate filter):
1080
- * - `references` (type usage): STRICT — a `Type.member` static read names a
1081
- * same-family type, never a coincidentally same-named symbol in another
1082
- * language. Drops any non-same-family target.
1083
- * - `imports` (import binding / `#include`): both-known — a C++ `#include
1084
- * "X.h"` must not resolve to a same-named ObjC header on another platform
1085
- * (basename collision), but a singleton-family / SFC language (`vue` →
1086
- * `.ts`) importing across is left alone.
1087
- * Applies to the import (strategy 2) + name-match (strategy 3) results.
1088
- */
1089
- /**
1090
- * Collect the `@using` namespaces in scope for a `.razor`/`.cshtml` file: its
1091
- * own `@using` directives plus every `_Imports.razor` from the file's folder up
1092
- * to the project root (Razor `_Imports` cascade). Cached per file.
1093
- */
1094
- getRazorUsings(filePath) {
1095
- const cached = this.razorUsingsCache.get(filePath);
1096
- if (cached)
1097
- return cached;
1098
- const usings = new Set();
1099
- const addFrom = (src) => {
1100
- if (!src)
1101
- return;
1102
- for (const m of src.matchAll(/^\s*@using\s+(?:static\s+)?([A-Za-z_][\w.]*)/gm))
1103
- usings.add(m[1]);
1104
- };
1105
- addFrom(this.context.readFile(filePath));
1106
- let dir = filePath.includes('/') ? filePath.slice(0, filePath.lastIndexOf('/')) : '';
1107
- // Walk up to the project root, reading each level's _Imports.razor.
1108
- for (;;) {
1109
- addFrom(this.context.readFile(dir ? `${dir}/_Imports.razor` : '_Imports.razor'));
1110
- if (!dir)
1111
- break;
1112
- const slash = dir.lastIndexOf('/');
1113
- dir = slash >= 0 ? dir.slice(0, slash) : '';
1114
- }
1115
- const arr = [...usings];
1116
- this.razorUsingsCache.set(filePath, arr);
1117
- return arr;
1118
- }
1119
- /**
1120
- * Resolve a Razor/Blazor simple type ref through the file's `@using`
1121
- * namespaces: `CatalogBrand` + `@using BlazorShared.Models` → the node whose
1122
- * qualified name is `BlazorShared.Models::CatalogBrand`. Only resolves when the
1123
- * `@using` set yields exactly ONE type (otherwise it stays ambiguous and falls
1124
- * through to name-matching).
1125
- */
1126
- resolveRazorUsing(ref) {
1127
- if (ref.referenceName.includes('.') || ref.referenceName.includes('::'))
1128
- return null;
1129
- const usings = this.getRazorUsings(ref.filePath);
1130
- if (usings.length === 0)
1131
- return null;
1132
- const found = new Map();
1133
- for (const ns of usings) {
1134
- for (const cand of this.context.getNodesByQualifiedName(`${ns}::${ref.referenceName}`)) {
1135
- found.set(cand.id, cand);
1136
- }
1137
- }
1138
- if (found.size !== 1)
1139
- return null;
1140
- const target = found.values().next().value;
1141
- return { original: ref, targetNodeId: target.id, confidence: 0.9, resolvedBy: 'import' };
1142
- }
1143
- /**
1144
- * Resolve a `this.<member>` function-as-value reference (#756/#808) to the
1145
- * ENCLOSING CLASS's own member — never a same-named symbol elsewhere. The
1146
- * registration idiom (`btn.on('click', this.handleClick)`) names a member
1147
- * of the class being defined, so the only valid target shares the
1148
- * from-symbol's qualified-name scope. Function/method targets only — a
1149
- * property (a data field, post-#808 classification) yields no edge — same
1150
- * file required, no fallback of any kind.
1151
- */
1152
- resolveThisMemberFnRef(ref) {
1153
- const member = ref.referenceName.slice('this.'.length);
1154
- if (!member)
1155
- return null;
1156
- const fromNode = this.queries.getNodeById(ref.fromNodeId);
1157
- if (!fromNode)
1158
- return null;
1159
- // A hook declared at class-body level (Ruby `before_action :authenticate`)
1160
- // attributes to the CLASS node itself — its qualified name IS the scope.
1161
- // For members, strip the member segment.
1162
- let classPrefix;
1163
- if (SUPERTYPE_BEARING_KINDS.has(fromNode.kind) || fromNode.kind === 'module') {
1164
- classPrefix = fromNode.qualifiedName;
1165
- }
1166
- else {
1167
- const sep = fromNode.qualifiedName.lastIndexOf('::');
1168
- if (sep <= 0)
1169
- return null; // not inside a class scope
1170
- classPrefix = fromNode.qualifiedName.slice(0, sep);
1171
- }
1172
- const candidates = this.context
1173
- .getNodesByQualifiedName(`${classPrefix}::${member}`)
1174
- .filter((n) => (n.kind === 'function' || n.kind === 'method') &&
1175
- n.filePath === ref.filePath &&
1176
- n.id !== ref.fromNodeId);
1177
- if (candidates.length === 0) {
1178
- // Not on the class itself — possibly INHERITED. implements/extends
1179
- // edges don't exist yet in this pass, so retry in the supertype pass
1180
- // (resolveDeferredThisMemberRefs) instead of giving up.
1181
- this.deferredThisMemberRefs.push(ref);
1182
- return null;
1183
- }
1184
- const target = candidates.reduce((a, b) => (a.startLine <= b.startLine ? a : b));
1185
- return {
1186
- original: ref,
1187
- targetNodeId: target.id,
1188
- confidence: 0.95,
1189
- resolvedBy: 'function-ref',
1190
- };
1191
- }
1192
- /**
1193
- * Second pass for `this.<member>` refs whose member wasn't on the enclosing
1194
- * class itself (#808): once implements/extends edges exist, walk the
1195
- * class's supertypes (transitively, depth-capped) and resolve the member on
1196
- * the nearest one that declares it — `this.handleSubmit` registered in a
1197
- * subclass resolves to `FormBase::handleSubmit`. Validated targets only
1198
- * (function/method kind, same language family); no match → no edge.
1199
- * Mirrors resolveChainedCallsViaConformance's lifecycle. Returns the number
1200
- * of newly-created edges.
1201
- */
1202
- resolveDeferredThisMemberRefs() {
1203
- const deferred = this.deferredThisMemberRefs;
1204
- this.deferredThisMemberRefs = [];
1205
- if (deferred.length === 0)
1206
- return 0;
1207
- this.clearCaches();
1208
- const resolved = [];
1209
- for (const ref of deferred) {
1210
- const member = ref.referenceName.slice('this.'.length);
1211
- const fromNode = this.queries.getNodeById(ref.fromNodeId);
1212
- if (!fromNode || !member)
1213
- continue;
1214
- // Class-body-level hooks (Ruby) attribute to the CLASS node itself.
1215
- let className;
1216
- if (SUPERTYPE_BEARING_KINDS.has(fromNode.kind) || fromNode.kind === 'module') {
1217
- className = fromNode.name;
1218
- }
1219
- else {
1220
- const sep = fromNode.qualifiedName.lastIndexOf('::');
1221
- if (sep <= 0)
1222
- continue;
1223
- const classPrefix = fromNode.qualifiedName.slice(0, sep);
1224
- className = classPrefix.includes('::')
1225
- ? classPrefix.slice(classPrefix.lastIndexOf('::') + 2)
1226
- : classPrefix;
1227
- }
1228
- // NODE-anchored BFS up the supertype graph: start from the class node
1229
- // in the ref's own file (never a same-named class elsewhere — rails has
1230
- // a dozen `Engine`s), follow implements/extends EDGES to supertype
1231
- // NODES, and look members up through `contains` edges. No name-based
1232
- // unions anywhere — a name-keyed getSupertypes('Engine') merged every
1233
- // Engine's parents and produced a cross-class wrong edge on rails.
1234
- let frontierNodes = this.context
1235
- .getNodesByName(className)
1236
- .filter((n) => SUPERTYPE_BEARING_KINDS.has(n.kind) &&
1237
- n.filePath === ref.filePath);
1238
- if (frontierNodes.length === 0) {
1239
- // The class itself may be declared in another file (partial/reopened
1240
- // classes); fall back to same-family nodes of that name.
1241
- frontierNodes = this.context
1242
- .getNodesByName(className)
1243
- .filter((n) => SUPERTYPE_BEARING_KINDS.has(n.kind) &&
1244
- (0, name_matcher_1.sameLanguageFamily)(n.language, ref.language));
1245
- }
1246
- const seenNodes = new Set(frontierNodes.map((n) => n.id));
1247
- let target = null;
1248
- for (let depth = 0; depth < 5 && frontierNodes.length > 0 && !target; depth++) {
1249
- const next = [];
1250
- for (const typeNode of frontierNodes) {
1251
- for (const edge of this.queries.getOutgoingEdges(typeNode.id, ['implements', 'extends'])) {
1252
- const superNode = this.queries.getNodeById(edge.target);
1253
- if (!superNode || seenNodes.has(superNode.id))
1254
- continue;
1255
- seenNodes.add(superNode.id);
1256
- if (!SUPERTYPE_BEARING_KINDS.has(superNode.kind))
1257
- continue;
1258
- // Member lookup anchored on the supertype's contains edges.
1259
- for (const c of this.queries.getOutgoingEdges(superNode.id, ['contains'])) {
1260
- const m = this.queries.getNodeById(c.target);
1261
- if (m &&
1262
- m.name === member &&
1263
- (m.kind === 'function' || m.kind === 'method') &&
1264
- (0, name_matcher_1.sameLanguageFamily)(m.language, ref.language)) {
1265
- target = m;
1266
- break;
1267
- }
1268
- }
1269
- if (target)
1270
- break;
1271
- next.push(superNode);
1272
- }
1273
- if (target)
1274
- break;
1275
- }
1276
- frontierNodes = next;
1277
- }
1278
- if (target) {
1279
- resolved.push({
1280
- original: ref,
1281
- targetNodeId: target.id,
1282
- confidence: 0.85,
1283
- resolvedBy: 'function-ref',
1284
- });
1285
- }
1286
- }
1287
- if (resolved.length === 0)
1288
- return 0;
1289
- const edges = this.createEdges(resolved);
1290
- if (edges.length > 0) {
1291
- this.queries.insertEdges(edges);
1292
- this.clearCaches();
1293
- }
1294
- return edges.length;
1295
- }
1296
- gateLanguage(result, ref) {
1297
- if (!result)
1298
- return result;
1299
- const tgt = this.getLanguageFromNodeId(result.targetNodeId);
1300
- if (!tgt || !ref.language)
1301
- return result;
1302
- if ((ref.referenceKind === 'references' || ref.referenceKind === 'function_ref') && !(0, name_matcher_1.sameLanguageFamily)(tgt, ref.language))
1303
- return null;
1304
- if (ref.referenceKind === 'imports' && (0, name_matcher_1.crossesKnownFamily)(tgt, ref.language))
1305
- return null;
1306
- return result;
1307
- }
1308
- /**
1309
- * Drop a FRAMEWORK-strategy resolution that crosses two *known* language
1310
- * families for a type-usage (`references`) or import-binding (`imports`)
1311
- * edge. The framework strategy is intentionally ungated for cross-language
1312
- * bridges, but those legitimate bridges are either `calls` edges (RN/Expo
1313
- * JS → native) or config↔code edges whose config side (`yaml`/`blade`/…) is
1314
- * not a known programming-language family. A `references`/`imports` edge
1315
- * between two *known* families is always a coincidental name collision — the
1316
- * React/Svelte/Vue PascalCase component resolvers name-match `getNodesByName`
1317
- * without a language check, so a TS `<TestRunner>` ref happily matched a
1318
- * Kotlin `class TestRunner`. Gating only the both-known-cross-family case
1319
- * lets config bridges and `calls` bridges through untouched.
1320
- */
1321
- gateFrameworkLanguage(result, ref) {
1322
- if (!result)
1323
- return result;
1324
- if (ref.referenceKind !== 'references' && ref.referenceKind !== 'imports')
1325
- return result;
1326
- const tgt = this.getLanguageFromNodeId(result.targetNodeId);
1327
- if (tgt && ref.language && (0, name_matcher_1.crossesKnownFamily)(tgt, ref.language))
1328
- return null;
1329
- return result;
1330
- }
1331
- }
1332
- exports.ReferenceResolver = ReferenceResolver;
1333
- /**
1334
- * Create a reference resolver instance
1335
- */
1336
- function createResolver(projectRoot, queries) {
1337
- const resolver = new ReferenceResolver(projectRoot, queries);
1338
- resolver.initialize();
1339
- return resolver;
1340
- }
1341
- //# sourceMappingURL=index.js.map