0sec-cli 0.22.4 → 0.24.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.
Files changed (208) hide show
  1. package/0.js +73 -68
  2. package/README.md +95 -61
  3. package/chunks/{adapt-loop-3CCOWE43.js → adapt-loop-TEJPXWFG.js} +4 -4
  4. package/chunks/{artifact-scraper-Z4UUIOH3.js → artifact-scraper-AJZ3LOQY.js} +2 -2
  5. package/chunks/{assumption-mining-2UAKQB6V.js → assumption-mining-EATDC4BB.js} +18 -18
  6. package/chunks/backend-connections-QE4NASAK.js +23 -0
  7. package/chunks/chunk-3XLEDCFX.js +566 -0
  8. package/chunks/{chunk-BGX53365.js → chunk-3XLFB46W.js} +5 -3
  9. package/chunks/{chunk-IXAHQICR.js → chunk-4TUR47H5.js} +8 -3
  10. package/chunks/{chunk-5WAJGLCW.js → chunk-4YRXIVPZ.js} +3 -3
  11. package/chunks/{chunk-4ZYYX5GY.js → chunk-52AWIBCT.js} +1 -1
  12. package/chunks/{chunk-TO35Y326.js → chunk-554D4AYM.js} +5 -2
  13. package/chunks/{chunk-GQ3DGHWE.js → chunk-5FHFG5P2.js} +174 -710
  14. package/chunks/chunk-5POT5OYF.js +733 -0
  15. package/chunks/chunk-62PGWN7Y.js +700 -0
  16. package/chunks/{chunk-H6Q2QAIY.js → chunk-A3EKBUEM.js} +1424 -859
  17. package/chunks/{chunk-6WQDXWQC.js → chunk-A6AZZ6XX.js} +2 -2
  18. package/chunks/{chunk-6YZE552K.js → chunk-AV5BF4V7.js} +1281 -2580
  19. package/chunks/{chunk-2WWAPKAW.js → chunk-BIJPMYFA.js} +6 -6
  20. package/chunks/{chunk-SCWWLABR.js → chunk-CIMN2AO6.js} +1 -1
  21. package/chunks/{chunk-H4DH7COV.js → chunk-CSPF47S3.js} +30 -20
  22. package/chunks/{chunk-RCRTSKQN.js → chunk-DNV3ZMPX.js} +1 -1
  23. package/chunks/{chunk-GVY3S5E5.js → chunk-E42XEJTK.js} +2 -2
  24. package/chunks/{chunk-VDOWARMJ.js → chunk-ESM447R6.js} +15 -1
  25. package/chunks/{chunk-WBRGXCU2.js → chunk-EXTN4SQV.js} +1 -1
  26. package/chunks/{chunk-QVIRWJ45.js → chunk-EYBMTELO.js} +108 -24
  27. package/chunks/chunk-FEOPHBMY.js +56 -0
  28. package/chunks/{chunk-IHPTOTLL.js → chunk-FKGFHLLS.js} +1 -1
  29. package/chunks/chunk-G2EJ3R5I.js +5198 -0
  30. package/chunks/chunk-GHEBZKUS.js +5417 -0
  31. package/chunks/chunk-GNR3APR6.js +295 -0
  32. package/chunks/{chunk-ELI3BVIK.js → chunk-H76JYUPE.js} +3 -3
  33. package/chunks/{chunk-E74LXQFY.js → chunk-HRBOZBMC.js} +1 -1
  34. package/chunks/{chunk-TM74SSHC.js → chunk-IIBNQTOK.js} +3 -2
  35. package/chunks/{chunk-UELXHK2Y.js → chunk-IK27KMVV.js} +16 -5
  36. package/chunks/{chunk-WHUAUFSX.js → chunk-J6G73WYF.js} +1 -1
  37. package/chunks/chunk-JSTLXPJS.js +284 -0
  38. package/chunks/{chunk-G2BE2FC7.js → chunk-O3ADFN2A.js} +1 -1
  39. package/chunks/chunk-O7Q2G2KW.js +117 -0
  40. package/chunks/{chunk-XODDLNBI.js → chunk-QEA2VHBD.js} +284 -33
  41. package/chunks/{chunk-C6JPA32H.js → chunk-RBOMXUYL.js} +3 -111
  42. package/chunks/{chunk-L2CCO4KE.js → chunk-RCHAFSWS.js} +838 -39
  43. package/chunks/{chunk-3BPX75OR.js → chunk-RD4FKFWR.js} +1 -1
  44. package/chunks/{chunk-DPUXXMJW.js → chunk-RPTO5FY2.js} +1 -1
  45. package/chunks/{chunk-6KFB6AYN.js → chunk-RZR2XXAK.js} +531 -17
  46. package/chunks/chunk-SGILXLR3.js +289 -0
  47. package/chunks/{chunk-E3OOBVOK.js → chunk-TOAAYJVN.js} +2 -2
  48. package/chunks/chunk-TOFIGQ63.js +83 -0
  49. package/chunks/{chunk-QWK4R3DB.js → chunk-TTDFBFNZ.js} +6 -6
  50. package/chunks/chunk-TZRHWP7R.js +736 -0
  51. package/chunks/chunk-UHUW45S3.js +164 -0
  52. package/chunks/{chunk-5JNTMWPK.js → chunk-V4BD7GSP.js} +2 -2
  53. package/chunks/{chunk-OAS5SAVZ.js → chunk-V5I5GAQH.js} +3226 -1683
  54. package/chunks/{chunk-PS5E7LUQ.js → chunk-W6IYTSZH.js} +79 -9
  55. package/chunks/{chunk-RTBZ36BD.js → chunk-WUPN3D37.js} +22 -248
  56. package/chunks/{chunk-CF3MNS3O.js → chunk-Y7KV7WV6.js} +2 -2
  57. package/chunks/{chunk-2OQOQ2FZ.js → chunk-YERUDEXT.js} +763 -688
  58. package/chunks/{chunk-CPCHLL6A.js → chunk-YJU7QACE.js} +1 -1
  59. package/chunks/{chunk-YED25PA4.js → chunk-YORL5S5V.js} +1 -1
  60. package/chunks/{chunk-YAZARMJY.js → chunk-YYOQADBB.js} +4 -3
  61. package/chunks/chunk-ZPFBQ3SD.js +127 -0
  62. package/chunks/{codex-models-Z43V3427.js → codex-models-FQPCWRPC.js} +7 -7
  63. package/chunks/{commands-EUGF4FUZ.js → commands-I5L3VD2A.js} +6187 -12196
  64. package/chunks/dashboard-B2AEGCFM.js +76 -0
  65. package/chunks/{db-NVAW4WWR.js → db-P5EIKMLP.js} +3 -3
  66. package/chunks/deep-review-I7RD5QSS.js +82 -0
  67. package/chunks/{disclose-LDNKAVRH.js → disclose-PFBWESVJ.js} +4 -2
  68. package/chunks/{dist-7RUOKPRJ.js → dist-3SWWY5FZ.js} +18 -2
  69. package/chunks/{dist-27BNG6WD.js → dist-AJU25UXA.js} +112 -63
  70. package/chunks/{dist-NG2HT5XU.js → dist-VK2M4HNW.js} +85 -1
  71. package/chunks/eval-runner-XVRX3R2Y.js +31 -0
  72. package/chunks/{exploit-agent-FCCR2HYX.js → exploit-agent-A4RTIJ4J.js} +1 -1
  73. package/chunks/{exploit-autoclimb-X5ZS5FAO.js → exploit-autoclimb-ABMMBC3M.js} +1 -1
  74. package/chunks/{exploit-climb-3JHGEO36.js → exploit-climb-BQ2SVU63.js} +2 -2
  75. package/chunks/{fix-NSNPU33B.js → fix-4YCLHFDT.js} +7 -7
  76. package/chunks/{harness-KXQOVIDQ.js → harness-DHWULEIZ.js} +3 -3
  77. package/chunks/{hunt-scan-ELTKGKC4.js → hunt-scan-DXV5H6YN.js} +16 -16
  78. package/chunks/{kernel-primitive-MT7YZSIG.js → kernel-primitive-SF4NALVR.js} +2 -2
  79. package/chunks/{kernel-vm-runner-YFRHYC6G.js → kernel-vm-runner-WEBEZEIC.js} +2 -2
  80. package/chunks/local-engine-XUG7XRKM.js +21 -0
  81. package/chunks/managed-operation-SQFMBWHG.js +60 -0
  82. package/chunks/{memsafety-scan-FCPAXIZE.js → memsafety-scan-L2Z7E7TE.js} +2 -2
  83. package/chunks/{native-loop-OFJDRHPI.js → native-loop-ZNAELJGB.js} +14 -13
  84. package/chunks/orchestrate-YHFJXGID.js +63 -0
  85. package/chunks/{prepare-72GWTRVI.js → prepare-SODWQN6O.js} +5 -5
  86. package/chunks/provider-model-discovery-QGUGL3XW.js +277 -0
  87. package/chunks/remote-workflow-runtime-XNNGI2PG.js +12 -0
  88. package/chunks/{run-WTJCZZHV.js → run-5T4Z3Q2D.js} +924 -327
  89. package/chunks/{runtime-LCJ4XSKE.js → runtime-HFFRUOPL.js} +4 -2
  90. package/chunks/{runtime-FCKOUB7V.js → runtime-MB4GEFBY.js} +7 -7
  91. package/chunks/{scan-stream-GT6GKQ3U.js → scan-stream-GXBJHCDF.js} +3 -2
  92. package/chunks/{scope-E5QZUOOH.js → scope-M7L3CD6X.js} +2 -2
  93. package/chunks/service-plugins-BGS6QKSZ.js +64 -0
  94. package/chunks/{session-store-H3Q7KCYG.js → session-store-K7I4GLNH.js} +2 -2
  95. package/chunks/{variant-candidates-SZKDCOLK.js → variant-candidates-2KSP5EHH.js} +7 -7
  96. package/chunks/{web-recon-prepass-IO3GXQMW.js → web-recon-prepass-RAXXTEWH.js} +5 -5
  97. package/chunks/workflow-runtime-V26HIJO3.js +178 -0
  98. package/dashboard/assets/abnfDiagram-VCTEODGH-CGCueOp5.js +1 -0
  99. package/dashboard/assets/arc-BjZaQcCc.js +1 -0
  100. package/dashboard/assets/architecture-7GRP2DOG-hcbO-9zX.js +1 -0
  101. package/dashboard/assets/architectureDiagram-5GKGNRK7-DReOXTSq.js +36 -0
  102. package/dashboard/assets/array-BifhSqXX.js +1 -0
  103. package/dashboard/assets/blockDiagram-I7D4REHJ-C-byT12_.js +129 -0
  104. package/dashboard/assets/c4Diagram-7LVT6UL2-DoYjz-Uv.js +38 -0
  105. package/dashboard/assets/channel-CUURBnpZ.js +1 -0
  106. package/dashboard/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  107. package/dashboard/assets/chunk-4HAMMTFA-NBNp2zdt.js +62 -0
  108. package/dashboard/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  109. package/dashboard/assets/chunk-75Z2AOVW-BHmkuP0B.js +2 -0
  110. package/dashboard/assets/chunk-DU6HZSFF-DgfLNaL2.js +127 -0
  111. package/dashboard/assets/chunk-F27PBJKO-3wwNFUgZ.js +1 -0
  112. package/dashboard/assets/chunk-FOHPRMQF-DHwB1DNv.js +161 -0
  113. package/dashboard/assets/chunk-GMAD6QVW-Btg7huZW.js +72 -0
  114. package/dashboard/assets/chunk-GVQU2GXP-ihCURK5O.js +1 -0
  115. package/dashboard/assets/chunk-IMKFNOWR-FsXj7slg.js +231 -0
  116. package/dashboard/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  117. package/dashboard/assets/chunk-L3NEJ4N5-DorFIxJY.js +1 -0
  118. package/dashboard/assets/chunk-OSK3NFVY-DKun_KfC.js +10 -0
  119. package/dashboard/assets/chunk-P2QGCYS3-XGgiU1Bz.js +1 -0
  120. package/dashboard/assets/chunk-POPQ4Y6H-BTXEnGhJ.js +1 -0
  121. package/dashboard/assets/chunk-PWAF6VOD-DYZcGkTL.js +1 -0
  122. package/dashboard/assets/chunk-SHT3W25Y-C4WQfwf8.js +168 -0
  123. package/dashboard/assets/chunk-SVP7TREG-C4nCh0-1.js +88 -0
  124. package/dashboard/assets/chunk-TICWLB2K-DSB-IiGc.js +206 -0
  125. package/dashboard/assets/chunk-XXDRQBXY-CS6fjUcj.js +1 -0
  126. package/dashboard/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  127. package/dashboard/assets/classDiagram-ZZMXUADV-CD1Buc26.js +1 -0
  128. package/dashboard/assets/classDiagram-v2-VYDZK3BY-CD1Buc26.js +1 -0
  129. package/dashboard/assets/common-BMdQBwfR.js +5 -0
  130. package/dashboard/assets/cose-bilkent-JH36ORCC-CUjQHTML.js +1 -0
  131. package/dashboard/assets/cynefin-OW5HDTMX-BC7zCtFq.js +1 -0
  132. package/dashboard/assets/cynefinDiagram-5FMLGOSQ-CgDOOY67.js +62 -0
  133. package/dashboard/assets/cytoscape.esm-CGd-uY3x.js +321 -0
  134. package/dashboard/assets/dagre-GXQ25YYZ-Dqc8FS9x.js +4 -0
  135. package/dashboard/assets/dagre-PrKaheQc.js +1 -0
  136. package/dashboard/assets/defaultLocale-BFoDCU3G.js +1 -0
  137. package/dashboard/assets/diagram-S7CK7UJ4-CrKqRXZb.js +30 -0
  138. package/dashboard/assets/diagram-UQ7AKVKN-Cu6Es0-v.js +41 -0
  139. package/dashboard/assets/diagram-VSXAHHWV-eK4d8FwS.js +3 -0
  140. package/dashboard/assets/diagram-VX7I27RA-bFxeFKOc.js +24 -0
  141. package/dashboard/assets/diagram-Z3DM3KII-C0ClmnhC.js +24 -0
  142. package/dashboard/assets/dist-BZh8Kb3O.js +1 -0
  143. package/dashboard/assets/ebnfDiagram-PWID7BFC-CUqxFPzf.js +1 -0
  144. package/dashboard/assets/erDiagram-RLTQ6QDP-CcYM7pLi.js +99 -0
  145. package/dashboard/assets/eventmodeling-NTZA5JFV-D8ZNnPkV.js +1 -0
  146. package/dashboard/assets/flowDiagram-HODETNUW-pDb1AYm8.js +1 -0
  147. package/dashboard/assets/ganttDiagram-EL5Y4UJY-UmZfbMyD.js +292 -0
  148. package/dashboard/assets/gitGraph-4MIJSDKK-mvNUo0ZA.js +1 -0
  149. package/dashboard/assets/gitGraphDiagram-WWUBYQGX-CvzeCxVy.js +106 -0
  150. package/dashboard/assets/graphlib-DS17s2tU.js +1 -0
  151. package/dashboard/assets/info-A6RAGUB7-DChKqZMi.js +1 -0
  152. package/dashboard/assets/infoDiagram-27XIBGKW-DjkpNtVW.js +2 -0
  153. package/dashboard/assets/init-C-OQMol4.js +1 -0
  154. package/dashboard/assets/ishikawaDiagram-5VMMS53U-8FhjJaWT.js +70 -0
  155. package/dashboard/assets/journeyDiagram-3NMN7TZE-DyNJ755f.js +139 -0
  156. package/dashboard/assets/kanban-definition-UXKFOSKX-_jCmtaY1.js +89 -0
  157. package/dashboard/assets/katex-BdBmVSus.js +257 -0
  158. package/dashboard/assets/line-Bf0nxyWf.js +1 -0
  159. package/dashboard/assets/linear-Bl6JKbf4.js +1 -0
  160. package/dashboard/assets/mermaid-parser.core-Cc6sgCzs.js +7 -0
  161. package/dashboard/assets/mermaid.core-B4yCwiN-.js +44 -0
  162. package/dashboard/assets/mindmap-definition-YA3MSWOX-D5DjWyXj.js +96 -0
  163. package/dashboard/assets/operations-B7JAWOi6.js +130 -0
  164. package/dashboard/assets/operations-QjKT0Hwi.css +1 -0
  165. package/dashboard/assets/ordinal-BDEzSJ7C.js +1 -0
  166. package/dashboard/assets/packet-AYTQ26CC-bQXLDhQC.js +1 -0
  167. package/dashboard/assets/path-fybaL0A-.js +1 -0
  168. package/dashboard/assets/pegDiagram-XKGWAZYB-Bf6a1vaf.js +1 -0
  169. package/dashboard/assets/pie-WAS4IAKB-DfzoABIi.js +1 -0
  170. package/dashboard/assets/pieDiagram-E7YTZNPT-D0L1qbch.js +39 -0
  171. package/dashboard/assets/quadrantDiagram-AXDQQJYC-CbFyy2Pe.js +7 -0
  172. package/dashboard/assets/radar-RG4KPBEZ-CZ2pyeUT.js +1 -0
  173. package/dashboard/assets/railroad-74A4TZTK-CP4Jazfd.js +1 -0
  174. package/dashboard/assets/railroad-abnf-HS5TGJTU-3MvEiHwD.js +1 -0
  175. package/dashboard/assets/railroad-ebnf-LZEXJU2U-BWto6cXE.js +1 -0
  176. package/dashboard/assets/railroad-peg-WCYAUIDC-DasEjbyf.js +1 -0
  177. package/dashboard/assets/railroadDiagram-O6MQD6OU-t7Gp9g2R.js +1 -0
  178. package/dashboard/assets/requirementDiagram-BXWQKSXE-LYmqeBXi.js +84 -0
  179. package/dashboard/assets/rough.esm-Dy-Kn_BL.js +1 -0
  180. package/dashboard/assets/sankeyDiagram-P5KCCOFB-DnpfA_94.js +40 -0
  181. package/dashboard/assets/sequenceDiagram-WJ2MYXX4-C8s3pTUE.js +162 -0
  182. package/dashboard/assets/sizeCapture-INFHLROL-B0uUizjq.js +1 -0
  183. package/dashboard/assets/src-CaNUT1AQ.js +1 -0
  184. package/dashboard/assets/stateDiagram-D77RDMKH-BMzm6fK1.js +1 -0
  185. package/dashboard/assets/stateDiagram-v2-MP3YSRHH-B3REMjpY.js +1 -0
  186. package/dashboard/assets/swimlanes-42K2YHIH-uJE05Tt_.js +1 -0
  187. package/dashboard/assets/swimlanesDiagram-VR7AAH4N-CIaVMZEy.js +8 -0
  188. package/dashboard/assets/timeline-definition-24CTP7MA-BfLJMVeG.js +120 -0
  189. package/dashboard/assets/treeView-Q6P3EWNA-ZOE2enu2.js +1 -0
  190. package/dashboard/assets/treemap-WGGIJYW6-yIZoPBF5.js +1 -0
  191. package/dashboard/assets/vennDiagram-4TSXK5OY-BYJRHEaL.js +34 -0
  192. package/dashboard/assets/wardley-WFR3VGLG-D5V-jLbB.js +1 -0
  193. package/dashboard/assets/wardleyDiagram-VM6X3IG4-DgPN4nSe.js +78 -0
  194. package/dashboard/assets/xychartDiagram-S5SC5T6Z-BhkAMAOT.js +7 -0
  195. package/dashboard/index.html +3 -3
  196. package/package.json +3 -2
  197. package/worker-assets/demo-target/README.md +15 -0
  198. package/worker-assets/demo-target/include/decoder.h +27 -0
  199. package/worker-assets/demo-target/patched-decoder.c +40 -0
  200. package/worker-assets/demo-target/src/decoder.c +50 -0
  201. package/worker-assets/demo-target/witness-65537x1.bin +0 -0
  202. package/chunks/chunk-FFHRANYC.js +0 -547
  203. package/chunks/eval-runner-6Q3H52SP.js +0 -30
  204. package/chunks/orchestrate-DRZ2SVCP.js +0 -62
  205. package/chunks/service-plugins-MSK2EQP6.js +0 -62
  206. package/dashboard/assets/operations-BvB5Qpmk.css +0 -1
  207. package/dashboard/assets/operations-D8Ii01SV.js +0 -114
  208. package/dashboard/assets/zero-peek-Dzm3MT3X.png +0 -0
