hex-audit 0.6.3 → 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 +41 -105
- package/README.md +205 -353
- package/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/app-build-manifest.json +65 -99
- package/dashboard/.next/app-path-routes-manifest.json +1 -1
- package/dashboard/.next/build-manifest.json +14 -14
- package/dashboard/.next/next-minimal-server.js.nft.json +1 -1
- package/dashboard/.next/next-server.js.nft.json +1 -1
- package/dashboard/.next/prerender-manifest.js +1 -1
- package/dashboard/.next/prerender-manifest.json +1 -1
- package/dashboard/.next/react-loadable-manifest.json +540 -119
- 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 -0
- package/dashboard/.next/server/app/{access → changes}/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/changes/page_client-reference-manifest.js +1 -0
- 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/{conformance → 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 +20 -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/next-font-manifest.js +1 -1
- package/dashboard/.next/server/next-font-manifest.json +1 -1
- package/dashboard/.next/server/pages/500.html +1 -1
- package/dashboard/.next/server/pages/_error.js +1 -1
- package/dashboard/.next/server/pages-manifest.json +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/bGV1ry1vvIbM5b506eVBR/_buildManifest.js +1 -0
- package/dashboard/.next/static/chunks/0bbe10ee.8e7ffa06d2170dfe.js +84 -0
- package/dashboard/.next/static/chunks/{1.8868c4d131111be7.js → 1.a666047ea18866fb.js} +2 -2
- package/dashboard/.next/static/chunks/1015.39008440ab15e196.js +226 -0
- package/dashboard/.next/static/chunks/1026.0ef689a305302427.js +1 -0
- package/dashboard/.next/static/chunks/1151.497fa63c5b9eba52.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/1199.f30cbfa151e56076.js +148 -0
- package/dashboard/.next/static/chunks/1291.6c486c9b1d4b1b3a.js +1 -0
- package/dashboard/.next/static/chunks/1375.64c20f1064a38a10.js +43 -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/1799.8dc56017eede704e.js +9 -0
- package/dashboard/.next/static/chunks/1e36816c.5748c83adc8a6bd6.js +108 -0
- package/dashboard/.next/static/chunks/20154aaa.e87f69fe10483f8b.js +1 -0
- package/dashboard/.next/static/chunks/2061.eab75b3c1dfa068a.js +1 -0
- package/dashboard/.next/static/chunks/2077.5603adeb156c7d10.js +1 -0
- package/dashboard/.next/static/chunks/2148.3ce718f62d1b2f7c.js +10 -0
- package/dashboard/.next/static/chunks/2166.9f6592b9399eadd8.js +215 -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/{2291.85a70cb0c228157b.js → 2291.584b42ccad079b99.js} +1 -1
- package/dashboard/.next/static/chunks/2325.7decd077edfb81d9.js +24 -0
- package/dashboard/.next/static/chunks/2374-8c6f137938f8518a.js +1 -0
- package/dashboard/.next/static/chunks/{2383.62c035a052272594.js → 2383.ca81f980ce6528a4.js} +1 -1
- package/dashboard/.next/static/chunks/2445.18a86507d2996b95.js +1 -0
- package/dashboard/.next/static/chunks/2694.7dfa5fef28851903.js +1 -0
- package/dashboard/.next/static/chunks/2712.15dd8577973baf22.js +10 -0
- package/dashboard/.next/static/chunks/275.38af87389c1d33d7.js +34 -0
- package/dashboard/.next/static/chunks/2759.533dec5317e0a1d1.js +1 -0
- package/dashboard/.next/static/chunks/2781.fba46046dbf2693b.js +93 -0
- package/dashboard/.next/static/chunks/2805.35b4cd8a94978aaf.js +1 -0
- package/dashboard/.next/static/chunks/2812.62b213bef580b69a.js +1 -0
- package/dashboard/.next/static/chunks/{2879.51436986f93981d9.js → 2879.74d65e33e60505ee.js} +1 -1
- 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/3205-fd963acf2fdfd080.js +2 -0
- package/dashboard/.next/static/chunks/3206.8d9a10db2b04b93f.js +1 -0
- package/dashboard/.next/static/chunks/3236.eac9855778a54518.js +1 -0
- package/dashboard/.next/static/chunks/3480.853a445a3784642a.js +1 -0
- package/dashboard/.next/static/chunks/3485.36766504793b7237.js +9 -0
- package/dashboard/.next/static/chunks/3626.c5dacee11c8fbc4d.js +64 -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/3865.5e6d2d501380e03b.js +90 -0
- package/dashboard/.next/static/chunks/3887.073cece834a4eae2.js +1 -0
- package/dashboard/.next/static/chunks/3924-f1f85ccc7d59d7ab.js +1 -0
- package/dashboard/.next/static/chunks/3948.74201b9f0672234d.js +287 -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/4728.e69372b5e5b61b8d.js +24 -0
- package/dashboard/.next/static/chunks/4787.821a6ad2816cdc60.js +23 -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/5060.47402abc10273699.js +1 -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/5284.334c7c0587d5d47a.js +1 -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/5715.e16b1230cc4b4652.js +115 -0
- package/dashboard/.next/static/chunks/5775.a0d7c1b1e89b9a93.js +9 -0
- package/dashboard/.next/static/chunks/6014.641a2c53ba506241.js +104 -0
- package/dashboard/.next/static/chunks/6024.f099c15f75aa6722.js +79 -0
- package/dashboard/.next/static/chunks/{6052.033a6f1013c666eb.js → 6052.3001318955e5b36c.js} +2 -2
- 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/6177.a01cf0a03734cf09.js +1 -0
- package/dashboard/.next/static/chunks/618f8807-fbb1466bc29c17c6.js +1 -0
- package/dashboard/.next/static/chunks/6434.f560693253fea8de.js +1 -0
- package/dashboard/.next/static/chunks/6468.976d89ba133185f1.js +77 -0
- package/dashboard/.next/static/chunks/6540.6f3c4f2c6877ed89.js +1 -0
- package/dashboard/.next/static/chunks/6549.e3c4c1766cff1449.js +1 -0
- package/dashboard/.next/static/chunks/6853.d3ad43614e8ca0ab.js +1 -0
- package/dashboard/.next/static/chunks/690f35d0.ab57e02a04c7e9e0.js +119 -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/{7020.831e16e26d91abc1.js → 7020.b718b1b9cea36e60.js} +2 -2
- package/dashboard/.next/static/chunks/7107.1c5412197912b8ed.js +8 -0
- package/dashboard/.next/static/chunks/7498-7cf464d8af69cd0a.js +1 -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/7802.f0134c792fccd382.js +80 -0
- package/dashboard/.next/static/chunks/7834-47f318a04a05688f.js +1 -0
- package/dashboard/.next/static/chunks/{7a04ac15.1c6cea694301806c.js → 7a04ac15.e49de94ece135900.js} +1 -1
- package/dashboard/.next/static/chunks/8216.1138ec313908a708.js +5 -0
- package/dashboard/.next/static/chunks/{8233babc.780b8e272eda298f.js → 8233babc.09872dcb3ff44064.js} +1 -1
- 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/8645.98a43217d406500e.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/9173.a7160f7d0b685fa7.js +1 -0
- package/dashboard/.next/static/chunks/9178.998a8c49996de8e4.js +1 -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/9466.a914ce0de7d3bb84.js +1 -0
- package/dashboard/.next/static/chunks/9660.b1c8deae2c449d14.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/{9717.6cf5c8c89403b651.js → 9717.bba51b78ebd8fd29.js} +1 -1
- package/dashboard/.next/static/chunks/9720.d63a0696776bcc60.js +1 -0
- package/dashboard/.next/static/chunks/9791.e3b3f5a367f63c8a.js +1 -0
- package/dashboard/.next/static/chunks/9811.2993c4cbd28e8d1b.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/_not-found/page-5ff5d54b6fd6f17e.js +1 -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/{b7167ec1.7afbab6f609e3326.js → b7167ec1.708a3d61698ca2e6.js} +1 -1
- package/dashboard/.next/static/chunks/c75e29e3.d91220f782934d80.js +1 -0
- package/dashboard/.next/static/chunks/c7ea4e13.3073a2f551aa5ac8.js +1 -0
- package/dashboard/.next/static/chunks/framework-a117d81bf1b91f9a.js +33 -0
- package/dashboard/.next/static/chunks/main-9c95a7ffedc7afb4.js +1 -0
- package/dashboard/.next/static/chunks/main-app-5662c64b50ba40d1.js +1 -0
- package/dashboard/.next/static/chunks/pages/_app-308fef0bf9b328f2.js +1 -0
- package/dashboard/.next/static/chunks/pages/_error-c91b5eabd7ac9382.js +1 -0
- 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/39f449c8730c2295-s.woff2 +0 -0
- package/dashboard/.next/static/media/86f65e8637cc94e3-s.woff2 +0 -0
- package/dashboard/.next/static/media/8760c4774489e4ba-s.p.woff2 +0 -0
- package/dashboard/.next/static/media/9fabb9c65b63d798-s.woff2 +0 -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/.next/static/media/a1f87af3f44fadbb-s.woff2 +0 -0
- package/dashboard/.next/static/media/f9e1dbe9676d9bb6-s.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 +838 -0
- package/dashboard/app/changes/page.tsx +44 -0
- 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 +37 -10
- package/dashboard/app/model/ModelClient.tsx +1303 -0
- package/dashboard/app/model/page.tsx +98 -0
- package/dashboard/app/page.tsx +195 -239
- 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 +113 -0
- package/dist/analysis/code-model.d.ts.map +1 -0
- package/dist/analysis/code-model.js +532 -0
- package/dist/analysis/code-model.js.map +1 -0
- package/dist/analysis/diff.d.ts +75 -0
- package/dist/analysis/diff.d.ts.map +1 -0
- package/dist/analysis/diff.js +787 -0
- package/dist/analysis/diff.js.map +1 -0
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +25 -40
- 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 +25 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +257 -0
- package/dist/commands/diff.js.map +1 -0
- 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 +106 -42
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/issue.d.ts.map +1 -1
- package/dist/commands/issue.js +154 -5
- 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 +61 -3
- 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 +9 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +18 -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 +16 -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 +31 -0
- package/dist/core/git.d.ts.map +1 -0
- package/dist/core/git.js +157 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/issues.d.ts +35 -2
- package/dist/core/issues.d.ts.map +1 -1
- package/dist/core/issues.js +201 -30
- 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 +27 -1
- package/dist/core/notes.d.ts.map +1 -1
- package/dist/core/notes.js +47 -5
- 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 +5458 -2189
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +605 -114
- 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/core/skills.d.ts +10 -4
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +100 -37
- package/dist/core/skills.js.map +1 -1
- 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 +16 -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/LICENSE +21 -0
- package/dist/skills/ai-audit/SKILL.md +486 -0
- package/dist/skills/ai-audit/UPSTREAM.md +51 -0
- package/dist/skills/ai-audit/references/agent-prompts.md +133 -0
- package/dist/skills/ai-audit/references/assemble.sh +357 -0
- package/dist/skills/ai-audit/references/dedup-and-assembly.md +420 -0
- package/dist/skills/ai-audit/references/hacking-agents/access-control-agent.md +27 -0
- package/dist/skills/ai-audit/references/hacking-agents/asymmetry-agent.md +77 -0
- package/dist/skills/ai-audit/references/hacking-agents/boundary-agent.md +79 -0
- package/dist/skills/ai-audit/references/hacking-agents/economic-security-agent.md +35 -0
- package/dist/skills/ai-audit/references/hacking-agents/execution-trace-agent.md +33 -0
- package/dist/skills/ai-audit/references/hacking-agents/first-principles-agent.md +36 -0
- package/dist/skills/ai-audit/references/hacking-agents/flow-gap-agent.md +49 -0
- package/dist/skills/ai-audit/references/hacking-agents/invariant-agent.md +44 -0
- package/dist/skills/ai-audit/references/hacking-agents/math-precision-agent.md +48 -0
- package/dist/skills/ai-audit/references/hacking-agents/numerical-gap-agent.md +46 -0
- package/dist/skills/ai-audit/references/hacking-agents/periphery-agent.md +27 -0
- package/dist/skills/ai-audit/references/hacking-agents/shared-rules.md +61 -0
- package/dist/skills/ai-audit/references/hacking-agents/trust-gap-agent.md +40 -0
- package/dist/skills/ai-audit/references/hex-board.md +211 -0
- package/dist/skills/ai-audit/references/hex-export.sh +71 -0
- package/dist/skills/ai-audit/references/judging.md +75 -0
- package/dist/skills/ai-audit/references/report-formatting.md +385 -0
- package/dist/skills/ai-audit/references/report-language.md +151 -0
- package/dist/skills/ai-audit/references/senior-auditor-sop.md +63 -0
- 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 +24 -8
- 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 +3 -3
- package/dist/skills/validate-finding.md +33 -28
- package/dist/skills/write-finding.md +6 -5
- package/dist/types/index.d.ts +22 -12
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +6 -4
- package/dashboard/.next/server/app/_not-found.html +0 -1
- package/dashboard/.next/server/app/_not-found.meta +0 -6
- package/dashboard/.next/server/app/_not-found.rsc +0 -12
- 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_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/diagram.html +0 -1
- package/dashboard/.next/server/app/diagram.meta +0 -5
- package/dashboard/.next/server/app/diagram.rsc +0 -10
- 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/flows.html +0 -1
- package/dashboard/.next/server/app/flows.meta +0 -5
- package/dashboard/.next/server/app/flows.rsc +0 -10
- 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/44.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/pages/404.html +0 -1
- package/dashboard/.next/static/AyrRAwu4mazjp8iX4Yjbb/_buildManifest.js +0 -1
- package/dashboard/.next/static/chunks/1015.3ab89142e5f44120.js +0 -226
- package/dashboard/.next/static/chunks/1151.b6ef5c786e587ed7.js +0 -1
- package/dashboard/.next/static/chunks/1199.a072929dbec89965.js +0 -148
- package/dashboard/.next/static/chunks/1375.d4d2f7fc9c9c2ff1.js +0 -43
- package/dashboard/.next/static/chunks/1799.83206776abbbf1fc.js +0 -9
- package/dashboard/.next/static/chunks/20154aaa.ccc347c04ab5ad4a.js +0 -1
- package/dashboard/.next/static/chunks/2077.7011a570c87aa7b1.js +0 -1
- package/dashboard/.next/static/chunks/2166.cc0fabeb2e89b840.js +0 -215
- package/dashboard/.next/static/chunks/2325.2c55cb9a6282ae3f.js +0 -24
- package/dashboard/.next/static/chunks/2694.92bbe252063e4786.js +0 -1
- package/dashboard/.next/static/chunks/275.0d761aa0e5b030b8.js +0 -34
- package/dashboard/.next/static/chunks/2781.8536b644a480aede.js +0 -93
- package/dashboard/.next/static/chunks/2805.a8d71d2f92bb6ba9.js +0 -1
- package/dashboard/.next/static/chunks/3017.e55781da9dd32d37.js +0 -1
- package/dashboard/.next/static/chunks/3205-728c260fbb4f89c6.js +0 -2
- package/dashboard/.next/static/chunks/3236.dff44fa7961d9d5e.js +0 -1
- package/dashboard/.next/static/chunks/3480.9451396ad7ee7613.js +0 -1
- package/dashboard/.next/static/chunks/3626.ba1cf848a9f2e93d.js +0 -64
- package/dashboard/.next/static/chunks/3865.a432a7910a2f5281.js +0 -90
- package/dashboard/.next/static/chunks/3887.c22cbfa3f095826c.js +0 -1
- package/dashboard/.next/static/chunks/3924-4a05057b5450abe1.js +0 -1
- package/dashboard/.next/static/chunks/3948.fe3c7d758568d98b.js +0 -287
- package/dashboard/.next/static/chunks/4728.07d87640a3e7dd0d.js +0 -24
- package/dashboard/.next/static/chunks/4787.4e5f6a0e0e40a583.js +0 -23
- package/dashboard/.next/static/chunks/5060.baca226af35ed016.js +0 -1
- package/dashboard/.next/static/chunks/5284.f949ac90c95ff143.js +0 -1
- package/dashboard/.next/static/chunks/5715.1524bcc9591e180b.js +0 -115
- package/dashboard/.next/static/chunks/6014.700ae4969b64d728.js +0 -104
- package/dashboard/.next/static/chunks/6024.4d23707c65514679.js +0 -79
- package/dashboard/.next/static/chunks/6177.e5c84cfc4c0dea51.js +0 -1
- package/dashboard/.next/static/chunks/618f8807-547c5614e1318888.js +0 -1
- package/dashboard/.next/static/chunks/6434.9481771c33195d29.js +0 -1
- package/dashboard/.next/static/chunks/6468.f4a3e8fa6accc6da.js +0 -77
- package/dashboard/.next/static/chunks/6540.86f367d7390738d4.js +0 -1
- package/dashboard/.next/static/chunks/6549.4d0d472df96429a5.js +0 -1
- package/dashboard/.next/static/chunks/690f35d0.3e40ca0930e4bbdb.js +0 -119
- package/dashboard/.next/static/chunks/7397-f6f4dddc7a20bfc1.js +0 -1
- package/dashboard/.next/static/chunks/7498-ea83cb9e30ec5491.js +0 -1
- package/dashboard/.next/static/chunks/7802.89aec9ee11680850.js +0 -80
- package/dashboard/.next/static/chunks/7973.8b526f589aca5d84.js +0 -79
- package/dashboard/.next/static/chunks/8216.1bead812eb126c35.js +0 -5
- package/dashboard/.next/static/chunks/8452-e616b5f43bceb95f.js +0 -13
- package/dashboard/.next/static/chunks/8645.a5ca76f11edc9633.js +0 -1
- package/dashboard/.next/static/chunks/8928-60c623ee89d2e6ad.js +0 -1
- package/dashboard/.next/static/chunks/9173.2486ffca31131ec5.js +0 -1
- package/dashboard/.next/static/chunks/9178.469341860bf8caec.js +0 -1
- package/dashboard/.next/static/chunks/9466.e904660d38c03eea.js +0 -1
- package/dashboard/.next/static/chunks/9660.84a85811380c5f33.js +0 -1
- package/dashboard/.next/static/chunks/9720.67d4d0d15a96d691.js +0 -1
- package/dashboard/.next/static/chunks/9811.65e1d080c2d256af.js +0 -1
- package/dashboard/.next/static/chunks/app/_not-found/page-548ab392d0e890d1.js +0 -1
- package/dashboard/.next/static/chunks/app/access/page-3668562e7464eb5d.js +0 -1
- package/dashboard/.next/static/chunks/app/calls/page-d07f5b8664cc8303.js +0 -1
- package/dashboard/.next/static/chunks/app/conformance/page-2fede1d7b5f9265d.js +0 -1
- package/dashboard/.next/static/chunks/app/diagram/page-b228444265546495.js +0 -1
- package/dashboard/.next/static/chunks/app/flows/page-fa67783d8cd79cab.js +0 -1
- package/dashboard/.next/static/chunks/app/functions/page-686f0296639133a3.js +0 -1
- package/dashboard/.next/static/chunks/app/issues/page-98a298e1c1045c91.js +0 -1
- package/dashboard/.next/static/chunks/app/layout-49f2496c7637d931.js +0 -1
- package/dashboard/.next/static/chunks/app/notes/page-17af94c67ba79c00.js +0 -1
- package/dashboard/.next/static/chunks/app/page-24bac51dfe007c66.js +0 -1
- package/dashboard/.next/static/chunks/app/progress/page-427fb18da3afb061.js +0 -1
- package/dashboard/.next/static/chunks/app/report/page-796f2f4a8a5ac8f7.js +0 -1
- package/dashboard/.next/static/chunks/app/stats/page-db81f600a086f252.js +0 -1
- package/dashboard/.next/static/chunks/c7ea4e13.5effeeba6618bdb7.js +0 -1
- package/dashboard/.next/static/chunks/framework-cf6f5bdca6ba0184.js +0 -33
- package/dashboard/.next/static/chunks/main-63ff429eab01f5bf.js +0 -1
- package/dashboard/.next/static/chunks/main-app-9d2f6b8a47133e9b.js +0 -1
- package/dashboard/.next/static/chunks/pages/_app-6ad2b50514c24ab4.js +0 -1
- package/dashboard/.next/static/chunks/pages/_error-d5eb11c5c4626811.js +0 -1
- package/dashboard/.next/static/chunks/webpack-08869f2b18792e51.js +0 -1
- package/dashboard/.next/static/css/4a38d8f6f6b7a68f.css +0 -3
- package/dashboard/.next/static/media/438aa629764e75f3-s.woff2 +0 -0
- package/dashboard/.next/static/media/4c9affa5bc8f420e-s.p.woff2 +0 -0
- package/dashboard/.next/static/media/51251f8b9793cdb3-s.woff2 +0 -0
- package/dashboard/.next/static/media/875ae681bfde4580-s.woff2 +0 -0
- package/dashboard/.next/static/media/cc978ac5ee68c2b6-s.woff2 +0 -0
- package/dashboard/.next/static/media/e857b654a2caa584-s.woff2 +0 -0
- 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 -803
- package/dashboard/app/notes/NotesClient.tsx +0 -701
- 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 -485
- 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 -284
- /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/{AyrRAwu4mazjp8iX4Yjbb → bGV1ry1vvIbM5b506eVBR}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
(()=>{var e={};e.id=521,e.ids=[521],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")},1834:(e,t,n)=>{"use strict";n.r(t),n.d(t,{GlobalError:()=>a.a,__next_app__:()=>f,originalPathname:()=>u,pages:()=>d,routeModule:()=>h,tree:()=>c}),n(9817),n(819),n(2874);var r=n(7105),i=n(5265),l=n(157),a=n.n(l),o=n(4665),s={};for(let e in o)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(s[e]=()=>o[e]);n.d(t,s);let c=["",{children:["issues",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(n.bind(n,9817)),"/home/dx/Work/hex/dashboard/app/issues/page.tsx"]}]},{metadata:{icon:[async e=>(await Promise.resolve().then(n.bind(n,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(n.bind(n,819)),"/home/dx/Work/hex/dashboard/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(n.t.bind(n,2874,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(n.bind(n,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],d=["/home/dx/Work/hex/dashboard/app/issues/page.tsx"],u="/issues/page",f={require:n,loadChunk:()=>Promise.resolve()},h=new r.AppPageRouteModule({definition:{kind:i.x.APP_PAGE,page:"/issues/page",pathname:"/issues",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},3365:(e,t,n)=>{Promise.resolve().then(n.bind(n,618))},618:(e,t,n)=>{"use strict";let r;n.d(t,{IssuesBoardClient:()=>tt});var i,l,a,o,s,c,d,u,f,h,p=n(9899),g=n(5507),m=n.n(g),x=n(5408);let b="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function v(e){let t=Object.prototype.toString.call(e);return"[object Window]"===t||"[object global]"===t}function y(e){return"nodeType"in e}function w(e){var t,n;return e?v(e)?e:y(e)&&null!=(t=null==(n=e.ownerDocument)?void 0:n.defaultView)?t:window:window}function j(e){let{Document:t}=w(e);return e instanceof t}function C(e){return!v(e)&&e instanceof w(e).HTMLElement}function _(e){return e instanceof w(e).SVGElement}function S(e){return e?v(e)?e.document:y(e)?j(e)?e:C(e)||_(e)?e.ownerDocument:document:document:document}let N=b?g.useLayoutEffect:g.useEffect;function D(e){let t=(0,g.useRef)(e);return N(()=>{t.current=e}),(0,g.useCallback)(function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];return null==t.current?void 0:t.current(...n)},[])}function k(e,t){void 0===t&&(t=[e]);let n=(0,g.useRef)(e);return N(()=>{n.current!==e&&(n.current=e)},t),n}function E(e,t){let n=(0,g.useRef)();return(0,g.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function M(e){let t=D(e),n=(0,g.useRef)(null),r=(0,g.useCallback)(e=>{e!==n.current&&(null==t||t(e,n.current)),n.current=e},[]);return[n,r]}function R(e){let t=(0,g.useRef)();return(0,g.useEffect)(()=>{t.current=e},[e]),t.current}let T={};function P(e,t){return(0,g.useMemo)(()=>{if(t)return t;let n=null==T[e]?0:T[e]+1;return T[e]=n,e+"-"+n},[e,t])}function O(e){return function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return r.reduce((t,n)=>{for(let[r,i]of Object.entries(n)){let n=t[r];null!=n&&(t[r]=n+e*i)}return t},{...t})}}let L=O(1),A=O(-1);function $(e){if(!e)return!1;let{KeyboardEvent:t}=w(e.target);return t&&e instanceof t}function I(e){if(function(e){if(!e)return!1;let{TouchEvent:t}=w(e.target);return t&&e instanceof t}(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return"clientX"in e&&"clientY"in e?{x:e.clientX,y:e.clientY}:null}let B=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[B.Translate.toString(e),B.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),F="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",H={display:"none"};function U(e){let{id:t,value:n}=e;return m().createElement("div",{id:t,style:H},n)}function z(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;return m().createElement("div",{id:t,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":r,"aria-atomic":!0},n)}let q=(0,g.createContext)(null),G={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},W={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function K(e){let{announcements:t=W,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=G}=e,{announce:l,announcement:a}=function(){let[e,t]=(0,g.useState)("");return{announce:(0,g.useCallback)(e=>{null!=e&&t(e)},[]),announcement:e}}(),o=P("DndLiveRegion"),[s,c]=(0,g.useState)(!1);if((0,g.useEffect)(()=>{c(!0)},[]),function(e){let t=(0,g.useContext)(q);(0,g.useEffect)(()=>{if(!t)throw Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}((0,g.useMemo)(()=>({onDragStart(e){let{active:n}=e;l(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&l(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;l(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;l(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;l(t.onDragCancel({active:n,over:r}))}}),[l,t])),!s)return null;let d=m().createElement(m().Fragment,null,m().createElement(U,{id:r,value:i.draggable}),m().createElement(z,{id:o,announcement:a}));return n?(0,x.createPortal)(d,n):d}function J(){}!function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"}(i||(i={}));let V=Object.freeze({x:0,y:0});function X(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}let Y=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,l=n.get(r);if(l){let n=function(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),l=Math.min(t.top+t.height,e.top+e.height);if(r<i&&n<l){let a=t.width*t.height,o=e.width*e.height,s=(i-r)*(l-n);return Number((s/(a+o-s)).toFixed(4))}return 0}(l,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(X)};function Z(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:V}let Q=function(e){return function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return r.reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}(1),ee={ignoreTransform:!1};function et(e,t){void 0===t&&(t=ee);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=w(e).getComputedStyle(e);t&&(n=function(e,t,n){let r=function(e){if(e.startsWith("matrix3d(")){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith("matrix(")){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}(t);if(!r)return e;let{scaleX:i,scaleY:l,x:a,y:o}=r,s=e.left-a-(1-i)*parseFloat(n),c=e.top-o-(1-l)*parseFloat(n.slice(n.indexOf(" ")+1)),d=i?e.width/i:e.width,u=l?e.height/l:e.height;return{width:d,height:u,top:c,right:s+d,bottom:c+u,left:s}}(n,t,r))}let{top:r,left:i,width:l,height:a,bottom:o,right:s}=n;return{top:r,left:i,width:l,height:a,bottom:o,right:s}}function en(e){return et(e,{ignoreTransform:!0})}function er(e,t){let n=[];return e?function r(i){var l;if(null!=t&&n.length>=t||!i)return n;if(j(i)&&null!=i.scrollingElement&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!C(i)||_(i)||n.includes(i))return n;let a=w(e).getComputedStyle(i);return(i!==e&&function(e,t){void 0===t&&(t=w(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(e=>{let r=t[e];return"string"==typeof r&&n.test(r)})}(i,a)&&n.push(i),void 0===(l=a)&&(l=w(i).getComputedStyle(i)),"fixed"===l.position)?n:r(i.parentNode)}(e):n}function ei(e){let[t]=er(e,1);return null!=t?t:null}function el(e){return b&&e?v(e)?e:y(e)?j(e)||e===S(e).scrollingElement?window:C(e)?e:null:null:null}function ea(e){return v(e)?e.scrollX:e.scrollLeft}function eo(e){return v(e)?e.scrollY:e.scrollTop}function es(e){return{x:ea(e),y:eo(e)}}function ec(e){return!!b&&!!e&&e===document.scrollingElement}function ed(e){let t={x:0,y:0},n=ec(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},i=e.scrollTop<=t.y;return{isTop:i,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}!function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"}(l||(l={}));let eu={x:.2,y:.2};function ef(e){return e.reduce((e,t)=>L(e,es(t)),V)}let eh=[["x",["left","right"],function(e){return e.reduce((e,t)=>e+ea(t),0)}],["y",["top","bottom"],function(e){return e.reduce((e,t)=>e+eo(t),0)}]];class ep{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=er(t),r=ef(n);for(let[t,i,l]of(this.rect={...e},this.width=e.width,this.height=e.height,eh))for(let e of i)Object.defineProperty(this,e,{get:()=>{let i=l(n),a=r[t]-i;return this.rect[e]+a},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class eg{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,n){var r;null==(r=this.target)||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}}function em(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return"number"==typeof t?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t&&r>t.y}function ex(e){e.preventDefault()}function eb(e){e.stopPropagation()}(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(a||(a={})),function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"}(o||(o={}));let ev={start:[o.Space,o.Enter],cancel:[o.Esc],end:[o.Space,o.Enter,o.Tab]},ey=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case o.Right:return{...n,x:n.x+25};case o.Left:return{...n,x:n.x-25};case o.Down:return{...n,y:n.y+25};case o.Up:return{...n,y:n.y-25}}};class ew{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new eg(S(t)),this.windowListeners=new eg(w(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(a.Resize,this.handleCancel),this.windowListeners.add(a.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(a.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&function(e,t){if(void 0===t&&(t=et),!e)return;let{top:n,left:r,bottom:i,right:l}=t(e);ei(e)&&(i<=0||l<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}(n),t(V)}handleKeyDown(e){if($(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=ev,coordinateGetter:l=ey,scrollBehavior:a="smooth"}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,d=c?{x:c.left,y:c.top}:V;this.referenceCoordinates||(this.referenceCoordinates=d);let u=l(e,{active:t,context:n.current,currentCoordinates:d});if(u){let t=A(u,d),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:l,isRight:s,isLeft:c,isBottom:d,maxScroll:f,minScroll:h}=ed(n),p=function(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}(n),g={x:Math.min(i===o.Right?p.right-p.width/2:p.right,Math.max(i===o.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===o.Down?p.bottom-p.height/2:p.bottom,Math.max(i===o.Down?p.top:p.top+p.height/2,u.y))},m=i===o.Right&&!s||i===o.Left&&!c,x=i===o.Down&&!d||i===o.Up&&!l;if(m&&g.x!==u.x){let e=n.scrollLeft+t.x,l=i===o.Right&&e<=f.x||i===o.Left&&e>=h.x;if(l&&!t.y){n.scrollTo({left:e,behavior:a});return}l?r.x=n.scrollLeft-e:r.x=i===o.Right?n.scrollLeft-f.x:n.scrollLeft-h.x,r.x&&n.scrollBy({left:-r.x,behavior:a});break}if(x&&g.y!==u.y){let e=n.scrollTop+t.y,l=i===o.Down&&e<=f.y||i===o.Up&&e>=h.y;if(l&&!t.x){n.scrollTo({top:e,behavior:a});return}l?r.y=n.scrollTop-e:r.y=i===o.Down?n.scrollTop-f.y:n.scrollTop-h.y,r.y&&n.scrollBy({top:-r.y,behavior:a});break}}this.handleMove(e,L(A(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function ej(e){return!!(e&&"distance"in e)}function eC(e){return!!(e&&"delay"in e)}ew.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=ev,onActivation:i}=t,{active:l}=n,{code:a}=e.nativeEvent;if(r.start.includes(a)){let t=l.activatorNode.current;return(!t||e.target===t)&&(e.preventDefault(),null==i||i({event:e.nativeEvent}),!0)}return!1}}];class e_{constructor(e,t,n){var r;void 0===n&&(n=function(e){let{EventTarget:t}=w(e);return e instanceof t?e:S(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:i}=e,{target:l}=i;this.props=e,this.events=t,this.document=S(l),this.documentListeners=new eg(this.document),this.listeners=new eg(n),this.windowListeners=new eg(w(l)),this.initialCoordinates=null!=(r=I(i))?r:V,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(a.Resize,this.handleCancel),this.windowListeners.add(a.DragStart,ex),this.windowListeners.add(a.VisibilityChange,this.handleCancel),this.windowListeners.add(a.ContextMenu,ex),this.documentListeners.add(a.Keydown,this.handleKeydown),t){if(null!=n&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(eC(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(ej(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(a.Click,eb,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(a.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;let{activated:n,initialCoordinates:r,props:i}=this,{onMove:l,options:{activationConstraint:a}}=i;if(!r)return;let o=null!=(t=I(e))?t:V,s=A(r,o);if(!n&&a){if(ej(a)){if(null!=a.tolerance&&em(s,a.tolerance))return this.handleCancel();if(em(s,a.distance))return this.handleStart()}return eC(a)&&em(s,a.tolerance)?this.handleCancel():void this.handlePending(a,s)}e.cancelable&&e.preventDefault(),l(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===o.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}let eS={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class eN extends e_{constructor(e){let{event:t}=e;super(e,eS,S(t.target))}}eN.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!!n.isPrimary&&0===n.button&&(null==r||r({event:n}),!0)}}];let eD={move:{name:"mousemove"},end:{name:"mouseup"}};!function(e){e[e.RightClick=2]="RightClick"}(s||(s={}));class ek extends e_{constructor(e){super(e,eD,S(e.event.target))}}ek.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==s.RightClick&&(null==r||r({event:n}),!0)}}];let eE={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class eM extends e_{constructor(e){super(e,eE)}static setup(){return window.addEventListener(eE.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(eE.move.name,e)};function e(){}}}eM.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return!(i.length>1)&&(null==r||r({event:n}),!0)}}],function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"}(c||(c={})),function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"}(d||(d={}));let eR={x:{[l.Backward]:!1,[l.Forward]:!1},y:{[l.Backward]:!1,[l.Forward]:!1}};(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(u||(u={})),(f||(f={})).Optimized="optimized";let eT=new Map;function eP(e,t){return E(n=>e?n||("function"==typeof t?t(e):e):null,[t,e])}function eO(e){let{callback:t,disabled:n}=e,r=D(t),i=(0,g.useMemo)(()=>{if(n||"undefined"==typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,g.useEffect)(()=>()=>null==i?void 0:i.disconnect(),[i]),i}function eL(e){return new ep(et(e),e)}function eA(e,t,n){void 0===t&&(t=eL);let[r,i]=(0,g.useState)(null);function l(){i(r=>{if(!e)return null;if(!1===e.isConnected){var i;return null!=(i=null!=r?r:n)?i:null}let l=t(e);return JSON.stringify(r)===JSON.stringify(l)?r:l})}let a=function(e){let{callback:t,disabled:n}=e,r=D(t),i=(0,g.useMemo)(()=>{if(n||"undefined"==typeof window||void 0===window.MutationObserver)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,g.useEffect)(()=>()=>null==i?void 0:i.disconnect(),[i]),i}({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if("childList"===t&&r instanceof HTMLElement&&r.contains(e)){l();break}}}}),o=eO({callback:l});return N(()=>{l(),e?(null==o||o.observe(e),null==a||a.observe(document.body,{childList:!0,subtree:!0})):(null==o||o.disconnect(),null==a||a.disconnect())},[e]),r}let e$=[];function eI(e,t){void 0===t&&(t=[]);let n=(0,g.useRef)(null);return(0,g.useEffect)(()=>{n.current=null},t),(0,g.useEffect)(()=>{let t=e!==V;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?A(e,n.current):V}function eB(e){return(0,g.useMemo)(()=>e?function(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}(e):null,[e])}let eF=[],eH=[{sensor:eN,options:{}},{sensor:ew,options:{}}],eU={current:{}},ez={draggable:{measure:en},droppable:{measure:en,strategy:u.WhileDragging,frequency:f.Optimized},dragOverlay:{measure:et}};class eq extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,n;return null!=(t=null==(n=this.get(e))?void 0:n.node.current)?t:void 0}}let eG={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new eq,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:J},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:ez,measureDroppableContainers:J,windowRect:null,measuringScheduled:!1},eW={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:J,draggableNodes:new Map,over:null,measureDroppableContainers:J},eK=(0,g.createContext)(eW),eJ=(0,g.createContext)(eG);function eV(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new eq}}}function eX(e,t){switch(t.type){case i.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case i.DragMove:if(null==e.draggable.active)return e;return{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case i.DragEnd:case i.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case i.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new eq(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case i.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,l=e.droppable.containers.get(n);if(!l||r!==l.key)return e;let a=new eq(e.droppable.containers);return a.set(n,{...l,disabled:i}),{...e,droppable:{...e.droppable,containers:a}}}case i.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let l=new eq(e.droppable.containers);return l.delete(n),{...e,droppable:{...e.droppable,containers:l}}}default:return e}}function eY(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,g.useContext)(eK),l=R(r),a=R(null==n?void 0:n.id);return(0,g.useEffect)(()=>{if(!t&&!r&&l&&null!=a){if(!$(l)||document.activeElement===l.target)return;let e=i.get(a);if(!e)return;let{activatorNode:t,node:n}=e;(t.current||n.current)&&requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=e.matches(F)?e:e.querySelector(F);if(t){t.focus();break}}})}},[r,t,i,a,l]),null}let eZ=(0,g.createContext)({...V,scaleX:1,scaleY:1});!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"}(h||(h={}));let eQ=(0,g.memo)(function(e){var t,n,r,a,o,s;let{id:f,accessibility:p,autoScroll:v=!0,children:y,sensors:j=eH,collisionDetection:_=Y,measuring:S,modifiers:D,...T}=e,[O,A]=(0,g.useReducer)(eX,void 0,eV),[$,B]=function(){let[e]=(0,g.useState)(()=>new Set),t=(0,g.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,g.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>{var t;return null==(t=e[n])?void 0:t.call(e,r)})},[e]),t]}(),[F,H]=(0,g.useState)(h.Uninitialized),U=F===h.Initialized,{draggable:{active:z,nodes:G,translate:W},droppable:{containers:J}}=O,X=null!=z?G.get(z):null,ee=(0,g.useRef)({initial:null,translated:null}),en=(0,g.useMemo)(()=>{var e;return null!=z?{id:z,data:null!=(e=null==X?void 0:X.data)?e:eU,rect:ee}:null},[z,X]),ea=(0,g.useRef)(null),[eo,eh]=(0,g.useState)(null),[eg,em]=(0,g.useState)(null),ex=k(T,Object.values(T)),eb=P("DndDescribedBy",f),ev=(0,g.useMemo)(()=>J.getEnabled(),[J]),ey=(0,g.useMemo)(()=>({draggable:{...ez.draggable,...null==S?void 0:S.draggable},droppable:{...ez.droppable,...null==S?void 0:S.droppable},dragOverlay:{...ez.dragOverlay,...null==S?void 0:S.dragOverlay}}),[null==S?void 0:S.draggable,null==S?void 0:S.droppable,null==S?void 0:S.dragOverlay]),{droppableRects:ew,measureDroppableContainers:ej,measuringScheduled:eC}=function(e,t){let{dragging:n,dependencies:r,config:i}=t,[l,a]=(0,g.useState)(null),{frequency:o,measure:s,strategy:c}=i,d=(0,g.useRef)(e),f=function(){switch(c){case u.Always:return!1;case u.BeforeDragging:return n;default:return!n}}(),h=k(f),p=(0,g.useCallback)(function(e){void 0===e&&(e=[]),h.current||a(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))},[h]),m=(0,g.useRef)(null),x=E(t=>{if(f&&!n)return eT;if(!t||t===eT||d.current!==e||null!=l){let t=new Map;for(let n of e){if(!n)continue;if(l&&l.length>0&&!l.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new ep(s(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,l,n,f,s]);return(0,g.useEffect)(()=>{d.current=e},[e]),(0,g.useEffect)(()=>{f||p()},[n,f]),(0,g.useEffect)(()=>{l&&l.length>0&&a(null)},[JSON.stringify(l)]),(0,g.useEffect)(()=>{f||"number"!=typeof o||null!==m.current||(m.current=setTimeout(()=>{p(),m.current=null},o))},[o,f,p,...r]),{droppableRects:x,measureDroppableContainers:p,measuringScheduled:null!=l}}(ev,{dragging:U,dependencies:[W.x,W.y],config:ey.droppable}),e_=function(e,t){let n=null!=t?e.get(t):void 0,r=n?n.node.current:null;return E(e=>{var n;return null==t?null:null!=(n=null!=r?r:e)?n:null},[r,t])}(G,z),eS=(0,g.useMemo)(()=>eg?I(eg):null,[eg]),eN=function(){let e=(null==eo?void 0:eo.autoScrollEnabled)===!1,t="object"==typeof v?!1===v.enabled:!1===v,n=U&&!e&&!t;return"object"==typeof v?{...v,enabled:n}:{enabled:n}}(),eD=eP(e_,ey.draggable.measure);!function(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,l=(0,g.useRef)(!1),{x:a,y:o}="boolean"==typeof i?{x:i,y:i}:i;N(()=>{if(!a&&!o||!t){l.current=!1;return}if(l.current||!r)return;let e=null==t?void 0:t.node.current;if(!e||!1===e.isConnected)return;let i=Z(n(e),r);if(a||(i.x=0),o||(i.y=0),l.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=ei(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,a,o,r,n])}({activeNode:null!=z?G.get(z):null,config:eN.layoutShiftCompensation,initialRect:eD,measure:ey.draggable.measure});let ek=eA(e_,ey.draggable.measure,eD),eE=eA(e_?e_.parentElement:null),eM=(0,g.useRef)({activatorEvent:null,active:null,activeNode:e_,collisionRect:null,collisions:null,droppableRects:ew,draggableNodes:G,draggingNode:null,draggingNodeRect:null,droppableContainers:J,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),eL=J.getNodeFor(null==(t=eM.current.over)?void 0:t.id),eq=function(e){let{measure:t}=e,[n,r]=(0,g.useState)(null),i=eO({callback:(0,g.useCallback)(e=>{for(let{target:n}of e)if(C(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[l,a]=M((0,g.useCallback)(e=>{let n=function(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return C(t)?t:e}(e);null==i||i.disconnect(),n&&(null==i||i.observe(n)),r(n?t(n):null)},[t,i]));return(0,g.useMemo)(()=>({nodeRef:l,rect:n,setRef:a}),[n,l,a])}({measure:ey.dragOverlay.measure}),eG=null!=(n=eq.nodeRef.current)?n:e_,eW=U?null!=(r=eq.rect)?r:ek:null,eQ=!!(eq.nodeRef.current&&eq.rect),e0=function(e){let t=eP(e);return Z(e,t)}(eQ?null:ek),e1=eB(eG?w(eG):null),e5=function(e){let t=(0,g.useRef)(e),n=E(n=>e?n&&n!==e$&&e&&t.current&&e.parentNode===t.current.parentNode?n:er(e):e$,[e]);return(0,g.useEffect)(()=>{t.current=e},[e]),n}(U?null!=eL?eL:e_:null),e2=function(e,t){void 0===t&&(t=et);let[n]=e,r=eB(n?w(n):null),[i,l]=(0,g.useState)(eF);function a(){l(()=>e.length?e.map(e=>ec(e)?r:new ep(t(e),e)):eF)}let o=eO({callback:a});return N(()=>{null==o||o.disconnect(),a(),e.forEach(e=>null==o?void 0:o.observe(e))},[e]),i}(e5),e3=function(e,t){let{transform:n,...r}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}(D,{transform:{x:W.x-e0.x,y:W.y-e0.y,scaleX:1,scaleY:1},activatorEvent:eg,active:en,activeNodeRect:ek,containerNodeRect:eE,draggingNodeRect:eW,over:eM.current.over,overlayNodeRect:eq.rect,scrollableAncestors:e5,scrollableAncestorRects:e2,windowRect:e1}),e4=eS?L(eS,W):null,e8=function(e){let[t,n]=(0,g.useState)(null),r=(0,g.useRef)(e),i=(0,g.useCallback)(e=>{let t=el(e.target);t&&n(e=>e?(e.set(t,es(t)),new Map(e)):null)},[]);return(0,g.useEffect)(()=>{let t=r.current;if(e!==t){l(t);let a=e.map(e=>{let t=el(e);return t?(t.addEventListener("scroll",i,{passive:!0}),[t,es(t)]):null}).filter(e=>null!=e);n(a.length?new Map(a):null),r.current=e}return()=>{l(e),l(t)};function l(e){e.forEach(e=>{let t=el(e);null==t||t.removeEventListener("scroll",i)})}},[i,e]),(0,g.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>L(e,t),V):ef(e):V,[e,t])}(e5),e6=eI(e8),e7=eI(e8,[ek]),e9=L(e3,e6),te=eW?Q(eW,e3):null,tt=en&&te?_({active:en,collisionRect:te,droppableRects:ew,droppableContainers:ev,pointerCoordinates:e4}):null,tn=function(e,t){if(!e||0===e.length)return null;let[n]=e;return n.id}(tt,0),[tr,ti]=(0,g.useState)(null),tl=(o=eQ?e3:L(e3,e7),s=null!=(a=null==tr?void 0:tr.rect)?a:null,{...o,scaleX:s&&ek?s.width/ek.width:1,scaleY:s&&ek?s.height/ek.height:1}),ta=(0,g.useRef)(null),to=(0,g.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(null==ea.current)return;let l=G.get(ea.current);if(!l)return;let a=e.nativeEvent,o=new n({active:ea.current,activeNode:l,event:a,options:r,context:eM,onAbort(e){if(!G.get(e))return;let{onDragAbort:t}=ex.current,n={id:e};null==t||t(n),$({type:"onDragAbort",event:n})},onPending(e,t,n,r){if(!G.get(e))return;let{onDragPending:i}=ex.current,l={id:e,constraint:t,initialCoordinates:n,offset:r};null==i||i(l),$({type:"onDragPending",event:l})},onStart(e){let t=ea.current;if(null==t)return;let n=G.get(t);if(!n)return;let{onDragStart:r}=ex.current,l={activatorEvent:a,active:{id:t,data:n.data,rect:ee}};(0,x.unstable_batchedUpdates)(()=>{null==r||r(l),H(h.Initializing),A({type:i.DragStart,initialCoordinates:e,active:t}),$({type:"onDragStart",event:l}),eh(ta.current),em(a)})},onMove(e){A({type:i.DragMove,coordinates:e})},onEnd:s(i.DragEnd),onCancel:s(i.DragCancel)});function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:l}=eM.current,o=null;if(t&&l){let{cancelDrop:s}=ex.current;o={activatorEvent:a,active:t,collisions:n,delta:l,over:r},e===i.DragEnd&&"function"==typeof s&&await Promise.resolve(s(o))&&(e=i.DragCancel)}ea.current=null,(0,x.unstable_batchedUpdates)(()=>{A({type:e}),H(h.Uninitialized),ti(null),eh(null),em(null),ta.current=null;let t=e===i.DragEnd?"onDragEnd":"onDragCancel";if(o){let e=ex.current[t];null==e||e(o),$({type:t,event:o})}})}}ta.current=o},[G]),ts=(0,g.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,l=G.get(r);null!==ea.current||!l||i.dndKit||i.defaultPrevented||!0!==e(n,t.options,{active:l})||(i.dndKit={capturedBy:t.sensor},ea.current=r,to(n,t))},[G,to]),tc=(0,g.useMemo)(()=>j.reduce((e,t)=>{let{sensor:n}=t;return[...e,...n.activators.map(e=>({eventName:e.eventName,handler:ts(e.handler,t)}))]},[]),[j,ts]);(0,g.useEffect)(()=>{if(!b)return;let e=j.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(let t of e)null==t||t()}},j.map(e=>{let{sensor:t}=e;return t})),N(()=>{ek&&F===h.Initializing&&H(h.Initialized)},[ek,F]),(0,g.useEffect)(()=>{let{onDragMove:e}=ex.current,{active:t,activatorEvent:n,collisions:r,over:i}=eM.current;if(!t||!n)return;let l={active:t,activatorEvent:n,collisions:r,delta:{x:e9.x,y:e9.y},over:i};(0,x.unstable_batchedUpdates)(()=>{null==e||e(l),$({type:"onDragMove",event:l})})},[e9.x,e9.y]),(0,g.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=eM.current;if(!e||null==ea.current||!t||!i)return;let{onDragOver:l}=ex.current,a=r.get(tn),o=a&&a.rect.current?{id:a.id,rect:a.rect.current,data:a.data,disabled:a.disabled}:null,s={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:o};(0,x.unstable_batchedUpdates)(()=>{ti(o),null==l||l(s),$({type:"onDragOver",event:s})})},[tn]),N(()=>{eM.current={activatorEvent:eg,active:en,activeNode:e_,collisionRect:te,collisions:tt,droppableRects:ew,draggableNodes:G,draggingNode:eG,draggingNodeRect:eW,droppableContainers:J,over:tr,scrollableAncestors:e5,scrollAdjustedTranslate:e9},ee.current={initial:eW,translated:te}},[en,e_,tt,te,G,eG,eW,ew,J,tr,e5,e9]),function(e){let{acceleration:t,activator:n=c.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=d.TreeOrder,pointerCoordinates:u,scrollableAncestors:f,scrollableAncestorRects:h,delta:p,threshold:m}=e,x=function(e){let{delta:t,disabled:n}=e,r=R(t);return E(e=>{if(n||!r||!e)return eR;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[l.Backward]:e.x[l.Backward]||-1===i.x,[l.Forward]:e.x[l.Forward]||1===i.x},y:{[l.Backward]:e.y[l.Backward]||-1===i.y,[l.Forward]:e.y[l.Forward]||1===i.y}}},[n,t,r])}({delta:p,disabled:!a}),[b,v]=function(){let e=(0,g.useRef)(null);return[(0,g.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,g.useCallback)(()=>{null!==e.current&&(clearInterval(e.current),e.current=null)},[])]}(),y=(0,g.useRef)({x:0,y:0}),w=(0,g.useRef)({x:0,y:0}),j=(0,g.useMemo)(()=>{switch(n){case c.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case c.DraggableRect:return i}},[n,i,u]),C=(0,g.useRef)(null),_=(0,g.useCallback)(()=>{let e=C.current;if(!e)return;let t=y.current.x*w.current.x,n=y.current.y*w.current.y;e.scrollBy(t,n)},[]),S=(0,g.useMemo)(()=>s===d.TreeOrder?[...f].reverse():f,[s,f]);(0,g.useEffect)(()=>{if(!a||!f.length||!j){v();return}for(let e of S){if((null==r?void 0:r(e))===!1)continue;let n=h[f.indexOf(e)];if(!n)continue;let{direction:i,speed:a}=function(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;void 0===r&&(r=10),void 0===i&&(i=eu);let{isTop:d,isBottom:u,isLeft:f,isRight:h}=ed(e),p={x:0,y:0},g={x:0,y:0},m={height:t.height*i.y,width:t.width*i.x};return!d&&a<=t.top+m.height?(p.y=l.Backward,g.y=r*Math.abs((t.top+m.height-a)/m.height)):!u&&c>=t.bottom-m.height&&(p.y=l.Forward,g.y=r*Math.abs((t.bottom-m.height-c)/m.height)),!h&&s>=t.right-m.width?(p.x=l.Forward,g.x=r*Math.abs((t.right-m.width-s)/m.width)):!f&&o<=t.left+m.width&&(p.x=l.Backward,g.x=r*Math.abs((t.left+m.width-o)/m.width)),{direction:p,speed:g}}(e,n,j,t,m);for(let e of["x","y"])x[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0){v(),C.current=e,b(_,o),y.current=a,w.current=i;return}}y.current={x:0,y:0},w.current={x:0,y:0},v()},[t,_,r,v,a,o,JSON.stringify(j),JSON.stringify(x),b,f,S,h,JSON.stringify(m)])}({...eN,delta:W,draggingRect:te,pointerCoordinates:e4,scrollableAncestors:e5,scrollableAncestorRects:e2});let td=(0,g.useMemo)(()=>({active:en,activeNode:e_,activeNodeRect:ek,activatorEvent:eg,collisions:tt,containerNodeRect:eE,dragOverlay:eq,draggableNodes:G,droppableContainers:J,droppableRects:ew,over:tr,measureDroppableContainers:ej,scrollableAncestors:e5,scrollableAncestorRects:e2,measuringConfiguration:ey,measuringScheduled:eC,windowRect:e1}),[en,e_,ek,eg,tt,eE,eq,G,J,ew,tr,ej,e5,e2,ey,eC,e1]),tu=(0,g.useMemo)(()=>({activatorEvent:eg,activators:tc,active:en,activeNodeRect:ek,ariaDescribedById:{draggable:eb},dispatch:A,draggableNodes:G,over:tr,measureDroppableContainers:ej}),[eg,tc,en,ek,A,eb,G,tr,ej]);return m().createElement(q.Provider,{value:B},m().createElement(eK.Provider,{value:tu},m().createElement(eJ.Provider,{value:td},m().createElement(eZ.Provider,{value:tl},y)),m().createElement(eY,{disabled:(null==p?void 0:p.restoreFocus)===!1})),m().createElement(K,{...p,hiddenTextDescribedById:eb}))}),e0=(0,g.createContext)(null),e1="button",e5={timeout:25};r={styles:{active:{opacity:"0"}}},e=>{let{active:t,dragOverlay:n}=e,i={},{styles:l,className:a}=r;if(null!=l&&l.active)for(let[e,n]of Object.entries(l.active))void 0!==n&&(i[e]=t.node.style.getPropertyValue(e),t.node.style.setProperty(e,n));if(null!=l&&l.dragOverlay)for(let[e,t]of Object.entries(l.dragOverlay))void 0!==t&&n.node.style.setProperty(e,t);return null!=a&&a.active&&t.node.classList.add(a.active),null!=a&&a.dragOverlay&&n.node.classList.add(a.dragOverlay),function(){for(let[e,n]of Object.entries(i))t.node.style.setProperty(e,n);null!=a&&a.active&&t.node.classList.remove(a.active)}};let e2={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 e3({severity:e}){let t=e2[e]??e2.Info;return p.jsx("span",{className:`inline-flex items-center rounded-md px-2 py-0.5 text-caption font-medium ${t}`,children:e})}var e4=n(6844);function e8(e,t){let n=new Set,r=e.code_locations.map(e=>e.file).filter(e=>e&&!n.has(e)&&n.add(e)).map(e=>(function(e,t){if(t.repositoryUrl&&t.commit){let n=t.repositoryUrl.replace(/\/+$/,"");return`[\`${e}\`](${n}/blob/${t.commit}/${e})`}return`[\`${e}\`]()`})(e,t)).join(", "),i=e.resolution||"Unresolved",l=e.update_from_client??"";return`**File(s)**: ${r}
|
|
1
|
+
(()=>{var e={};e.id=521,e.ids=[521],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")},1834:(e,t,n)=>{"use strict";n.r(t),n.d(t,{GlobalError:()=>a.a,__next_app__:()=>h,originalPathname:()=>d,pages:()=>u,routeModule:()=>f,tree:()=>c}),n(6309),n(7415),n(2874);var r=n(7105),i=n(5265),l=n(157),a=n.n(l),o=n(4665),s={};for(let e in o)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(s[e]=()=>o[e]);n.d(t,s);let c=["",{children:["issues",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(n.bind(n,6309)),"/home/dx/Work/hex/dashboard/app/issues/page.tsx"]}]},{metadata:{icon:[async e=>(await Promise.resolve().then(n.bind(n,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(n.bind(n,7415)),"/home/dx/Work/hex/dashboard/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(n.t.bind(n,2874,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(n.bind(n,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],u=["/home/dx/Work/hex/dashboard/app/issues/page.tsx"],d="/issues/page",h={require:n,loadChunk:()=>Promise.resolve()},f=new r.AppPageRouteModule({definition:{kind:i.x.APP_PAGE,page:"/issues/page",pathname:"/issues",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},196:(e,t,n)=>{Promise.resolve().then(n.bind(n,5314)),Promise.resolve().then(n.bind(n,3368))},5314:(e,t,n)=>{"use strict";let r;n.d(t,{BoardClient:()=>ty});var i,l,a,o,s,c,u,d,h,f,p=n(9899),m=n(8107),g=n(4175),x=n(5507),v=n.n(x),b=n(6153),y=n(5408);let w="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function j(e){let t=Object.prototype.toString.call(e);return"[object Window]"===t||"[object global]"===t}function _(e){return"nodeType"in e}function C(e){var t,n;return e?j(e)?e:_(e)&&null!=(t=null==(n=e.ownerDocument)?void 0:n.defaultView)?t:window:window}function D(e){let{Document:t}=C(e);return e instanceof t}function S(e){return!j(e)&&e instanceof C(e).HTMLElement}function E(e){return e instanceof C(e).SVGElement}function N(e){return e?j(e)?e.document:_(e)?D(e)?e:S(e)||E(e)?e.ownerDocument:document:document:document}let k=w?x.useLayoutEffect:x.useEffect;function M(e){let t=(0,x.useRef)(e);return k(()=>{t.current=e}),(0,x.useCallback)(function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];return null==t.current?void 0:t.current(...n)},[])}function R(e,t){void 0===t&&(t=[e]);let n=(0,x.useRef)(e);return k(()=>{n.current!==e&&(n.current=e)},t),n}function T(e,t){let n=(0,x.useRef)();return(0,x.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function P(e){let t=M(e),n=(0,x.useRef)(null),r=(0,x.useCallback)(e=>{e!==n.current&&(null==t||t(e,n.current)),n.current=e},[]);return[n,r]}function O(e){let t=(0,x.useRef)();return(0,x.useEffect)(()=>{t.current=e},[e]),t.current}let L={};function A(e,t){return(0,x.useMemo)(()=>{if(t)return t;let n=null==L[e]?0:L[e]+1;return L[e]=n,e+"-"+n},[e,t])}function $(e){return function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return r.reduce((t,n)=>{for(let[r,i]of Object.entries(n)){let n=t[r];null!=n&&(t[r]=n+e*i)}return t},{...t})}}let z=$(1),B=$(-1);function U(e){if(!e)return!1;let{KeyboardEvent:t}=C(e.target);return t&&e instanceof t}function I(e){if(function(e){if(!e)return!1;let{TouchEvent:t}=C(e.target);return t&&e instanceof t}(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return"clientX"in e&&"clientY"in e?{x:e.clientX,y:e.clientY}:null}let F=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[F.Translate.toString(e),F.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),q="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",H={display:"none"};function W(e){let{id:t,value:n}=e;return v().createElement("div",{id:t,style:H},n)}function K(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;return v().createElement("div",{id:t,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":r,"aria-atomic":!0},n)}let V=(0,x.createContext)(null),G={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},X={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function Y(e){let{announcements:t=X,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=G}=e,{announce:l,announcement:a}=function(){let[e,t]=(0,x.useState)("");return{announce:(0,x.useCallback)(e=>{null!=e&&t(e)},[]),announcement:e}}(),o=A("DndLiveRegion"),[s,c]=(0,x.useState)(!1);if((0,x.useEffect)(()=>{c(!0)},[]),function(e){let t=(0,x.useContext)(V);(0,x.useEffect)(()=>{if(!t)throw Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}((0,x.useMemo)(()=>({onDragStart(e){let{active:n}=e;l(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&l(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;l(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;l(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;l(t.onDragCancel({active:n,over:r}))}}),[l,t])),!s)return null;let u=v().createElement(v().Fragment,null,v().createElement(W,{id:r,value:i.draggable}),v().createElement(K,{id:o,announcement:a}));return n?(0,y.createPortal)(u,n):u}function J(){}!function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"}(i||(i={}));let Q=Object.freeze({x:0,y:0});function Z(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}let ee=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,l=n.get(r);if(l){let n=function(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),l=Math.min(t.top+t.height,e.top+e.height);if(r<i&&n<l){let a=t.width*t.height,o=e.width*e.height,s=(i-r)*(l-n);return Number((s/(a+o-s)).toFixed(4))}return 0}(l,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(Z)};function et(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Q}let en=function(e){return function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return r.reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}(1),er={ignoreTransform:!1};function ei(e,t){void 0===t&&(t=er);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=C(e).getComputedStyle(e);t&&(n=function(e,t,n){let r=function(e){if(e.startsWith("matrix3d(")){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith("matrix(")){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}(t);if(!r)return e;let{scaleX:i,scaleY:l,x:a,y:o}=r,s=e.left-a-(1-i)*parseFloat(n),c=e.top-o-(1-l)*parseFloat(n.slice(n.indexOf(" ")+1)),u=i?e.width/i:e.width,d=l?e.height/l:e.height;return{width:u,height:d,top:c,right:s+u,bottom:c+d,left:s}}(n,t,r))}let{top:r,left:i,width:l,height:a,bottom:o,right:s}=n;return{top:r,left:i,width:l,height:a,bottom:o,right:s}}function el(e){return ei(e,{ignoreTransform:!0})}function ea(e,t){let n=[];return e?function r(i){var l;if(null!=t&&n.length>=t||!i)return n;if(D(i)&&null!=i.scrollingElement&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!S(i)||E(i)||n.includes(i))return n;let a=C(e).getComputedStyle(i);return(i!==e&&function(e,t){void 0===t&&(t=C(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(e=>{let r=t[e];return"string"==typeof r&&n.test(r)})}(i,a)&&n.push(i),void 0===(l=a)&&(l=C(i).getComputedStyle(i)),"fixed"===l.position)?n:r(i.parentNode)}(e):n}function eo(e){let[t]=ea(e,1);return null!=t?t:null}function es(e){return w&&e?j(e)?e:_(e)?D(e)||e===N(e).scrollingElement?window:S(e)?e:null:null:null}function ec(e){return j(e)?e.scrollX:e.scrollLeft}function eu(e){return j(e)?e.scrollY:e.scrollTop}function ed(e){return{x:ec(e),y:eu(e)}}function eh(e){return!!w&&!!e&&e===document.scrollingElement}function ef(e){let t={x:0,y:0},n=eh(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},i=e.scrollTop<=t.y;return{isTop:i,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}!function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"}(l||(l={}));let ep={x:.2,y:.2};function em(e){return e.reduce((e,t)=>z(e,ed(t)),Q)}let eg=[["x",["left","right"],function(e){return e.reduce((e,t)=>e+ec(t),0)}],["y",["top","bottom"],function(e){return e.reduce((e,t)=>e+eu(t),0)}]];class ex{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=ea(t),r=em(n);for(let[t,i,l]of(this.rect={...e},this.width=e.width,this.height=e.height,eg))for(let e of i)Object.defineProperty(this,e,{get:()=>{let i=l(n),a=r[t]-i;return this.rect[e]+a},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class ev{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,n){var r;null==(r=this.target)||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}}function eb(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return"number"==typeof t?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t&&r>t.y}function ey(e){e.preventDefault()}function ew(e){e.stopPropagation()}(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(a||(a={})),function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"}(o||(o={}));let ej={start:[o.Space,o.Enter],cancel:[o.Esc],end:[o.Space,o.Enter,o.Tab]},e_=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case o.Right:return{...n,x:n.x+25};case o.Left:return{...n,x:n.x-25};case o.Down:return{...n,y:n.y+25};case o.Up:return{...n,y:n.y-25}}};class eC{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new ev(N(t)),this.windowListeners=new ev(C(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(a.Resize,this.handleCancel),this.windowListeners.add(a.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(a.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&function(e,t){if(void 0===t&&(t=ei),!e)return;let{top:n,left:r,bottom:i,right:l}=t(e);eo(e)&&(i<=0||l<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}(n),t(Q)}handleKeyDown(e){if(U(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=ej,coordinateGetter:l=e_,scrollBehavior:a="smooth"}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,u=c?{x:c.left,y:c.top}:Q;this.referenceCoordinates||(this.referenceCoordinates=u);let d=l(e,{active:t,context:n.current,currentCoordinates:u});if(d){let t=B(d,u),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:l,isRight:s,isLeft:c,isBottom:u,maxScroll:h,minScroll:f}=ef(n),p=function(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}(n),m={x:Math.min(i===o.Right?p.right-p.width/2:p.right,Math.max(i===o.Right?p.left:p.left+p.width/2,d.x)),y:Math.min(i===o.Down?p.bottom-p.height/2:p.bottom,Math.max(i===o.Down?p.top:p.top+p.height/2,d.y))},g=i===o.Right&&!s||i===o.Left&&!c,x=i===o.Down&&!u||i===o.Up&&!l;if(g&&m.x!==d.x){let e=n.scrollLeft+t.x,l=i===o.Right&&e<=h.x||i===o.Left&&e>=f.x;if(l&&!t.y){n.scrollTo({left:e,behavior:a});return}l?r.x=n.scrollLeft-e:r.x=i===o.Right?n.scrollLeft-h.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:a});break}if(x&&m.y!==d.y){let e=n.scrollTop+t.y,l=i===o.Down&&e<=h.y||i===o.Up&&e>=f.y;if(l&&!t.x){n.scrollTo({top:e,behavior:a});return}l?r.y=n.scrollTop-e:r.y=i===o.Down?n.scrollTop-h.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:a});break}}this.handleMove(e,z(B(d,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function eD(e){return!!(e&&"distance"in e)}function eS(e){return!!(e&&"delay"in e)}eC.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=ej,onActivation:i}=t,{active:l}=n,{code:a}=e.nativeEvent;if(r.start.includes(a)){let t=l.activatorNode.current;return(!t||e.target===t)&&(e.preventDefault(),null==i||i({event:e.nativeEvent}),!0)}return!1}}];class eE{constructor(e,t,n){var r;void 0===n&&(n=function(e){let{EventTarget:t}=C(e);return e instanceof t?e:N(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:i}=e,{target:l}=i;this.props=e,this.events=t,this.document=N(l),this.documentListeners=new ev(this.document),this.listeners=new ev(n),this.windowListeners=new ev(C(l)),this.initialCoordinates=null!=(r=I(i))?r:Q,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(a.Resize,this.handleCancel),this.windowListeners.add(a.DragStart,ey),this.windowListeners.add(a.VisibilityChange,this.handleCancel),this.windowListeners.add(a.ContextMenu,ey),this.documentListeners.add(a.Keydown,this.handleKeydown),t){if(null!=n&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(eS(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(eD(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(a.Click,ew,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(a.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;let{activated:n,initialCoordinates:r,props:i}=this,{onMove:l,options:{activationConstraint:a}}=i;if(!r)return;let o=null!=(t=I(e))?t:Q,s=B(r,o);if(!n&&a){if(eD(a)){if(null!=a.tolerance&&eb(s,a.tolerance))return this.handleCancel();if(eb(s,a.distance))return this.handleStart()}return eS(a)&&eb(s,a.tolerance)?this.handleCancel():void this.handlePending(a,s)}e.cancelable&&e.preventDefault(),l(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===o.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}let eN={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class ek extends eE{constructor(e){let{event:t}=e;super(e,eN,N(t.target))}}ek.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!!n.isPrimary&&0===n.button&&(null==r||r({event:n}),!0)}}];let eM={move:{name:"mousemove"},end:{name:"mouseup"}};!function(e){e[e.RightClick=2]="RightClick"}(s||(s={}));class eR extends eE{constructor(e){super(e,eM,N(e.event.target))}}eR.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==s.RightClick&&(null==r||r({event:n}),!0)}}];let eT={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class eP extends eE{constructor(e){super(e,eT)}static setup(){return window.addEventListener(eT.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(eT.move.name,e)};function e(){}}}eP.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return!(i.length>1)&&(null==r||r({event:n}),!0)}}],function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"}(c||(c={})),function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"}(u||(u={}));let eO={x:{[l.Backward]:!1,[l.Forward]:!1},y:{[l.Backward]:!1,[l.Forward]:!1}};(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(d||(d={})),(h||(h={})).Optimized="optimized";let eL=new Map;function eA(e,t){return T(n=>e?n||("function"==typeof t?t(e):e):null,[t,e])}function e$(e){let{callback:t,disabled:n}=e,r=M(t),i=(0,x.useMemo)(()=>{if(n||"undefined"==typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,x.useEffect)(()=>()=>null==i?void 0:i.disconnect(),[i]),i}function ez(e){return new ex(ei(e),e)}function eB(e,t,n){void 0===t&&(t=ez);let[r,i]=(0,x.useState)(null);function l(){i(r=>{if(!e)return null;if(!1===e.isConnected){var i;return null!=(i=null!=r?r:n)?i:null}let l=t(e);return JSON.stringify(r)===JSON.stringify(l)?r:l})}let a=function(e){let{callback:t,disabled:n}=e,r=M(t),i=(0,x.useMemo)(()=>{if(n||"undefined"==typeof window||void 0===window.MutationObserver)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,x.useEffect)(()=>()=>null==i?void 0:i.disconnect(),[i]),i}({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if("childList"===t&&r instanceof HTMLElement&&r.contains(e)){l();break}}}}),o=e$({callback:l});return k(()=>{l(),e?(null==o||o.observe(e),null==a||a.observe(document.body,{childList:!0,subtree:!0})):(null==o||o.disconnect(),null==a||a.disconnect())},[e]),r}let eU=[];function eI(e,t){void 0===t&&(t=[]);let n=(0,x.useRef)(null);return(0,x.useEffect)(()=>{n.current=null},t),(0,x.useEffect)(()=>{let t=e!==Q;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?B(e,n.current):Q}function eF(e){return(0,x.useMemo)(()=>e?function(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}(e):null,[e])}let eq=[],eH=[{sensor:ek,options:{}},{sensor:eC,options:{}}],eW={current:{}},eK={draggable:{measure:el},droppable:{measure:el,strategy:d.WhileDragging,frequency:h.Optimized},dragOverlay:{measure:ei}};class eV extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,n;return null!=(t=null==(n=this.get(e))?void 0:n.node.current)?t:void 0}}let eG={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new eV,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:J},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:eK,measureDroppableContainers:J,windowRect:null,measuringScheduled:!1},eX={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:J,draggableNodes:new Map,over:null,measureDroppableContainers:J},eY=(0,x.createContext)(eX),eJ=(0,x.createContext)(eG);function eQ(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new eV}}}function eZ(e,t){switch(t.type){case i.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case i.DragMove:if(null==e.draggable.active)return e;return{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case i.DragEnd:case i.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case i.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new eV(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case i.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,l=e.droppable.containers.get(n);if(!l||r!==l.key)return e;let a=new eV(e.droppable.containers);return a.set(n,{...l,disabled:i}),{...e,droppable:{...e.droppable,containers:a}}}case i.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let l=new eV(e.droppable.containers);return l.delete(n),{...e,droppable:{...e.droppable,containers:l}}}default:return e}}function e0(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,x.useContext)(eY),l=O(r),a=O(null==n?void 0:n.id);return(0,x.useEffect)(()=>{if(!t&&!r&&l&&null!=a){if(!U(l)||document.activeElement===l.target)return;let e=i.get(a);if(!e)return;let{activatorNode:t,node:n}=e;(t.current||n.current)&&requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=e.matches(q)?e:e.querySelector(q);if(t){t.focus();break}}})}},[r,t,i,a,l]),null}let e1=(0,x.createContext)({...Q,scaleX:1,scaleY:1});!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"}(f||(f={}));let e2=(0,x.memo)(function(e){var t,n,r,a,o,s;let{id:h,accessibility:p,autoScroll:m=!0,children:g,sensors:b=eH,collisionDetection:j=ee,measuring:_,modifiers:D,...E}=e,[N,M]=(0,x.useReducer)(eZ,void 0,eQ),[L,$]=function(){let[e]=(0,x.useState)(()=>new Set),t=(0,x.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,x.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>{var t;return null==(t=e[n])?void 0:t.call(e,r)})},[e]),t]}(),[B,U]=(0,x.useState)(f.Uninitialized),F=B===f.Initialized,{draggable:{active:q,nodes:H,translate:W},droppable:{containers:K}}=N,G=null!=q?H.get(q):null,X=(0,x.useRef)({initial:null,translated:null}),J=(0,x.useMemo)(()=>{var e;return null!=q?{id:q,data:null!=(e=null==G?void 0:G.data)?e:eW,rect:X}:null},[q,G]),Z=(0,x.useRef)(null),[er,el]=(0,x.useState)(null),[ec,eu]=(0,x.useState)(null),eg=R(E,Object.values(E)),ev=A("DndDescribedBy",h),eb=(0,x.useMemo)(()=>K.getEnabled(),[K]),ey=(0,x.useMemo)(()=>({draggable:{...eK.draggable,...null==_?void 0:_.draggable},droppable:{...eK.droppable,...null==_?void 0:_.droppable},dragOverlay:{...eK.dragOverlay,...null==_?void 0:_.dragOverlay}}),[null==_?void 0:_.draggable,null==_?void 0:_.droppable,null==_?void 0:_.dragOverlay]),{droppableRects:ew,measureDroppableContainers:ej,measuringScheduled:e_}=function(e,t){let{dragging:n,dependencies:r,config:i}=t,[l,a]=(0,x.useState)(null),{frequency:o,measure:s,strategy:c}=i,u=(0,x.useRef)(e),h=function(){switch(c){case d.Always:return!1;case d.BeforeDragging:return n;default:return!n}}(),f=R(h),p=(0,x.useCallback)(function(e){void 0===e&&(e=[]),f.current||a(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,x.useRef)(null),g=T(t=>{if(h&&!n)return eL;if(!t||t===eL||u.current!==e||null!=l){let t=new Map;for(let n of e){if(!n)continue;if(l&&l.length>0&&!l.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new ex(s(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,l,n,h,s]);return(0,x.useEffect)(()=>{u.current=e},[e]),(0,x.useEffect)(()=>{h||p()},[n,h]),(0,x.useEffect)(()=>{l&&l.length>0&&a(null)},[JSON.stringify(l)]),(0,x.useEffect)(()=>{h||"number"!=typeof o||null!==m.current||(m.current=setTimeout(()=>{p(),m.current=null},o))},[o,h,p,...r]),{droppableRects:g,measureDroppableContainers:p,measuringScheduled:null!=l}}(eb,{dragging:F,dependencies:[W.x,W.y],config:ey.droppable}),eC=function(e,t){let n=null!=t?e.get(t):void 0,r=n?n.node.current:null;return T(e=>{var n;return null==t?null:null!=(n=null!=r?r:e)?n:null},[r,t])}(H,q),eD=(0,x.useMemo)(()=>ec?I(ec):null,[ec]),eS=function(){let e=(null==er?void 0:er.autoScrollEnabled)===!1,t="object"==typeof m?!1===m.enabled:!1===m,n=F&&!e&&!t;return"object"==typeof m?{...m,enabled:n}:{enabled:n}}(),eE=eA(eC,ey.draggable.measure);!function(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,l=(0,x.useRef)(!1),{x:a,y:o}="boolean"==typeof i?{x:i,y:i}:i;k(()=>{if(!a&&!o||!t){l.current=!1;return}if(l.current||!r)return;let e=null==t?void 0:t.node.current;if(!e||!1===e.isConnected)return;let i=et(n(e),r);if(a||(i.x=0),o||(i.y=0),l.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=eo(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,a,o,r,n])}({activeNode:null!=q?H.get(q):null,config:eS.layoutShiftCompensation,initialRect:eE,measure:ey.draggable.measure});let eN=eB(eC,ey.draggable.measure,eE),ek=eB(eC?eC.parentElement:null),eM=(0,x.useRef)({activatorEvent:null,active:null,activeNode:eC,collisionRect:null,collisions:null,droppableRects:ew,draggableNodes:H,draggingNode:null,draggingNodeRect:null,droppableContainers:K,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),eR=K.getNodeFor(null==(t=eM.current.over)?void 0:t.id),eT=function(e){let{measure:t}=e,[n,r]=(0,x.useState)(null),i=e$({callback:(0,x.useCallback)(e=>{for(let{target:n}of e)if(S(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[l,a]=P((0,x.useCallback)(e=>{let n=function(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return S(t)?t:e}(e);null==i||i.disconnect(),n&&(null==i||i.observe(n)),r(n?t(n):null)},[t,i]));return(0,x.useMemo)(()=>({nodeRef:l,rect:n,setRef:a}),[n,l,a])}({measure:ey.dragOverlay.measure}),eP=null!=(n=eT.nodeRef.current)?n:eC,ez=F?null!=(r=eT.rect)?r:eN:null,eV=!!(eT.nodeRef.current&&eT.rect),eG=function(e){let t=eA(e);return et(e,t)}(eV?null:eN),eX=eF(eP?C(eP):null),e2=function(e){let t=(0,x.useRef)(e),n=T(n=>e?n&&n!==eU&&e&&t.current&&e.parentNode===t.current.parentNode?n:ea(e):eU,[e]);return(0,x.useEffect)(()=>{t.current=e},[e]),n}(F?null!=eR?eR:eC:null),e5=function(e,t){void 0===t&&(t=ei);let[n]=e,r=eF(n?C(n):null),[i,l]=(0,x.useState)(eq);function a(){l(()=>e.length?e.map(e=>eh(e)?r:new ex(t(e),e)):eq)}let o=e$({callback:a});return k(()=>{null==o||o.disconnect(),a(),e.forEach(e=>null==o?void 0:o.observe(e))},[e]),i}(e2),e3=function(e,t){let{transform:n,...r}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}(D,{transform:{x:W.x-eG.x,y:W.y-eG.y,scaleX:1,scaleY:1},activatorEvent:ec,active:J,activeNodeRect:eN,containerNodeRect:ek,draggingNodeRect:ez,over:eM.current.over,overlayNodeRect:eT.rect,scrollableAncestors:e2,scrollableAncestorRects:e5,windowRect:eX}),e4=eD?z(eD,W):null,e9=function(e){let[t,n]=(0,x.useState)(null),r=(0,x.useRef)(e),i=(0,x.useCallback)(e=>{let t=es(e.target);t&&n(e=>e?(e.set(t,ed(t)),new Map(e)):null)},[]);return(0,x.useEffect)(()=>{let t=r.current;if(e!==t){l(t);let a=e.map(e=>{let t=es(e);return t?(t.addEventListener("scroll",i,{passive:!0}),[t,ed(t)]):null}).filter(e=>null!=e);n(a.length?new Map(a):null),r.current=e}return()=>{l(e),l(t)};function l(e){e.forEach(e=>{let t=es(e);null==t||t.removeEventListener("scroll",i)})}},[i,e]),(0,x.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>z(e,t),Q):em(e):Q,[e,t])}(e2),e8=eI(e9),e7=eI(e9,[eN]),e6=z(e3,e8),te=ez?en(ez,e3):null,tt=J&&te?j({active:J,collisionRect:te,droppableRects:ew,droppableContainers:eb,pointerCoordinates:e4}):null,tn=function(e,t){if(!e||0===e.length)return null;let[n]=e;return n.id}(tt,0),[tr,ti]=(0,x.useState)(null),tl=(o=eV?e3:z(e3,e7),s=null!=(a=null==tr?void 0:tr.rect)?a:null,{...o,scaleX:s&&eN?s.width/eN.width:1,scaleY:s&&eN?s.height/eN.height:1}),ta=(0,x.useRef)(null),to=(0,x.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(null==Z.current)return;let l=H.get(Z.current);if(!l)return;let a=e.nativeEvent,o=new n({active:Z.current,activeNode:l,event:a,options:r,context:eM,onAbort(e){if(!H.get(e))return;let{onDragAbort:t}=eg.current,n={id:e};null==t||t(n),L({type:"onDragAbort",event:n})},onPending(e,t,n,r){if(!H.get(e))return;let{onDragPending:i}=eg.current,l={id:e,constraint:t,initialCoordinates:n,offset:r};null==i||i(l),L({type:"onDragPending",event:l})},onStart(e){let t=Z.current;if(null==t)return;let n=H.get(t);if(!n)return;let{onDragStart:r}=eg.current,l={activatorEvent:a,active:{id:t,data:n.data,rect:X}};(0,y.unstable_batchedUpdates)(()=>{null==r||r(l),U(f.Initializing),M({type:i.DragStart,initialCoordinates:e,active:t}),L({type:"onDragStart",event:l}),el(ta.current),eu(a)})},onMove(e){M({type:i.DragMove,coordinates:e})},onEnd:s(i.DragEnd),onCancel:s(i.DragCancel)});function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:l}=eM.current,o=null;if(t&&l){let{cancelDrop:s}=eg.current;o={activatorEvent:a,active:t,collisions:n,delta:l,over:r},e===i.DragEnd&&"function"==typeof s&&await Promise.resolve(s(o))&&(e=i.DragCancel)}Z.current=null,(0,y.unstable_batchedUpdates)(()=>{M({type:e}),U(f.Uninitialized),ti(null),el(null),eu(null),ta.current=null;let t=e===i.DragEnd?"onDragEnd":"onDragCancel";if(o){let e=eg.current[t];null==e||e(o),L({type:t,event:o})}})}}ta.current=o},[H]),ts=(0,x.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,l=H.get(r);null!==Z.current||!l||i.dndKit||i.defaultPrevented||!0!==e(n,t.options,{active:l})||(i.dndKit={capturedBy:t.sensor},Z.current=r,to(n,t))},[H,to]),tc=(0,x.useMemo)(()=>b.reduce((e,t)=>{let{sensor:n}=t;return[...e,...n.activators.map(e=>({eventName:e.eventName,handler:ts(e.handler,t)}))]},[]),[b,ts]);(0,x.useEffect)(()=>{if(!w)return;let e=b.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(let t of e)null==t||t()}},b.map(e=>{let{sensor:t}=e;return t})),k(()=>{eN&&B===f.Initializing&&U(f.Initialized)},[eN,B]),(0,x.useEffect)(()=>{let{onDragMove:e}=eg.current,{active:t,activatorEvent:n,collisions:r,over:i}=eM.current;if(!t||!n)return;let l={active:t,activatorEvent:n,collisions:r,delta:{x:e6.x,y:e6.y},over:i};(0,y.unstable_batchedUpdates)(()=>{null==e||e(l),L({type:"onDragMove",event:l})})},[e6.x,e6.y]),(0,x.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=eM.current;if(!e||null==Z.current||!t||!i)return;let{onDragOver:l}=eg.current,a=r.get(tn),o=a&&a.rect.current?{id:a.id,rect:a.rect.current,data:a.data,disabled:a.disabled}:null,s={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:o};(0,y.unstable_batchedUpdates)(()=>{ti(o),null==l||l(s),L({type:"onDragOver",event:s})})},[tn]),k(()=>{eM.current={activatorEvent:ec,active:J,activeNode:eC,collisionRect:te,collisions:tt,droppableRects:ew,draggableNodes:H,draggingNode:eP,draggingNodeRect:ez,droppableContainers:K,over:tr,scrollableAncestors:e2,scrollAdjustedTranslate:e6},X.current={initial:ez,translated:te}},[J,eC,tt,te,H,eP,ez,ew,K,tr,e2,e6]),function(e){let{acceleration:t,activator:n=c.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=u.TreeOrder,pointerCoordinates:d,scrollableAncestors:h,scrollableAncestorRects:f,delta:p,threshold:m}=e,g=function(e){let{delta:t,disabled:n}=e,r=O(t);return T(e=>{if(n||!r||!e)return eO;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[l.Backward]:e.x[l.Backward]||-1===i.x,[l.Forward]:e.x[l.Forward]||1===i.x},y:{[l.Backward]:e.y[l.Backward]||-1===i.y,[l.Forward]:e.y[l.Forward]||1===i.y}}},[n,t,r])}({delta:p,disabled:!a}),[v,b]=function(){let e=(0,x.useRef)(null);return[(0,x.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,x.useCallback)(()=>{null!==e.current&&(clearInterval(e.current),e.current=null)},[])]}(),y=(0,x.useRef)({x:0,y:0}),w=(0,x.useRef)({x:0,y:0}),j=(0,x.useMemo)(()=>{switch(n){case c.Pointer:return d?{top:d.y,bottom:d.y,left:d.x,right:d.x}:null;case c.DraggableRect:return i}},[n,i,d]),_=(0,x.useRef)(null),C=(0,x.useCallback)(()=>{let e=_.current;if(!e)return;let t=y.current.x*w.current.x,n=y.current.y*w.current.y;e.scrollBy(t,n)},[]),D=(0,x.useMemo)(()=>s===u.TreeOrder?[...h].reverse():h,[s,h]);(0,x.useEffect)(()=>{if(!a||!h.length||!j){b();return}for(let e of D){if((null==r?void 0:r(e))===!1)continue;let n=f[h.indexOf(e)];if(!n)continue;let{direction:i,speed:a}=function(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;void 0===r&&(r=10),void 0===i&&(i=ep);let{isTop:u,isBottom:d,isLeft:h,isRight:f}=ef(e),p={x:0,y:0},m={x:0,y:0},g={height:t.height*i.y,width:t.width*i.x};return!u&&a<=t.top+g.height?(p.y=l.Backward,m.y=r*Math.abs((t.top+g.height-a)/g.height)):!d&&c>=t.bottom-g.height&&(p.y=l.Forward,m.y=r*Math.abs((t.bottom-g.height-c)/g.height)),!f&&s>=t.right-g.width?(p.x=l.Forward,m.x=r*Math.abs((t.right-g.width-s)/g.width)):!h&&o<=t.left+g.width&&(p.x=l.Backward,m.x=r*Math.abs((t.left+g.width-o)/g.width)),{direction:p,speed:m}}(e,n,j,t,m);for(let e of["x","y"])g[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0){b(),_.current=e,v(C,o),y.current=a,w.current=i;return}}y.current={x:0,y:0},w.current={x:0,y:0},b()},[t,C,r,b,a,o,JSON.stringify(j),JSON.stringify(g),v,h,D,f,JSON.stringify(m)])}({...eS,delta:W,draggingRect:te,pointerCoordinates:e4,scrollableAncestors:e2,scrollableAncestorRects:e5});let tu=(0,x.useMemo)(()=>({active:J,activeNode:eC,activeNodeRect:eN,activatorEvent:ec,collisions:tt,containerNodeRect:ek,dragOverlay:eT,draggableNodes:H,droppableContainers:K,droppableRects:ew,over:tr,measureDroppableContainers:ej,scrollableAncestors:e2,scrollableAncestorRects:e5,measuringConfiguration:ey,measuringScheduled:e_,windowRect:eX}),[J,eC,eN,ec,tt,ek,eT,H,K,ew,tr,ej,e2,e5,ey,e_,eX]),td=(0,x.useMemo)(()=>({activatorEvent:ec,activators:tc,active:J,activeNodeRect:eN,ariaDescribedById:{draggable:ev},dispatch:M,draggableNodes:H,over:tr,measureDroppableContainers:ej}),[ec,tc,J,eN,M,ev,H,tr,ej]);return v().createElement(V.Provider,{value:$},v().createElement(eY.Provider,{value:td},v().createElement(eJ.Provider,{value:tu},v().createElement(e1.Provider,{value:tl},g)),v().createElement(e0,{disabled:(null==p?void 0:p.restoreFocus)===!1})),v().createElement(Y,{...p,hiddenTextDescribedById:ev}))}),e5=(0,x.createContext)(null),e3="button",e4={timeout:25};r={styles:{active:{opacity:"0"}}},e=>{let{active:t,dragOverlay:n}=e,i={},{styles:l,className:a}=r;if(null!=l&&l.active)for(let[e,n]of Object.entries(l.active))void 0!==n&&(i[e]=t.node.style.getPropertyValue(e),t.node.style.setProperty(e,n));if(null!=l&&l.dragOverlay)for(let[e,t]of Object.entries(l.dragOverlay))void 0!==t&&n.node.style.setProperty(e,t);return null!=a&&a.active&&t.node.classList.add(a.active),null!=a&&a.dragOverlay&&n.node.classList.add(a.dragOverlay),function(){for(let[e,n]of Object.entries(i))t.node.style.setProperty(e,n);null!=a&&a.active&&t.node.classList.remove(a.active)}};var e9=n(3368),e8=n(8799),e7=n(9428),e6=n(394),te=n(5893),tt=n(1593);let tn={neutral:"bg-surface-2 text-text-secondary",accent:"bg-accent-subtle text-accent",warn:"bg-[color-mix(in_oklch,var(--high)_14%,transparent)] text-[var(--high)]",danger:"bg-[color-mix(in_oklch,var(--critical)_14%,transparent)] text-[var(--critical)]",ok:"bg-[color-mix(in_oklch,var(--success)_14%,transparent)] text-[var(--success)]"};function tr({tone:e="neutral",children:t,className:n,title:r}){return p.jsx("span",{title:r,className:(0,tt.cn)("inline-flex items-center gap-1 whitespace-nowrap rounded-md px-1.5 py-px text-caption font-medium",tn[e],n),children:t})}var ti=n(382),tl=n(5125),ta=n(1352),to=n(5119),ts=n(6844),tc=n(8279),tu=n(1842);let td={Critical:0,High:1,Medium:2,Low:3,Info:4},th={manual:"Manual",auditagent:"AuditAgent","ai-audit":"AI audit",conformance:"Conformance",github:"GitHub","prior-audit":"Prior audit",invariant:"Invariant"},tf=[{id:"potential",label:"Potential",hint:"Awaiting validation"},{id:"verified",label:"Verified",hint:"Confirmed, ready to sync"},{id:"synced",label:"Synced",hint:"On GitHub; edit there"},{id:"invalid",label:"Rejected",hint:"Not in the report"},{id:"duplicate",label:"Duplicate",hint:"Covered by another card"}],tp=Object.fromEntries(tf.map(e=>[e.id,e.label])),tm={potential:"pending_validation",verified:"verified",synced:"synced",invalid:"rejected",duplicate:"duplicate"},tg={out_of_scope:"Out of scope",trusted_role:"Trusted role",by_design:"By design",known_issue:"Known issue"},tx={reproduced:"Reproduced",refuted:"Refuted",uncertain:"Uncertain",valid_no_poc:"Valid, no PoC"},tv=["Critical","High","Medium","Low","Info"],tb=["Fixed","Mitigated","Acknowledged","Not Fixed","Unresolved"];function ty({issues:e,rules:t,formatCtx:n}){var r;let i=(0,b.useRouter)(),l=(0,b.useSearchParams)(),a=(0,ta.p)(),[o,s]=(0,x.useState)({}),c=(0,x.useMemo)(()=>e.map(e=>o[e.id]?{...e,column:o[e.id],status:tm[o[e.id]]}:e),[e,o]),[u,d]=(0,x.useState)(""),[h,f]=(0,x.useState)("all"),[m,g]=(0,x.useState)({potential:!1,verified:!1,synced:!1,invalid:!0,duplicate:!0}),[v,y]=(0,x.useState)(()=>l.get("card")),[w,j]=(0,x.useState)(!1),[_,C]=(0,x.useState)(!1),D=c.find(e=>e.id===v)??null,S=(0,x.useMemo)(()=>Array.from(new Set(e.map(e=>e.source))).sort((e,t)=>(th[e]??e).localeCompare(th[t]??t)),[e]),E=(0,x.useMemo)(()=>{let e=u.trim().toLowerCase();return c.filter(t=>("all"===h||t.source===h)&&(!e||`${t.id} ${t.title} ${t.description}`.toLowerCase().includes(e)))},[c,u,h]),N=(0,x.useMemo)(()=>{let e={potential:[],verified:[],synced:[],invalid:[],duplicate:[]};for(let t of E)e[t.column].push(t);for(let t of Object.values(e))t.sort((e,t)=>(td[e.severity]??5)-(td[t.severity]??5)||e.id.localeCompare(t.id));return e},[E]),k=(0,x.useMemo)(()=>tf.filter(e=>!m[e.id]).flatMap(e=>N[e.id].map(e=>e.id)),[N,m]),M=(0,x.useCallback)(async(e,t,n={undoable:!0})=>{let r=c.find(t=>t.id===e);if(!r||r.column===t)return;let l=r.column;s(n=>({...n,[e]:t}));try{await (0,tu.C)(`/api/issues/${encodeURIComponent(e)}/move`,{column:t}),n.undoable&&a({message:`${e} moved to ${tp[t]}`,action:{label:"Undo",onClick:()=>{s(t=>({...t,[e]:l})),(0,tu.C)(`/api/issues/${encodeURIComponent(e)}/move`,{column:l}).then(()=>i.refresh())}}}),i.refresh()}catch(t){s(t=>{let n={...t};return delete n[e],n}),a({message:t.message,tone:"error"})}},[c,i,a]),R=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,x.useMemo)(()=>[...t].filter(e=>null!=e),[...t])}((r={activationConstraint:{distance:5}},(0,x.useMemo)(()=>({sensor:ek,options:null!=r?r:{}}),[ek,r]))),T=(0,x.useRef)(null),P=e=>{y(e),e&&requestAnimationFrame(()=>T.current?.querySelector(`[data-card="${CSS.escape(e)}"]`)?.scrollIntoView({block:"nearest"}))};(0,tc.y)({j:()=>{let e=v?k.indexOf(v):-1;k.length&&P(k[Math.min(k.length-1,e+1)])},k:()=>{let e=v?k.indexOf(v):0;k.length&&P(k[Math.max(0,e-1)])},e:e=>{D&&"synced"!==D.column&&(e.preventDefault(),j(!0))},Escape:()=>{w?j(!1):_?C(!1):P(null)}});let O=[{value:"all",label:"All"},...S.map(e=>({value:e,label:th[e]??e}))];return p.jsx(e9.z,{toolbar:(0,p.jsxs)(e9.Toolbar,{title:"Board",meta:`${e.length} card${1===e.length?"":"s"}`,children:[p.jsx(e7.U,{value:u,onChange:d,placeholder:"Search cards",className:"w-56"}),S.length>1&&p.jsx(e6.s,{segments:O,value:h,onChange:f,ariaLabel:"Source"})]}),inspector:D?p.jsx(t_,{card:D,editing:w,setEditing:j,formatCtx:n,onClose:()=>P(null),onReverted:()=>s(e=>({...e,[D.id]:"potential"}))},D.id):void 0,children:(0,p.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[p.jsx(e2,{sensors:R,onDragEnd:e=>{if(!e.over)return;let t=e.over.id,n=c.find(t=>t.id===e.active.id);n&&n.column!==t&&"synced"!==t&&"synced"!==n.column&&M(n.id,t)},children:p.jsx("div",{ref:T,className:"flex min-h-0 flex-1 gap-5 overflow-x-auto px-5 pt-4",children:tf.map(e=>p.jsx(tw,{column:e,cards:N[e.id],collapsed:m[e.id],onToggle:()=>g(t=>({...t,[e.id]:!t[e.id]})),selectedId:v,onSelect:P},e.id))})}),(0,p.jsxs)("footer",{className:"relative flex shrink-0 items-center gap-3 border-t border-border-subtle px-5 py-2 text-caption text-text-tertiary",children:[p.jsx("button",{type:"button",onClick:()=>C(e=>!e),className:"rounded-md px-1.5 py-0.5 hover:bg-surface-2 hover:text-text-primary","aria-expanded":_,children:t.length?`${t.length} triage rule${1===t.length?"":"s"}`:"No triage rules"}),(0,p.jsxs)("span",{className:"hidden truncate sm:inline",children:["Drag a card to move it \xb7 ",p.jsx(tl.T,{children:"j"})," ",p.jsx(tl.T,{children:"k"})," to step \xb7 ",p.jsx(tl.T,{children:"e"})," to edit"]}),_&&(0,p.jsxs)("div",{className:"rise-in absolute bottom-10 left-4 z-20 w-[min(420px,calc(100vw-2rem))] rounded-lg border border-border-default bg-surface-1 p-4 shadow-lg",children:[p.jsx("div",{className:"mb-2 text-body font-medium text-text-primary",children:"Triage rules"}),0===t.length?(0,p.jsxs)("p",{className:"text-body text-text-secondary",children:["Standing decisions that keep AI runs from resurfacing the same false positives. Add one with ",p.jsx("code",{className:"font-mono text-caption",children:"hex rule add"}),"."]}):p.jsx("ul",{className:"space-y-2",children:t.map(e=>(0,p.jsxs)("li",{className:"text-body",children:[p.jsx("span",{className:"text-text-primary",children:e.text}),(0,p.jsxs)("span",{className:"block text-caption text-text-tertiary",children:[e.id," \xb7 ",tg[e.kind]??e.kind,e.scope.length?` \xb7 ${e.scope.join(", ")}`:" \xb7 whole audit"]})]},e.id))})]})]})]})})}function tw({column:e,cards:t,collapsed:n,onToggle:r,selectedId:l,onSelect:a}){let{isOver:o,setNodeRef:s}=function(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:l}=e,a=A("Droppable"),{active:o,dispatch:s,over:c,measureDroppableContainers:u}=(0,x.useContext)(eY),d=(0,x.useRef)({disabled:n}),h=(0,x.useRef)(!1),f=(0,x.useRef)(null),p=(0,x.useRef)(null),{disabled:m,updateMeasurementsFor:g,timeout:v}={...e4,...l},b=R(null!=g?g:r),y=e$({callback:(0,x.useCallback)(()=>{if(!h.current){h.current=!0;return}null!=p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{u(Array.isArray(b.current)?b.current:[b.current]),p.current=null},v)},[v]),disabled:m||!o}),[w,j]=P((0,x.useCallback)((e,t)=>{y&&(t&&(y.unobserve(t),h.current=!1),e&&y.observe(e))},[y])),_=R(t);return(0,x.useEffect)(()=>{y&&w.current&&(y.disconnect(),h.current=!1,y.observe(w.current))},[w,y]),(0,x.useEffect)(()=>(s({type:i.RegisterDroppable,element:{id:r,key:a,disabled:n,node:w,rect:f,data:_}}),()=>s({type:i.UnregisterDroppable,key:a,id:r})),[r]),(0,x.useEffect)(()=>{n!==d.current.disabled&&(s({type:i.SetDroppableDisabled,id:r,key:a,disabled:n}),d.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:(null==c?void 0:c.id)===r,node:w,over:c,setNodeRef:j}}({id:e.id,disabled:"synced"===e.id});return n?p.jsx("section",{ref:s,"aria-label":e.label,className:(0,tt.cn)("flex w-10 shrink-0 flex-col items-center rounded-lg pb-4 pt-1",o?"bg-accent-subtle":"hover:bg-surface-1"),children:(0,p.jsxs)("button",{type:"button",onClick:r,title:`Show ${e.label}`,className:"flex h-full w-full flex-col items-center gap-2 pt-1 text-text-tertiary hover:text-text-primary",children:[p.jsx(to.g6,{className:"h-3.5 w-3.5"}),p.jsx("span",{className:"text-caption tabular-nums",children:t.length}),p.jsx("span",{className:"text-caption font-medium [writing-mode:vertical-rl]",children:e.label})]})}):(0,p.jsxs)("section",{ref:s,"aria-label":e.label,className:(0,tt.cn)("flex min-w-[200px] max-w-[360px] flex-1 flex-col rounded-lg",o&&"bg-accent-subtle"),children:[(0,p.jsxs)("header",{className:"flex shrink-0 items-baseline gap-2 px-1 pb-3 pt-1",title:e.hint,children:[p.jsx("h2",{className:"text-heading font-medium text-text-primary",children:e.label}),p.jsx("span",{className:"text-caption tabular-nums text-text-tertiary",children:t.length}),("invalid"===e.id||"duplicate"===e.id)&&p.jsx("button",{type:"button",onClick:r,className:"ml-auto rounded px-1 text-caption text-text-tertiary hover:text-text-primary",children:"Hide"})]}),(0,p.jsxs)("div",{className:"min-h-0 flex-1 space-y-2 overflow-y-auto pb-6",children:[t.map(e=>p.jsx(tj,{card:e,selected:e.id===l,onSelect:a},e.id)),0===t.length&&p.jsx("div",{className:"rounded-lg border border-dashed border-border-subtle px-3 py-6 text-center text-caption text-text-tertiary",children:e.hint})]})]})}function tj({card:e,selected:t,onSelect:n}){let r="synced"===e.column,{attributes:i,listeners:l,setNodeRef:a,transform:o,isDragging:s}=function(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,l=A("Draggable"),{activators:a,activatorEvent:o,active:s,activeNodeRect:c,ariaDescribedById:u,draggableNodes:d,over:h}=(0,x.useContext)(eY),{role:f=e3,roleDescription:p="draggable",tabIndex:m=0}=null!=i?i:{},g=(null==s?void 0:s.id)===t,v=(0,x.useContext)(g?e1:e5),[b,y]=P(),[w,j]=P(),_=(0,x.useMemo)(()=>a.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[a,t]),C=R(n);return k(()=>(d.set(t,{id:t,key:l,node:b,activatorNode:w,data:C}),()=>{let e=d.get(t);e&&e.key===l&&d.delete(t)}),[d,t]),{active:s,activatorEvent:o,activeNodeRect:c,attributes:(0,x.useMemo)(()=>({role:f,tabIndex:m,"aria-disabled":r,"aria-pressed":!!g&&f===e3||void 0,"aria-roledescription":p,"aria-describedby":u.draggable}),[r,f,m,g,p,u.draggable]),isDragging:g,listeners:r?void 0:_,node:b,over:h,setNodeRef:y,setActivatorNodeRef:j,transform:v}}({id:e.id,disabled:r}),c=o?{transform:`translate3d(${o.x}px, ${o.y}px, 0)`,zIndex:40}:{};return(0,p.jsxs)("article",{ref:a,"data-card":e.id,style:c,...r?{}:i,...r?{}:l,onClick:()=>!o&&n(e.id),className:(0,tt.cn)("cursor-pointer select-none rounded-lg border bg-surface-1 px-3 py-2.5",t?"border-accent":"border-border-subtle hover:border-border-default",s&&"shadow-lg"),children:[p.jsx("h3",{className:"line-clamp-3 text-body text-text-primary",children:e.title}),(0,p.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-caption text-text-tertiary",children:[p.jsx(te.oH,{severity:e.severity,className:"text-text-secondary"}),(0,p.jsxs)("span",{className:"min-w-0 truncate",children:[e.id," \xb7 ",th[e.source]??e.source]}),p.jsx("span",{className:"ml-auto",children:e.validation?.auto_moved_to?p.jsx(tr,{children:"Auto-moved"}):"passing"===e.poc_status?p.jsx(tr,{tone:"ok",children:"PoC ✓"}):"failing"===e.poc_status?p.jsx(tr,{tone:"danger",children:"PoC ✕"}):e.duplicate_of?(0,p.jsxs)(tr,{children:["Dup of ",e.duplicate_of]}):null})]})]})}function t_({card:e,editing:t,setEditing:n,formatCtx:r,onClose:i,onReverted:l}){let a=(0,b.useRouter)(),o=(0,ta.p)(),s="synced"===e.column,c=e.validation,u=async()=>{try{await (0,tu.C)(`/api/issues/${encodeURIComponent(e.id)}/revert-auto`,{}),l(),o({message:`${e.id} is back in Potential`}),a.refresh()}catch(e){o({message:e.message,tone:"error"})}},d=async()=>{try{await navigator.clipboard.writeText(function(e,t={}){return`## [${e.severity}] ${e.title}
|
|
2
|
+
|
|
3
|
+
${function(e,t){let n=new Set,r=e.code_locations.map(e=>e.file).filter(e=>e&&!n.has(e)&&n.add(e)).map(e=>(function(e,t){if(t.repositoryUrl&&t.commit){let n=t.repositoryUrl.replace(/\/+$/,"");return`[\`${e}\`](${n}/blob/${t.commit}/${e})`}return`[\`${e}\`]()`})(e,t)).join(", "),i=e.resolution||"Unresolved",l=e.update_from_client??"";return`**File(s)**: ${r}
|
|
2
4
|
|
|
3
5
|
**Description**: ${function(e){if(!e)return e;let t=!1,n="";return e.split("\n").map(e=>{let r=e.match(/^\s*(```+|~~~+)/);if(r)return t?r[1][0]===n&&(t=!1,n=""):(t=!0,n=r[1][0]),e;if(t)return e;let i=e.match(/^\s*#{1,6}\s+(.*\S)\s*$/);return i?`**${i[1]}**`:/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(e)?"":e}).join("\n")}(e.description)}
|
|
4
6
|
|
|
@@ -6,32 +8,7 @@
|
|
|
6
8
|
|
|
7
9
|
**Status**: ${i}
|
|
8
10
|
|
|
9
|
-
**Update from the client**: ${l}`}let e6=[{id:"potential",label:"Potential",description:"Awaiting validation"},{id:"verified",label:"Verified",description:"Confirmed, ready to push"},{id:"synced",label:"Synced to GitHub",description:"On GitHub — edit there, not here"},{id:"invalid",label:"Rejected",description:"Not in the report — incorrect, or valid-but-by-design"},{id:"duplicate",label:"Duplicate",description:"Covered by another entry"}],e7={Critical:0,High:1,Medium:2,Low:3,Info:4},e9=["Critical","High","Medium","Low","Info"],te=["Fixed","Mitigated","Acknowledged","Not Fixed","Unresolved"];function tt({issues:e,formatCtx:t={}}){var n;let[r,i]=(0,g.useState)(e),[l,a]=(0,g.useState)(null),[o,s]=(0,g.useState)("all"),c=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,g.useMemo)(()=>[...t].filter(e=>null!=e),[...t])}((n={activationConstraint:{distance:4}},(0,g.useMemo)(()=>({sensor:eN,options:null!=n?n:{}}),[eN,n]))),d=(0,g.useMemo)(()=>"all"===o?r:r.filter(e=>e.source===o),[r,o]),u=(0,g.useMemo)(()=>{let e={potential:[],verified:[],synced:[],invalid:[],duplicate:[]};for(let t of d)e[t.column].push(t);for(let t of Object.values(e))t.sort((e,t)=>(e7[e.severity]??5)-(e7[t.severity]??5)||e.id.localeCompare(t.id));return e},[d]),f=(0,g.useMemo)(()=>{let e={potential:0,verified:0,synced:0,invalid:0,duplicate:0};for(let t of r)e[t.column]++;return e},[r]),h=(0,g.useCallback)(async(t,n)=>{i(e=>e.map(e=>e.id===t?{...e,column:n,status:function(e){switch(e){case"potential":return"pending_validation";case"verified":return"verified";case"synced":return"synced";case"invalid":return"rejected";case"duplicate":return"duplicate"}}(n),duplicate_of:"duplicate"===n?e.duplicate_of:null}:e));try{let e=await fetch(`/api/issues/${encodeURIComponent(t)}/move`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({column:n})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error??"move failed")}}catch(n){console.error(n),i(n=>n.map(n=>n.id===t?e.find(e=>e.id===t)??n:n))}},[e]),m=(0,g.useCallback)(async(e,t)=>{i(n=>n.map(n=>n.id===e?{...n,...t}:n));try{let n=await fetch(`/api/issues/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??"update failed")}}catch(e){console.error(e)}},[]),x=r.find(e=>e.id===l)??null;return(0,p.jsxs)("div",{children:[(0,p.jsxs)("header",{className:"mb-6 flex flex-wrap items-end justify-between gap-3",children:[(0,p.jsxs)("div",{children:[p.jsx("h1",{className:"text-title font-semibold text-text-primary",children:"Issues"}),(0,p.jsxs)("p",{className:"mt-1 text-body text-text-secondary",children:[r.length," total — ",f.potential," potential, ",f.verified," verified,"," ",f.synced," synced, ",f.invalid," invalid, ",f.duplicate," duplicate. Drag a card between columns; click to edit. Synced cards are read-only (edit on GitHub)."]})]}),p.jsx(tn,{value:o,onChange:s})]}),p.jsx(eQ,{sensors:c,onDragEnd:e=>{let{active:t,over:n}=e;if(!n)return;let i=n.id,l=t.id,a=r.find(e=>e.id===l);a&&a.column!==i&&"synced"!==i&&"synced"!==a.column&&h(l,i)},children:p.jsx("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-5",children:e6.map(e=>p.jsx(tr,{column:e,issues:u[e.id],onOpen:a},e.id))})}),x&&p.jsx(to,{issue:x,formatCtx:t,onClose:()=>a(null),onSave:e=>m(x.id,e)})]})}function tn({value:e,onChange:t}){return p.jsx("div",{className:"flex flex-wrap gap-1.5",children:[{id:"all",label:"All sources"},{id:"manual",label:"Manual"},{id:"auditagent",label:"AuditAgent"},{id:"conformance",label:"Conformance"},{id:"github",label:"GitHub"}].map(n=>{let r=e===n.id;return p.jsx("button",{type:"button",onClick:()=>t(n.id),className:`rounded-md px-2.5 py-1 text-caption font-medium ${r?"bg-accent text-surface-0":"bg-surface-2 text-text-secondary hover:text-text-primary"}`,children:n.label},n.id)})})}function tr({column:e,issues:t,onOpen:n}){let{isOver:r,setNodeRef:l}=function(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:l}=e,a=P("Droppable"),{active:o,dispatch:s,over:c,measureDroppableContainers:d}=(0,g.useContext)(eK),u=(0,g.useRef)({disabled:n}),f=(0,g.useRef)(!1),h=(0,g.useRef)(null),p=(0,g.useRef)(null),{disabled:m,updateMeasurementsFor:x,timeout:b}={...e5,...l},v=k(null!=x?x:r),y=eO({callback:(0,g.useCallback)(()=>{if(!f.current){f.current=!0;return}null!=p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{d(Array.isArray(v.current)?v.current:[v.current]),p.current=null},b)},[b]),disabled:m||!o}),[w,j]=M((0,g.useCallback)((e,t)=>{y&&(t&&(y.unobserve(t),f.current=!1),e&&y.observe(e))},[y])),C=k(t);return(0,g.useEffect)(()=>{y&&w.current&&(y.disconnect(),f.current=!1,y.observe(w.current))},[w,y]),(0,g.useEffect)(()=>(s({type:i.RegisterDroppable,element:{id:r,key:a,disabled:n,node:w,rect:h,data:C}}),()=>s({type:i.UnregisterDroppable,key:a,id:r})),[r]),(0,g.useEffect)(()=>{n!==u.current.disabled&&(s({type:i.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:h,isOver:(null==c?void 0:c.id)===r,node:w,over:c,setNodeRef:j}}({id:e.id,disabled:"synced"===e.id});return(0,p.jsxs)("section",{ref:l,"aria-label":e.label,className:`flex flex-col gap-2 rounded-lg border bg-surface-1 p-3 transition-colors ${r?"border-accent bg-surface-2":"border-border-subtle"}`,children:[(0,p.jsxs)("header",{className:"flex items-baseline justify-between",children:[p.jsx("h2",{className:"text-heading font-medium text-text-primary",children:e.label}),p.jsx("span",{className:"text-caption text-text-tertiary",children:t.length})]}),p.jsx("p",{className:"text-caption text-text-tertiary",children:e.description}),(0,p.jsxs)("div",{className:"mt-1 flex flex-col gap-2",children:[t.map(e=>p.jsx(ti,{issue:e,onOpen:n},e.id)),0===t.length&&p.jsx("div",{className:"rounded-md border border-dashed border-border-subtle py-6 text-center text-caption text-text-tertiary",children:"Empty"})]})]})}function ti({issue:e,onOpen:t}){let n="synced"===e.column,{attributes:r,listeners:i,setNodeRef:l,isDragging:a,transform:o}=function(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,l=P("Draggable"),{activators:a,activatorEvent:o,active:s,activeNodeRect:c,ariaDescribedById:d,draggableNodes:u,over:f}=(0,g.useContext)(eK),{role:h=e1,roleDescription:p="draggable",tabIndex:m=0}=null!=i?i:{},x=(null==s?void 0:s.id)===t,b=(0,g.useContext)(x?eZ:e0),[v,y]=M(),[w,j]=M(),C=(0,g.useMemo)(()=>a.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[a,t]),_=k(n);return N(()=>(u.set(t,{id:t,key:l,node:v,activatorNode:w,data:_}),()=>{let e=u.get(t);e&&e.key===l&&u.delete(t)}),[u,t]),{active:s,activatorEvent:o,activeNodeRect:c,attributes:(0,g.useMemo)(()=>({role:h,tabIndex:m,"aria-disabled":r,"aria-pressed":!!x&&h===e1||void 0,"aria-roledescription":p,"aria-describedby":d.draggable}),[r,h,m,x,p,d.draggable]),isDragging:x,listeners:r?void 0:C,node:v,over:f,setNodeRef:y,setActivatorNodeRef:j,transform:b}}({id:e.id,disabled:n}),s=o?{transform:`translate3d(${o.x}px, ${o.y}px, 0)`,zIndex:30}:{};return(0,p.jsxs)("article",{ref:l,style:s,...n?{}:r,...n?{}:i,onClick:n=>{o||(n.stopPropagation(),t(e.id))},className:`group rounded-md border bg-surface-0 p-3 text-left ${n?"cursor-pointer":"cursor-grab active:cursor-grabbing"} ${a?"border-accent shadow-lg":"border-border-subtle hover:border-border-default"}`,children:[(0,p.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[p.jsx("span",{className:"font-mono text-caption text-text-tertiary",children:e.id}),p.jsx(e3,{severity:e.severity})]}),p.jsx("h3",{title:e.title,className:"mt-1 text-body font-medium text-text-primary line-clamp-3",children:e.title}),(0,p.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-1.5 text-caption",children:[p.jsx(tl,{source:e.source}),p.jsx(ta,{issue:e}),"invalid"===e.column&&p.jsx("span",{className:`rounded-md px-1.5 py-0.5 ${"Acknowledged"===e.resolution?"bg-[var(--medium)]/15 text-[var(--medium)]":"bg-surface-2 text-text-secondary"}`,title:"Acknowledged"===e.resolution?"Valid but by-design / not a security issue":"Factually incorrect (false positive)",children:"Acknowledged"===e.resolution?"By-design":"Invalid"}),e.duplicate_of&&(0,p.jsxs)("span",{className:"rounded-md bg-surface-2 px-1.5 py-0.5 text-text-secondary",children:["dup of ",e.duplicate_of]}),"passing"===e.poc_status&&p.jsx("span",{className:"rounded-md bg-[var(--low)]/15 px-1.5 py-0.5 text-[var(--low)]",children:"PoC ✓"}),"failing"===e.poc_status&&p.jsx("span",{className:"rounded-md bg-[var(--critical)]/15 px-1.5 py-0.5 text-[var(--critical)]",children:"PoC ✕"}),e.resolution&&"invalid"!==e.column&&p.jsx("span",{className:"rounded-md bg-surface-2 px-1.5 py-0.5 text-text-secondary",children:e.resolution})]}),e.match_signals&&p.jsx("div",{className:"mt-2 text-caption text-text-tertiary",children:p.jsx("span",{className:"font-mono",children:[e.match_signals.contract?"contract":null,e.match_signals.function?"function":null,"different"!==e.match_signals.root_cause?`rc:${e.match_signals.root_cause}`:null,"different"!==e.match_signals.attack_vector?`av:${e.match_signals.attack_vector}`:null].filter(Boolean).join(" \xb7 ")})})]})}function tl({source:e}){return p.jsx("span",{className:"rounded-md bg-surface-2 px-1.5 py-0.5 text-text-tertiary",children:{manual:"Manual",auditagent:"AuditAgent",conformance:"Conformance",github:"GitHub"}[e]??e})}function ta({issue:e}){let t=e.sync_state??"none";if("none"===t)return null;if("unsynced"===t)return p.jsx("span",{title:"Run /sync-issues to push verified findings to GitHub.",className:"rounded-md border border-dashed border-border-default px-1.5 py-0.5 text-text-tertiary",children:"GH unsynced"});if("conflict"===t)return p.jsx("span",{title:"Local and remote diverged. Re-run /sync-issues to reconcile.",className:"rounded-md bg-[var(--critical)]/15 px-1.5 py-0.5 text-[var(--critical)]",children:"GH conflict"});let n="synced_closed"===t,r=`GH #${e.github_issue_number??"?"} ${n?"closed":"open"}`,i=n?"bg-surface-2 text-text-tertiary":"bg-[var(--low)]/15 text-[var(--low)]";return e.github_issue_url?p.jsx("a",{href:e.github_issue_url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:`rounded-md px-1.5 py-0.5 hover:underline ${i}`,children:r}):p.jsx("span",{className:`rounded-md px-1.5 py-0.5 ${i}`,children:r})}function to({issue:e,formatCtx:t,onClose:n,onSave:r}){let[i,l]=(0,g.useState)(e.title),[a,o]=(0,g.useState)(e.severity),[s,c]=(0,g.useState)(e.description),[d,u]=(0,g.useState)(e.recommendation),[f,h]=(0,g.useState)(e.resolution??""),[m,x]=(0,g.useState)(e.update_from_client??""),[b,v]=(0,g.useState)(!1),[y,w]=(0,g.useState)(!1),[j,C]=(0,g.useState)(!1),_=(0,g.useRef)(null),S="synced"===e.status,N=async()=>{let n=function(e,t={}){return`## [${e.severity}] ${e.title}
|
|
10
|
-
|
|
11
|
-
${e8(e,t)}
|
|
11
|
+
**Update from the client**: ${l}`}(e,t)}
|
|
12
12
|
|
|
13
13
|
---
|
|
14
|
-
`}({...e,title:i,severity:a,description:s,recommendation:d,resolution:f||void 0,update_from_client:m||void 0},t);try{await navigator.clipboard.writeText(n),w(!0),setTimeout(()=>w(!1),1500)}catch{}},D=async()=>{v(!0),await r({title:i,severity:a,description:s,recommendation:d,resolution:f||void 0,update_from_client:m||void 0}),v(!1),C(!1)};return p.jsx("div",{ref:_,tabIndex:-1,className:"fixed inset-0 z-50 flex items-center justify-center p-4 outline-none",style:{background:"var(--overlay-bg)"},onClick:n,onKeyDown:e=>{"Escape"===e.key&&n()},children:(0,p.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":`Issue ${e.id}`,className:"relative flex h-[85vh] w-full max-w-4xl flex-col overflow-hidden border border-border-emphasis bg-surface-1 shadow-2xl",style:{borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-accent)"},onClick:e=>e.stopPropagation(),children:[(0,p.jsxs)("div",{className:"flex items-center justify-between border-b border-border-default bg-surface-2 px-4 py-3",children:[(0,p.jsxs)("div",{className:"flex items-center gap-2 text-caption",children:[p.jsx("span",{className:"font-mono text-body text-text-tertiary",children:e.id}),p.jsx(tl,{source:e.source}),p.jsx(ta,{issue:e})]}),p.jsx("button",{type:"button",onClick:n,"aria-label":"Close",className:"rounded p-1 text-text-tertiary hover:bg-surface-3 hover:text-text-primary",children:p.jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:p.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]}),(0,p.jsxs)("div",{className:"flex-1 overflow-y-auto p-4",children:[S&&(0,p.jsxs)("div",{className:"mb-4 rounded-md border border-border-default bg-surface-2 px-3 py-2 text-caption text-text-secondary",children:["This issue is synced to GitHub and is read-only here. Edit it on GitHub, then run"," ",p.jsx("span",{className:"font-mono",children:"/sync-issues"})," to pull the changes back."]}),j?(0,p.jsxs)(p.Fragment,{children:[p.jsx(ts,{label:"Title",children:p.jsx("input",{type:"text",value:i,onChange:e=>l(e.target.value),disabled:S,className:"w-full rounded-md border border-border-default bg-surface-0 px-3 py-2 text-body text-text-primary focus:border-accent focus:outline-none disabled:opacity-60"})}),(0,p.jsxs)("div",{className:"mt-3 grid grid-cols-2 gap-3",children:[p.jsx(ts,{label:"Severity",children:p.jsx("select",{value:a,onChange:e=>o(e.target.value),disabled:S,className:"w-full rounded-md border border-border-default bg-surface-0 px-3 py-2 text-body text-text-primary focus:border-accent focus:outline-none disabled:opacity-60",children:e9.map(e=>p.jsx("option",{value:e,children:e},e))})}),p.jsx(ts,{label:"Resolution (verified only)",children:(0,p.jsxs)("select",{value:f,onChange:e=>h(e.target.value),disabled:S,className:"w-full rounded-md border border-border-default bg-surface-0 px-3 py-2 text-body text-text-primary focus:border-accent focus:outline-none disabled:opacity-60",children:[p.jsx("option",{value:"",children:"— none —"}),te.map(e=>p.jsx("option",{value:e,children:e},e))]})})]}),p.jsx(ts,{label:"Description",className:"mt-3",children:p.jsx("textarea",{value:s,onChange:e=>c(e.target.value),rows:8,disabled:S,className:"w-full rounded-md border border-border-default bg-surface-0 px-3 py-2 font-mono text-caption text-text-primary focus:border-accent focus:outline-none disabled:opacity-60"})}),p.jsx(ts,{label:"Recommendation",className:"mt-3",children:p.jsx("textarea",{value:d,onChange:e=>u(e.target.value),rows:4,disabled:S,className:"w-full rounded-md border border-border-default bg-surface-0 px-3 py-2 font-mono text-caption text-text-primary focus:border-accent focus:outline-none disabled:opacity-60"})}),p.jsx(ts,{label:"Update from the client",className:"mt-3",children:p.jsx("textarea",{value:m,onChange:e=>x(e.target.value),rows:4,disabled:S,placeholder:"How the client responded — used by /generate-report.",className:"w-full rounded-md border border-border-default bg-surface-0 px-3 py-2 font-mono text-caption text-text-primary focus:border-accent focus:outline-none disabled:opacity-60"})})]}):p.jsx(p.Fragment,{children:p.jsx(e4.MarkdownRenderer,{content:`**Title**: ${e.title}
|
|
15
|
-
|
|
16
|
-
**Severity**: ${e.severity}
|
|
17
|
-
|
|
18
|
-
${function(e,t={}){return e8(e,t)}(e,t)}`})}),e.code_locations.length>0&&(0,p.jsxs)("div",{className:"mt-4",children:[p.jsx("div",{className:"mb-1 text-caption font-medium text-text-tertiary",children:"Code locations"}),p.jsx("ul",{className:"space-y-1 font-mono text-caption text-text-secondary",children:e.code_locations.map((e,t)=>p.jsx("li",{children:e.file},`${e.file}-${t}`))})]}),e.match_signals&&(0,p.jsxs)("div",{className:"mt-4",children:[p.jsx("div",{className:"mb-1 text-caption font-medium text-text-tertiary",children:"Duplicate signals"}),p.jsx("p",{className:"text-caption text-text-secondary",children:e.reasoning??"Matched against another entry."}),(0,p.jsxs)("div",{className:"mt-1 flex flex-wrap gap-1.5 font-mono text-caption text-text-tertiary",children:[(0,p.jsxs)("span",{children:["contract: ",e.match_signals.contract?"✓":"—"]}),(0,p.jsxs)("span",{children:["function: ",e.match_signals.function?"✓":"—"]}),(0,p.jsxs)("span",{children:["root_cause: ",e.match_signals.root_cause]}),(0,p.jsxs)("span",{children:["attack_vector: ",e.match_signals.attack_vector]})]})]})]}),(0,p.jsxs)("div",{className:"flex items-center justify-between gap-2 border-t border-border-default bg-surface-2 px-4 py-3",children:[p.jsx("button",{type:"button",onClick:N,className:"rounded-md border border-border-default px-3 py-1.5 text-body text-text-secondary hover:bg-surface-3 hover:text-text-primary",children:y?"Copied!":"Copy as HackMD"}),p.jsx("div",{className:"flex items-center gap-2",children:j?(0,p.jsxs)(p.Fragment,{children:[p.jsx("button",{type:"button",onClick:()=>C(!1),className:"rounded-md px-3 py-1.5 text-body text-text-secondary hover:text-text-primary",children:"Cancel"}),p.jsx("button",{type:"button",onClick:D,disabled:b,className:"rounded-md bg-accent px-3 py-1.5 text-body font-medium text-surface-0 hover:bg-accent-secondary disabled:opacity-50",children:b?"Saving…":"Save"})]}):(0,p.jsxs)(p.Fragment,{children:[p.jsx("button",{type:"button",onClick:n,className:"rounded-md px-3 py-1.5 text-body text-text-secondary hover:text-text-primary",children:"Close"}),p.jsx("button",{type:"button",onClick:()=>C(!0),disabled:S,title:S?"Synced to GitHub — edit it there, then run /sync-issues to pull the changes back.":void 0,className:"rounded-md bg-accent px-3 py-1.5 text-body font-medium text-surface-0 hover:bg-accent-secondary disabled:cursor-not-allowed disabled:opacity-40",children:"Edit"})]})})]})]})})}function ts({label:e,className:t,children:n}){return(0,p.jsxs)("label",{className:`block ${t??""}`,children:[p.jsx("span",{className:"mb-1 block text-caption font-medium text-text-tertiary",children:e}),n]})}},6844:(e,t,n)=>{"use strict";n.d(t,{MarkdownRenderer:()=>a,T:()=>o});var r=n(9899),i=n(5684),l=n(3798);function a({content:e,className:t}){return r.jsx("div",{className:`prose max-w-none
|
|
19
|
-
prose-headings:text-text-primary
|
|
20
|
-
prose-p:text-text-secondary
|
|
21
|
-
prose-strong:text-text-primary
|
|
22
|
-
prose-code:text-accent
|
|
23
|
-
prose-code:before:content-none
|
|
24
|
-
prose-code:after:content-none
|
|
25
|
-
prose-pre:bg-surface-0
|
|
26
|
-
prose-pre:border
|
|
27
|
-
prose-pre:border-border-default
|
|
28
|
-
prose-a:text-accent
|
|
29
|
-
prose-a:no-underline
|
|
30
|
-
hover:prose-a:underline
|
|
31
|
-
prose-th:text-text-primary
|
|
32
|
-
prose-td:text-text-secondary
|
|
33
|
-
prose-hr:border-border-default
|
|
34
|
-
prose-blockquote:border-border-emphasis
|
|
35
|
-
prose-blockquote:text-text-secondary
|
|
36
|
-
prose-li:text-text-secondary
|
|
37
|
-
${t??""}`,children:r.jsx(i.UG,{remarkPlugins:[l.Z],children:e})})}function o({children:e}){return r.jsx(i.UG,{remarkPlugins:[l.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})}},9817:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>h,dynamic:()=>u});var r=n(5023),i=n(1720),l=n(446),a=n(2772);let o=(0,a.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/issues/IssuesBoardClient.tsx`),{__esModule:s,$$typeof:c}=o;o.default;let d=(0,a.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/issues/IssuesBoardClient.tsx#IssuesBoardClient`),u="force-dynamic";function f(e,t){return"verified"!==e&&"synced"!==e?"none":t?.issue_number?"conflict"===t.sync_status||"local_ahead"===t.sync_status||"remote_ahead"===t.sync_status?"conflict":"closed"===t.state?"synced_closed":"synced_open":"unsynced"}function h(){let e=function(){let e=(0,i.gn)("findings.json")??{findings:[]},t=(0,i.gn)("tracking.json")??{findings:[]},n=(0,i.gn)("comparison.json")??{duplicates:[]},r=(0,i.gn)("spec-conformance.json")??{items:[]},l=new Map(e.findings.map(e=>[e.id,e])),a=new Map((r.items??[]).map(e=>[e.id,e])),o=(0,i.J1)("ai-results"),s=new Map;for(let e of o){let t=(0,i.V9)(`ai-results/${e}/findings.json`);if(t)for(let n of t.findings??[])s.set(n.id,{...n,tool:t.tool??e})}for(let e of(0,i.J1)("external")){let t=(0,i.V9)(`external/${e}/findings.json`);if(t)for(let n of t.findings??[])s.set(n.id,{...n,tool:t.tool??e})}let c=new Map;for(let e of n.duplicates??[])c.set(e.ai_finding,e);let d=[];for(let e of t.findings){let t=l.get(e.id),n=s.get(e.id),r=a.get(e.id),i=t?.description??n?.description??r?.finding??"",o=t?.recommendation??"",u=t?.resolution,h=t?.update_from_client,p=[];if(t?.root_cause?.locations)for(let e of t.root_cause.locations)p.push({file:e.file,snippet:e.snippet});else if(n?.affected_code)for(let e of n.affected_code)p.push({file:e.file,snippet:e.snippet});else r?.code_location?.file&&p.push({file:r.code_location.file});let g=c.get(e.id),m=g?.match_signals?{contract:!!g.match_signals.contract,function:!!g.match_signals.function,root_cause:String(g.match_signals.root_cause??""),attack_vector:String(g.match_signals.attack_vector??"")}:void 0;d.push({id:e.id,title:e.title||t?.title||n?.title||r?.spec_text||e.id,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:i,recommendation:o,resolution:u,update_from_client:h,code_locations:p,github_synced:!!t?.github?.issue_number,github_issue_url:t?.github?.issue_url,github_issue_number:t?.github?.issue_number,github_state:t?.github?.state,sync_state:f(e.status,t?.github),duplicate_of:e.duplicate_of??g?.matches??null,match_signals:m,reasoning:g?.reasoning,has_finding_record:!!t,category:t?.category??n?.category,poc_status:e.poc_status,poc_file:e.poc_file??t?.poc?.file??null,notes:e.notes??""})}let u=new Set(d.map(e=>e.id));for(let t of e.findings)u.has(t.id)||d.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:t.root_cause?.locations??[],github_synced:!!t.github?.issue_number,github_issue_url:t.github?.issue_url,github_issue_number:t.github?.issue_number,github_state:t.github?.state,sync_state:f("verified",t.github),duplicate_of:null,match_signals:void 0,reasoning:void 0,has_finding_record:!0,category:t.category,poc_status:t.poc?.status,poc_file:t.poc?.file??null,notes:""});return d}(),t=(0,i.gn)("config.json"),n={repositoryUrl:t?.settings?.report?.repository_url,commit:t?.settings?.report?.initial_commit};return 0===e.length?(0,r.jsxs)("div",{children:[(0,r.jsxs)("header",{className:"mb-6",children:[r.jsx("h1",{className:"text-title font-semibold text-text-primary",children:"Issues"}),r.jsx("p",{className:"mt-1 text-body text-text-secondary",children:"Potential, Verified, Invalid, and Duplicate issues across all sources."})]}),r.jsx(l.v,{command:"/init-audit (then /write-finding or /ingest-aa-report)"})]}):r.jsx(d,{issues:e,formatCtx:n})}},446:(e,t,n)=>{"use strict";n.d(t,{v:()=>i});var r=n(5023);function i({command:e}){return(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center border border-dashed border-border-default bg-surface-1 px-sp-5 py-sp-8 text-center",style:{borderRadius:"var(--radius-sm)"},children:[r.jsx("svg",{className:"mb-4 h-12 w-12 text-text-tertiary",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m6.75 12H9.75m3 0H9.75m0 0v3m-3-6h1.5m-1.5 0v3m6-6h.008v.008H15V9.75Z"})}),r.jsx("h3",{className:"mb-2 text-heading font-medium text-text-primary",children:"Data not yet generated"}),r.jsx("p",{className:"mb-4 text-body text-text-secondary",children:"Run the following command to generate this data:"}),r.jsx("code",{className:"border border-border-default bg-surface-0 px-sp-4 py-sp-2 font-mono text-body text-accent",style:{borderRadius:"var(--radius-sm)"},children:e})]})}},1720:(e,t,n)=>{"use strict";n.d(t,{ki:()=>h,ZN:()=>p,J1:()=>g,gn:()=>d,ws:()=>u,V9:()=>m,au:()=>f});var r=n(7561),i=n.n(r),l=n(9411),a=n.n(l);let o=[".hex",".solaudit","solaudit-output"];function s(e){return e.replace(/\\/g,"/")}function c(){try{let e=function(e=process.cwd()){let t=a().resolve(e);for(;;){let e=function(e){for(let t of[...o.map(t=>a().join(e,t,"config.json")),a().join(e,"config.json")])if(i().existsSync(t))return s(t);return null}(t);if(e)return s(a().dirname(e));let n=a().dirname(t);if(n===t)return null;t=n}}(process.cwd());if(e)return e}catch{}return a().join(process.cwd(),".hex")}function d(e){try{let t=a().join(c(),e),n=i().readFileSync(t,"utf-8");return JSON.parse(n)}catch{return null}}function u(e){try{let t=a().join(c(),e);return i().readFileSync(t,"utf-8")}catch{return null}}function f(e,t){let n=a().join(c(),e);i().writeFileSync(n,JSON.stringify(t,null,2),"utf-8")}function h(e){try{let t=a().join(c(),e);return i().existsSync(t)}catch{return!1}}function p(){return c()}function g(e){try{let t=a().join(c(),e);if(!i().existsSync(t))return[];return i().readdirSync(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return[]}}function m(e){try{let t=a().join(c(),e),n=i().readFileSync(t,"utf-8");return JSON.parse(n)}catch{return null}}},2950:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n(1645);let i=e=>[{type:"image/svg+xml",sizes:"any",url:(0,r.fillMetadataSegment)(".",e.params,"icon.svg")+"?83fa4bf1ef0d214d"}]}};var t=require("../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[916,649,645,494,530],()=>n(1834));module.exports=r})();
|
|
14
|
+
`}(e,r)),o({message:"Copied as HackMD"})}catch{o({message:"Clipboard is not available here",tone:"error"})}};return t?p.jsx(tC,{card:e,onDone:()=>n(!1),onClose:i}):(0,p.jsxs)(e8.lj,{eyebrow:`${e.id} \xb7 ${th[e.source]??e.source} \xb7 ${tp[e.column]}`,title:e.title,subtitle:p.jsx(te.oH,{severity:e.severity,className:"text-text-secondary"}),onClose:i,actions:(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(ti.z,{onClick:()=>n(!0),disabled:s,title:s?"Synced to GitHub: edit it there":void 0,children:["Edit ",p.jsx(tl.T,{children:"e"})]}),p.jsx(ti.z,{variant:"ghost",onClick:d,children:"Copy as HackMD"}),e.github_issue_url&&(0,p.jsxs)("a",{href:e.github_issue_url,target:"_blank",rel:"noreferrer",className:"inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-body text-text-secondary hover:bg-surface-2 hover:text-text-primary",children:["#",e.github_issue_number," ",p.jsx(to.Ak,{className:"h-3.5 w-3.5"})]})]}),children:[c?.auto_moved_to&&(0,p.jsxs)("div",{className:"mb-4 rounded-lg bg-surface-2 px-3 py-2.5",children:[(0,p.jsxs)("p",{className:"text-body text-text-primary",children:["An agent moved this card to ","verified"===c.auto_moved_to?"Verified":"Rejected","verified"===c.auto_moved_to&&"passing"===c.poc_status?" after its PoC passed":"","rejected"===c.auto_moved_to&&c.refuters?` after ${c.refuters} refuters agreed`:"","."]}),p.jsx(ti.z,{size:"sm",variant:"secondary",onClick:u,className:"mt-2",children:"Revert to Potential"})]}),c&&(0,p.jsxs)(e8.oz,{label:"Validation",children:[c.verdict&&p.jsx(e8.vz,{label:"Verdict",children:tx[c.verdict]??c.verdict}),c.validated_by&&p.jsx(e8.vz,{label:"By",children:"agent"===c.validated_by?"An agent":"The auditor"}),(c.poc_file||e.poc_file)&&(0,p.jsxs)(e8.vz,{label:"PoC",children:[p.jsx("span",{className:"font-mono text-caption",children:c.poc_file??e.poc_file}),(c.poc_status??e.poc_status)&&p.jsx("span",{className:"ml-2 text-caption text-text-tertiary",children:(c.poc_status??e.poc_status)?.replace("_"," ")})]}),c.memo&&p.jsx(e8.vz,{label:"Memo",children:p.jsx("span",{className:"font-mono text-caption",children:c.memo})}),c.reverted_at&&p.jsx(e8.vz,{label:"Reverted",children:p.jsx(m.P,{iso:c.reverted_at})})]}),e.description&&p.jsx(e8.oz,{label:"Description",children:p.jsx(ts.$8,{content:e.description})}),e.recommendation&&p.jsx(e8.oz,{label:"Recommendation",children:p.jsx(ts.$8,{content:e.recommendation})}),(e.resolution||e.update_from_client)&&(0,p.jsxs)(e8.oz,{label:"Client response",children:[e.resolution&&p.jsx(e8.vz,{label:"Status",children:e.resolution}),e.update_from_client&&p.jsx("p",{className:"mt-1 text-body text-text-secondary",children:e.update_from_client})]}),(e.functions.length>0||e.code_locations.length>0)&&(0,p.jsxs)(e8.oz,{label:"Code",children:[e.functions.map(e=>(0,p.jsxs)(g.default,{href:`/review?fn=${encodeURIComponent(e)}`,className:"-mx-1.5 flex items-center justify-between gap-2 rounded-md px-1.5 py-1 text-body text-text-primary hover:bg-surface-2",children:[p.jsx("span",{className:"truncate",children:e.split("(")[0]}),p.jsx("span",{className:"shrink-0 text-caption text-text-tertiary",children:"Review"})]},e)),0===e.functions.length&&Array.from(new Set(e.code_locations.map(e=>e.file))).map(e=>p.jsx("p",{className:"truncate font-mono text-caption text-text-secondary",children:e},e))]}),(e.duplicate_of||e.match_signals)&&(0,p.jsxs)(e8.oz,{label:"Duplicate",children:[e.duplicate_of&&p.jsx(e8.vz,{label:"Of",children:e.duplicate_of}),e.match_signals&&(0,p.jsxs)("p",{className:"mt-1 text-caption text-text-secondary",children:["Contract ",e.match_signals.contract?"matches":"differs"," \xb7 function"," ",e.match_signals.function?"matches":"differs"," \xb7 root cause"," ",e.match_signals.root_cause," \xb7 attack vector ",e.match_signals.attack_vector]}),e.reasoning&&p.jsx("p",{className:"mt-1 text-body text-text-secondary",children:e.reasoning})]}),s&&(0,p.jsxs)("p",{className:"mt-2 text-caption text-text-tertiary",children:["Synced to GitHub and read-only here. Edit it on GitHub, then run"," ",p.jsx("code",{className:"font-mono",children:"/sync-issues"}),"."]})]})}function tC({card:e,onDone:t,onClose:n}){let r=(0,b.useRouter)(),i=(0,ta.p)(),[l,a]=(0,x.useState)({title:e.title,severity:e.severity,resolution:e.resolution??"",description:e.description,recommendation:e.recommendation,update_from_client:e.update_from_client??""}),[o,s]=(0,x.useState)(!1),c=(0,x.useRef)(null),u=async()=>{s(!0);try{await (0,tu.C)(`/api/issues/${encodeURIComponent(e.id)}`,{...l,resolution:l.resolution||void 0,update_from_client:l.update_from_client||void 0},"PATCH"),i({message:`${e.id} saved`}),r.refresh(),t()}catch(e){i({message:e.message,tone:"error"})}finally{s(!1)}},d="w-full rounded-md border border-border-subtle bg-surface-0 px-2.5 py-1.5 text-body text-text-primary focus:border-border-emphasis focus:outline-none";return p.jsx(e8.lj,{eyebrow:`Editing ${e.id}`,title:l.title||e.id,onClose:n,actions:(0,p.jsxs)(p.Fragment,{children:[p.jsx(ti.z,{variant:"primary",onClick:u,disabled:o,children:o?"Saving…":"Save"}),p.jsx(ti.z,{variant:"ghost",onClick:t,children:"Cancel"})]}),children:(0,p.jsxs)("form",{className:"space-y-4 border-t border-border-subtle pt-4",onSubmit:e=>{e.preventDefault(),u()},onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&u(),"Escape"===e.key&&t()},children:[p.jsx(tD,{text:"Title",children:p.jsx("input",{ref:c,className:d,value:l.title,onChange:e=>a({...l,title:e.target.value})})}),(0,p.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[p.jsx(tD,{text:"Severity",children:p.jsx("select",{className:d,value:l.severity,onChange:e=>a({...l,severity:e.target.value}),children:tv.map(e=>p.jsx("option",{children:e},e))})}),p.jsx(tD,{text:"Resolution",children:(0,p.jsxs)("select",{className:d,value:l.resolution,onChange:e=>a({...l,resolution:e.target.value}),children:[p.jsx("option",{value:"",children:"None"}),tb.map(e=>p.jsx("option",{children:e},e))]})})]}),p.jsx(tD,{text:"Description",children:p.jsx("textarea",{className:(0,tt.cn)(d,"leading-6"),rows:10,value:l.description,onChange:e=>a({...l,description:e.target.value})})}),p.jsx(tD,{text:"Recommendation",children:p.jsx("textarea",{className:(0,tt.cn)(d,"leading-6"),rows:4,value:l.recommendation,onChange:e=>a({...l,recommendation:e.target.value})})}),p.jsx(tD,{text:"Update from the client",children:p.jsx("textarea",{className:d,rows:3,value:l.update_from_client,placeholder:"Used by /generate-report",onChange:e=>a({...l,update_from_client:e.target.value})})}),(0,p.jsxs)("p",{className:"text-caption text-text-tertiary",children:[p.jsx(tl.T,{children:"⌘"})," ",p.jsx(tl.T,{children:"↵"})," to save \xb7 ",p.jsx(tl.T,{children:"esc"})," to cancel"]})]})})}function tD({text:e,children:t}){return(0,p.jsxs)("label",{className:"block",children:[p.jsx("span",{className:"mb-1 block text-caption text-text-tertiary",children:e}),t]})}},8107:(e,t,n)=>{"use strict";n.d(t,{P:()=>i});var r=n(9899);function i({iso:e,className:t}){return r.jsx("time",{dateTime:e,className:t,suppressHydrationWarning:!0,children:new Date(e).toLocaleString()})}},9428:(e,t,n)=>{"use strict";n.d(t,{U:()=>c});var r=n(9899),i=n(5507),l=n(1593),a=n(8279),o=n(5119),s=n(5125);function c({value:e,onChange:t,placeholder:n="Search",className:c,hotkey:u=!0}){let d=(0,i.useRef)(null);return(0,a.y)({"/":e=>{e.preventDefault(),d.current?.focus(),d.current?.select()}},u),(0,r.jsxs)("label",{className:(0,l.cn)("relative flex h-8 items-center",c),children:[r.jsx(o.jV,{className:"pointer-events-none absolute left-2.5 h-3.5 w-3.5 text-text-tertiary"}),r.jsx("input",{ref:d,type:"search",value:e,placeholder:n,"aria-label":n,onChange:e=>t(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(t(""),d.current?.blur())},className:"h-8 w-full rounded-md border border-transparent bg-surface-2 pl-8 pr-8 text-body text-text-primary placeholder:text-text-tertiary focus:border-border-emphasis focus:bg-surface-0 focus:outline-none [&::-webkit-search-cancel-button]:hidden"}),u&&!e&&r.jsx(s.T,{className:"pointer-events-none absolute right-2",children:"/"})]})}},394:(e,t,n)=>{"use strict";n.d(t,{s:()=>l});var r=n(9899),i=n(1593);function l({segments:e,value:t,onChange:n,className:l,ariaLabel:a,size:o="md",fill:s=!1}){return r.jsx("div",{role:"tablist","aria-label":a,className:(0,i.cn)("max-w-full items-center gap-0.5 overflow-x-auto rounded-lg bg-surface-2 p-0.5",s?"flex w-full":"inline-flex",l),children:e.map(e=>{let l=e.value===t;return(0,r.jsxs)("button",{role:"tab",type:"button","aria-selected":l,onClick:()=>n(e.value),className:(0,i.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",s&&"flex-1",l?"bg-surface-0 text-text-primary shadow-sm":"text-text-secondary hover:text-text-primary"),children:[e.label,void 0!==e.count&&r.jsx("span",{className:"tabular-nums text-text-tertiary",children:e.count})]},e.value)})})}},6309:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>b,dynamic:()=>v});var r=n(5023),i=n(9222),l=n(6905),a=n(7561),o=n.n(a),s=n(9411),c=n.n(s);let u=e=>c().join(e,"triage-rules.json");var d=n(6132),h=n(2548),f=n(2772);let p=(0,f.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/issues/BoardClient.tsx`),{__esModule:m,$$typeof:g}=p;p.default;let x=(0,f.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/issues/BoardClient.tsx#BoardClient`),v="force-dynamic";function b(){let e=(0,i.b4)(),t=(0,l.zi)(),n=function(e){try{return JSON.parse(o().readFileSync(u(e),"utf-8")).rules??[]}catch{return[]}}((0,l.WV)());return 0===e.length?(0,r.jsxs)("div",{className:"flex h-full flex-col",children:[r.jsx(h.o8,{title:"Board"}),r.jsx(d.u,{sentence:"No cards yet. Findings from you, agents and scans land here.",command:"/init-audit"})]}):r.jsx(x,{issues:e,rules:n.map(e=>({id:e.id,kind:e.kind,text:e.text,scope:e.scope??[]})),formatCtx:{repositoryUrl:t?.settings?.report?.repository_url,commit:t?.settings?.report?.initial_commit}})}},9222:(e,t,n)=>{"use strict";n.d(t,{b4:()=>o,lW:()=>s});var r=n(1720),i=n(3478),l=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 o(){let e=(0,r.gn)("findings.json")??{findings:[]},t=(0,r.gn)("tracking.json")??{findings:[]},n=(0,r.gn)("comparison.json")??{},o=(0,r.gn)("spec-conformance.json")??{},s=(0,l.Ge)(),c=(0,l.G2)(),u=new Map(e.findings.map(e=>[e.id,e])),d=new Map((o.items??[]).map(e=>[e.id,e])),h=new Map;for(let e of["ai-results","external"])for(let t of(0,r.J1)(e)){let n=(0,r.V9)(`${e}/${t}/findings.json`);for(let e of n?.findings??[])h.set(e.id,e)}let f=new Map((n.duplicates??[]).map(e=>[e.ai_finding,e])),p=(e,t,n,r)=>{if(!s)return[];try{return(0,i.VK)(s,{id:e,title:t,description:n,root_cause:{locations:r}},c)}catch{return[]}},m=[],g=new Set;for(let e of t.findings){let t=u.get(e.id),n=h.get(e.id),r=d.get(e.id),i=t?.description??n?.description??r?.finding??"",l=t?.root_cause?.locations?.map(e=>({file:e.file,snippet:e.snippet}))??n?.affected_code?.map(e=>({file:e.file,snippet:e.snippet}))??(r?.code_location?.file?[{file:r.code_location.file}]:[]),o=f.get(e.id),s=e.title||t?.title||n?.title||r?.spec_text||e.id;g.add(e.id),m.push({id:e.id,title:s,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:i,recommendation:t?.recommendation??"",resolution:t?.resolution,update_from_client:t?.update_from_client,code_locations:l,github_issue_url:t?.github?.issue_url,github_issue_number:t?.github?.issue_number,github_state:t?.github?.state,sync_state:a(e.status,t?.github),duplicate_of:e.duplicate_of??o?.matches??null,match_signals:o?.match_signals?{contract:!!o.match_signals.contract,function:!!o.match_signals.function,root_cause:String(o.match_signals.root_cause??""),attack_vector:String(o.match_signals.attack_vector??"")}:void 0,reasoning:o?.reasoning,category:t?.category||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:p(e.id,s,i,l)})}for(let t of e.findings){if(g.has(t.id))continue;let e=t.root_cause?.locations??[];m.push({id:t.id,title:t.title,severity:t.severity,source:"manual",status:"verified",column:"verified",description:t.description??"",recommendation:t.recommendation??"",resolution:t.resolution,update_from_client:t.update_from_client,code_locations:e,github_issue_url:t.github?.issue_url,github_issue_number:t.github?.issue_number,github_state:t.github?.state,sync_state:a("verified",t.github),duplicate_of:null,category:t.category,poc_status:t.poc?.status,poc_file:t.poc?.file??null,notes:"",source_ref:t.source_ref??null,validation:t.validation,functions:p(t.id,t.title,t.description??"",e)})}return m}function s(e=o()){let t={};for(let n of e)t[n.id]={id:n.id,title:n.title,severity:n.severity,column:n.column};return t}}};var t=require("../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[916,649,645,494,42,310,370,624],()=>n(1834));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/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../package.json","../../chunks/494.js","../../chunks/
|
|
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/916.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/issues/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/issues/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"4595":{"*":{"id":"1388","name":"*","chunks":[],"async":false}},"11076":{"*":{"id":"9323","name":"*","chunks":[],"async":false}},"11447":{"*":{"id":"5915","name":"*","chunks":[],"async":false}},"15276":{"*":{"id":"820","name":"*","chunks":[],"async":false}},"25268":{"*":{"id":"3817","name":"*","chunks":[],"async":false}},"43297":{"*":{"id":"1611","name":"*","chunks":[],"async":false}},"52331":{"*":{"id":"1174","name":"*","chunks":[],"async":false}},"56902":{"*":{"id":"2541","name":"*","chunks":[],"async":false}},"63237":{"*":{"id":"281","name":"*","chunks":[],"async":false}},"67498":{"*":{"id":"696","name":"*","chunks":[],"async":false}},"68916":{"*":{"id":"5314","name":"*","chunks":[],"async":false}},"71520":{"*":{"id":"5707","name":"*","chunks":[],"async":false}},"81751":{"*":{"id":"3368","name":"*","chunks":[],"async":false}},"84300":{"*":{"id":"9939","name":"*","chunks":[],"async":false}},"85581":{"*":{"id":"6462","name":"*","chunks":[],"async":false}},"88554":{"*":{"id":"1352","name":"*","chunks":[],"async":false}},"89690":{"*":{"id":"2204","name":"*","chunks":[],"async":false}},"92198":{"*":{"id":"9915","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/dx/Work/hex/node_modules/next/dist/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/app-router.js":{"id":25268,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/client-page.js":{"id":11076,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":89690,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/layout-router.js":{"id":15276,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":11447,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":43297,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/app/globals.css":{"id":13812,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/AutoRefresh.tsx":{"id":84300,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/CommandPalette.tsx":{"id":92198,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Sidebar.tsx":{"id":63237,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/components/ui/Toast.tsx":{"id":88554,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next-themes/dist/index.mjs":{"id":4595,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Manrope\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-sans\",\"display\":\"swap\"}],\"variableName\":\"manrope\"}":{"id":41600,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"JetBrains_Mono\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-mono\",\"display\":\"swap\"}],\"variableName\":\"jetbrainsMono\"}":{"id":55256,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","3185","static/chunks/app/layout-27a9da4610423c1e.js"],"async":false},"/home/dx/Work/hex/dashboard/app/changes/ChangesClient.tsx":{"id":71520,"name":"*","chunks":[],"async":false},"/home/dx/Work/hex/dashboard/components/ui/SplitView.tsx":{"id":81751,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","217","static/chunks/217-1d5b680ffd10e3f9.js","3924","static/chunks/3924-f1f85ccc7d59d7ab.js","2374","static/chunks/2374-8c6f137938f8518a.js","4521","static/chunks/app/issues/page-da4da93188c414a6.js"],"async":false},"/home/dx/Work/hex/dashboard/app/issues/BoardClient.tsx":{"id":68916,"name":"*","chunks":["7498","static/chunks/7498-7cf464d8af69cd0a.js","217","static/chunks/217-1d5b680ffd10e3f9.js","3924","static/chunks/3924-f1f85ccc7d59d7ab.js","2374","static/chunks/2374-8c6f137938f8518a.js","4521","static/chunks/app/issues/page-da4da93188c414a6.js"],"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/issues/page":[]}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{var e={};e.id=303,e.ids=[303],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")},9385:(e,t,n)=>{"use strict";n.r(t),n.d(t,{GlobalError:()=>r.a,__next_app__:()=>x,originalPathname:()=>u,pages:()=>d,routeModule:()=>m,tree:()=>c}),n(6075),n(7415),n(2874);var s=n(7105),i=n(5265),a=n(157),r=n.n(a),l=n(4665),o={};for(let e in l)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(o[e]=()=>l[e]);n.d(t,o);let c=["",{children:["model",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(n.bind(n,6075)),"/home/dx/Work/hex/dashboard/app/model/page.tsx"]}]},{metadata:{icon:[async e=>(await Promise.resolve().then(n.bind(n,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(n.bind(n,7415)),"/home/dx/Work/hex/dashboard/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(n.t.bind(n,2874,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(n.bind(n,2950))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],d=["/home/dx/Work/hex/dashboard/app/model/page.tsx"],u="/model/page",x={require:n,loadChunk:()=>Promise.resolve()},m=new s.AppPageRouteModule({definition:{kind:i.x.APP_PAGE,page:"/model/page",pathname:"/model",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},8472:(e,t,n)=>{Promise.resolve().then(n.bind(n,6462)),Promise.resolve().then(n.bind(n,3368))},6462:(e,t,n)=>{"use strict";n.d(t,{ModelClient:()=>E});var s=n(9899),i=n(4175),a=n(7701),r=n.n(a),l=n(5507),o=n(6153),c=n(1388),d=n(3368),u=n(8799),x=n(733),m=n(5893),p=n(7096),f=n(382),h=n(8110),g=n(1352),y=n(5119),b=n(366),j=n(6844),v=n(8279),_=n(1842),k=n(1593);let w=r()(async()=>{},{loadableGenerated:{modules:["app/model/ModelClient.tsx -> @/components/DiagramCanvas"]},ssr:!1,loading:()=>s.jsx("div",{className:"flex h-full items-center justify-center text-caption text-text-tertiary",children:"Loading canvas…"})}),N={actors:"Actors",assets:"Assets",privileges:"Privileges",trust:"Trust",dependencies:"Dependencies",accounting:"Accounting",invariants:"Invariants",spec:"Spec"},C={actors:"Who interacts with the protocol, and how far each is trusted.",assets:"What holds value, where it sits, and which functions move it.",privileges:"What each privileged role can do, at worst.",trust:"What has to be true outside the code for the protocol to be safe.",dependencies:"External systems the protocol relies on, and how they fail.",accounting:"The equations that must balance, and who moves each term.",invariants:"Properties that must always hold. Accept the ones you agree with; they feed /ai-audit and the fuzzer.",spec:"How the code measures up against its documentation and standards."},S={verified:{label:"Verified",color:"var(--success)"},contested:{label:"Contested",color:"var(--high)"},unverified:{label:"Unverified",color:"var(--neutral)"}},$={CONFORMS:{label:"Conforms",color:"var(--success)"},DEVIATES:{label:"Deviates",color:"var(--critical)"},PARTIAL:{label:"Partial",color:"var(--medium)"},UNVERIFIABLE:{label:"Unverifiable",color:"var(--neutral)"},UNDOCUMENTED:{label:"Undocumented",color:"var(--neutral)"}},P={passing:{label:"passing",color:"var(--success)"},failing:{label:"failing",color:"var(--critical)"},broken:{label:"broken",color:"var(--high)"},not_written:{label:"not written",color:"var(--neutral)"}},z={proposed:"Proposed",accepted:"Accepted",rejected:"Rejected"},M=e=>e.split("(")[0];function T({status:e}){let t=S[e??"unverified"]??S.unverified;return(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-caption text-text-tertiary",children:[s.jsx(m.oT,{color:t.color}),t.label]})}function E({model:e,invariants:t,spec:n,diagrams:i,fns:a,contracts:r,states:u,cards:p,cardsByFn:f}){let b;let j=(0,o.useSearchParams)(),k=(0,o.useRouter)(),w=(0,g.p)(),{resolvedTheme:C}=(0,c.F)(),S=(0,l.useMemo)(()=>{let s=[];return e&&(s.push({id:"actors",count:e.actors.length}),s.push({id:"assets",count:e.assets.length}),s.push({id:"privileges",count:e.privileges.length}),s.push({id:"trust",count:e.trust_assumptions.length}),s.push({id:"dependencies",count:e.external_dependencies.length}),s.push({id:"accounting",count:e.accounting.length})),s.push({id:"invariants",count:t.length}),n?.length&&s.push({id:"spec",count:n.length}),s},[e,t,n]),$=(0,l.useCallback)(()=>{let e=j.get("d");if(e&&i.some(t=>t.name===e))return{kind:"diagram",name:e};let t=j.get("s");return t&&S.some(e=>e.id===t)?{kind:"section",id:t}:i[0]?{kind:"diagram",name:i[0].name}:{kind:"section",id:S[0]?.id??"invariants"}},[j,i,S]),[P,M]=(0,l.useState)($),[T,E]=(0,l.useState)(()=>j.get("id")),[O,q]=(0,l.useState)(null),A="diagram"===P.kind?`d:${P.name}`:`s:${P.id}`,U=e=>{M(e),E(null),q(null)},F=(0,l.useMemo)(()=>[...i.map(e=>({kind:"diagram",name:e.name})),...S.map(e=>({kind:"section",id:e.id}))],[i,S]);(0,v.y)({j:()=>{let e=F.findIndex(e=>("diagram"===e.kind?`d:${e.name}`:`s:${e.id}`)===A),t=F[Math.min(F.length-1,e+1)];t&&U(t)},k:()=>{let e=F.findIndex(e=>("diagram"===e.kind?`d:${e.name}`:`s:${e.id}`)===A),t=F[Math.max(0,e-1)];t&&U(t)},Escape:()=>{E(null),q(null)}});let[W,V]=(0,l.useState)({}),L=(0,l.useMemo)(()=>t.map(e=>W[e.id]?{...e,status:W[e.id]}:e),[t,W]),B=(0,l.useCallback)(async(e,t)=>{let n=e.status;V(n=>({...n,[e.id]:t}));try{await (0,_.C)(`/api/invariants/${encodeURIComponent(e.id)}`,{status:t}),w({message:`${e.id} ${z[t].toLowerCase()}`,action:{label:"Undo",onClick:()=>{V(t=>({...t,[e.id]:n})),(0,_.C)(`/api/invariants/${encodeURIComponent(e.id)}`,{status:n}).then(()=>k.refresh())}}}),k.refresh()}catch(t){V(t=>({...t,[e.id]:n})),w({message:t.message,tone:"error"})}},[k,w]),K="diagram"===P.kind?i.find(e=>e.name===P.name)??null:null,H={model:e,invariants:L,fns:a,contracts:r,states:u,cards:p,cardsByFn:f,spec:n};"diagram"===P.kind&&O?b=s.jsx(D,{sel:O,ctx:H,onClose:()=>q(null),onOpenSection:(e,t)=>{M({kind:"section",id:e}),E(t)}}):"section"===P.kind&&null!==T&&(b=s.jsx(G,{section:P.id,item:T,ctx:H,onClose:()=>E(null),onInvariant:B}));let J=(0,s.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 pb-6 pt-1",children:[i.length>0&&s.jsx(x.i,{children:"Diagrams"}),i.map(e=>s.jsx(x.w,{dense:!0,selected:"diagram"===P.kind&&P.name===e.name,onClick:()=>U({kind:"diagram",name:e.name}),title:e.title,trailing:e.stale?s.jsx(m.oT,{color:"var(--medium)",title:"The model changed since you edited this diagram"}):e.in_report?s.jsx("span",{title:"In the report",children:s.jsx(y.NO,{className:"h-3.5 w-3.5"})}):e.edited?"Edited":void 0},e.name)),s.jsx(x.i,{children:"Protocol"}),S.map(e=>s.jsx(x.w,{dense:!0,selected:"section"===P.kind&&P.id===e.id,onClick:()=>U({kind:"section",id:e.id}),title:N[e.id],titleClassName:0===e.count?"text-text-tertiary":void 0,trailing:s.jsx("span",{className:"tabular-nums",children:e.count})},e.id))]});return s.jsx(d.z,{toolbar:s.jsx(d.Toolbar,{title:"Model",meta:e?.summary?s.jsx("span",{className:"hidden lg:inline",children:e.summary}):void 0}),list:J,listWidth:248,inspector:b,inspectorFloating:"diagram"===P.kind,children:"diagram"===P.kind?K?s.jsx(I,{entry:K,theme:"light"===C?"light":"dark",onSelect:q},K.name):s.jsx(h.u,{sentence:"This diagram is gone. Rebuild diagrams to bring it back.",command:"hex diagram build"}):s.jsx(R,{id:P.id,ctx:H,selected:T,onSelect:E,onInvariant:B})})}function I({entry:e,theme:t,onSelect:n}){let i=(0,o.useRouter)(),a=(0,g.p)(),r=(0,l.useRef)(null),[c,d]=(0,l.useState)(null),[u,x]=(0,l.useState)(e.in_report),[p,h]=(0,l.useState)(!1),[b,j]=(0,l.useState)(!1),v=(0,l.useCallback)(e=>{r.current=e},[]),N=(0,l.useCallback)(e=>{d(e),"saved"===e&&i.refresh()},[i]),C=async()=>{if(r.current){h(!0);try{let t=await r.current.exportPng();if(!(await fetch(`/api/diagrams/${encodeURIComponent(e.name)}/export`,{method:"POST",headers:{"Content-Type":"image/png"},body:t})).ok)throw Error("Could not write the figure");x(!0),a({message:`Added to the report as figures/${e.name}.png`}),i.refresh()}catch(e){a({message:e.message,tone:"error"})}finally{h(!1)}}},S=async()=>{h(!0);try{await fetch(`/api/diagrams/${encodeURIComponent(e.name)}/export`,{method:"DELETE"}),x(!1),a({message:"Removed from the report",action:{label:"Undo",onClick:()=>void C()}}),i.refresh()}finally{h(!1)}},$=async t=>{try{await (0,_.C)(`/api/diagrams/${encodeURIComponent(e.name)}/resolve`,{action:t}),a({message:"use-new"===t?"Switched to the new layout":"Kept your edits"}),i.refresh()}catch(e){a({message:e.message,tone:"error"})}};return(0,s.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,s.jsxs)("div",{className:"flex shrink-0 flex-wrap items-start gap-x-6 gap-y-3 border-b border-border-subtle px-6 py-4",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("div",{className:"flex items-baseline gap-3",children:[s.jsx("h2",{className:"text-heading font-semibold text-text-primary",children:e.title}),s.jsx("span",{className:"text-caption text-text-tertiary",children:"saving"===c?"Saving…":"saved"===c?"Saved":"error"===c?"Couldn't save":e.edited?"Edited":""})]}),s.jsx("p",{className:"mt-1 max-w-3xl text-body text-text-secondary",children:e.takeaway})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[s.jsx(f.z,{variant:"ghost",onClick:()=>j(e=>!e),"aria-pressed":b,title:"Show colors, strokes and fonts for the selected shapes",className:b?"bg-surface-2 text-text-primary":void 0,children:"Style"}),u?(0,s.jsxs)(f.z,{onClick:S,disabled:p,"aria-pressed":!0,title:"Take this diagram out of the report",children:[s.jsx(y.NO,{className:"h-4 w-4"})," In report"]}):s.jsx(f.z,{variant:"primary",onClick:C,disabled:p,children:p?"Exporting…":"Use in report"})]})]}),e.stale&&(0,s.jsxs)("div",{className:"fade-in flex shrink-0 flex-wrap items-center gap-3 border-b border-border-subtle bg-surface-1 px-6 py-2.5",children:[s.jsx(m.oT,{color:"var(--medium)"}),s.jsx("span",{className:"flex-1 text-body text-text-secondary",children:"The model changed since you edited this diagram."}),s.jsx(f.z,{size:"sm",variant:"secondary",onClick:()=>$("use-new"),children:"Use new layout"}),s.jsx(f.z,{size:"sm",variant:"ghost",onClick:()=>$("keep-mine"),children:"Keep mine"})]}),s.jsx("div",{className:(0,k.cn)("hex-canvas relative min-h-0 flex-1",b&&"hex-canvas--style"),children:s.jsx(w,{name:e.name,mtime:e.mtime,theme:t,onSelect:n,onSaved:N,onReady:v})})]})}function R({id:e,ctx:t,selected:n,onSelect:i,onInvariant:a}){let r=t.model,l=[],o="";switch(e){case"actors":l=(r?.actors??[]).map(e=>({key:e.id,title:e.name,subtitle:`${e.kind.replace("_"," ")} \xb7 ${e.trust.replace("_"," ")}${e.powers.length?` \xb7 ${e.powers.map(M).map(e=>e.split(".").pop()).join(", ")}`:""}`,trailing:s.jsx(T,{status:e.status})})),o="No actors in the model yet.";break;case"assets":l=(r?.assets??[]).map(e=>({key:e.id,title:e.name,subtitle:`${e.kind}${e.held_by.length?` \xb7 held by ${e.held_by.join(", ")}`:""}${e.moved_by.length?` \xb7 moved by ${e.moved_by.map(e=>M(e).split(".").pop()).join(", ")}`:""}`,trailing:s.jsx(T,{status:e.status})})),o="No assets in the model yet.";break;case"privileges":l=(r?.privileges??[]).map((e,t)=>({key:String(t),title:(0,s.jsxs)("span",{children:[O(r,e.actor)," can"," ",s.jsx("span",{className:"font-medium",children:M(e.function).split(".").pop()}),": ",e.effect]}),subtitle:`At worst: ${e.worst_case}${e.timelock?` \xb7 timelock ${e.timelock}`:""}`,trailing:s.jsx(T,{status:e.status})})),o="No privileged functions in the model.";break;case"trust":l=(r?.trust_assumptions??[]).map(e=>({key:e.claim_id,title:e.text,trailing:s.jsx(T,{status:e.status})})),o="No trust assumptions recorded.";break;case"dependencies":l=(r?.external_dependencies??[]).map(e=>({key:e.id,title:e.name,subtitle:`${e.kind}${e.failure_modes.length?` \xb7 ${e.failure_modes.join("; ")}`:""}`,trailing:s.jsx(T,{status:e.status})})),o="No external dependencies recorded.";break;case"accounting":l=(r?.accounting??[]).map(e=>({key:e.id,title:e.name,subtitle:e.equation,trailing:s.jsx(T,{status:e.status})})),o="No accounting equations recorded.";break;case"invariants":l=t.invariants.map(e=>{let t=e.test?P[e.test.status]:null;return{key:e.id,title:e.statement,subtitle:(0,s.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-x-2",children:[(0,s.jsxs)("span",{children:[e.id," \xb7 ",e.kind," \xb7 ",z[e.status]]}),e.verification?.status==="contested"&&(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:["\xb7 ",s.jsx(m.oT,{color:S.contested.color})," Contested"]}),e.test&&t&&(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:["\xb7 ",s.jsx(m.oT,{color:t.color})," ",e.test.tool," ",t.label]}),e.issue_id&&(0,s.jsxs)("span",{children:["\xb7 ",e.issue_id]})]}),actions:"proposed"===e.status?(0,s.jsxs)("span",{className:"flex shrink-0 gap-1",children:[s.jsx(f.z,{size:"sm",variant:"secondary",onClick:t=>{t.stopPropagation(),a(e,"accepted")},children:"Accept"}),s.jsx(f.z,{size:"sm",variant:"ghost",onClick:t=>{t.stopPropagation(),a(e,"rejected")},children:"Reject"})]}):void 0}}),o="No invariants yet. /init-audit proposes them from the model.";break;case"spec":l=(t.spec??[]).map(e=>({key:e.id,title:e.spec_text,subtitle:`${e.id} \xb7 ${e.source.replace("_"," ")}`,trailing:(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-caption text-text-tertiary",children:[s.jsx(m.oT,{color:$[e.status]?.color??"var(--neutral)"}),$[e.status]?.label??e.status]})})),o="No spec conformance checks yet."}return s.jsx(d.x,{children:(0,s.jsxs)("div",{className:"mx-auto max-w-[780px] px-8 pb-16 pt-8",children:[s.jsx("h2",{className:"text-title font-semibold text-text-primary",children:N[e]}),s.jsx("p",{className:"mt-1 text-body text-text-tertiary",children:C[e]}),0===l.length?s.jsx("p",{className:"mt-8 text-body text-text-tertiary",children:o}):s.jsx("div",{className:"stagger -mx-2 mt-6",children:l.map(e=>(0,s.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>i(e.key),onKeyDown:t=>"Enter"===t.key&&i(e.key),className:(0,k.cn)("flex cursor-pointer items-start gap-4 rounded-md px-2 py-2.5",n===e.key?"bg-accent-subtle":"hover:bg-surface-1"),children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[s.jsx("div",{className:(0,k.cn)("text-body",n===e.key?"text-accent":"text-text-primary"),children:e.title}),e.subtitle&&s.jsx("div",{className:"mt-0.5 text-caption text-text-tertiary",children:e.subtitle})]}),n!==e.key&&e.actions,e.trailing&&s.jsx("div",{className:"shrink-0 pt-0.5",children:e.trailing})]},e.key))})]})})}function O(e,t){return e?.actors.find(e=>e.id===t)?.name??t}function q({evidence:e}){return e?.length?s.jsx(u.oz,{label:"Evidence",children:s.jsx("div",{className:"flex flex-col items-start gap-1",children:e.map((e,t)=>s.jsx(b.i,{file:e.file,lineStart:e.line_start,lineEnd:e.line_end},t))})}):null}function A({ids:e,ctx:t,label:n}){return e.length?s.jsx(u.oz,{label:n,children:e.map(e=>{let n=t.states[e];return(0,s.jsxs)(i.default,{href:`/review?fn=${encodeURIComponent(e)}`,className:"-mx-1.5 flex items-center gap-2 rounded-md px-1.5 py-1 text-body text-text-primary hover:bg-surface-2",children:[n?s.jsx(p.e,{state:n,className:"h-3 w-3"}):s.jsx("span",{className:"h-3 w-3"}),s.jsx("span",{className:"truncate",children:M(e)})]},e)})}):null}function U({ids:e,ctx:t}){return e.length?s.jsx(u.oz,{label:"Cards",children:e.map(e=>{let n=t.cards[e];return(0,s.jsxs)(i.default,{href:`/issues?card=${encodeURIComponent(e)}`,className:"-mx-1.5 flex items-center gap-2 rounded-md px-1.5 py-1 text-body text-text-primary hover:bg-surface-2",children:[n&&s.jsx(m.oH,{severity:n.severity,label:!1}),s.jsx("span",{className:"min-w-0 flex-1 truncate",children:n?.title??e}),s.jsx("span",{className:"shrink-0 text-caption text-text-tertiary",children:e})]},e)})}):null}function F({fn:e,ctx:t}){let n=t.states[e.id]??null,i=t.model,a=(i?.privileges??[]).filter(t=>t.function===e.id),r=(i?.actors??[]).filter(t=>t.powers.includes(e.id)),l=(i?.assets??[]).filter(t=>t.moved_by.includes(e.id)),o=t.invariants.filter(t=>t.scope.functions.includes(e.id));return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(u.oz,{label:"Code",children:[s.jsx(b.i,{file:e.file,lineStart:e.line_start,lineEnd:e.line_end}),(0,s.jsxs)("p",{className:"mt-1.5 text-caption text-text-tertiary",children:[e.callers," caller",1===e.callers?"":"s"," \xb7 ",e.callees," callee",1===e.callees?"":"s",e.is_entry_point?" \xb7 entry point":""]})]}),n&&s.jsx(u.oz,{label:"Review",children:(0,s.jsxs)("p",{className:"flex items-center gap-2 text-body text-text-primary",children:[s.jsx(p.e,{state:n})," ",p.U[n]]})}),(a.length>0||r.length>0||l.length>0)&&s.jsx(u.oz,{label:"In the model",children:(0,s.jsxs)("ul",{className:"space-y-1 text-body text-text-secondary",children:[r.map(e=>(0,s.jsxs)("li",{children:["Only ",e.name," can call it."]},e.id)),a.map((e,t)=>(0,s.jsxs)("li",{children:[e.effect,". At worst: ",e.worst_case,"."]},t)),l.map(e=>(0,s.jsxs)("li",{children:["Moves ",e.name,"."]},e.id))]})}),o.length>0&&s.jsx(u.oz,{label:"Invariants",children:o.map(e=>(0,s.jsxs)("p",{className:"text-body text-text-secondary",children:[e.statement," ",s.jsx("span",{className:"text-caption text-text-tertiary",children:e.id})]},e.id))}),s.jsx(U,{ids:t.cardsByFn[e.id]??[],ctx:t})]})}function W({fnId:e}){return s.jsx(i.default,{href:`/review?fn=${encodeURIComponent(e)}`,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 in Review"})}function D({sel:e,ctx:t,onClose:n,onOpenSection:a}){let r=e.ref??e.node??"",l=function(e,t){if(t[e])return t[e];if(e.includes(".")&&!e.includes("(")){let[n,s]=e.split(".");return Object.values(t).find(e=>e.contract===n&&e.name===s)??null}return null}(r,t.fns);if(l)return s.jsx(u.lj,{eyebrow:`Function \xb7 ${l.contract}${e.changed?" \xb7 changed":""}`,title:l.name,subtitle:s.jsx("span",{className:"font-mono",children:l.signature}),onClose:n,actions:s.jsx(W,{fnId:l.id}),children:s.jsx(F,{fn:l,ctx:t})});let o=t.contracts[r];if(o)return s.jsx(u.lj,{eyebrow:`Contract \xb7 ${o.kind}`,title:o.name,onClose:n,actions:s.jsx(i.default,{href:`/review?contract=${encodeURIComponent(o.name)}`,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 in Review"}),children:(0,s.jsxs)(u.oz,{label:"Code",children:[s.jsx(b.i,{file:o.file,lineStart:o.line_start,lineEnd:o.line_end}),(0,s.jsxs)("p",{className:"mt-1.5 text-caption text-text-tertiary",children:[o.functions," functions \xb7 ",o.entry_points," entry points"]})]})});let c=t.model,d=c?.actors.find(e=>e.id===r);if(d)return s.jsx(G,{section:"actors",item:d.id,ctx:t,onClose:n});let x=c?.assets.find(e=>e.id===r);if(x)return s.jsx(G,{section:"assets",item:x.id,ctx:t,onClose:n});let m=c?.external_dependencies.find(e=>e.id===r);if(m)return s.jsx(G,{section:"dependencies",item:m.id,ctx:t,onClose:n});let p=c?.accounting.find(e=>e.id===r);if(p)return s.jsx(G,{section:"accounting",item:p.id,ctx:t,onClose:n});let h=t.invariants.find(e=>e.id===r);return h?s.jsx(u.lj,{eyebrow:"Invariant",title:h.statement,onClose:n,children:s.jsx(f.z,{variant:"secondary",onClick:()=>a("invariants",h.id),children:"Open in Invariants"})}):s.jsx(u.lj,{eyebrow:e.changed?"Diagram node \xb7 changed":"Diagram node",title:e.label||r,onClose:n,children:s.jsx("p",{className:"border-t border-border-subtle pt-3 text-body text-text-tertiary",children:"This node isn’t linked to code or the model."})})}function G({section:e,item:t,ctx:n,onClose:i,onInvariant:a}){let r=n.model;switch(e){case"actors":{let e=r?.actors.find(e=>e.id===t);if(!e)return null;return(0,s.jsxs)(u.lj,{eyebrow:`Actor \xb7 ${e.kind.replace("_"," ")}`,title:e.name,subtitle:`${e.trust.replace("_"," ")}`,onClose:i,children:[e.description&&s.jsx("p",{className:"pb-4 text-body text-text-secondary",children:e.description}),s.jsx(V,{status:e.status,note:e.note,by:e.verified_by}),s.jsx(A,{ids:e.powers,ctx:n,label:"Can call"}),s.jsx(q,{evidence:e.evidence})]})}case"assets":{let e=r?.assets.find(e=>e.id===t);if(!e)return null;return(0,s.jsxs)(u.lj,{eyebrow:`Asset \xb7 ${e.kind}`,title:e.name,subtitle:e.held_by.length?`Held by ${e.held_by.join(", ")}`:void 0,onClose:i,children:[e.description&&s.jsx("p",{className:"pb-4 text-body text-text-secondary",children:e.description}),s.jsx(V,{status:e.status,note:e.note,by:e.verified_by}),s.jsx(A,{ids:e.moved_by,ctx:n,label:"Moved by"}),s.jsx(q,{evidence:e.evidence})]})}case"privileges":{let e=r?.privileges[Number(t)];if(!e)return null;let a=n.fns[e.function];return(0,s.jsxs)(u.lj,{eyebrow:`Privilege \xb7 ${O(r,e.actor)}`,title:M(e.function).split(".").pop()??e.function,subtitle:a?s.jsx("span",{className:"font-mono",children:a.signature}):e.function,onClose:i,actions:a?s.jsx(W,{fnId:a.id}):void 0,children:[s.jsx(u.oz,{label:"Effect",children:s.jsx("p",{className:"text-body text-text-secondary",children:e.effect})}),(0,s.jsxs)(u.oz,{label:"Worst case",children:[s.jsx("p",{className:"text-body text-text-primary",children:e.worst_case}),e.timelock&&(0,s.jsxs)("p",{className:"mt-1 text-caption text-text-tertiary",children:["Timelock ",e.timelock]})]}),s.jsx(V,{status:e.status,note:e.note,by:e.verified_by}),s.jsx(q,{evidence:e.evidence}),a&&s.jsx(U,{ids:n.cardsByFn[a.id]??[],ctx:n})]})}case"trust":{let e=r?.trust_assumptions.find(e=>e.claim_id===t);if(!e)return null;return(0,s.jsxs)(u.lj,{eyebrow:"Trust assumption",title:e.text,onClose:i,children:[s.jsx(V,{status:e.status,note:e.note,by:e.verified_by}),s.jsx(q,{evidence:e.evidence})]})}case"dependencies":{let e=r?.external_dependencies.find(e=>e.id===t);if(!e)return null;return(0,s.jsxs)(u.lj,{eyebrow:`Dependency \xb7 ${e.kind}`,title:e.name,onClose:i,children:[e.failure_modes.length>0&&s.jsx(u.oz,{label:"How it can fail",children:s.jsx("ul",{className:"space-y-1 text-body text-text-secondary",children:e.failure_modes.map((e,t)=>s.jsx("li",{children:e},t))})}),s.jsx(V,{status:e.status,note:e.note,by:e.verified_by}),s.jsx(A,{ids:e.used_by,ctx:n,label:"Used by"}),s.jsx(q,{evidence:e.evidence})]})}case"accounting":{let e=r?.accounting.find(e=>e.id===t);if(!e)return null;return(0,s.jsxs)(u.lj,{eyebrow:"Accounting",title:e.name,subtitle:e.equation,onClose:i,children:[s.jsx(u.oz,{label:"Terms",children:s.jsx("ul",{className:"space-y-2",children:e.terms.map((e,t)=>(0,s.jsxs)("li",{className:"text-body",children:[s.jsx("div",{className:"text-text-primary",children:e.term}),s.jsx("div",{className:"text-caption text-text-tertiary",children:e.updated_by.map(e=>`${M(e.function).split(".").pop()} ${"increase"===e.direction?"↑":"decrease"===e.direction?"↓":"="}`).join(" \xb7 ")})]},t))})}),s.jsx(V,{status:e.status,note:e.note,by:e.verified_by}),s.jsx(q,{evidence:e.evidence})]})}case"invariants":{let e=n.invariants.find(e=>e.id===t);if(!e)return null;let r=e.test?P[e.test.status]:null;return(0,s.jsxs)(u.lj,{eyebrow:`${e.id} \xb7 ${e.kind} \xb7 ${z[e.status]}`,title:e.statement,subtitle:e.on_chain_enforced?"Enforced on-chain":"Not enforced on-chain: it holds only if the code is right",onClose:i,actions:a?"accepted"===e.status?s.jsx(f.z,{onClick:()=>a(e,"rejected"),children:"Reject"}):"rejected"===e.status?s.jsx(f.z,{onClick:()=>a(e,"accepted"),children:"Accept"}):(0,s.jsxs)(s.Fragment,{children:[s.jsx(f.z,{variant:"primary",onClick:()=>a(e,"accepted"),children:"Accept"}),s.jsx(f.z,{variant:"ghost",onClick:()=>a(e,"rejected"),children:"Reject"})]}):void 0,children:[e.verification&&s.jsx(u.oz,{label:"contested"===e.verification.status?"Contested by the skeptic":"Verified by the skeptic",children:(0,s.jsxs)("p",{className:"flex items-start gap-2 text-body text-text-secondary",children:[s.jsx(m.oT,{color:S[e.verification.status].color,className:"mt-1.5"}),s.jsx("span",{children:e.verification.note??"The code maintains this on every path the skeptic checked."})]})}),e.rationale&&s.jsx(u.oz,{label:"Rationale",children:s.jsx("p",{className:"text-body text-text-secondary",children:e.rationale})}),e.test&&r&&(0,s.jsxs)(u.oz,{label:"Test",children:[(0,s.jsxs)("p",{className:"flex items-center gap-2 text-body text-text-primary",children:[s.jsx(m.oT,{color:r.color})," ",e.test.tool," ",r.label,e.test.property_id&&s.jsx("span",{className:"text-caption text-text-tertiary",children:e.test.property_id})]}),void 0!==e.test.runs&&(0,s.jsxs)("p",{className:"mt-1 text-caption text-text-tertiary",children:[e.test.runs.toLocaleString()," runs"]}),(e.test.repro_file||e.test.file)&&s.jsx("p",{className:"mt-1 truncate font-mono text-caption text-text-secondary",children:e.test.repro_file??e.test.file})]}),e.issue_id&&s.jsx(U,{ids:[e.issue_id],ctx:n}),s.jsx(A,{ids:e.scope.functions,ctx:n,label:"Scope"}),0===e.scope.functions.length&&e.scope.contracts.length>0&&s.jsx(u.oz,{label:"Scope",children:s.jsx("p",{className:"text-body text-text-secondary",children:e.scope.contracts.join(", ")})}),s.jsx(q,{evidence:e.evidence})]})}case"spec":{let e=n.spec?.find(e=>e.id===t);if(!e)return null;return(0,s.jsxs)(u.lj,{eyebrow:`${e.id} \xb7 ${e.source.replace("_"," ")}`,title:e.spec_text,onClose:i,children:[(0,s.jsxs)(u.oz,{label:"Verdict",children:[(0,s.jsxs)("p",{className:"flex items-center gap-2 text-body text-text-primary",children:[s.jsx(m.oT,{color:$[e.status]?.color??"var(--neutral)"})," ",$[e.status]?.label??e.status,e.confidence&&(0,s.jsxs)("span",{className:"text-caption text-text-tertiary",children:[e.confidence," confidence"]})]}),e.finding&&s.jsx("p",{className:"mt-1.5 text-body text-text-secondary",children:s.jsx(j.T9,{children:e.finding})})]}),e.code_location?.file&&s.jsx(u.oz,{label:"Code",children:s.jsx(b.i,{file:e.code_location.file,lineStart:e.code_location.line_start,lineEnd:e.code_location.line_end})})]})}}return null}function V({status:e,note:t,by:n}){let i=S[e??"unverified"]??S.unverified;return(0,s.jsxs)(u.oz,{label:"Claim",children:[(0,s.jsxs)("p",{className:"flex items-center gap-2 text-body text-text-primary",children:[s.jsx(m.oT,{color:i.color})," ",i.label,n&&(0,s.jsxs)("span",{className:"text-caption text-text-tertiary",children:["by ",n]})]}),t&&s.jsx("p",{className:"mt-1 text-body text-text-secondary",children:t})]})}},7701:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let s=n(8286);n(9899),n(5507);let i=s._(n(7865));function a(e,t){var n;let s={loading:e=>{let{error:t,isLoading:n,pastDelay:s}=e;return null}};"function"==typeof e&&(s.loader=e);let a={...s,...t};return(0,i.default)({...a,modules:null==(n=a.loadableGenerated)?void 0:n.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9772:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return i}});let s=n(7101);function i(e){let{reason:t,children:n}=e;throw new s.BailoutToCSRError(t)}},7865:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return c}});let s=n(9899),i=n(5507),a=n(9772),r=n(98);function l(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},c=function(e){let t={...o,...e},n=(0,i.lazy)(()=>t.loader().then(l)),c=t.loading;function d(e){let l=c?(0,s.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,o=t.ssr?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.PreloadCss,{moduleIds:t.modules}),(0,s.jsx)(n,{...e})]}):(0,s.jsx)(a.BailoutToCSR,{reason:"next/dynamic",children:(0,s.jsx)(n,{...e})});return(0,s.jsx)(i.Suspense,{fallback:l,children:o})}return d.displayName="LoadableComponent",d}},98:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadCss",{enumerable:!0,get:function(){return a}});let s=n(9899),i=n(5403);function a(e){let{moduleIds:t}=e,n=(0,i.getExpectedRequestStore)("next/dynamic css"),a=[];if(n.reactLoadableManifest&&t){let e=n.reactLoadableManifest;for(let n of t){if(!e[n])continue;let t=e[n].files.filter(e=>e.endsWith(".css"));a.push(...t)}}return 0===a.length?null:(0,s.jsx)(s.Fragment,{children:a.map(e=>(0,s.jsx)("link",{precedence:"dynamic",rel:"stylesheet",href:n.assetPrefix+"/_next/"+encodeURI(e),as:"style"},e))})}},6075:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>g,dynamic:()=>h});var s=n(5023),i=n(1720),a=n(9222),r=n(5719),l=n(6905),o=n(8594),c=n(6132),d=n(2548),u=n(2772);let x=(0,u.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/model/ModelClient.tsx`),{__esModule:m,$$typeof:p}=x;x.default;let f=(0,u.createProxy)(String.raw`/home/dx/Work/hex/dashboard/app/model/ModelClient.tsx#ModelClient`),h="force-dynamic";function g(){let e=(0,l.WV)(),t=(0,o.wl)(e),n=(0,o.ri)(e).invariants,u=(0,i.gn)("spec-conformance.json"),x=(0,r.FK)().map(e=>({...e,mtime:(0,r.g1)(e.name)}));if(!t&&0===x.length&&0===n.length&&!u?.items?.length)return(0,s.jsxs)("div",{className:"flex h-full flex-col",children:[s.jsx(d.o8,{title:"Model"}),s.jsx(c.u,{sentence:"The protocol model (actors, assets, privileges, invariants and diagrams) is built by the audit kickoff.",command:"/init-audit"})]});let m=(0,l.Ge)(),p=(0,l.Aw)(0),h={};for(let e of p.rows)h[e.id]=e.state;let g={},y={};if(m){for(let e of m.functions)g[e.id]={id:e.id,contract:e.contract,name:e.name,signature:e.signature,visibility:e.visibility,file:e.file,line_start:e.line_start,line_end:e.line_end,is_entry_point:e.is_entry_point,callers:e.called_by.filter(e=>"modifier"!==e.kind).length,callees:e.calls.filter(e=>"modifier"!==e.kind).length};for(let e of m.contracts)y[e.name]={name:e.name,kind:e.kind,file:e.file,line_start:e.line_start,line_end:e.line_end,functions:m.functions.filter(t=>t.contract===e.name).length,entry_points:m.entry_points[e.name]?.length??0}}let b=(0,a.b4)(),j={};for(let e of b)if("duplicate"!==e.column&&"invalid"!==e.column)for(let t of e.functions)j[t]=[...j[t]??[],e.id];return s.jsx(f,{model:t,invariants:n,spec:u?.items??null,diagrams:x,fns:g,contracts:y,states:h,cards:(0,a.lW)(b),cardsByFn:j})}},9222:(e,t,n)=>{"use strict";n.d(t,{b4:()=>l,lW:()=>o});var s=n(1720),i=n(3478),a=n(6905);function r(e,t){return"verified"!==e&&"synced"!==e?"none":t?.issue_number?t.sync_status&&"in_sync"!==t.sync_status?"conflict":"closed"===t.state?"synced_closed":"synced_open":"unsynced"}function l(){let e=(0,s.gn)("findings.json")??{findings:[]},t=(0,s.gn)("tracking.json")??{findings:[]},n=(0,s.gn)("comparison.json")??{},l=(0,s.gn)("spec-conformance.json")??{},o=(0,a.Ge)(),c=(0,a.G2)(),d=new Map(e.findings.map(e=>[e.id,e])),u=new Map((l.items??[]).map(e=>[e.id,e])),x=new Map;for(let e of["ai-results","external"])for(let t of(0,s.J1)(e)){let n=(0,s.V9)(`${e}/${t}/findings.json`);for(let e of n?.findings??[])x.set(e.id,e)}let m=new Map((n.duplicates??[]).map(e=>[e.ai_finding,e])),p=(e,t,n,s)=>{if(!o)return[];try{return(0,i.VK)(o,{id:e,title:t,description:n,root_cause:{locations:s}},c)}catch{return[]}},f=[],h=new Set;for(let e of t.findings){let t=d.get(e.id),n=x.get(e.id),s=u.get(e.id),i=t?.description??n?.description??s?.finding??"",a=t?.root_cause?.locations?.map(e=>({file:e.file,snippet:e.snippet}))??n?.affected_code?.map(e=>({file:e.file,snippet:e.snippet}))??(s?.code_location?.file?[{file:s.code_location.file}]:[]),l=m.get(e.id),o=e.title||t?.title||n?.title||s?.spec_text||e.id;h.add(e.id),f.push({id:e.id,title:o,severity:e.severity,source:e.source??"manual",status:e.status??"pending_validation",column:function(e){switch(e){case"verified":return"verified";case"synced":return"synced";case"rejected":return"invalid";case"duplicate":return"duplicate";default:return"potential"}}(e.status),description:i,recommendation:t?.recommendation??"",resolution:t?.resolution,update_from_client:t?.update_from_client,code_locations:a,github_issue_url:t?.github?.issue_url,github_issue_number:t?.github?.issue_number,github_state:t?.github?.state,sync_state:r(e.status,t?.github),duplicate_of:e.duplicate_of??l?.matches??null,match_signals:l?.match_signals?{contract:!!l.match_signals.contract,function:!!l.match_signals.function,root_cause:String(l.match_signals.root_cause??""),attack_vector:String(l.match_signals.attack_vector??"")}:void 0,reasoning:l?.reasoning,category:t?.category||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:p(e.id,o,i,a)})}for(let t of e.findings){if(h.has(t.id))continue;let e=t.root_cause?.locations??[];f.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:r("verified",t.github),duplicate_of:null,category:t.category,poc_status:t.poc?.status,poc_file:t.poc?.file??null,notes:"",source_ref:t.source_ref??null,validation:t.validation,functions:p(t.id,t.title,t.description??"",e)})}return f}function o(e=l()){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)=>{"use strict";n.d(t,{FK:()=>p,HE:()=>w,Ik:()=>$,Kl:()=>k,Vb:()=>S,ZD:()=>_,g1:()=>b,hd:()=>C,kb:()=>c,qu:()=>j,sv:()=>N,xt:()=>v});var s=n(7561),i=n.n(s),a=n(9411),r=n.n(a),l=n(6905);let o=/^[a-z0-9][a-z0-9-]*$/;function c(e){return o.test(e)}function d(){return r().join((0,l.WV)(),"model","diagrams")}function u(){return r().join((0,l.WV)(),"report","figures")}function x(e,t){i().mkdirSync(r().dirname(e),{recursive:!0});let n=e+".tmp";i().writeFileSync(n,JSON.stringify(t,null,2)+"\n","utf-8"),i().renameSync(n,e)}function m(e){try{return JSON.parse(i().readFileSync(e,"utf-8"))}catch{return null}}function p(){return m(r().join(d(),"index.json"))??[]}function f(e,t){let n=p(),s=n.find(t=>t.name===e);return s?(Object.assign(s,t),x(r().join(d(),"index.json"),n),s):null}let h=e=>r().join(d(),`${e}.excalidraw`),g=e=>r().join(d(),`${e}.regenerated.excalidraw`),y=e=>r().join(u(),`${e}.png`);function b(e){try{return Math.floor(i().statSync(h(e)).mtimeMs)}catch{return 0}}function j(e){try{return Math.floor(i().statSync(y(e)).mtimeMs)}catch{return 0}}function v(e){return m(h(e))}function _(e,t){let n=v(e),s=p().find(t=>t.name===e),i=t.appState??n?.appState??{},a={type:"excalidraw",version:2,source:n?.source??"hex",elements:t.elements,appState:{viewBackgroundColor:i.viewBackgroundColor??"#ffffff",gridSize:i.gridSize??null},files:t.files??n?.files??{},hex:{name:e,type:n?.hex?.type??s?.type??"custom",spec_hash:n?.hex?.spec_hash??s?.spec_hash??"",edited:!0}};return x(h(e),a),f(e,{edited:!0}),{mtime:b(e)}}function k(e){let t=m(g(e));if(!t)throw Error(`No regenerated layout for ${e}`);x(h(e),{...t,hex:{...t.hex??{name:e,type:"custom"},edited:!1}}),i().rmSync(g(e),{force:!0}),f(e,{edited:!1,stale:!1,...t.hex?.spec_hash?{spec_hash:t.hex.spec_hash}:{}})}function w(e){let t=m(g(e)),n=v(e),s=t?.hex?.spec_hash??n?.hex?.spec_hash??"";n&&x(h(e),{...n,hex:{...n.hex??{name:e,type:"custom"},spec_hash:s,edited:!0}}),i().rmSync(g(e),{force:!0}),f(e,{stale:!1,edited:!0,...s?{spec_hash:s}:{}})}function N(e,t){i().mkdirSync(u(),{recursive:!0});let n=y(e)+".tmp";i().writeFileSync(n,t),i().renameSync(n,y(e)),f(e,{in_report:!0})}function C(e){i().rmSync(y(e),{force:!0}),f(e,{in_report:!1})}function S(e){try{return i().readFileSync(y(e))}catch{return null}}function $(){try{return i().readdirSync(u()).filter(e=>e.endsWith(".png")).map(e=>e.replace(/\.png$/,"")).filter(c).sort()}catch{return[]}}},8594:(e,t,n)=>{"use strict";n.d(t,{bv:()=>x,ri:()=>u,wl:()=>c});var s=n(7561),i=n.n(s),a=n(9411),r=n.n(a);function l(e){return r().join(e,"model")}function o(e){try{return JSON.parse(i().readFileSync(e,"utf-8"))}catch{return null}}function c(e){return o(r().join(l(e),"protocol.json"))}let d=e=>r().join(l(e),"invariants.json");function u(e){return o(d(e))??{updated_at:new Date(0).toISOString(),invariants:[]}}function x(e,t,n,s){return function(e,t,n){let s=u(e),a=s.invariants.find(e=>e.id===t);if(!a)throw Error(`No invariant ${t} in .hex/model/invariants.json`);return n(a),function(e,t){i().mkdirSync(r().dirname(e),{recursive:!0});let n=e+".tmp";i().writeFileSync(n,JSON.stringify(t,null,2)+"\n","utf-8"),i().renameSync(n,e)}(d(e),{...s,updated_at:new Date().toISOString()}),a}(e,t,e=>{e.status=n,s&&(e.rationale=s)})}}};var t=require("../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),s=t.X(0,[916,649,645,494,42,310,370,624,653],()=>n(9385));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../package.json","../../chunks/
|
|
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"]}
|