0sec-cli 0.23.0 → 0.24.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/0.js +66 -67
- package/README.md +37 -11
- package/chunks/{adapt-loop-V3JFWOKC.js → adapt-loop-TEJPXWFG.js} +4 -4
- package/chunks/{artifact-scraper-NYKUF2M5.js → artifact-scraper-AJZ3LOQY.js} +2 -2
- package/chunks/{assumption-mining-ZX3YVWEH.js → assumption-mining-EATDC4BB.js} +18 -18
- package/chunks/{backend-connections-H52NIVH2.js → backend-connections-QE4NASAK.js} +3 -3
- package/chunks/chunk-3XLEDCFX.js +566 -0
- package/chunks/{chunk-I3OCJ2OA.js → chunk-3XLFB46W.js} +5 -3
- package/chunks/{chunk-TPUJZ74W.js → chunk-4TUR47H5.js} +2 -2
- package/chunks/{chunk-3ZNI7F42.js → chunk-4YRXIVPZ.js} +3 -3
- package/chunks/{chunk-A5QO7N3S.js → chunk-52AWIBCT.js} +1 -1
- package/chunks/{chunk-TO35Y326.js → chunk-554D4AYM.js} +5 -2
- package/chunks/{chunk-KHPOSLCF.js → chunk-5FHFG5P2.js} +174 -710
- package/chunks/{chunk-LT7BFGXA.js → chunk-5POT5OYF.js} +10 -10
- package/chunks/chunk-62PGWN7Y.js +700 -0
- package/chunks/{chunk-EH2WTNY7.js → chunk-A3EKBUEM.js} +1424 -859
- package/chunks/{chunk-YYS2H33A.js → chunk-A6AZZ6XX.js} +2 -2
- package/chunks/{chunk-A2ADXAC5.js → chunk-AV5BF4V7.js} +1288 -2313
- package/chunks/{chunk-NI6QYQSK.js → chunk-BIJPMYFA.js} +6 -6
- package/chunks/{chunk-JEYIWMGL.js → chunk-CIMN2AO6.js} +1 -1
- package/chunks/{chunk-P7KDN5PK.js → chunk-CSPF47S3.js} +14 -14
- package/chunks/{chunk-F344NYUN.js → chunk-DNV3ZMPX.js} +1 -1
- package/chunks/{chunk-YAEJAZYW.js → chunk-E42XEJTK.js} +2 -2
- package/chunks/{chunk-VDOWARMJ.js → chunk-ESM447R6.js} +15 -1
- package/chunks/{chunk-UZUELPFW.js → chunk-EXTN4SQV.js} +1 -1
- package/chunks/{chunk-BF5FIK7H.js → chunk-EYBMTELO.js} +108 -24
- package/chunks/chunk-FEOPHBMY.js +56 -0
- package/chunks/{chunk-XORZUR2H.js → chunk-FKGFHLLS.js} +1 -1
- package/chunks/chunk-G2EJ3R5I.js +5198 -0
- package/chunks/chunk-GHEBZKUS.js +5417 -0
- package/chunks/chunk-GNR3APR6.js +295 -0
- package/chunks/{chunk-EJH2TNVH.js → chunk-H76JYUPE.js} +3 -3
- package/chunks/{chunk-WIYNYNL2.js → chunk-HRBOZBMC.js} +1 -1
- package/chunks/{chunk-62ENS6XO.js → chunk-IIBNQTOK.js} +3 -2
- package/chunks/{chunk-UELXHK2Y.js → chunk-IK27KMVV.js} +16 -5
- package/chunks/{chunk-O6Z4XPOM.js → chunk-J6G73WYF.js} +1 -1
- package/chunks/chunk-JSTLXPJS.js +284 -0
- package/chunks/{chunk-K55B4OH4.js → chunk-O3ADFN2A.js} +1 -1
- package/chunks/chunk-O7Q2G2KW.js +117 -0
- package/chunks/{chunk-HFDSIHTE.js → chunk-QEA2VHBD.js} +202 -30
- package/chunks/{chunk-ITES7BCY.js → chunk-RBOMXUYL.js} +3 -111
- package/chunks/{chunk-T7ZEVY5G.js → chunk-RCHAFSWS.js} +815 -41
- package/chunks/{chunk-W5VNCB57.js → chunk-RD4FKFWR.js} +1 -1
- package/chunks/{chunk-LVGZGG63.js → chunk-RPTO5FY2.js} +1 -1
- package/chunks/{chunk-LTEE2JWK.js → chunk-RZR2XXAK.js} +251 -8
- package/chunks/chunk-SGILXLR3.js +289 -0
- package/chunks/{chunk-QMICC5O2.js → chunk-TOAAYJVN.js} +2 -2
- package/chunks/{chunk-PIR6BNE7.js → chunk-TOFIGQ63.js} +2 -2
- package/chunks/{chunk-V2BWXPZP.js → chunk-TTDFBFNZ.js} +6 -6
- package/chunks/{chunk-WYNZFNMF.js → chunk-TZRHWP7R.js} +289 -10
- package/chunks/chunk-UHUW45S3.js +164 -0
- package/chunks/{chunk-NX4H6L4M.js → chunk-V4BD7GSP.js} +2 -2
- package/chunks/{chunk-4HGGNBKK.js → chunk-V5I5GAQH.js} +2593 -1563
- package/chunks/{chunk-MQJVU2GZ.js → chunk-W6IYTSZH.js} +79 -9
- package/chunks/{chunk-OLSKXTQZ.js → chunk-WUPN3D37.js} +22 -248
- package/chunks/{chunk-AAA4PRWK.js → chunk-Y7KV7WV6.js} +2 -2
- package/chunks/{chunk-Y4HJRUFE.js → chunk-YERUDEXT.js} +876 -817
- package/chunks/{chunk-65H3MRBF.js → chunk-YJU7QACE.js} +1 -1
- package/chunks/{chunk-3E54JYS4.js → chunk-YORL5S5V.js} +1 -1
- package/chunks/{chunk-CP6HANBE.js → chunk-YYOQADBB.js} +4 -3
- package/chunks/{remote-workflow-runtime-RGQ5ECMN.js → chunk-ZPFBQ3SD.js} +39 -8
- package/chunks/{codex-models-Y457ND6Q.js → codex-models-FQPCWRPC.js} +7 -7
- package/chunks/{commands-PBDAOZKA.js → commands-I5L3VD2A.js} +1603 -6945
- package/chunks/dashboard-B2AEGCFM.js +76 -0
- package/chunks/{db-TPSI552V.js → db-P5EIKMLP.js} +3 -3
- package/chunks/{deep-review-DKED6EN5.js → deep-review-I7RD5QSS.js} +34 -33
- package/chunks/{disclose-LDNKAVRH.js → disclose-PFBWESVJ.js} +4 -2
- package/chunks/{dist-7Q5A6TQM.js → dist-3SWWY5FZ.js} +18 -2
- package/chunks/{dist-4LGRIBOC.js → dist-AJU25UXA.js} +99 -64
- package/chunks/{dist-RLPNLRZD.js → dist-VK2M4HNW.js} +33 -1
- package/chunks/eval-runner-XVRX3R2Y.js +31 -0
- package/chunks/{exploit-agent-RMFYNG7H.js → exploit-agent-A4RTIJ4J.js} +1 -1
- package/chunks/{exploit-autoclimb-2A2PQI4E.js → exploit-autoclimb-ABMMBC3M.js} +1 -1
- package/chunks/{exploit-climb-DEJ232QN.js → exploit-climb-BQ2SVU63.js} +2 -2
- package/chunks/{fix-JGBW7XUN.js → fix-4YCLHFDT.js} +7 -7
- package/chunks/{harness-CBOLMUHB.js → harness-DHWULEIZ.js} +3 -3
- package/chunks/{hunt-scan-MIRMABY4.js → hunt-scan-DXV5H6YN.js} +16 -16
- package/chunks/{kernel-primitive-NAPDMJC7.js → kernel-primitive-SF4NALVR.js} +2 -2
- package/chunks/{kernel-vm-runner-PR5OSDQ2.js → kernel-vm-runner-WEBEZEIC.js} +2 -2
- package/chunks/local-engine-XUG7XRKM.js +21 -0
- package/chunks/managed-operation-SQFMBWHG.js +60 -0
- package/chunks/{memsafety-scan-RPS446CD.js → memsafety-scan-L2Z7E7TE.js} +2 -2
- package/chunks/{native-loop-CGOJMNHV.js → native-loop-ZNAELJGB.js} +14 -13
- package/chunks/orchestrate-YHFJXGID.js +63 -0
- package/chunks/{prepare-YVNENPNL.js → prepare-SODWQN6O.js} +5 -5
- package/chunks/provider-model-discovery-QGUGL3XW.js +277 -0
- package/chunks/remote-workflow-runtime-XNNGI2PG.js +12 -0
- package/chunks/{run-VH4OIDKF.js → run-5T4Z3Q2D.js} +902 -322
- package/chunks/{runtime-4TAJFVF7.js → runtime-HFFRUOPL.js} +2 -2
- package/chunks/{runtime-HWL6HG7A.js → runtime-MB4GEFBY.js} +7 -7
- package/chunks/{scan-stream-HJAZJONE.js → scan-stream-GXBJHCDF.js} +3 -2
- package/chunks/{scope-Q5PIX2IS.js → scope-M7L3CD6X.js} +2 -2
- package/chunks/service-plugins-BGS6QKSZ.js +64 -0
- package/chunks/{session-store-2FEIZGSV.js → session-store-K7I4GLNH.js} +2 -2
- package/chunks/{variant-candidates-TX5V6XOT.js → variant-candidates-2KSP5EHH.js} +7 -7
- package/chunks/{web-recon-prepass-6HOUGF7Q.js → web-recon-prepass-RAXXTEWH.js} +5 -5
- package/chunks/workflow-runtime-V26HIJO3.js +178 -0
- package/dashboard/assets/{abnfDiagram-VCTEODGH-BuvumFYR.js → abnfDiagram-VCTEODGH-CGCueOp5.js} +1 -1
- package/dashboard/assets/{arc-DZzWDuCG.js → arc-BjZaQcCc.js} +1 -1
- package/dashboard/assets/architecture-7GRP2DOG-hcbO-9zX.js +1 -0
- package/dashboard/assets/{architectureDiagram-5GKGNRK7-Bw5el_EL.js → architectureDiagram-5GKGNRK7-DReOXTSq.js} +1 -1
- package/dashboard/assets/{blockDiagram-I7D4REHJ-BjVLEApp.js → blockDiagram-I7D4REHJ-C-byT12_.js} +1 -1
- package/dashboard/assets/{c4Diagram-7LVT6UL2-B9nNzx2J.js → c4Diagram-7LVT6UL2-DoYjz-Uv.js} +1 -1
- package/dashboard/assets/channel-CUURBnpZ.js +1 -0
- package/dashboard/assets/{chunk-4HAMMTFA-y72Q95nW.js → chunk-4HAMMTFA-NBNp2zdt.js} +1 -1
- package/dashboard/assets/{chunk-75Z2AOVW-BOhrOGMO.js → chunk-75Z2AOVW-BHmkuP0B.js} +1 -1
- package/dashboard/assets/{chunk-DU6HZSFF-B0EhAaNb.js → chunk-DU6HZSFF-DgfLNaL2.js} +2 -2
- package/dashboard/assets/{chunk-F27PBJKO-BR-hiDvM.js → chunk-F27PBJKO-3wwNFUgZ.js} +1 -1
- package/dashboard/assets/{chunk-GMAD6QVW-H15vJYXg.js → chunk-GMAD6QVW-Btg7huZW.js} +1 -1
- package/dashboard/assets/{chunk-GVQU2GXP-BRndps0o.js → chunk-GVQU2GXP-ihCURK5O.js} +1 -1
- package/dashboard/assets/{chunk-IMKFNOWR-CIzC_OWx.js → chunk-IMKFNOWR-FsXj7slg.js} +1 -1
- package/dashboard/assets/{chunk-L3NEJ4N5-NR4P1Vko.js → chunk-L3NEJ4N5-DorFIxJY.js} +1 -1
- package/dashboard/assets/{chunk-OSK3NFVY-DtjTDf8S.js → chunk-OSK3NFVY-DKun_KfC.js} +1 -1
- package/dashboard/assets/{chunk-P2QGCYS3-CYT11Qjx.js → chunk-P2QGCYS3-XGgiU1Bz.js} +1 -1
- package/dashboard/assets/{chunk-POPQ4Y6H-Duj2Ygwu.js → chunk-POPQ4Y6H-BTXEnGhJ.js} +1 -1
- package/dashboard/assets/{chunk-PWAF6VOD-z4p5Tf_y.js → chunk-PWAF6VOD-DYZcGkTL.js} +1 -1
- package/dashboard/assets/{chunk-SHT3W25Y-DYeLYLS3.js → chunk-SHT3W25Y-C4WQfwf8.js} +1 -1
- package/dashboard/assets/{chunk-SVP7TREG-BKowxCVI.js → chunk-SVP7TREG-C4nCh0-1.js} +1 -1
- package/dashboard/assets/{chunk-TICWLB2K-GDAwEFlH.js → chunk-TICWLB2K-DSB-IiGc.js} +1 -1
- package/dashboard/assets/{chunk-XXDRQBXY-DRD79Mjx.js → chunk-XXDRQBXY-CS6fjUcj.js} +1 -1
- package/dashboard/assets/classDiagram-ZZMXUADV-CD1Buc26.js +1 -0
- package/dashboard/assets/classDiagram-v2-VYDZK3BY-CD1Buc26.js +1 -0
- package/dashboard/assets/{common-vnzd7UOF.js → common-BMdQBwfR.js} +1 -1
- package/dashboard/assets/{cose-bilkent-JH36ORCC-GqCLsRyf.js → cose-bilkent-JH36ORCC-CUjQHTML.js} +1 -1
- package/dashboard/assets/{cynefin-OW5HDTMX-CJN9YwWN.js → cynefin-OW5HDTMX-BC7zCtFq.js} +1 -1
- package/dashboard/assets/{cynefinDiagram-5FMLGOSQ-DVJHCYQY.js → cynefinDiagram-5FMLGOSQ-CgDOOY67.js} +1 -1
- package/dashboard/assets/{dagre-GXQ25YYZ-BMCrrJJR.js → dagre-GXQ25YYZ-Dqc8FS9x.js} +1 -1
- package/dashboard/assets/{diagram-S7CK7UJ4-CLYDdOEm.js → diagram-S7CK7UJ4-CrKqRXZb.js} +1 -1
- package/dashboard/assets/{diagram-UQ7AKVKN-CnPuAZK7.js → diagram-UQ7AKVKN-Cu6Es0-v.js} +1 -1
- package/dashboard/assets/{diagram-VSXAHHWV-Cr2I2DnG.js → diagram-VSXAHHWV-eK4d8FwS.js} +1 -1
- package/dashboard/assets/{diagram-VX7I27RA-_mGW1wpp.js → diagram-VX7I27RA-bFxeFKOc.js} +1 -1
- package/dashboard/assets/{diagram-Z3DM3KII-igybB0l9.js → diagram-Z3DM3KII-C0ClmnhC.js} +1 -1
- package/dashboard/assets/{dist-Bb7_-x5y.js → dist-BZh8Kb3O.js} +1 -1
- package/dashboard/assets/{ebnfDiagram-PWID7BFC-CVCICf2R.js → ebnfDiagram-PWID7BFC-CUqxFPzf.js} +1 -1
- package/dashboard/assets/{erDiagram-RLTQ6QDP-CRjnfgxj.js → erDiagram-RLTQ6QDP-CcYM7pLi.js} +1 -1
- package/dashboard/assets/eventmodeling-NTZA5JFV-D8ZNnPkV.js +1 -0
- package/dashboard/assets/flowDiagram-HODETNUW-pDb1AYm8.js +1 -0
- package/dashboard/assets/{ganttDiagram-EL5Y4UJY-DppD7sD7.js → ganttDiagram-EL5Y4UJY-UmZfbMyD.js} +1 -1
- package/dashboard/assets/{gitGraph-4MIJSDKK-Tw0vNnQc.js → gitGraph-4MIJSDKK-mvNUo0ZA.js} +1 -1
- package/dashboard/assets/{gitGraphDiagram-WWUBYQGX-Cpf96-z3.js → gitGraphDiagram-WWUBYQGX-CvzeCxVy.js} +1 -1
- package/dashboard/assets/{info-A6RAGUB7-DLyt9arx.js → info-A6RAGUB7-DChKqZMi.js} +1 -1
- package/dashboard/assets/{infoDiagram-27XIBGKW-B6_piSNS.js → infoDiagram-27XIBGKW-DjkpNtVW.js} +1 -1
- package/dashboard/assets/{ishikawaDiagram-5VMMS53U-DvMO0B0X.js → ishikawaDiagram-5VMMS53U-8FhjJaWT.js} +1 -1
- package/dashboard/assets/{journeyDiagram-3NMN7TZE-f7ZK98b6.js → journeyDiagram-3NMN7TZE-DyNJ755f.js} +1 -1
- package/dashboard/assets/{kanban-definition-UXKFOSKX-Dso0nAxL.js → kanban-definition-UXKFOSKX-_jCmtaY1.js} +1 -1
- package/dashboard/assets/katex-BdBmVSus.js +257 -0
- package/dashboard/assets/{line-VcKaFG0G.js → line-Bf0nxyWf.js} +1 -1
- package/dashboard/assets/{linear-D7YnpiWh.js → linear-Bl6JKbf4.js} +1 -1
- package/dashboard/assets/{mermaid-parser.core-DriL2hrV.js → mermaid-parser.core-Cc6sgCzs.js} +3 -3
- package/dashboard/assets/{mermaid.core-DJWYDh_P.js → mermaid.core-B4yCwiN-.js} +4 -4
- package/dashboard/assets/{mindmap-definition-YA3MSWOX-DZsoIeac.js → mindmap-definition-YA3MSWOX-D5DjWyXj.js} +1 -1
- package/dashboard/assets/operations-B7JAWOi6.js +130 -0
- package/dashboard/assets/operations-QjKT0Hwi.css +1 -0
- package/dashboard/assets/{packet-AYTQ26CC-BQBIXKxk.js → packet-AYTQ26CC-bQXLDhQC.js} +1 -1
- package/dashboard/assets/{pegDiagram-XKGWAZYB-B0-lslgW.js → pegDiagram-XKGWAZYB-Bf6a1vaf.js} +1 -1
- package/dashboard/assets/{pie-WAS4IAKB-DoY6dwQs.js → pie-WAS4IAKB-DfzoABIi.js} +1 -1
- package/dashboard/assets/{pieDiagram-E7YTZNPT-ElmdRjp5.js → pieDiagram-E7YTZNPT-D0L1qbch.js} +1 -1
- package/dashboard/assets/{quadrantDiagram-AXDQQJYC-Ci1h98Q2.js → quadrantDiagram-AXDQQJYC-CbFyy2Pe.js} +1 -1
- package/dashboard/assets/{radar-RG4KPBEZ-DHod2WgB.js → radar-RG4KPBEZ-CZ2pyeUT.js} +1 -1
- package/dashboard/assets/{railroad-74A4TZTK-90JxB4xV.js → railroad-74A4TZTK-CP4Jazfd.js} +1 -1
- package/dashboard/assets/railroad-abnf-HS5TGJTU-3MvEiHwD.js +1 -0
- package/dashboard/assets/railroad-ebnf-LZEXJU2U-BWto6cXE.js +1 -0
- package/dashboard/assets/railroad-peg-WCYAUIDC-DasEjbyf.js +1 -0
- package/dashboard/assets/{railroadDiagram-O6MQD6OU-k3190A6L.js → railroadDiagram-O6MQD6OU-t7Gp9g2R.js} +1 -1
- package/dashboard/assets/{requirementDiagram-BXWQKSXE-C3-eR7I5.js → requirementDiagram-BXWQKSXE-LYmqeBXi.js} +1 -1
- package/dashboard/assets/{sankeyDiagram-P5KCCOFB-Bc86pi8w.js → sankeyDiagram-P5KCCOFB-DnpfA_94.js} +1 -1
- package/dashboard/assets/{sequenceDiagram-WJ2MYXX4-Bv_MvEmz.js → sequenceDiagram-WJ2MYXX4-C8s3pTUE.js} +1 -1
- package/dashboard/assets/{src-D7Dqq5yP.js → src-CaNUT1AQ.js} +1 -1
- package/dashboard/assets/{stateDiagram-D77RDMKH-Bq_GVmeW.js → stateDiagram-D77RDMKH-BMzm6fK1.js} +1 -1
- package/dashboard/assets/stateDiagram-v2-MP3YSRHH-B3REMjpY.js +1 -0
- package/dashboard/assets/{swimlanes-42K2YHIH-q0iK-e0P.js → swimlanes-42K2YHIH-uJE05Tt_.js} +1 -1
- package/dashboard/assets/swimlanesDiagram-VR7AAH4N-CIaVMZEy.js +8 -0
- package/dashboard/assets/{timeline-definition-24CTP7MA-CNfF07hM.js → timeline-definition-24CTP7MA-BfLJMVeG.js} +1 -1
- package/dashboard/assets/{treeView-Q6P3EWNA-m629ePnS.js → treeView-Q6P3EWNA-ZOE2enu2.js} +1 -1
- package/dashboard/assets/{treemap-WGGIJYW6-D9Cb2ETv.js → treemap-WGGIJYW6-yIZoPBF5.js} +1 -1
- package/dashboard/assets/{vennDiagram-4TSXK5OY-v4dKF-FE.js → vennDiagram-4TSXK5OY-BYJRHEaL.js} +1 -1
- package/dashboard/assets/{wardley-WFR3VGLG-DkwH_nRe.js → wardley-WFR3VGLG-D5V-jLbB.js} +1 -1
- package/dashboard/assets/{wardleyDiagram-VM6X3IG4-3ImohVu4.js → wardleyDiagram-VM6X3IG4-DgPN4nSe.js} +1 -1
- package/dashboard/assets/{xychartDiagram-S5SC5T6Z-QJu3dm7K.js → xychartDiagram-S5SC5T6Z-BhkAMAOT.js} +1 -1
- package/dashboard/index.html +3 -3
- package/package.json +3 -2
- package/worker-assets/demo-target/README.md +15 -0
- package/worker-assets/demo-target/include/decoder.h +27 -0
- package/worker-assets/demo-target/patched-decoder.c +40 -0
- package/worker-assets/demo-target/src/decoder.c +50 -0
- package/worker-assets/demo-target/witness-65537x1.bin +0 -0
- package/chunks/chunk-3P3XXSIJ.js +0 -463
- package/chunks/chunk-EWXOG6D3.js +0 -1695
- package/chunks/chunk-FXR3BT2G.js +0 -226
- package/chunks/chunk-R35KKJA4.js +0 -90
- package/chunks/eval-runner-RZKDOQ2G.js +0 -30
- package/chunks/managed-operation-YNQQEA5V.js +0 -59
- package/chunks/orchestrate-5NK34H3W.js +0 -62
- package/chunks/service-plugins-QYFITODK.js +0 -63
- package/chunks/workflow-runtime-ZEEBJFQG.js +0 -64
- package/dashboard/assets/architecture-7GRP2DOG-DK9bv1Md.js +0 -1
- package/dashboard/assets/channel-Ck17eKdX.js +0 -1
- package/dashboard/assets/classDiagram-ZZMXUADV-BaeZA6LE.js +0 -1
- package/dashboard/assets/classDiagram-v2-VYDZK3BY-BaeZA6LE.js +0 -1
- package/dashboard/assets/eventmodeling-NTZA5JFV-po5oDydv.js +0 -1
- package/dashboard/assets/flowDiagram-HODETNUW-TSV9s7q4.js +0 -1
- package/dashboard/assets/katex-CXMH3UgJ.js +0 -257
- package/dashboard/assets/operations-BIaUSnYv.js +0 -121
- package/dashboard/assets/operations-BeCdkT4S.css +0 -1
- package/dashboard/assets/railroad-abnf-HS5TGJTU-BkXGl114.js +0 -1
- package/dashboard/assets/railroad-ebnf-LZEXJU2U-QVAERn2C.js +0 -1
- package/dashboard/assets/railroad-peg-WCYAUIDC-B1-PM01z.js +0 -1
- package/dashboard/assets/stateDiagram-v2-MP3YSRHH-z1XRaftz.js +0 -1
- package/dashboard/assets/swimlanesDiagram-VR7AAH4N-C9L6XBQj.js +0 -8
- package/dashboard/assets/zero-connect-BGDY0PMZ.webp +0 -0
- package/dashboard/assets/zero-curious-DovTLOs8.webp +0 -0
- package/dashboard/assets/zero-peek-Dzm3MT3X.png +0 -0
- package/dashboard/assets/zero-planning-CBeHDrG_.webp +0 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __0CreateRequire } from "node:module";
|
|
3
|
+
const require = __0CreateRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
presentationEventBus
|
|
6
|
+
} from "./chunk-FEOPHBMY.js";
|
|
7
|
+
import {
|
|
8
|
+
createPresentationEvent
|
|
9
|
+
} from "./chunk-RZR2XXAK.js";
|
|
10
|
+
|
|
11
|
+
// packages/cli/src/presentation/process-output.ts
|
|
12
|
+
import { format } from "node:util";
|
|
13
|
+
var streamBridgeSuppressionDepth = 0;
|
|
14
|
+
var activeStreamBridge = null;
|
|
15
|
+
function currentPresentationTimestamp() {
|
|
16
|
+
return (/* @__PURE__ */ new Date()).toISOString();
|
|
17
|
+
}
|
|
18
|
+
function createProcessPresentationOutput(options = {}) {
|
|
19
|
+
const stdout = options.stdout ?? { write: process.stdout.write.bind(process.stdout) };
|
|
20
|
+
const stderr = options.stderr ?? { write: process.stderr.write.bind(process.stderr) };
|
|
21
|
+
const source = options.source ?? "cli";
|
|
22
|
+
const now = options.now ?? currentPresentationTimestamp;
|
|
23
|
+
let sequence = 0;
|
|
24
|
+
const write = (channel, target, text, eventType) => {
|
|
25
|
+
const event = createPresentationEvent({
|
|
26
|
+
source,
|
|
27
|
+
sequence: ++sequence,
|
|
28
|
+
at: now(),
|
|
29
|
+
eventType,
|
|
30
|
+
payload: { channel, text }
|
|
31
|
+
});
|
|
32
|
+
streamBridgeSuppressionDepth += 1;
|
|
33
|
+
try {
|
|
34
|
+
target.write(text);
|
|
35
|
+
} finally {
|
|
36
|
+
streamBridgeSuppressionDepth -= 1;
|
|
37
|
+
}
|
|
38
|
+
options.onEvent?.(event);
|
|
39
|
+
return event;
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
stdout(text, eventType = "output.stdout") {
|
|
43
|
+
return write("stdout", stdout, text, eventType);
|
|
44
|
+
},
|
|
45
|
+
stderr(text, eventType = "output.stderr") {
|
|
46
|
+
return write("stderr", stderr, text, eventType);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function createConsolePresentationOutput(options = {}) {
|
|
51
|
+
const source = options.source ?? "cli";
|
|
52
|
+
const now = options.now ?? currentPresentationTimestamp;
|
|
53
|
+
let sequence = 0;
|
|
54
|
+
const emit = (channel, text, eventType) => {
|
|
55
|
+
const event = createPresentationEvent({
|
|
56
|
+
source,
|
|
57
|
+
sequence: ++sequence,
|
|
58
|
+
at: now(),
|
|
59
|
+
eventType,
|
|
60
|
+
payload: { channel, text }
|
|
61
|
+
});
|
|
62
|
+
streamBridgeSuppressionDepth += 1;
|
|
63
|
+
try {
|
|
64
|
+
if (channel === "stdout") {
|
|
65
|
+
(options.log ?? console.log)(text);
|
|
66
|
+
} else {
|
|
67
|
+
(options.error ?? console.error)(text);
|
|
68
|
+
}
|
|
69
|
+
} finally {
|
|
70
|
+
streamBridgeSuppressionDepth -= 1;
|
|
71
|
+
}
|
|
72
|
+
options.onEvent?.(event);
|
|
73
|
+
return event;
|
|
74
|
+
};
|
|
75
|
+
return {
|
|
76
|
+
stdout(text, eventType = "output.stdout") {
|
|
77
|
+
return emit("stdout", text, eventType);
|
|
78
|
+
},
|
|
79
|
+
stderr(text, eventType = "output.stderr") {
|
|
80
|
+
return emit("stderr", text, eventType);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
var consolePresentationOutput = createConsolePresentationOutput({
|
|
85
|
+
onEvent(event) {
|
|
86
|
+
presentationEventBus.emit(event);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
function installConsolePresentationBridge(options = {}) {
|
|
90
|
+
const target = options.target ?? console;
|
|
91
|
+
const originals = {
|
|
92
|
+
log: target.log,
|
|
93
|
+
info: target.info,
|
|
94
|
+
warn: target.warn,
|
|
95
|
+
error: target.error
|
|
96
|
+
};
|
|
97
|
+
const source = options.source ?? "cli";
|
|
98
|
+
const now = options.now ?? currentPresentationTimestamp;
|
|
99
|
+
let sequence = 0;
|
|
100
|
+
const emit = (method, channel, args, eventType) => {
|
|
101
|
+
const text = format(...args);
|
|
102
|
+
if (streamBridgeSuppressionDepth > 0) {
|
|
103
|
+
originals[method].call(target, text);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const event = createPresentationEvent({
|
|
107
|
+
source,
|
|
108
|
+
sequence: ++sequence,
|
|
109
|
+
at: now(),
|
|
110
|
+
eventType,
|
|
111
|
+
payload: { channel, text }
|
|
112
|
+
});
|
|
113
|
+
streamBridgeSuppressionDepth += 1;
|
|
114
|
+
try {
|
|
115
|
+
originals[method].call(target, text);
|
|
116
|
+
} finally {
|
|
117
|
+
streamBridgeSuppressionDepth -= 1;
|
|
118
|
+
}
|
|
119
|
+
presentationEventBus.emit(event);
|
|
120
|
+
options.onEvent?.(event);
|
|
121
|
+
};
|
|
122
|
+
const bridgedLog = (...args) => emit("log", "stdout", args, "output.console.log");
|
|
123
|
+
const bridgedInfo = (...args) => emit("info", "stdout", args, "output.console.info");
|
|
124
|
+
const bridgedWarn = (...args) => emit("warn", "stderr", args, "output.console.warn");
|
|
125
|
+
const bridgedError = (...args) => emit("error", "stderr", args, "output.console.error");
|
|
126
|
+
target.log = bridgedLog;
|
|
127
|
+
target.info = bridgedInfo;
|
|
128
|
+
target.warn = bridgedWarn;
|
|
129
|
+
target.error = bridgedError;
|
|
130
|
+
return {
|
|
131
|
+
restore() {
|
|
132
|
+
if (target.log === bridgedLog) target.log = originals.log;
|
|
133
|
+
if (target.info === bridgedInfo) target.info = originals.info;
|
|
134
|
+
if (target.warn === bridgedWarn) target.warn = originals.warn;
|
|
135
|
+
if (target.error === bridgedError) target.error = originals.error;
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function installProcessPresentationStreamBridge(options = {}) {
|
|
140
|
+
if (activeStreamBridge) return activeStreamBridge;
|
|
141
|
+
const source = options.source ?? "cli";
|
|
142
|
+
const now = options.now ?? currentPresentationTimestamp;
|
|
143
|
+
let sequence = 0;
|
|
144
|
+
let suspended = false;
|
|
145
|
+
const streams = [];
|
|
146
|
+
const emit = (channel, chunk, encoding) => {
|
|
147
|
+
const text = typeof chunk === "string" ? chunk : chunk instanceof Uint8Array ? Buffer.from(chunk).toString(typeof encoding === "string" ? encoding : "utf8") : String(chunk ?? "");
|
|
148
|
+
if (channel === "stdout" && text.startsWith("ZERO_EVENT_")) return;
|
|
149
|
+
const event = createPresentationEvent({
|
|
150
|
+
source,
|
|
151
|
+
sequence: ++sequence,
|
|
152
|
+
at: now(),
|
|
153
|
+
eventType: channel === "stdout" ? "output.stream.stdout" : "output.stream.stderr",
|
|
154
|
+
payload: { channel, text }
|
|
155
|
+
});
|
|
156
|
+
presentationEventBus.emit(event);
|
|
157
|
+
options.onEvent?.(event);
|
|
158
|
+
};
|
|
159
|
+
for (const [channel, stream] of [
|
|
160
|
+
["stdout", options.stdout ?? process.stdout],
|
|
161
|
+
["stderr", options.stderr ?? process.stderr]
|
|
162
|
+
]) {
|
|
163
|
+
const original = stream.write;
|
|
164
|
+
const patched = ((chunk, encoding, callback) => {
|
|
165
|
+
const result = original.call(stream, chunk, encoding, callback);
|
|
166
|
+
if (!suspended && streamBridgeSuppressionDepth === 0) emit(channel, chunk, encoding);
|
|
167
|
+
return result;
|
|
168
|
+
});
|
|
169
|
+
streams.push({ channel, stream, original, patched });
|
|
170
|
+
}
|
|
171
|
+
const bridge = {
|
|
172
|
+
suspend() {
|
|
173
|
+
if (suspended) return;
|
|
174
|
+
suspended = true;
|
|
175
|
+
for (const item of streams) {
|
|
176
|
+
if (item.stream.write === item.patched) item.stream.write = item.original;
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
resume() {
|
|
180
|
+
if (!suspended) return;
|
|
181
|
+
suspended = false;
|
|
182
|
+
for (const item of streams) {
|
|
183
|
+
if (item.stream.write === item.original) item.stream.write = item.patched;
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
restore() {
|
|
187
|
+
for (const item of streams) {
|
|
188
|
+
if (item.stream.write === item.patched) item.stream.write = item.original;
|
|
189
|
+
}
|
|
190
|
+
if (activeStreamBridge === bridge) activeStreamBridge = null;
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
for (const item of streams) item.stream.write = item.patched;
|
|
194
|
+
activeStreamBridge = bridge;
|
|
195
|
+
return bridge;
|
|
196
|
+
}
|
|
197
|
+
function suspendProcessPresentationStreamBridge() {
|
|
198
|
+
activeStreamBridge?.suspend();
|
|
199
|
+
}
|
|
200
|
+
function resumeProcessPresentationStreamBridge() {
|
|
201
|
+
activeStreamBridge?.resume();
|
|
202
|
+
}
|
|
203
|
+
var processPresentationOutput = createProcessPresentationOutput({
|
|
204
|
+
onEvent(event) {
|
|
205
|
+
presentationEventBus.emit(event);
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
function writePresentationLine(text, eventType = "output.stdout") {
|
|
209
|
+
return processPresentationOutput.stdout(`${text}
|
|
210
|
+
`, eventType);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// packages/cli/src/tui/animations.ts
|
|
214
|
+
var UI_ANIMATION_INTERVAL_MS = 70;
|
|
215
|
+
function clamp(x, lo, hi) {
|
|
216
|
+
if (!Number.isFinite(x)) return lo;
|
|
217
|
+
return x < lo ? lo : x > hi ? hi : x;
|
|
218
|
+
}
|
|
219
|
+
function clamp01(x) {
|
|
220
|
+
return clamp(x, 0, 1);
|
|
221
|
+
}
|
|
222
|
+
function smoothstep(t) {
|
|
223
|
+
const x = clamp01(t);
|
|
224
|
+
return x * x * (3 - 2 * x);
|
|
225
|
+
}
|
|
226
|
+
function safeFrame(frame) {
|
|
227
|
+
if (!Number.isFinite(frame)) return 0;
|
|
228
|
+
const t = Math.trunc(frame);
|
|
229
|
+
return t < 0 ? 0 : t;
|
|
230
|
+
}
|
|
231
|
+
var SPINNER_PERIOD = 8;
|
|
232
|
+
var TOAST_ENTER_FRAMES = 6;
|
|
233
|
+
var TOAST_HOLD_FRAMES = 28;
|
|
234
|
+
var TOAST_EXIT_FRAMES = 6;
|
|
235
|
+
var TOAST_TOTAL_FRAMES = TOAST_ENTER_FRAMES + TOAST_HOLD_FRAMES + TOAST_EXIT_FRAMES;
|
|
236
|
+
var SPINNER_FRAMES = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827"];
|
|
237
|
+
function spinnerFrame(frame, opts = {}) {
|
|
238
|
+
if (opts.reduceMotion) return 0;
|
|
239
|
+
return safeFrame(frame) % SPINNER_PERIOD;
|
|
240
|
+
}
|
|
241
|
+
function spinnerGlyph(frame, opts = {}) {
|
|
242
|
+
return SPINNER_FRAMES[spinnerFrame(frame, opts)] ?? SPINNER_FRAMES[0];
|
|
243
|
+
}
|
|
244
|
+
var SHIMMER_TEXT_TAIL = 5;
|
|
245
|
+
var SHIMMER_TEXT_INTERVAL_MS = 80;
|
|
246
|
+
var SHIMMER_TEXT_REST_GAP = 6;
|
|
247
|
+
function shimmerTail(opts) {
|
|
248
|
+
const t = opts?.tail;
|
|
249
|
+
if (t === void 0 || !Number.isFinite(t)) return SHIMMER_TEXT_TAIL;
|
|
250
|
+
return Math.max(1, Math.trunc(t));
|
|
251
|
+
}
|
|
252
|
+
function shimmerRestGap(opts) {
|
|
253
|
+
const g = opts?.restGap;
|
|
254
|
+
if (g === void 0 || !Number.isFinite(g)) return SHIMMER_TEXT_REST_GAP;
|
|
255
|
+
return Math.max(0, Math.trunc(g));
|
|
256
|
+
}
|
|
257
|
+
function shimmerLength(length) {
|
|
258
|
+
if (!Number.isFinite(length)) return 0;
|
|
259
|
+
const n = Math.trunc(length);
|
|
260
|
+
return n < 0 ? 0 : n;
|
|
261
|
+
}
|
|
262
|
+
function shimmerText(length, frame, opts) {
|
|
263
|
+
const len = shimmerLength(length);
|
|
264
|
+
if (len <= 0) return [];
|
|
265
|
+
const out = new Array(len).fill(0);
|
|
266
|
+
if (opts?.reduceMotion) return out;
|
|
267
|
+
const tail = shimmerTail(opts);
|
|
268
|
+
const rest = shimmerRestGap(opts);
|
|
269
|
+
const period = len + 2 * tail + rest;
|
|
270
|
+
const sweep = len + 2 * tail;
|
|
271
|
+
const idx = (safeFrame(frame) % period + period) % period;
|
|
272
|
+
if (idx >= sweep) return out;
|
|
273
|
+
const head = idx - tail;
|
|
274
|
+
for (let offset = -tail; offset <= tail; offset += 1) {
|
|
275
|
+
const col = head + offset;
|
|
276
|
+
if (col < 0 || col >= len) continue;
|
|
277
|
+
const intensity = 1 - smoothstep(Math.abs(offset) / tail);
|
|
278
|
+
if (intensity > out[col]) out[col] = intensity;
|
|
279
|
+
}
|
|
280
|
+
return out;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
export {
|
|
284
|
+
consolePresentationOutput,
|
|
285
|
+
installConsolePresentationBridge,
|
|
286
|
+
installProcessPresentationStreamBridge,
|
|
287
|
+
suspendProcessPresentationStreamBridge,
|
|
288
|
+
resumeProcessPresentationStreamBridge,
|
|
289
|
+
processPresentationOutput,
|
|
290
|
+
writePresentationLine,
|
|
291
|
+
UI_ANIMATION_INTERVAL_MS,
|
|
292
|
+
spinnerGlyph,
|
|
293
|
+
SHIMMER_TEXT_INTERVAL_MS,
|
|
294
|
+
shimmerText
|
|
295
|
+
};
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
makeSkepticVerifier,
|
|
6
6
|
runHuntScan,
|
|
7
7
|
scoreGeometry
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-CSPF47S3.js";
|
|
9
9
|
import {
|
|
10
10
|
runReproducerInKernelVm
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-DNV3ZMPX.js";
|
|
12
12
|
import {
|
|
13
13
|
LlmApiRuntime
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-EYBMTELO.js";
|
|
15
15
|
import {
|
|
16
16
|
__commonJS,
|
|
17
17
|
__require,
|
|
@@ -3,7 +3,7 @@ import { createRequire as __0CreateRequire } from "node:module";
|
|
|
3
3
|
const require = __0CreateRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
LlmApiRuntime
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-EYBMTELO.js";
|
|
7
7
|
|
|
8
8
|
// packages/core/dist/stages/variant-candidates.js
|
|
9
9
|
import { execFileSync } from "node:child_process";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
buildPlaybookInjection,
|
|
6
6
|
parseSanitizerLog,
|
|
7
7
|
verifyOracleByCategory
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YERUDEXT.js";
|
|
9
9
|
import {
|
|
10
10
|
allowlistedChildEnv
|
|
11
11
|
} from "./chunk-5IBCBQEH.js";
|
|
@@ -558,6 +558,7 @@ async function runCLoop(opts, ctx) {
|
|
|
558
558
|
ctx.log(`[userspace-fuzz] compiling Tier-2 harness: ${compile_command}`);
|
|
559
559
|
const compileRes = await runChild("sh", ["-c", compile_command], sourceRoot, ctx.timeoutMs);
|
|
560
560
|
if (compileRes.signalled || /error:|fatal error:/i.test(compileRes.output)) {
|
|
561
|
+
ctx.toolingMissing.push("tier2-harness-compile");
|
|
561
562
|
ctx.log(`[userspace-fuzz] Tier-2 harness failed to compile:
|
|
562
563
|
${compileRes.output.slice(-2e3)}`);
|
|
563
564
|
return finish(crashes, iterations, sourceRoot, ctx, "tier2");
|
|
@@ -1317,7 +1318,7 @@ async function adjudicateWithOracle(finding, target, submitted, turnsUsed, maxTu
|
|
|
1317
1318
|
oracle: oracleKind
|
|
1318
1319
|
};
|
|
1319
1320
|
}
|
|
1320
|
-
if (isOracleInfraError(oracleResult.reason)) {
|
|
1321
|
+
if (oracleResult.inconclusive || isOracleInfraError(oracleResult.reason)) {
|
|
1321
1322
|
return {
|
|
1322
1323
|
hasPov: false,
|
|
1323
1324
|
povArtifact: submitted.artifact || null,
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __0CreateRequire } from "node:module";
|
|
3
3
|
const require = __0CreateRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
getFindingPriority
|
|
6
|
+
} from "./chunk-RZR2XXAK.js";
|
|
4
7
|
|
|
5
8
|
// packages/core/dist/disclose/cwe.js
|
|
6
9
|
var CWE_MAP = {
|
|
@@ -273,6 +276,8 @@ function prForSeverity(severity) {
|
|
|
273
276
|
}
|
|
274
277
|
function metricsForReachability(tier) {
|
|
275
278
|
switch (tier) {
|
|
279
|
+
case "unknown":
|
|
280
|
+
return void 0;
|
|
276
281
|
case "remote-unauth":
|
|
277
282
|
return { av: "N", pr: "N", ui: "N" };
|
|
278
283
|
case "remote-auth":
|
|
@@ -295,7 +300,7 @@ function suggestCvss(finding) {
|
|
|
295
300
|
}
|
|
296
301
|
const impact = IMPACT_BY_CATEGORY[finding.category] ?? { C: "L", I: "L", A: "L", scope: "U" };
|
|
297
302
|
const ac = "L";
|
|
298
|
-
const assessed = finding.impactAssessment ? metricsForReachability(finding.impactAssessment.reachability_tier) : void 0;
|
|
303
|
+
const assessed = finding.impactAssessment && getFindingPriority(finding).assessed ? metricsForReachability(finding.impactAssessment.reachability_tier) : void 0;
|
|
299
304
|
const av = assessed?.av ?? "N";
|
|
300
305
|
const pr = assessed?.pr ?? prForSeverity(finding.severity);
|
|
301
306
|
const ui = assessed?.ui ?? "N";
|
|
@@ -991,6 +996,8 @@ function scoreCvss4Vector(vector) {
|
|
|
991
996
|
}
|
|
992
997
|
function cvss4MetricsForReachability(tier) {
|
|
993
998
|
switch (tier) {
|
|
999
|
+
case "unknown":
|
|
1000
|
+
return void 0;
|
|
994
1001
|
case "remote-unauth":
|
|
995
1002
|
return { AV: "N", AT: "N", PR: "N", UI: "N" };
|
|
996
1003
|
case "remote-auth":
|
|
@@ -1009,7 +1016,7 @@ function cvss4MetricsForReachability(tier) {
|
|
|
1009
1016
|
}
|
|
1010
1017
|
function suggestCvss4(finding) {
|
|
1011
1018
|
const impact = IMPACT_BY_CATEGORY[finding.category] ?? { C: "L", I: "L", A: "L", scope: "U" };
|
|
1012
|
-
const assessed = finding.impactAssessment ? cvss4MetricsForReachability(finding.impactAssessment.reachability_tier) : void 0;
|
|
1019
|
+
const assessed = finding.impactAssessment && getFindingPriority(finding).assessed ? cvss4MetricsForReachability(finding.impactAssessment.reachability_tier) : void 0;
|
|
1013
1020
|
const AV = assessed?.AV ?? "N";
|
|
1014
1021
|
const AT = assessed?.AT ?? "N";
|
|
1015
1022
|
const pr31 = assessed ? assessed.PR : prForSeverity(finding.severity);
|
|
@@ -1348,6 +1355,8 @@ function redactAuthHeaders(text) {
|
|
|
1348
1355
|
}
|
|
1349
1356
|
function reachabilityLabel(tier) {
|
|
1350
1357
|
switch (tier) {
|
|
1358
|
+
case "unknown":
|
|
1359
|
+
return "not established by the available evidence";
|
|
1351
1360
|
case "remote-unauth":
|
|
1352
1361
|
return "remote, unauthenticated \u2014 reachable over the network with no credentials";
|
|
1353
1362
|
case "remote-auth":
|
|
@@ -1366,6 +1375,8 @@ function reachabilityLabel(tier) {
|
|
|
1366
1375
|
}
|
|
1367
1376
|
function weaponizabilityLabel(w) {
|
|
1368
1377
|
switch (w) {
|
|
1378
|
+
case "unknown":
|
|
1379
|
+
return "attacker gains not established by the available evidence";
|
|
1369
1380
|
case "rce":
|
|
1370
1381
|
return "remote code execution";
|
|
1371
1382
|
case "lpe-to-root":
|
|
@@ -1471,7 +1482,7 @@ ${ctx.siblingFix.snippet}
|
|
|
1471
1482
|
out.push(`**${severity}** \u2014 ${cvss.vector} (~${cvss.score.toFixed(1)})`, "");
|
|
1472
1483
|
out.push(`_CVSS source: ${cvssSource}._`, "");
|
|
1473
1484
|
const impactAssessment = finding.impactAssessment;
|
|
1474
|
-
if (impactAssessment) {
|
|
1485
|
+
if (impactAssessment && getFindingPriority(finding).assessed) {
|
|
1475
1486
|
out.push("# Impact", "");
|
|
1476
1487
|
out.push(`**Attacker gains:** ${weaponizabilityLabel(impactAssessment.weaponizability)}`, "");
|
|
1477
1488
|
out.push(`**Attack prerequisites:** ${reachabilityLabel(impactAssessment.reachability_tier)}`, "");
|
|
@@ -1568,7 +1579,7 @@ function buildAffectedLine(finding, ctx) {
|
|
|
1568
1579
|
}
|
|
1569
1580
|
function buildImpactNarrative(finding) {
|
|
1570
1581
|
const a = finding.impactAssessment;
|
|
1571
|
-
if (!a) {
|
|
1582
|
+
if (!a || !getFindingPriority(finding).assessed) {
|
|
1572
1583
|
return `This ${finding.category.replace(/-/g, " ")} issue is rated **${severityHeading(finding.severity)}**. ` + finding.description.trim();
|
|
1573
1584
|
}
|
|
1574
1585
|
const parts = [];
|
|
@@ -1581,7 +1592,7 @@ function buildImpactNarrative(finding) {
|
|
|
1581
1592
|
}
|
|
1582
1593
|
function buildAttackScenario(finding) {
|
|
1583
1594
|
const a = finding.impactAssessment;
|
|
1584
|
-
if (!a)
|
|
1595
|
+
if (!a || !getFindingPriority(finding).assessed)
|
|
1585
1596
|
return "";
|
|
1586
1597
|
return `1. Attacker position: ${reachabilityLabel(a.reachability_tier)}.
|
|
1587
1598
|
2. Trigger the ${finding.category.replace(/-/g, " ")} condition described above.
|