@@ -0,0 +1,295 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire as __0CreateRequire } from "node:module";
3
+ const require = __0CreateRequire(import.meta.url);
4
+ import {
5
+ presentationEventBus
6
+ } from "./chunk-FEOPHBMY.js";
7
+ import {
8
+ createPresentationEvent
9
+ } from "./chunk-RZR2XXAK.js";
10
+
11
+ // packages/cli/src/presentation/process-output.ts
12
+ import { format } from "node:util";
13
+ var streamBridgeSuppressionDepth = 0;
14
+ var activeStreamBridge = null;
15
+ function currentPresentationTimestamp() {
16
+ return (/* @__PURE__ */ new Date()).toISOString();
17
+ }
18
+ function createProcessPresentationOutput(options = {}) {
19
+ const stdout = options.stdout ?? { write: process.stdout.write.bind(process.stdout) };
20
+ const stderr = options.stderr ?? { write: process.stderr.write.bind(process.stderr) };
21
+ const source = options.source ?? "cli";
22
+ const now = options.now ?? currentPresentationTimestamp;
23
+ let sequence = 0;
24
+ const write = (channel, target, text, eventType) => {
25
+ const event = createPresentationEvent({
26
+ source,
27
+ sequence: ++sequence,
28
+ at: now(),
29
+ eventType,
30
+ payload: { channel, text }
31
+ });
32
+ streamBridgeSuppressionDepth += 1;
33
+ try {
34
+ target.write(text);
35
+ } finally {
36
+ streamBridgeSuppressionDepth -= 1;
37
+ }
38
+ options.onEvent?.(event);
39
+ return event;
40
+ };
41
+ return {
42
+ stdout(text, eventType = "output.stdout") {
43
+ return write("stdout", stdout, text, eventType);
44
+ },
45
+ stderr(text, eventType = "output.stderr") {
46
+ return write("stderr", stderr, text, eventType);
47
+ }
48
+ };
49
+ }
50
+ function createConsolePresentationOutput(options = {}) {
51
+ const source = options.source ?? "cli";
52
+ const now = options.now ?? currentPresentationTimestamp;
53
+ let sequence = 0;
54
+ const emit = (channel, text, eventType) => {
55
+ const event = createPresentationEvent({
56
+ source,
57
+ sequence: ++sequence,
58
+ at: now(),
59
+ eventType,
60
+ payload: { channel, text }
61
+ });
62
+ streamBridgeSuppressionDepth += 1;
63
+ try {
64
+ if (channel === "stdout") {
65
+ (options.log ?? console.log)(text);
66
+ } else {
67
+ (options.error ?? console.error)(text);
68
+ }
69
+ } finally {
70
+ streamBridgeSuppressionDepth -= 1;
71
+ }
72
+ options.onEvent?.(event);
73
+ return event;
74
+ };
75
+ return {
76
+ stdout(text, eventType = "output.stdout") {
77
+ return emit("stdout", text, eventType);
78
+ },
79
+ stderr(text, eventType = "output.stderr") {
80
+ return emit("stderr", text, eventType);
81
+ }
82
+ };
83
+ }
84
+ var consolePresentationOutput = createConsolePresentationOutput({
85
+ onEvent(event) {
86
+ presentationEventBus.emit(event);
87
+ }
88
+ });
89
+ function installConsolePresentationBridge(options = {}) {
90
+ const target = options.target ?? console;
91
+ const originals = {
92
+ log: target.log,
93
+ info: target.info,
94
+ warn: target.warn,
95
+ error: target.error
96
+ };
97
+ const source = options.source ?? "cli";
98
+ const now = options.now ?? currentPresentationTimestamp;
99
+ let sequence = 0;
100
+ const emit = (method, channel, args, eventType) => {
101
+ const text = format(...args);
102
+ if (streamBridgeSuppressionDepth > 0) {
103
+ originals[method].call(target, text);
104
+ return;
105
+ }
106
+ const event = createPresentationEvent({
107
+ source,
108
+ sequence: ++sequence,
109
+ at: now(),
110
+ eventType,
111
+ payload: { channel, text }
112
+ });
113
+ streamBridgeSuppressionDepth += 1;
114
+ try {
115
+ originals[method].call(target, text);
116
+ } finally {
117
+ streamBridgeSuppressionDepth -= 1;
118
+ }
119
+ presentationEventBus.emit(event);
120
+ options.onEvent?.(event);
121
+ };
122
+ const bridgedLog = (...args) => emit("log", "stdout", args, "output.console.log");
123
+ const bridgedInfo = (...args) => emit("info", "stdout", args, "output.console.info");
124
+ const bridgedWarn = (...args) => emit("warn", "stderr", args, "output.console.warn");
125
+ const bridgedError = (...args) => emit("error", "stderr", args, "output.console.error");
126
+ target.log = bridgedLog;
127
+ target.info = bridgedInfo;
128
+ target.warn = bridgedWarn;
129
+ target.error = bridgedError;
130
+ return {
131
+ restore() {
132
+ if (target.log === bridgedLog) target.log = originals.log;
133
+ if (target.info === bridgedInfo) target.info = originals.info;
134
+ if (target.warn === bridgedWarn) target.warn = originals.warn;
135
+ if (target.error === bridgedError) target.error = originals.error;
136
+ }
137
+ };
138
+ }
139
+ function installProcessPresentationStreamBridge(options = {}) {
140
+ if (activeStreamBridge) return activeStreamBridge;
141
+ const source = options.source ?? "cli";
142
+ const now = options.now ?? currentPresentationTimestamp;
143
+ let sequence = 0;
144
+ let suspended = false;
145
+ const streams = [];
146
+ const emit = (channel, chunk, encoding) => {
147
+ const text = typeof chunk === "string" ? chunk : chunk instanceof Uint8Array ? Buffer.from(chunk).toString(typeof encoding === "string" ? encoding : "utf8") : String(chunk ?? "");
148
+ if (channel === "stdout" && text.startsWith("ZERO_EVENT_")) return;
149
+ const event = createPresentationEvent({
150
+ source,
151
+ sequence: ++sequence,
152
+ at: now(),
153
+ eventType: channel === "stdout" ? "output.stream.stdout" : "output.stream.stderr",
154
+ payload: { channel, text }
155
+ });
156
+ presentationEventBus.emit(event);
157
+ options.onEvent?.(event);
158
+ };
159
+ for (const [channel, stream] of [
160
+ ["stdout", options.stdout ?? process.stdout],
161
+ ["stderr", options.stderr ?? process.stderr]
162
+ ]) {
163
+ const original = stream.write;
164
+ const patched = ((chunk, encoding, callback) => {
165
+ const result = original.call(stream, chunk, encoding, callback);
166
+ if (!suspended && streamBridgeSuppressionDepth === 0) emit(channel, chunk, encoding);
167
+ return result;
168
+ });
169
+ streams.push({ channel, stream, original, patched });
170
+ }
171
+ const bridge = {
172
+ suspend() {
173
+ if (suspended) return;
174
+ suspended = true;
175
+ for (const item of streams) {
176
+ if (item.stream.write === item.patched) item.stream.write = item.original;
177
+ }
178
+ },
179
+ resume() {
180
+ if (!suspended) return;
181
+ suspended = false;
182
+ for (const item of streams) {
183
+ if (item.stream.write === item.original) item.stream.write = item.patched;
184
+ }
185
+ },
186
+ restore() {
187
+ for (const item of streams) {
188
+ if (item.stream.write === item.patched) item.stream.write = item.original;
189
+ }
190
+ if (activeStreamBridge === bridge) activeStreamBridge = null;
191
+ }
192
+ };
193
+ for (const item of streams) item.stream.write = item.patched;
194
+ activeStreamBridge = bridge;
195
+ return bridge;
196
+ }
197
+ function suspendProcessPresentationStreamBridge() {
198
+ activeStreamBridge?.suspend();
199
+ }
200
+ function resumeProcessPresentationStreamBridge() {
201
+ activeStreamBridge?.resume();
202
+ }
203
+ var processPresentationOutput = createProcessPresentationOutput({
204
+ onEvent(event) {
205
+ presentationEventBus.emit(event);
206
+ }
207
+ });
208
+ function writePresentationLine(text, eventType = "output.stdout") {
209
+ return processPresentationOutput.stdout(`${text}
210
+ `, eventType);
211
+ }
212
+
213
+ // packages/cli/src/tui/animations.ts
214
+ var UI_ANIMATION_INTERVAL_MS = 70;
215
+ function clamp(x, lo, hi) {
216
+ if (!Number.isFinite(x)) return lo;
217
+ return x < lo ? lo : x > hi ? hi : x;
218
+ }
219
+ function clamp01(x) {
220
+ return clamp(x, 0, 1);
221
+ }
222
+ function smoothstep(t) {
223
+ const x = clamp01(t);
224
+ return x * x * (3 - 2 * x);
225
+ }
226
+ function safeFrame(frame) {
227
+ if (!Number.isFinite(frame)) return 0;
228
+ const t = Math.trunc(frame);
229
+ return t < 0 ? 0 : t;
230
+ }
231
+ var SPINNER_PERIOD = 8;
232
+ var TOAST_ENTER_FRAMES = 6;
233
+ var TOAST_HOLD_FRAMES = 28;
234
+ var TOAST_EXIT_FRAMES = 6;
235
+ var TOAST_TOTAL_FRAMES = TOAST_ENTER_FRAMES + TOAST_HOLD_FRAMES + TOAST_EXIT_FRAMES;
236
+ var SPINNER_FRAMES = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827"];
237
+ function spinnerFrame(frame, opts = {}) {
238
+ if (opts.reduceMotion) return 0;
239
+ return safeFrame(frame) % SPINNER_PERIOD;
240
+ }
241
+ function spinnerGlyph(frame, opts = {}) {
242
+ return SPINNER_FRAMES[spinnerFrame(frame, opts)] ?? SPINNER_FRAMES[0];
243
+ }
244
+ var SHIMMER_TEXT_TAIL = 5;
245
+ var SHIMMER_TEXT_INTERVAL_MS = 80;
246
+ var SHIMMER_TEXT_REST_GAP = 6;
247
+ function shimmerTail(opts) {
248
+ const t = opts?.tail;
249
+ if (t === void 0 || !Number.isFinite(t)) return SHIMMER_TEXT_TAIL;
250
+ return Math.max(1, Math.trunc(t));
251
+ }
252
+ function shimmerRestGap(opts) {
253
+ const g = opts?.restGap;
254
+ if (g === void 0 || !Number.isFinite(g)) return SHIMMER_TEXT_REST_GAP;
255
+ return Math.max(0, Math.trunc(g));
256
+ }
257
+ function shimmerLength(length) {
258
+ if (!Number.isFinite(length)) return 0;
259
+ const n = Math.trunc(length);
260
+ return n < 0 ? 0 : n;
261
+ }
262
+ function shimmerText(length, frame, opts) {
263
+ const len = shimmerLength(length);
264
+ if (len <= 0) return [];
265
+ const out = new Array(len).fill(0);
266
+ if (opts?.reduceMotion) return out;
267
+ const tail = shimmerTail(opts);
268
+ const rest = shimmerRestGap(opts);
269
+ const period = len + 2 * tail + rest;
270
+ const sweep = len + 2 * tail;
271
+ const idx = (safeFrame(frame) % period + period) % period;
272
+ if (idx >= sweep) return out;
273
+ const head = idx - tail;
274
+ for (let offset = -tail; offset <= tail; offset += 1) {
275
+ const col = head + offset;
276
+ if (col < 0 || col >= len) continue;
277
+ const intensity = 1 - smoothstep(Math.abs(offset) / tail);
278
+ if (intensity > out[col]) out[col] = intensity;
279
+ }
280
+ return out;
281
+ }
282
+
283
+ export {
284
+ consolePresentationOutput,
285
+ installConsolePresentationBridge,
286
+ installProcessPresentationStreamBridge,
287
+ suspendProcessPresentationStreamBridge,
288
+ resumeProcessPresentationStreamBridge,
289
+ processPresentationOutput,
290
+ writePresentationLine,
291
+ UI_ANIMATION_INTERVAL_MS,
292
+ spinnerGlyph,
293
+ SHIMMER_TEXT_INTERVAL_MS,
294
+ shimmerText
295
+ };
@@ -5,13 +5,13 @@ import {
5
5
  makeSkepticVerifier,
6
6
  runHuntScan,
7
7
  scoreGeometry
8
- } from "./chunk-H4DH7COV.js";
8
+ } from "./chunk-CSPF47S3.js";
9
9
  import {
10
10
  runReproducerInKernelVm
11
- } from "./chunk-RCRTSKQN.js";
11
+ } from "./chunk-DNV3ZMPX.js";
12
12
  import {
13
13
  LlmApiRuntime
14
- } from "./chunk-QVIRWJ45.js";
14
+ } from "./chunk-EYBMTELO.js";
15
15
  import {
16
16
  __commonJS,
17
17
  __require,
@@ -3,7 +3,7 @@ import { createRequire as __0CreateRequire } from "node:module";
3
3
  const require = __0CreateRequire(import.meta.url);
4
4
  import {
5
5
  LlmApiRuntime
6
- } from "./chunk-QVIRWJ45.js";
6
+ } from "./chunk-EYBMTELO.js";
7
7
 
