0sec-cli 0.23.0 → 0.24.1
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-L77BWMNE.js} +4 -4
- package/chunks/{artifact-scraper-NYKUF2M5.js → artifact-scraper-BV67RAP5.js} +2 -2
- package/chunks/{assumption-mining-ZX3YVWEH.js → assumption-mining-RPVR77A3.js} +18 -18
- package/chunks/{backend-connections-H52NIVH2.js → backend-connections-ACIXNYZN.js} +3 -3
- package/chunks/{chunk-MQJVU2GZ.js → chunk-2NBZZFRG.js} +79 -9
- package/chunks/{chunk-A2ADXAC5.js → chunk-2XGBEH53.js} +1288 -2313
- package/chunks/{chunk-3E54JYS4.js → chunk-3LPBJMHB.js} +1 -1
- package/chunks/{chunk-XORZUR2H.js → chunk-3WUPCZGF.js} +1 -1
- package/chunks/{chunk-65H3MRBF.js → chunk-4ROZFLSR.js} +1 -1
- package/chunks/chunk-56UTQKXO.js +56 -0
- package/chunks/{chunk-YYS2H33A.js → chunk-5ETI27Q3.js} +2 -2
- package/chunks/{chunk-3ZNI7F42.js → chunk-5NFIY2SJ.js} +3 -3
- package/chunks/{chunk-A5QO7N3S.js → chunk-5PFRE522.js} +1 -1
- package/chunks/{chunk-EH2WTNY7.js → chunk-5WAHHZBF.js} +1424 -859
- package/chunks/{chunk-WIYNYNL2.js → chunk-6XMFCVJS.js} +1 -1
- package/chunks/chunk-7UHAXEOV.js +289 -0
- package/chunks/{chunk-CP6HANBE.js → chunk-BD7WULFS.js} +4 -3
- package/chunks/{chunk-T7ZEVY5G.js → chunk-BMDG6T7D.js} +815 -41
- package/chunks/{chunk-QMICC5O2.js → chunk-BOBIAHKA.js} +2 -2
- package/chunks/{chunk-VDOWARMJ.js → chunk-BPU6M42R.js} +15 -1
- package/chunks/{chunk-UELXHK2Y.js → chunk-CGBDEST2.js} +16 -5
- package/chunks/{remote-workflow-runtime-RGQ5ECMN.js → chunk-CJRZSWII.js} +39 -8
- package/chunks/chunk-F2P25DJY.js +5421 -0
- package/chunks/{chunk-TO35Y326.js → chunk-GTED3FSZ.js} +5 -2
- package/chunks/{chunk-LT7BFGXA.js → chunk-GV5WXDHY.js} +10 -10
- package/chunks/{chunk-LTEE2JWK.js → chunk-GXXX7AGH.js} +251 -8
- package/chunks/chunk-GZA7RGK7.js +5198 -0
- package/chunks/{chunk-KHPOSLCF.js → chunk-H5QURBBK.js} +174 -710
- package/chunks/chunk-I43YYHDU.js +566 -0
- package/chunks/{chunk-62ENS6XO.js → chunk-IIBNQTOK.js} +3 -2
- package/chunks/{chunk-BF5FIK7H.js → chunk-IJ6UPW3H.js} +108 -24
- package/chunks/{chunk-TPUJZ74W.js → chunk-ILRMLA6J.js} +2 -2
- package/chunks/{chunk-I3OCJ2OA.js → chunk-JWSOUKFF.js} +5 -3
- package/chunks/{chunk-UZUELPFW.js → chunk-K74DRDC5.js} +1 -1
- package/chunks/chunk-LMP2T4G2.js +700 -0
- package/chunks/{chunk-K55B4OH4.js → chunk-NBV4I237.js} +1 -1
- package/chunks/chunk-OOMBOLAF.js +295 -0
- package/chunks/{chunk-YAEJAZYW.js → chunk-PJU24AKR.js} +2 -2
- package/chunks/{chunk-NI6QYQSK.js → chunk-PVJUPIQG.js} +6 -6
- package/chunks/{chunk-WYNZFNMF.js → chunk-Q7JKIKKF.js} +289 -10
- package/chunks/{chunk-ITES7BCY.js → chunk-QNRYOJEB.js} +3 -111
- package/chunks/{chunk-PIR6BNE7.js → chunk-R2XBH476.js} +2 -2
- package/chunks/{chunk-O6Z4XPOM.js → chunk-RURJYCWY.js} +1 -1
- package/chunks/chunk-RVJVM5L4.js +164 -0
- package/chunks/{chunk-NX4H6L4M.js → chunk-S2GITRD5.js} +2 -2
- package/chunks/{chunk-W5VNCB57.js → chunk-SU4IHQQI.js} +1 -1
- package/chunks/{chunk-V2BWXPZP.js → chunk-SZDD77KX.js} +6 -6
- package/chunks/{chunk-EJH2TNVH.js → chunk-TVS6WVSK.js} +3 -3
- package/chunks/{chunk-LVGZGG63.js → chunk-UJE4WOQS.js} +1 -1
- package/chunks/chunk-VU7V2SDW.js +284 -0
- package/chunks/chunk-W624J7NF.js +117 -0
- package/chunks/{chunk-OLSKXTQZ.js → chunk-WUPN3D37.js} +22 -248
- package/chunks/{chunk-HFDSIHTE.js → chunk-X2IPO5JO.js} +202 -30
- package/chunks/{chunk-JEYIWMGL.js → chunk-X2ZMSRTP.js} +1 -1
- package/chunks/{chunk-F344NYUN.js → chunk-XA2IBHPB.js} +1 -1
- package/chunks/{chunk-Y4HJRUFE.js → chunk-YERUDEXT.js} +876 -817
- package/chunks/{chunk-AAA4PRWK.js → chunk-YKWARO3T.js} +2 -2
- package/chunks/{chunk-P7KDN5PK.js → chunk-YSQWZ67M.js} +14 -14
- package/chunks/{chunk-4HGGNBKK.js → chunk-ZM6ANQZJ.js} +2593 -1563
- package/chunks/{codex-models-Y457ND6Q.js → codex-models-6XVNFRXZ.js} +7 -7
- package/chunks/{commands-PBDAOZKA.js → commands-FRPOFIO4.js} +1603 -6945
- package/chunks/dashboard-5HDSNBAU.js +76 -0
- package/chunks/{db-TPSI552V.js → db-BXJNWUYJ.js} +3 -3
- package/chunks/{deep-review-DKED6EN5.js → deep-review-GSJEBLCG.js} +34 -33
- package/chunks/{disclose-LDNKAVRH.js → disclose-OU6Z6GVT.js} +4 -2
- package/chunks/{dist-RLPNLRZD.js → dist-7KSYDDSG.js} +33 -1
- package/chunks/{dist-7Q5A6TQM.js → dist-RKLQIXDT.js} +18 -2
- package/chunks/{dist-4LGRIBOC.js → dist-TQMHMSBZ.js} +99 -64
- package/chunks/eval-runner-A2DIGVP7.js +31 -0
- package/chunks/{exploit-agent-RMFYNG7H.js → exploit-agent-Y2P4GFIY.js} +1 -1
- package/chunks/{exploit-autoclimb-2A2PQI4E.js → exploit-autoclimb-YRZ3TMS2.js} +1 -1
- package/chunks/{exploit-climb-DEJ232QN.js → exploit-climb-4LEY4SDW.js} +2 -2
- package/chunks/{fix-JGBW7XUN.js → fix-RQSIG75B.js} +7 -7
- package/chunks/{harness-CBOLMUHB.js → harness-3NVC3DDY.js} +3 -3
- package/chunks/{hunt-scan-MIRMABY4.js → hunt-scan-W246VWJC.js} +16 -16
- package/chunks/{kernel-primitive-NAPDMJC7.js → kernel-primitive-T47V3RD3.js} +2 -2
- package/chunks/{kernel-vm-runner-PR5OSDQ2.js → kernel-vm-runner-AEL5E3SV.js} +2 -2
- package/chunks/local-engine-ZCW4YC6E.js +21 -0
- package/chunks/managed-operation-6R2QPPW5.js +60 -0
- package/chunks/{memsafety-scan-RPS446CD.js → memsafety-scan-L2Z7E7TE.js} +2 -2
- package/chunks/{native-loop-CGOJMNHV.js → native-loop-26X2CHBV.js} +14 -13
- package/chunks/orchestrate-OBS37FWQ.js +63 -0
- package/chunks/{prepare-YVNENPNL.js → prepare-C3KGMBXT.js} +5 -5
- package/chunks/provider-model-discovery-QGUGL3XW.js +277 -0
- package/chunks/remote-workflow-runtime-DB52SINR.js +12 -0
- package/chunks/{run-VH4OIDKF.js → run-MU3MFL2Z.js} +902 -322
- package/chunks/{runtime-4TAJFVF7.js → runtime-AUBLQUOH.js} +2 -2
- package/chunks/{runtime-HWL6HG7A.js → runtime-U66JNSAY.js} +7 -7
- package/chunks/{scan-stream-HJAZJONE.js → scan-stream-34F3LTPV.js} +3 -2
- package/chunks/{scope-Q5PIX2IS.js → scope-HSTG63TQ.js} +2 -2
- package/chunks/service-plugins-5B23PWXC.js +64 -0
- package/chunks/{session-store-2FEIZGSV.js → session-store-MKAAP3WL.js} +2 -2
- package/chunks/{variant-candidates-TX5V6XOT.js → variant-candidates-LG767HWH.js} +7 -7
- package/chunks/{web-recon-prepass-6HOUGF7Q.js → web-recon-prepass-NJP6J3E4.js} +5 -5
- package/chunks/workflow-runtime-AR627I26.js +178 -0
- package/dashboard/assets/{abnfDiagram-VCTEODGH-BuvumFYR.js → abnfDiagram-VCTEODGH-Cq149Jpk.js} +1 -1
- package/dashboard/assets/{arc-DZzWDuCG.js → arc-CpP-3TRW.js} +1 -1
- package/dashboard/assets/architecture-7GRP2DOG-z5EHYkyH.js +1 -0
- package/dashboard/assets/{architectureDiagram-5GKGNRK7-Bw5el_EL.js → architectureDiagram-5GKGNRK7-ewtXpjR_.js} +1 -1
- package/dashboard/assets/{blockDiagram-I7D4REHJ-BjVLEApp.js → blockDiagram-I7D4REHJ-CZYkRRDi.js} +1 -1
- package/dashboard/assets/{c4Diagram-7LVT6UL2-B9nNzx2J.js → c4Diagram-7LVT6UL2-CV7Iu3_Z.js} +1 -1
- package/dashboard/assets/channel-CuYjfiC5.js +1 -0
- package/dashboard/assets/{chunk-4HAMMTFA-y72Q95nW.js → chunk-4HAMMTFA-PKCyW4m-.js} +1 -1
- package/dashboard/assets/{chunk-75Z2AOVW-BOhrOGMO.js → chunk-75Z2AOVW-C5MlFTc_.js} +1 -1
- package/dashboard/assets/{chunk-DU6HZSFF-B0EhAaNb.js → chunk-DU6HZSFF-3M37ulcO.js} +2 -2
- package/dashboard/assets/{chunk-F27PBJKO-BR-hiDvM.js → chunk-F27PBJKO-DTAok0qM.js} +1 -1
- package/dashboard/assets/{chunk-GMAD6QVW-H15vJYXg.js → chunk-GMAD6QVW-CPsr2F33.js} +1 -1
- package/dashboard/assets/{chunk-GVQU2GXP-BRndps0o.js → chunk-GVQU2GXP-C2AXGf9A.js} +1 -1
- package/dashboard/assets/{chunk-IMKFNOWR-CIzC_OWx.js → chunk-IMKFNOWR-DMG6yD_O.js} +1 -1
- package/dashboard/assets/{chunk-L3NEJ4N5-NR4P1Vko.js → chunk-L3NEJ4N5-BSvwdbXx.js} +1 -1
- package/dashboard/assets/{chunk-OSK3NFVY-DtjTDf8S.js → chunk-OSK3NFVY-CfB8V7FU.js} +1 -1
- package/dashboard/assets/{chunk-P2QGCYS3-CYT11Qjx.js → chunk-P2QGCYS3-CvmZvq6n.js} +1 -1
- package/dashboard/assets/{chunk-POPQ4Y6H-Duj2Ygwu.js → chunk-POPQ4Y6H-D_TvwDxL.js} +1 -1
- package/dashboard/assets/{chunk-PWAF6VOD-z4p5Tf_y.js → chunk-PWAF6VOD-Da5GnuOY.js} +1 -1
- package/dashboard/assets/{chunk-SHT3W25Y-DYeLYLS3.js → chunk-SHT3W25Y-CcsMJpR-.js} +1 -1
- package/dashboard/assets/{chunk-SVP7TREG-BKowxCVI.js → chunk-SVP7TREG-COojjieJ.js} +1 -1
- package/dashboard/assets/{chunk-TICWLB2K-GDAwEFlH.js → chunk-TICWLB2K-nBAmJwx6.js} +1 -1
- package/dashboard/assets/{chunk-XXDRQBXY-DRD79Mjx.js → chunk-XXDRQBXY-r5HyhWDv.js} +1 -1
- package/dashboard/assets/classDiagram-ZZMXUADV-DCuOrWUV.js +1 -0
- package/dashboard/assets/classDiagram-v2-VYDZK3BY-DCuOrWUV.js +1 -0
- package/dashboard/assets/{common-vnzd7UOF.js → common-C6snVPsk.js} +1 -1
- package/dashboard/assets/{cose-bilkent-JH36ORCC-GqCLsRyf.js → cose-bilkent-JH36ORCC-BLGcaZHk.js} +1 -1
- package/dashboard/assets/{cynefin-OW5HDTMX-CJN9YwWN.js → cynefin-OW5HDTMX-DbZMK00I.js} +1 -1
- package/dashboard/assets/{cynefinDiagram-5FMLGOSQ-DVJHCYQY.js → cynefinDiagram-5FMLGOSQ-xodkuQtW.js} +1 -1
- package/dashboard/assets/{dagre-GXQ25YYZ-BMCrrJJR.js → dagre-GXQ25YYZ-CRk9qfSG.js} +1 -1
- package/dashboard/assets/{diagram-S7CK7UJ4-CLYDdOEm.js → diagram-S7CK7UJ4-DNoTMlCO.js} +1 -1
- package/dashboard/assets/{diagram-UQ7AKVKN-CnPuAZK7.js → diagram-UQ7AKVKN-COccuyew.js} +1 -1
- package/dashboard/assets/{diagram-VSXAHHWV-Cr2I2DnG.js → diagram-VSXAHHWV-g6D1tWRb.js} +1 -1
- package/dashboard/assets/{diagram-VX7I27RA-_mGW1wpp.js → diagram-VX7I27RA-DhO4eVIC.js} +1 -1
- package/dashboard/assets/{diagram-Z3DM3KII-igybB0l9.js → diagram-Z3DM3KII-DeOQFexd.js} +1 -1
- package/dashboard/assets/{dist-Bb7_-x5y.js → dist-BQYeOQg3.js} +1 -1
- package/dashboard/assets/{ebnfDiagram-PWID7BFC-CVCICf2R.js → ebnfDiagram-PWID7BFC-MtkX2feM.js} +1 -1
- package/dashboard/assets/{erDiagram-RLTQ6QDP-CRjnfgxj.js → erDiagram-RLTQ6QDP-DIWSsoYZ.js} +1 -1
- package/dashboard/assets/eventmodeling-NTZA5JFV-D_3ez4Gv.js +1 -0
- package/dashboard/assets/flowDiagram-HODETNUW-D2boyYEd.js +1 -0
- package/dashboard/assets/{ganttDiagram-EL5Y4UJY-DppD7sD7.js → ganttDiagram-EL5Y4UJY-DKggkJe0.js} +1 -1
- package/dashboard/assets/{gitGraph-4MIJSDKK-Tw0vNnQc.js → gitGraph-4MIJSDKK-DFOQYwXc.js} +1 -1
- package/dashboard/assets/{gitGraphDiagram-WWUBYQGX-Cpf96-z3.js → gitGraphDiagram-WWUBYQGX-r_iR8Qzo.js} +1 -1
- package/dashboard/assets/{info-A6RAGUB7-DLyt9arx.js → info-A6RAGUB7-DeednLoB.js} +1 -1
- package/dashboard/assets/{infoDiagram-27XIBGKW-B6_piSNS.js → infoDiagram-27XIBGKW-ClQk7UyQ.js} +1 -1
- package/dashboard/assets/{ishikawaDiagram-5VMMS53U-DvMO0B0X.js → ishikawaDiagram-5VMMS53U-tR7Vziog.js} +1 -1
- package/dashboard/assets/{journeyDiagram-3NMN7TZE-f7ZK98b6.js → journeyDiagram-3NMN7TZE-Cpb9IqKL.js} +1 -1
- package/dashboard/assets/{kanban-definition-UXKFOSKX-Dso0nAxL.js → kanban-definition-UXKFOSKX-BzUuKbA9.js} +1 -1
- package/dashboard/assets/katex-BdBmVSus.js +257 -0
- package/dashboard/assets/{line-VcKaFG0G.js → line-BHY_tSHu.js} +1 -1
- package/dashboard/assets/{linear-D7YnpiWh.js → linear-naZZ1pHk.js} +1 -1
- package/dashboard/assets/{mermaid-parser.core-DriL2hrV.js → mermaid-parser.core-CPvd4cEx.js} +3 -3
- package/dashboard/assets/{mermaid.core-DJWYDh_P.js → mermaid.core-D_QsUPU8.js} +4 -4
- package/dashboard/assets/{mindmap-definition-YA3MSWOX-DZsoIeac.js → mindmap-definition-YA3MSWOX-CtfLTPPJ.js} +1 -1
- package/dashboard/assets/operations-BwCzhVnT.js +130 -0
- package/dashboard/assets/operations-QjKT0Hwi.css +1 -0
- package/dashboard/assets/{packet-AYTQ26CC-BQBIXKxk.js → packet-AYTQ26CC-DDQbkT9I.js} +1 -1
- package/dashboard/assets/{pegDiagram-XKGWAZYB-B0-lslgW.js → pegDiagram-XKGWAZYB-C1Dclbzj.js} +1 -1
- package/dashboard/assets/{pie-WAS4IAKB-DoY6dwQs.js → pie-WAS4IAKB-LpU4ULAs.js} +1 -1
- package/dashboard/assets/{pieDiagram-E7YTZNPT-ElmdRjp5.js → pieDiagram-E7YTZNPT-Cd7XwYo5.js} +1 -1
- package/dashboard/assets/{quadrantDiagram-AXDQQJYC-Ci1h98Q2.js → quadrantDiagram-AXDQQJYC-CaS-GQ4X.js} +1 -1
- package/dashboard/assets/{radar-RG4KPBEZ-DHod2WgB.js → radar-RG4KPBEZ-CcxW3NJm.js} +1 -1
- package/dashboard/assets/{railroad-74A4TZTK-90JxB4xV.js → railroad-74A4TZTK-9P5Rl8fP.js} +1 -1
- package/dashboard/assets/railroad-abnf-HS5TGJTU-CSfpwjna.js +1 -0
- package/dashboard/assets/railroad-ebnf-LZEXJU2U-D6R5qzr-.js +1 -0
- package/dashboard/assets/railroad-peg-WCYAUIDC-DKEX7ITG.js +1 -0
- package/dashboard/assets/{railroadDiagram-O6MQD6OU-k3190A6L.js → railroadDiagram-O6MQD6OU-BeesTrqn.js} +1 -1
- package/dashboard/assets/{requirementDiagram-BXWQKSXE-C3-eR7I5.js → requirementDiagram-BXWQKSXE-IjyK0DhW.js} +1 -1
- package/dashboard/assets/{sankeyDiagram-P5KCCOFB-Bc86pi8w.js → sankeyDiagram-P5KCCOFB-DmIluQqo.js} +1 -1
- package/dashboard/assets/{sequenceDiagram-WJ2MYXX4-Bv_MvEmz.js → sequenceDiagram-WJ2MYXX4-CUp8ZjTc.js} +1 -1
- package/dashboard/assets/{src-D7Dqq5yP.js → src-r61wDjcA.js} +1 -1
- package/dashboard/assets/{stateDiagram-D77RDMKH-Bq_GVmeW.js → stateDiagram-D77RDMKH-Dy9TQb8P.js} +1 -1
- package/dashboard/assets/stateDiagram-v2-MP3YSRHH-CQb0ZtPr.js +1 -0
- package/dashboard/assets/{swimlanes-42K2YHIH-q0iK-e0P.js → swimlanes-42K2YHIH-CZuDV7V5.js} +1 -1
- package/dashboard/assets/swimlanesDiagram-VR7AAH4N-BxgWMq8X.js +8 -0
- package/dashboard/assets/{timeline-definition-24CTP7MA-CNfF07hM.js → timeline-definition-24CTP7MA-BGdXW-iY.js} +1 -1
- package/dashboard/assets/{treeView-Q6P3EWNA-m629ePnS.js → treeView-Q6P3EWNA-DlRrayjM.js} +1 -1
- package/dashboard/assets/{treemap-WGGIJYW6-D9Cb2ETv.js → treemap-WGGIJYW6-C6UqLKfI.js} +1 -1
- package/dashboard/assets/{vennDiagram-4TSXK5OY-v4dKF-FE.js → vennDiagram-4TSXK5OY-DzKWHJsl.js} +1 -1
- package/dashboard/assets/{wardley-WFR3VGLG-DkwH_nRe.js → wardley-WFR3VGLG-thmyHKb0.js} +1 -1
- package/dashboard/assets/{wardleyDiagram-VM6X3IG4-3ImohVu4.js → wardleyDiagram-VM6X3IG4-DGsjYmNJ.js} +1 -1
- package/dashboard/assets/{xychartDiagram-S5SC5T6Z-QJu3dm7K.js → xychartDiagram-S5SC5T6Z-C7_T_tWt.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
package/0.js
CHANGED
|
@@ -2,89 +2,95 @@
|
|
|
2
2
|
import { createRequire as __0CreateRequire } from "node:module";
|
|
3
3
|
const require = __0CreateRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
|
-
Command,
|
|
6
5
|
runStartupUpdate
|
|
7
|
-
} from "./chunks/chunk-
|
|
6
|
+
} from "./chunks/chunk-7UHAXEOV.js";
|
|
8
7
|
import {
|
|
8
|
+
Command
|
|
9
|
+
} from "./chunks/chunk-WUPN3D37.js";
|
|
10
|
+
import {
|
|
11
|
+
savedConnectionEnvPatch,
|
|
9
12
|
setHerdrSink
|
|
10
|
-
} from "./chunks/chunk-
|
|
13
|
+
} from "./chunks/chunk-BPU6M42R.js";
|
|
11
14
|
import {
|
|
12
|
-
getSettings,
|
|
13
15
|
installConsolePresentationBridge,
|
|
14
|
-
installProcessPresentationStreamBridge
|
|
15
|
-
|
|
16
|
+
installProcessPresentationStreamBridge
|
|
17
|
+
} from "./chunks/chunk-OOMBOLAF.js";
|
|
18
|
+
import {
|
|
16
19
|
presentationEventBus
|
|
17
|
-
} from "./chunks/chunk-
|
|
20
|
+
} from "./chunks/chunk-56UTQKXO.js";
|
|
18
21
|
import {
|
|
22
|
+
getSettings,
|
|
23
|
+
maybeLoadCodexAuth,
|
|
19
24
|
resolveEngagement
|
|
20
|
-
} from "./chunks/chunk-
|
|
25
|
+
} from "./chunks/chunk-LMP2T4G2.js";
|
|
21
26
|
import {
|
|
22
27
|
source_default
|
|
23
28
|
} from "./chunks/chunk-HLFS6WV2.js";
|
|
24
29
|
import {
|
|
25
30
|
launchConfiguredWorkbench,
|
|
26
31
|
remoteBackendClientId
|
|
27
|
-
} from "./chunks/chunk-
|
|
32
|
+
} from "./chunks/chunk-X2IPO5JO.js";
|
|
28
33
|
import {
|
|
29
34
|
createHerdrEventSink,
|
|
30
35
|
maybeSubscribeOperationalEventSink
|
|
31
|
-
} from "./chunks/chunk-
|
|
32
|
-
import "./chunks/chunk-
|
|
33
|
-
import "./chunks/chunk-
|
|
36
|
+
} from "./chunks/chunk-ZM6ANQZJ.js";
|
|
37
|
+
import "./chunks/chunk-H5QURBBK.js";
|
|
38
|
+
import "./chunks/chunk-5NFIY2SJ.js";
|
|
39
|
+
import "./chunks/chunk-BOBIAHKA.js";
|
|
40
|
+
import "./chunks/chunk-ILRMLA6J.js";
|
|
41
|
+
import "./chunks/chunk-GVD6SJGH.js";
|
|
34
42
|
import "./chunks/chunk-QCUFBVIZ.js";
|
|
35
|
-
import "./chunks/chunk-
|
|
36
|
-
import "./chunks/chunk-
|
|
43
|
+
import "./chunks/chunk-S2GITRD5.js";
|
|
44
|
+
import "./chunks/chunk-IIBNQTOK.js";
|
|
37
45
|
import "./chunks/chunk-2WNCI664.js";
|
|
38
46
|
import "./chunks/chunk-23DG5YKS.js";
|
|
39
47
|
import "./chunks/chunk-DQTNI3KY.js";
|
|
40
|
-
import "./chunks/chunk-
|
|
41
|
-
import "./chunks/chunk-
|
|
42
|
-
import "./chunks/chunk-
|
|
43
|
-
import "./chunks/chunk-
|
|
48
|
+
import "./chunks/chunk-3WUPCZGF.js";
|
|
49
|
+
import "./chunks/chunk-UJE4WOQS.js";
|
|
50
|
+
import "./chunks/chunk-PJU24AKR.js";
|
|
51
|
+
import "./chunks/chunk-6XMFCVJS.js";
|
|
44
52
|
import "./chunks/chunk-AZ7L3HFD.js";
|
|
45
|
-
import "./chunks/chunk-
|
|
46
|
-
import "./chunks/chunk-
|
|
47
|
-
import "./chunks/chunk-
|
|
53
|
+
import "./chunks/chunk-TVS6WVSK.js";
|
|
54
|
+
import "./chunks/chunk-YSQWZ67M.js";
|
|
55
|
+
import "./chunks/chunk-5WAHHZBF.js";
|
|
56
|
+
import "./chunks/chunk-3LPBJMHB.js";
|
|
48
57
|
import "./chunks/chunk-K2PWUPUI.js";
|
|
49
|
-
import "./chunks/chunk-
|
|
50
|
-
import "./chunks/chunk-
|
|
58
|
+
import "./chunks/chunk-X2ZMSRTP.js";
|
|
59
|
+
import "./chunks/chunk-YERUDEXT.js";
|
|
51
60
|
import "./chunks/chunk-UEX7PFSE.js";
|
|
52
|
-
import "./chunks/chunk-
|
|
53
|
-
import "./chunks/chunk-
|
|
54
|
-
import "./chunks/chunk-
|
|
55
|
-
import "./chunks/chunk-
|
|
61
|
+
import "./chunks/chunk-4ROZFLSR.js";
|
|
62
|
+
import "./chunks/chunk-BD7WULFS.js";
|
|
63
|
+
import "./chunks/chunk-XA2IBHPB.js";
|
|
64
|
+
import "./chunks/chunk-5ETI27Q3.js";
|
|
65
|
+
import "./chunks/chunk-YKWARO3T.js";
|
|
56
66
|
import "./chunks/chunk-SQCBHFWN.js";
|
|
57
|
-
import "./chunks/chunk-
|
|
58
|
-
import "./chunks/chunk-UZUELPFW.js";
|
|
67
|
+
import "./chunks/chunk-K74DRDC5.js";
|
|
59
68
|
import "./chunks/chunk-O6KPVYOI.js";
|
|
60
69
|
import "./chunks/chunk-FHC2B7LN.js";
|
|
61
70
|
import "./chunks/chunk-DKSCN2AB.js";
|
|
62
71
|
import "./chunks/chunk-UFHN6RIU.js";
|
|
63
|
-
import "./chunks/chunk-
|
|
64
|
-
import "./chunks/chunk-
|
|
72
|
+
import "./chunks/chunk-BMDG6T7D.js";
|
|
73
|
+
import "./chunks/chunk-GTED3FSZ.js";
|
|
65
74
|
import "./chunks/chunk-IXT64DV5.js";
|
|
66
|
-
import "./chunks/chunk-
|
|
67
|
-
import "./chunks/chunk-YAEJAZYW.js";
|
|
68
|
-
import "./chunks/chunk-65H3MRBF.js";
|
|
69
|
-
import "./chunks/chunk-CP6HANBE.js";
|
|
75
|
+
import "./chunks/chunk-SU4IHQQI.js";
|
|
70
76
|
import "./chunks/chunk-NJLKFC66.js";
|
|
71
|
-
import "./chunks/chunk-
|
|
72
|
-
import "./chunks/chunk-
|
|
77
|
+
import "./chunks/chunk-NBV4I237.js";
|
|
78
|
+
import "./chunks/chunk-IJ6UPW3H.js";
|
|
73
79
|
import {
|
|
74
80
|
analyticsPipeline,
|
|
75
81
|
configureRunContributionsFromEnvironment
|
|
76
|
-
} from "./chunks/chunk-
|
|
77
|
-
import "./chunks/chunk-RS4MAN3Q.js";
|
|
78
|
-
import "./chunks/chunk-UELXHK2Y.js";
|
|
82
|
+
} from "./chunks/chunk-PVJUPIQG.js";
|
|
79
83
|
import {
|
|
80
84
|
eventBus,
|
|
81
85
|
presentationEventSink
|
|
82
|
-
} from "./chunks/chunk-
|
|
83
|
-
import "./chunks/chunk-
|
|
86
|
+
} from "./chunks/chunk-5PFRE522.js";
|
|
87
|
+
import "./chunks/chunk-RS4MAN3Q.js";
|
|
88
|
+
import "./chunks/chunk-CGBDEST2.js";
|
|
89
|
+
import "./chunks/chunk-QNRYOJEB.js";
|
|
84
90
|
import "./chunks/chunk-5IBCBQEH.js";
|
|
85
91
|
import {
|
|
86
92
|
VERSION
|
|
87
|
-
} from "./chunks/chunk-
|
|
93
|
+
} from "./chunks/chunk-GXXX7AGH.js";
|
|
88
94
|
import "./chunks/chunk-VIT5ALXF.js";
|
|
89
95
|
import "./chunks/chunk-VCSFCHAJ.js";
|
|
90
96
|
|
|
@@ -110,7 +116,7 @@ import { fileURLToPath } from "node:url";
|
|
|
110
116
|
var BYPASS_ENV = "ZERO_ALLOW_STALE_SOURCE_DIST";
|
|
111
117
|
function currentBuildCommit() {
|
|
112
118
|
if (true) {
|
|
113
|
-
return "
|
|
119
|
+
return "42ab1fa74044b79edd6b8f0990b2afa7ccfd824b";
|
|
114
120
|
}
|
|
115
121
|
return void 0;
|
|
116
122
|
}
|
|
@@ -230,9 +236,14 @@ setHerdrSink(herdrSink);
|
|
|
230
236
|
enforceSourceDistFreshness({ entryUrl: import.meta.url });
|
|
231
237
|
if (!isWorkbenchManagement && !isRemoteBackendClient) await runStartupUpdate(VERSION);
|
|
232
238
|
async function buildProgram() {
|
|
233
|
-
const c = await import("./chunks/commands-
|
|
239
|
+
const c = await import("./chunks/commands-FRPOFIO4.js");
|
|
234
240
|
const program = new Command();
|
|
235
241
|
program.name("0").description("Open-source multi-model security research harness").version(VERSION).enablePositionalOptions();
|
|
242
|
+
program.hook("preAction", (_command, action) => {
|
|
243
|
+
if (!isWorkbenchManagement && !isRemoteBackendClient && ["review", "scan"].includes(action.name())) {
|
|
244
|
+
Object.assign(process.env, savedConnectionEnvPatch(process.env));
|
|
245
|
+
}
|
|
246
|
+
});
|
|
236
247
|
c.registerScanCommand(program);
|
|
237
248
|
c.registerResumeCommand(program);
|
|
238
249
|
c.registerReplayCommand(program);
|
|
@@ -245,6 +256,7 @@ async function buildProgram() {
|
|
|
245
256
|
c.registerDoctorCommand(program);
|
|
246
257
|
c.registerDashboardCommand(program);
|
|
247
258
|
c.registerTuiCommand(program);
|
|
259
|
+
c.registerTeamCommand(program);
|
|
248
260
|
c.registerOrchestrateCommand(program);
|
|
249
261
|
c.registerDbCommand(program);
|
|
250
262
|
c.registerMcpServerCommand(program);
|
|
@@ -280,6 +292,7 @@ async function buildProgram() {
|
|
|
280
292
|
c.registerCloudCommand(program);
|
|
281
293
|
c.registerXnuFuzzCommand(program);
|
|
282
294
|
c.registerResearchCommand(program);
|
|
295
|
+
c.registerWorkerCommand(program);
|
|
283
296
|
c.registerRadarCommand(program);
|
|
284
297
|
c.registerTimelineCommand(program);
|
|
285
298
|
c.registerAgentAssureCommand(program);
|
|
@@ -287,41 +300,27 @@ async function buildProgram() {
|
|
|
287
300
|
c.registerPluginCommand(program);
|
|
288
301
|
c.registerThemeCommand(program);
|
|
289
302
|
c.registerEvolveCommand(program);
|
|
303
|
+
c.registerLearningCommand(program);
|
|
290
304
|
c.registerConfigCommand(program);
|
|
291
305
|
c.registerWorkbenchCommand(program);
|
|
292
306
|
c.registerReviewChecksCommand(program);
|
|
293
307
|
c.registerHackstoreCommand(program);
|
|
294
308
|
return program;
|
|
295
309
|
}
|
|
296
|
-
async function
|
|
297
|
-
const {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
return;
|
|
302
|
-
}
|
|
303
|
-
console.log("");
|
|
304
|
-
console.log(` ${source_default.bold("0")} ${source_default.dim(`v${VERSION}`)}`);
|
|
305
|
-
console.log("");
|
|
306
|
-
console.log(` ${source_default.dim("From v0.9.0 onwards, 0 ships as a self-contained binary.")}`);
|
|
307
|
-
console.log(` ${source_default.dim("The full TUI (mission control + live scan view) needs Bun's runtime.")}`);
|
|
308
|
-
console.log("");
|
|
309
|
-
console.log(` ${source_default.bold("Install")} (single curl, no Node / Bun required):`);
|
|
310
|
-
console.log(` curl -fsSL https://raw.githubusercontent.com/0sec-labs/0/main/install.sh | bash`);
|
|
311
|
-
console.log("");
|
|
312
|
-
console.log(` ${source_default.dim("After install, run:")}`);
|
|
313
|
-
console.log(` 0 scan --target https://example.com`);
|
|
314
|
-
console.log(` 0 --help`);
|
|
315
|
-
console.log("");
|
|
310
|
+
async function showWebConsole() {
|
|
311
|
+
const { registerDashboardCommand } = await import("./chunks/dashboard-5HDSNBAU.js");
|
|
312
|
+
const program = new Command();
|
|
313
|
+
registerDashboardCommand(program);
|
|
314
|
+
await program.parseAsync(["web"], { from: "user" });
|
|
316
315
|
}
|
|
317
316
|
process.once("beforeExit", () => {
|
|
318
317
|
void analyticsPipeline.flushNow().catch(() => {
|
|
319
318
|
});
|
|
320
319
|
});
|
|
321
320
|
var userArgs = process.argv.slice(2);
|
|
322
|
-
var knownCommands = ["scan", "resume", "replay", "history", "findings", "secure", "review", "fix", "audit", "deps", "doctor", "dashboard", "web", "tui", "watch", "orchestrate", "db", "mcp-server", "workflow", "runs", "triage", "eval", "bench", "ingest", "kernel", "disclose", "verify", "exploit", "hunt", "recency-hunt", "deep-review", "lens-synth", "memsafety", "assumption-hunt", "specdrift", "protocol-check", "cve", "upgrade", "update", "h1", "intel", "recon", "js-recon", "npm-discovery", "identity", "adgraph", "entragraph", "cloud", "xnu-fuzz", "research", "radar", "timeline", "console", "agent-assure", "binary", "plugin", "theme", "config", "workbench", "checks", "evolve", "hackstore", "hack", "store", "help"];
|
|
321
|
+
var knownCommands = ["scan", "resume", "replay", "history", "findings", "secure", "review", "fix", "audit", "deps", "doctor", "dashboard", "web", "chat", "team", "tui", "watch", "orchestrate", "db", "mcp-server", "workflow", "runs", "sessions", "triage", "eval", "bench", "ingest", "kernel", "disclose", "verify", "exploit", "hunt", "recency-hunt", "deep-review", "lens-synth", "memsafety", "assumption-hunt", "specdrift", "protocol-check", "cve", "upgrade", "update", "h1", "intel", "recon", "js-recon", "npm-discovery", "identity", "adgraph", "entragraph", "cloud", "xnu-fuzz", "research", "worker", "radar", "timeline", "console", "agent-assure", "binary", "plugin", "theme", "config", "workbench", "checks", "evolve", "learning", "hackstore", "hack", "store", "help"];
|
|
323
322
|
if (userArgs.length === 0) {
|
|
324
|
-
|
|
323
|
+
showWebConsole().catch((err) => {
|
|
325
324
|
console.error(source_default.red(err instanceof Error ? err.message : String(err)));
|
|
326
325
|
process.exit(2);
|
|
327
326
|
});
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://0.security/">
|
|
3
|
-
<img src="assets/readme-cover.png" alt="0security
|
|
3
|
+
<img src="assets/readme-cover.png" alt="0security landscape with Zero and the security research mission" width="100%">
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
</p>
|
|
13
13
|
|
|
14
14
|
<p align="center">
|
|
15
|
-
<strong>Open-source security workflows in your browser
|
|
15
|
+
<strong>Open-source security workflows in your browser or coding agent.</strong><br/>
|
|
16
16
|
<sub>Backed by Y Combinator · The Swiss Applied AI & Cybersecurity Research Lab</sub><br/>
|
|
17
17
|
<a href="https://0.security/">0.security</a> ·
|
|
18
18
|
<a href="https://docs.0.security/">Documentation</a> ·
|
|
@@ -39,7 +39,7 @@ export PATH="$HOME/.0/bin:$PATH"
|
|
|
39
39
|
0 web
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
**
|
|
42
|
+
**Command Center (browser):** `0 web` · **Terminal:** `0`
|
|
43
43
|
|
|
44
44
|
Configure a [model provider](https://docs.0.security/api-keys/) before running AI workflows.
|
|
45
45
|
|
|
@@ -47,6 +47,10 @@ Configure a [model provider](https://docs.0.security/api-keys/) before running A
|
|
|
47
47
|
|
|
48
48
|
Browser, CLI, and MCP share one workflow runner with retained results.
|
|
49
49
|
|
|
50
|
+
Findings are prioritized by business impact: affected customers and data, fraud,
|
|
51
|
+
critical services, and disruption. Each priority includes a rationale; missing
|
|
52
|
+
context stays **Not assessed**. CVSS remains available as technical severity.
|
|
53
|
+
|
|
50
54
|
| Work | Built-in templates |
|
|
51
55
|
| --- | --- |
|
|
52
56
|
| Assess | Repositories, dependencies, APIs, web configuration, scoped penetration tests, package behavior, smart contracts, native code |
|
|
@@ -57,6 +61,11 @@ Browser, CLI, and MCP share one workflow runner with retained results.
|
|
|
57
61
|
Start from 12 templates, customize steps, and run manually or with browser triggers and schedules.
|
|
58
62
|
**Template:** starting point · **Workflow:** reusable steps · **Run:** one execution.
|
|
59
63
|
|
|
64
|
+
**Learning** retains local run activity, source-grounded notes and evaluated
|
|
65
|
+
improvement history. Saved workflows keep immutable revisions and support restore.
|
|
66
|
+
Use `0 learning status` or open Learning in the browser.
|
|
67
|
+
[Learning documentation](https://docs.0.security/learning/).
|
|
68
|
+
|
|
60
69
|
```bash
|
|
61
70
|
0 workflow list --templates
|
|
62
71
|
0 workflow run --template security-research \
|
|
@@ -67,14 +76,15 @@ Start from 12 templates, customize steps, and run manually or with browser trigg
|
|
|
67
76
|
|
|
68
77
|
[Workflow guide: inputs, limits, and results](https://docs.0.security/workflow/).
|
|
69
78
|
|
|
70
|
-
|
|
71
|
-
<summary>Preview the web app</summary>
|
|
79
|
+
## See Zero at work
|
|
72
80
|
|
|
73
|
-
|
|
81
|
+
A source review of the included [demo API](assets/examples/demo-api/), with code locations and suggested fixes.
|
|
74
82
|
|
|
75
|
-

|
|
76
84
|
|
|
77
|
-
|
|
85
|
+
Start a workflow from a template and edit its steps.
|
|
86
|
+
|
|
87
|
+

|
|
78
88
|
|
|
79
89
|
## Use 0 from another agent
|
|
80
90
|
|
|
@@ -89,6 +99,20 @@ For a registered remote engine, use `0 mcp-server --workflows --backend producti
|
|
|
89
99
|
0's model provider is separate from the connecting agent's session.
|
|
90
100
|
|
|
91
101
|
Browser chat's **Connect an external agent** copies a setup prompt.
|
|
102
|
+
CLI and MCP workflow clients automatically attach to a running local web engine
|
|
103
|
+
for the same workspace and control database. To attach explicitly to the sessions
|
|
104
|
+
and runs already open in an engine:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
0 mcp-server --workflows --engine-url http://127.0.0.1:3000 \
|
|
108
|
+
--engine-token-env ENGINE_TOKEN --session SESSION_ID
|
|
109
|
+
0 sessions list --engine-url http://127.0.0.1:3000 --engine-token-env ENGINE_TOKEN
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Set `ENGINE_TOKEN` to the engine's configured bearer credential. Attached clients
|
|
113
|
+
share the browser's session and run lifecycle; disconnecting leaves the engine
|
|
114
|
+
running. Omit `--session` to create a session under the engine's admission grants.
|
|
115
|
+
|
|
92
116
|
See [MCP setup and individual tools](https://docs.0.security/integrations/) or
|
|
93
117
|
[local and remote engines](https://docs.0.security/engine-connections/).
|
|
94
118
|
|
|
@@ -105,15 +129,17 @@ More guides: [installation](https://docs.0.security/getting-started/) ·
|
|
|
105
129
|
## Development
|
|
106
130
|
|
|
107
131
|
Install dependencies, run `npm run dev`, and open the printed browser address.
|
|
108
|
-
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
132
|
+
See [CONTRIBUTING.md](https://github.com/0sec-labs/0/blob/main/.github/CONTRIBUTING.md).
|
|
109
133
|
|
|
110
134
|
## Status and safety
|
|
111
135
|
|
|
112
136
|
**Research preview.** Assess authorized systems and review findings and fixes.
|
|
113
|
-
|
|
137
|
+
Run `0` or `0 web` to open the browser console without an account.
|
|
138
|
+
The interactive terminal UI is retired; headless CLI, automation, MCP and binary commands remain available.
|
|
139
|
+
Use `0 chat --prompt "your request"` for one-shot automation; set `--mode standard` for explicit scope checks.
|
|
114
140
|
The optional [scope plugin](https://docs.0.security/scope/) enforces target boundaries.
|
|
115
141
|
|
|
116
|
-
Report vulnerabilities through [SECURITY.md](SECURITY.md).
|
|
142
|
+
Report vulnerabilities through [SECURITY.md](https://github.com/0sec-labs/0/blob/main/.github/SECURITY.md).
|
|
117
143
|
Licensed under [MIT](LICENSE-MIT) OR [Apache-2.0](LICENSE).
|
|
118
144
|
|
|
119
145
|
[Public disclosures and upstream fixes](https://0.security/research/#disclosures).
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
adaptAndVerify,
|
|
6
6
|
applyUnifiedDiff,
|
|
7
7
|
renderAdaptationPrompt
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-5NFIY2SJ.js";
|
|
9
|
+
import "./chunk-3LPBJMHB.js";
|
|
10
|
+
import "./chunk-XA2IBHPB.js";
|
|
11
|
+
import "./chunk-GXXX7AGH.js";
|
|
12
12
|
import "./chunk-VIT5ALXF.js";
|
|
13
13
|
import "./chunk-VCSFCHAJ.js";
|
|
14
14
|
export {
|
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
parseUbuntuTracker,
|
|
15
15
|
scoreCodeCandidate,
|
|
16
16
|
scoreRepoCandidate
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-SU4IHQQI.js";
|
|
18
|
+
import "./chunk-GXXX7AGH.js";
|
|
19
19
|
import "./chunk-VIT5ALXF.js";
|
|
20
20
|
import "./chunk-VCSFCHAJ.js";
|
|
21
21
|
export {
|
|
@@ -24,33 +24,33 @@ import {
|
|
|
24
24
|
scoreDualViewWeaponizability,
|
|
25
25
|
storeAssumptionModel,
|
|
26
26
|
subjectSelfEnforces
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-TVS6WVSK.js";
|
|
28
28
|
import {
|
|
29
29
|
composeGate,
|
|
30
30
|
makeSkepticVerifier
|
|
31
|
-
} from "./chunk-
|
|
32
|
-
import "./chunk-
|
|
31
|
+
} from "./chunk-YSQWZ67M.js";
|
|
32
|
+
import "./chunk-5WAHHZBF.js";
|
|
33
|
+
import "./chunk-3LPBJMHB.js";
|
|
33
34
|
import "./chunk-K2PWUPUI.js";
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-X2ZMSRTP.js";
|
|
36
|
+
import "./chunk-YERUDEXT.js";
|
|
36
37
|
import "./chunk-UEX7PFSE.js";
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-4ROZFLSR.js";
|
|
39
|
+
import "./chunk-BD7WULFS.js";
|
|
40
|
+
import "./chunk-XA2IBHPB.js";
|
|
41
|
+
import "./chunk-YKWARO3T.js";
|
|
42
|
+
import "./chunk-K74DRDC5.js";
|
|
41
43
|
import "./chunk-O6KPVYOI.js";
|
|
42
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-BMDG6T7D.js";
|
|
43
45
|
import "./chunk-IXT64DV5.js";
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-NI6QYQSK.js";
|
|
46
|
+
import "./chunk-IJ6UPW3H.js";
|
|
47
|
+
import "./chunk-PVJUPIQG.js";
|
|
48
|
+
import "./chunk-5PFRE522.js";
|
|
48
49
|
import "./chunk-RS4MAN3Q.js";
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-
|
|
51
|
-
import "./chunk-ITES7BCY.js";
|
|
50
|
+
import "./chunk-CGBDEST2.js";
|
|
51
|
+
import "./chunk-QNRYOJEB.js";
|
|
52
52
|
import "./chunk-5IBCBQEH.js";
|
|
53
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-GXXX7AGH.js";
|
|
54
54
|
import "./chunk-VIT5ALXF.js";
|
|
55
55
|
import "./chunk-VCSFCHAJ.js";
|
|
56
56
|
export {
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
createBackendHandshake,
|
|
9
9
|
handleBackendConnectionRequest,
|
|
10
10
|
loadBackendConnectionConfig
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-Q7JKIKKF.js";
|
|
12
|
+
import "./chunk-BMDG6T7D.js";
|
|
13
|
+
import "./chunk-GXXX7AGH.js";
|
|
14
14
|
import "./chunk-VIT5ALXF.js";
|
|
15
15
|
import "./chunk-VCSFCHAJ.js";
|
|
16
16
|
export {
|
|
@@ -7,23 +7,31 @@ import {
|
|
|
7
7
|
loadGlobalSettings,
|
|
8
8
|
loadWorkbenchConfig,
|
|
9
9
|
resolveWorkbenchGuestSettings,
|
|
10
|
+
validateWorkbenchSourceLesson,
|
|
10
11
|
workbenchConfigPath,
|
|
11
12
|
workbenchNetworkEnabled
|
|
12
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-X2IPO5JO.js";
|
|
13
14
|
import {
|
|
14
15
|
createWorkbenchProviderBroker
|
|
15
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-ZM6ANQZJ.js";
|
|
16
17
|
import {
|
|
18
|
+
HuntMemoryStore,
|
|
19
|
+
LearningService
|
|
20
|
+
} from "./chunk-5WAHHZBF.js";
|
|
21
|
+
import {
|
|
22
|
+
LearningStore,
|
|
23
|
+
learningArtifactDigest,
|
|
24
|
+
learningProjectId,
|
|
17
25
|
osecDB
|
|
18
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-BMDG6T7D.js";
|
|
19
27
|
import {
|
|
20
28
|
isAdmittedSmolvmWorkbench
|
|
21
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-PVJUPIQG.js";
|
|
22
30
|
import {
|
|
23
31
|
SERVICE_PLUGIN_CATALOG,
|
|
24
32
|
findingSchema,
|
|
25
33
|
homeStateDir
|
|
26
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-GXXX7AGH.js";
|
|
27
35
|
|
|
28
36
|
// packages/cli/src/web/service-plugins.ts
|
|
29
37
|
import { constants, closeSync, fstatSync, lstatSync, mkdirSync, openSync, readFileSync, renameSync, rmSync, writeFileSync, chmodSync } from "node:fs";
|
|
@@ -32,6 +40,7 @@ import { randomUUID as randomUUID2 } from "node:crypto";
|
|
|
32
40
|
|
|
33
41
|
// packages/cli/src/console-execution.ts
|
|
34
42
|
import { existsSync, realpathSync } from "node:fs";
|
|
43
|
+
import { relative, resolve, sep } from "node:path";
|
|
35
44
|
import { randomUUID } from "node:crypto";
|
|
36
45
|
function consoleExecutionProfile(homeDir) {
|
|
37
46
|
if (process.platform === "linux" && isAdmittedSmolvmWorkbench()) return "local";
|
|
@@ -53,19 +62,80 @@ function createIsolatedConsoleSession(config, options = {}) {
|
|
|
53
62
|
const models = [.../* @__PURE__ */ new Set([model, ...Object.values(routing?.agentModels ?? {}).filter((value) => value !== "auto")])];
|
|
54
63
|
if (!runtime.workbenchCredentialResolver) throw new Error("The selected runtime cannot bind its account to the host provider broker.");
|
|
55
64
|
const broker = createWorkbenchProviderBroker({ provider, models, resolveCredentials: runtime.workbenchCredentialResolver() });
|
|
56
|
-
const { runtime: _runtime, ...guestConfig } = config;
|
|
65
|
+
const { runtime: _runtime, learningStore: hostLearningStore, huntMemoryStore: hostMemoryStore, sourceLessonHints: _hostHints, ...guestConfig } = config;
|
|
66
|
+
const learningEnabled = config.codebaseLearning === true && config.role !== "verify";
|
|
67
|
+
if (/^(1|true)$/i.test(process.env.ZERO_DISABLE_HUNT_MEMORY ?? "")) guestConfig.codebaseLearning = false;
|
|
68
|
+
let memory = hostMemoryStore;
|
|
69
|
+
const hostMemory = () => memory ??= new HuntMemoryStore({ home: options.homeDir });
|
|
70
|
+
const withLearning = (use) => {
|
|
71
|
+
const store = hostLearningStore ?? new LearningStore(options.dbPath);
|
|
72
|
+
try {
|
|
73
|
+
return use(new LearningService(store));
|
|
74
|
+
} finally {
|
|
75
|
+
if (!hostLearningStore) store.close();
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const approvedWorkspace = realpathSync(workbench.workspaceRoot ?? options.workspaceRoot ?? config.workspaceRoot ?? process.cwd());
|
|
57
79
|
const scanId = config.scanId ?? `console-${randomUUID()}`;
|
|
58
80
|
try {
|
|
59
81
|
return createWorkbenchConsoleSession({
|
|
60
|
-
config: { ...guestConfig, scanId, workspaceRoot:
|
|
82
|
+
config: { ...guestConfig, scanId, workspaceRoot: approvedWorkspace },
|
|
61
83
|
workbench,
|
|
62
84
|
selection: { provider, model, contextWindowTokens: config.contextWindowTokens, ...routing },
|
|
63
85
|
provider: { ...broker.grant, request: broker.request, close: broker.close },
|
|
64
86
|
pluginHomeDir: options.homeDir,
|
|
65
|
-
assets: currentWorkbenchAssets(),
|
|
87
|
+
assets: options.assets ?? currentWorkbenchAssets(),
|
|
66
88
|
guestSettings: resolveWorkbenchGuestSettings(loadGlobalSettings(options.homeDir)),
|
|
67
89
|
network: workbenchNetworkEnabled(),
|
|
68
90
|
onExecution: options.onExecution,
|
|
91
|
+
onSourceLesson: (artifact, context) => {
|
|
92
|
+
if (!learningEnabled || /^(1|true)$/i.test(process.env.ZERO_DISABLE_HUNT_MEMORY ?? "")) return;
|
|
93
|
+
if (realpathSync(context.workspaceRoot) !== approvedWorkspace) throw new Error("Source lesson workspace differs from host grant");
|
|
94
|
+
const lesson = validateWorkbenchSourceLesson(artifact, approvedWorkspace, context.scopePath);
|
|
95
|
+
const memory2 = hostMemory();
|
|
96
|
+
const paths = lesson.sourceLinks.map((link) => relative(context.scopePath, resolve(context.workspaceRoot, link.path)).split(sep).join("/"));
|
|
97
|
+
const prior = memory2.all().find((note) => note.codebase?.root === realpathSync(context.scopePath) && note.title === lesson.title && note.summary === lesson.summary && JSON.stringify(note.codebase?.files.map((file) => ({ path: file.path, hash: file.digest }))) === JSON.stringify(lesson.sourceLinks.map((link, index) => ({ path: paths[index], hash: link.hash }))));
|
|
98
|
+
if (!prior) memory2.rememberCodebase({ root: context.scopePath, paths, title: lesson.title, summary: lesson.summary, source: `smolvm:${context.scanId}` });
|
|
99
|
+
withLearning((service) => service.importCodebaseNotes(learningProjectId(context.scopePath), context.scopePath, memory2, 8));
|
|
100
|
+
},
|
|
101
|
+
readSourceLessons: (context) => {
|
|
102
|
+
if (!learningEnabled || /^(1|true)$/i.test(process.env.ZERO_DISABLE_HUNT_MEMORY ?? "")) return [];
|
|
103
|
+
if (realpathSync(context.workspaceRoot) !== approvedWorkspace) return [];
|
|
104
|
+
const memory2 = hostMemory();
|
|
105
|
+
return withLearning((service) => {
|
|
106
|
+
const entries = service.importCodebaseNotes(learningProjectId(context.scopePath), context.scopePath, memory2, 8);
|
|
107
|
+
return memory2.recallCodebase(context.scopePath, 6).flatMap((note) => {
|
|
108
|
+
const sourceLinks = note.codebase.files.map((file) => ({ path: file.path, hash: file.digest }));
|
|
109
|
+
if (!entries.some((entry) => entry.status === "current" && entry.summary === note.summary && JSON.stringify(entry.sourceLinks) === JSON.stringify(sourceLinks))) return [];
|
|
110
|
+
const lesson = { title: note.title, summary: note.summary, sourceLinks: sourceLinks.map((link) => ({ ...link, path: relative(context.workspaceRoot, resolve(context.scopePath, link.path)).split(sep).join("/") })) };
|
|
111
|
+
try {
|
|
112
|
+
return [validateWorkbenchSourceLesson(lesson, context.workspaceRoot, context.scopePath)];
|
|
113
|
+
} catch {
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
onSourceContext: (artifact, context) => {
|
|
120
|
+
if (!learningEnabled || /^(1|true)$/i.test(process.env.ZERO_DISABLE_HUNT_MEMORY ?? "")) return;
|
|
121
|
+
const store = new LearningStore(options.dbPath);
|
|
122
|
+
try {
|
|
123
|
+
const digest = learningArtifactDigest(JSON.stringify(artifact.sourceLinks));
|
|
124
|
+
store.recordExperience({
|
|
125
|
+
idempotencyKey: `vm-source:${learningArtifactDigest(context.runId + digest)}`,
|
|
126
|
+
projectId: learningProjectId(context.workspaceRoot),
|
|
127
|
+
kind: "source-context",
|
|
128
|
+
outcome: "current",
|
|
129
|
+
evidenceStrength: "hypothesis",
|
|
130
|
+
summary: "Source references retained from an isolated workspace.",
|
|
131
|
+
runId: context.runId,
|
|
132
|
+
sourceLinks: artifact.sourceLinks,
|
|
133
|
+
evidenceDigests: [digest]
|
|
134
|
+
});
|
|
135
|
+
} finally {
|
|
136
|
+
store.close();
|
|
137
|
+
}
|
|
138
|
+
},
|
|
69
139
|
onFindings: (findings, completion) => {
|
|
70
140
|
const validated = findings.map((finding) => findingSchema.parse(finding));
|
|
71
141
|
const db = new osecDB(options.dbPath);
|
|
@@ -217,7 +287,7 @@ var ServicePluginServices = class {
|
|
|
217
287
|
}
|
|
218
288
|
async #probe(connection) {
|
|
219
289
|
try {
|
|
220
|
-
const probe = this.#options.probe ?? (await import("./dist-
|
|
290
|
+
const probe = this.#options.probe ?? (await import("./dist-TQMHMSBZ.js")).testServicePluginConnection;
|
|
221
291
|
const result = await probe(connection);
|
|
222
292
|
if (!Array.isArray(result.tools) || result.tools.length > 512 || result.tools.some((tool) => typeof tool.name !== "string" || tool.name.length > 256 || typeof tool.description !== "string" || tool.description.length > 16384)) throw new Error("Invalid tool catalog.");
|
|
223
293
|
const configurations = [...readStore(this.#options.homeDir), connection];
|