@n-dx/web 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 (671) hide show
  1. package/LICENSE +96 -0
  2. package/README.md +5 -0
  3. package/build.js +243 -0
  4. package/dist/cli/index.d.ts +8 -0
  5. package/dist/cli/index.js +50 -0
  6. package/dist/cli/index.js.map +1 -0
  7. package/dist/landing/index.html +325 -0
  8. package/dist/landing/landing.d.ts +38 -0
  9. package/dist/landing/landing.js +299 -0
  10. package/dist/landing/landing.js.map +1 -0
  11. package/dist/public.d.ts +55 -0
  12. package/dist/public.js +51 -0
  13. package/dist/public.js.map +1 -0
  14. package/dist/schema/features.d.ts +28 -0
  15. package/dist/schema/features.js +9 -0
  16. package/dist/schema/features.js.map +1 -0
  17. package/dist/schema/v1.d.ts +317 -0
  18. package/dist/schema/v1.js +3 -0
  19. package/dist/schema/v1.js.map +1 -0
  20. package/dist/server/aggregation-cache.d.ts +105 -0
  21. package/dist/server/aggregation-cache.js +163 -0
  22. package/dist/server/aggregation-cache.js.map +1 -0
  23. package/dist/server/concurrent-execution-metrics.d.ts +103 -0
  24. package/dist/server/concurrent-execution-metrics.js +253 -0
  25. package/dist/server/concurrent-execution-metrics.js.map +1 -0
  26. package/dist/server/domain-gateway.d.ts +18 -0
  27. package/dist/server/domain-gateway.js +19 -0
  28. package/dist/server/domain-gateway.js.map +1 -0
  29. package/dist/server/incremental-task-usage.d.ts +92 -0
  30. package/dist/server/incremental-task-usage.js +251 -0
  31. package/dist/server/incremental-task-usage.js.map +1 -0
  32. package/dist/server/index.d.ts +39 -0
  33. package/dist/server/index.js +36 -0
  34. package/dist/server/index.js.map +1 -0
  35. package/dist/server/port.d.ts +96 -0
  36. package/dist/server/port.js +134 -0
  37. package/dist/server/port.js.map +1 -0
  38. package/dist/server/pr-markdown-refresh-diagnostics.d.ts +59 -0
  39. package/dist/server/pr-markdown-refresh-diagnostics.js +429 -0
  40. package/dist/server/pr-markdown-refresh-diagnostics.js.map +1 -0
  41. package/dist/server/prd-io.d.ts +40 -0
  42. package/dist/server/prd-io.js +66 -0
  43. package/dist/server/prd-io.js.map +1 -0
  44. package/dist/server/process-memory-tracker.d.ts +79 -0
  45. package/dist/server/process-memory-tracker.js +194 -0
  46. package/dist/server/process-memory-tracker.js.map +1 -0
  47. package/dist/server/register-scheduler.d.ts +53 -0
  48. package/dist/server/register-scheduler.js +36 -0
  49. package/dist/server/register-scheduler.js.map +1 -0
  50. package/dist/server/rex-gateway.d.ts +39 -0
  51. package/dist/server/rex-gateway.js +47 -0
  52. package/dist/server/rex-gateway.js.map +1 -0
  53. package/dist/server/routes-adaptive.d.ts +21 -0
  54. package/dist/server/routes-adaptive.js +659 -0
  55. package/dist/server/routes-adaptive.js.map +1 -0
  56. package/dist/server/routes-config.d.ts +47 -0
  57. package/dist/server/routes-config.js +222 -0
  58. package/dist/server/routes-config.js.map +1 -0
  59. package/dist/server/routes-data.d.ts +14 -0
  60. package/dist/server/routes-data.js +129 -0
  61. package/dist/server/routes-data.js.map +1 -0
  62. package/dist/server/routes-features.d.ts +14 -0
  63. package/dist/server/routes-features.js +245 -0
  64. package/dist/server/routes-features.js.map +1 -0
  65. package/dist/server/routes-hench.d.ts +116 -0
  66. package/dist/server/routes-hench.js +2016 -0
  67. package/dist/server/routes-hench.js.map +1 -0
  68. package/dist/server/routes-integrations.d.ts +23 -0
  69. package/dist/server/routes-integrations.js +277 -0
  70. package/dist/server/routes-integrations.js.map +1 -0
  71. package/dist/server/routes-mcp.d.ts +31 -0
  72. package/dist/server/routes-mcp.js +175 -0
  73. package/dist/server/routes-mcp.js.map +1 -0
  74. package/dist/server/routes-notion.d.ts +23 -0
  75. package/dist/server/routes-notion.js +723 -0
  76. package/dist/server/routes-notion.js.map +1 -0
  77. package/dist/server/routes-project.d.ts +47 -0
  78. package/dist/server/routes-project.js +128 -0
  79. package/dist/server/routes-project.js.map +1 -0
  80. package/dist/server/routes-rex/analysis.d.ts +11 -0
  81. package/dist/server/routes-rex/analysis.js +583 -0
  82. package/dist/server/routes-rex/analysis.js.map +1 -0
  83. package/dist/server/routes-rex/execution.d.ts +37 -0
  84. package/dist/server/routes-rex/execution.js +355 -0
  85. package/dist/server/routes-rex/execution.js.map +1 -0
  86. package/dist/server/routes-rex/health.d.ts +8 -0
  87. package/dist/server/routes-rex/health.js +136 -0
  88. package/dist/server/routes-rex/health.js.map +1 -0
  89. package/dist/server/routes-rex/index.d.ts +35 -0
  90. package/dist/server/routes-rex/index.js +72 -0
  91. package/dist/server/routes-rex/index.js.map +1 -0
  92. package/dist/server/routes-rex/items.d.ts +8 -0
  93. package/dist/server/routes-rex/items.js +359 -0
  94. package/dist/server/routes-rex/items.js.map +1 -0
  95. package/dist/server/routes-rex/prune.d.ts +11 -0
  96. package/dist/server/routes-rex/prune.js +379 -0
  97. package/dist/server/routes-rex/prune.js.map +1 -0
  98. package/dist/server/routes-rex/reads.d.ts +9 -0
  99. package/dist/server/routes-rex/reads.js +119 -0
  100. package/dist/server/routes-rex/reads.js.map +1 -0
  101. package/dist/server/routes-rex/requirements.d.ts +10 -0
  102. package/dist/server/routes-rex/requirements.js +408 -0
  103. package/dist/server/routes-rex/requirements.js.map +1 -0
  104. package/dist/server/routes-rex/shared.d.ts +37 -0
  105. package/dist/server/routes-rex/shared.js +73 -0
  106. package/dist/server/routes-rex/shared.js.map +1 -0
  107. package/dist/server/routes-search.d.ts +26 -0
  108. package/dist/server/routes-search.js +82 -0
  109. package/dist/server/routes-search.js.map +1 -0
  110. package/dist/server/routes-sourcevision.d.ts +18 -0
  111. package/dist/server/routes-sourcevision.js +444 -0
  112. package/dist/server/routes-sourcevision.js.map +1 -0
  113. package/dist/server/routes-static.d.ts +20 -0
  114. package/dist/server/routes-static.js +168 -0
  115. package/dist/server/routes-static.js.map +1 -0
  116. package/dist/server/routes-status.d.ts +58 -0
  117. package/dist/server/routes-status.js +191 -0
  118. package/dist/server/routes-status.js.map +1 -0
  119. package/dist/server/routes-token-usage.d.ts +63 -0
  120. package/dist/server/routes-token-usage.js +720 -0
  121. package/dist/server/routes-token-usage.js.map +1 -0
  122. package/dist/server/routes-validation.d.ts +10 -0
  123. package/dist/server/routes-validation.js +365 -0
  124. package/dist/server/routes-validation.js.map +1 -0
  125. package/dist/server/routes-workflow.d.ts +15 -0
  126. package/dist/server/routes-workflow.js +498 -0
  127. package/dist/server/routes-workflow.js.map +1 -0
  128. package/dist/server/search-index.d.ts +111 -0
  129. package/dist/server/search-index.js +348 -0
  130. package/dist/server/search-index.js.map +1 -0
  131. package/dist/server/shared-types.d.ts +65 -0
  132. package/dist/server/shared-types.js +31 -0
  133. package/dist/server/shared-types.js.map +1 -0
  134. package/dist/server/start.d.ts +68 -0
  135. package/dist/server/start.js +568 -0
  136. package/dist/server/start.js.map +1 -0
  137. package/dist/server/task-usage.d.ts +17 -0
  138. package/dist/server/task-usage.js +20 -0
  139. package/dist/server/task-usage.js.map +1 -0
  140. package/dist/server/types.d.ts +27 -0
  141. package/dist/server/types.js +26 -0
  142. package/dist/server/types.js.map +1 -0
  143. package/dist/server/usage-cleanup-scheduler.d.ts +107 -0
  144. package/dist/server/usage-cleanup-scheduler.js +232 -0
  145. package/dist/server/usage-cleanup-scheduler.js.map +1 -0
  146. package/dist/server/websocket.d.ts +131 -0
  147. package/dist/server/websocket.js +512 -0
  148. package/dist/server/websocket.js.map +1 -0
  149. package/dist/shared/data-files.d.ts +17 -0
  150. package/dist/shared/data-files.js +18 -0
  151. package/dist/shared/data-files.js.map +1 -0
  152. package/dist/shared/index.d.ts +9 -0
  153. package/dist/shared/index.js +9 -0
  154. package/dist/shared/index.js.map +1 -0
  155. package/dist/shared/view-id.d.ts +8 -0
  156. package/dist/shared/view-id.js +9 -0
  157. package/dist/shared/view-id.js.map +1 -0
  158. package/dist/viewer/Hench-F.png +0 -0
  159. package/dist/viewer/Rex-F.png +0 -0
  160. package/dist/viewer/SourceVision-F.png +0 -0
  161. package/dist/viewer/SourceVision.png +0 -0
  162. package/dist/viewer/api.d.ts +19 -0
  163. package/dist/viewer/api.js +17 -0
  164. package/dist/viewer/api.js.map +1 -0
  165. package/dist/viewer/bootstrap.d.ts +13 -0
  166. package/dist/viewer/bootstrap.js +40 -0
  167. package/dist/viewer/bootstrap.js.map +1 -0
  168. package/dist/viewer/components/active-tasks-panel.d.ts +36 -0
  169. package/dist/viewer/components/active-tasks-panel.js +183 -0
  170. package/dist/viewer/components/active-tasks-panel.js.map +1 -0
  171. package/dist/viewer/components/breadcrumb.d.ts +21 -0
  172. package/dist/viewer/components/breadcrumb.js +117 -0
  173. package/dist/viewer/components/breadcrumb.js.map +1 -0
  174. package/dist/viewer/components/concurrency-panel.d.ts +18 -0
  175. package/dist/viewer/components/concurrency-panel.js +175 -0
  176. package/dist/viewer/components/concurrency-panel.js.map +1 -0
  177. package/dist/viewer/components/config-footer.d.ts +11 -0
  178. package/dist/viewer/components/config-footer.js +132 -0
  179. package/dist/viewer/components/config-footer.js.map +1 -0
  180. package/dist/viewer/components/constants.d.ts +10 -0
  181. package/dist/viewer/components/constants.js +11 -0
  182. package/dist/viewer/components/constants.js.map +1 -0
  183. package/dist/viewer/components/copy-link-button.d.ts +30 -0
  184. package/dist/viewer/components/copy-link-button.js +74 -0
  185. package/dist/viewer/components/copy-link-button.js.map +1 -0
  186. package/dist/viewer/components/crash-recovery-banner.d.ts +28 -0
  187. package/dist/viewer/components/crash-recovery-banner.js +47 -0
  188. package/dist/viewer/components/crash-recovery-banner.js.map +1 -0
  189. package/dist/viewer/components/data-display/collapsible-section.d.ts +14 -0
  190. package/dist/viewer/components/data-display/collapsible-section.js +66 -0
  191. package/dist/viewer/components/data-display/collapsible-section.js.map +1 -0
  192. package/dist/viewer/components/data-display/findings-list.d.ts +13 -0
  193. package/dist/viewer/components/data-display/findings-list.js +136 -0
  194. package/dist/viewer/components/data-display/findings-list.js.map +1 -0
  195. package/dist/viewer/components/data-display/health-gauge.d.ts +37 -0
  196. package/dist/viewer/components/data-display/health-gauge.js +62 -0
  197. package/dist/viewer/components/data-display/health-gauge.js.map +1 -0
  198. package/dist/viewer/components/data-display/mini-charts.d.ts +36 -0
  199. package/dist/viewer/components/data-display/mini-charts.js +124 -0
  200. package/dist/viewer/components/data-display/mini-charts.js.map +1 -0
  201. package/dist/viewer/components/data-display/tree-view.d.ts +18 -0
  202. package/dist/viewer/components/data-display/tree-view.js +107 -0
  203. package/dist/viewer/components/data-display/tree-view.js.map +1 -0
  204. package/dist/viewer/components/data-display/zone-map.d.ts +28 -0
  205. package/dist/viewer/components/data-display/zone-map.js +197 -0
  206. package/dist/viewer/components/data-display/zone-map.js.map +1 -0
  207. package/dist/viewer/components/degradation-banner.d.ts +28 -0
  208. package/dist/viewer/components/degradation-banner.js +47 -0
  209. package/dist/viewer/components/degradation-banner.js.map +1 -0
  210. package/dist/viewer/components/detail-panel.d.ts +12 -0
  211. package/dist/viewer/components/detail-panel.js +166 -0
  212. package/dist/viewer/components/detail-panel.js.map +1 -0
  213. package/dist/viewer/components/elapsed-time.d.ts +38 -0
  214. package/dist/viewer/components/elapsed-time.js +35 -0
  215. package/dist/viewer/components/elapsed-time.js.map +1 -0
  216. package/dist/viewer/components/faq.d.ts +12 -0
  217. package/dist/viewer/components/faq.js +237 -0
  218. package/dist/viewer/components/faq.js.map +1 -0
  219. package/dist/viewer/components/favicon.d.ts +30 -0
  220. package/dist/viewer/components/favicon.js +90 -0
  221. package/dist/viewer/components/favicon.js.map +1 -0
  222. package/dist/viewer/components/guide.d.ts +5 -0
  223. package/dist/viewer/components/guide.js +116 -0
  224. package/dist/viewer/components/guide.js.map +1 -0
  225. package/dist/viewer/components/index.d.ts +37 -0
  226. package/dist/viewer/components/index.js +46 -0
  227. package/dist/viewer/components/index.js.map +1 -0
  228. package/dist/viewer/components/logos.d.ts +42 -0
  229. package/dist/viewer/components/logos.js +46 -0
  230. package/dist/viewer/components/logos.js.map +1 -0
  231. package/dist/viewer/components/memory-panel.d.ts +19 -0
  232. package/dist/viewer/components/memory-panel.js +181 -0
  233. package/dist/viewer/components/memory-panel.js.map +1 -0
  234. package/dist/viewer/components/memory-warning.d.ts +23 -0
  235. package/dist/viewer/components/memory-warning.js +42 -0
  236. package/dist/viewer/components/memory-warning.js.map +1 -0
  237. package/dist/viewer/components/notion-schema-wizard.d.ts +16 -0
  238. package/dist/viewer/components/notion-schema-wizard.js +263 -0
  239. package/dist/viewer/components/notion-schema-wizard.js.map +1 -0
  240. package/dist/viewer/components/polling-suspension-indicator.d.ts +24 -0
  241. package/dist/viewer/components/polling-suspension-indicator.js +31 -0
  242. package/dist/viewer/components/polling-suspension-indicator.js.map +1 -0
  243. package/dist/viewer/components/prd-tree/add-item-form.d.ts +31 -0
  244. package/dist/viewer/components/prd-tree/add-item-form.js +231 -0
  245. package/dist/viewer/components/prd-tree/add-item-form.js.map +1 -0
  246. package/dist/viewer/components/prd-tree/analyze-panel.d.ts +13 -0
  247. package/dist/viewer/components/prd-tree/analyze-panel.js +245 -0
  248. package/dist/viewer/components/prd-tree/analyze-panel.js.map +1 -0
  249. package/dist/viewer/components/prd-tree/batch-import-panel.d.ts +34 -0
  250. package/dist/viewer/components/prd-tree/batch-import-panel.js +415 -0
  251. package/dist/viewer/components/prd-tree/batch-import-panel.js.map +1 -0
  252. package/dist/viewer/components/prd-tree/bulk-actions.d.ts +19 -0
  253. package/dist/viewer/components/prd-tree/bulk-actions.js +90 -0
  254. package/dist/viewer/components/prd-tree/bulk-actions.js.map +1 -0
  255. package/dist/viewer/components/prd-tree/compute.d.ts +32 -0
  256. package/dist/viewer/components/prd-tree/compute.js +129 -0
  257. package/dist/viewer/components/prd-tree/compute.js.map +1 -0
  258. package/dist/viewer/components/prd-tree/delete-confirmation.d.ts +23 -0
  259. package/dist/viewer/components/prd-tree/delete-confirmation.js +83 -0
  260. package/dist/viewer/components/prd-tree/delete-confirmation.js.map +1 -0
  261. package/dist/viewer/components/prd-tree/execution-panel.d.ts +14 -0
  262. package/dist/viewer/components/prd-tree/execution-panel.js +291 -0
  263. package/dist/viewer/components/prd-tree/execution-panel.js.map +1 -0
  264. package/dist/viewer/components/prd-tree/facet-filter.d.ts +40 -0
  265. package/dist/viewer/components/prd-tree/facet-filter.js +188 -0
  266. package/dist/viewer/components/prd-tree/facet-filter.js.map +1 -0
  267. package/dist/viewer/components/prd-tree/index.d.ts +24 -0
  268. package/dist/viewer/components/prd-tree/index.js +16 -0
  269. package/dist/viewer/components/prd-tree/index.js.map +1 -0
  270. package/dist/viewer/components/prd-tree/inline-add-form.d.ts +32 -0
  271. package/dist/viewer/components/prd-tree/inline-add-form.js +175 -0
  272. package/dist/viewer/components/prd-tree/inline-add-form.js.map +1 -0
  273. package/dist/viewer/components/prd-tree/inline-status-picker.d.ts +31 -0
  274. package/dist/viewer/components/prd-tree/inline-status-picker.js +110 -0
  275. package/dist/viewer/components/prd-tree/inline-status-picker.js.map +1 -0
  276. package/dist/viewer/components/prd-tree/lazy-children.d.ts +40 -0
  277. package/dist/viewer/components/prd-tree/lazy-children.js +73 -0
  278. package/dist/viewer/components/prd-tree/lazy-children.js.map +1 -0
  279. package/dist/viewer/components/prd-tree/levels.d.ts +31 -0
  280. package/dist/viewer/components/prd-tree/levels.js +72 -0
  281. package/dist/viewer/components/prd-tree/levels.js.map +1 -0
  282. package/dist/viewer/components/prd-tree/listener-lifecycle.d.ts +105 -0
  283. package/dist/viewer/components/prd-tree/listener-lifecycle.js +173 -0
  284. package/dist/viewer/components/prd-tree/listener-lifecycle.js.map +1 -0
  285. package/dist/viewer/components/prd-tree/merge-preview.d.ts +25 -0
  286. package/dist/viewer/components/prd-tree/merge-preview.js +181 -0
  287. package/dist/viewer/components/prd-tree/merge-preview.js.map +1 -0
  288. package/dist/viewer/components/prd-tree/prd-tree.d.ts +91 -0
  289. package/dist/viewer/components/prd-tree/prd-tree.js +565 -0
  290. package/dist/viewer/components/prd-tree/prd-tree.js.map +1 -0
  291. package/dist/viewer/components/prd-tree/proposal-editor.d.ts +44 -0
  292. package/dist/viewer/components/prd-tree/proposal-editor.js +438 -0
  293. package/dist/viewer/components/prd-tree/proposal-editor.js.map +1 -0
  294. package/dist/viewer/components/prd-tree/prune-confirmation.d.ts +25 -0
  295. package/dist/viewer/components/prd-tree/prune-confirmation.js +336 -0
  296. package/dist/viewer/components/prd-tree/prune-confirmation.js.map +1 -0
  297. package/dist/viewer/components/prd-tree/prune-diff-tree.d.ts +39 -0
  298. package/dist/viewer/components/prd-tree/prune-diff-tree.js +319 -0
  299. package/dist/viewer/components/prd-tree/prune-diff-tree.js.map +1 -0
  300. package/dist/viewer/components/prd-tree/reorganize-panel.d.ts +16 -0
  301. package/dist/viewer/components/prd-tree/reorganize-panel.js +213 -0
  302. package/dist/viewer/components/prd-tree/reorganize-panel.js.map +1 -0
  303. package/dist/viewer/components/prd-tree/smart-add-input.d.ts +19 -0
  304. package/dist/viewer/components/prd-tree/smart-add-input.js +383 -0
  305. package/dist/viewer/components/prd-tree/smart-add-input.js.map +1 -0
  306. package/dist/viewer/components/prd-tree/status-filter.d.ts +40 -0
  307. package/dist/viewer/components/prd-tree/status-filter.js +131 -0
  308. package/dist/viewer/components/prd-tree/status-filter.js.map +1 -0
  309. package/dist/viewer/components/prd-tree/task-detail.d.ts +41 -0
  310. package/dist/viewer/components/prd-tree/task-detail.js +1205 -0
  311. package/dist/viewer/components/prd-tree/task-detail.js.map +1 -0
  312. package/dist/viewer/components/prd-tree/task-utilization.d.ts +7 -0
  313. package/dist/viewer/components/prd-tree/task-utilization.js +25 -0
  314. package/dist/viewer/components/prd-tree/task-utilization.js.map +1 -0
  315. package/dist/viewer/components/prd-tree/tree-differ.d.ts +59 -0
  316. package/dist/viewer/components/prd-tree/tree-differ.js +200 -0
  317. package/dist/viewer/components/prd-tree/tree-differ.js.map +1 -0
  318. package/dist/viewer/components/prd-tree/tree-event-delegate.d.ts +70 -0
  319. package/dist/viewer/components/prd-tree/tree-event-delegate.js +176 -0
  320. package/dist/viewer/components/prd-tree/tree-event-delegate.js.map +1 -0
  321. package/dist/viewer/components/prd-tree/tree-search.d.ts +65 -0
  322. package/dist/viewer/components/prd-tree/tree-search.js +178 -0
  323. package/dist/viewer/components/prd-tree/tree-search.js.map +1 -0
  324. package/dist/viewer/components/prd-tree/tree-utils.d.ts +38 -0
  325. package/dist/viewer/components/prd-tree/tree-utils.js +107 -0
  326. package/dist/viewer/components/prd-tree/tree-utils.js.map +1 -0
  327. package/dist/viewer/components/prd-tree/types.d.ts +93 -0
  328. package/dist/viewer/components/prd-tree/types.js +16 -0
  329. package/dist/viewer/components/prd-tree/types.js.map +1 -0
  330. package/dist/viewer/components/prd-tree/virtual-scroll.d.ts +119 -0
  331. package/dist/viewer/components/prd-tree/virtual-scroll.js +169 -0
  332. package/dist/viewer/components/prd-tree/virtual-scroll.js.map +1 -0
  333. package/dist/viewer/components/progressive-loader.d.ts +114 -0
  334. package/dist/viewer/components/progressive-loader.js +225 -0
  335. package/dist/viewer/components/progressive-loader.js.map +1 -0
  336. package/dist/viewer/components/refresh-queue-status.d.ts +20 -0
  337. package/dist/viewer/components/refresh-queue-status.js +65 -0
  338. package/dist/viewer/components/refresh-queue-status.js.map +1 -0
  339. package/dist/viewer/components/rex-task-link.d.ts +50 -0
  340. package/dist/viewer/components/rex-task-link.js +218 -0
  341. package/dist/viewer/components/rex-task-link.js.map +1 -0
  342. package/dist/viewer/components/search-filter.d.ts +20 -0
  343. package/dist/viewer/components/search-filter.js +28 -0
  344. package/dist/viewer/components/search-filter.js.map +1 -0
  345. package/dist/viewer/components/search-overlay.d.ts +31 -0
  346. package/dist/viewer/components/search-overlay.js +472 -0
  347. package/dist/viewer/components/search-overlay.js.map +1 -0
  348. package/dist/viewer/components/sidebar.d.ts +18 -0
  349. package/dist/viewer/components/sidebar.js +357 -0
  350. package/dist/viewer/components/sidebar.js.map +1 -0
  351. package/dist/viewer/components/status-indicators.d.ts +63 -0
  352. package/dist/viewer/components/status-indicators.js +136 -0
  353. package/dist/viewer/components/status-indicators.js.map +1 -0
  354. package/dist/viewer/components/theme-toggle.d.ts +8 -0
  355. package/dist/viewer/components/theme-toggle.js +28 -0
  356. package/dist/viewer/components/theme-toggle.js.map +1 -0
  357. package/dist/viewer/components/throttle-controls.d.ts +18 -0
  358. package/dist/viewer/components/throttle-controls.js +304 -0
  359. package/dist/viewer/components/throttle-controls.js.map +1 -0
  360. package/dist/viewer/components/ws-health-panel.d.ts +18 -0
  361. package/dist/viewer/components/ws-health-panel.js +250 -0
  362. package/dist/viewer/components/ws-health-panel.js.map +1 -0
  363. package/dist/viewer/components/zone-slideout.d.ts +17 -0
  364. package/dist/viewer/components/zone-slideout.js +162 -0
  365. package/dist/viewer/components/zone-slideout.js.map +1 -0
  366. package/dist/viewer/crash/crash-detector.d.ts +69 -0
  367. package/dist/viewer/crash/crash-detector.js +239 -0
  368. package/dist/viewer/crash/crash-detector.js.map +1 -0
  369. package/dist/viewer/crash/index.d.ts +7 -0
  370. package/dist/viewer/crash/index.js +8 -0
  371. package/dist/viewer/crash/index.js.map +1 -0
  372. package/dist/viewer/deployed-mode.d.ts +37 -0
  373. package/dist/viewer/deployed-mode.js +94 -0
  374. package/dist/viewer/deployed-mode.js.map +1 -0
  375. package/dist/viewer/external.d.ts +17 -0
  376. package/dist/viewer/external.js +17 -0
  377. package/dist/viewer/external.js.map +1 -0
  378. package/dist/viewer/graph/index.d.ts +9 -0
  379. package/dist/viewer/graph/index.js +12 -0
  380. package/dist/viewer/graph/index.js.map +1 -0
  381. package/dist/viewer/graph/physics.d.ts +96 -0
  382. package/dist/viewer/graph/physics.js +366 -0
  383. package/dist/viewer/graph/physics.js.map +1 -0
  384. package/dist/viewer/graph/renderer.d.ts +184 -0
  385. package/dist/viewer/graph/renderer.js +1438 -0
  386. package/dist/viewer/graph/renderer.js.map +1 -0
  387. package/dist/viewer/hooks/index.d.ts +27 -0
  388. package/dist/viewer/hooks/index.js +28 -0
  389. package/dist/viewer/hooks/index.js.map +1 -0
  390. package/dist/viewer/hooks/use-app-data.d.ts +31 -0
  391. package/dist/viewer/hooks/use-app-data.js +152 -0
  392. package/dist/viewer/hooks/use-app-data.js.map +1 -0
  393. package/dist/viewer/hooks/use-crash-recovery.d.ts +50 -0
  394. package/dist/viewer/hooks/use-crash-recovery.js +76 -0
  395. package/dist/viewer/hooks/use-crash-recovery.js.map +1 -0
  396. package/dist/viewer/hooks/use-delete-actions.d.ts +48 -0
  397. package/dist/viewer/hooks/use-delete-actions.js +103 -0
  398. package/dist/viewer/hooks/use-delete-actions.js.map +1 -0
  399. package/dist/viewer/hooks/use-dom-performance-monitor.d.ts +68 -0
  400. package/dist/viewer/hooks/use-dom-performance-monitor.js +71 -0
  401. package/dist/viewer/hooks/use-dom-performance-monitor.js.map +1 -0
  402. package/dist/viewer/hooks/use-facet-state.d.ts +32 -0
  403. package/dist/viewer/hooks/use-facet-state.js +119 -0
  404. package/dist/viewer/hooks/use-facet-state.js.map +1 -0
  405. package/dist/viewer/hooks/use-feature-toggle.d.ts +18 -0
  406. package/dist/viewer/hooks/use-feature-toggle.js +57 -0
  407. package/dist/viewer/hooks/use-feature-toggle.js.map +1 -0
  408. package/dist/viewer/hooks/use-file-edges.d.ts +23 -0
  409. package/dist/viewer/hooks/use-file-edges.js +221 -0
  410. package/dist/viewer/hooks/use-file-edges.js.map +1 -0
  411. package/dist/viewer/hooks/use-graceful-degradation.d.ts +30 -0
  412. package/dist/viewer/hooks/use-graceful-degradation.js +45 -0
  413. package/dist/viewer/hooks/use-graceful-degradation.js.map +1 -0
  414. package/dist/viewer/hooks/use-item-selection.d.ts +49 -0
  415. package/dist/viewer/hooks/use-item-selection.js +117 -0
  416. package/dist/viewer/hooks/use-item-selection.js.map +1 -0
  417. package/dist/viewer/hooks/use-memory-monitor.d.ts +39 -0
  418. package/dist/viewer/hooks/use-memory-monitor.js +73 -0
  419. package/dist/viewer/hooks/use-memory-monitor.js.map +1 -0
  420. package/dist/viewer/hooks/use-pan-zoom.d.ts +33 -0
  421. package/dist/viewer/hooks/use-pan-zoom.js +110 -0
  422. package/dist/viewer/hooks/use-pan-zoom.js.map +1 -0
  423. package/dist/viewer/hooks/use-persistent-filter.d.ts +24 -0
  424. package/dist/viewer/hooks/use-persistent-filter.js +37 -0
  425. package/dist/viewer/hooks/use-persistent-filter.js.map +1 -0
  426. package/dist/viewer/hooks/use-polling-suspension.d.ts +32 -0
  427. package/dist/viewer/hooks/use-polling-suspension.js +41 -0
  428. package/dist/viewer/hooks/use-polling-suspension.js.map +1 -0
  429. package/dist/viewer/hooks/use-polling.d.ts +39 -0
  430. package/dist/viewer/hooks/use-polling.js +55 -0
  431. package/dist/viewer/hooks/use-polling.js.map +1 -0
  432. package/dist/viewer/hooks/use-prd-actions.d.ts +126 -0
  433. package/dist/viewer/hooks/use-prd-actions.js +250 -0
  434. package/dist/viewer/hooks/use-prd-actions.js.map +1 -0
  435. package/dist/viewer/hooks/use-prd-data.d.ts +45 -0
  436. package/dist/viewer/hooks/use-prd-data.js +159 -0
  437. package/dist/viewer/hooks/use-prd-data.js.map +1 -0
  438. package/dist/viewer/hooks/use-prd-deep-link.d.ts +45 -0
  439. package/dist/viewer/hooks/use-prd-deep-link.js +60 -0
  440. package/dist/viewer/hooks/use-prd-deep-link.js.map +1 -0
  441. package/dist/viewer/hooks/use-prd-websocket.d.ts +47 -0
  442. package/dist/viewer/hooks/use-prd-websocket.js +139 -0
  443. package/dist/viewer/hooks/use-prd-websocket.js.map +1 -0
  444. package/dist/viewer/hooks/use-project-metadata.d.ts +25 -0
  445. package/dist/viewer/hooks/use-project-metadata.js +55 -0
  446. package/dist/viewer/hooks/use-project-metadata.js.map +1 -0
  447. package/dist/viewer/hooks/use-project-status.d.ts +60 -0
  448. package/dist/viewer/hooks/use-project-status.js +133 -0
  449. package/dist/viewer/hooks/use-project-status.js.map +1 -0
  450. package/dist/viewer/hooks/use-refresh-throttle.d.ts +45 -0
  451. package/dist/viewer/hooks/use-refresh-throttle.js +52 -0
  452. package/dist/viewer/hooks/use-refresh-throttle.js.map +1 -0
  453. package/dist/viewer/hooks/use-route-state.d.ts +18 -0
  454. package/dist/viewer/hooks/use-route-state.js +115 -0
  455. package/dist/viewer/hooks/use-route-state.js.map +1 -0
  456. package/dist/viewer/hooks/use-subzone-edges.d.ts +21 -0
  457. package/dist/viewer/hooks/use-subzone-edges.js +147 -0
  458. package/dist/viewer/hooks/use-subzone-edges.js.map +1 -0
  459. package/dist/viewer/hooks/use-tab-visibility.d.ts +31 -0
  460. package/dist/viewer/hooks/use-tab-visibility.js +43 -0
  461. package/dist/viewer/hooks/use-tab-visibility.js.map +1 -0
  462. package/dist/viewer/hooks/use-tick.d.ts +43 -0
  463. package/dist/viewer/hooks/use-tick.js +76 -0
  464. package/dist/viewer/hooks/use-tick.js.map +1 -0
  465. package/dist/viewer/hooks/use-toast.d.ts +24 -0
  466. package/dist/viewer/hooks/use-toast.js +26 -0
  467. package/dist/viewer/hooks/use-toast.js.map +1 -0
  468. package/dist/viewer/hooks/use-zone-drag.d.ts +30 -0
  469. package/dist/viewer/hooks/use-zone-drag.js +60 -0
  470. package/dist/viewer/hooks/use-zone-drag.js.map +1 -0
  471. package/dist/viewer/index.html +36 -0
  472. package/dist/viewer/loader.d.ts +33 -0
  473. package/dist/viewer/loader.js +195 -0
  474. package/dist/viewer/loader.js.map +1 -0
  475. package/dist/viewer/main.d.ts +1 -0
  476. package/dist/viewer/main.js +121 -0
  477. package/dist/viewer/main.js.map +1 -0
  478. package/dist/viewer/messaging/call-rate-limiter.d.ts +50 -0
  479. package/dist/viewer/messaging/call-rate-limiter.js +103 -0
  480. package/dist/viewer/messaging/call-rate-limiter.js.map +1 -0
  481. package/dist/viewer/messaging/fetch-pipeline.d.ts +58 -0
  482. package/dist/viewer/messaging/fetch-pipeline.js +58 -0
  483. package/dist/viewer/messaging/fetch-pipeline.js.map +1 -0
  484. package/dist/viewer/messaging/index.d.ts +43 -0
  485. package/dist/viewer/messaging/index.js +46 -0
  486. package/dist/viewer/messaging/index.js.map +1 -0
  487. package/dist/viewer/messaging/message-coalescer.d.ts +96 -0
  488. package/dist/viewer/messaging/message-coalescer.js +121 -0
  489. package/dist/viewer/messaging/message-coalescer.js.map +1 -0
  490. package/dist/viewer/messaging/message-throttle.d.ts +95 -0
  491. package/dist/viewer/messaging/message-throttle.js +147 -0
  492. package/dist/viewer/messaging/message-throttle.js.map +1 -0
  493. package/dist/viewer/messaging/request-dedup.d.ts +43 -0
  494. package/dist/viewer/messaging/request-dedup.js +55 -0
  495. package/dist/viewer/messaging/request-dedup.js.map +1 -0
  496. package/dist/viewer/messaging/ws-pipeline.d.ts +85 -0
  497. package/dist/viewer/messaging/ws-pipeline.js +68 -0
  498. package/dist/viewer/messaging/ws-pipeline.js.map +1 -0
  499. package/dist/viewer/n-dx.png +0 -0
  500. package/dist/viewer/performance/dom-performance-monitor.d.ts +157 -0
  501. package/dist/viewer/performance/dom-performance-monitor.js +341 -0
  502. package/dist/viewer/performance/dom-performance-monitor.js.map +1 -0
  503. package/dist/viewer/performance/dom-update-gate.d.ts +122 -0
  504. package/dist/viewer/performance/dom-update-gate.js +229 -0
  505. package/dist/viewer/performance/dom-update-gate.js.map +1 -0
  506. package/dist/viewer/performance/graceful-degradation.d.ts +73 -0
  507. package/dist/viewer/performance/graceful-degradation.js +152 -0
  508. package/dist/viewer/performance/graceful-degradation.js.map +1 -0
  509. package/dist/viewer/performance/index.d.ts +14 -0
  510. package/dist/viewer/performance/index.js +20 -0
  511. package/dist/viewer/performance/index.js.map +1 -0
  512. package/dist/viewer/performance/memory-monitor.d.ts +78 -0
  513. package/dist/viewer/performance/memory-monitor.js +218 -0
  514. package/dist/viewer/performance/memory-monitor.js.map +1 -0
  515. package/dist/viewer/performance/refresh-throttle.d.ts +90 -0
  516. package/dist/viewer/performance/refresh-throttle.js +266 -0
  517. package/dist/viewer/performance/refresh-throttle.js.map +1 -0
  518. package/dist/viewer/performance/response-buffer-gate.d.ts +108 -0
  519. package/dist/viewer/performance/response-buffer-gate.js +170 -0
  520. package/dist/viewer/performance/response-buffer-gate.js.map +1 -0
  521. package/dist/viewer/performance/update-batcher.d.ts +79 -0
  522. package/dist/viewer/performance/update-batcher.js +119 -0
  523. package/dist/viewer/performance/update-batcher.js.map +1 -0
  524. package/dist/viewer/polling/batched-tick-dispatcher.d.ts +83 -0
  525. package/dist/viewer/polling/batched-tick-dispatcher.js +183 -0
  526. package/dist/viewer/polling/batched-tick-dispatcher.js.map +1 -0
  527. package/dist/viewer/polling/index.d.ts +13 -0
  528. package/dist/viewer/polling/index.js +16 -0
  529. package/dist/viewer/polling/index.js.map +1 -0
  530. package/dist/viewer/polling/polling-manager.d.ts +82 -0
  531. package/dist/viewer/polling/polling-manager.js +254 -0
  532. package/dist/viewer/polling/polling-manager.js.map +1 -0
  533. package/dist/viewer/polling/polling-restart.d.ts +45 -0
  534. package/dist/viewer/polling/polling-restart.js +98 -0
  535. package/dist/viewer/polling/polling-restart.js.map +1 -0
  536. package/dist/viewer/polling/polling-state.d.ts +182 -0
  537. package/dist/viewer/polling/polling-state.js +306 -0
  538. package/dist/viewer/polling/polling-state.js.map +1 -0
  539. package/dist/viewer/polling/tab-visibility.d.ts +112 -0
  540. package/dist/viewer/polling/tab-visibility.js +276 -0
  541. package/dist/viewer/polling/tab-visibility.js.map +1 -0
  542. package/dist/viewer/polling/tick-timer.d.ts +70 -0
  543. package/dist/viewer/polling/tick-timer.js +168 -0
  544. package/dist/viewer/polling/tick-timer.js.map +1 -0
  545. package/dist/viewer/polling/tick-visibility-gate.d.ts +92 -0
  546. package/dist/viewer/polling/tick-visibility-gate.js +146 -0
  547. package/dist/viewer/polling/tick-visibility-gate.js.map +1 -0
  548. package/dist/viewer/route-state.d.ts +8 -0
  549. package/dist/viewer/route-state.js +77 -0
  550. package/dist/viewer/route-state.js.map +1 -0
  551. package/dist/viewer/schema-compat.d.ts +17 -0
  552. package/dist/viewer/schema-compat.js +49 -0
  553. package/dist/viewer/schema-compat.js.map +1 -0
  554. package/dist/viewer/types.d.ts +66 -0
  555. package/dist/viewer/types.js +2 -0
  556. package/dist/viewer/types.js.map +1 -0
  557. package/dist/viewer/usage/constants.d.ts +14 -0
  558. package/dist/viewer/usage/constants.js +14 -0
  559. package/dist/viewer/usage/constants.js.map +1 -0
  560. package/dist/viewer/usage/index.d.ts +7 -0
  561. package/dist/viewer/usage/index.js +8 -0
  562. package/dist/viewer/usage/index.js.map +1 -0
  563. package/dist/viewer/utils.d.ts +25 -0
  564. package/dist/viewer/utils.js +48 -0
  565. package/dist/viewer/utils.js.map +1 -0
  566. package/dist/viewer/validate.d.ts +23 -0
  567. package/dist/viewer/validate.js +275 -0
  568. package/dist/viewer/validate.js.map +1 -0
  569. package/dist/viewer/views/analysis.d.ts +10 -0
  570. package/dist/viewer/views/analysis.js +109 -0
  571. package/dist/viewer/views/analysis.js.map +1 -0
  572. package/dist/viewer/views/architecture.d.ts +10 -0
  573. package/dist/viewer/views/architecture.js +44 -0
  574. package/dist/viewer/views/architecture.js.map +1 -0
  575. package/dist/viewer/views/domain-hench.d.ts +13 -0
  576. package/dist/viewer/views/domain-hench.js +14 -0
  577. package/dist/viewer/views/domain-hench.js.map +1 -0
  578. package/dist/viewer/views/domain-rex.d.ts +17 -0
  579. package/dist/viewer/views/domain-rex.js +18 -0
  580. package/dist/viewer/views/domain-rex.js.map +1 -0
  581. package/dist/viewer/views/domain-settings.d.ts +12 -0
  582. package/dist/viewer/views/domain-settings.js +13 -0
  583. package/dist/viewer/views/domain-settings.js.map +1 -0
  584. package/dist/viewer/views/domain-sourcevision.d.ts +20 -0
  585. package/dist/viewer/views/domain-sourcevision.js +21 -0
  586. package/dist/viewer/views/domain-sourcevision.js.map +1 -0
  587. package/dist/viewer/views/enrichment-thresholds.d.ts +11 -0
  588. package/dist/viewer/views/enrichment-thresholds.js +12 -0
  589. package/dist/viewer/views/enrichment-thresholds.js.map +1 -0
  590. package/dist/viewer/views/feature-toggles.d.ts +13 -0
  591. package/dist/viewer/views/feature-toggles.js +185 -0
  592. package/dist/viewer/views/feature-toggles.js.map +1 -0
  593. package/dist/viewer/views/files.d.ts +13 -0
  594. package/dist/viewer/views/files.js +174 -0
  595. package/dist/viewer/views/files.js.map +1 -0
  596. package/dist/viewer/views/graph.d.ts +12 -0
  597. package/dist/viewer/views/graph.js +316 -0
  598. package/dist/viewer/views/graph.js.map +1 -0
  599. package/dist/viewer/views/hench-config.d.ts +39 -0
  600. package/dist/viewer/views/hench-config.js +473 -0
  601. package/dist/viewer/views/hench-config.js.map +1 -0
  602. package/dist/viewer/views/hench-runs.d.ts +19 -0
  603. package/dist/viewer/views/hench-runs.js +460 -0
  604. package/dist/viewer/views/hench-runs.js.map +1 -0
  605. package/dist/viewer/views/hench-templates.d.ts +17 -0
  606. package/dist/viewer/views/hench-templates.js +262 -0
  607. package/dist/viewer/views/hench-templates.js.map +1 -0
  608. package/dist/viewer/views/integration-config.d.ts +73 -0
  609. package/dist/viewer/views/integration-config.js +524 -0
  610. package/dist/viewer/views/integration-config.js.map +1 -0
  611. package/dist/viewer/views/notion-config.d.ts +16 -0
  612. package/dist/viewer/views/notion-config.js +357 -0
  613. package/dist/viewer/views/notion-config.js.map +1 -0
  614. package/dist/viewer/views/overview.d.ts +10 -0
  615. package/dist/viewer/views/overview.js +187 -0
  616. package/dist/viewer/views/overview.js.map +1 -0
  617. package/dist/viewer/views/pr-markdown.d.ts +3 -0
  618. package/dist/viewer/views/pr-markdown.js +350 -0
  619. package/dist/viewer/views/pr-markdown.js.map +1 -0
  620. package/dist/viewer/views/prd.d.ts +34 -0
  621. package/dist/viewer/views/prd.js +257 -0
  622. package/dist/viewer/views/prd.js.map +1 -0
  623. package/dist/viewer/views/problems.d.ts +8 -0
  624. package/dist/viewer/views/problems.js +50 -0
  625. package/dist/viewer/views/problems.js.map +1 -0
  626. package/dist/viewer/views/rex-dashboard.d.ts +14 -0
  627. package/dist/viewer/views/rex-dashboard.js +334 -0
  628. package/dist/viewer/views/rex-dashboard.js.map +1 -0
  629. package/dist/viewer/views/routes.d.ts +8 -0
  630. package/dist/viewer/views/routes.js +216 -0
  631. package/dist/viewer/views/routes.js.map +1 -0
  632. package/dist/viewer/views/sourcevision-tabs.d.ts +18 -0
  633. package/dist/viewer/views/sourcevision-tabs.js +14 -0
  634. package/dist/viewer/views/sourcevision-tabs.js.map +1 -0
  635. package/dist/viewer/views/suggestions.d.ts +8 -0
  636. package/dist/viewer/views/suggestions.js +36 -0
  637. package/dist/viewer/views/suggestions.js.map +1 -0
  638. package/dist/viewer/views/task-audit.d.ts +18 -0
  639. package/dist/viewer/views/task-audit.js +413 -0
  640. package/dist/viewer/views/task-audit.js.map +1 -0
  641. package/dist/viewer/views/token-usage.d.ts +10 -0
  642. package/dist/viewer/views/token-usage.js +410 -0
  643. package/dist/viewer/views/token-usage.js.map +1 -0
  644. package/dist/viewer/views/validation.d.ts +11 -0
  645. package/dist/viewer/views/validation.js +475 -0
  646. package/dist/viewer/views/validation.js.map +1 -0
  647. package/dist/viewer/views/view-registry.d.ts +27 -0
  648. package/dist/viewer/views/view-registry.js +70 -0
  649. package/dist/viewer/views/view-registry.js.map +1 -0
  650. package/dist/viewer/views/workflow-optimization.d.ts +12 -0
  651. package/dist/viewer/views/workflow-optimization.js +311 -0
  652. package/dist/viewer/views/workflow-optimization.js.map +1 -0
  653. package/dist/viewer/views/zone-types.d.ts +69 -0
  654. package/dist/viewer/views/zone-types.js +5 -0
  655. package/dist/viewer/views/zone-types.js.map +1 -0
  656. package/dist/viewer/views/zones.d.ts +50 -0
  657. package/dist/viewer/views/zones.js +1438 -0
  658. package/dist/viewer/views/zones.js.map +1 -0
  659. package/dist/viewer/visualization/colors.d.ts +16 -0
  660. package/dist/viewer/visualization/colors.js +31 -0
  661. package/dist/viewer/visualization/colors.js.map +1 -0
  662. package/dist/viewer/visualization/flow.d.ts +54 -0
  663. package/dist/viewer/visualization/flow.js +123 -0
  664. package/dist/viewer/visualization/flow.js.map +1 -0
  665. package/dist/viewer/visualization/index.d.ts +34 -0
  666. package/dist/viewer/visualization/index.js +40 -0
  667. package/dist/viewer/visualization/index.js.map +1 -0
  668. package/dist/viewer/visualization/metrics.d.ts +8 -0
  669. package/dist/viewer/visualization/metrics.js +16 -0
  670. package/dist/viewer/visualization/metrics.js.map +1 -0
  671. package/package.json +54 -0
