@n-dx/core 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 (1902) hide show
  1. package/LICENSE +96 -0
  2. package/README.md +214 -0
  3. package/ci.js +1243 -0
  4. package/claude-integration.js +331 -0
  5. package/cli.js +975 -0
  6. package/config.js +1054 -0
  7. package/export.js +509 -0
  8. package/help.js +1051 -0
  9. package/package.json +93 -0
  10. package/packages/hench/dist/agent/analysis/adaptive.d.ts +101 -0
  11. package/packages/hench/dist/agent/analysis/adaptive.js +353 -0
  12. package/packages/hench/dist/agent/analysis/adaptive.js.map +1 -0
  13. package/packages/hench/dist/agent/analysis/index.d.ts +26 -0
  14. package/packages/hench/dist/agent/analysis/index.js +30 -0
  15. package/packages/hench/dist/agent/analysis/index.js.map +1 -0
  16. package/packages/hench/dist/agent/analysis/review.d.ts +40 -0
  17. package/packages/hench/dist/agent/analysis/review.js +66 -0
  18. package/packages/hench/dist/agent/analysis/review.js.map +1 -0
  19. package/packages/hench/dist/agent/analysis/spin.d.ts +27 -0
  20. package/packages/hench/dist/agent/analysis/spin.js +32 -0
  21. package/packages/hench/dist/agent/analysis/spin.js.map +1 -0
  22. package/packages/hench/dist/agent/analysis/stuck.d.ts +22 -0
  23. package/packages/hench/dist/agent/analysis/stuck.js +56 -0
  24. package/packages/hench/dist/agent/analysis/stuck.js.map +1 -0
  25. package/packages/hench/dist/agent/analysis/summary.d.ts +9 -0
  26. package/packages/hench/dist/agent/analysis/summary.js +106 -0
  27. package/packages/hench/dist/agent/analysis/summary.js.map +1 -0
  28. package/packages/hench/dist/agent/analysis/workflow.d.ts +60 -0
  29. package/packages/hench/dist/agent/analysis/workflow.js +359 -0
  30. package/packages/hench/dist/agent/analysis/workflow.js.map +1 -0
  31. package/packages/hench/dist/agent/brief.d.ts +33 -0
  32. package/packages/hench/dist/agent/brief.js +235 -0
  33. package/packages/hench/dist/agent/brief.js.map +1 -0
  34. package/packages/hench/dist/agent/cli-loop.d.ts +43 -0
  35. package/packages/hench/dist/agent/cli-loop.js +469 -0
  36. package/packages/hench/dist/agent/cli-loop.js.map +1 -0
  37. package/packages/hench/dist/agent/completion.d.ts +8 -0
  38. package/packages/hench/dist/agent/completion.js +8 -0
  39. package/packages/hench/dist/agent/completion.js.map +1 -0
  40. package/packages/hench/dist/agent/index.d.ts +35 -0
  41. package/packages/hench/dist/agent/index.js +40 -0
  42. package/packages/hench/dist/agent/index.js.map +1 -0
  43. package/packages/hench/dist/agent/lifecycle/cli-loop.d.ts +65 -0
  44. package/packages/hench/dist/agent/lifecycle/cli-loop.js +882 -0
  45. package/packages/hench/dist/agent/lifecycle/cli-loop.js.map +1 -0
  46. package/packages/hench/dist/agent/lifecycle/heartbeat.d.ts +38 -0
  47. package/packages/hench/dist/agent/lifecycle/heartbeat.js +72 -0
  48. package/packages/hench/dist/agent/lifecycle/heartbeat.js.map +1 -0
  49. package/packages/hench/dist/agent/lifecycle/loop.d.ts +11 -0
  50. package/packages/hench/dist/agent/lifecycle/loop.js +300 -0
  51. package/packages/hench/dist/agent/lifecycle/loop.js.map +1 -0
  52. package/packages/hench/dist/agent/lifecycle/shared.d.ts +138 -0
  53. package/packages/hench/dist/agent/lifecycle/shared.js +241 -0
  54. package/packages/hench/dist/agent/lifecycle/shared.js.map +1 -0
  55. package/packages/hench/dist/agent/lifecycle/task-display.d.ts +7 -0
  56. package/packages/hench/dist/agent/lifecycle/task-display.js +22 -0
  57. package/packages/hench/dist/agent/lifecycle/task-display.js.map +1 -0
  58. package/packages/hench/dist/agent/lifecycle/token-budget.d.ts +18 -0
  59. package/packages/hench/dist/agent/lifecycle/token-budget.js +16 -0
  60. package/packages/hench/dist/agent/lifecycle/token-budget.js.map +1 -0
  61. package/packages/hench/dist/agent/lifecycle/token-usage.d.ts +44 -0
  62. package/packages/hench/dist/agent/lifecycle/token-usage.js +102 -0
  63. package/packages/hench/dist/agent/lifecycle/token-usage.js.map +1 -0
  64. package/packages/hench/dist/agent/loop.d.ts +24 -0
  65. package/packages/hench/dist/agent/loop.js +312 -0
  66. package/packages/hench/dist/agent/loop.js.map +1 -0
  67. package/packages/hench/dist/agent/planning/brief.d.ts +40 -0
  68. package/packages/hench/dist/agent/planning/brief.js +267 -0
  69. package/packages/hench/dist/agent/planning/brief.js.map +1 -0
  70. package/packages/hench/dist/agent/planning/prompt.d.ts +2 -0
  71. package/packages/hench/dist/agent/planning/prompt.js +73 -0
  72. package/packages/hench/dist/agent/planning/prompt.js.map +1 -0
  73. package/packages/hench/dist/agent/prompt.d.ts +2 -0
  74. package/packages/hench/dist/agent/prompt.js +65 -0
  75. package/packages/hench/dist/agent/prompt.js.map +1 -0
  76. package/packages/hench/dist/agent/review.d.ts +40 -0
  77. package/packages/hench/dist/agent/review.js +76 -0
  78. package/packages/hench/dist/agent/review.js.map +1 -0
  79. package/packages/hench/dist/agent/stuck.d.ts +22 -0
  80. package/packages/hench/dist/agent/stuck.js +56 -0
  81. package/packages/hench/dist/agent/stuck.js.map +1 -0
  82. package/packages/hench/dist/agent/summary.d.ts +9 -0
  83. package/packages/hench/dist/agent/summary.js +106 -0
  84. package/packages/hench/dist/agent/summary.js.map +1 -0
  85. package/packages/hench/dist/agent/test-runner.d.ts +81 -0
  86. package/packages/hench/dist/agent/test-runner.js +245 -0
  87. package/packages/hench/dist/agent/test-runner.js.map +1 -0
  88. package/packages/hench/dist/agent/token-budget.d.ts +18 -0
  89. package/packages/hench/dist/agent/token-budget.js +16 -0
  90. package/packages/hench/dist/agent/token-budget.js.map +1 -0
  91. package/packages/hench/dist/agent/token-usage.d.ts +27 -0
  92. package/packages/hench/dist/agent/token-usage.js +52 -0
  93. package/packages/hench/dist/agent/token-usage.js.map +1 -0
  94. package/packages/hench/dist/agent/tools.d.ts +8 -0
  95. package/packages/hench/dist/agent/tools.js +8 -0
  96. package/packages/hench/dist/agent/tools.js.map +1 -0
  97. package/packages/hench/dist/cli/commands/config.d.ts +40 -0
  98. package/packages/hench/dist/cli/commands/config.js +463 -0
  99. package/packages/hench/dist/cli/commands/config.js.map +1 -0
  100. package/packages/hench/dist/cli/commands/constants.d.ts +5 -0
  101. package/packages/hench/dist/cli/commands/constants.js +46 -0
  102. package/packages/hench/dist/cli/commands/constants.js.map +1 -0
  103. package/packages/hench/dist/cli/commands/init.d.ts +1 -0
  104. package/packages/hench/dist/cli/commands/init.js +22 -0
  105. package/packages/hench/dist/cli/commands/init.js.map +1 -0
  106. package/packages/hench/dist/cli/commands/run.d.ts +108 -0
  107. package/packages/hench/dist/cli/commands/run.js +847 -0
  108. package/packages/hench/dist/cli/commands/run.js.map +1 -0
  109. package/packages/hench/dist/cli/commands/show.d.ts +1 -0
  110. package/packages/hench/dist/cli/commands/show.js +101 -0
  111. package/packages/hench/dist/cli/commands/show.js.map +1 -0
  112. package/packages/hench/dist/cli/commands/status.d.ts +1 -0
  113. package/packages/hench/dist/cli/commands/status.js +63 -0
  114. package/packages/hench/dist/cli/commands/status.js.map +1 -0
  115. package/packages/hench/dist/cli/commands/task-lookup.d.ts +24 -0
  116. package/packages/hench/dist/cli/commands/task-lookup.js +69 -0
  117. package/packages/hench/dist/cli/commands/task-lookup.js.map +1 -0
  118. package/packages/hench/dist/cli/commands/template.d.ts +12 -0
  119. package/packages/hench/dist/cli/commands/template.js +217 -0
  120. package/packages/hench/dist/cli/commands/template.js.map +1 -0
  121. package/packages/hench/dist/cli/errors.d.ts +55 -0
  122. package/packages/hench/dist/cli/errors.js +185 -0
  123. package/packages/hench/dist/cli/errors.js.map +1 -0
  124. package/packages/hench/dist/cli/help.d.ts +23 -0
  125. package/packages/hench/dist/cli/help.js +186 -0
  126. package/packages/hench/dist/cli/help.js.map +1 -0
  127. package/packages/hench/dist/cli/index.d.ts +21 -0
  128. package/packages/hench/dist/cli/index.js +131 -0
  129. package/packages/hench/dist/cli/index.js.map +1 -0
  130. package/packages/hench/dist/cli/output.d.ts +9 -0
  131. package/packages/hench/dist/cli/output.js +10 -0
  132. package/packages/hench/dist/cli/output.js.map +1 -0
  133. package/packages/hench/dist/guard/commands.d.ts +27 -0
  134. package/packages/hench/dist/guard/commands.js +69 -0
  135. package/packages/hench/dist/guard/commands.js.map +1 -0
  136. package/packages/hench/dist/guard/contracts.d.ts +31 -0
  137. package/packages/hench/dist/guard/contracts.js +8 -0
  138. package/packages/hench/dist/guard/contracts.js.map +1 -0
  139. package/packages/hench/dist/guard/index.d.ts +107 -0
  140. package/packages/hench/dist/guard/index.js +139 -0
  141. package/packages/hench/dist/guard/index.js.map +1 -0
  142. package/packages/hench/dist/guard/paths.d.ts +43 -0
  143. package/packages/hench/dist/guard/paths.js +112 -0
  144. package/packages/hench/dist/guard/paths.js.map +1 -0
  145. package/packages/hench/dist/guard/policy.d.ts +108 -0
  146. package/packages/hench/dist/guard/policy.js +156 -0
  147. package/packages/hench/dist/guard/policy.js.map +1 -0
  148. package/packages/hench/dist/prd/llm-gateway.d.ts +47 -0
  149. package/packages/hench/dist/prd/llm-gateway.js +57 -0
  150. package/packages/hench/dist/prd/llm-gateway.js.map +1 -0
  151. package/packages/hench/dist/prd/ops.d.ts +5 -0
  152. package/packages/hench/dist/prd/ops.js +6 -0
  153. package/packages/hench/dist/prd/ops.js.map +1 -0
  154. package/packages/hench/dist/prd/rex-gateway.d.ts +95 -0
  155. package/packages/hench/dist/prd/rex-gateway.js +104 -0
  156. package/packages/hench/dist/prd/rex-gateway.js.map +1 -0
  157. package/packages/hench/dist/process/concurrent-execution-metrics.d.ts +243 -0
  158. package/packages/hench/dist/process/concurrent-execution-metrics.js +352 -0
  159. package/packages/hench/dist/process/concurrent-execution-metrics.js.map +1 -0
  160. package/packages/hench/dist/process/exec-shell.d.ts +8 -0
  161. package/packages/hench/dist/process/exec-shell.js +8 -0
  162. package/packages/hench/dist/process/exec-shell.js.map +1 -0
  163. package/packages/hench/dist/process/exec.d.ts +12 -0
  164. package/packages/hench/dist/process/exec.js +12 -0
  165. package/packages/hench/dist/process/exec.js.map +1 -0
  166. package/packages/hench/dist/process/index.d.ts +22 -0
  167. package/packages/hench/dist/process/index.js +15 -0
  168. package/packages/hench/dist/process/index.js.map +1 -0
  169. package/packages/hench/dist/process/lifecycle.d.ts +208 -0
  170. package/packages/hench/dist/process/lifecycle.js +387 -0
  171. package/packages/hench/dist/process/lifecycle.js.map +1 -0
  172. package/packages/hench/dist/process/limiter.d.ts +85 -0
  173. package/packages/hench/dist/process/limiter.js +215 -0
  174. package/packages/hench/dist/process/limiter.js.map +1 -0
  175. package/packages/hench/dist/process/memory-monitor.d.ts +162 -0
  176. package/packages/hench/dist/process/memory-monitor.js +268 -0
  177. package/packages/hench/dist/process/memory-monitor.js.map +1 -0
  178. package/packages/hench/dist/process/memory-throttle.d.ts +140 -0
  179. package/packages/hench/dist/process/memory-throttle.js +238 -0
  180. package/packages/hench/dist/process/memory-throttle.js.map +1 -0
  181. package/packages/hench/dist/process/pool.d.ts +231 -0
  182. package/packages/hench/dist/process/pool.js +344 -0
  183. package/packages/hench/dist/process/pool.js.map +1 -0
  184. package/packages/hench/dist/process/process-memory-tracker.d.ts +164 -0
  185. package/packages/hench/dist/process/process-memory-tracker.js +249 -0
  186. package/packages/hench/dist/process/process-memory-tracker.js.map +1 -0
  187. package/packages/hench/dist/public.d.ts +62 -0
  188. package/packages/hench/dist/public.js +58 -0
  189. package/packages/hench/dist/public.js.map +1 -0
  190. package/packages/hench/dist/queue/execution-queue.d.ts +128 -0
  191. package/packages/hench/dist/queue/execution-queue.js +206 -0
  192. package/packages/hench/dist/queue/execution-queue.js.map +1 -0
  193. package/packages/hench/dist/queue/format.d.ts +19 -0
  194. package/packages/hench/dist/queue/format.js +52 -0
  195. package/packages/hench/dist/queue/format.js.map +1 -0
  196. package/packages/hench/dist/queue/index.d.ts +5 -0
  197. package/packages/hench/dist/queue/index.js +4 -0
  198. package/packages/hench/dist/queue/index.js.map +1 -0
  199. package/packages/hench/dist/queue/priority-scheduler.d.ts +73 -0
  200. package/packages/hench/dist/queue/priority-scheduler.js +119 -0
  201. package/packages/hench/dist/queue/priority-scheduler.js.map +1 -0
  202. package/packages/hench/dist/schema/index.d.ts +6 -0
  203. package/packages/hench/dist/schema/index.js +4 -0
  204. package/packages/hench/dist/schema/index.js.map +1 -0
  205. package/packages/hench/dist/schema/templates.d.ts +34 -0
  206. package/packages/hench/dist/schema/templates.js +147 -0
  207. package/packages/hench/dist/schema/templates.js.map +1 -0
  208. package/packages/hench/dist/schema/v1.d.ts +235 -0
  209. package/packages/hench/dist/schema/v1.js +34 -0
  210. package/packages/hench/dist/schema/v1.js.map +1 -0
  211. package/packages/hench/dist/schema/validate.d.ts +601 -0
  212. package/packages/hench/dist/schema/validate.js +166 -0
  213. package/packages/hench/dist/schema/validate.js.map +1 -0
  214. package/packages/hench/dist/shared/glob.d.ts +11 -0
  215. package/packages/hench/dist/shared/glob.js +57 -0
  216. package/packages/hench/dist/shared/glob.js.map +1 -0
  217. package/packages/hench/dist/store/adjustments.d.ts +75 -0
  218. package/packages/hench/dist/store/adjustments.js +139 -0
  219. package/packages/hench/dist/store/adjustments.js.map +1 -0
  220. package/packages/hench/dist/store/config.d.ts +6 -0
  221. package/packages/hench/dist/store/config.js +41 -0
  222. package/packages/hench/dist/store/config.js.map +1 -0
  223. package/packages/hench/dist/store/index.d.ts +7 -0
  224. package/packages/hench/dist/store/index.js +6 -0
  225. package/packages/hench/dist/store/index.js.map +1 -0
  226. package/packages/hench/dist/store/json.d.ts +1 -0
  227. package/packages/hench/dist/store/json.js +3 -0
  228. package/packages/hench/dist/store/json.js.map +1 -0
  229. package/packages/hench/dist/store/project-config.d.ts +62 -0
  230. package/packages/hench/dist/store/project-config.js +100 -0
  231. package/packages/hench/dist/store/project-config.js.map +1 -0
  232. package/packages/hench/dist/store/run-archiver.d.ts +107 -0
  233. package/packages/hench/dist/store/run-archiver.js +204 -0
  234. package/packages/hench/dist/store/run-archiver.js.map +1 -0
  235. package/packages/hench/dist/store/run-change-detector.d.ts +99 -0
  236. package/packages/hench/dist/store/run-change-detector.js +170 -0
  237. package/packages/hench/dist/store/run-change-detector.js.map +1 -0
  238. package/packages/hench/dist/store/run-retention-scheduler.d.ts +80 -0
  239. package/packages/hench/dist/store/run-retention-scheduler.js +143 -0
  240. package/packages/hench/dist/store/run-retention-scheduler.js.map +1 -0
  241. package/packages/hench/dist/store/run-retention.d.ts +150 -0
  242. package/packages/hench/dist/store/run-retention.js +327 -0
  243. package/packages/hench/dist/store/run-retention.js.map +1 -0
  244. package/packages/hench/dist/store/runs.d.ts +4 -0
  245. package/packages/hench/dist/store/runs.js +80 -0
  246. package/packages/hench/dist/store/runs.js.map +1 -0
  247. package/packages/hench/dist/store/suggestions.d.ts +43 -0
  248. package/packages/hench/dist/store/suggestions.js +61 -0
  249. package/packages/hench/dist/store/suggestions.js.map +1 -0
  250. package/packages/hench/dist/store/templates.d.ts +34 -0
  251. package/packages/hench/dist/store/templates.js +119 -0
  252. package/packages/hench/dist/store/templates.js.map +1 -0
  253. package/packages/hench/dist/tools/contracts.d.ts +60 -0
  254. package/packages/hench/dist/tools/contracts.js +2 -0
  255. package/packages/hench/dist/tools/contracts.js.map +1 -0
  256. package/packages/hench/dist/tools/dispatch.d.ts +29 -0
  257. package/packages/hench/dist/tools/dispatch.js +213 -0
  258. package/packages/hench/dist/tools/dispatch.js.map +1 -0
  259. package/packages/hench/dist/tools/exec-shell.d.ts +23 -0
  260. package/packages/hench/dist/tools/exec-shell.js +29 -0
  261. package/packages/hench/dist/tools/exec-shell.js.map +1 -0
  262. package/packages/hench/dist/tools/files.d.ts +17 -0
  263. package/packages/hench/dist/tools/files.js +111 -0
  264. package/packages/hench/dist/tools/files.js.map +1 -0
  265. package/packages/hench/dist/tools/git.d.ts +5 -0
  266. package/packages/hench/dist/tools/git.js +48 -0
  267. package/packages/hench/dist/tools/git.js.map +1 -0
  268. package/packages/hench/dist/tools/index.d.ts +17 -0
  269. package/packages/hench/dist/tools/index.js +19 -0
  270. package/packages/hench/dist/tools/index.js.map +1 -0
  271. package/packages/hench/dist/tools/rex.d.ts +32 -0
  272. package/packages/hench/dist/tools/rex.js +185 -0
  273. package/packages/hench/dist/tools/rex.js.map +1 -0
  274. package/packages/hench/dist/tools/shell.d.ts +6 -0
  275. package/packages/hench/dist/tools/shell.js +10 -0
  276. package/packages/hench/dist/tools/shell.js.map +1 -0
  277. package/packages/hench/dist/tools/test-runner.d.ts +81 -0
  278. package/packages/hench/dist/tools/test-runner.js +229 -0
  279. package/packages/hench/dist/tools/test-runner.js.map +1 -0
  280. package/packages/hench/dist/types/index.d.ts +4 -0
  281. package/packages/hench/dist/types/index.js +6 -0
  282. package/packages/hench/dist/types/index.js.map +1 -0
  283. package/packages/hench/dist/types/output.d.ts +47 -0
  284. package/packages/hench/dist/types/output.js +74 -0
  285. package/packages/hench/dist/types/output.js.map +1 -0
  286. package/packages/hench/dist/validation/completion.d.ts +37 -0
  287. package/packages/hench/dist/validation/completion.js +83 -0
  288. package/packages/hench/dist/validation/completion.js.map +1 -0
  289. package/packages/hench/dist/validation/index.d.ts +9 -0
  290. package/packages/hench/dist/validation/index.js +9 -0
  291. package/packages/hench/dist/validation/index.js.map +1 -0
  292. package/packages/hench/package.json +40 -0
  293. package/packages/llm-client/dist/api-provider.d.ts +47 -0
  294. package/packages/llm-client/dist/api-provider.js +126 -0
  295. package/packages/llm-client/dist/api-provider.js.map +1 -0
  296. package/packages/llm-client/dist/auth.d.ts +85 -0
  297. package/packages/llm-client/dist/auth.js +165 -0
  298. package/packages/llm-client/dist/auth.js.map +1 -0
  299. package/packages/llm-client/dist/cli-provider.d.ts +49 -0
  300. package/packages/llm-client/dist/cli-provider.js +226 -0
  301. package/packages/llm-client/dist/cli-provider.js.map +1 -0
  302. package/packages/llm-client/dist/codex-cli-provider.d.ts +15 -0
  303. package/packages/llm-client/dist/codex-cli-provider.js +206 -0
  304. package/packages/llm-client/dist/codex-cli-provider.js.map +1 -0
  305. package/packages/llm-client/dist/config.d.ts +39 -0
  306. package/packages/llm-client/dist/config.js +85 -0
  307. package/packages/llm-client/dist/config.js.map +1 -0
  308. package/packages/llm-client/dist/create-client.d.ts +66 -0
  309. package/packages/llm-client/dist/create-client.js +73 -0
  310. package/packages/llm-client/dist/create-client.js.map +1 -0
  311. package/packages/llm-client/dist/exec.d.ts +231 -0
  312. package/packages/llm-client/dist/exec.js +440 -0
  313. package/packages/llm-client/dist/exec.js.map +1 -0
  314. package/packages/llm-client/dist/help-format.d.ts +143 -0
  315. package/packages/llm-client/dist/help-format.js +280 -0
  316. package/packages/llm-client/dist/help-format.js.map +1 -0
  317. package/packages/llm-client/dist/json.d.ts +15 -0
  318. package/packages/llm-client/dist/json.js +18 -0
  319. package/packages/llm-client/dist/json.js.map +1 -0
  320. package/packages/llm-client/dist/llm-client.d.ts +43 -0
  321. package/packages/llm-client/dist/llm-client.js +48 -0
  322. package/packages/llm-client/dist/llm-client.js.map +1 -0
  323. package/packages/llm-client/dist/llm-config.d.ts +16 -0
  324. package/packages/llm-client/dist/llm-config.js +81 -0
  325. package/packages/llm-client/dist/llm-config.js.map +1 -0
  326. package/packages/llm-client/dist/llm-types.d.ts +40 -0
  327. package/packages/llm-client/dist/llm-types.js +17 -0
  328. package/packages/llm-client/dist/llm-types.js.map +1 -0
  329. package/packages/llm-client/dist/output.d.ts +27 -0
  330. package/packages/llm-client/dist/output.js +38 -0
  331. package/packages/llm-client/dist/output.js.map +1 -0
  332. package/packages/llm-client/dist/project-config.d.ts +25 -0
  333. package/packages/llm-client/dist/project-config.js +66 -0
  334. package/packages/llm-client/dist/project-config.js.map +1 -0
  335. package/packages/llm-client/dist/project-dirs.d.ts +32 -0
  336. package/packages/llm-client/dist/project-dirs.js +31 -0
  337. package/packages/llm-client/dist/project-dirs.js.map +1 -0
  338. package/packages/llm-client/dist/provider-interface.d.ts +194 -0
  339. package/packages/llm-client/dist/provider-interface.js +50 -0
  340. package/packages/llm-client/dist/provider-interface.js.map +1 -0
  341. package/packages/llm-client/dist/provider-registry.d.ts +147 -0
  342. package/packages/llm-client/dist/provider-registry.js +175 -0
  343. package/packages/llm-client/dist/provider-registry.js.map +1 -0
  344. package/packages/llm-client/dist/provider-session.d.ts +141 -0
  345. package/packages/llm-client/dist/provider-session.js +174 -0
  346. package/packages/llm-client/dist/provider-session.js.map +1 -0
  347. package/packages/llm-client/dist/public.d.ts +120 -0
  348. package/packages/llm-client/dist/public.js +122 -0
  349. package/packages/llm-client/dist/public.js.map +1 -0
  350. package/packages/llm-client/dist/suggest.d.ts +27 -0
  351. package/packages/llm-client/dist/suggest.js +63 -0
  352. package/packages/llm-client/dist/suggest.js.map +1 -0
  353. package/packages/llm-client/dist/token-usage.d.ts +43 -0
  354. package/packages/llm-client/dist/token-usage.js +106 -0
  355. package/packages/llm-client/dist/token-usage.js.map +1 -0
  356. package/packages/llm-client/dist/types.d.ts +108 -0
  357. package/packages/llm-client/dist/types.js +49 -0
  358. package/packages/llm-client/dist/types.js.map +1 -0
  359. package/packages/llm-client/package.json +34 -0
  360. package/packages/rex/dist/analyze/acknowledge.d.ts +44 -0
  361. package/packages/rex/dist/analyze/acknowledge.js +100 -0
  362. package/packages/rex/dist/analyze/acknowledge.js.map +1 -0
  363. package/packages/rex/dist/analyze/analyze-shared.d.ts +51 -0
  364. package/packages/rex/dist/analyze/analyze-shared.js +356 -0
  365. package/packages/rex/dist/analyze/analyze-shared.js.map +1 -0
  366. package/packages/rex/dist/analyze/batch-types.d.ts +48 -0
  367. package/packages/rex/dist/analyze/batch-types.js +9 -0
  368. package/packages/rex/dist/analyze/batch-types.js.map +1 -0
  369. package/packages/rex/dist/analyze/consolidation-guard.d.ts +45 -0
  370. package/packages/rex/dist/analyze/consolidation-guard.js +125 -0
  371. package/packages/rex/dist/analyze/consolidation-guard.js.map +1 -0
  372. package/packages/rex/dist/analyze/decompose.d.ts +62 -0
  373. package/packages/rex/dist/analyze/decompose.js +212 -0
  374. package/packages/rex/dist/analyze/decompose.js.map +1 -0
  375. package/packages/rex/dist/analyze/dedupe.d.ts +30 -0
  376. package/packages/rex/dist/analyze/dedupe.js +339 -0
  377. package/packages/rex/dist/analyze/dedupe.js.map +1 -0
  378. package/packages/rex/dist/analyze/diff.d.ts +13 -0
  379. package/packages/rex/dist/analyze/diff.js +146 -0
  380. package/packages/rex/dist/analyze/diff.js.map +1 -0
  381. package/packages/rex/dist/analyze/extract.d.ts +152 -0
  382. package/packages/rex/dist/analyze/extract.js +1338 -0
  383. package/packages/rex/dist/analyze/extract.js.map +1 -0
  384. package/packages/rex/dist/analyze/file-validation.d.ts +122 -0
  385. package/packages/rex/dist/analyze/file-validation.js +427 -0
  386. package/packages/rex/dist/analyze/file-validation.js.map +1 -0
  387. package/packages/rex/dist/analyze/guided.d.ts +17 -0
  388. package/packages/rex/dist/analyze/guided.js +162 -0
  389. package/packages/rex/dist/analyze/guided.js.map +1 -0
  390. package/packages/rex/dist/analyze/index.d.ts +27 -0
  391. package/packages/rex/dist/analyze/index.js +15 -0
  392. package/packages/rex/dist/analyze/index.js.map +1 -0
  393. package/packages/rex/dist/analyze/llm-bridge.d.ts +49 -0
  394. package/packages/rex/dist/analyze/llm-bridge.js +133 -0
  395. package/packages/rex/dist/analyze/llm-bridge.js.map +1 -0
  396. package/packages/rex/dist/analyze/modify-reason.d.ts +68 -0
  397. package/packages/rex/dist/analyze/modify-reason.js +182 -0
  398. package/packages/rex/dist/analyze/modify-reason.js.map +1 -0
  399. package/packages/rex/dist/analyze/propose.d.ts +72 -0
  400. package/packages/rex/dist/analyze/propose.js +246 -0
  401. package/packages/rex/dist/analyze/propose.js.map +1 -0
  402. package/packages/rex/dist/analyze/reason.d.ts +277 -0
  403. package/packages/rex/dist/analyze/reason.js +1446 -0
  404. package/packages/rex/dist/analyze/reason.js.map +1 -0
  405. package/packages/rex/dist/analyze/reconcile.d.ts +25 -0
  406. package/packages/rex/dist/analyze/reconcile.js +82 -0
  407. package/packages/rex/dist/analyze/reconcile.js.map +1 -0
  408. package/packages/rex/dist/analyze/reshape-reason.d.ts +38 -0
  409. package/packages/rex/dist/analyze/reshape-reason.js +302 -0
  410. package/packages/rex/dist/analyze/reshape-reason.js.map +1 -0
  411. package/packages/rex/dist/analyze/scanners.d.ts +36 -0
  412. package/packages/rex/dist/analyze/scanners.js +805 -0
  413. package/packages/rex/dist/analyze/scanners.js.map +1 -0
  414. package/packages/rex/dist/analyze/validate-modification.d.ts +54 -0
  415. package/packages/rex/dist/analyze/validate-modification.js +166 -0
  416. package/packages/rex/dist/analyze/validate-modification.js.map +1 -0
  417. package/packages/rex/dist/cli/commands/adapter.d.ts +11 -0
  418. package/packages/rex/dist/cli/commands/adapter.js +211 -0
  419. package/packages/rex/dist/cli/commands/adapter.js.map +1 -0
  420. package/packages/rex/dist/cli/commands/add.d.ts +1 -0
  421. package/packages/rex/dist/cli/commands/add.js +111 -0
  422. package/packages/rex/dist/cli/commands/add.js.map +1 -0
  423. package/packages/rex/dist/cli/commands/analyze.d.ts +4 -0
  424. package/packages/rex/dist/cli/commands/analyze.js +672 -0
  425. package/packages/rex/dist/cli/commands/analyze.js.map +1 -0
  426. package/packages/rex/dist/cli/commands/chunked-review-state.d.ts +183 -0
  427. package/packages/rex/dist/cli/commands/chunked-review-state.js +637 -0
  428. package/packages/rex/dist/cli/commands/chunked-review-state.js.map +1 -0
  429. package/packages/rex/dist/cli/commands/chunked-review.d.ts +21 -0
  430. package/packages/rex/dist/cli/commands/chunked-review.js +147 -0
  431. package/packages/rex/dist/cli/commands/chunked-review.js.map +1 -0
  432. package/packages/rex/dist/cli/commands/constants.d.ts +3 -0
  433. package/packages/rex/dist/cli/commands/constants.js +50 -0
  434. package/packages/rex/dist/cli/commands/constants.js.map +1 -0
  435. package/packages/rex/dist/cli/commands/decomposition-review.d.ts +92 -0
  436. package/packages/rex/dist/cli/commands/decomposition-review.js +258 -0
  437. package/packages/rex/dist/cli/commands/decomposition-review.js.map +1 -0
  438. package/packages/rex/dist/cli/commands/fix.d.ts +8 -0
  439. package/packages/rex/dist/cli/commands/fix.js +101 -0
  440. package/packages/rex/dist/cli/commands/fix.js.map +1 -0
  441. package/packages/rex/dist/cli/commands/format-loe.d.ts +22 -0
  442. package/packages/rex/dist/cli/commands/format-loe.js +35 -0
  443. package/packages/rex/dist/cli/commands/format-loe.js.map +1 -0
  444. package/packages/rex/dist/cli/commands/health.d.ts +7 -0
  445. package/packages/rex/dist/cli/commands/health.js +24 -0
  446. package/packages/rex/dist/cli/commands/health.js.map +1 -0
  447. package/packages/rex/dist/cli/commands/init.d.ts +1 -0
  448. package/packages/rex/dist/cli/commands/init.js +64 -0
  449. package/packages/rex/dist/cli/commands/init.js.map +1 -0
  450. package/packages/rex/dist/cli/commands/move.d.ts +1 -0
  451. package/packages/rex/dist/cli/commands/move.js +45 -0
  452. package/packages/rex/dist/cli/commands/move.js.map +1 -0
  453. package/packages/rex/dist/cli/commands/next.d.ts +1 -0
  454. package/packages/rex/dist/cli/commands/next.js +64 -0
  455. package/packages/rex/dist/cli/commands/next.js.map +1 -0
  456. package/packages/rex/dist/cli/commands/prune.d.ts +1 -0
  457. package/packages/rex/dist/cli/commands/prune.js +561 -0
  458. package/packages/rex/dist/cli/commands/prune.js.map +1 -0
  459. package/packages/rex/dist/cli/commands/recommend.d.ts +2 -0
  460. package/packages/rex/dist/cli/commands/recommend.js +517 -0
  461. package/packages/rex/dist/cli/commands/recommend.js.map +1 -0
  462. package/packages/rex/dist/cli/commands/remove.d.ts +12 -0
  463. package/packages/rex/dist/cli/commands/remove.js +206 -0
  464. package/packages/rex/dist/cli/commands/remove.js.map +1 -0
  465. package/packages/rex/dist/cli/commands/reorganize.d.ts +16 -0
  466. package/packages/rex/dist/cli/commands/reorganize.js +288 -0
  467. package/packages/rex/dist/cli/commands/reorganize.js.map +1 -0
  468. package/packages/rex/dist/cli/commands/report.d.ts +49 -0
  469. package/packages/rex/dist/cli/commands/report.js +218 -0
  470. package/packages/rex/dist/cli/commands/report.js.map +1 -0
  471. package/packages/rex/dist/cli/commands/reshape.d.ts +1 -0
  472. package/packages/rex/dist/cli/commands/reshape.js +182 -0
  473. package/packages/rex/dist/cli/commands/reshape.js.map +1 -0
  474. package/packages/rex/dist/cli/commands/smart-add-duplicates.d.ts +45 -0
  475. package/packages/rex/dist/cli/commands/smart-add-duplicates.js +252 -0
  476. package/packages/rex/dist/cli/commands/smart-add-duplicates.js.map +1 -0
  477. package/packages/rex/dist/cli/commands/smart-add.d.ts +80 -0
  478. package/packages/rex/dist/cli/commands/smart-add.js +1343 -0
  479. package/packages/rex/dist/cli/commands/smart-add.js.map +1 -0
  480. package/packages/rex/dist/cli/commands/status-sections.d.ts +70 -0
  481. package/packages/rex/dist/cli/commands/status-sections.js +201 -0
  482. package/packages/rex/dist/cli/commands/status-sections.js.map +1 -0
  483. package/packages/rex/dist/cli/commands/status-shared.d.ts +44 -0
  484. package/packages/rex/dist/cli/commands/status-shared.js +191 -0
  485. package/packages/rex/dist/cli/commands/status-shared.js.map +1 -0
  486. package/packages/rex/dist/cli/commands/status.d.ts +3 -0
  487. package/packages/rex/dist/cli/commands/status.js +118 -0
  488. package/packages/rex/dist/cli/commands/status.js.map +1 -0
  489. package/packages/rex/dist/cli/commands/sync.d.ts +11 -0
  490. package/packages/rex/dist/cli/commands/sync.js +131 -0
  491. package/packages/rex/dist/cli/commands/sync.js.map +1 -0
  492. package/packages/rex/dist/cli/commands/token-format.d.ts +31 -0
  493. package/packages/rex/dist/cli/commands/token-format.js +86 -0
  494. package/packages/rex/dist/cli/commands/token-format.js.map +1 -0
  495. package/packages/rex/dist/cli/commands/update.d.ts +1 -0
  496. package/packages/rex/dist/cli/commands/update.js +146 -0
  497. package/packages/rex/dist/cli/commands/update.js.map +1 -0
  498. package/packages/rex/dist/cli/commands/usage.d.ts +1 -0
  499. package/packages/rex/dist/cli/commands/usage.js +192 -0
  500. package/packages/rex/dist/cli/commands/usage.js.map +1 -0
  501. package/packages/rex/dist/cli/commands/validate-interactive.d.ts +46 -0
  502. package/packages/rex/dist/cli/commands/validate-interactive.js +236 -0
  503. package/packages/rex/dist/cli/commands/validate-interactive.js.map +1 -0
  504. package/packages/rex/dist/cli/commands/validate.d.ts +10 -0
  505. package/packages/rex/dist/cli/commands/validate.js +212 -0
  506. package/packages/rex/dist/cli/commands/validate.js.map +1 -0
  507. package/packages/rex/dist/cli/commands/verify.d.ts +1 -0
  508. package/packages/rex/dist/cli/commands/verify.js +90 -0
  509. package/packages/rex/dist/cli/commands/verify.js.map +1 -0
  510. package/packages/rex/dist/cli/errors.d.ts +40 -0
  511. package/packages/rex/dist/cli/errors.js +125 -0
  512. package/packages/rex/dist/cli/errors.js.map +1 -0
  513. package/packages/rex/dist/cli/help.d.ts +23 -0
  514. package/packages/rex/dist/cli/help.js +584 -0
  515. package/packages/rex/dist/cli/help.js.map +1 -0
  516. package/packages/rex/dist/cli/index.d.ts +2 -0
  517. package/packages/rex/dist/cli/index.js +405 -0
  518. package/packages/rex/dist/cli/index.js.map +1 -0
  519. package/packages/rex/dist/cli/mcp-tools.d.ts +86 -0
  520. package/packages/rex/dist/cli/mcp-tools.js +555 -0
  521. package/packages/rex/dist/cli/mcp-tools.js.map +1 -0
  522. package/packages/rex/dist/cli/mcp.d.ts +26 -0
  523. package/packages/rex/dist/cli/mcp.js +144 -0
  524. package/packages/rex/dist/cli/mcp.js.map +1 -0
  525. package/packages/rex/dist/cli/output.d.ts +36 -0
  526. package/packages/rex/dist/cli/output.js +70 -0
  527. package/packages/rex/dist/cli/output.js.map +1 -0
  528. package/packages/rex/dist/cli/validate-input.d.ts +45 -0
  529. package/packages/rex/dist/cli/validate-input.js +87 -0
  530. package/packages/rex/dist/cli/validate-input.js.map +1 -0
  531. package/packages/rex/dist/core/analytics.d.ts +38 -0
  532. package/packages/rex/dist/core/analytics.js +87 -0
  533. package/packages/rex/dist/core/analytics.js.map +1 -0
  534. package/packages/rex/dist/core/canonical.d.ts +3 -0
  535. package/packages/rex/dist/core/canonical.js +21 -0
  536. package/packages/rex/dist/core/canonical.js.map +1 -0
  537. package/packages/rex/dist/core/cascade-reset.d.ts +31 -0
  538. package/packages/rex/dist/core/cascade-reset.js +47 -0
  539. package/packages/rex/dist/core/cascade-reset.js.map +1 -0
  540. package/packages/rex/dist/core/code-coverage.d.ts +38 -0
  541. package/packages/rex/dist/core/code-coverage.js +85 -0
  542. package/packages/rex/dist/core/code-coverage.js.map +1 -0
  543. package/packages/rex/dist/core/dag.d.ts +6 -0
  544. package/packages/rex/dist/core/dag.js +67 -0
  545. package/packages/rex/dist/core/dag.js.map +1 -0
  546. package/packages/rex/dist/core/delete.d.ts +10 -0
  547. package/packages/rex/dist/core/delete.js +38 -0
  548. package/packages/rex/dist/core/delete.js.map +1 -0
  549. package/packages/rex/dist/core/epic-correlation.d.ts +94 -0
  550. package/packages/rex/dist/core/epic-correlation.js +179 -0
  551. package/packages/rex/dist/core/epic-correlation.js.map +1 -0
  552. package/packages/rex/dist/core/facets.d.ts +54 -0
  553. package/packages/rex/dist/core/facets.js +176 -0
  554. package/packages/rex/dist/core/facets.js.map +1 -0
  555. package/packages/rex/dist/core/fix.d.ts +59 -0
  556. package/packages/rex/dist/core/fix.js +190 -0
  557. package/packages/rex/dist/core/fix.js.map +1 -0
  558. package/packages/rex/dist/core/health.d.ts +43 -0
  559. package/packages/rex/dist/core/health.js +331 -0
  560. package/packages/rex/dist/core/health.js.map +1 -0
  561. package/packages/rex/dist/core/keywords.d.ts +20 -0
  562. package/packages/rex/dist/core/keywords.js +47 -0
  563. package/packages/rex/dist/core/keywords.js.map +1 -0
  564. package/packages/rex/dist/core/merge.d.ts +87 -0
  565. package/packages/rex/dist/core/merge.js +289 -0
  566. package/packages/rex/dist/core/merge.js.map +1 -0
  567. package/packages/rex/dist/core/move.d.ts +48 -0
  568. package/packages/rex/dist/core/move.js +163 -0
  569. package/packages/rex/dist/core/move.js.map +1 -0
  570. package/packages/rex/dist/core/next-task.d.ts +121 -0
  571. package/packages/rex/dist/core/next-task.js +443 -0
  572. package/packages/rex/dist/core/next-task.js.map +1 -0
  573. package/packages/rex/dist/core/notion-map.d.ts +207 -0
  574. package/packages/rex/dist/core/notion-map.js +535 -0
  575. package/packages/rex/dist/core/notion-map.js.map +1 -0
  576. package/packages/rex/dist/core/override-escalation.d.ts +28 -0
  577. package/packages/rex/dist/core/override-escalation.js +69 -0
  578. package/packages/rex/dist/core/override-escalation.js.map +1 -0
  579. package/packages/rex/dist/core/parent-completion.d.ts +41 -0
  580. package/packages/rex/dist/core/parent-completion.js +75 -0
  581. package/packages/rex/dist/core/parent-completion.js.map +1 -0
  582. package/packages/rex/dist/core/parent-reset.d.ts +45 -0
  583. package/packages/rex/dist/core/parent-reset.js +59 -0
  584. package/packages/rex/dist/core/parent-reset.js.map +1 -0
  585. package/packages/rex/dist/core/pending-cache.d.ts +27 -0
  586. package/packages/rex/dist/core/pending-cache.js +55 -0
  587. package/packages/rex/dist/core/pending-cache.js.map +1 -0
  588. package/packages/rex/dist/core/prune.d.ts +50 -0
  589. package/packages/rex/dist/core/prune.js +89 -0
  590. package/packages/rex/dist/core/prune.js.map +1 -0
  591. package/packages/rex/dist/core/remove-epic.d.ts +35 -0
  592. package/packages/rex/dist/core/remove-epic.js +51 -0
  593. package/packages/rex/dist/core/remove-epic.js.map +1 -0
  594. package/packages/rex/dist/core/remove-feature.d.ts +100 -0
  595. package/packages/rex/dist/core/remove-feature.js +189 -0
  596. package/packages/rex/dist/core/remove-feature.js.map +1 -0
  597. package/packages/rex/dist/core/remove-task.d.ts +66 -0
  598. package/packages/rex/dist/core/remove-task.js +93 -0
  599. package/packages/rex/dist/core/remove-task.js.map +1 -0
  600. package/packages/rex/dist/core/reorganize-executor.d.ts +43 -0
  601. package/packages/rex/dist/core/reorganize-executor.js +153 -0
  602. package/packages/rex/dist/core/reorganize-executor.js.map +1 -0
  603. package/packages/rex/dist/core/reorganize.d.ts +109 -0
  604. package/packages/rex/dist/core/reorganize.js +453 -0
  605. package/packages/rex/dist/core/reorganize.js.map +1 -0
  606. package/packages/rex/dist/core/requirements.d.ts +131 -0
  607. package/packages/rex/dist/core/requirements.js +263 -0
  608. package/packages/rex/dist/core/requirements.js.map +1 -0
  609. package/packages/rex/dist/core/reshape.d.ts +88 -0
  610. package/packages/rex/dist/core/reshape.js +168 -0
  611. package/packages/rex/dist/core/reshape.js.map +1 -0
  612. package/packages/rex/dist/core/scope-creep.d.ts +31 -0
  613. package/packages/rex/dist/core/scope-creep.js +53 -0
  614. package/packages/rex/dist/core/scope-creep.js.map +1 -0
  615. package/packages/rex/dist/core/stats.d.ts +12 -0
  616. package/packages/rex/dist/core/stats.js +47 -0
  617. package/packages/rex/dist/core/stats.js.map +1 -0
  618. package/packages/rex/dist/core/structural.d.ts +63 -0
  619. package/packages/rex/dist/core/structural.js +267 -0
  620. package/packages/rex/dist/core/structural.js.map +1 -0
  621. package/packages/rex/dist/core/sync-engine.d.ts +63 -0
  622. package/packages/rex/dist/core/sync-engine.js +429 -0
  623. package/packages/rex/dist/core/sync-engine.js.map +1 -0
  624. package/packages/rex/dist/core/sync.d.ts +82 -0
  625. package/packages/rex/dist/core/sync.js +204 -0
  626. package/packages/rex/dist/core/sync.js.map +1 -0
  627. package/packages/rex/dist/core/timestamps.d.ts +34 -0
  628. package/packages/rex/dist/core/timestamps.js +50 -0
  629. package/packages/rex/dist/core/timestamps.js.map +1 -0
  630. package/packages/rex/dist/core/token-usage.d.ts +196 -0
  631. package/packages/rex/dist/core/token-usage.js +468 -0
  632. package/packages/rex/dist/core/token-usage.js.map +1 -0
  633. package/packages/rex/dist/core/transitions.d.ts +28 -0
  634. package/packages/rex/dist/core/transitions.js +74 -0
  635. package/packages/rex/dist/core/transitions.js.map +1 -0
  636. package/packages/rex/dist/core/tree.d.ts +12 -0
  637. package/packages/rex/dist/core/tree.js +76 -0
  638. package/packages/rex/dist/core/tree.js.map +1 -0
  639. package/packages/rex/dist/core/verify.d.ts +92 -0
  640. package/packages/rex/dist/core/verify.js +201 -0
  641. package/packages/rex/dist/core/verify.js.map +1 -0
  642. package/packages/rex/dist/public.d.ts +115 -0
  643. package/packages/rex/dist/public.js +114 -0
  644. package/packages/rex/dist/public.js.map +1 -0
  645. package/packages/rex/dist/recommend/conflict-detection.d.ts +102 -0
  646. package/packages/rex/dist/recommend/conflict-detection.js +238 -0
  647. package/packages/rex/dist/recommend/conflict-detection.js.map +1 -0
  648. package/packages/rex/dist/recommend/create-from-recommendations.d.ts +109 -0
  649. package/packages/rex/dist/recommend/create-from-recommendations.js +287 -0
  650. package/packages/rex/dist/recommend/create-from-recommendations.js.map +1 -0
  651. package/packages/rex/dist/recommend/types.d.ts +59 -0
  652. package/packages/rex/dist/recommend/types.js +11 -0
  653. package/packages/rex/dist/recommend/types.js.map +1 -0
  654. package/packages/rex/dist/schema/index.d.ts +23 -0
  655. package/packages/rex/dist/schema/index.js +22 -0
  656. package/packages/rex/dist/schema/index.js.map +1 -0
  657. package/packages/rex/dist/schema/levels.d.ts +82 -0
  658. package/packages/rex/dist/schema/levels.js +152 -0
  659. package/packages/rex/dist/schema/levels.js.map +1 -0
  660. package/packages/rex/dist/schema/v1.d.ts +341 -0
  661. package/packages/rex/dist/schema/v1.js +179 -0
  662. package/packages/rex/dist/schema/v1.js.map +1 -0
  663. package/packages/rex/dist/schema/validate.d.ts +194 -0
  664. package/packages/rex/dist/schema/validate.js +136 -0
  665. package/packages/rex/dist/schema/validate.js.map +1 -0
  666. package/packages/rex/dist/store/adapter-registry.d.ts +143 -0
  667. package/packages/rex/dist/store/adapter-registry.js +304 -0
  668. package/packages/rex/dist/store/adapter-registry.js.map +1 -0
  669. package/packages/rex/dist/store/atomic-write.d.ts +22 -0
  670. package/packages/rex/dist/store/atomic-write.js +30 -0
  671. package/packages/rex/dist/store/atomic-write.js.map +1 -0
  672. package/packages/rex/dist/store/contracts.d.ts +142 -0
  673. package/packages/rex/dist/store/contracts.js +19 -0
  674. package/packages/rex/dist/store/contracts.js.map +1 -0
  675. package/packages/rex/dist/store/file-adapter.d.ts +23 -0
  676. package/packages/rex/dist/store/file-adapter.js +150 -0
  677. package/packages/rex/dist/store/file-adapter.js.map +1 -0
  678. package/packages/rex/dist/store/index.d.ts +67 -0
  679. package/packages/rex/dist/store/index.js +78 -0
  680. package/packages/rex/dist/store/index.js.map +1 -0
  681. package/packages/rex/dist/store/integration-schema.d.ts +205 -0
  682. package/packages/rex/dist/store/integration-schema.js +136 -0
  683. package/packages/rex/dist/store/integration-schema.js.map +1 -0
  684. package/packages/rex/dist/store/integration-schemas/index.d.ts +28 -0
  685. package/packages/rex/dist/store/integration-schemas/index.js +45 -0
  686. package/packages/rex/dist/store/integration-schemas/index.js.map +1 -0
  687. package/packages/rex/dist/store/integration-schemas/jira.d.ts +11 -0
  688. package/packages/rex/dist/store/integration-schemas/jira.js +147 -0
  689. package/packages/rex/dist/store/integration-schemas/jira.js.map +1 -0
  690. package/packages/rex/dist/store/integration-schemas/notion.d.ts +11 -0
  691. package/packages/rex/dist/store/integration-schemas/notion.js +80 -0
  692. package/packages/rex/dist/store/integration-schemas/notion.js.map +1 -0
  693. package/packages/rex/dist/store/notion-adapter.d.ts +42 -0
  694. package/packages/rex/dist/store/notion-adapter.js +247 -0
  695. package/packages/rex/dist/store/notion-adapter.js.map +1 -0
  696. package/packages/rex/dist/store/notion-client.d.ts +56 -0
  697. package/packages/rex/dist/store/notion-client.js +82 -0
  698. package/packages/rex/dist/store/notion-client.js.map +1 -0
  699. package/packages/rex/dist/store/notion-map.d.ts +207 -0
  700. package/packages/rex/dist/store/notion-map.js +535 -0
  701. package/packages/rex/dist/store/notion-map.js.map +1 -0
  702. package/packages/rex/dist/store/project-config.d.ts +44 -0
  703. package/packages/rex/dist/store/project-config.js +56 -0
  704. package/packages/rex/dist/store/project-config.js.map +1 -0
  705. package/packages/rex/dist/store/types.d.ts +142 -0
  706. package/packages/rex/dist/store/types.js +19 -0
  707. package/packages/rex/dist/store/types.js.map +1 -0
  708. package/packages/rex/dist/workflow/default.d.ts +1 -0
  709. package/packages/rex/dist/workflow/default.js +21 -0
  710. package/packages/rex/dist/workflow/default.js.map +1 -0
  711. package/packages/rex/package.json +40 -0
  712. package/packages/sourcevision/dist/analyzers/__tests__/components.test.d.ts +1 -0
  713. package/packages/sourcevision/dist/analyzers/__tests__/components.test.js +370 -0
  714. package/packages/sourcevision/dist/analyzers/__tests__/components.test.js.map +1 -0
  715. package/packages/sourcevision/dist/analyzers/__tests__/imports.test.d.ts +1 -0
  716. package/packages/sourcevision/dist/analyzers/__tests__/imports.test.js +101 -0
  717. package/packages/sourcevision/dist/analyzers/__tests__/imports.test.js.map +1 -0
  718. package/packages/sourcevision/dist/analyzers/__tests__/inventory.test.d.ts +1 -0
  719. package/packages/sourcevision/dist/analyzers/__tests__/inventory.test.js +118 -0
  720. package/packages/sourcevision/dist/analyzers/__tests__/inventory.test.js.map +1 -0
  721. package/packages/sourcevision/dist/analyzers/__tests__/manifest.test.d.ts +1 -0
  722. package/packages/sourcevision/dist/analyzers/__tests__/manifest.test.js +61 -0
  723. package/packages/sourcevision/dist/analyzers/__tests__/manifest.test.js.map +1 -0
  724. package/packages/sourcevision/dist/analyzers/__tests__/zones.test.d.ts +1 -0
  725. package/packages/sourcevision/dist/analyzers/__tests__/zones.test.js +836 -0
  726. package/packages/sourcevision/dist/analyzers/__tests__/zones.test.js.map +1 -0
  727. package/packages/sourcevision/dist/analyzers/archetypes.d.ts +18 -0
  728. package/packages/sourcevision/dist/analyzers/archetypes.js +272 -0
  729. package/packages/sourcevision/dist/analyzers/archetypes.js.map +1 -0
  730. package/packages/sourcevision/dist/analyzers/branch-work-classifier.d.ts +67 -0
  731. package/packages/sourcevision/dist/analyzers/branch-work-classifier.js +202 -0
  732. package/packages/sourcevision/dist/analyzers/branch-work-classifier.js.map +1 -0
  733. package/packages/sourcevision/dist/analyzers/branch-work-collector.d.ts +121 -0
  734. package/packages/sourcevision/dist/analyzers/branch-work-collector.js +301 -0
  735. package/packages/sourcevision/dist/analyzers/branch-work-collector.js.map +1 -0
  736. package/packages/sourcevision/dist/analyzers/branch-work-filter.d.ts +112 -0
  737. package/packages/sourcevision/dist/analyzers/branch-work-filter.js +285 -0
  738. package/packages/sourcevision/dist/analyzers/branch-work-filter.js.map +1 -0
  739. package/packages/sourcevision/dist/analyzers/branch-work-store.d.ts +65 -0
  740. package/packages/sourcevision/dist/analyzers/branch-work-store.js +127 -0
  741. package/packages/sourcevision/dist/analyzers/branch-work-store.js.map +1 -0
  742. package/packages/sourcevision/dist/analyzers/callgraph-findings.d.ts +26 -0
  743. package/packages/sourcevision/dist/analyzers/callgraph-findings.js +581 -0
  744. package/packages/sourcevision/dist/analyzers/callgraph-findings.js.map +1 -0
  745. package/packages/sourcevision/dist/analyzers/callgraph.d.ts +64 -0
  746. package/packages/sourcevision/dist/analyzers/callgraph.js +659 -0
  747. package/packages/sourcevision/dist/analyzers/callgraph.js.map +1 -0
  748. package/packages/sourcevision/dist/analyzers/classify.d.ts +45 -0
  749. package/packages/sourcevision/dist/analyzers/classify.js +431 -0
  750. package/packages/sourcevision/dist/analyzers/classify.js.map +1 -0
  751. package/packages/sourcevision/dist/analyzers/claude-cli.d.ts +29 -0
  752. package/packages/sourcevision/dist/analyzers/claude-cli.js +137 -0
  753. package/packages/sourcevision/dist/analyzers/claude-cli.js.map +1 -0
  754. package/packages/sourcevision/dist/analyzers/claude-client.d.ts +47 -0
  755. package/packages/sourcevision/dist/analyzers/claude-client.js +112 -0
  756. package/packages/sourcevision/dist/analyzers/claude-client.js.map +1 -0
  757. package/packages/sourcevision/dist/analyzers/completion-reader.d.ts +218 -0
  758. package/packages/sourcevision/dist/analyzers/completion-reader.js +355 -0
  759. package/packages/sourcevision/dist/analyzers/completion-reader.js.map +1 -0
  760. package/packages/sourcevision/dist/analyzers/components.d.ts +18 -0
  761. package/packages/sourcevision/dist/analyzers/components.js +598 -0
  762. package/packages/sourcevision/dist/analyzers/components.js.map +1 -0
  763. package/packages/sourcevision/dist/analyzers/context.d.ts +6 -0
  764. package/packages/sourcevision/dist/analyzers/context.js +175 -0
  765. package/packages/sourcevision/dist/analyzers/context.js.map +1 -0
  766. package/packages/sourcevision/dist/analyzers/convergence.d.ts +74 -0
  767. package/packages/sourcevision/dist/analyzers/convergence.js +144 -0
  768. package/packages/sourcevision/dist/analyzers/convergence.js.map +1 -0
  769. package/packages/sourcevision/dist/analyzers/enrich-batch.d.ts +47 -0
  770. package/packages/sourcevision/dist/analyzers/enrich-batch.js +340 -0
  771. package/packages/sourcevision/dist/analyzers/enrich-batch.js.map +1 -0
  772. package/packages/sourcevision/dist/analyzers/enrich-config.d.ts +41 -0
  773. package/packages/sourcevision/dist/analyzers/enrich-config.js +215 -0
  774. package/packages/sourcevision/dist/analyzers/enrich-config.js.map +1 -0
  775. package/packages/sourcevision/dist/analyzers/enrich-parsing.d.ts +58 -0
  776. package/packages/sourcevision/dist/analyzers/enrich-parsing.js +401 -0
  777. package/packages/sourcevision/dist/analyzers/enrich-parsing.js.map +1 -0
  778. package/packages/sourcevision/dist/analyzers/enrich-per-zone.d.ts +27 -0
  779. package/packages/sourcevision/dist/analyzers/enrich-per-zone.js +287 -0
  780. package/packages/sourcevision/dist/analyzers/enrich-per-zone.js.map +1 -0
  781. package/packages/sourcevision/dist/analyzers/enrich.d.ts +25 -0
  782. package/packages/sourcevision/dist/analyzers/enrich.js +255 -0
  783. package/packages/sourcevision/dist/analyzers/enrich.js.map +1 -0
  784. package/packages/sourcevision/dist/analyzers/imports.d.ts +18 -0
  785. package/packages/sourcevision/dist/analyzers/imports.js +448 -0
  786. package/packages/sourcevision/dist/analyzers/imports.js.map +1 -0
  787. package/packages/sourcevision/dist/analyzers/index.d.ts +12 -0
  788. package/packages/sourcevision/dist/analyzers/index.js +10 -0
  789. package/packages/sourcevision/dist/analyzers/index.js.map +1 -0
  790. package/packages/sourcevision/dist/analyzers/inventory.d.ts +33 -0
  791. package/packages/sourcevision/dist/analyzers/inventory.js +594 -0
  792. package/packages/sourcevision/dist/analyzers/inventory.js.map +1 -0
  793. package/packages/sourcevision/dist/analyzers/llms-txt.d.ts +6 -0
  794. package/packages/sourcevision/dist/analyzers/llms-txt.js +268 -0
  795. package/packages/sourcevision/dist/analyzers/llms-txt.js.map +1 -0
  796. package/packages/sourcevision/dist/analyzers/louvain.d.ts +123 -0
  797. package/packages/sourcevision/dist/analyzers/louvain.js +669 -0
  798. package/packages/sourcevision/dist/analyzers/louvain.js.map +1 -0
  799. package/packages/sourcevision/dist/analyzers/manifest.d.ts +8 -0
  800. package/packages/sourcevision/dist/analyzers/manifest.js +72 -0
  801. package/packages/sourcevision/dist/analyzers/manifest.js.map +1 -0
  802. package/packages/sourcevision/dist/analyzers/move-recommendations.d.ts +41 -0
  803. package/packages/sourcevision/dist/analyzers/move-recommendations.js +193 -0
  804. package/packages/sourcevision/dist/analyzers/move-recommendations.js.map +1 -0
  805. package/packages/sourcevision/dist/analyzers/next-steps.d.ts +10 -0
  806. package/packages/sourcevision/dist/analyzers/next-steps.js +228 -0
  807. package/packages/sourcevision/dist/analyzers/next-steps.js.map +1 -0
  808. package/packages/sourcevision/dist/analyzers/risk-scoring.d.ts +120 -0
  809. package/packages/sourcevision/dist/analyzers/risk-scoring.js +266 -0
  810. package/packages/sourcevision/dist/analyzers/risk-scoring.js.map +1 -0
  811. package/packages/sourcevision/dist/analyzers/route-detection.d.ts +29 -0
  812. package/packages/sourcevision/dist/analyzers/route-detection.js +316 -0
  813. package/packages/sourcevision/dist/analyzers/route-detection.js.map +1 -0
  814. package/packages/sourcevision/dist/analyzers/server-route-detection.d.ts +35 -0
  815. package/packages/sourcevision/dist/analyzers/server-route-detection.js +210 -0
  816. package/packages/sourcevision/dist/analyzers/server-route-detection.js.map +1 -0
  817. package/packages/sourcevision/dist/analyzers/token-usage.d.ts +11 -0
  818. package/packages/sourcevision/dist/analyzers/token-usage.js +41 -0
  819. package/packages/sourcevision/dist/analyzers/token-usage.js.map +1 -0
  820. package/packages/sourcevision/dist/analyzers/workspace-aggregate.d.ts +80 -0
  821. package/packages/sourcevision/dist/analyzers/workspace-aggregate.js +386 -0
  822. package/packages/sourcevision/dist/analyzers/workspace-aggregate.js.map +1 -0
  823. package/packages/sourcevision/dist/analyzers/workspace-crossings.d.ts +63 -0
  824. package/packages/sourcevision/dist/analyzers/workspace-crossings.js +239 -0
  825. package/packages/sourcevision/dist/analyzers/workspace-crossings.js.map +1 -0
  826. package/packages/sourcevision/dist/analyzers/workspace.d.ts +65 -0
  827. package/packages/sourcevision/dist/analyzers/workspace.js +243 -0
  828. package/packages/sourcevision/dist/analyzers/workspace.js.map +1 -0
  829. package/packages/sourcevision/dist/analyzers/zone-hash.d.ts +15 -0
  830. package/packages/sourcevision/dist/analyzers/zone-hash.js +23 -0
  831. package/packages/sourcevision/dist/analyzers/zone-hash.js.map +1 -0
  832. package/packages/sourcevision/dist/analyzers/zone-output.d.ts +20 -0
  833. package/packages/sourcevision/dist/analyzers/zone-output.js +252 -0
  834. package/packages/sourcevision/dist/analyzers/zone-output.js.map +1 -0
  835. package/packages/sourcevision/dist/analyzers/zones.d.ts +224 -0
  836. package/packages/sourcevision/dist/analyzers/zones.js +1538 -0
  837. package/packages/sourcevision/dist/analyzers/zones.js.map +1 -0
  838. package/packages/sourcevision/dist/cli/commands/analyze-phases.d.ts +48 -0
  839. package/packages/sourcevision/dist/cli/commands/analyze-phases.js +496 -0
  840. package/packages/sourcevision/dist/cli/commands/analyze-phases.js.map +1 -0
  841. package/packages/sourcevision/dist/cli/commands/analyze.d.ts +13 -0
  842. package/packages/sourcevision/dist/cli/commands/analyze.js +332 -0
  843. package/packages/sourcevision/dist/cli/commands/analyze.js.map +1 -0
  844. package/packages/sourcevision/dist/cli/commands/constants.d.ts +2 -0
  845. package/packages/sourcevision/dist/cli/commands/constants.js +34 -0
  846. package/packages/sourcevision/dist/cli/commands/constants.js.map +1 -0
  847. package/packages/sourcevision/dist/cli/commands/export-pdf.d.ts +19 -0
  848. package/packages/sourcevision/dist/cli/commands/export-pdf.js +73 -0
  849. package/packages/sourcevision/dist/cli/commands/export-pdf.js.map +1 -0
  850. package/packages/sourcevision/dist/cli/commands/git-credential-helper.d.ts +2 -0
  851. package/packages/sourcevision/dist/cli/commands/git-credential-helper.js +59 -0
  852. package/packages/sourcevision/dist/cli/commands/git-credential-helper.js.map +1 -0
  853. package/packages/sourcevision/dist/cli/commands/init.d.ts +2 -0
  854. package/packages/sourcevision/dist/cli/commands/init.js +55 -0
  855. package/packages/sourcevision/dist/cli/commands/init.js.map +1 -0
  856. package/packages/sourcevision/dist/cli/commands/pr-markdown.d.ts +72 -0
  857. package/packages/sourcevision/dist/cli/commands/pr-markdown.js +121 -0
  858. package/packages/sourcevision/dist/cli/commands/pr-markdown.js.map +1 -0
  859. package/packages/sourcevision/dist/cli/commands/prd-epic-resolver.d.ts +45 -0
  860. package/packages/sourcevision/dist/cli/commands/prd-epic-resolver.js +220 -0
  861. package/packages/sourcevision/dist/cli/commands/prd-epic-resolver.js.map +1 -0
  862. package/packages/sourcevision/dist/cli/commands/reset.d.ts +1 -0
  863. package/packages/sourcevision/dist/cli/commands/reset.js +54 -0
  864. package/packages/sourcevision/dist/cli/commands/reset.js.map +1 -0
  865. package/packages/sourcevision/dist/cli/commands/validate.d.ts +1 -0
  866. package/packages/sourcevision/dist/cli/commands/validate.js +53 -0
  867. package/packages/sourcevision/dist/cli/commands/validate.js.map +1 -0
  868. package/packages/sourcevision/dist/cli/commands/workspace.d.ts +19 -0
  869. package/packages/sourcevision/dist/cli/commands/workspace.js +139 -0
  870. package/packages/sourcevision/dist/cli/commands/workspace.js.map +1 -0
  871. package/packages/sourcevision/dist/cli/errors.d.ts +31 -0
  872. package/packages/sourcevision/dist/cli/errors.js +100 -0
  873. package/packages/sourcevision/dist/cli/errors.js.map +1 -0
  874. package/packages/sourcevision/dist/cli/help.d.ts +23 -0
  875. package/packages/sourcevision/dist/cli/help.js +241 -0
  876. package/packages/sourcevision/dist/cli/help.js.map +1 -0
  877. package/packages/sourcevision/dist/cli/index.d.ts +15 -0
  878. package/packages/sourcevision/dist/cli/index.js +127 -0
  879. package/packages/sourcevision/dist/cli/index.js.map +1 -0
  880. package/packages/sourcevision/dist/cli/mcp.d.ts +13 -0
  881. package/packages/sourcevision/dist/cli/mcp.js +433 -0
  882. package/packages/sourcevision/dist/cli/mcp.js.map +1 -0
  883. package/packages/sourcevision/dist/cli/output.d.ts +19 -0
  884. package/packages/sourcevision/dist/cli/output.js +48 -0
  885. package/packages/sourcevision/dist/cli/output.js.map +1 -0
  886. package/packages/sourcevision/dist/cli/serve.d.ts +11 -0
  887. package/packages/sourcevision/dist/cli/serve.js +41 -0
  888. package/packages/sourcevision/dist/cli/serve.js.map +1 -0
  889. package/packages/sourcevision/dist/cli/server/index.d.ts +19 -0
  890. package/packages/sourcevision/dist/cli/server/index.js +17 -0
  891. package/packages/sourcevision/dist/cli/server/index.js.map +1 -0
  892. package/packages/sourcevision/dist/cli/server/routes-data.d.ts +14 -0
  893. package/packages/sourcevision/dist/cli/server/routes-data.js +122 -0
  894. package/packages/sourcevision/dist/cli/server/routes-data.js.map +1 -0
  895. package/packages/sourcevision/dist/cli/server/routes-hench.d.ts +12 -0
  896. package/packages/sourcevision/dist/cli/server/routes-hench.js +100 -0
  897. package/packages/sourcevision/dist/cli/server/routes-hench.js.map +1 -0
  898. package/packages/sourcevision/dist/cli/server/routes-rex.d.ts +23 -0
  899. package/packages/sourcevision/dist/cli/server/routes-rex.js +817 -0
  900. package/packages/sourcevision/dist/cli/server/routes-rex.js.map +1 -0
  901. package/packages/sourcevision/dist/cli/server/routes-sourcevision.d.ts +17 -0
  902. package/packages/sourcevision/dist/cli/server/routes-sourcevision.js +145 -0
  903. package/packages/sourcevision/dist/cli/server/routes-sourcevision.js.map +1 -0
  904. package/packages/sourcevision/dist/cli/server/routes-static.d.ts +17 -0
  905. package/packages/sourcevision/dist/cli/server/routes-static.js +88 -0
  906. package/packages/sourcevision/dist/cli/server/routes-static.js.map +1 -0
  907. package/packages/sourcevision/dist/cli/server/routes-token-usage.d.ts +18 -0
  908. package/packages/sourcevision/dist/cli/server/routes-token-usage.js +349 -0
  909. package/packages/sourcevision/dist/cli/server/routes-token-usage.js.map +1 -0
  910. package/packages/sourcevision/dist/cli/server/routes-validation.d.ts +10 -0
  911. package/packages/sourcevision/dist/cli/server/routes-validation.js +395 -0
  912. package/packages/sourcevision/dist/cli/server/routes-validation.js.map +1 -0
  913. package/packages/sourcevision/dist/cli/server/start.d.ts +7 -0
  914. package/packages/sourcevision/dist/cli/server/start.js +166 -0
  915. package/packages/sourcevision/dist/cli/server/start.js.map +1 -0
  916. package/packages/sourcevision/dist/cli/server/types.d.ts +23 -0
  917. package/packages/sourcevision/dist/cli/server/types.js +26 -0
  918. package/packages/sourcevision/dist/cli/server/types.js.map +1 -0
  919. package/packages/sourcevision/dist/cli/server/websocket.d.ts +31 -0
  920. package/packages/sourcevision/dist/cli/server/websocket.js +247 -0
  921. package/packages/sourcevision/dist/cli/server/websocket.js.map +1 -0
  922. package/packages/sourcevision/dist/constants.d.ts +4 -0
  923. package/packages/sourcevision/dist/constants.js +6 -0
  924. package/packages/sourcevision/dist/constants.js.map +1 -0
  925. package/packages/sourcevision/dist/export/pdf-report.d.ts +27 -0
  926. package/packages/sourcevision/dist/export/pdf-report.js +447 -0
  927. package/packages/sourcevision/dist/export/pdf-report.js.map +1 -0
  928. package/packages/sourcevision/dist/generators/pr-markdown-template.d.ts +56 -0
  929. package/packages/sourcevision/dist/generators/pr-markdown-template.js +264 -0
  930. package/packages/sourcevision/dist/generators/pr-markdown-template.js.map +1 -0
  931. package/packages/sourcevision/dist/public.d.ts +41 -0
  932. package/packages/sourcevision/dist/public.js +43 -0
  933. package/packages/sourcevision/dist/public.js.map +1 -0
  934. package/packages/sourcevision/dist/schema/data-files.d.ts +11 -0
  935. package/packages/sourcevision/dist/schema/data-files.js +12 -0
  936. package/packages/sourcevision/dist/schema/data-files.js.map +1 -0
  937. package/packages/sourcevision/dist/schema/index.d.ts +3 -0
  938. package/packages/sourcevision/dist/schema/index.js +3 -0
  939. package/packages/sourcevision/dist/schema/index.js.map +1 -0
  940. package/packages/sourcevision/dist/schema/v1.d.ts +550 -0
  941. package/packages/sourcevision/dist/schema/v1.js +3 -0
  942. package/packages/sourcevision/dist/schema/v1.js.map +1 -0
  943. package/packages/sourcevision/dist/schema/validate.d.ts +1243 -0
  944. package/packages/sourcevision/dist/schema/validate.js +411 -0
  945. package/packages/sourcevision/dist/schema/validate.js.map +1 -0
  946. package/packages/sourcevision/dist/util/__tests__/merge.test.d.ts +1 -0
  947. package/packages/sourcevision/dist/util/__tests__/merge.test.js +122 -0
  948. package/packages/sourcevision/dist/util/__tests__/merge.test.js.map +1 -0
  949. package/packages/sourcevision/dist/util/__tests__/sort.test.d.ts +1 -0
  950. package/packages/sourcevision/dist/util/__tests__/sort.test.js +151 -0
  951. package/packages/sourcevision/dist/util/__tests__/sort.test.js.map +1 -0
  952. package/packages/sourcevision/dist/util/merge.d.ts +18 -0
  953. package/packages/sourcevision/dist/util/merge.js +152 -0
  954. package/packages/sourcevision/dist/util/merge.js.map +1 -0
  955. package/packages/sourcevision/dist/util/paths.d.ts +2 -0
  956. package/packages/sourcevision/dist/util/paths.js +5 -0
  957. package/packages/sourcevision/dist/util/paths.js.map +1 -0
  958. package/packages/sourcevision/dist/util/project-config.d.ts +29 -0
  959. package/packages/sourcevision/dist/util/project-config.js +49 -0
  960. package/packages/sourcevision/dist/util/project-config.js.map +1 -0
  961. package/packages/sourcevision/dist/util/sort.d.ts +31 -0
  962. package/packages/sourcevision/dist/util/sort.js +149 -0
  963. package/packages/sourcevision/dist/util/sort.js.map +1 -0
  964. package/packages/sourcevision/dist/viewer/Hench-F.png +0 -0
  965. package/packages/sourcevision/dist/viewer/Rex-F.png +0 -0
  966. package/packages/sourcevision/dist/viewer/SourceVision-F.png +0 -0
  967. package/packages/sourcevision/dist/viewer/SourceVision.png +0 -0
  968. package/packages/sourcevision/dist/viewer/components/collapsible-section.d.ts +12 -0
  969. package/packages/sourcevision/dist/viewer/components/collapsible-section.js +40 -0
  970. package/packages/sourcevision/dist/viewer/components/collapsible-section.js.map +1 -0
  971. package/packages/sourcevision/dist/viewer/components/constants.d.ts +6 -0
  972. package/packages/sourcevision/dist/viewer/components/constants.js +16 -0
  973. package/packages/sourcevision/dist/viewer/components/constants.js.map +1 -0
  974. package/packages/sourcevision/dist/viewer/components/data-display/collapsible-section.d.ts +12 -0
  975. package/packages/sourcevision/dist/viewer/components/data-display/collapsible-section.js +40 -0
  976. package/packages/sourcevision/dist/viewer/components/data-display/collapsible-section.js.map +1 -0
  977. package/packages/sourcevision/dist/viewer/components/data-display/findings-list.d.ts +13 -0
  978. package/packages/sourcevision/dist/viewer/components/data-display/findings-list.js +136 -0
  979. package/packages/sourcevision/dist/viewer/components/data-display/findings-list.js.map +1 -0
  980. package/packages/sourcevision/dist/viewer/components/data-display/health-gauge.d.ts +47 -0
  981. package/packages/sourcevision/dist/viewer/components/data-display/health-gauge.js +70 -0
  982. package/packages/sourcevision/dist/viewer/components/data-display/health-gauge.js.map +1 -0
  983. package/packages/sourcevision/dist/viewer/components/data-display/mini-charts.d.ts +36 -0
  984. package/packages/sourcevision/dist/viewer/components/data-display/mini-charts.js +124 -0
  985. package/packages/sourcevision/dist/viewer/components/data-display/mini-charts.js.map +1 -0
  986. package/packages/sourcevision/dist/viewer/components/data-display/tree-view.d.ts +18 -0
  987. package/packages/sourcevision/dist/viewer/components/data-display/tree-view.js +107 -0
  988. package/packages/sourcevision/dist/viewer/components/data-display/tree-view.js.map +1 -0
  989. package/packages/sourcevision/dist/viewer/components/data-display/zone-map.d.ts +28 -0
  990. package/packages/sourcevision/dist/viewer/components/data-display/zone-map.js +195 -0
  991. package/packages/sourcevision/dist/viewer/components/data-display/zone-map.js.map +1 -0
  992. package/packages/sourcevision/dist/viewer/components/detail-panel.d.ts +12 -0
  993. package/packages/sourcevision/dist/viewer/components/detail-panel.js +166 -0
  994. package/packages/sourcevision/dist/viewer/components/detail-panel.js.map +1 -0
  995. package/packages/sourcevision/dist/viewer/components/faq.d.ts +1 -0
  996. package/packages/sourcevision/dist/viewer/components/faq.js +162 -0
  997. package/packages/sourcevision/dist/viewer/components/faq.js.map +1 -0
  998. package/packages/sourcevision/dist/viewer/components/findings-list.d.ts +13 -0
  999. package/packages/sourcevision/dist/viewer/components/findings-list.js +136 -0
  1000. package/packages/sourcevision/dist/viewer/components/findings-list.js.map +1 -0
  1001. package/packages/sourcevision/dist/viewer/components/guide.d.ts +5 -0
  1002. package/packages/sourcevision/dist/viewer/components/guide.js +77 -0
  1003. package/packages/sourcevision/dist/viewer/components/guide.js.map +1 -0
  1004. package/packages/sourcevision/dist/viewer/components/health-gauge.d.ts +47 -0
  1005. package/packages/sourcevision/dist/viewer/components/health-gauge.js +70 -0
  1006. package/packages/sourcevision/dist/viewer/components/health-gauge.js.map +1 -0
  1007. package/packages/sourcevision/dist/viewer/components/logos.d.ts +103 -0
  1008. package/packages/sourcevision/dist/viewer/components/logos.js +148 -0
  1009. package/packages/sourcevision/dist/viewer/components/logos.js.map +1 -0
  1010. package/packages/sourcevision/dist/viewer/components/mini-charts.d.ts +36 -0
  1011. package/packages/sourcevision/dist/viewer/components/mini-charts.js +124 -0
  1012. package/packages/sourcevision/dist/viewer/components/mini-charts.js.map +1 -0
  1013. package/packages/sourcevision/dist/viewer/components/prd-tree/add-item-form.d.ts +31 -0
  1014. package/packages/sourcevision/dist/viewer/components/prd-tree/add-item-form.js +209 -0
  1015. package/packages/sourcevision/dist/viewer/components/prd-tree/add-item-form.js.map +1 -0
  1016. package/packages/sourcevision/dist/viewer/components/prd-tree/analyze-panel.d.ts +13 -0
  1017. package/packages/sourcevision/dist/viewer/components/prd-tree/analyze-panel.js +225 -0
  1018. package/packages/sourcevision/dist/viewer/components/prd-tree/analyze-panel.js.map +1 -0
  1019. package/packages/sourcevision/dist/viewer/components/prd-tree/bulk-actions.d.ts +17 -0
  1020. package/packages/sourcevision/dist/viewer/components/prd-tree/bulk-actions.js +80 -0
  1021. package/packages/sourcevision/dist/viewer/components/prd-tree/bulk-actions.js.map +1 -0
  1022. package/packages/sourcevision/dist/viewer/components/prd-tree/compute.d.ts +28 -0
  1023. package/packages/sourcevision/dist/viewer/components/prd-tree/compute.js +116 -0
  1024. package/packages/sourcevision/dist/viewer/components/prd-tree/compute.js.map +1 -0
  1025. package/packages/sourcevision/dist/viewer/components/prd-tree/index.d.ts +14 -0
  1026. package/packages/sourcevision/dist/viewer/components/prd-tree/index.js +8 -0
  1027. package/packages/sourcevision/dist/viewer/components/prd-tree/index.js.map +1 -0
  1028. package/packages/sourcevision/dist/viewer/components/prd-tree/prd-tree.d.ts +21 -0
  1029. package/packages/sourcevision/dist/viewer/components/prd-tree/prd-tree.js +293 -0
  1030. package/packages/sourcevision/dist/viewer/components/prd-tree/prd-tree.js.map +1 -0
  1031. package/packages/sourcevision/dist/viewer/components/prd-tree/status-filter.d.ts +40 -0
  1032. package/packages/sourcevision/dist/viewer/components/prd-tree/status-filter.js +129 -0
  1033. package/packages/sourcevision/dist/viewer/components/prd-tree/status-filter.js.map +1 -0
  1034. package/packages/sourcevision/dist/viewer/components/prd-tree/task-detail.d.ts +18 -0
  1035. package/packages/sourcevision/dist/viewer/components/prd-tree/task-detail.js +221 -0
  1036. package/packages/sourcevision/dist/viewer/components/prd-tree/task-detail.js.map +1 -0
  1037. package/packages/sourcevision/dist/viewer/components/prd-tree/types.d.ts +45 -0
  1038. package/packages/sourcevision/dist/viewer/components/prd-tree/types.js +15 -0
  1039. package/packages/sourcevision/dist/viewer/components/prd-tree/types.js.map +1 -0
  1040. package/packages/sourcevision/dist/viewer/components/rex-task-link.d.ts +48 -0
  1041. package/packages/sourcevision/dist/viewer/components/rex-task-link.js +191 -0
  1042. package/packages/sourcevision/dist/viewer/components/rex-task-link.js.map +1 -0
  1043. package/packages/sourcevision/dist/viewer/components/search-filter.d.ts +20 -0
  1044. package/packages/sourcevision/dist/viewer/components/search-filter.js +28 -0
  1045. package/packages/sourcevision/dist/viewer/components/search-filter.js.map +1 -0
  1046. package/packages/sourcevision/dist/viewer/components/sidebar.d.ts +16 -0
  1047. package/packages/sourcevision/dist/viewer/components/sidebar.js +296 -0
  1048. package/packages/sourcevision/dist/viewer/components/sidebar.js.map +1 -0
  1049. package/packages/sourcevision/dist/viewer/components/theme-toggle.d.ts +14 -0
  1050. package/packages/sourcevision/dist/viewer/components/theme-toggle.js +37 -0
  1051. package/packages/sourcevision/dist/viewer/components/theme-toggle.js.map +1 -0
  1052. package/packages/sourcevision/dist/viewer/components/tree-view.d.ts +18 -0
  1053. package/packages/sourcevision/dist/viewer/components/tree-view.js +107 -0
  1054. package/packages/sourcevision/dist/viewer/components/tree-view.js.map +1 -0
  1055. package/packages/sourcevision/dist/viewer/components/zone-map.d.ts +28 -0
  1056. package/packages/sourcevision/dist/viewer/components/zone-map.js +195 -0
  1057. package/packages/sourcevision/dist/viewer/components/zone-map.js.map +1 -0
  1058. package/packages/sourcevision/dist/viewer/graph/physics.d.ts +70 -0
  1059. package/packages/sourcevision/dist/viewer/graph/physics.js +260 -0
  1060. package/packages/sourcevision/dist/viewer/graph/physics.js.map +1 -0
  1061. package/packages/sourcevision/dist/viewer/graph/renderer.d.ts +69 -0
  1062. package/packages/sourcevision/dist/viewer/graph/renderer.js +423 -0
  1063. package/packages/sourcevision/dist/viewer/graph/renderer.js.map +1 -0
  1064. package/packages/sourcevision/dist/viewer/index.html +27 -0
  1065. package/packages/sourcevision/dist/viewer/loader.d.ts +20 -0
  1066. package/packages/sourcevision/dist/viewer/loader.js +142 -0
  1067. package/packages/sourcevision/dist/viewer/loader.js.map +1 -0
  1068. package/packages/sourcevision/dist/viewer/main.d.ts +1 -0
  1069. package/packages/sourcevision/dist/viewer/main.js +234 -0
  1070. package/packages/sourcevision/dist/viewer/main.js.map +1 -0
  1071. package/packages/sourcevision/dist/viewer/n-dx.png +0 -0
  1072. package/packages/sourcevision/dist/viewer/schema-compat.d.ts +17 -0
  1073. package/packages/sourcevision/dist/viewer/schema-compat.js +47 -0
  1074. package/packages/sourcevision/dist/viewer/schema-compat.js.map +1 -0
  1075. package/packages/sourcevision/dist/viewer/styles.css +2052 -0
  1076. package/packages/sourcevision/dist/viewer/types.d.ts +63 -0
  1077. package/packages/sourcevision/dist/viewer/types.js +2 -0
  1078. package/packages/sourcevision/dist/viewer/types.js.map +1 -0
  1079. package/packages/sourcevision/dist/viewer/utils.d.ts +23 -0
  1080. package/packages/sourcevision/dist/viewer/utils.js +49 -0
  1081. package/packages/sourcevision/dist/viewer/utils.js.map +1 -0
  1082. package/packages/sourcevision/dist/viewer/views/analysis.d.ts +10 -0
  1083. package/packages/sourcevision/dist/viewer/views/analysis.js +87 -0
  1084. package/packages/sourcevision/dist/viewer/views/analysis.js.map +1 -0
  1085. package/packages/sourcevision/dist/viewer/views/architecture.d.ts +10 -0
  1086. package/packages/sourcevision/dist/viewer/views/architecture.js +75 -0
  1087. package/packages/sourcevision/dist/viewer/views/architecture.js.map +1 -0
  1088. package/packages/sourcevision/dist/viewer/views/files.d.ts +13 -0
  1089. package/packages/sourcevision/dist/viewer/views/files.js +162 -0
  1090. package/packages/sourcevision/dist/viewer/views/files.js.map +1 -0
  1091. package/packages/sourcevision/dist/viewer/views/graph.d.ts +11 -0
  1092. package/packages/sourcevision/dist/viewer/views/graph.js +130 -0
  1093. package/packages/sourcevision/dist/viewer/views/graph.js.map +1 -0
  1094. package/packages/sourcevision/dist/viewer/views/hench-runs.d.ts +17 -0
  1095. package/packages/sourcevision/dist/viewer/views/hench-runs.js +336 -0
  1096. package/packages/sourcevision/dist/viewer/views/hench-runs.js.map +1 -0
  1097. package/packages/sourcevision/dist/viewer/views/overview.d.ts +10 -0
  1098. package/packages/sourcevision/dist/viewer/views/overview.js +230 -0
  1099. package/packages/sourcevision/dist/viewer/views/overview.js.map +1 -0
  1100. package/packages/sourcevision/dist/viewer/views/prd.d.ts +21 -0
  1101. package/packages/sourcevision/dist/viewer/views/prd.js +201 -0
  1102. package/packages/sourcevision/dist/viewer/views/prd.js.map +1 -0
  1103. package/packages/sourcevision/dist/viewer/views/problems.d.ts +8 -0
  1104. package/packages/sourcevision/dist/viewer/views/problems.js +51 -0
  1105. package/packages/sourcevision/dist/viewer/views/problems.js.map +1 -0
  1106. package/packages/sourcevision/dist/viewer/views/rex-dashboard.d.ts +14 -0
  1107. package/packages/sourcevision/dist/viewer/views/rex-dashboard.js +229 -0
  1108. package/packages/sourcevision/dist/viewer/views/rex-dashboard.js.map +1 -0
  1109. package/packages/sourcevision/dist/viewer/views/routes.d.ts +8 -0
  1110. package/packages/sourcevision/dist/viewer/views/routes.js +218 -0
  1111. package/packages/sourcevision/dist/viewer/views/routes.js.map +1 -0
  1112. package/packages/sourcevision/dist/viewer/views/suggestions.d.ts +8 -0
  1113. package/packages/sourcevision/dist/viewer/views/suggestions.js +36 -0
  1114. package/packages/sourcevision/dist/viewer/views/suggestions.js.map +1 -0
  1115. package/packages/sourcevision/dist/viewer/views/token-usage.d.ts +10 -0
  1116. package/packages/sourcevision/dist/viewer/views/token-usage.js +384 -0
  1117. package/packages/sourcevision/dist/viewer/views/token-usage.js.map +1 -0
  1118. package/packages/sourcevision/dist/viewer/views/validation.d.ts +8 -0
  1119. package/packages/sourcevision/dist/viewer/views/validation.js +470 -0
  1120. package/packages/sourcevision/dist/viewer/views/validation.js.map +1 -0
  1121. package/packages/sourcevision/dist/viewer/views/zones.d.ts +11 -0
  1122. package/packages/sourcevision/dist/viewer/views/zones.js +146 -0
  1123. package/packages/sourcevision/dist/viewer/views/zones.js.map +1 -0
  1124. package/packages/sourcevision/package.json +43 -0
  1125. package/packages/web/build.js +243 -0
  1126. package/packages/web/dist/cli/index.d.ts +8 -0
  1127. package/packages/web/dist/cli/index.js +50 -0
  1128. package/packages/web/dist/cli/index.js.map +1 -0
  1129. package/packages/web/dist/landing/color-inversion.d.ts +7 -0
  1130. package/packages/web/dist/landing/color-inversion.js +24 -0
  1131. package/packages/web/dist/landing/color-inversion.js.map +1 -0
  1132. package/packages/web/dist/landing/index.html +325 -0
  1133. package/packages/web/dist/landing/landing.d.ts +38 -0
  1134. package/packages/web/dist/landing/landing.js +299 -0
  1135. package/packages/web/dist/landing/landing.js.map +1 -0
  1136. package/packages/web/dist/public.d.ts +55 -0
  1137. package/packages/web/dist/public.js +51 -0
  1138. package/packages/web/dist/public.js.map +1 -0
  1139. package/packages/web/dist/schema/data-files.d.ts +10 -0
  1140. package/packages/web/dist/schema/data-files.js +11 -0
  1141. package/packages/web/dist/schema/data-files.js.map +1 -0
  1142. package/packages/web/dist/schema/features.d.ts +28 -0
  1143. package/packages/web/dist/schema/features.js +9 -0
  1144. package/packages/web/dist/schema/features.js.map +1 -0
  1145. package/packages/web/dist/schema/v1.d.ts +317 -0
  1146. package/packages/web/dist/schema/v1.js +3 -0
  1147. package/packages/web/dist/schema/v1.js.map +1 -0
  1148. package/packages/web/dist/schema/validate.d.ts +15 -0
  1149. package/packages/web/dist/schema/validate.js +260 -0
  1150. package/packages/web/dist/schema/validate.js.map +1 -0
  1151. package/packages/web/dist/server/aggregation-cache.d.ts +105 -0
  1152. package/packages/web/dist/server/aggregation-cache.js +163 -0
  1153. package/packages/web/dist/server/aggregation-cache.js.map +1 -0
  1154. package/packages/web/dist/server/concurrent-execution-metrics.d.ts +103 -0
  1155. package/packages/web/dist/server/concurrent-execution-metrics.js +253 -0
  1156. package/packages/web/dist/server/concurrent-execution-metrics.js.map +1 -0
  1157. package/packages/web/dist/server/domain-gateway.d.ts +18 -0
  1158. package/packages/web/dist/server/domain-gateway.js +19 -0
  1159. package/packages/web/dist/server/domain-gateway.js.map +1 -0
  1160. package/packages/web/dist/server/incremental-task-usage.d.ts +92 -0
  1161. package/packages/web/dist/server/incremental-task-usage.js +251 -0
  1162. package/packages/web/dist/server/incremental-task-usage.js.map +1 -0
  1163. package/packages/web/dist/server/index.d.ts +39 -0
  1164. package/packages/web/dist/server/index.js +36 -0
  1165. package/packages/web/dist/server/index.js.map +1 -0
  1166. package/packages/web/dist/server/mcp-deps.d.ts +6 -0
  1167. package/packages/web/dist/server/mcp-deps.js +7 -0
  1168. package/packages/web/dist/server/mcp-deps.js.map +1 -0
  1169. package/packages/web/dist/server/port.d.ts +96 -0
  1170. package/packages/web/dist/server/port.js +134 -0
  1171. package/packages/web/dist/server/port.js.map +1 -0
  1172. package/packages/web/dist/server/pr-markdown-refresh-diagnostics.d.ts +59 -0
  1173. package/packages/web/dist/server/pr-markdown-refresh-diagnostics.js +429 -0
  1174. package/packages/web/dist/server/pr-markdown-refresh-diagnostics.js.map +1 -0
  1175. package/packages/web/dist/server/prd-io.d.ts +40 -0
  1176. package/packages/web/dist/server/prd-io.js +66 -0
  1177. package/packages/web/dist/server/prd-io.js.map +1 -0
  1178. package/packages/web/dist/server/process-memory-tracker.d.ts +79 -0
  1179. package/packages/web/dist/server/process-memory-tracker.js +194 -0
  1180. package/packages/web/dist/server/process-memory-tracker.js.map +1 -0
  1181. package/packages/web/dist/server/register-scheduler.d.ts +53 -0
  1182. package/packages/web/dist/server/register-scheduler.js +36 -0
  1183. package/packages/web/dist/server/register-scheduler.js.map +1 -0
  1184. package/packages/web/dist/server/rex-domain.d.ts +55 -0
  1185. package/packages/web/dist/server/rex-domain.js +84 -0
  1186. package/packages/web/dist/server/rex-domain.js.map +1 -0
  1187. package/packages/web/dist/server/rex-gateway.d.ts +39 -0
  1188. package/packages/web/dist/server/rex-gateway.js +47 -0
  1189. package/packages/web/dist/server/rex-gateway.js.map +1 -0
  1190. package/packages/web/dist/server/routes-adaptive.d.ts +21 -0
  1191. package/packages/web/dist/server/routes-adaptive.js +659 -0
  1192. package/packages/web/dist/server/routes-adaptive.js.map +1 -0
  1193. package/packages/web/dist/server/routes-config.d.ts +47 -0
  1194. package/packages/web/dist/server/routes-config.js +222 -0
  1195. package/packages/web/dist/server/routes-config.js.map +1 -0
  1196. package/packages/web/dist/server/routes-data.d.ts +14 -0
  1197. package/packages/web/dist/server/routes-data.js +129 -0
  1198. package/packages/web/dist/server/routes-data.js.map +1 -0
  1199. package/packages/web/dist/server/routes-features.d.ts +14 -0
  1200. package/packages/web/dist/server/routes-features.js +245 -0
  1201. package/packages/web/dist/server/routes-features.js.map +1 -0
  1202. package/packages/web/dist/server/routes-hench.d.ts +116 -0
  1203. package/packages/web/dist/server/routes-hench.js +2016 -0
  1204. package/packages/web/dist/server/routes-hench.js.map +1 -0
  1205. package/packages/web/dist/server/routes-integrations.d.ts +23 -0
  1206. package/packages/web/dist/server/routes-integrations.js +277 -0
  1207. package/packages/web/dist/server/routes-integrations.js.map +1 -0
  1208. package/packages/web/dist/server/routes-mcp.d.ts +31 -0
  1209. package/packages/web/dist/server/routes-mcp.js +175 -0
  1210. package/packages/web/dist/server/routes-mcp.js.map +1 -0
  1211. package/packages/web/dist/server/routes-notion.d.ts +23 -0
  1212. package/packages/web/dist/server/routes-notion.js +723 -0
  1213. package/packages/web/dist/server/routes-notion.js.map +1 -0
  1214. package/packages/web/dist/server/routes-project.d.ts +47 -0
  1215. package/packages/web/dist/server/routes-project.js +128 -0
  1216. package/packages/web/dist/server/routes-project.js.map +1 -0
  1217. package/packages/web/dist/server/routes-rex/analysis.d.ts +11 -0
  1218. package/packages/web/dist/server/routes-rex/analysis.js +583 -0
  1219. package/packages/web/dist/server/routes-rex/analysis.js.map +1 -0
  1220. package/packages/web/dist/server/routes-rex/execution.d.ts +37 -0
  1221. package/packages/web/dist/server/routes-rex/execution.js +355 -0
  1222. package/packages/web/dist/server/routes-rex/execution.js.map +1 -0
  1223. package/packages/web/dist/server/routes-rex/health.d.ts +8 -0
  1224. package/packages/web/dist/server/routes-rex/health.js +136 -0
  1225. package/packages/web/dist/server/routes-rex/health.js.map +1 -0
  1226. package/packages/web/dist/server/routes-rex/index.d.ts +35 -0
  1227. package/packages/web/dist/server/routes-rex/index.js +72 -0
  1228. package/packages/web/dist/server/routes-rex/index.js.map +1 -0
  1229. package/packages/web/dist/server/routes-rex/items.d.ts +8 -0
  1230. package/packages/web/dist/server/routes-rex/items.js +359 -0
  1231. package/packages/web/dist/server/routes-rex/items.js.map +1 -0
  1232. package/packages/web/dist/server/routes-rex/prune.d.ts +11 -0
  1233. package/packages/web/dist/server/routes-rex/prune.js +379 -0
  1234. package/packages/web/dist/server/routes-rex/prune.js.map +1 -0
  1235. package/packages/web/dist/server/routes-rex/reads.d.ts +9 -0
  1236. package/packages/web/dist/server/routes-rex/reads.js +119 -0
  1237. package/packages/web/dist/server/routes-rex/reads.js.map +1 -0
  1238. package/packages/web/dist/server/routes-rex/requirements.d.ts +10 -0
  1239. package/packages/web/dist/server/routes-rex/requirements.js +408 -0
  1240. package/packages/web/dist/server/routes-rex/requirements.js.map +1 -0
  1241. package/packages/web/dist/server/routes-rex/shared.d.ts +37 -0
  1242. package/packages/web/dist/server/routes-rex/shared.js +73 -0
  1243. package/packages/web/dist/server/routes-rex/shared.js.map +1 -0
  1244. package/packages/web/dist/server/routes-rex.d.ts +77 -0
  1245. package/packages/web/dist/server/routes-rex.js +2403 -0
  1246. package/packages/web/dist/server/routes-rex.js.map +1 -0
  1247. package/packages/web/dist/server/routes-search.d.ts +26 -0
  1248. package/packages/web/dist/server/routes-search.js +82 -0
  1249. package/packages/web/dist/server/routes-search.js.map +1 -0
  1250. package/packages/web/dist/server/routes-sourcevision.d.ts +18 -0
  1251. package/packages/web/dist/server/routes-sourcevision.js +444 -0
  1252. package/packages/web/dist/server/routes-sourcevision.js.map +1 -0
  1253. package/packages/web/dist/server/routes-static.d.ts +20 -0
  1254. package/packages/web/dist/server/routes-static.js +168 -0
  1255. package/packages/web/dist/server/routes-static.js.map +1 -0
  1256. package/packages/web/dist/server/routes-status.d.ts +58 -0
  1257. package/packages/web/dist/server/routes-status.js +191 -0
  1258. package/packages/web/dist/server/routes-status.js.map +1 -0
  1259. package/packages/web/dist/server/routes-token-usage.d.ts +63 -0
  1260. package/packages/web/dist/server/routes-token-usage.js +720 -0
  1261. package/packages/web/dist/server/routes-token-usage.js.map +1 -0
  1262. package/packages/web/dist/server/routes-validation.d.ts +10 -0
  1263. package/packages/web/dist/server/routes-validation.js +365 -0
  1264. package/packages/web/dist/server/routes-validation.js.map +1 -0
  1265. package/packages/web/dist/server/routes-workflow.d.ts +15 -0
  1266. package/packages/web/dist/server/routes-workflow.js +498 -0
  1267. package/packages/web/dist/server/routes-workflow.js.map +1 -0
  1268. package/packages/web/dist/server/search-index.d.ts +111 -0
  1269. package/packages/web/dist/server/search-index.js +348 -0
  1270. package/packages/web/dist/server/search-index.js.map +1 -0
  1271. package/packages/web/dist/server/shared-types.d.ts +65 -0
  1272. package/packages/web/dist/server/shared-types.js +31 -0
  1273. package/packages/web/dist/server/shared-types.js.map +1 -0
  1274. package/packages/web/dist/server/start.d.ts +68 -0
  1275. package/packages/web/dist/server/start.js +568 -0
  1276. package/packages/web/dist/server/start.js.map +1 -0
  1277. package/packages/web/dist/server/task-usage.d.ts +17 -0
  1278. package/packages/web/dist/server/task-usage.js +20 -0
  1279. package/packages/web/dist/server/task-usage.js.map +1 -0
  1280. package/packages/web/dist/server/types.d.ts +27 -0
  1281. package/packages/web/dist/server/types.js +26 -0
  1282. package/packages/web/dist/server/types.js.map +1 -0
  1283. package/packages/web/dist/server/usage-cleanup-scheduler.d.ts +107 -0
  1284. package/packages/web/dist/server/usage-cleanup-scheduler.js +232 -0
  1285. package/packages/web/dist/server/usage-cleanup-scheduler.js.map +1 -0
  1286. package/packages/web/dist/server/websocket.d.ts +131 -0
  1287. package/packages/web/dist/server/websocket.js +512 -0
  1288. package/packages/web/dist/server/websocket.js.map +1 -0
  1289. package/packages/web/dist/server/ws-health-tracker.d.ts +86 -0
  1290. package/packages/web/dist/server/ws-health-tracker.js +186 -0
  1291. package/packages/web/dist/server/ws-health-tracker.js.map +1 -0
  1292. package/packages/web/dist/shared/data-files.d.ts +17 -0
  1293. package/packages/web/dist/shared/data-files.js +18 -0
  1294. package/packages/web/dist/shared/data-files.js.map +1 -0
  1295. package/packages/web/dist/shared/index.d.ts +9 -0
  1296. package/packages/web/dist/shared/index.js +9 -0
  1297. package/packages/web/dist/shared/index.js.map +1 -0
  1298. package/packages/web/dist/shared/node-culler.d.ts +94 -0
  1299. package/packages/web/dist/shared/node-culler.js +133 -0
  1300. package/packages/web/dist/shared/node-culler.js.map +1 -0
  1301. package/packages/web/dist/shared/request-dedup.d.ts +43 -0
  1302. package/packages/web/dist/shared/request-dedup.js +55 -0
  1303. package/packages/web/dist/shared/request-dedup.js.map +1 -0
  1304. package/packages/web/dist/shared/view-id.d.ts +8 -0
  1305. package/packages/web/dist/shared/view-id.js +9 -0
  1306. package/packages/web/dist/shared/view-id.js.map +1 -0
  1307. package/packages/web/dist/viewer/Hench-F.png +0 -0
  1308. package/packages/web/dist/viewer/Rex-F.png +0 -0
  1309. package/packages/web/dist/viewer/SourceVision-F.png +0 -0
  1310. package/packages/web/dist/viewer/SourceVision.png +0 -0
  1311. package/packages/web/dist/viewer/api.d.ts +19 -0
  1312. package/packages/web/dist/viewer/api.js +17 -0
  1313. package/packages/web/dist/viewer/api.js.map +1 -0
  1314. package/packages/web/dist/viewer/batched-tick-dispatcher.d.ts +83 -0
  1315. package/packages/web/dist/viewer/batched-tick-dispatcher.js +183 -0
  1316. package/packages/web/dist/viewer/batched-tick-dispatcher.js.map +1 -0
  1317. package/packages/web/dist/viewer/bootstrap.d.ts +13 -0
  1318. package/packages/web/dist/viewer/bootstrap.js +40 -0
  1319. package/packages/web/dist/viewer/bootstrap.js.map +1 -0
  1320. package/packages/web/dist/viewer/call-rate-limiter.d.ts +50 -0
  1321. package/packages/web/dist/viewer/call-rate-limiter.js +103 -0
  1322. package/packages/web/dist/viewer/call-rate-limiter.js.map +1 -0
  1323. package/packages/web/dist/viewer/components/active-tasks-panel.d.ts +36 -0
  1324. package/packages/web/dist/viewer/components/active-tasks-panel.js +183 -0
  1325. package/packages/web/dist/viewer/components/active-tasks-panel.js.map +1 -0
  1326. package/packages/web/dist/viewer/components/breadcrumb.d.ts +21 -0
  1327. package/packages/web/dist/viewer/components/breadcrumb.js +117 -0
  1328. package/packages/web/dist/viewer/components/breadcrumb.js.map +1 -0
  1329. package/packages/web/dist/viewer/components/concurrency-panel.d.ts +18 -0
  1330. package/packages/web/dist/viewer/components/concurrency-panel.js +175 -0
  1331. package/packages/web/dist/viewer/components/concurrency-panel.js.map +1 -0
  1332. package/packages/web/dist/viewer/components/config-footer.d.ts +11 -0
  1333. package/packages/web/dist/viewer/components/config-footer.js +132 -0
  1334. package/packages/web/dist/viewer/components/config-footer.js.map +1 -0
  1335. package/packages/web/dist/viewer/components/constants.d.ts +10 -0
  1336. package/packages/web/dist/viewer/components/constants.js +11 -0
  1337. package/packages/web/dist/viewer/components/constants.js.map +1 -0
  1338. package/packages/web/dist/viewer/components/copy-link-button.d.ts +30 -0
  1339. package/packages/web/dist/viewer/components/copy-link-button.js +74 -0
  1340. package/packages/web/dist/viewer/components/copy-link-button.js.map +1 -0
  1341. package/packages/web/dist/viewer/components/crash-recovery-banner.d.ts +28 -0
  1342. package/packages/web/dist/viewer/components/crash-recovery-banner.js +47 -0
  1343. package/packages/web/dist/viewer/components/crash-recovery-banner.js.map +1 -0
  1344. package/packages/web/dist/viewer/components/data-display/collapsible-section.d.ts +14 -0
  1345. package/packages/web/dist/viewer/components/data-display/collapsible-section.js +66 -0
  1346. package/packages/web/dist/viewer/components/data-display/collapsible-section.js.map +1 -0
  1347. package/packages/web/dist/viewer/components/data-display/findings-list.d.ts +13 -0
  1348. package/packages/web/dist/viewer/components/data-display/findings-list.js +136 -0
  1349. package/packages/web/dist/viewer/components/data-display/findings-list.js.map +1 -0
  1350. package/packages/web/dist/viewer/components/data-display/health-gauge.d.ts +37 -0
  1351. package/packages/web/dist/viewer/components/data-display/health-gauge.js +62 -0
  1352. package/packages/web/dist/viewer/components/data-display/health-gauge.js.map +1 -0
  1353. package/packages/web/dist/viewer/components/data-display/mini-charts.d.ts +36 -0
  1354. package/packages/web/dist/viewer/components/data-display/mini-charts.js +124 -0
  1355. package/packages/web/dist/viewer/components/data-display/mini-charts.js.map +1 -0
  1356. package/packages/web/dist/viewer/components/data-display/tree-view.d.ts +18 -0
  1357. package/packages/web/dist/viewer/components/data-display/tree-view.js +107 -0
  1358. package/packages/web/dist/viewer/components/data-display/tree-view.js.map +1 -0
  1359. package/packages/web/dist/viewer/components/data-display/zone-map.d.ts +28 -0
  1360. package/packages/web/dist/viewer/components/data-display/zone-map.js +197 -0
  1361. package/packages/web/dist/viewer/components/data-display/zone-map.js.map +1 -0
  1362. package/packages/web/dist/viewer/components/degradation-banner.d.ts +28 -0
  1363. package/packages/web/dist/viewer/components/degradation-banner.js +47 -0
  1364. package/packages/web/dist/viewer/components/degradation-banner.js.map +1 -0
  1365. package/packages/web/dist/viewer/components/detail-panel.d.ts +12 -0
  1366. package/packages/web/dist/viewer/components/detail-panel.js +166 -0
  1367. package/packages/web/dist/viewer/components/detail-panel.js.map +1 -0
  1368. package/packages/web/dist/viewer/components/elapsed-time.d.ts +38 -0
  1369. package/packages/web/dist/viewer/components/elapsed-time.js +35 -0
  1370. package/packages/web/dist/viewer/components/elapsed-time.js.map +1 -0
  1371. package/packages/web/dist/viewer/components/faq.d.ts +12 -0
  1372. package/packages/web/dist/viewer/components/faq.js +237 -0
  1373. package/packages/web/dist/viewer/components/faq.js.map +1 -0
  1374. package/packages/web/dist/viewer/components/favicon.d.ts +30 -0
  1375. package/packages/web/dist/viewer/components/favicon.js +90 -0
  1376. package/packages/web/dist/viewer/components/favicon.js.map +1 -0
  1377. package/packages/web/dist/viewer/components/guide.d.ts +5 -0
  1378. package/packages/web/dist/viewer/components/guide.js +116 -0
  1379. package/packages/web/dist/viewer/components/guide.js.map +1 -0
  1380. package/packages/web/dist/viewer/components/index.d.ts +37 -0
  1381. package/packages/web/dist/viewer/components/index.js +46 -0
  1382. package/packages/web/dist/viewer/components/index.js.map +1 -0
  1383. package/packages/web/dist/viewer/components/logos.d.ts +42 -0
  1384. package/packages/web/dist/viewer/components/logos.js +46 -0
  1385. package/packages/web/dist/viewer/components/logos.js.map +1 -0
  1386. package/packages/web/dist/viewer/components/memory-panel.d.ts +19 -0
  1387. package/packages/web/dist/viewer/components/memory-panel.js +181 -0
  1388. package/packages/web/dist/viewer/components/memory-panel.js.map +1 -0
  1389. package/packages/web/dist/viewer/components/memory-warning.d.ts +23 -0
  1390. package/packages/web/dist/viewer/components/memory-warning.js +42 -0
  1391. package/packages/web/dist/viewer/components/memory-warning.js.map +1 -0
  1392. package/packages/web/dist/viewer/components/notion-schema-wizard.d.ts +16 -0
  1393. package/packages/web/dist/viewer/components/notion-schema-wizard.js +263 -0
  1394. package/packages/web/dist/viewer/components/notion-schema-wizard.js.map +1 -0
  1395. package/packages/web/dist/viewer/components/polling-suspension-indicator.d.ts +24 -0
  1396. package/packages/web/dist/viewer/components/polling-suspension-indicator.js +31 -0
  1397. package/packages/web/dist/viewer/components/polling-suspension-indicator.js.map +1 -0
  1398. package/packages/web/dist/viewer/components/prd-tree/add-item-form.d.ts +31 -0
  1399. package/packages/web/dist/viewer/components/prd-tree/add-item-form.js +231 -0
  1400. package/packages/web/dist/viewer/components/prd-tree/add-item-form.js.map +1 -0
  1401. package/packages/web/dist/viewer/components/prd-tree/analyze-panel.d.ts +13 -0
  1402. package/packages/web/dist/viewer/components/prd-tree/analyze-panel.js +245 -0
  1403. package/packages/web/dist/viewer/components/prd-tree/analyze-panel.js.map +1 -0
  1404. package/packages/web/dist/viewer/components/prd-tree/batch-import-panel.d.ts +34 -0
  1405. package/packages/web/dist/viewer/components/prd-tree/batch-import-panel.js +415 -0
  1406. package/packages/web/dist/viewer/components/prd-tree/batch-import-panel.js.map +1 -0
  1407. package/packages/web/dist/viewer/components/prd-tree/bulk-actions.d.ts +19 -0
  1408. package/packages/web/dist/viewer/components/prd-tree/bulk-actions.js +90 -0
  1409. package/packages/web/dist/viewer/components/prd-tree/bulk-actions.js.map +1 -0
  1410. package/packages/web/dist/viewer/components/prd-tree/compute.d.ts +32 -0
  1411. package/packages/web/dist/viewer/components/prd-tree/compute.js +129 -0
  1412. package/packages/web/dist/viewer/components/prd-tree/compute.js.map +1 -0
  1413. package/packages/web/dist/viewer/components/prd-tree/delete-confirmation.d.ts +23 -0
  1414. package/packages/web/dist/viewer/components/prd-tree/delete-confirmation.js +83 -0
  1415. package/packages/web/dist/viewer/components/prd-tree/delete-confirmation.js.map +1 -0
  1416. package/packages/web/dist/viewer/components/prd-tree/execution-panel.d.ts +14 -0
  1417. package/packages/web/dist/viewer/components/prd-tree/execution-panel.js +291 -0
  1418. package/packages/web/dist/viewer/components/prd-tree/execution-panel.js.map +1 -0
  1419. package/packages/web/dist/viewer/components/prd-tree/facet-filter.d.ts +40 -0
  1420. package/packages/web/dist/viewer/components/prd-tree/facet-filter.js +188 -0
  1421. package/packages/web/dist/viewer/components/prd-tree/facet-filter.js.map +1 -0
  1422. package/packages/web/dist/viewer/components/prd-tree/index.d.ts +24 -0
  1423. package/packages/web/dist/viewer/components/prd-tree/index.js +16 -0
  1424. package/packages/web/dist/viewer/components/prd-tree/index.js.map +1 -0
  1425. package/packages/web/dist/viewer/components/prd-tree/inline-add-form.d.ts +32 -0
  1426. package/packages/web/dist/viewer/components/prd-tree/inline-add-form.js +175 -0
  1427. package/packages/web/dist/viewer/components/prd-tree/inline-add-form.js.map +1 -0
  1428. package/packages/web/dist/viewer/components/prd-tree/inline-status-picker.d.ts +31 -0
  1429. package/packages/web/dist/viewer/components/prd-tree/inline-status-picker.js +110 -0
  1430. package/packages/web/dist/viewer/components/prd-tree/inline-status-picker.js.map +1 -0
  1431. package/packages/web/dist/viewer/components/prd-tree/lazy-children.d.ts +40 -0
  1432. package/packages/web/dist/viewer/components/prd-tree/lazy-children.js +73 -0
  1433. package/packages/web/dist/viewer/components/prd-tree/lazy-children.js.map +1 -0
  1434. package/packages/web/dist/viewer/components/prd-tree/levels.d.ts +31 -0
  1435. package/packages/web/dist/viewer/components/prd-tree/levels.js +72 -0
  1436. package/packages/web/dist/viewer/components/prd-tree/levels.js.map +1 -0
  1437. package/packages/web/dist/viewer/components/prd-tree/listener-lifecycle.d.ts +105 -0
  1438. package/packages/web/dist/viewer/components/prd-tree/listener-lifecycle.js +173 -0
  1439. package/packages/web/dist/viewer/components/prd-tree/listener-lifecycle.js.map +1 -0
  1440. package/packages/web/dist/viewer/components/prd-tree/merge-preview.d.ts +25 -0
  1441. package/packages/web/dist/viewer/components/prd-tree/merge-preview.js +181 -0
  1442. package/packages/web/dist/viewer/components/prd-tree/merge-preview.js.map +1 -0
  1443. package/packages/web/dist/viewer/components/prd-tree/node-culler.d.ts +96 -0
  1444. package/packages/web/dist/viewer/components/prd-tree/node-culler.js +135 -0
  1445. package/packages/web/dist/viewer/components/prd-tree/node-culler.js.map +1 -0
  1446. package/packages/web/dist/viewer/components/prd-tree/prd-tree.d.ts +91 -0
  1447. package/packages/web/dist/viewer/components/prd-tree/prd-tree.js +565 -0
  1448. package/packages/web/dist/viewer/components/prd-tree/prd-tree.js.map +1 -0
  1449. package/packages/web/dist/viewer/components/prd-tree/progressive-loader.d.ts +114 -0
  1450. package/packages/web/dist/viewer/components/prd-tree/progressive-loader.js +225 -0
  1451. package/packages/web/dist/viewer/components/prd-tree/progressive-loader.js.map +1 -0
  1452. package/packages/web/dist/viewer/components/prd-tree/proposal-editor.d.ts +44 -0
  1453. package/packages/web/dist/viewer/components/prd-tree/proposal-editor.js +438 -0
  1454. package/packages/web/dist/viewer/components/prd-tree/proposal-editor.js.map +1 -0
  1455. package/packages/web/dist/viewer/components/prd-tree/prune-confirmation.d.ts +25 -0
  1456. package/packages/web/dist/viewer/components/prd-tree/prune-confirmation.js +336 -0
  1457. package/packages/web/dist/viewer/components/prd-tree/prune-confirmation.js.map +1 -0
  1458. package/packages/web/dist/viewer/components/prd-tree/prune-diff-tree.d.ts +39 -0
  1459. package/packages/web/dist/viewer/components/prd-tree/prune-diff-tree.js +319 -0
  1460. package/packages/web/dist/viewer/components/prd-tree/prune-diff-tree.js.map +1 -0
  1461. package/packages/web/dist/viewer/components/prd-tree/reorganize-panel.d.ts +16 -0
  1462. package/packages/web/dist/viewer/components/prd-tree/reorganize-panel.js +213 -0
  1463. package/packages/web/dist/viewer/components/prd-tree/reorganize-panel.js.map +1 -0
  1464. package/packages/web/dist/viewer/components/prd-tree/shared-imports.d.ts +18 -0
  1465. package/packages/web/dist/viewer/components/prd-tree/shared-imports.js +18 -0
  1466. package/packages/web/dist/viewer/components/prd-tree/shared-imports.js.map +1 -0
  1467. package/packages/web/dist/viewer/components/prd-tree/smart-add-input.d.ts +19 -0
  1468. package/packages/web/dist/viewer/components/prd-tree/smart-add-input.js +383 -0
  1469. package/packages/web/dist/viewer/components/prd-tree/smart-add-input.js.map +1 -0
  1470. package/packages/web/dist/viewer/components/prd-tree/status-filter.d.ts +40 -0
  1471. package/packages/web/dist/viewer/components/prd-tree/status-filter.js +131 -0
  1472. package/packages/web/dist/viewer/components/prd-tree/status-filter.js.map +1 -0
  1473. package/packages/web/dist/viewer/components/prd-tree/task-detail.d.ts +41 -0
  1474. package/packages/web/dist/viewer/components/prd-tree/task-detail.js +1205 -0
  1475. package/packages/web/dist/viewer/components/prd-tree/task-detail.js.map +1 -0
  1476. package/packages/web/dist/viewer/components/prd-tree/task-utilization.d.ts +7 -0
  1477. package/packages/web/dist/viewer/components/prd-tree/task-utilization.js +25 -0
  1478. package/packages/web/dist/viewer/components/prd-tree/task-utilization.js.map +1 -0
  1479. package/packages/web/dist/viewer/components/prd-tree/tree-differ.d.ts +59 -0
  1480. package/packages/web/dist/viewer/components/prd-tree/tree-differ.js +200 -0
  1481. package/packages/web/dist/viewer/components/prd-tree/tree-differ.js.map +1 -0
  1482. package/packages/web/dist/viewer/components/prd-tree/tree-event-delegate.d.ts +70 -0
  1483. package/packages/web/dist/viewer/components/prd-tree/tree-event-delegate.js +176 -0
  1484. package/packages/web/dist/viewer/components/prd-tree/tree-event-delegate.js.map +1 -0
  1485. package/packages/web/dist/viewer/components/prd-tree/tree-search.d.ts +65 -0
  1486. package/packages/web/dist/viewer/components/prd-tree/tree-search.js +178 -0
  1487. package/packages/web/dist/viewer/components/prd-tree/tree-search.js.map +1 -0
  1488. package/packages/web/dist/viewer/components/prd-tree/tree-utils.d.ts +38 -0
  1489. package/packages/web/dist/viewer/components/prd-tree/tree-utils.js +107 -0
  1490. package/packages/web/dist/viewer/components/prd-tree/tree-utils.js.map +1 -0
  1491. package/packages/web/dist/viewer/components/prd-tree/types.d.ts +93 -0
  1492. package/packages/web/dist/viewer/components/prd-tree/types.js +16 -0
  1493. package/packages/web/dist/viewer/components/prd-tree/types.js.map +1 -0
  1494. package/packages/web/dist/viewer/components/prd-tree/virtual-scroll.d.ts +119 -0
  1495. package/packages/web/dist/viewer/components/prd-tree/virtual-scroll.js +169 -0
  1496. package/packages/web/dist/viewer/components/prd-tree/virtual-scroll.js.map +1 -0
  1497. package/packages/web/dist/viewer/components/progressive-loader.d.ts +114 -0
  1498. package/packages/web/dist/viewer/components/progressive-loader.js +225 -0
  1499. package/packages/web/dist/viewer/components/progressive-loader.js.map +1 -0
  1500. package/packages/web/dist/viewer/components/refresh-queue-status.d.ts +20 -0
  1501. package/packages/web/dist/viewer/components/refresh-queue-status.js +65 -0
  1502. package/packages/web/dist/viewer/components/refresh-queue-status.js.map +1 -0
  1503. package/packages/web/dist/viewer/components/rex-task-link.d.ts +50 -0
  1504. package/packages/web/dist/viewer/components/rex-task-link.js +218 -0
  1505. package/packages/web/dist/viewer/components/rex-task-link.js.map +1 -0
  1506. package/packages/web/dist/viewer/components/search-filter.d.ts +20 -0
  1507. package/packages/web/dist/viewer/components/search-filter.js +28 -0
  1508. package/packages/web/dist/viewer/components/search-filter.js.map +1 -0
  1509. package/packages/web/dist/viewer/components/search-overlay.d.ts +31 -0
  1510. package/packages/web/dist/viewer/components/search-overlay.js +472 -0
  1511. package/packages/web/dist/viewer/components/search-overlay.js.map +1 -0
  1512. package/packages/web/dist/viewer/components/sidebar.d.ts +18 -0
  1513. package/packages/web/dist/viewer/components/sidebar.js +357 -0
  1514. package/packages/web/dist/viewer/components/sidebar.js.map +1 -0
  1515. package/packages/web/dist/viewer/components/status-indicators.d.ts +63 -0
  1516. package/packages/web/dist/viewer/components/status-indicators.js +136 -0
  1517. package/packages/web/dist/viewer/components/status-indicators.js.map +1 -0
  1518. package/packages/web/dist/viewer/components/theme-toggle.d.ts +8 -0
  1519. package/packages/web/dist/viewer/components/theme-toggle.js +28 -0
  1520. package/packages/web/dist/viewer/components/theme-toggle.js.map +1 -0
  1521. package/packages/web/dist/viewer/components/throttle-controls.d.ts +18 -0
  1522. package/packages/web/dist/viewer/components/throttle-controls.js +304 -0
  1523. package/packages/web/dist/viewer/components/throttle-controls.js.map +1 -0
  1524. package/packages/web/dist/viewer/components/ws-health-panel.d.ts +18 -0
  1525. package/packages/web/dist/viewer/components/ws-health-panel.js +250 -0
  1526. package/packages/web/dist/viewer/components/ws-health-panel.js.map +1 -0
  1527. package/packages/web/dist/viewer/components/zone-slideout.d.ts +17 -0
  1528. package/packages/web/dist/viewer/components/zone-slideout.js +162 -0
  1529. package/packages/web/dist/viewer/components/zone-slideout.js.map +1 -0
  1530. package/packages/web/dist/viewer/crash/crash-detector.d.ts +69 -0
  1531. package/packages/web/dist/viewer/crash/crash-detector.js +239 -0
  1532. package/packages/web/dist/viewer/crash/crash-detector.js.map +1 -0
  1533. package/packages/web/dist/viewer/crash/index.d.ts +7 -0
  1534. package/packages/web/dist/viewer/crash/index.js +8 -0
  1535. package/packages/web/dist/viewer/crash/index.js.map +1 -0
  1536. package/packages/web/dist/viewer/crash-detector.d.ts +105 -0
  1537. package/packages/web/dist/viewer/crash-detector.js +257 -0
  1538. package/packages/web/dist/viewer/crash-detector.js.map +1 -0
  1539. package/packages/web/dist/viewer/deployed-mode.d.ts +37 -0
  1540. package/packages/web/dist/viewer/deployed-mode.js +94 -0
  1541. package/packages/web/dist/viewer/deployed-mode.js.map +1 -0
  1542. package/packages/web/dist/viewer/dom-performance-monitor.d.ts +158 -0
  1543. package/packages/web/dist/viewer/dom-performance-monitor.js +342 -0
  1544. package/packages/web/dist/viewer/dom-performance-monitor.js.map +1 -0
  1545. package/packages/web/dist/viewer/dom-update-gate.d.ts +122 -0
  1546. package/packages/web/dist/viewer/dom-update-gate.js +229 -0
  1547. package/packages/web/dist/viewer/dom-update-gate.js.map +1 -0
  1548. package/packages/web/dist/viewer/external.d.ts +17 -0
  1549. package/packages/web/dist/viewer/external.js +17 -0
  1550. package/packages/web/dist/viewer/external.js.map +1 -0
  1551. package/packages/web/dist/viewer/graceful-degradation.d.ts +73 -0
  1552. package/packages/web/dist/viewer/graceful-degradation.js +152 -0
  1553. package/packages/web/dist/viewer/graceful-degradation.js.map +1 -0
  1554. package/packages/web/dist/viewer/graph/index.d.ts +9 -0
  1555. package/packages/web/dist/viewer/graph/index.js +12 -0
  1556. package/packages/web/dist/viewer/graph/index.js.map +1 -0
  1557. package/packages/web/dist/viewer/graph/physics.d.ts +96 -0
  1558. package/packages/web/dist/viewer/graph/physics.js +366 -0
  1559. package/packages/web/dist/viewer/graph/physics.js.map +1 -0
  1560. package/packages/web/dist/viewer/graph/renderer.d.ts +184 -0
  1561. package/packages/web/dist/viewer/graph/renderer.js +1438 -0
  1562. package/packages/web/dist/viewer/graph/renderer.js.map +1 -0
  1563. package/packages/web/dist/viewer/hooks/index.d.ts +27 -0
  1564. package/packages/web/dist/viewer/hooks/index.js +28 -0
  1565. package/packages/web/dist/viewer/hooks/index.js.map +1 -0
  1566. package/packages/web/dist/viewer/hooks/use-app-data.d.ts +31 -0
  1567. package/packages/web/dist/viewer/hooks/use-app-data.js +152 -0
  1568. package/packages/web/dist/viewer/hooks/use-app-data.js.map +1 -0
  1569. package/packages/web/dist/viewer/hooks/use-crash-recovery.d.ts +50 -0
  1570. package/packages/web/dist/viewer/hooks/use-crash-recovery.js +76 -0
  1571. package/packages/web/dist/viewer/hooks/use-crash-recovery.js.map +1 -0
  1572. package/packages/web/dist/viewer/hooks/use-delete-actions.d.ts +48 -0
  1573. package/packages/web/dist/viewer/hooks/use-delete-actions.js +103 -0
  1574. package/packages/web/dist/viewer/hooks/use-delete-actions.js.map +1 -0
  1575. package/packages/web/dist/viewer/hooks/use-dom-performance-monitor.d.ts +68 -0
  1576. package/packages/web/dist/viewer/hooks/use-dom-performance-monitor.js +71 -0
  1577. package/packages/web/dist/viewer/hooks/use-dom-performance-monitor.js.map +1 -0
  1578. package/packages/web/dist/viewer/hooks/use-facet-state.d.ts +32 -0
  1579. package/packages/web/dist/viewer/hooks/use-facet-state.js +119 -0
  1580. package/packages/web/dist/viewer/hooks/use-facet-state.js.map +1 -0
  1581. package/packages/web/dist/viewer/hooks/use-feature-toggle.d.ts +18 -0
  1582. package/packages/web/dist/viewer/hooks/use-feature-toggle.js +57 -0
  1583. package/packages/web/dist/viewer/hooks/use-feature-toggle.js.map +1 -0
  1584. package/packages/web/dist/viewer/hooks/use-file-edges.d.ts +23 -0
  1585. package/packages/web/dist/viewer/hooks/use-file-edges.js +221 -0
  1586. package/packages/web/dist/viewer/hooks/use-file-edges.js.map +1 -0
  1587. package/packages/web/dist/viewer/hooks/use-graceful-degradation.d.ts +30 -0
  1588. package/packages/web/dist/viewer/hooks/use-graceful-degradation.js +45 -0
  1589. package/packages/web/dist/viewer/hooks/use-graceful-degradation.js.map +1 -0
  1590. package/packages/web/dist/viewer/hooks/use-item-selection.d.ts +49 -0
  1591. package/packages/web/dist/viewer/hooks/use-item-selection.js +117 -0
  1592. package/packages/web/dist/viewer/hooks/use-item-selection.js.map +1 -0
  1593. package/packages/web/dist/viewer/hooks/use-memory-monitor.d.ts +39 -0
  1594. package/packages/web/dist/viewer/hooks/use-memory-monitor.js +73 -0
  1595. package/packages/web/dist/viewer/hooks/use-memory-monitor.js.map +1 -0
  1596. package/packages/web/dist/viewer/hooks/use-pan-zoom.d.ts +33 -0
  1597. package/packages/web/dist/viewer/hooks/use-pan-zoom.js +110 -0
  1598. package/packages/web/dist/viewer/hooks/use-pan-zoom.js.map +1 -0
  1599. package/packages/web/dist/viewer/hooks/use-persistent-filter.d.ts +24 -0
  1600. package/packages/web/dist/viewer/hooks/use-persistent-filter.js +37 -0
  1601. package/packages/web/dist/viewer/hooks/use-persistent-filter.js.map +1 -0
  1602. package/packages/web/dist/viewer/hooks/use-polling-suspension.d.ts +32 -0
  1603. package/packages/web/dist/viewer/hooks/use-polling-suspension.js +41 -0
  1604. package/packages/web/dist/viewer/hooks/use-polling-suspension.js.map +1 -0
  1605. package/packages/web/dist/viewer/hooks/use-polling.d.ts +39 -0
  1606. package/packages/web/dist/viewer/hooks/use-polling.js +55 -0
  1607. package/packages/web/dist/viewer/hooks/use-polling.js.map +1 -0
  1608. package/packages/web/dist/viewer/hooks/use-prd-actions.d.ts +126 -0
  1609. package/packages/web/dist/viewer/hooks/use-prd-actions.js +250 -0
  1610. package/packages/web/dist/viewer/hooks/use-prd-actions.js.map +1 -0
  1611. package/packages/web/dist/viewer/hooks/use-prd-data.d.ts +45 -0
  1612. package/packages/web/dist/viewer/hooks/use-prd-data.js +159 -0
  1613. package/packages/web/dist/viewer/hooks/use-prd-data.js.map +1 -0
  1614. package/packages/web/dist/viewer/hooks/use-prd-deep-link.d.ts +45 -0
  1615. package/packages/web/dist/viewer/hooks/use-prd-deep-link.js +60 -0
  1616. package/packages/web/dist/viewer/hooks/use-prd-deep-link.js.map +1 -0
  1617. package/packages/web/dist/viewer/hooks/use-prd-websocket.d.ts +47 -0
  1618. package/packages/web/dist/viewer/hooks/use-prd-websocket.js +139 -0
  1619. package/packages/web/dist/viewer/hooks/use-prd-websocket.js.map +1 -0
  1620. package/packages/web/dist/viewer/hooks/use-project-metadata.d.ts +25 -0
  1621. package/packages/web/dist/viewer/hooks/use-project-metadata.js +55 -0
  1622. package/packages/web/dist/viewer/hooks/use-project-metadata.js.map +1 -0
  1623. package/packages/web/dist/viewer/hooks/use-project-status.d.ts +60 -0
  1624. package/packages/web/dist/viewer/hooks/use-project-status.js +133 -0
  1625. package/packages/web/dist/viewer/hooks/use-project-status.js.map +1 -0
  1626. package/packages/web/dist/viewer/hooks/use-refresh-throttle.d.ts +45 -0
  1627. package/packages/web/dist/viewer/hooks/use-refresh-throttle.js +52 -0
  1628. package/packages/web/dist/viewer/hooks/use-refresh-throttle.js.map +1 -0
  1629. package/packages/web/dist/viewer/hooks/use-route-state.d.ts +18 -0
  1630. package/packages/web/dist/viewer/hooks/use-route-state.js +115 -0
  1631. package/packages/web/dist/viewer/hooks/use-route-state.js.map +1 -0
  1632. package/packages/web/dist/viewer/hooks/use-subzone-edges.d.ts +21 -0
  1633. package/packages/web/dist/viewer/hooks/use-subzone-edges.js +147 -0
  1634. package/packages/web/dist/viewer/hooks/use-subzone-edges.js.map +1 -0
  1635. package/packages/web/dist/viewer/hooks/use-tab-visibility.d.ts +31 -0
  1636. package/packages/web/dist/viewer/hooks/use-tab-visibility.js +43 -0
  1637. package/packages/web/dist/viewer/hooks/use-tab-visibility.js.map +1 -0
  1638. package/packages/web/dist/viewer/hooks/use-tick.d.ts +43 -0
  1639. package/packages/web/dist/viewer/hooks/use-tick.js +76 -0
  1640. package/packages/web/dist/viewer/hooks/use-tick.js.map +1 -0
  1641. package/packages/web/dist/viewer/hooks/use-toast.d.ts +24 -0
  1642. package/packages/web/dist/viewer/hooks/use-toast.js +26 -0
  1643. package/packages/web/dist/viewer/hooks/use-toast.js.map +1 -0
  1644. package/packages/web/dist/viewer/hooks/use-zone-drag.d.ts +30 -0
  1645. package/packages/web/dist/viewer/hooks/use-zone-drag.js +60 -0
  1646. package/packages/web/dist/viewer/hooks/use-zone-drag.js.map +1 -0
  1647. package/packages/web/dist/viewer/index.html +36 -0
  1648. package/packages/web/dist/viewer/loader.d.ts +33 -0
  1649. package/packages/web/dist/viewer/loader.js +195 -0
  1650. package/packages/web/dist/viewer/loader.js.map +1 -0
  1651. package/packages/web/dist/viewer/main.d.ts +1 -0
  1652. package/packages/web/dist/viewer/main.js +121 -0
  1653. package/packages/web/dist/viewer/main.js.map +1 -0
  1654. package/packages/web/dist/viewer/memory-monitor.d.ts +78 -0
  1655. package/packages/web/dist/viewer/memory-monitor.js +218 -0
  1656. package/packages/web/dist/viewer/memory-monitor.js.map +1 -0
  1657. package/packages/web/dist/viewer/message-coalescer.d.ts +96 -0
  1658. package/packages/web/dist/viewer/message-coalescer.js +121 -0
  1659. package/packages/web/dist/viewer/message-coalescer.js.map +1 -0
  1660. package/packages/web/dist/viewer/message-throttle.d.ts +95 -0
  1661. package/packages/web/dist/viewer/message-throttle.js +147 -0
  1662. package/packages/web/dist/viewer/message-throttle.js.map +1 -0
  1663. package/packages/web/dist/viewer/messaging/call-rate-limiter.d.ts +50 -0
  1664. package/packages/web/dist/viewer/messaging/call-rate-limiter.js +103 -0
  1665. package/packages/web/dist/viewer/messaging/call-rate-limiter.js.map +1 -0
  1666. package/packages/web/dist/viewer/messaging/fetch-pipeline.d.ts +58 -0
  1667. package/packages/web/dist/viewer/messaging/fetch-pipeline.js +58 -0
  1668. package/packages/web/dist/viewer/messaging/fetch-pipeline.js.map +1 -0
  1669. package/packages/web/dist/viewer/messaging/index.d.ts +43 -0
  1670. package/packages/web/dist/viewer/messaging/index.js +46 -0
  1671. package/packages/web/dist/viewer/messaging/index.js.map +1 -0
  1672. package/packages/web/dist/viewer/messaging/message-coalescer.d.ts +96 -0
  1673. package/packages/web/dist/viewer/messaging/message-coalescer.js +121 -0
  1674. package/packages/web/dist/viewer/messaging/message-coalescer.js.map +1 -0
  1675. package/packages/web/dist/viewer/messaging/message-throttle.d.ts +95 -0
  1676. package/packages/web/dist/viewer/messaging/message-throttle.js +147 -0
  1677. package/packages/web/dist/viewer/messaging/message-throttle.js.map +1 -0
  1678. package/packages/web/dist/viewer/messaging/request-dedup.d.ts +43 -0
  1679. package/packages/web/dist/viewer/messaging/request-dedup.js +55 -0
  1680. package/packages/web/dist/viewer/messaging/request-dedup.js.map +1 -0
  1681. package/packages/web/dist/viewer/messaging/ws-pipeline.d.ts +85 -0
  1682. package/packages/web/dist/viewer/messaging/ws-pipeline.js +68 -0
  1683. package/packages/web/dist/viewer/messaging/ws-pipeline.js.map +1 -0
  1684. package/packages/web/dist/viewer/n-dx.png +0 -0
  1685. package/packages/web/dist/viewer/performance/crash-detector-test-support.d.ts +15 -0
  1686. package/packages/web/dist/viewer/performance/crash-detector-test-support.js +19 -0
  1687. package/packages/web/dist/viewer/performance/crash-detector-test-support.js.map +1 -0
  1688. package/packages/web/dist/viewer/performance/crash-detector.d.ts +105 -0
  1689. package/packages/web/dist/viewer/performance/crash-detector.js +257 -0
  1690. package/packages/web/dist/viewer/performance/crash-detector.js.map +1 -0
  1691. package/packages/web/dist/viewer/performance/dom-performance-monitor.d.ts +157 -0
  1692. package/packages/web/dist/viewer/performance/dom-performance-monitor.js +341 -0
  1693. package/packages/web/dist/viewer/performance/dom-performance-monitor.js.map +1 -0
  1694. package/packages/web/dist/viewer/performance/dom-update-gate.d.ts +122 -0
  1695. package/packages/web/dist/viewer/performance/dom-update-gate.js +229 -0
  1696. package/packages/web/dist/viewer/performance/dom-update-gate.js.map +1 -0
  1697. package/packages/web/dist/viewer/performance/graceful-degradation.d.ts +73 -0
  1698. package/packages/web/dist/viewer/performance/graceful-degradation.js +152 -0
  1699. package/packages/web/dist/viewer/performance/graceful-degradation.js.map +1 -0
  1700. package/packages/web/dist/viewer/performance/index.d.ts +14 -0
  1701. package/packages/web/dist/viewer/performance/index.js +20 -0
  1702. package/packages/web/dist/viewer/performance/index.js.map +1 -0
  1703. package/packages/web/dist/viewer/performance/memory-monitor.d.ts +78 -0
  1704. package/packages/web/dist/viewer/performance/memory-monitor.js +218 -0
  1705. package/packages/web/dist/viewer/performance/memory-monitor.js.map +1 -0
  1706. package/packages/web/dist/viewer/performance/refresh-throttle.d.ts +90 -0
  1707. package/packages/web/dist/viewer/performance/refresh-throttle.js +266 -0
  1708. package/packages/web/dist/viewer/performance/refresh-throttle.js.map +1 -0
  1709. package/packages/web/dist/viewer/performance/response-buffer-gate.d.ts +108 -0
  1710. package/packages/web/dist/viewer/performance/response-buffer-gate.js +170 -0
  1711. package/packages/web/dist/viewer/performance/response-buffer-gate.js.map +1 -0
  1712. package/packages/web/dist/viewer/performance/update-batcher.d.ts +79 -0
  1713. package/packages/web/dist/viewer/performance/update-batcher.js +119 -0
  1714. package/packages/web/dist/viewer/performance/update-batcher.js.map +1 -0
  1715. package/packages/web/dist/viewer/polling/batched-tick-dispatcher.d.ts +83 -0
  1716. package/packages/web/dist/viewer/polling/batched-tick-dispatcher.js +183 -0
  1717. package/packages/web/dist/viewer/polling/batched-tick-dispatcher.js.map +1 -0
  1718. package/packages/web/dist/viewer/polling/index.d.ts +13 -0
  1719. package/packages/web/dist/viewer/polling/index.js +16 -0
  1720. package/packages/web/dist/viewer/polling/index.js.map +1 -0
  1721. package/packages/web/dist/viewer/polling/polling-manager.d.ts +82 -0
  1722. package/packages/web/dist/viewer/polling/polling-manager.js +254 -0
  1723. package/packages/web/dist/viewer/polling/polling-manager.js.map +1 -0
  1724. package/packages/web/dist/viewer/polling/polling-restart.d.ts +45 -0
  1725. package/packages/web/dist/viewer/polling/polling-restart.js +98 -0
  1726. package/packages/web/dist/viewer/polling/polling-restart.js.map +1 -0
  1727. package/packages/web/dist/viewer/polling/polling-state.d.ts +182 -0
  1728. package/packages/web/dist/viewer/polling/polling-state.js +306 -0
  1729. package/packages/web/dist/viewer/polling/polling-state.js.map +1 -0
  1730. package/packages/web/dist/viewer/polling/tab-visibility.d.ts +112 -0
  1731. package/packages/web/dist/viewer/polling/tab-visibility.js +276 -0
  1732. package/packages/web/dist/viewer/polling/tab-visibility.js.map +1 -0
  1733. package/packages/web/dist/viewer/polling/tick-timer.d.ts +70 -0
  1734. package/packages/web/dist/viewer/polling/tick-timer.js +168 -0
  1735. package/packages/web/dist/viewer/polling/tick-timer.js.map +1 -0
  1736. package/packages/web/dist/viewer/polling/tick-visibility-gate.d.ts +92 -0
  1737. package/packages/web/dist/viewer/polling/tick-visibility-gate.js +146 -0
  1738. package/packages/web/dist/viewer/polling/tick-visibility-gate.js.map +1 -0
  1739. package/packages/web/dist/viewer/polling-manager.d.ts +82 -0
  1740. package/packages/web/dist/viewer/polling-manager.js +254 -0
  1741. package/packages/web/dist/viewer/polling-manager.js.map +1 -0
  1742. package/packages/web/dist/viewer/polling-restart.d.ts +57 -0
  1743. package/packages/web/dist/viewer/polling-restart.js +118 -0
  1744. package/packages/web/dist/viewer/polling-restart.js.map +1 -0
  1745. package/packages/web/dist/viewer/polling-state.d.ts +182 -0
  1746. package/packages/web/dist/viewer/polling-state.js +306 -0
  1747. package/packages/web/dist/viewer/polling-state.js.map +1 -0
  1748. package/packages/web/dist/viewer/refresh-throttle.d.ts +90 -0
  1749. package/packages/web/dist/viewer/refresh-throttle.js +266 -0
  1750. package/packages/web/dist/viewer/refresh-throttle.js.map +1 -0
  1751. package/packages/web/dist/viewer/request-dedup.d.ts +43 -0
  1752. package/packages/web/dist/viewer/request-dedup.js +55 -0
  1753. package/packages/web/dist/viewer/request-dedup.js.map +1 -0
  1754. package/packages/web/dist/viewer/response-buffer-gate.d.ts +108 -0
  1755. package/packages/web/dist/viewer/response-buffer-gate.js +170 -0
  1756. package/packages/web/dist/viewer/response-buffer-gate.js.map +1 -0
  1757. package/packages/web/dist/viewer/route-state.d.ts +8 -0
  1758. package/packages/web/dist/viewer/route-state.js +77 -0
  1759. package/packages/web/dist/viewer/route-state.js.map +1 -0
  1760. package/packages/web/dist/viewer/schema-compat.d.ts +17 -0
  1761. package/packages/web/dist/viewer/schema-compat.js +49 -0
  1762. package/packages/web/dist/viewer/schema-compat.js.map +1 -0
  1763. package/packages/web/dist/viewer/sourcevision-tabs.d.ts +10 -0
  1764. package/packages/web/dist/viewer/sourcevision-tabs.js +14 -0
  1765. package/packages/web/dist/viewer/sourcevision-tabs.js.map +1 -0
  1766. package/packages/web/dist/viewer/tab-visibility.d.ts +112 -0
  1767. package/packages/web/dist/viewer/tab-visibility.js +276 -0
  1768. package/packages/web/dist/viewer/tab-visibility.js.map +1 -0
  1769. package/packages/web/dist/viewer/tick-timer.d.ts +70 -0
  1770. package/packages/web/dist/viewer/tick-timer.js +168 -0
  1771. package/packages/web/dist/viewer/tick-timer.js.map +1 -0
  1772. package/packages/web/dist/viewer/tick-visibility-gate.d.ts +92 -0
  1773. package/packages/web/dist/viewer/tick-visibility-gate.js +146 -0
  1774. package/packages/web/dist/viewer/tick-visibility-gate.js.map +1 -0
  1775. package/packages/web/dist/viewer/types.d.ts +66 -0
  1776. package/packages/web/dist/viewer/types.js +2 -0
  1777. package/packages/web/dist/viewer/types.js.map +1 -0
  1778. package/packages/web/dist/viewer/update-batcher.d.ts +79 -0
  1779. package/packages/web/dist/viewer/update-batcher.js +119 -0
  1780. package/packages/web/dist/viewer/update-batcher.js.map +1 -0
  1781. package/packages/web/dist/viewer/usage/constants.d.ts +14 -0
  1782. package/packages/web/dist/viewer/usage/constants.js +14 -0
  1783. package/packages/web/dist/viewer/usage/constants.js.map +1 -0
  1784. package/packages/web/dist/viewer/usage/index.d.ts +7 -0
  1785. package/packages/web/dist/viewer/usage/index.js +8 -0
  1786. package/packages/web/dist/viewer/usage/index.js.map +1 -0
  1787. package/packages/web/dist/viewer/utils.d.ts +25 -0
  1788. package/packages/web/dist/viewer/utils.js +48 -0
  1789. package/packages/web/dist/viewer/utils.js.map +1 -0
  1790. package/packages/web/dist/viewer/validate.d.ts +23 -0
  1791. package/packages/web/dist/viewer/validate.js +275 -0
  1792. package/packages/web/dist/viewer/validate.js.map +1 -0
  1793. package/packages/web/dist/viewer/views/analysis.d.ts +10 -0
  1794. package/packages/web/dist/viewer/views/analysis.js +109 -0
  1795. package/packages/web/dist/viewer/views/analysis.js.map +1 -0
  1796. package/packages/web/dist/viewer/views/architecture.d.ts +10 -0
  1797. package/packages/web/dist/viewer/views/architecture.js +44 -0
  1798. package/packages/web/dist/viewer/views/architecture.js.map +1 -0
  1799. package/packages/web/dist/viewer/views/call-graph.d.ts +20 -0
  1800. package/packages/web/dist/viewer/views/call-graph.js +1266 -0
  1801. package/packages/web/dist/viewer/views/call-graph.js.map +1 -0
  1802. package/packages/web/dist/viewer/views/domain-hench.d.ts +13 -0
  1803. package/packages/web/dist/viewer/views/domain-hench.js +14 -0
  1804. package/packages/web/dist/viewer/views/domain-hench.js.map +1 -0
  1805. package/packages/web/dist/viewer/views/domain-rex.d.ts +17 -0
  1806. package/packages/web/dist/viewer/views/domain-rex.js +18 -0
  1807. package/packages/web/dist/viewer/views/domain-rex.js.map +1 -0
  1808. package/packages/web/dist/viewer/views/domain-settings.d.ts +12 -0
  1809. package/packages/web/dist/viewer/views/domain-settings.js +13 -0
  1810. package/packages/web/dist/viewer/views/domain-settings.js.map +1 -0
  1811. package/packages/web/dist/viewer/views/domain-sourcevision.d.ts +20 -0
  1812. package/packages/web/dist/viewer/views/domain-sourcevision.js +21 -0
  1813. package/packages/web/dist/viewer/views/domain-sourcevision.js.map +1 -0
  1814. package/packages/web/dist/viewer/views/enrichment-thresholds.d.ts +11 -0
  1815. package/packages/web/dist/viewer/views/enrichment-thresholds.js +12 -0
  1816. package/packages/web/dist/viewer/views/enrichment-thresholds.js.map +1 -0
  1817. package/packages/web/dist/viewer/views/feature-toggles.d.ts +13 -0
  1818. package/packages/web/dist/viewer/views/feature-toggles.js +185 -0
  1819. package/packages/web/dist/viewer/views/feature-toggles.js.map +1 -0
  1820. package/packages/web/dist/viewer/views/files.d.ts +13 -0
  1821. package/packages/web/dist/viewer/views/files.js +174 -0
  1822. package/packages/web/dist/viewer/views/files.js.map +1 -0
  1823. package/packages/web/dist/viewer/views/graph.d.ts +12 -0
  1824. package/packages/web/dist/viewer/views/graph.js +316 -0
  1825. package/packages/web/dist/viewer/views/graph.js.map +1 -0
  1826. package/packages/web/dist/viewer/views/hench-config.d.ts +39 -0
  1827. package/packages/web/dist/viewer/views/hench-config.js +473 -0
  1828. package/packages/web/dist/viewer/views/hench-config.js.map +1 -0
  1829. package/packages/web/dist/viewer/views/hench-runs.d.ts +19 -0
  1830. package/packages/web/dist/viewer/views/hench-runs.js +460 -0
  1831. package/packages/web/dist/viewer/views/hench-runs.js.map +1 -0
  1832. package/packages/web/dist/viewer/views/hench-templates.d.ts +17 -0
  1833. package/packages/web/dist/viewer/views/hench-templates.js +262 -0
  1834. package/packages/web/dist/viewer/views/hench-templates.js.map +1 -0
  1835. package/packages/web/dist/viewer/views/integration-config.d.ts +73 -0
  1836. package/packages/web/dist/viewer/views/integration-config.js +524 -0
  1837. package/packages/web/dist/viewer/views/integration-config.js.map +1 -0
  1838. package/packages/web/dist/viewer/views/notion-config.d.ts +16 -0
  1839. package/packages/web/dist/viewer/views/notion-config.js +357 -0
  1840. package/packages/web/dist/viewer/views/notion-config.js.map +1 -0
  1841. package/packages/web/dist/viewer/views/overview.d.ts +10 -0
  1842. package/packages/web/dist/viewer/views/overview.js +187 -0
  1843. package/packages/web/dist/viewer/views/overview.js.map +1 -0
  1844. package/packages/web/dist/viewer/views/pr-markdown.d.ts +3 -0
  1845. package/packages/web/dist/viewer/views/pr-markdown.js +350 -0
  1846. package/packages/web/dist/viewer/views/pr-markdown.js.map +1 -0
  1847. package/packages/web/dist/viewer/views/prd.d.ts +34 -0
  1848. package/packages/web/dist/viewer/views/prd.js +257 -0
  1849. package/packages/web/dist/viewer/views/prd.js.map +1 -0
  1850. package/packages/web/dist/viewer/views/problems.d.ts +8 -0
  1851. package/packages/web/dist/viewer/views/problems.js +50 -0
  1852. package/packages/web/dist/viewer/views/problems.js.map +1 -0
  1853. package/packages/web/dist/viewer/views/rex-dashboard.d.ts +14 -0
  1854. package/packages/web/dist/viewer/views/rex-dashboard.js +334 -0
  1855. package/packages/web/dist/viewer/views/rex-dashboard.js.map +1 -0
  1856. package/packages/web/dist/viewer/views/routes.d.ts +8 -0
  1857. package/packages/web/dist/viewer/views/routes.js +216 -0
  1858. package/packages/web/dist/viewer/views/routes.js.map +1 -0
  1859. package/packages/web/dist/viewer/views/sourcevision-tabs.d.ts +18 -0
  1860. package/packages/web/dist/viewer/views/sourcevision-tabs.js +14 -0
  1861. package/packages/web/dist/viewer/views/sourcevision-tabs.js.map +1 -0
  1862. package/packages/web/dist/viewer/views/suggestions.d.ts +8 -0
  1863. package/packages/web/dist/viewer/views/suggestions.js +36 -0
  1864. package/packages/web/dist/viewer/views/suggestions.js.map +1 -0
  1865. package/packages/web/dist/viewer/views/task-audit.d.ts +18 -0
  1866. package/packages/web/dist/viewer/views/task-audit.js +413 -0
  1867. package/packages/web/dist/viewer/views/task-audit.js.map +1 -0
  1868. package/packages/web/dist/viewer/views/token-usage.d.ts +10 -0
  1869. package/packages/web/dist/viewer/views/token-usage.js +410 -0
  1870. package/packages/web/dist/viewer/views/token-usage.js.map +1 -0
  1871. package/packages/web/dist/viewer/views/validation.d.ts +11 -0
  1872. package/packages/web/dist/viewer/views/validation.js +475 -0
  1873. package/packages/web/dist/viewer/views/validation.js.map +1 -0
  1874. package/packages/web/dist/viewer/views/view-registry.d.ts +27 -0
  1875. package/packages/web/dist/viewer/views/view-registry.js +70 -0
  1876. package/packages/web/dist/viewer/views/view-registry.js.map +1 -0
  1877. package/packages/web/dist/viewer/views/workflow-optimization.d.ts +12 -0
  1878. package/packages/web/dist/viewer/views/workflow-optimization.js +311 -0
  1879. package/packages/web/dist/viewer/views/workflow-optimization.js.map +1 -0
  1880. package/packages/web/dist/viewer/views/zone-types.d.ts +69 -0
  1881. package/packages/web/dist/viewer/views/zone-types.js +5 -0
  1882. package/packages/web/dist/viewer/views/zone-types.js.map +1 -0
  1883. package/packages/web/dist/viewer/views/zones.d.ts +50 -0
  1884. package/packages/web/dist/viewer/views/zones.js +1438 -0
  1885. package/packages/web/dist/viewer/views/zones.js.map +1 -0
  1886. package/packages/web/dist/viewer/visualization/colors.d.ts +16 -0
  1887. package/packages/web/dist/viewer/visualization/colors.js +31 -0
  1888. package/packages/web/dist/viewer/visualization/colors.js.map +1 -0
  1889. package/packages/web/dist/viewer/visualization/flow.d.ts +54 -0
  1890. package/packages/web/dist/viewer/visualization/flow.js +123 -0
  1891. package/packages/web/dist/viewer/visualization/flow.js.map +1 -0
  1892. package/packages/web/dist/viewer/visualization/index.d.ts +34 -0
  1893. package/packages/web/dist/viewer/visualization/index.js +40 -0
  1894. package/packages/web/dist/viewer/visualization/index.js.map +1 -0
  1895. package/packages/web/dist/viewer/visualization/metrics.d.ts +8 -0
  1896. package/packages/web/dist/viewer/visualization/metrics.js +16 -0
  1897. package/packages/web/dist/viewer/visualization/metrics.js.map +1 -0
  1898. package/packages/web/package.json +53 -0
  1899. package/refresh-artifacts.js +54 -0
  1900. package/refresh-plan.js +79 -0
  1901. package/refresh-validate.js +175 -0
  1902. package/web.js +458 -0
