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,14 +3,14 @@ import { createRequire as __0CreateRequire } from "node:module";
|
|
|
3
3
|
const require = __0CreateRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
eventBus
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ULRLUXSS.js";
|
|
7
7
|
import {
|
|
8
8
|
compareFindingsByBusinessPriority,
|
|
9
9
|
estimateCost,
|
|
10
10
|
modelProvider,
|
|
11
11
|
splitCost,
|
|
12
12
|
validateScanPlan
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-GYEYTNHK.js";
|
|
14
14
|
|
|
15
15
|
// packages/core/dist/agent/cost-ledger.js
|
|
16
16
|
var recordedResults = /* @__PURE__ */ new WeakMap();
|
|
@@ -3,7 +3,7 @@ import { createRequire as __0CreateRequire } from "node:module";
|
|
|
3
3
|
const require = __0CreateRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
resolveOsecDbPath
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-72PU46MS.js";
|
|
7
7
|
import {
|
|
8
8
|
BACKEND_PROTOCOL_VERSION,
|
|
9
9
|
BackendDescriptorSchema,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
backendCapabilitiesForApiPath,
|
|
13
13
|
homeStateDir,
|
|
14
14
|
parseBackendHandshake
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-GYEYTNHK.js";
|
|
16
16
|
import {
|
|
17
17
|
external_exports
|
|
18
18
|
} from "./chunk-5XOYTAOK.js";
|
|
@@ -46,6 +46,9 @@ function resolveWorkerRepoRoot(moduleUrl = import.meta.url) {
|
|
|
46
46
|
directory = parent;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
+
function resolveWorkerDemoRoot(repoRoot, bundleRoot) {
|
|
50
|
+
return existsSync(join(bundleRoot, "dist/worker-assets/demo-target")) ? join(bundleRoot, "dist/worker-assets") : join(repoRoot, "assets/worker-demo");
|
|
51
|
+
}
|
|
49
52
|
function validateWorkerOptions(options) {
|
|
50
53
|
if (options.enginePort !== void 0 && (!Number.isInteger(options.enginePort) || options.enginePort < 1 || options.enginePort > 65535)) throw new Error("enginePort must be 1-65535");
|
|
51
54
|
if (options.ssh && (!SSH_HOST_PATTERN.test(options.ssh) || options.ssh.startsWith("-"))) {
|
|
@@ -116,7 +119,7 @@ async function deployWorker(options, runner = createRunner(options)) {
|
|
|
116
119
|
}
|
|
117
120
|
}
|
|
118
121
|
execFileSync("tar", ["-czf", join(staging, "bundle.tar.gz"), "-C", bundleRoot, "dist"], { stdio: "inherit", env: { ...process.env, COPYFILE_DISABLE: "1" } });
|
|
119
|
-
const demoRoot =
|
|
122
|
+
const demoRoot = resolveWorkerDemoRoot(repoRoot, bundleRoot);
|
|
120
123
|
if (!options.targetGit) execFileSync("tar", ["-czf", join(staging, "demo-target.tar.gz"), "-C", demoRoot, "demo-target"], { stdio: "inherit", env: { ...process.env, COPYFILE_DISABLE: "1" } });
|
|
121
124
|
shell(`for entry in /proc/[0-9]*/cwd; do
|
|
122
125
|
test "$(readlink "$entry" 2>/dev/null)" = "${REMOTE_DIR}" || continue
|
|
@@ -425,6 +428,9 @@ var BackendConnectionRegistry = class {
|
|
|
425
428
|
#descriptors = /* @__PURE__ */ new Map();
|
|
426
429
|
#pins = /* @__PURE__ */ new Map();
|
|
427
430
|
#handshakes = /* @__PURE__ */ new Map();
|
|
431
|
+
// Bind the safe classification to the exact returned view, so concurrent
|
|
432
|
+
// reprobes cannot replace another caller's failure. No cause crosses the API.
|
|
433
|
+
#disconnectedStatuses = /* @__PURE__ */ new WeakMap();
|
|
428
434
|
#pending = /* @__PURE__ */ new Map();
|
|
429
435
|
#env;
|
|
430
436
|
#fetch;
|
|
@@ -529,7 +535,7 @@ var BackendConnectionRegistry = class {
|
|
|
529
535
|
delete descriptor.error;
|
|
530
536
|
try {
|
|
531
537
|
const response = await this.#send(row, "/api/backend/handshake", {});
|
|
532
|
-
if (!response.ok) throw new BackendConnectionError("Backend handshake was rejected.", response.status
|
|
538
|
+
if (!response.ok) throw new BackendConnectionError("Backend handshake was rejected.", response.status);
|
|
533
539
|
const raw = BackendHandshakeSchema.parse(await response.json());
|
|
534
540
|
descriptor.protocolVersion = raw.protocolVersion;
|
|
535
541
|
if (raw.protocolVersion !== BACKEND_PROTOCOL_VERSION) {
|
|
@@ -549,7 +555,9 @@ var BackendConnectionRegistry = class {
|
|
|
549
555
|
if (descriptor.status !== "incompatible") descriptor.status = "disconnected";
|
|
550
556
|
descriptor.error = error instanceof BackendConnectionError ? error.message : "Backend connection failed.";
|
|
551
557
|
this.#handshakes.delete(id);
|
|
552
|
-
|
|
558
|
+
const backend = structuredClone(descriptor);
|
|
559
|
+
this.#disconnectedStatuses.set(backend, error instanceof BackendConnectionError ? error.statusCode : 502);
|
|
560
|
+
return { backend, error: descriptor.error };
|
|
553
561
|
}
|
|
554
562
|
}
|
|
555
563
|
async request(id, path, options = {}) {
|
|
@@ -559,7 +567,7 @@ var BackendConnectionRegistry = class {
|
|
|
559
567
|
const canonical = apiPath(path);
|
|
560
568
|
const cached = this.#handshakes.get(id);
|
|
561
569
|
const view = cached && Date.now() - cached.at < 5e3 ? { backend: this.#descriptors.get(id) } : await this.handshake(id);
|
|
562
|
-
if (view.backend.status !== "connected") throw new BackendConnectionError(view.backend.error ?? "Backend is disconnected.", view.backend.status === "incompatible" ? 409 : 503);
|
|
570
|
+
if (view.backend.status !== "connected") throw new BackendConnectionError(view.backend.error ?? "Backend is disconnected.", this.#disconnectedStatuses.get(view.backend) ?? (view.backend.status === "incompatible" ? 409 : 503));
|
|
563
571
|
for (const required of capabilities(canonical)) if (!view.backend.capabilities.includes(required)) throw new BackendConnectionError(`Backend does not support ${required}.`, 409);
|
|
564
572
|
try {
|
|
565
573
|
return await this.#send(row, canonical, options);
|
|
@@ -3,7 +3,7 @@ import { createRequire as __0CreateRequire } from "node:module";
|
|
|
3
3
|
const require = __0CreateRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
createPresentationEvent
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GYEYTNHK.js";
|
|
7
7
|
|
|
8
8
|
// packages/core/dist/events/bus.js
|
|
9
9
|
function presentationEventSink(sink, options = {}) {
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
formatAuditReport,
|
|
6
6
|
formatReport,
|
|
7
7
|
formatReviewReport
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-FBZBJYZS.js";
|
|
9
9
|
import {
|
|
10
10
|
executeManagedOperation
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-MOEVVXML.js";
|
|
12
12
|
import {
|
|
13
13
|
deleteSession,
|
|
14
14
|
isValidSessionId,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
sessionsDir,
|
|
19
19
|
setSessionArchived,
|
|
20
20
|
storedSessionMetadata
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-YJGPPPUB.js";
|
|
22
22
|
import {
|
|
23
23
|
applyWebConsoleRuntimeSelection,
|
|
24
24
|
createWebConsoleRuntime,
|
|
@@ -28,21 +28,21 @@ import {
|
|
|
28
28
|
reloadWebConsoleRuntimeConnection,
|
|
29
29
|
sanitizeComposerText,
|
|
30
30
|
savedWebRuntimeSelection
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-ZPVSDB63.js";
|
|
32
32
|
import {
|
|
33
33
|
checkRuntimeAvailability
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-MNK373HF.js";
|
|
35
35
|
import {
|
|
36
36
|
consoleExecutionProfile,
|
|
37
37
|
createIsolatedConsoleSession,
|
|
38
38
|
loadServicePluginConnections
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-KCABBZHN.js";
|
|
40
40
|
import {
|
|
41
41
|
resolveEngagement
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-A7G6S5RA.js";
|
|
43
43
|
import {
|
|
44
44
|
getSettings
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-OILVEROI.js";
|
|
46
46
|
import {
|
|
47
47
|
source_default
|
|
48
48
|
} from "./chunk-HLFS6WV2.js";
|
|
@@ -71,10 +71,10 @@ import {
|
|
|
71
71
|
runReproductionBundle,
|
|
72
72
|
runResearch,
|
|
73
73
|
toToolContextJevRuntime
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-3MWQNNJU.js";
|
|
75
75
|
import {
|
|
76
76
|
generatePdfReport
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-YP2DHYNI.js";
|
|
78
78
|
import {
|
|
79
79
|
DockerRunner,
|
|
80
80
|
HuntMemoryStore,
|
|
@@ -90,13 +90,13 @@ import {
|
|
|
90
90
|
sendOperatorMessage,
|
|
91
91
|
withWorkflowAuditExecutionPolicy,
|
|
92
92
|
workflowPolicyRuntime
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-SIR7XW2S.js";
|
|
94
94
|
import {
|
|
95
95
|
oracleForCategory
|
|
96
96
|
} from "./chunk-PAE7ZAV6.js";
|
|
97
97
|
import {
|
|
98
98
|
budgetNativeRuntime
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-SSPP64FF.js";
|
|
100
100
|
import {
|
|
101
101
|
applySourceFixCandidate,
|
|
102
102
|
loadSourceFixProjectInputs,
|
|
@@ -106,7 +106,7 @@ import {
|
|
|
106
106
|
runSourceFix,
|
|
107
107
|
saveSourceFixProjectInputs,
|
|
108
108
|
verifySourceFixCandidate
|
|
109
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-AFJ2UMPR.js";
|
|
110
110
|
import {
|
|
111
111
|
LearningStoreError,
|
|
112
112
|
SecurityWorkflowStore,
|
|
@@ -115,32 +115,33 @@ import {
|
|
|
115
115
|
listOsecRunDatabasePaths,
|
|
116
116
|
osecDB,
|
|
117
117
|
resolveOsecDbPath
|
|
118
|
-
} from "./chunk-
|
|
118
|
+
} from "./chunk-72PU46MS.js";
|
|
119
119
|
import {
|
|
120
120
|
evidenceKindForFinding,
|
|
121
121
|
executePocSteps
|
|
122
122
|
} from "./chunk-XPDJE537.js";
|
|
123
123
|
import {
|
|
124
|
-
LlmApiRuntime
|
|
125
|
-
|
|
124
|
+
LlmApiRuntime,
|
|
125
|
+
features
|
|
126
|
+
} from "./chunk-HS2NQ7K6.js";
|
|
126
127
|
import {
|
|
127
128
|
WORKBENCH_BROKER_WORKSPACE,
|
|
128
129
|
isAdmittedSmolvmWorkbench,
|
|
129
130
|
runWorkbenchBrokerProgram
|
|
130
|
-
} from "./chunk-
|
|
131
|
+
} from "./chunk-XOVYV7TT.js";
|
|
131
132
|
import {
|
|
132
133
|
eventBus
|
|
133
|
-
} from "./chunk-
|
|
134
|
+
} from "./chunk-ULRLUXSS.js";
|
|
134
135
|
import {
|
|
135
136
|
redactSensitiveHeaders
|
|
136
|
-
} from "./chunk-
|
|
137
|
+
} from "./chunk-VJBEB2K6.js";
|
|
137
138
|
import {
|
|
138
139
|
ScopePolicy,
|
|
139
140
|
getScopeEnforcementState,
|
|
140
141
|
loadScope,
|
|
141
142
|
normalizeScopeHostname,
|
|
142
143
|
withScopeEnforcement
|
|
143
|
-
} from "./chunk-
|
|
144
|
+
} from "./chunk-RZZ6VPRY.js";
|
|
144
145
|
import {
|
|
145
146
|
sanitizedEnv
|
|
146
147
|
} from "./chunk-5IBCBQEH.js";
|
|
@@ -166,7 +167,7 @@ import {
|
|
|
166
167
|
resolvePersistedScanResume,
|
|
167
168
|
severityRank,
|
|
168
169
|
validateScanPlan
|
|
169
|
-
} from "./chunk-
|
|
170
|
+
} from "./chunk-GYEYTNHK.js";
|
|
170
171
|
import {
|
|
171
172
|
external_exports
|
|
172
173
|
} from "./chunk-5XOYTAOK.js";
|
|
@@ -226,7 +227,7 @@ async function loadCoreModule() {
|
|
|
226
227
|
if (!coreModulePromise) {
|
|
227
228
|
const srcUrl = new URL("../../../core/src/index.ts", import.meta.url);
|
|
228
229
|
const srcExists = process.versions.bun && existsSync(fileURLToPath(srcUrl));
|
|
229
|
-
coreModulePromise = srcExists ? import(srcUrl.href) : import("./dist-
|
|
230
|
+
coreModulePromise = srcExists ? import(srcUrl.href) : import("./dist-ONIRKDH6.js");
|
|
230
231
|
}
|
|
231
232
|
return coreModulePromise;
|
|
232
233
|
}
|
|
@@ -317,12 +318,13 @@ function printCrossValidatedLeads(summary) {
|
|
|
317
318
|
}
|
|
318
319
|
}
|
|
319
320
|
function attachedAssessmentTarget(opts) {
|
|
320
|
-
const accepted = /* @__PURE__ */ new Set(["target", "targetType", "depth", "format", "runtime", "timeout", "verbose", "plan", "signal", "suppressOutput", "suppressUi", "dbPath", "reportPath", "onEvent", "onReport", "onOutcome", "sessionUiFactory", "costCeilingUsd", "embedded", "mode", "reviewStrategy"]);
|
|
321
|
+
const accepted = /* @__PURE__ */ new Set(["target", "targetType", "depth", "format", "runtime", "timeout", "verbose", "plan", "signal", "suppressOutput", "suppressUi", "dbPath", "reportPath", "onEvent", "onReport", "onOutcome", "sessionUiFactory", "costCeilingUsd", "embedded", "mode", "reviewStrategy", "reviewProfile"]);
|
|
321
322
|
const inactiveFalse = /* @__PURE__ */ new Set(["changedOnly", "race", "egats", "allowScanners", "seedOnly", "npmDynamicDiscovery", "emitPrDryRun"]);
|
|
322
323
|
const unsupported = Object.entries(opts).filter(([key, value]) => value !== void 0 && !accepted.has(key) && (value !== false || !inactiveFalse.has(key))).map(([key]) => key);
|
|
323
324
|
if (opts.runtime !== "api" && opts.runtime !== "auto") unsupported.push("runtime");
|
|
324
325
|
if (opts.mode !== void 0 && opts.mode !== "web") unsupported.push("mode");
|
|
325
326
|
if (opts.reviewStrategy !== void 0 && opts.reviewStrategy !== "lenses") unsupported.push("reviewStrategy");
|
|
327
|
+
if (opts.reviewProfile !== void 0 && opts.reviewProfile !== "default") unsupported.push("reviewProfile");
|
|
326
328
|
if (unsupported.length) throw new Error(`The running engine cannot represent these assessment overrides: ${[...new Set(unsupported)].join(", ")}. Configure or select an engine that supports them; no separate assessment was started.`);
|
|
327
329
|
const prefix = { "npm-package": "npm:", "pypi-package": "pypi:", "cargo-package": "cargo:", "oci-image": "oci:", "source-code": "source:" }[opts.targetType ?? ""];
|
|
328
330
|
if (prefix === "source:" || opts.target.startsWith("source:")) {
|
|
@@ -392,7 +394,7 @@ async function runUnified(opts) {
|
|
|
392
394
|
if (opts.plan) validateScanPlan(opts.plan);
|
|
393
395
|
const { target, format, runtime, timeout } = opts;
|
|
394
396
|
const depth = opts.plan?.depth ?? opts.depth;
|
|
395
|
-
const attachedEngine = !opts.embedded && !opts.resumeScanId ? await (await import("./local-engine-
|
|
397
|
+
const attachedEngine = !opts.embedded && !opts.resumeScanId ? await (await import("./local-engine-ZRTZVSSX.js")).connectLocalEngine({ dbPath: opts.dbPath, workspace: process.cwd(), model: opts.model, scopePath: opts.scopeFile }) : null;
|
|
396
398
|
if (attachedEngine) {
|
|
397
399
|
try {
|
|
398
400
|
opts.signal?.throwIfAborted();
|
|
@@ -416,7 +418,7 @@ async function runUnified(opts) {
|
|
|
416
418
|
if (opts.embedded) throw new Error("--branch-from requires --resume <run-id>");
|
|
417
419
|
process.exit(2);
|
|
418
420
|
}
|
|
419
|
-
const { branchJournal } = await import("./dist-
|
|
421
|
+
const { branchJournal } = await import("./dist-ONIRKDH6.js");
|
|
420
422
|
const result = branchJournal({
|
|
421
423
|
runId: effectiveResumeScanId,
|
|
422
424
|
fromEntry: opts.branchFromEntry
|
|
@@ -475,7 +477,7 @@ async function runUnified(opts) {
|
|
|
475
477
|
if (opts.sessionUiFactory) {
|
|
476
478
|
inkUI = await opts.sessionUiFactory({ target, depth, mode: mode2 });
|
|
477
479
|
} else {
|
|
478
|
-
const { renderScanStream } = await import("./scan-stream-
|
|
480
|
+
const { renderScanStream } = await import("./scan-stream-HJVTWZ44.js");
|
|
479
481
|
inkUI = renderScanStream({ version: VERSION, target, depth, mode: mode2 });
|
|
480
482
|
}
|
|
481
483
|
eventHandler = (event) => {
|
|
@@ -502,7 +504,7 @@ async function runUnified(opts) {
|
|
|
502
504
|
reviewStrategy: _reviewStrategy,
|
|
503
505
|
...assessmentOptions
|
|
504
506
|
} = opts;
|
|
505
|
-
const retainedStore = opts.embedded || attachedEngine ? void 0 : new (await import("./dist-
|
|
507
|
+
const retainedStore = opts.embedded || attachedEngine ? void 0 : new (await import("./dist-QLMPTFT7.js")).SecurityWorkflowStore(opts.dbPath);
|
|
506
508
|
const scanIds = [];
|
|
507
509
|
const dbPaths = [];
|
|
508
510
|
let assessment;
|
|
@@ -998,7 +1000,7 @@ async function readConversationCatalog(options = {}) {
|
|
|
998
1000
|
const files = await Promise.all(candidates.slice(0, MAX_FILES).map(async (entry) => {
|
|
999
1001
|
try {
|
|
1000
1002
|
const info = await stat(join3(dir, entry.name));
|
|
1001
|
-
return { name: entry.name,
|
|
1003
|
+
return { name: entry.name, modified: info.mtimeMs };
|
|
1002
1004
|
} catch {
|
|
1003
1005
|
return null;
|
|
1004
1006
|
}
|
|
@@ -1006,27 +1008,23 @@ async function readConversationCatalog(options = {}) {
|
|
|
1006
1008
|
const ordered = files.filter((file) => file !== null).sort((a, b) => b.modified - a.modified || a.name.localeCompare(b.name));
|
|
1007
1009
|
let bytes = 0;
|
|
1008
1010
|
for (const file of ordered) {
|
|
1009
|
-
if (file.size > MAX_FILE_BYTES || bytes + file.size > MAX_READ_BYTES) {
|
|
1010
|
-
truncated = true;
|
|
1011
|
-
continue;
|
|
1012
|
-
}
|
|
1013
|
-
bytes += file.size;
|
|
1014
1011
|
let handle;
|
|
1015
1012
|
try {
|
|
1016
1013
|
handle = await open(join3(dir, file.name), constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
|
|
1017
1014
|
const info = await handle.stat();
|
|
1018
|
-
if (!info.isFile() || info.size >
|
|
1015
|
+
if (!info.isFile() || info.size > MAX_FILE_BYTES || bytes + info.size > MAX_READ_BYTES) {
|
|
1019
1016
|
truncated = true;
|
|
1020
1017
|
continue;
|
|
1021
1018
|
}
|
|
1022
|
-
|
|
1019
|
+
bytes += info.size;
|
|
1020
|
+
const buffer = Buffer.alloc(info.size + 1);
|
|
1023
1021
|
let bytesRead = 0;
|
|
1024
1022
|
while (bytesRead < buffer.length) {
|
|
1025
1023
|
const chunk = await handle.read(buffer, bytesRead, buffer.length - bytesRead, bytesRead);
|
|
1026
1024
|
if (!chunk.bytesRead) break;
|
|
1027
1025
|
bytesRead += chunk.bytesRead;
|
|
1028
1026
|
}
|
|
1029
|
-
if (bytesRead >
|
|
1027
|
+
if (bytesRead > info.size) {
|
|
1030
1028
|
truncated = true;
|
|
1031
1029
|
continue;
|
|
1032
1030
|
}
|
|
@@ -1172,7 +1170,7 @@ function assertSessionContract(session) {
|
|
|
1172
1170
|
if (!session || typeof session !== "object" || !session.ready || typeof session.ready.then !== "function") {
|
|
1173
1171
|
throw new Error("Built engine does not implement asynchronous session readiness");
|
|
1174
1172
|
}
|
|
1175
|
-
for (const method of ["send", "cleanup", "exportCheckpoint", "prepareHandoff", "
|
|
1173
|
+
for (const method of ["send", "cleanup", "exportCheckpoint", "prepareHandoff", "configureEngagement", "configureWorkspace", "clearConversation", "stopPersistentAgent", "stopPersistentAgents"]) {
|
|
1176
1174
|
if (typeof session[method] !== "function") throw new Error(`Built engine omitted ${method}`);
|
|
1177
1175
|
}
|
|
1178
1176
|
}
|
|
@@ -1400,10 +1398,6 @@ function withDevEngineUpdates(initial, config, closeStore) {
|
|
|
1400
1398
|
get(_target, key) {
|
|
1401
1399
|
if (key === "send") return send;
|
|
1402
1400
|
if (key === "cleanup") return cleanup;
|
|
1403
|
-
if (key === "setAutonomyMode") return (mode2) => {
|
|
1404
|
-
current.setAutonomyMode(mode2);
|
|
1405
|
-
handoffCandidate?.setAutonomyMode(mode2);
|
|
1406
|
-
};
|
|
1407
1401
|
if (key === "configureWorkspace") return (path) => {
|
|
1408
1402
|
current.configureWorkspace(path);
|
|
1409
1403
|
};
|
|
@@ -1433,10 +1427,10 @@ var CONSOLE_JEV_FEATURES = /* @__PURE__ */ new Set([
|
|
|
1433
1427
|
"foxguard"
|
|
1434
1428
|
]);
|
|
1435
1429
|
function consoleJevRuntimeFromEnvironment() {
|
|
1436
|
-
const
|
|
1430
|
+
const features2 = [...new Set(
|
|
1437
1431
|
(process.env["ZERO_JEV_FEATURES"] ?? "").split(",").map((feature) => feature.trim()).filter((feature) => CONSOLE_JEV_FEATURES.has(feature))
|
|
1438
1432
|
)];
|
|
1439
|
-
return toToolContextJevRuntime(createConsoleJevRuntime({ provider: "direct", features }));
|
|
1433
|
+
return toToolContextJevRuntime(createConsoleJevRuntime({ provider: "direct", features: features2 }));
|
|
1440
1434
|
}
|
|
1441
1435
|
function createLocalConsoleSession(config, dbPath, options = {}) {
|
|
1442
1436
|
config = { ...config, codebaseLearning: config.codebaseLearning ?? true };
|
|
@@ -1802,8 +1796,9 @@ function scopePolicy(value) {
|
|
|
1802
1796
|
}
|
|
1803
1797
|
function configuration(value) {
|
|
1804
1798
|
const raw = object(value, "Configuration");
|
|
1805
|
-
allowedKeys(raw, ["title", "target", "autonomyMode", "scope", "runtime", "workspacePath", "modelSource"]);
|
|
1799
|
+
allowedKeys(raw, ["title", "target", "autonomyMode", "scope", "runtime", "workspacePath", "modelSource", "webSearchEnabled"]);
|
|
1806
1800
|
const result = {};
|
|
1801
|
+
if (raw.webSearchEnabled !== void 0) result.webSearchEnabled = external_exports.boolean().parse(raw.webSearchEnabled);
|
|
1807
1802
|
if (raw.modelSource !== void 0) result.modelSource = external_exports.object({ kind: external_exports.literal("local"), grantId: external_exports.string().uuid() }).strict().parse(raw.modelSource);
|
|
1808
1803
|
if (raw.workspacePath !== void 0) result.workspacePath = text(raw.workspacePath, "Workspace folder", MAX_TARGET_LENGTH);
|
|
1809
1804
|
if (raw.title !== void 0) result.title = text(raw.title, "Title", 200);
|
|
@@ -1996,7 +1991,7 @@ var ConsoleGateway = class {
|
|
|
1996
1991
|
}
|
|
1997
1992
|
#createRecord(value) {
|
|
1998
1993
|
const raw = object(value, "Session");
|
|
1999
|
-
allowedKeys(raw, ["target", "role", "autonomyMode", "title", "scope", "runtime", "findingId", "findingIntent", "modelSource", "workflowId", "skillId"]);
|
|
1994
|
+
allowedKeys(raw, ["target", "role", "autonomyMode", "title", "scope", "runtime", "findingId", "findingIntent", "modelSource", "workflowId", "skillId", "webSearchEnabled"]);
|
|
2000
1995
|
const id = this.#createId();
|
|
2001
1996
|
if (!isValidSessionId(id) || this.#sessions.has(id)) throw new ConsoleGatewayError("Generated session ID is invalid or already in use.", 500);
|
|
2002
1997
|
const now = this.#now().toISOString();
|
|
@@ -2046,6 +2041,7 @@ var ConsoleGateway = class {
|
|
|
2046
2041
|
createdAt: now,
|
|
2047
2042
|
updatedAt: now,
|
|
2048
2043
|
target: raw.target === void 0 ? "" : text(raw.target, "Target", MAX_TARGET_LENGTH, true),
|
|
2044
|
+
webSearchEnabled: raw.webSearchEnabled === void 0 ? features.webSearch : external_exports.boolean().parse(raw.webSearchEnabled),
|
|
2049
2045
|
role: raw.role === void 0 ? "audit" : role(raw.role),
|
|
2050
2046
|
autonomyMode: raw.autonomyMode === void 0 ? DEFAULT_AUTONOMY_MODE : mode(raw.autonomyMode),
|
|
2051
2047
|
title: raw.title === void 0 ? "New chat" : text(raw.title, "Title", 200),
|
|
@@ -2275,6 +2271,11 @@ var ConsoleGateway = class {
|
|
|
2275
2271
|
async configure(id, value) {
|
|
2276
2272
|
const managed = this.#requireOpen(id);
|
|
2277
2273
|
const input = configuration(value);
|
|
2274
|
+
if (input.webSearchEnabled !== void 0) {
|
|
2275
|
+
this.#assertIdle(managed);
|
|
2276
|
+
if ([...managed.workers.values()].some((worker) => Object.hasOwn(ACTIVE_WORKERS, worker.status))) throw new ConsoleGatewayError("Finish active agents before changing web search.", 409);
|
|
2277
|
+
if (managed.session && !managed.session.setWebSearchEnabled) throw new ConsoleGatewayError("This engine does not support changing web search. Start a new chat with the setting selected.", 409);
|
|
2278
|
+
}
|
|
2278
2279
|
if (input.modelSource) {
|
|
2279
2280
|
this.#assertIdle(managed);
|
|
2280
2281
|
if (!this.#options.remoteProviderRelays) throw new ConsoleGatewayError("This host does not support a local model relay.", 409);
|
|
@@ -2347,7 +2348,7 @@ var ConsoleGateway = class {
|
|
|
2347
2348
|
const hadRuntime = managed.runtime !== null;
|
|
2348
2349
|
await this.#ensureSession(managed);
|
|
2349
2350
|
if (hadRuntime && managed.runtime) {
|
|
2350
|
-
managed.info = managed.modelRelayId ? { ...describeWebConsoleRuntime(managed.runtime), modelSource: "local" } : await reloadWebConsoleRuntimeConnection(managed.runtime);
|
|
2351
|
+
managed.info = managed.modelRelayId ? { ...describeWebConsoleRuntime(managed.runtime), modelSource: "local" } : await reloadWebConsoleRuntimeConnection(managed.runtime, { allowChatGptPlan: this.#options.allowChatGptPlan !== false });
|
|
2351
2352
|
managed.session?.reconfigureRuntime({ contextWindowTokens: managed.info.contextWindowTokens });
|
|
2352
2353
|
}
|
|
2353
2354
|
if (managed.status !== "closed") managed.status = "ready";
|
|
@@ -2432,7 +2433,7 @@ var ConsoleGateway = class {
|
|
|
2432
2433
|
async resume(id, value = {}) {
|
|
2433
2434
|
const stored = this.#stored(id);
|
|
2434
2435
|
const raw = object(value, "Resume configuration");
|
|
2435
|
-
allowedKeys(raw, ["title", "role", "runtime", "autonomyMode", "target", "scope"]);
|
|
2436
|
+
allowedKeys(raw, ["title", "role", "runtime", "autonomyMode", "target", "scope", "webSearchEnabled"]);
|
|
2436
2437
|
if (raw.title !== void 0) text(raw.title, "Title", 200);
|
|
2437
2438
|
if (raw.target !== void 0) text(raw.target, "Target", MAX_TARGET_LENGTH, true);
|
|
2438
2439
|
if (raw.role !== void 0) role(raw.role);
|
|
@@ -2453,6 +2454,7 @@ var ConsoleGateway = class {
|
|
|
2453
2454
|
const defaults2 = {
|
|
2454
2455
|
autonomyMode: "standard",
|
|
2455
2456
|
target: configuration2?.target ?? stored.target ?? "",
|
|
2457
|
+
...configuration2?.webSearchEnabled !== void 0 ? { webSearchEnabled: configuration2.webSearchEnabled } : {},
|
|
2456
2458
|
...configuration2?.workflowId ? { workflowId: configuration2.workflowId } : {},
|
|
2457
2459
|
...configuration2?.skillId ? { skillId: configuration2.skillId } : {},
|
|
2458
2460
|
...configuration2 ? { role: configuration2.role, runtime: configuration2.runtime } : stored.model ? { runtime: { model: stored.model } } : {}
|
|
@@ -2462,6 +2464,7 @@ var ConsoleGateway = class {
|
|
|
2462
2464
|
managed.initialMessages = initialMessages;
|
|
2463
2465
|
managed.workspacePath = stored.cwd;
|
|
2464
2466
|
managed.savedId = id;
|
|
2467
|
+
managed.resumePending = true;
|
|
2465
2468
|
managed.title = raw.title === void 0 ? stored.summary ?? stored.preview ?? "Resumed chat" : managed.title;
|
|
2466
2469
|
if (configuration2?.modelSource === "local") {
|
|
2467
2470
|
managed.requiresModelRelay = true;
|
|
@@ -2760,10 +2763,10 @@ var ConsoleGateway = class {
|
|
|
2760
2763
|
const skillDiscoveryOptions = this.#options.skillDiscoveryOptions ? () => this.#options.skillDiscoveryOptions(managed.workspacePath ?? this.#projectPath ?? process.cwd()) : void 0;
|
|
2761
2764
|
if (managed.modelRelayId && consoleExecutionProfile(this.#options.homeDir) === "smolvm") throw new ConsoleGatewayError("Local model relays currently require the operator-selected host execution profile on this host.", 409);
|
|
2762
2765
|
if (this.#options.createSession) {
|
|
2763
|
-
session = await this.#options.createSession({ scanId: managed.id, target: managed.target, role: managed.role, autonomyMode: managed.autonomyMode, scope: managed.scope, skillDiscoveryOptions, skillAuthoring, skillEditor, workspaceRoot: managed.workspacePath ?? this.#projectPath, initialMessages: managed.initialMessages, codebaseLearning: true, ...this.#sourceLearningStore ? { learningStore: this.#sourceLearningStore } : {}, ...this.#workflowLifecycle ? { workflowLifecycle: this.#workflowCallbacks(managed) } : {}, ...callbacks });
|
|
2766
|
+
session = await this.#options.createSession({ scanId: managed.id, target: managed.target, role: managed.role, autonomyMode: managed.autonomyMode, webSearchEnabled: managed.webSearchEnabled, scope: managed.scope, skillDiscoveryOptions, skillAuthoring, skillEditor, workspaceRoot: managed.workspacePath ?? this.#projectPath, initialMessages: managed.initialMessages, codebaseLearning: true, ...this.#sourceLearningStore ? { learningStore: this.#sourceLearningStore } : {}, ...this.#workflowLifecycle ? { workflowLifecycle: this.#workflowCallbacks(managed) } : {}, ...callbacks });
|
|
2764
2767
|
} else if (consoleExecutionProfile(this.#options.homeDir) === "smolvm") {
|
|
2765
2768
|
if (!managed.runtime) {
|
|
2766
|
-
const created = await createWebConsoleRuntime(managed.selection);
|
|
2769
|
+
const created = await createWebConsoleRuntime(managed.selection, { allowChatGptPlan: this.#options.allowChatGptPlan !== false });
|
|
2767
2770
|
managed.runtime = created.runtime;
|
|
2768
2771
|
managed.info = created.info;
|
|
2769
2772
|
}
|
|
@@ -2775,6 +2778,7 @@ var ConsoleGateway = class {
|
|
|
2775
2778
|
target: managed.target,
|
|
2776
2779
|
role: managed.role,
|
|
2777
2780
|
autonomyMode: managed.autonomyMode,
|
|
2781
|
+
webSearchEnabled: managed.webSearchEnabled,
|
|
2778
2782
|
scope: managed.scope,
|
|
2779
2783
|
initialMessages: managed.initialMessages,
|
|
2780
2784
|
skillDiscoveryOptions,
|
|
@@ -2801,7 +2805,7 @@ var ConsoleGateway = class {
|
|
|
2801
2805
|
} else {
|
|
2802
2806
|
managed.execution = { backend: "local", status: "ready", workspacePath: this.#projectPath };
|
|
2803
2807
|
if (!managed.runtime) {
|
|
2804
|
-
const created = await createWebConsoleRuntime(managed.selection);
|
|
2808
|
+
const created = await createWebConsoleRuntime(managed.selection, { allowChatGptPlan: this.#options.allowChatGptPlan !== false });
|
|
2805
2809
|
managed.runtime = created.runtime;
|
|
2806
2810
|
managed.info = created.info;
|
|
2807
2811
|
}
|
|
@@ -2820,6 +2824,7 @@ var ConsoleGateway = class {
|
|
|
2820
2824
|
target: managed.target,
|
|
2821
2825
|
role: managed.role,
|
|
2822
2826
|
autonomyMode: managed.autonomyMode,
|
|
2827
|
+
webSearchEnabled: managed.webSearchEnabled,
|
|
2823
2828
|
scope: managed.scope,
|
|
2824
2829
|
initialMessages: managed.initialMessages,
|
|
2825
2830
|
codebaseLearning: true,
|
|
@@ -2855,6 +2860,7 @@ var ConsoleGateway = class {
|
|
|
2855
2860
|
throw new ConsoleGatewayError("Console session is closed.", 410);
|
|
2856
2861
|
}
|
|
2857
2862
|
managed.session = session;
|
|
2863
|
+
managed.resumePending = false;
|
|
2858
2864
|
if (managed.status === "failed") managed.status = "ready";
|
|
2859
2865
|
managed.initialMessages = [];
|
|
2860
2866
|
return session;
|
|
@@ -3004,14 +3010,17 @@ var ConsoleGateway = class {
|
|
|
3004
3010
|
onUsage: (usage) => {
|
|
3005
3011
|
managed.usage.inputTokens += usage.inputTokens;
|
|
3006
3012
|
managed.usage.outputTokens += usage.outputTokens;
|
|
3007
|
-
const model = managed.runtime?.resolvedModel() ?? managed.info?.model;
|
|
3008
|
-
if (model && Object.hasOwn(MODEL_PRICING, model)) {
|
|
3009
|
-
if (managed.usage.inputTokens === usage.inputTokens && managed.usage.outputTokens === usage.outputTokens) managed.usage.costUnavailable = false;
|
|
3013
|
+
const model = usage.kind === "worker" ? usage.model : usage.model ?? managed.runtime?.resolvedModel() ?? managed.info?.model;
|
|
3014
|
+
if (!usage.usageUnavailable && model && Object.hasOwn(MODEL_PRICING, model)) {
|
|
3015
|
+
if (managed.usage.costUsd === void 0 && managed.usage.inputTokens === usage.inputTokens && managed.usage.outputTokens === usage.outputTokens) managed.usage.costUnavailable = false;
|
|
3010
3016
|
managed.usage.costUsd = (managed.usage.costUsd ?? 0) + estimateCost(usage, model);
|
|
3011
3017
|
managed.usage.costKind = "estimated";
|
|
3012
|
-
} else
|
|
3018
|
+
} else {
|
|
3019
|
+
managed.usage.costUnavailable = true;
|
|
3020
|
+
managed.usage.costUsd ??= 0;
|
|
3021
|
+
}
|
|
3013
3022
|
if (usage.kind === "planner") managed.contextInputTokens = usage.inputTokens;
|
|
3014
|
-
this.#emit(managed, { type: "usage", usage: { ...usage, turnTokenBudget: Number.isFinite(usage.turnTokenBudget) ? usage.turnTokenBudget : null } });
|
|
3023
|
+
this.#emit(managed, { type: "usage", usage: { ...usage, turnTokenBudget: Number.isFinite(usage.turnTokenBudget) ? usage.turnTokenBudget : null, maxToolIterations: Number.isFinite(usage.maxToolIterations) ? usage.maxToolIterations : null } });
|
|
3015
3024
|
},
|
|
3016
3025
|
onNotice: (text3) => this.#emit(managed, { type: "notice", text: text3 }),
|
|
3017
3026
|
onCompaction: (event) => {
|
|
@@ -3247,7 +3256,7 @@ var ConsoleGateway = class {
|
|
|
3247
3256
|
}
|
|
3248
3257
|
}
|
|
3249
3258
|
#outcome(outcome) {
|
|
3250
|
-
return { assistantText: outcome.assistantText, stopReason: outcome.stopReason, budget: { ...outcome.budget, tokenBudget: Number.isFinite(outcome.budget.tokenBudget) ? outcome.budget.tokenBudget : null }, usage: { ...outcome.usage }, ...outcome.error ? { error: outcome.error } : {}, ...outcome.contextInputTokens !== void 0 ? { contextInputTokens: outcome.contextInputTokens } : {}, ...outcome.outputCap ? { outputCap: { ...outcome.outputCap, checkpoint: json(outcome.outputCap.checkpoint) } } : {} };
|
|
3259
|
+
return { assistantText: outcome.assistantText, stopReason: outcome.stopReason, budget: { ...outcome.budget, maxToolIterations: Number.isFinite(outcome.budget.maxToolIterations) ? outcome.budget.maxToolIterations : null, tokenBudget: Number.isFinite(outcome.budget.tokenBudget) ? outcome.budget.tokenBudget : null }, usage: { ...outcome.usage }, ...outcome.error ? { error: outcome.error } : {}, ...outcome.contextInputTokens !== void 0 ? { contextInputTokens: outcome.contextInputTokens } : {}, ...outcome.outputCap ? { outputCap: { ...outcome.outputCap, checkpoint: json(outcome.outputCap.checkpoint) } } : {} };
|
|
3251
3260
|
}
|
|
3252
3261
|
#cancelTurn(managed) {
|
|
3253
3262
|
for (const request of managed.workflowRequests.values()) if (request.turnOwner === managed.turnOwner && request.status === "queued") {
|
|
@@ -3307,7 +3316,7 @@ var ConsoleGateway = class {
|
|
|
3307
3316
|
managed.runtime.reconfigure({ model: input.runtime.model, provider: input.runtime.providerId, agentModels: input.runtime.agentModels, singleModel: input.runtime.singleModel, autoRoute: input.runtime.autoRoute });
|
|
3308
3317
|
if (input.runtime.reasoningEffort) managed.runtime.setReasoningEffort(input.runtime.reasoningEffort);
|
|
3309
3318
|
return { ...describeWebConsoleRuntime(managed.runtime), modelSource: "local" };
|
|
3310
|
-
})() : await applyWebConsoleRuntimeSelection(managed.runtime, input.runtime);
|
|
3319
|
+
})() : await applyWebConsoleRuntimeSelection(managed.runtime, input.runtime, { allowChatGptPlan: this.#options.allowChatGptPlan !== false });
|
|
3311
3320
|
managed.info = info;
|
|
3312
3321
|
managed.session?.reconfigureRuntime({ contextWindowTokens: info.contextWindowTokens });
|
|
3313
3322
|
managed.selection = { ...managed.selection, ...input.runtime };
|
|
@@ -3315,6 +3324,10 @@ var ConsoleGateway = class {
|
|
|
3315
3324
|
}
|
|
3316
3325
|
if (input.target !== void 0) managed.target = input.target;
|
|
3317
3326
|
if (input.scope !== void 0) managed.scope = input.scope === null ? void 0 : ScopePolicy.fromJson(input.scope);
|
|
3327
|
+
if (input.webSearchEnabled !== void 0) {
|
|
3328
|
+
await managed.session?.setWebSearchEnabled?.(input.webSearchEnabled);
|
|
3329
|
+
managed.webSearchEnabled = input.webSearchEnabled;
|
|
3330
|
+
}
|
|
3318
3331
|
if (input.autonomyMode) {
|
|
3319
3332
|
managed.autonomyMode = input.autonomyMode;
|
|
3320
3333
|
managed.session?.setAutonomyMode(input.autonomyMode);
|
|
@@ -3440,6 +3453,7 @@ var ConsoleGateway = class {
|
|
|
3440
3453
|
return stored;
|
|
3441
3454
|
}
|
|
3442
3455
|
#save(managed) {
|
|
3456
|
+
if (managed.resumePending) return true;
|
|
3443
3457
|
const messages = managed.session?.messages ?? managed.initialMessages;
|
|
3444
3458
|
const id = managed.savedId ?? managed.id;
|
|
3445
3459
|
const consoleState = {
|
|
@@ -3447,6 +3461,7 @@ var ConsoleGateway = class {
|
|
|
3447
3461
|
...managed.requiresModelRelay ? { modelSource: "local" } : {},
|
|
3448
3462
|
target: managed.session?.target ?? managed.target,
|
|
3449
3463
|
role: managed.role,
|
|
3464
|
+
webSearchEnabled: managed.session?.webSearchEnabled ?? managed.webSearchEnabled,
|
|
3450
3465
|
...managed.workflowId ? { workflowId: managed.workflowId } : {},
|
|
3451
3466
|
...managed.skillId ? { skillId: managed.skillId } : {},
|
|
3452
3467
|
runtime: savedWebRuntimeSelection(managed.selection, managed.info)
|
|
@@ -3478,7 +3493,7 @@ var ConsoleGateway = class {
|
|
|
3478
3493
|
return { id, name: call.name, arguments: json(call.arguments) };
|
|
3479
3494
|
}
|
|
3480
3495
|
#summary(managed) {
|
|
3481
|
-
return { id: managed.id, ...managed.workflowId ? { workflowId: managed.workflowId } : {}, ...managed.skillId ? { skillId: managed.skillId } : {}, ...managed.savedId ? { savedId: managed.savedId } : {}, target: managed.session?.target ?? managed.target, role: managed.role, autonomyMode: managed.session?.autonomyMode ?? managed.autonomyMode, scopeConfigured: Boolean(managed.session?.scope ?? managed.scope), localScopeConfigured: Boolean(managed.session?.localScopePath), status: managed.status, createdAt: managed.createdAt, updatedAt: managed.updatedAt, title: managed.title, messageCount: (managed.session?.messages ?? managed.initialMessages).length + managed.queued.length, execution: structuredClone(managed.execution), ...managed.info ? { runtime: structuredClone(managed.info) } : {}, ...managed.pendingConfiguration ? { pendingConfiguration: structuredClone(managed.pendingConfiguration) } : {} };
|
|
3496
|
+
return { id: managed.id, ...managed.workflowId ? { workflowId: managed.workflowId } : {}, ...managed.skillId ? { skillId: managed.skillId } : {}, ...managed.savedId ? { savedId: managed.savedId } : {}, target: managed.session?.target ?? managed.target, role: managed.role, autonomyMode: managed.session?.autonomyMode ?? managed.autonomyMode, webSearchEnabled: managed.session?.webSearchEnabled ?? managed.webSearchEnabled, scopeConfigured: Boolean(managed.session?.scope ?? managed.scope), localScopeConfigured: Boolean(managed.session?.localScopePath), status: managed.status, createdAt: managed.createdAt, updatedAt: managed.updatedAt, title: managed.title, messageCount: (managed.session?.messages ?? managed.initialMessages).length + managed.queued.length, execution: structuredClone(managed.execution), ...managed.info ? { runtime: structuredClone(managed.info) } : {}, ...managed.pendingConfiguration ? { pendingConfiguration: structuredClone(managed.pendingConfiguration) } : {} };
|
|
3482
3497
|
}
|
|
3483
3498
|
#emitSession(managed) {
|
|
3484
3499
|
this.#emit(managed, { type: "session", session: this.#summary(managed) });
|
|
@@ -3856,7 +3871,7 @@ function parseDurationMs(raw) {
|
|
|
3856
3871
|
}
|
|
3857
3872
|
}
|
|
3858
3873
|
async function runKernelFindingVerify(opts) {
|
|
3859
|
-
const { verifyStaticKernelFinding, applyVerificationToFinding } = await import("./dist-
|
|
3874
|
+
const { verifyStaticKernelFinding, applyVerificationToFinding } = await import("./dist-ONIRKDH6.js");
|
|
3860
3875
|
const rawFinding = readJson(opts.findingPath, "finding");
|
|
3861
3876
|
let finding;
|
|
3862
3877
|
try {
|
|
@@ -4677,7 +4692,7 @@ function createResearchWorkflowExecutors(options) {
|
|
|
4677
4692
|
const target = await scopedPath(options.workspace, context.target);
|
|
4678
4693
|
const selected = options.model ?? options.runtime.resolvedModel?.();
|
|
4679
4694
|
if (input.models?.some((model) => model !== selected)) throw new Error("Workflow deep review models must match its bound model connection.");
|
|
4680
|
-
const { runDeepReview } = await import("./deep-review-
|
|
4695
|
+
const { runDeepReview } = await import("./deep-review-5AL6QYTK.js");
|
|
4681
4696
|
const result = await runDeepReview({
|
|
4682
4697
|
...input,
|
|
4683
4698
|
target,
|