0sec-cli 0.24.1 → 0.26.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 +67 -62
- package/README.md +121 -82
- package/chunks/{adapt-loop-L77BWMNE.js → adapt-loop-P4HKONB5.js} +6 -5
- package/chunks/{artifact-scraper-BV67RAP5.js → artifact-scraper-IIRJNYKT.js} +4 -3
- package/chunks/{assumption-mining-RPVR77A3.js → assumption-mining-YA6VJ2V6.js} +22 -20
- package/chunks/{backend-connections-ACIXNYZN.js → backend-connections-64PKYKL7.js} +5 -4
- package/chunks/chunk-36J5ZLFE.js +18729 -0
- package/chunks/{chunk-ZM6ANQZJ.js → chunk-3MWQNNJU.js} +16180 -34467
- package/chunks/{chunk-GV5WXDHY.js → chunk-3VQ5EZKG.js} +11 -9
- package/chunks/chunk-5XOYTAOK.js +1546 -0
- package/chunks/{chunk-UJE4WOQS.js → chunk-6GV5G6U3.js} +1 -1
- package/chunks/{chunk-X2ZMSRTP.js → chunk-6SNOKNCS.js} +333 -3
- package/chunks/{chunk-BMDG6T7D.js → chunk-72PU46MS.js} +178 -133
- package/chunks/{chunk-KCA35IL3.js → chunk-7PUJI64A.js} +11 -9
- package/chunks/chunk-A7G6S5RA.js +90 -0
- package/chunks/chunk-ABKUI3QB.js +196 -0
- package/chunks/{chunk-5ETI27Q3.js → chunk-AFJ2UMPR.js} +3 -3
- package/chunks/{chunk-XA2IBHPB.js → chunk-B7XL6RON.js} +1 -1
- package/chunks/{chunk-TVS6WVSK.js → chunk-BM6EYP2D.js} +3 -3
- package/chunks/{chunk-7UHAXEOV.js → chunk-D4M5WURF.js} +226 -4
- package/chunks/{chunk-K74DRDC5.js → chunk-EHNVP6QB.js} +1 -1
- package/chunks/{chunk-I43YYHDU.js → chunk-FBZBJYZS.js} +5 -50
- package/chunks/{chunk-GXXX7AGH.js → chunk-GYEYTNHK.js} +144 -14
- package/chunks/{chunk-IJ6UPW3H.js → chunk-HS2NQ7K6.js} +393 -58
- package/chunks/chunk-HUZ2EC2R.js +196 -0
- package/chunks/{chunk-SU4IHQQI.js → chunk-IUUNIJPM.js} +1 -1
- package/chunks/chunk-JGDA6EIJ.js +49 -0
- package/chunks/{chunk-CJRZSWII.js → chunk-K3PTYN43.js} +3 -3
- package/chunks/{chunk-2NBZZFRG.js → chunk-KCABBZHN.js} +8 -10
- package/chunks/{chunk-3LPBJMHB.js → chunk-LRD5N2TQ.js} +1 -1
- package/chunks/{chunk-SQCBHFWN.js → chunk-LWMEJYCP.js} +2 -2
- package/chunks/chunk-MNK373HF.js +57 -0
- package/chunks/{chunk-R2XBH476.js → chunk-MOEVVXML.js} +2 -2
- package/chunks/{chunk-F2P25DJY.js → chunk-MOGWEHSC.js} +1448 -1050
- package/chunks/{chunk-6XMFCVJS.js → chunk-N7YCONYR.js} +1 -1
- package/chunks/{chunk-3WUPCZGF.js → chunk-NA3FKCI2.js} +1 -1
- package/chunks/{chunk-S2GITRD5.js → chunk-NABVDAAO.js} +2 -2
- package/chunks/{chunk-SZDD77KX.js → chunk-NNMOTHKC.js} +6 -10
- package/chunks/{chunk-LMP2T4G2.js → chunk-OILVEROI.js} +22 -172
- package/chunks/{chunk-YERUDEXT.js → chunk-PAE7ZAV6.js} +2780 -1255
- package/chunks/{chunk-NBV4I237.js → chunk-PAMJEXE2.js} +1 -1
- package/chunks/{chunk-PJU24AKR.js → chunk-R7VWEY45.js} +337 -257
- package/chunks/{chunk-QNRYOJEB.js → chunk-RZZ6VPRY.js} +1 -1
- package/chunks/{chunk-WUPN3D37.js → chunk-S4DFH2FJ.js} +26 -1
- package/chunks/{chunk-5WAHHZBF.js → chunk-SIR7XW2S.js} +61910 -30777
- package/chunks/{chunk-BD7WULFS.js → chunk-SSPP64FF.js} +3 -2
- package/chunks/{chunk-BOBIAHKA.js → chunk-STPHTPSD.js} +3 -333
- package/chunks/{chunk-Q7JKIKKF.js → chunk-UGCTPKJG.js} +89 -17
- package/chunks/{chunk-5PFRE522.js → chunk-ULRLUXSS.js} +1 -1
- package/chunks/{chunk-GZA7RGK7.js → chunk-UQS7XCBV.js} +2085 -1093
- package/chunks/{chunk-X2IPO5JO.js → chunk-V2KJQVYE.js} +2676 -2959
- package/chunks/{chunk-CGBDEST2.js → chunk-VJBEB2K6.js} +1 -1
- package/chunks/{chunk-ILRMLA6J.js → chunk-VWE36MUN.js} +1 -1
- package/chunks/{chunk-RURJYCWY.js → chunk-WNWDQ2TO.js} +1 -1
- package/chunks/{chunk-GTED3FSZ.js → chunk-WPJMA5AK.js} +4 -99
- package/chunks/{chunk-5NFIY2SJ.js → chunk-XJ2TBEV7.js} +3 -3
- package/chunks/{chunk-PVJUPIQG.js → chunk-XOVYV7TT.js} +6 -6
- package/chunks/{chunk-IXT64DV5.js → chunk-XPDJE537.js} +97 -1
- package/chunks/{chunk-YKWARO3T.js → chunk-YGYJ2FTH.js} +95 -21
- package/chunks/{chunk-JWSOUKFF.js → chunk-YJGPPPUB.js} +66 -21
- package/chunks/chunk-YP2DHYNI.js +650 -0
- package/chunks/{chunk-RVJVM5L4.js → chunk-Z2VLJEQJ.js} +5 -5
- package/chunks/chunk-ZPVSDB63.js +3839 -0
- package/chunks/{codex-models-6XVNFRXZ.js → codex-models-CI22KIHY.js} +9 -8
- package/chunks/{commands-FRPOFIO4.js → commands-C2WRSCNB.js} +909 -610
- package/chunks/dashboard-XO2X2SPD.js +75 -0
- package/chunks/{db-BXJNWUYJ.js → db-FU3OIGQK.js} +5 -4
- package/chunks/{deep-review-GSJEBLCG.js → deep-review-5AL6QYTK.js} +37 -38
- package/chunks/{disclose-OU6Z6GVT.js → disclose-YPV5KIUU.js} +6 -5
- package/chunks/{dist-M2X367VW.js → dist-JAZWL3SC.js} +3 -2
- package/chunks/{dist-TQMHMSBZ.js → dist-ONIRKDH6.js} +376 -333
- package/chunks/{dist-RKLQIXDT.js → dist-QLMPTFT7.js} +4 -3
- package/chunks/{dist-7KSYDDSG.js → dist-QXJKD743.js} +5 -2
- package/chunks/{dist-LNXGATR2.js → dist-WNAOCQGA.js} +5 -4
- package/chunks/eval-runner-D3RUCU3R.js +38 -0
- package/chunks/{exploit-agent-Y2P4GFIY.js → exploit-agent-4E4HXKUA.js} +1 -1
- package/chunks/{exploit-autoclimb-YRZ3TMS2.js → exploit-autoclimb-5GRXI6VQ.js} +1 -1
- package/chunks/{exploit-climb-4LEY4SDW.js → exploit-climb-AHQEJ2I2.js} +4 -3
- package/chunks/{fix-RQSIG75B.js → fix-CHD7LXDS.js} +9 -8
- package/chunks/{harness-3NVC3DDY.js → harness-E63KDHPG.js} +5 -4
- package/chunks/{http-conformance-U5F6GKYG.js → http-conformance-AXMUOE6C.js} +3 -2
- package/chunks/hunt-scan-ME2Z4CTC.js +43 -0
- package/chunks/{kernel-primitive-T47V3RD3.js → kernel-primitive-S566GXWP.js} +4 -3
- package/chunks/{kernel-vm-runner-AEL5E3SV.js → kernel-vm-runner-KREBY4DC.js} +4 -3
- package/chunks/{local-engine-ZCW4YC6E.js → local-engine-ZRTZVSSX.js} +7 -6
- package/chunks/managed-operation-ZMLLRCCQ.js +59 -0
- package/chunks/{memsafety-scan-L2Z7E7TE.js → memsafety-scan-Q2MBZEGJ.js} +1 -2
- package/chunks/{native-loop-26X2CHBV.js → native-loop-UV3Z4Z2F.js} +31 -16
- package/chunks/operator-services-JOCREEBA.js +79 -0
- package/chunks/orchestrate-ZF6ZTSIQ.js +62 -0
- package/chunks/{prepare-C3KGMBXT.js → prepare-PLDVGLDX.js} +7 -6
- package/chunks/{provider-model-discovery-QGUGL3XW.js → provider-model-discovery-3X6DON3Y.js} +7 -2
- package/chunks/{remote-workflow-runtime-DB52SINR.js → remote-workflow-runtime-GOI4TYP5.js} +4 -3
- package/chunks/routing-WCQLO5SP.js +61 -0
- package/chunks/{runtime-AUBLQUOH.js → runtime-6ZIXFTW5.js} +4 -3
- package/chunks/{runtime-U66JNSAY.js → runtime-TVH5ORUK.js} +13 -8
- package/chunks/{scan-stream-34F3LTPV.js → scan-stream-HJVTWZ44.js} +6 -4
- package/chunks/{scope-HSTG63TQ.js → scope-RCYXVGJR.js} +4 -3
- package/chunks/service-plugins-TN6KDX4L.js +63 -0
- package/chunks/{session-store-MKAAP3WL.js → session-store-6QR3CVUA.js} +8 -5
- package/chunks/{variant-candidates-LG767HWH.js → variant-candidates-SGLKPPHI.js} +9 -8
- package/chunks/{web-recon-prepass-NJP6J3E4.js → web-recon-prepass-GO7CTMVQ.js} +7 -6
- package/chunks/{workflow-runtime-AR627I26.js → workflow-runtime-CQTDASFA.js} +50 -49
- package/dashboard/assets/{abnfDiagram-VCTEODGH-Cq149Jpk.js → abnfDiagram-VCTEODGH-DDZsU70-.js} +1 -1
- package/dashboard/assets/{arc-CpP-3TRW.js → arc-iDXNTSL6.js} +1 -1
- package/dashboard/assets/architecture-7GRP2DOG-DJcY9RFg.js +1 -0
- package/dashboard/assets/architectureDiagram-5GKGNRK7-d0ZuOniQ.js +36 -0
- package/dashboard/assets/{blockDiagram-I7D4REHJ-CZYkRRDi.js → blockDiagram-I7D4REHJ-B-EWfMy1.js} +2 -2
- package/dashboard/assets/{c4Diagram-7LVT6UL2-CV7Iu3_Z.js → c4Diagram-7LVT6UL2-KcZRuXZC.js} +1 -1
- package/dashboard/assets/channel-CeWMIm0w.js +1 -0
- package/dashboard/assets/{chunk-4HAMMTFA-PKCyW4m-.js → chunk-4HAMMTFA-DXWulBlo.js} +1 -1
- package/dashboard/assets/{chunk-75Z2AOVW-C5MlFTc_.js → chunk-75Z2AOVW-RiLZItrz.js} +1 -1
- package/dashboard/assets/chunk-DU6HZSFF-MBcaIyTX.js +127 -0
- package/dashboard/assets/{chunk-F27PBJKO-DTAok0qM.js → chunk-F27PBJKO-kLWCBX_W.js} +1 -1
- package/dashboard/assets/{chunk-FOHPRMQF-DHwB1DNv.js → chunk-FOHPRMQF-COOliuUh.js} +14 -14
- package/dashboard/assets/{chunk-GMAD6QVW-CPsr2F33.js → chunk-GMAD6QVW-BeQeSjpW.js} +7 -7
- package/dashboard/assets/{chunk-GVQU2GXP-C2AXGf9A.js → chunk-GVQU2GXP-CjCMlOIB.js} +1 -1
- package/dashboard/assets/{chunk-IMKFNOWR-DMG6yD_O.js → chunk-IMKFNOWR-BwNst53D.js} +1 -1
- package/dashboard/assets/{chunk-L3NEJ4N5-BSvwdbXx.js → chunk-L3NEJ4N5-CHXWQrkL.js} +1 -1
- package/dashboard/assets/{chunk-OSK3NFVY-CfB8V7FU.js → chunk-OSK3NFVY-B2vd19Ed.js} +1 -1
- package/dashboard/assets/{chunk-P2QGCYS3-CvmZvq6n.js → chunk-P2QGCYS3-Dk7Fyh6n.js} +1 -1
- package/dashboard/assets/{chunk-POPQ4Y6H-D_TvwDxL.js → chunk-POPQ4Y6H-CPAgOvYe.js} +1 -1
- package/dashboard/assets/{chunk-PWAF6VOD-Da5GnuOY.js → chunk-PWAF6VOD-BotyfMha.js} +1 -1
- package/dashboard/assets/{chunk-SHT3W25Y-CcsMJpR-.js → chunk-SHT3W25Y-Buz5gLRP.js} +1 -1
- package/dashboard/assets/{chunk-SVP7TREG-COojjieJ.js → chunk-SVP7TREG-_rpYEZcs.js} +1 -1
- package/dashboard/assets/{chunk-TICWLB2K-nBAmJwx6.js → chunk-TICWLB2K-DOJxPoec.js} +2 -2
- package/dashboard/assets/{chunk-XXDRQBXY-r5HyhWDv.js → chunk-XXDRQBXY-EXxKJbAs.js} +1 -1
- package/dashboard/assets/classDiagram-ZZMXUADV-DV_h1NoS.js +1 -0
- package/dashboard/assets/classDiagram-v2-VYDZK3BY-DV_h1NoS.js +1 -0
- package/dashboard/assets/common-VLJRx-Jq.js +5 -0
- package/dashboard/assets/cose-bilkent-JH36ORCC-B1SVC57o.js +1 -0
- package/dashboard/assets/cynefin-OW5HDTMX-BzhRorj4.js +1 -0
- package/dashboard/assets/{cynefinDiagram-5FMLGOSQ-xodkuQtW.js → cynefinDiagram-5FMLGOSQ-JXzRmldX.js} +1 -1
- package/dashboard/assets/cytoscape.esm-BbBREfsg.js +321 -0
- package/dashboard/assets/dagre-D7JM2Yhv.js +1 -0
- package/dashboard/assets/dagre-GXQ25YYZ-1LZ-X0-Z.js +4 -0
- package/dashboard/assets/{diagram-S7CK7UJ4-DNoTMlCO.js → diagram-S7CK7UJ4-C_-J_LQ4.js} +2 -2
- package/dashboard/assets/{diagram-UQ7AKVKN-COccuyew.js → diagram-UQ7AKVKN-CnxL1k8g.js} +1 -1
- package/dashboard/assets/{diagram-VSXAHHWV-g6D1tWRb.js → diagram-VSXAHHWV-WzSb3aby.js} +1 -1
- package/dashboard/assets/{diagram-VX7I27RA-DhO4eVIC.js → diagram-VX7I27RA-DKhrMInE.js} +1 -1
- package/dashboard/assets/{diagram-Z3DM3KII-DeOQFexd.js → diagram-Z3DM3KII-CDhI2WGP.js} +1 -1
- package/dashboard/assets/{dist-BQYeOQg3.js → dist-B0bfBMeP.js} +1 -1
- package/dashboard/assets/{ebnfDiagram-PWID7BFC-MtkX2feM.js → ebnfDiagram-PWID7BFC-iL5NQ1PE.js} +1 -1
- package/dashboard/assets/{erDiagram-RLTQ6QDP-DIWSsoYZ.js → erDiagram-RLTQ6QDP-RK2Voa5O.js} +1 -1
- package/dashboard/assets/eventmodeling-NTZA5JFV-WgE7OJBb.js +1 -0
- package/dashboard/assets/flowDiagram-HODETNUW-B9YcQ0Aq.js +1 -0
- package/dashboard/assets/{ganttDiagram-EL5Y4UJY-DKggkJe0.js → ganttDiagram-EL5Y4UJY-D8CJXHRF.js} +1 -1
- package/dashboard/assets/gitGraph-4MIJSDKK-BuZ9Lg04.js +1 -0
- package/dashboard/assets/{gitGraphDiagram-WWUBYQGX-r_iR8Qzo.js → gitGraphDiagram-WWUBYQGX-LEJMh54j.js} +1 -1
- package/dashboard/assets/info-A6RAGUB7-BL5k3pev.js +1 -0
- package/dashboard/assets/{infoDiagram-27XIBGKW-ClQk7UyQ.js → infoDiagram-27XIBGKW-LJvntUnZ.js} +1 -1
- package/dashboard/assets/{ishikawaDiagram-5VMMS53U-tR7Vziog.js → ishikawaDiagram-5VMMS53U-BYTYgKCG.js} +2 -2
- package/dashboard/assets/{journeyDiagram-3NMN7TZE-Cpb9IqKL.js → journeyDiagram-3NMN7TZE-G25qgQgO.js} +1 -1
- package/dashboard/assets/{kanban-definition-UXKFOSKX-BzUuKbA9.js → kanban-definition-UXKFOSKX-Bk3uLl1i.js} +1 -1
- package/dashboard/assets/{katex-BdBmVSus.js → katex-nLxf_RlZ.js} +2 -2
- package/dashboard/assets/{line-BHY_tSHu.js → line-i4qHBaWO.js} +1 -1
- package/dashboard/assets/linear-DmrqRsKG.js +1 -0
- package/dashboard/assets/mermaid-parser.core-BxbKr4QF.js +7 -0
- package/dashboard/assets/{mermaid.core-D_QsUPU8.js → mermaid.core-Cltee6FS.js} +9 -9
- package/dashboard/assets/{mindmap-definition-YA3MSWOX-CtfLTPPJ.js → mindmap-definition-YA3MSWOX-DkzO2JgS.js} +1 -1
- package/dashboard/assets/operations-B4_timQX.css +1 -0
- package/dashboard/assets/operations-DwppJviL.js +199 -0
- package/dashboard/assets/packet-AYTQ26CC-uZQUKnrE.js +1 -0
- package/dashboard/assets/{pegDiagram-XKGWAZYB-C1Dclbzj.js → pegDiagram-XKGWAZYB-CrOEi00T.js} +1 -1
- package/dashboard/assets/pie-WAS4IAKB-Dn9_tpQT.js +1 -0
- package/dashboard/assets/{pieDiagram-E7YTZNPT-Cd7XwYo5.js → pieDiagram-E7YTZNPT-D-niUkzc.js} +1 -1
- package/dashboard/assets/{quadrantDiagram-AXDQQJYC-CaS-GQ4X.js → quadrantDiagram-AXDQQJYC-CJOTiG5V.js} +1 -1
- package/dashboard/assets/radar-RG4KPBEZ-DIIVz4e8.js +1 -0
- package/dashboard/assets/railroad-74A4TZTK-1kiqDEID.js +1 -0
- package/dashboard/assets/railroad-abnf-HS5TGJTU-DK6rQPZR.js +1 -0
- package/dashboard/assets/railroad-ebnf-LZEXJU2U-C6cOgYW4.js +1 -0
- package/dashboard/assets/railroad-peg-WCYAUIDC-CQ3ptKef.js +1 -0
- package/dashboard/assets/{railroadDiagram-O6MQD6OU-BeesTrqn.js → railroadDiagram-O6MQD6OU-nEfkpa-m.js} +1 -1
- package/dashboard/assets/{requirementDiagram-BXWQKSXE-IjyK0DhW.js → requirementDiagram-BXWQKSXE-CdFMY8tG.js} +1 -1
- package/dashboard/assets/{sankeyDiagram-P5KCCOFB-DmIluQqo.js → sankeyDiagram-P5KCCOFB-C0KxrFYv.js} +1 -1
- package/dashboard/assets/{sequenceDiagram-WJ2MYXX4-CUp8ZjTc.js → sequenceDiagram-WJ2MYXX4-DeZ5ATiu.js} +2 -2
- package/dashboard/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
- package/dashboard/assets/src-Cg-chcoE.js +1 -0
- package/dashboard/assets/{stateDiagram-D77RDMKH-Dy9TQb8P.js → stateDiagram-D77RDMKH-B9MwWL5B.js} +1 -1
- package/dashboard/assets/stateDiagram-v2-MP3YSRHH-SucFndhx.js +1 -0
- package/dashboard/assets/swimlanes-42K2YHIH-DB--fwQE.js +1 -0
- package/dashboard/assets/swimlanesDiagram-VR7AAH4N-BzH-rIaK.js +8 -0
- package/dashboard/assets/{timeline-definition-24CTP7MA-BGdXW-iY.js → timeline-definition-24CTP7MA-DLkkTbWb.js} +1 -1
- package/dashboard/assets/treeView-Q6P3EWNA-XkZ9rl9H.js +1 -0
- package/dashboard/assets/treemap-WGGIJYW6-JCtVKxCE.js +1 -0
- package/dashboard/assets/{vennDiagram-4TSXK5OY-DzKWHJsl.js → vennDiagram-4TSXK5OY-DEb-x29Z.js} +1 -1
- package/dashboard/assets/wardley-WFR3VGLG-DhI7ROY3.js +1 -0
- package/dashboard/assets/{wardleyDiagram-VM6X3IG4-DGsjYmNJ.js → wardleyDiagram-VM6X3IG4-KNckudc5.js} +1 -1
- package/dashboard/assets/{xychartDiagram-S5SC5T6Z-C7_T_tWt.js → xychartDiagram-S5SC5T6Z-D4c0ynCk.js} +1 -1
- package/dashboard/index.html +13 -2
- package/package.json +2 -5
- package/worker-assets/demo-target/README.md +7 -3
- package/chunks/chunk-2XGBEH53.js +0 -4304
- package/chunks/chunk-4ROZFLSR.js +0 -279
- package/chunks/chunk-56UTQKXO.js +0 -56
- package/chunks/chunk-BPU6M42R.js +0 -77
- package/chunks/chunk-H5QURBBK.js +0 -1123
- package/chunks/chunk-IIBNQTOK.js +0 -1532
- package/chunks/chunk-NJLKFC66.js +0 -4790
- package/chunks/chunk-OOMBOLAF.js +0 -295
- package/chunks/chunk-VIT5ALXF.js +0 -4054
- package/chunks/chunk-VU7V2SDW.js +0 -284
- package/chunks/chunk-W624J7NF.js +0 -117
- package/chunks/chunk-YSQWZ67M.js +0 -6027
- package/chunks/dashboard-5HDSNBAU.js +0 -76
- package/chunks/eval-runner-A2DIGVP7.js +0 -31
- package/chunks/hunt-scan-W246VWJC.js +0 -40
- package/chunks/managed-operation-6R2QPPW5.js +0 -60
- package/chunks/orchestrate-OBS37FWQ.js +0 -63
- package/chunks/run-MU3MFL2Z.js +0 -28242
- package/chunks/service-plugins-5B23PWXC.js +0 -64
- package/dashboard/assets/architecture-7GRP2DOG-z5EHYkyH.js +0 -1
- package/dashboard/assets/architectureDiagram-5GKGNRK7-ewtXpjR_.js +0 -36
- package/dashboard/assets/channel-CuYjfiC5.js +0 -1
- package/dashboard/assets/chunk-DU6HZSFF-3M37ulcO.js +0 -127
- package/dashboard/assets/classDiagram-ZZMXUADV-DCuOrWUV.js +0 -1
- package/dashboard/assets/classDiagram-v2-VYDZK3BY-DCuOrWUV.js +0 -1
- package/dashboard/assets/common-C6snVPsk.js +0 -5
- package/dashboard/assets/cose-bilkent-JH36ORCC-BLGcaZHk.js +0 -1
- package/dashboard/assets/cynefin-OW5HDTMX-DbZMK00I.js +0 -1
- package/dashboard/assets/cytoscape.esm-CGd-uY3x.js +0 -321
- package/dashboard/assets/dagre-GXQ25YYZ-CRk9qfSG.js +0 -4
- package/dashboard/assets/dagre-PrKaheQc.js +0 -1
- package/dashboard/assets/eventmodeling-NTZA5JFV-D_3ez4Gv.js +0 -1
- package/dashboard/assets/flowDiagram-HODETNUW-D2boyYEd.js +0 -1
- package/dashboard/assets/gitGraph-4MIJSDKK-DFOQYwXc.js +0 -1
- package/dashboard/assets/info-A6RAGUB7-DeednLoB.js +0 -1
- package/dashboard/assets/linear-naZZ1pHk.js +0 -1
- package/dashboard/assets/mermaid-parser.core-CPvd4cEx.js +0 -7
- package/dashboard/assets/operations-BwCzhVnT.js +0 -130
- package/dashboard/assets/operations-QjKT0Hwi.css +0 -1
- package/dashboard/assets/packet-AYTQ26CC-DDQbkT9I.js +0 -1
- package/dashboard/assets/pie-WAS4IAKB-LpU4ULAs.js +0 -1
- package/dashboard/assets/radar-RG4KPBEZ-CcxW3NJm.js +0 -1
- package/dashboard/assets/railroad-74A4TZTK-9P5Rl8fP.js +0 -1
- package/dashboard/assets/railroad-abnf-HS5TGJTU-CSfpwjna.js +0 -1
- package/dashboard/assets/railroad-ebnf-LZEXJU2U-D6R5qzr-.js +0 -1
- package/dashboard/assets/railroad-peg-WCYAUIDC-DKEX7ITG.js +0 -1
- package/dashboard/assets/sizeCapture-INFHLROL-B0uUizjq.js +0 -1
- package/dashboard/assets/src-r61wDjcA.js +0 -1
- package/dashboard/assets/stateDiagram-v2-MP3YSRHH-CQb0ZtPr.js +0 -1
- package/dashboard/assets/swimlanes-42K2YHIH-CZuDV7V5.js +0 -1
- package/dashboard/assets/swimlanesDiagram-VR7AAH4N-BxgWMq8X.js +0 -8
- package/dashboard/assets/treeView-Q6P3EWNA-DlRrayjM.js +0 -1
- package/dashboard/assets/treemap-WGGIJYW6-C6UqLKfI.js +0 -1
- package/dashboard/assets/wardley-WFR3VGLG-thmyHKb0.js +0 -1
|
@@ -3,7 +3,7 @@ import { createRequire as __0CreateRequire } from "node:module";
|
|
|
3
3
|
const require = __0CreateRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
external_exports
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5XOYTAOK.js";
|
|
7
7
|
|
|
8
8
|
// packages/shared/dist/types.js
|
|
9
9
|
function validateScanPlan(plan) {
|
|
@@ -67,7 +67,7 @@ import { fileURLToPath } from "node:url";
|
|
|
67
67
|
import { dirname, join } from "node:path";
|
|
68
68
|
function loadVersion() {
|
|
69
69
|
if (true) {
|
|
70
|
-
return "0.
|
|
70
|
+
return "0.26.0";
|
|
71
71
|
}
|
|
72
72
|
try {
|
|
73
73
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
@@ -573,7 +573,7 @@ var pocStepActionSchema = external_exports.discriminatedUnion("type", [
|
|
|
573
573
|
type: external_exports.literal("http"),
|
|
574
574
|
method: external_exports.string(),
|
|
575
575
|
url: external_exports.string(),
|
|
576
|
-
headers: external_exports.record(external_exports.string()).optional(),
|
|
576
|
+
headers: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
577
577
|
body: external_exports.string().optional()
|
|
578
578
|
}),
|
|
579
579
|
external_exports.object({
|
|
@@ -970,7 +970,7 @@ var AgentActionTargetMetadataSchema = external_exports.object({
|
|
|
970
970
|
target_version: external_exports.string().min(1),
|
|
971
971
|
policy_version: external_exports.string().min(1),
|
|
972
972
|
model_version: external_exports.string().min(1),
|
|
973
|
-
tool_versions: external_exports.record(external_exports.string().min(1)),
|
|
973
|
+
tool_versions: external_exports.record(external_exports.string(), external_exports.string().min(1)),
|
|
974
974
|
configuration_sha256: Sha256Schema
|
|
975
975
|
}).strict();
|
|
976
976
|
var AgentActionToolCallSchema = external_exports.object({
|
|
@@ -1126,7 +1126,7 @@ var questionSchema = external_exports.discriminatedUnion("type", [
|
|
|
1126
1126
|
]);
|
|
1127
1127
|
var normalizedAnswerSchema = external_exports.discriminatedUnion("type", [
|
|
1128
1128
|
external_exports.object({ type: external_exports.literal("boolean"), probability }),
|
|
1129
|
-
external_exports.object({ type: external_exports.literal("choice"), choice: external_exports.string(), probabilities: external_exports.record(probability) })
|
|
1129
|
+
external_exports.object({ type: external_exports.literal("choice"), choice: external_exports.string(), probabilities: external_exports.record(external_exports.string(), probability) })
|
|
1130
1130
|
]);
|
|
1131
1131
|
var usageSchema = external_exports.object({
|
|
1132
1132
|
inputTokens: external_exports.number().int().nonnegative().max(MAX_INPUT_TOKENS),
|
|
@@ -1219,14 +1219,14 @@ function createJevEvaluator(config) {
|
|
|
1219
1219
|
});
|
|
1220
1220
|
if (!response.ok)
|
|
1221
1221
|
throw new Error(`Jev provider returned HTTP ${response.status}`);
|
|
1222
|
-
const body = external_exports.object({ model: external_exports.string().min(1), answers: external_exports.record(external_exports.unknown()), usage: usageSchema }).parse(await response.json());
|
|
1222
|
+
const body = external_exports.object({ model: external_exports.string().min(1), answers: external_exports.record(external_exports.string(), external_exports.unknown()), usage: usageSchema }).parse(await response.json());
|
|
1223
1223
|
model = body.model;
|
|
1224
1224
|
rawUsage = body.usage;
|
|
1225
1225
|
rawAnswers = body.answers;
|
|
1226
1226
|
} else {
|
|
1227
1227
|
const [{ experimental_evaluate: evaluate }, { createGateway }] = await Promise.all([
|
|
1228
|
-
import("./dist-
|
|
1229
|
-
import("./dist-
|
|
1228
|
+
import("./dist-WNAOCQGA.js"),
|
|
1229
|
+
import("./dist-JAZWL3SC.js")
|
|
1230
1230
|
]);
|
|
1231
1231
|
signal.throwIfAborted();
|
|
1232
1232
|
const gateway = createGateway({ apiKey: config.apiKey, fetch: fetchImpl });
|
|
@@ -1601,7 +1601,7 @@ var SecurityWorkflowBindingsSchema = external_exports.unknown().superRefine((bin
|
|
|
1601
1601
|
}
|
|
1602
1602
|
if (new TextEncoder().encode(JSON.stringify(bindings)).byteLength > 32768)
|
|
1603
1603
|
context.addIssue({ code: external_exports.ZodIssueCode.custom, message: "Workflow inputs must be at most 32 KiB." });
|
|
1604
|
-
}).pipe(external_exports.record(external_exports.unknown()));
|
|
1604
|
+
}).pipe(external_exports.record(external_exports.string(), external_exports.unknown()));
|
|
1605
1605
|
var inputSchema = external_exports.object({ findingId: identifier.optional(), scanId: identifier.optional(), dbPath: external_exports.string().trim().min(1).max(4096).optional(), fromStep: identifier.optional(), artifactId: identifier.optional() }).strict();
|
|
1606
1606
|
var nodeSchema = external_exports.object({ id: identifier, type: external_exports.enum(["trigger", "audit", "report", "verify", "fix", "research", "deep-review"]), label: external_exports.string().trim().min(1).max(160), enabled: external_exports.boolean(), plan: planSchema.optional(), execution: executionSchema.optional(), input: inputSchema.optional(), inputs: SecurityWorkflowBindingsSchema.superRefine((bindings, context) => {
|
|
1607
1607
|
const pending = [bindings];
|
|
@@ -1751,7 +1751,7 @@ function operationTemplate(id, name, description, operation, compatibleTargetTyp
|
|
|
1751
1751
|
}
|
|
1752
1752
|
var FINDING_INPUT_REQUIREMENT = { names: ["finding", "findingPath", "findingId"], required: true, description: "Supply an existing finding, a finding JSON path, or a retained finding ID. Connected earlier finding evidence can also provide the input." };
|
|
1753
1753
|
var SECURITY_WORKFLOW_TEMPLATES = [
|
|
1754
|
-
template("repository-review", "
|
|
1754
|
+
template("repository-review", "Whitebox pentest", "Test a source repository for exploitable code paths, trust-boundary failures, dependency exposure, and unsafe configuration.", "repository", [
|
|
1755
1755
|
phase("dependencies", "Dependency exposure", "known-vulnerabilities", "Inspect dependency manifests and lockfiles. Prioritize reachable vulnerable dependencies and supply-chain trust boundaries; distinguish confirmed exposure from version-only matches.", "quick"),
|
|
1756
1756
|
phase("boundaries", "Trust boundaries", "unknown-vulnerabilities", "Trace authentication, authorization, tenant isolation, and privileged entry points in the authorized repository. Follow input-to-sink paths and report only supported security findings.", "deep"),
|
|
1757
1757
|
phase("configuration", "Configuration and secrets", "misconfigurations", "Review repository configuration, credential handling, unsafe defaults, and sensitive debug surfaces. Do not expose secret values in reports.")
|
|
@@ -1839,6 +1839,7 @@ var BACKEND_CAPABILITIES = [
|
|
|
1839
1839
|
"workspaces",
|
|
1840
1840
|
"artifacts",
|
|
1841
1841
|
"model-connections",
|
|
1842
|
+
"provider-relay",
|
|
1842
1843
|
"process-controls",
|
|
1843
1844
|
"operator-services",
|
|
1844
1845
|
"learning"
|
|
@@ -1935,6 +1936,8 @@ function backendCapabilitiesForApiPath(pathname) {
|
|
|
1935
1936
|
};
|
|
1936
1937
|
if (pathname === "/api/backend/handshake")
|
|
1937
1938
|
return [];
|
|
1939
|
+
if (pathname === "/api/console/provider-relays" || pathname.startsWith("/api/console/provider-relays/"))
|
|
1940
|
+
return ["provider-relay"];
|
|
1938
1941
|
if (pathname === "/api/workflow-engine/call")
|
|
1939
1942
|
return ["workflow-engine"];
|
|
1940
1943
|
if (parts[0] === "control" && parts.length === 2 && ["recover-stale-workers", "prune-stopped-workers", "reset-database", "start-daemon", "stop-daemon", "launch-run"].includes(parts[1]))
|
|
@@ -2148,6 +2151,107 @@ var successfulObservation = (value) => {
|
|
|
2148
2151
|
};
|
|
2149
2152
|
function accessMilestoneFromArtifact(eventType, value, scopeId, evidenceEventId) {
|
|
2150
2153
|
const item = record(value);
|
|
2154
|
+
if (eventType === "tool_artifact" && item && ["access_control_workflow", "access_control_cleanup"].includes(String(item.tool)) && item.state_access_proof !== void 0) {
|
|
2155
|
+
const proof = record(item.state_access_proof);
|
|
2156
|
+
const digest = (value2) => typeof value2 === "string" && /^sha256:[a-f0-9]{64}$/.test(value2);
|
|
2157
|
+
const timestamp = (value2) => typeof value2 === "number" && Number.isFinite(value2) && value2 >= 0 && value2 <= 864e13;
|
|
2158
|
+
if (!proof || proof.schema !== "0.state-access-proof/v1" || proof.authority !== "operator-fixture" || proof.access_class !== "unauthorized-write" || proof.status !== "confirmed" || proof.challenge_bound !== true || typeof proof.proof_id !== "string" || !/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/.test(proof.proof_id) || !digest(proof.fixture_digest) || !digest(proof.baseline_digest) || !digest(proof.observed_digest) || !timestamp(proof.verified_at) || !Number.isSafeInteger(proof.generation) || Number(proof.generation) < 1 || !Number.isSafeInteger(proof.cleanup_revision) || Number(proof.cleanup_revision) < 0 || !["required", "completed", "failed"].includes(String(proof.cleanup)) || proof.cleanup !== "required" && !timestamp(proof.cleanup_at) || typeof item.observation_url !== "string" || item.observation_url.length > 8192 || !scopeId || scopeId.length > 512)
|
|
2159
|
+
return null;
|
|
2160
|
+
if (item.tool === "access_control_workflow") {
|
|
2161
|
+
const before2 = successfulObservation(item.observation_before), after2 = successfulObservation(item.observation_after);
|
|
2162
|
+
const steps = item.steps;
|
|
2163
|
+
if (item.verdict !== "confirmed" || !before2 || !after2 || before2.redacted !== false || after2.redacted !== false || before2.value_truncated === true || after2.value_truncated === true || before2.json_pointer_value === after2.json_pointer_value || after2.json_pointer_value !== item.expected_state || !Array.isArray(steps) || !steps.length || steps.length > 10 || !steps.some((value2) => {
|
|
2164
|
+
const step = record(value2);
|
|
2165
|
+
return step?.request_marker_sent === true && ["POST", "PUT", "PATCH"].includes(String(step.method));
|
|
2166
|
+
}) || steps.some((value2) => {
|
|
2167
|
+
const step = record(value2);
|
|
2168
|
+
return !step || typeof step.status !== "number" || !Number.isInteger(step.status) || step.status < 100 || step.status > 599 || step.error !== void 0;
|
|
2169
|
+
}))
|
|
2170
|
+
return null;
|
|
2171
|
+
}
|
|
2172
|
+
if (item.tool === "access_control_cleanup") {
|
|
2173
|
+
const observation = record(item.observation);
|
|
2174
|
+
if (!observation || typeof observation.status !== "number" || observation.status < 200 || observation.status >= 300 || observation.truncated !== false || !digest(observation.value_digest) || observation.value_digest === proof.baseline_digest !== (proof.cleanup === "completed"))
|
|
2175
|
+
return null;
|
|
2176
|
+
}
|
|
2177
|
+
let asset2;
|
|
2178
|
+
try {
|
|
2179
|
+
const url = new URL(item.observation_url);
|
|
2180
|
+
if (!["http:", "https:"].includes(url.protocol) || url.username || url.password)
|
|
2181
|
+
return null;
|
|
2182
|
+
asset2 = url.origin;
|
|
2183
|
+
} catch {
|
|
2184
|
+
return null;
|
|
2185
|
+
}
|
|
2186
|
+
const originalId = typeof proof.evidence_event_id === "string" && proof.evidence_event_id.length <= 512 ? proof.evidence_event_id : evidenceEventId;
|
|
2187
|
+
return {
|
|
2188
|
+
key: JSON.stringify([scopeId, "unauthorized-write", item.observation_url]),
|
|
2189
|
+
asset: asset2,
|
|
2190
|
+
status: "confirmed",
|
|
2191
|
+
accessClass: "unauthorized-write",
|
|
2192
|
+
headline: "Unauthorized state change confirmed",
|
|
2193
|
+
summary: "A configured comparison identity changed the observed field of an operator-declared restricted disposable resource. Verification observed the new marker using the owner's request context.",
|
|
2194
|
+
cleanup: proof.cleanup,
|
|
2195
|
+
confidence: 1,
|
|
2196
|
+
severity: "unassessed",
|
|
2197
|
+
accessLevel: "Resource write",
|
|
2198
|
+
prerequisites: ["Operator-declared restricted disposable resource", "Fresh private synthetic marker", "Distinct configured owner and comparison credentials"],
|
|
2199
|
+
limitations: ["The proof covers only the configured resource and observed field. Cleanup checks that field only; other side effects, shell access and broader privileges are not established."],
|
|
2200
|
+
verifiedAt: proof.verified_at,
|
|
2201
|
+
proofId: proof.proof_id,
|
|
2202
|
+
proofGeneration: proof.generation,
|
|
2203
|
+
cleanupRevision: proof.cleanup_revision,
|
|
2204
|
+
...proof.cleanup_at !== void 0 ? { cleanupAt: proof.cleanup_at } : {},
|
|
2205
|
+
...originalId ? { evidenceEventId: originalId } : {},
|
|
2206
|
+
...proof.cleanup !== "required" && evidenceEventId ? { cleanupEvidenceEventId: evidenceEventId } : {}
|
|
2207
|
+
};
|
|
2208
|
+
}
|
|
2209
|
+
if (eventType === "tool_artifact" && item?.tool === "access_control_probe") {
|
|
2210
|
+
const proof = record(item.access_proof);
|
|
2211
|
+
if (!proof || proof.schema !== "0.access-proof/v1" || proof.authority !== "operator-fixture" || proof.access_class !== "unauthorized-read" || !["confirmed", "blocked"].includes(String(proof.status)) || proof.owner_marker_observed !== true || proof.cleanup !== "not-required" || typeof proof.baseline_status !== "number" || !Number.isInteger(proof.baseline_status) || proof.baseline_status < 200 || proof.baseline_status >= 300 || proof.comparison_marker_observed !== (proof.status === "confirmed") || item.method !== "GET" || typeof item.url !== "string" || item.url.length > 8192 || !scopeId || scopeId.length > 512)
|
|
2212
|
+
return null;
|
|
2213
|
+
const baseline = record(proof.baseline_observation);
|
|
2214
|
+
const observations = proof.comparison_observations;
|
|
2215
|
+
const validObservation = (value2) => {
|
|
2216
|
+
const observation = record(value2);
|
|
2217
|
+
return observation && typeof observation.status === "number" && Number.isInteger(observation.status) && observation.truncated === false && typeof observation.marker_observed === "boolean" && typeof observation.response_digest === "string" && /^sha256:[a-f0-9]{64}$/.test(observation.response_digest);
|
|
2218
|
+
};
|
|
2219
|
+
if (!validObservation(baseline) || baseline.status !== proof.baseline_status || baseline.marker_observed !== true || !Array.isArray(observations) || !observations.length || observations.length > 16 || !observations.every(validObservation))
|
|
2220
|
+
return null;
|
|
2221
|
+
if (proof.status === "confirmed" ? !observations.some((value2) => {
|
|
2222
|
+
const o = record(value2);
|
|
2223
|
+
return Number(o.status) >= 200 && Number(o.status) < 300 && o.marker_observed === true;
|
|
2224
|
+
}) : !observations.every((value2) => {
|
|
2225
|
+
const o = record(value2);
|
|
2226
|
+
return [401, 403].includes(Number(o.status)) && o.marker_observed === false;
|
|
2227
|
+
}))
|
|
2228
|
+
return null;
|
|
2229
|
+
let asset2;
|
|
2230
|
+
try {
|
|
2231
|
+
const url = new URL(item.url);
|
|
2232
|
+
if (!["http:", "https:"].includes(url.protocol) || url.username || url.password)
|
|
2233
|
+
return null;
|
|
2234
|
+
asset2 = url.origin;
|
|
2235
|
+
} catch {
|
|
2236
|
+
return null;
|
|
2237
|
+
}
|
|
2238
|
+
const confirmed = proof.status === "confirmed";
|
|
2239
|
+
return {
|
|
2240
|
+
key: JSON.stringify([scopeId, "unauthorized-read", item.url]),
|
|
2241
|
+
asset: asset2,
|
|
2242
|
+
status: confirmed ? "confirmed" : "blocked",
|
|
2243
|
+
accessClass: "unauthorized-read",
|
|
2244
|
+
headline: confirmed ? "Unauthorized resource read confirmed" : "Unauthorized resource read blocked",
|
|
2245
|
+
summary: confirmed ? "A comparison identity retrieved the private owner marker from an operator-declared restricted resource. This read-only proof required no cleanup. The result applies to the configured ownership contract." : "The configured comparison identities were denied access to the operator-declared restricted resource. This read-only test required no cleanup.",
|
|
2246
|
+
cleanup: "not-required",
|
|
2247
|
+
confidence: 1,
|
|
2248
|
+
severity: confirmed ? "unassessed" : "info",
|
|
2249
|
+
accessLevel: confirmed ? "Resource read" : "Access denied",
|
|
2250
|
+
prerequisites: ["Operator-declared ownership contract"],
|
|
2251
|
+
limitations: ["The result covers only the configured resource and tested identities."],
|
|
2252
|
+
...evidenceEventId && evidenceEventId.length <= 512 ? { evidenceEventId } : {}
|
|
2253
|
+
};
|
|
2254
|
+
}
|
|
2151
2255
|
if (eventType !== "tool_artifact" || !item || item.tool !== "access_control_workflow" || item.workflow !== "access_control_workflow" || item.verdict !== "confirmed" || typeof item.owner_identity !== "string" || !item.owner_identity || typeof item.actor_identity !== "string" || !item.actor_identity || item.owner_identity === item.actor_identity || typeof item.expected_state !== "string" || item.expected_state.length > 500 || typeof item.observation_url !== "string" || item.observation_url.length > 8192 || !scopeId || scopeId.length > 512)
|
|
2152
2256
|
return null;
|
|
2153
2257
|
const before = successfulObservation(item.observation_before);
|
|
@@ -2176,13 +2280,38 @@ function accessMilestoneFromArtifact(eventType, value, scopeId, evidenceEventId)
|
|
|
2176
2280
|
headline: "State change confirmed across request contexts",
|
|
2177
2281
|
summary: "The observing context saw the declared marker after requests using different configured authentication headers. Authorization impact requires validation. Cleanup was not verified.",
|
|
2178
2282
|
cleanup: "unknown",
|
|
2283
|
+
confidence: 1,
|
|
2284
|
+
severity: "info",
|
|
2285
|
+
accessLevel: "Observed state transition",
|
|
2286
|
+
prerequisites: ["Distinct configured authentication headers"],
|
|
2287
|
+
limitations: ["Authorization impact and cleanup are unverified."],
|
|
2179
2288
|
...evidenceEventId && evidenceEventId.length <= 512 ? { evidenceEventId } : {}
|
|
2180
2289
|
};
|
|
2181
2290
|
}
|
|
2182
2291
|
function appendAccessMilestone(current, next, limit = 80) {
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2292
|
+
const index = current.findIndex((item) => item.milestone.key === next.milestone.key);
|
|
2293
|
+
if (index !== -1) {
|
|
2294
|
+
const rank = { blocked: 0, conditional: 1, confirmed: 2 };
|
|
2295
|
+
const previous = current[index].milestone;
|
|
2296
|
+
const sameProof = next.milestone.proofId !== void 0 && next.milestone.proofId === previous.proofId;
|
|
2297
|
+
const newerCleanup = sameProof && next.milestone.cleanup !== previous.cleanup && (next.milestone.cleanupRevision ?? -1) > (previous.cleanupRevision ?? -1);
|
|
2298
|
+
const newerProof = next.milestone.proofId !== void 0 && next.milestone.proofId !== previous.proofId && (next.milestone.verifiedAt ?? -1) >= (previous.verifiedAt ?? -1) && ((next.milestone.proofGeneration ?? 0) > (previous.proofGeneration ?? 0) || (next.milestone.verifiedAt ?? -1) > (previous.verifiedAt ?? -1));
|
|
2299
|
+
if (rank[next.milestone.status] <= rank[previous.status] && !newerCleanup && !newerProof)
|
|
2300
|
+
return [...current];
|
|
2301
|
+
const updated = [...current];
|
|
2302
|
+
updated[index] = next;
|
|
2303
|
+
return updated;
|
|
2304
|
+
}
|
|
2305
|
+
const appended = [...current, next];
|
|
2306
|
+
const cap = Math.max(1, Math.min(80, Number.isFinite(limit) ? Math.floor(limit) : 80));
|
|
2307
|
+
if (appended.length <= cap)
|
|
2308
|
+
return appended;
|
|
2309
|
+
const retained = new Set(visibleAccessMilestones(appended, cap));
|
|
2310
|
+
return appended.filter((item) => retained.has(item));
|
|
2311
|
+
}
|
|
2312
|
+
function visibleAccessMilestones(items, limit = 3) {
|
|
2313
|
+
const impact = (milestone) => milestone.status === "confirmed" ? milestone.accessClass === "unauthorized-write" ? 4 : 3 : milestone.status === "conditional" ? 1 : 0;
|
|
2314
|
+
return items.map((item, index) => ({ item, index })).sort((a, b) => impact(b.item.milestone) - impact(a.item.milestone) || b.index - a.index).slice(0, Math.max(1, Math.min(80, Number.isFinite(limit) ? Math.floor(limit) : 3))).map((entry) => entry.item);
|
|
2186
2315
|
}
|
|
2187
2316
|
|
|
2188
2317
|
export {
|
|
@@ -2319,5 +2448,6 @@ export {
|
|
|
2319
2448
|
getFindingPriority,
|
|
2320
2449
|
compareFindingsByBusinessPriority,
|
|
2321
2450
|
accessMilestoneFromArtifact,
|
|
2322
|
-
appendAccessMilestone
|
|
2451
|
+
appendAccessMilestone,
|
|
2452
|
+
visibleAccessMilestones
|
|
2323
2453
|
};
|