8
8
  // packages/core/dist/stages/variant-candidates.js
9
9
  import { execFileSync } from "node:child_process";
@@ -5,7 +5,7 @@ import {
5
5
  buildPlaybookInjection,
6
6
  parseSanitizerLog,
7
7
  verifyOracleByCategory
8
- } from "./chunk-2OQOQ2FZ.js";
8
+ } from "./chunk-YERUDEXT.js";
9
9
  import {
10
10
  allowlistedChildEnv
11
11
  } from "./chunk-5IBCBQEH.js";
@@ -558,6 +558,7 @@ async function runCLoop(opts, ctx) {
558
558
  ctx.log(`[userspace-fuzz] compiling Tier-2 harness: ${compile_command}`);
559
559
  const compileRes = await runChild("sh", ["-c", compile_command], sourceRoot, ctx.timeoutMs);
560
560
  if (compileRes.signalled || /error:|fatal error:/i.test(compileRes.output)) {
561
+ ctx.toolingMissing.push("tier2-harness-compile");
561
562
  ctx.log(`[userspace-fuzz] Tier-2 harness failed to compile:
562
563
  ${compileRes.output.slice(-2e3)}`);
563
564
  return finish(crashes, iterations, sourceRoot, ctx, "tier2");
@@ -1317,7 +1318,7 @@ async function adjudicateWithOracle(finding, target, submitted, turnsUsed, maxTu
1317
1318
  oracle: oracleKind
1318
1319
  };
1319
1320
  }
1320
- if (isOracleInfraError(oracleResult.reason)) {
1321
+ if (oracleResult.inconclusive || isOracleInfraError(oracleResult.reason)) {
1321
1322
  return {
1322
1323
  hasPov: false,
1323
1324
  povArtifact: submitted.artifact || null,
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __0CreateRequire } from "node:module";
3
3
  const require = __0CreateRequire(import.meta.url);
4
+ import {
5
+ getFindingPriority
6
+ } from "./chunk-RZR2XXAK.js";
4
7
 
5
8
  // packages/core/dist/disclose/cwe.js
6
9
  var CWE_MAP = {
@@ -273,6 +276,8 @@ function prForSeverity(severity) {
273
276
  }
274
277
  function metricsForReachability(tier) {
275
278
  switch (tier) {
279
+ case "unknown":
280
+ return void 0;
276
281
  case "remote-unauth":
277
282
  return { av: "N", pr: "N", ui: "N" };
278
283
  case "remote-auth":
@@ -295,7 +300,7 @@ function suggestCvss(finding) {
295
300
  }
296
301
  const impact = IMPACT_BY_CATEGORY[finding.category] ?? { C: "L", I: "L", A: "L", scope: "U" };
297
302
  const ac = "L";
298
- const assessed = finding.impactAssessment ? metricsForReachability(finding.impactAssessment.reachability_tier) : void 0;
303
+ const assessed = finding.impactAssessment && getFindingPriority(finding).assessed ? metricsForReachability(finding.impactAssessment.reachability_tier) : void 0;
299
304
  const av = assessed?.av ?? "N";
300
305
  const pr = assessed?.pr ?? prForSeverity(finding.severity);
301
306
  const ui = assessed?.ui ?? "N";
@@ -991,6 +996,8 @@ function scoreCvss4Vector(vector) {
991
996
  }
992
997
  function cvss4MetricsForReachability(tier) {
993
998
  switch (tier) {
999
+ case "unknown":
1000
+ return void 0;
994
1001
  case "remote-unauth":
995
1002
  return { AV: "N", AT: "N", PR: "N", UI: "N" };
996
1003
  case "remote-auth":
@@ -1009,7 +1016,7 @@ function cvss4MetricsForReachability(tier) {
1009
1016
  }
1010
1017
  function suggestCvss4(finding) {
1011
1018
  const impact = IMPACT_BY_CATEGORY[finding.category] ?? { C: "L", I: "L", A: "L", scope: "U" };
1012
- const assessed = finding.impactAssessment ? cvss4MetricsForReachability(finding.impactAssessment.reachability_tier) : void 0;
1019
+ const assessed = finding.impactAssessment && getFindingPriority(finding).assessed ? cvss4MetricsForReachability(finding.impactAssessment.reachability_tier) : void 0;
1013
1020
  const AV = assessed?.AV ?? "N";
1014
1021
  const AT = assessed?.AT ?? "N";
1015
1022
  const pr31 = assessed ? assessed.PR : prForSeverity(finding.severity);
@@ -1348,6 +1355,8 @@ function redactAuthHeaders(text) {
1348
1355
  }
1349
1356
  function reachabilityLabel(tier) {
1350
1357
  switch (tier) {
1358
+ case "unknown":
1359
+ return "not established by the available evidence";
1351
1360
  case "remote-unauth":
1352
1361
  return "remote, unauthenticated \u2014 reachable over the network with no credentials";
1353
1362
  case "remote-auth":
@@ -1366,6 +1375,8 @@ function reachabilityLabel(tier) {
1366
1375
  }
1367
1376
  function weaponizabilityLabel(w) {
1368
1377
  switch (w) {
1378
+ case "unknown":
1379
+ return "attacker gains not established by the available evidence";
1369
1380
  case "rce":
1370
1381
  return "remote code execution";
1371
1382
  case "lpe-to-root":
@@ -1471,7 +1482,7 @@ ${ctx.siblingFix.snippet}
1471
1482
  out.push(`**${severity}** \u2014 ${cvss.vector} (~${cvss.score.toFixed(1)})`, "");
1472
1483
  out.push(`_CVSS source: ${cvssSource}._`, "");
1473
1484
  const impactAssessment = finding.impactAssessment;
1474
- if (impactAssessment) {
1485
+ if (impactAssessment && getFindingPriority(finding).assessed) {
1475
1486
  out.push("# Impact", "");
1476
1487
  out.push(`**Attacker gains:** ${weaponizabilityLabel(impactAssessment.weaponizability)}`, "");
1477
1488
  out.push(`**Attack prerequisites:** ${reachabilityLabel(impactAssessment.reachability_tier)}`, "");
@@ -1568,7 +1579,7 @@ function buildAffectedLine(finding, ctx) {
1568
1579
  }
1569
1580
  function buildImpactNarrative(finding) {
1570
1581
  const a = finding.impactAssessment;
1571
- if (!a) {
1582
+ if (!a || !getFindingPriority(finding).assessed) {
1572
1583
  return `This ${finding.category.replace(/-/g, " ")} issue is rated **${severityHeading(finding.severity)}**. ` + finding.description.trim();
1573
1584
  }
1574
1585
  const parts = [];
@@ -1581,7 +1592,7 @@ function buildImpactNarrative(finding) {
1581
1592
  }
1582
1593
  function buildAttackScenario(finding) {
1583
1594
  const a = finding.impactAssessment;
1584
- if (!a)
1595
+ if (!a || !getFindingPriority(finding).assessed)
1585
1596
  return "";
1586
1597
  return `1. Attacker position: ${reachabilityLabel(a.reachability_tier)}.
1587
1598
  2. Trigger the ${finding.category.replace(/-/g, " ")} condition described above.
@@ -8,7 +8,7 @@ import {
8
8
  osecDB,
9
9
  repairOsecDatabase,
10
10
  resetOsecDatabase
11
- } from "./chunk-L2CCO4KE.js";
11
+ } from "./chunk-RCHAFSWS.js";
12
12
 
13
13
  // packages/cli/src/commands/db.ts
14
14
  import { randomUUID } from "node:crypto";