hex-audit 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +137 -77
- package/DEMO.md +40 -117
- package/README.md +200 -402
- package/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/app-build-manifest.json +56 -101
- package/dashboard/.next/app-path-routes-manifest.json +1 -1
- package/dashboard/.next/build-manifest.json +9 -9
- package/dashboard/.next/next-server.js.nft.json +1 -1
- package/dashboard/.next/prerender-manifest.json +1 -1
- package/dashboard/.next/react-loadable-manifest.json +436 -15
- package/dashboard/.next/routes-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/api/code/route.js +1 -1
- package/dashboard/.next/server/app/api/code/route.js.nft.json +1 -1
- package/dashboard/.next/server/app/api/comments/route.js +1 -0
- package/dashboard/.next/server/app/api/comments/route.js.nft.json +1 -0
- package/dashboard/.next/server/app/api/diagrams/[name]/export/route.js +1 -0
- package/dashboard/.next/server/app/api/diagrams/[name]/export/route.js.nft.json +1 -0
- package/dashboard/.next/server/app/api/diagrams/[name]/resolve/route.js +1 -0
- package/dashboard/.next/server/app/api/diagrams/[name]/resolve/route.js.nft.json +1 -0
- package/dashboard/.next/server/app/api/diagrams/[name]/route.js +1 -0
- package/dashboard/.next/server/app/api/diagrams/[name]/route.js.nft.json +1 -0
- package/dashboard/.next/server/app/api/figures/[name]/route.js +1 -0
- package/dashboard/.next/server/app/api/figures/[name]/route.js.nft.json +1 -0
- package/dashboard/.next/server/app/api/focus/route.js +1 -0
- package/dashboard/.next/server/app/api/focus/route.js.nft.json +1 -0
- package/dashboard/.next/server/app/api/github-status/route.js +1 -1
- package/dashboard/.next/server/app/api/invariants/[id]/route.js +1 -0
- package/dashboard/.next/server/app/api/invariants/[id]/route.js.nft.json +1 -0
- package/dashboard/.next/server/app/api/issues/[id]/revert-auto/route.js +1 -0
- package/dashboard/.next/server/app/api/issues/[id]/revert-auto/route.js.nft.json +1 -0
- package/dashboard/.next/server/app/api/nav/route.js +1 -0
- package/dashboard/.next/server/app/api/nav/route.js.nft.json +1 -0
- package/dashboard/.next/server/app/api/notes/done/route.js +1 -1
- package/dashboard/.next/server/app/api/notes/done/route.js.nft.json +1 -1
- package/dashboard/.next/server/app/api/notes/lead/route.js +1 -1
- package/dashboard/.next/server/app/api/notes/lead/route.js.nft.json +1 -1
- package/dashboard/.next/server/app/api/notes/question/route.js +1 -1
- package/dashboard/.next/server/app/api/notes/question/route.js.nft.json +1 -1
- package/dashboard/.next/server/app/api/notes/record/route.js +3 -3
- package/dashboard/.next/server/app/api/notes/route.js +2 -2
- package/dashboard/.next/server/app/api/palette/route.js +1 -0
- package/dashboard/.next/server/app/api/palette/route.js.nft.json +1 -0
- package/dashboard/.next/server/app/api/progress/route.js +1 -1
- package/dashboard/.next/server/app/api/progress/route.js.nft.json +1 -1
- package/dashboard/.next/server/app/api/watch/route.js +2 -2
- package/dashboard/.next/server/app/api/watch/route.js.nft.json +1 -1
- package/dashboard/.next/server/app/api/xref/route.js +1 -0
- package/dashboard/.next/server/app/changes/page.js +1 -20
- package/dashboard/.next/server/app/changes/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/changes/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/excalidraw-assets/[...path]/route.js +1 -0
- package/dashboard/.next/server/app/issues/page.js +5 -28
- 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/model/page.js +1 -0
- package/dashboard/.next/server/app/{calls → model}/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/model/page_client-reference-manifest.js +1 -0
- package/dashboard/.next/server/app/page.js +1 -20
- 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/report/page.js +1 -1
- package/dashboard/.next/server/app/report/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/report/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/review/page.js +1 -0
- package/dashboard/.next/server/app/{access → review}/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/review/page_client-reference-manifest.js +1 -0
- package/dashboard/.next/server/app-paths-manifest.json +19 -16
- package/dashboard/.next/server/chunks/310.js +4 -0
- package/dashboard/.next/server/chunks/370.js +1 -0
- package/dashboard/.next/server/chunks/42.js +1 -1
- package/dashboard/.next/server/chunks/624.js +14 -0
- package/dashboard/.next/server/chunks/645.js +1 -1
- package/dashboard/.next/server/chunks/649.js +1 -1
- package/dashboard/.next/server/chunks/653.js +1 -0
- package/dashboard/.next/server/functions-config-manifest.json +1 -1
- package/dashboard/.next/server/middleware-build-manifest.js +1 -1
- package/dashboard/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/dashboard/.next/server/pages/500.html +1 -1
- package/dashboard/.next/server/pages/_error.js +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/0bbe10ee.8e7ffa06d2170dfe.js +84 -0
- package/dashboard/.next/static/chunks/1026.0ef689a305302427.js +1 -0
- package/dashboard/.next/static/chunks/1164.34eb76767ebea46f.js +8 -0
- package/dashboard/.next/static/chunks/119.a9a79633900a235f.js +5 -0
- package/dashboard/.next/static/chunks/1291.6c486c9b1d4b1b3a.js +1 -0
- package/dashboard/.next/static/chunks/139.4691848fc5a46253.js +10 -0
- package/dashboard/.next/static/chunks/145.1bf74fecdb4022e3.js +11 -0
- package/dashboard/.next/static/chunks/1517.8e7075f78e22b3a0.js +8 -0
- package/dashboard/.next/static/chunks/165.6f174060a0ce2db4.js +6 -0
- package/dashboard/.next/static/chunks/1741.5c370b7702d2eb40.js +8 -0
- package/dashboard/.next/static/chunks/1e36816c.5748c83adc8a6bd6.js +108 -0
- package/dashboard/.next/static/chunks/2061.eab75b3c1dfa068a.js +1 -0
- package/dashboard/.next/static/chunks/2148.3ce718f62d1b2f7c.js +10 -0
- package/dashboard/.next/static/chunks/217-1d5b680ffd10e3f9.js +1 -0
- package/dashboard/.next/static/chunks/2208.fb884379aa3ae968.js +1 -0
- package/dashboard/.next/static/chunks/2276.112c7855333fca5f.js +6 -0
- package/dashboard/.next/static/chunks/2374-8c6f137938f8518a.js +1 -0
- package/dashboard/.next/static/chunks/2445.18a86507d2996b95.js +1 -0
- package/dashboard/.next/static/chunks/2712.15dd8577973baf22.js +10 -0
- package/dashboard/.next/static/chunks/2759.533dec5317e0a1d1.js +1 -0
- package/dashboard/.next/static/chunks/2812.62b213bef580b69a.js +1 -0
- package/dashboard/.next/static/chunks/2895.bb57cacb7aaf42a1.js +9 -0
- package/dashboard/.next/static/chunks/2972.e5a9251b538dcf19.js +9 -0
- package/dashboard/.next/static/chunks/3206.8d9a10db2b04b93f.js +1 -0
- package/dashboard/.next/static/chunks/3485.36766504793b7237.js +9 -0
- package/dashboard/.next/static/chunks/3725.de9376dc994735d4.js +9 -0
- package/dashboard/.next/static/chunks/3774.1df377928e8387f7.js +9 -0
- package/dashboard/.next/static/chunks/3963.39d72b3875dfe2e9.js +13 -0
- package/dashboard/.next/static/chunks/4013.73884b23bfaebdde.js +11 -0
- package/dashboard/.next/static/chunks/4117.278aff1fa23fd36e.js +6 -0
- package/dashboard/.next/static/chunks/4210.cc8594110017c579.js +11 -0
- package/dashboard/.next/static/chunks/4282.28485875540886cc.js +7 -0
- package/dashboard/.next/static/chunks/4318.a2f469a88d88f6d0.js +8 -0
- package/dashboard/.next/static/chunks/4363.8999a6e727c48003.js +1 -0
- package/dashboard/.next/static/chunks/4641.e03d118fffebd580.js +5 -0
- package/dashboard/.next/static/chunks/483.a910dab7734a1074.js +8 -0
- package/dashboard/.next/static/chunks/4926.76693f542e9cc062.js +6 -0
- package/dashboard/.next/static/chunks/4938.03f6d04dabf38745.js +10 -0
- package/dashboard/.next/static/chunks/5112.0757c2b0c285e62e.js +1 -0
- package/dashboard/.next/static/chunks/5199.c83ea7efb0eec705.js +11 -0
- package/dashboard/.next/static/chunks/530.849957a8907eb288.js +1 -0
- package/dashboard/.next/static/chunks/5424.4e8ca0711a32bccf.js +7 -0
- package/dashboard/.next/static/chunks/55.a593a78be9714679.js +1 -0
- package/dashboard/.next/static/chunks/5535.6cd0bd8d368d8902.js +4 -0
- package/dashboard/.next/static/chunks/5626.7d4e93d7acbeffc9.js +10 -0
- package/dashboard/.next/static/chunks/5775.a0d7c1b1e89b9a93.js +9 -0
- package/dashboard/.next/static/chunks/6118.266956b3333b1d7a.js +9 -0
- package/dashboard/.next/static/chunks/6121.a2e6d93720b1205e.js +77 -0
- package/dashboard/.next/static/chunks/6853.d3ad43614e8ca0ab.js +1 -0
- package/dashboard/.next/static/chunks/6951.02a3a158d02158c9.js +5 -0
- package/dashboard/.next/static/chunks/6970.013f24568c87d918.js +11 -0
- package/dashboard/.next/static/chunks/7013.39d41e82b37be63b.js +9 -0
- package/dashboard/.next/static/chunks/7107.1c5412197912b8ed.js +8 -0
- package/dashboard/.next/static/chunks/7508.dd60e2d06d149f5f.js +9 -0
- package/dashboard/.next/static/chunks/7524.0fde4c61553d1491.js +3 -0
- package/dashboard/.next/static/chunks/7834-47f318a04a05688f.js +1 -0
- package/dashboard/.next/static/chunks/8317.d0b3eddef4cae0d5.js +1 -0
- package/dashboard/.next/static/chunks/838.2b2aa006519ba44c.js +10 -0
- package/dashboard/.next/static/chunks/8398.924fd8f4c83417c0.js +7 -0
- package/dashboard/.next/static/chunks/8428b36f.8ac4e67061c01307.js +34 -0
- package/dashboard/.next/static/chunks/8514.85ccbbea8ab21d04.js +5 -0
- package/dashboard/.next/static/chunks/8538.5f7ebe76c4b63162.js +1 -0
- package/dashboard/.next/static/chunks/8687.9406baa8b5601fd0.js +1 -0
- package/dashboard/.next/static/chunks/8721.47346e2cb6412376.js +10 -0
- package/dashboard/.next/static/chunks/8770.4f544bd1a6f03a62.js +8 -0
- package/dashboard/.next/static/chunks/8812.3d96fd54dba566f8.js +9 -0
- package/dashboard/.next/static/chunks/8962.d22aa67a97970dd8.js +1 -0
- package/dashboard/.next/static/chunks/8986.b327224b83f4399a.js +5 -0
- package/dashboard/.next/static/chunks/9271.5f66c19a8ee1ff36.js +10 -0
- package/dashboard/.next/static/chunks/9282.f8d01442bab4c0da.js +2 -0
- package/dashboard/.next/static/chunks/9366.0ec24a0791b9b00f.js +1 -0
- package/dashboard/.next/static/chunks/9707.5cd7d2ee933a4af5.js +6 -0
- package/dashboard/.next/static/chunks/9716.15fffc0b0038601d.js +4 -0
- package/dashboard/.next/static/chunks/9791.e3b3f5a367f63c8a.js +1 -0
- package/dashboard/.next/static/chunks/9820.8c1efad5260e8137.js +1 -0
- package/dashboard/.next/static/chunks/985.50150e9eaa4bde33.js +39 -0
- package/dashboard/.next/static/chunks/997.56901b86e1b8a87b.js +8 -0
- package/dashboard/.next/static/chunks/app/changes/page-f8a860034221cad4.js +1 -0
- package/dashboard/.next/static/chunks/app/issues/page-da4da93188c414a6.js +1 -0
- package/dashboard/.next/static/chunks/app/layout-27a9da4610423c1e.js +1 -0
- package/dashboard/.next/static/chunks/app/model/page-9680e22fdd6ddb81.js +1 -0
- package/dashboard/.next/static/chunks/app/page-0e67750d99fb2836.js +1 -0
- package/dashboard/.next/static/chunks/app/report/page-b56b1db9b9dcf2b6.js +1 -0
- package/dashboard/.next/static/chunks/app/review/page-3ef69f0e0badd333.js +1 -0
- package/dashboard/.next/static/chunks/c75e29e3.d91220f782934d80.js +1 -0
- package/dashboard/.next/static/chunks/{main-cc3a889b25e9aa68.js → main-9c95a7ffedc7afb4.js} +1 -1
- package/dashboard/.next/static/chunks/webpack-6da70e4f9fcf1799.js +1 -0
- package/dashboard/.next/static/css/ceafd91ca8dd753d.css +3 -0
- package/dashboard/.next/static/css/e4aad1f9c715b79a.css +1 -0
- package/dashboard/.next/static/media/Assistant-Bold.c8f39f24.woff2 +0 -0
- package/dashboard/.next/static/media/Assistant-Medium.1e75d8e6.woff2 +0 -0
- package/dashboard/.next/static/media/Assistant-Regular.7acbabb8.woff2 +0 -0
- package/dashboard/.next/static/media/Assistant-SemiBold.167acbf8.woff2 +0 -0
- package/dashboard/app/api/code/route.ts +26 -20
- package/dashboard/app/api/comments/route.ts +158 -0
- package/dashboard/app/api/diagrams/[name]/export/route.ts +26 -0
- package/dashboard/app/api/diagrams/[name]/resolve/route.ts +25 -0
- package/dashboard/app/api/diagrams/[name]/route.ts +37 -0
- package/dashboard/app/api/figures/[name]/route.ts +15 -0
- package/dashboard/app/api/focus/route.ts +35 -0
- package/dashboard/app/api/invariants/[id]/route.ts +35 -0
- package/dashboard/app/api/issues/[id]/revert-auto/route.ts +18 -0
- package/dashboard/app/api/nav/route.ts +120 -0
- package/dashboard/app/api/palette/route.ts +68 -0
- package/dashboard/app/api/progress/route.ts +54 -23
- package/dashboard/app/api/xref/route.ts +30 -0
- package/dashboard/app/changes/ChangesClient.tsx +730 -356
- package/dashboard/app/changes/page.tsx +27 -19
- package/dashboard/app/excalidraw-assets/[...path]/route.ts +56 -0
- package/dashboard/app/globals.css +231 -77
- package/dashboard/app/issues/BoardClient.tsx +817 -0
- package/dashboard/app/issues/page.tsx +27 -272
- package/dashboard/app/layout.tsx +32 -17
- package/dashboard/app/model/ModelClient.tsx +1303 -0
- package/dashboard/app/model/page.tsx +98 -0
- package/dashboard/app/page.tsx +191 -277
- package/dashboard/app/report/ReportClient.tsx +147 -74
- package/dashboard/app/report/page.tsx +25 -14
- package/dashboard/app/review/ReviewClient.tsx +1180 -0
- package/dashboard/app/review/page.tsx +93 -0
- package/dashboard/components/AutoRefresh.tsx +22 -19
- package/dashboard/components/CodeComments.tsx +303 -0
- package/dashboard/components/CodeNav.tsx +523 -0
- package/dashboard/components/CodeReference.tsx +92 -99
- package/dashboard/components/CodeViewer.tsx +526 -0
- package/dashboard/components/CommandPalette.tsx +141 -66
- package/dashboard/components/DiagramCanvas.tsx +275 -0
- package/dashboard/components/DianeNote.tsx +244 -0
- package/dashboard/components/LiveStatus.tsx +30 -68
- package/dashboard/components/MarkdownRenderer.tsx +34 -32
- package/dashboard/components/RecordButton.tsx +132 -0
- package/dashboard/components/ui/Button.tsx +39 -0
- package/dashboard/components/ui/Chip.tsx +37 -0
- package/dashboard/components/ui/EmptyState.tsx +31 -0
- package/dashboard/components/ui/Icons.tsx +126 -0
- package/dashboard/components/ui/Inspector.tsx +122 -0
- package/dashboard/components/ui/Kbd.tsx +15 -0
- package/dashboard/components/ui/ListRow.tsx +92 -0
- package/dashboard/components/ui/LocalTime.tsx +14 -0
- package/dashboard/components/ui/ProgressRing.tsx +54 -0
- package/dashboard/components/ui/ResizeHandle.tsx +93 -0
- package/dashboard/components/ui/RiskMeter.tsx +27 -0
- package/dashboard/components/ui/SearchField.tsx +55 -0
- package/dashboard/components/ui/SegmentedControl.tsx +71 -0
- package/dashboard/components/ui/SeverityDot.tsx +57 -0
- package/dashboard/components/ui/Sidebar.tsx +236 -0
- package/dashboard/components/ui/SplitView.tsx +122 -0
- package/dashboard/components/ui/StateGlyph.tsx +66 -0
- package/dashboard/components/ui/Toast.tsx +91 -0
- package/dashboard/lib/api.ts +17 -0
- package/dashboard/lib/cn.ts +4 -0
- package/dashboard/lib/data.ts +2 -21
- package/dashboard/lib/finding-markdown.ts +1 -1
- package/dashboard/lib/focus.ts +42 -0
- package/dashboard/lib/hotkeys.ts +41 -0
- package/dashboard/lib/inline-markdown.test.ts +11 -0
- package/dashboard/lib/live.ts +32 -0
- package/dashboard/lib/pane-width.ts +36 -0
- package/dashboard/lib/server/board.ts +229 -0
- package/dashboard/lib/server/diagrams.ts +191 -0
- package/dashboard/lib/server/safe-path.ts +28 -0
- package/dashboard/lib/server/workspace.ts +113 -0
- package/dashboard/lib/server/xref.ts +42 -0
- package/dashboard/lib/solidity.test.ts +37 -0
- package/dashboard/lib/solidity.ts +191 -0
- package/dashboard/lib/source.ts +28 -0
- package/dashboard/lib/types.ts +164 -0
- package/dashboard/lib/url.ts +18 -0
- package/dashboard/lib/watcher.ts +31 -22
- package/dashboard/tailwind.config.ts +6 -3
- package/dist/analysis/code-model.d.ts.map +1 -1
- package/dist/analysis/code-model.js +4 -1
- package/dist/analysis/code-model.js.map +1 -1
- package/dist/analysis/diff.d.ts +12 -1
- package/dist/analysis/diff.d.ts.map +1 -1
- package/dist/analysis/diff.js +143 -0
- package/dist/analysis/diff.js.map +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +17 -48
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/claude.d.ts.map +1 -1
- package/dist/commands/claude.js +5 -0
- package/dist/commands/claude.js.map +1 -1
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +10 -2
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/diagram.d.ts +3 -0
- package/dist/commands/diagram.d.ts.map +1 -0
- package/dist/commands/diagram.js +71 -0
- package/dist/commands/diagram.js.map +1 -0
- package/dist/commands/diff.d.ts +4 -5
- package/dist/commands/diff.d.ts.map +1 -1
- package/dist/commands/diff.js +56 -17
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +5 -18
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/facts.d.ts +23 -0
- package/dist/commands/facts.d.ts.map +1 -0
- package/dist/commands/facts.js +121 -0
- package/dist/commands/facts.js.map +1 -0
- package/dist/commands/fix-review.d.ts +9 -0
- package/dist/commands/fix-review.d.ts.map +1 -0
- package/dist/commands/fix-review.js +367 -0
- package/dist/commands/fix-review.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +51 -47
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/issue.d.ts.map +1 -1
- package/dist/commands/issue.js +151 -2
- package/dist/commands/issue.js.map +1 -1
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +11 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/model.d.ts +4 -0
- package/dist/commands/model.d.ts.map +1 -0
- package/dist/commands/model.js +275 -0
- package/dist/commands/model.js.map +1 -0
- package/dist/commands/note.d.ts.map +1 -1
- package/dist/commands/note.js +31 -1
- package/dist/commands/note.js.map +1 -1
- package/dist/commands/review.d.ts +4 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +164 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/core/comments.d.ts +59 -0
- package/dist/core/comments.d.ts.map +1 -0
- package/dist/core/comments.js +263 -0
- package/dist/core/comments.js.map +1 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +0 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/dedup.d.ts +56 -0
- package/dist/core/dedup.d.ts.map +1 -0
- package/dist/core/dedup.js +208 -0
- package/dist/core/dedup.js.map +1 -0
- package/dist/core/errors.d.ts +1 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +0 -15
- package/dist/core/errors.js.map +1 -1
- package/dist/core/external-tools.d.ts +0 -14
- package/dist/core/external-tools.d.ts.map +1 -1
- package/dist/core/external-tools.js +2 -52
- package/dist/core/external-tools.js.map +1 -1
- package/dist/core/fix-review.d.ts +54 -0
- package/dist/core/fix-review.d.ts.map +1 -0
- package/dist/core/fix-review.js +98 -0
- package/dist/core/fix-review.js.map +1 -0
- package/dist/core/fuzz-sync.d.ts +93 -0
- package/dist/core/fuzz-sync.d.ts.map +1 -0
- package/dist/core/fuzz-sync.js +516 -0
- package/dist/core/fuzz-sync.js.map +1 -0
- package/dist/core/git.d.ts +7 -0
- package/dist/core/git.d.ts.map +1 -1
- package/dist/core/git.js +42 -0
- package/dist/core/git.js.map +1 -1
- package/dist/core/issues.d.ts +32 -1
- package/dist/core/issues.d.ts.map +1 -1
- package/dist/core/issues.js +135 -3
- package/dist/core/issues.js.map +1 -1
- package/dist/core/mcp-config.d.ts +12 -0
- package/dist/core/mcp-config.d.ts.map +1 -0
- package/dist/core/mcp-config.js +29 -0
- package/dist/core/mcp-config.js.map +1 -0
- package/dist/core/model.d.ts +38 -0
- package/dist/core/model.d.ts.map +1 -0
- package/dist/core/model.js +160 -0
- package/dist/core/model.js.map +1 -0
- package/dist/core/notes.d.ts +2 -0
- package/dist/core/notes.d.ts.map +1 -1
- package/dist/core/notes.js +13 -3
- package/dist/core/notes.js.map +1 -1
- package/dist/core/review.d.ts +47 -0
- package/dist/core/review.d.ts.map +1 -1
- package/dist/core/review.js +177 -1
- package/dist/core/review.js.map +1 -1
- package/dist/core/rules.d.ts +12 -0
- package/dist/core/rules.d.ts.map +1 -0
- package/dist/core/rules.js +66 -0
- package/dist/core/rules.js.map +1 -0
- package/dist/core/schema.d.ts +4817 -2245
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +452 -113
- package/dist/core/schema.js.map +1 -1
- package/dist/core/scope.d.ts +8 -0
- package/dist/core/scope.d.ts.map +1 -0
- package/dist/core/scope.js +18 -0
- package/dist/core/scope.js.map +1 -0
- package/dist/diagrams/build.d.ts +18 -0
- package/dist/diagrams/build.d.ts.map +1 -0
- package/dist/diagrams/build.js +135 -0
- package/dist/diagrams/build.js.map +1 -0
- package/dist/diagrams/excalidraw.d.ts +27 -0
- package/dist/diagrams/excalidraw.d.ts.map +1 -0
- package/dist/diagrams/excalidraw.js +219 -0
- package/dist/diagrams/excalidraw.js.map +1 -0
- package/dist/diagrams/layout.d.ts +48 -0
- package/dist/diagrams/layout.d.ts.map +1 -0
- package/dist/diagrams/layout.js +686 -0
- package/dist/diagrams/layout.js.map +1 -0
- package/dist/facts/build.d.ts +23 -0
- package/dist/facts/build.d.ts.map +1 -0
- package/dist/facts/build.js +112 -0
- package/dist/facts/build.js.map +1 -0
- package/dist/facts/extract.d.ts +53 -0
- package/dist/facts/extract.d.ts.map +1 -0
- package/dist/facts/extract.js +635 -0
- package/dist/facts/extract.js.map +1 -0
- package/dist/facts/fallback.d.ts +7 -0
- package/dist/facts/fallback.d.ts.map +1 -0
- package/dist/facts/fallback.js +156 -0
- package/dist/facts/fallback.js.map +1 -0
- package/dist/facts/implementations.d.ts +29 -0
- package/dist/facts/implementations.d.ts.map +1 -0
- package/dist/facts/implementations.js +43 -0
- package/dist/facts/implementations.js.map +1 -0
- package/dist/facts/query.d.ts +35 -0
- package/dist/facts/query.d.ts.map +1 -0
- package/dist/facts/query.js +157 -0
- package/dist/facts/query.js.map +1 -0
- package/dist/facts/xref.d.ts +53 -0
- package/dist/facts/xref.d.ts.map +1 -0
- package/dist/facts/xref.js +282 -0
- package/dist/facts/xref.js.map +1 -0
- package/dist/index.js +14 -16
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +3 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +400 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/skills/ai-audit/SKILL.md +16 -6
- package/dist/skills/ai-audit/UPSTREAM.md +9 -4
- package/dist/skills/ai-audit/references/hex-board.md +34 -46
- package/dist/skills/diane.md +26 -12
- package/dist/skills/fix-review.md +58 -0
- package/dist/skills/fuzz/LICENSE +21 -0
- package/dist/skills/fuzz/SKILL.md +655 -0
- package/dist/skills/fuzz/UPSTREAM.md +119 -0
- package/dist/skills/fuzz/agents/implementers/global-property-implementer.md +81 -0
- package/dist/skills/fuzz/agents/implementers/specific-property-implementer.md +121 -0
- package/dist/skills/fuzz/agents/invariant-discovery/adversarial-profit-maximizer.md +123 -0
- package/dist/skills/fuzz/agents/invariant-discovery/conservation-auditor.md +92 -0
- package/dist/skills/fuzz/agents/invariant-discovery/protocol-type-specialist.md +173 -0
- package/dist/skills/fuzz/agents/invariant-discovery/roundtrip-rounding-analyst.md +164 -0
- package/dist/skills/fuzz/agents/invariant-discovery/state-transition-mapper.md +92 -0
- package/dist/skills/fuzz/agents/invariant-discovery/synthesizer.md +261 -0
- package/dist/skills/fuzz/agents/protocol-analyzer.md +80 -0
- package/dist/skills/fuzz/agents/report-writer.md +135 -0
- package/dist/skills/fuzz/references/handler-patterns.md +222 -0
- package/dist/skills/fuzz/references/hex-invariants.md +102 -0
- package/dist/skills/fuzz/references/property-generation.md +149 -0
- package/dist/skills/fuzz/references/selection-policy.md +49 -0
- package/dist/skills/fuzz/references/setup-playbook.md +92 -0
- package/dist/skills/fuzz/references/template-map.md +121 -0
- package/dist/skills/fuzz/scripts/ensure_foundry.sh +125 -0
- package/dist/skills/fuzz/scripts/estimate_cost.js +157 -0
- package/dist/skills/fuzz/scripts/extract_abis.js +303 -0
- package/dist/skills/fuzz/scripts/fizz_sync.js +692 -0
- package/dist/skills/fuzz/scripts/generate_handlers.js +370 -0
- package/dist/skills/fuzz/scripts/generate_suite.js +254 -0
- package/dist/skills/fuzz/scripts/lib/log-viewer.js +332 -0
- package/dist/skills/fuzz/scripts/run_echidna.js +192 -0
- package/dist/skills/fuzz/scripts/run_medusa.js +329 -0
- package/dist/skills/fuzz/scripts/select_functions.js +637 -0
- package/dist/skills/fuzz/scripts/setup_fuzz_profile.sh +142 -0
- package/dist/skills/fuzz/templates/Actor.sol +63 -0
- package/dist/skills/fuzz/templates/Base.sol +121 -0
- package/dist/skills/fuzz/templates/FoundryTester.sol +29 -0
- package/dist/skills/fuzz/templates/FuzzTester.sol +11 -0
- package/dist/skills/fuzz/templates/Properties.sol +17 -0
- package/dist/skills/fuzz/templates/README.md +56 -0
- package/dist/skills/fuzz/templates/Snapshots.sol +26 -0
- package/dist/skills/fuzz/templates/echidna.yaml +18 -0
- package/dist/skills/fuzz/templates/handlers/Handlers.sol +13 -0
- package/dist/skills/fuzz/templates/medusa.json +93 -0
- package/dist/skills/fuzz/templates/utils/Clamp.sol +223 -0
- package/dist/skills/fuzz/templates/utils/DecimalPrinter.sol +63 -0
- package/dist/skills/fuzz/templates/utils/Deployer.sol +17 -0
- package/dist/skills/fuzz/templates/utils/EnumerableSet.sol +206 -0
- package/dist/skills/fuzz/templates/utils/Hevm.sol +62 -0
- package/dist/skills/fuzz/templates/utils/Logger.sol +619 -0
- package/dist/skills/fuzz/templates/utils/Math.sol +52 -0
- package/dist/skills/fuzz/templates/utils/MockERC20.sol +279 -0
- package/dist/skills/fuzz/templates/utils/PropertiesAsserts.sol +238 -0
- package/dist/skills/fuzz/templates/utils/StringUtils.sol +85 -0
- package/dist/skills/fuzz-convert/SKILL.md +249 -0
- package/dist/skills/fuzz-sync/SKILL.md +342 -0
- package/dist/skills/generate-poc.md +8 -26
- package/dist/skills/generate-report.md +17 -5
- package/dist/skills/ingest-aa-report.md +11 -30
- package/dist/skills/init-audit/SKILL.md +155 -0
- package/dist/skills/init-audit/references/agents/conformance-checker.md +36 -0
- package/dist/skills/init-audit/references/agents/contract-reader.md +59 -0
- package/dist/skills/init-audit/references/agents/diagram-composer.md +48 -0
- package/dist/skills/init-audit/references/agents/docs-extractor.md +26 -0
- package/dist/skills/init-audit/references/agents/prior-audit.md +32 -0
- package/dist/skills/init-audit/references/agents/regression-checker.md +28 -0
- package/dist/skills/init-audit/references/agents/skeptic.md +31 -0
- package/dist/skills/init-audit/references/agents/standards-checker.md +39 -0
- package/dist/skills/init-audit/references/agents/synthesizer.md +50 -0
- package/dist/skills/prevalidate.md +62 -0
- package/dist/skills/sync-issues.md +11 -25
- package/dist/skills/validate-all-findings.md +2 -2
- package/dist/skills/validate-finding.md +25 -24
- package/dist/skills/write-finding.md +6 -5
- package/dist/types/index.d.ts +16 -12
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +5 -4
- package/dashboard/.next/server/app/access/page.js +0 -1
- package/dashboard/.next/server/app/access/page_client-reference-manifest.js +0 -1
- package/dashboard/.next/server/app/api/flows/route.js +0 -1
- package/dashboard/.next/server/app/api/mermaid/route.js +0 -1
- package/dashboard/.next/server/app/calls/page.js +0 -1
- package/dashboard/.next/server/app/calls/page_client-reference-manifest.js +0 -1
- package/dashboard/.next/server/app/conformance/page.js +0 -1
- package/dashboard/.next/server/app/conformance/page.js.nft.json +0 -1
- package/dashboard/.next/server/app/conformance/page_client-reference-manifest.js +0 -1
- package/dashboard/.next/server/app/diagram/page.js +0 -1
- package/dashboard/.next/server/app/diagram/page.js.nft.json +0 -1
- package/dashboard/.next/server/app/diagram/page_client-reference-manifest.js +0 -1
- package/dashboard/.next/server/app/flows/page.js +0 -1
- package/dashboard/.next/server/app/flows/page.js.nft.json +0 -1
- package/dashboard/.next/server/app/flows/page_client-reference-manifest.js +0 -1
- package/dashboard/.next/server/app/functions/page.js +0 -1
- package/dashboard/.next/server/app/functions/page.js.nft.json +0 -1
- package/dashboard/.next/server/app/functions/page_client-reference-manifest.js +0 -1
- package/dashboard/.next/server/app/notes/page.js +0 -22
- package/dashboard/.next/server/app/notes/page.js.nft.json +0 -1
- package/dashboard/.next/server/app/notes/page_client-reference-manifest.js +0 -1
- package/dashboard/.next/server/app/progress/page.js +0 -1
- package/dashboard/.next/server/app/progress/page.js.nft.json +0 -1
- package/dashboard/.next/server/app/progress/page_client-reference-manifest.js +0 -1
- package/dashboard/.next/server/app/stats/page.js +0 -1
- package/dashboard/.next/server/app/stats/page.js.nft.json +0 -1
- package/dashboard/.next/server/app/stats/page_client-reference-manifest.js +0 -1
- package/dashboard/.next/server/chunks/530.js +0 -1
- package/dashboard/.next/server/chunks/622.js +0 -3
- package/dashboard/.next/server/chunks/665.js +0 -13
- package/dashboard/.next/server/chunks/939.js +0 -1
- package/dashboard/.next/static/chunks/3017.4a5312e3c20a173f.js +0 -1
- package/dashboard/.next/static/chunks/7397-37adf76cad543297.js +0 -1
- package/dashboard/.next/static/chunks/7973.e34032723285a616.js +0 -79
- package/dashboard/.next/static/chunks/8452-6d77fa353402422c.js +0 -13
- package/dashboard/.next/static/chunks/8928-fc049decdfbdaa6d.js +0 -1
- package/dashboard/.next/static/chunks/app/access/page-f8403cbdfc1c176b.js +0 -1
- package/dashboard/.next/static/chunks/app/calls/page-41f20d01e12382ef.js +0 -1
- package/dashboard/.next/static/chunks/app/changes/page-82bf8b6f48cdc506.js +0 -1
- package/dashboard/.next/static/chunks/app/conformance/page-6bb8e3b372e38098.js +0 -1
- package/dashboard/.next/static/chunks/app/diagram/page-469cd7a6f183efba.js +0 -1
- package/dashboard/.next/static/chunks/app/flows/page-7872dd9141ba0b07.js +0 -1
- package/dashboard/.next/static/chunks/app/functions/page-5847bcb77a8e7edf.js +0 -1
- package/dashboard/.next/static/chunks/app/issues/page-1ffc64fe40439002.js +0 -1
- package/dashboard/.next/static/chunks/app/layout-6c6d2a0fd7c989d3.js +0 -1
- package/dashboard/.next/static/chunks/app/notes/page-8bcaa52304500098.js +0 -1
- package/dashboard/.next/static/chunks/app/page-d63800ddb072b77b.js +0 -1
- package/dashboard/.next/static/chunks/app/progress/page-e26554f655a62eef.js +0 -1
- package/dashboard/.next/static/chunks/app/report/page-18c04fb2f193b020.js +0 -1
- package/dashboard/.next/static/chunks/app/stats/page-67ff59fd69bed651.js +0 -1
- package/dashboard/.next/static/chunks/webpack-4de0e79bdd6a0418.js +0 -1
- package/dashboard/.next/static/css/1112cea2260b3926.css +0 -3
- package/dashboard/app/access/AccessClient.tsx +0 -402
- package/dashboard/app/access/ReadOnlyFunctions.tsx +0 -114
- package/dashboard/app/access/page.tsx +0 -125
- package/dashboard/app/api/flows/route.ts +0 -32
- package/dashboard/app/api/mermaid/route.ts +0 -25
- package/dashboard/app/calls/CallsClient.tsx +0 -170
- package/dashboard/app/calls/page.tsx +0 -57
- package/dashboard/app/conformance/ConformanceTable.tsx +0 -214
- package/dashboard/app/conformance/page.tsx +0 -186
- package/dashboard/app/diagram/page.tsx +0 -65
- package/dashboard/app/flows/page.tsx +0 -102
- package/dashboard/app/functions/FunctionsClient.tsx +0 -167
- package/dashboard/app/functions/page.tsx +0 -178
- package/dashboard/app/issues/IssuesBoardClient.tsx +0 -813
- package/dashboard/app/notes/NotesClient.tsx +0 -706
- package/dashboard/app/notes/page.tsx +0 -47
- package/dashboard/app/progress/ProgressClient.tsx +0 -354
- package/dashboard/app/progress/page.tsx +0 -127
- package/dashboard/app/stats/StatsClient.tsx +0 -452
- package/dashboard/app/stats/page.tsx +0 -50
- package/dashboard/components/ConfidenceBadge.tsx +0 -53
- package/dashboard/components/DashboardLayout.tsx +0 -510
- package/dashboard/components/FilterableTable.tsx +0 -293
- package/dashboard/components/MermaidViewer.tsx +0 -267
- package/dashboard/components/NotYetGenerated.tsx +0 -32
- package/dashboard/components/SeverityBadge.tsx +0 -28
- package/dashboard/components/SignalBars.tsx +0 -27
- package/dashboard/components/SortableTable.tsx +0 -122
- package/dashboard/lib/conformance-tokens.ts +0 -49
- package/dist/skills/init-audit.md +0 -386
- /package/dashboard/.next/server/app/api/{flows → xref}/route.js.nft.json +0 -0
- /package/dashboard/.next/server/app/{api/mermaid → excalidraw-assets/[...path]}/route.js.nft.json +0 -0
- /package/dashboard/.next/static/{z5XBev05xDAkDrxWxAjNu → bGV1ry1vvIbM5b506eVBR}/_buildManifest.js +0 -0
- /package/dashboard/.next/static/{z5XBev05xDAkDrxWxAjNu → bGV1ry1vvIbM5b506eVBR}/_ssgManifest.js +0 -0
- /package/dashboard/.next/static/chunks/{3205-47d09be47325709f.js → 3205-fd963acf2fdfd080.js} +0 -0
- /package/dashboard/.next/static/chunks/{3924-88d849290406ee6f.js → 3924-f1f85ccc7d59d7ab.js} +0 -0
- /package/dashboard/.next/static/chunks/{618f8807-69fc7bb97c2b87c1.js → 618f8807-fbb1466bc29c17c6.js} +0 -0
- /package/dashboard/.next/static/chunks/{7498-d1814d68ba346d13.js → 7498-7cf464d8af69cd0a.js} +0 -0
- /package/dashboard/.next/static/chunks/app/_not-found/{page-c299b935209993df.js → page-5ff5d54b6fd6f17e.js} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";(()=>{var t={};t.id=175,t.ids=[175],t.modules={399:t=>{t.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:t=>{t.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:t=>{t.exports=require("node:fs")},9411:t=>{t.exports=require("node:path")},3904:(t,e,n)=>{n.r(e),n.d(e,{originalPathname:()=>
|
|
1
|
+
"use strict";(()=>{var t={};t.id=175,t.ids=[175],t.modules={399:t=>{t.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:t=>{t.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:t=>{t.exports=require("node:fs")},9411:t=>{t.exports=require("node:path")},3904:(t,e,n)=>{n.r(e),n.d(e,{originalPathname:()=>g,patchFetch:()=>h,requestAsyncStorage:()=>p,routeModule:()=>f,serverHooks:()=>m,staticGenerationAsyncStorage:()=>y});var r={};n.r(r),n.d(r,{PUT:()=>d,dynamic:()=>l});var o=n(3277),s=n(5265),i=n(5356),a=n(7076),c=n(1720),u=n(5568);let l="force-dynamic";async function d(t){let{target:e,body:n}=await t.json();if("string"!=typeof e||"string"!=typeof n)return a.NextResponse.json({error:"target and body must be strings"},{status:400});try{return(0,u.BW)((0,c.ZN)(),e,n),a.NextResponse.json({ok:!0,target:e})}catch(t){return a.NextResponse.json({error:t instanceof Error?t.message:String(t)},{status:400})}}let f=new o.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/notes/route",pathname:"/api/notes",filename:"route",bundlePath:"app/api/notes/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/notes/route.ts",nextConfigOutput:"",userland:r}),{requestAsyncStorage:p,staticGenerationAsyncStorage:y,serverHooks:m}=f,g="/api/notes/route";function h(){return(0,i.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:y})}},1720:(t,e,n)=>{n.d(e,{ZN:()=>f,J1:()=>p,gn:()=>l,ws:()=>d,V9:()=>y});var r=n(7561),o=n.n(r),s=n(9411),i=n.n(s);let a=[".hex",".solaudit","solaudit-output"];function c(t){return t.replace(/\\/g,"/")}function u(){try{let t=function(t=process.cwd()){let e=i().resolve(t);for(;;){let t=function(t){for(let e of[...a.map(e=>i().join(t,e,"config.json")),i().join(t,"config.json")])if(o().existsSync(e))return c(e);return null}(e);if(t)return c(i().dirname(t));let n=i().dirname(e);if(n===e)return null;e=n}}(process.cwd());if(t)return t}catch{}return i().join(process.cwd(),".hex")}function l(t){try{let e=i().join(u(),t),n=o().readFileSync(e,"utf-8");return JSON.parse(n)}catch{return null}}function d(t){try{let e=i().join(u(),t);return o().readFileSync(e,"utf-8")}catch{return null}}function f(){return u()}function p(t){try{let e=i().join(u(),t);if(!o().existsSync(e))return[];return o().readdirSync(e,{withFileTypes:!0}).filter(t=>t.isDirectory()).map(t=>t.name)}catch{return[]}}function y(t){try{let e=i().join(u(),t),n=o().readFileSync(e,"utf-8");return JSON.parse(n)}catch{return null}}},5568:(t,e,n)=>{n.d(e,{BW:()=>m,Tl:()=>$,U6:()=>N,dh:()=>_,ed:()=>g,mQ:()=>q,pV:()=>w,sC:()=>f,wL:()=>v,yQ:()=>k});var r=n(7561),o=n.n(r),s=n(9411),i=n.n(s);let a={active_contract:null,contracts:[],sessions:[]};function c(t){return i().join(t,"notes")}function u(t){return t.replace(/[/\\:*?"<>|]/g,"_").trim()}function l(t){try{return o().readFileSync(t,"utf-8")}catch{return null}}function d(t,e){let n=i().dirname(t);o().existsSync(n)||o().mkdirSync(n,{recursive:!0});let r=t+".tmp";o().writeFileSync(r,e,"utf-8"),o().renameSync(r,t)}function f(t){let e=l(i().join(c(t),"notes.json"));if(!e)return{...a};try{let t=JSON.parse(e);return{active_contract:t.active_contract??null,contracts:Array.isArray(t.contracts)?t.contracts:[],sessions:Array.isArray(t.sessions)?t.sessions:[]}}catch{return{...a}}}function p(t,e){d(i().join(c(t),"notes.json"),JSON.stringify(e,null,2)+"\n")}function y(t,e){"general"===e||t.contracts.includes(e)||t.contracts.push(e)}function m(t,e,n){d("general"===e?i().join(c(t),"general.md"):i().join(c(t),"contracts",u(e)+".md"),n.endsWith("\n")?n:n+"\n");let r=f(t);y(r,e),p(t,r)}function g(t,e){let n=i().join("sessions",`${e.ts}.md`),r=`# Narration — ${e.contract} — ${e.ts}
|
|
2
2
|
|
|
3
|
-
`;return
|
|
3
|
+
`;return d(i().join(c(t),n),r+e.transcript.trim()+"\n"),function(t,e){let n=f(t),r={file:e.file,contract:e.contract,ts:e.ts,processed:!1,...e.audio?{audio:e.audio}:{}};return n.sessions.push(r),n.active_contract=e.contract,y(n,e.contract),p(t,n),r}(t,{file:n,contract:e.contract,ts:e.ts,audio:e.audio})}function h(t,e){return i().join(c(t),"contracts",u(e)+".json")}function j(t){return{contract:t,marked_done:!1,description:{purpose:[],inheritance:[],storage:[],roles:[],functions:[]},questions:[],leads:[],updated_at:new Date().toISOString()}}function S(t){return Array.isArray(t)?t:[]}function w(t,e){let n=l(h(t,e));if(!n)return j(e);try{let t=JSON.parse(n),r=t.description??{};return{contract:t.contract??e,file:t.file,marked_done:!!t.marked_done,description:{purpose:S(r.purpose),inheritance:S(r.inheritance),storage:S(r.storage),roles:S(r.roles),functions:S(r.functions).map(t=>{var e;return{id:t.id??((((e=t.sig??"").split("(")[0]??e).trim()||e).replace(/[^\w]+/g,"_")||"fn"),...t.fn_ref?{fn_ref:t.fn_ref}:{},sig:t.sig??"",purpose:t.purpose,access:t.access,effects:t.effects,notes:S(t.notes),warnings:S(t.warnings)}})},questions:S(t.questions),leads:S(t.leads),updated_at:t.updated_at??new Date().toISOString()}}catch{return j(e)}}function x(t,e,n){let r={...n,contract:e,updated_at:new Date().toISOString()};d(h(t,e),JSON.stringify(r,null,2)+"\n");let o=f(t);y(o,e),p(t,o)}function v(t,e,n){let r=w(t,e);return r.marked_done=n,x(t,e,r),r}function _(t,e){let n=e.replace(/\.sol$/i,""),r=f(t).contracts;return r.includes(e)?e:r.includes(n)?n:r.includes(`${n}.sol`)?`${n}.sol`:n}function N(t,e,n,r,o){let s=w(t,e),i=s.leads.find(t=>t.id===n);if(!i)throw Error(`No lead ${n} on ${e}`);return i.status=r,o&&(i.ref=o),x(t,e,s),s}function q(t,e,n){let r=w(t,e),o=r.leads.find(t=>t.id===n);if(!o)throw Error(`No lead ${n} on ${e}`);return o.status="open",delete o.ref,x(t,e,r),r}function $(t,e,n,r){let o=w(t,e),s=o.questions.find(t=>t.id===n);if(!s)throw Error(`No question ${n} on ${e}`);return s.answer=r,x(t,e,o),o}function k(t){let e=t.leads.filter(t=>"open"===t.status).length,n=t.questions.filter(t=>!t.answer||!t.answer.trim()).length;return{openLeads:e,unansweredQuestions:n,reviewed:t.marked_done&&0===e&&0===n}}}};var e=require("../../../webpack-runtime.js");e.C(t);var n=t=>e(e.s=t),r=e.X(0,[916,786],()=>n(3904));module.exports=r})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=427,e.ids=[427],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},4285:(e,t,n)=>{n.r(t),n.d(t,{originalPathname:()=>y,patchFetch:()=>v,requestAsyncStorage:()=>h,routeModule:()=>m,serverHooks:()=>_,staticGenerationAsyncStorage:()=>g});var i={};n.r(i),n.d(i,{GET:()=>p,dynamic:()=>f});var r=n(3277),o=n(5265),a=n(5356),s=n(7076),c=n(9222),u=n(5719),l=n(6905),d=n(8594);let f="force-dynamic";async function p(){let e=[],t=(0,l.Ge)();if(t){let n=new Set(t.contracts.filter(e=>"interface"===e.kind).map(e=>e.name));for(let n of t.contracts)n.in_scope&&"interface"!==n.kind&&e.push({kind:"contract",label:n.name,detail:n.file,href:`/review?contract=${encodeURIComponent(n.name)}`});for(let i of t.functions)!i.in_scope||n.has(i.contract)||i.nsloc<=0||e.push({kind:"function",label:`${i.contract}.${i.name}`,detail:i.signature,href:`/review?fn=${encodeURIComponent(i.id)}`})}for(let t of(0,c.b4)())e.push({kind:"card",label:t.title,detail:`${t.id} \xb7 ${t.severity}`,href:`/issues?card=${encodeURIComponent(t.id)}`});for(let t of(0,d.ri)((0,l.WV)()).invariants)e.push({kind:"invariant",label:t.statement,detail:t.id,href:`/model?s=invariants&id=${encodeURIComponent(t.id)}`});for(let t of(0,u.FK)())e.push({kind:"diagram",label:t.title,detail:"Diagram",href:`/model?d=${encodeURIComponent(t.name)}`});return s.NextResponse.json({entries:e})}let m=new r.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/palette/route",pathname:"/api/palette",filename:"route",bundlePath:"app/api/palette/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/palette/route.ts",nextConfigOutput:"",userland:i}),{requestAsyncStorage:h,staticGenerationAsyncStorage:g,serverHooks:_}=m,y="/api/palette/route";function v(){return(0,a.patchFetch)({serverHooks:_,staticGenerationAsyncStorage:g})}},9222:(e,t,n)=>{n.d(t,{b4:()=>s,lW:()=>c});var i=n(1720),r=n(3478),o=n(6905);function a(e,t){return"verified"!==e&&"synced"!==e?"none":t?.issue_number?t.sync_status&&"in_sync"!==t.sync_status?"conflict":"closed"===t.state?"synced_closed":"synced_open":"unsynced"}function s(){let e=(0,i.gn)("findings.json")??{findings:[]},t=(0,i.gn)("tracking.json")??{findings:[]},n=(0,i.gn)("comparison.json")??{},s=(0,i.gn)("spec-conformance.json")??{},c=(0,o.Ge)(),u=(0,o.G2)(),l=new Map(e.findings.map(e=>[e.id,e])),d=new Map((s.items??[]).map(e=>[e.id,e])),f=new Map;for(let e of["ai-results","external"])for(let t of(0,i.J1)(e)){let n=(0,i.V9)(`${e}/${t}/findings.json`);for(let e of n?.findings??[])f.set(e.id,e)}let p=new Map((n.duplicates??[]).map(e=>[e.ai_finding,e])),m=(e,t,n,i)=>{if(!c)return[];try{return(0,r.VK)(c,{id:e,title:t,description:n,root_cause:{locations:i}},u)}catch{return[]}},h=[],g=new Set;for(let e of t.findings){let t=l.get(e.id),n=f.get(e.id),i=d.get(e.id),r=t?.description??n?.description??i?.finding??"",o=t?.root_cause?.locations?.map(e=>({file:e.file,snippet:e.snippet}))??n?.affected_code?.map(e=>({file:e.file,snippet:e.snippet}))??(i?.code_location?.file?[{file:i.code_location.file}]:[]),s=p.get(e.id),c=e.title||t?.title||n?.title||i?.spec_text||e.id;g.add(e.id),h.push({id:e.id,title:c,severity:e.severity,source:e.source??"manual",status:e.status??"pending_validation",column:function(e){switch(e){case"verified":return"verified";case"synced":return"synced";case"rejected":return"invalid";case"duplicate":return"duplicate";default:return"potential"}}(e.status),description:r,recommendation:t?.recommendation??"",resolution:t?.resolution,update_from_client:t?.update_from_client,code_locations:o,github_issue_url:t?.github?.issue_url,github_issue_number:t?.github?.issue_number,github_state:t?.github?.state,sync_state:a(e.status,t?.github),duplicate_of:e.duplicate_of??s?.matches??null,match_signals:s?.match_signals?{contract:!!s.match_signals.contract,function:!!s.match_signals.function,root_cause:String(s.match_signals.root_cause??""),attack_vector:String(s.match_signals.attack_vector??"")}:void 0,reasoning:s?.reasoning,category:t?.category||n?.category,poc_status:e.poc_status??t?.poc?.status,poc_file:e.poc_file??t?.poc?.file??null,notes:e.notes??"",source_ref:e.source_ref??t?.source_ref??null,validation:e.validation??t?.validation,functions:m(e.id,c,r,o)})}for(let t of e.findings){if(g.has(t.id))continue;let e=t.root_cause?.locations??[];h.push({id:t.id,title:t.title,severity:t.severity,source:"manual",status:"verified",column:"verified",description:t.description??"",recommendation:t.recommendation??"",resolution:t.resolution,update_from_client:t.update_from_client,code_locations:e,github_issue_url:t.github?.issue_url,github_issue_number:t.github?.issue_number,github_state:t.github?.state,sync_state:a("verified",t.github),duplicate_of:null,category:t.category,poc_status:t.poc?.status,poc_file:t.poc?.file??null,notes:"",source_ref:t.source_ref??null,validation:t.validation,functions:m(t.id,t.title,t.description??"",e)})}return h}function c(e=s()){let t={};for(let n of e)t[n.id]={id:n.id,title:n.title,severity:n.severity,column:n.column};return t}},5719:(e,t,n)=>{n.d(t,{FK:()=>m,HE:()=>w,Ik:()=>C,Kl:()=>j,Vb:()=>O,ZD:()=>b,g1:()=>v,hd:()=>$,kb:()=>u,qu:()=>S,sv:()=>k,xt:()=>x});var i=n(7561),r=n.n(i),o=n(9411),a=n.n(o),s=n(6905);let c=/^[a-z0-9][a-z0-9-]*$/;function u(e){return c.test(e)}function l(){return a().join((0,s.WV)(),"model","diagrams")}function d(){return a().join((0,s.WV)(),"report","figures")}function f(e,t){r().mkdirSync(a().dirname(e),{recursive:!0});let n=e+".tmp";r().writeFileSync(n,JSON.stringify(t,null,2)+"\n","utf-8"),r().renameSync(n,e)}function p(e){try{return JSON.parse(r().readFileSync(e,"utf-8"))}catch{return null}}function m(){return p(a().join(l(),"index.json"))??[]}function h(e,t){let n=m(),i=n.find(t=>t.name===e);return i?(Object.assign(i,t),f(a().join(l(),"index.json"),n),i):null}let g=e=>a().join(l(),`${e}.excalidraw`),_=e=>a().join(l(),`${e}.regenerated.excalidraw`),y=e=>a().join(d(),`${e}.png`);function v(e){try{return Math.floor(r().statSync(g(e)).mtimeMs)}catch{return 0}}function S(e){try{return Math.floor(r().statSync(y(e)).mtimeMs)}catch{return 0}}function x(e){return p(g(e))}function b(e,t){let n=x(e),i=m().find(t=>t.name===e),r=t.appState??n?.appState??{},o={type:"excalidraw",version:2,source:n?.source??"hex",elements:t.elements,appState:{viewBackgroundColor:r.viewBackgroundColor??"#ffffff",gridSize:r.gridSize??null},files:t.files??n?.files??{},hex:{name:e,type:n?.hex?.type??i?.type??"custom",spec_hash:n?.hex?.spec_hash??i?.spec_hash??"",edited:!0}};return f(g(e),o),h(e,{edited:!0}),{mtime:v(e)}}function j(e){let t=p(_(e));if(!t)throw Error(`No regenerated layout for ${e}`);f(g(e),{...t,hex:{...t.hex??{name:e,type:"custom"},edited:!1}}),r().rmSync(_(e),{force:!0}),h(e,{edited:!1,stale:!1,...t.hex?.spec_hash?{spec_hash:t.hex.spec_hash}:{}})}function w(e){let t=p(_(e)),n=x(e),i=t?.hex?.spec_hash??n?.hex?.spec_hash??"";n&&f(g(e),{...n,hex:{...n.hex??{name:e,type:"custom"},spec_hash:i,edited:!0}}),r().rmSync(_(e),{force:!0}),h(e,{stale:!1,edited:!0,...i?{spec_hash:i}:{}})}function k(e,t){r().mkdirSync(d(),{recursive:!0});let n=y(e)+".tmp";r().writeFileSync(n,t),r().renameSync(n,y(e)),h(e,{in_report:!0})}function $(e){r().rmSync(y(e),{force:!0}),h(e,{in_report:!1})}function O(e){try{return r().readFileSync(y(e))}catch{return null}}function C(){try{return r().readdirSync(d()).filter(e=>e.endsWith(".png")).map(e=>e.replace(/\.png$/,"")).filter(u).sort()}catch{return[]}}},6905:(e,t,n)=>{n.d(t,{Aw:()=>g,G2:()=>f,Ge:()=>h,QR:()=>v,Rd:()=>S,TS:()=>y,WV:()=>d,cA:()=>m,eT:()=>_,zi:()=>p});var i=n(7561),r=n.n(i),o=n(9411),a=n.n(o),s=n(1720),c=n(1310),u=n(6700),l=n(5568);function d(){return(0,s.ZN)()}function f(){return a().dirname(d())}function p(){return(0,s.gn)("config.json")}function m(){return p()?.project?.mode==="diff"}function h(){return(0,u.Je)(d())}function g(e=10){return(0,c.hC)(d(),{blindSpots:e})}function _(e){let t=d(),n=(0,l.dh)(t,e),i=(0,l.pV)(t,n);return{target:n,contract:e,marked_done:i.marked_done,purpose:i.description.purpose,functions:i.description.functions.map(e=>({id:e.id,sig:e.sig,fn_ref:e.fn_ref,purpose:e.purpose,access:e.access,effects:e.effects,notes:e.notes,warnings:e.warnings})),questions:i.questions,leads:i.leads}}function y(){return(0,l.sC)(d()).sessions.filter(e=>!e.processed).length}function v(){try{return r().readFileSync(a().join(d(),"notes","general.md"),"utf-8")}catch{return""}}function S(){let e=a().join(d(),"fix-review"),t=null;try{for(let n of r().readdirSync(e))if(n.endsWith(".json"))try{let i=JSON.parse(r().readFileSync(a().join(e,n),"utf-8"));(!t||Date.parse(i.generated_at)>Date.parse(t.generated_at))&&(t=i)}catch{}}catch{return null}return t}},8594:(e,t,n)=>{n.d(t,{bv:()=>f,ri:()=>d,wl:()=>u});var i=n(7561),r=n.n(i),o=n(9411),a=n.n(o);function s(e){return a().join(e,"model")}function c(e){try{return JSON.parse(r().readFileSync(e,"utf-8"))}catch{return null}}function u(e){return c(a().join(s(e),"protocol.json"))}let l=e=>a().join(s(e),"invariants.json");function d(e){return c(l(e))??{updated_at:new Date(0).toISOString(),invariants:[]}}function f(e,t,n,i){return function(e,t,n){let i=d(e),o=i.invariants.find(e=>e.id===t);if(!o)throw Error(`No invariant ${t} in .hex/model/invariants.json`);return n(o),function(e,t){r().mkdirSync(a().dirname(e),{recursive:!0});let n=e+".tmp";r().writeFileSync(n,JSON.stringify(t,null,2)+"\n","utf-8"),r().renameSync(n,e)}(l(e),{...i,updated_at:new Date().toISOString()}),o}(e,t,e=>{e.status=n,i&&(e.rationale=i)})}},6700:(e,t,n)=>{n.d(t,{DO:()=>l,Je:()=>s,V7:()=>u,fY:()=>d});var i=n(7561),r=n.n(i),o=n(9411),a=n.n(o);function s(e){try{return JSON.parse(r().readFileSync(a().join(e,"facts.json"),"utf-8"))}catch{return null}}function c(e,t){return e.state_vars.some(e=>e.id===t)?[t]:e.state_vars.filter(e=>e.name===t).map(e=>e.id)}function u(e,t){let n=new Set(c(e,t));return e.functions.filter(e=>e.reads.some(e=>n.has(e))).map(e=>e.id)}function l(e,t){let n=new Set(c(e,t));return e.functions.filter(e=>e.writes.some(e=>n.has(e))).map(e=>e.id)}function d(e,t){let n=new Map(e.functions.map(e=>[e.id,e])),i=[];for(let r of function(e,t){let n=e.functions.filter(e=>e.id===t);if(n.length)return n;let i=t.indexOf("."),r=t.indexOf("(");if(i>0&&(-1===r||i<r)){let n=t.slice(0,i),r=t.slice(i+1),o=r.includes("(")?null:r;return e.functions.filter(e=>e.contract===n&&(o?e.name===o:e.signature===r))}let o=r>0?t.slice(0,r):t;return e.functions.filter(e=>e.name===o||e.signature===t)}(e,t))for(let e of r.called_by){let t=n.get(e.from)?.file??"";for(let n of e.at?.length?e.at:[void 0])i.push({from:e.from,kind:e.kind,file:t,...n?{line:n}:{}})}return i.sort((e,t)=>e.file.localeCompare(t.file)||(e.line??0)-(t.line??0)||e.from.localeCompare(t.from))}}};var t=require("../../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),i=t.X(0,[916,786,42,310],()=>n(4285));module.exports=i})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../package.json","../../../chunks/310.js","../../../chunks/42.js","../../../chunks/786.js","../../../chunks/916.js","../../../webpack-runtime.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=873,e.ids=[873],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},4628:(e,t,
|
|
1
|
+
"use strict";(()=>{var e={};e.id=873,e.ids=[873],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},4628:(e,t,n)=>{n.r(t),n.d(t,{originalPathname:()=>y,patchFetch:()=>v,requestAsyncStorage:()=>m,routeModule:()=>p,serverHooks:()=>h,staticGenerationAsyncStorage:()=>g});var r={};n.r(r),n.d(r,{GET:()=>f,POST:()=>l,dynamic:()=>d});var o=n(3277),s=n(5265),i=n(5356),a=n(7076),u=n(6905),c=n(1310);let d="force-dynamic";async function f(){return a.NextResponse.json((0,c.hC)((0,u.WV)(),{blindSpots:10}))}async function l(e){let t=await e.json().catch(()=>({})),n=(0,u.WV)();if(Array.isArray(t.ids)){let e=t.ids.filter(e=>"string"==typeof e);if(!e.length||"string"!=typeof t.state||!c.cE.includes(t.state))return a.NextResponse.json({error:"ids must be non-empty and state one of unread|read|questioned|cleared"},{status:400});let r="string"==typeof t.note&&t.note.trim()?t.note.trim():void 0;(0,c.Ht)(n,e,t.state,"dashboard",r);let o=(0,c.hC)(n);return a.NextResponse.json({ok:!0,pct:o.pct,counts:o.counts,cleared_nsloc:o.cleared_nsloc,total_nsloc:o.total_nsloc})}if(t.reviewed_contracts&&"object"==typeof t.reviewed_contracts){let e=(0,c.Pp)(n);for(let[n,r]of Object.entries(t.reviewed_contracts))e.reviewed_contracts[n]=!!r;return(0,c.LV)(n,e),a.NextResponse.json({ok:!0})}return a.NextResponse.json({error:"Invalid payload"},{status:400})}let p=new o.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/progress/route",pathname:"/api/progress",filename:"route",bundlePath:"app/api/progress/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/progress/route.ts",nextConfigOutput:"",userland:r}),{requestAsyncStorage:m,staticGenerationAsyncStorage:g,serverHooks:h}=p,y="/api/progress/route";function v(){return(0,i.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:g})}},6905:(e,t,n)=>{n.d(t,{Aw:()=>h,G2:()=>l,Ge:()=>g,QR:()=>x,Rd:()=>j,TS:()=>v,WV:()=>f,cA:()=>m,eT:()=>y,zi:()=>p});var r=n(7561),o=n.n(r),s=n(9411),i=n.n(s),a=n(1720),u=n(1310),c=n(6700),d=n(5568);function f(){return(0,a.ZN)()}function l(){return i().dirname(f())}function p(){return(0,a.gn)("config.json")}function m(){return p()?.project?.mode==="diff"}function g(){return(0,c.Je)(f())}function h(e=10){return(0,u.hC)(f(),{blindSpots:e})}function y(e){let t=f(),n=(0,d.dh)(t,e),r=(0,d.pV)(t,n);return{target:n,contract:e,marked_done:r.marked_done,purpose:r.description.purpose,functions:r.description.functions.map(e=>({id:e.id,sig:e.sig,fn_ref:e.fn_ref,purpose:e.purpose,access:e.access,effects:e.effects,notes:e.notes,warnings:e.warnings})),questions:r.questions,leads:r.leads}}function v(){return(0,d.sC)(f()).sessions.filter(e=>!e.processed).length}function x(){try{return o().readFileSync(i().join(f(),"notes","general.md"),"utf-8")}catch{return""}}function j(){let e=i().join(f(),"fix-review"),t=null;try{for(let n of o().readdirSync(e))if(n.endsWith(".json"))try{let r=JSON.parse(o().readFileSync(i().join(e,n),"utf-8"));(!t||Date.parse(r.generated_at)>Date.parse(t.generated_at))&&(t=r)}catch{}}catch{return null}return t}},6700:(e,t,n)=>{n.d(t,{DO:()=>d,Je:()=>a,V7:()=>c,fY:()=>f});var r=n(7561),o=n.n(r),s=n(9411),i=n.n(s);function a(e){try{return JSON.parse(o().readFileSync(i().join(e,"facts.json"),"utf-8"))}catch{return null}}function u(e,t){return e.state_vars.some(e=>e.id===t)?[t]:e.state_vars.filter(e=>e.name===t).map(e=>e.id)}function c(e,t){let n=new Set(u(e,t));return e.functions.filter(e=>e.reads.some(e=>n.has(e))).map(e=>e.id)}function d(e,t){let n=new Set(u(e,t));return e.functions.filter(e=>e.writes.some(e=>n.has(e))).map(e=>e.id)}function f(e,t){let n=new Map(e.functions.map(e=>[e.id,e])),r=[];for(let o of function(e,t){let n=e.functions.filter(e=>e.id===t);if(n.length)return n;let r=t.indexOf("."),o=t.indexOf("(");if(r>0&&(-1===o||r<o)){let n=t.slice(0,r),o=t.slice(r+1),s=o.includes("(")?null:o;return e.functions.filter(e=>e.contract===n&&(s?e.name===s:e.signature===o))}let s=o>0?t.slice(0,o):t;return e.functions.filter(e=>e.name===s||e.signature===t)}(e,t))for(let e of o.called_by){let t=n.get(e.from)?.file??"";for(let n of e.at?.length?e.at:[void 0])r.push({from:e.from,kind:e.kind,file:t,...n?{line:n}:{}})}return r.sort((e,t)=>e.file.localeCompare(t.file)||(e.line??0)-(t.line??0)||e.from.localeCompare(t.from))}}};var t=require("../../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[916,786,42,310],()=>n(4628));module.exports=r})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../package.json","../../../chunks/786.js","../../../chunks/916.js","../../../webpack-runtime.js"]}
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../package.json","../../../chunks/310.js","../../../chunks/42.js","../../../chunks/786.js","../../../chunks/916.js","../../../webpack-runtime.js"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=799,e.ids=[799],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},9237:(e,t,n)=>{n.r(t),n.d(t,{originalPathname:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=799,e.ids=[799],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},9237:(e,t,n)=>{n.r(t),n.d(t,{originalPathname:()=>w,patchFetch:()=>j,requestAsyncStorage:()=>y,routeModule:()=>x,serverHooks:()=>g,staticGenerationAsyncStorage:()=>v});var r={};n.r(r),n.d(r,{GET:()=>m,dynamic:()=>f});var o=n(3277),a=n(5265),i=n(5356);let u=require("chokidar");var c=n.n(u),s=n(9411),l=n.n(s);let d=null,p=new Set;var h=n(1720);let f="force-dynamic";async function m(){let e,t;!function(e){if(d)return;d=c().watch([l().join(e,"**/*.{json,md,mmd,txt,tex,excalidraw}"),l().join(e,"ai-audit/**/*.tsv"),l().join(e,"report/figures/*.png")],{ignoreInitial:!0,ignored:e=>/[\\/]\.cache([\\/]|$)|[\\/]node_modules([\\/]|$)|[\\/]notes[\\/]audio([\\/]|$)/.test(e),awaitWriteFinish:{stabilityThreshold:250,pollInterval:100}});let t=t=>{let n=l().relative(e,t).replace(/\\/g,"/");if(!("focus.json"===n||n.endsWith(".tmp")||n.startsWith(".cache/")||n.startsWith("notes/audio/")||n.split("/").some(e=>"node_modules"===e)))for(let e of p)e(n)};d.on("change",t),d.on("add",t),d.on("unlink",t)}((0,h.ZN)());let n=new TextEncoder;return new Response(new ReadableStream({start(r){var o;r.enqueue(n.encode(": connected\n\n")),o=e=>{try{r.enqueue(n.encode(`data: ${JSON.stringify({file:e})}
|
|
2
2
|
|
|
3
|
-
`))}catch{}},p.add(
|
|
3
|
+
`))}catch{}},p.add(o),e=()=>p.delete(o),t=setInterval(()=>{try{r.enqueue(n.encode(": ping\n\n"))}catch{}},3e4)},cancel(){t&&clearInterval(t),e&&e()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive"}})}let x=new o.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/watch/route",pathname:"/api/watch",filename:"route",bundlePath:"app/api/watch/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/watch/route.ts",nextConfigOutput:"",userland:r}),{requestAsyncStorage:y,staticGenerationAsyncStorage:v,serverHooks:g}=x,w="/api/watch/route";function j(){return(0,i.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:v})}},1720:(e,t,n)=>{n.d(t,{ZN:()=>p,J1:()=>h,gn:()=>l,ws:()=>d,V9:()=>f});var r=n(7561),o=n.n(r),a=n(9411),i=n.n(a);let u=[".hex",".solaudit","solaudit-output"];function c(e){return e.replace(/\\/g,"/")}function s(){try{let e=function(e=process.cwd()){let t=i().resolve(e);for(;;){let e=function(e){for(let t of[...u.map(t=>i().join(e,t,"config.json")),i().join(e,"config.json")])if(o().existsSync(t))return c(t);return null}(t);if(e)return c(i().dirname(e));let n=i().dirname(t);if(n===t)return null;t=n}}(process.cwd());if(e)return e}catch{}return i().join(process.cwd(),".hex")}function l(e){try{let t=i().join(s(),e),n=o().readFileSync(t,"utf-8");return JSON.parse(n)}catch{return null}}function d(e){try{let t=i().join(s(),e);return o().readFileSync(t,"utf-8")}catch{return null}}function p(){return s()}function h(e){try{let t=i().join(s(),e);if(!o().existsSync(t))return[];return o().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function f(e){try{let t=i().join(s(),e),n=o().readFileSync(t,"utf-8");return JSON.parse(n)}catch{return null}}},3277:(e,t,n)=>{e.exports=n(517)}};var t=require("../../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[916],()=>n(9237));module.exports=r})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/anymatch/index.js","../../../../../../node_modules/anymatch/package.json","../../../../../../node_modules/binary-extensions/binary-extensions.json","../../../../../../node_modules/binary-extensions/index.js","../../../../../../node_modules/binary-extensions/package.json","../../../../../../node_modules/braces/index.js","../../../../../../node_modules/braces/lib/compile.js","../../../../../../node_modules/braces/lib/constants.js","../../../../../../node_modules/braces/lib/expand.js","../../../../../../node_modules/braces/lib/parse.js","../../../../../../node_modules/braces/lib/stringify.js","../../../../../../node_modules/braces/lib/utils.js","../../../../../../node_modules/braces/package.json","../../../../../../node_modules/chokidar/index.js","../../../../../../node_modules/chokidar/lib/constants.js","../../../../../../node_modules/chokidar/lib/fsevents-handler.js","../../../../../../node_modules/chokidar/lib/nodefs-handler.js","../../../../../../node_modules/chokidar/package.json","../../../../../../node_modules/fill-range/index.js","../../../../../../node_modules/fill-range/package.json","../../../../../../node_modules/glob-parent/index.js","../../../../../../node_modules/glob-parent/package.json","../../../../../../node_modules/is-binary-path/index.js","../../../../../../node_modules/is-binary-path/package.json","../../../../../../node_modules/is-extglob/index.js","../../../../../../node_modules/is-extglob/package.json","../../../../../../node_modules/is-glob/index.js","../../../../../../node_modules/is-glob/package.json","../../../../../../node_modules/is-number/index.js","../../../../../../node_modules/is-number/package.json","../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/normalize-path/index.js","../../../../../../node_modules/normalize-path/package.json","../../../../../../node_modules/picomatch/index.js","../../../../../../node_modules/picomatch/lib/constants.js","../../../../../../node_modules/picomatch/lib/parse.js","../../../../../../node_modules/picomatch/lib/picomatch.js","../../../../../../node_modules/picomatch/lib/scan.js","../../../../../../node_modules/picomatch/lib/utils.js","../../../../../../node_modules/picomatch/package.json","../../../../../../node_modules/readdirp/index.js","../../../../../../node_modules/readdirp/package.json","../../../../../../node_modules/to-regex-range/index.js","../../../../../../node_modules/to-regex-range/package.json","../../../../../../package.json","../../../../package.json","../../../chunks/916.js","../../../webpack-runtime.js"]}
|
|
1
|
+
{"version":1,"files":["../../../../../../CLAUDE.md","../../../../../../DEMO.md","../../../../../../dist/skills/ai-audit/SKILL.md","../../../../../../dist/skills/ai-audit/UPSTREAM.md","../../../../../../dist/skills/ai-audit/references/agent-prompts.md","../../../../../../dist/skills/ai-audit/references/dedup-and-assembly.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/access-control-agent.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/asymmetry-agent.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/boundary-agent.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/economic-security-agent.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/execution-trace-agent.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/first-principles-agent.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/flow-gap-agent.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/invariant-agent.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/math-precision-agent.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/numerical-gap-agent.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/periphery-agent.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/shared-rules.md","../../../../../../dist/skills/ai-audit/references/hacking-agents/trust-gap-agent.md","../../../../../../dist/skills/ai-audit/references/hex-board.md","../../../../../../dist/skills/ai-audit/references/judging.md","../../../../../../dist/skills/ai-audit/references/report-formatting.md","../../../../../../dist/skills/ai-audit/references/report-language.md","../../../../../../dist/skills/ai-audit/references/senior-auditor-sop.md","../../../../../../dist/skills/diane.md","../../../../../../dist/skills/fix-review.md","../../../../../../dist/skills/fuzz-convert/SKILL.md","../../../../../../dist/skills/fuzz-sync/SKILL.md","../../../../../../dist/skills/fuzz/SKILL.md","../../../../../../dist/skills/fuzz/UPSTREAM.md","../../../../../../dist/skills/fuzz/agents/implementers/global-property-implementer.md","../../../../../../dist/skills/fuzz/agents/implementers/specific-property-implementer.md","../../../../../../dist/skills/fuzz/agents/invariant-discovery/adversarial-profit-maximizer.md","../../../../../../dist/skills/fuzz/agents/invariant-discovery/conservation-auditor.md","../../../../../../dist/skills/fuzz/agents/invariant-discovery/protocol-type-specialist.md","../../../../../../dist/skills/fuzz/agents/invariant-discovery/roundtrip-rounding-analyst.md","../../../../../../dist/skills/fuzz/agents/invariant-discovery/state-transition-mapper.md","../../../../../../dist/skills/fuzz/agents/invariant-discovery/synthesizer.md","../../../../../../dist/skills/fuzz/agents/protocol-analyzer.md","../../../../../../dist/skills/fuzz/agents/report-writer.md","../../../../../../dist/skills/fuzz/references/handler-patterns.md","../../../../../../dist/skills/fuzz/references/hex-invariants.md","../../../../../../dist/skills/fuzz/references/property-generation.md","../../../../../../dist/skills/fuzz/references/selection-policy.md","../../../../../../dist/skills/fuzz/references/setup-playbook.md","../../../../../../dist/skills/fuzz/references/template-map.md","../../../../../../dist/skills/fuzz/templates/medusa.json","../../../../../../dist/skills/generate-poc.md","../../../../../../dist/skills/generate-report.md","../../../../../../dist/skills/ingest-aa-report.md","../../../../../../dist/skills/init-audit/SKILL.md","../../../../../../dist/skills/init-audit/references/agents/conformance-checker.md","../../../../../../dist/skills/init-audit/references/agents/contract-reader.md","../../../../../../dist/skills/init-audit/references/agents/diagram-composer.md","../../../../../../dist/skills/init-audit/references/agents/docs-extractor.md","../../../../../../dist/skills/init-audit/references/agents/prior-audit.md","../../../../../../dist/skills/init-audit/references/agents/regression-checker.md","../../../../../../dist/skills/init-audit/references/agents/skeptic.md","../../../../../../dist/skills/init-audit/references/agents/standards-checker.md","../../../../../../dist/skills/init-audit/references/agents/synthesizer.md","../../../../../../dist/skills/prevalidate.md","../../../../../../dist/skills/sync-issues.md","../../../../../../dist/skills/validate-all-findings.md","../../../../../../dist/skills/validate-finding.md","../../../../../../dist/skills/write-finding.md","../../../../../../mock_project/.claude/skills/.hex-skills.json","../../../../../../mock_project/.claude/skills/ai-audit/SKILL.md","../../../../../../mock_project/.claude/skills/ai-audit/UPSTREAM.md","../../../../../../mock_project/.claude/skills/ai-audit/references/agent-prompts.md","../../../../../../mock_project/.claude/skills/ai-audit/references/dedup-and-assembly.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/access-control-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/asymmetry-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/boundary-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/economic-security-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/execution-trace-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/first-principles-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/flow-gap-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/invariant-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/math-precision-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/numerical-gap-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/periphery-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/shared-rules.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hacking-agents/trust-gap-agent.md","../../../../../../mock_project/.claude/skills/ai-audit/references/hex-board.md","../../../../../../mock_project/.claude/skills/ai-audit/references/judging.md","../../../../../../mock_project/.claude/skills/ai-audit/references/report-formatting.md","../../../../../../mock_project/.claude/skills/ai-audit/references/report-language.md","../../../../../../mock_project/.claude/skills/ai-audit/references/senior-auditor-sop.md","../../../../../../mock_project/.claude/skills/diane/SKILL.md","../../../../../../mock_project/.claude/skills/fix-review/SKILL.md","../../../../../../mock_project/.claude/skills/fuzz-convert/SKILL.md","../../../../../../mock_project/.claude/skills/fuzz-sync/SKILL.md","../../../../../../mock_project/.claude/skills/fuzz/SKILL.md","../../../../../../mock_project/.claude/skills/fuzz/UPSTREAM.md","../../../../../../mock_project/.claude/skills/fuzz/agents/implementers/global-property-implementer.md","../../../../../../mock_project/.claude/skills/fuzz/agents/implementers/specific-property-implementer.md","../../../../../../mock_project/.claude/skills/fuzz/agents/invariant-discovery/adversarial-profit-maximizer.md","../../../../../../mock_project/.claude/skills/fuzz/agents/invariant-discovery/conservation-auditor.md","../../../../../../mock_project/.claude/skills/fuzz/agents/invariant-discovery/protocol-type-specialist.md","../../../../../../mock_project/.claude/skills/fuzz/agents/invariant-discovery/roundtrip-rounding-analyst.md","../../../../../../mock_project/.claude/skills/fuzz/agents/invariant-discovery/state-transition-mapper.md","../../../../../../mock_project/.claude/skills/fuzz/agents/invariant-discovery/synthesizer.md","../../../../../../mock_project/.claude/skills/fuzz/agents/protocol-analyzer.md","../../../../../../mock_project/.claude/skills/fuzz/agents/report-writer.md","../../../../../../mock_project/.claude/skills/fuzz/references/handler-patterns.md","../../../../../../mock_project/.claude/skills/fuzz/references/hex-invariants.md","../../../../../../mock_project/.claude/skills/fuzz/references/property-generation.md","../../../../../../mock_project/.claude/skills/fuzz/references/selection-policy.md","../../../../../../mock_project/.claude/skills/fuzz/references/setup-playbook.md","../../../../../../mock_project/.claude/skills/fuzz/references/template-map.md","../../../../../../mock_project/.claude/skills/fuzz/templates/medusa.json","../../../../../../mock_project/.claude/skills/generate-poc/SKILL.md","../../../../../../mock_project/.claude/skills/generate-report/SKILL.md","../../../../../../mock_project/.claude/skills/ingest-aa-report/SKILL.md","../../../../../../mock_project/.claude/skills/init-audit/SKILL.md","../../../../../../mock_project/.claude/skills/init-audit/references/agents/conformance-checker.md","../../../../../../mock_project/.claude/skills/init-audit/references/agents/contract-reader.md","../../../../../../mock_project/.claude/skills/init-audit/references/agents/diagram-composer.md","../../../../../../mock_project/.claude/skills/init-audit/references/agents/docs-extractor.md","../../../../../../mock_project/.claude/skills/init-audit/references/agents/prior-audit.md","../../../../../../mock_project/.claude/skills/init-audit/references/agents/regression-checker.md","../../../../../../mock_project/.claude/skills/init-audit/references/agents/skeptic.md","../../../../../../mock_project/.claude/skills/init-audit/references/agents/standards-checker.md","../../../../../../mock_project/.claude/skills/init-audit/references/agents/synthesizer.md","../../../../../../mock_project/.claude/skills/prevalidate/SKILL.md","../../../../../../mock_project/.claude/skills/sync-issues/SKILL.md","../../../../../../mock_project/.claude/skills/validate-all-findings/SKILL.md","../../../../../../mock_project/.claude/skills/validate-finding/SKILL.md","../../../../../../mock_project/.claude/skills/write-finding/SKILL.md","../../../../../../mock_project/.hex/.cache/build-info/54af09872e212975.json","../../../../../../mock_project/.hex/.cache/forge-cache/solidity-files-cache.json","../../../../../../mock_project/.hex/.cache/forge-out/MockToken.sol/MockToken.json","../../../../../../mock_project/.hex/.cache/forge-out/Vault.sol/IToken.json","../../../../../../mock_project/.hex/.cache/forge-out/Vault.sol/Vault.json","../../../../../../mock_project/.hex/.cache/slither-function-summary.json","../../../../../../mock_project/.hex/.cache/wt-base/build-info/2a0f7fb5202fe071.json","../../../../../../mock_project/.hex/.cache/wt-base/forge-cache/solidity-files-cache.json","../../../../../../mock_project/.hex/.cache/wt-base/forge-out/MockToken.sol/MockToken.json","../../../../../../mock_project/.hex/.cache/wt-base/forge-out/Vault.sol/IToken.json","../../../../../../mock_project/.hex/.cache/wt-base/forge-out/Vault.sol/Vault.json","../../../../../../mock_project/.hex/.cache/wt-head/build-info/72613e9284c86811.json","../../../../../../mock_project/.hex/.cache/wt-head/forge-cache/solidity-files-cache.json","../../../../../../mock_project/.hex/.cache/wt-head/forge-out/MockToken.sol/MockToken.json","../../../../../../mock_project/.hex/.cache/wt-head/forge-out/Vault.sol/IToken.json","../../../../../../mock_project/.hex/.cache/wt-head/forge-out/Vault.sol/Vault.json","../../../../../../mock_project/.hex/comparison.json","../../../../../../mock_project/.hex/config.json","../../../../../../mock_project/.hex/facts.json","../../../../../../mock_project/.hex/findings.json","../../../../../../mock_project/.hex/fix-review/eccd37f2222b.json","../../../../../../mock_project/.hex/focus.json","../../../../../../mock_project/.hex/model/diagrams/accounting-share-price.excalidraw","../../../../../../mock_project/.hex/model/diagrams/accounting-share-price.spec.json","../../../../../../mock_project/.hex/model/diagrams/accounting-solvency.excalidraw","../../../../../../mock_project/.hex/model/diagrams/accounting-solvency.spec.json","../../../../../../mock_project/.hex/model/diagrams/custody.excalidraw","../../../../../../mock_project/.hex/model/diagrams/custody.spec.json","../../../../../../mock_project/.hex/model/diagrams/index.json","../../../../../../mock_project/.hex/model/diagrams/privilege.excalidraw","../../../../../../mock_project/.hex/model/diagrams/privilege.spec.json","../../../../../../mock_project/.hex/model/diagrams/sequence-false-return.excalidraw","../../../../../../mock_project/.hex/model/diagrams/sequence-false-return.spec.json","../../../../../../mock_project/.hex/model/diagrams/sequence-first-depositor.excalidraw","../../../../../../mock_project/.hex/model/diagrams/sequence-first-depositor.spec.json","../../../../../../mock_project/.hex/model/diagrams/sequence-reentrant-deposit.excalidraw","../../../../../../mock_project/.hex/model/diagrams/sequence-reentrant-deposit.spec.json","../../../../../../mock_project/.hex/model/diagrams/state-machine-vault.excalidraw","../../../../../../mock_project/.hex/model/diagrams/state-machine-vault.spec.json","../../../../../../mock_project/.hex/model/drafts/reader-1.json","../../../../../../mock_project/.hex/model/drafts/standards.json","../../../../../../mock_project/.hex/model/invariants.json","../../../../../../mock_project/.hex/model/protocol.json","../../../../../../mock_project/.hex/model/verdicts/accounting.json","../../../../../../mock_project/.hex/model/verdicts/actors-privileges-trust.json","../../../../../../mock_project/.hex/model/verdicts/assets-dependencies.json","../../../../../../mock_project/.hex/model/verdicts/invariants.json","../../../../../../mock_project/.hex/model/verdicts/state-machines-flows.json","../../../../../../mock_project/.hex/notes/contracts/MockToken.sol.json","../../../../../../mock_project/.hex/notes/contracts/Vault.sol.json","../../../../../../mock_project/.hex/notes/general.md","../../../../../../mock_project/.hex/notes/notes.json","../../../../../../mock_project/.hex/overview.md","../../../../../../mock_project/.hex/progress.json","../../../../../../mock_project/.hex/report/01-executive-summary.tex","../../../../../../mock_project/.hex/report/02-audited-files.tex","../../../../../../mock_project/.hex/report/03-summary-of-findings.tex","../../../../../../mock_project/.hex/report/04-system-overview.tex","../../../../../../mock_project/.hex/report/06-issues.tex","../../../../../../mock_project/.hex/report/07-documentation-eval.tex","../../../../../../mock_project/.hex/report/08-test-suite.tex","../../../../../../mock_project/.hex/report/audited_files.txt","../../../../../../mock_project/.hex/report/documentation_eval.txt","../../../../../../mock_project/.hex/report/executive_summary.txt","../../../../../../mock_project/.hex/report/findings.txt","../../../../../../mock_project/.hex/report/summary_of_findings.txt","../../../../../../mock_project/.hex/report/system_overview.txt","../../../../../../mock_project/.hex/report/test_suite.txt","../../../../../../mock_project/.hex/spec-conformance.json","../../../../../../mock_project/.hex/spec-conformance.md","../../../../../../mock_project/.hex/stats.json","../../../../../../mock_project/.hex/tracking.json","../../../../../../mock_project/.hex/validations/H-001_memo.md","../../../../../../mock_project/.hex/validations/H-002_memo.md","../../../../../../mock_project/.hex/validations/H-003_memo.md","../../../../../../mock_project/.hex/validations/H-004_memo.md","../../../../../../mock_project/.hex/validations/H-005_memo.md","../../../../../../mock_project/.hex/validations/H-006_memo.md","../../../../../../mock_project/.hex/validations/H-007_memo.md","../../../../../../mock_project/.hex/validations/H-008_memo.md","../../../../../../mock_project/.hex/xref.json","../../../../../../mock_project/.mcp.json","../../../../../../mock_project/CLAUDE.md","../../../../../../mock_project/E2E.md","../../../../../../mock_project/cache/solidity-files-cache.json","../../../../../../mock_project/out/H-006.t.sol/H006_UnboundedFee.json","../../../../../../mock_project/out/MockToken.sol/MockToken.json","../../../../../../mock_project/out/Vault.sol/IToken.json","../../../../../../mock_project/out/Vault.sol/Vault.json","../../../../../../mock_project/out/build-info/54af09872e212975.json","../../../../../../mock_project/out/build-info/c9c9317624966152.json","../../../../../../mock_project/remappings.txt","../../../../../../node_modules/anymatch/index.js","../../../../../../node_modules/anymatch/package.json","../../../../../../node_modules/binary-extensions/binary-extensions.json","../../../../../../node_modules/binary-extensions/index.js","../../../../../../node_modules/binary-extensions/package.json","../../../../../../node_modules/braces/index.js","../../../../../../node_modules/braces/lib/compile.js","../../../../../../node_modules/braces/lib/constants.js","../../../../../../node_modules/braces/lib/expand.js","../../../../../../node_modules/braces/lib/parse.js","../../../../../../node_modules/braces/lib/stringify.js","../../../../../../node_modules/braces/lib/utils.js","../../../../../../node_modules/braces/package.json","../../../../../../node_modules/chokidar/index.js","../../../../../../node_modules/chokidar/lib/constants.js","../../../../../../node_modules/chokidar/lib/fsevents-handler.js","../../../../../../node_modules/chokidar/lib/nodefs-handler.js","../../../../../../node_modules/chokidar/package.json","../../../../../../node_modules/fill-range/index.js","../../../../../../node_modules/fill-range/package.json","../../../../../../node_modules/glob-parent/index.js","../../../../../../node_modules/glob-parent/package.json","../../../../../../node_modules/is-binary-path/index.js","../../../../../../node_modules/is-binary-path/package.json","../../../../../../node_modules/is-extglob/index.js","../../../../../../node_modules/is-extglob/package.json","../../../../../../node_modules/is-glob/index.js","../../../../../../node_modules/is-glob/package.json","../../../../../../node_modules/is-number/index.js","../../../../../../node_modules/is-number/package.json","../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/normalize-path/index.js","../../../../../../node_modules/normalize-path/package.json","../../../../../../node_modules/picomatch/index.js","../../../../../../node_modules/picomatch/lib/constants.js","../../../../../../node_modules/picomatch/lib/parse.js","../../../../../../node_modules/picomatch/lib/picomatch.js","../../../../../../node_modules/picomatch/lib/scan.js","../../../../../../node_modules/picomatch/lib/utils.js","../../../../../../node_modules/picomatch/package.json","../../../../../../node_modules/readdirp/index.js","../../../../../../node_modules/readdirp/package.json","../../../../../../node_modules/to-regex-range/index.js","../../../../../../node_modules/to-regex-range/package.json","../../../../../../package-lock.json","../../../../../../package.json","../../../../../../src/facts/__fixtures__/rich.build-info.json","../../../../../../src/skills/ai-audit/SKILL.md","../../../../../../src/skills/ai-audit/UPSTREAM.md","../../../../../../src/skills/ai-audit/references/agent-prompts.md","../../../../../../src/skills/ai-audit/references/dedup-and-assembly.md","../../../../../../src/skills/ai-audit/references/hacking-agents/access-control-agent.md","../../../../../../src/skills/ai-audit/references/hacking-agents/asymmetry-agent.md","../../../../../../src/skills/ai-audit/references/hacking-agents/boundary-agent.md","../../../../../../src/skills/ai-audit/references/hacking-agents/economic-security-agent.md","../../../../../../src/skills/ai-audit/references/hacking-agents/execution-trace-agent.md","../../../../../../src/skills/ai-audit/references/hacking-agents/first-principles-agent.md","../../../../../../src/skills/ai-audit/references/hacking-agents/flow-gap-agent.md","../../../../../../src/skills/ai-audit/references/hacking-agents/invariant-agent.md","../../../../../../src/skills/ai-audit/references/hacking-agents/math-precision-agent.md","../../../../../../src/skills/ai-audit/references/hacking-agents/numerical-gap-agent.md","../../../../../../src/skills/ai-audit/references/hacking-agents/periphery-agent.md","../../../../../../src/skills/ai-audit/references/hacking-agents/shared-rules.md","../../../../../../src/skills/ai-audit/references/hacking-agents/trust-gap-agent.md","../../../../../../src/skills/ai-audit/references/hex-board.md","../../../../../../src/skills/ai-audit/references/judging.md","../../../../../../src/skills/ai-audit/references/report-formatting.md","../../../../../../src/skills/ai-audit/references/report-language.md","../../../../../../src/skills/ai-audit/references/senior-auditor-sop.md","../../../../../../src/skills/diane.md","../../../../../../src/skills/fix-review.md","../../../../../../src/skills/fuzz-convert/SKILL.md","../../../../../../src/skills/fuzz-sync/SKILL.md","../../../../../../src/skills/fuzz/SKILL.md","../../../../../../src/skills/fuzz/UPSTREAM.md","../../../../../../src/skills/fuzz/agents/implementers/global-property-implementer.md","../../../../../../src/skills/fuzz/agents/implementers/specific-property-implementer.md","../../../../../../src/skills/fuzz/agents/invariant-discovery/adversarial-profit-maximizer.md","../../../../../../src/skills/fuzz/agents/invariant-discovery/conservation-auditor.md","../../../../../../src/skills/fuzz/agents/invariant-discovery/protocol-type-specialist.md","../../../../../../src/skills/fuzz/agents/invariant-discovery/roundtrip-rounding-analyst.md","../../../../../../src/skills/fuzz/agents/invariant-discovery/state-transition-mapper.md","../../../../../../src/skills/fuzz/agents/invariant-discovery/synthesizer.md","../../../../../../src/skills/fuzz/agents/protocol-analyzer.md","../../../../../../src/skills/fuzz/agents/report-writer.md","../../../../../../src/skills/fuzz/references/handler-patterns.md","../../../../../../src/skills/fuzz/references/hex-invariants.md","../../../../../../src/skills/fuzz/references/property-generation.md","../../../../../../src/skills/fuzz/references/selection-policy.md","../../../../../../src/skills/fuzz/references/setup-playbook.md","../../../../../../src/skills/fuzz/references/template-map.md","../../../../../../src/skills/fuzz/templates/medusa.json","../../../../../../src/skills/generate-poc.md","../../../../../../src/skills/generate-report.md","../../../../../../src/skills/ingest-aa-report.md","../../../../../../src/skills/init-audit/SKILL.md","../../../../../../src/skills/init-audit/references/agents/conformance-checker.md","../../../../../../src/skills/init-audit/references/agents/contract-reader.md","../../../../../../src/skills/init-audit/references/agents/diagram-composer.md","../../../../../../src/skills/init-audit/references/agents/docs-extractor.md","../../../../../../src/skills/init-audit/references/agents/prior-audit.md","../../../../../../src/skills/init-audit/references/agents/regression-checker.md","../../../../../../src/skills/init-audit/references/agents/skeptic.md","../../../../../../src/skills/init-audit/references/agents/standards-checker.md","../../../../../../src/skills/init-audit/references/agents/synthesizer.md","../../../../../../src/skills/prevalidate.md","../../../../../../src/skills/sync-issues.md","../../../../../../src/skills/validate-all-findings.md","../../../../../../src/skills/validate-finding.md","../../../../../../src/skills/write-finding.md","../../../../../../tsconfig.json","../../../../../tsconfig.json","../../../../package.json","../../../../routes-manifest.json","../../../chunks/916.js","../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=250,e.ids=[250],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},8780:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>h,requestAsyncStorage:()=>d,routeModule:()=>f,serverHooks:()=>x,staticGenerationAsyncStorage:()=>p});var n={};r.r(n),r.d(n,{GET:()=>c,dynamic:()=>s});var i=r(3277),o=r(5265),l=r(5356),u=r(7076),a=r(9416);let s="force-dynamic";async function c(e){let t=e.nextUrl.searchParams.get("file");if(!t)return u.NextResponse.json({error:"Missing file"},{status:400});let r=(0,a.o)();if(!r)return u.NextResponse.json({available:!1});let n=r.refs[t]??[],i=new Set(n.map(e=>e[3]));for(let[e,n]of Object.entries(r.decls))n.file===t&&i.add(e);let o={};for(let e of[...i]){let t=r.impls[e];if(t)for(let r of(o[e]=t,t))i.add(r.id)}let l={};for(let e of i)r.decls[e]&&(l[e]=r.decls[e]);return u.NextResponse.json({available:!0,refs:n,decls:l,impls:o})}let f=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/xref/route",pathname:"/api/xref",filename:"route",bundlePath:"app/api/xref/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/api/xref/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:d,staticGenerationAsyncStorage:p,serverHooks:x}=f,m="/api/xref/route";function h(){return(0,l.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:p})}},1720:(e,t,r)=>{r.d(t,{ZN:()=>d,J1:()=>p,gn:()=>c,ws:()=>f,V9:()=>x});var n=r(7561),i=r.n(n),o=r(9411),l=r.n(o);let u=[".hex",".solaudit","solaudit-output"];function a(e){return e.replace(/\\/g,"/")}function s(){try{let e=function(e=process.cwd()){let t=l().resolve(e);for(;;){let e=function(e){for(let t of[...u.map(t=>l().join(e,t,"config.json")),l().join(e,"config.json")])if(i().existsSync(t))return a(t);return null}(t);if(e)return a(l().dirname(e));let r=l().dirname(t);if(r===t)return null;t=r}}(process.cwd());if(e)return e}catch{}return l().join(process.cwd(),".hex")}function c(e){try{let t=l().join(s(),e),r=i().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}function f(e){try{let t=l().join(s(),e);return i().readFileSync(t,"utf-8")}catch{return null}}function d(){return s()}function p(e){try{let t=l().join(s(),e);if(!i().existsSync(t))return[];return i().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function x(e){try{let t=l().join(s(),e),r=i().readFileSync(t,"utf-8");return JSON.parse(r)}catch{return null}}},9416:(e,t,r)=>{r.d(t,{Z:()=>c,o:()=>s});var n=r(7561),i=r.n(n),o=r(9411),l=r.n(o),u=r(1720);let a=null;function s(){let e;let t=l().join((0,u.ZN)(),"xref.json");try{e=i().statSync(t).mtimeMs}catch{return a=null,null}if(a&&a.file===t&&a.mtime===e)return a.data;try{let r=JSON.parse(i().readFileSync(t,"utf-8"));return a={file:t,mtime:e,data:r},r}catch{return null}}function c(e,t,r){let n=null;for(let[i,o]of Object.entries(e.decls))o.file===t&&("function"===o.kind||"modifier"===o.kind)&&(r<o.line_start||r>o.line_end||n&&!(o.line_end-o.line_start<n.decl.line_end-n.decl.line_start)||(n={key:i,decl:o}));return n}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[916,786],()=>r(8780));module.exports=n})();
|
|
@@ -1,20 +1 @@
|
|
|
1
|
-
(()=>{var e={};e.id=381,e.ids=[381],e.modules={7849:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external")},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},5403:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},4749:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},7561:e=>{"use strict";e.exports=require("node:fs")},9411:e=>{"use strict";e.exports=require("node:path")},7742:e=>{"use strict";e.exports=require("node:process")},1041:e=>{"use strict";e.exports=require("node:url")},1017:e=>{"use strict";e.exports=require("path")},7310:e=>{"use strict";e.exports=require("url")},8465:(e,t,s)=>{"use strict";s.r(t),s.d(t,{GlobalError:()=>i.a,__next_app__:()=>m,originalPathname:()=>x,pages:()=>l,routeModule:()=>h,tree:()=>c}),s(8913),s(819),s(2874);var r=s(7105),a=s(5265),n=s(157),i=s.n(n),o=s(4665),d={};for(let e in o)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(d[e]=()=>o[e]);s.d(t,d);let c=["",{children:["changes",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(s.bind(s,8913)),"/home/dx/Work/hex/dashboard/app/changes/page.tsx"]}]},{metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(s.bind(s,819)),"/home/dx/Work/hex/dashboard/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(s.t.bind(s,2874,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],l=["/home/dx/Work/hex/dashboard/app/changes/page.tsx"],x="/changes/page",m={require:s,loadChunk:()=>Promise.resolve()},h=new r.AppPageRouteModule({definition:{kind:a.x.APP_PAGE,page:"/changes/page",pathname:"/changes",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},4623:(e,t,s)=>{Promise.resolve().then(s.bind(s,5707))},5707:(e,t,s)=>{"use strict";s.d(t,{ChangesClient:()=>v});var r=s(9899),a=s(4175),n=s(983),i=s(9687),o=s(366),d=s(6844),c=s(437);let l={added:"bg-accent-subtle text-accent",modified:"bg-[var(--high)]/18 text-[var(--high)]",removed:"bg-[var(--critical)]/18 text-[var(--critical)]",comments_only:"bg-surface-3 text-text-tertiary"},x={added:"Added",modified:"Modified",removed:"Removed",comments_only:"Comments only"};function m({className:e,children:t}){return r.jsx("span",{className:`inline-flex items-center rounded-md px-2 py-0.5 text-caption font-medium ${e}`,children:t})}function h({change:e}){return r.jsx(m,{className:l[e]??l.comments_only,children:x[e]??e})}let p={changed:"Changed",calls:"Calls",modifier:"Uses modifier",reads_state:"Reads state",override:"Dispatches to",inherits:"Inherits"},u={regressed:{label:"Regressed",className:"bg-[var(--critical)]/18 text-[var(--critical)]"},acknowledged_still_present:{label:"Still present",className:"bg-[var(--medium)]/18 text-[var(--medium)]"},fix_touched_ok:{label:"Fix touched, holds",className:"bg-accent-subtle text-accent"},fixed_unchanged:{label:"Fixed, untouched",className:"bg-surface-3 text-text-secondary"},code_removed:{label:"Code removed",className:"bg-surface-3 text-text-tertiary"}};function g({label:e,value:t,tone:s}){return(0,r.jsxs)("div",{className:`rounded-lg border p-4 ${"warn"===s?"border-[var(--high)]/30 bg-[var(--high)]/5":"border-border-subtle bg-surface-1"}`,children:[r.jsx("div",{className:`text-display scale-in ${"warn"===s?"text-[var(--high)]":"text-text-primary"}`,children:t}),r.jsx("div",{className:"mt-1 text-caption text-text-secondary",children:e})]})}function f({title:e,children:t}){return(0,r.jsxs)("section",{className:"mb-sp-6",children:[r.jsx("h3",{className:"mb-sp-3 text-heading font-medium text-text-primary",children:e}),t]})}let b=[{id:"contract",header:"Contract",accessorKey:"contract",enableColumnFilter:!0,cell:e=>r.jsx("span",{className:"font-medium text-text-primary",children:e.contract})},{id:"entity",header:"Entity",accessorKey:"entity",cell:e=>r.jsx("code",{className:"font-mono text-body text-text-secondary",children:e.entity})},{id:"kind",header:"Kind",accessorKey:"kind",enableColumnFilter:!0,cell:e=>r.jsx("span",{className:"text-body text-text-secondary",children:e.kind.replace("_"," ")})},{id:"change",header:"Change",accessorKey:"change",enableColumnFilter:!0,filterOrder:["added","modified","removed","comments_only"],cell:e=>r.jsx(h,{change:e.change})},{id:"location",header:"Location",accessorKey:"file",cell:e=>"removed"!==e.change&&e.line_start?r.jsx(o.i,{file:e.file,lineStart:e.line_start,lineEnd:e.line_end}):r.jsx("code",{className:"font-mono text-caption text-text-tertiary",children:e.file})}],y=[{id:"contract",header:"Contract",accessorKey:"contract",enableColumnFilter:!0,cell:e=>r.jsx("span",{className:"font-medium text-text-primary",children:e.contract})},{id:"function",header:"Function",accessorKey:"function",cell:e=>r.jsx("code",{className:"font-mono text-body text-text-secondary",children:e.function})},{id:"entry",header:"Entry point",accessorKey:"entry",enableColumnFilter:!0,cell:e=>e.is_entry_point?r.jsx(m,{className:"bg-accent-subtle text-accent",children:"Entry point"}):r.jsx("span",{className:"text-caption text-text-tertiary",children:e.visibility})},{id:"depth",header:"Depth",accessorKey:"depth",cell:e=>r.jsx("span",{className:"text-body text-text-secondary",children:0===e.depth?"changed":e.depth})},{id:"reason",header:"Why",accessorKey:"reason",enableColumnFilter:!0,cell:e=>(0,r.jsxs)("div",{className:"space-y-0.5",children:[e.reasons.slice(0,2).map((e,t)=>(0,r.jsxs)("div",{className:"text-caption text-text-secondary",children:[p[e.kind]??e.kind," ","changed"!==e.kind&&r.jsx("code",{className:"font-mono text-text-primary",children:e.via}),"changed"===e.kind&&(0,r.jsxs)("span",{className:"text-text-tertiary",children:["(",e.via,")"]})]},t)),e.reasons.length>2&&(0,r.jsxs)("div",{className:"text-caption text-text-tertiary",children:["+",e.reasons.length-2," more"]})]})},{id:"confidence",header:"Confidence",accessorKey:"confidence",enableColumnFilter:!0,filterOrder:["high","medium","low"],cell:e=>r.jsx(i.o,{level:e.confidence,derivedFrom:e.derived_from})},{id:"location",header:"Location",accessorKey:"file",cell:e=>e.line_start?r.jsx(o.i,{file:e.file,lineStart:e.line_start}):r.jsx("code",{className:"font-mono text-caption text-text-tertiary",children:e.file})}];function v({diff:e,overview:t,review:s}){let i=e.summary,o=e.base_commit.slice(0,8),l=e.head_commit.slice(0,8),x=e.impacted.map(e=>({...e,entry:e.is_entry_point?"Entry point":"Internal",reason:p[e.reasons[0]?.kind]??""})),h=s?.items.filter(e=>"regressed"===e.status).length??0;return(0,r.jsxs)("div",{children:[r.jsx("h2",{className:"mb-sp-2 text-title font-semibold text-text-primary",children:"Changes"}),(0,r.jsxs)("div",{className:"mb-sp-5 flex flex-wrap items-center gap-2 text-caption text-text-tertiary",children:[r.jsx("span",{children:"Differential audit"}),r.jsx("code",{className:"rounded-md bg-surface-2 px-2 py-0.5 font-mono text-text-secondary",children:o}),r.jsx("span",{"aria-hidden":"true",children:"→"}),r.jsx("code",{className:"rounded-md bg-surface-2 px-2 py-0.5 font-mono text-text-secondary",children:l}),(0,r.jsxs)("span",{children:["\xb7 +",i.additions," / −",i.deletions," lines"]})]}),(e.warnings??[]).map((e,t)=>r.jsx("div",{className:"mb-sp-3 rounded-lg border border-[var(--high)]/30 bg-[var(--high)]/5 px-4 py-3 text-body text-text-secondary",children:e},t)),(0,r.jsxs)("div",{className:"mb-sp-6 grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-6 stagger",children:[r.jsx(g,{label:"Files changed",value:i.files_changed}),r.jsx(g,{label:"Functions added",value:i.functions_added}),r.jsx(g,{label:"Functions modified",value:i.functions_modified}),r.jsx(g,{label:"Functions removed",value:i.functions_removed}),r.jsx(g,{label:"Impacted entry points",value:i.impacted_entry_points}),r.jsx(g,{label:"Storage layout changes",value:i.storage_layout_changes,tone:i.storage_layout_changes>0?"warn":void 0}),s&&r.jsx(g,{label:"Prior findings regressed",value:h,tone:h>0?"warn":void 0})]}),t&&r.jsx(f,{title:"What changed",children:r.jsx("div",{className:"rounded-lg border border-border-subtle bg-surface-1 p-6",children:r.jsx(d.MarkdownRenderer,{content:t})})}),e.storage_layout_changes.length>0&&r.jsx(f,{title:"Storage layout",children:r.jsx("ul",{className:"divide-y divide-border-subtle rounded-lg border border-border-subtle bg-surface-1",children:e.storage_layout_changes.map((e,t)=>(0,r.jsxs)("li",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-1 px-4 py-3",children:[r.jsx("span",{className:"font-medium text-text-primary",children:e.contract}),r.jsx(m,{className:"bg-[var(--high)]/18 text-[var(--high)]",children:e.kind.replace(/_/g," ")}),r.jsx("span",{className:"text-body text-text-secondary",children:r.jsx(d.T,{children:e.detail})})]},t))})}),(0,r.jsxs)(f,{title:"Changed code",children:[(0,r.jsxs)("p",{className:"mb-sp-3 text-body text-text-secondary",children:[e.files.length," file",1!==e.files.length?"s":"",":"," ",e.files.map((e,t)=>(0,r.jsxs)("span",{children:[t>0&&", ",r.jsx("code",{className:"font-mono text-caption text-text-primary",children:e.path})," ",(0,r.jsxs)("span",{className:"text-caption text-text-tertiary",children:["(",e.status,e.old_path?` from ${e.old_path}`:"",", +",e.additions,"/−",e.deletions,")"]})]},e.path))]}),r.jsx(n.v,{columns:b,data:e.changes})]}),(0,r.jsxs)(f,{title:"Impacted flows",children:[(0,r.jsxs)("p",{className:"mb-sp-3 text-body text-text-secondary",children:["Every function the change reaches: changed code (depth 0), then callers, modifier users, readers of state the change writes, and inherited entry points. ",i.impacted_functions," ","impacted beyond the changed code."]}),r.jsx(n.v,{columns:y,data:x})]}),s&&s.items.length>0&&r.jsx(f,{title:"Prior findings",children:r.jsx("div",{className:"overflow-x-auto rounded-lg border border-border-subtle bg-surface-1",children:(0,r.jsxs)("table",{className:"w-full text-left",children:[r.jsx("thead",{children:(0,r.jsxs)("tr",{className:"border-b border-border-subtle text-caption text-text-tertiary",children:[r.jsx("th",{className:"px-4 py-2 font-normal",children:"ID"}),r.jsx("th",{className:"px-4 py-2 font-normal",children:"Title"}),r.jsx("th",{className:"px-4 py-2 font-normal",children:"Severity"}),r.jsx("th",{className:"px-4 py-2 font-normal",children:"Status"}),r.jsx("th",{className:"px-4 py-2 font-normal",children:"Card"})]})}),r.jsx("tbody",{children:s.items.map(e=>{let t=u[e.status]??{label:e.status,className:"bg-surface-3 text-text-secondary"};return(0,r.jsxs)("tr",{className:"border-b border-border-subtle last:border-0 hover:bg-surface-3",title:e.reasoning,children:[r.jsx("td",{className:"px-4 py-2 text-body text-text-secondary",children:e.id}),r.jsx("td",{className:"px-4 py-2 text-body text-text-primary",children:e.title}),r.jsx("td",{className:"px-4 py-2",children:r.jsx(c.$,{severity:e.severity})}),r.jsx("td",{className:"px-4 py-2",children:r.jsx(m,{className:t.className,children:t.label})}),r.jsx("td",{className:"px-4 py-2 text-body",children:e.issue_id?r.jsx(a.default,{href:"/issues",className:"text-accent hover:underline",children:e.issue_id}):r.jsx("span",{className:"text-text-tertiary",children:"—"})})]},e.id)})})]})})})]})}},9687:(e,t,s)=>{"use strict";s.d(t,{o:()=>i});var r=s(9899),a=s(5507);let n={high:"bg-[var(--success)]/15 text-[var(--success)]",medium:"bg-[var(--medium)]/15 text-[var(--medium)]",low:"bg-[var(--critical)]/15 text-[var(--critical)]"};function i({level:e,derivedFrom:t}){let[s,i]=(0,a.useState)(!1),o=n[e.toLowerCase()]??n.low,d=t?`confidence-${e}-${t.replace(/\W+/g,"-")}`:void 0,c=t?`${e} confidence, derived from ${t}`:`${e} confidence`;return(0,r.jsxs)("span",{className:"relative inline-block focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent rounded-md",tabIndex:t?0:void 0,role:t?"group":void 0,"aria-label":c,"aria-describedby":s&&d?d:void 0,onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),onFocus:()=>i(!0),onBlur:()=>i(!1),children:[r.jsx("span",{className:`inline-flex items-center rounded-md px-2 py-0.5 text-caption font-medium ${o}`,children:e}),t&&s&&(0,r.jsxs)("span",{id:d,role:"tooltip",className:"absolute bottom-full left-1/2 z-50 mb-2 -translate-x-1/2 whitespace-nowrap rounded-md border border-border-default bg-surface-3 px-2 py-1 text-caption text-text-secondary shadow-lg",children:["Derived from: ",t]})]})}},6844:(e,t,s)=>{"use strict";s.d(t,{MarkdownRenderer:()=>i,T:()=>o});var r=s(9899),a=s(5684),n=s(3798);function i({content:e,className:t}){return r.jsx("div",{className:`prose max-w-none
|
|
2
|
-
prose-headings:text-text-primary
|
|
3
|
-
prose-p:text-text-secondary
|
|
4
|
-
prose-strong:text-text-primary
|
|
5
|
-
prose-code:text-accent
|
|
6
|
-
prose-code:before:content-none
|
|
7
|
-
prose-code:after:content-none
|
|
8
|
-
prose-pre:bg-surface-0
|
|
9
|
-
prose-pre:border
|
|
10
|
-
prose-pre:border-border-default
|
|
11
|
-
prose-a:text-accent
|
|
12
|
-
prose-a:no-underline
|
|
13
|
-
hover:prose-a:underline
|
|
14
|
-
prose-th:text-text-primary
|
|
15
|
-
prose-td:text-text-secondary
|
|
16
|
-
prose-hr:border-border-default
|
|
17
|
-
prose-blockquote:border-border-emphasis
|
|
18
|
-
prose-blockquote:text-text-secondary
|
|
19
|
-
prose-li:text-text-secondary
|
|
20
|
-
${t??""}`,children:r.jsx(a.UG,{remarkPlugins:[n.Z],children:e})})}function o({children:e}){return r.jsx(a.UG,{remarkPlugins:[n.Z],components:{p:({children:e})=>r.jsx(r.Fragment,{children:e}),code:({children:e})=>r.jsx("code",{className:"rounded bg-surface-0 px-1 py-0.5 font-mono text-[0.85em] text-accent",children:e}),strong:({children:e})=>r.jsx("strong",{className:"font-semibold text-text-primary",children:e}),a:({href:e,children:t})=>r.jsx("a",{href:e,target:"_blank",rel:"noreferrer",className:"text-accent hover:underline",children:t})},children:e})}},437:(e,t,s)=>{"use strict";s.d(t,{$:()=>n});var r=s(9899);let a={Critical:"bg-[var(--critical)]/18 text-[var(--critical)]",High:"bg-[var(--high)]/18 text-[var(--high)]",Medium:"bg-[var(--medium)]/18 text-[var(--medium)]",Low:"bg-[var(--low)]/18 text-[var(--low)]",Info:"bg-[var(--info)]/18 text-[var(--info)]"};function n({severity:e}){let t=a[e]??a.Info;return r.jsx("span",{className:`inline-flex items-center rounded-md px-2 py-0.5 text-caption font-medium ${t}`,children:e})}},8913:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>m,dynamic:()=>x});var r=s(5023),a=s(1720),n=s(446),i=s(2772);let o=(0,i.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx`),{__esModule:d,$$typeof:c}=o;o.default;let l=(0,i.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx#ChangesClient`),x="force-dynamic";function m(){let e=(0,a.gn)("diff.json"),t=(0,a.gn)("config.json");if(!e){let e=t?.project?.diff?.base_commit;return(0,r.jsxs)("div",{children:[r.jsx("h2",{className:"mb-sp-5 text-title font-semibold text-text-primary",children:"Changes"}),r.jsx("p",{className:"mb-sp-4 text-body text-text-secondary",children:"This page is for differential audits: what changed since the previously audited commit, and which flows the change reaches."}),r.jsx(n.v,{command:e?"hex diff":'hex init --mode diff --base <commit> --scope "<globs>"'})]})}let s=(0,a.ws)("diff-overview.md"),i=(0,a.gn)("previous-audit/review.json");return r.jsx(l,{diff:e,overview:s,review:i})}}};var t=require("../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[916,649,645,665,494,530,939],()=>s(8465));module.exports=r})();
|
|
1
|
+
(()=>{var e={};e.id=381,e.ids=[381],e.modules={7849:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external")},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},5403:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},4749:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},7561:e=>{"use strict";e.exports=require("node:fs")},9411:e=>{"use strict";e.exports=require("node:path")},7742:e=>{"use strict";e.exports=require("node:process")},1041:e=>{"use strict";e.exports=require("node:url")},1017:e=>{"use strict";e.exports=require("path")},7310:e=>{"use strict";e.exports=require("url")},8465:(e,t,s)=>{"use strict";s.r(t),s.d(t,{GlobalError:()=>r.a,__next_app__:()=>p,originalPathname:()=>x,pages:()=>c,routeModule:()=>m,tree:()=>d}),s(8913),s(7415),s(2874);var i=s(7105),n=s(5265),a=s(157),r=s.n(a),o=s(4665),l={};for(let e in o)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>o[e]);s.d(t,l);let d=["",{children:["changes",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(s.bind(s,8913)),"/home/dx/Work/hex/dashboard/app/changes/page.tsx"]}]},{metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(s.bind(s,7415)),"/home/dx/Work/hex/dashboard/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(s.t.bind(s,2874,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],c=["/home/dx/Work/hex/dashboard/app/changes/page.tsx"],x="/changes/page",p={require:s,loadChunk:()=>Promise.resolve()},m=new i.AppPageRouteModule({definition:{kind:n.x.APP_PAGE,page:"/changes/page",pathname:"/changes",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},8576:(e,t,s)=>{Promise.resolve().then(s.bind(s,5707)),Promise.resolve().then(s.bind(s,3368))},5707:(e,t,s)=>{"use strict";s.d(t,{ChangesClient:()=>$});var i=s(9899),n=s(8107),a=s(4175),r=s(5507),o=s(6153),l=s(3368),d=s(8799),c=s(733),x=s(394),p=s(5893),m=s(7096),u=s(8110),h=s(366),f=s(6844),g=s(8279),b=s(1593);let y={added:"Added",modified:"Modified",removed:"Removed",comments_only:"Comments only"},j={added:"var(--success)",modified:"var(--high)",removed:"var(--critical)",comments_only:"var(--neutral)"},v={changed:"Changed",calls:"Calls",modifier:"Uses modifier",reads_state:"Reads state",override:"Dispatches to",inherits:"Inherits"},_={regressed:{label:"Regressed",color:"var(--critical)"},acknowledged_still_present:{label:"Still present",color:"var(--medium)"},fix_touched_ok:{label:"Fix touched, holds",color:"var(--success)"},fixed_unchanged:{label:"Fixed, untouched",color:"var(--neutral)"},code_removed:{label:"Code removed",color:"var(--neutral)"}},w={fixed:{label:"Fixed",color:"var(--success)"},partially_fixed:{label:"Partially fixed",color:"var(--medium)"},not_fixed:{label:"Not fixed",color:"var(--critical)"},unaddressed:{label:"Unaddressed",color:"var(--high)"},unknown:{label:"Unknown",color:"var(--neutral)"}},N={passing:"passes",failing:"fails",error:"errors",missing:"missing"},k=(e,t)=>`${e} ${t}${1===e?"":"s"}`;function $({diff:e,overview:t,prior:s,fixReview:n,reviewStates:a}){let d=(0,o.useSearchParams)(),u=(0,r.useMemo)(()=>{let t=e?[{id:"overview",label:"Overview"}]:[];return n&&t.push({id:"fixes",label:"Fix review",count:n.cards.length+n.unmapped_changes.length}),e?.storage_layout_changes.length&&t.push({id:"storage",label:"Storage layout",count:e.storage_layout_changes.length}),e&&(t.push({id:"code",label:"Changed code",count:e.changes.length}),t.push({id:"impact",label:"Impact",count:e.impacted.length})),s?.items.length&&t.push({id:"prior",label:"Prior findings",count:s.items.length}),t},[e,s,n]),[h,b]=(0,r.useState)(()=>{let e=d.get("s");return e&&u.some(t=>t.id===e)?e:u[0]?.id??"overview"}),[N,$]=(0,r.useState)(null),[q,S]=(0,r.useState)("entry"),T=(0,r.useMemo)(()=>(e?.impacted??[]).map((e,t)=>({it:e,i:t})).filter(({it:e})=>"all"===q||e.is_entry_point||0===e.depth).sort((e,t)=>e.it.depth-t.it.depth||Number(t.it.is_entry_point)-Number(e.it.is_entry_point)),[e,q]);(0,g.y)({Escape:()=>$(null),j:()=>F(1),k:()=>F(-1)});let F=e=>{let t=u.findIndex(e=>e.id===h),s=u[Math.max(0,Math.min(u.length-1,t+e))];s&&b(s.id)},W=i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-2",children:u.map(e=>i.jsx(c.w,{dense:!0,selected:e.id===h,onClick:()=>b(e.id),title:e.label,trailing:void 0!==e.count?i.jsx("span",{className:"tabular-nums",children:e.count}):void 0},e.id))});return i.jsx(l.z,{toolbar:i.jsx(l.Toolbar,{title:"Changes",meta:e?(0,i.jsxs)("span",{children:[i.jsx("span",{className:"font-mono text-caption",children:e.base_commit.slice(0,8)})," →"," ",i.jsx("span",{className:"font-mono text-caption",children:e.head_commit.slice(0,8)}),(0,i.jsxs)("span",{className:"ml-2",children:["+",e.summary.additions," −",e.summary.deletions]})]}):n?(0,i.jsxs)("span",{children:["Fix review \xb7"," ",i.jsx("span",{className:"font-mono text-caption",children:n.from_commit.slice(0,8)})," ","→ ",i.jsx("span",{className:"font-mono text-caption",children:n.to_commit.slice(0,8)})]}):void 0}),list:W,listWidth:220,inspector:N?i.jsx(z,{sel:N,diff:e,prior:s,fixReview:n,reviewStates:a,onClose:()=>$(null)}):void 0,children:i.jsx(l.x,{children:(0,i.jsxs)("div",{className:"mx-auto max-w-[760px] px-8 pb-16 pt-8",children:["overview"===h&&e&&(0,i.jsxs)("div",{className:"rise-in",children:[(0,i.jsxs)("p",{className:"text-heading font-medium text-text-primary",children:[k(e.summary.files_changed,"file")," changed \xb7"," ",e.summary.functions_added," added, ",e.summary.functions_modified," modified,"," ",e.summary.functions_removed," removed"]}),(0,i.jsxs)("p",{className:"mt-1 text-body text-text-secondary",children:["The change reaches ",k(e.summary.impacted_entry_points,"entry point"),e.summary.storage_layout_changes?` and moves ${k(e.summary.storage_layout_changes,"storage slot")}`:"","."]}),(e.warnings??[]).map((e,t)=>(0,i.jsxs)("p",{className:"mt-3 flex gap-2 text-caption text-text-secondary",children:[i.jsx(p.oT,{color:"var(--medium)",className:"mt-1"}),e]},t)),t&&i.jsx("div",{className:"mt-8 border-t border-border-subtle pt-6",children:i.jsx(f.$8,{content:t.replace(/^# .*\n+/,"")})}),n&&i.jsx("button",{type:"button",onClick:()=>b("fixes"),className:"mt-8 flex w-full items-center gap-3 border-y border-border-subtle py-3 text-left hover:border-border-default",children:(0,i.jsxs)("span",{className:"flex-1 text-body text-text-primary",children:["Fix review of ",n.to_commit.slice(0,8),":"," ",i.jsx("span",{className:"text-text-secondary",children:C(n)})]})})]}),"storage"===h&&e&&i.jsx(P,{title:"Storage layout",hint:"Slots that moved. Behind a proxy, an upgrade would read these from the wrong place.",children:e.storage_layout_changes.map((e,t)=>i.jsx(R,{selected:N?.kind==="storage"&&N.i===t,onClick:()=>$({kind:"storage",i:t}),leading:i.jsx(p.oT,{color:"var(--high)"}),title:i.jsx(f.T9,{children:e.detail}),subtitle:`${e.contract} \xb7 ${e.kind.replace(/_/g," ")}`},t))}),"code"===h&&e&&i.jsx(P,{title:"Changed code",hint:e.files.map(e=>`${e.path} (+${e.additions} −${e.deletions})`).join(" \xb7 "),children:(function(e,t){let s=new Map;for(let i of e)s.set(t(i),[...s.get(t(i))??[],i]);return Array.from(s.entries())})(e.changes.map((e,t)=>({c:e,i:t})),e=>e.c.contract).map(([e,t])=>(0,i.jsxs)("div",{children:[i.jsx(c.i,{children:e}),t.map(({c:e,i:t})=>i.jsx(R,{selected:N?.kind==="change"&&N.i===t,onClick:()=>$({kind:"change",i:t}),leading:i.jsx(p.oT,{color:j[e.change],title:y[e.change]}),title:i.jsx("span",{className:"font-mono text-caption text-text-primary",children:e.entity}),subtitle:`${e.kind.replace("_"," ")} \xb7 ${y[e.change]??e.change}`},t))]},e))}),"impact"===h&&e&&i.jsx(P,{title:"Impact",hint:"Every function the change reaches: changed code first, then callers, modifier users, readers of changed state and inherited entry points.",control:i.jsx(x.s,{segments:[{value:"entry",label:"Entry points"},{value:"all",label:"All",count:e.impacted.length}],value:q,onChange:S}),children:T.map(({it:e,i:t})=>{let s=a[`${e.contract}.${e.function}`];return i.jsx(R,{selected:N?.kind==="impact"&&N.i===t,onClick:()=>$({kind:"impact",i:t}),leading:s?i.jsx(m.e,{state:s}):i.jsx("span",{className:"h-3.5 w-3.5"}),title:(0,i.jsxs)("span",{children:[e.contract,".",i.jsx("span",{className:"font-medium",children:e.function.split("(")[0]})]}),subtitle:0===e.depth?`Changed \xb7 ${e.reasons[0]?.via??""}`:`${k(e.depth,"hop")} \xb7 ${v[e.reasons[0]?.kind]??""} ${e.reasons[0]?.via??""}`,trailing:e.is_entry_point?"Entry point":e.visibility},t)})}),"prior"===h&&s&&i.jsx(P,{title:"Prior findings",hint:"Findings from the previous audit, checked against this change.",children:s.items.map((e,t)=>i.jsx(R,{selected:N?.kind==="prior"&&N.i===t,onClick:()=>$({kind:"prior",i:t}),leading:i.jsx(p.oH,{severity:e.severity,label:!1}),title:e.title,subtitle:`${e.id} \xb7 ${_[e.status]?.label??e.status}`,trailing:i.jsx(p.oT,{color:_[e.status]?.color??"var(--neutral)",title:_[e.status]?.label})},e.id))}),"fixes"===h&&n&&(0,i.jsxs)(i.Fragment,{children:[i.jsx(P,{title:"Fix review",hint:`${n.from_commit.slice(0,8)} → ${n.to_commit.slice(0,8)} \xb7 ${C(n)}. Read-only here; the CLI skill applies the proposals.`,children:n.cards.map((e,t)=>i.jsx(R,{selected:N?.kind==="fix"&&N.i===t,onClick:()=>$({kind:"fix",i:t}),leading:i.jsx(p.oT,{color:w[e.status]?.color??"var(--neutral)",title:w[e.status]?.label}),title:e.title,subtitle:`${e.id}${e.github_issue?` \xb7 #${e.github_issue}`:""} \xb7 ${w[e.status]?.label??e.status}${e.applied_at?" \xb7 applied":""}`,trailing:i.jsx(p.oH,{severity:e.severity})},e.id))}),n.unmapped_changes.length>0&&i.jsx(P,{title:"Changes no card explains",hint:"Fix-commit code that needs a review of its own.",children:n.unmapped_changes.map((e,t)=>i.jsx(R,{selected:N?.kind==="unmapped"&&N.i===t,onClick:()=>$({kind:"unmapped",i:t}),leading:i.jsx(p.oT,{color:e.reviewed?"var(--success)":"var(--medium)",title:e.reviewed?"Reviewed":"Needs review"}),title:i.jsx("span",{className:"font-mono text-caption text-text-primary",children:e.entity}),subtitle:`${e.contract} \xb7 ${e.kind} ${e.change}${e.reviewed?" \xb7 reviewed":""}`},t))})]})]})})})}function C(e){let t=e.summary;return[t.fixed?`${t.fixed} fixed`:null,t.partially_fixed?`${t.partially_fixed} partially fixed`:null,t.not_fixed?`${t.not_fixed} not fixed`:null,t.unaddressed?`${t.unaddressed} unaddressed`:null,t.unknown?`${t.unknown} unknown`:null,t.unmapped?k(t.unmapped,"unmapped change"):null].filter(Boolean).join(" \xb7 ")}function P({title:e,hint:t,control:s,children:n}){return(0,i.jsxs)("section",{className:"rise-in mb-10",children:[(0,i.jsxs)("div",{className:"mb-3 flex flex-wrap items-end justify-between gap-3",children:[(0,i.jsxs)("div",{className:"min-w-0",children:[i.jsx("h2",{className:"text-heading font-medium text-text-primary",children:e}),t&&i.jsx("p",{className:"mt-0.5 text-caption text-text-tertiary",children:t})]}),s]}),i.jsx("div",{className:"-mx-2",children:n})]})}function R({selected:e,onClick:t,leading:s,title:n,subtitle:a,trailing:r}){return(0,i.jsxs)("button",{type:"button",onClick:t,className:(0,b.cn)("flex w-full items-center gap-3 rounded-md px-2 py-2 text-left",e?"bg-accent-subtle":"hover:bg-surface-1"),children:[s&&i.jsx("span",{className:"flex w-4 shrink-0 justify-center",children:s}),(0,i.jsxs)("span",{className:"min-w-0 flex-1",children:[i.jsx("span",{className:(0,b.cn)("block truncate text-body",e?"text-accent":"text-text-primary"),children:n}),a&&i.jsx("span",{className:"block truncate text-caption text-text-tertiary",children:a})]}),r&&i.jsx("span",{className:"shrink-0 text-caption text-text-tertiary",children:r})]})}function q({id:e,states:t}){let s=t[e];return s?(0,i.jsxs)(a.default,{href:`/review?fn=${encodeURIComponent(e)}`,className:"inline-flex h-8 items-center gap-2 rounded-md border border-border-default bg-surface-0 px-3 text-body font-medium text-text-primary shadow-sm hover:bg-surface-2",children:[i.jsx(m.e,{state:s})," Open in Review"]}):null}function z({sel:e,diff:t,prior:s,fixReview:r,reviewStates:o,onClose:l}){if("change"===e.kind&&t){let s=t.changes[e.i],n=`${s.contract}.${s.entity}`;return i.jsx(d.lj,{eyebrow:`${s.contract} \xb7 ${s.kind.replace("_"," ")}`,title:i.jsx("span",{className:"font-mono text-body",children:s.entity}),subtitle:y[s.change],onClose:l,actions:i.jsx(q,{id:n,states:o}),children:i.jsx(d.oz,{label:"Where",children:"removed"!==s.change&&s.line_start?i.jsx(h.i,{file:s.file,lineStart:s.line_start,lineEnd:s.line_end}):i.jsx("span",{className:"font-mono text-caption text-text-secondary",children:s.file})})})}if("impact"===e.kind&&t){let s=t.impacted[e.i],n=`${s.contract}.${s.function}`;return(0,i.jsxs)(d.lj,{eyebrow:`${s.contract} \xb7 ${s.is_entry_point?"Entry point":s.visibility}`,title:s.function.split("(")[0],subtitle:i.jsx("span",{className:"font-mono",children:s.function}),onClose:l,actions:i.jsx(q,{id:n,states:o}),children:[(0,i.jsxs)(d.oz,{label:"Why it is impacted",children:[i.jsx("ul",{className:"space-y-1.5",children:s.reasons.map((e,t)=>(0,i.jsxs)("li",{className:"text-body text-text-secondary",children:[v[e.kind]??e.kind," ",i.jsx("span",{className:"font-mono text-caption text-text-primary",children:e.via})]},t))}),(0,i.jsxs)("p",{className:"mt-2 text-caption text-text-tertiary",children:[0===s.depth?"Changed itself":`${k(s.depth,"hop")} from the nearest change`," ","\xb7 ",s.confidence," confidence"]})]}),i.jsx(d.oz,{label:"Where",children:i.jsx(h.i,{file:s.file,lineStart:s.line_start})})]})}if("storage"===e.kind&&t){let s=t.storage_layout_changes[e.i];return i.jsx(d.lj,{eyebrow:s.contract,title:s.kind.replace(/_/g," ").replace(/^./,e=>e.toUpperCase()),onClose:l,children:(0,i.jsxs)(d.oz,{label:"Detail",children:[i.jsx("p",{className:"text-body text-text-secondary",children:i.jsx(f.T9,{children:s.detail})}),i.jsx("p",{className:"mt-2 font-mono text-caption text-text-tertiary",children:s.file})]})})}if("prior"===e.kind&&s){let t=s.items[e.i];return i.jsx(d.lj,{eyebrow:`${t.id} \xb7 prior audit`,title:t.title,subtitle:i.jsx(p.oH,{severity:t.severity}),onClose:l,actions:t.issue_id?(0,i.jsxs)(a.default,{href:`/issues?card=${encodeURIComponent(t.issue_id)}`,className:"inline-flex h-8 items-center rounded-md border border-border-default bg-surface-0 px-3 text-body font-medium text-text-primary shadow-sm hover:bg-surface-2",children:["Open card ",t.issue_id]}):void 0,children:i.jsx(d.oz,{label:_[t.status]?.label??t.status,children:i.jsx("p",{className:"text-body text-text-secondary",children:t.reasoning})})})}if("fix"===e.kind&&r){let t=r.cards[e.i];return(0,i.jsxs)(d.lj,{eyebrow:`${t.id}${t.github_issue?` \xb7 #${t.github_issue}`:""}`,title:t.title,subtitle:i.jsx(p.oH,{severity:t.severity}),onClose:l,actions:i.jsx(a.default,{href:`/issues?card=${encodeURIComponent(t.id)}`,className:"inline-flex h-8 items-center rounded-md border border-border-default bg-surface-0 px-3 text-body font-medium text-text-primary shadow-sm hover:bg-surface-2",children:"Open card"}),children:[(0,i.jsxs)(d.oz,{label:"Status",children:[(0,i.jsxs)("p",{className:"flex items-center gap-2 text-body text-text-primary",children:[i.jsx(p.oT,{color:w[t.status]?.color??"var(--neutral)"}),w[t.status]?.label??t.status]}),t.evidence&&i.jsx("p",{className:"mt-1.5 text-body text-text-secondary",children:t.evidence})]}),(t.poc.file||t.poc.before||t.poc.after)&&(0,i.jsxs)(d.oz,{label:"Proof of concept",children:[t.poc.file&&i.jsx("p",{className:"truncate font-mono text-caption text-text-secondary",children:t.poc.file}),t.poc.before&&i.jsx(d.vz,{label:"Audited",children:N[t.poc.before]??t.poc.before}),t.poc.after&&i.jsx(d.vz,{label:"Fixed",children:N[t.poc.after]??t.poc.after})]}),(t.changed_functions.length>0||t.commits.length>0)&&(0,i.jsxs)(d.oz,{label:"Changed by",children:[t.changed_functions.map(e=>i.jsx(a.default,{href:`/review?fn=${encodeURIComponent(e)}`,className:"-mx-1.5 block truncate rounded-md px-1.5 py-1 text-body text-text-primary hover:bg-surface-2",children:e.split("(")[0]},e)),t.commits.length>0&&i.jsx("p",{className:"mt-1 font-mono text-caption text-text-tertiary",children:t.commits.join(", ")})]}),(t.proposed.resolution||t.proposed.update_from_client)&&(0,i.jsxs)(d.oz,{label:t.applied_at?"Applied to GitHub":"Proposed",children:[t.proposed.resolution&&i.jsx(d.vz,{label:"Resolution",children:t.proposed.resolution}),t.proposed.update_from_client&&i.jsx("p",{className:"mt-1 text-body text-text-secondary",children:t.proposed.update_from_client}),t.applied_at&&i.jsx("p",{className:"mt-1 text-caption text-text-tertiary",children:i.jsx(n.P,{iso:t.applied_at})})]})]})}if("unmapped"===e.kind&&r){let t=r.unmapped_changes[e.i];return(0,i.jsxs)(d.lj,{eyebrow:`${t.contract} \xb7 ${t.kind} ${t.change}`,title:i.jsx("span",{className:"font-mono text-body",children:t.entity}),onClose:l,children:[i.jsx(d.oz,{label:"Where",children:i.jsx("p",{className:"font-mono text-caption text-text-secondary",children:t.file})}),t.impacted_entry_points.length>0&&i.jsx(d.oz,{label:"Reaches",children:t.impacted_entry_points.map(e=>i.jsx(a.default,{href:`/review?fn=${encodeURIComponent(e)}`,className:"-mx-1.5 block truncate rounded-md px-1.5 py-1 text-body text-text-primary hover:bg-surface-2",children:e.split("(")[0]},e))}),(0,i.jsxs)(d.oz,{label:"Review",children:[i.jsx("p",{className:"text-body text-text-secondary",children:t.reviewed?"Reviewed.":"Not reviewed yet."}),t.note&&i.jsx("p",{className:"mt-1 text-body text-text-secondary",children:t.note})]})]})}return i.jsx(u.u,{sentence:"Nothing selected."})}},8107:(e,t,s)=>{"use strict";s.d(t,{P:()=>n});var i=s(9899);function n({iso:e,className:t}){return i.jsx("time",{dateTime:e,className:t,suppressHydrationWarning:!0,children:new Date(e).toLocaleString()})}},394:(e,t,s)=>{"use strict";s.d(t,{s:()=>a});var i=s(9899),n=s(1593);function a({segments:e,value:t,onChange:s,className:a,ariaLabel:r,size:o="md",fill:l=!1}){return i.jsx("div",{role:"tablist","aria-label":r,className:(0,n.cn)("max-w-full items-center gap-0.5 overflow-x-auto rounded-lg bg-surface-2 p-0.5",l?"flex w-full":"inline-flex",a),children:e.map(e=>{let a=e.value===t;return(0,i.jsxs)("button",{role:"tab",type:"button","aria-selected":a,onClick:()=>s(e.value),className:(0,n.cn)("inline-flex h-6 shrink-0 items-center justify-center gap-1 whitespace-nowrap rounded-md font-medium","sm"===o?"px-1.5 text-[11.5px]":"px-2.5 text-caption",l&&"flex-1",a?"bg-surface-0 text-text-primary shadow-sm":"text-text-secondary hover:text-text-primary"),children:[e.label,void 0!==e.count&&i.jsx("span",{className:"tabular-nums text-text-tertiary",children:e.count})]},e.value)})})}},8913:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>u,dynamic:()=>m});var i=s(5023),n=s(1720),a=s(6905),r=s(6132),o=s(2548),l=s(2772);let d=(0,l.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx`),{__esModule:c,$$typeof:x}=d;d.default;let p=(0,l.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx#ChangesClient`),m="force-dynamic";function u(){let e=(0,n.gn)("diff.json"),t=(0,a.Rd)(),s=(0,a.zi)();if(!e&&!t){let e=s?.project?.diff?.base_commit;return(0,i.jsxs)("div",{className:"flex h-full flex-col",children:[i.jsx(o.o8,{title:"Changes"}),i.jsx(r.u,{sentence:"Changes shows what moved since the previously audited commit, and which flows it reaches.",command:e?"hex diff":"hex init --mode diff --base <commit>"})]})}let l={};for(let e of(0,a.Aw)(0).rows)l[e.id]=e.state;return i.jsx(p,{diff:e,overview:(0,n.ws)("diff-overview.md"),prior:(0,n.gn)("previous-audit/review.json"),fixReview:t,reviewStates:l})}}};var t=require("../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),i=t.X(0,[916,649,645,494,42,310,370,624,653],()=>s(8465));module.exports=i})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../package.json","../../chunks/
|
|
1
|
+
{"version":1,"files":["../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../package.json","../../chunks/310.js","../../chunks/370.js","../../chunks/42.js","../../chunks/494.js","../../chunks/624.js","../../chunks/645.js","../../chunks/649.js","../../chunks/653.js","../../chunks/916.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/changes/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/changes/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"4595":{"*":{"id":"1388","name":"*","chunks":[],"async":false}},"11076":{"*":{"id":"9323","name":"*","chunks":[],"async":false}},"11447":{"*":{"id":"5915","name":"*","chunks":[],"async":false}},"15276":{"*":{"id":"820","name":"*","chunks":[],"async":false}},"25268":{"*":{"id":"3817","name":"*","chunks":[],"async":false}},"43297":{"*":{"id":"1611","name":"*","chunks":[],"async":false}},"52331":{"*":{"id":"1174","name":"*","chunks":[],"async":false}},"56902":{"*":{"id":"2541","name":"*","chunks":[],"async":false}},"63237":{"*":{"id":"281","name":"*","chunks":[],"async":false}},"67498":{"*":{"id":"696","name":"*","chunks":[],"async":false}},"68916":{"*":{"id":"5314","name":"*","chunks":[],"async":false}},"71520":{"*":{"id":"5707","name":"*","chunks":[],"async":false}},"81751":{"*":{"id":"3368","name":"*","chunks":[],"async":false}},"84300":{"*":{"id":"9939","name":"*","chunks":[],"async":false}},"85581":{"*":{"id":"6462","name":"*","chunks":[],"async":false}},"88554":{"*":{"id":"1352","name":"*","chunks":[],"async":false}},"89690":{"*":{"id":"2204","name":"*","chunks":[],"async":false}},"92198":{"*":{"id":"9915","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/dx/Work/hex/node_modules/next/dist/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/globals.css":{"id":13812,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/AutoRefresh.tsx":{"id":84300,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/CommandPalette.tsx":{"id":92198,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Sidebar.tsx":{"id":63237,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Toast.tsx":{"id":88554,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next-themes/dist/index.mjs":{"id":4595,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Manrope\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\",\"display\":\"swap\"}],\"variableName\":\"manrope\"}":{"id":41600,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"JetBrains_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\",\"display\":\"swap\"}],\"variableName\":\"jetbrainsMono\"}":{"id":55256,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx":{"id":71520,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","217","static/chunks/217-1d5b680ffd10e3f9.js","2374","static/chunks/2374-8c6f137938f8518a.js","7834","static/chunks/7834-47f318a04a05688f.js","5381","static/chunks/app/changes/page-f8a860034221cad4.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/SplitView.tsx":{"id":81751,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","217","static/chunks/217-1d5b680ffd10e3f9.js","2374","static/chunks/2374-8c6f137938f8518a.js","7834","static/chunks/7834-47f318a04a05688f.js","5381","static/chunks/app/changes/page-f8a860034221cad4.js"],"async":false},"/home/dx/Work/hex/dashboard/app/issues/BoardClient.tsx":{"id":68916,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/model/ModelClient.tsx":{"id":85581,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/report/ReportClient.tsx":{"id":56902,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/review/ReviewClient.tsx":{"id":52331,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/link.js":{"id":67498,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","1931","static/chunks/app/page-0e67750d99fb2836.js"],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/link.js":{"id":67498,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","1931","static/chunks/app/page-0e67750d99fb2836.js"],"async":false}},"entryCSSFiles":{"/home/dx/Work/hex/dashboard/":[],"/home/dx/Work/hex/dashboard/app/layout":["static/css/ceafd91ca8dd753d.css"],"/home/dx/Work/hex/dashboard/app/page":[],"/home/dx/Work/hex/dashboard/app/changes/page":[]}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=824,e.ids=[824],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},7561:e=>{e.exports=require("node:fs")},9411:e=>{e.exports=require("node:path")},5309:(e,t,r)=>{let n;r.r(t),r.d(t,{originalPathname:()=>g,patchFetch:()=>q,requestAsyncStorage:()=>w,routeModule:()=>m,serverHooks:()=>v,staticGenerationAsyncStorage:()=>y});var a={};r.r(a),r.d(a,{GET:()=>h,dynamic:()=>f});var s=r(3277),o=r(5265),i=r(5356),u=r(7076),l=r(7561),p=r.n(l),d=r(9411),c=r.n(d);let f="force-dynamic",x={".woff2":"font/woff2",".woff":"font/woff",".ttf":"font/ttf"};async function h(e,{params:t}){let r=function(){if(void 0!==n)return n;n=null;try{let e="function"==typeof require?require:null,t=e?.resolve("@excalidraw/excalidraw");if(t){let e=c().dirname(t);p().existsSync(c().join(e,"fonts"))&&(n=e)}}catch{}return n}(),a=t.path.join("/");if(!r||!a.startsWith("fonts/")||a.includes(".."))return new u.NextResponse(null,{status:404});let s=c().join(r,a),o=x[c().extname(s)];if(!o||!s.startsWith(c().join(r,"fonts")+c().sep))return new u.NextResponse(null,{status:404});try{let e=p().readFileSync(s);return new u.NextResponse(new Uint8Array(e),{headers:{"Content-Type":o,"Cache-Control":"public, max-age=31536000, immutable"}})}catch{return new u.NextResponse(null,{status:404})}}let m=new s.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/excalidraw-assets/[...path]/route",pathname:"/excalidraw-assets/[...path]",filename:"route",bundlePath:"app/excalidraw-assets/[...path]/route"},resolvedPagePath:"/home/dx/Work/hex/dashboard/app/excalidraw-assets/[...path]/route.ts",nextConfigOutput:"",userland:a}),{requestAsyncStorage:w,staticGenerationAsyncStorage:y,serverHooks:v}=m,g="/excalidraw-assets/[...path]/route";function q(){return(0,i.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:y})}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[916,786],()=>r(5309));module.exports=n})();
|