0sec-cli 0.25.0 → 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 +41 -40
- package/chunks/{adapt-loop-L2PXCD4J.js → adapt-loop-P4HKONB5.js} +4 -4
- package/chunks/{artifact-scraper-W3LGLXBM.js → artifact-scraper-IIRJNYKT.js} +2 -2
- package/chunks/{assumption-mining-7IJ6ZWZE.js → assumption-mining-YA6VJ2V6.js} +17 -17
- package/chunks/{backend-connections-MYH4QRQG.js → backend-connections-64PKYKL7.js} +3 -3
- package/chunks/{chunk-EEP6GBUO.js → chunk-3MWQNNJU.js} +151 -58
- package/chunks/{chunk-ZZV56ACK.js → chunk-3VQ5EZKG.js} +9 -9
- package/chunks/{chunk-I4VIAQHM.js → chunk-6GV5G6U3.js} +1 -1
- package/chunks/{chunk-OFPF26WL.js → chunk-6SNOKNCS.js} +2 -2
- package/chunks/{chunk-YXTV2FRE.js → chunk-72PU46MS.js} +66 -112
- package/chunks/{chunk-NO543ZBU.js → chunk-A7G6S5RA.js} +1 -1
- package/chunks/{chunk-ITEMDJAB.js → chunk-AFJ2UMPR.js} +2 -2
- package/chunks/{chunk-FOLTHXRH.js → chunk-B7XL6RON.js} +1 -1
- package/chunks/{chunk-76CLUI54.js → chunk-BM6EYP2D.js} +3 -3
- package/chunks/{chunk-NBLKIQCW.js → chunk-D4M5WURF.js} +2 -2
- package/chunks/{chunk-DHNYJ2ML.js → chunk-EHNVP6QB.js} +1 -1
- package/chunks/{chunk-C6ZMPXN2.js → chunk-FBZBJYZS.js} +3 -3
- package/chunks/{chunk-S3B6HFSM.js → chunk-GYEYTNHK.js} +1 -1
- package/chunks/{chunk-EIONVEFN.js → chunk-HS2NQ7K6.js} +192 -36
- package/chunks/{chunk-HJKJ4NQP.js → chunk-HUZ2EC2R.js} +1 -1
- package/chunks/{chunk-5H2PXZ7Q.js → chunk-IUUNIJPM.js} +1 -1
- package/chunks/{chunk-3DF55BWV.js → chunk-JGDA6EIJ.js} +2 -2
- package/chunks/{chunk-GOUGG7IQ.js → chunk-K3PTYN43.js} +2 -2
- package/chunks/{chunk-7TIWL6E5.js → chunk-KCABBZHN.js} +7 -7
- package/chunks/{chunk-ACYZMJHC.js → chunk-LRD5N2TQ.js} +1 -1
- package/chunks/{chunk-ITHDAIRY.js → chunk-MNK373HF.js} +1 -1
- package/chunks/{chunk-JCRQV4FE.js → chunk-MOEVVXML.js} +2 -2
- package/chunks/{chunk-3HMO42M2.js → chunk-MOGWEHSC.js} +68 -771
- package/chunks/{chunk-TFKY6D7O.js → chunk-N7YCONYR.js} +1 -1
- package/chunks/{chunk-FI2H6HV2.js → chunk-NA3FKCI2.js} +1 -1
- package/chunks/{chunk-PMAKX6KP.js → chunk-NABVDAAO.js} +2 -2
- package/chunks/{chunk-YYFODVZG.js → chunk-NNMOTHKC.js} +4 -4
- package/chunks/{chunk-RBTJYREN.js → chunk-OILVEROI.js} +17 -4
- package/chunks/{chunk-GXSECFUE.js → chunk-PAMJEXE2.js} +1 -1
- package/chunks/{chunk-2J3STRJT.js → chunk-R7VWEY45.js} +1 -1
- package/chunks/{chunk-27SXCYWH.js → chunk-RZZ6VPRY.js} +1 -1
- package/chunks/{chunk-HFUOUT2B.js → chunk-SIR7XW2S.js} +1392 -826
- package/chunks/{chunk-HDJSHLRM.js → chunk-SSPP64FF.js} +2 -2
- package/chunks/{chunk-WK6VUCKK.js → chunk-STPHTPSD.js} +1 -1
- package/chunks/{chunk-SEWZ76MN.js → chunk-UGCTPKJG.js} +14 -6
- package/chunks/{chunk-MY44EZKD.js → chunk-ULRLUXSS.js} +1 -1
- package/chunks/{chunk-BWUW6ZQR.js → chunk-UQS7XCBV.js} +75 -60
- package/chunks/{chunk-6TA3CWND.js → chunk-V2KJQVYE.js} +42 -21
- package/chunks/{chunk-RFK5F45W.js → chunk-VJBEB2K6.js} +1 -1
- package/chunks/{chunk-D4IBEO2K.js → chunk-VWE36MUN.js} +1 -1
- package/chunks/{chunk-B5TIXHCO.js → chunk-WNWDQ2TO.js} +1 -1
- package/chunks/{chunk-S2WCYEK2.js → chunk-WPJMA5AK.js} +2 -2
- package/chunks/{chunk-FI5YL4R2.js → chunk-XJ2TBEV7.js} +3 -3
- package/chunks/{chunk-3T5R7P4T.js → chunk-XOVYV7TT.js} +4 -4
- package/chunks/{chunk-DJGJECBV.js → chunk-YGYJ2FTH.js} +4 -3
- package/chunks/{chunk-ZWAWZU6C.js → chunk-YJGPPPUB.js} +37 -9
- package/chunks/chunk-YP2DHYNI.js +650 -0
- package/chunks/{chunk-DMDWIW3E.js → chunk-Z2VLJEQJ.js} +4 -4
- package/chunks/{chunk-EQBC2ZWL.js → chunk-ZPVSDB63.js} +1604 -246
- package/chunks/{codex-models-KCUIVS3R.js → codex-models-CI22KIHY.js} +7 -7
- package/chunks/{commands-MPPAADGY.js → commands-C2WRSCNB.js} +210 -101
- package/chunks/dashboard-XO2X2SPD.js +75 -0
- package/chunks/{db-R2AQSESC.js → db-FU3OIGQK.js} +3 -3
- package/chunks/{deep-review-Q6BJKEV4.js → deep-review-5AL6QYTK.js} +30 -30
- package/chunks/{disclose-GGULOW27.js → disclose-YPV5KIUU.js} +3 -3
- package/chunks/{dist-6RNAVFAY.js → dist-ONIRKDH6.js} +29 -29
- package/chunks/{dist-OLGNKDB2.js → dist-QLMPTFT7.js} +2 -2
- package/chunks/{dist-DWN7U5OV.js → dist-QXJKD743.js} +1 -1
- package/chunks/{eval-runner-WCTTIYN4.js → eval-runner-D3RUCU3R.js} +17 -17
- package/chunks/{exploit-agent-M3KUMZJH.js → exploit-agent-4E4HXKUA.js} +1 -1
- package/chunks/{exploit-autoclimb-QTTWC5WM.js → exploit-autoclimb-5GRXI6VQ.js} +1 -1
- package/chunks/{exploit-climb-E4KDELTN.js → exploit-climb-AHQEJ2I2.js} +2 -2
- package/chunks/{fix-U5FFJD4F.js → fix-CHD7LXDS.js} +7 -7
- package/chunks/{harness-FMKIMEH5.js → harness-E63KDHPG.js} +3 -3
- package/chunks/{hunt-scan-RYPWRUQD.js → hunt-scan-ME2Z4CTC.js} +16 -16
- package/chunks/{kernel-primitive-CVG2E7MJ.js → kernel-primitive-S566GXWP.js} +2 -2
- package/chunks/{kernel-vm-runner-62KISULQ.js → kernel-vm-runner-KREBY4DC.js} +2 -2
- package/chunks/{local-engine-WP3I7K7G.js → local-engine-ZRTZVSSX.js} +5 -5
- package/chunks/managed-operation-ZMLLRCCQ.js +59 -0
- package/chunks/{native-loop-HC77R5NQ.js → native-loop-UV3Z4Z2F.js} +16 -16
- package/chunks/{operator-services-E2NONBQS.js → operator-services-JOCREEBA.js} +35 -35
- package/chunks/{orchestrate-Z3DW265M.js → orchestrate-ZF6ZTSIQ.js} +30 -30
- package/chunks/{prepare-7DTS6RJT.js → prepare-PLDVGLDX.js} +5 -5
- package/chunks/{provider-model-discovery-QGUGL3XW.js → provider-model-discovery-3X6DON3Y.js} +7 -2
- package/chunks/{remote-workflow-runtime-6CEVRZXS.js → remote-workflow-runtime-GOI4TYP5.js} +2 -2
- package/chunks/routing-WCQLO5SP.js +61 -0
- package/chunks/{runtime-W6JNDQRO.js → runtime-6ZIXFTW5.js} +2 -2
- package/chunks/{runtime-PZJ77QES.js → runtime-TVH5ORUK.js} +11 -7
- package/chunks/{scan-stream-6VOJTHTR.js → scan-stream-HJVTWZ44.js} +4 -4
- package/chunks/{scope-FHXW6EX6.js → scope-RCYXVGJR.js} +2 -2
- package/chunks/service-plugins-TN6KDX4L.js +63 -0
- package/chunks/{session-store-DBBI544Y.js → session-store-6QR3CVUA.js} +2 -2
- package/chunks/{variant-candidates-DPR6DJ3N.js → variant-candidates-SGLKPPHI.js} +7 -7
- package/chunks/{web-recon-prepass-HWDHDQMN.js → web-recon-prepass-GO7CTMVQ.js} +5 -5
- package/chunks/{workflow-runtime-PLB32XC3.js → workflow-runtime-CQTDASFA.js} +43 -43
- package/dashboard/assets/{abnfDiagram-VCTEODGH-6e39CQKz.js → abnfDiagram-VCTEODGH-DDZsU70-.js} +1 -1
- package/dashboard/assets/{arc-ClYun86B.js → arc-iDXNTSL6.js} +1 -1
- package/dashboard/assets/{architecture-7GRP2DOG-rM-lWo7E.js → architecture-7GRP2DOG-DJcY9RFg.js} +1 -1
- package/dashboard/assets/{architectureDiagram-5GKGNRK7-C9gEGZIU.js → architectureDiagram-5GKGNRK7-d0ZuOniQ.js} +1 -1
- package/dashboard/assets/{blockDiagram-I7D4REHJ-Dgh2n5Lf.js → blockDiagram-I7D4REHJ-B-EWfMy1.js} +1 -1
- package/dashboard/assets/{c4Diagram-7LVT6UL2-CsorW08z.js → c4Diagram-7LVT6UL2-KcZRuXZC.js} +1 -1
- package/dashboard/assets/channel-CeWMIm0w.js +1 -0
- package/dashboard/assets/{chunk-4HAMMTFA-4_b_LGGQ.js → chunk-4HAMMTFA-DXWulBlo.js} +1 -1
- package/dashboard/assets/{chunk-75Z2AOVW-qzNlKGCp.js → chunk-75Z2AOVW-RiLZItrz.js} +1 -1
- package/dashboard/assets/{chunk-DU6HZSFF-SAPICW28.js → chunk-DU6HZSFF-MBcaIyTX.js} +1 -1
- package/dashboard/assets/{chunk-F27PBJKO-DlLotIQx.js → chunk-F27PBJKO-kLWCBX_W.js} +1 -1
- package/dashboard/assets/{chunk-GMAD6QVW-DNnr65Nb.js → chunk-GMAD6QVW-BeQeSjpW.js} +1 -1
- package/dashboard/assets/{chunk-GVQU2GXP-DTwv0VfU.js → chunk-GVQU2GXP-CjCMlOIB.js} +1 -1
- package/dashboard/assets/{chunk-IMKFNOWR-B1fk1q_W.js → chunk-IMKFNOWR-BwNst53D.js} +1 -1
- package/dashboard/assets/{chunk-L3NEJ4N5-ByVjFIox.js → chunk-L3NEJ4N5-CHXWQrkL.js} +1 -1
- package/dashboard/assets/{chunk-OSK3NFVY-DUDCzjbh.js → chunk-OSK3NFVY-B2vd19Ed.js} +1 -1
- package/dashboard/assets/{chunk-P2QGCYS3-D_D5qEso.js → chunk-P2QGCYS3-Dk7Fyh6n.js} +1 -1
- package/dashboard/assets/{chunk-POPQ4Y6H-CetM-tVm.js → chunk-POPQ4Y6H-CPAgOvYe.js} +1 -1
- package/dashboard/assets/{chunk-PWAF6VOD-BcJX4exl.js → chunk-PWAF6VOD-BotyfMha.js} +1 -1
- package/dashboard/assets/{chunk-SHT3W25Y-BWQql238.js → chunk-SHT3W25Y-Buz5gLRP.js} +1 -1
- package/dashboard/assets/{chunk-SVP7TREG-BSLOD1JE.js → chunk-SVP7TREG-_rpYEZcs.js} +1 -1
- package/dashboard/assets/{chunk-TICWLB2K-DReOl-g_.js → chunk-TICWLB2K-DOJxPoec.js} +1 -1
- package/dashboard/assets/{chunk-XXDRQBXY-DSdSMeei.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-CRRsylCH.js → common-VLJRx-Jq.js} +1 -1
- package/dashboard/assets/{cose-bilkent-JH36ORCC-fg-DIBqt.js → cose-bilkent-JH36ORCC-B1SVC57o.js} +1 -1
- package/dashboard/assets/{cynefin-OW5HDTMX-XmrbEIFh.js → cynefin-OW5HDTMX-BzhRorj4.js} +1 -1
- package/dashboard/assets/{cynefinDiagram-5FMLGOSQ-CoQ7QEPl.js → cynefinDiagram-5FMLGOSQ-JXzRmldX.js} +1 -1
- package/dashboard/assets/{dagre-GXQ25YYZ-qtQtsg6c.js → dagre-GXQ25YYZ-1LZ-X0-Z.js} +1 -1
- package/dashboard/assets/{diagram-S7CK7UJ4-B_ts4_58.js → diagram-S7CK7UJ4-C_-J_LQ4.js} +1 -1
- package/dashboard/assets/{diagram-UQ7AKVKN-DwHbbxFy.js → diagram-UQ7AKVKN-CnxL1k8g.js} +1 -1
- package/dashboard/assets/{diagram-VSXAHHWV-2Tg_RG89.js → diagram-VSXAHHWV-WzSb3aby.js} +1 -1
- package/dashboard/assets/{diagram-VX7I27RA-BFYp-YjF.js → diagram-VX7I27RA-DKhrMInE.js} +1 -1
- package/dashboard/assets/{diagram-Z3DM3KII-DrPiS4V0.js → diagram-Z3DM3KII-CDhI2WGP.js} +1 -1
- package/dashboard/assets/{dist-cbVssBvx.js → dist-B0bfBMeP.js} +1 -1
- package/dashboard/assets/{ebnfDiagram-PWID7BFC-DCMOZtU2.js → ebnfDiagram-PWID7BFC-iL5NQ1PE.js} +1 -1
- package/dashboard/assets/{erDiagram-RLTQ6QDP-CW4rUJGU.js → erDiagram-RLTQ6QDP-RK2Voa5O.js} +1 -1
- package/dashboard/assets/{eventmodeling-NTZA5JFV-C2q-Aaav.js → eventmodeling-NTZA5JFV-WgE7OJBb.js} +1 -1
- package/dashboard/assets/flowDiagram-HODETNUW-B9YcQ0Aq.js +1 -0
- package/dashboard/assets/{ganttDiagram-EL5Y4UJY-C1AqcwIF.js → ganttDiagram-EL5Y4UJY-D8CJXHRF.js} +1 -1
- package/dashboard/assets/{gitGraph-4MIJSDKK-DYR76gtd.js → gitGraph-4MIJSDKK-BuZ9Lg04.js} +1 -1
- package/dashboard/assets/{gitGraphDiagram-WWUBYQGX-B7hL98CE.js → gitGraphDiagram-WWUBYQGX-LEJMh54j.js} +1 -1
- package/dashboard/assets/{info-A6RAGUB7-TXB43LiH.js → info-A6RAGUB7-BL5k3pev.js} +1 -1
- package/dashboard/assets/{infoDiagram-27XIBGKW-Dk5dXmh_.js → infoDiagram-27XIBGKW-LJvntUnZ.js} +1 -1
- package/dashboard/assets/{ishikawaDiagram-5VMMS53U-BQDuNMka.js → ishikawaDiagram-5VMMS53U-BYTYgKCG.js} +1 -1
- package/dashboard/assets/{journeyDiagram-3NMN7TZE-DkustddD.js → journeyDiagram-3NMN7TZE-G25qgQgO.js} +1 -1
- package/dashboard/assets/{kanban-definition-UXKFOSKX-BW7Ann84.js → kanban-definition-UXKFOSKX-Bk3uLl1i.js} +1 -1
- package/dashboard/assets/{line-DVxcLeru.js → line-i4qHBaWO.js} +1 -1
- package/dashboard/assets/{linear-DOM_l9bO.js → linear-DmrqRsKG.js} +1 -1
- package/dashboard/assets/{mermaid-parser.core-CKg9fDvJ.js → mermaid-parser.core-BxbKr4QF.js} +3 -3
- package/dashboard/assets/{mermaid.core-DruW_5-Y.js → mermaid.core-Cltee6FS.js} +4 -4
- package/dashboard/assets/{mindmap-definition-YA3MSWOX-Di5W5VB3.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-BABwqtNu.js → packet-AYTQ26CC-uZQUKnrE.js} +1 -1
- package/dashboard/assets/{pegDiagram-XKGWAZYB-Cx4ABT6q.js → pegDiagram-XKGWAZYB-CrOEi00T.js} +1 -1
- package/dashboard/assets/{pie-WAS4IAKB-CNdXyrze.js → pie-WAS4IAKB-Dn9_tpQT.js} +1 -1
- package/dashboard/assets/{pieDiagram-E7YTZNPT-BilfQbIs.js → pieDiagram-E7YTZNPT-D-niUkzc.js} +1 -1
- package/dashboard/assets/{quadrantDiagram-AXDQQJYC-BVmMQHE5.js → quadrantDiagram-AXDQQJYC-CJOTiG5V.js} +1 -1
- package/dashboard/assets/{radar-RG4KPBEZ-fKNmDeoK.js → radar-RG4KPBEZ-DIIVz4e8.js} +1 -1
- package/dashboard/assets/{railroad-74A4TZTK-DhcvDCOh.js → railroad-74A4TZTK-1kiqDEID.js} +1 -1
- package/dashboard/assets/{railroad-abnf-HS5TGJTU-BTRVAmf0.js → railroad-abnf-HS5TGJTU-DK6rQPZR.js} +1 -1
- package/dashboard/assets/{railroad-ebnf-LZEXJU2U-CwS8fgC_.js → railroad-ebnf-LZEXJU2U-C6cOgYW4.js} +1 -1
- package/dashboard/assets/{railroad-peg-WCYAUIDC-CXuhXlNp.js → railroad-peg-WCYAUIDC-CQ3ptKef.js} +1 -1
- package/dashboard/assets/{railroadDiagram-O6MQD6OU-DnBru-jf.js → railroadDiagram-O6MQD6OU-nEfkpa-m.js} +1 -1
- package/dashboard/assets/{requirementDiagram-BXWQKSXE-FwdvUZ7_.js → requirementDiagram-BXWQKSXE-CdFMY8tG.js} +1 -1
- package/dashboard/assets/{sankeyDiagram-P5KCCOFB-BQvDORai.js → sankeyDiagram-P5KCCOFB-C0KxrFYv.js} +1 -1
- package/dashboard/assets/{sequenceDiagram-WJ2MYXX4-FWYQLzcY.js → sequenceDiagram-WJ2MYXX4-DeZ5ATiu.js} +1 -1
- package/dashboard/assets/{src-BwkPhlcp.js → src-Cg-chcoE.js} +1 -1
- package/dashboard/assets/{stateDiagram-D77RDMKH-CjPBd_Sa.js → stateDiagram-D77RDMKH-B9MwWL5B.js} +1 -1
- package/dashboard/assets/stateDiagram-v2-MP3YSRHH-SucFndhx.js +1 -0
- package/dashboard/assets/{swimlanes-42K2YHIH-SQLNsa4J.js → swimlanes-42K2YHIH-DB--fwQE.js} +1 -1
- package/dashboard/assets/swimlanesDiagram-VR7AAH4N-BzH-rIaK.js +8 -0
- package/dashboard/assets/{timeline-definition-24CTP7MA-BxCf20k1.js → timeline-definition-24CTP7MA-DLkkTbWb.js} +1 -1
- package/dashboard/assets/{treeView-Q6P3EWNA-BGLYAyGp.js → treeView-Q6P3EWNA-XkZ9rl9H.js} +1 -1
- package/dashboard/assets/{treemap-WGGIJYW6-BlzAwncU.js → treemap-WGGIJYW6-JCtVKxCE.js} +1 -1
- package/dashboard/assets/{vennDiagram-4TSXK5OY-D76RIZLz.js → vennDiagram-4TSXK5OY-DEb-x29Z.js} +1 -1
- package/dashboard/assets/{wardley-WFR3VGLG-Ba_reiVw.js → wardley-WFR3VGLG-DhI7ROY3.js} +1 -1
- package/dashboard/assets/{wardleyDiagram-VM6X3IG4-Cux4coOD.js → wardleyDiagram-VM6X3IG4-KNckudc5.js} +1 -1
- package/dashboard/assets/{xychartDiagram-S5SC5T6Z-Ch5mvnlH.js → xychartDiagram-S5SC5T6Z-D4c0ynCk.js} +1 -1
- package/dashboard/index.html +13 -2
- package/package.json +1 -1
- package/worker-assets/demo-target/README.md +7 -3
- package/chunks/chunk-AL32F74R.js +0 -1123
- package/chunks/dashboard-MN7GZLLX.js +0 -75
- package/chunks/managed-operation-642WPTLC.js +0 -59
- package/chunks/routing-ITJZBJIU.js +0 -61
- package/chunks/service-plugins-CN6Q2NSN.js +0 -63
- package/dashboard/assets/channel-BBlDqIBl.js +0 -1
- package/dashboard/assets/classDiagram-ZZMXUADV-CRH2kB8G.js +0 -1
- package/dashboard/assets/classDiagram-v2-VYDZK3BY-CRH2kB8G.js +0 -1
- package/dashboard/assets/flowDiagram-HODETNUW-3NOabgG3.js +0 -1
- package/dashboard/assets/operations-B-t_k60U.js +0 -194
- package/dashboard/assets/operations-D2ZKZFOF.css +0 -1
- package/dashboard/assets/stateDiagram-v2-MP3YSRHH-DHmenujm.js +0 -1
- package/dashboard/assets/swimlanesDiagram-VR7AAH4N-D1bH4ETZ.js +0 -8
|
@@ -3,19 +3,19 @@ import { createRequire as __0CreateRequire } from "node:module";
|
|
|
3
3
|
const require = __0CreateRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
registerDeepReviewCommand
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-3VQ5EZKG.js";
|
|
7
7
|
import {
|
|
8
8
|
registerOrchestrateCommand
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NNMOTHKC.js";
|
|
10
10
|
import {
|
|
11
11
|
registerDbCommand
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-WNWDQ2TO.js";
|
|
13
13
|
import {
|
|
14
14
|
discoverSshHosts,
|
|
15
15
|
hashTeamPassword,
|
|
16
16
|
registerDashboardCommand,
|
|
17
17
|
registerWorkbenchCommand
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-MOGWEHSC.js";
|
|
19
19
|
import {
|
|
20
20
|
buildFindingChatPrompt,
|
|
21
21
|
buildFindingConsoleCommand,
|
|
@@ -25,46 +25,50 @@ import {
|
|
|
25
25
|
registerVerifyCommand,
|
|
26
26
|
resolveFindingChatIntent,
|
|
27
27
|
runUnified
|
|
28
|
-
} from "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
28
|
+
} from "./chunk-UQS7XCBV.js";
|
|
29
|
+
import "./chunk-Z2VLJEQJ.js";
|
|
30
|
+
import "./chunk-K3PTYN43.js";
|
|
31
31
|
import {
|
|
32
32
|
TIMELINE_FORMATS,
|
|
33
33
|
formatTimeline,
|
|
34
34
|
isTimelineFormat,
|
|
35
35
|
renderReplay
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-FBZBJYZS.js";
|
|
37
37
|
import {
|
|
38
38
|
registerRoutingCommand
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-JGDA6EIJ.js";
|
|
40
40
|
import {
|
|
41
41
|
executeManagedOperation
|
|
42
|
-
} from "./chunk-
|
|
43
|
-
import "./chunk-
|
|
44
|
-
import "./chunk-
|
|
42
|
+
} from "./chunk-MOEVVXML.js";
|
|
43
|
+
import "./chunk-YJGPPPUB.js";
|
|
44
|
+
import "./chunk-ZPVSDB63.js";
|
|
45
45
|
import {
|
|
46
46
|
getRuntimeAvailability
|
|
47
|
-
} from "./chunk-
|
|
48
|
-
import "./chunk-
|
|
47
|
+
} from "./chunk-MNK373HF.js";
|
|
48
|
+
import "./chunk-KCABBZHN.js";
|
|
49
49
|
import {
|
|
50
|
+
BackendConnectionError,
|
|
51
|
+
BackendConnectionRegistry,
|
|
52
|
+
backendBearerFromEnv,
|
|
50
53
|
deployWorker,
|
|
54
|
+
loadBackendConnectionConfig,
|
|
51
55
|
repairWorker,
|
|
52
56
|
stopWorker,
|
|
53
57
|
validateWorkerOptions
|
|
54
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-UGCTPKJG.js";
|
|
55
59
|
import {
|
|
56
60
|
consolePresentationOutput,
|
|
57
61
|
performAutoUpdate,
|
|
58
62
|
processPresentationOutput,
|
|
59
63
|
writePresentationLine
|
|
60
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-D4M5WURF.js";
|
|
61
65
|
import {
|
|
62
66
|
Command,
|
|
63
67
|
InvalidArgumentError,
|
|
64
68
|
Option
|
|
65
69
|
} from "./chunk-S4DFH2FJ.js";
|
|
66
|
-
import "./chunk-
|
|
67
|
-
import "./chunk-
|
|
70
|
+
import "./chunk-A7G6S5RA.js";
|
|
71
|
+
import "./chunk-OILVEROI.js";
|
|
68
72
|
import {
|
|
69
73
|
source_default
|
|
70
74
|
} from "./chunk-HLFS6WV2.js";
|
|
@@ -80,7 +84,7 @@ import {
|
|
|
80
84
|
saveProjectOverrides,
|
|
81
85
|
saveSettings,
|
|
82
86
|
settingsFilePath
|
|
83
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-V2KJQVYE.js";
|
|
84
88
|
import {
|
|
85
89
|
CraftMemoryStore,
|
|
86
90
|
DEFAULT_MAX_TOOL_ITERATIONS,
|
|
@@ -124,17 +128,17 @@ import {
|
|
|
124
128
|
techniquesForEvent,
|
|
125
129
|
toScopeFile,
|
|
126
130
|
updateProjectReviewChecks
|
|
127
|
-
} from "./chunk-
|
|
131
|
+
} from "./chunk-3MWQNNJU.js";
|
|
128
132
|
import {
|
|
129
133
|
formatSarif
|
|
130
|
-
} from "./chunk-
|
|
134
|
+
} from "./chunk-YP2DHYNI.js";
|
|
131
135
|
import {
|
|
132
136
|
adaptAndVerify
|
|
133
|
-
} from "./chunk-
|
|
137
|
+
} from "./chunk-XJ2TBEV7.js";
|
|
134
138
|
import {
|
|
135
139
|
enumerateJsChunkUrls
|
|
136
|
-
} from "./chunk-
|
|
137
|
-
import "./chunk-
|
|
140
|
+
} from "./chunk-STPHTPSD.js";
|
|
141
|
+
import "./chunk-VWE36MUN.js";
|
|
138
142
|
import {
|
|
139
143
|
createLiveHttpSender
|
|
140
144
|
} from "./chunk-GVD6SJGH.js";
|
|
@@ -146,7 +150,7 @@ import {
|
|
|
146
150
|
import {
|
|
147
151
|
getEvalCategories,
|
|
148
152
|
runEval
|
|
149
|
-
} from "./chunk-
|
|
153
|
+
} from "./chunk-NABVDAAO.js";
|
|
150
154
|
import {
|
|
151
155
|
runNpmDynamicDiscovery
|
|
152
156
|
} from "./chunk-2WNCI664.js";
|
|
@@ -158,12 +162,12 @@ import {
|
|
|
158
162
|
DETECTOR_REGISTRY,
|
|
159
163
|
resolveDetectors
|
|
160
164
|
} from "./chunk-DQTNI3KY.js";
|
|
161
|
-
import "./chunk-
|
|
165
|
+
import "./chunk-NA3FKCI2.js";
|
|
162
166
|
import {
|
|
163
167
|
prepare
|
|
164
|
-
} from "./chunk-
|
|
165
|
-
import "./chunk-
|
|
166
|
-
import "./chunk-
|
|
168
|
+
} from "./chunk-HUZ2EC2R.js";
|
|
169
|
+
import "./chunk-N7YCONYR.js";
|
|
170
|
+
import "./chunk-BM6EYP2D.js";
|
|
167
171
|
import {
|
|
168
172
|
ObjectiveOracle,
|
|
169
173
|
ToolExecutor,
|
|
@@ -238,8 +242,8 @@ import {
|
|
|
238
242
|
withVariantFeatureFlags,
|
|
239
243
|
workflowPolicyRuntime,
|
|
240
244
|
writeAgentActionEvidenceBundle
|
|
241
|
-
} from "./chunk-
|
|
242
|
-
import "./chunk-
|
|
245
|
+
} from "./chunk-SIR7XW2S.js";
|
|
246
|
+
import "./chunk-LRD5N2TQ.js";
|
|
243
247
|
import "./chunk-K2PWUPUI.js";
|
|
244
248
|
import {
|
|
245
249
|
RateLimiter,
|
|
@@ -249,31 +253,31 @@ import {
|
|
|
249
253
|
searchAdvisories,
|
|
250
254
|
searchSimilar,
|
|
251
255
|
searchTargetHistory
|
|
252
|
-
} from "./chunk-
|
|
256
|
+
} from "./chunk-6SNOKNCS.js";
|
|
253
257
|
import "./chunk-PAE7ZAV6.js";
|
|
254
258
|
import "./chunk-UEX7PFSE.js";
|
|
255
|
-
import "./chunk-
|
|
256
|
-
import "./chunk-
|
|
259
|
+
import "./chunk-6GV5G6U3.js";
|
|
260
|
+
import "./chunk-R7VWEY45.js";
|
|
257
261
|
import {
|
|
258
262
|
budgetNativeRuntime
|
|
259
|
-
} from "./chunk-
|
|
263
|
+
} from "./chunk-SSPP64FF.js";
|
|
260
264
|
import "./chunk-AZ7L3HFD.js";
|
|
261
|
-
import "./chunk-
|
|
265
|
+
import "./chunk-B7XL6RON.js";
|
|
262
266
|
import {
|
|
263
267
|
runSourceFix
|
|
264
|
-
} from "./chunk-
|
|
268
|
+
} from "./chunk-AFJ2UMPR.js";
|
|
265
269
|
import {
|
|
266
270
|
appendImprovementLedgerEntry,
|
|
267
271
|
evaluateImprovementPromotion,
|
|
268
272
|
loadEvolutionConfigFile,
|
|
269
273
|
verifyImprovementLedger
|
|
270
|
-
} from "./chunk-
|
|
274
|
+
} from "./chunk-YGYJ2FTH.js";
|
|
271
275
|
import {
|
|
272
276
|
runHttpConformanceCheck
|
|
273
277
|
} from "./chunk-LWMEJYCP.js";
|
|
274
278
|
import {
|
|
275
279
|
createRuntime
|
|
276
|
-
} from "./chunk-
|
|
280
|
+
} from "./chunk-EHNVP6QB.js";
|
|
277
281
|
import "./chunk-O6KPVYOI.js";
|
|
278
282
|
import {
|
|
279
283
|
buildAdGraph,
|
|
@@ -293,7 +297,7 @@ import {
|
|
|
293
297
|
resolveOsecDbPath,
|
|
294
298
|
resolveOsecRunStorage,
|
|
295
299
|
writeOsecRunReport
|
|
296
|
-
} from "./chunk-
|
|
300
|
+
} from "./chunk-72PU46MS.js";
|
|
297
301
|
import {
|
|
298
302
|
DISCLOSURE_STATUSES,
|
|
299
303
|
IncompleteEvidenceError,
|
|
@@ -312,46 +316,48 @@ import {
|
|
|
312
316
|
renderReproducibilityManifest,
|
|
313
317
|
renderVendorNotificationMarkdown,
|
|
314
318
|
transition
|
|
315
|
-
} from "./chunk-
|
|
319
|
+
} from "./chunk-WPJMA5AK.js";
|
|
316
320
|
import {
|
|
317
321
|
executePocSteps
|
|
318
322
|
} from "./chunk-XPDJE537.js";
|
|
319
323
|
import {
|
|
320
324
|
findCveArtifacts,
|
|
321
325
|
normaliseCveId
|
|
322
|
-
} from "./chunk-
|
|
326
|
+
} from "./chunk-IUUNIJPM.js";
|
|
323
327
|
import "./chunk-ABKUI3QB.js";
|
|
324
|
-
import "./chunk-
|
|
328
|
+
import "./chunk-PAMJEXE2.js";
|
|
325
329
|
import {
|
|
326
330
|
LlmApiRuntime,
|
|
327
331
|
features
|
|
328
|
-
} from "./chunk-
|
|
332
|
+
} from "./chunk-HS2NQ7K6.js";
|
|
329
333
|
import {
|
|
330
334
|
isAdmittedSmolvmWorkbench
|
|
331
|
-
} from "./chunk-
|
|
335
|
+
} from "./chunk-XOVYV7TT.js";
|
|
332
336
|
import {
|
|
333
337
|
eventBus
|
|
334
|
-
} from "./chunk-
|
|
338
|
+
} from "./chunk-ULRLUXSS.js";
|
|
335
339
|
import "./chunk-RS4MAN3Q.js";
|
|
336
340
|
import {
|
|
337
341
|
EmptyPocError,
|
|
338
342
|
detectVersionRange,
|
|
339
343
|
renderAdvisoryMarkdown,
|
|
340
344
|
verifyAgainstRef
|
|
341
|
-
} from "./chunk-
|
|
345
|
+
} from "./chunk-VJBEB2K6.js";
|
|
342
346
|
import {
|
|
343
347
|
ScopePolicy,
|
|
344
348
|
getScopeEnforcementState,
|
|
345
349
|
isScopeEnforcementEnabled,
|
|
346
350
|
loadScope
|
|
347
|
-
} from "./chunk-
|
|
351
|
+
} from "./chunk-RZZ6VPRY.js";
|
|
348
352
|
import "./chunk-5IBCBQEH.js";
|
|
349
353
|
import {
|
|
350
354
|
AgentActionScenarioSchema,
|
|
355
|
+
BACKEND_PROTOCOL_VERSION,
|
|
351
356
|
DEFAULT_AUTONOMY_MODE,
|
|
352
357
|
DEFAULT_SEVERITY_FLOOR,
|
|
353
358
|
SecurityWorkflowBindingsSchema,
|
|
354
359
|
VERSION,
|
|
360
|
+
backendCapabilitiesForApiPath,
|
|
355
361
|
compareFindingsByBusinessPriority,
|
|
356
362
|
createJevEvaluator,
|
|
357
363
|
findingSchema,
|
|
@@ -363,7 +369,7 @@ import {
|
|
|
363
369
|
pocStepArraySchema,
|
|
364
370
|
reportSummarySchema,
|
|
365
371
|
validateScanPlan
|
|
366
|
-
} from "./chunk-
|
|
372
|
+
} from "./chunk-GYEYTNHK.js";
|
|
367
373
|
import {
|
|
368
374
|
external_exports
|
|
369
375
|
} from "./chunk-5XOYTAOK.js";
|
|
@@ -647,7 +653,7 @@ function registerScanCommand(program) {
|
|
|
647
653
|
).option("--base <branch>", "Base branch for `--emit pr` (default: main)").option("--dry-run", "With `--emit pr`: print git/gh commands instead of running them", false).option("--emit-out-dir <path>", "Directory for `--emit pr` rollup files (default: system temp)").option("--resume <run-id>", "Resume a previous run from its on-disk journal").addOption(new Option("--branch-from <entry-index>", "Branch the journal at an entry index before resuming (with --resume)").hideHelp()).option("--verbose", "Show detailed output", false).addOption(new Option("--replay", "Replay the last scan's results").default(false).hideHelp()).action(async (opts, command) => {
|
|
648
654
|
if (opts.replay) {
|
|
649
655
|
try {
|
|
650
|
-
const { osecDB: osecDB2 } = await import("./dist-
|
|
656
|
+
const { osecDB: osecDB2 } = await import("./dist-QLMPTFT7.js");
|
|
651
657
|
const db = new osecDB2(opts.dbPath);
|
|
652
658
|
const scans = db.listScans(1);
|
|
653
659
|
if (scans.length === 0) {
|
|
@@ -799,7 +805,7 @@ function registerScanCommand(program) {
|
|
|
799
805
|
process.exit(2);
|
|
800
806
|
}
|
|
801
807
|
try {
|
|
802
|
-
const { loadScope: loadScope2 } = await import("./dist-
|
|
808
|
+
const { loadScope: loadScope2 } = await import("./dist-ONIRKDH6.js");
|
|
803
809
|
const policy = loadScope2(scopeFile);
|
|
804
810
|
const verdict = scopeEnforcement.enabled ? policy.match(String(opts.target)) : void 0;
|
|
805
811
|
if (verdict && !verdict.allowed) {
|
|
@@ -826,7 +832,7 @@ function registerScanCommand(program) {
|
|
|
826
832
|
loadScope: loadScope2,
|
|
827
833
|
resolveAttribution: resolveAttribution2,
|
|
828
834
|
extractAttributionFromScopeJson: extractAttributionFromScopeJson2
|
|
829
|
-
} = await import("./dist-
|
|
835
|
+
} = await import("./dist-ONIRKDH6.js");
|
|
830
836
|
const policy = scopeFile ? loadScope2(scopeFile) : void 0;
|
|
831
837
|
resolveAttribution2({
|
|
832
838
|
scopeFileBlock: policy ? extractAttributionFromScopeJson2(policy.raw) : void 0,
|
|
@@ -844,7 +850,7 @@ function registerScanCommand(program) {
|
|
|
844
850
|
loadScope: loadScope2,
|
|
845
851
|
resolveEngagementProfile: resolveEngagementProfile2,
|
|
846
852
|
extractEngagementFromScopeJson: extractEngagementFromScopeJson2
|
|
847
|
-
} = await import("./dist-
|
|
853
|
+
} = await import("./dist-ONIRKDH6.js");
|
|
848
854
|
const policy = scopeFile ? loadScope2(scopeFile) : void 0;
|
|
849
855
|
resolveEngagementProfile2({
|
|
850
856
|
scopeFileBlock: policy ? extractEngagementFromScopeJson2(policy.raw) : void 0,
|
|
@@ -873,7 +879,7 @@ function registerScanCommand(program) {
|
|
|
873
879
|
const rateLimit = opts.rateLimit;
|
|
874
880
|
if (rateLimit !== void 0 && rateLimit !== "") {
|
|
875
881
|
try {
|
|
876
|
-
const { parseRateLimitFlag: parseRateLimitFlag2 } = await import("./dist-
|
|
882
|
+
const { parseRateLimitFlag: parseRateLimitFlag2 } = await import("./dist-ONIRKDH6.js");
|
|
877
883
|
parseRateLimitFlag2(rateLimit);
|
|
878
884
|
} catch (err) {
|
|
879
885
|
console.error(source_default.red(err instanceof Error ? err.message : String(err)));
|
|
@@ -886,8 +892,8 @@ function registerScanCommand(program) {
|
|
|
886
892
|
if (opts.routingReport && !opts.singleModel) {
|
|
887
893
|
if (opts.runtime !== "api") throw new Error("Reviewed routing requires --runtime api; no unsupported runtime or provider substitution.");
|
|
888
894
|
if (!opts.routingReviewRef || !opts.routingModel?.length) throw new Error("--routing-report requires --routing-model approvals and --routing-review-ref confirming the workflow/provider review.");
|
|
889
|
-
const { readRoutingJson } = await import("./routing-
|
|
890
|
-
const { recommendQualifiedRouting, LlmApiRuntime: LlmApiRuntime2 } = await import("./dist-
|
|
895
|
+
const { readRoutingJson } = await import("./routing-WCQLO5SP.js");
|
|
896
|
+
const { recommendQualifiedRouting, LlmApiRuntime: LlmApiRuntime2 } = await import("./dist-ONIRKDH6.js");
|
|
891
897
|
const raw = readRoutingJson(String(opts.routingReport));
|
|
892
898
|
const current = new LlmApiRuntime2({ type: "api", timeout: parseInt(opts.timeout, 10), model: opts.model });
|
|
893
899
|
recommendRouting = (selectedPlan) => {
|
|
@@ -902,7 +908,7 @@ function registerScanCommand(program) {
|
|
|
902
908
|
if (!interactivePlanning && recommendRouting) {
|
|
903
909
|
if (!opts.goal || !opts.planTimeCap || costCeilingUsd === void 0) throw new Error("Noninteractive reviewed routing requires --goal, --plan-time-cap and --cost-ceiling.");
|
|
904
910
|
plan = { goal: opts.goal, depth: opts.depth, runCount: 1, executionMode: "sequential", timeCapMs: Number(opts.planTimeCap), costCapUsd: costCeilingUsd };
|
|
905
|
-
const { validateScanPlan: validateScanPlan2 } = await import("./dist-
|
|
911
|
+
const { validateScanPlan: validateScanPlan2 } = await import("./dist-QXJKD743.js");
|
|
906
912
|
validateScanPlan2(plan);
|
|
907
913
|
const routing = recommendRouting(plan);
|
|
908
914
|
for (const [role, model] of Object.entries(routing.assignments)) console.error(`${role}: ${model} \u2014 ${routing.reasons[role]}`);
|
|
@@ -1074,7 +1080,7 @@ function registerResumeCommand(program) {
|
|
|
1074
1080
|
|
|
1075
1081
|
// packages/cli/src/commands/replay.ts
|
|
1076
1082
|
async function replayScan(opts) {
|
|
1077
|
-
const { osecDB: osecDB2 } = await import("./dist-
|
|
1083
|
+
const { osecDB: osecDB2 } = await import("./dist-QLMPTFT7.js");
|
|
1078
1084
|
const db = new osecDB2(opts.dbPath);
|
|
1079
1085
|
const requestedScan = opts.scan;
|
|
1080
1086
|
let scanRecord;
|
|
@@ -1154,8 +1160,14 @@ function registerReplayCommand(program) {
|
|
|
1154
1160
|
// packages/cli/src/commands/history.ts
|
|
1155
1161
|
import { existsSync as existsSync2 } from "node:fs";
|
|
1156
1162
|
function registerHistoryCommand(program) {
|
|
1157
|
-
program.command("history").description("Show past scan history from run-local SQLite databases").option("--db-path <path>", "Path to one SQLite database").option("--limit <n>", "Number of scans to show",
|
|
1158
|
-
const limit2 = Number
|
|
1163
|
+
program.command("history").description("Show past scan history from run-local SQLite databases").option("--db-path <path>", "Path to one SQLite database").option("--limit <n>", "Number of scans to show", (value) => {
|
|
1164
|
+
const limit2 = Number(value);
|
|
1165
|
+
if (!/^\d+$/.test(value) || !Number.isSafeInteger(limit2) || limit2 < 1) {
|
|
1166
|
+
throw new InvalidArgumentError("must be a positive integer");
|
|
1167
|
+
}
|
|
1168
|
+
return limit2;
|
|
1169
|
+
}, 10).action(async (opts) => {
|
|
1170
|
+
const limit2 = opts.limit ?? 10;
|
|
1159
1171
|
const dbPaths = opts.dbPath ? [opts.dbPath] : listOsecRunDatabasePaths();
|
|
1160
1172
|
const legacyDbPath = resolveOsecDbPath();
|
|
1161
1173
|
if (!opts.dbPath && existsSync2(legacyDbPath) && !dbPaths.includes(legacyDbPath)) {
|
|
@@ -1409,7 +1421,7 @@ function registerFindingsCommand(program) {
|
|
|
1409
1421
|
console.log(` ${source_default.dim(finding.evidenceAnalysis)}`);
|
|
1410
1422
|
}
|
|
1411
1423
|
{
|
|
1412
|
-
const { summarizeTriageProvenance, formatTriageProvenance } = await import("./dist-
|
|
1424
|
+
const { summarizeTriageProvenance, formatTriageProvenance } = await import("./dist-ONIRKDH6.js");
|
|
1413
1425
|
const provenance = summarizeTriageProvenance({
|
|
1414
1426
|
...finding,
|
|
1415
1427
|
layerVerdicts: parseLayerVerdicts(finding.layerVerdicts)
|
|
@@ -1530,7 +1542,7 @@ import { existsSync as existsSync3 } from "node:fs";
|
|
|
1530
1542
|
var VALID_BUILD_SYSTEMS = /* @__PURE__ */ new Set(["autotools", "cmake", "meson", "auto"]);
|
|
1531
1543
|
var VALID_SANITIZERS = /* @__PURE__ */ new Set(["asan", "ubsan", "msan"]);
|
|
1532
1544
|
async function runHarnessTier2(args2) {
|
|
1533
|
-
const { buildTier2Harness, extractCorpus } = await import("./dist-
|
|
1545
|
+
const { buildTier2Harness, extractCorpus } = await import("./dist-ONIRKDH6.js");
|
|
1534
1546
|
const repoAbs = resolve2(args2.repo);
|
|
1535
1547
|
if (!existsSync3(repoAbs)) {
|
|
1536
1548
|
throw new Error(`Tier-2: repo path '${repoAbs}' does not exist.`);
|
|
@@ -1626,7 +1638,7 @@ async function runHarnessTier3(args2) {
|
|
|
1626
1638
|
buildTier2Harness,
|
|
1627
1639
|
extractCorpus,
|
|
1628
1640
|
runTier3Validation
|
|
1629
|
-
} = await import("./dist-
|
|
1641
|
+
} = await import("./dist-ONIRKDH6.js");
|
|
1630
1642
|
const repoAbs = resolve3(args2.repo);
|
|
1631
1643
|
if (!existsSync4(repoAbs)) {
|
|
1632
1644
|
throw new Error(`Tier-3: repo path '${repoAbs}' does not exist.`);
|
|
@@ -1846,7 +1858,7 @@ function registerReviewCommand(program) {
|
|
|
1846
1858
|
let seedFindings;
|
|
1847
1859
|
const seedPath = opts.seedFindings;
|
|
1848
1860
|
if (seedPath) {
|
|
1849
|
-
const { readSeedFindings } = await import("./dist-
|
|
1861
|
+
const { readSeedFindings } = await import("./dist-ONIRKDH6.js");
|
|
1850
1862
|
seedFindings = readSeedFindings(seedPath);
|
|
1851
1863
|
console.log(
|
|
1852
1864
|
source_default.cyan(
|
|
@@ -1862,7 +1874,7 @@ function registerReviewCommand(program) {
|
|
|
1862
1874
|
);
|
|
1863
1875
|
}
|
|
1864
1876
|
if (fixCommit) {
|
|
1865
|
-
const { huntAppFixVariants, appFixVariantsToSeedFindings } = await import("./dist-
|
|
1877
|
+
const { huntAppFixVariants, appFixVariantsToSeedFindings } = await import("./dist-ONIRKDH6.js");
|
|
1866
1878
|
const result = huntAppFixVariants({
|
|
1867
1879
|
repoPath: repo,
|
|
1868
1880
|
fixCommit
|
|
@@ -2173,7 +2185,7 @@ function registerAuditCommand(program) {
|
|
|
2173
2185
|
// packages/cli/src/commands/doctor.ts
|
|
2174
2186
|
function registerDoctorCommand(program) {
|
|
2175
2187
|
program.command("doctor").description("Check local runtime prerequisites and suggest the next command").action(async () => {
|
|
2176
|
-
const { getRuntimeMetadata } = await import("./runtime-
|
|
2188
|
+
const { getRuntimeMetadata } = await import("./runtime-6ZIXFTW5.js");
|
|
2177
2189
|
const { hasApiKey, availableRuntimes, apiRuntime } = await getRuntimeAvailability();
|
|
2178
2190
|
const runtime = getRuntimeMetadata();
|
|
2179
2191
|
const nodeMajor = Number.parseInt(process.versions.node.split(".")[0] ?? "0", 10);
|
|
@@ -2468,7 +2480,7 @@ function clampRateLimitToPosture(cfg, posture) {
|
|
|
2468
2480
|
}
|
|
2469
2481
|
var workflowInputsSchema = SecurityWorkflowBindingsSchema;
|
|
2470
2482
|
async function registerWorkflowTools(server, selected, opts) {
|
|
2471
|
-
const runtime = opts.backend || opts.engineUrl ? await (await import("./remote-workflow-runtime-
|
|
2483
|
+
const runtime = opts.backend || opts.engineUrl ? await (await import("./remote-workflow-runtime-GOI4TYP5.js")).createRemoteWorkflowRuntime({ backendId: opts.backend, configPath: opts.backendsConfig, sessionId: opts.session, engineUrl: opts.engineUrl, engineTokenEnv: opts.engineTokenEnv }) : await (await import("./workflow-runtime-CQTDASFA.js")).createCliWorkflowRuntime({
|
|
2472
2484
|
ownerId: `mcp:${randomUUID()}`,
|
|
2473
2485
|
workspace: opts.workspace,
|
|
2474
2486
|
target: opts.target,
|
|
@@ -2766,11 +2778,11 @@ function rowToFinding(row) {
|
|
|
2766
2778
|
};
|
|
2767
2779
|
}
|
|
2768
2780
|
async function openStore(dbPath) {
|
|
2769
|
-
const { MemoryStore } = await import("./dist-
|
|
2781
|
+
const { MemoryStore } = await import("./dist-ONIRKDH6.js");
|
|
2770
2782
|
return new MemoryStore(dbPath);
|
|
2771
2783
|
}
|
|
2772
2784
|
async function loadFinding2(dbPath, findingId) {
|
|
2773
|
-
const { osecDB: osecDB2 } = await import("./dist-
|
|
2785
|
+
const { osecDB: osecDB2 } = await import("./dist-QLMPTFT7.js");
|
|
2774
2786
|
const db = new osecDB2(dbPath);
|
|
2775
2787
|
try {
|
|
2776
2788
|
const rows = db.listFindings({ limit: 5e3 });
|
|
@@ -2845,7 +2857,7 @@ async function runMemoryRemove(id, dbPath) {
|
|
|
2845
2857
|
async function runMarkFp(findingId, opts) {
|
|
2846
2858
|
const row = await loadFinding2(opts.dbPath, findingId);
|
|
2847
2859
|
const finding = rowToFinding(row);
|
|
2848
|
-
const { osecDB: osecDB2 } = await import("./dist-
|
|
2860
|
+
const { osecDB: osecDB2 } = await import("./dist-QLMPTFT7.js");
|
|
2849
2861
|
const db = new osecDB2(opts.dbPath);
|
|
2850
2862
|
try {
|
|
2851
2863
|
db.updateFindingTriage(row.id, "suppressed", opts.reason);
|
|
@@ -6560,7 +6572,7 @@ function registerIngestCommand(program) {
|
|
|
6560
6572
|
reviewKernelCrashSubsystems,
|
|
6561
6573
|
verifyStandaloneKernelReproducer,
|
|
6562
6574
|
verifyKernelCrash
|
|
6563
|
-
} = await import("./dist-
|
|
6575
|
+
} = await import("./dist-ONIRKDH6.js");
|
|
6564
6576
|
let kernelBuild;
|
|
6565
6577
|
if (opts.kernelTree) {
|
|
6566
6578
|
kernelBuild = prepareKernelVmArtifacts({
|
|
@@ -6983,7 +6995,7 @@ function registerKernelCommand(program) {
|
|
|
6983
6995
|
checkAlreadyFixed,
|
|
6984
6996
|
rankKernelHypothesesWithJev,
|
|
6985
6997
|
verifyStaticKernelFinding
|
|
6986
|
-
} = await import("./dist-
|
|
6998
|
+
} = await import("./dist-ONIRKDH6.js");
|
|
6987
6999
|
const noveltyExcluded = opts.upstreamTree ? findings.flatMap((finding) => {
|
|
6988
7000
|
const path = finding.reviewAnnotation?.path ?? finding.evidence.request.match(/([^\s:]+\.[ch]):\d+/)?.[1];
|
|
6989
7001
|
if (!path) return [];
|
|
@@ -7030,7 +7042,7 @@ function registerKernelCommand(program) {
|
|
|
7030
7042
|
try {
|
|
7031
7043
|
const config = jevConfigFromEnvironment("kernel", process.env);
|
|
7032
7044
|
if (!config) throw new Error("Jev commit prepass requires ZERO_JEV_FEATURES=kernel and a configured provider");
|
|
7033
|
-
const { rankKernelCommitsWithJev } = await import("./dist-
|
|
7045
|
+
const { rankKernelCommitsWithJev } = await import("./dist-ONIRKDH6.js");
|
|
7034
7046
|
const result = await rankKernelCommitsWithJev({
|
|
7035
7047
|
tree: opts.tree,
|
|
7036
7048
|
evaluator: createJevEvaluator(config),
|
|
@@ -7054,7 +7066,7 @@ function registerKernelCommand(program) {
|
|
|
7054
7066
|
try {
|
|
7055
7067
|
const config = jevConfigFromEnvironment("kernel", process.env);
|
|
7056
7068
|
if (!config) throw new Error("Jev source prepass requires ZERO_JEV_FEATURES=kernel and a configured provider");
|
|
7057
|
-
const { runKernelSourceJevPrepass } = await import("./dist-
|
|
7069
|
+
const { runKernelSourceJevPrepass } = await import("./dist-ONIRKDH6.js");
|
|
7058
7070
|
const result = await runKernelSourceJevPrepass({
|
|
7059
7071
|
tree: opts.tree,
|
|
7060
7072
|
subtree: opts.subtree,
|
|
@@ -7088,7 +7100,7 @@ function registerKernelCommand(program) {
|
|
|
7088
7100
|
if (crashes.length === 0) throw new Error("Crash input must be a CrashRecord[] or an object with a crashes array");
|
|
7089
7101
|
const records = crashes.filter((c) => !!c && typeof c === "object" && "id" in c && "summary" in c && typeof c.id === "string" && typeof c.summary === "string");
|
|
7090
7102
|
if (records.length !== crashes.length) throw new Error("Every crash record requires string id and summary fields");
|
|
7091
|
-
const { rankCrashesWithJev, crashSummaryFromTriage } = await import("./dist-
|
|
7103
|
+
const { rankCrashesWithJev, crashSummaryFromTriage } = await import("./dist-ONIRKDH6.js");
|
|
7092
7104
|
const result = await rankCrashesWithJev(
|
|
7093
7105
|
records,
|
|
7094
7106
|
createJevEvaluator(config)
|
|
@@ -7116,7 +7128,7 @@ function registerKernelCommand(program) {
|
|
|
7116
7128
|
const details = parsePositiveInt(opts.details, "--details", 100);
|
|
7117
7129
|
const detailDelayMs = parsePositiveInt(opts.detailDelay, "--detail-delay", 5e3);
|
|
7118
7130
|
const subsystems = opts.subsystems.split(",").map((value) => value.trim()).filter(Boolean);
|
|
7119
|
-
const { defaultSyzbotFetcher, mineSyzbotQueue, toHuntCandidates } = await import("./dist-
|
|
7131
|
+
const { defaultSyzbotFetcher, mineSyzbotQueue, toHuntCandidates } = await import("./dist-ONIRKDH6.js");
|
|
7120
7132
|
const result = await mineSyzbotQueue({
|
|
7121
7133
|
fetch: defaultSyzbotFetcher,
|
|
7122
7134
|
fetchDetail: defaultSyzbotFetcher,
|
|
@@ -7174,7 +7186,7 @@ function registerKernelCommand(program) {
|
|
|
7174
7186
|
`Invalid output format '${opts.output}'. Valid: ${VALID_OUTPUT_FORMATS2.join(", ")}`
|
|
7175
7187
|
);
|
|
7176
7188
|
}
|
|
7177
|
-
const { runKernelVariantHunt } = await import("./dist-
|
|
7189
|
+
const { runKernelVariantHunt } = await import("./dist-ONIRKDH6.js");
|
|
7178
7190
|
const report = await runKernelVariantHunt({
|
|
7179
7191
|
tree: opts.tree,
|
|
7180
7192
|
advisory: opts.advisory,
|
|
@@ -7277,7 +7289,7 @@ function resolveOutputDir(opts, scanId) {
|
|
|
7277
7289
|
return join9(homedir2(), "0", "disclosures", `scan-${scanId.slice(0, 8)}`);
|
|
7278
7290
|
}
|
|
7279
7291
|
async function disclose(findingId, opts) {
|
|
7280
|
-
const { osecDB: osecDB2 } = await import("./dist-
|
|
7292
|
+
const { osecDB: osecDB2 } = await import("./dist-QLMPTFT7.js");
|
|
7281
7293
|
const db = new osecDB2(opts.dbPath);
|
|
7282
7294
|
try {
|
|
7283
7295
|
let routeDroppedFinding2 = function(args2) {
|
|
@@ -7729,7 +7741,7 @@ async function runExploit(opts) {
|
|
|
7729
7741
|
classifyPrimitiveFromDmesg,
|
|
7730
7742
|
describeKernelPrimitive,
|
|
7731
7743
|
runWeaponization
|
|
7732
|
-
} = await import("./dist-
|
|
7744
|
+
} = await import("./dist-ONIRKDH6.js");
|
|
7733
7745
|
const rawFinding = readJson(opts.findingPath, "finding");
|
|
7734
7746
|
let finding;
|
|
7735
7747
|
try {
|
|
@@ -7792,7 +7804,7 @@ async function runExploit(opts) {
|
|
|
7792
7804
|
}
|
|
7793
7805
|
async function exploitAction(opts) {
|
|
7794
7806
|
if (opts.agent) {
|
|
7795
|
-
const { agentFromExploitOpts } = await import("./exploit-agent-
|
|
7807
|
+
const { agentFromExploitOpts } = await import("./exploit-agent-4E4HXKUA.js");
|
|
7796
7808
|
process.exitCode = await agentFromExploitOpts({
|
|
7797
7809
|
...opts.task ? { task: opts.task } : {},
|
|
7798
7810
|
...opts.flagPath ? { flagPath: opts.flagPath } : {},
|
|
@@ -7807,7 +7819,7 @@ async function exploitAction(opts) {
|
|
|
7807
7819
|
return;
|
|
7808
7820
|
}
|
|
7809
7821
|
if (opts.autoclimb) {
|
|
7810
|
-
const { autoclimbFromExploitOpts } = await import("./exploit-autoclimb-
|
|
7822
|
+
const { autoclimbFromExploitOpts } = await import("./exploit-autoclimb-5GRXI6VQ.js");
|
|
7811
7823
|
process.exitCode = await autoclimbFromExploitOpts({
|
|
7812
7824
|
...opts.bugSpec ? { bugSpec: opts.bugSpec } : {},
|
|
7813
7825
|
...opts.bootScript ? { bootScript: opts.bootScript } : {},
|
|
@@ -7821,7 +7833,7 @@ async function exploitAction(opts) {
|
|
|
7821
7833
|
throw new Error("missing required flag: --finding <path>");
|
|
7822
7834
|
}
|
|
7823
7835
|
if (opts.climb) {
|
|
7824
|
-
const { runClimb } = await import("./exploit-climb-
|
|
7836
|
+
const { runClimb } = await import("./exploit-climb-AHQEJ2I2.js");
|
|
7825
7837
|
let loopBoots = 8;
|
|
7826
7838
|
if (opts.loopBoots !== void 0) {
|
|
7827
7839
|
loopBoots = parseInt(opts.loopBoots, 10);
|
|
@@ -7994,7 +8006,7 @@ async function runHunt(opts) {
|
|
|
7994
8006
|
makeLloreJudge,
|
|
7995
8007
|
makeHuntProveStage,
|
|
7996
8008
|
prepare: prepare2
|
|
7997
|
-
} = await import("./dist-
|
|
8009
|
+
} = await import("./dist-ONIRKDH6.js");
|
|
7998
8010
|
const log = opts.log ?? (() => {
|
|
7999
8011
|
});
|
|
8000
8012
|
const runtime = opts.runtime ?? "api";
|
|
@@ -8342,7 +8354,7 @@ function parseWitnessMode(raw) {
|
|
|
8342
8354
|
}
|
|
8343
8355
|
async function recencyAction(opts) {
|
|
8344
8356
|
if (!opts.tree) throw new Error("missing required flag: --tree <kernel source tree>");
|
|
8345
|
-
const { runRecencyHunt, renderRecencyReportMarkdown } = await import("./dist-
|
|
8357
|
+
const { runRecencyHunt, renderRecencyReportMarkdown } = await import("./dist-ONIRKDH6.js");
|
|
8346
8358
|
const tree = resolve14(opts.tree);
|
|
8347
8359
|
const runtime = opts.runtime ?? "api";
|
|
8348
8360
|
const modelDir = opts.modelDir ? resolve14(opts.modelDir) : join10(tree, ".recency-models");
|
|
@@ -8720,7 +8732,7 @@ function resolveArtifactDir(value, sourceRoot) {
|
|
|
8720
8732
|
return canonicalArtifactDir;
|
|
8721
8733
|
}
|
|
8722
8734
|
async function runMemSafety(opts) {
|
|
8723
|
-
const { prepare: prepare2, runMemSafetyScan } = await import("./dist-
|
|
8735
|
+
const { prepare: prepare2, runMemSafetyScan } = await import("./dist-ONIRKDH6.js");
|
|
8724
8736
|
const log = opts.log ?? (() => {
|
|
8725
8737
|
});
|
|
8726
8738
|
const prepared = await prepare2(
|
|
@@ -8927,7 +8939,7 @@ function parseWitnessMode2(raw) {
|
|
|
8927
8939
|
return m;
|
|
8928
8940
|
}
|
|
8929
8941
|
async function runAssumptionHuntCli(sourceRoot, opts) {
|
|
8930
|
-
const { runAssumptionHunt, makeSkepticVerifier } = await import("./dist-
|
|
8942
|
+
const { runAssumptionHunt, makeSkepticVerifier } = await import("./dist-ONIRKDH6.js");
|
|
8931
8943
|
const log = (m) => process.stderr.write(m + "\n");
|
|
8932
8944
|
const runtime = opts.runtime ?? "api";
|
|
8933
8945
|
const root = resolve17(sourceRoot);
|
|
@@ -10302,7 +10314,7 @@ function resolveConsoleAutonomyMode(opts) {
|
|
|
10302
10314
|
function registerConsoleCommand(program) {
|
|
10303
10315
|
program.command("console").alias("chat").description(
|
|
10304
10316
|
"Run a headless chat prompt; interactive conversations use 0 web"
|
|
10305
|
-
).option("--target <url>", "Engagement target the tools operate against (optional; can be named in-chat)").option("--scope <file>", "Initial policy for the optional scope plugin; activate with `0 plugin enable scope`").option("--finding <id>", "Focus the chat on one persisted finding").option("--finding-intent <intent>", "Finding workflow: investigate, verify, or draft_fix").option("--db-path <path>", "Persistent findings database (defaults to ZERO_DB_PATH or the local store)").option("-m, --model <id>", "Override the LLM model id (else provider default)").option("--role <role>", "Tool set to expose: audit|review|discovery|attack|verify (default audit = every tool)").option("--mode <mode>", "Approval mode: standard|recon|copilot|yolo (default yolo)").option("--yolo", "Shortcut for --mode yolo (no per-action prompts; independent credential, private-network and sandbox protections remain).").option("--autonomy <mode>", "Alias of --mode (standard|copilot|yolo|recon); --mode/--yolo take precedence.").option("--max-tool-calls <n>", "
|
|
10317
|
+
).option("--target <url>", "Engagement target the tools operate against (optional; can be named in-chat)").option("--scope <file>", "Initial policy for the optional scope plugin; activate with `0 plugin enable scope`").option("--finding <id>", "Focus the chat on one persisted finding").option("--finding-intent <intent>", "Finding workflow: investigate, verify, or draft_fix").option("--db-path <path>", "Persistent findings database (defaults to ZERO_DB_PATH or the local store)").option("-m, --model <id>", "Override the LLM model id (else provider default)").option("--role <role>", "Tool set to expose: audit|review|discovery|attack|verify (default audit = every tool)").option("--mode <mode>", "Approval mode: standard|recon|copilot|yolo (default yolo)").option("--yolo", "Shortcut for --mode yolo (no per-action prompts; independent credential, private-network and sandbox protections remain).").option("--autonomy <mode>", "Alias of --mode (standard|copilot|yolo|recon); --mode/--yolo take precedence.").option("--max-tool-calls <n>", "Optional tool-call round limit per message (unlimited by default)").option("--allow-scanners", "Expose generic-scanner tool wrappers (sqlmap/nikto/\u2026); default off").option("--resume [id]", "With a headless prompt, reopen a saved session by id or unique prefix; use browser history for a picker.").option("--continue", "With a headless prompt, continue the most recent saved console session.").option("-p, --print [prompt]", "Non-interactive: run ONE prompt through the engine, print the result, and exit. Reads the prompt from the argument or piped stdin. Combine with --continue/--resume to query a saved session. Also reachable as `0 -p <prompt>`.").option("--prompt <text>", "Run one headless prompt (alias for --print)").action(async (opts) => {
|
|
10306
10318
|
if (opts.prompt !== void 0) opts.print = opts.prompt;
|
|
10307
10319
|
if (opts.print === void 0) {
|
|
10308
10320
|
console.log('Interactive conversations are in the browser. Run 0 web (no account required). For automation use 0 chat --prompt "your request" or 0 -p "your request".');
|
|
@@ -10380,7 +10392,7 @@ function registerConsoleCommand(program) {
|
|
|
10380
10392
|
let resumedModel;
|
|
10381
10393
|
let resumedTarget;
|
|
10382
10394
|
if (opts.continue || opts.resume !== void 0) {
|
|
10383
|
-
const { listSessions, loadSession } = await import("./session-store-
|
|
10395
|
+
const { listSessions, loadSession } = await import("./session-store-6QR3CVUA.js");
|
|
10384
10396
|
const idArg = typeof opts.resume === "string" ? opts.resume.trim() : "";
|
|
10385
10397
|
if (idArg || opts.continue) {
|
|
10386
10398
|
let stored = idArg ? loadSession(idArg) : null;
|
|
@@ -11497,7 +11509,7 @@ function registerXnuFuzzCommand(program) {
|
|
|
11497
11509
|
import { readFileSync as readFileSync18 } from "node:fs";
|
|
11498
11510
|
import { resolve as resolve21 } from "node:path";
|
|
11499
11511
|
async function managedResearch(adapter, target, options, engine) {
|
|
11500
|
-
const { executeManagedOperation: executeManagedOperation2 } = await import("./managed-operation-
|
|
11512
|
+
const { executeManagedOperation: executeManagedOperation2 } = await import("./managed-operation-ZMLLRCCQ.js");
|
|
11501
11513
|
const started = Date.now();
|
|
11502
11514
|
return executeManagedOperation2({
|
|
11503
11515
|
type: "research",
|
|
@@ -11549,7 +11561,7 @@ function print(value) {
|
|
|
11549
11561
|
function registerResearchCommand(program) {
|
|
11550
11562
|
const research = program.command("research").description("Run target-specific research engines");
|
|
11551
11563
|
research.command("pipeline").description("Run the existing web/AI/source/package pipeline through the shared evidence plane").requiredOption("--target <target>", "URL, local path, repository, package, or image").option("--target-type <type>", "url, web-app, source-code, npm-package, pypi-package, cargo-package, or oci-image").option("--profile <profile>", "Source review profile").option("--depth <depth>", "quick, default, or deep", "default").option("--runtime <runtime>", "auto, api, claude, codex, gemini, or ollama", "auto").option("--artifact-root <path>", "Research artifact root", ".0-research").action(async (opts) => {
|
|
11552
|
-
const { UnifiedPipelineResearchAdapter, runResearch } = await import("./dist-
|
|
11564
|
+
const { UnifiedPipelineResearchAdapter, runResearch } = await import("./dist-ONIRKDH6.js");
|
|
11553
11565
|
const allowedTypes = /* @__PURE__ */ new Set(["url", "web-app", "source-code", "npm-package", "pypi-package", "cargo-package", "oci-image"]);
|
|
11554
11566
|
if (opts.targetType && !allowedTypes.has(opts.targetType)) throw new Error(`unsupported --target-type ${opts.targetType}`);
|
|
11555
11567
|
print(await managedResearch(
|
|
@@ -11573,7 +11585,7 @@ function registerResearchCommand(program) {
|
|
|
11573
11585
|
));
|
|
11574
11586
|
});
|
|
11575
11587
|
research.command("counterexample").description("Search a C/C++ source target for sanitizer-confirmed counterexample inputs; optional mitigation replay").requiredOption("--source <dir>", "C/C++ source tree root").requiredOption("--fn <name>", "Suspect function name").requiredOption("--header <path>", "Header declaring the suspect function").requiredOption("--declaration <decl>", "C declaration of the suspect function").option("--input-shape <shape>", "bytesAndLen, bytesPtr, or bytesAndLenOut", "bytesAndLen").option("--build-system <system>", "auto, autotools, cmake, or meson", "auto").option("--timeout <sec>", "Fuzz wall-clock budget in seconds").option("--mitigation-source <files...>", "Reference-mitigation source file(s) for replay").option("--mitigation-include <dirs...>", "Extra include directories for the mitigation build").option("--witness <files...>", "Finding-proposed witness input file(s) to replay through the sanitizer build").option("--artifact-root <path>", "Research artifact root", ".0-research").action(async (opts) => {
|
|
11576
|
-
const { UserspaceCounterexampleResearchAdapter, runResearch } = await import("./dist-
|
|
11588
|
+
const { UserspaceCounterexampleResearchAdapter, runResearch } = await import("./dist-ONIRKDH6.js");
|
|
11577
11589
|
const SHAPES = { bytesAndLen: true, bytesPtr: true, bytesAndLenOut: true };
|
|
11578
11590
|
if (!SHAPES[opts.inputShape]) throw new Error(`unsupported --input-shape ${opts.inputShape}`);
|
|
11579
11591
|
const SYSTEMS = { auto: true, autotools: true, cmake: true, meson: true };
|
|
@@ -11603,7 +11615,7 @@ function registerResearchCommand(program) {
|
|
|
11603
11615
|
));
|
|
11604
11616
|
});
|
|
11605
11617
|
research.command("mobile").description("Run passive mobile intake; indicators remain hypotheses and only scoped adapters may hand off targets").requiredOption("--target <path>", "Extracted APK/IPA directory or metadata file").option("--artifact-root <path>", "Research artifact root", ".0-research").action(async (opts) => {
|
|
11606
|
-
const { MobileStaticResearchAdapter, runResearch } = await import("./dist-
|
|
11618
|
+
const { MobileStaticResearchAdapter, runResearch } = await import("./dist-ONIRKDH6.js");
|
|
11607
11619
|
const targetPath = resolve21(opts.target);
|
|
11608
11620
|
print(await managedResearch(
|
|
11609
11621
|
new MobileStaticResearchAdapter(),
|
|
@@ -11613,7 +11625,7 @@ function registerResearchCommand(program) {
|
|
|
11613
11625
|
));
|
|
11614
11626
|
});
|
|
11615
11627
|
research.command("linux-matrix").description("Import externally executed vulnerable-vs-patched boot logs; 0 validates and hashes them but does not execute boots").requiredOption("--matrix <path>", "Versioned external boot-matrix manifest JSON").requiredOption("--finding <path>", "Existing Finding JSON to bind the proof to").option("--artifact-root <path>", "Research artifact root", ".0-research").action(async (opts) => {
|
|
11616
|
-
const { LinuxBootMatrixImportAdapter, runResearch } = await import("./dist-
|
|
11628
|
+
const { LinuxBootMatrixImportAdapter, runResearch } = await import("./dist-ONIRKDH6.js");
|
|
11617
11629
|
const matrix = resolve21(opts.matrix);
|
|
11618
11630
|
const finding = JSON.parse(readFileSync18(resolve21(opts.finding), "utf8"));
|
|
11619
11631
|
const result = await managedResearch(
|
|
@@ -11626,7 +11638,7 @@ function registerResearchCommand(program) {
|
|
|
11626
11638
|
print(result);
|
|
11627
11639
|
});
|
|
11628
11640
|
research.command("linux").description("Run a supplied Linux kernel reproducer through the shared N-boot evidence gate").requiredOption("--kernel-tree <path>", "Linux source tree").requiredOption("--reproducer <path>", "C reproducer or syzkaller .syz program").requiredOption("--finding <path>", "Existing Finding JSON to bind the proof to").requiredOption("--expected-signature <literal>", "Literal crash signature that every counted boot must contain").option("--boots <n>", "Fresh boots", "3").option("--min-hits <n>", "Required reproducing boots", "2").option("--artifact-root <path>", "Research artifact root", ".0-research").action(async (opts) => {
|
|
11629
|
-
const { LinuxKernelResearchAdapter, runResearch } = await import("./dist-
|
|
11641
|
+
const { LinuxKernelResearchAdapter, runResearch } = await import("./dist-ONIRKDH6.js");
|
|
11630
11642
|
const kernelTree = resolve21(opts.kernelTree);
|
|
11631
11643
|
const reproducer = resolve21(opts.reproducer);
|
|
11632
11644
|
const finding = JSON.parse(readFileSync18(resolve21(opts.finding), "utf8"));
|
|
@@ -11791,7 +11803,7 @@ function registerTimelineCommand(program) {
|
|
|
11791
11803
|
process.exitCode = 2;
|
|
11792
11804
|
return;
|
|
11793
11805
|
}
|
|
11794
|
-
const { osecDB: osecDB2 } = await import("./dist-
|
|
11806
|
+
const { osecDB: osecDB2 } = await import("./dist-QLMPTFT7.js");
|
|
11795
11807
|
const db = new osecDB2(opts.dbPath);
|
|
11796
11808
|
let scan2;
|
|
11797
11809
|
let rows;
|
|
@@ -12371,7 +12383,7 @@ var MAX_SOURCE_BYTES = 4 * 1024 * 1024;
|
|
|
12371
12383
|
var cachedCore;
|
|
12372
12384
|
async function defaultCorePort() {
|
|
12373
12385
|
if (cachedCore) return cachedCore;
|
|
12374
|
-
const mod = await import("./dist-
|
|
12386
|
+
const mod = await import("./dist-ONIRKDH6.js");
|
|
12375
12387
|
cachedCore = {
|
|
12376
12388
|
validatePluginManifest: mod.validatePluginManifest,
|
|
12377
12389
|
reservedToolNames: Object.values(mod.TOOL_DEFINITIONS).map((tool) => tool.name),
|
|
@@ -12710,7 +12722,7 @@ function registerHackstoreCommand(program) {
|
|
|
12710
12722
|
var cachedCore2;
|
|
12711
12723
|
async function defaultCorePort2() {
|
|
12712
12724
|
if (cachedCore2) return cachedCore2;
|
|
12713
|
-
const mod = await import("./dist-
|
|
12725
|
+
const mod = await import("./dist-ONIRKDH6.js");
|
|
12714
12726
|
cachedCore2 = mod;
|
|
12715
12727
|
return mod;
|
|
12716
12728
|
}
|
|
@@ -13609,8 +13621,8 @@ import { realpathSync as realpathSync3 } from "node:fs";
|
|
|
13609
13621
|
import { isAbsolute as isAbsolute3, resolve as resolve27 } from "node:path";
|
|
13610
13622
|
import { homedir as homedir3 } from "node:os";
|
|
13611
13623
|
async function defaultService() {
|
|
13612
|
-
const { LearningService, HuntMemoryStore } = await import("./dist-
|
|
13613
|
-
const { SecurityWorkflowStore: SecurityWorkflowStore2, learningProjectId } = await import("./dist-
|
|
13624
|
+
const { LearningService, HuntMemoryStore } = await import("./dist-ONIRKDH6.js");
|
|
13625
|
+
const { SecurityWorkflowStore: SecurityWorkflowStore2, learningProjectId } = await import("./dist-QLMPTFT7.js");
|
|
13614
13626
|
const workflows = new SecurityWorkflowStore2();
|
|
13615
13627
|
const store = workflows.learningStore();
|
|
13616
13628
|
const service = new LearningService(store, { workflows });
|
|
@@ -13920,9 +13932,9 @@ function registerReviewChecksCommand(program) {
|
|
|
13920
13932
|
import { open } from "node:fs/promises";
|
|
13921
13933
|
import { constants as constants4 } from "node:fs";
|
|
13922
13934
|
var defaults = {
|
|
13923
|
-
createRemoteRuntime: async (options) => (await import("./remote-workflow-runtime-
|
|
13935
|
+
createRemoteRuntime: async (options) => (await import("./remote-workflow-runtime-GOI4TYP5.js")).createRemoteWorkflowRuntime(options),
|
|
13924
13936
|
createRuntime: async (options) => {
|
|
13925
|
-
const { createCliWorkflowRuntime } = await import("./workflow-runtime-
|
|
13937
|
+
const { createCliWorkflowRuntime } = await import("./workflow-runtime-CQTDASFA.js");
|
|
13926
13938
|
return await createCliWorkflowRuntime(options);
|
|
13927
13939
|
},
|
|
13928
13940
|
out: (text2) => process.stdout.write(`${text2}
|
|
@@ -14274,9 +14286,106 @@ function registerTeamCommand(program, dependencies = {}) {
|
|
|
14274
14286
|
out(JSON.stringify({ workspace: config.workspace, users: config.users.map(({ id, name, role }) => ({ id, name, role })) }, null, 2));
|
|
14275
14287
|
}));
|
|
14276
14288
|
}
|
|
14289
|
+
|
|
14290
|
+
// packages/cli/src/commands/api.ts
|
|
14291
|
+
import { constants as constants6 } from "node:fs";
|
|
14292
|
+
import { open as open2 } from "node:fs/promises";
|
|
14293
|
+
var MAX_BODY = 1e6;
|
|
14294
|
+
var METHODS = ["GET", "POST", "PATCH", "PUT", "DELETE", "HEAD"];
|
|
14295
|
+
async function parseBody(input) {
|
|
14296
|
+
if (input === void 0) return void 0;
|
|
14297
|
+
let text2 = input;
|
|
14298
|
+
if (input.startsWith("@")) {
|
|
14299
|
+
if (input.length === 1) throw new Error("--data @file requires a file path.");
|
|
14300
|
+
const file = await open2(input.slice(1), constants6.O_RDONLY | constants6.O_NONBLOCK);
|
|
14301
|
+
try {
|
|
14302
|
+
const stat3 = await file.stat();
|
|
14303
|
+
if (!stat3.isFile() || stat3.size > MAX_BODY) throw new Error("API data must be a regular JSON file of at most 1 MB.");
|
|
14304
|
+
const buffer = Buffer.alloc(MAX_BODY + 1);
|
|
14305
|
+
let length = 0;
|
|
14306
|
+
while (length < buffer.length) {
|
|
14307
|
+
const { bytesRead } = await file.read(buffer, length, buffer.length - length, length);
|
|
14308
|
+
if (!bytesRead) break;
|
|
14309
|
+
length += bytesRead;
|
|
14310
|
+
}
|
|
14311
|
+
if (length > MAX_BODY) throw new Error("API data exceeds 1 MB.");
|
|
14312
|
+
text2 = buffer.subarray(0, length).toString("utf8");
|
|
14313
|
+
} finally {
|
|
14314
|
+
await file.close();
|
|
14315
|
+
}
|
|
14316
|
+
}
|
|
14317
|
+
if (Buffer.byteLength(text2) > MAX_BODY) throw new Error("API data exceeds 1 MB.");
|
|
14318
|
+
let body;
|
|
14319
|
+
try {
|
|
14320
|
+
body = JSON.parse(text2);
|
|
14321
|
+
} catch {
|
|
14322
|
+
throw new Error("--data must contain valid JSON, or @file containing JSON.");
|
|
14323
|
+
}
|
|
14324
|
+
if (Buffer.byteLength(JSON.stringify(body)) > MAX_BODY) throw new Error("API data exceeds 1 MB.");
|
|
14325
|
+
return body;
|
|
14326
|
+
}
|
|
14327
|
+
async function runApiCommand(path, options, deps = {}) {
|
|
14328
|
+
const out = deps.out ?? ((text2) => {
|
|
14329
|
+
process.stdout.write(`${text2}
|
|
14330
|
+
`);
|
|
14331
|
+
});
|
|
14332
|
+
const err = deps.err ?? ((text2) => {
|
|
14333
|
+
process.stderr.write(`${text2}
|
|
14334
|
+
`);
|
|
14335
|
+
});
|
|
14336
|
+
const fail2 = deps.setExitCode ?? ((code) => {
|
|
14337
|
+
process.exitCode = code;
|
|
14338
|
+
});
|
|
14339
|
+
let registry;
|
|
14340
|
+
try {
|
|
14341
|
+
const method = (options.method ?? "GET").toUpperCase();
|
|
14342
|
+
if (!METHODS.includes(method)) throw new Error(`--method must be one of ${METHODS.join(", ")}.`);
|
|
14343
|
+
if (options.data !== void 0 && (method === "GET" || method === "HEAD")) throw new Error("GET and HEAD cannot include --data.");
|
|
14344
|
+
if (options.engineUrl && (options.backend || options.backendsConfig)) throw new Error("--engine-url cannot be combined with --backend or --backends-config.");
|
|
14345
|
+
if (Boolean(options.engineUrl) !== Boolean(options.engineTokenEnv)) throw new Error("Direct attachment requires both --engine-url and --engine-token-env.");
|
|
14346
|
+
if (!options.engineUrl && !options.backend) throw new Error("Select --backend or --engine-url with --engine-token-env explicitly.");
|
|
14347
|
+
if (options.backend === "local") throw new Error("Use an explicit HTTP engine URL or registered HTTP backend; local is not an API transport.");
|
|
14348
|
+
const requestPath = path ?? "/api/backend/handshake";
|
|
14349
|
+
if (requestPath.includes("#")) throw new Error("API paths cannot contain fragments.");
|
|
14350
|
+
if (!requestPath.startsWith("/api/") || requestPath.split("?")[0] !== "/api/backend/handshake" && !backendCapabilitiesForApiPath(requestPath.split("?")[0]).length) throw new Error("Supply an admitted /api/ path.");
|
|
14351
|
+
const body = await parseBody(options.data);
|
|
14352
|
+
const env = deps.env ?? process.env;
|
|
14353
|
+
const backendId = options.backend ?? "attached-engine";
|
|
14354
|
+
const connections = options.engineUrl ? [{ id: backendId, name: "Attached engine", url: options.engineUrl, bearerTokenEnv: options.engineTokenEnv }] : loadBackendConnectionConfig(options.backendsConfig);
|
|
14355
|
+
const connection = connections.find((row) => row.id === backendId);
|
|
14356
|
+
if (!connection) throw new Error("Backend is not registered.");
|
|
14357
|
+
if (options.engineUrl) backendBearerFromEnv(connection.bearerTokenEnv, env);
|
|
14358
|
+
const localHandshake = { protocolVersion: BACKEND_PROTOCOL_VERSION, engineId: "api-client", capabilities: [], platform: { os: process.platform, pathStyle: process.platform === "win32" ? "windows" : "posix" } };
|
|
14359
|
+
registry = new BackendConnectionRegistry({ ...options.engineUrl ? { connections } : { configPath: options.backendsConfig }, env, ...deps.fetch ? { fetch: deps.fetch } : {}, localHandshake });
|
|
14360
|
+
const response = await registry.request(backendId, requestPath, { method, ...body !== void 0 ? { body } : {} });
|
|
14361
|
+
const text2 = method === "HEAD" || response.status === 204 ? "" : await response.text();
|
|
14362
|
+
let data = text2 || null;
|
|
14363
|
+
if (text2 && /(?:application\/json|\+json)(?:;|$)/i.test(response.headers.get("content-type") ?? "")) {
|
|
14364
|
+
try {
|
|
14365
|
+
data = JSON.parse(text2);
|
|
14366
|
+
} catch {
|
|
14367
|
+
throw new Error(`Engine returned malformed JSON (HTTP ${response.status}).`);
|
|
14368
|
+
}
|
|
14369
|
+
}
|
|
14370
|
+
out(JSON.stringify({ ok: response.ok, status: response.status, data }));
|
|
14371
|
+
if (!response.ok) {
|
|
14372
|
+
err(JSON.stringify({ ok: false, status: response.status, error: `Engine request failed (HTTP ${response.status}).` }));
|
|
14373
|
+
fail2(2);
|
|
14374
|
+
}
|
|
14375
|
+
} catch (error) {
|
|
14376
|
+
err(JSON.stringify({ ok: false, status: error instanceof BackendConnectionError ? error.statusCode : null, error: error instanceof Error ? error.message : "API request failed." }));
|
|
14377
|
+
fail2(2);
|
|
14378
|
+
} finally {
|
|
14379
|
+
registry?.dispose();
|
|
14380
|
+
}
|
|
14381
|
+
}
|
|
14382
|
+
function registerApiCommand(program, deps = {}) {
|
|
14383
|
+
program.command("api [path]").description("Call a trusted engine API with deterministic JSON output (defaults to its handshake)").option("--method <method>", "GET, POST, PATCH, PUT, DELETE or HEAD", "GET").option("--data <json-or-@file>", "JSON body, or @regular-file containing JSON (at most 1 MB)").option("--backend <id>", "Registered HTTP engine ID").option("--backends-config <path>", "Operator backend registry JSON file").option("--engine-url <url>", "Attach directly to a trusted HTTP engine").option("--engine-token-env <name>", "Environment variable containing its engine token").action((path, options) => runApiCommand(path, options, deps));
|
|
14384
|
+
}
|
|
14277
14385
|
export {
|
|
14278
14386
|
registerAdGraphCommand,
|
|
14279
14387
|
registerAgentAssureCommand,
|
|
14388
|
+
registerApiCommand,
|
|
14280
14389
|
registerAssumptionHuntCommand,
|
|
14281
14390
|
registerAuditCommand,
|
|
14282
14391
|
registerBenchCommand,
|