hex-audit 0.5.0 → 0.5.2

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 (146) hide show
  1. package/dashboard/.next/BUILD_ID +1 -1
  2. package/dashboard/.next/app-build-manifest.json +20 -20
  3. package/dashboard/.next/app-path-routes-manifest.json +1 -1
  4. package/dashboard/.next/build-manifest.json +2 -2
  5. package/dashboard/.next/next-minimal-server.js.nft.json +1 -1
  6. package/dashboard/.next/next-server.js.nft.json +1 -1
  7. package/dashboard/.next/prerender-manifest.js +1 -1
  8. package/dashboard/.next/prerender-manifest.json +1 -1
  9. package/dashboard/.next/server/app/_not-found/page.js +1 -1
  10. package/dashboard/.next/server/app/_not-found/page.js.nft.json +1 -1
  11. package/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/dashboard/.next/server/app/_not-found.html +1 -1
  13. package/dashboard/.next/server/app/_not-found.rsc +4 -4
  14. package/dashboard/.next/server/app/access/page.js +1 -1
  15. package/dashboard/.next/server/app/access/page.js.nft.json +1 -1
  16. package/dashboard/.next/server/app/access/page_client-reference-manifest.js +1 -1
  17. package/dashboard/.next/server/app/api/flows/route.js +1 -1
  18. package/dashboard/.next/server/app/api/github-status/route.js +1 -1
  19. package/dashboard/.next/server/app/api/issues/[id]/move/route.js +1 -1
  20. package/dashboard/.next/server/app/api/issues/[id]/move/route.js.nft.json +1 -1
  21. package/dashboard/.next/server/app/api/issues/[id]/route.js +1 -1
  22. package/dashboard/.next/server/app/api/issues/[id]/route.js.nft.json +1 -1
  23. package/dashboard/.next/server/app/api/mermaid/route.js +1 -1
  24. package/dashboard/.next/server/app/api/progress/route.js +1 -1
  25. package/dashboard/.next/server/app/api/watch/route.js +2 -2
  26. package/dashboard/.next/server/app/calls/page.js +1 -1
  27. package/dashboard/.next/server/app/calls/page.js.nft.json +1 -1
  28. package/dashboard/.next/server/app/calls/page_client-reference-manifest.js +1 -1
  29. package/dashboard/.next/server/app/conformance/page.js +1 -1
  30. package/dashboard/.next/server/app/conformance/page.js.nft.json +1 -1
  31. package/dashboard/.next/server/app/conformance/page_client-reference-manifest.js +1 -1
  32. package/dashboard/.next/server/app/diagram/page.js +1 -1
  33. package/dashboard/.next/server/app/diagram/page.js.nft.json +1 -1
  34. package/dashboard/.next/server/app/diagram/page_client-reference-manifest.js +1 -1
  35. package/dashboard/.next/server/app/diagram.html +1 -1
  36. package/dashboard/.next/server/app/diagram.rsc +4 -4
  37. package/dashboard/.next/server/app/flows/page.js +1 -1
  38. package/dashboard/.next/server/app/flows/page.js.nft.json +1 -1
  39. package/dashboard/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  40. package/dashboard/.next/server/app/flows.html +1 -1
  41. package/dashboard/.next/server/app/flows.rsc +4 -4
  42. package/dashboard/.next/server/app/functions/page.js +1 -1
  43. package/dashboard/.next/server/app/functions/page.js.nft.json +1 -1
  44. package/dashboard/.next/server/app/functions/page_client-reference-manifest.js +1 -1
  45. package/dashboard/.next/server/app/issues/page.js +5 -3
  46. package/dashboard/.next/server/app/issues/page.js.nft.json +1 -1
  47. package/dashboard/.next/server/app/issues/page_client-reference-manifest.js +1 -1
  48. package/dashboard/.next/server/app/overleaf/page.js +1 -1
  49. package/dashboard/.next/server/app/overleaf/page.js.nft.json +1 -1
  50. package/dashboard/.next/server/app/overleaf/page_client-reference-manifest.js +1 -1
  51. package/dashboard/.next/server/app/page.js +2 -2
  52. package/dashboard/.next/server/app/page.js.nft.json +1 -1
  53. package/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  54. package/dashboard/.next/server/app/progress/page.js +1 -1
  55. package/dashboard/.next/server/app/progress/page.js.nft.json +1 -1
  56. package/dashboard/.next/server/app/progress/page_client-reference-manifest.js +1 -1
  57. package/dashboard/.next/server/app/stats/page.js +1 -1
  58. package/dashboard/.next/server/app/stats/page.js.nft.json +1 -1
  59. package/dashboard/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  60. package/dashboard/.next/server/app-paths-manifest.json +6 -6
  61. package/dashboard/.next/server/chunks/42.js +1 -0
  62. package/dashboard/.next/server/chunks/44.js +1 -0
  63. package/dashboard/.next/server/chunks/{431.js → 530.js} +1 -1
  64. package/dashboard/.next/server/functions-config-manifest.json +1 -1
  65. package/dashboard/.next/server/middleware-build-manifest.js +1 -1
  66. package/dashboard/.next/server/pages/404.html +1 -1
  67. package/dashboard/.next/server/pages/500.html +1 -1
  68. package/dashboard/.next/server/server-reference-manifest.js +1 -1
  69. package/dashboard/.next/server/server-reference-manifest.json +1 -1
  70. package/dashboard/.next/static/chunks/app/issues/{page-2bb52a36f20497fe.js → page-6bfbf80884d3c9d8.js} +1 -1
  71. package/dashboard/.next/static/chunks/app/{layout-9c3c84993dd895f6.js → layout-23765c356f43208c.js} +1 -1
  72. package/dashboard/app/layout.tsx +2 -1
  73. package/dashboard/components/DashboardLayout.tsx +8 -2
  74. package/dashboard/lib/data.ts +11 -19
  75. package/dashboard/lib/finding-markdown.ts +42 -3
  76. package/dist/commands/access.d.ts.map +1 -1
  77. package/dist/commands/access.js +3 -4
  78. package/dist/commands/access.js.map +1 -1
  79. package/dist/commands/ai-status.d.ts.map +1 -1
  80. package/dist/commands/ai-status.js +8 -10
  81. package/dist/commands/ai-status.js.map +1 -1
  82. package/dist/commands/calls.d.ts.map +1 -1
  83. package/dist/commands/calls.js +3 -4
  84. package/dist/commands/calls.js.map +1 -1
  85. package/dist/commands/constraints.d.ts.map +1 -1
  86. package/dist/commands/constraints.js +2 -4
  87. package/dist/commands/constraints.js.map +1 -1
  88. package/dist/commands/context.d.ts.map +1 -1
  89. package/dist/commands/context.js +2 -4
  90. package/dist/commands/context.js.map +1 -1
  91. package/dist/commands/dashboard.d.ts.map +1 -1
  92. package/dist/commands/dashboard.js +19 -12
  93. package/dist/commands/dashboard.js.map +1 -1
  94. package/dist/commands/deps.d.ts.map +1 -1
  95. package/dist/commands/deps.js +2 -4
  96. package/dist/commands/deps.js.map +1 -1
  97. package/dist/commands/issue.d.ts.map +1 -1
  98. package/dist/commands/issue.js +12 -6
  99. package/dist/commands/issue.js.map +1 -1
  100. package/dist/commands/note.d.ts +3 -0
  101. package/dist/commands/note.d.ts.map +1 -0
  102. package/dist/commands/note.js +145 -0
  103. package/dist/commands/note.js.map +1 -0
  104. package/dist/commands/patterns.d.ts.map +1 -1
  105. package/dist/commands/patterns.js +2 -4
  106. package/dist/commands/patterns.js.map +1 -1
  107. package/dist/commands/state.d.ts.map +1 -1
  108. package/dist/commands/state.js +3 -4
  109. package/dist/commands/state.js.map +1 -1
  110. package/dist/commands/stats.d.ts.map +1 -1
  111. package/dist/commands/stats.js +3 -4
  112. package/dist/commands/stats.js.map +1 -1
  113. package/dist/commands/surface.d.ts.map +1 -1
  114. package/dist/commands/surface.js +3 -4
  115. package/dist/commands/surface.js.map +1 -1
  116. package/dist/core/config.d.ts +13 -0
  117. package/dist/core/config.d.ts.map +1 -1
  118. package/dist/core/config.js +23 -16
  119. package/dist/core/config.js.map +1 -1
  120. package/dist/core/issues.d.ts +2 -0
  121. package/dist/core/issues.d.ts.map +1 -1
  122. package/dist/core/issues.js +12 -1
  123. package/dist/core/issues.js.map +1 -1
  124. package/dist/core/locate.d.ts +26 -0
  125. package/dist/core/locate.d.ts.map +1 -0
  126. package/dist/core/locate.js +56 -0
  127. package/dist/core/locate.js.map +1 -0
  128. package/dist/core/notes.d.ts +62 -0
  129. package/dist/core/notes.d.ts.map +1 -0
  130. package/dist/core/notes.js +160 -0
  131. package/dist/core/notes.js.map +1 -0
  132. package/dist/core/whisper.d.ts +24 -0
  133. package/dist/core/whisper.d.ts.map +1 -0
  134. package/dist/core/whisper.js +124 -0
  135. package/dist/core/whisper.js.map +1 -0
  136. package/dist/index.js +6 -1
  137. package/dist/index.js.map +1 -1
  138. package/dist/skills/diane.md +99 -0
  139. package/dist/skills/ingest-aa-report.md +1 -1
  140. package/dist/skills/sync-issues.md +23 -3
  141. package/dist/skills/validate-issue.md +2 -0
  142. package/dist/skills/write-finding.md +15 -5
  143. package/package.json +1 -1
  144. package/dashboard/.next/server/chunks/557.js +0 -1
  145. /package/dashboard/.next/static/{NrFPHIFHWQ5jNF62Px_X8 → QeyYu_4EslVR8FTiyQpNs}/_buildManifest.js +0 -0
  146. /package/dashboard/.next/static/{NrFPHIFHWQ5jNF62Px_X8 → QeyYu_4EslVR8FTiyQpNs}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/9c84313d0484b74f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-08869f2b18792e51.js"/><script src="/_next/static/chunks/618f8807-547c5614e1318888.js" async=""></script><script src="/_next/static/chunks/3205-728c260fbb4f89c6.js" async=""></script><script src="/_next/static/chunks/main-app-9d2f6b8a47133e9b.js" async=""></script><script src="/_next/static/chunks/7498-ea83cb9e30ec5491.js" async=""></script><script src="/_next/static/chunks/app/layout-9c3c84993dd895f6.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Hex</title><meta name="description" content="Local dashboard for Solidity smart contract audits"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__variable_73ee6c __variable_3c557b min-h-screen bg-surface-0 text-text-primary font-sans"><script>((e,t,r,n,o,l,a,u)=>{let i=document.documentElement,s=["light","dark"];function c(t){(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&l?o.map(e=>l[e]||e):o;r?(i.classList.remove(...n),i.classList.add(l&&l[t]?l[t]:t)):i.setAttribute(e,t)}),u&&s.includes(t)&&(i.style.colorScheme=t)}if(n)c(n);else try{let e=localStorage.getItem(t)||r,n=a&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(n)}catch(e){}})("data-theme","theme","dark",null,["light","dark"],null,false,true)</script><div class="min-h-screen"><button type="button" aria-label="Toggle navigation" class="fixed left-3 top-3 z-[60] flex h-10 w-10 items-center justify-center rounded-md bg-surface-1 border border-border-default text-text-secondary hover:text-text-primary md:hidden"><svg class="h-5 w-5" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"></path></svg></button><nav aria-label="Main navigation" class="fixed left-0 top-0 z-50 flex h-screen w-[220px] flex-col border-r border-border-subtle bg-surface-1 transition-transform duration-200 -translate-x-full md:translate-x-0"><div class="px-5 pb-4 pt-6"><div class="flex items-baseline gap-2"><span class="text-title font-semibold text-text-primary">Hex</span><span class="text-caption text-text-tertiary">v0.5.0</span></div></div><div class="flex-1 overflow-y-auto px-3 pb-4"><div class="mt-6 first:mt-0"><div class="mb-1.5 px-3 text-caption font-medium text-text-tertiary">Recon</div><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="m2.25 12 8.954-8.955a1.126 1.126 0 0 1 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25"></path></svg><span>Home</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/progress"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15a2.25 2.25 0 0 1 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"></path></svg><span>Progress</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/stats"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="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"></path></svg><span>Stats</span></a></div><div class="mt-6 first:mt-0"><div class="mb-1.5 px-3 text-caption font-medium text-text-tertiary">Analysis</div><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/access"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="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"></path></svg><span>Access Control</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/functions"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"></path></svg><span>Functions</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/calls"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"></path></svg><span>Ext Calls</span></a></div><div class="mt-6 first:mt-0"><div class="mb-1.5 px-3 text-caption font-medium text-text-tertiary">Reasoning</div><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/conformance"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M10.125 2.25h-4.5c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125v-9M10.125 2.25h.375a9 9 0 0 1 9 9v.375M10.125 2.25A3.375 3.375 0 0 1 13.5 5.625v1.5c0 .621.504 1.125 1.125 1.125h1.5a3.375 3.375 0 0 1 3.375 3.375"></path></svg><span>Spec Conformance</span></a></div><div class="mt-6 first:mt-0"><div class="mb-1.5 px-3 text-caption font-medium text-text-tertiary">Visual</div><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/diagram"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="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"></path></svg><span>Diagram</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/flows"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 3v11.25A2.25 2.25 0 0 0 6 16.5h2.25M3.75 3h-1.5m1.5 0h16.5m0 0h1.5m-1.5 0v11.25A2.25 2.25 0 0 1 18 16.5h-2.25m-7.5 0h7.5m-7.5 0-1 3m8.5-3 1 3m0 0 .5 1.5m-.5-1.5h-9.5m0 0-.5 1.5"></path></svg><span>Flows</span></a></div><div class="mt-6 first:mt-0"><div class="mb-1.5 px-3 text-caption font-medium text-text-tertiary">Issues</div><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/issues"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="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"></path></svg><span>Board</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/overleaf"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"></path></svg><span>Overleaf</span></a></div></div><div class="border-t border-border-subtle px-3 py-3 space-y-1"><div class="px-3 py-1 text-caption text-text-tertiary" aria-live="polite"><div class="flex items-center gap-2" title="Last refresh 8:17:48 PM — watcher disconnected"><span class="inline-block h-1.5 w-1.5 rounded-full bg-[var(--medium)]" aria-hidden="true"></span><span>Reconnecting…</span></div></div><div class="h-9"></div><div class="flex items-center gap-1.5 px-3 py-1 text-caption text-text-tertiary"><kbd class="rounded border border-border-default bg-surface-2 px-1.5 py-0.5 text-[11px]">⌘K</kbd><span>Quick nav</span></div></div></nav><main class="min-h-screen bg-surface-0 p-6 pt-16 md:ml-[220px] md:pt-6"><div class="mx-auto max-w-6xl"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-08869f2b18792e51.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/4c9affa5bc8f420e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/bb3ef058b751a6ad-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/css/9c84313d0484b74f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"4:I[5268,[],\"\"]\n6:I[5276,[],\"\"]\n7:I[3297,[],\"\"]\n8:I[4595,[\"7498\",\"static/chunks/7498-ea83cb9e30ec5491.js\",\"3185\",\"static/chunks/app/layout-9c3c84993dd895f6.js\"],\"ThemeProvider\"]\n9:I[2198,[\"7498\",\"static/chunks/7498-ea83cb9e30ec5491.js\",\"3185\",\"static/chunks/app/layout-9c3c84993dd895f6.js\"],\"CommandPalette\"]\na:I[1187,[\"7498\",\"static/chunks/7498-ea83cb9e30ec5491.js\",\"3185\",\"static/chunks/app/layout-9c3c84993dd895f6.js\"],\"DashboardLayout\"]\n10:I[9690,[],\"\"]\nb:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\nc:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\nd:{\"display\":\"inline-block\"}\ne:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n11:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9c84313d0484b74f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"buildId\":\"NrFPHIFHWQ5jNF62Px_X8\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/_not-found\",\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L5\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],null],null]},[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_73ee6c __variable_3c557b min-h-screen bg-surface-0 text-text-primary font-sans\",\"children\":[\"$\",\"$L8\",null,{\"attribute\":\"data-theme\",\"defaultTheme\":\"dark\",\"enableSystem\":false,\"children\":[[\"$\",\"$L9\",null,{}],[\"$\",\"$La\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$b\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$c\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$d\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$e\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]]}]}]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$Lf\"],\"globalErrorComponent\":\"$10\",\"missingSlots\":\"$W11\"}]]\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Hex\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Local dashboard for Solidity smart contract audits\"}],[\"$\",\"meta\",\"4\",{\"name\":\"next-size-adjust\"}]]\n5:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/9c84313d0484b74f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-08869f2b18792e51.js"/><script src="/_next/static/chunks/618f8807-547c5614e1318888.js" async=""></script><script src="/_next/static/chunks/3205-728c260fbb4f89c6.js" async=""></script><script src="/_next/static/chunks/main-app-9d2f6b8a47133e9b.js" async=""></script><script src="/_next/static/chunks/7498-ea83cb9e30ec5491.js" async=""></script><script src="/_next/static/chunks/app/layout-23765c356f43208c.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Hex</title><meta name="description" content="Local dashboard for Solidity smart contract audits"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__variable_73ee6c __variable_3c557b min-h-screen bg-surface-0 text-text-primary font-sans"><script>((e,t,r,n,o,l,a,u)=>{let i=document.documentElement,s=["light","dark"];function c(t){(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&l?o.map(e=>l[e]||e):o;r?(i.classList.remove(...n),i.classList.add(l&&l[t]?l[t]:t)):i.setAttribute(e,t)}),u&&s.includes(t)&&(i.style.colorScheme=t)}if(n)c(n);else try{let e=localStorage.getItem(t)||r,n=a&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(n)}catch(e){}})("data-theme","theme","dark",null,["light","dark"],null,false,true)</script><div class="min-h-screen"><button type="button" aria-label="Toggle navigation" class="fixed left-3 top-3 z-[60] flex h-10 w-10 items-center justify-center rounded-md bg-surface-1 border border-border-default text-text-secondary hover:text-text-primary md:hidden"><svg class="h-5 w-5" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"></path></svg></button><nav aria-label="Main navigation" class="fixed left-0 top-0 z-50 flex h-screen w-[220px] flex-col border-r border-border-subtle bg-surface-1 transition-transform duration-200 -translate-x-full md:translate-x-0"><div class="px-5 pb-4 pt-6"><div class="flex items-baseline gap-2"><span class="text-title font-semibold text-text-primary">Hex</span><span class="text-caption text-text-tertiary">v<!-- -->0.5.2</span></div></div><div class="flex-1 overflow-y-auto px-3 pb-4"><div class="mt-6 first:mt-0"><div class="mb-1.5 px-3 text-caption font-medium text-text-tertiary">Recon</div><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="m2.25 12 8.954-8.955a1.126 1.126 0 0 1 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25"></path></svg><span>Home</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/progress"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15a2.25 2.25 0 0 1 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"></path></svg><span>Progress</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/stats"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="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"></path></svg><span>Stats</span></a></div><div class="mt-6 first:mt-0"><div class="mb-1.5 px-3 text-caption font-medium text-text-tertiary">Analysis</div><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/access"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="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"></path></svg><span>Access Control</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/functions"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"></path></svg><span>Functions</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/calls"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"></path></svg><span>Ext Calls</span></a></div><div class="mt-6 first:mt-0"><div class="mb-1.5 px-3 text-caption font-medium text-text-tertiary">Reasoning</div><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/conformance"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M10.125 2.25h-4.5c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125v-9M10.125 2.25h.375a9 9 0 0 1 9 9v.375M10.125 2.25A3.375 3.375 0 0 1 13.5 5.625v1.5c0 .621.504 1.125 1.125 1.125h1.5a3.375 3.375 0 0 1 3.375 3.375"></path></svg><span>Spec Conformance</span></a></div><div class="mt-6 first:mt-0"><div class="mb-1.5 px-3 text-caption font-medium text-text-tertiary">Visual</div><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/diagram"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="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"></path></svg><span>Diagram</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/flows"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 3v11.25A2.25 2.25 0 0 0 6 16.5h2.25M3.75 3h-1.5m1.5 0h16.5m0 0h1.5m-1.5 0v11.25A2.25 2.25 0 0 1 18 16.5h-2.25m-7.5 0h7.5m-7.5 0-1 3m8.5-3 1 3m0 0 .5 1.5m-.5-1.5h-9.5m0 0-.5 1.5"></path></svg><span>Flows</span></a></div><div class="mt-6 first:mt-0"><div class="mb-1.5 px-3 text-caption font-medium text-text-tertiary">Issues</div><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/issues"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="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"></path></svg><span>Board</span></a><a class="group flex items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary" href="/overleaf"><svg class="h-4 w-4 shrink-0" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"></path></svg><span>Overleaf</span></a></div></div><div class="border-t border-border-subtle px-3 py-3 space-y-1"><div class="px-3 py-1 text-caption text-text-tertiary" aria-live="polite"><div class="flex items-center gap-2" title="Last refresh 5:54:41 PM — watcher disconnected"><span class="inline-block h-1.5 w-1.5 rounded-full bg-[var(--medium)]" aria-hidden="true"></span><span>Reconnecting…</span></div></div><div class="h-9"></div><div class="flex items-center gap-1.5 px-3 py-1 text-caption text-text-tertiary"><kbd class="rounded border border-border-default bg-surface-2 px-1.5 py-0.5 text-[11px]">⌘K</kbd><span>Quick nav</span></div></div></nav><main class="min-h-screen bg-surface-0 p-6 pt-16 md:ml-[220px] md:pt-6"><div class="mx-auto max-w-6xl"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-08869f2b18792e51.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/4c9affa5bc8f420e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/bb3ef058b751a6ad-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/css/9c84313d0484b74f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"4:I[5268,[],\"\"]\n6:I[5276,[],\"\"]\n7:I[3297,[],\"\"]\n8:I[4595,[\"7498\",\"static/chunks/7498-ea83cb9e30ec5491.js\",\"3185\",\"static/chunks/app/layout-23765c356f43208c.js\"],\"ThemeProvider\"]\n9:I[2198,[\"7498\",\"static/chunks/7498-ea83cb9e30ec5491.js\",\"3185\",\"static/chunks/app/layout-23765c356f43208c.js\"],\"CommandPalette\"]\na:I[1187,[\"7498\",\"static/chunks/7498-ea83cb9e30ec5491.js\",\"3185\",\"static/chunks/app/layout-23765c356f43208c.js\"],\"DashboardLayout\"]\n10:I[9690,[],\"\"]\nb:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\nc:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\nd:{\"display\":\"inline-block\"}\ne:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n11:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9c84313d0484b74f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"buildId\":\"QeyYu_4EslVR8FTiyQpNs\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/_not-found\",\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L5\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],null],null]},[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_73ee6c __variable_3c557b min-h-screen bg-surface-0 text-text-primary font-sans\",\"children\":[\"$\",\"$L8\",null,{\"attribute\":\"data-theme\",\"defaultTheme\":\"dark\",\"enableSystem\":false,\"children\":[[\"$\",\"$L9\",null,{}],[\"$\",\"$La\",null,{\"version\":\"0.5.2\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$b\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$c\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$d\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$e\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]]}]}]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$Lf\"],\"globalErrorComponent\":\"$10\",\"missingSlots\":\"$W11\"}]]\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Hex\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Local dashboard for Solidity smart contract audits\"}],[\"$\",\"meta\",\"4\",{\"name\":\"next-size-adjust\"}]]\n5:null\n"])</script></body></html>
