0sec-cli 0.23.0 → 0.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/0.js +66 -67
  2. package/README.md +37 -11
  3. package/chunks/{adapt-loop-V3JFWOKC.js → adapt-loop-L77BWMNE.js} +4 -4
  4. package/chunks/{artifact-scraper-NYKUF2M5.js → artifact-scraper-BV67RAP5.js} +2 -2
  5. package/chunks/{assumption-mining-ZX3YVWEH.js → assumption-mining-RPVR77A3.js} +18 -18
  6. package/chunks/{backend-connections-H52NIVH2.js → backend-connections-ACIXNYZN.js} +3 -3
  7. package/chunks/{chunk-MQJVU2GZ.js → chunk-2NBZZFRG.js} +79 -9
  8. package/chunks/{chunk-A2ADXAC5.js → chunk-2XGBEH53.js} +1288 -2313
  9. package/chunks/{chunk-3E54JYS4.js → chunk-3LPBJMHB.js} +1 -1
  10. package/chunks/{chunk-XORZUR2H.js → chunk-3WUPCZGF.js} +1 -1
  11. package/chunks/{chunk-65H3MRBF.js → chunk-4ROZFLSR.js} +1 -1
  12. package/chunks/chunk-56UTQKXO.js +56 -0
  13. package/chunks/{chunk-YYS2H33A.js → chunk-5ETI27Q3.js} +2 -2
  14. package/chunks/{chunk-3ZNI7F42.js → chunk-5NFIY2SJ.js} +3 -3
  15. package/chunks/{chunk-A5QO7N3S.js → chunk-5PFRE522.js} +1 -1
  16. package/chunks/{chunk-EH2WTNY7.js → chunk-5WAHHZBF.js} +1424 -859
  17. package/chunks/{chunk-WIYNYNL2.js → chunk-6XMFCVJS.js} +1 -1
  18. package/chunks/chunk-7UHAXEOV.js +289 -0
  19. package/chunks/{chunk-CP6HANBE.js → chunk-BD7WULFS.js} +4 -3
  20. package/chunks/{chunk-T7ZEVY5G.js → chunk-BMDG6T7D.js} +815 -41
  21. package/chunks/{chunk-QMICC5O2.js → chunk-BOBIAHKA.js} +2 -2
  22. package/chunks/{chunk-VDOWARMJ.js → chunk-BPU6M42R.js} +15 -1
  23. package/chunks/{chunk-UELXHK2Y.js → chunk-CGBDEST2.js} +16 -5
  24. package/chunks/{remote-workflow-runtime-RGQ5ECMN.js → chunk-CJRZSWII.js} +39 -8
  25. package/chunks/chunk-F2P25DJY.js +5421 -0
  26. package/chunks/{chunk-TO35Y326.js → chunk-GTED3FSZ.js} +5 -2
  27. package/chunks/{chunk-LT7BFGXA.js → chunk-GV5WXDHY.js} +10 -10
  28. package/chunks/{chunk-LTEE2JWK.js → chunk-GXXX7AGH.js} +251 -8
  29. package/chunks/chunk-GZA7RGK7.js +5198 -0
  30. package/chunks/{chunk-KHPOSLCF.js → chunk-H5QURBBK.js} +174 -710
  31. package/chunks/chunk-I43YYHDU.js +566 -0
  32. package/chunks/{chunk-62ENS6XO.js → chunk-IIBNQTOK.js} +3 -2
  33. package/chunks/{chunk-BF5FIK7H.js → chunk-IJ6UPW3H.js} +108 -24
  34. package/chunks/{chunk-TPUJZ74W.js → chunk-ILRMLA6J.js} +2 -2
  35. package/chunks/{chunk-I3OCJ2OA.js → chunk-JWSOUKFF.js} +5 -3
  36. package/chunks/{chunk-UZUELPFW.js → chunk-K74DRDC5.js} +1 -1
  37. package/chunks/chunk-LMP2T4G2.js +700 -0
  38. package/chunks/{chunk-K55B4OH4.js → chunk-NBV4I237.js} +1 -1
  39. package/chunks/chunk-OOMBOLAF.js +295 -0
  40. package/chunks/{chunk-YAEJAZYW.js → chunk-PJU24AKR.js} +2 -2
  41. package/chunks/{chunk-NI6QYQSK.js → chunk-PVJUPIQG.js} +6 -6
  42. package/chunks/{chunk-WYNZFNMF.js → chunk-Q7JKIKKF.js} +289 -10
  43. package/chunks/{chunk-ITES7BCY.js → chunk-QNRYOJEB.js} +3 -111
  44. package/chunks/{chunk-PIR6BNE7.js → chunk-R2XBH476.js} +2 -2
  45. package/chunks/{chunk-O6Z4XPOM.js → chunk-RURJYCWY.js} +1 -1
  46. package/chunks/chunk-RVJVM5L4.js +164 -0
  47. package/chunks/{chunk-NX4H6L4M.js → chunk-S2GITRD5.js} +2 -2
  48. package/chunks/{chunk-W5VNCB57.js → chunk-SU4IHQQI.js} +1 -1
  49. package/chunks/{chunk-V2BWXPZP.js → chunk-SZDD77KX.js} +6 -6
  50. package/chunks/{chunk-EJH2TNVH.js → chunk-TVS6WVSK.js} +3 -3
  51. package/chunks/{chunk-LVGZGG63.js → chunk-UJE4WOQS.js} +1 -1
  52. package/chunks/chunk-VU7V2SDW.js +284 -0
  53. package/chunks/chunk-W624J7NF.js +117 -0
  54. package/chunks/{chunk-OLSKXTQZ.js → chunk-WUPN3D37.js} +22 -248
  55. package/chunks/{chunk-HFDSIHTE.js → chunk-X2IPO5JO.js} +202 -30
  56. package/chunks/{chunk-JEYIWMGL.js → chunk-X2ZMSRTP.js} +1 -1
  57. package/chunks/{chunk-F344NYUN.js → chunk-XA2IBHPB.js} +1 -1
  58. package/chunks/{chunk-Y4HJRUFE.js → chunk-YERUDEXT.js} +876 -817
  59. package/chunks/{chunk-AAA4PRWK.js → chunk-YKWARO3T.js} +2 -2
  60. package/chunks/{chunk-P7KDN5PK.js → chunk-YSQWZ67M.js} +14 -14
  61. package/chunks/{chunk-4HGGNBKK.js → chunk-ZM6ANQZJ.js} +2593 -1563
  62. package/chunks/{codex-models-Y457ND6Q.js → codex-models-6XVNFRXZ.js} +7 -7
  63. package/chunks/{commands-PBDAOZKA.js → commands-FRPOFIO4.js} +1603 -6945
  64. package/chunks/dashboard-5HDSNBAU.js +76 -0
  65. package/chunks/{db-TPSI552V.js → db-BXJNWUYJ.js} +3 -3
  66. package/chunks/{deep-review-DKED6EN5.js → deep-review-GSJEBLCG.js} +34 -33
  67. package/chunks/{disclose-LDNKAVRH.js → disclose-OU6Z6GVT.js} +4 -2
  68. package/chunks/{dist-RLPNLRZD.js → dist-7KSYDDSG.js} +33 -1
  69. package/chunks/{dist-7Q5A6TQM.js → dist-RKLQIXDT.js} +18 -2
  70. package/chunks/{dist-4LGRIBOC.js → dist-TQMHMSBZ.js} +99 -64
  71. package/chunks/eval-runner-A2DIGVP7.js +31 -0
  72. package/chunks/{exploit-agent-RMFYNG7H.js → exploit-agent-Y2P4GFIY.js} +1 -1
  73. package/chunks/{exploit-autoclimb-2A2PQI4E.js → exploit-autoclimb-YRZ3TMS2.js} +1 -1
  74. package/chunks/{exploit-climb-DEJ232QN.js → exploit-climb-4LEY4SDW.js} +2 -2
  75. package/chunks/{fix-JGBW7XUN.js → fix-RQSIG75B.js} +7 -7
  76. package/chunks/{harness-CBOLMUHB.js → harness-3NVC3DDY.js} +3 -3
  77. package/chunks/{hunt-scan-MIRMABY4.js → hunt-scan-W246VWJC.js} +16 -16
  78. package/chunks/{kernel-primitive-NAPDMJC7.js → kernel-primitive-T47V3RD3.js} +2 -2
  79. package/chunks/{kernel-vm-runner-PR5OSDQ2.js → kernel-vm-runner-AEL5E3SV.js} +2 -2
  80. package/chunks/local-engine-ZCW4YC6E.js +21 -0
  81. package/chunks/managed-operation-6R2QPPW5.js +60 -0
  82. package/chunks/{memsafety-scan-RPS446CD.js → memsafety-scan-L2Z7E7TE.js} +2 -2
  83. package/chunks/{native-loop-CGOJMNHV.js → native-loop-26X2CHBV.js} +14 -13
  84. package/chunks/orchestrate-OBS37FWQ.js +63 -0
  85. package/chunks/{prepare-YVNENPNL.js → prepare-C3KGMBXT.js} +5 -5
  86. package/chunks/provider-model-discovery-QGUGL3XW.js +277 -0
  87. package/chunks/remote-workflow-runtime-DB52SINR.js +12 -0
  88. package/chunks/{run-VH4OIDKF.js → run-MU3MFL2Z.js} +902 -322
  89. package/chunks/{runtime-4TAJFVF7.js → runtime-AUBLQUOH.js} +2 -2
  90. package/chunks/{runtime-HWL6HG7A.js → runtime-U66JNSAY.js} +7 -7
  91. package/chunks/{scan-stream-HJAZJONE.js → scan-stream-34F3LTPV.js} +3 -2
  92. package/chunks/{scope-Q5PIX2IS.js → scope-HSTG63TQ.js} +2 -2
  93. package/chunks/service-plugins-5B23PWXC.js +64 -0
  94. package/chunks/{session-store-2FEIZGSV.js → session-store-MKAAP3WL.js} +2 -2
  95. package/chunks/{variant-candidates-TX5V6XOT.js → variant-candidates-LG767HWH.js} +7 -7
  96. package/chunks/{web-recon-prepass-6HOUGF7Q.js → web-recon-prepass-NJP6J3E4.js} +5 -5
  97. package/chunks/workflow-runtime-AR627I26.js +178 -0
  98. package/dashboard/assets/{abnfDiagram-VCTEODGH-BuvumFYR.js → abnfDiagram-VCTEODGH-Cq149Jpk.js} +1 -1
  99. package/dashboard/assets/{arc-DZzWDuCG.js → arc-CpP-3TRW.js} +1 -1
  100. package/dashboard/assets/architecture-7GRP2DOG-z5EHYkyH.js +1 -0
  101. package/dashboard/assets/{architectureDiagram-5GKGNRK7-Bw5el_EL.js → architectureDiagram-5GKGNRK7-ewtXpjR_.js} +1 -1
  102. package/dashboard/assets/{blockDiagram-I7D4REHJ-BjVLEApp.js → blockDiagram-I7D4REHJ-CZYkRRDi.js} +1 -1
  103. package/dashboard/assets/{c4Diagram-7LVT6UL2-B9nNzx2J.js → c4Diagram-7LVT6UL2-CV7Iu3_Z.js} +1 -1
  104. package/dashboard/assets/channel-CuYjfiC5.js +1 -0
  105. package/dashboard/assets/{chunk-4HAMMTFA-y72Q95nW.js → chunk-4HAMMTFA-PKCyW4m-.js} +1 -1
  106. package/dashboard/assets/{chunk-75Z2AOVW-BOhrOGMO.js → chunk-75Z2AOVW-C5MlFTc_.js} +1 -1
  107. package/dashboard/assets/{chunk-DU6HZSFF-B0EhAaNb.js → chunk-DU6HZSFF-3M37ulcO.js} +2 -2
  108. package/dashboard/assets/{chunk-F27PBJKO-BR-hiDvM.js → chunk-F27PBJKO-DTAok0qM.js} +1 -1
  109. package/dashboard/assets/{chunk-GMAD6QVW-H15vJYXg.js → chunk-GMAD6QVW-CPsr2F33.js} +1 -1
  110. package/dashboard/assets/{chunk-GVQU2GXP-BRndps0o.js → chunk-GVQU2GXP-C2AXGf9A.js} +1 -1
  111. package/dashboard/assets/{chunk-IMKFNOWR-CIzC_OWx.js → chunk-IMKFNOWR-DMG6yD_O.js} +1 -1
  112. package/dashboard/assets/{chunk-L3NEJ4N5-NR4P1Vko.js → chunk-L3NEJ4N5-BSvwdbXx.js} +1 -1
  113. package/dashboard/assets/{chunk-OSK3NFVY-DtjTDf8S.js → chunk-OSK3NFVY-CfB8V7FU.js} +1 -1
  114. package/dashboard/assets/{chunk-P2QGCYS3-CYT11Qjx.js → chunk-P2QGCYS3-CvmZvq6n.js} +1 -1
  115. package/dashboard/assets/{chunk-POPQ4Y6H-Duj2Ygwu.js → chunk-POPQ4Y6H-D_TvwDxL.js} +1 -1
  116. package/dashboard/assets/{chunk-PWAF6VOD-z4p5Tf_y.js → chunk-PWAF6VOD-Da5GnuOY.js} +1 -1
  117. package/dashboard/assets/{chunk-SHT3W25Y-DYeLYLS3.js → chunk-SHT3W25Y-CcsMJpR-.js} +1 -1
  118. package/dashboard/assets/{chunk-SVP7TREG-BKowxCVI.js → chunk-SVP7TREG-COojjieJ.js} +1 -1
  119. package/dashboard/assets/{chunk-TICWLB2K-GDAwEFlH.js → chunk-TICWLB2K-nBAmJwx6.js} +1 -1
  120. package/dashboard/assets/{chunk-XXDRQBXY-DRD79Mjx.js → chunk-XXDRQBXY-r5HyhWDv.js} +1 -1
  121. package/dashboard/assets/classDiagram-ZZMXUADV-DCuOrWUV.js +1 -0
  122. package/dashboard/assets/classDiagram-v2-VYDZK3BY-DCuOrWUV.js +1 -0
  123. package/dashboard/assets/{common-vnzd7UOF.js → common-C6snVPsk.js} +1 -1
  124. package/dashboard/assets/{cose-bilkent-JH36ORCC-GqCLsRyf.js → cose-bilkent-JH36ORCC-BLGcaZHk.js} +1 -1
  125. package/dashboard/assets/{cynefin-OW5HDTMX-CJN9YwWN.js → cynefin-OW5HDTMX-DbZMK00I.js} +1 -1
  126. package/dashboard/assets/{cynefinDiagram-5FMLGOSQ-DVJHCYQY.js → cynefinDiagram-5FMLGOSQ-xodkuQtW.js} +1 -1
  127. package/dashboard/assets/{dagre-GXQ25YYZ-BMCrrJJR.js → dagre-GXQ25YYZ-CRk9qfSG.js} +1 -1
  128. package/dashboard/assets/{diagram-S7CK7UJ4-CLYDdOEm.js → diagram-S7CK7UJ4-DNoTMlCO.js} +1 -1
  129. package/dashboard/assets/{diagram-UQ7AKVKN-CnPuAZK7.js → diagram-UQ7AKVKN-COccuyew.js} +1 -1
  130. package/dashboard/assets/{diagram-VSXAHHWV-Cr2I2DnG.js → diagram-VSXAHHWV-g6D1tWRb.js} +1 -1
  131. package/dashboard/assets/{diagram-VX7I27RA-_mGW1wpp.js → diagram-VX7I27RA-DhO4eVIC.js} +1 -1
  132. package/dashboard/assets/{diagram-Z3DM3KII-igybB0l9.js → diagram-Z3DM3KII-DeOQFexd.js} +1 -1
  133. package/dashboard/assets/{dist-Bb7_-x5y.js → dist-BQYeOQg3.js} +1 -1
  134. package/dashboard/assets/{ebnfDiagram-PWID7BFC-CVCICf2R.js → ebnfDiagram-PWID7BFC-MtkX2feM.js} +1 -1
  135. package/dashboard/assets/{erDiagram-RLTQ6QDP-CRjnfgxj.js → erDiagram-RLTQ6QDP-DIWSsoYZ.js} +1 -1
  136. package/dashboard/assets/eventmodeling-NTZA5JFV-D_3ez4Gv.js +1 -0
  137. package/dashboard/assets/flowDiagram-HODETNUW-D2boyYEd.js +1 -0
  138. package/dashboard/assets/{ganttDiagram-EL5Y4UJY-DppD7sD7.js → ganttDiagram-EL5Y4UJY-DKggkJe0.js} +1 -1
  139. package/dashboard/assets/{gitGraph-4MIJSDKK-Tw0vNnQc.js → gitGraph-4MIJSDKK-DFOQYwXc.js} +1 -1
  140. package/dashboard/assets/{gitGraphDiagram-WWUBYQGX-Cpf96-z3.js → gitGraphDiagram-WWUBYQGX-r_iR8Qzo.js} +1 -1
  141. package/dashboard/assets/{info-A6RAGUB7-DLyt9arx.js → info-A6RAGUB7-DeednLoB.js} +1 -1
  142. package/dashboard/assets/{infoDiagram-27XIBGKW-B6_piSNS.js → infoDiagram-27XIBGKW-ClQk7UyQ.js} +1 -1
  143. package/dashboard/assets/{ishikawaDiagram-5VMMS53U-DvMO0B0X.js → ishikawaDiagram-5VMMS53U-tR7Vziog.js} +1 -1
  144. package/dashboard/assets/{journeyDiagram-3NMN7TZE-f7ZK98b6.js → journeyDiagram-3NMN7TZE-Cpb9IqKL.js} +1 -1
  145. package/dashboard/assets/{kanban-definition-UXKFOSKX-Dso0nAxL.js → kanban-definition-UXKFOSKX-BzUuKbA9.js} +1 -1
  146. package/dashboard/assets/katex-BdBmVSus.js +257 -0
  147. package/dashboard/assets/{line-VcKaFG0G.js → line-BHY_tSHu.js} +1 -1
  148. package/dashboard/assets/{linear-D7YnpiWh.js → linear-naZZ1pHk.js} +1 -1
  149. package/dashboard/assets/{mermaid-parser.core-DriL2hrV.js → mermaid-parser.core-CPvd4cEx.js} +3 -3
  150. package/dashboard/assets/{mermaid.core-DJWYDh_P.js → mermaid.core-D_QsUPU8.js} +4 -4
  151. package/dashboard/assets/{mindmap-definition-YA3MSWOX-DZsoIeac.js → mindmap-definition-YA3MSWOX-CtfLTPPJ.js} +1 -1
  152. package/dashboard/assets/operations-BwCzhVnT.js +130 -0
  153. package/dashboard/assets/operations-QjKT0Hwi.css +1 -0
  154. package/dashboard/assets/{packet-AYTQ26CC-BQBIXKxk.js → packet-AYTQ26CC-DDQbkT9I.js} +1 -1
  155. package/dashboard/assets/{pegDiagram-XKGWAZYB-B0-lslgW.js → pegDiagram-XKGWAZYB-C1Dclbzj.js} +1 -1
  156. package/dashboard/assets/{pie-WAS4IAKB-DoY6dwQs.js → pie-WAS4IAKB-LpU4ULAs.js} +1 -1
  157. package/dashboard/assets/{pieDiagram-E7YTZNPT-ElmdRjp5.js → pieDiagram-E7YTZNPT-Cd7XwYo5.js} +1 -1
  158. package/dashboard/assets/{quadrantDiagram-AXDQQJYC-Ci1h98Q2.js → quadrantDiagram-AXDQQJYC-CaS-GQ4X.js} +1 -1
  159. package/dashboard/assets/{radar-RG4KPBEZ-DHod2WgB.js → radar-RG4KPBEZ-CcxW3NJm.js} +1 -1
  160. package/dashboard/assets/{railroad-74A4TZTK-90JxB4xV.js → railroad-74A4TZTK-9P5Rl8fP.js} +1 -1
  161. package/dashboard/assets/railroad-abnf-HS5TGJTU-CSfpwjna.js +1 -0
  162. package/dashboard/assets/railroad-ebnf-LZEXJU2U-D6R5qzr-.js +1 -0
  163. package/dashboard/assets/railroad-peg-WCYAUIDC-DKEX7ITG.js +1 -0
  164. package/dashboard/assets/{railroadDiagram-O6MQD6OU-k3190A6L.js → railroadDiagram-O6MQD6OU-BeesTrqn.js} +1 -1
  165. package/dashboard/assets/{requirementDiagram-BXWQKSXE-C3-eR7I5.js → requirementDiagram-BXWQKSXE-IjyK0DhW.js} +1 -1
  166. package/dashboard/assets/{sankeyDiagram-P5KCCOFB-Bc86pi8w.js → sankeyDiagram-P5KCCOFB-DmIluQqo.js} +1 -1
  167. package/dashboard/assets/{sequenceDiagram-WJ2MYXX4-Bv_MvEmz.js → sequenceDiagram-WJ2MYXX4-CUp8ZjTc.js} +1 -1
  168. package/dashboard/assets/{src-D7Dqq5yP.js → src-r61wDjcA.js} +1 -1
  169. package/dashboard/assets/{stateDiagram-D77RDMKH-Bq_GVmeW.js → stateDiagram-D77RDMKH-Dy9TQb8P.js} +1 -1
  170. package/dashboard/assets/stateDiagram-v2-MP3YSRHH-CQb0ZtPr.js +1 -0
  171. package/dashboard/assets/{swimlanes-42K2YHIH-q0iK-e0P.js → swimlanes-42K2YHIH-CZuDV7V5.js} +1 -1
  172. package/dashboard/assets/swimlanesDiagram-VR7AAH4N-BxgWMq8X.js +8 -0
  173. package/dashboard/assets/{timeline-definition-24CTP7MA-CNfF07hM.js → timeline-definition-24CTP7MA-BGdXW-iY.js} +1 -1
  174. package/dashboard/assets/{treeView-Q6P3EWNA-m629ePnS.js → treeView-Q6P3EWNA-DlRrayjM.js} +1 -1
  175. package/dashboard/assets/{treemap-WGGIJYW6-D9Cb2ETv.js → treemap-WGGIJYW6-C6UqLKfI.js} +1 -1
  176. package/dashboard/assets/{vennDiagram-4TSXK5OY-v4dKF-FE.js → vennDiagram-4TSXK5OY-DzKWHJsl.js} +1 -1
  177. package/dashboard/assets/{wardley-WFR3VGLG-DkwH_nRe.js → wardley-WFR3VGLG-thmyHKb0.js} +1 -1
  178. package/dashboard/assets/{wardleyDiagram-VM6X3IG4-3ImohVu4.js → wardleyDiagram-VM6X3IG4-DGsjYmNJ.js} +1 -1
  179. package/dashboard/assets/{xychartDiagram-S5SC5T6Z-QJu3dm7K.js → xychartDiagram-S5SC5T6Z-C7_T_tWt.js} +1 -1
  180. package/dashboard/index.html +3 -3
  181. package/package.json +3 -2
  182. package/worker-assets/demo-target/README.md +15 -0
  183. package/worker-assets/demo-target/include/decoder.h +27 -0
  184. package/worker-assets/demo-target/patched-decoder.c +40 -0
  185. package/worker-assets/demo-target/src/decoder.c +50 -0
  186. package/worker-assets/demo-target/witness-65537x1.bin +0 -0
  187. package/chunks/chunk-3P3XXSIJ.js +0 -463
  188. package/chunks/chunk-EWXOG6D3.js +0 -1695
  189. package/chunks/chunk-FXR3BT2G.js +0 -226
  190. package/chunks/chunk-R35KKJA4.js +0 -90
  191. package/chunks/eval-runner-RZKDOQ2G.js +0 -30
  192. package/chunks/managed-operation-YNQQEA5V.js +0 -59
  193. package/chunks/orchestrate-5NK34H3W.js +0 -62
  194. package/chunks/service-plugins-QYFITODK.js +0 -63
  195. package/chunks/workflow-runtime-ZEEBJFQG.js +0 -64
  196. package/dashboard/assets/architecture-7GRP2DOG-DK9bv1Md.js +0 -1
  197. package/dashboard/assets/channel-Ck17eKdX.js +0 -1
  198. package/dashboard/assets/classDiagram-ZZMXUADV-BaeZA6LE.js +0 -1
  199. package/dashboard/assets/classDiagram-v2-VYDZK3BY-BaeZA6LE.js +0 -1
  200. package/dashboard/assets/eventmodeling-NTZA5JFV-po5oDydv.js +0 -1
  201. package/dashboard/assets/flowDiagram-HODETNUW-TSV9s7q4.js +0 -1
  202. package/dashboard/assets/katex-CXMH3UgJ.js +0 -257
  203. package/dashboard/assets/operations-BIaUSnYv.js +0 -121
  204. package/dashboard/assets/operations-BeCdkT4S.css +0 -1
  205. package/dashboard/assets/railroad-abnf-HS5TGJTU-BkXGl114.js +0 -1
  206. package/dashboard/assets/railroad-ebnf-LZEXJU2U-QVAERn2C.js +0 -1
  207. package/dashboard/assets/railroad-peg-WCYAUIDC-B1-PM01z.js +0 -1
  208. package/dashboard/assets/stateDiagram-v2-MP3YSRHH-z1XRaftz.js +0 -1
  209. package/dashboard/assets/swimlanesDiagram-VR7AAH4N-C9L6XBQj.js +0 -8
  210. package/dashboard/assets/zero-connect-BGDY0PMZ.webp +0 -0
  211. package/dashboard/assets/zero-curious-DovTLOs8.webp +0 -0
  212. package/dashboard/assets/zero-peek-Dzm3MT3X.png +0 -0
  213. package/dashboard/assets/zero-planning-CBeHDrG_.webp +0 -0
