hex-audit 0.5.1 → 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.
- package/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/app-build-manifest.json +19 -19
- package/dashboard/.next/app-path-routes-manifest.json +1 -1
- package/dashboard/.next/build-manifest.json +2 -2
- package/dashboard/.next/next-server.js.nft.json +1 -1
- package/dashboard/.next/prerender-manifest.js +1 -1
- package/dashboard/.next/prerender-manifest.json +1 -1
- package/dashboard/.next/server/app/_not-found/page.js +1 -1
- package/dashboard/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/_not-found.html +1 -1
- package/dashboard/.next/server/app/_not-found.rsc +4 -4
- package/dashboard/.next/server/app/access/page.js +1 -1
- package/dashboard/.next/server/app/access/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/access/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/calls/page.js +1 -1
- package/dashboard/.next/server/app/calls/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/calls/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/conformance/page.js +1 -1
- package/dashboard/.next/server/app/conformance/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/conformance/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/diagram/page.js +1 -1
- package/dashboard/.next/server/app/diagram/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/diagram/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/diagram.html +1 -1
- package/dashboard/.next/server/app/diagram.rsc +4 -4
- package/dashboard/.next/server/app/flows/page.js +1 -1
- package/dashboard/.next/server/app/flows/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/flows/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/flows.html +1 -1
- package/dashboard/.next/server/app/flows.rsc +4 -4
- package/dashboard/.next/server/app/functions/page.js +1 -1
- package/dashboard/.next/server/app/functions/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/functions/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/issues/page.js +2 -2
- package/dashboard/.next/server/app/issues/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/issues/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/overleaf/page.js +1 -1
- package/dashboard/.next/server/app/overleaf/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/overleaf/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/page.js +2 -2
- package/dashboard/.next/server/app/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/progress/page.js +1 -1
- package/dashboard/.next/server/app/progress/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/progress/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/stats/page.js +1 -1
- package/dashboard/.next/server/app/stats/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/stats/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app-paths-manifest.json +6 -6
- package/dashboard/.next/server/chunks/{431.js → 530.js} +1 -1
- package/dashboard/.next/server/functions-config-manifest.json +1 -1
- package/dashboard/.next/server/middleware-build-manifest.js +1 -1
- package/dashboard/.next/server/pages/404.html +1 -1
- package/dashboard/.next/server/pages/500.html +1 -1
- package/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/dashboard/.next/static/chunks/app/{layout-91d2987f5030a3c4.js → layout-23765c356f43208c.js} +1 -1
- package/dashboard/app/layout.tsx +2 -1
- package/dashboard/components/DashboardLayout.tsx +8 -2
- package/dist/commands/note.d.ts +3 -0
- package/dist/commands/note.d.ts.map +1 -0
- package/dist/commands/note.js +145 -0
- package/dist/commands/note.js.map +1 -0
- package/dist/core/notes.d.ts +62 -0
- package/dist/core/notes.d.ts.map +1 -0
- package/dist/core/notes.js +160 -0
- package/dist/core/notes.js.map +1 -0
- package/dist/core/whisper.d.ts +24 -0
- package/dist/core/whisper.d.ts.map +1 -0
- package/dist/core/whisper.js +124 -0
- package/dist/core/whisper.js.map +1 -0
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/skills/diane.md +99 -0
- package/dist/skills/ingest-aa-report.md +1 -1
- package/dist/skills/sync-issues.md +23 -3
- package/dist/skills/validate-issue.md +1 -1
- package/dist/skills/write-finding.md +2 -1
- package/package.json +1 -1
- /package/dashboard/.next/static/{dm-uzRRik5AgaBPedT1iR → QeyYu_4EslVR8FTiyQpNs}/_buildManifest.js +0 -0
- /package/dashboard/.next/static/{dm-uzRRik5AgaBPedT1iR → 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-91d2987f5030a3c4.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.1</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 7:32:59 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,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";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-91d2987f5030a3c4.js\"],\"ThemeProvider\"]\n9:I[2198,[\"7498\",\"static/chunks/7498-ea83cb9e30ec5491.js\",\"3185\",\"static/chunks/app/layout-91d2987f5030a3c4.js\"],\"CommandPalette\"]\na:I[1187,[\"7498\",\"static/chunks/7498-ea83cb9e30ec5491.js\",\"3185\",\"static/chunks/app/layout-91d2987f5030a3c4.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\":\"dm-uzRRik5AgaBPedT1iR\",\"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,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";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 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-08869f2b18792e51.js" defer=""></script><script src="/_next/static/chunks/framework-cf6f5bdca6ba0184.js" defer=""></script><script src="/_next/static/chunks/main-8f1e837090aef5cf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-6ad2b50514c24ab4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-d5eb11c5c4626811.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-08869f2b18792e51.js" defer=""></script><script src="/_next/static/chunks/framework-cf6f5bdca6ba0184.js" defer=""></script><script src="/_next/static/chunks/main-8f1e837090aef5cf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-6ad2b50514c24ab4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-d5eb11c5c4626811.js" defer=""></script><script src="/_next/static/QeyYu_4EslVR8FTiyQpNs/_buildManifest.js" defer=""></script><script src="/_next/static/QeyYu_4EslVR8FTiyQpNs/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><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-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"QeyYu_4EslVR8FTiyQpNs","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__RSC_SERVER_MANIFEST="{\"node\":{},\"edge\":{},\"encryptionKey\":\"
|
|
1
|
+
self.__RSC_SERVER_MANIFEST="{\"node\":{},\"edge\":{},\"encryptionKey\":\"5RAu7DJwfAGqwgjcFIG+jevqrC8oJ5WWS9aFk4+iRKk=\"}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{},"edge":{},"encryptionKey":"
|
|
1
|
+
{"node":{},"edge":{},"encryptionKey":"5RAu7DJwfAGqwgjcFIG+jevqrC8oJ5WWS9aFk4+iRKk="}
|
package/dashboard/.next/static/chunks/app/{layout-91d2987f5030a3c4.js → layout-23765c356f43208c.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3185],{9640:function(e,t,r){Promise.resolve().then(r.t.bind(r,3812,23)),Promise.resolve().then(r.bind(r,2198)),Promise.resolve().then(r.bind(r,1187)),Promise.resolve().then(r.bind(r,4595)),Promise.resolve().then(r.t.bind(r,8414,23)),Promise.resolve().then(r.t.bind(r,5256,23))},2198:function(e,t,r){"use strict";r.d(t,{CommandPalette:function(){return i}});var n=r(7821),a=r(8078),s=r(168);let o=r(1187).p.flatMap(e=>e.items.map(t=>({href:t.href,label:"".concat(e.label," / ").concat(t.label)})));function i(){let[e,t]=(0,a.useState)(!1),[r,i]=(0,a.useState)(""),[l,c]=(0,a.useState)(0),d=(0,a.useRef)(null),u=(0,s.useRouter)(),h=r.trim()?o.filter(e=>e.label.toLowerCase().includes(r.toLowerCase())||e.href.includes(r.toLowerCase())):o;(0,a.useEffect)(()=>{let e=e=>{(e.ctrlKey||e.metaKey)&&"k"===e.key&&(e.preventDefault(),t(e=>!e),i(""),c(0)),"Escape"===e.key&&t(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,a.useEffect)(()=>{e&&setTimeout(()=>{var e;return null===(e=d.current)||void 0===e?void 0:e.focus()},50)},[e]),(0,a.useEffect)(()=>c(0),[r]);let m=e=>{u.push(e),t(!1),i("")};return e?(0,n.jsx)("div",{className:"fixed inset-0 z-[9000] flex items-start justify-center px-4 pt-[12vh]",style:{background:"var(--overlay-bg)"},onClick:()=>t(!1),children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"Quick navigation",className:"w-full max-w-lg rounded-lg border border-border-default bg-surface-1 shadow-lg",onClick:e=>e.stopPropagation(),children:[(0,n.jsxs)("div",{className:"flex items-center border-b border-border-default px-4 py-3 gap-2",children:[(0,n.jsx)("span",{className:"text-accent text-body font-medium shrink-0","aria-hidden":"true",children:">"}),(0,n.jsx)("input",{ref:d,type:"text",value:r,onChange:e=>i(e.target.value),placeholder:"search pages...","aria-label":"Search pages",className:"flex-1 bg-transparent text-body text-text-primary placeholder-text-tertiary outline-none",onKeyDown:e=>{"ArrowDown"===e.key?(e.preventDefault(),c(e=>Math.min(e+1,h.length-1))):"ArrowUp"===e.key?(e.preventDefault(),c(e=>Math.max(e-1,0))):"Enter"===e.key&&h[l]?m(h[l].href):"Tab"===e.key&&e.preventDefault()}}),(0,n.jsx)("kbd",{className:"shrink-0 border border-border-default px-1.5 py-0.5 text-caption text-text-tertiary",style:{borderRadius:"var(--radius-sm)"},children:"ESC"})]}),(0,n.jsx)("div",{className:"max-h-72 overflow-y-auto py-1",children:0===h.length?(0,n.jsx)("div",{className:"px-4 py-3 text-body text-text-tertiary",children:"no results"}):h.map((e,t)=>(0,n.jsxs)("button",{type:"button",className:"flex w-full items-center gap-3 px-4 py-2.5 text-left text-body focus-visible:outline focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent ".concat(t===l?"bg-accent-subtle text-accent":"text-text-secondary hover:bg-surface-2 hover:text-text-primary"),onClick:()=>m(e.href),onMouseEnter:()=>c(t),children:[(0,n.jsx)("span",{className:"text-text-tertiary text-caption shrink-0",children:t===l?">":" "}),(0,n.jsx)("span",{children:e.label}),(0,n.jsx)("span",{className:"ml-auto text-caption text-text-tertiary shrink-0",children:e.href})]},e.href))})]})}):null}},1187:function(e,t,r){"use strict";r.d(t,{DashboardLayout:function(){return p},p:function(){return f}});var n=r(7821),a=r(7498),s=r.n(a),o=r(168),i=r(4595),l=r(8078);function c(e,t){let r=Math.round((t.getTime()-e.getTime())/1e3);return r<5?"just now":r<60?"".concat(r,"s ago"):r<3600?"".concat(Math.round(r/60),"m ago"):"".concat(Math.round(r/3600),"h ago")}function d(){let e=(0,o.useRouter)(),[t,r]=(0,l.useState)(()=>new Date),[a,s]=(0,l.useState)(!1),[i,d]=(0,l.useState)(()=>new Date),[u,h]=(0,l.useState)(null),m=(0,l.useRef)(null),f=()=>{fetch("/api/github-status",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(e=>{if(e&&"string"==typeof e.last_synced_at){var t;h({repo:null!==(t=e.repo)&&void 0!==t?t:"",last_synced_at:e.last_synced_at})}else h(null)}).catch(()=>h(null))};(0,l.useEffect)(()=>{f();let e=new EventSource("/api/watch");return e.onopen=()=>s(!0),e.onmessage=()=>{r(new Date),f()},e.onerror=()=>s(!1),()=>e.close()},[e]),(0,l.useEffect)(()=>{let e=setInterval(()=>d(new Date),3e4);return()=>clearInterval(e)},[]),(0,l.useEffect)(()=>()=>{m.current&&clearTimeout(m.current)},[]);let x=a?"Updated ".concat(c(t,i)):"Reconnecting…";return(0,n.jsxs)("div",{className:"px-3 py-1 text-caption text-text-tertiary","aria-live":"polite",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",title:"Last refresh ".concat(t.toLocaleTimeString()).concat(a?"":" — watcher disconnected"),children:[(0,n.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full ".concat(a?"bg-[var(--success)]":"bg-[var(--medium)]"),"aria-hidden":"true"}),(0,n.jsx)("span",{children:x})]}),u&&(0,n.jsxs)("div",{className:"mt-1 flex items-center gap-2",title:"GitHub sync with ".concat(u.repo," at ").concat(new Date(u.last_synced_at).toLocaleTimeString()),children:[(0,n.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full bg-accent","aria-hidden":"true"}),(0,n.jsxs)("span",{children:["GitHub ",c(new Date(u.last_synced_at),i)]})]})]})}function u(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"})})}function h(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"})})}function m(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"})})}let f=[{label:"Recon",items:[{href:"/",label:"Home",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}},{href:"/progress",label:"Progress",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}},{href:"/stats",label:"Stats",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z"})})}}]},{label:"Analysis",items:[{href:"/access",label:"Access Control",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z"})})}},{href:"/functions",label:"Functions",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}},{href:"/calls",label:"Ext Calls",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"})})}}]},{label:"Reasoning",items:[{href:"/conformance",label:"Spec Conformance",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}}]},{label:"Visual",items:[{href:"/diagram",label:"Diagram",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 3.75H6A2.25 2.25 0 0 0 3.75 6v1.5M16.5 3.75H18A2.25 2.25 0 0 1 20.25 6v1.5m0 9V18A2.25 2.25 0 0 1 18 20.25h-1.5m-9 0H6A2.25 2.25 0 0 1 3.75 18v-1.5M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"})})}},{href:"/flows",label:"Flows",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}}]},{label:"Issues",items:[{href:"/issues",label:"Board",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"})})}},{href:"/overleaf",label:"Overleaf",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}}]}];function x(){let{theme:e,setTheme:t}=(0,i.F)(),[r,a]=(0,l.useState)(!1);return((0,l.useEffect)(()=>a(!0),[]),r)?(0,n.jsxs)("button",{type:"button",onClick:()=>t("dark"===e?"light":"dark"),"aria-label":"Switch to ".concat("dark"===e?"light":"dark"," mode"),className:"flex w-full items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary",children:[(0,n.jsx)("light"===e?h:m,{className:"h-4 w-4 shrink-0"}),(0,n.jsx)("span",{children:"light"===e?"Light":"Dark"})]}):(0,n.jsx)("div",{className:"h-9"})}function p(e){let{children:t}=e,r=(0,o.usePathname)(),[a,i]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{i(!1)},[r]),(0,n.jsxs)("div",{className:"min-h-screen",children:[(0,n.jsx)("button",{type:"button","aria-label":"Toggle navigation",onClick:()=>i(!a),className:"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",children:(0,n.jsx)(u,{className:"h-5 w-5"})}),a&&(0,n.jsx)("div",{className:"fixed inset-0 z-40 md:hidden",style:{background:"var(--overlay-bg)"},onClick:()=>i(!1)}),(0,n.jsxs)("nav",{"aria-label":"Main navigation",className:"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 ".concat(a?"translate-x-0":"-translate-x-full"," md:translate-x-0"),children:[(0,n.jsx)("div",{className:"px-5 pb-4 pt-6",children:(0,n.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,n.jsx)("span",{className:"text-title font-semibold text-text-primary",children:"Hex"}),(0,n.jsx)("span",{className:"text-caption text-text-tertiary",children:"v0.5.1"})]})}),(0,n.jsx)("div",{className:"flex-1 overflow-y-auto px-3 pb-4",children:f.map(e=>(0,n.jsxs)("div",{className:"mt-6 first:mt-0",children:[(0,n.jsx)("div",{className:"mb-1.5 px-3 text-caption font-medium text-text-tertiary",children:e.label}),e.items.map(e=>{let t=r===e.href;return(0,n.jsxs)(s(),{href:e.href,"aria-current":t?"page":void 0,className:"group flex items-center gap-2.5 rounded-md px-3 py-2 text-body ".concat(t?"bg-accent-subtle text-accent font-medium":"text-text-secondary hover:bg-surface-2 hover:text-text-primary"),children:[(0,n.jsx)(e.icon,{className:"h-4 w-4 shrink-0"}),(0,n.jsx)("span",{children:e.label})]},e.href)})]},e.label))}),(0,n.jsxs)("div",{className:"border-t border-border-subtle px-3 py-3 space-y-1",children:[(0,n.jsx)(d,{}),(0,n.jsx)(x,{}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-caption text-text-tertiary",children:[(0,n.jsx)("kbd",{className:"rounded border border-border-default bg-surface-2 px-1.5 py-0.5 text-[11px]",children:"⌘K"}),(0,n.jsx)("span",{children:"Quick nav"})]})]})]}),(0,n.jsx)("main",{className:"min-h-screen bg-surface-0 p-6 pt-16 md:ml-[220px] md:pt-6",children:(0,n.jsx)("div",{className:"mx-auto max-w-6xl",children:t})})]})}},168:function(e,t,r){"use strict";var n=r(7462);r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}})},3812:function(){},5256:function(e){e.exports={style:{fontFamily:"'__JetBrains_Mono_3c557b', '__JetBrains_Mono_Fallback_3c557b'",fontStyle:"normal"},className:"__className_3c557b",variable:"__variable_3c557b"}},8414:function(e){e.exports={style:{fontFamily:"'__Manrope_73ee6c', '__Manrope_Fallback_73ee6c'",fontStyle:"normal"},className:"__className_73ee6c",variable:"__variable_73ee6c"}},4595:function(e,t,r){"use strict";r.d(t,{F:function(){return d},ThemeProvider:function(){return u}});var n=r(8078),a=(e,t,r,n,a,s,o,i)=>{let l=document.documentElement,c=["light","dark"];function d(t){(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&s?a.map(e=>s[e]||e):a;r?(l.classList.remove(...n),l.classList.add(s&&s[t]?s[t]:t)):l.setAttribute(e,t)}),i&&c.includes(t)&&(l.style.colorScheme=t)}if(n)d(n);else try{let e=localStorage.getItem(t)||r,n=o&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;d(n)}catch(e){}},s=["light","dark"],o="(prefers-color-scheme: dark)",i="undefined"==typeof window,l=n.createContext(void 0),c={setTheme:e=>{},themes:[]},d=()=>{var e;return null!=(e=n.useContext(l))?e:c},u=e=>n.useContext(l)?n.createElement(n.Fragment,null,e.children):n.createElement(m,{...e}),h=["light","dark"],m=e=>{let{forcedTheme:t,disableTransitionOnChange:r=!1,enableSystem:a=!0,enableColorScheme:i=!0,storageKey:c="theme",themes:d=h,defaultTheme:u=a?"system":"light",attribute:m="data-theme",value:b,children:y,nonce:k,scriptProps:g}=e,[j,w]=n.useState(()=>x(c,u)),[L,C]=n.useState(()=>"system"===j?v():j),M=b?Object.values(b):d,N=n.useCallback(e=>{let t=e;if(!t)return;"system"===e&&a&&(t=v());let n=b?b[t]:t,o=r?p(k):null,l=document.documentElement,c=e=>{"class"===e?(l.classList.remove(...M),n&&l.classList.add(n)):e.startsWith("data-")&&(n?l.setAttribute(e,n):l.removeAttribute(e))};if(Array.isArray(m)?m.forEach(c):c(m),i){let e=s.includes(u)?u:null,r=s.includes(t)?t:e;l.style.colorScheme=r}null==o||o()},[k]),_=n.useCallback(e=>{let t="function"==typeof e?e(j):e;w(t);try{localStorage.setItem(c,t)}catch(e){}},[j]),S=n.useCallback(e=>{C(v(e)),"system"===j&&a&&!t&&N("system")},[j,t]);n.useEffect(()=>{let e=window.matchMedia(o);return e.addListener(S),S(e),()=>e.removeListener(S)},[S]),n.useEffect(()=>{let e=e=>{e.key===c&&(e.newValue?w(e.newValue):_(u))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[_]),n.useEffect(()=>{N(null!=t?t:j)},[t,j]);let E=n.useMemo(()=>({theme:j,setTheme:_,forcedTheme:t,resolvedTheme:"system"===j?L:j,themes:a?[...d,"system"]:d,systemTheme:a?L:void 0}),[j,_,t,L,a,d]);return n.createElement(l.Provider,{value:E},n.createElement(f,{forcedTheme:t,storageKey:c,attribute:m,enableSystem:a,enableColorScheme:i,defaultTheme:u,value:b,themes:d,nonce:k,scriptProps:g}),y)},f=n.memo(e=>{let{forcedTheme:t,storageKey:r,attribute:s,enableSystem:o,enableColorScheme:i,defaultTheme:l,value:c,themes:d,nonce:u,scriptProps:h}=e,m=JSON.stringify([s,r,l,t,d,c,o,i]).slice(1,-1);return n.createElement("script",{...h,suppressHydrationWarning:!0,nonce:"undefined"==typeof window?u:"",dangerouslySetInnerHTML:{__html:"(".concat(a.toString(),")(").concat(m,")")}})}),x=(e,t)=>{let r;if(!i){try{r=localStorage.getItem(e)||void 0}catch(e){}return r||t}},p=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},v=e=>(e||(e=window.matchMedia(o)),e.matches?"dark":"light")}},function(e){e.O(0,[5116,7498,7115,3205,1744],function(){return e(e.s=9640)}),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3185],{9640:function(e,t,r){Promise.resolve().then(r.t.bind(r,3812,23)),Promise.resolve().then(r.bind(r,2198)),Promise.resolve().then(r.bind(r,1187)),Promise.resolve().then(r.bind(r,4595)),Promise.resolve().then(r.t.bind(r,8414,23)),Promise.resolve().then(r.t.bind(r,5256,23))},2198:function(e,t,r){"use strict";r.d(t,{CommandPalette:function(){return i}});var n=r(7821),a=r(8078),s=r(168);let o=r(1187).p.flatMap(e=>e.items.map(t=>({href:t.href,label:"".concat(e.label," / ").concat(t.label)})));function i(){let[e,t]=(0,a.useState)(!1),[r,i]=(0,a.useState)(""),[l,c]=(0,a.useState)(0),d=(0,a.useRef)(null),u=(0,s.useRouter)(),h=r.trim()?o.filter(e=>e.label.toLowerCase().includes(r.toLowerCase())||e.href.includes(r.toLowerCase())):o;(0,a.useEffect)(()=>{let e=e=>{(e.ctrlKey||e.metaKey)&&"k"===e.key&&(e.preventDefault(),t(e=>!e),i(""),c(0)),"Escape"===e.key&&t(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,a.useEffect)(()=>{e&&setTimeout(()=>{var e;return null===(e=d.current)||void 0===e?void 0:e.focus()},50)},[e]),(0,a.useEffect)(()=>c(0),[r]);let m=e=>{u.push(e),t(!1),i("")};return e?(0,n.jsx)("div",{className:"fixed inset-0 z-[9000] flex items-start justify-center px-4 pt-[12vh]",style:{background:"var(--overlay-bg)"},onClick:()=>t(!1),children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"Quick navigation",className:"w-full max-w-lg rounded-lg border border-border-default bg-surface-1 shadow-lg",onClick:e=>e.stopPropagation(),children:[(0,n.jsxs)("div",{className:"flex items-center border-b border-border-default px-4 py-3 gap-2",children:[(0,n.jsx)("span",{className:"text-accent text-body font-medium shrink-0","aria-hidden":"true",children:">"}),(0,n.jsx)("input",{ref:d,type:"text",value:r,onChange:e=>i(e.target.value),placeholder:"search pages...","aria-label":"Search pages",className:"flex-1 bg-transparent text-body text-text-primary placeholder-text-tertiary outline-none",onKeyDown:e=>{"ArrowDown"===e.key?(e.preventDefault(),c(e=>Math.min(e+1,h.length-1))):"ArrowUp"===e.key?(e.preventDefault(),c(e=>Math.max(e-1,0))):"Enter"===e.key&&h[l]?m(h[l].href):"Tab"===e.key&&e.preventDefault()}}),(0,n.jsx)("kbd",{className:"shrink-0 border border-border-default px-1.5 py-0.5 text-caption text-text-tertiary",style:{borderRadius:"var(--radius-sm)"},children:"ESC"})]}),(0,n.jsx)("div",{className:"max-h-72 overflow-y-auto py-1",children:0===h.length?(0,n.jsx)("div",{className:"px-4 py-3 text-body text-text-tertiary",children:"no results"}):h.map((e,t)=>(0,n.jsxs)("button",{type:"button",className:"flex w-full items-center gap-3 px-4 py-2.5 text-left text-body focus-visible:outline focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent ".concat(t===l?"bg-accent-subtle text-accent":"text-text-secondary hover:bg-surface-2 hover:text-text-primary"),onClick:()=>m(e.href),onMouseEnter:()=>c(t),children:[(0,n.jsx)("span",{className:"text-text-tertiary text-caption shrink-0",children:t===l?">":" "}),(0,n.jsx)("span",{children:e.label}),(0,n.jsx)("span",{className:"ml-auto text-caption text-text-tertiary shrink-0",children:e.href})]},e.href))})]})}):null}},1187:function(e,t,r){"use strict";r.d(t,{DashboardLayout:function(){return p},p:function(){return f}});var n=r(7821),a=r(7498),s=r.n(a),o=r(168),i=r(4595),l=r(8078);function c(e,t){let r=Math.round((t.getTime()-e.getTime())/1e3);return r<5?"just now":r<60?"".concat(r,"s ago"):r<3600?"".concat(Math.round(r/60),"m ago"):"".concat(Math.round(r/3600),"h ago")}function d(){let e=(0,o.useRouter)(),[t,r]=(0,l.useState)(()=>new Date),[a,s]=(0,l.useState)(!1),[i,d]=(0,l.useState)(()=>new Date),[u,h]=(0,l.useState)(null),m=(0,l.useRef)(null),f=()=>{fetch("/api/github-status",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(e=>{if(e&&"string"==typeof e.last_synced_at){var t;h({repo:null!==(t=e.repo)&&void 0!==t?t:"",last_synced_at:e.last_synced_at})}else h(null)}).catch(()=>h(null))};(0,l.useEffect)(()=>{f();let e=new EventSource("/api/watch");return e.onopen=()=>s(!0),e.onmessage=()=>{r(new Date),f()},e.onerror=()=>s(!1),()=>e.close()},[e]),(0,l.useEffect)(()=>{let e=setInterval(()=>d(new Date),3e4);return()=>clearInterval(e)},[]),(0,l.useEffect)(()=>()=>{m.current&&clearTimeout(m.current)},[]);let x=a?"Updated ".concat(c(t,i)):"Reconnecting…";return(0,n.jsxs)("div",{className:"px-3 py-1 text-caption text-text-tertiary","aria-live":"polite",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",title:"Last refresh ".concat(t.toLocaleTimeString()).concat(a?"":" — watcher disconnected"),children:[(0,n.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full ".concat(a?"bg-[var(--success)]":"bg-[var(--medium)]"),"aria-hidden":"true"}),(0,n.jsx)("span",{children:x})]}),u&&(0,n.jsxs)("div",{className:"mt-1 flex items-center gap-2",title:"GitHub sync with ".concat(u.repo," at ").concat(new Date(u.last_synced_at).toLocaleTimeString()),children:[(0,n.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full bg-accent","aria-hidden":"true"}),(0,n.jsxs)("span",{children:["GitHub ",c(new Date(u.last_synced_at),i)]})]})]})}function u(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"})})}function h(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"})})}function m(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"})})}let f=[{label:"Recon",items:[{href:"/",label:"Home",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}},{href:"/progress",label:"Progress",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}},{href:"/stats",label:"Stats",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z"})})}}]},{label:"Analysis",items:[{href:"/access",label:"Access Control",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z"})})}},{href:"/functions",label:"Functions",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}},{href:"/calls",label:"Ext Calls",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"})})}}]},{label:"Reasoning",items:[{href:"/conformance",label:"Spec Conformance",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}}]},{label:"Visual",items:[{href:"/diagram",label:"Diagram",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 3.75H6A2.25 2.25 0 0 0 3.75 6v1.5M16.5 3.75H18A2.25 2.25 0 0 1 20.25 6v1.5m0 9V18A2.25 2.25 0 0 1 18 20.25h-1.5m-9 0H6A2.25 2.25 0 0 1 3.75 18v-1.5M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"})})}},{href:"/flows",label:"Flows",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}}]},{label:"Issues",items:[{href:"/issues",label:"Board",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"})})}},{href:"/overleaf",label:"Overleaf",icon:function(e){return(0,n.jsx)("svg",{...e,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"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"})})}}]}];function x(){let{theme:e,setTheme:t}=(0,i.F)(),[r,a]=(0,l.useState)(!1);return((0,l.useEffect)(()=>a(!0),[]),r)?(0,n.jsxs)("button",{type:"button",onClick:()=>t("dark"===e?"light":"dark"),"aria-label":"Switch to ".concat("dark"===e?"light":"dark"," mode"),className:"flex w-full items-center gap-2.5 rounded-md px-3 py-2 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary",children:[(0,n.jsx)("light"===e?h:m,{className:"h-4 w-4 shrink-0"}),(0,n.jsx)("span",{children:"light"===e?"Light":"Dark"})]}):(0,n.jsx)("div",{className:"h-9"})}function p(e){let{children:t,version:r}=e,a=(0,o.usePathname)(),[i,c]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{c(!1)},[a]),(0,n.jsxs)("div",{className:"min-h-screen",children:[(0,n.jsx)("button",{type:"button","aria-label":"Toggle navigation",onClick:()=>c(!i),className:"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",children:(0,n.jsx)(u,{className:"h-5 w-5"})}),i&&(0,n.jsx)("div",{className:"fixed inset-0 z-40 md:hidden",style:{background:"var(--overlay-bg)"},onClick:()=>c(!1)}),(0,n.jsxs)("nav",{"aria-label":"Main navigation",className:"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 ".concat(i?"translate-x-0":"-translate-x-full"," md:translate-x-0"),children:[(0,n.jsx)("div",{className:"px-5 pb-4 pt-6",children:(0,n.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,n.jsx)("span",{className:"text-title font-semibold text-text-primary",children:"Hex"}),(0,n.jsxs)("span",{className:"text-caption text-text-tertiary",children:["v",r]})]})}),(0,n.jsx)("div",{className:"flex-1 overflow-y-auto px-3 pb-4",children:f.map(e=>(0,n.jsxs)("div",{className:"mt-6 first:mt-0",children:[(0,n.jsx)("div",{className:"mb-1.5 px-3 text-caption font-medium text-text-tertiary",children:e.label}),e.items.map(e=>{let t=a===e.href;return(0,n.jsxs)(s(),{href:e.href,"aria-current":t?"page":void 0,className:"group flex items-center gap-2.5 rounded-md px-3 py-2 text-body ".concat(t?"bg-accent-subtle text-accent font-medium":"text-text-secondary hover:bg-surface-2 hover:text-text-primary"),children:[(0,n.jsx)(e.icon,{className:"h-4 w-4 shrink-0"}),(0,n.jsx)("span",{children:e.label})]},e.href)})]},e.label))}),(0,n.jsxs)("div",{className:"border-t border-border-subtle px-3 py-3 space-y-1",children:[(0,n.jsx)(d,{}),(0,n.jsx)(x,{}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-caption text-text-tertiary",children:[(0,n.jsx)("kbd",{className:"rounded border border-border-default bg-surface-2 px-1.5 py-0.5 text-[11px]",children:"⌘K"}),(0,n.jsx)("span",{children:"Quick nav"})]})]})]}),(0,n.jsx)("main",{className:"min-h-screen bg-surface-0 p-6 pt-16 md:ml-[220px] md:pt-6",children:(0,n.jsx)("div",{className:"mx-auto max-w-6xl",children:t})})]})}},168:function(e,t,r){"use strict";var n=r(7462);r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}})},3812:function(){},5256:function(e){e.exports={style:{fontFamily:"'__JetBrains_Mono_3c557b', '__JetBrains_Mono_Fallback_3c557b'",fontStyle:"normal"},className:"__className_3c557b",variable:"__variable_3c557b"}},8414:function(e){e.exports={style:{fontFamily:"'__Manrope_73ee6c', '__Manrope_Fallback_73ee6c'",fontStyle:"normal"},className:"__className_73ee6c",variable:"__variable_73ee6c"}},4595:function(e,t,r){"use strict";r.d(t,{F:function(){return d},ThemeProvider:function(){return u}});var n=r(8078),a=(e,t,r,n,a,s,o,i)=>{let l=document.documentElement,c=["light","dark"];function d(t){(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&s?a.map(e=>s[e]||e):a;r?(l.classList.remove(...n),l.classList.add(s&&s[t]?s[t]:t)):l.setAttribute(e,t)}),i&&c.includes(t)&&(l.style.colorScheme=t)}if(n)d(n);else try{let e=localStorage.getItem(t)||r,n=o&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;d(n)}catch(e){}},s=["light","dark"],o="(prefers-color-scheme: dark)",i="undefined"==typeof window,l=n.createContext(void 0),c={setTheme:e=>{},themes:[]},d=()=>{var e;return null!=(e=n.useContext(l))?e:c},u=e=>n.useContext(l)?n.createElement(n.Fragment,null,e.children):n.createElement(m,{...e}),h=["light","dark"],m=e=>{let{forcedTheme:t,disableTransitionOnChange:r=!1,enableSystem:a=!0,enableColorScheme:i=!0,storageKey:c="theme",themes:d=h,defaultTheme:u=a?"system":"light",attribute:m="data-theme",value:b,children:y,nonce:k,scriptProps:g}=e,[j,w]=n.useState(()=>x(c,u)),[L,C]=n.useState(()=>"system"===j?v():j),M=b?Object.values(b):d,N=n.useCallback(e=>{let t=e;if(!t)return;"system"===e&&a&&(t=v());let n=b?b[t]:t,o=r?p(k):null,l=document.documentElement,c=e=>{"class"===e?(l.classList.remove(...M),n&&l.classList.add(n)):e.startsWith("data-")&&(n?l.setAttribute(e,n):l.removeAttribute(e))};if(Array.isArray(m)?m.forEach(c):c(m),i){let e=s.includes(u)?u:null,r=s.includes(t)?t:e;l.style.colorScheme=r}null==o||o()},[k]),_=n.useCallback(e=>{let t="function"==typeof e?e(j):e;w(t);try{localStorage.setItem(c,t)}catch(e){}},[j]),S=n.useCallback(e=>{C(v(e)),"system"===j&&a&&!t&&N("system")},[j,t]);n.useEffect(()=>{let e=window.matchMedia(o);return e.addListener(S),S(e),()=>e.removeListener(S)},[S]),n.useEffect(()=>{let e=e=>{e.key===c&&(e.newValue?w(e.newValue):_(u))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[_]),n.useEffect(()=>{N(null!=t?t:j)},[t,j]);let E=n.useMemo(()=>({theme:j,setTheme:_,forcedTheme:t,resolvedTheme:"system"===j?L:j,themes:a?[...d,"system"]:d,systemTheme:a?L:void 0}),[j,_,t,L,a,d]);return n.createElement(l.Provider,{value:E},n.createElement(f,{forcedTheme:t,storageKey:c,attribute:m,enableSystem:a,enableColorScheme:i,defaultTheme:u,value:b,themes:d,nonce:k,scriptProps:g}),y)},f=n.memo(e=>{let{forcedTheme:t,storageKey:r,attribute:s,enableSystem:o,enableColorScheme:i,defaultTheme:l,value:c,themes:d,nonce:u,scriptProps:h}=e,m=JSON.stringify([s,r,l,t,d,c,o,i]).slice(1,-1);return n.createElement("script",{...h,suppressHydrationWarning:!0,nonce:"undefined"==typeof window?u:"",dangerouslySetInnerHTML:{__html:"(".concat(a.toString(),")(").concat(m,")")}})}),x=(e,t)=>{let r;if(!i){try{r=localStorage.getItem(e)||void 0}catch(e){}return r||t}},p=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},v=e=>(e||(e=window.matchMedia(o)),e.matches?"dark":"light")}},function(e){e.O(0,[5116,7498,7115,3205,1744],function(){return e(e.s=9640)}),_N_E=e.O()}]);
|
package/dashboard/app/layout.tsx
CHANGED
|
@@ -3,6 +3,7 @@ import { Manrope, JetBrains_Mono } from 'next/font/google';
|
|
|
3
3
|
import { ThemeProvider } from 'next-themes';
|
|
4
4
|
import { DashboardLayout } from '@/components/DashboardLayout';
|
|
5
5
|
import { CommandPalette } from '@/components/CommandPalette';
|
|
6
|
+
import { version } from '../../package.json';
|
|
6
7
|
import './globals.css';
|
|
7
8
|
|
|
8
9
|
const manrope = Manrope({
|
|
@@ -32,7 +33,7 @@ export default function RootLayout({
|
|
|
32
33
|
<body className={`${manrope.variable} ${jetbrainsMono.variable} min-h-screen bg-surface-0 text-text-primary font-sans`}>
|
|
33
34
|
<ThemeProvider attribute="data-theme" defaultTheme="dark" enableSystem={false}>
|
|
34
35
|
<CommandPalette />
|
|
35
|
-
<DashboardLayout>{children}</DashboardLayout>
|
|
36
|
+
<DashboardLayout version={version}>{children}</DashboardLayout>
|
|
36
37
|
</ThemeProvider>
|
|
37
38
|
</body>
|
|
38
39
|
</html>
|
|
@@ -361,7 +361,13 @@ function ThemeToggle() {
|
|
|
361
361
|
}
|
|
362
362
|
|
|
363
363
|
/* ── Layout ── */
|
|
364
|
-
export function DashboardLayout({
|
|
364
|
+
export function DashboardLayout({
|
|
365
|
+
children,
|
|
366
|
+
version,
|
|
367
|
+
}: {
|
|
368
|
+
children: React.ReactNode;
|
|
369
|
+
version: string;
|
|
370
|
+
}) {
|
|
365
371
|
const pathname = usePathname();
|
|
366
372
|
const [sidebarOpen, setSidebarOpen] = useState(false);
|
|
367
373
|
|
|
@@ -401,7 +407,7 @@ export function DashboardLayout({ children }: { children: React.ReactNode }) {
|
|
|
401
407
|
<div className="px-5 pb-4 pt-6">
|
|
402
408
|
<div className="flex items-baseline gap-2">
|
|
403
409
|
<span className="text-title font-semibold text-text-primary">Hex</span>
|
|
404
|
-
<span className="text-caption text-text-tertiary">
|
|
410
|
+
<span className="text-caption text-text-tertiary">v{version}</span>
|
|
405
411
|
</div>
|
|
406
412
|
</div>
|
|
407
413
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../../src/commands/note.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsJpC,eAAO,MAAM,WAAW,SAOC,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { logger } from '../core/logger.js';
|
|
5
|
+
import { loadProjectContext } from '../core/config.js';
|
|
6
|
+
import { reportError } from '../core/errors.js';
|
|
7
|
+
import { readNote, writeNote, appendNote, readNotesIndex, setActiveContract, createSession, latestUnprocessedSession, markSessionProcessed, } from '../core/notes.js';
|
|
8
|
+
function resolveOutputDir(opts) {
|
|
9
|
+
return loadProjectContext(opts.project ?? process.cwd()).outputDir;
|
|
10
|
+
}
|
|
11
|
+
function readFileTrim(p) {
|
|
12
|
+
return fs.readFileSync(path.resolve(p), 'utf-8').trim();
|
|
13
|
+
}
|
|
14
|
+
const readCmd = new Command('read')
|
|
15
|
+
.description('Print a note doc (target: "general" or a contract name)')
|
|
16
|
+
.argument('<target>', '"general" or a contract name')
|
|
17
|
+
.option('--project <dir>', 'Project directory')
|
|
18
|
+
.action((target, opts) => {
|
|
19
|
+
try {
|
|
20
|
+
process.stdout.write(readNote(resolveOutputDir(opts), target));
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
reportError(err);
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
const writeCmd = new Command('write')
|
|
28
|
+
.description('Replace a note doc with the contents of a file')
|
|
29
|
+
.argument('<target>', '"general" or a contract name')
|
|
30
|
+
.requiredOption('--body-file <path>', 'Read the note body from this file')
|
|
31
|
+
.option('--project <dir>', 'Project directory')
|
|
32
|
+
.action((target, opts) => {
|
|
33
|
+
try {
|
|
34
|
+
writeNote(resolveOutputDir(opts), target, readFileTrim(opts.bodyFile));
|
|
35
|
+
logger.success(`Wrote note: ${target}`);
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
reportError(err);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
const appendCmd = new Command('append')
|
|
43
|
+
.description('Append a block to a note doc (Diane accretes notes this way)')
|
|
44
|
+
.argument('<target>', '"general" or a contract name')
|
|
45
|
+
.requiredOption('--body-file <path>', 'Read the block to append from this file')
|
|
46
|
+
.option('--project <dir>', 'Project directory')
|
|
47
|
+
.action((target, opts) => {
|
|
48
|
+
try {
|
|
49
|
+
appendNote(resolveOutputDir(opts), target, readFileTrim(opts.bodyFile));
|
|
50
|
+
logger.success(`Appended to note: ${target}`);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
reportError(err);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
const listCmd = new Command('list')
|
|
58
|
+
.description('Print the notes index (active contract, contracts, sessions) as JSON')
|
|
59
|
+
.option('--project <dir>', 'Project directory')
|
|
60
|
+
.action((opts) => {
|
|
61
|
+
try {
|
|
62
|
+
console.log(JSON.stringify(readNotesIndex(resolveOutputDir(opts)), null, 2));
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
reportError(err);
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
const activeCmd = new Command('active')
|
|
70
|
+
.description('Set the active contract (the one being narrated)')
|
|
71
|
+
.argument('<name>', 'Contract name')
|
|
72
|
+
.option('--project <dir>', 'Project directory')
|
|
73
|
+
.action((name, opts) => {
|
|
74
|
+
try {
|
|
75
|
+
setActiveContract(resolveOutputDir(opts), name);
|
|
76
|
+
logger.success(`Active contract → ${name}`);
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
reportError(err);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
// ─── session subcommands ────────────────────────────────────────────
|
|
84
|
+
const sessionLatestCmd = new Command('latest')
|
|
85
|
+
.description('Print the latest unprocessed narration session (with transcript) as JSON, for /diane')
|
|
86
|
+
.option('--project <dir>', 'Project directory')
|
|
87
|
+
.action((opts) => {
|
|
88
|
+
try {
|
|
89
|
+
const session = latestUnprocessedSession(resolveOutputDir(opts));
|
|
90
|
+
console.log(JSON.stringify(session, null, 2));
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
reportError(err);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
const sessionAddCmd = new Command('add')
|
|
98
|
+
.description('Register a session from an existing transcript file (no audio/whisper — useful for testing)')
|
|
99
|
+
.requiredOption('--transcript-file <path>', 'Transcript text file')
|
|
100
|
+
.requiredOption('--contract <name>', 'Contract this session covers')
|
|
101
|
+
.option('--ts <iso>', 'Timestamp (defaults to now)')
|
|
102
|
+
.option('--project <dir>', 'Project directory')
|
|
103
|
+
.action((opts) => {
|
|
104
|
+
try {
|
|
105
|
+
const ts = (opts.ts ?? new Date().toISOString()).replace(/[:.]/g, '-');
|
|
106
|
+
const session = createSession(resolveOutputDir(opts), {
|
|
107
|
+
ts,
|
|
108
|
+
contract: opts.contract,
|
|
109
|
+
transcript: readFileTrim(opts.transcriptFile),
|
|
110
|
+
});
|
|
111
|
+
logger.success(`Session added: ${session.file} (contract: ${session.contract})`);
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
reportError(err);
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
const sessionMarkCmd = new Command('mark-processed')
|
|
119
|
+
.description('Mark a session as ingested by Diane')
|
|
120
|
+
.argument('<file>', 'Session file (relative path from `hex note session latest`)')
|
|
121
|
+
.option('--project <dir>', 'Project directory')
|
|
122
|
+
.action((file, opts) => {
|
|
123
|
+
try {
|
|
124
|
+
markSessionProcessed(resolveOutputDir(opts), file);
|
|
125
|
+
logger.success(`Session marked processed: ${file}`);
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
reportError(err);
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
const sessionCmd = new Command('session')
|
|
133
|
+
.description('Manage narration sessions (latest / add / mark-processed)')
|
|
134
|
+
.addCommand(sessionLatestCmd)
|
|
135
|
+
.addCommand(sessionAddCmd)
|
|
136
|
+
.addCommand(sessionMarkCmd);
|
|
137
|
+
export const noteCommand = new Command('note')
|
|
138
|
+
.description('Read and write Diane audit notes (read / write / append / list / active / session)')
|
|
139
|
+
.addCommand(readCmd)
|
|
140
|
+
.addCommand(writeCmd)
|
|
141
|
+
.addCommand(appendCmd)
|
|
142
|
+
.addCommand(listCmd)
|
|
143
|
+
.addCommand(activeCmd)
|
|
144
|
+
.addCommand(sessionCmd);
|
|
145
|
+
//# sourceMappingURL=note.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note.js","sourceRoot":"","sources":["../../src/commands/note.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export interface SessionEntry {
|
|
2
|
+
/** Path relative to the notes dir, e.g. `sessions/2026-06-04T...md`. */
|
|
3
|
+
file: string;
|
|
4
|
+
/** Contract this session was recorded against (or `general`). */
|
|
5
|
+
contract: string;
|
|
6
|
+
/** ISO timestamp the session was created. */
|
|
7
|
+
ts: string;
|
|
8
|
+
/** Whether Diane has already ingested this transcript. */
|
|
9
|
+
processed: boolean;
|
|
10
|
+
/** Path (relative to notes dir) of the raw recording, if any. */
|
|
11
|
+
audio?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface NotesIndex {
|
|
14
|
+
/** Contract currently being narrated (drives the dashboard default). */
|
|
15
|
+
active_contract: string | null;
|
|
16
|
+
/** Contracts that have a note doc. */
|
|
17
|
+
contracts: string[];
|
|
18
|
+
/** Recorded narration sessions, newest last. */
|
|
19
|
+
sessions: SessionEntry[];
|
|
20
|
+
}
|
|
21
|
+
/** Resolve a note target (`general` or a contract name) to its `.md` path. */
|
|
22
|
+
export declare function notePath(outputDir: string, target: string): string;
|
|
23
|
+
export declare function readNotesIndex(outputDir: string): NotesIndex;
|
|
24
|
+
export declare function writeNotesIndex(outputDir: string, index: NotesIndex): void;
|
|
25
|
+
/** Read a note doc. Returns '' when it doesn't exist yet. */
|
|
26
|
+
export declare function readNote(outputDir: string, target: string): string;
|
|
27
|
+
/** Replace a note doc wholesale (used by the dashboard editor's Save). */
|
|
28
|
+
export declare function writeNote(outputDir: string, target: string, body: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Append a block to a note doc, separated by a blank line. This is how `/diane`
|
|
31
|
+
* accretes structured notes across narration sessions.
|
|
32
|
+
*/
|
|
33
|
+
export declare function appendNote(outputDir: string, target: string, body: string): void;
|
|
34
|
+
export declare function listContracts(outputDir: string): string[];
|
|
35
|
+
export declare function setActiveContract(outputDir: string, name: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* Register a freshly recorded narration session and make its contract active.
|
|
38
|
+
* `file` / `audio` are paths relative to the notes dir.
|
|
39
|
+
*/
|
|
40
|
+
export declare function addSession(outputDir: string, entry: {
|
|
41
|
+
file: string;
|
|
42
|
+
contract: string;
|
|
43
|
+
ts: string;
|
|
44
|
+
audio?: string;
|
|
45
|
+
}): SessionEntry;
|
|
46
|
+
/** The most recent session Diane hasn't ingested yet, with its transcript. */
|
|
47
|
+
export declare function latestUnprocessedSession(outputDir: string): (SessionEntry & {
|
|
48
|
+
text: string;
|
|
49
|
+
}) | null;
|
|
50
|
+
export declare function markSessionProcessed(outputDir: string, file: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* Write a transcript into `sessions/<ts>.md` and register it. Returns the
|
|
53
|
+
* session's relative file path. Used by the dashboard record route (after
|
|
54
|
+
* transcription) and by `hex note session add` (for testing without audio).
|
|
55
|
+
*/
|
|
56
|
+
export declare function createSession(outputDir: string, opts: {
|
|
57
|
+
ts: string;
|
|
58
|
+
contract: string;
|
|
59
|
+
transcript: string;
|
|
60
|
+
audio?: string;
|
|
61
|
+
}): SessionEntry;
|
|
62
|
+
//# sourceMappingURL=notes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../../src/core/notes.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,wEAAwE;IACxE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,sCAAsC;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gDAAgD;IAChD,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAeD,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGlE;AAsBD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAa5D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAK1E;AAUD,6DAA6D;AAC7D,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAK/E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIhF;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAKvE;AAID;;;GAGG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACpE,YAAY,CAcd;AAED,8EAA8E;AAC9E,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,GAChB,CAAC,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAU1C;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAM1E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACzE,YAAY,CAKd"}
|