@opensip-cli/graph 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (836) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +8 -0
  3. package/README.md +31 -0
  4. package/dist/__tests__/baseline-plane.test.d.ts +11 -0
  5. package/dist/__tests__/baseline-plane.test.d.ts.map +1 -0
  6. package/dist/__tests__/baseline-plane.test.js +60 -0
  7. package/dist/__tests__/baseline-plane.test.js.map +1 -0
  8. package/dist/__tests__/cache/engine-version.test.d.ts +12 -0
  9. package/dist/__tests__/cache/engine-version.test.d.ts.map +1 -0
  10. package/dist/__tests__/cache/engine-version.test.js +79 -0
  11. package/dist/__tests__/cache/engine-version.test.js.map +1 -0
  12. package/dist/__tests__/cache/invalidate.test.d.ts +9 -0
  13. package/dist/__tests__/cache/invalidate.test.d.ts.map +1 -0
  14. package/dist/__tests__/cache/invalidate.test.js +228 -0
  15. package/dist/__tests__/cache/invalidate.test.js.map +1 -0
  16. package/dist/__tests__/cli/contribution-from-signals.test.d.ts +17 -0
  17. package/dist/__tests__/cli/contribution-from-signals.test.d.ts.map +1 -0
  18. package/dist/__tests__/cli/contribution-from-signals.test.js +89 -0
  19. package/dist/__tests__/cli/contribution-from-signals.test.js.map +1 -0
  20. package/dist/__tests__/cli/detect.test.d.ts +2 -0
  21. package/dist/__tests__/cli/detect.test.d.ts.map +1 -0
  22. package/dist/__tests__/cli/detect.test.js +96 -0
  23. package/dist/__tests__/cli/detect.test.js.map +1 -0
  24. package/dist/__tests__/cli/graph-config.test.d.ts +9 -0
  25. package/dist/__tests__/cli/graph-config.test.d.ts.map +1 -0
  26. package/dist/__tests__/cli/graph-config.test.js +113 -0
  27. package/dist/__tests__/cli/graph-config.test.js.map +1 -0
  28. package/dist/__tests__/cli/graph-execute.test.d.ts +9 -0
  29. package/dist/__tests__/cli/graph-execute.test.d.ts.map +1 -0
  30. package/dist/__tests__/cli/graph-execute.test.js +434 -0
  31. package/dist/__tests__/cli/graph-execute.test.js.map +1 -0
  32. package/dist/__tests__/cli/graph.test.d.ts +12 -0
  33. package/dist/__tests__/cli/graph.test.d.ts.map +1 -0
  34. package/dist/__tests__/cli/graph.test.js +589 -0
  35. package/dist/__tests__/cli/graph.test.js.map +1 -0
  36. package/dist/__tests__/cli/heap-preflight.test.d.ts +11 -0
  37. package/dist/__tests__/cli/heap-preflight.test.d.ts.map +1 -0
  38. package/dist/__tests__/cli/heap-preflight.test.js +150 -0
  39. package/dist/__tests__/cli/heap-preflight.test.js.map +1 -0
  40. package/dist/__tests__/cli/language-mismatch.test.d.ts +10 -0
  41. package/dist/__tests__/cli/language-mismatch.test.d.ts.map +1 -0
  42. package/dist/__tests__/cli/language-mismatch.test.js +155 -0
  43. package/dist/__tests__/cli/language-mismatch.test.js.map +1 -0
  44. package/dist/__tests__/cli/lookup.test.d.ts +7 -0
  45. package/dist/__tests__/cli/lookup.test.d.ts.map +1 -0
  46. package/dist/__tests__/cli/lookup.test.js +104 -0
  47. package/dist/__tests__/cli/lookup.test.js.map +1 -0
  48. package/dist/__tests__/cli/orchestrate.test.d.ts +12 -0
  49. package/dist/__tests__/cli/orchestrate.test.d.ts.map +1 -0
  50. package/dist/__tests__/cli/orchestrate.test.js +315 -0
  51. package/dist/__tests__/cli/orchestrate.test.js.map +1 -0
  52. package/dist/__tests__/cli/positional-paths.test.d.ts +5 -0
  53. package/dist/__tests__/cli/positional-paths.test.d.ts.map +1 -0
  54. package/dist/__tests__/cli/positional-paths.test.js +87 -0
  55. package/dist/__tests__/cli/positional-paths.test.js.map +1 -0
  56. package/dist/__tests__/cli/pressure-monitor.test.d.ts +11 -0
  57. package/dist/__tests__/cli/pressure-monitor.test.d.ts.map +1 -0
  58. package/dist/__tests__/cli/pressure-monitor.test.js +94 -0
  59. package/dist/__tests__/cli/pressure-monitor.test.js.map +1 -0
  60. package/dist/__tests__/cli/sarif-export.test.d.ts +8 -0
  61. package/dist/__tests__/cli/sarif-export.test.d.ts.map +1 -0
  62. package/dist/__tests__/cli/sarif-export.test.js +94 -0
  63. package/dist/__tests__/cli/sarif-export.test.js.map +1 -0
  64. package/dist/__tests__/cli/session-contract.test.d.ts +17 -0
  65. package/dist/__tests__/cli/session-contract.test.d.ts.map +1 -0
  66. package/dist/__tests__/cli/session-contract.test.js +225 -0
  67. package/dist/__tests__/cli/session-contract.test.js.map +1 -0
  68. package/dist/__tests__/cli/symbol-index.test.d.ts +7 -0
  69. package/dist/__tests__/cli/symbol-index.test.d.ts.map +1 -0
  70. package/dist/__tests__/cli/symbol-index.test.js +117 -0
  71. package/dist/__tests__/cli/symbol-index.test.js.map +1 -0
  72. package/dist/__tests__/cli/tool-show-mode.test.d.ts +10 -0
  73. package/dist/__tests__/cli/tool-show-mode.test.d.ts.map +1 -0
  74. package/dist/__tests__/cli/tool-show-mode.test.js +128 -0
  75. package/dist/__tests__/cli/tool-show-mode.test.js.map +1 -0
  76. package/dist/__tests__/cli/workspace-runner-polyglot.test.d.ts +10 -0
  77. package/dist/__tests__/cli/workspace-runner-polyglot.test.d.ts.map +1 -0
  78. package/dist/__tests__/cli/workspace-runner-polyglot.test.js +120 -0
  79. package/dist/__tests__/cli/workspace-runner-polyglot.test.js.map +1 -0
  80. package/dist/__tests__/graph-catalog-drift.test.d.ts +24 -0
  81. package/dist/__tests__/graph-catalog-drift.test.d.ts.map +1 -0
  82. package/dist/__tests__/graph-catalog-drift.test.js +34 -0
  83. package/dist/__tests__/graph-catalog-drift.test.js.map +1 -0
  84. package/dist/__tests__/internal-surface.test.d.ts +17 -0
  85. package/dist/__tests__/internal-surface.test.d.ts.map +1 -0
  86. package/dist/__tests__/internal-surface.test.js +45 -0
  87. package/dist/__tests__/internal-surface.test.js.map +1 -0
  88. package/dist/__tests__/lang-adapter/body-digest.test.d.ts +13 -0
  89. package/dist/__tests__/lang-adapter/body-digest.test.d.ts.map +1 -0
  90. package/dist/__tests__/lang-adapter/body-digest.test.js +51 -0
  91. package/dist/__tests__/lang-adapter/body-digest.test.js.map +1 -0
  92. package/dist/__tests__/lang-adapter/edge-helpers.test.d.ts +12 -0
  93. package/dist/__tests__/lang-adapter/edge-helpers.test.d.ts.map +1 -0
  94. package/dist/__tests__/lang-adapter/edge-helpers.test.js +147 -0
  95. package/dist/__tests__/lang-adapter/edge-helpers.test.js.map +1 -0
  96. package/dist/__tests__/lang-adapter/registry.test.d.ts +9 -0
  97. package/dist/__tests__/lang-adapter/registry.test.d.ts.map +1 -0
  98. package/dist/__tests__/lang-adapter/registry.test.js +228 -0
  99. package/dist/__tests__/lang-adapter/registry.test.js.map +1 -0
  100. package/dist/__tests__/persistence/catalog-repo.test.d.ts +2 -0
  101. package/dist/__tests__/persistence/catalog-repo.test.d.ts.map +1 -0
  102. package/dist/__tests__/persistence/catalog-repo.test.js +188 -0
  103. package/dist/__tests__/persistence/catalog-repo.test.js.map +1 -0
  104. package/dist/__tests__/persistence/session-payload.test.d.ts +2 -0
  105. package/dist/__tests__/persistence/session-payload.test.d.ts.map +1 -0
  106. package/dist/__tests__/persistence/session-payload.test.js +81 -0
  107. package/dist/__tests__/persistence/session-payload.test.js.map +1 -0
  108. package/dist/__tests__/persistence/session-replay.test.d.ts +10 -0
  109. package/dist/__tests__/persistence/session-replay.test.d.ts.map +1 -0
  110. package/dist/__tests__/persistence/session-replay.test.js +196 -0
  111. package/dist/__tests__/persistence/session-replay.test.js.map +1 -0
  112. package/dist/__tests__/public-api.test.d.ts +19 -0
  113. package/dist/__tests__/public-api.test.d.ts.map +1 -0
  114. package/dist/__tests__/public-api.test.js +96 -0
  115. package/dist/__tests__/public-api.test.js.map +1 -0
  116. package/dist/__tests__/render/catalog-json-types.test.d.ts +10 -0
  117. package/dist/__tests__/render/catalog-json-types.test.d.ts.map +1 -0
  118. package/dist/__tests__/render/catalog-json-types.test.js +121 -0
  119. package/dist/__tests__/render/catalog-json-types.test.js.map +1 -0
  120. package/dist/__tests__/render/catalog-json.test.d.ts +19 -0
  121. package/dist/__tests__/render/catalog-json.test.d.ts.map +1 -0
  122. package/dist/__tests__/render/catalog-json.test.js +435 -0
  123. package/dist/__tests__/render/catalog-json.test.js.map +1 -0
  124. package/dist/__tests__/render/opensip-id-derivation.test.d.ts +21 -0
  125. package/dist/__tests__/render/opensip-id-derivation.test.d.ts.map +1 -0
  126. package/dist/__tests__/render/opensip-id-derivation.test.js +159 -0
  127. package/dist/__tests__/render/opensip-id-derivation.test.js.map +1 -0
  128. package/dist/__tests__/render/rule-id-mapping.test.d.ts +13 -0
  129. package/dist/__tests__/render/rule-id-mapping.test.d.ts.map +1 -0
  130. package/dist/__tests__/render/rule-id-mapping.test.js +50 -0
  131. package/dist/__tests__/render/rule-id-mapping.test.js.map +1 -0
  132. package/dist/__tests__/render/sarif-opensip.test.d.ts +20 -0
  133. package/dist/__tests__/render/sarif-opensip.test.d.ts.map +1 -0
  134. package/dist/__tests__/render/sarif-opensip.test.js +235 -0
  135. package/dist/__tests__/render/sarif-opensip.test.js.map +1 -0
  136. package/dist/__tests__/resolution-mode.test.d.ts +10 -0
  137. package/dist/__tests__/resolution-mode.test.d.ts.map +1 -0
  138. package/dist/__tests__/resolution-mode.test.js +96 -0
  139. package/dist/__tests__/resolution-mode.test.js.map +1 -0
  140. package/dist/__tests__/resolve-callee.test.d.ts +2 -0
  141. package/dist/__tests__/resolve-callee.test.d.ts.map +1 -0
  142. package/dist/__tests__/resolve-callee.test.js +119 -0
  143. package/dist/__tests__/resolve-callee.test.js.map +1 -0
  144. package/dist/__tests__/rules/_entry-points.test.d.ts +8 -0
  145. package/dist/__tests__/rules/_entry-points.test.d.ts.map +1 -0
  146. package/dist/__tests__/rules/_entry-points.test.js +74 -0
  147. package/dist/__tests__/rules/_entry-points.test.js.map +1 -0
  148. package/dist/__tests__/rules/_helpers.d.ts +18 -0
  149. package/dist/__tests__/rules/_helpers.d.ts.map +1 -0
  150. package/dist/__tests__/rules/_helpers.js +72 -0
  151. package/dist/__tests__/rules/_helpers.js.map +1 -0
  152. package/dist/__tests__/rules/always-throws-branch.test.d.ts +9 -0
  153. package/dist/__tests__/rules/always-throws-branch.test.d.ts.map +1 -0
  154. package/dist/__tests__/rules/always-throws-branch.test.js +113 -0
  155. package/dist/__tests__/rules/always-throws-branch.test.js.map +1 -0
  156. package/dist/__tests__/rules/cycle-and-coupling.test.d.ts +13 -0
  157. package/dist/__tests__/rules/cycle-and-coupling.test.d.ts.map +1 -0
  158. package/dist/__tests__/rules/cycle-and-coupling.test.js +224 -0
  159. package/dist/__tests__/rules/cycle-and-coupling.test.js.map +1 -0
  160. package/dist/__tests__/rules/duplicated-function-body-config.test.d.ts +8 -0
  161. package/dist/__tests__/rules/duplicated-function-body-config.test.d.ts.map +1 -0
  162. package/dist/__tests__/rules/duplicated-function-body-config.test.js +132 -0
  163. package/dist/__tests__/rules/duplicated-function-body-config.test.js.map +1 -0
  164. package/dist/__tests__/rules/duplicated-function-body-cross-package.test.d.ts +10 -0
  165. package/dist/__tests__/rules/duplicated-function-body-cross-package.test.d.ts.map +1 -0
  166. package/dist/__tests__/rules/duplicated-function-body-cross-package.test.js +274 -0
  167. package/dist/__tests__/rules/duplicated-function-body-cross-package.test.js.map +1 -0
  168. package/dist/__tests__/rules/feature-column-parity.test.d.ts +11 -0
  169. package/dist/__tests__/rules/feature-column-parity.test.d.ts.map +1 -0
  170. package/dist/__tests__/rules/feature-column-parity.test.js +169 -0
  171. package/dist/__tests__/rules/feature-column-parity.test.js.map +1 -0
  172. package/dist/__tests__/rules/high-blast-untested.test.d.ts +13 -0
  173. package/dist/__tests__/rules/high-blast-untested.test.d.ts.map +1 -0
  174. package/dist/__tests__/rules/high-blast-untested.test.js +108 -0
  175. package/dist/__tests__/rules/high-blast-untested.test.js.map +1 -0
  176. package/dist/__tests__/rules/large-function.test.d.ts +11 -0
  177. package/dist/__tests__/rules/large-function.test.d.ts.map +1 -0
  178. package/dist/__tests__/rules/large-function.test.js +105 -0
  179. package/dist/__tests__/rules/large-function.test.js.map +1 -0
  180. package/dist/__tests__/rules/no-side-effect-path.test.d.ts +10 -0
  181. package/dist/__tests__/rules/no-side-effect-path.test.d.ts.map +1 -0
  182. package/dist/__tests__/rules/no-side-effect-path.test.js +301 -0
  183. package/dist/__tests__/rules/no-side-effect-path.test.js.map +1 -0
  184. package/dist/__tests__/rules/orphan-subtree-config.test.d.ts +8 -0
  185. package/dist/__tests__/rules/orphan-subtree-config.test.d.ts.map +1 -0
  186. package/dist/__tests__/rules/orphan-subtree-config.test.js +176 -0
  187. package/dist/__tests__/rules/orphan-subtree-config.test.js.map +1 -0
  188. package/dist/__tests__/rules/registry.test.d.ts +11 -0
  189. package/dist/__tests__/rules/registry.test.d.ts.map +1 -0
  190. package/dist/__tests__/rules/registry.test.js +50 -0
  191. package/dist/__tests__/rules/registry.test.js.map +1 -0
  192. package/dist/__tests__/rules/severity-override.test.d.ts +11 -0
  193. package/dist/__tests__/rules/severity-override.test.d.ts.map +1 -0
  194. package/dist/__tests__/rules/severity-override.test.js +67 -0
  195. package/dist/__tests__/rules/severity-override.test.js.map +1 -0
  196. package/dist/__tests__/rules/test-only-reachable.test.d.ts +9 -0
  197. package/dist/__tests__/rules/test-only-reachable.test.d.ts.map +1 -0
  198. package/dist/__tests__/rules/test-only-reachable.test.js +142 -0
  199. package/dist/__tests__/rules/test-only-reachable.test.js.map +1 -0
  200. package/dist/__tests__/rules/wide-function.test.d.ts +9 -0
  201. package/dist/__tests__/rules/wide-function.test.d.ts.map +1 -0
  202. package/dist/__tests__/rules/wide-function.test.js +64 -0
  203. package/dist/__tests__/rules/wide-function.test.js.map +1 -0
  204. package/dist/__tests__/test-utils/with-graph-scope.d.ts +14 -0
  205. package/dist/__tests__/test-utils/with-graph-scope.d.ts.map +1 -0
  206. package/dist/__tests__/test-utils/with-graph-scope.js +26 -0
  207. package/dist/__tests__/test-utils/with-graph-scope.js.map +1 -0
  208. package/dist/__tests__/tool-branches.test.d.ts +18 -0
  209. package/dist/__tests__/tool-branches.test.d.ts.map +1 -0
  210. package/dist/__tests__/tool-branches.test.js +262 -0
  211. package/dist/__tests__/tool-branches.test.js.map +1 -0
  212. package/dist/__tests__/tool-register.test.d.ts +16 -0
  213. package/dist/__tests__/tool-register.test.d.ts.map +1 -0
  214. package/dist/__tests__/tool-register.test.js +419 -0
  215. package/dist/__tests__/tool-register.test.js.map +1 -0
  216. package/dist/__tests__/tool.test.d.ts +18 -0
  217. package/dist/__tests__/tool.test.d.ts.map +1 -0
  218. package/dist/__tests__/tool.test.js +65 -0
  219. package/dist/__tests__/tool.test.js.map +1 -0
  220. package/dist/baseline-strategy.d.ts +28 -0
  221. package/dist/baseline-strategy.d.ts.map +1 -0
  222. package/dist/baseline-strategy.js +27 -0
  223. package/dist/baseline-strategy.js.map +1 -0
  224. package/dist/cache/engine-version.d.ts +69 -0
  225. package/dist/cache/engine-version.d.ts.map +1 -0
  226. package/dist/cache/engine-version.js +60 -0
  227. package/dist/cache/engine-version.js.map +1 -0
  228. package/dist/cache/invalidate.d.ts +60 -0
  229. package/dist/cache/invalidate.d.ts.map +1 -0
  230. package/dist/cache/invalidate.js +120 -0
  231. package/dist/cache/invalidate.js.map +1 -0
  232. package/dist/cli/__tests__/build-envelope.test.d.ts +8 -0
  233. package/dist/cli/__tests__/build-envelope.test.d.ts.map +1 -0
  234. package/dist/cli/__tests__/build-envelope.test.js +70 -0
  235. package/dist/cli/__tests__/build-envelope.test.js.map +1 -0
  236. package/dist/cli/__tests__/dispatch-envelope.test.d.ts +15 -0
  237. package/dist/cli/__tests__/dispatch-envelope.test.d.ts.map +1 -0
  238. package/dist/cli/__tests__/dispatch-envelope.test.js +73 -0
  239. package/dist/cli/__tests__/dispatch-envelope.test.js.map +1 -0
  240. package/dist/cli/__tests__/dispatch-suppression-root.test.d.ts +18 -0
  241. package/dist/cli/__tests__/dispatch-suppression-root.test.d.ts.map +1 -0
  242. package/dist/cli/__tests__/dispatch-suppression-root.test.js +91 -0
  243. package/dist/cli/__tests__/dispatch-suppression-root.test.js.map +1 -0
  244. package/dist/cli/__tests__/graph-config-schema.test.d.ts +7 -0
  245. package/dist/cli/__tests__/graph-config-schema.test.d.ts.map +1 -0
  246. package/dist/cli/__tests__/graph-config-schema.test.js +60 -0
  247. package/dist/cli/__tests__/graph-config-schema.test.js.map +1 -0
  248. package/dist/cli/__tests__/graph-gate-mode.test.d.ts +15 -0
  249. package/dist/cli/__tests__/graph-gate-mode.test.d.ts.map +1 -0
  250. package/dist/cli/__tests__/graph-gate-mode.test.js +99 -0
  251. package/dist/cli/__tests__/graph-gate-mode.test.js.map +1 -0
  252. package/dist/cli/__tests__/graph-recipes.test.d.ts +7 -0
  253. package/dist/cli/__tests__/graph-recipes.test.d.ts.map +1 -0
  254. package/dist/cli/__tests__/graph-recipes.test.js +24 -0
  255. package/dist/cli/__tests__/graph-recipes.test.js.map +1 -0
  256. package/dist/cli/__tests__/graph-report.test.d.ts +7 -0
  257. package/dist/cli/__tests__/graph-report.test.d.ts.map +1 -0
  258. package/dist/cli/__tests__/graph-report.test.js +138 -0
  259. package/dist/cli/__tests__/graph-report.test.js.map +1 -0
  260. package/dist/cli/__tests__/graph-tracer.test.d.ts +11 -0
  261. package/dist/cli/__tests__/graph-tracer.test.d.ts.map +1 -0
  262. package/dist/cli/__tests__/graph-tracer.test.js +41 -0
  263. package/dist/cli/__tests__/graph-tracer.test.js.map +1 -0
  264. package/dist/cli/__tests__/graph-worker.test.d.ts +13 -0
  265. package/dist/cli/__tests__/graph-worker.test.d.ts.map +1 -0
  266. package/dist/cli/__tests__/graph-worker.test.js +127 -0
  267. package/dist/cli/__tests__/graph-worker.test.js.map +1 -0
  268. package/dist/cli/__tests__/list-files.test.d.ts +12 -0
  269. package/dist/cli/__tests__/list-files.test.d.ts.map +1 -0
  270. package/dist/cli/__tests__/list-files.test.js +146 -0
  271. package/dist/cli/__tests__/list-files.test.js.map +1 -0
  272. package/dist/cli/__tests__/live-suppression-parity.test.d.ts +23 -0
  273. package/dist/cli/__tests__/live-suppression-parity.test.d.ts.map +1 -0
  274. package/dist/cli/__tests__/live-suppression-parity.test.js +136 -0
  275. package/dist/cli/__tests__/live-suppression-parity.test.js.map +1 -0
  276. package/dist/cli/__tests__/orchestrate-spans.test.d.ts +18 -0
  277. package/dist/cli/__tests__/orchestrate-spans.test.d.ts.map +1 -0
  278. package/dist/cli/__tests__/orchestrate-spans.test.js +108 -0
  279. package/dist/cli/__tests__/orchestrate-spans.test.js.map +1 -0
  280. package/dist/cli/__tests__/shard-worker.test.d.ts +10 -0
  281. package/dist/cli/__tests__/shard-worker.test.d.ts.map +1 -0
  282. package/dist/cli/__tests__/shard-worker.test.js +153 -0
  283. package/dist/cli/__tests__/shard-worker.test.js.map +1 -0
  284. package/dist/cli/__tests__/workspace-report.test.d.ts +6 -0
  285. package/dist/cli/__tests__/workspace-report.test.d.ts.map +1 -0
  286. package/dist/cli/__tests__/workspace-report.test.js +89 -0
  287. package/dist/cli/__tests__/workspace-report.test.js.map +1 -0
  288. package/dist/cli/apply-suppressions.d.ts +86 -0
  289. package/dist/cli/apply-suppressions.d.ts.map +1 -0
  290. package/dist/cli/apply-suppressions.js +101 -0
  291. package/dist/cli/apply-suppressions.js.map +1 -0
  292. package/dist/cli/apply-suppressions.test.d.ts +12 -0
  293. package/dist/cli/apply-suppressions.test.d.ts.map +1 -0
  294. package/dist/cli/apply-suppressions.test.js +85 -0
  295. package/dist/cli/apply-suppressions.test.js.map +1 -0
  296. package/dist/cli/build-envelope.d.ts +53 -0
  297. package/dist/cli/build-envelope.d.ts.map +1 -0
  298. package/dist/cli/build-envelope.js +88 -0
  299. package/dist/cli/build-envelope.js.map +1 -0
  300. package/dist/cli/detect.d.ts +37 -0
  301. package/dist/cli/detect.d.ts.map +1 -0
  302. package/dist/cli/detect.js +60 -0
  303. package/dist/cli/detect.js.map +1 -0
  304. package/dist/cli/equivalence-check-command.d.ts +45 -0
  305. package/dist/cli/equivalence-check-command.d.ts.map +1 -0
  306. package/dist/cli/equivalence-check-command.js +196 -0
  307. package/dist/cli/equivalence-check-command.js.map +1 -0
  308. package/dist/cli/graph/graph-aux-command-specs.d.ts +60 -0
  309. package/dist/cli/graph/graph-aux-command-specs.d.ts.map +1 -0
  310. package/dist/cli/graph/graph-aux-command-specs.js +390 -0
  311. package/dist/cli/graph/graph-aux-command-specs.js.map +1 -0
  312. package/dist/cli/graph/graph-command-spec.d.ts +43 -0
  313. package/dist/cli/graph/graph-command-spec.d.ts.map +1 -0
  314. package/dist/cli/graph/graph-command-spec.js +456 -0
  315. package/dist/cli/graph/graph-command-spec.js.map +1 -0
  316. package/dist/cli/graph-config-schema.d.ts +70 -0
  317. package/dist/cli/graph-config-schema.d.ts.map +1 -0
  318. package/dist/cli/graph-config-schema.js +68 -0
  319. package/dist/cli/graph-config-schema.js.map +1 -0
  320. package/dist/cli/graph-config.d.ts +53 -0
  321. package/dist/cli/graph-config.d.ts.map +1 -0
  322. package/dist/cli/graph-config.js +111 -0
  323. package/dist/cli/graph-config.js.map +1 -0
  324. package/dist/cli/graph-modes.d.ts +36 -0
  325. package/dist/cli/graph-modes.d.ts.map +1 -0
  326. package/dist/cli/graph-modes.js +161 -0
  327. package/dist/cli/graph-modes.js.map +1 -0
  328. package/dist/cli/graph-options.d.ts +143 -0
  329. package/dist/cli/graph-options.d.ts.map +1 -0
  330. package/dist/cli/graph-options.js +15 -0
  331. package/dist/cli/graph-options.js.map +1 -0
  332. package/dist/cli/graph-progress.d.ts +31 -0
  333. package/dist/cli/graph-progress.d.ts.map +1 -0
  334. package/dist/cli/graph-progress.js +56 -0
  335. package/dist/cli/graph-progress.js.map +1 -0
  336. package/dist/cli/graph-recipes.d.ts +23 -0
  337. package/dist/cli/graph-recipes.d.ts.map +1 -0
  338. package/dist/cli/graph-recipes.js +44 -0
  339. package/dist/cli/graph-recipes.js.map +1 -0
  340. package/dist/cli/graph-report.d.ts +79 -0
  341. package/dist/cli/graph-report.d.ts.map +1 -0
  342. package/dist/cli/graph-report.js +186 -0
  343. package/dist/cli/graph-report.js.map +1 -0
  344. package/dist/cli/graph-runner.d.ts +106 -0
  345. package/dist/cli/graph-runner.d.ts.map +1 -0
  346. package/dist/cli/graph-runner.js +274 -0
  347. package/dist/cli/graph-runner.js.map +1 -0
  348. package/dist/cli/graph-tracer.d.ts +27 -0
  349. package/dist/cli/graph-tracer.d.ts.map +1 -0
  350. package/dist/cli/graph-tracer.js +33 -0
  351. package/dist/cli/graph-tracer.js.map +1 -0
  352. package/dist/cli/graph-worker.d.ts +29 -0
  353. package/dist/cli/graph-worker.d.ts.map +1 -0
  354. package/dist/cli/graph-worker.js +86 -0
  355. package/dist/cli/graph-worker.js.map +1 -0
  356. package/dist/cli/graph.d.ts +171 -0
  357. package/dist/cli/graph.d.ts.map +1 -0
  358. package/dist/cli/graph.js +1041 -0
  359. package/dist/cli/graph.js.map +1 -0
  360. package/dist/cli/heap-preflight.d.ts +62 -0
  361. package/dist/cli/heap-preflight.d.ts.map +1 -0
  362. package/dist/cli/heap-preflight.js +176 -0
  363. package/dist/cli/heap-preflight.js.map +1 -0
  364. package/dist/cli/list-files.d.ts +37 -0
  365. package/dist/cli/list-files.d.ts.map +1 -0
  366. package/dist/cli/list-files.js +166 -0
  367. package/dist/cli/list-files.js.map +1 -0
  368. package/dist/cli/lookup.d.ts +19 -0
  369. package/dist/cli/lookup.d.ts.map +1 -0
  370. package/dist/cli/lookup.js +87 -0
  371. package/dist/cli/lookup.js.map +1 -0
  372. package/dist/cli/orchestrate/__tests__/_equivalence-harness.d.ts +47 -0
  373. package/dist/cli/orchestrate/__tests__/_equivalence-harness.d.ts.map +1 -0
  374. package/dist/cli/orchestrate/__tests__/_equivalence-harness.js +331 -0
  375. package/dist/cli/orchestrate/__tests__/_equivalence-harness.js.map +1 -0
  376. package/dist/cli/orchestrate/__tests__/_flat-large-fixture.d.ts +69 -0
  377. package/dist/cli/orchestrate/__tests__/_flat-large-fixture.d.ts.map +1 -0
  378. package/dist/cli/orchestrate/__tests__/_flat-large-fixture.js +181 -0
  379. package/dist/cli/orchestrate/__tests__/_flat-large-fixture.js.map +1 -0
  380. package/dist/cli/orchestrate/__tests__/canonical-file-set.test.d.ts +8 -0
  381. package/dist/cli/orchestrate/__tests__/canonical-file-set.test.d.ts.map +1 -0
  382. package/dist/cli/orchestrate/__tests__/canonical-file-set.test.js +51 -0
  383. package/dist/cli/orchestrate/__tests__/canonical-file-set.test.js.map +1 -0
  384. package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.d.ts +9 -0
  385. package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.d.ts.map +1 -0
  386. package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.js +147 -0
  387. package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.js.map +1 -0
  388. package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.d.ts +12 -0
  389. package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.d.ts.map +1 -0
  390. package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.js +509 -0
  391. package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.js.map +1 -0
  392. package/dist/cli/orchestrate/__tests__/determinism.test.d.ts +19 -0
  393. package/dist/cli/orchestrate/__tests__/determinism.test.d.ts.map +1 -0
  394. package/dist/cli/orchestrate/__tests__/determinism.test.js +163 -0
  395. package/dist/cli/orchestrate/__tests__/determinism.test.js.map +1 -0
  396. package/dist/cli/orchestrate/__tests__/edge-identity.test.d.ts +9 -0
  397. package/dist/cli/orchestrate/__tests__/edge-identity.test.d.ts.map +1 -0
  398. package/dist/cli/orchestrate/__tests__/edge-identity.test.js +103 -0
  399. package/dist/cli/orchestrate/__tests__/edge-identity.test.js.map +1 -0
  400. package/dist/cli/orchestrate/__tests__/equivalence-check.test.d.ts +10 -0
  401. package/dist/cli/orchestrate/__tests__/equivalence-check.test.d.ts.map +1 -0
  402. package/dist/cli/orchestrate/__tests__/equivalence-check.test.js +277 -0
  403. package/dist/cli/orchestrate/__tests__/equivalence-check.test.js.map +1 -0
  404. package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.d.ts +51 -0
  405. package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.d.ts.map +1 -0
  406. package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.js +183 -0
  407. package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.js.map +1 -0
  408. package/dist/cli/orchestrate/__tests__/equivalence.test.d.ts +47 -0
  409. package/dist/cli/orchestrate/__tests__/equivalence.test.d.ts.map +1 -0
  410. package/dist/cli/orchestrate/__tests__/equivalence.test.js +259 -0
  411. package/dist/cli/orchestrate/__tests__/equivalence.test.js.map +1 -0
  412. package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.d.ts +9 -0
  413. package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.d.ts.map +1 -0
  414. package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.js +105 -0
  415. package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.js.map +1 -0
  416. package/dist/cli/orchestrate/__tests__/export-index.test.d.ts +12 -0
  417. package/dist/cli/orchestrate/__tests__/export-index.test.d.ts.map +1 -0
  418. package/dist/cli/orchestrate/__tests__/export-index.test.js +346 -0
  419. package/dist/cli/orchestrate/__tests__/export-index.test.js.map +1 -0
  420. package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.d.ts +16 -0
  421. package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.d.ts.map +1 -0
  422. package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.js +99 -0
  423. package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.js.map +1 -0
  424. package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.d.ts +11 -0
  425. package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.d.ts.map +1 -0
  426. package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.js +271 -0
  427. package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.js.map +1 -0
  428. package/dist/cli/orchestrate/__tests__/function-set-parity.test.d.ts +38 -0
  429. package/dist/cli/orchestrate/__tests__/function-set-parity.test.d.ts.map +1 -0
  430. package/dist/cli/orchestrate/__tests__/function-set-parity.test.js +163 -0
  431. package/dist/cli/orchestrate/__tests__/function-set-parity.test.js.map +1 -0
  432. package/dist/cli/orchestrate/__tests__/incremental-merge.test.d.ts +8 -0
  433. package/dist/cli/orchestrate/__tests__/incremental-merge.test.d.ts.map +1 -0
  434. package/dist/cli/orchestrate/__tests__/incremental-merge.test.js +153 -0
  435. package/dist/cli/orchestrate/__tests__/incremental-merge.test.js.map +1 -0
  436. package/dist/cli/orchestrate/__tests__/partition-files.test.d.ts +10 -0
  437. package/dist/cli/orchestrate/__tests__/partition-files.test.d.ts.map +1 -0
  438. package/dist/cli/orchestrate/__tests__/partition-files.test.js +104 -0
  439. package/dist/cli/orchestrate/__tests__/partition-files.test.js.map +1 -0
  440. package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.d.ts +21 -0
  441. package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.d.ts.map +1 -0
  442. package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.js +59 -0
  443. package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.js.map +1 -0
  444. package/dist/cli/orchestrate/__tests__/shard-model.test.d.ts +8 -0
  445. package/dist/cli/orchestrate/__tests__/shard-model.test.d.ts.map +1 -0
  446. package/dist/cli/orchestrate/__tests__/shard-model.test.js +77 -0
  447. package/dist/cli/orchestrate/__tests__/shard-model.test.js.map +1 -0
  448. package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.d.ts +13 -0
  449. package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.d.ts.map +1 -0
  450. package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.js +103 -0
  451. package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.js.map +1 -0
  452. package/dist/cli/orchestrate/__tests__/sharded-graph.test.d.ts +13 -0
  453. package/dist/cli/orchestrate/__tests__/sharded-graph.test.d.ts.map +1 -0
  454. package/dist/cli/orchestrate/__tests__/sharded-graph.test.js +257 -0
  455. package/dist/cli/orchestrate/__tests__/sharded-graph.test.js.map +1 -0
  456. package/dist/cli/orchestrate/__tests__/worker-pool.test.d.ts +6 -0
  457. package/dist/cli/orchestrate/__tests__/worker-pool.test.d.ts.map +1 -0
  458. package/dist/cli/orchestrate/__tests__/worker-pool.test.js +38 -0
  459. package/dist/cli/orchestrate/__tests__/worker-pool.test.js.map +1 -0
  460. package/dist/cli/orchestrate/cache-orchestrator.d.ts +42 -0
  461. package/dist/cli/orchestrate/cache-orchestrator.d.ts.map +1 -0
  462. package/dist/cli/orchestrate/cache-orchestrator.js +92 -0
  463. package/dist/cli/orchestrate/cache-orchestrator.js.map +1 -0
  464. package/dist/cli/orchestrate/canonical-file-set.d.ts +51 -0
  465. package/dist/cli/orchestrate/canonical-file-set.d.ts.map +1 -0
  466. package/dist/cli/orchestrate/canonical-file-set.js +58 -0
  467. package/dist/cli/orchestrate/canonical-file-set.js.map +1 -0
  468. package/dist/cli/orchestrate/catalog-builder.d.ts +121 -0
  469. package/dist/cli/orchestrate/catalog-builder.d.ts.map +1 -0
  470. package/dist/cli/orchestrate/catalog-builder.js +279 -0
  471. package/dist/cli/orchestrate/catalog-builder.js.map +1 -0
  472. package/dist/cli/orchestrate/catalog-stats.d.ts +31 -0
  473. package/dist/cli/orchestrate/catalog-stats.d.ts.map +1 -0
  474. package/dist/cli/orchestrate/catalog-stats.js +52 -0
  475. package/dist/cli/orchestrate/catalog-stats.js.map +1 -0
  476. package/dist/cli/orchestrate/cross-shard-resolve.d.ts +190 -0
  477. package/dist/cli/orchestrate/cross-shard-resolve.d.ts.map +1 -0
  478. package/dist/cli/orchestrate/cross-shard-resolve.js +523 -0
  479. package/dist/cli/orchestrate/cross-shard-resolve.js.map +1 -0
  480. package/dist/cli/orchestrate/edge-identity.d.ts +48 -0
  481. package/dist/cli/orchestrate/edge-identity.d.ts.map +1 -0
  482. package/dist/cli/orchestrate/edge-identity.js +68 -0
  483. package/dist/cli/orchestrate/edge-identity.js.map +1 -0
  484. package/dist/cli/orchestrate/equivalence-check.d.ts +227 -0
  485. package/dist/cli/orchestrate/equivalence-check.d.ts.map +1 -0
  486. package/dist/cli/orchestrate/equivalence-check.js +264 -0
  487. package/dist/cli/orchestrate/equivalence-check.js.map +1 -0
  488. package/dist/cli/orchestrate/exact-boundary-recovery.d.ts +33 -0
  489. package/dist/cli/orchestrate/exact-boundary-recovery.d.ts.map +1 -0
  490. package/dist/cli/orchestrate/exact-boundary-recovery.js +62 -0
  491. package/dist/cli/orchestrate/exact-boundary-recovery.js.map +1 -0
  492. package/dist/cli/orchestrate/flat-monorepo-strategy.d.ts +171 -0
  493. package/dist/cli/orchestrate/flat-monorepo-strategy.d.ts.map +1 -0
  494. package/dist/cli/orchestrate/flat-monorepo-strategy.js +328 -0
  495. package/dist/cli/orchestrate/flat-monorepo-strategy.js.map +1 -0
  496. package/dist/cli/orchestrate/incremental-merge.d.ts +46 -0
  497. package/dist/cli/orchestrate/incremental-merge.d.ts.map +1 -0
  498. package/dist/cli/orchestrate/incremental-merge.js +236 -0
  499. package/dist/cli/orchestrate/incremental-merge.js.map +1 -0
  500. package/dist/cli/orchestrate/partition-chunk.d.ts +36 -0
  501. package/dist/cli/orchestrate/partition-chunk.d.ts.map +1 -0
  502. package/dist/cli/orchestrate/partition-chunk.js +37 -0
  503. package/dist/cli/orchestrate/partition-chunk.js.map +1 -0
  504. package/dist/cli/orchestrate/partition-files.d.ts +52 -0
  505. package/dist/cli/orchestrate/partition-files.d.ts.map +1 -0
  506. package/dist/cli/orchestrate/partition-files.js +94 -0
  507. package/dist/cli/orchestrate/partition-files.js.map +1 -0
  508. package/dist/cli/orchestrate/resolution-trace.d.ts +11 -0
  509. package/dist/cli/orchestrate/resolution-trace.d.ts.map +1 -0
  510. package/dist/cli/orchestrate/resolution-trace.js +27 -0
  511. package/dist/cli/orchestrate/resolution-trace.js.map +1 -0
  512. package/dist/cli/orchestrate/shard-model.d.ts +99 -0
  513. package/dist/cli/orchestrate/shard-model.d.ts.map +1 -0
  514. package/dist/cli/orchestrate/shard-model.js +23 -0
  515. package/dist/cli/orchestrate/shard-model.js.map +1 -0
  516. package/dist/cli/orchestrate/shard-runner.d.ts +65 -0
  517. package/dist/cli/orchestrate/shard-runner.d.ts.map +1 -0
  518. package/dist/cli/orchestrate/shard-runner.js +169 -0
  519. package/dist/cli/orchestrate/shard-runner.js.map +1 -0
  520. package/dist/cli/orchestrate/sharded-graph.d.ts +86 -0
  521. package/dist/cli/orchestrate/sharded-graph.d.ts.map +1 -0
  522. package/dist/cli/orchestrate/sharded-graph.js +227 -0
  523. package/dist/cli/orchestrate/sharded-graph.js.map +1 -0
  524. package/dist/cli/orchestrate/types.d.ts +31 -0
  525. package/dist/cli/orchestrate/types.d.ts.map +1 -0
  526. package/dist/cli/orchestrate/types.js +24 -0
  527. package/dist/cli/orchestrate/types.js.map +1 -0
  528. package/dist/cli/orchestrate/worker-pool.d.ts +16 -0
  529. package/dist/cli/orchestrate/worker-pool.d.ts.map +1 -0
  530. package/dist/cli/orchestrate/worker-pool.js +39 -0
  531. package/dist/cli/orchestrate/worker-pool.js.map +1 -0
  532. package/dist/cli/orchestrate.d.ts +106 -0
  533. package/dist/cli/orchestrate.d.ts.map +1 -0
  534. package/dist/cli/orchestrate.js +228 -0
  535. package/dist/cli/orchestrate.js.map +1 -0
  536. package/dist/cli/positional-paths.d.ts +23 -0
  537. package/dist/cli/positional-paths.d.ts.map +1 -0
  538. package/dist/cli/positional-paths.js +64 -0
  539. package/dist/cli/positional-paths.js.map +1 -0
  540. package/dist/cli/pressure-monitor.d.ts +62 -0
  541. package/dist/cli/pressure-monitor.d.ts.map +1 -0
  542. package/dist/cli/pressure-monitor.js +110 -0
  543. package/dist/cli/pressure-monitor.js.map +1 -0
  544. package/dist/cli/profile.d.ts +82 -0
  545. package/dist/cli/profile.d.ts.map +1 -0
  546. package/dist/cli/profile.js +120 -0
  547. package/dist/cli/profile.js.map +1 -0
  548. package/dist/cli/report-data.d.ts +46 -0
  549. package/dist/cli/report-data.d.ts.map +1 -0
  550. package/dist/cli/report-data.js +48 -0
  551. package/dist/cli/report-data.js.map +1 -0
  552. package/dist/cli/resolve-adapters.d.ts +19 -0
  553. package/dist/cli/resolve-adapters.d.ts.map +1 -0
  554. package/dist/cli/resolve-adapters.js +38 -0
  555. package/dist/cli/resolve-adapters.js.map +1 -0
  556. package/dist/cli/sarif-export.d.ts +40 -0
  557. package/dist/cli/sarif-export.d.ts.map +1 -0
  558. package/dist/cli/sarif-export.js +69 -0
  559. package/dist/cli/sarif-export.js.map +1 -0
  560. package/dist/cli/shard-worker.d.ts +25 -0
  561. package/dist/cli/shard-worker.d.ts.map +1 -0
  562. package/dist/cli/shard-worker.js +98 -0
  563. package/dist/cli/shard-worker.js.map +1 -0
  564. package/dist/cli/symbol-index.d.ts +51 -0
  565. package/dist/cli/symbol-index.d.ts.map +1 -0
  566. package/dist/cli/symbol-index.js +120 -0
  567. package/dist/cli/symbol-index.js.map +1 -0
  568. package/dist/cli/workspace-report.d.ts +32 -0
  569. package/dist/cli/workspace-report.d.ts.map +1 -0
  570. package/dist/cli/workspace-report.js +107 -0
  571. package/dist/cli/workspace-report.js.map +1 -0
  572. package/dist/cli/workspace-runner.d.ts +104 -0
  573. package/dist/cli/workspace-runner.d.ts.map +1 -0
  574. package/dist/cli/workspace-runner.js +166 -0
  575. package/dist/cli/workspace-runner.js.map +1 -0
  576. package/dist/cross-package/export-index.d.ts +118 -0
  577. package/dist/cross-package/export-index.d.ts.map +1 -0
  578. package/dist/cross-package/export-index.js +296 -0
  579. package/dist/cross-package/export-index.js.map +1 -0
  580. package/dist/cross-package/posix-path.d.ts +16 -0
  581. package/dist/cross-package/posix-path.d.ts.map +1 -0
  582. package/dist/cross-package/posix-path.js +18 -0
  583. package/dist/cross-package/posix-path.js.map +1 -0
  584. package/dist/cross-package/resolve.d.ts +68 -0
  585. package/dist/cross-package/resolve.d.ts.map +1 -0
  586. package/dist/cross-package/resolve.js +83 -0
  587. package/dist/cross-package/resolve.js.map +1 -0
  588. package/dist/index.d.ts +33 -0
  589. package/dist/index.d.ts.map +1 -0
  590. package/dist/index.js +61 -0
  591. package/dist/index.js.map +1 -0
  592. package/dist/internal.d.ts +25 -0
  593. package/dist/internal.d.ts.map +1 -0
  594. package/dist/internal.js +38 -0
  595. package/dist/internal.js.map +1 -0
  596. package/dist/lang-adapter/body-digest.d.ts +46 -0
  597. package/dist/lang-adapter/body-digest.d.ts.map +1 -0
  598. package/dist/lang-adapter/body-digest.js +49 -0
  599. package/dist/lang-adapter/body-digest.js.map +1 -0
  600. package/dist/lang-adapter/edge-helpers.d.ts +104 -0
  601. package/dist/lang-adapter/edge-helpers.d.ts.map +1 -0
  602. package/dist/lang-adapter/edge-helpers.js +120 -0
  603. package/dist/lang-adapter/edge-helpers.js.map +1 -0
  604. package/dist/lang-adapter/registry.d.ts +59 -0
  605. package/dist/lang-adapter/registry.d.ts.map +1 -0
  606. package/dist/lang-adapter/registry.js +100 -0
  607. package/dist/lang-adapter/registry.js.map +1 -0
  608. package/dist/lang-adapter/selector.d.ts +39 -0
  609. package/dist/lang-adapter/selector.d.ts.map +1 -0
  610. package/dist/lang-adapter/selector.js +140 -0
  611. package/dist/lang-adapter/selector.js.map +1 -0
  612. package/dist/lang-adapter/types.d.ts +217 -0
  613. package/dist/lang-adapter/types.d.ts.map +1 -0
  614. package/dist/lang-adapter/types.js +18 -0
  615. package/dist/lang-adapter/types.js.map +1 -0
  616. package/dist/owner-key.d.ts +22 -0
  617. package/dist/owner-key.d.ts.map +1 -0
  618. package/dist/owner-key.js +25 -0
  619. package/dist/owner-key.js.map +1 -0
  620. package/dist/persistence/__tests__/shard-fragment-cache.test.d.ts +8 -0
  621. package/dist/persistence/__tests__/shard-fragment-cache.test.d.ts.map +1 -0
  622. package/dist/persistence/__tests__/shard-fragment-cache.test.js +126 -0
  623. package/dist/persistence/__tests__/shard-fragment-cache.test.js.map +1 -0
  624. package/dist/persistence/catalog-repo.d.ts +77 -0
  625. package/dist/persistence/catalog-repo.d.ts.map +1 -0
  626. package/dist/persistence/catalog-repo.js +229 -0
  627. package/dist/persistence/catalog-repo.js.map +1 -0
  628. package/dist/persistence/schema.d.ts +249 -0
  629. package/dist/persistence/schema.d.ts.map +1 -0
  630. package/dist/persistence/schema.js +53 -0
  631. package/dist/persistence/schema.js.map +1 -0
  632. package/dist/persistence/session-payload.d.ts +96 -0
  633. package/dist/persistence/session-payload.d.ts.map +1 -0
  634. package/dist/persistence/session-payload.js +116 -0
  635. package/dist/persistence/session-payload.js.map +1 -0
  636. package/dist/persistence/session-replay.d.ts +15 -0
  637. package/dist/persistence/session-replay.d.ts.map +1 -0
  638. package/dist/persistence/session-replay.js +80 -0
  639. package/dist/persistence/session-replay.js.map +1 -0
  640. package/dist/pipeline/__tests__/assign-packages.test.d.ts +2 -0
  641. package/dist/pipeline/__tests__/assign-packages.test.d.ts.map +1 -0
  642. package/dist/pipeline/__tests__/assign-packages.test.js +88 -0
  643. package/dist/pipeline/__tests__/assign-packages.test.js.map +1 -0
  644. package/dist/pipeline/__tests__/constrain-edges.test.d.ts +2 -0
  645. package/dist/pipeline/__tests__/constrain-edges.test.d.ts.map +1 -0
  646. package/dist/pipeline/__tests__/constrain-edges.test.js +228 -0
  647. package/dist/pipeline/__tests__/constrain-edges.test.js.map +1 -0
  648. package/dist/pipeline/__tests__/features.test.d.ts +9 -0
  649. package/dist/pipeline/__tests__/features.test.d.ts.map +1 -0
  650. package/dist/pipeline/__tests__/features.test.js +458 -0
  651. package/dist/pipeline/__tests__/features.test.js.map +1 -0
  652. package/dist/pipeline/__tests__/indexes-imports.test.d.ts +2 -0
  653. package/dist/pipeline/__tests__/indexes-imports.test.d.ts.map +1 -0
  654. package/dist/pipeline/__tests__/indexes-imports.test.js +114 -0
  655. package/dist/pipeline/__tests__/indexes-imports.test.js.map +1 -0
  656. package/dist/pipeline/assign-packages.d.ts +18 -0
  657. package/dist/pipeline/assign-packages.d.ts.map +1 -0
  658. package/dist/pipeline/assign-packages.js +86 -0
  659. package/dist/pipeline/assign-packages.js.map +1 -0
  660. package/dist/pipeline/constrain-edges.d.ts +34 -0
  661. package/dist/pipeline/constrain-edges.d.ts.map +1 -0
  662. package/dist/pipeline/constrain-edges.js +139 -0
  663. package/dist/pipeline/constrain-edges.js.map +1 -0
  664. package/dist/pipeline/feature-deps.d.ts +19 -0
  665. package/dist/pipeline/feature-deps.d.ts.map +1 -0
  666. package/dist/pipeline/feature-deps.js +28 -0
  667. package/dist/pipeline/feature-deps.js.map +1 -0
  668. package/dist/pipeline/features.d.ts +50 -0
  669. package/dist/pipeline/features.d.ts.map +1 -0
  670. package/dist/pipeline/features.js +462 -0
  671. package/dist/pipeline/features.js.map +1 -0
  672. package/dist/pipeline/indexes.d.ts +27 -0
  673. package/dist/pipeline/indexes.d.ts.map +1 -0
  674. package/dist/pipeline/indexes.js +159 -0
  675. package/dist/pipeline/indexes.js.map +1 -0
  676. package/dist/recipes/__tests__/built-in-recipes.test.d.ts +5 -0
  677. package/dist/recipes/__tests__/built-in-recipes.test.d.ts.map +1 -0
  678. package/dist/recipes/__tests__/built-in-recipes.test.js +24 -0
  679. package/dist/recipes/__tests__/built-in-recipes.test.js.map +1 -0
  680. package/dist/recipes/__tests__/registry.test.d.ts +7 -0
  681. package/dist/recipes/__tests__/registry.test.d.ts.map +1 -0
  682. package/dist/recipes/__tests__/registry.test.js +34 -0
  683. package/dist/recipes/__tests__/registry.test.js.map +1 -0
  684. package/dist/recipes/__tests__/resolve.test.d.ts +10 -0
  685. package/dist/recipes/__tests__/resolve.test.d.ts.map +1 -0
  686. package/dist/recipes/__tests__/resolve.test.js +38 -0
  687. package/dist/recipes/__tests__/resolve.test.js.map +1 -0
  688. package/dist/recipes/built-in-recipes.d.ts +26 -0
  689. package/dist/recipes/built-in-recipes.d.ts.map +1 -0
  690. package/dist/recipes/built-in-recipes.js +43 -0
  691. package/dist/recipes/built-in-recipes.js.map +1 -0
  692. package/dist/recipes/registry.d.ts +31 -0
  693. package/dist/recipes/registry.d.ts.map +1 -0
  694. package/dist/recipes/registry.js +48 -0
  695. package/dist/recipes/registry.js.map +1 -0
  696. package/dist/recipes/resolve.d.ts +31 -0
  697. package/dist/recipes/resolve.d.ts.map +1 -0
  698. package/dist/recipes/resolve.js +70 -0
  699. package/dist/recipes/resolve.js.map +1 -0
  700. package/dist/recipes/types.d.ts +58 -0
  701. package/dist/recipes/types.d.ts.map +1 -0
  702. package/dist/recipes/types.js +39 -0
  703. package/dist/recipes/types.js.map +1 -0
  704. package/dist/render/__tests__/catalog-json.test.d.ts +9 -0
  705. package/dist/render/__tests__/catalog-json.test.d.ts.map +1 -0
  706. package/dist/render/__tests__/catalog-json.test.js +132 -0
  707. package/dist/render/__tests__/catalog-json.test.js.map +1 -0
  708. package/dist/render/catalog-json-types.d.ts +114 -0
  709. package/dist/render/catalog-json-types.d.ts.map +1 -0
  710. package/dist/render/catalog-json-types.js +23 -0
  711. package/dist/render/catalog-json-types.js.map +1 -0
  712. package/dist/render/catalog-json.d.ts +43 -0
  713. package/dist/render/catalog-json.d.ts.map +1 -0
  714. package/dist/render/catalog-json.js +303 -0
  715. package/dist/render/catalog-json.js.map +1 -0
  716. package/dist/render/opensip-id-derivation.d.ts +73 -0
  717. package/dist/render/opensip-id-derivation.d.ts.map +1 -0
  718. package/dist/render/opensip-id-derivation.js +65 -0
  719. package/dist/render/opensip-id-derivation.js.map +1 -0
  720. package/dist/render/rule-id-mapping.d.ts +61 -0
  721. package/dist/render/rule-id-mapping.d.ts.map +1 -0
  722. package/dist/render/rule-id-mapping.js +82 -0
  723. package/dist/render/rule-id-mapping.js.map +1 -0
  724. package/dist/resolve-callee.d.ts +50 -0
  725. package/dist/resolve-callee.d.ts.map +1 -0
  726. package/dist/resolve-callee.js +80 -0
  727. package/dist/resolve-callee.js.map +1 -0
  728. package/dist/rules/__tests__/__fixtures__/catalog.fixture.d.ts +22 -0
  729. package/dist/rules/__tests__/__fixtures__/catalog.fixture.d.ts.map +1 -0
  730. package/dist/rules/__tests__/__fixtures__/catalog.fixture.js +143 -0
  731. package/dist/rules/__tests__/__fixtures__/catalog.fixture.js.map +1 -0
  732. package/dist/rules/__tests__/create-graph-signal.test.d.ts +8 -0
  733. package/dist/rules/__tests__/create-graph-signal.test.d.ts.map +1 -0
  734. package/dist/rules/__tests__/create-graph-signal.test.js +55 -0
  735. package/dist/rules/__tests__/create-graph-signal.test.js.map +1 -0
  736. package/dist/rules/__tests__/define-rule.test.d.ts +13 -0
  737. package/dist/rules/__tests__/define-rule.test.d.ts.map +1 -0
  738. package/dist/rules/__tests__/define-rule.test.js +102 -0
  739. package/dist/rules/__tests__/define-rule.test.js.map +1 -0
  740. package/dist/rules/__tests__/fingerprint-golden.test.d.ts +21 -0
  741. package/dist/rules/__tests__/fingerprint-golden.test.d.ts.map +1 -0
  742. package/dist/rules/__tests__/fingerprint-golden.test.js +69 -0
  743. package/dist/rules/__tests__/fingerprint-golden.test.js.map +1 -0
  744. package/dist/rules/__tests__/registry.test.d.ts +6 -0
  745. package/dist/rules/__tests__/registry.test.d.ts.map +1 -0
  746. package/dist/rules/__tests__/registry.test.js +37 -0
  747. package/dist/rules/__tests__/registry.test.js.map +1 -0
  748. package/dist/rules/__tests__/rule-behaviors.test.d.ts +9 -0
  749. package/dist/rules/__tests__/rule-behaviors.test.d.ts.map +1 -0
  750. package/dist/rules/__tests__/rule-behaviors.test.js +204 -0
  751. package/dist/rules/__tests__/rule-behaviors.test.js.map +1 -0
  752. package/dist/rules/__tests__/signal-output.snapshot.test.d.ts +11 -0
  753. package/dist/rules/__tests__/signal-output.snapshot.test.d.ts.map +1 -0
  754. package/dist/rules/__tests__/signal-output.snapshot.test.js +55 -0
  755. package/dist/rules/__tests__/signal-output.snapshot.test.js.map +1 -0
  756. package/dist/rules/_approximation.d.ts +23 -0
  757. package/dist/rules/_approximation.d.ts.map +1 -0
  758. package/dist/rules/_approximation.js +28 -0
  759. package/dist/rules/_approximation.js.map +1 -0
  760. package/dist/rules/_entry-points.d.ts +27 -0
  761. package/dist/rules/_entry-points.d.ts.map +1 -0
  762. package/dist/rules/_entry-points.js +81 -0
  763. package/dist/rules/_entry-points.js.map +1 -0
  764. package/dist/rules/_severity-override.d.ts +32 -0
  765. package/dist/rules/_severity-override.d.ts.map +1 -0
  766. package/dist/rules/_severity-override.js +33 -0
  767. package/dist/rules/_severity-override.js.map +1 -0
  768. package/dist/rules/always-throws-branch.d.ts +26 -0
  769. package/dist/rules/always-throws-branch.d.ts.map +1 -0
  770. package/dist/rules/always-throws-branch.js +66 -0
  771. package/dist/rules/always-throws-branch.js.map +1 -0
  772. package/dist/rules/create-graph-signal.d.ts +38 -0
  773. package/dist/rules/create-graph-signal.d.ts.map +1 -0
  774. package/dist/rules/create-graph-signal.js +35 -0
  775. package/dist/rules/create-graph-signal.js.map +1 -0
  776. package/dist/rules/cycle.d.ts +29 -0
  777. package/dist/rules/cycle.d.ts.map +1 -0
  778. package/dist/rules/cycle.js +166 -0
  779. package/dist/rules/cycle.js.map +1 -0
  780. package/dist/rules/cycle.memberlocations.test.d.ts +11 -0
  781. package/dist/rules/cycle.memberlocations.test.d.ts.map +1 -0
  782. package/dist/rules/cycle.memberlocations.test.js +84 -0
  783. package/dist/rules/cycle.memberlocations.test.js.map +1 -0
  784. package/dist/rules/define-rule.d.ts +67 -0
  785. package/dist/rules/define-rule.d.ts.map +1 -0
  786. package/dist/rules/define-rule.js +66 -0
  787. package/dist/rules/define-rule.js.map +1 -0
  788. package/dist/rules/duplicated-function-body.d.ts +40 -0
  789. package/dist/rules/duplicated-function-body.d.ts.map +1 -0
  790. package/dist/rules/duplicated-function-body.js +232 -0
  791. package/dist/rules/duplicated-function-body.js.map +1 -0
  792. package/dist/rules/high-blast-untested.d.ts +26 -0
  793. package/dist/rules/high-blast-untested.d.ts.map +1 -0
  794. package/dist/rules/high-blast-untested.js +82 -0
  795. package/dist/rules/high-blast-untested.js.map +1 -0
  796. package/dist/rules/large-function.d.ts +22 -0
  797. package/dist/rules/large-function.d.ts.map +1 -0
  798. package/dist/rules/large-function.js +72 -0
  799. package/dist/rules/large-function.js.map +1 -0
  800. package/dist/rules/no-side-effect-path.d.ts +31 -0
  801. package/dist/rules/no-side-effect-path.d.ts.map +1 -0
  802. package/dist/rules/no-side-effect-path.js +217 -0
  803. package/dist/rules/no-side-effect-path.js.map +1 -0
  804. package/dist/rules/orphan-subtree.d.ts +11 -0
  805. package/dist/rules/orphan-subtree.d.ts.map +1 -0
  806. package/dist/rules/orphan-subtree.js +104 -0
  807. package/dist/rules/orphan-subtree.js.map +1 -0
  808. package/dist/rules/registry.d.ts +35 -0
  809. package/dist/rules/registry.d.ts.map +1 -0
  810. package/dist/rules/registry.js +96 -0
  811. package/dist/rules/registry.js.map +1 -0
  812. package/dist/rules/test-only-reachable.d.ts +9 -0
  813. package/dist/rules/test-only-reachable.d.ts.map +1 -0
  814. package/dist/rules/test-only-reachable.js +101 -0
  815. package/dist/rules/test-only-reachable.js.map +1 -0
  816. package/dist/rules/unexpected-coupling.d.ts +29 -0
  817. package/dist/rules/unexpected-coupling.d.ts.map +1 -0
  818. package/dist/rules/unexpected-coupling.js +0 -0
  819. package/dist/rules/unexpected-coupling.js.map +1 -0
  820. package/dist/rules/wide-function.d.ts +18 -0
  821. package/dist/rules/wide-function.d.ts.map +1 -0
  822. package/dist/rules/wide-function.js +58 -0
  823. package/dist/rules/wide-function.js.map +1 -0
  824. package/dist/scope-augmentation.d.ts +58 -0
  825. package/dist/scope-augmentation.d.ts.map +1 -0
  826. package/dist/scope-augmentation.js +29 -0
  827. package/dist/scope-augmentation.js.map +1 -0
  828. package/dist/tool.d.ts +29 -0
  829. package/dist/tool.d.ts.map +1 -0
  830. package/dist/tool.js +241 -0
  831. package/dist/tool.js.map +1 -0
  832. package/dist/types.d.ts +642 -0
  833. package/dist/types.d.ts.map +1 -0
  834. package/dist/types.js +2 -0
  835. package/dist/types.js.map +1 -0
  836. package/package.json +136 -0
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @fileoverview Engine-side mirror of opensip's content-derived
3
+ * symbol-ID / edge-ID hashing. Byte-for-byte equivalent to
4
+ * `computeSymbolId` / `computeEdgeId` in
5
+ * `packages/code-graph/src/symbol-id.ts` so engine-emitted catalog
6
+ * rows collide with existing substrate rows under `ON CONFLICT DO
7
+ * UPDATE` (idempotent re-ingestion).
8
+ *
9
+ * Algorithm is intentionally trivial: canonicalize input fields into a
10
+ * `::`-separated string and sha256. Determinism (rename-invariant
11
+ * stability) is the load-bearing property — the ID changes when the
12
+ * symbol identity changes (rename, module move, arity change) but not
13
+ * when the file is renamed or lines shift.
14
+ *
15
+ * Cross-repo source-of-truth risk: if opensip's algorithm changes,
16
+ * this mirror desynchronizes silently. The local golden tests pin this
17
+ * package's implementation; a cross-repo parity test should compare it
18
+ * against opensip's `computeSymbolId` / `computeEdgeId` whenever that
19
+ * source is available. The engine-package version (carried in
20
+ * `CatalogExportProvenance.engineVersion`) documents the cutover boundary
21
+ * if the algorithm ever evolves.
22
+ *
23
+ * Phase 3 Task 3.2 per DEC-498.
24
+ */
25
+ /**
26
+ * Input to opensip's symbol-ID hash. Mirrors `SymbolIdInput` in
27
+ * `packages/code-graph/src/symbol-id.ts`.
28
+ */
29
+ export interface OpenSipSymbolIdInput {
30
+ readonly repoId: string;
31
+ readonly modulePath: string;
32
+ readonly kind: string;
33
+ readonly qualifiedName: string;
34
+ readonly arity: number | null;
35
+ }
36
+ /**
37
+ * Input to opensip's edge-ID hash. Mirrors `EdgeIdInput` in
38
+ * `packages/code-graph/src/symbol-id.ts`.
39
+ */
40
+ export interface OpenSipEdgeIdInput {
41
+ readonly fromSymbolId: string;
42
+ readonly edgeKind: string;
43
+ readonly toSymbolId: string | null;
44
+ readonly toQualifiedNameUnresolved: string | null;
45
+ }
46
+ /**
47
+ * Derive opensip's symbol ID for a function / class / method / module.
48
+ *
49
+ * Mirrors `computeSymbolId(...)` byte-for-byte.
50
+ */
51
+ export declare function deriveOpenSipSymbolId(input: OpenSipSymbolIdInput): string;
52
+ /**
53
+ * Derive opensip's edge ID. Unresolved targets are canonicalized as
54
+ * `unresolved:<qname>` so two distinct unresolved calls don't collide
55
+ * on the same fromSymbolId + edgeKind.
56
+ *
57
+ * Mirrors `computeEdgeId(...)` byte-for-byte — including the subtle
58
+ * empty-string fallback when both `toSymbolId` and
59
+ * `toQualifiedNameUnresolved` are `null` (the key becomes
60
+ * `<fromSymbolId>::<edgeKind>::unresolved:`).
61
+ */
62
+ export declare function deriveOpenSipEdgeId(input: OpenSipEdgeIdInput): string;
63
+ /**
64
+ * Project a repo-relative file path to the canonical module path the
65
+ * opensip indexer stores in `code_symbols.module_path`. Mirrors
66
+ * `filePathToModulePath(...)` in
67
+ * `packages/code-graph/src/module-path.ts`.
68
+ *
69
+ * Rule: strip the extension if the last `.` lives in the basename;
70
+ * normalize Windows backslashes to POSIX `/`.
71
+ */
72
+ export declare function deriveOpenSipModulePath(filePath: string): string;
73
+ //# sourceMappingURL=opensip-id-derivation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opensip-id-derivation.d.ts","sourceRoot":"","sources":["../../src/render/opensip-id-derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAGzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAIrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKhE"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @fileoverview Engine-side mirror of opensip's content-derived
3
+ * symbol-ID / edge-ID hashing. Byte-for-byte equivalent to
4
+ * `computeSymbolId` / `computeEdgeId` in
5
+ * `packages/code-graph/src/symbol-id.ts` so engine-emitted catalog
6
+ * rows collide with existing substrate rows under `ON CONFLICT DO
7
+ * UPDATE` (idempotent re-ingestion).
8
+ *
9
+ * Algorithm is intentionally trivial: canonicalize input fields into a
10
+ * `::`-separated string and sha256. Determinism (rename-invariant
11
+ * stability) is the load-bearing property — the ID changes when the
12
+ * symbol identity changes (rename, module move, arity change) but not
13
+ * when the file is renamed or lines shift.
14
+ *
15
+ * Cross-repo source-of-truth risk: if opensip's algorithm changes,
16
+ * this mirror desynchronizes silently. The local golden tests pin this
17
+ * package's implementation; a cross-repo parity test should compare it
18
+ * against opensip's `computeSymbolId` / `computeEdgeId` whenever that
19
+ * source is available. The engine-package version (carried in
20
+ * `CatalogExportProvenance.engineVersion`) documents the cutover boundary
21
+ * if the algorithm ever evolves.
22
+ *
23
+ * Phase 3 Task 3.2 per DEC-498.
24
+ */
25
+ import { createHash } from 'node:crypto';
26
+ /**
27
+ * Derive opensip's symbol ID for a function / class / method / module.
28
+ *
29
+ * Mirrors `computeSymbolId(...)` byte-for-byte.
30
+ */
31
+ export function deriveOpenSipSymbolId(input) {
32
+ const key = `${input.repoId}::${input.modulePath}::${input.kind}::${input.qualifiedName}::${input.arity ?? ''}`;
33
+ return createHash('sha256').update(key).digest('hex');
34
+ }
35
+ /**
36
+ * Derive opensip's edge ID. Unresolved targets are canonicalized as
37
+ * `unresolved:<qname>` so two distinct unresolved calls don't collide
38
+ * on the same fromSymbolId + edgeKind.
39
+ *
40
+ * Mirrors `computeEdgeId(...)` byte-for-byte — including the subtle
41
+ * empty-string fallback when both `toSymbolId` and
42
+ * `toQualifiedNameUnresolved` are `null` (the key becomes
43
+ * `<fromSymbolId>::<edgeKind>::unresolved:`).
44
+ */
45
+ export function deriveOpenSipEdgeId(input) {
46
+ const target = input.toSymbolId ?? `unresolved:${input.toQualifiedNameUnresolved ?? ''}`;
47
+ const key = `${input.fromSymbolId}::${input.edgeKind}::${target}`;
48
+ return createHash('sha256').update(key).digest('hex');
49
+ }
50
+ /**
51
+ * Project a repo-relative file path to the canonical module path the
52
+ * opensip indexer stores in `code_symbols.module_path`. Mirrors
53
+ * `filePathToModulePath(...)` in
54
+ * `packages/code-graph/src/module-path.ts`.
55
+ *
56
+ * Rule: strip the extension if the last `.` lives in the basename;
57
+ * normalize Windows backslashes to POSIX `/`.
58
+ */
59
+ export function deriveOpenSipModulePath(filePath) {
60
+ const lastDot = filePath.lastIndexOf('.');
61
+ const lastSep = Math.max(filePath.lastIndexOf('/'), filePath.lastIndexOf('\\'));
62
+ const noExt = lastDot > lastSep ? filePath.slice(0, lastDot) : filePath;
63
+ return noExt.replaceAll('\\', '/');
64
+ }
65
+ //# sourceMappingURL=opensip-id-derivation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opensip-id-derivation.js","sourceRoot":"","sources":["../../src/render/opensip-id-derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyBzC;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA2B;IAC/D,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;IAChH,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAyB;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,IAAI,cAAc,KAAK,CAAC,yBAAyB,IAAI,EAAE,EAAE,CAAC;IACzF,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;IAClE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxE,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @fileoverview Rule-ID mapping — engine slug → OpenSIP-convention rule ID.
3
+ *
4
+ * The engine's `Rule.slug` follows the pattern `graph:<rule-slug>` (e.g.
5
+ * `graph:orphan-subtree`) per `engine/src/types.ts`. OpenSIP's rule-ID
6
+ * convention is `<package>.<rule-family>.<rule-id>` — a three-segment
7
+ * dot-separated form that lets the reconciler classify findings by family
8
+ * (dead-code vs duplication vs safety, etc.) without parsing message text.
9
+ *
10
+ * For graph-emitted findings, the first segment is always `graph` (the
11
+ * source package). The second segment is the rule family the engine rule
12
+ * belongs to (`dead-code`, `duplication`, `safety`). The third segment
13
+ * is the specific rule.
14
+ *
15
+ * The mapping is a frozen constant — adding a new rule to the engine
16
+ * requires updating this table explicitly. An unknown slug throws a typed
17
+ * error so a missing mapping fails loudly at SARIF emission rather than
18
+ * silently producing a wrong rule ID downstream.
19
+ *
20
+ * Co-located with the SARIF emitter (Task 2.2) so the conversion is
21
+ * testable in isolation. Phase 2 Task 2.1 per DEC-498.
22
+ */
23
+ /**
24
+ * Mapping from engine `Rule.slug` to OpenSIP-convention rule ID.
25
+ *
26
+ * Every entry in `engine/src/rules/registry.ts`'s `BUILT_IN_RULES` MUST
27
+ * have an entry here. Tests in `__tests__/render/rule-id-mapping.test.ts`
28
+ * enforce coverage by iterating `currentRules()`.
29
+ */
30
+ export declare const RULE_ID_MAPPING: Readonly<Record<string, string>>;
31
+ /**
32
+ * OpenSIP-convention rule ID regex. Three dot-separated segments, lowercase
33
+ * kebab-case allowed in each segment. The SARIF emitter asserts every
34
+ * `result.ruleId` matches this; tests verify the regex against every
35
+ * mapping entry.
36
+ */
37
+ export declare const OPENSIP_RULE_ID_REGEX: RegExp;
38
+ /**
39
+ * Translate an engine slug to its OpenSIP-convention rule ID.
40
+ *
41
+ * @throws {ValidationError} when `slug` is not in `RULE_ID_MAPPING`. This
42
+ * is a programmer error (a rule was added to the engine registry
43
+ * without updating this table), not a runtime input issue — fail loudly
44
+ * at SARIF emission rather than emit an invalid wire format.
45
+ */
46
+ export declare function mapEngineSlugToOpenSipRuleId(slug: string): string;
47
+ /**
48
+ * Inverse of {@link RULE_ID_MAPPING}: OpenSIP rule ID → engine slug. The
49
+ * mapping is 1:1, so the inverse is unambiguous. Used by the `--workspace`
50
+ * parent to recover engine slugs from child envelopes (whose signals carry
51
+ * the Option-A-mapped OpenSIP rule ID) before building the dashboard session
52
+ * payload, whose per-rule metric columns are keyed on engine slugs.
53
+ */
54
+ export declare const OPENSIP_RULE_ID_TO_ENGINE_SLUG: Readonly<Record<string, string>>;
55
+ /**
56
+ * Translate an OpenSIP-convention rule ID back to its engine slug. Returns
57
+ * the input unchanged when it is already an engine slug (or otherwise
58
+ * unmapped) so callers can pass through signals that were never remapped.
59
+ */
60
+ export declare function mapOpenSipRuleIdToEngineSlug(ruleId: string): string;
61
+ //# sourceMappingURL=rule-id-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-id-mapping.d.ts","sourceRoot":"","sources":["../../src/render/rule-id-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAY3D,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AAEjE;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQjE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE3E,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @fileoverview Rule-ID mapping — engine slug → OpenSIP-convention rule ID.
3
+ *
4
+ * The engine's `Rule.slug` follows the pattern `graph:<rule-slug>` (e.g.
5
+ * `graph:orphan-subtree`) per `engine/src/types.ts`. OpenSIP's rule-ID
6
+ * convention is `<package>.<rule-family>.<rule-id>` — a three-segment
7
+ * dot-separated form that lets the reconciler classify findings by family
8
+ * (dead-code vs duplication vs safety, etc.) without parsing message text.
9
+ *
10
+ * For graph-emitted findings, the first segment is always `graph` (the
11
+ * source package). The second segment is the rule family the engine rule
12
+ * belongs to (`dead-code`, `duplication`, `safety`). The third segment
13
+ * is the specific rule.
14
+ *
15
+ * The mapping is a frozen constant — adding a new rule to the engine
16
+ * requires updating this table explicitly. An unknown slug throws a typed
17
+ * error so a missing mapping fails loudly at SARIF emission rather than
18
+ * silently producing a wrong rule ID downstream.
19
+ *
20
+ * Co-located with the SARIF emitter (Task 2.2) so the conversion is
21
+ * testable in isolation. Phase 2 Task 2.1 per DEC-498.
22
+ */
23
+ import { ValidationError } from '@opensip-cli/core';
24
+ /**
25
+ * Mapping from engine `Rule.slug` to OpenSIP-convention rule ID.
26
+ *
27
+ * Every entry in `engine/src/rules/registry.ts`'s `BUILT_IN_RULES` MUST
28
+ * have an entry here. Tests in `__tests__/render/rule-id-mapping.test.ts`
29
+ * enforce coverage by iterating `currentRules()`.
30
+ */
31
+ export const RULE_ID_MAPPING = Object.freeze({
32
+ 'graph:orphan-subtree': 'graph.dead-code.orphan-subtree',
33
+ 'graph:duplicated-function-body': 'graph.duplication.duplicated-function-body',
34
+ 'graph:no-side-effect-path': 'graph.dead-code.no-side-effect-path',
35
+ 'graph:always-throws-branch': 'graph.safety.always-throws-branch',
36
+ 'graph:test-only-reachable': 'graph.dead-code.test-only-reachable',
37
+ // Plan D structural rules (new slugs → reversible naming pre-baseline).
38
+ 'graph:large-function': 'graph.complexity.large-function',
39
+ 'graph:wide-function': 'graph.complexity.wide-function',
40
+ 'graph:high-blast-untested': 'graph.coverage.high-blast-untested',
41
+ 'graph:cycle': 'graph.architecture.cycle',
42
+ 'graph:unexpected-coupling': 'graph.architecture.unexpected-coupling',
43
+ });
44
+ /**
45
+ * OpenSIP-convention rule ID regex. Three dot-separated segments, lowercase
46
+ * kebab-case allowed in each segment. The SARIF emitter asserts every
47
+ * `result.ruleId` matches this; tests verify the regex against every
48
+ * mapping entry.
49
+ */
50
+ export const OPENSIP_RULE_ID_REGEX = /^graph\.[a-z-]+\.[a-z-]+$/;
51
+ /**
52
+ * Translate an engine slug to its OpenSIP-convention rule ID.
53
+ *
54
+ * @throws {ValidationError} when `slug` is not in `RULE_ID_MAPPING`. This
55
+ * is a programmer error (a rule was added to the engine registry
56
+ * without updating this table), not a runtime input issue — fail loudly
57
+ * at SARIF emission rather than emit an invalid wire format.
58
+ */
59
+ export function mapEngineSlugToOpenSipRuleId(slug) {
60
+ const mapped = RULE_ID_MAPPING[slug];
61
+ if (mapped === undefined) {
62
+ throw new ValidationError(`No OpenSIP rule-ID mapping for engine slug "${slug}". Add an entry to RULE_ID_MAPPING in engine/src/render/rule-id-mapping.ts.`);
63
+ }
64
+ return mapped;
65
+ }
66
+ /**
67
+ * Inverse of {@link RULE_ID_MAPPING}: OpenSIP rule ID → engine slug. The
68
+ * mapping is 1:1, so the inverse is unambiguous. Used by the `--workspace`
69
+ * parent to recover engine slugs from child envelopes (whose signals carry
70
+ * the Option-A-mapped OpenSIP rule ID) before building the dashboard session
71
+ * payload, whose per-rule metric columns are keyed on engine slugs.
72
+ */
73
+ export const OPENSIP_RULE_ID_TO_ENGINE_SLUG = Object.freeze(Object.fromEntries(Object.entries(RULE_ID_MAPPING).map(([slug, ruleId]) => [ruleId, slug])));
74
+ /**
75
+ * Translate an OpenSIP-convention rule ID back to its engine slug. Returns
76
+ * the input unchanged when it is already an engine slug (or otherwise
77
+ * unmapped) so callers can pass through signals that were never remapped.
78
+ */
79
+ export function mapOpenSipRuleIdToEngineSlug(ruleId) {
80
+ return OPENSIP_RULE_ID_TO_ENGINE_SLUG[ruleId] ?? ruleId;
81
+ }
82
+ //# sourceMappingURL=rule-id-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-id-mapping.js","sourceRoot":"","sources":["../../src/render/rule-id-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC7E,sBAAsB,EAAE,gCAAgC;IACxD,gCAAgC,EAAE,4CAA4C;IAC9E,2BAA2B,EAAE,qCAAqC;IAClE,4BAA4B,EAAE,mCAAmC;IACjE,2BAA2B,EAAE,qCAAqC;IAClE,wEAAwE;IACxE,sBAAsB,EAAE,iCAAiC;IACzD,qBAAqB,EAAE,gCAAgC;IACvD,2BAA2B,EAAE,oCAAoC;IACjE,aAAa,EAAE,0BAA0B;IACzC,2BAA2B,EAAE,wCAAwC;CACtE,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAY;IACvD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CACvB,+CAA+C,IAAI,6EAA6E,CACjI,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAqC,MAAM,CAAC,MAAM,CAC3F,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAC5F,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAc;IACzD,OAAO,8BAA8B,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Package-aware callee resolution.
3
+ *
4
+ * A call edge stores its target as a `bodyHash`, which is a CONTENT hash:
5
+ * two functions with identical bodies in different packages share one hash.
6
+ * Looking a callee up by hash alone therefore mis-attributes its package
7
+ * whenever bodies collide (the cause of impossible coupling edges like
8
+ * `core→fitness`). `resolveCallee` disambiguates such a hash to the
9
+ * occurrence the caller can actually reach, deterministically.
10
+ *
11
+ * Pure, dependency-free (no node imports) so the same logic can be mirrored
12
+ * verbatim in the dashboard's browser-side coupling view.
13
+ */
14
+ import type { FunctionOccurrence, Indexes } from './types.js';
15
+ /**
16
+ * The first path segment under `packages/` — the unit the coupling grid
17
+ * groups by (so `packages/languages/lang-typescript/...` → `languages`,
18
+ * `packages/graph/graph-typescript/...` → `graph`). Returns `'<unknown>'`
19
+ * for paths outside `packages/`. Must match the dashboard's `packageOfPath`.
20
+ */
21
+ export declare function packageOf(filePath: string): string;
22
+ /**
23
+ * The package an occurrence belongs to. Prefers the build-time-stamped
24
+ * `occurrence.package` (nearest `package.json` name — accurate for any repo
25
+ * layout); falls back to the `packages/<segment>` path heuristic for
26
+ * legacy catalogs that predate the stamp.
27
+ */
28
+ export declare function pkgOf(occ: Pick<FunctionOccurrence, 'package' | 'filePath'>): string;
29
+ /**
30
+ * A package-unique, collision-free id for a single occurrence — its source
31
+ * location `${filePath}:${line}:${column}`. Unlike `bodyHash` (a CONTENT hash
32
+ * that two functions with identical bodies in different packages share), every
33
+ * occurrence has a unique declaration site, so occId never collapses distinct
34
+ * functions. Used as the SCC/cycle graph's node identity (the body-hash
35
+ * cross-package phantom fix) and keyed into `Indexes.byOccId`.
36
+ */
37
+ export declare function occId(occ: Pick<FunctionOccurrence, 'filePath' | 'line' | 'column'>): string;
38
+ /** The package groups the caller's module imports (empty in fast mode). */
39
+ export declare function callerImportedPackages(callerOcc: FunctionOccurrence, indexes: Indexes): ReadonlySet<string>;
40
+ /**
41
+ * Resolve a call edge's target `bodyHash` to the callee occurrence the
42
+ * caller can actually reach, disambiguating body-hash collisions across
43
+ * packages. Order:
44
+ * 1. an occurrence in the caller's own package;
45
+ * 2. an occurrence in a package the caller's module imports;
46
+ * 3. deterministic fallback — lowest `qualifiedName`.
47
+ * Returns `undefined` when the hash has no occurrences.
48
+ */
49
+ export declare function resolveCallee(targetHash: string, callerOcc: FunctionOccurrence, indexes: Indexes): FunctionOccurrence | undefined;
50
+ //# sourceMappingURL=resolve-callee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-callee.d.ts","sourceRoot":"","sources":["../src/resolve-callee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI9D;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,UAAU,CAAC,GAAG,MAAM,CAEnF;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG,MAAM,CAE3F;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,OAAO,GACf,WAAW,CAAC,MAAM,CAAC,CAErB;AAID;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,OAAO,GACf,kBAAkB,GAAG,SAAS,CAgBhC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Package-aware callee resolution.
3
+ *
4
+ * A call edge stores its target as a `bodyHash`, which is a CONTENT hash:
5
+ * two functions with identical bodies in different packages share one hash.
6
+ * Looking a callee up by hash alone therefore mis-attributes its package
7
+ * whenever bodies collide (the cause of impossible coupling edges like
8
+ * `core→fitness`). `resolveCallee` disambiguates such a hash to the
9
+ * occurrence the caller can actually reach, deterministically.
10
+ *
11
+ * Pure, dependency-free (no node imports) so the same logic can be mirrored
12
+ * verbatim in the dashboard's browser-side coupling view.
13
+ */
14
+ const PACKAGE_RE = /^packages\/([^/]+)\//;
15
+ /**
16
+ * The first path segment under `packages/` — the unit the coupling grid
17
+ * groups by (so `packages/languages/lang-typescript/...` → `languages`,
18
+ * `packages/graph/graph-typescript/...` → `graph`). Returns `'<unknown>'`
19
+ * for paths outside `packages/`. Must match the dashboard's `packageOfPath`.
20
+ */
21
+ export function packageOf(filePath) {
22
+ const m = PACKAGE_RE.exec(filePath);
23
+ return m ? m[1] : '<unknown>';
24
+ }
25
+ /**
26
+ * The package an occurrence belongs to. Prefers the build-time-stamped
27
+ * `occurrence.package` (nearest `package.json` name — accurate for any repo
28
+ * layout); falls back to the `packages/<segment>` path heuristic for
29
+ * legacy catalogs that predate the stamp.
30
+ */
31
+ export function pkgOf(occ) {
32
+ return occ.package ?? packageOf(occ.filePath);
33
+ }
34
+ /**
35
+ * A package-unique, collision-free id for a single occurrence — its source
36
+ * location `${filePath}:${line}:${column}`. Unlike `bodyHash` (a CONTENT hash
37
+ * that two functions with identical bodies in different packages share), every
38
+ * occurrence has a unique declaration site, so occId never collapses distinct
39
+ * functions. Used as the SCC/cycle graph's node identity (the body-hash
40
+ * cross-package phantom fix) and keyed into `Indexes.byOccId`.
41
+ */
42
+ export function occId(occ) {
43
+ return `${occ.filePath}:${String(occ.line)}:${String(occ.column)}`;
44
+ }
45
+ /** The package groups the caller's module imports (empty in fast mode). */
46
+ export function callerImportedPackages(callerOcc, indexes) {
47
+ return indexes.importedPackagesByFile.get(callerOcc.filePath) ?? EMPTY_SET;
48
+ }
49
+ const EMPTY_SET = new Set();
50
+ /**
51
+ * Resolve a call edge's target `bodyHash` to the callee occurrence the
52
+ * caller can actually reach, disambiguating body-hash collisions across
53
+ * packages. Order:
54
+ * 1. an occurrence in the caller's own package;
55
+ * 2. an occurrence in a package the caller's module imports;
56
+ * 3. deterministic fallback — lowest `qualifiedName`.
57
+ * Returns `undefined` when the hash has no occurrences.
58
+ */
59
+ export function resolveCallee(targetHash, callerOcc, indexes) {
60
+ const candidates = indexes.occurrencesByHash.get(targetHash);
61
+ if (!candidates || candidates.length === 0)
62
+ return undefined;
63
+ if (candidates.length === 1)
64
+ return candidates[0];
65
+ const callerPkg = pkgOf(callerOcc);
66
+ const samePackage = candidates.filter((c) => pkgOf(c) === callerPkg);
67
+ if (samePackage.length > 0)
68
+ return lowestByQualifiedName(samePackage);
69
+ const imported = callerImportedPackages(callerOcc, indexes);
70
+ if (imported.size > 0) {
71
+ const inImported = candidates.filter((c) => imported.has(pkgOf(c)));
72
+ if (inImported.length > 0)
73
+ return lowestByQualifiedName(inImported);
74
+ }
75
+ return lowestByQualifiedName(candidates);
76
+ }
77
+ function lowestByQualifiedName(occs) {
78
+ return occs.reduce((lo, c) => (c.qualifiedName < lo.qualifiedName ? c : lo));
79
+ }
80
+ //# sourceMappingURL=resolve-callee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-callee.js","sourceRoot":"","sources":["../src/resolve-callee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,GAAqD;IACzE,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAC,GAA6D;IACjF,OAAO,GAAG,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,sBAAsB,CACpC,SAA6B,EAC7B,OAAgB;IAEhB,OAAO,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;AAC7E,CAAC;AAED,MAAM,SAAS,GAAwB,IAAI,GAAG,EAAU,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,SAA6B,EAC7B,OAAgB;IAEhB,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACrE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAEtE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAmC;IAChE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @fileoverview Shared rule-trigger fixture for the golden-fingerprint and
3
+ * signal-output snapshot tests.
4
+ *
5
+ * Builds one `Catalog` whose occurrences collectively trigger the original
6
+ * five-rule golden set:
7
+ * - `graph:orphan-subtree` — `orphanFn` (unreachable, no callers)
8
+ * - `graph:test-only-reachable` — `testHelperFn` (reached only from a test file)
9
+ * - `graph:no-side-effect-path` — `pureFn` (pure, ≥2 calls, span ≥10, discarded caller)
10
+ * - `graph:always-throws-branch` — `throwerFn` (every call is a `throw new …`)
11
+ * - `graph:duplicated-function-body` — `dupA`/`dupB`/`dupC` (same bodyHash across 3 packages)
12
+ *
13
+ * The shape mirrors `rule-behaviors.test.ts`'s builders. Locations are fixed
14
+ * so the fingerprint multiset (`ruleId|file|line|col`) is deterministic.
15
+ */
16
+ import type { Catalog } from '../../../types.js';
17
+ /**
18
+ * Build the all-rules trigger catalog. Each occurrence's location is fixed so
19
+ * the emitted fingerprints are stable.
20
+ */
21
+ export declare function buildAllRulesFixture(): Catalog;
22
+ //# sourceMappingURL=catalog.fixture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.fixture.d.ts","sourceRoot":"","sources":["../../../../src/rules/__tests__/__fixtures__/catalog.fixture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,mBAAmB,CAAC;AA6C/E;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAuF9C"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * @fileoverview Shared rule-trigger fixture for the golden-fingerprint and
3
+ * signal-output snapshot tests.
4
+ *
5
+ * Builds one `Catalog` whose occurrences collectively trigger the original
6
+ * five-rule golden set:
7
+ * - `graph:orphan-subtree` — `orphanFn` (unreachable, no callers)
8
+ * - `graph:test-only-reachable` — `testHelperFn` (reached only from a test file)
9
+ * - `graph:no-side-effect-path` — `pureFn` (pure, ≥2 calls, span ≥10, discarded caller)
10
+ * - `graph:always-throws-branch` — `throwerFn` (every call is a `throw new …`)
11
+ * - `graph:duplicated-function-body` — `dupA`/`dupB`/`dupC` (same bodyHash across 3 packages)
12
+ *
13
+ * The shape mirrors `rule-behaviors.test.ts`'s builders. Locations are fixed
14
+ * so the fingerprint multiset (`ruleId|file|line|col`) is deterministic.
15
+ */
16
+ function occ(over) {
17
+ return {
18
+ qualifiedName: `${over.filePath}.${over.simpleName}`,
19
+ line: 1,
20
+ column: 0,
21
+ endLine: 2,
22
+ kind: 'function-declaration',
23
+ params: [],
24
+ returnType: null,
25
+ enclosingClass: null,
26
+ decorators: [],
27
+ visibility: 'exported',
28
+ inTestFile: false,
29
+ definedInGenerated: false,
30
+ calls: [],
31
+ ...over,
32
+ };
33
+ }
34
+ function edge(to, over = {}) {
35
+ return { to: [to], line: 2, column: 1, resolution: 'static', confidence: 'high', text: `${to}()`, ...over };
36
+ }
37
+ function catalogOf(occs) {
38
+ const functions = {};
39
+ for (const o of occs) {
40
+ const bucket = functions[o.simpleName];
41
+ if (bucket)
42
+ bucket.push(o);
43
+ else
44
+ functions[o.simpleName] = [o];
45
+ }
46
+ return {
47
+ version: '3.0',
48
+ tool: 'graph',
49
+ language: 'typescript',
50
+ builtAt: 'x',
51
+ cacheKey: 'k',
52
+ resolutionMode: 'exact',
53
+ functions,
54
+ };
55
+ }
56
+ /**
57
+ * Build the all-rules trigger catalog. Each occurrence's location is fixed so
58
+ * the emitted fingerprints are stable.
59
+ */
60
+ export function buildAllRulesFixture() {
61
+ // ── orphan-subtree: a module-local function with no callers and no
62
+ // incoming reachability. Not exported (exported orphans are skipped),
63
+ // no decorators, not in a test file.
64
+ const orphanFn = occ({
65
+ bodyHash: 'ORPHAN',
66
+ simpleName: 'orphanFn',
67
+ filePath: 'packages/a/src/orphan.ts',
68
+ line: 10,
69
+ column: 2,
70
+ visibility: 'module-local',
71
+ });
72
+ // ── test-only-reachable: a module-local production function whose only
73
+ // caller lives in a test file.
74
+ const testHelperFn = occ({
75
+ bodyHash: 'TESTHELP',
76
+ simpleName: 'testHelperFn',
77
+ filePath: 'packages/a/src/helper.ts',
78
+ line: 20,
79
+ column: 4,
80
+ visibility: 'module-local',
81
+ });
82
+ const testCaller = occ({
83
+ bodyHash: 'TESTCALLER',
84
+ simpleName: 'testCaller',
85
+ filePath: 'packages/a/src/helper.test.ts',
86
+ line: 5,
87
+ column: 0,
88
+ inTestFile: true,
89
+ visibility: 'module-local',
90
+ calls: [edge('TESTHELP')],
91
+ });
92
+ // ── no-side-effect-path: a pure exported function (≥2 calls, span ≥10, no
93
+ // unresolved edges, pure callees) whose caller discards the return value.
94
+ const pureFn = occ({
95
+ bodyHash: 'PURE',
96
+ simpleName: 'pureCompute',
97
+ filePath: 'packages/a/src/pure.ts',
98
+ line: 30,
99
+ column: 0,
100
+ endLine: 45,
101
+ calls: [edge('LEAF1'), edge('LEAF2')],
102
+ });
103
+ const leaf1 = occ({ bodyHash: 'LEAF1', simpleName: 'leaf1', filePath: 'packages/a/src/pure.ts', line: 50, column: 0, visibility: 'module-local' });
104
+ const leaf2 = occ({ bodyHash: 'LEAF2', simpleName: 'leaf2', filePath: 'packages/a/src/pure.ts', line: 55, column: 0, visibility: 'module-local' });
105
+ const pureCaller = occ({
106
+ bodyHash: 'PURECALLER',
107
+ simpleName: 'pureDriver',
108
+ filePath: 'packages/a/src/pure.ts',
109
+ line: 60,
110
+ column: 0,
111
+ visibility: 'module-local',
112
+ calls: [edge('PURE', { discarded: true })],
113
+ });
114
+ // ── always-throws-branch: every documented call site is a `throw new …`.
115
+ const throwerFn = occ({
116
+ bodyHash: 'THROWER',
117
+ simpleName: 'alwaysThrows',
118
+ filePath: 'packages/a/src/throws.ts',
119
+ line: 70,
120
+ column: 0,
121
+ visibility: 'module-local',
122
+ calls: [edge('Error', { resolution: 'unknown', confidence: 'low', text: 'throw new Error("boom")' })],
123
+ });
124
+ // ── duplicated-function-body: same bodyHash across THREE distinct packages
125
+ // (≥ default minCrossPackageDuplicatePackages = 3) → one aggregate signal.
126
+ const dupA = occ({ bodyHash: 'DUP', simpleName: 'shared', filePath: 'packages/a/src/dup.ts', line: 80, column: 0, endLine: 90 });
127
+ const dupB = occ({ bodyHash: 'DUP', simpleName: 'shared', filePath: 'packages/b/src/dup.ts', line: 80, column: 0, endLine: 90 });
128
+ const dupC = occ({ bodyHash: 'DUP', simpleName: 'shared', filePath: 'packages/c/src/dup.ts', line: 80, column: 0, endLine: 90 });
129
+ return catalogOf([
130
+ orphanFn,
131
+ testHelperFn,
132
+ testCaller,
133
+ pureFn,
134
+ leaf1,
135
+ leaf2,
136
+ pureCaller,
137
+ throwerFn,
138
+ dupA,
139
+ dupB,
140
+ dupC,
141
+ ]);
142
+ }
143
+ //# sourceMappingURL=catalog.fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.fixture.js","sourceRoot":"","sources":["../../../../src/rules/__tests__/__fixtures__/catalog.fixture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,SAAS,GAAG,CACV,IAA8F;IAE9F,OAAO;QACL,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;QACpD,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,UAAU;QACtB,UAAU,EAAE,KAAK;QACjB,kBAAkB,EAAE,KAAK;QACzB,KAAK,EAAE,EAAE;QACT,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,EAAU,EAAE,OAA0B,EAAE;IACpD,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;AAC9G,CAAC;AAED,SAAS,SAAS,CAAC,IAAmC;IACpD,MAAM,SAAS,GAAyC,EAAE,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YACtB,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,GAAG;QACb,cAAc,EAAE,OAAO;QACvB,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,oEAAoE;IACpE,yEAAyE;IACzE,wCAAwC;IACxC,MAAM,QAAQ,GAAG,GAAG,CAAC;QACnB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,0BAA0B;QACpC,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,cAAc;KAC3B,CAAC,CAAC;IAEH,wEAAwE;IACxE,kCAAkC;IAClC,MAAM,YAAY,GAAG,GAAG,CAAC;QACvB,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,0BAA0B;QACpC,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,cAAc;KAC3B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,GAAG,CAAC;QACrB,QAAQ,EAAE,YAAY;QACtB,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,+BAA+B;QACzC,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,cAAc;QAC1B,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1B,CAAC,CAAC;IAEH,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,MAAM,GAAG,GAAG,CAAC;QACjB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,wBAAwB;QAClC,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KACtC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;IACnJ,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;IACnJ,MAAM,UAAU,GAAG,GAAG,CAAC;QACrB,QAAQ,EAAE,YAAY;QACtB,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,wBAAwB;QAClC,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,cAAc;QAC1B,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC3C,CAAC,CAAC;IAEH,0EAA0E;IAC1E,MAAM,SAAS,GAAG,GAAG,CAAC;QACpB,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,0BAA0B;QACpC,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,cAAc;QAC1B,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;KACtG,CAAC,CAAC;IAEH,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACjI,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACjI,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAEjI,OAAO,SAAS,CAAC;QACf,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,MAAM;QACN,KAAK;QACL,KAAK;QACL,UAAU;QACV,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,IAAI;KACL,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * createGraphSignal — stamps source/ruleId + applies the override, reproducing the
3
+ * signal a rule used to hand-assemble (release 2.13.0, §5.9). Byte-equality with
4
+ * the former `createSignal({ source:'graph', ruleId, severity:
5
+ * applySeverityOverride(...) })` shape (modulo the generated id/timestamp).
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=create-graph-signal.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-graph-signal.test.d.ts","sourceRoot":"","sources":["../../../src/rules/__tests__/create-graph-signal.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}