@@ -0,0 +1,1266 @@
1
+ /**
2
+ * Call Graph — SVG box-and-line zone diagram.
3
+ *
4
+ * Zones rendered as rectangular boxes on a topology-aware grid,
5
+ * connected by Bézier edges weighted by call traffic.
6
+ * Zones expand on click to reveal file rows inside.
7
+ * When expanded, file-level edges show which files bridge zones.
8
+ */
9
+ import { h } from "preact";
10
+ import { useState, useMemo, useCallback, useRef, useEffect } from "preact/hooks";
11
+ import { CollapsibleSection } from "../components/data-display/collapsible-section.js";
12
+ import { SearchFilter } from "../components/search-filter.js";
13
+ import { BrandedHeader } from "../components/logos.js";
14
+ import { buildFileToZoneMap, buildCallFlowEdges, buildExternalImportEdges, getZoneColorByIndex, basename, } from "../utils.js";
15
+ // ── Constants ────────────────────────────────────────────────────────
16
+ const BOX_W = 200;
17
+ const BOX_H_COLLAPSED = 80;
18
+ const FILE_ROW_H = 22;
19
+ const FILE_ROWS_MAX = 15;
20
+ const GAP_X = 80;
21
+ const GAP_Y = 60;
22
+ const PADDING = 40;
23
+ // ── Data transformation ──────────────────────────────────────────────
24
+ function buildExplorerData(callGraph, fileToZoneMap, zones) {
25
+ const funcsByFile = new Map();
26
+ for (const fn of callGraph.functions) {
27
+ let list = funcsByFile.get(fn.file);
28
+ if (!list) {
29
+ list = [];
30
+ funcsByFile.set(fn.file, list);
31
+ }
32
+ list.push(fn);
33
+ }
34
+ const funcInfoMap = new Map();
35
+ for (const fn of callGraph.functions) {
36
+ funcInfoMap.set(`${fn.file}:${fn.qualifiedName}`, {
37
+ fn,
38
+ outgoing: [],
39
+ incoming: [],
40
+ });
41
+ }
42
+ const fileInternalCalls = new Map();
43
+ const fileCrossZoneCalls = new Map();
44
+ for (const edge of callGraph.edges) {
45
+ if (!edge.calleeFile)
46
+ continue;
47
+ const callerKey = `${edge.callerFile}:${edge.caller}`;
48
+ const calleeKey = `${edge.calleeFile}:${edge.callee}`;
49
+ const callerZone = fileToZoneMap.get(edge.callerFile);
50
+ const calleeZone = fileToZoneMap.get(edge.calleeFile);
51
+ const crossZone = !!(callerZone && calleeZone && callerZone.id !== calleeZone.id);
52
+ const callerInfo = funcInfoMap.get(callerKey);
53
+ if (callerInfo) {
54
+ callerInfo.outgoing.push({ funcName: edge.callee, file: edge.calleeFile, crossZone });
55
+ }
56
+ const calleeInfo = funcInfoMap.get(calleeKey);
57
+ if (calleeInfo) {
58
+ calleeInfo.incoming.push({ funcName: edge.caller, file: edge.callerFile, crossZone });
59
+ }
60
+ if (crossZone) {
61
+ fileCrossZoneCalls.set(edge.callerFile, (fileCrossZoneCalls.get(edge.callerFile) ?? 0) + 1);
62
+ fileCrossZoneCalls.set(edge.calleeFile, (fileCrossZoneCalls.get(edge.calleeFile) ?? 0) + 1);
63
+ }
64
+ else {
65
+ fileInternalCalls.set(edge.callerFile, (fileInternalCalls.get(edge.callerFile) ?? 0) + 1);
66
+ }
67
+ }
68
+ const zoneFilesMap = new Map();
69
+ const unzonedFiles = [];
70
+ for (const [filePath, fns] of funcsByFile) {
71
+ const funcInfos = fns.map((fn) => funcInfoMap.get(`${filePath}:${fn.qualifiedName}`)).filter(Boolean);
72
+ const fileInfo = {
73
+ path: filePath,
74
+ functions: funcInfos,
75
+ internalCalls: fileInternalCalls.get(filePath) ?? 0,
76
+ crossZoneCalls: fileCrossZoneCalls.get(filePath) ?? 0,
77
+ };
78
+ const zone = fileToZoneMap.get(filePath);
79
+ if (zone) {
80
+ let list = zoneFilesMap.get(zone.id);
81
+ if (!list) {
82
+ list = [];
83
+ zoneFilesMap.set(zone.id, list);
84
+ }
85
+ list.push(fileInfo);
86
+ }
87
+ else {
88
+ unzonedFiles.push(fileInfo);
89
+ }
90
+ }
91
+ const zoneDataList = [];
92
+ if (zones) {
93
+ for (let i = 0; i < zones.zones.length; i++) {
94
+ const z = zones.zones[i];
95
+ const files = zoneFilesMap.get(z.id) ?? [];
96
+ files.sort((a, b) => b.crossZoneCalls - a.crossZoneCalls || a.path.localeCompare(b.path));
97
+ const totalFunctions = files.reduce((sum, f) => sum + f.functions.length, 0);
98
+ const internalCalls = files.reduce((sum, f) => sum + f.internalCalls, 0);
99
+ const crossZoneCalls = files.reduce((sum, f) => sum + f.crossZoneCalls, 0);
100
+ zoneDataList.push({
101
+ id: z.id,
102
+ name: z.name,
103
+ color: getZoneColorByIndex(i),
104
+ description: z.description,
105
+ cohesion: z.cohesion,
106
+ coupling: z.coupling,
107
+ files,
108
+ totalFunctions,
109
+ internalCalls,
110
+ crossZoneCalls,
111
+ });
112
+ }
113
+ }
114
+ unzonedFiles.sort((a, b) => a.path.localeCompare(b.path));
115
+ return { zoneDataList, unzonedFiles };
116
+ }
117
+ /**
118
+ * Build per-file cross-zone connection map.
119
+ * For each file, tracks which other zones it connects to (and weight).
120
+ */
121
+ function buildFileConnectionMap(callGraph, externalImports, fileToZoneMap, zones) {
122
+ // file → targetZoneId → weight
123
+ const raw = new Map();
124
+ const addConn = (file, targetZone) => {
125
+ let targets = raw.get(file);
126
+ if (!targets) {
127
+ targets = new Map();
128
+ raw.set(file, targets);
129
+ }
130
+ targets.set(targetZone, (targets.get(targetZone) ?? 0) + 1);
131
+ };
132
+ // From call graph edges
133
+ for (const e of callGraph.edges) {
134
+ if (!e.calleeFile)
135
+ continue;
136
+ const fromZone = fileToZoneMap.get(e.callerFile);
137
+ const toZone = fileToZoneMap.get(e.calleeFile);
138
+ if (!fromZone || !toZone || fromZone.id === toZone.id)
139
+ continue;
140
+ addConn(e.callerFile, toZone.id);
141
+ addConn(e.calleeFile, fromZone.id);
142
+ }
143
+ // From external imports: map package names to zones
144
+ if (zones) {
145
+ const dirToZone = new Map();
146
+ for (const z of zones.zones) {
147
+ for (const f of z.files) {
148
+ const parts = f.split("/");
149
+ if (parts.length >= 2 && parts[0] === "packages") {
150
+ const dir = `packages/${parts[1]}`;
151
+ const isSrc = f.includes("/src/");
152
+ const existing = dirToZone.get(dir);
153
+ if (!existing || (isSrc && !existing.hasSrc)) {
154
+ dirToZone.set(dir, { zoneId: z.id, hasSrc: isSrc });
155
+ }
156
+ }
157
+ }
158
+ }
159
+ const pkgToZone = new Map();
160
+ for (const ext of externalImports) {
161
+ const pkg = ext.package;
162
+ if (pkgToZone.has(pkg))
163
+ continue;
164
+ if (pkg.startsWith("@n-dx/")) {
165
+ const entry = dirToZone.get(`packages/${pkg.slice(6)}`);
166
+ if (entry) {
167
+ pkgToZone.set(pkg, entry.zoneId);
168
+ continue;
169
+ }
170
+ }
171
+ const entry = dirToZone.get(`packages/${pkg}`);
172
+ if (entry) {
173
+ pkgToZone.set(pkg, entry.zoneId);
174
+ }
175
+ }
176
+ for (const ext of externalImports) {
177
+ const targetZone = pkgToZone.get(ext.package);
178
+ if (!targetZone)
179
+ continue;
180
+ for (const file of ext.importedBy) {
181
+ const fromZone = fileToZoneMap.get(file);
182
+ if (!fromZone || fromZone.id === targetZone)
183
+ continue;
184
+ addConn(file, targetZone);
185
+ }
186
+ }
187
+ }
188
+ // Convert to result format
189
+ const result = new Map();
190
+ for (const [file, targets] of raw) {
191
+ result.set(file, [...targets.entries()].map(([zoneId, weight]) => ({
192
+ targetZoneId: zoneId,
193
+ weight,
194
+ })));
195
+ }
196
+ return result;
197
+ }
198
+ /**
199
+ * Build file-to-file cross-zone connection map from call graph edges.
200
+ * Used when both source and target zones are expanded to draw file-level edges.
201
+ */
202
+ function buildFileToFileMap(callGraph, fileToZoneMap) {
203
+ const result = new Map();
204
+ const addEdge = (from, to) => {
205
+ let targets = result.get(from);
206
+ if (!targets) {
207
+ targets = new Map();
208
+ result.set(from, targets);
209
+ }
210
+ targets.set(to, (targets.get(to) ?? 0) + 1);
211
+ };
212
+ for (const e of callGraph.edges) {
213
+ if (!e.calleeFile)
214
+ continue;
215
+ const fromZone = fileToZoneMap.get(e.callerFile);
216
+ const toZone = fileToZoneMap.get(e.calleeFile);
217
+ if (!fromZone || !toZone || fromZone.id === toZone.id)
218
+ continue;
219
+ addEdge(e.callerFile, e.calleeFile);
220
+ }
221
+ return result;
222
+ }
223
+ // ── Layout pure functions ────────────────────────────────────────────
224
+ function boxHeight(zone, expanded) {
225
+ if (!expanded)
226
+ return BOX_H_COLLAPSED;
227
+ const rows = Math.min(zone.files.length, FILE_ROWS_MAX);
228
+ return BOX_H_COLLAPSED + rows * FILE_ROW_H + 16 + (zone.files.length > FILE_ROWS_MAX ? 20 : 0);
229
+ }
230
+ /** Get the Y center of a file row within an expanded zone box. */
231
+ function fileRowY(box, fileIndex) {
232
+ return box.y + BOX_H_COLLAPSED - 4 + fileIndex * FILE_ROW_H + FILE_ROW_H / 2;
233
+ }
234
+ function computeZoneLayout(zones, edges, expandedZones) {
235
+ if (zones.length === 0)
236
+ return { boxes: new Map(), totalW: 0, totalH: 0 };
237
+ // Build adjacency weight map
238
+ const adj = new Map();
239
+ for (const z of zones)
240
+ adj.set(z.id, new Map());
241
+ for (const e of edges) {
242
+ if (!adj.has(e.from) || !adj.has(e.to))
243
+ continue;
244
+ const m1 = adj.get(e.from);
245
+ m1.set(e.to, (m1.get(e.to) ?? 0) + e.weight);
246
+ const m2 = adj.get(e.to);
247
+ m2.set(e.from, (m2.get(e.from) ?? 0) + e.weight);
248
+ }
249
+ const totalWeight = new Map();
250
+ for (const [id, neighbors] of adj) {
251
+ let sum = 0;
252
+ for (const w of neighbors.values())
253
+ sum += w;
254
+ totalWeight.set(id, sum);
255
+ }
256
+ const sorted = [...zones].sort((a, b) => (totalWeight.get(b.id) ?? 0) - (totalWeight.get(a.id) ?? 0));
257
+ const placed = new Map();
258
+ const occupied = new Set();
259
+ const gridKey = (c, r) => `${c},${r}`;
260
+ placed.set(sorted[0].id, { col: 0, row: 0 });
261
+ occupied.add(gridKey(0, 0));
262
+ const queue = [sorted[0].id];
263
+ const visited = new Set([sorted[0].id]);
264
+ const getNeighborsSorted = (id) => {
265
+ const neighbors = adj.get(id);
266
+ if (!neighbors)
267
+ return [];
268
+ return [...neighbors.entries()]
269
+ .filter(([nid]) => !visited.has(nid))
270
+ .sort((a, b) => b[1] - a[1])
271
+ .map(([nid]) => nid);
272
+ };
273
+ while (queue.length > 0) {
274
+ const current = queue.shift();
275
+ const currentPos = placed.get(current);
276
+ const neighbors = getNeighborsSorted(current);
277
+ for (const nid of neighbors) {
278
+ if (visited.has(nid))
279
+ continue;
280
+ visited.add(nid);
281
+ let bestCol = currentPos.col + 1;
282
+ let bestRow = currentPos.row;
283
+ let found = false;
284
+ for (let dist = 1; dist <= 10 && !found; dist++) {
285
+ for (let dc = -dist; dc <= dist && !found; dc++) {
286
+ for (let dr = -dist; dr <= dist && !found; dr++) {
287
+ if (Math.abs(dc) !== dist && Math.abs(dr) !== dist)
288
+ continue;
289
+ const c = currentPos.col + dc;
290
+ const r = currentPos.row + dr;
291
+ if (!occupied.has(gridKey(c, r))) {
292
+ bestCol = c;
293
+ bestRow = r;
294
+ found = true;
295
+ }
296
+ }
297
+ }
298
+ }
299
+ placed.set(nid, { col: bestCol, row: bestRow });
300
+ occupied.add(gridKey(bestCol, bestRow));
301
+ queue.push(nid);
302
+ }
303
+ }
304
+ for (const z of zones) {
305
+ if (placed.has(z.id))
306
+ continue;
307
+ for (let r = 0;; r++) {
308
+ for (let c = 0; c < 4; c++) {
309
+ if (!occupied.has(gridKey(c, r))) {
310
+ placed.set(z.id, { col: c, row: r });
311
+ occupied.add(gridKey(c, r));
312
+ break;
313
+ }
314
+ }
315
+ if (placed.has(z.id))
316
+ break;
317
+ }
318
+ }
319
+ let minCol = Infinity, minRow = Infinity;
320
+ for (const pos of placed.values()) {
321
+ minCol = Math.min(minCol, pos.col);
322
+ minRow = Math.min(minRow, pos.row);
323
+ }
324
+ for (const pos of placed.values()) {
325
+ pos.col -= minCol;
326
+ pos.row -= minRow;
327
+ }
328
+ let maxCol = 0;
329
+ let maxRow = 0;
330
+ for (const pos of placed.values()) {
331
+ maxCol = Math.max(maxCol, pos.col);
332
+ maxRow = Math.max(maxRow, pos.row);
333
+ }
334
+ const rowHeights = new Array(maxRow + 1).fill(BOX_H_COLLAPSED);
335
+ const zoneMap = new Map(zones.map((z) => [z.id, z]));
336
+ for (const [id, pos] of placed) {
337
+ const zone = zoneMap.get(id);
338
+ if (!zone)
339
+ continue;
340
+ const bh = boxHeight(zone, expandedZones.has(id));
341
+ rowHeights[pos.row] = Math.max(rowHeights[pos.row], bh);
342
+ }
343
+ const boxes = new Map();
344
+ for (const [id, pos] of placed) {
345
+ const zone = zoneMap.get(id);
346
+ if (!zone)
347
+ continue;
348
+ const x = PADDING + pos.col * (BOX_W + GAP_X);
349
+ let y = PADDING;
350
+ for (let r = 0; r < pos.row; r++) {
351
+ y += rowHeights[r] + GAP_Y;
352
+ }
353
+ boxes.set(id, {
354
+ x,
355
+ y,
356
+ w: BOX_W,
357
+ h: boxHeight(zone, expandedZones.has(id)),
358
+ gridCol: pos.col,
359
+ gridRow: pos.row,
360
+ });
361
+ }
362
+ const totalW = PADDING * 2 + (maxCol + 1) * BOX_W + maxCol * GAP_X;
363
+ let totalH = PADDING * 2;
364
+ for (const rh of rowHeights)
365
+ totalH += rh;
366
+ totalH += maxRow * GAP_Y;
367
+ return { boxes, totalW, totalH };
368
+ }
369
+ function boxEdgeAnchor(box, tx, ty) {
370
+ const cx = box.x + box.w / 2;
371
+ const cy = box.y + box.h / 2;
372
+ const dx = tx - cx;
373
+ const dy = ty - cy;
374
+ if (dx === 0 && dy === 0)
375
+ return { x: cx, y: cy };
376
+ const hw = box.w / 2;
377
+ const hh = box.h / 2;
378
+ const sx = dx !== 0 ? hw / Math.abs(dx) : Infinity;
379
+ const sy = dy !== 0 ? hh / Math.abs(dy) : Infinity;
380
+ const s = Math.min(sx, sy);
381
+ return { x: cx + dx * s, y: cy + dy * s };
382
+ }
383
+ function computeEdgePath(fromBox, toBox, edgeIndex, totalEdgesBetweenPair) {
384
+ const fromCx = fromBox.x + fromBox.w / 2;
385
+ const fromCy = fromBox.y + fromBox.h / 2;
386
+ const toCx = toBox.x + toBox.w / 2;
387
+ const toCy = toBox.y + toBox.h / 2;
388
+ const from = boxEdgeAnchor(fromBox, toCx, toCy);
389
+ const to = boxEdgeAnchor(toBox, fromCx, fromCy);
390
+ const mx = (from.x + to.x) / 2;
391
+ const my = (from.y + to.y) / 2;
392
+ const dx = to.x - from.x;
393
+ const dy = to.y - from.y;
394
+ const len = Math.sqrt(dx * dx + dy * dy) || 1;
395
+ const px = -dy / len;
396
+ const py = dx / len;
397
+ const offset = totalEdgesBetweenPair > 1
398
+ ? (edgeIndex - (totalEdgesBetweenPair - 1) / 2) * 25
399
+ : (len > 200 ? 20 : 12);
400
+ const cpx = mx + px * offset;
401
+ const cpy = my + py * offset;
402
+ return `M ${from.x} ${from.y} Q ${cpx} ${cpy} ${to.x} ${to.y}`;
403
+ }
404
+ /** Compute a cubic Bézier from a file row position to a target zone box. */
405
+ function computeFileEdgePath(fileBox, fileCenterY, targetBox) {
406
+ const targetCx = targetBox.x + targetBox.w / 2;
407
+ const exitRight = targetCx > fileBox.x + fileBox.w / 2;
408
+ const fromX = exitRight ? fileBox.x + fileBox.w : fileBox.x;
409
+ const fromY = Math.max(fileBox.y + 4, Math.min(fileCenterY, fileBox.y + fileBox.h - 4));
410
+ const to = boxEdgeAnchor(targetBox, fromX, fromY);
411
+ const dx = to.x - fromX;
412
+ const cp1x = fromX + dx * 0.4;
413
+ const cp1y = fromY;
414
+ const cp2x = fromX + dx * 0.6;
415
+ const cp2y = to.y;
416
+ return `M ${fromX} ${fromY} C ${cp1x} ${cp1y} ${cp2x} ${cp2y} ${to.x} ${to.y}`;
417
+ }
418
+ /** Compute a cubic Bézier between two file rows in different expanded zone boxes. */
419
+ function computeFileToFileEdgePath(fromBox, fromFileY, toBox, toFileY) {
420
+ const goRight = toBox.x > fromBox.x;
421
+ const fromX = goRight ? fromBox.x + fromBox.w : fromBox.x;
422
+ const toX = goRight ? toBox.x : toBox.x + toBox.w;
423
+ const fromY = Math.max(fromBox.y + 4, Math.min(fromFileY, fromBox.y + fromBox.h - 4));
424
+ const toY = Math.max(toBox.y + 4, Math.min(toFileY, toBox.y + toBox.h - 4));
425
+ const dx = toX - fromX;
426
+ const cp1x = fromX + dx * 0.4;
427
+ const cp1y = fromY;
428
+ const cp2x = fromX + dx * 0.6;
429
+ const cp2y = toY;
430
+ return `M ${fromX} ${fromY} C ${cp1x} ${cp1y} ${cp2x} ${cp2y} ${toX} ${toY}`;
431
+ }
432
+ // ── Sub-components ───────────────────────────────────────────────────
433
+ function StatCard({ value, label, color }) {
434
+ return h("div", {
435
+ class: "stat-card",
436
+ style: "padding: 8px 16px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 8px; font-size: 12px;",
437
+ }, h("div", { style: `font-weight: 600; color: ${color ?? "var(--text)"};` }, value), h("div", { style: "color: var(--text-dim);" }, label));
438
+ }
439
+ function FileRow({ file, y, boxX, boxW, searchMatch, hasCrossZone, onClick, onDblClick, }) {
440
+ const totalIn = file.functions.reduce((s, fi) => s + fi.incoming.length, 0);
441
+ const totalOut = file.functions.reduce((s, fi) => s + fi.outgoing.length, 0);
442
+ const name = basename(file.path);
443
+ const stats = `${file.functions.length}fn`;
444
+ const arrows = `${totalIn > 0 ? "\u2190" + totalIn : ""}${totalOut > 0 ? "\u2192" + totalOut : ""}`;
445
+ return h("g", {
446
+ class: `cg-file-row${searchMatch ? " search-match" : ""}${hasCrossZone ? " cross-zone" : ""}`,
447
+ onClick: (e) => { e.stopPropagation(); onClick(); },
448
+ onDblClick: (e) => { e.stopPropagation(); onDblClick(); },
449
+ }, h("rect", {
450
+ class: "cg-file-bg",
451
+ x: boxX + 8,
452
+ y,
453
+ width: boxW - 16,
454
+ height: FILE_ROW_H - 2,
455
+ rx: 3,
456
+ }),
457
+ // Cross-zone indicator bar
458
+ hasCrossZone
459
+ ? h("rect", {
460
+ class: "cg-file-xzone-bar",
461
+ x: boxX + 8,
462
+ y,
463
+ width: 2,
464
+ height: FILE_ROW_H - 2,
465
+ rx: 1,
466
+ })
467
+ : null, h("text", {
468
+ class: "cg-file-name",
469
+ x: boxX + (hasCrossZone ? 16 : 14),
470
+ y: y + 14,
471
+ }, name.length > 20 ? name.slice(0, 18) + "\u2026" : name), h("text", {
472
+ class: "cg-file-stats",
473
+ x: boxX + boxW - 14,
474
+ y: y + 14,
475
+ "text-anchor": "end",
476
+ }, `${stats} ${arrows}`));
477
+ }
478
+ function ZoneEdge({ edge, fromBox, toBox, maxWeight, edgeIndex, totalEdgesBetweenPair, hovered, onHover, onLeave, }) {
479
+ const d = computeEdgePath(fromBox, toBox, edgeIndex, totalEdgesBetweenPair);
480
+ const isHeavy = edge.weight > maxWeight * 0.5;
481
+ const strokeW = Math.max(1.5, Math.min(6, (edge.weight / maxWeight) * 5 + 1));
482
+ return h("g", null, h("path", {
483
+ d,
484
+ fill: "none",
485
+ stroke: "transparent",
486
+ "stroke-width": Math.max(12, strokeW + 8),
487
+ onMouseEnter: onHover,
488
+ onMouseLeave: onLeave,
489
+ style: "cursor: pointer;",
490
+ }), h("path", {
491
+ class: `cg-edge${isHeavy ? " heavy" : ""}${hovered ? " hovered" : ""}`,
492
+ d,
493
+ fill: "none",
494
+ "stroke-width": hovered ? strokeW + 1 : strokeW,
495
+ "marker-end": "url(#cg-arrow)",
496
+ style: "pointer-events: none;",
497
+ }));
498
+ }
499
+ function EdgeLabel({ edge, fromBox, toBox, hovered, }) {
500
+ const fromCx = fromBox.x + fromBox.w / 2;
501
+ const fromCy = fromBox.y + fromBox.h / 2;
502
+ const toCx = toBox.x + toBox.w / 2;
503
+ const toCy = toBox.y + toBox.h / 2;
504
+ const from = boxEdgeAnchor(fromBox, toCx, toCy);
505
+ const to = boxEdgeAnchor(toBox, fromCx, fromCy);
506
+ const mx = (from.x + to.x) / 2;
507
+ const my = (from.y + to.y) / 2;
508
+ return h("text", {
509
+ class: `cg-edge-label${hovered ? " visible" : ""}`,
510
+ x: mx,
511
+ y: my - 8,
512
+ "text-anchor": "middle",
513
+ }, `${edge.weight} call${edge.weight !== 1 ? "s" : ""}`);
514
+ }
515
+ function ZoneBox({ zone, box, expanded, dimmed, searchQ, matchingFiles, fileConnections, onSelectZone, onSelectFile, onDblClickFile, }) {
516
+ const fileCount = zone.files.length;
517
+ const visibleFiles = zone.files.slice(0, FILE_ROWS_MAX);
518
+ const overflow = fileCount - FILE_ROWS_MAX;
519
+ return h("g", {
520
+ class: `cg-zone-box${expanded ? " expanded" : ""}${dimmed ? " search-dim" : ""}`,
521
+ "data-zone-id": zone.id,
522
+ style: "cursor: grab;",
523
+ }, h("rect", {
524
+ class: "cg-zone-rect",
525
+ x: box.x,
526
+ y: box.y,
527
+ width: box.w,
528
+ height: box.h,
529
+ rx: 8,
530
+ style: `--zone-color: ${zone.color};`,
531
+ }), h("rect", {
532
+ x: box.x,
533
+ y: box.y,
534
+ width: 4,
535
+ height: box.h,
536
+ rx: 2,
537
+ fill: zone.color,
538
+ style: "pointer-events: none;",
539
+ }), h("text", {
540
+ class: "cg-zone-name",
541
+ x: box.x + 14,
542
+ y: box.y + 22,
543
+ }, zone.name), h("text", {
544
+ class: "cg-zone-stats",
545
+ x: box.x + 14,
546
+ y: box.y + 40,
547
+ }, `${fileCount} file${fileCount !== 1 ? "s" : ""} \u00B7 ${zone.totalFunctions} fn`), h("text", {
548
+ class: "cg-zone-stats",
549
+ x: box.x + 14,
550
+ y: box.y + 56,
551
+ }, `${zone.internalCalls + zone.crossZoneCalls} calls`, zone.crossZoneCalls > 0 ? ` \u00B7 ${zone.crossZoneCalls} cross-zone` : ""), h("text", {
552
+ class: "cg-zone-expand-icon",
553
+ x: box.x + box.w - 18,
554
+ y: box.y + 22,
555
+ "text-anchor": "end",
556
+ }, expanded ? "\u25B4" : "\u25BE"), expanded
557
+ ? h("g", null,
558
+ // Detail button — opens sidebar
559
+ h("g", {
560
+ class: "cg-zone-detail-btn",
561
+ onClick: (e) => { e.stopPropagation(); onSelectZone(); },
562
+ }, h("rect", {
563
+ x: box.x + box.w - 40,
564
+ y: box.y + 34,
565
+ width: 26,
566
+ height: 18,
567
+ rx: 4,
568
+ class: "cg-detail-btn-bg",
569
+ }), h("text", {
570
+ x: box.x + box.w - 27,
571
+ y: box.y + 47,
572
+ "text-anchor": "middle",
573
+ class: "cg-detail-btn-text",
574
+ }, "info")), h("line", {
575
+ x1: box.x + 8,
576
+ y1: box.y + BOX_H_COLLAPSED - 12,
577
+ x2: box.x + box.w - 8,
578
+ y2: box.y + BOX_H_COLLAPSED - 12,
579
+ class: "cg-zone-divider",
580
+ }), ...visibleFiles.map((file, i) => {
581
+ const fy = box.y + BOX_H_COLLAPSED - 4 + i * FILE_ROW_H;
582
+ const isMatch = !searchQ || matchingFiles.has(file.path);
583
+ const hasCrossZone = fileConnections.has(file.path);
584
+ return h(FileRow, {
585
+ key: file.path,
586
+ file,
587
+ y: fy,
588
+ boxX: box.x,
589
+ boxW: box.w,
590
+ searchMatch: searchQ ? isMatch : false,
591
+ hasCrossZone,
592
+ onClick: () => onSelectFile(file.path),
593
+ onDblClick: () => onDblClickFile(file.path),
594
+ });
595
+ }), overflow > 0
596
+ ? h("text", {
597
+ class: "cg-file-overflow",
598
+ x: box.x + 14,
599
+ y: box.y + BOX_H_COLLAPSED - 4 + FILE_ROWS_MAX * FILE_ROW_H + 14,
600
+ }, `+${overflow} more`)
601
+ : null)
602
+ : null);
603
+ }
604
+ function ZoomControls({ onZoomIn, onZoomOut, onFit, }) {
605
+ return h("div", { class: "cg-zoom-controls" }, h("button", {
606
+ class: "cg-zoom-btn",
607
+ onClick: onZoomIn,
608
+ title: "Zoom in",
609
+ "aria-label": "Zoom in",
610
+ }, "+"), h("button", {
611
+ class: "cg-zoom-btn",
612
+ onClick: onZoomOut,
613
+ title: "Zoom out",
614
+ "aria-label": "Zoom out",
615
+ }, "\u2212"), h("button", {
616
+ class: "cg-zoom-btn",
617
+ onClick: onFit,
618
+ title: "Fit to content",
619
+ "aria-label": "Fit to content",
620
+ }, "\u2922"));
621
+ }
622
+ function ZoneDiagram({ zones, edges, expandedZones, searchQ, fileConnections, fileToFileMap, onToggleZone, onSelectZone, onSelectFile, onDblClickFile, }) {
623
+ const svgRef = useRef(null);
624
+ const [hoveredEdge, setHoveredEdge] = useState(null);
625
+ const [panning, setPanning] = useState(false);
626
+ const panStart = useRef(null);
627
+ // Zone dragging state
628
+ const [dragOffsets, setDragOffsets] = useState(new Map());
629
+ const zoneDrag = useRef(null);
630
+ const zoneById = useMemo(() => new Map(zones.map((z) => [z.id, z])), [zones]);
631
+ const { boxes: baseBoxes, totalW, totalH } = useMemo(() => computeZoneLayout(zones, edges, expandedZones), [zones, edges, expandedZones]);
632
+ // Apply drag offsets to computed boxes
633
+ const boxes = useMemo(() => {
634
+ if (dragOffsets.size === 0)
635
+ return baseBoxes;
636
+ const result = new Map();
637
+ for (const [id, box] of baseBoxes) {
638
+ const off = dragOffsets.get(id);
639
+ if (off) {
640
+ result.set(id, { ...box, x: box.x + off.dx, y: box.y + off.dy });
641
+ }
642
+ else {
643
+ result.set(id, box);
644
+ }
645
+ }
646
+ return result;
647
+ }, [baseBoxes, dragOffsets]);
648
+ const fitVB = useMemo(() => ({
649
+ x: 0,
650
+ y: 0,
651
+ w: Math.max(totalW, 400),
652
+ h: Math.max(totalH, 300),
653
+ }), [totalW, totalH]);
654
+ const [viewBox, setViewBox] = useState(fitVB);
655
+ useEffect(() => {
656
+ setViewBox(fitVB);
657
+ }, [fitVB]);
658
+ const maxWeight = useMemo(() => {
659
+ let max = 1;
660
+ for (const e of edges)
661
+ if (e.weight > max)
662
+ max = e.weight;
663
+ return max;
664
+ }, [edges]);
665
+ const pairCounts = useMemo(() => {
666
+ const counts = new Map();
667
+ for (const e of edges) {
668
+ const key = [e.from, e.to].sort().join("|");
669
+ counts.set(key, (counts.get(key) ?? 0) + 1);
670
+ }
671
+ return counts;
672
+ }, [edges]);
673
+ const pairIndices = useMemo(() => {
674
+ const indices = new Map();
675
+ const counters = new Map();
676
+ for (const e of edges) {
677
+ const key = [e.from, e.to].sort().join("|");
678
+ const idx = counters.get(key) ?? 0;
679
+ indices.set(`${e.from}->${e.to}`, idx);
680
+ counters.set(key, idx + 1);
681
+ }
682
+ return indices;
683
+ }, [edges]);
684
+ const { dimmedZones, matchingFilesByZone } = useMemo(() => {
685
+ if (!searchQ)
686
+ return { dimmedZones: new Set(), matchingFilesByZone: new Map() };
687
+ const q = searchQ.toLowerCase();
688
+ const dimmed = new Set();
689
+ const matching = new Map();
690
+ for (const z of zones) {
691
+ const zoneNameMatch = z.name.toLowerCase().includes(q);
692
+ const fileMatches = new Set();
693
+ for (const f of z.files) {
694
+ if (f.path.toLowerCase().includes(q) ||
695
+ f.functions.some((fi) => fi.fn.qualifiedName.toLowerCase().includes(q))) {
696
+ fileMatches.add(f.path);
697
+ }
698
+ }
699
+ matching.set(z.id, fileMatches);
700
+ if (!zoneNameMatch && fileMatches.size === 0) {
701
+ dimmed.add(z.id);
702
+ }
703
+ }
704
+ return { dimmedZones: dimmed, matchingFilesByZone: matching };
705
+ }, [zones, searchQ]);
706
+ // Build file-level edges for expanded zones
707
+ const fileEdgeElements = useMemo(() => {
708
+ const elements = [];
709
+ for (const edge of edges) {
710
+ const fromBox = boxes.get(edge.from);
711
+ const toBox = boxes.get(edge.to);
712
+ if (!fromBox || !toBox)
713
+ continue;
714
+ const fromExpanded = expandedZones.has(edge.from);
715
+ const toExpanded = expandedZones.has(edge.to);
716
+ if (!fromExpanded && !toExpanded)
717
+ continue;
718
+ const fromZone = zoneById.get(edge.from);
719
+ const toZone = zoneById.get(edge.to);
720
+ // Both zones expanded: try file-to-file edges, fall back to file-to-zone
721
+ if (fromExpanded && toExpanded) {
722
+ if (!fromZone || !toZone)
723
+ continue;
724
+ const fromFiles = fromZone.files.slice(0, FILE_ROWS_MAX);
725
+ const toFiles = toZone.files.slice(0, FILE_ROWS_MAX);
726
+ const toFileIndex = new Map(toFiles.map((f, i) => [f.path, i]));
727
+ let hasF2F = false;
728
+ // Try file-to-file edges (from call graph data)
729
+ for (let fi = 0; fi < fromFiles.length; fi++) {
730
+ const srcFile = fromFiles[fi];
731
+ const targets = fileToFileMap.get(srcFile.path);
732
+ if (!targets)
733
+ continue;
734
+ for (const [tgtPath, weight] of targets) {
735
+ const ti = toFileIndex.get(tgtPath);
736
+ if (ti === undefined)
737
+ continue;
738
+ hasF2F = true;
739
+ const fromY = fileRowY(fromBox, fi);
740
+ const toY = fileRowY(toBox, ti);
741
+ elements.push({
742
+ key: `ff-${srcFile.path}-${tgtPath}`,
743
+ d: computeFileToFileEdgePath(fromBox, fromY, toBox, toY),
744
+ color: toZone.color,
745
+ weight,
746
+ });
747
+ }
748
+ }
749
+ // Also check reverse direction for file-to-file
750
+ for (let ti = 0; ti < toFiles.length; ti++) {
751
+ const srcFile = toFiles[ti];
752
+ const targets = fileToFileMap.get(srcFile.path);
753
+ if (!targets)
754
+ continue;
755
+ const fromFileIndex = new Map(fromFiles.map((f, i) => [f.path, i]));
756
+ for (const [tgtPath, weight] of targets) {
757
+ const fi = fromFileIndex.get(tgtPath);
758
+ if (fi === undefined)
759
+ continue;
760
+ // Avoid duplicating the same pair
761
+ const dupeKey = `ff-${tgtPath}-${srcFile.path}`;
762
+ if (elements.some((el) => el.key === dupeKey))
763
+ continue;
764
+ hasF2F = true;
765
+ const fromY = fileRowY(toBox, ti);
766
+ const toY = fileRowY(fromBox, fi);
767
+ elements.push({
768
+ key: `ff-${srcFile.path}-${tgtPath}`,
769
+ d: computeFileToFileEdgePath(toBox, fromY, fromBox, toY),
770
+ color: fromZone.color,
771
+ weight,
772
+ });
773
+ }
774
+ }
775
+ // Fallback: no file-to-file data → draw file-to-zone from both sides
776
+ if (!hasF2F) {
777
+ // Source files → target zone box
778
+ for (let i = 0; i < fromFiles.length; i++) {
779
+ const file = fromFiles[i];
780
+ const conns = fileConnections.get(file.path);
781
+ if (!conns)
782
+ continue;
783
+ const link = conns.find((c) => c.targetZoneId === edge.to);
784
+ if (!link)
785
+ continue;
786
+ elements.push({
787
+ key: `fe-${file.path}-${edge.to}`,
788
+ d: computeFileEdgePath(fromBox, fileRowY(fromBox, i), toBox),
789
+ color: toZone.color,
790
+ weight: link.weight,
791
+ });
792
+ }
793
+ // Target files → source zone box
794
+ for (let i = 0; i < toFiles.length; i++) {
795
+ const file = toFiles[i];
796
+ const conns = fileConnections.get(file.path);
797
+ if (!conns)
798
+ continue;
799
+ const link = conns.find((c) => c.targetZoneId === edge.from);
800
+ if (!link)
801
+ continue;
802
+ elements.push({
803
+ key: `fe-${edge.from}-${file.path}`,
804
+ d: computeFileEdgePath(toBox, fileRowY(toBox, i), fromBox),
805
+ color: fromZone.color,
806
+ weight: link.weight,
807
+ });
808
+ }
809
+ }
810
+ continue;
811
+ }
812
+ // Only source zone expanded: draw from files to target zone box
813
+ if (fromExpanded) {
814
+ if (!fromZone)
815
+ continue;
816
+ const visibleFiles = fromZone.files.slice(0, FILE_ROWS_MAX);
817
+ for (let i = 0; i < visibleFiles.length; i++) {
818
+ const file = visibleFiles[i];
819
+ const conns = fileConnections.get(file.path);
820
+ if (!conns)
821
+ continue;
822
+ const link = conns.find((c) => c.targetZoneId === edge.to);
823
+ if (!link)
824
+ continue;
825
+ const fy = fileRowY(fromBox, i);
826
+ elements.push({
827
+ key: `fe-${file.path}-${edge.to}`,
828
+ d: computeFileEdgePath(fromBox, fy, toBox),
829
+ color: toZone?.color ?? "var(--border-strong)",
830
+ weight: link.weight,
831
+ });
832
+ }
833
+ continue;
834
+ }
835
+ // Only target zone expanded: draw from source zone box to files
836
+ if (!toZone)
837
+ continue;
838
+ const visibleFiles = toZone.files.slice(0, FILE_ROWS_MAX);
839
+ for (let i = 0; i < visibleFiles.length; i++) {
840
+ const file = visibleFiles[i];
841
+ const conns = fileConnections.get(file.path);
842
+ if (!conns)
843
+ continue;
844
+ const link = conns.find((c) => c.targetZoneId === edge.from);
845
+ if (!link)
846
+ continue;
847
+ const fy = fileRowY(toBox, i);
848
+ elements.push({
849
+ key: `fe-${edge.from}-${file.path}`,
850
+ d: computeFileEdgePath(toBox, fy, fromBox),
851
+ color: fromZone?.color ?? "var(--border-strong)",
852
+ weight: link.weight,
853
+ });
854
+ }
855
+ }
856
+ return elements;
857
+ }, [edges, boxes, expandedZones, zoneById, fileConnections, fileToFileMap]);
858
+ // Determine which zone-level edges should be hidden (replaced by file edges)
859
+ const hiddenZoneEdges = useMemo(() => {
860
+ const hidden = new Set();
861
+ for (const edge of edges) {
862
+ const fromExpanded = expandedZones.has(edge.from);
863
+ const toExpanded = expandedZones.has(edge.to);
864
+ if (fromExpanded || toExpanded) {
865
+ // Check if any file edges exist for this zone pair
866
+ const hasFileEdges = fileEdgeElements.some((fe) => fe.key.includes(edge.from) || fe.key.includes(edge.to));
867
+ if (hasFileEdges)
868
+ hidden.add(`${edge.from}->${edge.to}`);
869
+ }
870
+ }
871
+ return hidden;
872
+ }, [edges, expandedZones, fileEdgeElements]);
873
+ // Pan/zoom handlers
874
+ const handleWheel = useCallback((e) => {
875
+ e.preventDefault();
876
+ const svg = svgRef.current;
877
+ if (!svg)
878
+ return;
879
+ const rect = svg.getBoundingClientRect();
880
+ // ctrlKey = pinch-zoom on trackpad (or ctrl+scroll on mouse) → zoom
881
+ if (e.ctrlKey) {
882
+ const fx = (e.clientX - rect.left) / rect.width;
883
+ const fy = (e.clientY - rect.top) / rect.height;
884
+ // Clamp deltaY to reduce sensitivity: ±2px max effect per event
885
+ const clamped = Math.max(-2, Math.min(2, e.deltaY));
886
+ const zoomFactor = 1 + clamped * 0.02;
887
+ setViewBox((vb) => {
888
+ const newW = vb.w * zoomFactor;
889
+ const newH = vb.h * zoomFactor;
890
+ const newX = vb.x + (vb.w - newW) * fx;
891
+ const newY = vb.y + (vb.h - newH) * fy;
892
+ return { x: newX, y: newY, w: newW, h: newH };
893
+ });
894
+ return;
895
+ }
896
+ // Regular scroll / two-finger drag on trackpad → pan
897
+ setViewBox((vb) => {
898
+ const scaleX = vb.w / rect.width;
899
+ const scaleY = vb.h / rect.height;
900
+ return {
901
+ ...vb,
902
+ x: vb.x + e.deltaX * scaleX,
903
+ y: vb.y + e.deltaY * scaleY,
904
+ };
905
+ });
906
+ }, []);
907
+ const handleMouseDown = useCallback((e) => {
908
+ const zoneEl = e.target?.closest(".cg-zone-box");
909
+ if (zoneEl) {
910
+ // Start zone drag
911
+ const zoneId = zoneEl.getAttribute("data-zone-id");
912
+ if (!zoneId)
913
+ return;
914
+ const off = dragOffsets.get(zoneId) ?? { dx: 0, dy: 0 };
915
+ zoneDrag.current = {
916
+ zoneId,
917
+ startX: e.clientX,
918
+ startY: e.clientY,
919
+ origDx: off.dx,
920
+ origDy: off.dy,
921
+ moved: false,
922
+ };
923
+ return;
924
+ }
925
+ // Background pan
926
+ setPanning(true);
927
+ panStart.current = { x: e.clientX, y: e.clientY, vbx: viewBox.x, vby: viewBox.y };
928
+ }, [viewBox, dragOffsets]);
929
+ const handleMouseMove = useCallback((e) => {
930
+ // Zone dragging
931
+ if (zoneDrag.current && svgRef.current) {
932
+ const rect = svgRef.current.getBoundingClientRect();
933
+ const scaleX = viewBox.w / rect.width;
934
+ const scaleY = viewBox.h / rect.height;
935
+ const dx = (e.clientX - zoneDrag.current.startX) * scaleX;
936
+ const dy = (e.clientY - zoneDrag.current.startY) * scaleY;
937
+ if (!zoneDrag.current.moved && (Math.abs(dx) > 3 || Math.abs(dy) > 3)) {
938
+ zoneDrag.current.moved = true;
939
+ }
940
+ if (zoneDrag.current.moved) {
941
+ const zid = zoneDrag.current.zoneId;
942
+ const newDx = zoneDrag.current.origDx + dx;
943
+ const newDy = zoneDrag.current.origDy + dy;
944
+ setDragOffsets((prev) => {
945
+ const next = new Map(prev);
946
+ next.set(zid, { dx: newDx, dy: newDy });
947
+ return next;
948
+ });
949
+ }
950
+ return;
951
+ }
952
+ // Background panning
953
+ if (!panning || !panStart.current || !svgRef.current)
954
+ return;
955
+ const rect = svgRef.current.getBoundingClientRect();
956
+ const scaleX = viewBox.w / rect.width;
957
+ const scaleY = viewBox.h / rect.height;
958
+ const dx = (e.clientX - panStart.current.x) * scaleX;
959
+ const dy = (e.clientY - panStart.current.y) * scaleY;
960
+ setViewBox((vb) => ({
961
+ ...vb,
962
+ x: panStart.current.vbx - dx,
963
+ y: panStart.current.vby - dy,
964
+ }));
965
+ }, [panning, viewBox.w, viewBox.h]);
966
+ const handleMouseUp = useCallback((e) => {
967
+ // End zone drag — if not moved, treat as click (toggle)
968
+ if (zoneDrag.current) {
969
+ if (!zoneDrag.current.moved) {
970
+ onToggleZone(zoneDrag.current.zoneId);
971
+ }
972
+ zoneDrag.current = null;
973
+ return;
974
+ }
975
+ setPanning(false);
976
+ panStart.current = null;
977
+ }, [onToggleZone]);
978
+ useEffect(() => {
979
+ const onUp = () => {
980
+ if (zoneDrag.current) {
981
+ if (!zoneDrag.current.moved) {
982
+ onToggleZone(zoneDrag.current.zoneId);
983
+ }
984
+ zoneDrag.current = null;
985
+ }
986
+ setPanning(false);
987
+ panStart.current = null;
988
+ };
989
+ window.addEventListener("mouseup", onUp);
990
+ return () => window.removeEventListener("mouseup", onUp);
991
+ }, [onToggleZone]);
992
+ const handleZoomIn = useCallback(() => {
993
+ setViewBox((vb) => ({
994
+ x: vb.x + vb.w * 0.1,
995
+ y: vb.y + vb.h * 0.1,
996
+ w: vb.w * 0.8,
997
+ h: vb.h * 0.8,
998
+ }));
999
+ }, []);
1000
+ const handleZoomOut = useCallback(() => {
1001
+ setViewBox((vb) => ({
1002
+ x: vb.x - vb.w * 0.125,
1003
+ y: vb.y - vb.h * 0.125,
1004
+ w: vb.w * 1.25,
1005
+ h: vb.h * 1.25,
1006
+ }));
1007
+ }, []);
1008
+ const handleFit = useCallback(() => {
1009
+ setViewBox(fitVB);
1010
+ }, [fitVB]);
1011
+ if (zones.length === 0)
1012
+ return null;
1013
+ const vbStr = `${viewBox.x} ${viewBox.y} ${viewBox.w} ${viewBox.h}`;
1014
+ return h("div", { class: "cg-diagram-container" }, h("svg", {
1015
+ ref: svgRef,
1016
+ class: `cg-diagram${panning ? " dragging" : ""}`,
1017
+ viewBox: vbStr,
1018
+ preserveAspectRatio: "xMidYMid meet",
1019
+ onWheel: handleWheel,
1020
+ onMouseDown: handleMouseDown,
1021
+ onMouseMove: handleMouseMove,
1022
+ onMouseUp: handleMouseUp,
1023
+ }, h("defs", null, h("marker", {
1024
+ id: "cg-arrow",
1025
+ viewBox: "0 0 10 8",
1026
+ refX: 9,
1027
+ refY: 4,
1028
+ markerWidth: 8,
1029
+ markerHeight: 6,
1030
+ orient: "auto-start-reverse",
1031
+ }, h("path", {
1032
+ d: "M 0 0 L 10 4 L 0 8 z",
1033
+ class: "cg-arrow-marker",
1034
+ }))),
1035
+ // Zone-level edges (hidden when expanded zones have file-level edges)
1036
+ h("g", { class: "cg-edges" }, edges.map((edge) => {
1037
+ const edgeKey = `${edge.from}->${edge.to}`;
1038
+ if (hiddenZoneEdges.has(edgeKey))
1039
+ return null;
1040
+ const fromBox = boxes.get(edge.from);
1041
+ const toBox = boxes.get(edge.to);
1042
+ if (!fromBox || !toBox)
1043
+ return null;
1044
+ const pairKey = [edge.from, edge.to].sort().join("|");
1045
+ const total = pairCounts.get(pairKey) ?? 1;
1046
+ const idx = pairIndices.get(edgeKey) ?? 0;
1047
+ return h(ZoneEdge, {
1048
+ key: edgeKey,
1049
+ edge,
1050
+ fromBox,
1051
+ toBox,
1052
+ maxWeight,
1053
+ edgeIndex: idx,
1054
+ totalEdgesBetweenPair: total,
1055
+ hovered: hoveredEdge === edgeKey,
1056
+ onHover: () => setHoveredEdge(edgeKey),
1057
+ onLeave: () => setHoveredEdge(null),
1058
+ });
1059
+ })),
1060
+ // File-level edges (from expanded zone files to other zones)
1061
+ h("g", { class: "cg-file-edges" }, fileEdgeElements.map((fe) => h("path", {
1062
+ key: fe.key,
1063
+ class: "cg-file-edge",
1064
+ d: fe.d,
1065
+ fill: "none",
1066
+ stroke: fe.color,
1067
+ "stroke-width": Math.max(1, Math.min(2.5, fe.weight * 0.4 + 0.8)),
1068
+ opacity: 0.55,
1069
+ }))),
1070
+ // Edge labels (only for visible zone-level edges)
1071
+ h("g", { class: "cg-edge-labels" }, edges.map((edge) => {
1072
+ const edgeKey = `${edge.from}->${edge.to}`;
1073
+ if (hiddenZoneEdges.has(edgeKey))
1074
+ return null;
1075
+ const fromBox = boxes.get(edge.from);
1076
+ const toBox = boxes.get(edge.to);
1077
+ if (!fromBox || !toBox)
1078
+ return null;
1079
+ return h(EdgeLabel, {
1080
+ key: `label-${edgeKey}`,
1081
+ edge,
1082
+ fromBox,
1083
+ toBox,
1084
+ hovered: hoveredEdge === edgeKey,
1085
+ });
1086
+ })),
1087
+ // Zone boxes (rendered last so they're on top)
1088
+ h("g", { class: "cg-zones" }, zones.map((zone) => {
1089
+ const box = boxes.get(zone.id);
1090
+ if (!box)
1091
+ return null;
1092
+ return h(ZoneBox, {
1093
+ key: zone.id,
1094
+ zone,
1095
+ box,
1096
+ expanded: expandedZones.has(zone.id),
1097
+ dimmed: dimmedZones.has(zone.id),
1098
+ searchQ,
1099
+ matchingFiles: matchingFilesByZone.get(zone.id) ?? new Set(),
1100
+ fileConnections,
1101
+ onSelectZone: () => onSelectZone(zone),
1102
+ onSelectFile,
1103
+ onDblClickFile,
1104
+ });
1105
+ }))), h(ZoomControls, {
1106
+ onZoomIn: handleZoomIn,
1107
+ onZoomOut: handleZoomOut,
1108
+ onFit: handleFit,
1109
+ }));
1110
+ }
1111
+ // ── Main component ───────────────────────────────────────────────────
1112
+ export function CallGraphView({ data, onSelect, navigateTo }) {
1113
+ const { callGraph, zones, imports: importsData } = data;
1114
+ const [search, setSearch] = useState("");
1115
+ const [expandedZones, setExpandedZones] = useState(new Set());
1116
+ const fileToZoneMap = useMemo(() => buildFileToZoneMap(zones), [zones]);
1117
+ const { zoneDataList } = useMemo(() => {
1118
+ if (!callGraph)
1119
+ return { zoneDataList: [], unzonedFiles: [] };
1120
+ return buildExplorerData(callGraph, fileToZoneMap, zones);
1121
+ }, [callGraph, fileToZoneMap, zones]);
1122
+ const flowEdges = useMemo(() => {
1123
+ const callEdges = callGraph ? buildCallFlowEdges(callGraph.edges, fileToZoneMap) : [];
1124
+ const importEdges = importsData && zones
1125
+ ? buildExternalImportEdges(importsData.external, fileToZoneMap, zones)
1126
+ : [];
1127
+ const merged = new Map();
1128
+ for (const e of [...callEdges, ...importEdges]) {
1129
+ const key = `${e.from}->${e.to}`;
1130
+ const existing = merged.get(key);
1131
+ if (existing) {
1132
+ existing.weight += e.weight;
1133
+ }
1134
+ else {
1135
+ merged.set(key, { ...e });
1136
+ }
1137
+ }
1138
+ return [...merged.values()];
1139
+ }, [callGraph, fileToZoneMap, importsData, zones]);
1140
+ const fileConnections = useMemo(() => {
1141
+ if (!callGraph)
1142
+ return new Map();
1143
+ return buildFileConnectionMap(callGraph, importsData?.external ?? [], fileToZoneMap, zones);
1144
+ }, [callGraph, importsData, fileToZoneMap, zones]);
1145
+ const fileToFileMap = useMemo(() => {
1146
+ if (!callGraph)
1147
+ return new Map();
1148
+ return buildFileToFileMap(callGraph, fileToZoneMap);
1149
+ }, [callGraph, fileToZoneMap]);
1150
+ const crossZoneTotal = useMemo(() => {
1151
+ return flowEdges.reduce((sum, e) => sum + e.weight, 0);
1152
+ }, [flowEdges]);
1153
+ const searchQ = search.toLowerCase();
1154
+ const totalFiles = zoneDataList.reduce((sum, zd) => sum + zd.files.length, 0);
1155
+ const totalFilteredFiles = useMemo(() => {
1156
+ if (!searchQ)
1157
+ return totalFiles;
1158
+ let count = 0;
1159
+ for (const zd of zoneDataList) {
1160
+ for (const f of zd.files) {
1161
+ if (f.path.toLowerCase().includes(searchQ) ||
1162
+ f.functions.some((fi) => fi.fn.qualifiedName.toLowerCase().includes(searchQ))) {
1163
+ count++;
1164
+ }
1165
+ }
1166
+ }
1167
+ return count;
1168
+ }, [zoneDataList, searchQ, totalFiles]);
1169
+ const effectiveExpandedZones = useMemo(() => {
1170
+ if (!searchQ)
1171
+ return expandedZones;
1172
+ const set = new Set(expandedZones);
1173
+ for (const zd of zoneDataList) {
1174
+ const nameMatch = zd.name.toLowerCase().includes(searchQ);
1175
+ const fileMatch = zd.files.some((f) => f.path.toLowerCase().includes(searchQ) ||
1176
+ f.functions.some((fi) => fi.fn.qualifiedName.toLowerCase().includes(searchQ)));
1177
+ if (nameMatch || fileMatch)
1178
+ set.add(zd.id);
1179
+ }
1180
+ return set;
1181
+ }, [searchQ, zoneDataList, expandedZones]);
1182
+ const toggleZone = useCallback((id) => {
1183
+ setExpandedZones((prev) => {
1184
+ const next = new Set(prev);
1185
+ if (next.has(id))
1186
+ next.delete(id);
1187
+ else
1188
+ next.add(id);
1189
+ return next;
1190
+ });
1191
+ }, []);
1192
+ const handleZoneSelect = useCallback((zd) => {
1193
+ if (!zones)
1194
+ return;
1195
+ const zone = zones.zones.find((z) => z.id === zd.id);
1196
+ if (!zone)
1197
+ return;
1198
+ onSelect({
1199
+ type: "zone",
1200
+ title: zone.name,
1201
+ id: zone.id,
1202
+ zoneId: zone.id,
1203
+ description: zone.description,
1204
+ files: zone.files.length,
1205
+ entryPoints: zone.entryPoints,
1206
+ cohesion: zone.cohesion.toFixed(2),
1207
+ coupling: zone.coupling.toFixed(2),
1208
+ });
1209
+ }, [zones, onSelect]);
1210
+ const handleFileSelect = useCallback((filePath) => {
1211
+ onSelect({
1212
+ type: "file",
1213
+ title: basename(filePath),
1214
+ path: filePath,
1215
+ zone: fileToZoneMap.get(filePath)?.name,
1216
+ });
1217
+ }, [fileToZoneMap, onSelect]);
1218
+ const handleFileDblClick = useCallback((filePath) => {
1219
+ if (navigateTo)
1220
+ navigateTo("files", { file: filePath });
1221
+ }, [navigateTo]);
1222
+ if (!callGraph) {
1223
+ return h("div", { class: "loading" }, "No call graph data available. Run 'sourcevision analyze' to generate it.");
1224
+ }
1225
+ const summary = callGraph.summary;
1226
+ return h("div", null, h("div", { class: "view-header" }, h(BrandedHeader, { product: "sourcevision", title: "SourceVision", class: "branded-header-sv" }), h("h2", { class: "section-header" }, "Call Graph")), h("p", { class: "section-sub" }, `${summary.totalFunctions} functions, ${summary.totalCalls} call edges across ${summary.filesWithCalls} files`, crossZoneTotal > 0 ? ` \u00B7 ${crossZoneTotal} cross-zone` : "", summary.cycleCount > 0 ? ` \u00B7 ${summary.cycleCount} cycles` : ""), h(SearchFilter, {
1227
+ placeholder: "Search functions or files\u2026",
1228
+ value: search,
1229
+ onInput: setSearch,
1230
+ resultCount: searchQ ? totalFilteredFiles : undefined,
1231
+ totalCount: searchQ ? totalFiles : undefined,
1232
+ }), h("div", { style: "display: flex; gap: 16px; margin: 12px 0; flex-wrap: wrap;" }, h(StatCard, { value: String(summary.totalFunctions), label: "Functions" }), h(StatCard, { value: String(summary.totalCalls), label: "Calls" }), crossZoneTotal > 0
1233
+ ? h(StatCard, { value: String(crossZoneTotal), label: "Cross-Zone", color: "var(--orange)" })
1234
+ : null, summary.cycleCount > 0
1235
+ ? h(StatCard, { value: String(summary.cycleCount), label: "Cycles", color: "var(--orange)" })
1236
+ : null), zoneDataList.length > 0
1237
+ ? h(ZoneDiagram, {
1238
+ zones: zoneDataList,
1239
+ edges: flowEdges,
1240
+ expandedZones: effectiveExpandedZones,
1241
+ searchQ,
1242
+ fileConnections,
1243
+ fileToFileMap,
1244
+ onToggleZone: toggleZone,
1245
+ onSelectZone: handleZoneSelect,
1246
+ onSelectFile: handleFileSelect,
1247
+ onDblClickFile: handleFileDblClick,
1248
+ })
1249
+ : null, h(CallGraphSummaryTables, { summary }));
1250
+ }
1251
+ function CallGraphSummaryTables({ summary }) {
1252
+ const hasMostCalled = summary.mostCalled.length > 0;
1253
+ const hasMostCalling = summary.mostCalling.length > 0;
1254
+ if (!hasMostCalled && !hasMostCalling)
1255
+ return null;
1256
+ return h(CollapsibleSection, {
1257
+ title: "Top Functions",
1258
+ count: undefined,
1259
+ defaultOpen: false,
1260
+ }, h("div", { style: "display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 8px;" }, hasMostCalled
1261
+ ? h("div", null, h("h3", { style: "font-size: 14px; margin-bottom: 8px; color: var(--text);" }, "Most Called Functions"), h("table", { class: "data-table", style: "width: 100%; font-size: 12px;" }, h("thead", null, h("tr", null, h("th", { style: "text-align: left; padding: 4px 8px;" }, "Function"), h("th", { style: "text-align: left; padding: 4px 8px;" }, "File"), h("th", { style: "text-align: right; padding: 4px 8px;" }, "Callers"))), h("tbody", null, summary.mostCalled.slice(0, 10).map((item, i) => h("tr", { key: i, style: "border-top: 1px solid var(--border);" }, h("td", { style: "padding: 4px 8px; font-family: var(--font-mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px;" }, item.qualifiedName), h("td", { style: "padding: 4px 8px; color: var(--text-dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px;" }, basename(item.file)), h("td", { style: "padding: 4px 8px; text-align: right; font-weight: 600;" }, String(item.callerCount)))))))
1262
+ : null, hasMostCalling
1263
+ ? h("div", null, h("h3", { style: "font-size: 14px; margin-bottom: 8px; color: var(--text);" }, "Most Complex Functions"), h("table", { class: "data-table", style: "width: 100%; font-size: 12px;" }, h("thead", null, h("tr", null, h("th", { style: "text-align: left; padding: 4px 8px;" }, "Function"), h("th", { style: "text-align: left; padding: 4px 8px;" }, "File"), h("th", { style: "text-align: right; padding: 4px 8px;" }, "Callees"))), h("tbody", null, summary.mostCalling.slice(0, 10).map((item, i) => h("tr", { key: i, style: "border-top: 1px solid var(--border);" }, h("td", { style: "padding: 4px 8px; font-family: var(--font-mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px;" }, item.qualifiedName), h("td", { style: "padding: 4px 8px; color: var(--text-dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px;" }, basename(item.file)), h("td", { style: "padding: 4px 8px; text-align: right; font-weight: 600;" }, String(item.calleeCount)))))))
1264
+ : null));
1265
+ }
1266
+ //# sourceMappingURL=call-graph.js.map