@@ -9,7 +9,10 @@ import {
9
9
  import {
10
10
  extractFileRefs,
11
11
  redactSensitiveHeaders
12
- } from "./chunk-UELXHK2Y.js";
12
+ } from "./chunk-CGBDEST2.js";
13
+ import {
14
+ getFindingPriority
15
+ } from "./chunk-GXXX7AGH.js";
13
16
  import {
14
17
  __toESM
15
18
  } from "./chunk-VCSFCHAJ.js";
@@ -906,7 +909,7 @@ function impactForSeverity(severity) {
906
909
  function impactLine(finding) {
907
910
  const base = impactForSeverity(finding.severity);
908
911
  const a = finding.impactAssessment;
909
- if (!a)
912
+ if (!a || !getFindingPriority(finding).assessed)
910
913
  return base;
911
914
  const gain = {
912
915
  rce: "remote code execution",
@@ -5,20 +5,20 @@ import {
5
5
  captureObservation,
6
6
  createEvolvedFinder,
7
7
  loadAppsecFinderLenses
8
- } from "./chunk-4HGGNBKK.js";
8
+ } from "./chunk-ZM6ANQZJ.js";
9
+ import {
10
+ ScanCostLedger
11
+ } from "./chunk-BD7WULFS.js";
9
12
  import {
10
13
  loadEvolutionConfigFile
11
- } from "./chunk-AAA4PRWK.js";
14
+ } from "./chunk-YKWARO3T.js";
12
15
  import {
13
16
  resolveOsecRunStorage,
14
17
  writeOsecRunReport
15
- } from "./chunk-T7ZEVY5G.js";
16
- import {
17
- ScanCostLedger
18
- } from "./chunk-CP6HANBE.js";
18
+ } from "./chunk-BMDG6T7D.js";
19
19
  import {
20
20
  eventBus
21
- } from "./chunk-A5QO7N3S.js";
21
+ } from "./chunk-5PFRE522.js";
22
22
 