@@ -0,0 +1,317 @@
1
+ /** Sourcevision Schema v1 — all types for the .sourcevision/ output format */
2
+ export declare const SCHEMA_VERSION = "1.0.0";
3
+ export type ModuleStatus = "pending" | "running" | "complete" | "error";
4
+ export interface ModuleInfo {
5
+ status: ModuleStatus;
6
+ startedAt?: string;
7
+ completedAt?: string;
8
+ error?: string;
9
+ /** Number of chunks processed (for large codebases) */
10
+ chunks?: number;
11
+ }
12
+ export interface Manifest {
13
+ schemaVersion: string;
14
+ toolVersion: string;
15
+ analyzedAt: string;
16
+ gitSha?: string;
17
+ gitBranch?: string;
18
+ targetPath: string;
19
+ modules: Record<string, ModuleInfo>;
20
+ /** Aggregate token usage from the most recent analyze run. */
21
+ tokenUsage?: AnalyzeTokenUsage;
22
+ /** Whether per-zone output files were emitted to zones/ directory. */
23
+ zoneOutputs?: boolean;
24
+ /** Incorporated sub-analyses (nested .sourcevision/ directories). */
25
+ children?: SubAnalysisRef[];
26
+ }
27
+ /** Reference to an incorporated sub-analysis. */
28
+ export interface SubAnalysisRef {
29
+ /** Unique identifier for this sub-analysis (derived from directory path). */
30
+ id: string;
31
+ /** Path prefix for all files in this sub-analysis (relative to root). */
32
+ prefix: string;
33
+ /** Path to the sub-analysis manifest.json (relative to root). */
34
+ manifestPath: string;
35
+ }
36
+ /** Per-zone summary metadata written to zones/{id}/summary.json */
37
+ export interface ZoneSummary {
38
+ id: string;
39
+ name: string;
40
+ description: string;
41
+ files: string[];
42
+ entryPoints: string[];
43
+ cohesion: number;
44
+ coupling: number;
45
+ fileCount: number;
46
+ lineCount: number;
47
+ }
48
+ export type FileRole = "source" | "test" | "config" | "docs" | "generated" | "asset" | "build" | "other";
49
+ export interface FileEntry {
50
+ path: string;
51
+ size: number;
52
+ language: string;
53
+ lineCount: number;
54
+ hash: string;
55
+ role: FileRole;
56
+ /** Free-form semantic label: "authentication", "routing", etc. */
57
+ category: string;
58
+ /** File mtime in epoch ms — used for incremental analysis caching */
59
+ lastModified?: number;
60
+ }
61
+ export interface InventorySummary {
62
+ totalFiles: number;
63
+ totalLines: number;
64
+ byLanguage: Record<string, number>;
65
+ byRole: Partial<Record<FileRole, number>>;
66
+ byCategory: Record<string, number>;
67
+ }
68
+ export interface Inventory {
69
+ files: FileEntry[];
70
+ summary: InventorySummary;
71
+ }
72
+ export type ImportType = "static" | "dynamic" | "require" | "reexport" | "type";
73
+ export interface ImportEdge {
74
+ from: string;
75
+ to: string;
76
+ type: ImportType;
77
+ symbols: string[];
78
+ }
79
+ export interface ExternalImport {
80
+ package: string;
81
+ importedBy: string[];
82
+ symbols: string[];
83
+ }
84
+ export interface CircularDependency {
85
+ cycle: string[];
86
+ }
87
+ export interface ImportsSummary {
88
+ totalEdges: number;
89
+ totalExternal: number;
90
+ circularCount: number;
91
+ circulars: CircularDependency[];
92
+ mostImported: Array<{
93
+ path: string;
94
+ count: number;
95
+ }>;
96
+ avgImportsPerFile: number;
97
+ }
98
+ export interface Imports {
99
+ edges: ImportEdge[];
100
+ external: ExternalImport[];
101
+ summary: ImportsSummary;
102
+ }
103
+ export type FindingType = "observation" | "pattern" | "relationship" | "anti-pattern" | "suggestion" | "move-file";
104
+ export interface Finding {
105
+ type: FindingType;
106
+ /** Which pass produced this finding */
107
+ pass: number;
108
+ /** "global" or a zone ID */
109
+ scope: string;
110
+ text: string;
111
+ severity?: "info" | "warning" | "critical";
112
+ /** Related zone IDs or file paths */
113
+ related?: string[];
114
+ }
115
+ export interface Zone {
116
+ id: string;
117
+ name: string;
118
+ description: string;
119
+ files: string[];
120
+ entryPoints: string[];
121
+ /** 0–1 score: how tightly related the files within this zone are */
122
+ cohesion: number;
123
+ /** 0–1 score: how much this zone depends on other zones */
124
+ coupling: number;
125
+ /** Actionable insights about this zone (structural + AI-generated) */
126
+ insights?: string[];
127
+ /** Hash of this zone's file list for incremental enrichment */
128
+ structureHash?: string;
129
+ /** Token usage from per-zone enrichment */
130
+ tokenUsage?: ZoneTokenUsage;
131
+ /** ID of the sub-analysis this zone came from (if promoted from a child). */
132
+ childId?: string;
133
+ /** Nesting depth: 0 = root analysis, 1+ = from sub-analysis. */
134
+ depth?: number;
135
+ /** Sub-zones from recursive subdivision of large zones. */
136
+ subZones?: Zone[];
137
+ /** Cross-zone import edges within this zone's sub-zones. */
138
+ subCrossings?: ZoneCrossing[];
139
+ }
140
+ /** Token usage tracked per zone during per-zone enrichment */
141
+ export interface ZoneTokenUsage {
142
+ calls: number;
143
+ input: number;
144
+ output: number;
145
+ }
146
+ export interface ZoneCrossing {
147
+ from: string;
148
+ to: string;
149
+ /** Zone ID of the source file */
150
+ fromZone: string;
151
+ /** Zone ID of the target file */
152
+ toZone: string;
153
+ }
154
+ export interface Zones {
155
+ zones: Zone[];
156
+ crossings: ZoneCrossing[];
157
+ unzoned: string[];
158
+ /** Cross-zone architectural insights (structural + AI-generated) */
159
+ insights?: string[];
160
+ /** Structured findings from analysis passes */
161
+ findings?: Finding[];
162
+ /** Number of AI enrichment passes completed */
163
+ enrichmentPass?: number;
164
+ /** Number of meta-evaluation passes completed (pass 5+) */
165
+ metaEvaluationCount?: number;
166
+ /** Hash of structural zone groupings for change detection */
167
+ structureHash?: string;
168
+ /** Per-zone content hashes for detecting code changes within stable zones */
169
+ zoneContentHashes?: Record<string, string>;
170
+ /** Records the last pass reset: { from: previousPass, to: currentPass } */
171
+ lastReset?: {
172
+ from: number;
173
+ to: number;
174
+ };
175
+ }
176
+ /** Token usage from a single Claude API call. */
177
+ export interface TokenUsage {
178
+ input: number;
179
+ output: number;
180
+ cacheCreationInput?: number;
181
+ cacheReadInput?: number;
182
+ }
183
+ /** Aggregated token usage across one or more LLM calls. */
184
+ export interface AnalyzeTokenUsage {
185
+ /** Number of LLM calls made. */
186
+ calls: number;
187
+ /** Total input tokens across all calls. */
188
+ inputTokens: number;
189
+ /** Total output tokens across all calls. */
190
+ outputTokens: number;
191
+ /** LLM vendor used for this run ("claude" | "codex" | "unknown"). */
192
+ vendor?: string;
193
+ /** Resolved model used for this run (including fallback defaults). */
194
+ model?: string;
195
+ /** Total cache creation input tokens (if any). */
196
+ cacheCreationInputTokens?: number;
197
+ /** Total cache read input tokens (if any). */
198
+ cacheReadInputTokens?: number;
199
+ }
200
+ export type ComponentKind = "function" | "arrow" | "class" | "forwardRef";
201
+ export interface ComponentDefinition {
202
+ file: string;
203
+ name: string;
204
+ kind: ComponentKind;
205
+ line: number;
206
+ isDefaultExport: boolean;
207
+ conventionExports: string[];
208
+ }
209
+ export interface ComponentUsageEdge {
210
+ from: string;
211
+ to: string;
212
+ componentName: string;
213
+ usageCount: number;
214
+ }
215
+ export type RouteExportKind = "loader" | "action" | "default" | "meta" | "links" | "headers" | "ErrorBoundary" | "shouldRevalidate" | "handle" | "HydrateFallback";
216
+ export interface RouteModule {
217
+ file: string;
218
+ routePattern: string | null;
219
+ exports: RouteExportKind[];
220
+ parentLayout: string | null;
221
+ isLayout: boolean;
222
+ isIndex: boolean;
223
+ }
224
+ export interface RouteTreeNode {
225
+ file: string;
226
+ routePattern: string;
227
+ children: RouteTreeNode[];
228
+ }
229
+ export interface ComponentsSummary {
230
+ totalComponents: number;
231
+ totalRouteModules: number;
232
+ totalUsageEdges: number;
233
+ routeConventions: Partial<Record<RouteExportKind, number>>;
234
+ mostUsedComponents: Array<{
235
+ name: string;
236
+ file: string;
237
+ usageCount: number;
238
+ }>;
239
+ layoutDepth: number;
240
+ }
241
+ export interface Components {
242
+ components: ComponentDefinition[];
243
+ usageEdges: ComponentUsageEdge[];
244
+ routeModules: RouteModule[];
245
+ routeTree: RouteTreeNode[];
246
+ summary: ComponentsSummary;
247
+ }
248
+ export type CallType = "direct" | "method" | "property-chain" | "computed";
249
+ /** A function or method definition that can be a caller or callee. */
250
+ export interface FunctionNode {
251
+ /** File path (relative to project root) */
252
+ file: string;
253
+ /** Function or method name */
254
+ name: string;
255
+ /** Line number of the definition */
256
+ line: number;
257
+ /** Column number of the definition */
258
+ column: number;
259
+ /** Fully qualified name including class/object context */
260
+ qualifiedName: string;
261
+ /** Whether this function is exported from its module */
262
+ isExported: boolean;
263
+ }
264
+ /** A call edge from one function to another. */
265
+ export interface CallEdge {
266
+ /** File containing the caller */
267
+ callerFile: string;
268
+ /** Qualified name of the calling function */
269
+ caller: string;
270
+ /** File containing the callee (null if external/unresolved) */
271
+ calleeFile: string | null;
272
+ /** Qualified name of the called function */
273
+ callee: string;
274
+ /** How the call was made */
275
+ type: CallType;
276
+ /** Line number of the call site */
277
+ line: number;
278
+ /** Column number of the call site */
279
+ column: number;
280
+ }
281
+ export interface CallGraphSummary {
282
+ totalFunctions: number;
283
+ totalCalls: number;
284
+ filesWithCalls: number;
285
+ mostCalled: Array<{
286
+ qualifiedName: string;
287
+ file: string;
288
+ callerCount: number;
289
+ }>;
290
+ mostCalling: Array<{
291
+ qualifiedName: string;
292
+ file: string;
293
+ calleeCount: number;
294
+ }>;
295
+ cycleCount: number;
296
+ }
297
+ export interface CallGraph {
298
+ functions: FunctionNode[];
299
+ edges: CallEdge[];
300
+ summary: CallGraphSummary;
301
+ }
302
+ export interface NextStep {
303
+ priority: "high" | "medium" | "low";
304
+ title: string;
305
+ description: string;
306
+ category: "refactor" | "fix" | "extract" | "test" | "docs";
307
+ relatedFindings: number[];
308
+ scope: string;
309
+ }
310
+ export interface SourcevisionOutput {
311
+ manifest: Manifest;
312
+ inventory: Inventory;
313
+ imports: Imports;
314
+ zones: Zones;
315
+ components?: Components;
316
+ callGraph?: CallGraph;
317
+ }
@@ -0,0 +1,3 @@
1
+ /** Sourcevision Schema v1 — all types for the .sourcevision/ output format */
2
+ export const SCHEMA_VERSION = "1.0.0";
3
+ //# sourceMappingURL=v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1.js","sourceRoot":"","sources":["../../src/schema/v1.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Aggregation result cache with filesystem-based invalidation.
3
+ *
4
+ * Caches computed aggregation results (summary, events, by-command, etc.)
5
+ * and automatically invalidates when the underlying data sources change.
6
+ *
7
+ * ## Change Detection
8
+ *
9
+ * Three data sources feed the token usage aggregation:
10
+ * - Hench run files (`.hench/runs/*.json`) — tracked via directory mtime + file count
11
+ * - Rex execution log (`.rex/execution-log.jsonl`) — tracked via mtime + size
12
+ * - Sourcevision manifest (`.sourcevision/manifest.json`) — tracked via mtime + size
13
+ *
14
+ * On each cache access, the current filesystem state is compared against the
15
+ * last-known fingerprint. If any source has changed, all cached results are
16
+ * invalidated and the fingerprint is updated.
17
+ *
18
+ * ## Memory Bounding
19
+ *
20
+ * Cache entries are bounded by a configurable `maxEntries` limit. When full,
21
+ * the oldest entry (by insertion order) is evicted. This prevents unbounded
22
+ * growth from diverse query parameter combinations.
23
+ *
24
+ * @module web/server/aggregation-cache
25
+ */
26
+ /**
27
+ * Filesystem metadata snapshot for the three token usage data sources.
28
+ * Used to detect when source data has changed and cached results need
29
+ * to be invalidated.
30
+ */
31
+ export interface SourceFingerprint {
32
+ /** Hench runs directory modification time (changes on add/delete). */
33
+ henchDirMtimeMs: number;
34
+ /** Number of JSON files in the hench runs directory. */
35
+ henchFileCount: number;
36
+ /** Rex execution log modification time. */
37
+ rexLogMtimeMs: number;
38
+ /** Rex execution log size in bytes. */
39
+ rexLogSize: number;
40
+ /** Sourcevision manifest modification time. */
41
+ svManifestMtimeMs: number;
42
+ /** Sourcevision manifest size in bytes. */
43
+ svManifestSize: number;
44
+ }
45
+ /**
46
+ * Take a fingerprint of the current filesystem state of all aggregation
47
+ * data sources. Missing files/directories produce zero values rather than
48
+ * errors — this allows the cache to work even when some sources haven't
49
+ * been initialized yet.
50
+ */
51
+ export declare function takeFingerprint(projectDir: string, rexDir: string): Promise<SourceFingerprint>;
52
+ /** Compare two fingerprints for equality. */
53
+ export declare function fingerprintsMatch(a: SourceFingerprint, b: SourceFingerprint): boolean;
54
+ /**
55
+ * Caches aggregation results with automatic filesystem-based invalidation.
56
+ *
57
+ * Usage:
58
+ * ```ts
59
+ * const cache = new AggregationResultCache(projectDir, rexDir);
60
+ *
61
+ * const events = await cache.getOrCompute(
62
+ * "events:::",
63
+ * () => collectAllEvents(ctx),
64
+ * );
65
+ * ```
66
+ *
67
+ * Cache keys should encode all parameters that affect the result
68
+ * (e.g. `"summary:2026-01-01:2026-02-01"` for a date-scoped summary).
69
+ */
70
+ export declare class AggregationResultCache {
71
+ private readonly projectDir;
72
+ private readonly rexDir;
73
+ private readonly maxEntries;
74
+ /** Last-known filesystem fingerprint. */
75
+ private fingerprint;
76
+ /** Cached results keyed by scope string. */
77
+ private entries;
78
+ constructor(projectDir: string, rexDir: string, options?: {
79
+ maxEntries?: number;
80
+ });
81
+ /**
82
+ * Get a cached result or compute and cache it.
83
+ *
84
+ * Before returning a cached value, checks whether any source data has
85
+ * changed since the last fingerprint. If so, all entries are invalidated
86
+ * and the value is recomputed.
87
+ *
88
+ * @param key - Cache key encoding the query scope (e.g. `"summary:since:until"`)
89
+ * @param compute - Synchronous function that produces the result
90
+ */
91
+ getOrCompute<T>(key: string, compute: () => T): Promise<T>;
92
+ /** Number of cached entries (for monitoring/testing). */
93
+ get size(): number;
94
+ /** Current fingerprint (for testing/debugging). */
95
+ get currentFingerprint(): SourceFingerprint | null;
96
+ /** Force invalidation of all cached results and fingerprint. */
97
+ invalidate(): void;
98
+ /**
99
+ * Check source freshness. If stale or uninitialized, clear all entries
100
+ * and update the fingerprint.
101
+ */
102
+ private ensureFresh;
103
+ /** Store a value, evicting the oldest entry if at capacity. */
104
+ private put;
105
+ }
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Aggregation result cache with filesystem-based invalidation.
3
+ *
4
+ * Caches computed aggregation results (summary, events, by-command, etc.)
5
+ * and automatically invalidates when the underlying data sources change.
6
+ *
7
+ * ## Change Detection
8
+ *
9
+ * Three data sources feed the token usage aggregation:
10
+ * - Hench run files (`.hench/runs/*.json`) — tracked via directory mtime + file count
11
+ * - Rex execution log (`.rex/execution-log.jsonl`) — tracked via mtime + size
12
+ * - Sourcevision manifest (`.sourcevision/manifest.json`) — tracked via mtime + size
13
+ *
14
+ * On each cache access, the current filesystem state is compared against the
15
+ * last-known fingerprint. If any source has changed, all cached results are
16
+ * invalidated and the fingerprint is updated.
17
+ *
18
+ * ## Memory Bounding
19
+ *
20
+ * Cache entries are bounded by a configurable `maxEntries` limit. When full,
21
+ * the oldest entry (by insertion order) is evicted. This prevents unbounded
22
+ * growth from diverse query parameter combinations.
23
+ *
24
+ * @module web/server/aggregation-cache
25
+ */
26
+ import { join } from "node:path";
27
+ import { stat, readdir } from "node:fs/promises";
28
+ // ---------------------------------------------------------------------------
29
+ // Fingerprinting
30
+ // ---------------------------------------------------------------------------
31
+ /**
32
+ * Take a fingerprint of the current filesystem state of all aggregation
33
+ * data sources. Missing files/directories produce zero values rather than
34
+ * errors — this allows the cache to work even when some sources haven't
35
+ * been initialized yet.
36
+ */
37
+ export async function takeFingerprint(projectDir, rexDir) {
38
+ const henchRunsDir = join(projectDir, ".hench", "runs");
39
+ const rexLogPath = join(rexDir, "execution-log.jsonl");
40
+ const svManifestPath = join(projectDir, ".sourcevision", "manifest.json");
41
+ // Run all stat operations in parallel for performance
42
+ const [henchDirResult, henchFilesResult, rexLogResult, svManifestResult] = await Promise.all([
43
+ stat(henchRunsDir).catch(() => null),
44
+ readdir(henchRunsDir)
45
+ .then((files) => files.filter((f) => f.endsWith(".json") && !f.startsWith(".")))
46
+ .catch(() => []),
47
+ stat(rexLogPath).catch(() => null),
48
+ stat(svManifestPath).catch(() => null),
49
+ ]);
50
+ return {
51
+ henchDirMtimeMs: henchDirResult?.mtimeMs ?? 0,
52
+ henchFileCount: henchFilesResult.length,
53
+ rexLogMtimeMs: rexLogResult?.mtimeMs ?? 0,
54
+ rexLogSize: rexLogResult?.size ?? 0,
55
+ svManifestMtimeMs: svManifestResult?.mtimeMs ?? 0,
56
+ svManifestSize: svManifestResult?.size ?? 0,
57
+ };
58
+ }
59
+ /** Compare two fingerprints for equality. */
60
+ export function fingerprintsMatch(a, b) {
61
+ return (a.henchDirMtimeMs === b.henchDirMtimeMs &&
62
+ a.henchFileCount === b.henchFileCount &&
63
+ a.rexLogMtimeMs === b.rexLogMtimeMs &&
64
+ a.rexLogSize === b.rexLogSize &&
65
+ a.svManifestMtimeMs === b.svManifestMtimeMs &&
66
+ a.svManifestSize === b.svManifestSize);
67
+ }
68
+ // ---------------------------------------------------------------------------
69
+ // AggregationResultCache
70
+ // ---------------------------------------------------------------------------
71
+ /**
72
+ * Caches aggregation results with automatic filesystem-based invalidation.
73
+ *
74
+ * Usage:
75
+ * ```ts
76
+ * const cache = new AggregationResultCache(projectDir, rexDir);
77
+ *
78
+ * const events = await cache.getOrCompute(
79
+ * "events:::",
80
+ * () => collectAllEvents(ctx),
81
+ * );
82
+ * ```
83
+ *
84
+ * Cache keys should encode all parameters that affect the result
85
+ * (e.g. `"summary:2026-01-01:2026-02-01"` for a date-scoped summary).
86
+ */
87
+ export class AggregationResultCache {
88
+ projectDir;
89
+ rexDir;
90
+ maxEntries;
91
+ /** Last-known filesystem fingerprint. */
92
+ fingerprint = null;
93
+ /** Cached results keyed by scope string. */
94
+ entries = new Map();
95
+ constructor(projectDir, rexDir, options) {
96
+ this.projectDir = projectDir;
97
+ this.rexDir = rexDir;
98
+ this.maxEntries = options?.maxEntries ?? 64;
99
+ }
100
+ /**
101
+ * Get a cached result or compute and cache it.
102
+ *
103
+ * Before returning a cached value, checks whether any source data has
104
+ * changed since the last fingerprint. If so, all entries are invalidated
105
+ * and the value is recomputed.
106
+ *
107
+ * @param key - Cache key encoding the query scope (e.g. `"summary:since:until"`)
108
+ * @param compute - Synchronous function that produces the result
109
+ */
110
+ async getOrCompute(key, compute) {
111
+ await this.ensureFresh();
112
+ if (this.entries.has(key)) {
113
+ return this.entries.get(key);
114
+ }
115
+ const result = compute();
116
+ this.put(key, result);
117
+ return result;
118
+ }
119
+ /** Number of cached entries (for monitoring/testing). */
120
+ get size() {
121
+ return this.entries.size;
122
+ }
123
+ /** Current fingerprint (for testing/debugging). */
124
+ get currentFingerprint() {
125
+ return this.fingerprint;
126
+ }
127
+ /** Force invalidation of all cached results and fingerprint. */
128
+ invalidate() {
129
+ this.fingerprint = null;
130
+ this.entries.clear();
131
+ }
132
+ // ---- Internal -------------------------------------------------------------
133
+ /**
134
+ * Check source freshness. If stale or uninitialized, clear all entries
135
+ * and update the fingerprint.
136
+ */
137
+ async ensureFresh() {
138
+ const current = await takeFingerprint(this.projectDir, this.rexDir);
139
+ if (this.fingerprint && fingerprintsMatch(this.fingerprint, current)) {
140
+ return; // Sources unchanged — cache is still valid
141
+ }
142
+ // Sources changed (or first access) — invalidate everything
143
+ this.entries.clear();
144
+ this.fingerprint = current;
145
+ }
146
+ /** Store a value, evicting the oldest entry if at capacity. */
147
+ put(key, value) {
148
+ // If key already exists, just update it (no eviction needed)
149
+ if (this.entries.has(key)) {
150
+ this.entries.set(key, value);
151
+ return;
152
+ }
153
+ // Evict oldest entries until under capacity
154
+ while (this.entries.size >= this.maxEntries) {
155
+ const oldest = this.entries.keys().next().value;
156
+ if (oldest === undefined)
157
+ break;
158
+ this.entries.delete(oldest);
159
+ }
160
+ this.entries.set(key, value);
161
+ }
162
+ }
163
+ //# sourceMappingURL=aggregation-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregation-cache.js","sourceRoot":"","sources":["../../src/server/aggregation-cache.ts"],"names":[],"mappings":"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"}