@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,274 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * graph-runner — owns the live-view state machine for `opensip graph`.
4
+ *
5
+ * Layer 5 Phase 3 lifted the graph live view out of `opensip-cli`.
6
+ * The state machine (loading → running → done | error), `runGraph`
7
+ * orchestration, `buildUnifiedReportLines` post-call, and the Ink/React
8
+ * render tree live here, in the package that owns the graph command
9
+ * surface. Adding a fourth tool with a live view requires zero CLI
10
+ * edits — each tool ships its own renderer and registers it via
11
+ * `cli.registerLiveView(key, renderer)`.
12
+ *
13
+ * Progress rendering is the shared `<LiveProgress>` from
14
+ * `@opensip-cli/cli-ui` (ADR-0016), driven in `phases` mode: graph's
15
+ * 7 fixed pipeline stages map onto the universal `ProgressEvent` stream.
16
+ * The former graph-local StageChecklist/StageLine/RunningStageLine are
17
+ * gone. The build runs OFF the main process (ADR-0028): the runner forks
18
+ * the CLI to `graph-run-worker` via `runOffThreadOrInProcess`, which
19
+ * re-bootstraps the scope, runs the heavy build, and streams stage progress
20
+ * + the slim {@link LiveGraphOutput} back over IPC — so this process stays
21
+ * free to animate the spinner + 80ms clock instead of freezing under the
22
+ * type-check. It falls back to the in-process closure when forking is
23
+ * disabled (`OPENSIP_CLI_NO_WORKER`) or the fork fails; both paths reduce
24
+ * to the same `{ signals, reportLines }` payload.
25
+ *
26
+ * Single exit-code write path: error outcomes route through the
27
+ * supplied `setExitCode` callback (`ToolCliContext.setExitCode`) so the
28
+ * CLI keeps its only `process.exitCode` mutator.
29
+ */
30
+ import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
31
+ import { tmpdir } from 'node:os';
32
+ import { join } from 'node:path';
33
+ import { Banner, ClockProvider, ErrorMessage, LiveProgress, normalizeBannerSize, ProjectHeader, renderToInk, RunFooterHints, RunHeader, RunSummary, RunTimingProvider, ThemeProvider, UpdateHint, VERBOSE_DETAIL_HINT, viewVerboseLines, } from '@opensip-cli/cli-ui';
34
+ import { runOffThreadOrInProcess, currentScope, } from '@opensip-cli/core';
35
+ import { Box, Text, useApp, render } from 'ink';
36
+ import { useEffect, useState } from 'react';
37
+ import { assertFinalizedAcrossBoundary } from './apply-suppressions.js';
38
+ import { buildGraphEnvelope } from './build-envelope.js';
39
+ import { SHARDED_STAGE_LABELS, STAGE_LABELS, toProgressEvent } from './graph-progress.js';
40
+ import { buildLiveGraphOutput, contributionFromSignals, evaluatedRuleSlugs, runShardedLiveBuild, } from './graph.js';
41
+ import { GRAPH_STAGES, runGraph } from './orchestrate.js';
42
+ const GRAPH_TOOL_TITLE = 'Code Graph';
43
+ const GRAPH_TOOL_DESCRIPTION = 'Building call-graph from source';
44
+ const STAGE_RUNNING_DETAIL = {
45
+ discover: 'Scanning source tree...',
46
+ parse: 'Building program AST...',
47
+ walk: 'Walking files for occurrences...',
48
+ resolve: 'Binding symbols to edges...',
49
+ index: 'Computing reverse indexes...',
50
+ features: 'Computing feature columns...',
51
+ rules: 'Evaluating rule set...',
52
+ };
53
+ // Sharded-engine running sub-labels — mirror SHARDED_STAGE_LABELS: the parallel
54
+ // shard build (parse), the fragment merge (walk), the cross-package link (resolve).
55
+ const SHARDED_STAGE_RUNNING_DETAIL = {
56
+ ...STAGE_RUNNING_DETAIL,
57
+ parse: 'Building shards in parallel...',
58
+ walk: 'Merging shard fragments...',
59
+ resolve: 'Linking cross-package calls...',
60
+ };
61
+ // The phases surface the shared renderer consumes: graph's fixed, ordered stages,
62
+ // each carrying its checklist label + running sub-label. Engine-aware: the sharded
63
+ // pipeline names its stages for what they actually do (Build shards / Merge catalog
64
+ // / Link cross-package) so the checklist reflects the real parallel build, not the
65
+ // single-program "Parse / Walk / Resolve" shape.
66
+ function graphSurface(sharded) {
67
+ const labels = sharded ? SHARDED_STAGE_LABELS : STAGE_LABELS;
68
+ const runningDetail = sharded ? SHARDED_STAGE_RUNNING_DETAIL : STAGE_RUNNING_DETAIL;
69
+ return {
70
+ shape: 'phases',
71
+ stages: GRAPH_STAGES.map((id) => ({
72
+ id,
73
+ label: labels[id],
74
+ runningDetail: runningDetail[id],
75
+ })),
76
+ };
77
+ }
78
+ /** Run the pipeline through the in-process transport, mapping graph events to the
79
+ * shared progress currency and reducing the result to the slim, serializable
80
+ * {@link LiveGraphOutput} the done handler consumes — IDENTICAL to what the
81
+ * off-process worker streams back, so both paths converge on one payload shape.
82
+ * Hoisted to module scope so the emit translation isn't a deeply-nested function
83
+ * inside the runner's effect. */
84
+ async function runGraphWithProgress(args, datastore, emit) {
85
+ const result = await runGraph({
86
+ cwd: args.cwd,
87
+ noCache: args.noCache,
88
+ resolution: args.resolution,
89
+ config: args.config,
90
+ rules: args.rules,
91
+ datastore,
92
+ onProgress: (event) => emit(toProgressEvent(event)),
93
+ });
94
+ // The interactive live view is whole-project against cwd, so cwd is the build
95
+ // root the signals' code.file paths resolve against — pass it as the
96
+ // suppression base so the in-process leg waives `@graph-ignore` identically to
97
+ // the static path (and to the off-process worker, which uses args.cwd too).
98
+ return buildLiveGraphOutput(result, args.cwd);
99
+ }
100
+ function GraphRunner({ args, datastore, setExitCode, onSession, liveContext, }) {
101
+ const { exit } = useApp();
102
+ const [state, setState] = useState({ phase: 'loading' });
103
+ // Engine policy (ADR-0032): sharded is the default, `--exact` opts out. The
104
+ // engine is selected upstream and handed to us as `args.shards` (length > 1 ⇒
105
+ // sharded). Drives BOTH the run transport (in-process vs off-process worker)
106
+ // and the engine-aware checklist labels below. `isTTY` never affects it.
107
+ const sharded = (args.shards?.length ?? 0) > 1;
108
+ useEffect(() => {
109
+ let cancelled = false;
110
+ // Local clock removed for session timing (host RunTimer via liveContext.runSession).
111
+ // Graph keeps its internal stage/partition clocks for profile if needed.
112
+ // Engine policy (ADR-0032): the SHARDED engine is the default; `--exact`
113
+ // opts out. The engine is selected upstream on the dispatch seam (which holds
114
+ // the `cli` context) and handed to us as `args.shards` — `length > 1` ⇒
115
+ // sharded. `isTTY` NEVER affects this decision; we are only choosing the
116
+ // RENDERER's transport here, not the engine.
117
+ //
118
+ // - SHARDED (default): run IN-PROCESS. Its shards are already subprocesses,
119
+ // so the heavy parse/walk/resolve is off the render thread and the main
120
+ // thread stays free to animate the checklist + 80ms clock while it awaits
121
+ // the (I/O-bound) shard pool. No `graph-run-worker` fork needed.
122
+ // - EXACT (`--exact` / not-shardable fallback): run the single-program build
123
+ // OFF the main process (ADR-0028) — fork the CLI to `graph-run-worker`,
124
+ // which streams stage progress + the slim LiveGraphOutput over IPC, so the
125
+ // heavy in-process type-check never freezes the spinner. Falls back to the
126
+ // in-process closure (OPENSIP_CLI_NO_WORKER / fork failure), which
127
+ // reduces to the SAME LiveGraphOutput.
128
+ //
129
+ // Both transports converge on one `LiveGraphOutput` — already crossed the
130
+ // single suppression chokepoint (`buildLiveGraphOutput` → `finalizeGraphSignals`).
131
+ const specDir = mkdtempSync(join(tmpdir(), 'graph-worker-'));
132
+ const specPath = join(specDir, 'spec.json');
133
+ writeFileSync(specPath, JSON.stringify({
134
+ cwd: args.cwd,
135
+ noCache: args.noCache,
136
+ resolution: args.resolution,
137
+ ...(args.recipe === undefined ? {} : { recipe: args.recipe }),
138
+ }), 'utf8');
139
+ const run = runOffThreadOrInProcess({
140
+ // Sharded runs in-process (shards are already subprocesses); exact forks the
141
+ // off-process worker. `preferWorker:false` forces the in-process arm for the
142
+ // sharded path — the descriptor is unused there but still required by the API.
143
+ preferWorker: !sharded,
144
+ descriptor: { command: process.argv[1] ?? '', argv: ['graph-run-worker', specPath] },
145
+ inProcess: (emit) => sharded
146
+ ? runShardedLiveBuild({
147
+ cwd: args.cwd,
148
+ noCache: args.noCache,
149
+ resolution: args.resolution,
150
+ exact: args.exact,
151
+ config: args.config,
152
+ rules: args.rules,
153
+ cliScript: process.argv[1],
154
+ }, args.shards ?? [], datastore, (event) => emit(toProgressEvent(event, true)))
155
+ : runGraphWithProgress(args, datastore, emit),
156
+ });
157
+ setState({ phase: 'running', subscribe: run.onProgress });
158
+ void (async () => {
159
+ try {
160
+ let result;
161
+ try {
162
+ result = await run.result;
163
+ }
164
+ finally {
165
+ rmSync(specDir, { recursive: true, force: true });
166
+ }
167
+ if (cancelled)
168
+ return;
169
+ // `result` already crossed the single suppression chokepoint inside the
170
+ // producer (`buildLiveGraphOutput` → `finalizeGraphSignals`), but the
171
+ // IPC structured-clone dropped the FinalizedSignals brand. Re-stamp it
172
+ // here — an assertion of the prior finalize, NOT a second suppression —
173
+ // so the host record (and the verdict) consume the branded, already-waived signals.
174
+ const finalized = assertFinalizedAcrossBoundary(result.signals, result.suppressedCount);
175
+ // Host-owned persistence (host-owned-run-timing Phase 2): surface the
176
+ // contribution built from the finalized (branded, already-waived)
177
+ // signals; the host persists after the live view exits. Timing is
178
+ // host-stamped from the lifecycle.
179
+ //
180
+ // Use the SHARED contribution builder (the same one the static
181
+ // `executeGraph` dispatch uses) and feed it the run's evaluated rule set
182
+ // (`args.rules`, falling back to the scope registry — exactly what
183
+ // `runGraph` ran). This is what makes a CLEAN interactive run record a
184
+ // PASS row per rule, so the report's graph session detail shows the full
185
+ // rule list instead of an empty "no results" panel — parity with fit.
186
+ onSession?.(contributionFromSignals({ cwd: args.cwd, recipe: args.recipe }, finalized.signals, evaluatedRuleSlugs(args.rules)));
187
+ // Compute the summary for TTY (duration omitted; provider supplies host value).
188
+ const envelope = buildGraphEnvelope({
189
+ signals: finalized.signals,
190
+ runId: currentScope()?.runId ?? '',
191
+ createdAt: new Date().toISOString(),
192
+ });
193
+ const { verdict } = envelope;
194
+ const summary = {
195
+ passed: verdict.passed,
196
+ errors: verdict.summary.errors,
197
+ warnings: verdict.summary.warnings,
198
+ // durationMs omitted for host provider path
199
+ };
200
+ // The worker (or the in-process fallback) already assembled the report
201
+ // lines with includeSummary: false — RunSummary renders the verdict
202
+ // footer in place of the text "== Summary ==" block.
203
+ const reportLines = result.reportLines;
204
+ setState((prev) => ({
205
+ phase: 'done',
206
+ subscribe: prev.phase === 'running' ? prev.subscribe : run.onProgress,
207
+ reportLines,
208
+ summary,
209
+ }));
210
+ setTimeout(() => exit(), 50);
211
+ }
212
+ catch (error) {
213
+ if (cancelled)
214
+ return;
215
+ const message = error instanceof Error ? error.message : String(error);
216
+ setState({ phase: 'error', message });
217
+ setExitCode?.(1);
218
+ setTimeout(() => exit(), 50);
219
+ }
220
+ })();
221
+ return () => {
222
+ cancelled = true;
223
+ };
224
+ }, []);
225
+ // Presentation settings resolved once in the pre-action hook; the live view
226
+ // runs inside that scope. `mini` carries the project path in its box, so the
227
+ // separate ProjectHeader line is dropped for it (matches App.tsx); walkedUp
228
+ // flows in so mini keeps the "(found N levels up)" hint.
229
+ const scope = currentScope();
230
+ const ui = scope?.ui;
231
+ const walkedUp = scope?.projectContext?.walkedUp;
232
+ const bannerSize = normalizeBannerSize(ui?.bannerSize);
233
+ // --quiet suppresses the banner/header chrome (parity with fit/sim).
234
+ const header = args.quiet === true ? null : (_jsxs(_Fragment, { children: [_jsx(Banner, { size: bannerSize, version: ui?.version, projectPath: args.cwd, walkedUp: walkedUp, update: ui?.update }), bannerSize === 'mini' && ui?.update !== undefined && _jsx(UpdateHint, {}), bannerSize !== 'mini' && _jsx(ProjectHeader, { root: args.cwd, walkedUp: walkedUp }), _jsx(RunHeader, { tool: GRAPH_TOOL_TITLE, description: GRAPH_TOOL_DESCRIPTION })] }));
235
+ if (state.phase === 'error') {
236
+ return (_jsxs(Box, { flexDirection: "column", children: [header, _jsx(ErrorMessage, { message: state.message })] }));
237
+ }
238
+ if (state.phase === 'loading') {
239
+ return (_jsxs(Box, { flexDirection: "column", children: [header, _jsx(Box, { paddingLeft: 2, paddingTop: 1, children: _jsx(Text, { dimColor: true, children: "Initializing pipeline..." }) })] }));
240
+ }
241
+ // running | done — the same <LiveProgress> stays mounted across both so its
242
+ // reduced stage state (the ✓ checklist) persists; the done phase adds the
243
+ // summary + footer below it.
244
+ return (_jsxs(Box, { flexDirection: "column", children: [header, _jsx(LiveProgress, { surface: graphSurface(sharded), subscribe: state.subscribe }), state.phase === 'done' && (_jsxs(_Fragment, { children: [args.verbose === true && (_jsx(Box, { flexDirection: "column", paddingTop: 1, children: renderToInk(viewVerboseLines(state.reportLines)) })), (() => {
245
+ const el = (_jsx(RunSummary, { passed: state.summary.passed, errors: state.summary.errors, warnings: state.summary.warnings }));
246
+ return liveContext?.runSession ? (_jsx(RunTimingProvider, { timer: liveContext.runSession.timing, children: el })) : (el);
247
+ })(), args.verbose !== true && (_jsx(RunFooterHints, { hints: [
248
+ VERBOSE_DETAIL_HINT,
249
+ {
250
+ text: 'opensip report for HTML report',
251
+ bold: ['opensip report'],
252
+ },
253
+ ] }))] }))] }));
254
+ }
255
+ /**
256
+ * Render the live `graph` view. Resolves once the underlying Ink app exits with
257
+ * a {@link ToolRunCompletion} carrying the run's `session` contribution (the
258
+ * HOST persists it after this resolves — host-owned-run-timing Phase 2; the
259
+ * component no longer writes the session itself). Graph's cloud egress lives on
260
+ * the static gate path, so the live wrapper returns no envelope.
261
+ *
262
+ * `setExitCode` is the single mutator path on `process.exitCode`; the runner
263
+ * calls it for error outcomes so the CLI's exit-code seam stays the only writer.
264
+ */
265
+ export async function renderGraphLive(args, datastore, options, liveContext) {
266
+ let session;
267
+ const app = render(_jsx(ThemeProvider, { children: _jsx(ClockProvider, { children: _jsx(GraphRunner, { args: args, datastore: datastore, setExitCode: options?.setExitCode, onSession: (c) => {
268
+ session = c;
269
+ }, liveContext: liveContext }) }) }));
270
+ await app.waitUntilExit();
271
+ process.stdout.write('\n');
272
+ return { session };
273
+ }
274
+ //# sourceMappingURL=graph-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-runner.js","sourceRoot":"","sources":["../../src/cli/graph-runner.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Shared graph tracing constants and the span-emitting {@link RunStage} used by
3
+ * the sharded build's worker processes.
4
+ *
5
+ * The sequential orchestrator ({@link file://./orchestrate.ts}) defines its own
6
+ * `runStage` that also drives the live-view progress callback + pressure
7
+ * monitor; it reuses {@link GRAPH_TRACER} from here so both paths emit spans
8
+ * under the same instrumentation scope and `opensip_cli.graph.*` span names.
9
+ *
10
+ * Shard workers have no live view (they run headless in a subprocess), so they
11
+ * use {@link spanRunStage} — span emission without the progress/monitor plumbing.
12
+ * Before this existed the workers used a pass-through that silently dropped span
13
+ * coverage, so multi-package (sharded) builds emitted no per-stage spans at all.
14
+ */
15
+ import { type Attributes } from '@opensip-cli/core';
16
+ import type { RunStage } from './orchestrate/catalog-builder.js';
17
+ /** Instrumentation scope for every graph stage span (sequential and sharded). */
18
+ export declare const GRAPH_TRACER = "opensip-cli-graph";
19
+ /**
20
+ * A {@link RunStage} that emits one span per stage (named
21
+ * `opensip_cli.graph.<stage>`) but does no progress/monitor work — for
22
+ * headless contexts like the shard worker. `baseAttrs` are merged onto every
23
+ * stage span (e.g. the shard id) so spans from parallel workers are
24
+ * distinguishable when they nest under the parent build trace.
25
+ */
26
+ export declare function spanRunStage(baseAttrs?: Attributes): RunStage;
27
+ //# sourceMappingURL=graph-tracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-tracer.d.ts","sourceRoot":"","sources":["../../src/cli/graph-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAEjE,iFAAiF;AACjF,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAEhD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,SAAS,GAAE,UAAe,GAAG,QAAQ,CAYjE"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Shared graph tracing constants and the span-emitting {@link RunStage} used by
3
+ * the sharded build's worker processes.
4
+ *
5
+ * The sequential orchestrator ({@link file://./orchestrate.ts}) defines its own
6
+ * `runStage` that also drives the live-view progress callback + pressure
7
+ * monitor; it reuses {@link GRAPH_TRACER} from here so both paths emit spans
8
+ * under the same instrumentation scope and `opensip_cli.graph.*` span names.
9
+ *
10
+ * Shard workers have no live view (they run headless in a subprocess), so they
11
+ * use {@link spanRunStage} — span emission without the progress/monitor plumbing.
12
+ * Before this existed the workers used a pass-through that silently dropped span
13
+ * coverage, so multi-package (sharded) builds emitted no per-stage spans at all.
14
+ */
15
+ import { withSpanAsync } from '@opensip-cli/core';
16
+ /** Instrumentation scope for every graph stage span (sequential and sharded). */
17
+ export const GRAPH_TRACER = 'opensip-cli-graph';
18
+ /**
19
+ * A {@link RunStage} that emits one span per stage (named
20
+ * `opensip_cli.graph.<stage>`) but does no progress/monitor work — for
21
+ * headless contexts like the shard worker. `baseAttrs` are merged onto every
22
+ * stage span (e.g. the shard id) so spans from parallel workers are
23
+ * distinguishable when they nest under the parent build trace.
24
+ */
25
+ export function spanRunStage(baseAttrs = {}) {
26
+ return ({ stage, fn, attrsFn }) => withSpanAsync(GRAPH_TRACER, `opensip_cli.graph.${stage}`, async (span) => {
27
+ const out = await fn();
28
+ if (attrsFn)
29
+ span.setAttributes(attrsFn(out));
30
+ return out;
31
+ }, { 'opensip_cli.graph.stage': stage, ...baseAttrs });
32
+ }
33
+ //# sourceMappingURL=graph-tracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-tracer.js","sourceRoot":"","sources":["../../src/cli/graph-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAInE,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,YAAwB,EAAE;IACrD,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAChC,aAAa,CACX,YAAY,EACZ,qBAAqB,KAAK,EAAE,EAC5B,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QACvB,IAAI,OAAO;YAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,yBAAyB,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CACnD,CAAC;AACN,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * `graph-run-worker <specPath>` — the headless graph build forked by the live
3
+ * view (ADR-0028). The live runner forks `node <cliScript> graph-run-worker
4
+ * <spec>`; because it runs through the full CLI bootstrap, the language-adapter
5
+ * registry, project, and config are populated in scope exactly as a normal
6
+ * `graph` run — so the build (the heavy TS type-check / parse / walk / resolve)
7
+ * runs OFF the parent's render thread while the parent stays free to animate the
8
+ * stage checklist + 80ms clock.
9
+ *
10
+ * The spec carries only serializable inputs (cwd, resolution, noCache, recipe
11
+ * NAME); the worker re-loads the graph config and re-resolves the recipe → rules
12
+ * itself (rules are functions — they can't cross the boundary), mirroring
13
+ * `executeGraph`'s setup. It streams stage progress over IPC and posts the final
14
+ * {@link LiveGraphOutput} — the slim, serializable `{ signals, reportLines }`
15
+ * payload (a raw `RunGraphResult` can't cross the fork boundary: it carries
16
+ * class-method accumulators + Maps). The parent persists the signals + renders
17
+ * the report lines; the worker does all the heavy build + report assembly.
18
+ * Internal command — the live runner is its only caller.
19
+ */
20
+ import { type CommandSpec, type ToolCliContext } from '@opensip-cli/core';
21
+ /**
22
+ * Read the build spec, re-derive config + rules, run `runGraph` headless, and
23
+ * stream stage progress + the final result over IPC. Never throws to the caller —
24
+ * a failure is sent as a `{ kind: 'error' }` message so the parent rejects cleanly.
25
+ */
26
+ export declare function executeGraphWorker(specPath: string, cli: ToolCliContext): Promise<void>;
27
+ /** `graph-run-worker` — [internal] headless graph build, IPC progress/result. */
28
+ export declare const graphRunWorkerCommandSpec: CommandSpec<unknown, ToolCliContext>;
29
+ //# sourceMappingURL=graph-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-worker.d.ts","sourceRoot":"","sources":["../../src/cli/graph-worker.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,cAAc,EAEpB,MAAM,mBAAmB,CAAC;AAuB3B;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC7F;AAED,iFAAiF;AACjF,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,OAAO,EAAE,cAAc,CAgBzE,CAAC"}
@@ -0,0 +1,86 @@
1
+ // @fitness-ignore-file detached-promises -- this worker's `send()` helper is synchronous (it calls process.send, which returns immediately); the name-based heuristic mistakes the floating send(...) IPC posts for promise-returning calls. The one genuine async call (runGraph) is awaited.
2
+ /**
3
+ * `graph-run-worker <specPath>` — the headless graph build forked by the live
4
+ * view (ADR-0028). The live runner forks `node <cliScript> graph-run-worker
5
+ * <spec>`; because it runs through the full CLI bootstrap, the language-adapter
6
+ * registry, project, and config are populated in scope exactly as a normal
7
+ * `graph` run — so the build (the heavy TS type-check / parse / walk / resolve)
8
+ * runs OFF the parent's render thread while the parent stays free to animate the
9
+ * stage checklist + 80ms clock.
10
+ *
11
+ * The spec carries only serializable inputs (cwd, resolution, noCache, recipe
12
+ * NAME); the worker re-loads the graph config and re-resolves the recipe → rules
13
+ * itself (rules are functions — they can't cross the boundary), mirroring
14
+ * `executeGraph`'s setup. It streams stage progress over IPC and posts the final
15
+ * {@link LiveGraphOutput} — the slim, serializable `{ signals, reportLines }`
16
+ * payload (a raw `RunGraphResult` can't cross the fork boundary: it carries
17
+ * class-method accumulators + Maps). The parent persists the signals + renders
18
+ * the report lines; the worker does all the heavy build + report assembly.
19
+ * Internal command — the live runner is its only caller.
20
+ */
21
+ import { readFileSync } from 'node:fs';
22
+ import { defineCommand, } from '@opensip-cli/core';
23
+ import { resolveRecipeToRules } from '../recipes/resolve.js';
24
+ import { toProgressEvent } from './graph-progress.js';
25
+ import { buildLiveGraphOutput } from './graph.js';
26
+ import { loadGraphConfig, resolveGraphRecipeSelection, runGraph } from './orchestrate.js';
27
+ /** Post one IPC message to the parent (no-op when not forked). */
28
+ function send(msg) {
29
+ process.send?.(msg);
30
+ }
31
+ /**
32
+ * Read the build spec, re-derive config + rules, run `runGraph` headless, and
33
+ * stream stage progress + the final result over IPC. Never throws to the caller —
34
+ * a failure is sent as a `{ kind: 'error' }` message so the parent rejects cleanly.
35
+ */
36
+ export async function executeGraphWorker(specPath, cli) {
37
+ try {
38
+ const args = JSON.parse(readFileSync(specPath, 'utf8'));
39
+ const config = loadGraphConfig(args.cwd);
40
+ const recipeSelection = resolveGraphRecipeSelection(args.cwd, args.recipe);
41
+ const rules = resolveRecipeToRules(recipeSelection.name, {
42
+ tolerant: recipeSelection.tolerant,
43
+ });
44
+ const result = await runGraph({
45
+ cwd: args.cwd,
46
+ noCache: args.noCache,
47
+ resolution: args.resolution,
48
+ config,
49
+ rules,
50
+ datastore: cli.scope.datastore(),
51
+ onProgress: (event) => send({ kind: 'progress', event: toProgressEvent(event) }),
52
+ });
53
+ // Send only the serializable slim payload — a RunGraphResult can't cross the
54
+ // fork boundary (class-method accumulators + Maps). The parent persists the
55
+ // signals + renders from reportLines (ADR-0028).
56
+ //
57
+ // Suppression runs HERE, inside the worker (ADR-0014): buildLiveGraphOutput
58
+ // is the single chokepoint, and the worker holds the build root (args.cwd)
59
+ // plus disk access to read the `@graph-ignore`-directive files. The parent
60
+ // receives an already-waived LiveGraphOutput — it re-stamps the FinalizedSignals
61
+ // brand the IPC structured-clone drops, but performs NO second suppression.
62
+ send({ kind: 'result', value: await buildLiveGraphOutput(result, args.cwd) });
63
+ }
64
+ catch (error) {
65
+ send({
66
+ kind: 'error',
67
+ message: error instanceof Error ? error.message : String(error),
68
+ ...(error instanceof Error && error.stack !== undefined ? { stack: error.stack } : {}),
69
+ });
70
+ }
71
+ }
72
+ /** `graph-run-worker` — [internal] headless graph build, IPC progress/result. */
73
+ export const graphRunWorkerCommandSpec = defineCommand({
74
+ name: 'graph-run-worker',
75
+ description: '[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)',
76
+ commonFlags: [],
77
+ args: [{ name: 'specPath', description: 'Path to a JSON graph build-spec file' }],
78
+ scope: 'project',
79
+ output: 'raw-stream',
80
+ rawStreamReason: 'worker-ipc',
81
+ handler: async (rawOpts, cli) => {
82
+ const specPath = rawOpts._args?.[0] ?? '';
83
+ await executeGraphWorker(specPath, cli);
84
+ },
85
+ });
86
+ //# sourceMappingURL=graph-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-worker.js","sourceRoot":"","sources":["../../src/cli/graph-worker.ts"],"names":[],"mappings":"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"}