23
23
  // packages/cli/src/commands/deep-review.ts
24
24
  import { readFileSync, realpathSync, statSync } from "node:fs";
@@ -283,7 +283,7 @@ async function runDeepReview(opts) {
283
283
  cairoVerifyLenses,
284
284
  moveFinderLenses,
285
285
  moveVerifyLenses
286
- } = await import("./dist-4LGRIBOC.js");
286
+ } = await import("./dist-TQMHMSBZ.js");
287
287
  opts.signal?.throwIfAborted();
288
288
  const costLedger = opts.costLedger ?? new ScanCostLedger();
289
289
  const scanStartedAt = Date.now();
@@ -330,7 +330,7 @@ async function runDeepReview(opts) {
330
330
  let lanes = null;
331
331
  let allocateAcrossLanes;
332
332
  if (opts.useThreatModel) {
333
- const threatModule = await import("./dist-4LGRIBOC.js");
333
+ const threatModule = await import("./dist-TQMHMSBZ.js");
334
334
  allocateAcrossLanes = threatModule.allocateCandidatesAcrossLanes;
335
335
  const rtType = runtime !== "auto" ? runtime : "api";
336
336
  const plannerRuntime = opts.nativeRuntime ? {
@@ -654,7 +654,7 @@ async function deepReviewAction(target, opts) {
654
654
  costCeilingUsd = parsed;
655
655
  }
656
656
  const { writeFileSync } = await import("node:fs");
657
- const { executeManagedOperation } = await import("./managed-operation-YNQQEA5V.js");
657
+ const { executeManagedOperation } = await import("./managed-operation-6R2QPPW5.js");
658
658
  const timeoutMs = parsePositive("--timeout", opts.timeout, 6e5);
659
659
  const outcome = await executeManagedOperation({
660
660
  type: "deep-review",
@@ -67,7 +67,7 @@ import { fileURLToPath } from "node:url";
67
67
  import { dirname, join } from "node:path";
68
68
  function loadVersion() {
69
69
  if (true) {
70
- return "0.23.0";
70
+ return "0.24.1";
71
71
  }
72
72
  try {
73
73
  const here = dirname(fileURLToPath(import.meta.url));
@@ -189,6 +189,22 @@ var MANUAL_PRICING = {
189
189
  "qwen3.7-plus": { input: 0.5, output: 3, cachedInput: 0.05 },
190
190
  "qwen3.6-plus": { input: 0.5, output: 3, cachedInput: 0.05 },
191
191
  "qwen3.6-flash": { input: 0.1875, output: 1.125 },
192
+ // ClinePass reference quota rates, not incremental subscription charges.
193
+ // https://github.com/cline/cline/blob/main/docs/getting-started/clinepass.mdx
194
+ // checked 2026-10-05; DeepSeek uses peak rates; Qwen Plus <=256K only.
195
+ "cline-pass/glm-5.3": { input: 1.4, output: 4.4, cachedInput: 0.26 },
196
+ "cline-pass/glm-5.2": { input: 1.4, output: 4.4, cachedInput: 0.26 },
197
+ "cline-pass/kimi-k3": { input: 3, output: 15, cachedInput: 0.3 },
198
+ "cline-pass/kimi-k2.7-code": { input: 0.95, output: 4, cachedInput: 0.19 },
199
+ "cline-pass/kimi-k2.6": { input: 0.95, output: 4, cachedInput: 0.16 },
200
+ "cline-pass/deepseek-v4-pro": { input: 1.32, output: 3.96, cachedInput: 0.044 },
201
+ "cline-pass/deepseek-v4-flash": { input: 0.44, output: 1.32, cachedInput: 0.014 },
202
+ "cline-pass/mimo-v2.5": { input: 0.14, output: 0.28, cachedInput: 28e-4 },
203
+ "cline-pass/mimo-v2.5-pro": { input: 1.74, output: 3.48, cachedInput: 0.0145 },
204
+ "cline-pass/minimax-m3": { input: 0.3, output: 1.2, cachedInput: 0.06 },
205
+ "cline-pass/qwen3.8-max": { input: 2, output: 6, cachedInput: 0.25, cacheWrite: 2.5 },
206
+ "cline-pass/qwen3.7-max": { input: 2.5, output: 7.5, cachedInput: 0.5, cacheWrite: 3.125 },
207
+ "cline-pass/qwen3.7-plus": { input: 0.4, output: 1.6, cachedInput: 0.04, cacheWrite: 0.5 },
192
208
  // OpenCode Zen free tier (https://opencode.ai/docs/zen/) — zero-rate gateway
193
209
  // models; actual spend is $0 while the free period lasts.
194
210
  "muse-spark-1.3-contributor-free": { input: 0, output: 0 },
@@ -293,7 +309,9 @@ var MODEL_VENDOR_PREFIXES = [
293
309
  "openrouter/",
294
310
  "opencode/",
295
311
  "xai/",
296
- "x-ai/"
312
+ "x-ai/",
313
+ "cline/",
314
+ "cline-pass/"
297
315
  ];
298
316
  function normalizeModel(model) {
299
317
  let key = model;
@@ -313,7 +331,7 @@ function normalizeModel(model) {
313
331
  function getRates(model) {
314
332
  const key = model ? normalizeModel(model) : "";
315
333
  const aliasKey = azureDeploymentPriceKey(key);
316
- const rates = (model && Object.hasOwn(MODEL_PRICING, model) ? MODEL_PRICING[model] : void 0) ?? (model ? DISCOVERED_PRICING.get(model) : void 0) ?? (Object.hasOwn(MODEL_PRICING, key) ? MODEL_PRICING[key] : void 0) ?? (aliasKey ? MODEL_PRICING[aliasKey] : void 0) ?? DISCOVERED_PRICING.get(key);
334
+ const rates = (model && Object.hasOwn(MODEL_PRICING, model) ? MODEL_PRICING[model] : void 0) ?? (model ? DISCOVERED_PRICING.get(model) : void 0) ?? (model?.startsWith("cline/") && Object.hasOwn(MODEL_PRICING, model.slice(6)) ? MODEL_PRICING[model.slice(6)] : void 0) ?? (Object.hasOwn(MODEL_PRICING, key) ? MODEL_PRICING[key] : void 0) ?? (aliasKey ? MODEL_PRICING[aliasKey] : void 0) ?? DISCOVERED_PRICING.get(key);
317
335
  if (!rates) {
318
336
  if (model)
319
337
  console.warn(`[0] Unknown model for cost estimation: ${model}`);
@@ -336,6 +354,8 @@ function modelProvider(model) {
336
354
  if (!model)
337
355
  return "unknown";
338
356
  const lowered = model.toLowerCase();
357
+ if (lowered.startsWith("cline/") || lowered.startsWith("cline-pass/"))
358
+ return "cline";
339
359
  if (lowered.startsWith("openai/"))
340
360
  return "openai";
341
361
  if (lowered.startsWith("azure/"))
@@ -1820,7 +1840,8 @@ var BACKEND_CAPABILITIES = [
1820
1840
  "artifacts",
1821
1841
  "model-connections",
1822
1842
  "process-controls",
1823
- "operator-services"
1843
+ "operator-services",
1844
+ "learning"
1824
1845
  ];
1825
1846
  var BackendCapabilitySchema = external_exports.enum(BACKEND_CAPABILITIES);
1826
1847
  var BackendIdSchema = external_exports.string().min(1).max(128).regex(/^[A-Za-z0-9][A-Za-z0-9_.-]*$/).refine((value) => !["__proto__", "constructor", "prototype"].includes(value), "Reserved backend identifier.");
@@ -1918,9 +1939,14 @@ function backendCapabilitiesForApiPath(pathname) {
1918
1939
  return ["workflow-engine"];
1919
1940
  if (parts[0] === "control" && parts.length === 2 && ["recover-stale-workers", "prune-stopped-workers", "reset-database", "start-daemon", "stop-daemon", "launch-run"].includes(parts[1]))
1920
1941
  return ["process-controls"];
1921
- if (pathname === "/api/dashboard" || parts[0] === "scans" || parts[0] === "finding-family")
1942
+ if (pathname === "/api/dashboard" || parts[0] === "scans" || parts[0] === "finding-family" || pathname === "/api/findings/export")
1922
1943
  add("artifacts");
1923
- else if (parts[0] === "events" || pathname === "/api/v1/presentation/events")
1944
+ if (parts[0] === "findings" && parts.length === 3 && parts[2] === "impact-assessment")
1945
+ add("artifacts");
1946
+ if (parts[0] === "scans" && parts[2] === "resume") {
1947
+ add("workflows");
1948
+ add("sessions");
1949
+ } else if (parts[0] === "events" || pathname === "/api/v1/presentation/events")
1924
1950
  add("events");
1925
1951
  else if (parts[0] === "console") {
1926
1952
  const family = parts[1];
@@ -1935,7 +1961,9 @@ function backendCapabilitiesForApiPath(pathname) {
1935
1961
  add("model-connections");
1936
1962
  if (["files", "directories", "paths", "workspace", "project"].includes(operation ?? ""))
1937
1963
  add("workspaces");
1938
- } else if (["workflow-triggers", "workflow-schedules"].includes(family ?? ""))
1964
+ } else if (family === "learning")
1965
+ add("learning");
1966
+ else if (["workflow-triggers", "workflow-schedules"].includes(family ?? ""))
1939
1967
  add("schedules");
1940
1968
  else if (["workflows", "workflow-definitions", "workflow-executions", "workflow-tool-catalog", "fixes"].includes(family ?? "")) {
1941
1969
  add("workflows");
@@ -1958,6 +1986,205 @@ function backendCapabilitiesForApiPath(pathname) {
1958
1986
  return [...capabilities];
1959
1987
  }
1960
1988
 
1989
+ // packages/shared/dist/scan-resume.js
1990
+ var ScanResumeRequestSchema = external_exports.object({
1991
+ sessionId: external_exports.string().trim().min(1).max(160),
1992
+ approval: external_exports.literal("launch-authorized-run"),
1993
+ branchFromEntry: external_exports.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional(),
1994
+ timeCapMs: external_exports.number().int().positive().max(864e5).optional(),
1995
+ costCapUsd: external_exports.number().finite().positive().max(1e3).optional()
1996
+ }).strict();
1997
+ function resolvePersistedScanResume(scan) {
1998
+ if (!scan.id || scan.id.startsWith("console-"))
1999
+ throw new Error("Choose a persisted assessment scan, not a console conversation.");
2000
+ const depth = external_exports.enum(["quick", "default", "deep"]).parse(scan.depth);
2001
+ const storedMode = scan.mode ? external_exports.enum(["probe", "deep", "mcp", "web", "http_audit", "llm-ipi"]).parse(scan.mode) : void 0;
2002
+ const raw = external_exports.string().trim().min(1).max(4096).parse(scan.target);
2003
+ let parsed;
2004
+ let impliedMode;
2005
+ if (/^https?:\/\//.test(raw))
2006
+ parsed = { target: raw, targetType: "url", sourceDescription: "url" };
2007
+ else if (raw.startsWith("web:")) {
2008
+ parsed = { target: raw.slice(4), targetType: "web-app", sourceDescription: "web-app" };
2009
+ impliedMode = "web";
2010
+ } else if (raw.startsWith("mcp://")) {
2011
+ parsed = { target: raw, targetType: "url", sourceDescription: "mcp target" };
2012
+ impliedMode = "mcp";
2013
+ } else if (raw.startsWith("scan:"))
2014
+ parsed = { target: raw.slice(5), targetType: "url", sourceDescription: "url" };
2015
+ else if (raw.startsWith("repo:"))
2016
+ parsed = { target: raw.slice(5), targetType: "source-code", sourceDescription: "repository" };
2017
+ else {
2018
+ const match = /^(npm|pypi|cargo|oci):(.+)$/.exec(raw);
2019
+ if (!match)
2020
+ throw new Error(`Resume does not know how to route this persisted target yet: ${raw}`);
2021
+ const ecosystem = match[1];
2022
+ const spec = match[2];
2023
+ const at = spec.lastIndexOf("@");
2024
+ const target = at > 0 ? spec.slice(0, at) : spec;
2025
+ const packageVersion = at > 0 ? spec.slice(at + 1) : void 0;
2026
+ if (!target.trim() || packageVersion === "")
2027
+ throw new Error("Persisted package identity is incomplete.");
2028
+ const types = { npm: "npm-package", pypi: "pypi-package", cargo: "cargo-package", oci: "oci-image" };
2029
+ parsed = { target, targetType: types[ecosystem], ...packageVersion ? { packageVersion } : {}, sourceDescription: `${ecosystem} package` };
2030
+ }
2031
+ if (!parsed.target.trim())
2032
+ throw new Error("Persisted scan target is empty.");
2033
+ const targetType = storedMode === "web" ? "web-app" : parsed.targetType;
2034
+ return { ...parsed, targetType, depth, mode: impliedMode ?? storedMode ?? (targetType === "web-app" ? "web" : "deep") };
2035
+ }
2036
+
2037
+ // packages/shared/dist/engine-operations.js
2038
+ var ENGINE_OPERATION_DEFINITIONS = [
2039
+ { id: "get_capabilities", capability: "operator-services", effect: "read" },
2040
+ { id: "start_assessment", capability: "workflows", effect: "execute" },
2041
+ { id: "attach_session", capability: "sessions", effect: "read" },
2042
+ { id: "get_session_events", capability: "events", effect: "read" },
2043
+ { id: "list_templates", capability: "workflows", effect: "read" },
2044
+ { id: "get_template", capability: "workflows", effect: "read" },
2045
+ { id: "list_workflows", capability: "workflows", effect: "read" },
2046
+ { id: "get_workflow", capability: "workflows", effect: "read" },
2047
+ { id: "save_workflow", capability: "workflows", effect: "write" },
2048
+ { id: "start_run", capability: "workflows", effect: "execute" },
2049
+ { id: "list_runs", capability: "workflows", effect: "read" },
2050
+ { id: "get_run", capability: "workflows", effect: "read" },
2051
+ { id: "get_run_results", capability: "workflows", effect: "read" },
2052
+ { id: "cancel_run", capability: "workflows", effect: "cancel" },
2053
+ { id: "list_sessions", capability: "sessions", effect: "read" },
2054
+ { id: "create_session", capability: "sessions", effect: "write" },
2055
+ { id: "get_session", capability: "sessions", effect: "read" },
2056
+ { id: "send_message", capability: "sessions", effect: "execute" },
2057
+ { id: "continue_session", capability: "sessions", effect: "execute" },
2058
+ { id: "cancel_session", capability: "sessions", effect: "cancel" },
2059
+ { id: "resolve_decision", capability: "approvals", effect: "approve" },
2060
+ { id: "list_saved_sessions", capability: "sessions", effect: "read" },
2061
+ { id: "resume_session", capability: "sessions", effect: "execute" },
2062
+ { id: "resume_scan", capability: "scan-resume", effect: "execute" }
2063
+ ];
2064
+ var ENGINE_REPORT_FORMATS = ["json", "md", "html", "sarif", "pdf"];
2065
+ var operationIds = ENGINE_OPERATION_DEFINITIONS.map((operation) => operation.id);
2066
+ var OperationIdSchema = external_exports.enum(operationIds);
2067
+ var unique = (values) => new Set(values).size === values.length;
2068
+ var EngineCapabilityManifestSchema = external_exports.object({
2069
+ schemaVersion: external_exports.literal(1),
2070
+ operations: external_exports.array(OperationIdSchema).refine(unique, "Engine operations must be unique"),
2071
+ reportExport: external_exports.object({ formats: external_exports.array(external_exports.enum(ENGINE_REPORT_FORMATS)).refine(unique, "Report formats must be unique") }).strict(),
2072
+ resume: external_exports.object({ session: external_exports.boolean(), scan: external_exports.boolean(), workflow: external_exports.literal(false) }).strict()
2073
+ }).strict().superRefine((manifest, context) => {
2074
+ if (manifest.resume.session !== manifest.operations.includes("resume_session") || manifest.resume.scan !== manifest.operations.includes("resume_scan")) {
2075
+ context.addIssue({ code: external_exports.ZodIssueCode.custom, message: "Resume support must match registered operations" });
2076
+ }
2077
+ });
2078
+ function createEngineCapabilityManifest(options) {
2079
+ return EngineCapabilityManifestSchema.parse({
2080
+ schemaVersion: 1,
2081
+ operations: [...options.operations],
2082
+ reportExport: { formats: [...options.reportFormats ?? []] },
2083
+ resume: { session: options.operations.includes("resume_session"), scan: options.operations.includes("resume_scan"), workflow: false }
2084
+ });
2085
+ }
2086
+ function requireEngineOperation(manifest, operation) {
2087
+ const valid = EngineCapabilityManifestSchema.parse(manifest);
2088
+ if (!valid.operations.includes(operation))
2089
+ throw new Error(`Engine does not support operation ${operation}.`);
2090
+ }
2091
+ var ENGINE_COMMAND_COVERAGE = [
2092
+ { id: "assessment", classification: "workflow", cliCommands: ["scan", "review", "audit", "secure"], workflowSteps: ["audit"], templateIds: ["repository-review", "dependency-review", "api-security", "web-configuration", "scoped-penetration-test", "package-behavior", "contract-review", "native-code-review"], chatTools: [], limits: "Target-specific assessment options and admission still apply.", source: "packages/core/src/assessment.ts" },
2093
+ { id: "fix", classification: "workflow", cliCommands: ["fix"], workflowSteps: ["fix"], templateIds: ["fix-candidate"], chatTools: ["generate_fix"], limits: "Chat generation is distinct from workflow candidate validation; applying requires exact live candidate proof and host/request approval.", source: "packages/cli/src/finding-workflow-executors.ts" },
2094
+ { id: "verification", classification: "workflow", cliCommands: ["verify", "replay"], workflowSteps: ["verify"], templateIds: ["finding-verification"], chatTools: ["verify_finding"], limits: "Managed verification uses supported replay runners; CLI kernel verification is not a portable workflow operation.", source: "packages/cli/src/finding-workflow-executors.ts" },
2095
+ { id: "research", classification: "workflow", cliCommands: ["research pipeline", "research mobile", "research linux-matrix"], workflowSteps: ["research"], templateIds: ["security-research"], chatTools: [], limits: "Managed modes pipeline/mobile/linux-matrix require authorized local workspace; pipeline is source-only. linux-matrix imports external evidence and does not execute boots.", source: "packages/cli/src/workflow-research-executors.ts" },
2096
+ { id: "deep-review", classification: "workflow", cliCommands: ["deep-review"], workflowSteps: ["deep-review"], templateIds: ["deep-source-review"], chatTools: [], limits: "Authorized local source workspace and provider prerequisites apply.", source: "packages/cli/src/workflow-research-executors.ts" },
2097
+ { id: "offensive-tools", classification: "chat-tool", cliCommands: ["hunt", "assumption-hunt", "protocol-check", "specdrift", "memsafety", "npm-discovery", "kernel", "cve"], workflowSteps: [], templateIds: [], chatTools: ["variant_hunt", "assumption_hunt", "protocol_conformance", "spec_drift", "safety_eval", "memsafety_fuzz", "npm_dynamic_discovery", "weaponize_kernel", "cve_adapt"], limits: "Tool availability is scope/feature/prerequisite gated. CLI engines and tools have different contracts; no portable specialist workflow executor is registered by this manifest.", source: "packages/core/src/agent/tools/offensive-engines.ts" },
2098
+ { id: "kernel-research", classification: "cli-specialist", cliCommands: ["research linux"], workflowSteps: [], templateIds: [], chatTools: [], limits: "Managed kernel research rejects execution until the VM/build runner supports workflow cancellation and deadlines.", source: "packages/cli/src/workflow-research-executors.ts" },
2099
+ { id: "specialist-cli", classification: "cli-specialist", cliCommands: ["binary", "exploit", "recency-hunt", "lens-synth", "xnu-fuzz", "disclose", "eval", "bench", "ingest"], workflowSteps: [], templateIds: [], chatTools: [], limits: "These CLI contracts are not exposed as portable workflow steps here; model-driven source review is not equivalent to their native proof engines.", source: "packages/cli/src/index.ts" },
2100
+ { id: "maintenance", classification: "cli-maintenance", cliCommands: ["doctor", "db", "upgrade", "config", "plugin", "theme", "login", "logout"], workflowSteps: [], templateIds: [], chatTools: [], limits: "Host maintenance and credential changes are not workflow execution or model-tool grants.", source: "packages/cli/src/index.ts" }
2101
+ ];
2102
+
2103
+ // packages/shared/dist/finding-priority.js
2104
+ var ImpactAssessmentSchema = external_exports.object({
2105
+ reachability_tier: external_exports.enum(["remote-unauth", "remote-auth", "proximity-rf", "local-unpriv", "local-priv", "needs-hardware", "needs-host-migration", "unknown"]),
2106
+ blast_radius: external_exports.string().trim().min(1).max(4096),
2107
+ weaponizability: external_exports.enum(["dos-crash", "info-leak", "integrity-tampering", "lpe-to-root", "rce", "unknown"]),
2108
+ business_impact: external_exports.enum(["headline", "notable", "modest", "noise", "unassessed"]),
2109
+ rationale: external_exports.string().trim().min(1).max(8192),
2110
+ assessment_source: external_exports.enum(["model", "provided", "heuristic"]).optional()
2111
+ }).strip();
2112
+ var UNKNOWN_PRIORITY = {
2113
+ rank: 1.5,
2114
+ label: "Not assessed",
2115
+ assessed: false,
2116
+ rationale: "Business impact has not been assessed. Establish the affected services, customers, data, and operational consequences."
2117
+ };
2118
+ var PRIORITIES = {
2119
+ headline: { rank: 3, label: "Urgent" },
2120
+ notable: { rank: 2, label: "High" },
2121
+ modest: { rank: 1, label: "Moderate" },
2122
+ noise: { rank: 0, label: "Low" }
2123
+ };
2124
+ function isHeuristicImpactAssessment(assessment) {
2125
+ return assessment.assessment_source === "heuristic" || /^deterministic fallback derived from severity\s*\+\s*category/i.test(assessment.rationale) || /^heuristic baseline for a /i.test(assessment.blast_radius);
2126
+ }
2127
+ function getFindingPriority(finding) {
2128
+ const parsed = ImpactAssessmentSchema.safeParse(finding.impactAssessment);
2129
+ if (!parsed.success || parsed.data.business_impact === "unassessed" || isHeuristicImpactAssessment(parsed.data)) {
2130
+ return { ...UNKNOWN_PRIORITY };
2131
+ }
2132
+ const priority = PRIORITIES[parsed.data.business_impact];
2133
+ return { ...priority, assessed: true, rationale: parsed.data.rationale };
2134
+ }
2135
+ var TECHNICAL_SEVERITY = { critical: 4, high: 3, medium: 2, low: 1, info: 0 };
2136
+ function technicalCvss(value) {
2137
+ return typeof value === "number" && Number.isFinite(value) && value >= 0 && value <= 10 ? value : -1;
2138
+ }
2139
+ function compareFindingsByBusinessPriority(a, b) {
2140
+ return getFindingPriority(b).rank - getFindingPriority(a).rank || (TECHNICAL_SEVERITY[b.severity?.toLowerCase() ?? ""] ?? -1) - (TECHNICAL_SEVERITY[a.severity?.toLowerCase() ?? ""] ?? -1) || technicalCvss(b.cvssScore) - technicalCvss(a.cvssScore);
2141
+ }
2142
+
2143
+ // packages/shared/dist/access-milestone.js
2144
+ var record = (value) => value !== null && typeof value === "object" && !Array.isArray(value) ? value : void 0;
2145
+ var successfulObservation = (value) => {
2146
+ const item = record(value);
2147
+ return item && typeof item.status === "number" && Number.isInteger(item.status) && item.status >= 200 && item.status < 300 && item.truncated === false && item.field_present === true && (typeof item.json_pointer_value === "string" || item.json_pointer_value === null) ? item : void 0;
2148
+ };
2149
+ function accessMilestoneFromArtifact(eventType, value, scopeId, evidenceEventId) {
2150
+ const item = record(value);
2151
+ if (eventType !== "tool_artifact" || !item || item.tool !== "access_control_workflow" || item.workflow !== "access_control_workflow" || item.verdict !== "confirmed" || typeof item.owner_identity !== "string" || !item.owner_identity || typeof item.actor_identity !== "string" || !item.actor_identity || item.owner_identity === item.actor_identity || typeof item.expected_state !== "string" || item.expected_state.length > 500 || typeof item.observation_url !== "string" || item.observation_url.length > 8192 || !scopeId || scopeId.length > 512)
2152
+ return null;
2153
+ const before = successfulObservation(item.observation_before);
2154
+ const after = successfulObservation(item.observation_after);
2155
+ if (!before || !after || before.json_pointer_value === item.expected_state || after.json_pointer_value !== item.expected_state || !Array.isArray(item.steps) || item.steps.length === 0 || item.steps.length > 10)
2156
+ return null;
2157
+ if (item.steps.some((value2, index) => {
2158
+ const step = record(value2);
2159
+ return !step || step.step_index !== index || typeof step.url !== "string" || !["GET", "POST", "PUT", "DELETE", "PATCH"].includes(String(step.method)) || typeof step.status !== "number" || !Number.isInteger(step.status) || step.status < 100 || step.status > 599 || step.error !== void 0;
2160
+ }))
2161
+ return null;
2162
+ let asset;
2163
+ try {
2164
+ const url = new URL(item.observation_url);
2165
+ if (!["https:", "http:"].includes(url.protocol) || url.username || url.password)
2166
+ return null;
2167
+ asset = url.origin;
2168
+ } catch {
2169
+ return null;
2170
+ }
2171
+ return {
2172
+ key: JSON.stringify([scopeId, "cross-identity-write", item.observation_url]),
2173
+ asset,
2174
+ status: "conditional",
2175
+ accessClass: "cross-identity-write",
2176
+ headline: "State change confirmed across request contexts",
2177
+ summary: "The observing context saw the declared marker after requests using different configured authentication headers. Authorization impact requires validation. Cleanup was not verified.",
2178
+ cleanup: "unknown",
2179
+ ...evidenceEventId && evidenceEventId.length <= 512 ? { evidenceEventId } : {}
2180
+ };
2181
+ }
2182
+ function appendAccessMilestone(current, next, limit = 80) {
2183
+ if (current.some((item) => item.milestone.key === next.milestone.key))
2184
+ return [...current];
2185
+ return [...current, next].slice(-Math.max(1, Math.min(80, limit)));
2186
+ }
2187
+
1961
2188
  export {
1962
2189
  validateScanPlan,
1963
2190
  defaultRoleFor,
@@ -1992,6 +2219,8 @@ export {
1992
2219
  VerificationAssertionSchema,
1993
2220
  EvidenceArtifactSchema,
1994
2221
  VerificationResultSchema,
2222
+ pocStepActionSchema,
2223
+ pocStepExpectSchema,
1995
2224
  pocStepSchema,
1996
2225
  pocStepArraySchema,
1997
2226
  findingSchema,
@@ -2076,5 +2305,19 @@ export {
2076
2305
  BackendEventCursorSchema,
2077
2306
  BackendApprovalRefSchema,
2078
2307
  assertBackendReference,
2079
- backendCapabilitiesForApiPath
2308
+ backendCapabilitiesForApiPath,
2309
+ ScanResumeRequestSchema,
2310
+ resolvePersistedScanResume,
2311
+ ENGINE_OPERATION_DEFINITIONS,
2312
+ ENGINE_REPORT_FORMATS,
2313
+ EngineCapabilityManifestSchema,
2314
+ createEngineCapabilityManifest,
2315
+ requireEngineOperation,
2316
+ ENGINE_COMMAND_COVERAGE,
2317
+ ImpactAssessmentSchema,
2318
+ isHeuristicImpactAssessment,
2319
+ getFindingPriority,
2320
+ compareFindingsByBusinessPriority,
2321
+ accessMilestoneFromArtifact,
2322
+ appendAccessMilestone
2080
2323
  };