@@ -1,12 +1,12 @@
1
1
  2:I[5276,[],""]
2
2
  3:I[3297,[],""]
3
- 4:I[4595,["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-9c3c84993dd895f6.js"],"ThemeProvider"]
4
- 5:I[2198,["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-9c3c84993dd895f6.js"],"CommandPalette"]
5
- 6:I[1187,["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-9c3c84993dd895f6.js"],"DashboardLayout"]
3
+ 4:I[4595,["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-23765c356f43208c.js"],"ThemeProvider"]
4
+ 5:I[2198,["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-23765c356f43208c.js"],"CommandPalette"]
5
+ 6:I[1187,["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-23765c356f43208c.js"],"DashboardLayout"]
6
6
  7:{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"}
7
7
  8:{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"}
8
8
  9:{"display":"inline-block"}
9
9
  a:{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0}
10
- 0:["NrFPHIFHWQ5jNF62Px_X8",[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["/_not-found",{"children":["__PAGE__",{},[["$L1",[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],null],null]},["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children","/_not-found","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","styles":null}],null]},[["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_73ee6c __variable_3c557b min-h-screen bg-surface-0 text-text-primary font-sans","children":["$","$L4",null,{"attribute":"data-theme","defaultTheme":"dark","enableSystem":false,"children":[["$","$L5",null,{}],["$","$L6",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$7","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$8","children":"404"}],["$","div",null,{"style":"$9","children":["$","h2",null,{"style":"$a","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"styles":null}]}]]}]}]}],null],null],[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9c84313d0484b74f.css","precedence":"next","crossOrigin":"$undefined"}]],[["$","meta",null,{"name":"robots","content":"noindex"}],"$Lb"]]]]]
10
+ 0:["QeyYu_4EslVR8FTiyQpNs",[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["/_not-found",{"children":["__PAGE__",{},[["$L1",[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],null],null]},["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children","/_not-found","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","styles":null}],null]},[["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_73ee6c __variable_3c557b min-h-screen bg-surface-0 text-text-primary font-sans","children":["$","$L4",null,{"attribute":"data-theme","defaultTheme":"dark","enableSystem":false,"children":[["$","$L5",null,{}],["$","$L6",null,{"version":"0.5.2","children":["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$7","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$8","children":"404"}],["$","div",null,{"style":"$9","children":["$","h2",null,{"style":"$a","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"styles":null}]}]]}]}]}],null],null],[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9c84313d0484b74f.css","precedence":"next","crossOrigin":"$undefined"}]],[["$","meta",null,{"name":"robots","content":"noindex"}],"$Lb"]]]]]
11
11
  b:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Hex"}],["$","meta","3",{"name":"description","content":"Local dashboard for Solidity smart contract audits"}],["$","meta","4",{"name":"next-size-adjust"}]]
12
12
  1:null
@@ -1 +1 @@
1
- (()=>{var e={};e.id=980,e.ids=[980],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")},1166:(e,t,s)=>{"use strict";s.r(t),s.d(t,{GlobalError:()=>i.a,__next_app__:()=>u,originalPathname:()=>x,pages:()=>d,routeModule:()=>p,tree:()=>c}),s(7824),s(8116),s(2874);var a=s(7105),r=s(5265),n=s(157),i=s.n(n),o=s(4665),l={};for(let e in o)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>o[e]);s.d(t,l);let c=["",{children:["access",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(s.bind(s,7824)),"/home/dx/Work/hex/dashboard/app/access/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,8116)),"/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/access/page.tsx"],x="/access/page",u={require:s,loadChunk:()=>Promise.resolve()},p=new a.AppPageRouteModule({definition:{kind:r.x.APP_PAGE,page:"/access/page",pathname:"/access",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},4722:(e,t,s)=>{Promise.resolve().then(s.bind(s,4136))},4136:(e,t,s)=>{"use strict";s.d(t,{AccessClient:()=>m});var a=s(9899),r=s(5507),n=s(983),i=s(366);let o={high:"bg-[var(--success)]/15 text-[var(--success)]",medium:"bg-[var(--medium)]/15 text-[var(--medium)]",low:"bg-[var(--critical)]/15 text-[var(--critical)]"};function l({level:e,derivedFrom:t}){let[s,n]=(0,r.useState)(!1),i=o[e.toLowerCase()]??o.low,l=t?`confidence-${e}-${t.replace(/\W+/g,"-")}`:void 0,c=t?`${e} confidence, derived from ${t}`:`${e} confidence`;return(0,a.jsxs)("span",{className:"relative inline-block focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent rounded-md",tabIndex:t?0:void 0,role:t?"group":void 0,"aria-label":c,"aria-describedby":s&&l?l:void 0,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onFocus:()=>n(!0),onBlur:()=>n(!1),children:[a.jsx("span",{className:`inline-flex items-center rounded-md px-2 py-0.5 text-caption font-medium ${i}`,children:e}),t&&s&&(0,a.jsxs)("span",{id:l,role:"tooltip",className:"absolute bottom-full left-1/2 z-50 mb-2 -translate-x-1/2 whitespace-nowrap rounded-md border border-border-default bg-surface-3 px-2 py-1 text-caption text-text-secondary shadow-lg",children:["Derived from: ",t]})]})}let c={access_control:"bg-accent-subtle text-accent",state_check:"bg-[var(--medium)]/15 text-[var(--medium)]",guard:"bg-[var(--low)]/15 text-[var(--low)]",unknown:"bg-[var(--neutral)]/15 text-[var(--neutral)]"};function d(e){return e.is_likely_access_control??!0}let x={external:"bg-[var(--critical)]/15 text-[var(--critical)]",public:"bg-[var(--high)]/15 text-[var(--high)]",internal:"bg-[var(--low)]/15 text-[var(--low)]",private:"bg-[var(--neutral)]/15 text-[var(--neutral)]"};function u({visibility:e}){let t=x[e]??"bg-[var(--neutral)]/15 text-[var(--neutral)]";return a.jsx("span",{className:`inline-flex items-center rounded-sm px-2 py-0.5 text-caption font-medium ${t}`,children:e})}let p=["All","State-Changing","Read-Only"];function m({writeFunctions:e,readOnlyFunctions:t,anyoneFnKeys:s,otherRoles:o,allRoles:x}){let[m,h]=(0,r.useState)("All"),[f,b]=(0,r.useState)(!1),[v,g]=(0,r.useState)(!1),y=(0,r.useMemo)(()=>new Set(s),[s]),j=(0,r.useMemo)(()=>o.filter(e=>!d(e)),[o]),w=(0,r.useMemo)(()=>v?o:o.filter(d),[o,v]),N=(0,r.useMemo)(()=>{let e=new Map;for(let t of x)if(d(t))for(let s of t.functions){let a=`${s.contract}::${s.function}`,r=e.get(a)??[];r.push(t.role),e.set(a,r)}return e},[x]),C=(0,r.useMemo)(()=>[...e,...t],[e,t]),k=(0,r.useMemo)(()=>e.filter(e=>y.has(`${e.contract}::${e.function}`)),[e,y]),$=(0,r.useMemo)(()=>{switch(m){case"All":return C;case"State-Changing":return f?k:e;case"Read-Only":return t}},[m,f,C,e,t,k]),_="All"===m||"Read-Only"===m,S=(0,r.useMemo)(()=>(function(e,t,s){let r=[{id:"contract",header:"Contract",accessorKey:"contract",enableColumnFilter:!0,cell:e=>a.jsx("span",{className:"font-medium text-text-primary",children:e.contract})},{id:"function",header:"Function",accessorKey:"function",cell:e=>a.jsx("span",{className:"font-mono text-body text-text-secondary",children:e.function})},{id:"caller",header:"Who can call",accessorKey:"function",cell:s=>{let r=`${s.contract}::${s.function}`,n=t.get(r)??[],i=e.has(r);return 0!==n.length||i?(0,a.jsxs)("div",{className:"flex flex-wrap gap-1",children:[i&&a.jsx("span",{className:"inline-flex items-center rounded-md bg-[var(--critical)]/10 px-2 py-0.5 text-caption font-medium text-[var(--critical)]",children:"Anyone"}),n.filter(e=>"anyone"!==e.toLowerCase()&&"public"!==e.toLowerCase()).map(e=>a.jsx("span",{className:"inline-flex items-center rounded-md bg-accent-subtle px-2 py-0.5 text-caption font-medium text-accent",children:e},e))]}):a.jsx("span",{className:"text-text-tertiary",children:"--"})}},{id:"visibility",header:"Visibility",accessorKey:"visibility",enableColumnFilter:!0,cell:e=>a.jsx(u,{visibility:e.visibility})}];return s&&r.push({id:"mutability",header:"Mutability",accessorKey:"state_mutability",cell:e=>a.jsx("span",{className:"text-caption text-text-tertiary",children:e.state_mutability??"--"})}),r.push({id:"modifiers",header:"Modifiers",accessorKey:"modifiers",cell:e=>e.modifiers.length>0?a.jsx("div",{className:"flex flex-wrap gap-1",children:e.modifiers.map(e=>a.jsx("span",{className:"inline-flex items-center rounded-sm bg-surface-3 px-2 py-0.5 text-caption text-text-secondary",children:e},e))}):a.jsx("span",{className:"text-text-tertiary",children:"--"})},{id:"location",header:"Location",accessorKey:"evidence",cell:e=>a.jsx(i.i,{file:e.evidence.file,lineStart:e.evidence.line_start,lineEnd:e.evidence.line_end,snippet:e.evidence.snippet})}),r})(y,N,_),[y,N,_]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"mb-sp-5 flex flex-wrap items-center gap-sp-3",children:[a.jsx("div",{className:"inline-flex overflow-x-auto rounded-md bg-surface-3 p-1",children:p.map(s=>(0,a.jsxs)("button",{type:"button",onClick:()=>{h(s),"State-Changing"!==s&&b(!1)},className:`whitespace-nowrap rounded-sm px-sp-3 py-1.5 text-body font-medium ${m===s?"bg-surface-2 text-text-primary shadow-sm":"text-text-secondary hover:text-text-primary"}`,children:[s,(0,a.jsxs)("span",{className:"ml-1.5 text-caption opacity-60",children:["All"===s&&C.length,"State-Changing"===s&&e.length,"Read-Only"===s&&t.length]})]},s))}),"State-Changing"===m&&k.length>0&&(0,a.jsxs)("button",{type:"button",onClick:()=>b(e=>!e),className:`rounded-sm px-sp-3 py-1.5 text-body font-medium ${f?"bg-[var(--critical)]/15 text-[var(--critical)] shadow-sm":"bg-surface-3 text-text-secondary hover:text-text-primary"}`,children:["Unprotected only",a.jsx("span",{className:"ml-1.5 text-caption opacity-60",children:k.length})]})]}),a.jsx("div",{className:"mb-sp-6",children:a.jsx(n.v,{columns:S,data:$,defaultOpen:!0,rowClassName:e=>{let t=`${e.contract}::${e.function}`;return y.has(t)?"bg-[var(--critical)]/5 hover:bg-[var(--critical)]/10":"bg-surface-1 hover:bg-surface-3"}})}),o.length>0&&(0,a.jsxs)("div",{className:"mb-sp-6",children:[(0,a.jsxs)("div",{className:"mb-sp-3 flex items-center justify-between gap-sp-3",children:[(0,a.jsxs)("h3",{className:"text-heading font-medium text-text-primary",children:["Roles",(0,a.jsxs)("span",{className:"ml-2 text-caption font-normal text-text-tertiary",children:[w.length," shown \xb7 ",j.length," inferred / unknown hidden"]})]}),j.length>0&&(0,a.jsxs)("button",{type:"button",onClick:()=>g(e=>!e),"aria-pressed":v,className:`rounded-md px-3 py-1.5 text-caption font-medium focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent ${v?"bg-accent text-surface-0":"bg-surface-3 text-text-secondary hover:text-text-primary"}`,children:[v?"Hide":"Show"," inferred / unknown (",j.length,")"]})]}),a.jsx("div",{className:"grid gap-sp-3 sm:grid-cols-2",children:w.map(e=>(0,a.jsxs)("div",{className:`rounded-md border bg-surface-2 p-sp-4 ${d(e)?"border-border-default":"border-dashed border-border-emphasis opacity-90"}`,children:[(0,a.jsxs)("div",{className:"mb-sp-2 flex items-center justify-between gap-sp-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-sp-2",children:[a.jsx("h4",{className:"text-heading font-medium text-text-primary",children:e.role}),e.kind&&a.jsx("span",{className:`inline-flex items-center rounded-md px-2 py-0.5 text-caption font-medium ${c[e.kind]}`,children:e.kind.replace("_"," ")})]}),a.jsx(l,{level:e.confidence,derivedFrom:e.derived_from})]}),a.jsx("p",{className:"mb-sp-3 text-body text-text-secondary",children:e.description}),e.modifier&&(0,a.jsxs)("p",{className:"mb-sp-2 text-caption text-text-tertiary",children:["Modifier:"," ",a.jsx("code",{className:"rounded-sm bg-surface-0 px-1.5 py-0.5 text-text-secondary",children:e.modifier})]}),e.functions.length>0&&(0,a.jsxs)("div",{className:"mb-sp-2",children:[(0,a.jsxs)("p",{className:"mb-1 text-caption font-medium uppercase text-text-tertiary",children:["Functions (",e.functions.length,")"]}),a.jsx("div",{className:"flex flex-wrap gap-1",children:e.functions.map(e=>(0,a.jsxs)("span",{className:"inline-flex items-center rounded-sm bg-surface-3 px-2 py-0.5 font-mono text-caption text-text-secondary",children:[e.contract,".",e.function]},`${e.contract}::${e.function}`))})]}),e.warnings.length>0&&a.jsx("div",{className:"mt-sp-2 space-y-1 border-t border-border-subtle pt-sp-2",children:e.warnings.map((e,t)=>a.jsx("p",{className:"text-caption text-[var(--medium)]",children:e},t))})]},e.role))})]})]})}},366:(e,t,s)=>{"use strict";s.d(t,{i:()=>n});var a=s(9899),r=s(5507);function n({file:e,lineStart:t,lineEnd:s,snippet:n}){let[o,l]=(0,r.useState)(!1),[c,d]=(0,r.useState)(n??null),[x,u]=(0,r.useState)(!1),[p,m]=(0,r.useState)(null),h=`${e}:${t}${s&&s!==t?`-${s}`:""}`,f=async()=>{if(l(!0),!c){u(!0);try{let a=new URLSearchParams({file:e,start:String(Math.max(1,t-3)),end:String((s??t)+3)}),r=await fetch(`/api/code?${a}`);if(!r.ok)throw Error("Failed to load source");let n=await r.json();d(n.code)}catch(e){m(e instanceof Error?e.message:"Failed to load")}finally{u(!1)}}};return(0,a.jsxs)(a.Fragment,{children:[a.jsx("button",{type:"button",onClick:f,className:"font-mono text-caption text-accent hover:underline focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent rounded-sm",children:h}),o&&a.jsx(i,{onClose:()=>l(!1),children:(0,a.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":`Source code: ${h}`,className:"relative max-h-[80vh] w-full max-w-3xl overflow-auto border border-border-emphasis bg-surface-1 shadow-2xl",style:{borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-accent)"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"sticky top-0 flex items-center justify-between border-b border-border-default bg-surface-2 px-sp-4 py-sp-3",children:[a.jsx("span",{className:"font-mono text-body text-text-primary",children:h}),a.jsx("button",{type:"button",onClick:()=>l(!1),"aria-label":"Close",className:"rounded p-1 text-text-tertiary hover:bg-surface-3 hover:text-text-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent",children:a.jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]}),(0,a.jsxs)("div",{className:"p-sp-4",children:[x&&a.jsx("p",{className:"text-body text-text-secondary",children:"Loading..."}),p&&a.jsx("p",{className:"text-body text-severity-critical",children:p}),c&&a.jsx("pre",{className:"overflow-x-auto rounded-md bg-surface-0 p-sp-4 text-caption leading-relaxed text-text-secondary",children:c.split("\n").map((e,r)=>{let n=Math.max(1,t-3)+r,i=n>=t&&n<=(s??t);return(0,a.jsxs)("div",{className:i?"bg-accent/10":"",children:[a.jsx("span",{className:"mr-4 inline-block w-10 select-none text-right text-text-tertiary",children:n}),e]},r)})})]})]})})]})}function i({onClose:e,children:t}){let s=(0,r.useRef)(null);return a.jsx("div",{ref:s,tabIndex:-1,className:"fixed inset-0 z-50 flex items-center justify-center outline-none",style:{background:"var(--overlay-bg)"},onClick:e,onKeyDown:t=>{"Escape"===t.key&&e()},children:t})}},7824:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>u,dynamic:()=>x});var a=s(5023),r=s(1760),n=s(446),i=s(2772);let o=(0,i.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/access/AccessClient.tsx`),{__esModule:l,$$typeof:c}=o;o.default;let d=(0,i.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/access/AccessClient.tsx#AccessClient`),x="force-dynamic";function u(){let e=(0,r.gn)("access-control.json");if(!e)return(0,a.jsxs)("div",{children:[a.jsx("h2",{className:"mb-sp-5 text-title font-semibold text-text-primary",children:"Access Control"}),a.jsx(n.v,{command:"hex access"})]});let{functions:t,roles:s}=e,i=t.filter(e=>"external"===e.visibility||"public"===e.visibility),o=i.filter(e=>"view"!==e.state_mutability&&"pure"!==e.state_mutability),l=i.filter(e=>"view"===e.state_mutability||"pure"===e.state_mutability),c=s.find(e=>"anyone"===e.role.toLowerCase()||"public"===e.role.toLowerCase()),x=s.filter(e=>"anyone"!==e.role.toLowerCase()&&"public"!==e.role.toLowerCase()),u=c?.functions.map(e=>`${e.contract}::${e.function}`)??[],p=new Set(o.map(e=>`${e.contract}::${e.function}`)),m=u.filter(e=>p.has(e)).length;return(0,a.jsxs)("div",{children:[a.jsx("h2",{className:"mb-sp-5 text-title font-semibold text-text-primary",children:"Access Control"}),(0,a.jsxs)("div",{className:"mb-sp-5 flex flex-wrap gap-sp-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-border-default bg-surface-2 px-sp-4 py-sp-2",children:[a.jsx("span",{className:"text-heading font-semibold text-text-primary",children:i.length}),a.jsx("span",{className:"text-caption text-text-secondary",children:"Total"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-border-default bg-surface-2 px-sp-4 py-sp-2",children:[a.jsx("span",{className:"text-heading font-semibold text-text-primary",children:o.length}),a.jsx("span",{className:"text-caption text-text-secondary",children:"State-Changing"})]}),m>0&&(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[var(--critical)]/30 bg-[var(--critical)]/5 px-sp-4 py-sp-2",children:[a.jsx("span",{className:"text-heading font-semibold text-[var(--critical)]",children:m}),a.jsx("span",{className:"text-caption text-[var(--critical)]/80",children:"Unprotected"})]})]}),a.jsx(d,{writeFunctions:o,readOnlyFunctions:l,anyoneFnKeys:u,anyoneRole:c??null,otherRoles:x,allRoles:s})]})}}};var t=require("../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),a=t.X(0,[916,649,645,665,431,557],()=>s(1166));module.exports=a})();
1
+ (()=>{var e={};e.id=980,e.ids=[980],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")},1166:(e,t,s)=>{"use strict";s.r(t),s.d(t,{GlobalError:()=>i.a,__next_app__:()=>u,originalPathname:()=>x,pages:()=>d,routeModule:()=>p,tree:()=>c}),s(7824),s(819),s(2874);var a=s(7105),r=s(5265),n=s(157),i=s.n(n),o=s(4665),l={};for(let e in o)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>o[e]);s.d(t,l);let c=["",{children:["access",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(s.bind(s,7824)),"/home/dx/Work/hex/dashboard/app/access/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,819)),"/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/access/page.tsx"],x="/access/page",u={require:s,loadChunk:()=>Promise.resolve()},p=new a.AppPageRouteModule({definition:{kind:r.x.APP_PAGE,page:"/access/page",pathname:"/access",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},4722:(e,t,s)=>{Promise.resolve().then(s.bind(s,4136))},4136:(e,t,s)=>{"use strict";s.d(t,{AccessClient:()=>m});var a=s(9899),r=s(5507),n=s(983),i=s(366);let o={high:"bg-[var(--success)]/15 text-[var(--success)]",medium:"bg-[var(--medium)]/15 text-[var(--medium)]",low:"bg-[var(--critical)]/15 text-[var(--critical)]"};function l({level:e,derivedFrom:t}){let[s,n]=(0,r.useState)(!1),i=o[e.toLowerCase()]??o.low,l=t?`confidence-${e}-${t.replace(/\W+/g,"-")}`:void 0,c=t?`${e} confidence, derived from ${t}`:`${e} confidence`;return(0,a.jsxs)("span",{className:"relative inline-block focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent rounded-md",tabIndex:t?0:void 0,role:t?"group":void 0,"aria-label":c,"aria-describedby":s&&l?l:void 0,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onFocus:()=>n(!0),onBlur:()=>n(!1),children:[a.jsx("span",{className:`inline-flex items-center rounded-md px-2 py-0.5 text-caption font-medium ${i}`,children:e}),t&&s&&(0,a.jsxs)("span",{id:l,role:"tooltip",className:"absolute bottom-full left-1/2 z-50 mb-2 -translate-x-1/2 whitespace-nowrap rounded-md border border-border-default bg-surface-3 px-2 py-1 text-caption text-text-secondary shadow-lg",children:["Derived from: ",t]})]})}let c={access_control:"bg-accent-subtle text-accent",state_check:"bg-[var(--medium)]/15 text-[var(--medium)]",guard:"bg-[var(--low)]/15 text-[var(--low)]",unknown:"bg-[var(--neutral)]/15 text-[var(--neutral)]"};function d(e){return e.is_likely_access_control??!0}let x={external:"bg-[var(--critical)]/15 text-[var(--critical)]",public:"bg-[var(--high)]/15 text-[var(--high)]",internal:"bg-[var(--low)]/15 text-[var(--low)]",private:"bg-[var(--neutral)]/15 text-[var(--neutral)]"};function u({visibility:e}){let t=x[e]??"bg-[var(--neutral)]/15 text-[var(--neutral)]";return a.jsx("span",{className:`inline-flex items-center rounded-sm px-2 py-0.5 text-caption font-medium ${t}`,children:e})}let p=["All","State-Changing","Read-Only"];function m({writeFunctions:e,readOnlyFunctions:t,anyoneFnKeys:s,otherRoles:o,allRoles:x}){let[m,h]=(0,r.useState)("All"),[f,b]=(0,r.useState)(!1),[v,g]=(0,r.useState)(!1),y=(0,r.useMemo)(()=>new Set(s),[s]),j=(0,r.useMemo)(()=>o.filter(e=>!d(e)),[o]),w=(0,r.useMemo)(()=>v?o:o.filter(d),[o,v]),N=(0,r.useMemo)(()=>{let e=new Map;for(let t of x)if(d(t))for(let s of t.functions){let a=`${s.contract}::${s.function}`,r=e.get(a)??[];r.push(t.role),e.set(a,r)}return e},[x]),C=(0,r.useMemo)(()=>[...e,...t],[e,t]),k=(0,r.useMemo)(()=>e.filter(e=>y.has(`${e.contract}::${e.function}`)),[e,y]),$=(0,r.useMemo)(()=>{switch(m){case"All":return C;case"State-Changing":return f?k:e;case"Read-Only":return t}},[m,f,C,e,t,k]),_="All"===m||"Read-Only"===m,S=(0,r.useMemo)(()=>(function(e,t,s){let r=[{id:"contract",header:"Contract",accessorKey:"contract",enableColumnFilter:!0,cell:e=>a.jsx("span",{className:"font-medium text-text-primary",children:e.contract})},{id:"function",header:"Function",accessorKey:"function",cell:e=>a.jsx("span",{className:"font-mono text-body text-text-secondary",children:e.function})},{id:"caller",header:"Who can call",accessorKey:"function",cell:s=>{let r=`${s.contract}::${s.function}`,n=t.get(r)??[],i=e.has(r);return 0!==n.length||i?(0,a.jsxs)("div",{className:"flex flex-wrap gap-1",children:[i&&a.jsx("span",{className:"inline-flex items-center rounded-md bg-[var(--critical)]/10 px-2 py-0.5 text-caption font-medium text-[var(--critical)]",children:"Anyone"}),n.filter(e=>"anyone"!==e.toLowerCase()&&"public"!==e.toLowerCase()).map(e=>a.jsx("span",{className:"inline-flex items-center rounded-md bg-accent-subtle px-2 py-0.5 text-caption font-medium text-accent",children:e},e))]}):a.jsx("span",{className:"text-text-tertiary",children:"--"})}},{id:"visibility",header:"Visibility",accessorKey:"visibility",enableColumnFilter:!0,cell:e=>a.jsx(u,{visibility:e.visibility})}];return s&&r.push({id:"mutability",header:"Mutability",accessorKey:"state_mutability",cell:e=>a.jsx("span",{className:"text-caption text-text-tertiary",children:e.state_mutability??"--"})}),r.push({id:"modifiers",header:"Modifiers",accessorKey:"modifiers",cell:e=>e.modifiers.length>0?a.jsx("div",{className:"flex flex-wrap gap-1",children:e.modifiers.map(e=>a.jsx("span",{className:"inline-flex items-center rounded-sm bg-surface-3 px-2 py-0.5 text-caption text-text-secondary",children:e},e))}):a.jsx("span",{className:"text-text-tertiary",children:"--"})},{id:"location",header:"Location",accessorKey:"evidence",cell:e=>a.jsx(i.i,{file:e.evidence.file,lineStart:e.evidence.line_start,lineEnd:e.evidence.line_end,snippet:e.evidence.snippet})}),r})(y,N,_),[y,N,_]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"mb-sp-5 flex flex-wrap items-center gap-sp-3",children:[a.jsx("div",{className:"inline-flex overflow-x-auto rounded-md bg-surface-3 p-1",children:p.map(s=>(0,a.jsxs)("button",{type:"button",onClick:()=>{h(s),"State-Changing"!==s&&b(!1)},className:`whitespace-nowrap rounded-sm px-sp-3 py-1.5 text-body font-medium ${m===s?"bg-surface-2 text-text-primary shadow-sm":"text-text-secondary hover:text-text-primary"}`,children:[s,(0,a.jsxs)("span",{className:"ml-1.5 text-caption opacity-60",children:["All"===s&&C.length,"State-Changing"===s&&e.length,"Read-Only"===s&&t.length]})]},s))}),"State-Changing"===m&&k.length>0&&(0,a.jsxs)("button",{type:"button",onClick:()=>b(e=>!e),className:`rounded-sm px-sp-3 py-1.5 text-body font-medium ${f?"bg-[var(--critical)]/15 text-[var(--critical)] shadow-sm":"bg-surface-3 text-text-secondary hover:text-text-primary"}`,children:["Unprotected only",a.jsx("span",{className:"ml-1.5 text-caption opacity-60",children:k.length})]})]}),a.jsx("div",{className:"mb-sp-6",children:a.jsx(n.v,{columns:S,data:$,defaultOpen:!0,rowClassName:e=>{let t=`${e.contract}::${e.function}`;return y.has(t)?"bg-[var(--critical)]/5 hover:bg-[var(--critical)]/10":"bg-surface-1 hover:bg-surface-3"}})}),o.length>0&&(0,a.jsxs)("div",{className:"mb-sp-6",children:[(0,a.jsxs)("div",{className:"mb-sp-3 flex items-center justify-between gap-sp-3",children:[(0,a.jsxs)("h3",{className:"text-heading font-medium text-text-primary",children:["Roles",(0,a.jsxs)("span",{className:"ml-2 text-caption font-normal text-text-tertiary",children:[w.length," shown \xb7 ",j.length," inferred / unknown hidden"]})]}),j.length>0&&(0,a.jsxs)("button",{type:"button",onClick:()=>g(e=>!e),"aria-pressed":v,className:`rounded-md px-3 py-1.5 text-caption font-medium focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent ${v?"bg-accent text-surface-0":"bg-surface-3 text-text-secondary hover:text-text-primary"}`,children:[v?"Hide":"Show"," inferred / unknown (",j.length,")"]})]}),a.jsx("div",{className:"grid gap-sp-3 sm:grid-cols-2",children:w.map(e=>(0,a.jsxs)("div",{className:`rounded-md border bg-surface-2 p-sp-4 ${d(e)?"border-border-default":"border-dashed border-border-emphasis opacity-90"}`,children:[(0,a.jsxs)("div",{className:"mb-sp-2 flex items-center justify-between gap-sp-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-sp-2",children:[a.jsx("h4",{className:"text-heading font-medium text-text-primary",children:e.role}),e.kind&&a.jsx("span",{className:`inline-flex items-center rounded-md px-2 py-0.5 text-caption font-medium ${c[e.kind]}`,children:e.kind.replace("_"," ")})]}),a.jsx(l,{level:e.confidence,derivedFrom:e.derived_from})]}),a.jsx("p",{className:"mb-sp-3 text-body text-text-secondary",children:e.description}),e.modifier&&(0,a.jsxs)("p",{className:"mb-sp-2 text-caption text-text-tertiary",children:["Modifier:"," ",a.jsx("code",{className:"rounded-sm bg-surface-0 px-1.5 py-0.5 text-text-secondary",children:e.modifier})]}),e.functions.length>0&&(0,a.jsxs)("div",{className:"mb-sp-2",children:[(0,a.jsxs)("p",{className:"mb-1 text-caption font-medium uppercase text-text-tertiary",children:["Functions (",e.functions.length,")"]}),a.jsx("div",{className:"flex flex-wrap gap-1",children:e.functions.map(e=>(0,a.jsxs)("span",{className:"inline-flex items-center rounded-sm bg-surface-3 px-2 py-0.5 font-mono text-caption text-text-secondary",children:[e.contract,".",e.function]},`${e.contract}::${e.function}`))})]}),e.warnings.length>0&&a.jsx("div",{className:"mt-sp-2 space-y-1 border-t border-border-subtle pt-sp-2",children:e.warnings.map((e,t)=>a.jsx("p",{className:"text-caption text-[var(--medium)]",children:e},t))})]},e.role))})]})]})}},366:(e,t,s)=>{"use strict";s.d(t,{i:()=>n});var a=s(9899),r=s(5507);function n({file:e,lineStart:t,lineEnd:s,snippet:n}){let[o,l]=(0,r.useState)(!1),[c,d]=(0,r.useState)(n??null),[x,u]=(0,r.useState)(!1),[p,m]=(0,r.useState)(null),h=`${e}:${t}${s&&s!==t?`-${s}`:""}`,f=async()=>{if(l(!0),!c){u(!0);try{let a=new URLSearchParams({file:e,start:String(Math.max(1,t-3)),end:String((s??t)+3)}),r=await fetch(`/api/code?${a}`);if(!r.ok)throw Error("Failed to load source");let n=await r.json();d(n.code)}catch(e){m(e instanceof Error?e.message:"Failed to load")}finally{u(!1)}}};return(0,a.jsxs)(a.Fragment,{children:[a.jsx("button",{type:"button",onClick:f,className:"font-mono text-caption text-accent hover:underline focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent rounded-sm",children:h}),o&&a.jsx(i,{onClose:()=>l(!1),children:(0,a.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":`Source code: ${h}`,className:"relative max-h-[80vh] w-full max-w-3xl overflow-auto border border-border-emphasis bg-surface-1 shadow-2xl",style:{borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-accent)"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"sticky top-0 flex items-center justify-between border-b border-border-default bg-surface-2 px-sp-4 py-sp-3",children:[a.jsx("span",{className:"font-mono text-body text-text-primary",children:h}),a.jsx("button",{type:"button",onClick:()=>l(!1),"aria-label":"Close",className:"rounded p-1 text-text-tertiary hover:bg-surface-3 hover:text-text-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent",children:a.jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]}),(0,a.jsxs)("div",{className:"p-sp-4",children:[x&&a.jsx("p",{className:"text-body text-text-secondary",children:"Loading..."}),p&&a.jsx("p",{className:"text-body text-severity-critical",children:p}),c&&a.jsx("pre",{className:"overflow-x-auto rounded-md bg-surface-0 p-sp-4 text-caption leading-relaxed text-text-secondary",children:c.split("\n").map((e,r)=>{let n=Math.max(1,t-3)+r,i=n>=t&&n<=(s??t);return(0,a.jsxs)("div",{className:i?"bg-accent/10":"",children:[a.jsx("span",{className:"mr-4 inline-block w-10 select-none text-right text-text-tertiary",children:n}),e]},r)})})]})]})})]})}function i({onClose:e,children:t}){let s=(0,r.useRef)(null);return a.jsx("div",{ref:s,tabIndex:-1,className:"fixed inset-0 z-50 flex items-center justify-center outline-none",style:{background:"var(--overlay-bg)"},onClick:e,onKeyDown:t=>{"Escape"===t.key&&e()},children:t})}},7824:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>u,dynamic:()=>x});var a=s(5023),r=s(1720),n=s(446),i=s(2772);let o=(0,i.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/access/AccessClient.tsx`),{__esModule:l,$$typeof:c}=o;o.default;let d=(0,i.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/access/AccessClient.tsx#AccessClient`),x="force-dynamic";function u(){let e=(0,r.gn)("access-control.json");if(!e)return(0,a.jsxs)("div",{children:[a.jsx("h2",{className:"mb-sp-5 text-title font-semibold text-text-primary",children:"Access Control"}),a.jsx(n.v,{command:"hex access"})]});let{functions:t,roles:s}=e,i=t.filter(e=>"external"===e.visibility||"public"===e.visibility),o=i.filter(e=>"view"!==e.state_mutability&&"pure"!==e.state_mutability),l=i.filter(e=>"view"===e.state_mutability||"pure"===e.state_mutability),c=s.find(e=>"anyone"===e.role.toLowerCase()||"public"===e.role.toLowerCase()),x=s.filter(e=>"anyone"!==e.role.toLowerCase()&&"public"!==e.role.toLowerCase()),u=c?.functions.map(e=>`${e.contract}::${e.function}`)??[],p=new Set(o.map(e=>`${e.contract}::${e.function}`)),m=u.filter(e=>p.has(e)).length;return(0,a.jsxs)("div",{children:[a.jsx("h2",{className:"mb-sp-5 text-title font-semibold text-text-primary",children:"Access Control"}),(0,a.jsxs)("div",{className:"mb-sp-5 flex flex-wrap gap-sp-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-border-default bg-surface-2 px-sp-4 py-sp-2",children:[a.jsx("span",{className:"text-heading font-semibold text-text-primary",children:i.length}),a.jsx("span",{className:"text-caption text-text-secondary",children:"Total"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-border-default bg-surface-2 px-sp-4 py-sp-2",children:[a.jsx("span",{className:"text-heading font-semibold text-text-primary",children:o.length}),a.jsx("span",{className:"text-caption text-text-secondary",children:"State-Changing"})]}),m>0&&(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[var(--critical)]/30 bg-[var(--critical)]/5 px-sp-4 py-sp-2",children:[a.jsx("span",{className:"text-heading font-semibold text-[var(--critical)]",children:m}),a.jsx("span",{className:"text-caption text-[var(--critical)]/80",children:"Unprotected"})]})]}),a.jsx(d,{writeFunctions:o,readOnlyFunctions:l,anyoneFnKeys:u,anyoneRole:c??null,otherRoles:x,allRoles:s})]})}}};var t=require("../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),a=t.X(0,[916,649,645,665,530,44],()=>s(1166));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/431.js","../../chunks/557.js","../../chunks/645.js","../../chunks/649.js","../../chunks/665.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/44.js","../../chunks/530.js","../../chunks/645.js","../../chunks/649.js","../../chunks/665.js","../../chunks/916.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/access/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"9":{"*":{"id":"6131","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"9323","name":"*","chunks":[],"async":false}},"1187":{"*":{"id":"7918","name":"*","chunks":[],"async":false}},"1447":{"*":{"id":"5915","name":"*","chunks":[],"async":false}},"2198":{"*":{"id":"9915","name":"*","chunks":[],"async":false}},"3297":{"*":{"id":"1611","name":"*","chunks":[],"async":false}},"3362":{"*":{"id":"5289","name":"*","chunks":[],"async":false}},"3443":{"*":{"id":"7406","name":"*","chunks":[],"async":false}},"3719":{"*":{"id":"526","name":"*","chunks":[],"async":false}},"4595":{"*":{"id":"1388","name":"*","chunks":[],"async":false}},"5268":{"*":{"id":"3817","name":"*","chunks":[],"async":false}},"5276":{"*":{"id":"820","name":"*","chunks":[],"async":false}},"7063":{"*":{"id":"618","name":"*","chunks":[],"async":false}},"7498":{"*":{"id":"696","name":"*","chunks":[],"async":false}},"7542":{"*":{"id":"9555","name":"*","chunks":[],"async":false}},"7701":{"*":{"id":"8530","name":"*","chunks":[],"async":false}},"7780":{"*":{"id":"8664","name":"*","chunks":[],"async":false}},"9487":{"*":{"id":"8037","name":"*","chunks":[],"async":false}},"9690":{"*":{"id":"2204","name":"*","chunks":[],"async":false}},"9745":{"*":{"id":"4136","name":"*","chunks":[],"async":false}},"9922":{"*":{"id":"8033","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/dx/Work/hex/node_modules/next/dist/client/components/app-router.js":{"id":5268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/app-router.js":{"id":5268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/error-boundary.js":{"id":9690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":9690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/layout-router.js":{"id":5276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/layout-router.js":{"id":5276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/not-found-boundary.js":{"id":1447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":1447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/render-from-template-context.js":{"id":3297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":3297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/globals.css":{"id":3812,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-9c3c84993dd895f6.js"],"async":false},"/home/dx/Work/hex/dashboard/components/CommandPalette.tsx":{"id":2198,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-9c3c84993dd895f6.js"],"async":false},"/home/dx/Work/hex/dashboard/components/DashboardLayout.tsx":{"id":1187,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-9c3c84993dd895f6.js"],"async":false},"/home/dx/Work/hex/node_modules/next-themes/dist/index.mjs":{"id":4595,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-9c3c84993dd895f6.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":8414,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-9c3c84993dd895f6.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":5256,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-9c3c84993dd895f6.js"],"async":false},"/home/dx/Work/hex/dashboard/app/diagram/page.tsx":{"id":3719,"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/access/AccessClient.tsx":{"id":9745,"name":"*","chunks":["8452","static/chunks/8452-e616b5f43bceb95f.js","8928","static/chunks/8928-60c623ee89d2e6ad.js","2980","static/chunks/app/access/page-3668562e7464eb5d.js"],"async":false},"/home/dx/Work/hex/dashboard/app/calls/CallsClient.tsx":{"id":3362,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/overleaf/OverleafClient.tsx":{"id":9,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/functions/FunctionsClient.tsx":{"id":7780,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/conformance/ConformanceTable.tsx":{"id":7542,"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":7701,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/issues/IssuesBoardClient.tsx":{"id":7063,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/components/MarkdownRenderer.tsx":{"id":9487,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","7397","static/chunks/7397-f6f4dddc7a20bfc1.js","1931","static/chunks/app/page-a0f25953d4457935.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/link.js":{"id":7498,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","7397","static/chunks/7397-f6f4dddc7a20bfc1.js","1931","static/chunks/app/page-a0f25953d4457935.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/link.js":{"id":7498,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","7397","static/chunks/7397-f6f4dddc7a20bfc1.js","1931","static/chunks/app/page-a0f25953d4457935.js"],"async":false}},"entryCSSFiles":{"/home/dx/Work/hex/dashboard/":[],"/home/dx/Work/hex/dashboard/app/layout":["static/css/9c84313d0484b74f.css"],"/home/dx/Work/hex/dashboard/app/page":[],"/home/dx/Work/hex/dashboard/app/access/page":[]}}
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/access/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"9":{"*":{"id":"6131","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"9323","name":"*","chunks":[],"async":false}},"1187":{"*":{"id":"7918","name":"*","chunks":[],"async":false}},"1447":{"*":{"id":"5915","name":"*","chunks":[],"async":false}},"2198":{"*":{"id":"9915","name":"*","chunks":[],"async":false}},"3297":{"*":{"id":"1611","name":"*","chunks":[],"async":false}},"3362":{"*":{"id":"5289","name":"*","chunks":[],"async":false}},"3443":{"*":{"id":"7406","name":"*","chunks":[],"async":false}},"3719":{"*":{"id":"526","name":"*","chunks":[],"async":false}},"4595":{"*":{"id":"1388","name":"*","chunks":[],"async":false}},"5268":{"*":{"id":"3817","name":"*","chunks":[],"async":false}},"5276":{"*":{"id":"820","name":"*","chunks":[],"async":false}},"7063":{"*":{"id":"618","name":"*","chunks":[],"async":false}},"7498":{"*":{"id":"696","name":"*","chunks":[],"async":false}},"7542":{"*":{"id":"9555","name":"*","chunks":[],"async":false}},"7701":{"*":{"id":"8530","name":"*","chunks":[],"async":false}},"7780":{"*":{"id":"8664","name":"*","chunks":[],"async":false}},"9487":{"*":{"id":"8037","name":"*","chunks":[],"async":false}},"9690":{"*":{"id":"2204","name":"*","chunks":[],"async":false}},"9745":{"*":{"id":"4136","name":"*","chunks":[],"async":false}},"9922":{"*":{"id":"8033","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/dx/Work/hex/node_modules/next/dist/client/components/app-router.js":{"id":5268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/app-router.js":{"id":5268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/error-boundary.js":{"id":9690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":9690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/layout-router.js":{"id":5276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/layout-router.js":{"id":5276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/not-found-boundary.js":{"id":1447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":1447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/render-from-template-context.js":{"id":3297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":3297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/globals.css":{"id":3812,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-23765c356f43208c.js"],"async":false},"/home/dx/Work/hex/dashboard/components/CommandPalette.tsx":{"id":2198,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-23765c356f43208c.js"],"async":false},"/home/dx/Work/hex/dashboard/components/DashboardLayout.tsx":{"id":1187,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-23765c356f43208c.js"],"async":false},"/home/dx/Work/hex/node_modules/next-themes/dist/index.mjs":{"id":4595,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-23765c356f43208c.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":8414,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-23765c356f43208c.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":5256,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","3185","static/chunks/app/layout-23765c356f43208c.js"],"async":false},"/home/dx/Work/hex/dashboard/app/diagram/page.tsx":{"id":3719,"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":3362,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/access/AccessClient.tsx":{"id":9745,"name":"*","chunks":["8452","static/chunks/8452-e616b5f43bceb95f.js","8928","static/chunks/8928-60c623ee89d2e6ad.js","2980","static/chunks/app/access/page-3668562e7464eb5d.js"],"async":false},"/home/dx/Work/hex/dashboard/app/overleaf/OverleafClient.tsx":{"id":9,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/conformance/ConformanceTable.tsx":{"id":7542,"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/functions/FunctionsClient.tsx":{"id":7780,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/progress/ProgressClient.tsx":{"id":7701,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/components/MarkdownRenderer.tsx":{"id":9487,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","7397","static/chunks/7397-f6f4dddc7a20bfc1.js","1931","static/chunks/app/page-a0f25953d4457935.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/link.js":{"id":7498,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","7397","static/chunks/7397-f6f4dddc7a20bfc1.js","1931","static/chunks/app/page-a0f25953d4457935.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/link.js":{"id":7498,"name":"*","chunks":["7498","static/chunks/7498-ea83cb9e30ec5491.js","7397","static/chunks/7397-f6f4dddc7a20bfc1.js","1931","static/chunks/app/page-a0f25953d4457935.js"],"async":false},"/home/dx/Work/hex/dashboard/app/issues/IssuesBoardClient.tsx":{"id":7063,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/dx/Work/hex/dashboard/":[],"/home/dx/Work/hex/dashboard/app/layout":["static/css/9c84313d0484b74f.css"],"/home/dx/Work/hex/dashboard/app/page":[],"/home/dx/Work/hex/dashboard/app/access/page":[]}}
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=141,e.ids=[141],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},3191:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>w,patchFetch:()=>S,requestAsyncStorage:()=>x,routeModule:()=>h,serverHooks:()=>j,staticGenerationAsyncStorage:()=>m});var n={};r.r(n),r.d(n,{GET:()=>y,dynamic:()=>f});var i=r(3277),o=r(5265),a=r(5356),u=r(7076),s=r(7561),c=r.n(s),l=r(9411),p=r.n(l),d=r(1760);let f="force-dynamic";async function y(){let e=(0,d.ZN)();try{let t=c().readdirSync(p().join(e,"diagrams")),r=[];for(let e of t)if(/^flow-[\w-]+\.mmd$/.test(e)){let t=e.replace(/^flow-/,"").replace(/\.mmd$/,"").replace(/-/g," ").replace(/\b\w/g,e=>e.toUpperCase());r.push({name:t,filename:e})}return u.NextResponse.json({flows:r})}catch{return u.NextResponse.json({flows:[]})}}let h=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/flows/route",pathname:"/api/flows",filename:"route",bundlePath:"app/api/flows/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/flows/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:x,staticGenerationAsyncStorage:m,serverHooks:j}=h,w="/api/flows/route";function S(){return(0,a.patchFetch)({serverHooks:j,staticGenerationAsyncStorage:m})}},1760:(e,t,r)=>{r.d(t,{J1:()=>f,V9:()=>y,ZN:()=>d,au:()=>l,gn:()=>s,ki:()=>p,ws:()=>c});var n=r(7561),i=r.n(n),o=r(9411),a=r.n(o);function u(){let e=process.cwd();try{let t=a().join(e,".hex","config.json");if(i().existsSync(t))return a().join(e,".hex");let r=a().join(e,".solaudit","config.json");if(i().existsSync(r))return a().join(e,".solaudit")}catch{}return a().join(e,".hex")}function s(e){try{let t=a().join(u(),e),r=i().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}function c(e){try{let t=a().join(u(),e);return i().readFileSync(t,"utf-8")}catch{return null}}function l(e,t){let r=a().join(u(),e);i().writeFileSync(r,JSON.stringify(t,null,2),"utf-8")}function p(e){try{let t=a().join(u(),e);return i().existsSync(t)}catch{return!1}}function d(){return u()}function f(e){try{let t=a().join(u(),e);if(!i().existsSync(t))return[];return i().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function y(e){try{let t=a().join(u(),e),r=i().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[916,786],()=>r(3191));module.exports=n})();
1
+ "use strict";(()=>{var e={};e.id=141,e.ids=[141],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},3191:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>j,patchFetch:()=>g,requestAsyncStorage:()=>h,routeModule:()=>y,serverHooks:()=>w,staticGenerationAsyncStorage:()=>x});var n={};t.r(n),t.d(n,{GET:()=>m,dynamic:()=>d});var o=t(3277),i=t(5265),u=t(5356),a=t(7076),s=t(7561),c=t.n(s),l=t(9411),p=t.n(l),f=t(1720);let d="force-dynamic";async function m(){let e=(0,f.ZN)();try{let r=c().readdirSync(p().join(e,"diagrams")),t=[];for(let e of r)if(/^flow-[\w-]+\.mmd$/.test(e)){let r=e.replace(/^flow-/,"").replace(/\.mmd$/,"").replace(/-/g," ").replace(/\b\w/g,e=>e.toUpperCase());t.push({name:r,filename:e})}return a.NextResponse.json({flows:t})}catch{return a.NextResponse.json({flows:[]})}}let y=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/flows/route",pathname:"/api/flows",filename:"route",bundlePath:"app/api/flows/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/flows/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:h,staticGenerationAsyncStorage:x,serverHooks:w}=y,j="/api/flows/route";function g(){return(0,u.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:x})}},1720:(e,r,t)=>{t.d(r,{ki:()=>d,ZN:()=>m,J1:()=>y,gn:()=>l,ws:()=>p,V9:()=>h,au:()=>f});var n=t(7561),o=t.n(n),i=t(9411),u=t.n(i);let a=[".hex",".solaudit","solaudit-output"];function s(e){return e.replace(/\\/g,"/")}function c(){try{let e=function(e=process.cwd()){let r=u().resolve(e);for(;;){let e=function(e){for(let r of[...a.map(r=>u().join(e,r,"config.json")),u().join(e,"config.json")])if(o().existsSync(r))return s(r);return null}(r);if(e)return s(u().dirname(e));let t=u().dirname(r);if(t===r)return null;r=t}}(process.cwd());if(e)return e}catch{}return u().join(process.cwd(),".hex")}function l(e){try{let r=u().join(c(),e),t=o().readFileSync(r,"utf-8");return JSON.parse(t)}catch{return null}}function p(e){try{let r=u().join(c(),e);return o().readFileSync(r,"utf-8")}catch{return null}}function f(e,r){let t=u().join(c(),e);o().writeFileSync(t,JSON.stringify(r,null,2),"utf-8")}function d(e){try{let r=u().join(c(),e);return o().existsSync(r)}catch{return!1}}function m(){return c()}function y(e){try{let r=u().join(c(),e);if(!o().existsSync(r))return[];return o().readdirSync(r,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function h(e){try{let r=u().join(c(),e),t=o().readFileSync(r,"utf-8");return JSON.parse(t)}catch{return null}}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),n=r.X(0,[916,786],()=>t(3191));module.exports=n})();
@@ -1 +1 @@
1
- "use strict";(()=>{var t={};t.id=432,t.ids=[432],t.modules={399:t=>{t.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:t=>{t.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:t=>{t.exports=require("node:fs")},9411:t=>{t.exports=require("node:path")},6296:(t,e,r)=>{r.r(e),r.d(e,{originalPathname:()=>y,patchFetch:()=>x,requestAsyncStorage:()=>d,routeModule:()=>p,serverHooks:()=>f,staticGenerationAsyncStorage:()=>h});var n={};r.r(n),r.d(n,{GET:()=>l,dynamic:()=>c});var i=r(3277),u=r(5265),o=r(5356),s=r(7076),a=r(1760);let c="force-dynamic";async function l(){let t=(0,a.gn)("external/github/sync-status.json");return s.NextResponse.json(t??null)}let p=new i.AppRouteRouteModule({definition:{kind:u.x.APP_ROUTE,page:"/api/github-status/route",pathname:"/api/github-status",filename:"route",bundlePath:"app/api/github-status/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/github-status/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:f}=p,y="/api/github-status/route";function x(){return(0,o.patchFetch)({serverHooks:f,staticGenerationAsyncStorage:h})}},1760:(t,e,r)=>{r.d(e,{J1:()=>h,V9:()=>f,ZN:()=>d,au:()=>l,gn:()=>a,ki:()=>p,ws:()=>c});var n=r(7561),i=r.n(n),u=r(9411),o=r.n(u);function s(){let t=process.cwd();try{let e=o().join(t,".hex","config.json");if(i().existsSync(e))return o().join(t,".hex");let r=o().join(t,".solaudit","config.json");if(i().existsSync(r))return o().join(t,".solaudit")}catch{}return o().join(t,".hex")}function a(t){try{let e=o().join(s(),t),r=i().readFileSync(e,"utf-8");return JSON.parse(r)}catch{return null}}function c(t){try{let e=o().join(s(),t);return i().readFileSync(e,"utf-8")}catch{return null}}function l(t,e){let r=o().join(s(),t);i().writeFileSync(r,JSON.stringify(e,null,2),"utf-8")}function p(t){try{let e=o().join(s(),t);return i().existsSync(e)}catch{return!1}}function d(){return s()}function h(t){try{let e=o().join(s(),t);if(!i().existsSync(e))return[];return i().readdirSync(e,{withFileTypes:!0}).filter(t=>t.isDirectory()).map(t=>t.name)}catch{return[]}}function f(t){try{let e=o().join(s(),t),r=i().readFileSync(e,"utf-8");return JSON.parse(r)}catch{return null}}}};var e=require("../../../webpack-runtime.js");e.C(t);var r=t=>e(e.s=t),n=e.X(0,[916,786],()=>r(6296));module.exports=n})();
1
+ "use strict";(()=>{var e={};e.id=432,e.ids=[432],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},6296:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>y,patchFetch:()=>x,requestAsyncStorage:()=>d,routeModule:()=>p,serverHooks:()=>h,staticGenerationAsyncStorage:()=>f});var n={};r.r(n),r.d(n,{GET:()=>l,dynamic:()=>c});var u=r(3277),i=r(5265),o=r(5356),s=r(7076),a=r(1720);let c="force-dynamic";async function l(){let e=(0,a.gn)("external/github/sync-status.json");return s.NextResponse.json(e??null)}let p=new u.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/github-status/route",pathname:"/api/github-status",filename:"route",bundlePath:"app/api/github-status/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/github-status/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:d,staticGenerationAsyncStorage:f,serverHooks:h}=p,y="/api/github-status/route";function x(){return(0,o.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:f})}},1720:(e,t,r)=>{r.d(t,{ki:()=>f,ZN:()=>h,J1:()=>y,gn:()=>l,ws:()=>p,V9:()=>x,au:()=>d});var n=r(7561),u=r.n(n),i=r(9411),o=r.n(i);let s=[".hex",".solaudit","solaudit-output"];function a(e){return e.replace(/\\/g,"/")}function c(){try{let e=function(e=process.cwd()){let t=o().resolve(e);for(;;){let e=function(e){for(let t of[...s.map(t=>o().join(e,t,"config.json")),o().join(e,"config.json")])if(u().existsSync(t))return a(t);return null}(t);if(e)return a(o().dirname(e));let r=o().dirname(t);if(r===t)return null;t=r}}(process.cwd());if(e)return e}catch{}return o().join(process.cwd(),".hex")}function l(e){try{let t=o().join(c(),e),r=u().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}function p(e){try{let t=o().join(c(),e);return u().readFileSync(t,"utf-8")}catch{return null}}function d(e,t){let r=o().join(c(),e);u().writeFileSync(r,JSON.stringify(t,null,2),"utf-8")}function f(e){try{let t=o().join(c(),e);return u().existsSync(t)}catch{return!1}}function h(){return c()}function y(e){try{let t=o().join(c(),e);if(!u().existsSync(t))return[];return u().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function x(e){try{let t=o().join(c(),e),r=u().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[916,786],()=>r(6296));module.exports=n})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=889,e.ids=[889],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},1680:(e,t,i)=>{i.r(t),i.d(t,{originalPathname:()=>m,patchFetch:()=>h,requestAsyncStorage:()=>g,routeModule:()=>p,serverHooks:()=>v,staticGenerationAsyncStorage:()=>y});var n={};i.r(n),i.d(n,{POST:()=>f,dynamic:()=>c});var r=i(3277),o=i(5265),s=i(5356),u=i(7076),l=i(1760),a=i(3022);let c="force-dynamic",d={pending_validation:"potential",unverified:"potential",verified:"verified",rejected:"invalid",duplicate:"duplicate"};async function f(e,{params:t}){let i;let n=await e.json();if(n.column&&n.column in a.SG?i=n.column:n.status&&d[n.status]&&(i=d[n.status]),!i)return u.NextResponse.json({error:"Body must include a valid 'column' (potential|verified|invalid|duplicate) or 'status'"},{status:400});try{let e=(0,a.wl)((0,l.ZN)(),t.id,i);return u.NextResponse.json({ok:!0,id:t.id,status:e.status})}catch(e){return u.NextResponse.json({error:e instanceof Error?e.message:String(e)},{status:400})}}let p=new r.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/issues/[id]/move/route",pathname:"/api/issues/[id]/move",filename:"route",bundlePath:"app/api/issues/[id]/move/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/issues/[id]/move/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:g,staticGenerationAsyncStorage:y,serverHooks:v}=p,m="/api/issues/[id]/move/route";function h(){return(0,s.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:y})}},1760:(e,t,i)=>{i.d(t,{J1:()=>p,V9:()=>g,ZN:()=>f,au:()=>c,gn:()=>l,ki:()=>d,ws:()=>a});var n=i(7561),r=i.n(n),o=i(9411),s=i.n(o);function u(){let e=process.cwd();try{let t=s().join(e,".hex","config.json");if(r().existsSync(t))return s().join(e,".hex");let i=s().join(e,".solaudit","config.json");if(r().existsSync(i))return s().join(e,".solaudit")}catch{}return s().join(e,".hex")}function l(e){try{let t=s().join(u(),e),i=r().readFileSync(t,"utf-8");return JSON.parse(i)}catch{return null}}function a(e){try{let t=s().join(u(),e);return r().readFileSync(t,"utf-8")}catch{return null}}function c(e,t){let i=s().join(u(),e);r().writeFileSync(i,JSON.stringify(t,null,2),"utf-8")}function d(e){try{let t=s().join(u(),e);return r().existsSync(t)}catch{return!1}}function f(){return u()}function p(e){try{let t=s().join(u(),e);if(!r().existsSync(t))return[];return r().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function g(e){try{let t=s().join(u(),e),i=r().readFileSync(t,"utf-8");return JSON.parse(i)}catch{return null}}},3022:(e,t,i)=>{i.d(t,{EZ:()=>S,SG:()=>a,wl:()=>j});var n=i(7561),r=i.n(n),o=i(9411),s=i.n(o);let u=["Critical","High","Medium","Low","Info"],l=["Fixed","Mitigated","Acknowledged","Not Fixed","Unresolved"],a={potential:"pending_validation",verified:"verified",invalid:"rejected",duplicate:"duplicate"},c=["title","severity","description","recommendation","resolution","update_from_client","notes"];function d(e){try{return JSON.parse(r().readFileSync(e,"utf-8"))}catch{return null}}function f(e,t){let i=s().dirname(e);r().existsSync(i)||r().mkdirSync(i,{recursive:!0});let n=e+".tmp";r().writeFileSync(n,JSON.stringify(t,null,2)+"\n","utf-8"),r().renameSync(n,e)}function p(e){return d(s().join(e,"findings.json"))??{findings:[]}}function g(e){return d(s().join(e,"tracking.json"))??{findings:[]}}function y(e,t){return{id:e,title:e,severity:t,category:"",description:"",root_cause:{locations:[]},poc:{status:"not_started",file:null,validation_memo:null},recommendation:"",references:{external_links:[]},created_at:new Date().toISOString()}}function v(e,t,i,n,r){let o=d("auditagent"===i?s().join(e,"ai-results","auditagent","findings.json"):s().join(e,"external","github","findings.json")),u=o?.findings?.find(e=>e.id===n||String(e.issue_number??"")===n||e.id===`github-${n}`);if(!u)return null;let l=y(t,u.severity??r?.severity??"Info");l.title=String(u.title??r?.title??t),l.category=String(u.category??""),l.description=String(u.description??"");let a=u.affected_code??[];return l.root_cause.locations=a.map(e=>({file:e.file,snippet:e.snippet})),l.source_ref=n,l}function m(e,t){let i=p(e),n=i.findings.find(e=>e.id===t);if(n)return n;let r=g(e).findings.find(e=>e.id===t),o=r?.source_ref??"",u=null;return r?.source==="conformance"&&o?u=function(e,t,i,n){let r=d(s().join(e,"spec-conformance.json")),o=r?.items?.find(e=>e.id===i);if(!o)return null;let u=y(t,n?.severity??o.severity_hint??"Info");u.title=n?.title??String(o.spec_text??t),u.category="Spec Conformance",u.description=String(o.finding??o.spec_text??"");let l=o.code_location;return l?.file&&(u.root_cause.locations=[{file:l.file}]),u.source_ref=i,u}(e,t,o,r):r?.source==="auditagent"&&o?u=v(e,t,"auditagent",o,r):r?.source==="github"&&o&&(u=v(e,t,"github",o,r)),!u&&(u=y(t,r?.severity??"Info"),r?.title&&(u.title=r.title),r?.source_ref&&(u.source_ref=r.source_ref)),i.findings.push(u),f(s().join(e,"findings.json"),i),u}let h="Issue is synced to GitHub and is read-only in Hex. Edit it on GitHub, then run /sync-issues to pull the changes.";function j(e,t,i,n){let r=a[i];if(!r)throw Error(`Invalid column: ${i}. The "synced" column is reached only via /sync-issues.`);let o=g(e).findings.find(e=>e.id===t);if(o?.status==="synced")throw Error(h);"verified"===i&&m(e,t);let u=g(e),l=u.findings.find(e=>e.id===t);if(l)l.status=r;else{let o=m(e,t);l={id:t,title:o.title,severity:o.severity,source:"manual",status:r,poc_status:o.poc?.status??"not_started",poc_file:o.poc?.file??null,duplicates:[],duplicate_of:"duplicate"===i?n??null:null,notes:""},u.findings.push(l)}return"duplicate"===i?n&&(l.duplicate_of=n):l.duplicate_of&&(l.duplicate_of=null),f(s().join(e,"tracking.json"),u),l}function S(e,t,i){let n={};for(let e of c){if(!(e in i))continue;let t=i[e];if("severity"===e&&null!=t&&!("string"==typeof t&&u.includes(t)))throw Error(`Invalid severity: ${String(t)}`);if("resolution"===e&&null!=t&&""!==t&&!("string"==typeof t&&l.includes(t)))throw Error(`Invalid resolution: ${String(t)}`);n[e]=t}if(0===Object.keys(n).length)throw Error("No editable fields supplied");let r=g(e).findings.find(e=>e.id===t);if(r?.status==="synced")throw Error(h);let o=m(e,t),a=p(e),d=a.findings.find(e=>e.id===t)??o;for(let[e,t]of Object.entries(n))if("notes"!==e){if("resolution"===e&&(""===t||null==t)){delete d.resolution;continue}d[e]=t}f(s().join(e,"findings.json"),a);let y=g(e),v=y.findings.find(e=>e.id===t);return v&&("title"in n&&(v.title=n.title),"severity"in n&&(v.severity=n.severity),"notes"in n&&(v.notes=n.notes),f(s().join(e,"tracking.json"),y)),d}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var i=e=>t(t.s=e),n=t.X(0,[916,786],()=>i(1680));module.exports=n})();
1
+ "use strict";(()=>{var e={};e.id=889,e.ids=[889],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},1680:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>h,patchFetch:()=>g,requestAsyncStorage:()=>v,routeModule:()=>m,serverHooks:()=>f,staticGenerationAsyncStorage:()=>x});var i={};r.r(i),r.d(i,{POST:()=>c,dynamic:()=>p});var s=r(3277),o=r(5265),a=r(5356),n=r(7076),u=r(1720),d=r(3022);let p="force-dynamic",l={pending_validation:"potential",unverified:"potential",verified:"verified",rejected:"invalid",duplicate:"duplicate"};async function c(e,{params:t}){let r;let i=await e.json();if(i.column&&i.column in d.SG?r=i.column:i.status&&l[i.status]&&(r=l[i.status]),!r)return n.NextResponse.json({error:"Body must include a valid 'column' (potential|verified|invalid|duplicate) or 'status'"},{status:400});try{let e=(0,d.wl)((0,u.ZN)(),t.id,r);return n.NextResponse.json({ok:!0,id:t.id,status:e.status})}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:String(e)},{status:400})}}let m=new s.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/issues/[id]/move/route",pathname:"/api/issues/[id]/move",filename:"route",bundlePath:"app/api/issues/[id]/move/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/issues/[id]/move/route.ts",nextConfigOutput:"",userland:i}),{requestAsyncStorage:v,staticGenerationAsyncStorage:x,serverHooks:f}=m,h="/api/issues/[id]/move/route";function g(){return(0,a.patchFetch)({serverHooks:f,staticGenerationAsyncStorage:x})}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[916,786,42],()=>r(1680));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/compiled/next-server/app-route.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/786.js","../../../../../chunks/916.js","../../../../../webpack-runtime.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/compiled/next-server/app-route.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/42.js","../../../../../chunks/786.js","../../../../../chunks/916.js","../../../../../webpack-runtime.js"]}
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=800,e.ids=[800],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},5071:(e,t,i)=>{i.r(t),i.d(t,{originalPathname:()=>h,patchFetch:()=>j,requestAsyncStorage:()=>p,routeModule:()=>f,serverHooks:()=>y,staticGenerationAsyncStorage:()=>g});var n={};i.r(n),i.d(n,{PATCH:()=>a,dynamic:()=>d});var r=i(3277),o=i(5265),s=i(5356),u=i(7076),l=i(1760),c=i(3022);let d="force-dynamic";async function a(e,{params:t}){let i=await e.json();try{let e=(0,c.EZ)((0,l.ZN)(),t.id,i);return u.NextResponse.json({ok:!0,id:t.id,finding:e})}catch(e){return u.NextResponse.json({error:e instanceof Error?e.message:String(e)},{status:400})}}let f=new r.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/issues/[id]/route",pathname:"/api/issues/[id]",filename:"route",bundlePath:"app/api/issues/[id]/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/issues/[id]/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:p,staticGenerationAsyncStorage:g,serverHooks:y}=f,h="/api/issues/[id]/route";function j(){return(0,s.patchFetch)({serverHooks:y,staticGenerationAsyncStorage:g})}},1760:(e,t,i)=>{i.d(t,{J1:()=>p,V9:()=>g,ZN:()=>f,au:()=>d,gn:()=>l,ki:()=>a,ws:()=>c});var n=i(7561),r=i.n(n),o=i(9411),s=i.n(o);function u(){let e=process.cwd();try{let t=s().join(e,".hex","config.json");if(r().existsSync(t))return s().join(e,".hex");let i=s().join(e,".solaudit","config.json");if(r().existsSync(i))return s().join(e,".solaudit")}catch{}return s().join(e,".hex")}function l(e){try{let t=s().join(u(),e),i=r().readFileSync(t,"utf-8");return JSON.parse(i)}catch{return null}}function c(e){try{let t=s().join(u(),e);return r().readFileSync(t,"utf-8")}catch{return null}}function d(e,t){let i=s().join(u(),e);r().writeFileSync(i,JSON.stringify(t,null,2),"utf-8")}function a(e){try{let t=s().join(u(),e);return r().existsSync(t)}catch{return!1}}function f(){return u()}function p(e){try{let t=s().join(u(),e);if(!r().existsSync(t))return[];return r().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function g(e){try{let t=s().join(u(),e),i=r().readFileSync(t,"utf-8");return JSON.parse(i)}catch{return null}}},3022:(e,t,i)=>{i.d(t,{EZ:()=>S,SG:()=>c,wl:()=>v});var n=i(7561),r=i.n(n),o=i(9411),s=i.n(o);let u=["Critical","High","Medium","Low","Info"],l=["Fixed","Mitigated","Acknowledged","Not Fixed","Unresolved"],c={potential:"pending_validation",verified:"verified",invalid:"rejected",duplicate:"duplicate"},d=["title","severity","description","recommendation","resolution","update_from_client","notes"];function a(e){try{return JSON.parse(r().readFileSync(e,"utf-8"))}catch{return null}}function f(e,t){let i=s().dirname(e);r().existsSync(i)||r().mkdirSync(i,{recursive:!0});let n=e+".tmp";r().writeFileSync(n,JSON.stringify(t,null,2)+"\n","utf-8"),r().renameSync(n,e)}function p(e){return a(s().join(e,"findings.json"))??{findings:[]}}function g(e){return a(s().join(e,"tracking.json"))??{findings:[]}}function y(e,t){return{id:e,title:e,severity:t,category:"",description:"",root_cause:{locations:[]},poc:{status:"not_started",file:null,validation_memo:null},recommendation:"",references:{external_links:[]},created_at:new Date().toISOString()}}function h(e,t,i,n,r){let o=a("auditagent"===i?s().join(e,"ai-results","auditagent","findings.json"):s().join(e,"external","github","findings.json")),u=o?.findings?.find(e=>e.id===n||String(e.issue_number??"")===n||e.id===`github-${n}`);if(!u)return null;let l=y(t,u.severity??r?.severity??"Info");l.title=String(u.title??r?.title??t),l.category=String(u.category??""),l.description=String(u.description??"");let c=u.affected_code??[];return l.root_cause.locations=c.map(e=>({file:e.file,snippet:e.snippet})),l.source_ref=n,l}function j(e,t){let i=p(e),n=i.findings.find(e=>e.id===t);if(n)return n;let r=g(e).findings.find(e=>e.id===t),o=r?.source_ref??"",u=null;return r?.source==="conformance"&&o?u=function(e,t,i,n){let r=a(s().join(e,"spec-conformance.json")),o=r?.items?.find(e=>e.id===i);if(!o)return null;let u=y(t,n?.severity??o.severity_hint??"Info");u.title=n?.title??String(o.spec_text??t),u.category="Spec Conformance",u.description=String(o.finding??o.spec_text??"");let l=o.code_location;return l?.file&&(u.root_cause.locations=[{file:l.file}]),u.source_ref=i,u}(e,t,o,r):r?.source==="auditagent"&&o?u=h(e,t,"auditagent",o,r):r?.source==="github"&&o&&(u=h(e,t,"github",o,r)),!u&&(u=y(t,r?.severity??"Info"),r?.title&&(u.title=r.title),r?.source_ref&&(u.source_ref=r.source_ref)),i.findings.push(u),f(s().join(e,"findings.json"),i),u}let m="Issue is synced to GitHub and is read-only in Hex. Edit it on GitHub, then run /sync-issues to pull the changes.";function v(e,t,i,n){let r=c[i];if(!r)throw Error(`Invalid column: ${i}. The "synced" column is reached only via /sync-issues.`);let o=g(e).findings.find(e=>e.id===t);if(o?.status==="synced")throw Error(m);"verified"===i&&j(e,t);let u=g(e),l=u.findings.find(e=>e.id===t);if(l)l.status=r;else{let o=j(e,t);l={id:t,title:o.title,severity:o.severity,source:"manual",status:r,poc_status:o.poc?.status??"not_started",poc_file:o.poc?.file??null,duplicates:[],duplicate_of:"duplicate"===i?n??null:null,notes:""},u.findings.push(l)}return"duplicate"===i?n&&(l.duplicate_of=n):l.duplicate_of&&(l.duplicate_of=null),f(s().join(e,"tracking.json"),u),l}function S(e,t,i){let n={};for(let e of d){if(!(e in i))continue;let t=i[e];if("severity"===e&&null!=t&&!("string"==typeof t&&u.includes(t)))throw Error(`Invalid severity: ${String(t)}`);if("resolution"===e&&null!=t&&""!==t&&!("string"==typeof t&&l.includes(t)))throw Error(`Invalid resolution: ${String(t)}`);n[e]=t}if(0===Object.keys(n).length)throw Error("No editable fields supplied");let r=g(e).findings.find(e=>e.id===t);if(r?.status==="synced")throw Error(m);let o=j(e,t),c=p(e),a=c.findings.find(e=>e.id===t)??o;for(let[e,t]of Object.entries(n))if("notes"!==e){if("resolution"===e&&(""===t||null==t)){delete a.resolution;continue}a[e]=t}f(s().join(e,"findings.json"),c);let y=g(e),h=y.findings.find(e=>e.id===t);return h&&("title"in n&&(h.title=n.title),"severity"in n&&(h.severity=n.severity),"notes"in n&&(h.notes=n.notes),f(s().join(e,"tracking.json"),y)),a}}};var t=require("../../../../webpack-runtime.js");t.C(e);var i=e=>t(t.s=e),n=t.X(0,[916,786],()=>i(5071));module.exports=n})();
1
+ "use strict";(()=>{var e={};e.id=800,e.ids=[800],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},5071:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>g,patchFetch:()=>v,requestAsyncStorage:()=>x,routeModule:()=>l,serverHooks:()=>h,staticGenerationAsyncStorage:()=>m});var s={};t.r(s),t.d(s,{PATCH:()=>c,dynamic:()=>p});var i=t(3277),o=t(5265),a=t(5356),n=t(7076),u=t(1720),d=t(3022);let p="force-dynamic";async function c(e,{params:r}){let t=await e.json();try{let e=(0,d.EZ)((0,u.ZN)(),r.id,t);return n.NextResponse.json({ok:!0,id:r.id,finding:e})}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:String(e)},{status:400})}}let l=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/issues/[id]/route",pathname:"/api/issues/[id]",filename:"route",bundlePath:"app/api/issues/[id]/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/issues/[id]/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:x,staticGenerationAsyncStorage:m,serverHooks:h}=l,g="/api/issues/[id]/route";function v(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:m})}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[916,786,42],()=>t(5071));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/compiled/next-server/app-route.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/786.js","../../../../chunks/916.js","../../../../webpack-runtime.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/compiled/next-server/app-route.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/42.js","../../../../chunks/786.js","../../../../chunks/916.js","../../../../webpack-runtime.js"]}
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=266,e.ids=[266],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},1671:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>j,patchFetch:()=>S,requestAsyncStorage:()=>h,routeModule:()=>m,serverHooks:()=>y,staticGenerationAsyncStorage:()=>x});var n={};r.r(n),r.d(n,{GET:()=>f});var i=r(3277),o=r(5265),a=r(5356),u=r(7076),s=r(7561),c=r.n(s),l=r(9411),d=r.n(l),p=r(1760);async function f(e){let t=e.nextUrl.searchParams.get("file");if(!t||!/^[\w.-]+\.mmd$/.test(t))return u.NextResponse.json({error:"Invalid filename"},{status:400});let r=(0,p.ZN)(),n=d().join(r,"diagrams",t);try{let e=c().readFileSync(n,"utf-8");return u.NextResponse.json({syntax:e})}catch{return u.NextResponse.json({error:`File not found: ${t}`},{status:404})}}let m=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/mermaid/route",pathname:"/api/mermaid",filename:"route",bundlePath:"app/api/mermaid/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/mermaid/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:h,staticGenerationAsyncStorage:x,serverHooks:y}=m,j="/api/mermaid/route";function S(){return(0,a.patchFetch)({serverHooks:y,staticGenerationAsyncStorage:x})}},1760:(e,t,r)=>{r.d(t,{J1:()=>f,V9:()=>m,ZN:()=>p,au:()=>l,gn:()=>s,ki:()=>d,ws:()=>c});var n=r(7561),i=r.n(n),o=r(9411),a=r.n(o);function u(){let e=process.cwd();try{let t=a().join(e,".hex","config.json");if(i().existsSync(t))return a().join(e,".hex");let r=a().join(e,".solaudit","config.json");if(i().existsSync(r))return a().join(e,".solaudit")}catch{}return a().join(e,".hex")}function s(e){try{let t=a().join(u(),e),r=i().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}function c(e){try{let t=a().join(u(),e);return i().readFileSync(t,"utf-8")}catch{return null}}function l(e,t){let r=a().join(u(),e);i().writeFileSync(r,JSON.stringify(t,null,2),"utf-8")}function d(e){try{let t=a().join(u(),e);return i().existsSync(t)}catch{return!1}}function p(){return u()}function f(e){try{let t=a().join(u(),e);if(!i().existsSync(t))return[];return i().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function m(e){try{let t=a().join(u(),e),r=i().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[916,786],()=>r(1671));module.exports=n})();
1
+ "use strict";(()=>{var e={};e.id=266,e.ids=[266],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},1671:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>j,patchFetch:()=>g,requestAsyncStorage:()=>h,routeModule:()=>m,serverHooks:()=>y,staticGenerationAsyncStorage:()=>x});var n={};t.r(n),t.d(n,{GET:()=>f});var i=t(3277),o=t(5265),u=t(5356),a=t(7076),s=t(7561),c=t.n(s),l=t(9411),d=t.n(l),p=t(1720);async function f(e){let r=e.nextUrl.searchParams.get("file");if(!r||!/^[\w.-]+\.mmd$/.test(r))return a.NextResponse.json({error:"Invalid filename"},{status:400});let t=(0,p.ZN)(),n=d().join(t,"diagrams",r);try{let e=c().readFileSync(n,"utf-8");return a.NextResponse.json({syntax:e})}catch{return a.NextResponse.json({error:`File not found: ${r}`},{status:404})}}let m=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/mermaid/route",pathname:"/api/mermaid",filename:"route",bundlePath:"app/api/mermaid/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/mermaid/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:h,staticGenerationAsyncStorage:x,serverHooks:y}=m,j="/api/mermaid/route";function g(){return(0,u.patchFetch)({serverHooks:y,staticGenerationAsyncStorage:x})}},1720:(e,r,t)=>{t.d(r,{ki:()=>f,ZN:()=>m,J1:()=>h,gn:()=>l,ws:()=>d,V9:()=>x,au:()=>p});var n=t(7561),i=t.n(n),o=t(9411),u=t.n(o);let a=[".hex",".solaudit","solaudit-output"];function s(e){return e.replace(/\\/g,"/")}function c(){try{let e=function(e=process.cwd()){let r=u().resolve(e);for(;;){let e=function(e){for(let r of[...a.map(r=>u().join(e,r,"config.json")),u().join(e,"config.json")])if(i().existsSync(r))return s(r);return null}(r);if(e)return s(u().dirname(e));let t=u().dirname(r);if(t===r)return null;r=t}}(process.cwd());if(e)return e}catch{}return u().join(process.cwd(),".hex")}function l(e){try{let r=u().join(c(),e),t=i().readFileSync(r,"utf-8");return JSON.parse(t)}catch{return null}}function d(e){try{let r=u().join(c(),e);return i().readFileSync(r,"utf-8")}catch{return null}}function p(e,r){let t=u().join(c(),e);i().writeFileSync(t,JSON.stringify(r,null,2),"utf-8")}function f(e){try{let r=u().join(c(),e);return i().existsSync(r)}catch{return!1}}function m(){return c()}function h(e){try{let r=u().join(c(),e);if(!i().existsSync(r))return[];return i().readdirSync(r,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function x(e){try{let r=u().join(c(),e),t=i().readFileSync(r,"utf-8");return JSON.parse(t)}catch{return null}}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),n=r.X(0,[916,786],()=>t(1671));module.exports=n})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=153,e.ids=[153],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},4628:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>g,patchFetch:()=>x,requestAsyncStorage:()=>f,routeModule:()=>l,serverHooks:()=>y,staticGenerationAsyncStorage:()=>j});var n={};r.r(n),r.d(n,{GET:()=>p,POST:()=>d});var o=r(3277),i=r(5265),s=r(5356),a=r(7076),u=r(1760);let c={updated_at:new Date().toISOString(),reviewed_contracts:{}};async function p(){let e=(0,u.gn)("progress.json");return a.NextResponse.json(e??c)}async function d(e){let t=await e.json();if(!t.reviewed_contracts||"object"!=typeof t.reviewed_contracts)return a.NextResponse.json({error:"Invalid payload"},{status:400});let r=(0,u.gn)("progress.json")??{...c};for(let[e,n]of Object.entries(t.reviewed_contracts))r.reviewed_contracts[e]=n;return r.updated_at=new Date().toISOString(),(0,u.au)("progress.json",r),a.NextResponse.json(r)}let l=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/progress/route",pathname:"/api/progress",filename:"route",bundlePath:"app/api/progress/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/progress/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:f,staticGenerationAsyncStorage:j,serverHooks:y}=l,g="/api/progress/route";function x(){return(0,s.patchFetch)({serverHooks:y,staticGenerationAsyncStorage:j})}},1760:(e,t,r)=>{r.d(t,{J1:()=>f,V9:()=>j,ZN:()=>l,au:()=>p,gn:()=>u,ki:()=>d,ws:()=>c});var n=r(7561),o=r.n(n),i=r(9411),s=r.n(i);function a(){let e=process.cwd();try{let t=s().join(e,".hex","config.json");if(o().existsSync(t))return s().join(e,".hex");let r=s().join(e,".solaudit","config.json");if(o().existsSync(r))return s().join(e,".solaudit")}catch{}return s().join(e,".hex")}function u(e){try{let t=s().join(a(),e),r=o().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}function c(e){try{let t=s().join(a(),e);return o().readFileSync(t,"utf-8")}catch{return null}}function p(e,t){let r=s().join(a(),e);o().writeFileSync(r,JSON.stringify(t,null,2),"utf-8")}function d(e){try{let t=s().join(a(),e);return o().existsSync(t)}catch{return!1}}function l(){return a()}function f(e){try{let t=s().join(a(),e);if(!o().existsSync(t))return[];return o().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function j(e){try{let t=s().join(a(),e),r=o().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[916,786],()=>r(4628));module.exports=n})();
1
+ "use strict";(()=>{var e={};e.id=153,e.ids=[153],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},4628:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>y,patchFetch:()=>h,requestAsyncStorage:()=>f,routeModule:()=>d,serverHooks:()=>j,staticGenerationAsyncStorage:()=>g});var n={};r.r(n),r.d(n,{GET:()=>p,POST:()=>l});var o=r(3277),i=r(5265),s=r(5356),u=r(7076),a=r(1720);let c={updated_at:new Date().toISOString(),reviewed_contracts:{}};async function p(){let e=(0,a.gn)("progress.json");return u.NextResponse.json(e??c)}async function l(e){let t=await e.json();if(!t.reviewed_contracts||"object"!=typeof t.reviewed_contracts)return u.NextResponse.json({error:"Invalid payload"},{status:400});let r=(0,a.gn)("progress.json")??{...c};for(let[e,n]of Object.entries(t.reviewed_contracts))r.reviewed_contracts[e]=n;return r.updated_at=new Date().toISOString(),(0,a.au)("progress.json",r),u.NextResponse.json(r)}let d=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/progress/route",pathname:"/api/progress",filename:"route",bundlePath:"app/api/progress/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/progress/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:f,staticGenerationAsyncStorage:g,serverHooks:j}=d,y="/api/progress/route";function h(){return(0,s.patchFetch)({serverHooks:j,staticGenerationAsyncStorage:g})}},1720:(e,t,r)=>{r.d(t,{ki:()=>f,ZN:()=>g,J1:()=>j,gn:()=>p,ws:()=>l,V9:()=>y,au:()=>d});var n=r(7561),o=r.n(n),i=r(9411),s=r.n(i);let u=[".hex",".solaudit","solaudit-output"];function a(e){return e.replace(/\\/g,"/")}function c(){try{let e=function(e=process.cwd()){let t=s().resolve(e);for(;;){let e=function(e){for(let t of[...u.map(t=>s().join(e,t,"config.json")),s().join(e,"config.json")])if(o().existsSync(t))return a(t);return null}(t);if(e)return a(s().dirname(e));let r=s().dirname(t);if(r===t)return null;t=r}}(process.cwd());if(e)return e}catch{}return s().join(process.cwd(),".hex")}function p(e){try{let t=s().join(c(),e),r=o().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}function l(e){try{let t=s().join(c(),e);return o().readFileSync(t,"utf-8")}catch{return null}}function d(e,t){let r=s().join(c(),e);o().writeFileSync(r,JSON.stringify(t,null,2),"utf-8")}function f(e){try{let t=s().join(c(),e);return o().existsSync(t)}catch{return!1}}function g(){return c()}function j(e){try{let t=s().join(c(),e);if(!o().existsSync(t))return[];return o().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function y(e){try{let t=s().join(c(),e),r=o().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[916,786],()=>r(4628));module.exports=n})();
@@ -1,3 +1,3 @@
1
- "use strict";(()=>{var e={};e.id=799,e.ids=[799],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},9237:(e,t,n)=>{n.r(t),n.d(t,{originalPathname:()=>g,patchFetch:()=>w,requestAsyncStorage:()=>m,routeModule:()=>x,serverHooks:()=>j,staticGenerationAsyncStorage:()=>v});var r={};n.r(r),n.d(r,{GET:()=>y,dynamic:()=>f});var a=n(3277),i=n(5265),o=n(5356);let c=require("chokidar");var u=n.n(c),l=n(9411),s=n.n(l);let d=null,p=new Set;var h=n(1760);let f="force-dynamic";async function y(){var e;let t,n;e=(0,h.ZN)(),d||((d=u().watch(s().join(e,"**/*.{json,md,mmd}"),{ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:300,pollInterval:100}})).on("change",t=>{let n=s().relative(e,t).replace(/\\/g,"/");for(let e of p)e(n)}),d.on("add",t=>{let n=s().relative(e,t).replace(/\\/g,"/");for(let e of p)e(n)}));let r=new TextEncoder;return new Response(new ReadableStream({start(e){var a;e.enqueue(r.encode(": connected\n\n")),a=t=>{try{e.enqueue(r.encode(`data: ${JSON.stringify({file:t})}
1
+ "use strict";(()=>{var e={};e.id=799,e.ids=[799],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},9237:(e,t,n)=>{n.r(t),n.d(t,{originalPathname:()=>g,patchFetch:()=>j,requestAsyncStorage:()=>v,routeModule:()=>m,serverHooks:()=>w,staticGenerationAsyncStorage:()=>x});var r={};n.r(r),n.d(r,{GET:()=>y,dynamic:()=>h});var a=n(3277),i=n(5265),o=n(5356);let c=require("chokidar");var u=n.n(c),l=n(9411),s=n.n(l);let d=null,p=new Set;var f=n(1720);let h="force-dynamic";async function y(){var e;let t,n;e=(0,f.ZN)(),d||((d=u().watch(s().join(e,"**/*.{json,md,mmd}"),{ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:300,pollInterval:100}})).on("change",t=>{let n=s().relative(e,t).replace(/\\/g,"/");for(let e of p)e(n)}),d.on("add",t=>{let n=s().relative(e,t).replace(/\\/g,"/");for(let e of p)e(n)}));let r=new TextEncoder;return new Response(new ReadableStream({start(e){var a;e.enqueue(r.encode(": connected\n\n")),a=t=>{try{e.enqueue(r.encode(`data: ${JSON.stringify({file:t})}
2
2
 
3
- `))}catch{}},p.add(a),t=()=>p.delete(a),n=setInterval(()=>{try{e.enqueue(r.encode(": ping\n\n"))}catch{}},3e4)},cancel(){n&&clearInterval(n),t&&t()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive"}})}let x=new a.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/watch/route",pathname:"/api/watch",filename:"route",bundlePath:"app/api/watch/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/watch/route.ts",nextConfigOutput:"",userland:r}),{requestAsyncStorage:m,staticGenerationAsyncStorage:v,serverHooks:j}=x,g="/api/watch/route";function w(){return(0,o.patchFetch)({serverHooks:j,staticGenerationAsyncStorage:v})}},1760:(e,t,n)=>{n.d(t,{J1:()=>h,V9:()=>f,ZN:()=>p,au:()=>s,gn:()=>u,ki:()=>d,ws:()=>l});var r=n(7561),a=n.n(r),i=n(9411),o=n.n(i);function c(){let e=process.cwd();try{let t=o().join(e,".hex","config.json");if(a().existsSync(t))return o().join(e,".hex");let n=o().join(e,".solaudit","config.json");if(a().existsSync(n))return o().join(e,".solaudit")}catch{}return o().join(e,".hex")}function u(e){try{let t=o().join(c(),e),n=a().readFileSync(t,"utf-8");return JSON.parse(n)}catch{return null}}function l(e){try{let t=o().join(c(),e);return a().readFileSync(t,"utf-8")}catch{return null}}function s(e,t){let n=o().join(c(),e);a().writeFileSync(n,JSON.stringify(t,null,2),"utf-8")}function d(e){try{let t=o().join(c(),e);return a().existsSync(t)}catch{return!1}}function p(){return c()}function h(e){try{let t=o().join(c(),e);if(!a().existsSync(t))return[];return a().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function f(e){try{let t=o().join(c(),e),n=a().readFileSync(t,"utf-8");return JSON.parse(n)}catch{return null}}},3277:(e,t,n)=>{e.exports=n(517)}};var t=require("../../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[916],()=>n(9237));module.exports=r})();
3
+ `))}catch{}},p.add(a),t=()=>p.delete(a),n=setInterval(()=>{try{e.enqueue(r.encode(": ping\n\n"))}catch{}},3e4)},cancel(){n&&clearInterval(n),t&&t()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive"}})}let m=new a.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/watch/route",pathname:"/api/watch",filename:"route",bundlePath:"app/api/watch/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/watch/route.ts",nextConfigOutput:"",userland:r}),{requestAsyncStorage:v,staticGenerationAsyncStorage:x,serverHooks:w}=m,g="/api/watch/route";function j(){return(0,o.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:x})}},1720:(e,t,n)=>{n.d(t,{ki:()=>f,ZN:()=>h,J1:()=>y,gn:()=>s,ws:()=>d,V9:()=>m,au:()=>p});var r=n(7561),a=n.n(r),i=n(9411),o=n.n(i);let c=[".hex",".solaudit","solaudit-output"];function u(e){return e.replace(/\\/g,"/")}function l(){try{let e=function(e=process.cwd()){let t=o().resolve(e);for(;;){let e=function(e){for(let t of[...c.map(t=>o().join(e,t,"config.json")),o().join(e,"config.json")])if(a().existsSync(t))return u(t);return null}(t);if(e)return u(o().dirname(e));let n=o().dirname(t);if(n===t)return null;t=n}}(process.cwd());if(e)return e}catch{}return o().join(process.cwd(),".hex")}function s(e){try{let t=o().join(l(),e),n=a().readFileSync(t,"utf-8");return JSON.parse(n)}catch{return null}}function d(e){try{let t=o().join(l(),e);return a().readFileSync(t,"utf-8")}catch{return null}}function p(e,t){let n=o().join(l(),e);a().writeFileSync(n,JSON.stringify(t,null,2),"utf-8")}function f(e){try{let t=o().join(l(),e);return a().existsSync(t)}catch{return!1}}function h(){return l()}function y(e){try{let t=o().join(l(),e);if(!a().existsSync(t))return[];return a().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function m(e){try{let t=o().join(l(),e),n=a().readFileSync(t,"utf-8");return JSON.parse(n)}catch{return null}}},3277:(e,t,n)=>{e.exports=n(517)}};var t=require("../../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[916],()=>n(9237));module.exports=r})();