hex-audit 0.7.0 → 0.8.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 (584) hide show
  1. package/CLAUDE.md +137 -77
  2. package/DEMO.md +40 -117
  3. package/README.md +200 -402
  4. package/dashboard/.next/BUILD_ID +1 -1
  5. package/dashboard/.next/app-build-manifest.json +56 -101
  6. package/dashboard/.next/app-path-routes-manifest.json +1 -1
  7. package/dashboard/.next/build-manifest.json +9 -9
  8. package/dashboard/.next/next-server.js.nft.json +1 -1
  9. package/dashboard/.next/prerender-manifest.json +1 -1
  10. package/dashboard/.next/react-loadable-manifest.json +436 -15
  11. package/dashboard/.next/routes-manifest.json +1 -1
  12. package/dashboard/.next/server/app/_not-found/page.js +1 -1
  13. package/dashboard/.next/server/app/_not-found/page.js.nft.json +1 -1
  14. package/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/dashboard/.next/server/app/api/code/route.js +1 -1
  16. package/dashboard/.next/server/app/api/code/route.js.nft.json +1 -1
  17. package/dashboard/.next/server/app/api/comments/route.js +1 -0
  18. package/dashboard/.next/server/app/api/comments/route.js.nft.json +1 -0
  19. package/dashboard/.next/server/app/api/diagrams/[name]/export/route.js +1 -0
  20. package/dashboard/.next/server/app/api/diagrams/[name]/export/route.js.nft.json +1 -0
  21. package/dashboard/.next/server/app/api/diagrams/[name]/resolve/route.js +1 -0
  22. package/dashboard/.next/server/app/api/diagrams/[name]/resolve/route.js.nft.json +1 -0
  23. package/dashboard/.next/server/app/api/diagrams/[name]/route.js +1 -0
  24. package/dashboard/.next/server/app/api/diagrams/[name]/route.js.nft.json +1 -0
  25. package/dashboard/.next/server/app/api/figures/[name]/route.js +1 -0
  26. package/dashboard/.next/server/app/api/figures/[name]/route.js.nft.json +1 -0
  27. package/dashboard/.next/server/app/api/focus/route.js +1 -0
  28. package/dashboard/.next/server/app/api/focus/route.js.nft.json +1 -0
  29. package/dashboard/.next/server/app/api/github-status/route.js +1 -1
  30. package/dashboard/.next/server/app/api/invariants/[id]/route.js +1 -0
  31. package/dashboard/.next/server/app/api/invariants/[id]/route.js.nft.json +1 -0
  32. package/dashboard/.next/server/app/api/issues/[id]/revert-auto/route.js +1 -0
  33. package/dashboard/.next/server/app/api/issues/[id]/revert-auto/route.js.nft.json +1 -0
  34. package/dashboard/.next/server/app/api/nav/route.js +1 -0
  35. package/dashboard/.next/server/app/api/nav/route.js.nft.json +1 -0
  36. package/dashboard/.next/server/app/api/notes/done/route.js +1 -1
  37. package/dashboard/.next/server/app/api/notes/done/route.js.nft.json +1 -1
  38. package/dashboard/.next/server/app/api/notes/lead/route.js +1 -1
  39. package/dashboard/.next/server/app/api/notes/lead/route.js.nft.json +1 -1
  40. package/dashboard/.next/server/app/api/notes/question/route.js +1 -1
  41. package/dashboard/.next/server/app/api/notes/question/route.js.nft.json +1 -1
  42. package/dashboard/.next/server/app/api/notes/record/route.js +3 -3
  43. package/dashboard/.next/server/app/api/notes/route.js +2 -2
  44. package/dashboard/.next/server/app/api/palette/route.js +1 -0
  45. package/dashboard/.next/server/app/api/palette/route.js.nft.json +1 -0
  46. package/dashboard/.next/server/app/api/progress/route.js +1 -1
  47. package/dashboard/.next/server/app/api/progress/route.js.nft.json +1 -1
  48. package/dashboard/.next/server/app/api/watch/route.js +2 -2
  49. package/dashboard/.next/server/app/api/watch/route.js.nft.json +1 -1
  50. package/dashboard/.next/server/app/api/xref/route.js +1 -0
  51. package/dashboard/.next/server/app/changes/page.js +1 -20
  52. package/dashboard/.next/server/app/changes/page.js.nft.json +1 -1
  53. package/dashboard/.next/server/app/changes/page_client-reference-manifest.js +1 -1
  54. package/dashboard/.next/server/app/excalidraw-assets/[...path]/route.js +1 -0
  55. package/dashboard/.next/server/app/issues/page.js +5 -28
  56. package/dashboard/.next/server/app/issues/page.js.nft.json +1 -1
  57. package/dashboard/.next/server/app/issues/page_client-reference-manifest.js +1 -1
  58. package/dashboard/.next/server/app/model/page.js +1 -0
  59. package/dashboard/.next/server/app/{calls → model}/page.js.nft.json +1 -1
  60. package/dashboard/.next/server/app/model/page_client-reference-manifest.js +1 -0
  61. package/dashboard/.next/server/app/page.js +1 -20
  62. package/dashboard/.next/server/app/page.js.nft.json +1 -1
  63. package/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  64. package/dashboard/.next/server/app/report/page.js +1 -1
  65. package/dashboard/.next/server/app/report/page.js.nft.json +1 -1
  66. package/dashboard/.next/server/app/report/page_client-reference-manifest.js +1 -1
  67. package/dashboard/.next/server/app/review/page.js +1 -0
  68. package/dashboard/.next/server/app/{access → review}/page.js.nft.json +1 -1
  69. package/dashboard/.next/server/app/review/page_client-reference-manifest.js +1 -0
  70. package/dashboard/.next/server/app-paths-manifest.json +19 -16
  71. package/dashboard/.next/server/chunks/310.js +4 -0
  72. package/dashboard/.next/server/chunks/370.js +1 -0
  73. package/dashboard/.next/server/chunks/42.js +1 -1
  74. package/dashboard/.next/server/chunks/624.js +14 -0
  75. package/dashboard/.next/server/chunks/645.js +1 -1
  76. package/dashboard/.next/server/chunks/649.js +1 -1
  77. package/dashboard/.next/server/chunks/653.js +1 -0
  78. package/dashboard/.next/server/functions-config-manifest.json +1 -1
  79. package/dashboard/.next/server/middleware-build-manifest.js +1 -1
  80. package/dashboard/.next/server/middleware-react-loadable-manifest.js +1 -1
  81. package/dashboard/.next/server/pages/500.html +1 -1
  82. package/dashboard/.next/server/pages/_error.js +1 -1
  83. package/dashboard/.next/server/server-reference-manifest.js +1 -1
  84. package/dashboard/.next/server/server-reference-manifest.json +1 -1
  85. package/dashboard/.next/static/chunks/0bbe10ee.8e7ffa06d2170dfe.js +84 -0
  86. package/dashboard/.next/static/chunks/1026.0ef689a305302427.js +1 -0
  87. package/dashboard/.next/static/chunks/1164.34eb76767ebea46f.js +8 -0
  88. package/dashboard/.next/static/chunks/119.a9a79633900a235f.js +5 -0
  89. package/dashboard/.next/static/chunks/1291.6c486c9b1d4b1b3a.js +1 -0
  90. package/dashboard/.next/static/chunks/139.4691848fc5a46253.js +10 -0
  91. package/dashboard/.next/static/chunks/145.1bf74fecdb4022e3.js +11 -0
  92. package/dashboard/.next/static/chunks/1517.8e7075f78e22b3a0.js +8 -0
  93. package/dashboard/.next/static/chunks/165.6f174060a0ce2db4.js +6 -0
  94. package/dashboard/.next/static/chunks/1741.5c370b7702d2eb40.js +8 -0
  95. package/dashboard/.next/static/chunks/1e36816c.5748c83adc8a6bd6.js +108 -0
  96. package/dashboard/.next/static/chunks/2061.eab75b3c1dfa068a.js +1 -0
  97. package/dashboard/.next/static/chunks/2148.3ce718f62d1b2f7c.js +10 -0
  98. package/dashboard/.next/static/chunks/217-1d5b680ffd10e3f9.js +1 -0
  99. package/dashboard/.next/static/chunks/2208.fb884379aa3ae968.js +1 -0
  100. package/dashboard/.next/static/chunks/2276.112c7855333fca5f.js +6 -0
  101. package/dashboard/.next/static/chunks/2374-8c6f137938f8518a.js +1 -0
  102. package/dashboard/.next/static/chunks/2445.18a86507d2996b95.js +1 -0
  103. package/dashboard/.next/static/chunks/2712.15dd8577973baf22.js +10 -0
  104. package/dashboard/.next/static/chunks/2759.533dec5317e0a1d1.js +1 -0
  105. package/dashboard/.next/static/chunks/2812.62b213bef580b69a.js +1 -0
  106. package/dashboard/.next/static/chunks/2895.bb57cacb7aaf42a1.js +9 -0
  107. package/dashboard/.next/static/chunks/2972.e5a9251b538dcf19.js +9 -0
  108. package/dashboard/.next/static/chunks/3206.8d9a10db2b04b93f.js +1 -0
  109. package/dashboard/.next/static/chunks/3485.36766504793b7237.js +9 -0
  110. package/dashboard/.next/static/chunks/3725.de9376dc994735d4.js +9 -0
  111. package/dashboard/.next/static/chunks/3774.1df377928e8387f7.js +9 -0
  112. package/dashboard/.next/static/chunks/3963.39d72b3875dfe2e9.js +13 -0
  113. package/dashboard/.next/static/chunks/4013.73884b23bfaebdde.js +11 -0
  114. package/dashboard/.next/static/chunks/4117.278aff1fa23fd36e.js +6 -0
  115. package/dashboard/.next/static/chunks/4210.cc8594110017c579.js +11 -0
  116. package/dashboard/.next/static/chunks/4282.28485875540886cc.js +7 -0
  117. package/dashboard/.next/static/chunks/4318.a2f469a88d88f6d0.js +8 -0
  118. package/dashboard/.next/static/chunks/4363.8999a6e727c48003.js +1 -0
  119. package/dashboard/.next/static/chunks/4641.e03d118fffebd580.js +5 -0
  120. package/dashboard/.next/static/chunks/483.a910dab7734a1074.js +8 -0
  121. package/dashboard/.next/static/chunks/4926.76693f542e9cc062.js +6 -0
  122. package/dashboard/.next/static/chunks/4938.03f6d04dabf38745.js +10 -0
  123. package/dashboard/.next/static/chunks/5112.0757c2b0c285e62e.js +1 -0
  124. package/dashboard/.next/static/chunks/5199.c83ea7efb0eec705.js +11 -0
  125. package/dashboard/.next/static/chunks/530.849957a8907eb288.js +1 -0
  126. package/dashboard/.next/static/chunks/5424.4e8ca0711a32bccf.js +7 -0
  127. package/dashboard/.next/static/chunks/55.a593a78be9714679.js +1 -0
  128. package/dashboard/.next/static/chunks/5535.6cd0bd8d368d8902.js +4 -0
  129. package/dashboard/.next/static/chunks/5626.7d4e93d7acbeffc9.js +10 -0
  130. package/dashboard/.next/static/chunks/5775.a0d7c1b1e89b9a93.js +9 -0
  131. package/dashboard/.next/static/chunks/6118.266956b3333b1d7a.js +9 -0
  132. package/dashboard/.next/static/chunks/6121.a2e6d93720b1205e.js +77 -0
  133. package/dashboard/.next/static/chunks/6853.d3ad43614e8ca0ab.js +1 -0
  134. package/dashboard/.next/static/chunks/6951.02a3a158d02158c9.js +5 -0
  135. package/dashboard/.next/static/chunks/6970.013f24568c87d918.js +11 -0
  136. package/dashboard/.next/static/chunks/7013.39d41e82b37be63b.js +9 -0
  137. package/dashboard/.next/static/chunks/7107.1c5412197912b8ed.js +8 -0
  138. package/dashboard/.next/static/chunks/7508.dd60e2d06d149f5f.js +9 -0
  139. package/dashboard/.next/static/chunks/7524.0fde4c61553d1491.js +3 -0
  140. package/dashboard/.next/static/chunks/7834-47f318a04a05688f.js +1 -0
  141. package/dashboard/.next/static/chunks/8317.d0b3eddef4cae0d5.js +1 -0
  142. package/dashboard/.next/static/chunks/838.2b2aa006519ba44c.js +10 -0
  143. package/dashboard/.next/static/chunks/8398.924fd8f4c83417c0.js +7 -0
  144. package/dashboard/.next/static/chunks/8428b36f.8ac4e67061c01307.js +34 -0
  145. package/dashboard/.next/static/chunks/8514.85ccbbea8ab21d04.js +5 -0
  146. package/dashboard/.next/static/chunks/8538.5f7ebe76c4b63162.js +1 -0
  147. package/dashboard/.next/static/chunks/8687.9406baa8b5601fd0.js +1 -0
  148. package/dashboard/.next/static/chunks/8721.47346e2cb6412376.js +10 -0
  149. package/dashboard/.next/static/chunks/8770.4f544bd1a6f03a62.js +8 -0
  150. package/dashboard/.next/static/chunks/8812.3d96fd54dba566f8.js +9 -0
  151. package/dashboard/.next/static/chunks/8962.d22aa67a97970dd8.js +1 -0
  152. package/dashboard/.next/static/chunks/8986.b327224b83f4399a.js +5 -0
  153. package/dashboard/.next/static/chunks/9271.5f66c19a8ee1ff36.js +10 -0
  154. package/dashboard/.next/static/chunks/9282.f8d01442bab4c0da.js +2 -0
  155. package/dashboard/.next/static/chunks/9366.0ec24a0791b9b00f.js +1 -0
  156. package/dashboard/.next/static/chunks/9707.5cd7d2ee933a4af5.js +6 -0
  157. package/dashboard/.next/static/chunks/9716.15fffc0b0038601d.js +4 -0
  158. package/dashboard/.next/static/chunks/9791.e3b3f5a367f63c8a.js +1 -0
  159. package/dashboard/.next/static/chunks/9820.8c1efad5260e8137.js +1 -0
  160. package/dashboard/.next/static/chunks/985.50150e9eaa4bde33.js +39 -0
  161. package/dashboard/.next/static/chunks/997.56901b86e1b8a87b.js +8 -0
  162. package/dashboard/.next/static/chunks/app/changes/page-f8a860034221cad4.js +1 -0
  163. package/dashboard/.next/static/chunks/app/issues/page-da4da93188c414a6.js +1 -0
  164. package/dashboard/.next/static/chunks/app/layout-27a9da4610423c1e.js +1 -0
  165. package/dashboard/.next/static/chunks/app/model/page-9680e22fdd6ddb81.js +1 -0
  166. package/dashboard/.next/static/chunks/app/page-0e67750d99fb2836.js +1 -0
  167. package/dashboard/.next/static/chunks/app/report/page-b56b1db9b9dcf2b6.js +1 -0
  168. package/dashboard/.next/static/chunks/app/review/page-3ef69f0e0badd333.js +1 -0
  169. package/dashboard/.next/static/chunks/c75e29e3.d91220f782934d80.js +1 -0
  170. package/dashboard/.next/static/chunks/{main-cc3a889b25e9aa68.js → main-9c95a7ffedc7afb4.js} +1 -1
  171. package/dashboard/.next/static/chunks/webpack-6da70e4f9fcf1799.js +1 -0
  172. package/dashboard/.next/static/css/ceafd91ca8dd753d.css +3 -0
  173. package/dashboard/.next/static/css/e4aad1f9c715b79a.css +1 -0
  174. package/dashboard/.next/static/media/Assistant-Bold.c8f39f24.woff2 +0 -0
  175. package/dashboard/.next/static/media/Assistant-Medium.1e75d8e6.woff2 +0 -0
  176. package/dashboard/.next/static/media/Assistant-Regular.7acbabb8.woff2 +0 -0
  177. package/dashboard/.next/static/media/Assistant-SemiBold.167acbf8.woff2 +0 -0
  178. package/dashboard/app/api/code/route.ts +26 -20
  179. package/dashboard/app/api/comments/route.ts +158 -0
  180. package/dashboard/app/api/diagrams/[name]/export/route.ts +26 -0
  181. package/dashboard/app/api/diagrams/[name]/resolve/route.ts +25 -0
  182. package/dashboard/app/api/diagrams/[name]/route.ts +37 -0
  183. package/dashboard/app/api/figures/[name]/route.ts +15 -0
  184. package/dashboard/app/api/focus/route.ts +35 -0
  185. package/dashboard/app/api/invariants/[id]/route.ts +35 -0
  186. package/dashboard/app/api/issues/[id]/revert-auto/route.ts +18 -0
  187. package/dashboard/app/api/nav/route.ts +120 -0
  188. package/dashboard/app/api/palette/route.ts +68 -0
  189. package/dashboard/app/api/progress/route.ts +54 -23
  190. package/dashboard/app/api/xref/route.ts +30 -0
  191. package/dashboard/app/changes/ChangesClient.tsx +730 -356
  192. package/dashboard/app/changes/page.tsx +27 -19
  193. package/dashboard/app/excalidraw-assets/[...path]/route.ts +56 -0
  194. package/dashboard/app/globals.css +231 -77
  195. package/dashboard/app/issues/BoardClient.tsx +817 -0
  196. package/dashboard/app/issues/page.tsx +27 -272
  197. package/dashboard/app/layout.tsx +32 -17
  198. package/dashboard/app/model/ModelClient.tsx +1303 -0
  199. package/dashboard/app/model/page.tsx +98 -0
  200. package/dashboard/app/page.tsx +191 -277
  201. package/dashboard/app/report/ReportClient.tsx +147 -74
  202. package/dashboard/app/report/page.tsx +25 -14
  203. package/dashboard/app/review/ReviewClient.tsx +1180 -0
  204. package/dashboard/app/review/page.tsx +93 -0
  205. package/dashboard/components/AutoRefresh.tsx +22 -19
  206. package/dashboard/components/CodeComments.tsx +303 -0
  207. package/dashboard/components/CodeNav.tsx +523 -0
  208. package/dashboard/components/CodeReference.tsx +92 -99
  209. package/dashboard/components/CodeViewer.tsx +526 -0
  210. package/dashboard/components/CommandPalette.tsx +141 -66
  211. package/dashboard/components/DiagramCanvas.tsx +275 -0
  212. package/dashboard/components/DianeNote.tsx +244 -0
  213. package/dashboard/components/LiveStatus.tsx +30 -68
  214. package/dashboard/components/MarkdownRenderer.tsx +34 -32
  215. package/dashboard/components/RecordButton.tsx +132 -0
  216. package/dashboard/components/ui/Button.tsx +39 -0
  217. package/dashboard/components/ui/Chip.tsx +37 -0
  218. package/dashboard/components/ui/EmptyState.tsx +31 -0
  219. package/dashboard/components/ui/Icons.tsx +126 -0
  220. package/dashboard/components/ui/Inspector.tsx +122 -0
  221. package/dashboard/components/ui/Kbd.tsx +15 -0
  222. package/dashboard/components/ui/ListRow.tsx +92 -0
  223. package/dashboard/components/ui/LocalTime.tsx +14 -0
  224. package/dashboard/components/ui/ProgressRing.tsx +54 -0
  225. package/dashboard/components/ui/ResizeHandle.tsx +93 -0
  226. package/dashboard/components/ui/RiskMeter.tsx +27 -0
  227. package/dashboard/components/ui/SearchField.tsx +55 -0
  228. package/dashboard/components/ui/SegmentedControl.tsx +71 -0
  229. package/dashboard/components/ui/SeverityDot.tsx +57 -0
  230. package/dashboard/components/ui/Sidebar.tsx +236 -0
  231. package/dashboard/components/ui/SplitView.tsx +122 -0
  232. package/dashboard/components/ui/StateGlyph.tsx +66 -0
  233. package/dashboard/components/ui/Toast.tsx +91 -0
  234. package/dashboard/lib/api.ts +17 -0
  235. package/dashboard/lib/cn.ts +4 -0
  236. package/dashboard/lib/data.ts +2 -21
  237. package/dashboard/lib/finding-markdown.ts +1 -1
  238. package/dashboard/lib/focus.ts +42 -0
  239. package/dashboard/lib/hotkeys.ts +41 -0
  240. package/dashboard/lib/inline-markdown.test.ts +11 -0
  241. package/dashboard/lib/live.ts +32 -0
  242. package/dashboard/lib/pane-width.ts +36 -0
  243. package/dashboard/lib/server/board.ts +229 -0
  244. package/dashboard/lib/server/diagrams.ts +191 -0
  245. package/dashboard/lib/server/safe-path.ts +28 -0
  246. package/dashboard/lib/server/workspace.ts +113 -0
  247. package/dashboard/lib/server/xref.ts +42 -0
  248. package/dashboard/lib/solidity.test.ts +37 -0
  249. package/dashboard/lib/solidity.ts +191 -0
  250. package/dashboard/lib/source.ts +28 -0
  251. package/dashboard/lib/types.ts +164 -0
  252. package/dashboard/lib/url.ts +18 -0
  253. package/dashboard/lib/watcher.ts +31 -22
  254. package/dashboard/tailwind.config.ts +6 -3
  255. package/dist/analysis/code-model.d.ts.map +1 -1
  256. package/dist/analysis/code-model.js +4 -1
  257. package/dist/analysis/code-model.js.map +1 -1
  258. package/dist/analysis/diff.d.ts +12 -1
  259. package/dist/analysis/diff.d.ts.map +1 -1
  260. package/dist/analysis/diff.js +143 -0
  261. package/dist/analysis/diff.js.map +1 -1
  262. package/dist/commands/analyze.d.ts.map +1 -1
  263. package/dist/commands/analyze.js +17 -48
  264. package/dist/commands/analyze.js.map +1 -1
  265. package/dist/commands/claude.d.ts.map +1 -1
  266. package/dist/commands/claude.js +5 -0
  267. package/dist/commands/claude.js.map +1 -1
  268. package/dist/commands/dashboard.d.ts.map +1 -1
  269. package/dist/commands/dashboard.js +10 -2
  270. package/dist/commands/dashboard.js.map +1 -1
  271. package/dist/commands/diagram.d.ts +3 -0
  272. package/dist/commands/diagram.d.ts.map +1 -0
  273. package/dist/commands/diagram.js +71 -0
  274. package/dist/commands/diagram.js.map +1 -0
  275. package/dist/commands/diff.d.ts +4 -5
  276. package/dist/commands/diff.d.ts.map +1 -1
  277. package/dist/commands/diff.js +56 -17
  278. package/dist/commands/diff.js.map +1 -1
  279. package/dist/commands/doctor.d.ts.map +1 -1
  280. package/dist/commands/doctor.js +5 -18
  281. package/dist/commands/doctor.js.map +1 -1
  282. package/dist/commands/facts.d.ts +23 -0
  283. package/dist/commands/facts.d.ts.map +1 -0
  284. package/dist/commands/facts.js +121 -0
  285. package/dist/commands/facts.js.map +1 -0
  286. package/dist/commands/fix-review.d.ts +9 -0
  287. package/dist/commands/fix-review.d.ts.map +1 -0
  288. package/dist/commands/fix-review.js +367 -0
  289. package/dist/commands/fix-review.js.map +1 -0
  290. package/dist/commands/init.d.ts.map +1 -1
  291. package/dist/commands/init.js +51 -47
  292. package/dist/commands/init.js.map +1 -1
  293. package/dist/commands/issue.d.ts.map +1 -1
  294. package/dist/commands/issue.js +151 -2
  295. package/dist/commands/issue.js.map +1 -1
  296. package/dist/commands/mcp.d.ts +3 -0
  297. package/dist/commands/mcp.d.ts.map +1 -0
  298. package/dist/commands/mcp.js +11 -0
  299. package/dist/commands/mcp.js.map +1 -0
  300. package/dist/commands/model.d.ts +4 -0
  301. package/dist/commands/model.d.ts.map +1 -0
  302. package/dist/commands/model.js +275 -0
  303. package/dist/commands/model.js.map +1 -0
  304. package/dist/commands/note.d.ts.map +1 -1
  305. package/dist/commands/note.js +31 -1
  306. package/dist/commands/note.js.map +1 -1
  307. package/dist/commands/review.d.ts +4 -0
  308. package/dist/commands/review.d.ts.map +1 -0
  309. package/dist/commands/review.js +164 -0
  310. package/dist/commands/review.js.map +1 -0
  311. package/dist/core/comments.d.ts +59 -0
  312. package/dist/core/comments.d.ts.map +1 -0
  313. package/dist/core/comments.js +263 -0
  314. package/dist/core/comments.js.map +1 -0
  315. package/dist/core/config.d.ts.map +1 -1
  316. package/dist/core/config.js +0 -1
  317. package/dist/core/config.js.map +1 -1
  318. package/dist/core/dedup.d.ts +56 -0
  319. package/dist/core/dedup.d.ts.map +1 -0
  320. package/dist/core/dedup.js +208 -0
  321. package/dist/core/dedup.js.map +1 -0
  322. package/dist/core/errors.d.ts +1 -1
  323. package/dist/core/errors.d.ts.map +1 -1
  324. package/dist/core/errors.js +0 -15
  325. package/dist/core/errors.js.map +1 -1
  326. package/dist/core/external-tools.d.ts +0 -14
  327. package/dist/core/external-tools.d.ts.map +1 -1
  328. package/dist/core/external-tools.js +2 -52
  329. package/dist/core/external-tools.js.map +1 -1
  330. package/dist/core/fix-review.d.ts +54 -0
  331. package/dist/core/fix-review.d.ts.map +1 -0
  332. package/dist/core/fix-review.js +98 -0
  333. package/dist/core/fix-review.js.map +1 -0
  334. package/dist/core/fuzz-sync.d.ts +93 -0
  335. package/dist/core/fuzz-sync.d.ts.map +1 -0
  336. package/dist/core/fuzz-sync.js +516 -0
  337. package/dist/core/fuzz-sync.js.map +1 -0
  338. package/dist/core/git.d.ts +7 -0
  339. package/dist/core/git.d.ts.map +1 -1
  340. package/dist/core/git.js +42 -0
  341. package/dist/core/git.js.map +1 -1
  342. package/dist/core/issues.d.ts +32 -1
  343. package/dist/core/issues.d.ts.map +1 -1
  344. package/dist/core/issues.js +135 -3
  345. package/dist/core/issues.js.map +1 -1
  346. package/dist/core/mcp-config.d.ts +12 -0
  347. package/dist/core/mcp-config.d.ts.map +1 -0
  348. package/dist/core/mcp-config.js +29 -0
  349. package/dist/core/mcp-config.js.map +1 -0
  350. package/dist/core/model.d.ts +38 -0
  351. package/dist/core/model.d.ts.map +1 -0
  352. package/dist/core/model.js +160 -0
  353. package/dist/core/model.js.map +1 -0
  354. package/dist/core/notes.d.ts +2 -0
  355. package/dist/core/notes.d.ts.map +1 -1
  356. package/dist/core/notes.js +13 -3
  357. package/dist/core/notes.js.map +1 -1
  358. package/dist/core/review.d.ts +47 -0
  359. package/dist/core/review.d.ts.map +1 -1
  360. package/dist/core/review.js +177 -1
  361. package/dist/core/review.js.map +1 -1
  362. package/dist/core/rules.d.ts +12 -0
  363. package/dist/core/rules.d.ts.map +1 -0
  364. package/dist/core/rules.js +66 -0
  365. package/dist/core/rules.js.map +1 -0
  366. package/dist/core/schema.d.ts +4817 -2245
  367. package/dist/core/schema.d.ts.map +1 -1
  368. package/dist/core/schema.js +452 -113
  369. package/dist/core/schema.js.map +1 -1
  370. package/dist/core/scope.d.ts +8 -0
  371. package/dist/core/scope.d.ts.map +1 -0
  372. package/dist/core/scope.js +18 -0
  373. package/dist/core/scope.js.map +1 -0
  374. package/dist/diagrams/build.d.ts +18 -0
  375. package/dist/diagrams/build.d.ts.map +1 -0
  376. package/dist/diagrams/build.js +135 -0
  377. package/dist/diagrams/build.js.map +1 -0
  378. package/dist/diagrams/excalidraw.d.ts +27 -0
  379. package/dist/diagrams/excalidraw.d.ts.map +1 -0
  380. package/dist/diagrams/excalidraw.js +219 -0
  381. package/dist/diagrams/excalidraw.js.map +1 -0
  382. package/dist/diagrams/layout.d.ts +48 -0
  383. package/dist/diagrams/layout.d.ts.map +1 -0
  384. package/dist/diagrams/layout.js +686 -0
  385. package/dist/diagrams/layout.js.map +1 -0
  386. package/dist/facts/build.d.ts +23 -0
  387. package/dist/facts/build.d.ts.map +1 -0
  388. package/dist/facts/build.js +112 -0
  389. package/dist/facts/build.js.map +1 -0
  390. package/dist/facts/extract.d.ts +53 -0
  391. package/dist/facts/extract.d.ts.map +1 -0
  392. package/dist/facts/extract.js +635 -0
  393. package/dist/facts/extract.js.map +1 -0
  394. package/dist/facts/fallback.d.ts +7 -0
  395. package/dist/facts/fallback.d.ts.map +1 -0
  396. package/dist/facts/fallback.js +156 -0
  397. package/dist/facts/fallback.js.map +1 -0
  398. package/dist/facts/implementations.d.ts +29 -0
  399. package/dist/facts/implementations.d.ts.map +1 -0
  400. package/dist/facts/implementations.js +43 -0
  401. package/dist/facts/implementations.js.map +1 -0
  402. package/dist/facts/query.d.ts +35 -0
  403. package/dist/facts/query.d.ts.map +1 -0
  404. package/dist/facts/query.js +157 -0
  405. package/dist/facts/query.js.map +1 -0
  406. package/dist/facts/xref.d.ts +53 -0
  407. package/dist/facts/xref.d.ts.map +1 -0
  408. package/dist/facts/xref.js +282 -0
  409. package/dist/facts/xref.js.map +1 -0
  410. package/dist/index.js +14 -16
  411. package/dist/index.js.map +1 -1
  412. package/dist/mcp/server.d.ts +3 -0
  413. package/dist/mcp/server.d.ts.map +1 -0
  414. package/dist/mcp/server.js +400 -0
  415. package/dist/mcp/server.js.map +1 -0
  416. package/dist/skills/ai-audit/SKILL.md +16 -6
  417. package/dist/skills/ai-audit/UPSTREAM.md +9 -4
  418. package/dist/skills/ai-audit/references/hex-board.md +34 -46
  419. package/dist/skills/diane.md +26 -12
  420. package/dist/skills/fix-review.md +58 -0
  421. package/dist/skills/fuzz/LICENSE +21 -0
  422. package/dist/skills/fuzz/SKILL.md +655 -0
  423. package/dist/skills/fuzz/UPSTREAM.md +119 -0
  424. package/dist/skills/fuzz/agents/implementers/global-property-implementer.md +81 -0
  425. package/dist/skills/fuzz/agents/implementers/specific-property-implementer.md +121 -0
  426. package/dist/skills/fuzz/agents/invariant-discovery/adversarial-profit-maximizer.md +123 -0
  427. package/dist/skills/fuzz/agents/invariant-discovery/conservation-auditor.md +92 -0
  428. package/dist/skills/fuzz/agents/invariant-discovery/protocol-type-specialist.md +173 -0
  429. package/dist/skills/fuzz/agents/invariant-discovery/roundtrip-rounding-analyst.md +164 -0
  430. package/dist/skills/fuzz/agents/invariant-discovery/state-transition-mapper.md +92 -0
  431. package/dist/skills/fuzz/agents/invariant-discovery/synthesizer.md +261 -0
  432. package/dist/skills/fuzz/agents/protocol-analyzer.md +80 -0
  433. package/dist/skills/fuzz/agents/report-writer.md +135 -0
  434. package/dist/skills/fuzz/references/handler-patterns.md +222 -0
  435. package/dist/skills/fuzz/references/hex-invariants.md +102 -0
  436. package/dist/skills/fuzz/references/property-generation.md +149 -0
  437. package/dist/skills/fuzz/references/selection-policy.md +49 -0
  438. package/dist/skills/fuzz/references/setup-playbook.md +92 -0
  439. package/dist/skills/fuzz/references/template-map.md +121 -0
  440. package/dist/skills/fuzz/scripts/ensure_foundry.sh +125 -0
  441. package/dist/skills/fuzz/scripts/estimate_cost.js +157 -0
  442. package/dist/skills/fuzz/scripts/extract_abis.js +303 -0
  443. package/dist/skills/fuzz/scripts/fizz_sync.js +692 -0
  444. package/dist/skills/fuzz/scripts/generate_handlers.js +370 -0
  445. package/dist/skills/fuzz/scripts/generate_suite.js +254 -0
  446. package/dist/skills/fuzz/scripts/lib/log-viewer.js +332 -0
  447. package/dist/skills/fuzz/scripts/run_echidna.js +192 -0
  448. package/dist/skills/fuzz/scripts/run_medusa.js +329 -0
  449. package/dist/skills/fuzz/scripts/select_functions.js +637 -0
  450. package/dist/skills/fuzz/scripts/setup_fuzz_profile.sh +142 -0
  451. package/dist/skills/fuzz/templates/Actor.sol +63 -0
  452. package/dist/skills/fuzz/templates/Base.sol +121 -0
  453. package/dist/skills/fuzz/templates/FoundryTester.sol +29 -0
  454. package/dist/skills/fuzz/templates/FuzzTester.sol +11 -0
  455. package/dist/skills/fuzz/templates/Properties.sol +17 -0
  456. package/dist/skills/fuzz/templates/README.md +56 -0
  457. package/dist/skills/fuzz/templates/Snapshots.sol +26 -0
  458. package/dist/skills/fuzz/templates/echidna.yaml +18 -0
  459. package/dist/skills/fuzz/templates/handlers/Handlers.sol +13 -0
  460. package/dist/skills/fuzz/templates/medusa.json +93 -0
  461. package/dist/skills/fuzz/templates/utils/Clamp.sol +223 -0
  462. package/dist/skills/fuzz/templates/utils/DecimalPrinter.sol +63 -0
  463. package/dist/skills/fuzz/templates/utils/Deployer.sol +17 -0
  464. package/dist/skills/fuzz/templates/utils/EnumerableSet.sol +206 -0
  465. package/dist/skills/fuzz/templates/utils/Hevm.sol +62 -0
  466. package/dist/skills/fuzz/templates/utils/Logger.sol +619 -0
  467. package/dist/skills/fuzz/templates/utils/Math.sol +52 -0
  468. package/dist/skills/fuzz/templates/utils/MockERC20.sol +279 -0
  469. package/dist/skills/fuzz/templates/utils/PropertiesAsserts.sol +238 -0
  470. package/dist/skills/fuzz/templates/utils/StringUtils.sol +85 -0
  471. package/dist/skills/fuzz-convert/SKILL.md +249 -0
  472. package/dist/skills/fuzz-sync/SKILL.md +342 -0
  473. package/dist/skills/generate-poc.md +8 -26
  474. package/dist/skills/generate-report.md +17 -5
  475. package/dist/skills/ingest-aa-report.md +11 -30
  476. package/dist/skills/init-audit/SKILL.md +155 -0
  477. package/dist/skills/init-audit/references/agents/conformance-checker.md +36 -0
  478. package/dist/skills/init-audit/references/agents/contract-reader.md +59 -0
  479. package/dist/skills/init-audit/references/agents/diagram-composer.md +48 -0
  480. package/dist/skills/init-audit/references/agents/docs-extractor.md +26 -0
  481. package/dist/skills/init-audit/references/agents/prior-audit.md +32 -0
  482. package/dist/skills/init-audit/references/agents/regression-checker.md +28 -0
  483. package/dist/skills/init-audit/references/agents/skeptic.md +31 -0
  484. package/dist/skills/init-audit/references/agents/standards-checker.md +39 -0
  485. package/dist/skills/init-audit/references/agents/synthesizer.md +50 -0
  486. package/dist/skills/prevalidate.md +62 -0
  487. package/dist/skills/sync-issues.md +11 -25
  488. package/dist/skills/validate-all-findings.md +2 -2
  489. package/dist/skills/validate-finding.md +25 -24
  490. package/dist/skills/write-finding.md +6 -5
  491. package/dist/types/index.d.ts +16 -12
  492. package/dist/types/index.d.ts.map +1 -1
  493. package/package.json +5 -4
  494. package/dashboard/.next/server/app/access/page.js +0 -1
  495. package/dashboard/.next/server/app/access/page_client-reference-manifest.js +0 -1
  496. package/dashboard/.next/server/app/api/flows/route.js +0 -1
  497. package/dashboard/.next/server/app/api/mermaid/route.js +0 -1
  498. package/dashboard/.next/server/app/calls/page.js +0 -1
  499. package/dashboard/.next/server/app/calls/page_client-reference-manifest.js +0 -1
  500. package/dashboard/.next/server/app/conformance/page.js +0 -1
  501. package/dashboard/.next/server/app/conformance/page.js.nft.json +0 -1
  502. package/dashboard/.next/server/app/conformance/page_client-reference-manifest.js +0 -1
  503. package/dashboard/.next/server/app/diagram/page.js +0 -1
  504. package/dashboard/.next/server/app/diagram/page.js.nft.json +0 -1
  505. package/dashboard/.next/server/app/diagram/page_client-reference-manifest.js +0 -1
  506. package/dashboard/.next/server/app/flows/page.js +0 -1
  507. package/dashboard/.next/server/app/flows/page.js.nft.json +0 -1
  508. package/dashboard/.next/server/app/flows/page_client-reference-manifest.js +0 -1
  509. package/dashboard/.next/server/app/functions/page.js +0 -1
  510. package/dashboard/.next/server/app/functions/page.js.nft.json +0 -1
  511. package/dashboard/.next/server/app/functions/page_client-reference-manifest.js +0 -1
  512. package/dashboard/.next/server/app/notes/page.js +0 -22
  513. package/dashboard/.next/server/app/notes/page.js.nft.json +0 -1
  514. package/dashboard/.next/server/app/notes/page_client-reference-manifest.js +0 -1
  515. package/dashboard/.next/server/app/progress/page.js +0 -1
  516. package/dashboard/.next/server/app/progress/page.js.nft.json +0 -1
  517. package/dashboard/.next/server/app/progress/page_client-reference-manifest.js +0 -1
  518. package/dashboard/.next/server/app/stats/page.js +0 -1
  519. package/dashboard/.next/server/app/stats/page.js.nft.json +0 -1
  520. package/dashboard/.next/server/app/stats/page_client-reference-manifest.js +0 -1
  521. package/dashboard/.next/server/chunks/530.js +0 -1
  522. package/dashboard/.next/server/chunks/622.js +0 -3
  523. package/dashboard/.next/server/chunks/665.js +0 -13
  524. package/dashboard/.next/server/chunks/939.js +0 -1
  525. package/dashboard/.next/static/chunks/3017.4a5312e3c20a173f.js +0 -1
  526. package/dashboard/.next/static/chunks/7397-37adf76cad543297.js +0 -1
  527. package/dashboard/.next/static/chunks/7973.e34032723285a616.js +0 -79
  528. package/dashboard/.next/static/chunks/8452-6d77fa353402422c.js +0 -13
  529. package/dashboard/.next/static/chunks/8928-fc049decdfbdaa6d.js +0 -1
  530. package/dashboard/.next/static/chunks/app/access/page-f8403cbdfc1c176b.js +0 -1
  531. package/dashboard/.next/static/chunks/app/calls/page-41f20d01e12382ef.js +0 -1
  532. package/dashboard/.next/static/chunks/app/changes/page-82bf8b6f48cdc506.js +0 -1
  533. package/dashboard/.next/static/chunks/app/conformance/page-6bb8e3b372e38098.js +0 -1
  534. package/dashboard/.next/static/chunks/app/diagram/page-469cd7a6f183efba.js +0 -1
  535. package/dashboard/.next/static/chunks/app/flows/page-7872dd9141ba0b07.js +0 -1
  536. package/dashboard/.next/static/chunks/app/functions/page-5847bcb77a8e7edf.js +0 -1
  537. package/dashboard/.next/static/chunks/app/issues/page-1ffc64fe40439002.js +0 -1
  538. package/dashboard/.next/static/chunks/app/layout-6c6d2a0fd7c989d3.js +0 -1
  539. package/dashboard/.next/static/chunks/app/notes/page-8bcaa52304500098.js +0 -1
  540. package/dashboard/.next/static/chunks/app/page-d63800ddb072b77b.js +0 -1
  541. package/dashboard/.next/static/chunks/app/progress/page-e26554f655a62eef.js +0 -1
  542. package/dashboard/.next/static/chunks/app/report/page-18c04fb2f193b020.js +0 -1
  543. package/dashboard/.next/static/chunks/app/stats/page-67ff59fd69bed651.js +0 -1
  544. package/dashboard/.next/static/chunks/webpack-4de0e79bdd6a0418.js +0 -1
  545. package/dashboard/.next/static/css/1112cea2260b3926.css +0 -3
  546. package/dashboard/app/access/AccessClient.tsx +0 -402
  547. package/dashboard/app/access/ReadOnlyFunctions.tsx +0 -114
  548. package/dashboard/app/access/page.tsx +0 -125
  549. package/dashboard/app/api/flows/route.ts +0 -32
  550. package/dashboard/app/api/mermaid/route.ts +0 -25
  551. package/dashboard/app/calls/CallsClient.tsx +0 -170
  552. package/dashboard/app/calls/page.tsx +0 -57
  553. package/dashboard/app/conformance/ConformanceTable.tsx +0 -214
  554. package/dashboard/app/conformance/page.tsx +0 -186
  555. package/dashboard/app/diagram/page.tsx +0 -65
  556. package/dashboard/app/flows/page.tsx +0 -102
  557. package/dashboard/app/functions/FunctionsClient.tsx +0 -167
  558. package/dashboard/app/functions/page.tsx +0 -178
  559. package/dashboard/app/issues/IssuesBoardClient.tsx +0 -813
  560. package/dashboard/app/notes/NotesClient.tsx +0 -706
  561. package/dashboard/app/notes/page.tsx +0 -47
  562. package/dashboard/app/progress/ProgressClient.tsx +0 -354
  563. package/dashboard/app/progress/page.tsx +0 -127
  564. package/dashboard/app/stats/StatsClient.tsx +0 -452
  565. package/dashboard/app/stats/page.tsx +0 -50
  566. package/dashboard/components/ConfidenceBadge.tsx +0 -53
  567. package/dashboard/components/DashboardLayout.tsx +0 -510
  568. package/dashboard/components/FilterableTable.tsx +0 -293
  569. package/dashboard/components/MermaidViewer.tsx +0 -267
  570. package/dashboard/components/NotYetGenerated.tsx +0 -32
  571. package/dashboard/components/SeverityBadge.tsx +0 -28
  572. package/dashboard/components/SignalBars.tsx +0 -27
  573. package/dashboard/components/SortableTable.tsx +0 -122
  574. package/dashboard/lib/conformance-tokens.ts +0 -49
  575. package/dist/skills/init-audit.md +0 -386
  576. /package/dashboard/.next/server/app/api/{flows → xref}/route.js.nft.json +0 -0
  577. /package/dashboard/.next/server/app/{api/mermaid → excalidraw-assets/[...path]}/route.js.nft.json +0 -0
  578. /package/dashboard/.next/static/{z5XBev05xDAkDrxWxAjNu → bGV1ry1vvIbM5b506eVBR}/_buildManifest.js +0 -0
  579. /package/dashboard/.next/static/{z5XBev05xDAkDrxWxAjNu → bGV1ry1vvIbM5b506eVBR}/_ssgManifest.js +0 -0
  580. /package/dashboard/.next/static/chunks/{3205-47d09be47325709f.js → 3205-fd963acf2fdfd080.js} +0 -0
  581. /package/dashboard/.next/static/chunks/{3924-88d849290406ee6f.js → 3924-f1f85ccc7d59d7ab.js} +0 -0
  582. /package/dashboard/.next/static/chunks/{618f8807-69fc7bb97c2b87c1.js → 618f8807-fbb1466bc29c17c6.js} +0 -0
  583. /package/dashboard/.next/static/chunks/{7498-d1814d68ba346d13.js → 7498-7cf464d8af69cd0a.js} +0 -0
  584. /package/dashboard/.next/static/chunks/app/_not-found/{page-c299b935209993df.js → page-5ff5d54b6fd6f17e.js} +0 -0
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/model/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"4595":{"*":{"id":"1388","name":"*","chunks":[],"async":false}},"11076":{"*":{"id":"9323","name":"*","chunks":[],"async":false}},"11447":{"*":{"id":"5915","name":"*","chunks":[],"async":false}},"15276":{"*":{"id":"820","name":"*","chunks":[],"async":false}},"25268":{"*":{"id":"3817","name":"*","chunks":[],"async":false}},"43297":{"*":{"id":"1611","name":"*","chunks":[],"async":false}},"52331":{"*":{"id":"1174","name":"*","chunks":[],"async":false}},"56902":{"*":{"id":"2541","name":"*","chunks":[],"async":false}},"63237":{"*":{"id":"281","name":"*","chunks":[],"async":false}},"67498":{"*":{"id":"696","name":"*","chunks":[],"async":false}},"68916":{"*":{"id":"5314","name":"*","chunks":[],"async":false}},"71520":{"*":{"id":"5707","name":"*","chunks":[],"async":false}},"81751":{"*":{"id":"3368","name":"*","chunks":[],"async":false}},"84300":{"*":{"id":"9939","name":"*","chunks":[],"async":false}},"85581":{"*":{"id":"6462","name":"*","chunks":[],"async":false}},"88554":{"*":{"id":"1352","name":"*","chunks":[],"async":false}},"89690":{"*":{"id":"2204","name":"*","chunks":[],"async":false}},"92198":{"*":{"id":"9915","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/dx/Work/hex/node_modules/next/dist/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/globals.css":{"id":13812,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/AutoRefresh.tsx":{"id":84300,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/CommandPalette.tsx":{"id":92198,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Sidebar.tsx":{"id":63237,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Toast.tsx":{"id":88554,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next-themes/dist/index.mjs":{"id":4595,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Manrope\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\",\"display\":\"swap\"}],\"variableName\":\"manrope\"}":{"id":41600,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"JetBrains_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\",\"display\":\"swap\"}],\"variableName\":\"jetbrainsMono\"}":{"id":55256,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx":{"id":71520,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/components/ui/SplitView.tsx":{"id":81751,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","217","static/chunks/217-1d5b680ffd10e3f9.js","2374","static/chunks/2374-8c6f137938f8518a.js","7834","static/chunks/7834-47f318a04a05688f.js","6303","static/chunks/app/model/page-9680e22fdd6ddb81.js"],"async":false},"/home/dx/Work/hex/dashboard/app/issues/BoardClient.tsx":{"id":68916,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/model/ModelClient.tsx":{"id":85581,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","217","static/chunks/217-1d5b680ffd10e3f9.js","2374","static/chunks/2374-8c6f137938f8518a.js","7834","static/chunks/7834-47f318a04a05688f.js","6303","static/chunks/app/model/page-9680e22fdd6ddb81.js"],"async":false},"/home/dx/Work/hex/dashboard/app/report/ReportClient.tsx":{"id":56902,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/review/ReviewClient.tsx":{"id":52331,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/link.js":{"id":67498,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","1931","static/chunks/app/page-0e67750d99fb2836.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/link.js":{"id":67498,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","1931","static/chunks/app/page-0e67750d99fb2836.js"],"async":false}},"entryCSSFiles":{"/home/dx/Work/hex/dashboard/":[],"/home/dx/Work/hex/dashboard/app/layout":["static/css/ceafd91ca8dd753d.css"],"/home/dx/Work/hex/dashboard/app/page":[],"/home/dx/Work/hex/dashboard/app/model/page":[]}}
@@ -1,20 +1 @@
1
- (()=>{var e={};e.id=931,e.ids=[931],e.modules={7849:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external")},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},5403:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},4749:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},7561:e=>{"use strict";e.exports=require("node:fs")},9411:e=>{"use strict";e.exports=require("node:path")},7742:e=>{"use strict";e.exports=require("node:process")},1041:e=>{"use strict";e.exports=require("node:url")},1017:e=>{"use strict";e.exports=require("path")},7310:e=>{"use strict";e.exports=require("url")},7222:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>n.a,__next_app__:()=>p,originalPathname:()=>x,pages:()=>l,routeModule:()=>m,tree:()=>c}),r(7040),r(819),r(2874);var s=r(7105),a=r(5265),o=r(157),n=r.n(o),i=r(4665),d={};for(let e in i)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(d[e]=()=>i[e]);r.d(t,d);let c=["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,7040)),"/home/dx/Work/hex/dashboard/app/page.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(r.bind(r,819)),"/home/dx/Work/hex/dashboard/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,2874,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],l=["/home/dx/Work/hex/dashboard/app/page.tsx"],x="/page",p={require:r,loadChunk:()=>Promise.resolve()},m=new s.AppPageRouteModule({definition:{kind:a.x.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},4376:(e,t,r)=>{Promise.resolve().then(r.bind(r,6844)),Promise.resolve().then(r.t.bind(r,696,23))},6844:(e,t,r)=>{"use strict";r.d(t,{MarkdownRenderer:()=>n,T:()=>i});var s=r(9899),a=r(5684),o=r(3798);function n({content:e,className:t}){return s.jsx("div",{className:`prose max-w-none
2
- prose-headings:text-text-primary
3
- prose-p:text-text-secondary
4
- prose-strong:text-text-primary
5
- prose-code:text-accent
6
- prose-code:before:content-none
7
- prose-code:after:content-none
8
- prose-pre:bg-surface-0
9
- prose-pre:border
10
- prose-pre:border-border-default
11
- prose-a:text-accent
12
- prose-a:no-underline
13
- hover:prose-a:underline
14
- prose-th:text-text-primary
15
- prose-td:text-text-secondary
16
- prose-hr:border-border-default
17
- prose-blockquote:border-border-emphasis
18
- prose-blockquote:text-text-secondary
19
- prose-li:text-text-secondary
20
- ${t??""}`,children:s.jsx(a.UG,{remarkPlugins:[o.Z],children:e})})}function i({children:e}){return s.jsx(a.UG,{remarkPlugins:[o.Z],components:{p:({children:e})=>s.jsx(s.Fragment,{children:e}),code:({children:e})=>s.jsx("code",{className:"rounded bg-surface-0 px-1 py-0.5 font-mono text-[0.85em] text-accent",children:e}),strong:({children:e})=>s.jsx("strong",{className:"font-semibold text-text-primary",children:e}),a:({href:e,children:t})=>s.jsx("a",{href:e,target:"_blank",rel:"noreferrer",className:"text-accent hover:underline",children:t})},children:e})}},7040:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u,dynamic:()=>m});var s=r(5023),a=r(6843),o=r.n(a),n=r(1720),i=r(446),d=r(2772);let c=(0,d.createProxy)(String.raw`/home/dx/Work/hex/dashboard/components/MarkdownRenderer.tsx`),{__esModule:l,$$typeof:x}=c;c.default;let p=(0,d.createProxy)(String.raw`/home/dx/Work/hex/dashboard/components/MarkdownRenderer.tsx#MarkdownRenderer`);(0,d.createProxy)(String.raw`/home/dx/Work/hex/dashboard/components/MarkdownRenderer.tsx#InlineMarkdown`);let m="force-dynamic",h=[{href:"/stats",label:"Stats",description:"Contract metrics, nSLOC, coverage",icon:s.jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z"})})},{href:"/access",label:"Access Control",description:"Roles, permissions, visibility",icon:s.jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z"})})},{href:"/calls",label:"External Calls",description:"Cross-contract calls, trust levels",icon:s.jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"})})},{href:"/issues",label:"Issues",description:"Potential, verified, invalid, and duplicate issues",icon:s.jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"})})},{href:"/diagram",label:"Diagram",description:"Contract architecture visualization",icon:s.jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 3.75H6A2.25 2.25 0 0 0 3.75 6v1.5M16.5 3.75H18A2.25 2.25 0 0 1 20.25 6v1.5m0 9V18A2.25 2.25 0 0 1 18 20.25h-1.5m-9 0H6A2.25 2.25 0 0 1 3.75 18v-1.5M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"})})}];function u(){let e=(0,n.gn)("config.json"),t=(0,n.ws)("overview.md"),r=(0,n.gn)("stats.json"),a=e?.project.mode==="diff"?(0,n.gn)("diff.json"):null,d=(0,n.gn)("findings.json"),c=(0,n.gn)("external-calls.json"),l=r?r.per_contract.reduce((e,t)=>e+t.external_functions,0):null,x=d?.findings?.length??null,m=c?.calls?.length??null;return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"mb-6",children:[s.jsx("h1",{className:"text-title font-semibold text-text-primary",children:e?.project.name??"Hex Dashboard"}),e&&(0,s.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:[s.jsx("span",{className:"rounded-md bg-accent-subtle px-2.5 py-1 text-caption font-medium text-accent",children:e.project.chain}),s.jsx("span",{className:"rounded-md bg-surface-2 px-2.5 py-1 text-caption text-text-tertiary",children:e.project.commit.slice(0,8)}),(0,s.jsxs)("span",{className:"text-caption text-text-tertiary",children:["Solidity ",e.project.solidity_version]}),(0,s.jsxs)("span",{className:"text-caption text-text-tertiary",children:[e.project.scope.length," file",1!==e.project.scope.length?"s":""," in scope"]})]}),e?.project.mode==="diff"&&(0,s.jsxs)(o(),{href:"/changes",className:"mt-3 flex flex-wrap items-center gap-2 rounded-lg border border-border-subtle bg-surface-1 px-4 py-3 text-body text-text-secondary hover:border-border-default hover:bg-surface-2",children:[s.jsx("span",{className:"rounded-md bg-accent-subtle px-2.5 py-1 text-caption font-medium text-accent",children:"Differential"}),s.jsx("code",{className:"font-mono text-caption text-text-primary",children:(a?.base_commit??e.project.diff?.base_commit??"").slice(0,8)}),s.jsx("span",{"aria-hidden":"true",children:"→"}),s.jsx("code",{className:"font-mono text-caption text-text-primary",children:(a?.head_commit??e.project.commit).slice(0,8)}),a?(0,s.jsxs)("span",{children:["\xb7 ",a.summary.files_changed," file",1!==a.summary.files_changed?"s":""," changed \xb7"," ",a.summary.impacted_entry_points," impacted entry point",1!==a.summary.impacted_entry_points?"s":"",a.summary.storage_layout_changes>0&&(0,s.jsxs)("span",{className:"text-[var(--high)]",children:[" ","\xb7 ",a.summary.storage_layout_changes," storage layout change",1!==a.summary.storage_layout_changes?"s":""]})]}):s.jsx("span",{children:"\xb7 run hex diff to compute the change set"})]})]}),(0,s.jsxs)("div",{className:"mb-6 grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-5 stagger",children:[s.jsx(g,{label:"Contracts",value:r?.totals.contracts,href:"/stats"}),s.jsx(g,{label:"nSLOC",value:r?.totals.nsloc?.toLocaleString(),href:"/stats"}),s.jsx(g,{label:"Functions",value:l,href:"/functions"}),s.jsx(g,{label:"Ext Calls",value:m,href:"/calls"}),s.jsx(g,{label:"Issues",value:x,href:"/issues"})]}),s.jsx("div",{className:"mb-6",children:t?s.jsx("div",{className:"rounded-lg border border-border-subtle bg-surface-1 p-6",children:s.jsx("div",{className:"mx-auto max-w-3xl",children:s.jsx(p,{content:t})})}):s.jsx(i.v,{command:"hex overview"})}),s.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3 stagger",children:h.map(e=>(0,s.jsxs)(o(),{href:e.href,className:"group flex items-start gap-3 rounded-lg border border-border-subtle bg-surface-1 p-4 hover:border-border-default hover:bg-surface-2",children:[s.jsx("div",{className:"shrink-0 text-text-tertiary group-hover:text-accent",children:e.icon}),(0,s.jsxs)("div",{children:[s.jsx("h3",{className:"text-heading font-medium text-text-primary group-hover:text-accent",children:e.label}),s.jsx("p",{className:"mt-0.5 text-caption text-text-secondary",children:e.description})]})]},e.href))})]})}function g({label:e,value:t,href:r}){let a=null==t,n=(0,s.jsxs)("div",{className:`rounded-lg border border-border-subtle bg-surface-1 p-4 ${r?"hover:border-border-default hover:bg-surface-2 cursor-pointer":""}`,children:[s.jsx("div",{className:`text-display scale-in ${a?"text-text-tertiary":"text-text-primary"}`,children:t??"--"}),s.jsx("div",{className:"mt-1 text-caption text-text-secondary",children:e})]});return r?s.jsx(o(),{href:r,children:n}):n}},446:(e,t,r)=>{"use strict";r.d(t,{v:()=>a});var s=r(5023);function a({command:e}){return(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center border border-dashed border-border-default bg-surface-1 px-sp-5 py-sp-8 text-center",style:{borderRadius:"var(--radius-sm)"},children:[s.jsx("svg",{className:"mb-4 h-12 w-12 text-text-tertiary",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m6.75 12H9.75m3 0H9.75m0 0v3m-3-6h1.5m-1.5 0v3m6-6h.008v.008H15V9.75Z"})}),s.jsx("h3",{className:"mb-2 text-heading font-medium text-text-primary",children:"Data not yet generated"}),s.jsx("p",{className:"mb-4 text-body text-text-secondary",children:"Run the following command to generate this data:"}),s.jsx("code",{className:"border border-border-default bg-surface-0 px-sp-4 py-sp-2 font-mono text-body text-accent",style:{borderRadius:"var(--radius-sm)"},children:e})]})}},6843:(e,t,r)=>{"use strict";let{createProxy:s}=r(2772);e.exports=s("/home/dx/Work/hex/node_modules/next/dist/client/link.js")},2950:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});var s=r(1645);let a=e=>[{type:"image/svg+xml",sizes:"any",url:(0,s.fillMetadataSegment)(".",e.params,"icon.svg")+"?83fa4bf1ef0d214d"}]}};var t=require("../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[916,649,645,494,530],()=>r(7222));module.exports=s})();
1
+ (()=>{var e={};e.id=931,e.ids=[931],e.modules={7849:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external")},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},5403:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},4749:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},7561:e=>{"use strict";e.exports=require("node:fs")},9411:e=>{"use strict";e.exports=require("node:path")},1017:e=>{"use strict";e.exports=require("path")},7310:e=>{"use strict";e.exports=require("url")},7222:(e,t,s)=>{"use strict";s.r(t),s.d(t,{GlobalError:()=>a.a,__next_app__:()=>m,originalPathname:()=>u,pages:()=>d,routeModule:()=>x,tree:()=>l}),s(1929),s(7415),s(2874);var i=s(7105),r=s(5265),n=s(157),a=s.n(n),o=s(4665),c={};for(let e in o)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(c[e]=()=>o[e]);s.d(t,c);let l=["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(s.bind(s,1929)),"/home/dx/Work/hex/dashboard/app/page.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(s.bind(s,7415)),"/home/dx/Work/hex/dashboard/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(s.t.bind(s,2874,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],d=["/home/dx/Work/hex/dashboard/app/page.tsx"],u="/page",m={require:s,loadChunk:()=>Promise.resolve()},x=new i.AppPageRouteModule({definition:{kind:r.x.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:l}})},9720:(e,t,s)=>{Promise.resolve().then(s.t.bind(s,696,23))},1929:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>j,dynamic:()=>b});var i=s(5023),r=s(6843),n=s.n(r),a=s(1720),o=s(9222),c=s(6905);function l({pct:e,size:t=120,stroke:s=8}){let r=(t-s)/2,n=2*Math.PI*r,a=Math.max(0,Math.min(100,e));return(0,i.jsxs)("svg",{width:t,height:t,viewBox:`0 0 ${t} ${t}`,role:"img","aria-label":`${a}% cleared`,children:[i.jsx("circle",{cx:t/2,cy:t/2,r:r,fill:"none",stroke:"var(--surface-3)",strokeWidth:s}),i.jsx("circle",{cx:t/2,cy:t/2,r:r,fill:"none",stroke:"var(--success)",strokeWidth:s,strokeLinecap:"round",strokeDasharray:`${a/100*n} ${n}`,transform:`rotate(-90 ${t/2} ${t/2})`,style:{transition:"stroke-dasharray 600ms var(--ease-out)"}}),(0,i.jsxs)("text",{x:"50%",y:"50%",dominantBaseline:"central",textAnchor:"middle",fill:"var(--text-primary)",style:{fontSize:.24*t,fontWeight:600,fontFamily:"var(--font-sans)"},children:[a,"%"]})]})}var d=s(4708);let u={unread:"Unread",read:"Read",questioned:"Questioned",cleared:"Cleared"};function m({state:e,className:t}){let s=(0,d.cn)("h-3.5 w-3.5 shrink-0",t),r=u[e];return"cleared"===e?(0,i.jsxs)("svg",{viewBox:"0 0 14 14",className:s,role:"img","aria-label":r,children:[i.jsx("circle",{cx:"7",cy:"7",r:"5.5",fill:"var(--success)"}),i.jsx("path",{d:"m4.6 7.2 1.7 1.7 3.2-3.6",stroke:"var(--surface-0)",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})]}):"questioned"===e?(0,i.jsxs)("svg",{viewBox:"0 0 14 14",className:s,role:"img","aria-label":r,children:[i.jsx("circle",{cx:"7",cy:"7",r:"5.25",fill:"none",stroke:"var(--medium)",strokeWidth:"1.5"}),i.jsx("path",{d:"M5.6 5.6a1.45 1.45 0 1 1 2.1 1.3c-.45.25-.7.55-.7 1.05",stroke:"var(--medium)",strokeWidth:"1.3",fill:"none",strokeLinecap:"round"}),i.jsx("circle",{cx:"7",cy:"9.9",r:".75",fill:"var(--medium)"})]}):"read"===e?(0,i.jsxs)("svg",{viewBox:"0 0 14 14",className:s,role:"img","aria-label":r,children:[i.jsx("circle",{cx:"7",cy:"7",r:"5.25",fill:"none",stroke:"var(--text-secondary)",strokeWidth:"1.5"}),i.jsx("path",{d:"M7 1.75a5.25 5.25 0 0 1 0 10.5Z",fill:"var(--text-secondary)"})]}):i.jsx("svg",{viewBox:"0 0 14 14",className:s,role:"img","aria-label":r,children:i.jsx("circle",{cx:"7",cy:"7",r:"5.25",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"1.5"})})}let x={critical:"var(--critical)",high:"var(--high)",medium:"var(--medium)",low:"var(--low)",info:"var(--info)"};function p({severity:e,label:t=!0,className:s}){return(0,i.jsxs)("span",{className:(0,d.cn)("inline-flex items-center gap-1.5 whitespace-nowrap",s),children:[i.jsx("span",{"aria-hidden":"true",className:"inline-block h-2 w-2 shrink-0 rounded-full",style:{background:x[e.toLowerCase()]??"var(--info)"}}),t?i.jsx("span",{children:e}):i.jsx("span",{className:"sr-only",children:e})]})}var h=s(6132);function f({children:e,...t}){return i.jsx("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",...t,children:e})}let g=e=>i.jsx(f,{...e,children:i.jsx("path",{d:"m9 5.25 6.75 6.75L9 18.75"})}),y=e=>i.jsx(f,{...e,children:i.jsx("path",{d:"M4.5 12h15M13.5 6l6 6-6 6"})}),v={Critical:0,High:1,Medium:2,Low:3,Info:4},_={manual:"Manual",auditagent:"AuditAgent","ai-audit":"AI audit",conformance:"Conformance",github:"GitHub","prior-audit":"Prior audit",invariant:"Invariant"},b="force-dynamic";function j(){let e=(0,c.zi)(),t=(0,c.Aw)(5),s=e?.project,r=s?.mode==="diff",d=r?(0,a.gn)("diff.json"):null,u=(0,o.b4)().filter(e=>"potential"===e.column||e.validation?.auto_moved_to&&("verified"===e.column||"invalid"===e.column)).sort((e,t)=>Number(!!t.validation?.auto_moved_to)-Number(!!e.validation?.auto_moved_to)||(v[e.severity]??5)-(v[t.severity]??5)),x=[r?"Differential audit":"Full audit",s?.solidity_version?`Solidity ${s.solidity_version}`:null,s?.scope?`${s.scope.length} file${1===s.scope.length?"":"s"} in scope`:null,s?.commit?s.commit.slice(0,8):null].filter(Boolean),f=t.blind_spots[0],b=t.rows.length,j=t.counts.unread+t.counts.read+t.counts.questioned;return i.jsx("div",{className:"h-full overflow-y-auto",children:(0,i.jsxs)("div",{className:"mx-auto max-w-[720px] px-6 pb-16 pt-14 md:px-8",children:[(0,i.jsxs)("header",{className:"rise-in",children:[i.jsx("h1",{className:"text-display font-semibold tracking-tight text-text-primary",children:s?.name??"Hex"}),i.jsx("p",{className:"mt-1.5 text-body text-text-tertiary",children:x.join(" \xb7 ")})]}),null===t.facts_source?i.jsx("div",{className:"mt-12",children:i.jsx(h.u,{sentence:"Nothing to review yet: Hex needs the compiler facts for this project.",command:"hex facts"})}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("section",{className:"rise-in mt-10 flex flex-col items-start gap-6 sm:flex-row sm:items-center sm:gap-8",children:[i.jsx(l,{pct:t.pct}),(0,i.jsxs)("div",{className:"min-w-0 flex-1",children:[i.jsx("h2",{className:"text-heading font-medium text-text-primary",children:100===t.pct?"Every in-scope function is cleared":"In-scope code cleared"}),(0,i.jsxs)("p",{className:"mt-1 text-body text-text-secondary",children:[t.cleared_nsloc.toLocaleString()," of ",t.total_nsloc.toLocaleString()," ","nSLOC \xb7 ",j," of ",b," function",1===b?"":"s"," still open",t.counts.questioned>0&&` \xb7 ${t.counts.questioned} questioned`]}),f&&(0,i.jsxs)(n(),{href:`/review?fn=${encodeURIComponent(f.id)}`,className:"mt-4 inline-flex h-8 items-center gap-2 rounded-md bg-accent px-3 text-body font-medium text-accent-contrast shadow-sm hover:bg-accent-secondary",children:["Continue with ",f.contract,".",f.name,i.jsx(y,{className:"h-4 w-4"})]})]})]}),"parser-fallback"===t.facts_source&&(0,i.jsxs)("p",{className:"mt-6 text-caption text-text-tertiary",children:[i.jsx("span",{className:"mr-1.5 inline-block h-1.5 w-1.5 rounded-full align-middle",style:{background:"var(--medium)"}}),"Facts come from the parser fallback because the build failed, so call graphs may be incomplete. Fix the build and run ",i.jsx("code",{className:"font-mono",children:"hex facts"}),"."]})]}),r&&(0,i.jsxs)(n(),{href:"/changes",className:"group mt-10 flex items-center gap-4 border-y border-border-subtle py-4 hover:border-border-default",children:[(0,i.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,i.jsxs)("div",{className:"text-body font-medium text-text-primary",children:["Changes since"," ",i.jsx("span",{className:"font-mono text-caption",children:(d?.base_commit??s?.diff?.base_commit??"").slice(0,8)})]}),i.jsx("div",{className:"mt-0.5 text-caption text-text-tertiary",children:d?[`${d.summary.files_changed} file${1===d.summary.files_changed?"":"s"} changed`,`${d.summary.impacted_entry_points} impacted entry point${1===d.summary.impacted_entry_points?"":"s"}`,d.summary.storage_layout_changes?`${d.summary.storage_layout_changes} storage layout change${1===d.summary.storage_layout_changes?"":"s"}`:null].filter(Boolean).join(" \xb7 "):"Run hex diff to compute the change set"})]}),i.jsx(g,{className:"h-4 w-4 text-text-tertiary group-hover:text-text-primary"})]}),t.blind_spots.length>0&&(0,i.jsxs)("section",{className:"mt-10",children:[i.jsx("h2",{className:"mb-2 text-heading font-medium text-text-primary",children:"Next up"}),i.jsx("p",{className:"mb-3 text-caption text-text-tertiary",children:"Risky code nobody has looked at closely yet."}),i.jsx("ul",{className:"stagger divide-y divide-border-subtle border-y border-border-subtle",children:t.blind_spots.map(e=>i.jsx("li",{children:(0,i.jsxs)(n(),{href:`/review?fn=${encodeURIComponent(e.id)}`,className:"group -mx-2 flex items-center gap-3 rounded-md px-2 py-2.5 hover:bg-surface-1",children:[i.jsx(m,{state:e.state}),(0,i.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,i.jsxs)("span",{className:"block truncate text-body text-text-primary",children:[e.contract,".",i.jsx("span",{className:"font-medium",children:e.name})]}),i.jsx("span",{className:"block truncate text-caption text-text-tertiary",children:e.risk_reasons.slice(0,3).join(" \xb7 ")||`${e.nsloc} nSLOC`})]}),i.jsx(g,{className:"h-4 w-4 shrink-0 text-text-tertiary opacity-0 group-hover:opacity-100"})]})},e.id))})]}),(0,i.jsxs)("section",{className:"mt-10",children:[i.jsx("h2",{className:"mb-2 text-heading font-medium text-text-primary",children:"Needs triage"}),0===u.length?i.jsx("p",{className:"text-body text-text-tertiary",children:"No cards are waiting for you."}):(0,i.jsxs)(i.Fragment,{children:[i.jsx("p",{className:"mb-3 text-caption text-text-tertiary",children:"Potential cards, and cards an agent moved on its own that deserve a glance."}),i.jsx("ul",{className:"stagger divide-y divide-border-subtle border-y border-border-subtle",children:u.slice(0,8).map(e=>i.jsx("li",{children:(0,i.jsxs)(n(),{href:`/issues?card=${encodeURIComponent(e.id)}`,className:"group -mx-2 flex items-center gap-3 rounded-md px-2 py-2.5 hover:bg-surface-1",children:[i.jsx(p,{severity:e.severity,label:!1}),(0,i.jsxs)("span",{className:"min-w-0 flex-1",children:[i.jsx("span",{className:"block truncate text-body text-text-primary",children:e.title}),(0,i.jsxs)("span",{className:"block truncate text-caption text-text-tertiary",children:[e.id," \xb7 ",function(e){let t=e.validation?.auto_moved_to;return t?`An agent moved it to ${"verified"===t?"Verified":"Rejected"}`:`${_[e.source]??e.source} \xb7 awaiting validation`}(e)]})]}),i.jsx(g,{className:"h-4 w-4 shrink-0 text-text-tertiary opacity-0 group-hover:opacity-100"})]})},e.id))}),u.length>8&&(0,i.jsxs)(n(),{href:"/issues",className:"mt-2 inline-block text-caption text-text-secondary hover:text-text-primary",children:[u.length-8," more on the board"]})]})]})]})})}},6132:(e,t,s)=>{"use strict";s.d(t,{u:()=>n});var i=s(5023),r=s(4708);function n({sentence:e,command:t,className:s}){return(0,i.jsxs)("div",{className:(0,r.cn)("flex h-full min-h-[200px] flex-col items-center justify-center px-6 text-center fade-in",s),children:[i.jsx("p",{className:"max-w-sm text-body text-text-secondary",children:e}),t&&i.jsx("code",{className:"mt-3 rounded-md bg-surface-2 px-2.5 py-1 font-mono text-caption text-text-primary",children:t})]})}},4708:(e,t,s)=>{"use strict";function i(...e){return e.filter(Boolean).join(" ")}s.d(t,{cn:()=>i})},9222:(e,t,s)=>{"use strict";s.d(t,{b4:()=>o,lW:()=>c});var i=s(1720),r=s(3478),n=s(6905);function a(e,t){return"verified"!==e&&"synced"!==e?"none":t?.issue_number?t.sync_status&&"in_sync"!==t.sync_status?"conflict":"closed"===t.state?"synced_closed":"synced_open":"unsynced"}function o(){let e=(0,i.gn)("findings.json")??{findings:[]},t=(0,i.gn)("tracking.json")??{findings:[]},s=(0,i.gn)("comparison.json")??{},o=(0,i.gn)("spec-conformance.json")??{},c=(0,n.Ge)(),l=(0,n.G2)(),d=new Map(e.findings.map(e=>[e.id,e])),u=new Map((o.items??[]).map(e=>[e.id,e])),m=new Map;for(let e of["ai-results","external"])for(let t of(0,i.J1)(e)){let s=(0,i.V9)(`${e}/${t}/findings.json`);for(let e of s?.findings??[])m.set(e.id,e)}let x=new Map((s.duplicates??[]).map(e=>[e.ai_finding,e])),p=(e,t,s,i)=>{if(!c)return[];try{return(0,r.VK)(c,{id:e,title:t,description:s,root_cause:{locations:i}},l)}catch{return[]}},h=[],f=new Set;for(let e of t.findings){let t=d.get(e.id),s=m.get(e.id),i=u.get(e.id),r=t?.description??s?.description??i?.finding??"",n=t?.root_cause?.locations?.map(e=>({file:e.file,snippet:e.snippet}))??s?.affected_code?.map(e=>({file:e.file,snippet:e.snippet}))??(i?.code_location?.file?[{file:i.code_location.file}]:[]),o=x.get(e.id),c=e.title||t?.title||s?.title||i?.spec_text||e.id;f.add(e.id),h.push({id:e.id,title:c,severity:e.severity,source:e.source??"manual",status:e.status??"pending_validation",column:function(e){switch(e){case"verified":return"verified";case"synced":return"synced";case"rejected":return"invalid";case"duplicate":return"duplicate";default:return"potential"}}(e.status),description:r,recommendation:t?.recommendation??"",resolution:t?.resolution,update_from_client:t?.update_from_client,code_locations:n,github_issue_url:t?.github?.issue_url,github_issue_number:t?.github?.issue_number,github_state:t?.github?.state,sync_state:a(e.status,t?.github),duplicate_of:e.duplicate_of??o?.matches??null,match_signals:o?.match_signals?{contract:!!o.match_signals.contract,function:!!o.match_signals.function,root_cause:String(o.match_signals.root_cause??""),attack_vector:String(o.match_signals.attack_vector??"")}:void 0,reasoning:o?.reasoning,category:t?.category||s?.category,poc_status:e.poc_status??t?.poc?.status,poc_file:e.poc_file??t?.poc?.file??null,notes:e.notes??"",source_ref:e.source_ref??t?.source_ref??null,validation:e.validation??t?.validation,functions:p(e.id,c,r,n)})}for(let t of e.findings){if(f.has(t.id))continue;let e=t.root_cause?.locations??[];h.push({id:t.id,title:t.title,severity:t.severity,source:"manual",status:"verified",column:"verified",description:t.description??"",recommendation:t.recommendation??"",resolution:t.resolution,update_from_client:t.update_from_client,code_locations:e,github_issue_url:t.github?.issue_url,github_issue_number:t.github?.issue_number,github_state:t.github?.state,sync_state:a("verified",t.github),duplicate_of:null,category:t.category,poc_status:t.poc?.status,poc_file:t.poc?.file??null,notes:"",source_ref:t.source_ref??null,validation:t.validation,functions:p(t.id,t.title,t.description??"",e)})}return h}function c(e=o()){let t={};for(let s of e)t[s.id]={id:s.id,title:s.title,severity:s.severity,column:s.column};return t}},6843:(e,t,s)=>{"use strict";let{createProxy:i}=s(2772);e.exports=i("/home/dx/Work/hex/node_modules/next/dist/client/link.js")},2950:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>r});var i=s(1645);let r=e=>[{type:"image/svg+xml",sizes:"any",url:(0,i.fillMetadataSegment)(".",e.params,"icon.svg")+"?83fa4bf1ef0d214d"}]}};var t=require("../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),i=t.X(0,[916,649,645,42,310,370],()=>s(7222));module.exports=i})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/package.json","../../../../package.json","../../package.json","../chunks/494.js","../chunks/530.js","../chunks/645.js","../chunks/649.js","../chunks/916.js","../webpack-runtime.js","page_client-reference-manifest.js"]}
1
+ {"version":1,"files":["../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/package.json","../../../../package.json","../../package.json","../chunks/310.js","../chunks/370.js","../chunks/42.js","../chunks/645.js","../chunks/649.js","../chunks/916.js","../webpack-runtime.js","page_client-reference-manifest.js"]}
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"3443":{"*":{"id":"7406","name":"*","chunks":[],"async":false}},"4595":{"*":{"id":"1388","name":"*","chunks":[],"async":false}},"9922":{"*":{"id":"8033","name":"*","chunks":[],"async":false}},"11076":{"*":{"id":"9323","name":"*","chunks":[],"async":false}},"11447":{"*":{"id":"5915","name":"*","chunks":[],"async":false}},"13037":{"*":{"id":"226","name":"*","chunks":[],"async":false}},"15276":{"*":{"id":"820","name":"*","chunks":[],"async":false}},"25268":{"*":{"id":"3817","name":"*","chunks":[],"async":false}},"27542":{"*":{"id":"9555","name":"*","chunks":[],"async":false}},"29487":{"*":{"id":"6844","name":"*","chunks":[],"async":false}},"30274":{"*":{"id":"7918","name":"*","chunks":[],"async":false}},"37780":{"*":{"id":"8664","name":"*","chunks":[],"async":false}},"43297":{"*":{"id":"1611","name":"*","chunks":[],"async":false}},"56902":{"*":{"id":"2541","name":"*","chunks":[],"async":false}},"67498":{"*":{"id":"696","name":"*","chunks":[],"async":false}},"71520":{"*":{"id":"5707","name":"*","chunks":[],"async":false}},"72024":{"*":{"id":"2857","name":"*","chunks":[],"async":false}},"73719":{"*":{"id":"526","name":"*","chunks":[],"async":false}},"77701":{"*":{"id":"8530","name":"*","chunks":[],"async":false}},"89690":{"*":{"id":"2204","name":"*","chunks":[],"async":false}},"92198":{"*":{"id":"9915","name":"*","chunks":[],"async":false}},"93362":{"*":{"id":"5289","name":"*","chunks":[],"async":false}},"99754":{"*":{"id":"4790","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/dx/Work/hex/node_modules/next/dist/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/globals.css":{"id":13812,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/dashboard/components/CommandPalette.tsx":{"id":92198,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/dashboard/components/DashboardLayout.tsx":{"id":30274,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/node_modules/next-themes/dist/index.mjs":{"id":4595,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Manrope\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\",\"display\":\"swap\"}],\"variableName\":\"manrope\"}":{"id":41600,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"JetBrains_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\",\"display\":\"swap\"}],\"variableName\":\"jetbrainsMono\"}":{"id":55256,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/dashboard/app/diagram/page.tsx":{"id":73719,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/flows/page.tsx":{"id":3443,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/calls/CallsClient.tsx":{"id":93362,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx":{"id":71520,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/access/AccessClient.tsx":{"id":13037,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/notes/NotesClient.tsx":{"id":72024,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/conformance/ConformanceTable.tsx":{"id":27542,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/functions/FunctionsClient.tsx":{"id":37780,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/report/ReportClient.tsx":{"id":56902,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/stats/StatsClient.tsx":{"id":9922,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/progress/ProgressClient.tsx":{"id":77701,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/issues/IssuesBoardClient.tsx":{"id":99754,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/components/MarkdownRenderer.tsx":{"id":29487,"name":"*","chunks":["7397","static/chunks/7397-37adf76cad543297.js","7498","static/chunks/7498-d1814d68ba346d13.js","1931","static/chunks/app/page-d63800ddb072b77b.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/link.js":{"id":67498,"name":"*","chunks":["7397","static/chunks/7397-37adf76cad543297.js","7498","static/chunks/7498-d1814d68ba346d13.js","1931","static/chunks/app/page-d63800ddb072b77b.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/link.js":{"id":67498,"name":"*","chunks":["7397","static/chunks/7397-37adf76cad543297.js","7498","static/chunks/7498-d1814d68ba346d13.js","1931","static/chunks/app/page-d63800ddb072b77b.js"],"async":false}},"entryCSSFiles":{"/home/dx/Work/hex/dashboard/":[],"/home/dx/Work/hex/dashboard/app/layout":["static/css/1112cea2260b3926.css"],"/home/dx/Work/hex/dashboard/app/page":[]}}
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"4595":{"*":{"id":"1388","name":"*","chunks":[],"async":false}},"11076":{"*":{"id":"9323","name":"*","chunks":[],"async":false}},"11447":{"*":{"id":"5915","name":"*","chunks":[],"async":false}},"15276":{"*":{"id":"820","name":"*","chunks":[],"async":false}},"25268":{"*":{"id":"3817","name":"*","chunks":[],"async":false}},"43297":{"*":{"id":"1611","name":"*","chunks":[],"async":false}},"52331":{"*":{"id":"1174","name":"*","chunks":[],"async":false}},"56902":{"*":{"id":"2541","name":"*","chunks":[],"async":false}},"63237":{"*":{"id":"281","name":"*","chunks":[],"async":false}},"67498":{"*":{"id":"696","name":"*","chunks":[],"async":false}},"68916":{"*":{"id":"5314","name":"*","chunks":[],"async":false}},"71520":{"*":{"id":"5707","name":"*","chunks":[],"async":false}},"81751":{"*":{"id":"3368","name":"*","chunks":[],"async":false}},"84300":{"*":{"id":"9939","name":"*","chunks":[],"async":false}},"85581":{"*":{"id":"6462","name":"*","chunks":[],"async":false}},"88554":{"*":{"id":"1352","name":"*","chunks":[],"async":false}},"89690":{"*":{"id":"2204","name":"*","chunks":[],"async":false}},"92198":{"*":{"id":"9915","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/dx/Work/hex/node_modules/next/dist/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/globals.css":{"id":13812,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/AutoRefresh.tsx":{"id":84300,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/CommandPalette.tsx":{"id":92198,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Sidebar.tsx":{"id":63237,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Toast.tsx":{"id":88554,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next-themes/dist/index.mjs":{"id":4595,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Manrope\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\",\"display\":\"swap\"}],\"variableName\":\"manrope\"}":{"id":41600,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"JetBrains_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\",\"display\":\"swap\"}],\"variableName\":\"jetbrainsMono\"}":{"id":55256,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx":{"id":71520,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/components/ui/SplitView.tsx":{"id":81751,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/issues/BoardClient.tsx":{"id":68916,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/model/ModelClient.tsx":{"id":85581,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/report/ReportClient.tsx":{"id":56902,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/review/ReviewClient.tsx":{"id":52331,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/link.js":{"id":67498,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","1931","static/chunks/app/page-0e67750d99fb2836.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/link.js":{"id":67498,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","1931","static/chunks/app/page-0e67750d99fb2836.js"],"async":false}},"entryCSSFiles":{"/home/dx/Work/hex/dashboard/":[],"/home/dx/Work/hex/dashboard/app/layout":["static/css/ceafd91ca8dd753d.css"],"/home/dx/Work/hex/dashboard/app/page":[]}}
@@ -1 +1 @@
1
- (()=>{var e={};e.id=420,e.ids=[420],e.modules={7849:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external")},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},5403:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},4749:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},7561:e=>{"use strict";e.exports=require("node:fs")},9411:e=>{"use strict";e.exports=require("node:path")},1017:e=>{"use strict";e.exports=require("path")},7310:e=>{"use strict";e.exports=require("url")},2933:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>i.a,__next_app__:()=>p,originalPathname:()=>x,pages:()=>c,routeModule:()=>m,tree:()=>l}),r(3195),r(819),r(2874);var s=r(7105),a=r(5265),o=r(157),i=r.n(o),n=r(4665),d={};for(let e in n)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(d[e]=()=>n[e]);r.d(t,d);let l=["",{children:["report",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,3195)),"/home/dx/Work/hex/dashboard/app/report/page.tsx"]}]},{metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(r.bind(r,819)),"/home/dx/Work/hex/dashboard/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,2874,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],c=["/home/dx/Work/hex/dashboard/app/report/page.tsx"],x="/report/page",p={require:r,loadChunk:()=>Promise.resolve()},m=new s.AppPageRouteModule({definition:{kind:a.x.APP_PAGE,page:"/report/page",pathname:"/report",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:l}})},1415:(e,t,r)=>{Promise.resolve().then(r.bind(r,2541))},2541:(e,t,r)=>{"use strict";r.d(t,{ReportClient:()=>i});var s=r(9899),a=r(5507);let o=[{key:"executive_summary",label:"Executive Summary",file:"executive_summary.txt"},{key:"audited_files",label:"Audited Files",file:"audited_files.txt"},{key:"summary_of_findings",label:"Summary of Issues",file:"summary_of_findings.txt"},{key:"system_overview",label:"System Overview",file:"system_overview.txt"},{key:"findings",label:"Issues",file:"findings.txt"},{key:"documentation_eval",label:"Documentation Eval",file:"documentation_eval.txt"},{key:"test_suite",label:"Test Suite",file:"test_suite.txt"}];function i({sections:e}){let[t,r]=(0,a.useState)("executive_summary"),[i,n]=(0,a.useState)(!1),d=e[t],l=async()=>{if(d)try{await navigator.clipboard.writeText(d),n(!0),setTimeout(()=>n(!1),1500)}catch{}};return(0,s.jsxs)("div",{children:[(0,s.jsxs)("header",{className:"mb-6",children:[s.jsx("h1",{className:"text-title font-semibold text-text-primary",children:"Report"}),(0,s.jsxs)("p",{className:"mt-1 text-body text-text-secondary",children:["LaTeX report sections from ",s.jsx("span",{className:"font-mono text-caption",children:".hex/report/"}),". Copy each into the matching slot of the Nethermind Overleaf template, or"," ",s.jsx("span",{className:"font-mono text-caption",children:"\\input"})," the matching"," ",s.jsx("span",{className:"font-mono text-caption",children:".tex"})," files."]})]}),s.jsx("div",{className:"mb-4 flex flex-wrap gap-1.5",children:o.map(a=>{let o=a.key===t,i=!!e[a.key];return s.jsx("button",{type:"button",onClick:()=>r(a.key),className:`rounded-md px-3 py-1.5 text-caption font-medium ${o?"bg-accent text-surface-0":"bg-surface-2 text-text-secondary hover:text-text-primary"} ${i?"":"opacity-50"}`,children:a.label},a.key)})}),(0,s.jsxs)("div",{className:"rounded-lg border border-border-subtle bg-surface-1",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between border-b border-border-subtle px-4 py-2.5",children:[s.jsx("span",{className:"font-mono text-caption text-text-tertiary",children:o.find(e=>e.key===t)?.file}),s.jsx("button",{type:"button",onClick:l,disabled:!d,className:"rounded-md border border-border-default px-2.5 py-1 text-caption text-text-secondary hover:bg-surface-2 hover:text-text-primary disabled:opacity-50",children:i?"Copied!":"Copy"})]}),d?s.jsx("pre",{className:"max-h-[70vh] overflow-auto p-4 font-mono text-caption leading-relaxed text-text-secondary whitespace-pre-wrap break-words",children:d}):(0,s.jsxs)("p",{className:"p-4 text-body text-text-tertiary",children:["This section has not been generated yet. Run"," ",s.jsx("span",{className:"font-mono text-caption",children:"/generate-report"}),"."]})]})]})}},3195:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>p,dynamic:()=>x});var s=r(5023),a=r(1720),o=r(446),i=r(2772);let n=(0,i.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/report/ReportClient.tsx`),{__esModule:d,$$typeof:l}=n;n.default;let c=(0,i.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/report/ReportClient.tsx#ReportClient`),x="force-dynamic";function p(){let e={executive_summary:(0,a.ws)("report/executive_summary.txt"),audited_files:(0,a.ws)("report/audited_files.txt"),summary_of_findings:(0,a.ws)("report/summary_of_findings.txt"),system_overview:(0,a.ws)("report/system_overview.txt"),findings:(0,a.ws)("report/findings.txt"),documentation_eval:(0,a.ws)("report/documentation_eval.txt"),test_suite:(0,a.ws)("report/test_suite.txt")};return Object.values(e).some(Boolean)?s.jsx(c,{sections:e}):(0,s.jsxs)("div",{children:[(0,s.jsxs)("header",{className:"mb-6",children:[s.jsx("h1",{className:"text-title font-semibold text-text-primary",children:"Report"}),s.jsx("p",{className:"mt-1 text-body text-text-secondary",children:"LaTeX report sections, ready to paste into the Nethermind Overleaf template."})]}),s.jsx(o.v,{command:"/generate-report"})]})}},446:(e,t,r)=>{"use strict";r.d(t,{v:()=>a});var s=r(5023);function a({command:e}){return(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center border border-dashed border-border-default bg-surface-1 px-sp-5 py-sp-8 text-center",style:{borderRadius:"var(--radius-sm)"},children:[s.jsx("svg",{className:"mb-4 h-12 w-12 text-text-tertiary",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m6.75 12H9.75m3 0H9.75m0 0v3m-3-6h1.5m-1.5 0v3m6-6h.008v.008H15V9.75Z"})}),s.jsx("h3",{className:"mb-2 text-heading font-medium text-text-primary",children:"Data not yet generated"}),s.jsx("p",{className:"mb-4 text-body text-text-secondary",children:"Run the following command to generate this data:"}),s.jsx("code",{className:"border border-border-default bg-surface-0 px-sp-4 py-sp-2 font-mono text-body text-accent",style:{borderRadius:"var(--radius-sm)"},children:e})]})}},2950:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});var s=r(1645);let a=e=>[{type:"image/svg+xml",sizes:"any",url:(0,s.fillMetadataSegment)(".",e.params,"icon.svg")+"?83fa4bf1ef0d214d"}]}};var t=require("../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[916,649,645,530],()=>r(2933));module.exports=s})();
1
+ (()=>{var e={};e.id=420,e.ids=[420],e.modules={7849:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external")},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},5403:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},4749:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},7561:e=>{"use strict";e.exports=require("node:fs")},9411:e=>{"use strict";e.exports=require("node:path")},1017:e=>{"use strict";e.exports=require("path")},7310:e=>{"use strict";e.exports=require("url")},2933:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>i.a,__next_app__:()=>m,originalPathname:()=>x,pages:()=>d,routeModule:()=>u,tree:()=>c}),r(3195),r(7415),r(2874);var s=r(7105),n=r(5265),a=r(157),i=r.n(a),o=r(4665),l={};for(let e in o)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>o[e]);r.d(t,l);let c=["",{children:["report",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,3195)),"/home/dx/Work/hex/dashboard/app/report/page.tsx"]}]},{metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(r.bind(r,7415)),"/home/dx/Work/hex/dashboard/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,2874,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],d=["/home/dx/Work/hex/dashboard/app/report/page.tsx"],x="/report/page",m={require:r,loadChunk:()=>Promise.resolve()},u=new s.AppPageRouteModule({definition:{kind:n.x.APP_PAGE,page:"/report/page",pathname:"/report",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},3868:(e,t,r)=>{Promise.resolve().then(r.bind(r,2541)),Promise.resolve().then(r.bind(r,3368))},2541:(e,t,r)=>{"use strict";r.d(t,{ReportClient:()=>p});var s=r(9899),n=r(4175),a=r(5507),i=r(6153),o=r(3368),l=r(733),c=r(382),d=r(8110),x=r(1352),m=r(8279);let u=[{key:"executive_summary",label:"Executive summary",file:"executive_summary.txt"},{key:"audited_files",label:"Audited files",file:"audited_files.txt"},{key:"summary_of_findings",label:"Summary of issues",file:"summary_of_findings.txt"},{key:"system_overview",label:"System overview",file:"system_overview.txt"},{key:"findings",label:"Issues",file:"findings.txt"},{key:"documentation_eval",label:"Documentation",file:"documentation_eval.txt"},{key:"test_suite",label:"Test suite",file:"test_suite.txt"}];function p({sections:e,figures:t}){let r=(0,i.useSearchParams)(),p=(0,x.p)(),h=u.filter(t=>e[t.key]).length,f=[...u.map(e=>e.key),...t.length?["figures"]:[]],[y,g]=(0,a.useState)(()=>{let s=r.get("s");return s&&f.includes(s)?s:u.find(t=>e[t.key])?.key??(t.length?"figures":"executive_summary")});(0,m.y)({j:()=>g(f[Math.min(f.length-1,f.indexOf(y)+1)]),k:()=>g(f[Math.max(0,f.indexOf(y)-1)])});let b=u.find(e=>e.key===y),v="figures"===y?null:e[y],w=async()=>{if(v)try{await navigator.clipboard.writeText(v),p({message:`${b?.label??"Section"} copied`})}catch{p({message:"Clipboard is not available here",tone:"error"})}};return s.jsx(o.z,{toolbar:s.jsx(o.Toolbar,{title:"Report",meta:`${h} of ${u.length} sections ready`}),listWidth:240,list:(0,s.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto p-2",children:[s.jsx(l.i,{children:"Sections"}),u.map(t=>s.jsx(l.w,{dense:!0,selected:y===t.key,onClick:()=>g(t.key),title:t.label,titleClassName:e[t.key]?void 0:"text-text-tertiary",trailing:e[t.key]?void 0:"Not yet"},t.key)),t.length>0&&(0,s.jsxs)(s.Fragment,{children:[s.jsx(l.i,{children:"Figures"}),s.jsx(l.w,{dense:!0,selected:"figures"===y,onClick:()=>g("figures"),title:"Diagrams in the report",trailing:s.jsx("span",{className:"tabular-nums",children:t.length})})]})]}),children:"figures"===y?s.jsx(o.x,{children:(0,s.jsxs)("div",{className:"mx-auto max-w-[900px] px-8 pb-16 pt-8",children:[s.jsx("h2",{className:"text-heading font-medium text-text-primary",children:"Diagrams in the report"}),(0,s.jsxs)("p",{className:"mt-0.5 text-caption text-text-tertiary",children:["PNGs in ",s.jsx("span",{className:"font-mono",children:".hex/report/figures/"}),". Choose which diagrams go in from Model."]}),s.jsx("div",{className:"stagger mt-6 grid gap-6 sm:grid-cols-2",children:t.map(e=>(0,s.jsxs)(n.default,{href:`/model?d=${encodeURIComponent(e.name)}`,className:"group block",children:[s.jsx("div",{className:"overflow-hidden rounded-lg border border-border-subtle bg-white group-hover:border-border-default",children:s.jsx("img",{src:`/api/figures/${encodeURIComponent(e.name)}?v=${e.v}`,alt:e.title,className:"aspect-[4/3] w-full object-contain p-3"})}),s.jsx("div",{className:"mt-2 text-body font-medium text-text-primary",children:e.title}),e.takeaway&&s.jsx("div",{className:"text-caption text-text-tertiary",children:e.takeaway}),(0,s.jsxs)("div",{className:"font-mono text-caption text-text-tertiary",children:["figures/",e.name,".png"]})]},e.name))})]})}):v?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"flex h-12 shrink-0 items-center gap-3 border-b border-border-subtle px-5",children:[(0,s.jsxs)("span",{className:"flex-1 truncate font-mono text-caption text-text-tertiary",children:["report/",b?.file]}),s.jsx(c.z,{variant:"primary",size:"sm",onClick:w,children:"Copy LaTeX"})]}),s.jsx(o.x,{className:"bg-[var(--code-bg)]",children:s.jsx("pre",{className:"mx-auto max-w-[900px] whitespace-pre-wrap break-words px-8 py-6 font-mono text-[12.5px] leading-6 text-text-secondary",children:v})})]}):s.jsx(d.u,{sentence:`${b?.label??"This section"} has not been generated yet.`,command:"/generate-report"})})}},382:(e,t,r)=>{"use strict";r.d(t,{z:()=>l});var s=r(9899),n=r(5507),a=r(1593);let i={primary:"bg-accent text-accent-contrast hover:bg-accent-secondary shadow-sm",secondary:"bg-surface-0 text-text-primary border border-border-default hover:bg-surface-2 shadow-sm",ghost:"text-text-secondary hover:bg-surface-2 hover:text-text-primary"},o={sm:"h-7 px-2.5 text-caption gap-1.5",md:"h-8 px-3 text-body gap-2"},l=(0,n.forwardRef)(function({variant:e="secondary",size:t="md",className:r,type:n="button",...l},c){return s.jsx("button",{ref:c,type:n,className:(0,a.cn)("inline-flex shrink-0 items-center justify-center whitespace-nowrap rounded-md font-medium disabled:pointer-events-none disabled:opacity-40",i[e],o[t],r),...l})})},8110:(e,t,r)=>{"use strict";r.d(t,{u:()=>a});var s=r(9899),n=r(1593);function a({sentence:e,command:t,className:r}){return(0,s.jsxs)("div",{className:(0,n.cn)("flex h-full min-h-[200px] flex-col items-center justify-center px-6 text-center fade-in",r),children:[s.jsx("p",{className:"max-w-sm text-body text-text-secondary",children:e}),t&&s.jsx("code",{className:"mt-3 rounded-md bg-surface-2 px-2.5 py-1 font-mono text-caption text-text-primary",children:t})]})}},733:(e,t,r)=>{"use strict";r.d(t,{i:()=>o,w:()=>i});var s=r(9899),n=r(5507),a=r(1593);let i=(0,n.forwardRef)(function({selected:e,leading:t,title:r,subtitle:n,trailing:i,onClick:o,className:l,dense:c,titleClassName:d,...x},m){return(0,s.jsxs)("button",{ref:m,type:"button",onClick:o,"aria-current":e?"true":void 0,"data-id":x["data-id"],className:(0,a.cn)("group flex w-full items-center gap-2.5 rounded-md px-2.5 text-left",c?"min-h-[30px] py-1":"min-h-[36px] py-1.5",e?"bg-accent-subtle":"hover:bg-surface-2",l),children:[void 0!==t&&s.jsx("span",{className:"flex shrink-0 items-center",children:t}),(0,s.jsxs)("span",{className:"min-w-0 flex-1",children:[s.jsx("span",{className:(0,a.cn)("block truncate text-body",e?"text-accent font-medium":"text-text-primary",d),children:r}),n&&s.jsx("span",{className:"block truncate text-caption text-text-tertiary",children:n})]}),void 0!==i&&s.jsx("span",{className:"flex shrink-0 items-center gap-2 text-caption text-text-tertiary",children:i})]})});function o({children:e,trailing:t}){return(0,s.jsxs)("div",{className:"flex items-baseline justify-between px-2.5 pb-1 pt-4 text-caption font-medium text-text-tertiary first:pt-1",children:[s.jsx("span",{className:"truncate",children:e}),t&&s.jsx("span",{className:"shrink-0 tabular-nums",children:t})]})}},3368:(e,t,r)=>{"use strict";r.d(t,{Toolbar:()=>l,x:()=>c,z:()=>o});var s=r(9899),n=r(6153),a=r(1593),i=r(1781);function o({toolbar:e,list:t,listWidth:r=272,children:o,inspector:l,inspectorFloating:c=!1,className:d}){let x=(0,n.usePathname)().split("/")[1]||"today",m={"--pane-w":`var(--w-${x}-inspector, 340px)`};return(0,s.jsxs)("div",{className:(0,a.cn)("flex h-full min-h-0 flex-col",d),children:[e,(0,s.jsxs)("div",{className:"relative flex min-h-0 flex-1",children:[t&&(0,s.jsxs)("aside",{className:"relative hidden min-h-0 shrink-0 flex-col border-r border-border-subtle md:flex",style:{width:`var(--w-${x}-list, ${r}px)`},children:[t,s.jsx(i.O,{name:`${x}-list`,edge:"right",min:180,max:560})]}),(0,s.jsxs)("section",{className:"relative flex min-h-0 min-w-0 flex-1 flex-col",children:[o,l&&c&&(0,s.jsxs)("aside",{className:"slide-in absolute bottom-3 right-3 top-[68px] z-30 flex w-[min(var(--pane-w),calc(100%-24px))] min-h-0 flex-col rounded-lg border border-border-default bg-surface-1 shadow-lg",style:m,children:[s.jsx("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden rounded-lg",children:l}),s.jsx(i.O,{name:`${x}-inspector`,edge:"left",min:280,max:720})]})]}),l&&!c&&(0,s.jsxs)("aside",{className:"slide-in absolute inset-y-0 right-0 z-30 flex w-[min(380px,100%)] min-h-0 flex-col border-l border-border-subtle bg-surface-1 shadow-lg lg:relative lg:z-auto lg:w-[var(--pane-w)] lg:shrink-0 lg:shadow-none",style:m,children:[l,s.jsx(i.O,{name:`${x}-inspector`,edge:"left",min:280,max:720,className:"hidden lg:block"})]})]})]})}function l({title:e,meta:t,children:r,className:n}){return(0,s.jsxs)("header",{className:(0,a.cn)("flex min-h-[56px] shrink-0 flex-wrap items-center gap-x-4 gap-y-2 border-b border-border-subtle px-5 py-2.5 pl-16 md:pl-5",n),children:[(0,s.jsxs)("div",{className:"flex min-w-0 items-baseline gap-3",children:[s.jsx("h1",{className:"shrink-0 whitespace-nowrap text-title font-semibold text-text-primary",children:e}),t&&s.jsx("div",{className:"min-w-0 truncate text-body text-text-tertiary",children:t})]}),r&&s.jsx("div",{className:"ml-auto flex shrink-0 items-center gap-2",children:r})]})}function c({children:e,className:t}){return s.jsx("div",{className:(0,a.cn)("min-h-0 flex-1 overflow-y-auto",t),children:e})}},8279:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});var s=r(5507);function n(e,t=!0){(0,s.useRef)(e).current=e}},3195:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>p,dynamic:()=>u});var s=r(5023),n=r(1720),a=r(5719),i=r(6132),o=r(2548),l=r(2772);let c=(0,l.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/report/ReportClient.tsx`),{__esModule:d,$$typeof:x}=c;c.default;let m=(0,l.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/report/ReportClient.tsx#ReportClient`),u="force-dynamic";function p(){let e={executive_summary:(0,n.ws)("report/executive_summary.txt"),audited_files:(0,n.ws)("report/audited_files.txt"),summary_of_findings:(0,n.ws)("report/summary_of_findings.txt"),system_overview:(0,n.ws)("report/system_overview.txt"),findings:(0,n.ws)("report/findings.txt"),documentation_eval:(0,n.ws)("report/documentation_eval.txt"),test_suite:(0,n.ws)("report/test_suite.txt")},t=(0,a.FK)(),r=new Set((0,a.Ik)()),l=[];for(let e of t)e.in_report&&r.has(e.name)&&(l.push({name:e.name,title:e.title,takeaway:e.takeaway,v:(0,a.qu)(e.name)}),r.delete(e.name));for(let e of Array.from(r))l.push({name:e,title:e,takeaway:"",v:(0,a.qu)(e)});return Object.values(e).some(Boolean)||0!==l.length?s.jsx(m,{sections:e,figures:l}):(0,s.jsxs)("div",{className:"flex h-full flex-col",children:[s.jsx(o.o8,{title:"Report"}),s.jsx(i.u,{sentence:"The report sections appear here once they are generated.",command:"/generate-report"})]})}},6132:(e,t,r)=>{"use strict";r.d(t,{u:()=>a});var s=r(5023),n=r(4708);function a({sentence:e,command:t,className:r}){return(0,s.jsxs)("div",{className:(0,n.cn)("flex h-full min-h-[200px] flex-col items-center justify-center px-6 text-center fade-in",r),children:[s.jsx("p",{className:"max-w-sm text-body text-text-secondary",children:e}),t&&s.jsx("code",{className:"mt-3 rounded-md bg-surface-2 px-2.5 py-1 font-mono text-caption text-text-primary",children:t})]})}},2548:(e,t,r)=>{"use strict";r.d(t,{o8:()=>o});var s=r(2772);let n=(0,s.createProxy)(String.raw`/home/dx/Work/hex/dashboard/components/ui/SplitView.tsx`),{__esModule:a,$$typeof:i}=n;n.default,(0,s.createProxy)(String.raw`/home/dx/Work/hex/dashboard/components/ui/SplitView.tsx#SplitView`);let o=(0,s.createProxy)(String.raw`/home/dx/Work/hex/dashboard/components/ui/SplitView.tsx#Toolbar`);(0,s.createProxy)(String.raw`/home/dx/Work/hex/dashboard/components/ui/SplitView.tsx#ScrollArea`)},4708:(e,t,r)=>{"use strict";function s(...e){return e.filter(Boolean).join(" ")}r.d(t,{cn:()=>s})},5719:(e,t,r)=>{"use strict";r.d(t,{FK:()=>p,HE:()=>_,Ik:()=>$,Kl:()=>k,Vb:()=>P,ZD:()=>j,g1:()=>b,hd:()=>S,kb:()=>c,qu:()=>v,sv:()=>N,xt:()=>w});var s=r(7561),n=r.n(s),a=r(9411),i=r.n(a),o=r(6905);let l=/^[a-z0-9][a-z0-9-]*$/;function c(e){return l.test(e)}function d(){return i().join((0,o.WV)(),"model","diagrams")}function x(){return i().join((0,o.WV)(),"report","figures")}function m(e,t){n().mkdirSync(i().dirname(e),{recursive:!0});let r=e+".tmp";n().writeFileSync(r,JSON.stringify(t,null,2)+"\n","utf-8"),n().renameSync(r,e)}function u(e){try{return JSON.parse(n().readFileSync(e,"utf-8"))}catch{return null}}function p(){return u(i().join(d(),"index.json"))??[]}function h(e,t){let r=p(),s=r.find(t=>t.name===e);return s?(Object.assign(s,t),m(i().join(d(),"index.json"),r),s):null}let f=e=>i().join(d(),`${e}.excalidraw`),y=e=>i().join(d(),`${e}.regenerated.excalidraw`),g=e=>i().join(x(),`${e}.png`);function b(e){try{return Math.floor(n().statSync(f(e)).mtimeMs)}catch{return 0}}function v(e){try{return Math.floor(n().statSync(g(e)).mtimeMs)}catch{return 0}}function w(e){return u(f(e))}function j(e,t){let r=w(e),s=p().find(t=>t.name===e),n=t.appState??r?.appState??{},a={type:"excalidraw",version:2,source:r?.source??"hex",elements:t.elements,appState:{viewBackgroundColor:n.viewBackgroundColor??"#ffffff",gridSize:n.gridSize??null},files:t.files??r?.files??{},hex:{name:e,type:r?.hex?.type??s?.type??"custom",spec_hash:r?.hex?.spec_hash??s?.spec_hash??"",edited:!0}};return m(f(e),a),h(e,{edited:!0}),{mtime:b(e)}}function k(e){let t=u(y(e));if(!t)throw Error(`No regenerated layout for ${e}`);m(f(e),{...t,hex:{...t.hex??{name:e,type:"custom"},edited:!1}}),n().rmSync(y(e),{force:!0}),h(e,{edited:!1,stale:!1,...t.hex?.spec_hash?{spec_hash:t.hex.spec_hash}:{}})}function _(e){let t=u(y(e)),r=w(e),s=t?.hex?.spec_hash??r?.hex?.spec_hash??"";r&&m(f(e),{...r,hex:{...r.hex??{name:e,type:"custom"},spec_hash:s,edited:!0}}),n().rmSync(y(e),{force:!0}),h(e,{stale:!1,edited:!0,...s?{spec_hash:s}:{}})}function N(e,t){n().mkdirSync(x(),{recursive:!0});let r=g(e)+".tmp";n().writeFileSync(r,t),n().renameSync(r,g(e)),h(e,{in_report:!0})}function S(e){n().rmSync(g(e),{force:!0}),h(e,{in_report:!1})}function P(e){try{return n().readFileSync(g(e))}catch{return null}}function $(){try{return n().readdirSync(x()).filter(e=>e.endsWith(".png")).map(e=>e.replace(/\.png$/,"")).filter(c).sort()}catch{return[]}}},2950:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});var s=r(1645);let n=e=>[{type:"image/svg+xml",sizes:"any",url:(0,s.fillMetadataSegment)(".",e.params,"icon.svg")+"?83fa4bf1ef0d214d"}]}};var t=require("../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[916,649,645,42,310,370],()=>r(2933));module.exports=s})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../package.json","../../chunks/530.js","../../chunks/645.js","../../chunks/649.js","../../chunks/916.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
1
+ {"version":1,"files":["../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../package.json","../../chunks/310.js","../../chunks/370.js","../../chunks/42.js","../../chunks/645.js","../../chunks/649.js","../../chunks/916.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/report/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"3443":{"*":{"id":"7406","name":"*","chunks":[],"async":false}},"4595":{"*":{"id":"1388","name":"*","chunks":[],"async":false}},"9922":{"*":{"id":"8033","name":"*","chunks":[],"async":false}},"11076":{"*":{"id":"9323","name":"*","chunks":[],"async":false}},"11447":{"*":{"id":"5915","name":"*","chunks":[],"async":false}},"13037":{"*":{"id":"226","name":"*","chunks":[],"async":false}},"15276":{"*":{"id":"820","name":"*","chunks":[],"async":false}},"25268":{"*":{"id":"3817","name":"*","chunks":[],"async":false}},"27542":{"*":{"id":"9555","name":"*","chunks":[],"async":false}},"29487":{"*":{"id":"6844","name":"*","chunks":[],"async":false}},"30274":{"*":{"id":"7918","name":"*","chunks":[],"async":false}},"37780":{"*":{"id":"8664","name":"*","chunks":[],"async":false}},"43297":{"*":{"id":"1611","name":"*","chunks":[],"async":false}},"56902":{"*":{"id":"2541","name":"*","chunks":[],"async":false}},"67498":{"*":{"id":"696","name":"*","chunks":[],"async":false}},"71520":{"*":{"id":"5707","name":"*","chunks":[],"async":false}},"72024":{"*":{"id":"2857","name":"*","chunks":[],"async":false}},"73719":{"*":{"id":"526","name":"*","chunks":[],"async":false}},"77701":{"*":{"id":"8530","name":"*","chunks":[],"async":false}},"89690":{"*":{"id":"2204","name":"*","chunks":[],"async":false}},"92198":{"*":{"id":"9915","name":"*","chunks":[],"async":false}},"93362":{"*":{"id":"5289","name":"*","chunks":[],"async":false}},"99754":{"*":{"id":"4790","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/dx/Work/hex/node_modules/next/dist/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/globals.css":{"id":13812,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/dashboard/components/CommandPalette.tsx":{"id":92198,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/dashboard/components/DashboardLayout.tsx":{"id":30274,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/node_modules/next-themes/dist/index.mjs":{"id":4595,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Manrope\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\",\"display\":\"swap\"}],\"variableName\":\"manrope\"}":{"id":41600,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"JetBrains_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\",\"display\":\"swap\"}],\"variableName\":\"jetbrainsMono\"}":{"id":55256,"name":"*","chunks":["7498","static/chunks/7498-d1814d68ba346d13.js","3185","static/chunks/app/layout-6c6d2a0fd7c989d3.js"],"async":false},"/home/dx/Work/hex/dashboard/app/diagram/page.tsx":{"id":73719,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/flows/page.tsx":{"id":3443,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/calls/CallsClient.tsx":{"id":93362,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx":{"id":71520,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/access/AccessClient.tsx":{"id":13037,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/notes/NotesClient.tsx":{"id":72024,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/conformance/ConformanceTable.tsx":{"id":27542,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/functions/FunctionsClient.tsx":{"id":37780,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/report/ReportClient.tsx":{"id":56902,"name":"*","chunks":["9420","static/chunks/app/report/page-18c04fb2f193b020.js"],"async":false},"/home/dx/Work/hex/dashboard/app/stats/StatsClient.tsx":{"id":9922,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/progress/ProgressClient.tsx":{"id":77701,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/issues/IssuesBoardClient.tsx":{"id":99754,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/components/MarkdownRenderer.tsx":{"id":29487,"name":"*","chunks":["7397","static/chunks/7397-37adf76cad543297.js","7498","static/chunks/7498-d1814d68ba346d13.js","1931","static/chunks/app/page-d63800ddb072b77b.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/link.js":{"id":67498,"name":"*","chunks":["7397","static/chunks/7397-37adf76cad543297.js","7498","static/chunks/7498-d1814d68ba346d13.js","1931","static/chunks/app/page-d63800ddb072b77b.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/link.js":{"id":67498,"name":"*","chunks":["7397","static/chunks/7397-37adf76cad543297.js","7498","static/chunks/7498-d1814d68ba346d13.js","1931","static/chunks/app/page-d63800ddb072b77b.js"],"async":false}},"entryCSSFiles":{"/home/dx/Work/hex/dashboard/":[],"/home/dx/Work/hex/dashboard/app/layout":["static/css/1112cea2260b3926.css"],"/home/dx/Work/hex/dashboard/app/page":[],"/home/dx/Work/hex/dashboard/app/report/page":[]}}
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/report/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"4595":{"*":{"id":"1388","name":"*","chunks":[],"async":false}},"11076":{"*":{"id":"9323","name":"*","chunks":[],"async":false}},"11447":{"*":{"id":"5915","name":"*","chunks":[],"async":false}},"15276":{"*":{"id":"820","name":"*","chunks":[],"async":false}},"25268":{"*":{"id":"3817","name":"*","chunks":[],"async":false}},"43297":{"*":{"id":"1611","name":"*","chunks":[],"async":false}},"52331":{"*":{"id":"1174","name":"*","chunks":[],"async":false}},"56902":{"*":{"id":"2541","name":"*","chunks":[],"async":false}},"63237":{"*":{"id":"281","name":"*","chunks":[],"async":false}},"67498":{"*":{"id":"696","name":"*","chunks":[],"async":false}},"68916":{"*":{"id":"5314","name":"*","chunks":[],"async":false}},"71520":{"*":{"id":"5707","name":"*","chunks":[],"async":false}},"81751":{"*":{"id":"3368","name":"*","chunks":[],"async":false}},"84300":{"*":{"id":"9939","name":"*","chunks":[],"async":false}},"85581":{"*":{"id":"6462","name":"*","chunks":[],"async":false}},"88554":{"*":{"id":"1352","name":"*","chunks":[],"async":false}},"89690":{"*":{"id":"2204","name":"*","chunks":[],"async":false}},"92198":{"*":{"id":"9915","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/dx/Work/hex/node_modules/next/dist/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/globals.css":{"id":13812,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/AutoRefresh.tsx":{"id":84300,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/CommandPalette.tsx":{"id":92198,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Sidebar.tsx":{"id":63237,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Toast.tsx":{"id":88554,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next-themes/dist/index.mjs":{"id":4595,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Manrope\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\",\"display\":\"swap\"}],\"variableName\":\"manrope\"}":{"id":41600,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"JetBrains_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\",\"display\":\"swap\"}],\"variableName\":\"jetbrainsMono\"}":{"id":55256,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx":{"id":71520,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/components/ui/SplitView.tsx":{"id":81751,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","2374","static/chunks/2374-8c6f137938f8518a.js","9420","static/chunks/app/report/page-b56b1db9b9dcf2b6.js"],"async":false},"/home/dx/Work/hex/dashboard/app/issues/BoardClient.tsx":{"id":68916,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/model/ModelClient.tsx":{"id":85581,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/report/ReportClient.tsx":{"id":56902,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","2374","static/chunks/2374-8c6f137938f8518a.js","9420","static/chunks/app/report/page-b56b1db9b9dcf2b6.js"],"async":false},"/home/dx/Work/hex/dashboard/app/review/ReviewClient.tsx":{"id":52331,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/link.js":{"id":67498,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","1931","static/chunks/app/page-0e67750d99fb2836.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/link.js":{"id":67498,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","1931","static/chunks/app/page-0e67750d99fb2836.js"],"async":false}},"entryCSSFiles":{"/home/dx/Work/hex/dashboard/":[],"/home/dx/Work/hex/dashboard/app/layout":["static/css/ceafd91ca8dd753d.css"],"/home/dx/Work/hex/dashboard/app/page":[],"/home/dx/Work/hex/dashboard/app/report/page":[]}}
@@ -0,0 +1 @@
1
+ (()=>{var e={};e.id=672,e.ids=[672],e.modules={7849:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external")},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},5403:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},4749:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},7561:e=>{"use strict";e.exports=require("node:fs")},9411:e=>{"use strict";e.exports=require("node:path")},7742:e=>{"use strict";e.exports=require("node:process")},1041:e=>{"use strict";e.exports=require("node:url")},1017:e=>{"use strict";e.exports=require("path")},7310:e=>{"use strict";e.exports=require("url")},7961:(e,t,s)=>{"use strict";s.r(t),s.d(t,{GlobalError:()=>i.a,__next_app__:()=>x,originalPathname:()=>u,pages:()=>d,routeModule:()=>m,tree:()=>c}),s(865),s(7415),s(2874);var a=s(7105),n=s(5265),r=s(157),i=s.n(r),l=s(4665),o={};for(let e in l)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(o[e]=()=>l[e]);s.d(t,o);let c=["",{children:["review",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(s.bind(s,865)),"/home/dx/Work/hex/dashboard/app/review/page.tsx"]}]},{metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(s.bind(s,7415)),"/home/dx/Work/hex/dashboard/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(s.t.bind(s,2874,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],d=["/home/dx/Work/hex/dashboard/app/review/page.tsx"],u="/review/page",x={require:s,loadChunk:()=>Promise.resolve()},m=new a.AppPageRouteModule({definition:{kind:n.x.APP_PAGE,page:"/review/page",pathname:"/review",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},2062:(e,t,s)=>{Promise.resolve().then(s.bind(s,1174)),Promise.resolve().then(s.bind(s,3368))},1174:(e,t,s)=>{"use strict";s.d(t,{ReviewClient:()=>z});var a=s(9899),n=s(8107),r=s(4175),i=s(5507),l=s(6153),o=s(3368),c=s(8799),d=s(733),u=s(9428),x=s(394),m=s(7096),p=s(5893);function h({risk:e,className:t}){let s=e>=55?3:e>=30?2:1;return a.jsx("span",{className:`inline-flex items-end gap-[2px] ${t??""}`,title:`Risk ${e}`,"aria-label":`Risk ${e}`,children:[1,2,3].map(e=>a.jsx("span",{className:"w-[3px] rounded-[1px]",style:{height:4+2*e,background:e<=s?3===s?"var(--text-secondary)":"var(--text-tertiary)":"var(--surface-3)"}},e))})}var f=s(382),b=s(5125),g=s(8110),y=s(1352),j=s(5119),v=s(3456),w=s(9290),N=s(366),_=s(6844),k=s(1842),C=s(1593);function $({note:e,fnId:t,fnName:s}){let n=(0,l.useRouter)(),r=(0,y.p)(),i=e.functions.find(a=>a.fn_ref&&(a.fn_ref===t||a.fn_ref===`${e.contract}.${s}`))??e.functions.find(e=>(e.sig.split("(")[0]??"").trim()===s),o=e.questions.filter(e=>!e.answer?.trim()),d=e.leads.filter(e=>"open"===e.status).sort((e,t)=>Number(t.text.includes(s))-Number(e.text.includes(s))),u=async t=>{try{await (0,k.C)("/api/notes/lead",{contract:e.target,id:t,action:"close",status:"dismissed"}),n.refresh(),r({message:"Lead dismissed",action:{label:"Undo",onClick:()=>void(0,k.C)("/api/notes/lead",{contract:e.target,id:t,action:"reopen"}).then(()=>n.refresh())}})}catch(e){r({message:e.message,tone:"error"})}},x=!i&&0===o.length&&0===d.length;return(0,a.jsxs)(c.oz,{label:`Diane's notes on ${e.contract}`,children:[x&&(0,a.jsxs)("p",{className:"text-body text-text-tertiary",children:["Nothing yet. Record a narration, then run"," ",a.jsx("code",{className:"font-mono text-caption",children:"/diane"}),"."]}),i&&(0,a.jsxs)("div",{className:"space-y-1.5 text-body text-text-secondary",children:[i.purpose&&a.jsx("p",{children:a.jsx(_.T9,{children:i.purpose})}),i.access&&(0,a.jsxs)("p",{children:[a.jsx("span",{className:"text-text-tertiary",children:"Access "}),a.jsx(_.T9,{children:i.access})]}),i.effects&&(0,a.jsxs)("p",{children:[a.jsx("span",{className:"text-text-tertiary",children:"Effects "}),a.jsx(_.T9,{children:i.effects})]}),i.notes.map((e,t)=>a.jsx("p",{children:a.jsx(_.T9,{children:e})},t)),i.warnings.map((e,t)=>(0,a.jsxs)("p",{className:"flex gap-2 text-text-primary",children:[a.jsx("span",{className:"mt-[7px] h-1.5 w-1.5 shrink-0 rounded-full",style:{background:"var(--high)"}}),a.jsx("span",{children:a.jsx(_.T9,{children:e})})]},`w${t}`))]}),o.length>0&&(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsxs)("div",{className:"flex items-baseline justify-between text-caption text-text-tertiary",children:[a.jsx("span",{children:"Open questions"}),a.jsx("span",{className:"tabular-nums",children:o.length})]}),a.jsx("ul",{className:"mt-1.5 divide-y divide-border-subtle border-y border-border-subtle",children:o.map(t=>a.jsx("li",{className:"py-2.5",children:a.jsx(R,{contract:e.target,id:t.id,text:t.q})},t.id))})]}),d.length>0&&(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsxs)("div",{className:"flex items-baseline justify-between text-caption text-text-tertiary",children:[a.jsx("span",{children:"Open leads"}),a.jsx("span",{className:"tabular-nums",children:d.length})]}),a.jsx("ul",{className:"mt-1.5 divide-y divide-border-subtle border-y border-border-subtle",children:d.map(e=>a.jsx(q,{lead:e,onDismiss:()=>u(e.id)},e.id))})]})]})}let S={"ai-audit":"AI audit","init-audit":"Pre-review",diane:"Diane",auditagent:"AuditAgent"};function q({lead:e,onDismiss:t}){let[s,n]=(0,i.useState)(!1),r=e.text.length>220,l=S[e.source??"diane"]??e.source;return(0,a.jsxs)("li",{className:"group flex gap-2.5 py-2.5",children:[a.jsx("span",{className:"mt-[7px] h-1.5 w-1.5 shrink-0 rounded-full",style:{background:"var(--medium)"}}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[a.jsx("p",{className:(0,C.cn)("text-body text-text-primary",r&&!s&&"line-clamp-3"),onClick:()=>r&&n(e=>!e),children:a.jsx(_.T9,{children:e.text})}),(0,a.jsxs)("div",{className:"mt-1 flex items-center gap-2 text-caption text-text-tertiary",children:[l&&a.jsx("span",{children:l}),r&&a.jsx("button",{type:"button",onClick:()=>n(e=>!e),className:"hover:text-text-primary",children:s?"Show less":"Show more"}),a.jsx("button",{type:"button",onClick:t,className:"ml-auto rounded-md px-1.5 py-0.5 opacity-0 hover:bg-surface-2 hover:text-text-primary focus-visible:opacity-100 group-hover:opacity-100",children:"Dismiss"})]})]})]})}function R({contract:e,id:t,text:s}){let n=(0,l.useRouter)(),r=(0,y.p)(),[o,c]=(0,i.useState)(""),[d,u]=(0,i.useState)(!1),x=async()=>{if(o.trim()){u(!0);try{await (0,k.C)("/api/notes/question",{contract:e,id:t,answer:o.trim()}),r({message:"Answer saved"}),n.refresh()}catch(e){r({message:e.message,tone:"error"})}finally{u(!1)}}};return(0,a.jsxs)("div",{children:[a.jsx("p",{className:"text-body text-text-primary",children:a.jsx(_.T9,{children:s})}),(0,a.jsxs)("div",{className:"mt-1.5 flex items-start gap-2",children:[a.jsx("textarea",{value:o,onChange:e=>c(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&x()},rows:1,placeholder:"Answer…",className:"min-h-[32px] flex-1 resize-y rounded-md border border-border-subtle bg-surface-0 px-2.5 py-1.5 text-body text-text-primary placeholder:text-text-tertiary focus:border-border-emphasis focus:outline-none"}),o.trim()&&a.jsx(f.z,{size:"sm",variant:"secondary",onClick:x,disabled:d,className:"mt-0.5",children:"Save"})]})]})}function P({contract:e,pending:t}){let s=(0,l.useRouter)(),n=(0,y.p)(),[r,o]=(0,i.useState)("idle"),[c,d]=(0,i.useState)(0),u=(0,i.useRef)(null),x=(0,i.useRef)([]),m=(0,i.useRef)(null),p=(0,i.useRef)(null),h=(0,i.useRef)(e);h.current=e;let b=(0,i.useCallback)(async e=>{o("transcribing");try{let t=new FormData;t.append("audio",new Blob(x.current,{type:"audio/webm"}),"narration.webm"),t.append("contract",e||"general");let a=await fetch("/api/notes/record",{method:"POST",body:t}),r=await a.json().catch(()=>({}));422===a.status&&r.whisperMissing?n({message:`Audio saved, but no local Whisper engine is installed. ${r.error??""}`,tone:"error"}):a.ok?(n({message:`Narration saved for ${r.contract}. Run /diane in Claude Code to process it.`}),s.refresh()):n({message:r.error??"Recording failed",tone:"error"})}catch(e){n({message:e instanceof Error?e.message:"Recording failed",tone:"error"})}finally{o("idle")}},[s,n]),g=(0,i.useCallback)(async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});m.current=e,x.current=[];let t=new MediaRecorder(e),s=h.current;t.ondataavailable=e=>{e.data.size>0&&x.current.push(e.data)},t.onstop=()=>{e.getTracks().forEach(e=>e.stop()),p.current&&clearInterval(p.current),b(s)},u.current=t,t.start(),d(0),p.current=setInterval(()=>d(e=>e+1),1e3),o("recording")}catch{n({message:"Could not access the microphone. Allow it and try again.",tone:"error"})}},[n,b]);return"recording"===r?(0,a.jsxs)(f.z,{variant:"secondary",onClick:()=>u.current?.stop(),title:"Stop and transcribe",children:[a.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:"var(--critical)"}}),"Stop \xb7 ",a.jsx("span",{className:"tabular-nums",children:`${Math.floor(c/60)}:${String(c%60).padStart(2,"0")}`})]}):(0,a.jsxs)(f.z,{variant:"secondary",onClick:g,disabled:"transcribing"===r,title:`Narrate your reading of ${e||"the protocol"} for Diane`,children:[a.jsx(j.lE,{className:"h-4 w-4 text-text-secondary"}),"transcribing"===r?"Transcribing…":"Record narration",t>0&&"idle"===r&&(0,a.jsxs)("span",{className:"text-caption text-text-tertiary",title:`${t} narration session(s) waiting for /diane`,children:[t," waiting"]})]})}var M=s(8279),A=s(7043);let T=e=>(e.key??e.name).replace(/\(.*$/,"").split(".").pop()??e.name;function z({rows:e,blindSpots:t,details:s,labels:n,cards:r,notes:c,diffMode:p,generalNote:b,pendingSessions:v}){let w=(0,l.useRouter)(),N=(0,l.useSearchParams)(),$=(0,y.p)(),[S,q]=(0,i.useState)({}),R=(0,i.useMemo)(()=>e.map(e=>S[e.id]?{...e,state:S[e.id].state,note:S[e.id].note??e.note}:e),[e,S]),z=(0,i.useMemo)(()=>new Map(R.map(e=>[e.id,e])),[R]),[D,F]=(0,i.useState)("all"),[O,L]=(0,i.useState)(""),[K,I]=(0,i.useState)(!1),B=(0,i.useCallback)(()=>{let s=N.get("fn");if(s&&e.some(e=>e.id===s))return s;let a=N.get("contract");if(a){let t=e.find(e=>e.contract===a);if(t)return t.id}return t[0]??e[0]?.id??null},[N,e,t]),V=()=>{let e=/^(.*):(\d+)-(\d+)$/.exec(N.get("at")??"");return e?{file:e[1],start:Number(e[2]),end:Number(e[3]),...N.get("key")?{key:N.get("key")}:{},name:N.get("name")??e[1]}:null},[Q,H]=(0,i.useState)(V),[X,J]=(0,i.useState)(()=>V()?null:B()),[Y,Z]=(0,i.useState)(()=>Number(N.get("line"))||null),ee=X?z.get(X)??null:null,[et,es]=(0,i.useState)([]),[ea,en]=(0,i.useState)(0),er=(0,i.useRef)(null),ei=e=>{es([e]),en(0),window.history.replaceState({hexTrail:[e],hexPos:0},"",e.url)},el=(0,i.useCallback)(e=>{let t=e.key?z.get(e.key):void 0,s=new URL(window.location.href);for(let e of["fn","at","key","name","line","contract"])s.searchParams.delete(e);t?s.searchParams.set("fn",t.id):(s.searchParams.set("at",`${e.file}:${e.line_start}-${e.line_end}`),e.key&&s.searchParams.set("key",e.key),s.searchParams.set("name",e.name)),e.line&&s.searchParams.set("line",String(e.line));let a={label:t?t.name:T(e),...e.via?{via:e.via.replace(/\(.*$/,"").split(".")[0]}:{},url:s.pathname+s.search},n=[...et.slice(0,ea+1),a];window.history.pushState({hexTrail:n,hexPos:n.length-1},"",a.url),es(n),en(n.length-1),Z(e.line??null),t?(H(null),J(t.id)):(H({file:e.file,start:e.line_start,end:e.line_end,...e.key?{key:e.key}:{},name:e.name}),J(null))},[z,et,ea]),eo=(0,i.useMemo)(()=>({open:el,stateOf:e=>z.get(e)?.state}),[el,z]),ec=(0,i.useMemo)(()=>{let e;let a=O.trim().toLowerCase();return e="blind"===D?t.map(e=>z.get(e)).filter(e=>!!e):R.filter(e=>"unread"===D?"unread"===e.state:"questioned"===D?"questioned"===e.state:"changed"!==D||void 0!==e.diff_depth),a&&(e=e.filter(e=>`${e.contract}.${e.name} ${s[e.id]?.signature??""}`.toLowerCase().includes(a))),e},[R,z,D,O,t,s]),ed=(0,i.useMemo)(()=>{if("blind"===D)return[{contract:null,rows:ec}];let e=new Map;for(let t of ec)e.set(t.contract,[...e.get(t.contract)??[],t]);return Array.from(e.entries()).map(([e,t])=>({contract:e,rows:t}))},[ec,D]),eu=(0,i.useMemo)(()=>ed.flatMap(e=>e.rows.map(e=>e.id)),[ed]),ex=(0,i.useRef)(null),em=(0,i.useCallback)(t=>{J(t),H(null),Z(null);let s=e.find(e=>e.id===t);s&&ei({label:s.name,url:`/review?fn=${encodeURIComponent(t)}`}),requestAnimationFrame(()=>ex.current?.querySelector(`[data-id="${CSS.escape(t)}"]`)?.scrollIntoView({block:"nearest"}))},[e]),ep=e=>{if(!eu.length)return;let t=X?eu.indexOf(X):-1,s=eu[Math.max(0,Math.min(eu.length-1,-1===t?0:t+e))];s&&em(s)},eh=(0,i.useRef)(null),ef=(0,i.useCallback)(async(e,t,s,a={})=>{let n={state:e.state,note:e.note};q(a=>({...a,[e.id]:{state:t,note:s}}));try{await (0,k.C)("/api/progress",{ids:[e.id],state:t,...s?{note:s}:{}}),a.silent||$({message:"unread"===t?`${e.name} marked unread`:`${e.name} marked ${m.U[t].toLowerCase()}`,action:{label:"Undo",onClick:()=>{q(t=>({...t,[e.id]:n})),(0,k.C)("/api/progress",{ids:[e.id],state:n.state,...n.note?{note:n.note}:{}}).then(()=>w.refresh())}}}),w.refresh()}catch(t){q(t=>({...t,[e.id]:n})),$({message:t.message,tone:"error"})}},[w,$]),eb=e=>{if(ee){if("questioned"===e&&"questioned"!==ee.state){ef(ee,"questioned",ee.note),requestAnimationFrame(()=>eh.current?.focus());return}ef(ee,ee.state===e?"unread":e,"questioned"===e?ee.note:void 0)}};(0,M.y)({j:()=>ep(1),k:()=>ep(-1),ArrowDown:e=>{e.preventDefault(),ep(1)},ArrowUp:e=>{e.preventDefault(),ep(-1)},r:()=>eb("read"),c:()=>eb("cleared"),q:()=>eb("questioned"),e:e=>{ee?.state==="questioned"&&(e.preventDefault(),eh.current?.focus())}});let eg=(0,i.useMemo)(()=>{let e=R.reduce((e,t)=>e+t.nsloc,0),t=R.filter(e=>"cleared"===e.state).reduce((e,t)=>e+t.nsloc,0);return{total:e,cleared:t,pct:e?Math.round(100*t/e):0}},[R]),ey=[{value:"all",label:"All"},{value:"unread",label:"Unread"},{value:"questioned",label:"Questioned"},...p?[{value:"changed",label:"Changed"}]:[],{value:"blind",label:"Blind spots"}],ej=(0,i.useMemo)(()=>{let e=new Map;for(let t of R){let s=e.get(t.contract)??{cleared:0,total:0};s.total++,"cleared"===t.state&&s.cleared++,e.set(t.contract,s)}return e},[R]),ev=(0,a.jsxs)(o.Toolbar,{title:"Review",meta:(0,a.jsxs)("span",{className:"inline-flex items-center gap-2.5",children:[a.jsx("span",{className:"relative inline-block h-1 w-20 overflow-hidden rounded-full bg-surface-3 align-middle",children:a.jsx("span",{className:"absolute inset-y-0 left-0 rounded-full",style:{width:`${eg.pct}%`,background:"var(--success)",transition:"width 400ms var(--ease-out)"}})}),(0,a.jsxs)("span",{className:"tabular-nums",children:[eg.pct,"% cleared"]})]}),children:[(0,a.jsxs)(f.z,{variant:"ghost",onClick:()=>I(e=>!e),"aria-expanded":K,children:["General note",a.jsx(j.g6,{className:(0,C.cn)("h-3.5 w-3.5 transition-transform duration-200",K&&"rotate-90")})]}),a.jsx(P,{contract:ee?.contract??"general",pending:v})]}),ew=ee?{file:ee.file,start:ee.line_start,end:ee.line_end,key:ee.id}:Q?{file:Q.file,start:Q.start,end:Q.end,key:Q.key}:null,eN=ee?s[ee.id]?.called_by.length:void 0,e_=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"space-y-2 border-b border-border-subtle p-3",children:[a.jsx(u.U,{value:O,onChange:L,placeholder:"Search functions"}),a.jsx(x.s,{segments:ey,value:D,onChange:F,ariaLabel:"Filter functions",size:"sm",fill:!0})]}),a.jsx("div",{ref:ex,className:"min-h-0 flex-1 overflow-y-auto px-2 pb-6 pt-1",children:0===ec.length?a.jsx("p",{className:"px-3 py-8 text-center text-body text-text-tertiary",children:O?"No functions match.":"questioned"===D?"Nothing is questioned.":"Nothing here."}):ed.map(e=>(0,a.jsxs)("div",{children:[e.contract&&a.jsx(d.i,{trailing:`${ej.get(e.contract)?.cleared??0}/${ej.get(e.contract)?.total??0}`,children:e.contract}),e.rows.map(e=>a.jsx(d.w,{"data-id":e.id,dense:!0,selected:e.id===X,onClick:()=>em(e.id),leading:a.jsx(m.e,{state:e.state}),title:"blind"===D?`${e.contract}.${e.name}`:e.name,trailing:a.jsx(h,{risk:e.risk})},e.id))]},e.contract??"blind"))})]});return a.jsx(o.z,{toolbar:(0,a.jsxs)(a.Fragment,{children:[ev,K&&a.jsx("div",{className:"fade-in max-h-[38vh] shrink-0 overflow-y-auto border-b border-border-subtle bg-surface-1 px-6 py-4",children:b.trim()?a.jsx("div",{className:"max-w-3xl",children:a.jsx(_.$8,{content:b})}):(0,a.jsxs)("p",{className:"text-body text-text-tertiary",children:["No protocol-wide notes yet. Record a narration with nothing selected, then run"," ",a.jsx("code",{className:"font-mono text-caption",children:"/diane"}),"."]})})]}),list:e_,listWidth:312,inspector:ee?a.jsx(G,{row:ee,detail:s[ee.id],labels:n,reviewable:z,cards:r,note:c[ee.contract],onOpen:el,onToggle:eb,onSaveNote:e=>void ef(ee,"questioned",e,{silent:!0}),noteRef:eh}):Q?a.jsx(W,{loc:Q,reviewable:z,onOpen:el}):void 0,children:ew?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex h-10 shrink-0 items-center gap-1 border-b border-border-subtle pl-2 pr-4",children:[a.jsx(E,{trail:et,pos:ea}),(0,a.jsxs)("span",{className:"ml-auto shrink-0 truncate pl-3 font-mono text-caption text-text-tertiary",children:[ew.file,":",ew.start]}),ew.key&&(eN??0)>0&&(0,a.jsxs)(f.z,{size:"sm",variant:"ghost",className:"ml-1",title:"Callers and call sites (⇧F12)",onClick:()=>er.current?.showUsages(ew.key),children:[s[ee?.id??""]?.kind==="modifier"?"Guards":"Called by"," ",eN]})]}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(U,{file:ew.file,range:{start:ew.start,end:ew.end},focusLine:Y,nav:eo,currentKey:ew.key,handle:er,onSelectRange:(e,t)=>{(0,A.k)({ref:`${ew.file}:${e}-${t}`,kind:"code_range",label:`${ew.file}:${e}-${t}`,file:ew.file,line_start:e,line_end:t})}})})]}):a.jsx(g.u,{sentence:"Pick a function on the left to read it here."})})}function E({trail:e,pos:t}){let s="flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-text-tertiary hover:bg-surface-2 hover:text-text-primary disabled:pointer-events-none disabled:opacity-30",n=e.slice(Math.max(0,t-4),Math.min(e.length,t+3)),r=Math.max(0,t-4);return(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-0.5",children:[a.jsx("button",{type:"button",className:s,disabled:0===t,onClick:()=>window.history.back(),"aria-label":"Back",title:"Back (Alt+←)",children:a.jsx(j.g6,{className:"h-3.5 w-3.5 rotate-180"})}),a.jsx("button",{type:"button",className:s,disabled:t>=e.length-1,onClick:()=>window.history.forward(),"aria-label":"Forward",title:"Forward (Alt+→)",children:a.jsx(j.g6,{className:"h-3.5 w-3.5"})}),(0,a.jsxs)("nav",{"aria-label":"Flow",className:"ml-1 flex min-w-0 items-center gap-1 overflow-hidden",children:[r>0&&a.jsx("span",{className:"text-caption text-text-tertiary",children:"…"}),n.map((e,s)=>{let n=r+s;return(0,a.jsxs)("span",{className:"flex min-w-0 items-center gap-1",children:[s>0&&a.jsx(j.g6,{className:"h-3 w-3 shrink-0 text-text-tertiary"}),a.jsx("button",{type:"button",disabled:n===t,onClick:()=>window.history.go(n-t),className:(0,C.cn)("truncate rounded px-1 font-mono text-caption",n===t?"text-text-primary":n<t?"text-text-secondary hover:text-text-primary":"text-text-tertiary hover:text-text-secondary"),children:e.label}),e.via&&(0,a.jsxs)("span",{className:"shrink-0 text-caption text-text-tertiary",children:["via ",e.via]})]},n)})]})]})}function U({file:e,range:t,onSelectRange:s,focusLine:n,nav:r,currentKey:i,handle:l}){let o=(0,w.dU)(e);return a.jsx(v.uX,{file:e,range:t,onSelectRange:s,comments:o,nav:r,focusLine:n,currentKey:i,handle:l})}let D={contract:"Contract",interface:"Interface",library:"Library",function:"Function",modifier:"Modifier",state_var:"State variable",event:"Event",error:"Error",struct:"Struct",enum:"Enum",type:"Type",constant:"Constant"};function W({loc:e,reviewable:t,onOpen:s}){let[n,r]=(0,i.useState)(null),l=n?.decl,o=e=>s({...e.from?{key:e.from}:{},name:e.fromName??e.file,file:e.file,line_start:e.fromStart??e.line,line_end:e.fromEnd??e.line,line:e.line}),d=[];for(let[e,t]of[["Written by",["write"]],["Read by",["read"]],[l?.kind==="modifier"?"Guards":l?.kind==="function"?"Called by":"Used in",null]]){let s=(n?.sites??[]).filter(e=>t?t.includes(e.kind):!["write","read"].includes(e.kind));s.length&&d.push([e,s])}return(0,a.jsxs)(c.lj,{eyebrow:`${l?D[l.kind]:"Code"}${l?.contract?` \xb7 ${l.contract}`:""}${l&&!l.in_scope?" \xb7 out of scope":""}`,title:l?.name??e.name,subtitle:l?.signature?a.jsx("span",{className:"font-mono",children:l.signature}):void 0,children:[(0,a.jsxs)(c.oz,{label:"Where",children:[a.jsx(N.i,{file:e.file,lineStart:e.start,lineEnd:e.end}),l?.doc&&a.jsx("p",{className:"mt-2 text-body text-text-secondary",children:l.doc})]}),(n?.impls.length??0)>0&&a.jsx(c.oz,{label:"Runs in",children:a.jsx("ul",{children:n.impls.map(n=>a.jsx("li",{children:(0,a.jsxs)("button",{type:"button",onClick:()=>n.decl&&s({key:n.id,name:`${n.decl.contract??""}.${n.decl.name}`,file:n.decl.file,line_start:n.decl.line_start,line_end:n.decl.line_end,line:n.decl.line,via:e.key}),className:"-mx-1.5 flex w-[calc(100%+12px)] items-center gap-2 rounded-md px-1.5 py-1 text-left hover:bg-surface-2",children:[t.get(n.id)?a.jsx(m.e,{state:t.get(n.id).state,className:"h-3 w-3"}):a.jsx("span",{className:"h-3 w-3 shrink-0"}),a.jsx("span",{className:"min-w-0 flex-1 truncate text-body text-text-primary",children:n.decl?`${n.decl.contract}.${n.decl.name}`:n.id}),a.jsx("span",{className:"shrink-0 text-caption text-text-tertiary",children:"signature"===n.by?"same signature":"override"})]})},n.id))})}),d.map(([e,s])=>a.jsx(c.oz,{label:e,trailing:a.jsx("span",{className:"text-caption text-text-tertiary",children:s.length}),children:a.jsx("ul",{children:s.map((e,s)=>a.jsx("li",{children:(0,a.jsxs)("button",{type:"button",onClick:()=>o(e),className:"-mx-1.5 flex w-[calc(100%+12px)] items-center gap-2 rounded-md px-1.5 py-1 text-left hover:bg-surface-2",children:[e.from&&t.get(e.from)?a.jsx(m.e,{state:t.get(e.from).state,className:"h-3 w-3"}):a.jsx("span",{className:"h-3 w-3 shrink-0"}),a.jsx("span",{className:"min-w-0 flex-1 truncate text-body text-text-primary",children:e.fromName??e.file}),(0,a.jsxs)("span",{className:"shrink-0 text-caption text-text-tertiary",children:["line ",e.line]})]})},s))})},e)),!e.key&&(0,a.jsxs)("p",{className:"text-body text-text-tertiary",children:["A position in ",e.file,"."]})]})}function G({row:e,detail:t,labels:s,reviewable:l,cards:o,note:d,onOpen:u,onToggle:x,onSaveNote:h,noteRef:g}){var y;let[j,v]=(0,i.useState)(e.note??""),w=t?[e.is_entry_point?"Entry point":t.visibility,"nonpayable"!==t.mutability?t.mutability:null]:[];return(0,a.jsxs)(c.lj,{eyebrow:(0,a.jsxs)("span",{children:[e.contract," \xb7 ",w.filter(Boolean).join(" \xb7 ")]}),title:e.name,subtitle:a.jsx("span",{className:"font-mono",children:t?.signature??e.name}),actions:(0,a.jsxs)("div",{className:"w-full space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[a.jsx(F,{active:"read"===e.state,onClick:()=>x("read"),k:"r",children:"Read"}),a.jsx(F,{active:"questioned"===e.state,onClick:()=>x("questioned"),k:"q",children:"Question"}),"cleared"===e.state?a.jsx(F,{active:!0,onClick:()=>x("cleared"),k:"c",children:"Cleared"}):a.jsx(f.z,{variant:"primary",onClick:()=>x("cleared"),className:"flex-1",title:"Clear (c)",children:"Clear"})]}),(0,a.jsxs)("p",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 text-caption text-text-tertiary",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a.jsx(b.T,{children:"r"})," read"]}),(0,a.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a.jsx(b.T,{children:"q"})," question"]}),(0,a.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a.jsx(b.T,{children:"c"})," clear"]}),(0,a.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a.jsx(b.T,{children:"j"}),a.jsx(b.T,{children:"k"})," move"]})]}),"questioned"===e.state&&a.jsx("textarea",{ref:g,value:j,onChange:e=>v(e.target.value),onBlur:()=>j.trim()!==(e.note??"")&&h(j.trim()),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&e.target.blur(),"Escape"===e.key&&e.target.blur()},rows:2,placeholder:"What's the question?",className:"fade-in w-full resize-y rounded-md border border-border-subtle bg-surface-0 px-2.5 py-2 text-body text-text-primary placeholder:text-text-tertiary focus:border-border-emphasis focus:outline-none"}),e.by&&"unread"!==e.state&&(0,a.jsxs)("p",{className:"text-caption text-text-tertiary",children:[m.U[e.state]," by ",e.by,e.updated_at?" \xb7 ":"",e.updated_at&&a.jsx(n.P,{iso:e.updated_at})]})]}),children:[e.risk_reasons.length>0&&(0,a.jsxs)(c.oz,{label:"Why it matters",children:[(0,a.jsxs)("p",{className:"text-body text-text-secondary",children:[(y=e.risk_reasons.join(", ")).charAt(0).toUpperCase()+y.slice(1),"."]}),(0,a.jsxs)("p",{className:"mt-1 text-caption text-text-tertiary",children:[e.nsloc," nSLOC \xb7"," ",e.ai_seen?"an /ai-audit scan raised something here":"no /ai-audit coverage yet"]})]}),e.cards.length>0&&a.jsx(c.oz,{label:"Cards",children:a.jsx("ul",{className:"space-y-1",children:e.cards.map(e=>{let t=o[e];return a.jsx("li",{children:(0,a.jsxs)(r.default,{href:`/issues?card=${encodeURIComponent(e)}`,className:"-mx-1.5 flex items-center gap-2 rounded-md px-1.5 py-1 text-body text-text-primary hover:bg-surface-2",children:[t&&a.jsx(p.oH,{severity:t.severity,label:!1}),a.jsx("span",{className:"min-w-0 flex-1 truncate",children:t?.title??e}),a.jsx("span",{className:"shrink-0 text-caption text-text-tertiary",children:e})]})},e)})})}),t&&(0,a.jsxs)(a.Fragment,{children:[a.jsx(L,{label:"modifier"===t.kind?"Guards":"Called by",ids:t.called_by,at:t.called_at,labels:s,reviewable:l,onOpen:u}),a.jsx(L,{label:"Calls",ids:t.calls,labels:s,reviewable:l,onOpen:u}),(t.modifiers.length>0||t.external_calls.length>0)&&(0,a.jsxs)(c.oz,{label:"Guards and external calls",children:[t.modifiers.length>0&&(0,a.jsxs)("p",{className:"text-body text-text-secondary",children:["Modifiers"," ",a.jsx("span",{className:"font-mono text-caption text-text-primary",children:t.modifiers.join(", ")})]}),t.external_calls.map((e,t)=>(0,a.jsxs)("p",{className:"flex items-baseline justify-between gap-2 text-body",children:[(0,a.jsxs)("span",{className:"truncate font-mono text-caption text-text-primary",children:[e.target,".",e.member]}),(0,a.jsxs)("span",{className:"shrink-0 text-caption text-text-tertiary",children:["low_level"===e.kind?"low-level \xb7 ":"","line ",e.line]})]},t))]}),(t.reads.length>0||t.writes.length>0)&&(0,a.jsxs)(c.oz,{label:"State",children:[t.writes.length>0&&a.jsx(O,{label:"Writes",vars:t.writes}),t.reads.length>0&&a.jsx(O,{label:"Reads",vars:t.reads})]})]}),d&&a.jsx($,{note:d,fnId:e.id,fnName:e.name})]})}function F({active:e,onClick:t,k:s,children:n}){return a.jsx(f.z,{variant:"secondary",onClick:t,"aria-pressed":e,title:`${e?"Undo":""} (${s})`.trim(),className:(0,C.cn)("flex-1",e&&"border-border-emphasis bg-surface-3"),children:n})}function O({label:e,vars:t}){return(0,a.jsxs)("p",{className:"flex gap-3 py-0.5 text-body",children:[a.jsx("span",{className:"w-14 shrink-0 text-text-tertiary",children:e}),a.jsx("span",{className:"min-w-0 flex-1 break-words font-mono text-caption leading-6 text-text-primary",children:t.map(e=>e.split(".").slice(1).join(".")||e).join(", ")})]})}function L({label:e,ids:t,at:s,labels:n,reviewable:r,onOpen:l}){let[o,d]=(0,i.useState)(!1);if(0===t.length)return null;let u=o?t:t.slice(0,6);return(0,a.jsxs)(c.oz,{label:e,trailing:a.jsx("span",{className:"text-caption text-text-tertiary",children:t.length}),children:[a.jsx("ul",{children:u.map(e=>{let t=n[e],i=r.get(e),o=s?.[e]??[];return a.jsx("li",{children:(0,a.jsxs)("button",{type:"button",onClick:()=>t&&l({key:e,name:`${t.contract}.${t.name}`,file:t.file,line_start:t.line_start,line_end:t.line_end,...o[0]?{line:o[0]}:{}}),className:"-mx-1.5 flex w-[calc(100%+12px)] items-center gap-2 rounded-md px-1.5 py-1 text-left hover:bg-surface-2",children:[i?a.jsx(m.e,{state:i.state,className:"h-3 w-3"}):a.jsx("span",{className:"h-3 w-3 shrink-0"}),a.jsx("span",{className:"min-w-0 flex-1 truncate text-body text-text-primary",children:t?`${t.contract}.${t.name}`:e}),o.length>0&&(0,a.jsxs)("span",{className:"shrink-0 text-caption tabular-nums text-text-tertiary",children:["line ",o.join(", ")]})]})},e)})}),t.length>6&&!o&&(0,a.jsxs)("button",{type:"button",onClick:()=>d(!0),className:"mt-1 text-caption text-text-secondary hover:text-text-primary",children:["Show ",t.length-6," more"]})]})}},8107:(e,t,s)=>{"use strict";s.d(t,{P:()=>n});var a=s(9899);function n({iso:e,className:t}){return a.jsx("time",{dateTime:e,className:t,suppressHydrationWarning:!0,children:new Date(e).toLocaleString()})}},9428:(e,t,s)=>{"use strict";s.d(t,{U:()=>c});var a=s(9899),n=s(5507),r=s(1593),i=s(8279),l=s(5119),o=s(5125);function c({value:e,onChange:t,placeholder:s="Search",className:c,hotkey:d=!0}){let u=(0,n.useRef)(null);return(0,i.y)({"/":e=>{e.preventDefault(),u.current?.focus(),u.current?.select()}},d),(0,a.jsxs)("label",{className:(0,r.cn)("relative flex h-8 items-center",c),children:[a.jsx(l.jV,{className:"pointer-events-none absolute left-2.5 h-3.5 w-3.5 text-text-tertiary"}),a.jsx("input",{ref:u,type:"search",value:e,placeholder:s,"aria-label":s,onChange:e=>t(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(t(""),u.current?.blur())},className:"h-8 w-full rounded-md border border-transparent bg-surface-2 pl-8 pr-8 text-body text-text-primary placeholder:text-text-tertiary focus:border-border-emphasis focus:bg-surface-0 focus:outline-none [&::-webkit-search-cancel-button]:hidden"}),d&&!e&&a.jsx(o.T,{className:"pointer-events-none absolute right-2",children:"/"})]})}},394:(e,t,s)=>{"use strict";s.d(t,{s:()=>r});var a=s(9899),n=s(1593);function r({segments:e,value:t,onChange:s,className:r,ariaLabel:i,size:l="md",fill:o=!1}){return a.jsx("div",{role:"tablist","aria-label":i,className:(0,n.cn)("max-w-full items-center gap-0.5 overflow-x-auto rounded-lg bg-surface-2 p-0.5",o?"flex w-full":"inline-flex",r),children:e.map(e=>{let r=e.value===t;return(0,a.jsxs)("button",{role:"tab",type:"button","aria-selected":r,onClick:()=>s(e.value),className:(0,n.cn)("inline-flex h-6 shrink-0 items-center justify-center gap-1 whitespace-nowrap rounded-md font-medium","sm"===l?"px-1.5 text-[11.5px]":"px-2.5 text-caption",o&&"flex-1",r?"bg-surface-0 text-text-primary shadow-sm":"text-text-secondary hover:text-text-primary"),children:[e.label,void 0!==e.count&&a.jsx("span",{className:"tabular-nums text-text-tertiary",children:e.count})]},e.value)})})}},865:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>p,dynamic:()=>m});var a=s(5023),n=s(9222),r=s(6905),i=s(6132),l=s(2548),o=s(2772);let c=(0,o.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/review/ReviewClient.tsx`),{__esModule:d,$$typeof:u}=c;c.default;let x=(0,o.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/review/ReviewClient.tsx#ReviewClient`),m="force-dynamic";function p(){let e=(0,r.Aw)(10),t=(0,r.Ge)();if(!t||0===e.rows.length)return(0,a.jsxs)("div",{className:"flex h-full flex-col",children:[a.jsx(l.o8,{title:"Review"}),a.jsx(i.u,{sentence:t?"No in-scope functions with code were found in the facts.":"Review needs the compiler facts for this project.",command:"hex facts"})]});let s=new Set(e.rows.map(e=>e.id)),o={},c={};for(let e of t.functions)c[e.id]={id:e.id,contract:e.contract,name:e.name,file:e.file,line_start:e.line_start,line_end:e.line_end},s.has(e.id)&&(o[e.id]={signature:e.signature,kind:e.kind,visibility:e.visibility,mutability:e.mutability,modifiers:e.modifiers,calls:e.calls.filter(e=>"modifier"!==e.kind).map(e=>e.to),called_by:e.called_by.map(e=>e.from),called_at:Object.fromEntries(e.called_by.filter(e=>e.at?.length).map(e=>[e.from,e.at])),external_calls:e.external_calls.map(e=>({target:e.target_type,member:e.member,kind:e.kind,line:e.line})),reads:e.reads,writes:e.writes,emits:e.emits});let d=(0,n.b4)(),u=Array.from(new Set(e.rows.map(e=>e.contract))).sort(),m={};for(let e of u)m[e]=(0,r.eT)(e);return a.jsx(x,{rows:e.rows,blindSpots:e.blind_spots.map(e=>e.id),details:o,labels:c,cards:(0,n.lW)(d),notes:m,diffMode:(0,r.cA)(),generalNote:(0,r.QR)(),pendingSessions:(0,r.TS)()})}},9222:(e,t,s)=>{"use strict";s.d(t,{b4:()=>l,lW:()=>o});var a=s(1720),n=s(3478),r=s(6905);function i(e,t){return"verified"!==e&&"synced"!==e?"none":t?.issue_number?t.sync_status&&"in_sync"!==t.sync_status?"conflict":"closed"===t.state?"synced_closed":"synced_open":"unsynced"}function l(){let e=(0,a.gn)("findings.json")??{findings:[]},t=(0,a.gn)("tracking.json")??{findings:[]},s=(0,a.gn)("comparison.json")??{},l=(0,a.gn)("spec-conformance.json")??{},o=(0,r.Ge)(),c=(0,r.G2)(),d=new Map(e.findings.map(e=>[e.id,e])),u=new Map((l.items??[]).map(e=>[e.id,e])),x=new Map;for(let e of["ai-results","external"])for(let t of(0,a.J1)(e)){let s=(0,a.V9)(`${e}/${t}/findings.json`);for(let e of s?.findings??[])x.set(e.id,e)}let m=new Map((s.duplicates??[]).map(e=>[e.ai_finding,e])),p=(e,t,s,a)=>{if(!o)return[];try{return(0,n.VK)(o,{id:e,title:t,description:s,root_cause:{locations:a}},c)}catch{return[]}},h=[],f=new Set;for(let e of t.findings){let t=d.get(e.id),s=x.get(e.id),a=u.get(e.id),n=t?.description??s?.description??a?.finding??"",r=t?.root_cause?.locations?.map(e=>({file:e.file,snippet:e.snippet}))??s?.affected_code?.map(e=>({file:e.file,snippet:e.snippet}))??(a?.code_location?.file?[{file:a.code_location.file}]:[]),l=m.get(e.id),o=e.title||t?.title||s?.title||a?.spec_text||e.id;f.add(e.id),h.push({id:e.id,title:o,severity:e.severity,source:e.source??"manual",status:e.status??"pending_validation",column:function(e){switch(e){case"verified":return"verified";case"synced":return"synced";case"rejected":return"invalid";case"duplicate":return"duplicate";default:return"potential"}}(e.status),description:n,recommendation:t?.recommendation??"",resolution:t?.resolution,update_from_client:t?.update_from_client,code_locations:r,github_issue_url:t?.github?.issue_url,github_issue_number:t?.github?.issue_number,github_state:t?.github?.state,sync_state:i(e.status,t?.github),duplicate_of:e.duplicate_of??l?.matches??null,match_signals:l?.match_signals?{contract:!!l.match_signals.contract,function:!!l.match_signals.function,root_cause:String(l.match_signals.root_cause??""),attack_vector:String(l.match_signals.attack_vector??"")}:void 0,reasoning:l?.reasoning,category:t?.category||s?.category,poc_status:e.poc_status??t?.poc?.status,poc_file:e.poc_file??t?.poc?.file??null,notes:e.notes??"",source_ref:e.source_ref??t?.source_ref??null,validation:e.validation??t?.validation,functions:p(e.id,o,n,r)})}for(let t of e.findings){if(f.has(t.id))continue;let e=t.root_cause?.locations??[];h.push({id:t.id,title:t.title,severity:t.severity,source:"manual",status:"verified",column:"verified",description:t.description??"",recommendation:t.recommendation??"",resolution:t.resolution,update_from_client:t.update_from_client,code_locations:e,github_issue_url:t.github?.issue_url,github_issue_number:t.github?.issue_number,github_state:t.github?.state,sync_state:i("verified",t.github),duplicate_of:null,category:t.category,poc_status:t.poc?.status,poc_file:t.poc?.file??null,notes:"",source_ref:t.source_ref??null,validation:t.validation,functions:p(t.id,t.title,t.description??"",e)})}return h}function o(e=l()){let t={};for(let s of e)t[s.id]={id:s.id,title:s.title,severity:s.severity,column:s.column};return t}}};var t=require("../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),a=t.X(0,[916,649,645,494,42,310,370,624,653],()=>s(7961));module.exports=a})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../package.json","../../chunks/530.js","../../chunks/645.js","../../chunks/649.js","../../chunks/665.js","../../chunks/916.js","../../chunks/939.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
1
+ {"version":1,"files":["../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../package.json","../../chunks/310.js","../../chunks/370.js","../../chunks/42.js","../../chunks/494.js","../../chunks/624.js","../../chunks/645.js","../../chunks/649.js","../../chunks/653.js","../../chunks/916.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/review/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"4595":{"*":{"id":"1388","name":"*","chunks":[],"async":false}},"11076":{"*":{"id":"9323","name":"*","chunks":[],"async":false}},"11447":{"*":{"id":"5915","name":"*","chunks":[],"async":false}},"15276":{"*":{"id":"820","name":"*","chunks":[],"async":false}},"25268":{"*":{"id":"3817","name":"*","chunks":[],"async":false}},"43297":{"*":{"id":"1611","name":"*","chunks":[],"async":false}},"52331":{"*":{"id":"1174","name":"*","chunks":[],"async":false}},"56902":{"*":{"id":"2541","name":"*","chunks":[],"async":false}},"63237":{"*":{"id":"281","name":"*","chunks":[],"async":false}},"67498":{"*":{"id":"696","name":"*","chunks":[],"async":false}},"68916":{"*":{"id":"5314","name":"*","chunks":[],"async":false}},"71520":{"*":{"id":"5707","name":"*","chunks":[],"async":false}},"81751":{"*":{"id":"3368","name":"*","chunks":[],"async":false}},"84300":{"*":{"id":"9939","name":"*","chunks":[],"async":false}},"85581":{"*":{"id":"6462","name":"*","chunks":[],"async":false}},"88554":{"*":{"id":"1352","name":"*","chunks":[],"async":false}},"89690":{"*":{"id":"2204","name":"*","chunks":[],"async":false}},"92198":{"*":{"id":"9915","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/dx/Work/hex/node_modules/next/dist/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/globals.css":{"id":13812,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/AutoRefresh.tsx":{"id":84300,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/CommandPalette.tsx":{"id":92198,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Sidebar.tsx":{"id":63237,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Toast.tsx":{"id":88554,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next-themes/dist/index.mjs":{"id":4595,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Manrope\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\",\"display\":\"swap\"}],\"variableName\":\"manrope\"}":{"id":41600,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"JetBrains_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\",\"display\":\"swap\"}],\"variableName\":\"jetbrainsMono\"}":{"id":55256,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx":{"id":71520,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/components/ui/SplitView.tsx":{"id":81751,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","217","static/chunks/217-1d5b680ffd10e3f9.js","2374","static/chunks/2374-8c6f137938f8518a.js","7834","static/chunks/7834-47f318a04a05688f.js","8672","static/chunks/app/review/page-3ef69f0e0badd333.js"],"async":false},"/home/dx/Work/hex/dashboard/app/issues/BoardClient.tsx":{"id":68916,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/model/ModelClient.tsx":{"id":85581,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/report/ReportClient.tsx":{"id":56902,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/review/ReviewClient.tsx":{"id":52331,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","217","static/chunks/217-1d5b680ffd10e3f9.js","2374","static/chunks/2374-8c6f137938f8518a.js","7834","static/chunks/7834-47f318a04a05688f.js","8672","static/chunks/app/review/page-3ef69f0e0badd333.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/link.js":{"id":67498,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","1931","static/chunks/app/page-0e67750d99fb2836.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/link.js":{"id":67498,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","1931","static/chunks/app/page-0e67750d99fb2836.js"],"async":false}},"entryCSSFiles":{"/home/dx/Work/hex/dashboard/":[],"/home/dx/Work/hex/dashboard/app/layout":["static/css/ceafd91ca8dd753d.css"],"/home/dx/Work/hex/dashboard/app/page":[],"/home/dx/Work/hex/dashboard/app/review/page":[]}}
@@ -1,30 +1,33 @@
1
1
  {
2
2
  "/_not-found/page": "app/_not-found/page.js",
3
- "/api/code/route": "app/api/code/route.js",
4
- "/api/mermaid/route": "app/api/mermaid/route.js",
5
- "/api/progress/route": "app/api/progress/route.js",
6
- "/diagram/page": "app/diagram/page.js",
7
- "/flows/page": "app/flows/page.js",
8
3
  "/icon.svg/route": "app/icon.svg/route.js",
9
- "/api/flows/route": "app/api/flows/route.js",
4
+ "/api/diagrams/[name]/resolve/route": "app/api/diagrams/[name]/resolve/route.js",
5
+ "/api/diagrams/[name]/export/route": "app/api/diagrams/[name]/export/route.js",
6
+ "/api/figures/[name]/route": "app/api/figures/[name]/route.js",
10
7
  "/api/github-status/route": "app/api/github-status/route.js",
8
+ "/api/diagrams/[name]/route": "app/api/diagrams/[name]/route.js",
9
+ "/api/focus/route": "app/api/focus/route.js",
10
+ "/api/code/route": "app/api/code/route.js",
11
+ "/api/comments/route": "app/api/comments/route.js",
12
+ "/api/invariants/[id]/route": "app/api/invariants/[id]/route.js",
11
13
  "/api/issues/[id]/route": "app/api/issues/[id]/route.js",
14
+ "/api/issues/[id]/revert-auto/route": "app/api/issues/[id]/revert-auto/route.js",
12
15
  "/api/issues/[id]/move/route": "app/api/issues/[id]/move/route.js",
13
16
  "/api/notes/question/route": "app/api/notes/question/route.js",
14
17
  "/api/notes/done/route": "app/api/notes/done/route.js",
15
- "/api/notes/lead/route": "app/api/notes/lead/route.js",
16
18
  "/api/notes/route": "app/api/notes/route.js",
19
+ "/api/notes/lead/route": "app/api/notes/lead/route.js",
17
20
  "/api/notes/record/route": "app/api/notes/record/route.js",
18
- "/calls/page": "app/calls/page.js",
21
+ "/api/palette/route": "app/api/palette/route.js",
22
+ "/api/progress/route": "app/api/progress/route.js",
19
23
  "/api/watch/route": "app/api/watch/route.js",
20
24
  "/changes/page": "app/changes/page.js",
21
- "/access/page": "app/access/page.js",
22
- "/notes/page": "app/notes/page.js",
23
- "/conformance/page": "app/conformance/page.js",
24
- "/functions/page": "app/functions/page.js",
25
- "/report/page": "app/report/page.js",
26
- "/stats/page": "app/stats/page.js",
27
- "/progress/page": "app/progress/page.js",
25
+ "/api/xref/route": "app/api/xref/route.js",
26
+ "/excalidraw-assets/[...path]/route": "app/excalidraw-assets/[...path]/route.js",
28
27
  "/issues/page": "app/issues/page.js",
29
- "/page": "app/page.js"
28
+ "/model/page": "app/model/page.js",
29
+ "/report/page": "app/report/page.js",
30
+ "/review/page": "app/review/page.js",
31
+ "/page": "app/page.js",
32
+ "/api/nav/route": "app/api/nav/route.js"
30
33
  }