@jdi-code/claude-code 1.0.3 → 1.2.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 (539) hide show
  1. package/README.md +104 -369
  2. package/dist/{chunk-4t7n5hfg.js → chunk-0318ehfm.js} +8 -8
  3. package/dist/chunk-050fe4m3.js +68 -0
  4. package/dist/chunk-06v69x0b.js +127 -0
  5. package/dist/chunk-07069jq1.js +30 -0
  6. package/dist/chunk-0c9xpqm8.js +106 -0
  7. package/dist/chunk-0hxxwcs1.js +107 -0
  8. package/dist/chunk-0nsb3kxz.js +440 -0
  9. package/dist/{chunk-1cbn5kxf.js → chunk-0rpb2bdp.js} +3 -2
  10. package/dist/{chunk-vykgfhrb.js → chunk-0svbkpfn.js} +5 -5
  11. package/dist/chunk-0vg07894.js +121 -0
  12. package/dist/{chunk-e4vsvf0r.js → chunk-0zefjhrg.js} +4 -4
  13. package/dist/chunk-0zfmj5y2.js +106 -0
  14. package/dist/{chunk-czkshaff.js → chunk-107p04a0.js} +13 -11
  15. package/dist/{chunk-z4dm354d.js → chunk-13f30tg0.js} +1 -1
  16. package/dist/{chunk-44fpr6jq.js → chunk-168xb8v1.js} +4 -2
  17. package/dist/{chunk-0w63x62y.js → chunk-181q7ysj.js} +79 -63
  18. package/dist/{chunk-6mapphaq.js → chunk-18jc5efa.js} +8 -8
  19. package/dist/chunk-19j7nkpy.js +133 -0
  20. package/dist/chunk-1c2qp0ks.js +33068 -0
  21. package/dist/{chunk-0e1xsncc.js → chunk-1cwdhk7a.js} +1 -1
  22. package/dist/{chunk-7m2nd8da.js → chunk-1erfksyp.js} +6 -9
  23. package/dist/{chunk-rs45skes.js → chunk-1h1tc4mw.js} +13 -10
  24. package/dist/{chunk-91rcbmch.js → chunk-1rngm3yy.js} +155 -184
  25. package/dist/{chunk-3gqdqmzb.js → chunk-1vthytca.js} +16 -12
  26. package/dist/{chunk-xe6z85xc.js → chunk-1xbs4yb6.js} +19 -16
  27. package/dist/chunk-1xj1yz5n.js +109 -0
  28. package/dist/chunk-21mfpnva.js +85 -0
  29. package/dist/chunk-2361j94t.js +1811 -0
  30. package/dist/chunk-238g70xa.js +1 -1
  31. package/dist/chunk-250f5ce1.js +108 -0
  32. package/dist/{chunk-8yx1trkj.js → chunk-29r4exv2.js} +105 -211
  33. package/dist/chunk-2a8yf5ct.js +72 -0
  34. package/dist/{chunk-h3fqb66h.js → chunk-2bnerkhs.js} +110 -135
  35. package/dist/{chunk-0nt9md2b.js → chunk-2cctz9ww.js} +101 -8
  36. package/dist/chunk-2fwze72g.js +24 -0
  37. package/dist/{chunk-h3qa8f5w.js → chunk-2jvpw0q1.js} +229 -363
  38. package/dist/{chunk-9wm5e9e9.js → chunk-2mj88mnr.js} +42 -31
  39. package/dist/chunk-2q0schcc.js +133 -0
  40. package/dist/{chunk-r66hz8j6.js → chunk-2qp2hc02.js} +14 -12
  41. package/dist/chunk-2t0xa4dt.js +145 -0
  42. package/dist/chunk-2tzxsnha.js +360 -0
  43. package/dist/chunk-2v8cya3p.js +54 -0
  44. package/dist/chunk-2w00z1ct.js +105 -0
  45. package/dist/{chunk-2md1yavs.js → chunk-2wpfdv2t.js} +43 -32
  46. package/dist/chunk-2xcr3eqt.js +65 -0
  47. package/dist/chunk-30bpz5m2.js +34 -0
  48. package/dist/{chunk-hrzerbfw.js → chunk-36b2q5fg.js} +14 -14
  49. package/dist/{chunk-edg1yhec.js → chunk-3aady5e2.js} +2 -2
  50. package/dist/chunk-3ewzhjyb.js +207 -0
  51. package/dist/{chunk-z47tm067.js → chunk-3kpptrnz.js} +54 -47
  52. package/dist/{chunk-yd3av9a3.js → chunk-3na967x3.js} +2 -2
  53. package/dist/chunk-3nk79af8.js +8 -0
  54. package/dist/{chunk-z0cm9r7f.js → chunk-3r66czp1.js} +10 -10
  55. package/dist/{chunk-rnjbczcy.js → chunk-3y3qasy6.js} +13 -11
  56. package/dist/{chunk-nxsh6de2.js → chunk-404qm8xt.js} +16 -12
  57. package/dist/{chunk-mhqthgdg.js → chunk-41grdp0q.js} +5 -5
  58. package/dist/chunk-4cp6193g.js +9076 -0
  59. package/dist/chunk-4g18phg9.js +2535 -0
  60. package/dist/{chunk-6n2qgm9v.js → chunk-4hv90qcz.js} +1 -1
  61. package/dist/chunk-4jkfzf6g.js +81 -0
  62. package/dist/{chunk-5frcqxsv.js → chunk-4m6k7588.js} +127117 -138842
  63. package/dist/chunk-4nspekjp.js +69 -0
  64. package/dist/chunk-4x29t96w.js +119 -0
  65. package/dist/{chunk-40b8p5em.js → chunk-585cb3h6.js} +14 -12
  66. package/dist/{chunk-5dbar61y.js → chunk-59qz55py.js} +77 -61
  67. package/dist/chunk-5bta6qne.js +1030 -0
  68. package/dist/chunk-5dmczs66.js +123 -0
  69. package/dist/{chunk-9e2kqv5g.js → chunk-5pevjsyw.js} +3 -10
  70. package/dist/{chunk-5ndexvh1.js → chunk-5py41v61.js} +10226 -16961
  71. package/dist/{chunk-d5e75scx.js → chunk-5q2gm8dt.js} +5 -5
  72. package/dist/{chunk-893mewv4.js → chunk-5rpyh7nn.js} +1 -1
  73. package/dist/{chunk-hx2tr4ep.js → chunk-5z28bqne.js} +34 -475
  74. package/dist/chunk-5zzwydag.js +1170 -0
  75. package/dist/{chunk-4tyxyfsv.js → chunk-61gm3j90.js} +2 -2
  76. package/dist/chunk-64c1avct.js +13 -0
  77. package/dist/chunk-64hks9ax.js +456 -0
  78. package/dist/{chunk-bw9a5v0b.js → chunk-64m7ax9d.js} +4 -4
  79. package/dist/{chunk-cha1tdry.js → chunk-66hjztcb.js} +1 -1
  80. package/dist/{chunk-q25bjaev.js → chunk-677as3nh.js} +2 -2
  81. package/dist/chunk-69v14ada.js +76 -0
  82. package/dist/chunk-6eahnbxj.js +101 -0
  83. package/dist/chunk-6eg4c33n.js +196 -0
  84. package/dist/chunk-6fjfwj7q.js +214 -0
  85. package/dist/{chunk-70qb5sds.js → chunk-6kwwke3r.js} +2 -2
  86. package/dist/chunk-6m0pc6py.js +311 -0
  87. package/dist/chunk-6mpw9h55.js +1071 -0
  88. package/dist/{chunk-v1mgv1et.js → chunk-6p4cyhb3.js} +4 -3
  89. package/dist/chunk-6r1dx518.js +111 -0
  90. package/dist/{chunk-1n1xqxv5.js → chunk-713bh4cd.js} +1072 -1736
  91. package/dist/{chunk-nstbdz07.js → chunk-7246q965.js} +85 -69
  92. package/dist/{chunk-w6q6a1qj.js → chunk-74mdk2e7.js} +564 -864
  93. package/dist/{chunk-77czbpcq.js → chunk-76pa90ge.js} +104 -90
  94. package/dist/chunk-77nkh0x1.js +82 -0
  95. package/dist/chunk-7bsbnzpm.js +65 -0
  96. package/dist/chunk-7r3v46aq.js +167 -0
  97. package/dist/chunk-7vf8s593.js +235 -0
  98. package/dist/chunk-7x6ng8fp.js +64 -0
  99. package/dist/chunk-7xy990yb.js +81 -0
  100. package/dist/chunk-7xyswgjh.js +8 -0
  101. package/dist/chunk-80p18mf8.js +228 -0
  102. package/dist/{chunk-dv1wfr85.js → chunk-8225arm6.js} +5 -4
  103. package/dist/{chunk-vdbes184.js → chunk-82rh5hpz.js} +70 -10
  104. package/dist/chunk-84nf3k34.js +73 -0
  105. package/dist/chunk-85v0yx5b.js +106 -0
  106. package/dist/{chunk-x5j50p5x.js → chunk-86f4vq6n.js} +5 -5
  107. package/dist/{chunk-e5ga3s0y.js → chunk-86vec0h6.js} +148 -421
  108. package/dist/chunk-8az1n4zt.js +110 -0
  109. package/dist/{chunk-ctw5jwcd.js → chunk-8bwqtasa.js} +10 -10
  110. package/dist/chunk-8c9jtmsm.js +100 -0
  111. package/dist/{chunk-fqc5mcw7.js → chunk-8ca80ew2.js} +9 -9
  112. package/dist/chunk-8g5pe1gr.js +37 -0
  113. package/dist/{chunk-g0j0t6qk.js → chunk-8g747a8x.js} +1 -1
  114. package/dist/{chunk-3vzs2gbq.js → chunk-8gxztyqd.js} +4 -4
  115. package/dist/{chunk-45kxdsp8.js → chunk-8h6sdj66.js} +13 -10
  116. package/dist/{chunk-s8amjdwf.js → chunk-8ht15c7w.js} +7 -7
  117. package/dist/{chunk-ywxd4qw4.js → chunk-8mm8b6dd.js} +2 -5
  118. package/dist/{chunk-sdj9b9wh.js → chunk-8pn8tvgg.js} +9 -154
  119. package/dist/{chunk-pxrffn0w.js → chunk-8vnxjgz9.js} +11 -5
  120. package/dist/chunk-9525p9tg.js +401 -0
  121. package/dist/{chunk-y47cg3kz.js → chunk-9a0rsdre.js} +17 -13
  122. package/dist/chunk-9a2pa53f.js +308 -0
  123. package/dist/chunk-9es2dav7.js +507 -0
  124. package/dist/chunk-9pq45ycx.js +217 -0
  125. package/dist/chunk-9qwkw406.js +121 -0
  126. package/dist/chunk-9rf1x0z9.js +109 -0
  127. package/dist/{chunk-ghmbr193.js → chunk-9rvqx05m.js} +9 -9
  128. package/dist/{chunk-dchkdhzs.js → chunk-9sd3tz3p.js} +91 -75
  129. package/dist/chunk-9x5zgy22.js +12 -0
  130. package/dist/{chunk-q6b51yc5.js → chunk-9z4vq44b.js} +3 -3
  131. package/dist/chunk-a136cvvz.js +27 -0
  132. package/dist/{chunk-8hq5kk3y.js → chunk-a4twdmhf.js} +3 -2
  133. package/dist/{chunk-d18z9pna.js → chunk-a7rhvq9b.js} +2 -2
  134. package/dist/{chunk-pmjqdasm.js → chunk-a8jbqb9f.js} +2313 -4199
  135. package/dist/chunk-a9xhsth1.js +1068 -0
  136. package/dist/{chunk-kd63fbhw.js → chunk-achjqrhd.js} +81 -65
  137. package/dist/{chunk-67kbbt9h.js → chunk-af2vfhm4.js} +42 -31
  138. package/dist/{chunk-js8rvgs1.js → chunk-ahn9tgz7.js} +3 -3
  139. package/dist/chunk-ajets2e9.js +103 -0
  140. package/dist/chunk-akxywws0.js +79 -0
  141. package/dist/{chunk-meefz2g4.js → chunk-aqvgkvsq.js} +7 -7
  142. package/dist/{chunk-r6b58y3x.js → chunk-ase86y73.js} +1 -3
  143. package/dist/{chunk-hjhc4cpt.js → chunk-awb4vc41.js} +2 -2
  144. package/dist/{chunk-1jrcb7cs.js → chunk-b0mt3wzx.js} +37 -82
  145. package/dist/chunk-b4zy6y92.js +105 -0
  146. package/dist/{chunk-ax83mpvw.js → chunk-b65yxs9e.js} +26 -26
  147. package/dist/{chunk-wzx6mmft.js → chunk-b7b39zx2.js} +120 -118
  148. package/dist/{chunk-8bedvdm1.js → chunk-b81hd3m6.js} +1 -1
  149. package/dist/chunk-bbr7mwpv.js +117 -0
  150. package/dist/{chunk-1a61g8t2.js → chunk-bdzqt6gy.js} +83 -64
  151. package/dist/chunk-bkm0zms8.js +110 -0
  152. package/dist/{chunk-0vvej174.js → chunk-bs8r4665.js} +5 -5
  153. package/dist/{chunk-xvc4gp3x.js → chunk-bszdmr4k.js} +24 -24
  154. package/dist/{chunk-8ngxagxq.js → chunk-bt64sq5y.js} +4 -3
  155. package/dist/chunk-bvcpr8qa.js +909 -0
  156. package/dist/chunk-bx811wk6.js +118 -0
  157. package/dist/{chunk-3be7ka25.js → chunk-bxcfz5gy.js} +1 -1
  158. package/dist/{chunk-77g09znh.js → chunk-byv2p9hn.js} +22 -16
  159. package/dist/{chunk-wbkahkdc.js → chunk-c03am3es.js} +8 -6
  160. package/dist/chunk-c1x69s30.js +116 -0
  161. package/dist/chunk-c5vkve4j.js +68 -0
  162. package/dist/chunk-c6sjhj89.js +1284 -0
  163. package/dist/chunk-cb0wxajw.js +142 -0
  164. package/dist/{chunk-vyc0rjyx.js → chunk-cbrt5vsb.js} +1 -1
  165. package/dist/{chunk-4kxr1pwz.js → chunk-cgmy7r62.js} +30 -17
  166. package/dist/chunk-chsyvavm.js +3435 -0
  167. package/dist/{chunk-z72st5c8.js → chunk-cmsknj6n.js} +4774 -3386
  168. package/dist/{chunk-cdz5yb0r.js → chunk-crmjpsqe.js} +13 -2
  169. package/dist/chunk-cs039fnj.js +123 -0
  170. package/dist/{chunk-e7393td6.js → chunk-cznf6k4g.js} +13 -9
  171. package/dist/{chunk-fw49pe3p.js → chunk-cztjpxq4.js} +6 -6
  172. package/dist/{chunk-n8sjmqba.js → chunk-d0n93ge4.js} +141 -100
  173. package/dist/{chunk-spde0bf5.js → chunk-d14ygn80.js} +3 -3
  174. package/dist/chunk-d4mdda98.js +94 -0
  175. package/dist/chunk-d5qggsbm.js +137 -0
  176. package/dist/{chunk-55wgxwa9.js → chunk-d7886r6a.js} +6928 -6935
  177. package/dist/{chunk-eh8h36nt.js → chunk-d9gxtzmz.js} +42 -31
  178. package/dist/{chunk-xk66xrkk.js → chunk-da312cj9.js} +54 -72
  179. package/dist/{chunk-j287ctwr.js → chunk-df19zqjj.js} +77 -61
  180. package/dist/chunk-dm3n2qgd.js +24 -0
  181. package/dist/{chunk-m21hvkn4.js → chunk-dncgrfdt.js} +2 -2
  182. package/dist/{chunk-0nz8sqg4.js → chunk-dq3rw4b5.js} +1294 -873
  183. package/dist/{chunk-ey03t39w.js → chunk-dw1f4b7e.js} +257 -194
  184. package/dist/chunk-dx1jrvdz.js +339 -0
  185. package/dist/{chunk-0ragr30c.js → chunk-dxeadbxq.js} +12 -12
  186. package/dist/{chunk-gdp8wgnd.js → chunk-e8b9gcwf.js} +88 -72
  187. package/dist/chunk-e9k5a3cy.js +409 -0
  188. package/dist/chunk-e9mer45h.js +64 -0
  189. package/dist/{chunk-5qbwrz8m.js → chunk-ea2f7wt3.js} +13 -13
  190. package/dist/chunk-eak7m65m.js +1182 -0
  191. package/dist/chunk-ebhgmeyk.js +245 -0
  192. package/dist/chunk-eg93k7ac.js +117 -0
  193. package/dist/{chunk-jgv78tv0.js → chunk-ej1yvp43.js} +8 -8
  194. package/dist/chunk-ekr8pwpv.js +1408 -0
  195. package/dist/{chunk-m4edbpcz.js → chunk-epg124e3.js} +117 -143
  196. package/dist/chunk-eyqnj23w.js +5368 -0
  197. package/dist/chunk-f2bvkxbw.js +267 -0
  198. package/dist/chunk-f537x96t.js +295 -0
  199. package/dist/chunk-f6wdmebb.js +108 -0
  200. package/dist/chunk-feyzykye.js +10 -0
  201. package/dist/{chunk-ep47dy22.js → chunk-fj3ywwqv.js} +7 -7
  202. package/dist/{chunk-9gttd1xq.js → chunk-fjv7p1kc.js} +4 -4
  203. package/dist/{chunk-1rnkpxy4.js → chunk-fpe5nywt.js} +10 -115
  204. package/dist/chunk-fvpgrg19.js +434 -0
  205. package/dist/{chunk-9xmsmn93.js → chunk-fvqrkmtn.js} +5 -5
  206. package/dist/{chunk-6g62sjpf.js → chunk-fz0ch109.js} +4 -3
  207. package/dist/{chunk-5xz7ts0k.js → chunk-g0vh71q6.js} +188 -339
  208. package/dist/chunk-g1gtvtv8.js +384 -0
  209. package/dist/chunk-g5g9wm20.js +66 -0
  210. package/dist/{chunk-v399mzxk.js → chunk-g63tgj4f.js} +2 -2
  211. package/dist/{chunk-kkkneeg1.js → chunk-gay98970.js} +21 -16
  212. package/dist/chunk-gey7mwcw.js +36 -0
  213. package/dist/{chunk-w5ctjgmx.js → chunk-gtyh1yd1.js} +2 -2
  214. package/dist/{chunk-tjaqa99q.js → chunk-gx8016vp.js} +3 -3
  215. package/dist/{chunk-f2mhrmww.js → chunk-h0rbjg6x.js} +1 -8
  216. package/dist/{chunk-7z8j9qfn.js → chunk-h1mr3371.js} +3 -3
  217. package/dist/chunk-h2yxyeq4.js +132 -0
  218. package/dist/{chunk-qqfa0dqg.js → chunk-h4b85amj.js} +20 -32
  219. package/dist/chunk-h707k8xq.js +64 -0
  220. package/dist/{chunk-3z6rf0m3.js → chunk-h7rcjx8d.js} +5 -5
  221. package/dist/chunk-hch5yeq8.js +121 -0
  222. package/dist/{chunk-4anyx5bv.js → chunk-hd4azb7x.js} +5 -5
  223. package/dist/chunk-hjnbg9qw.js +32 -0
  224. package/dist/{chunk-e2yv57c2.js → chunk-hk9mmkba.js} +8 -8
  225. package/dist/{chunk-f1rrxxcf.js → chunk-hs9w0p45.js} +7 -131
  226. package/dist/{chunk-9f7xza5r.js → chunk-htaan7k0.js} +11 -11
  227. package/dist/chunk-htg84hvs.js +300 -0
  228. package/dist/chunk-hvyr6p4r.js +433 -0
  229. package/dist/chunk-j0r5vkvw.js +267 -0
  230. package/dist/{chunk-9gbamk79.js → chunk-j5bth84e.js} +5 -1
  231. package/dist/{chunk-vratq94g.js → chunk-j9gxwbe3.js} +1 -1
  232. package/dist/{chunk-3r24h7t6.js → chunk-jaaxk89e.js} +1 -1
  233. package/dist/chunk-je7jake4.js +3584 -0
  234. package/dist/chunk-jeqhpyxr.js +126 -0
  235. package/dist/chunk-jngf0nar.js +135 -0
  236. package/dist/chunk-jqjbc5ef.js +795 -0
  237. package/dist/{chunk-xf4wsjdm.js → chunk-jwrmmv7j.js} +9 -7
  238. package/dist/{chunk-j9wpkwjj.js → chunk-jwyzy83k.js} +6 -6
  239. package/dist/chunk-jz8v9sn3.js +228 -0
  240. package/dist/{chunk-bqfnp99q.js → chunk-k3s4yk22.js} +1 -1
  241. package/dist/chunk-k5c09bzv.js +443 -0
  242. package/dist/chunk-kbktwsms.js +372 -0
  243. package/dist/chunk-ke0hn0xr.js +260 -0
  244. package/dist/chunk-kehe7a71.js +41 -0
  245. package/dist/{chunk-1xkekb9y.js → chunk-kfd89dsd.js} +5 -3
  246. package/dist/chunk-ktjjb0k9.js +104 -0
  247. package/dist/{chunk-b74ht3xj.js → chunk-kxgcshx1.js} +78 -62
  248. package/dist/chunk-kz2fpejx.js +651 -0
  249. package/dist/{chunk-zvbpaaa1.js → chunk-kz3ctzg3.js} +110 -115
  250. package/dist/{chunk-72p24c9k.js → chunk-m268mm4c.js} +127 -188
  251. package/dist/{chunk-jafes477.js → chunk-m2bcpk8j.js} +4 -3
  252. package/dist/{chunk-4qv4z794.js → chunk-m32mdkts.js} +42 -31
  253. package/dist/chunk-m74w3187.js +164 -0
  254. package/dist/chunk-m7s7j422.js +166 -0
  255. package/dist/chunk-majhpxx5.js +594 -0
  256. package/dist/{chunk-q6av622g.js → chunk-mdk3xgya.js} +17 -13
  257. package/dist/{chunk-8bw3ft0x.js → chunk-mfcbez9a.js} +4 -4
  258. package/dist/{chunk-df6bwb4a.js → chunk-mj6w3ttg.js} +2 -2
  259. package/dist/{chunk-drrw55jr.js → chunk-mk6kj3q2.js} +1336 -2840
  260. package/dist/{chunk-vqr58rfh.js → chunk-mky388t4.js} +27 -67
  261. package/dist/chunk-mn61mk4v.js +351 -0
  262. package/dist/chunk-mx28h61f.js +1147 -0
  263. package/dist/chunk-my57sgky.js +883 -0
  264. package/dist/{chunk-k48thqgp.js → chunk-myk8saf6.js} +95 -190
  265. package/dist/chunk-n2zdmx4g.js +66 -0
  266. package/dist/{chunk-720qpv6d.js → chunk-n833arxq.js} +79 -63
  267. package/dist/{chunk-w2z5pqd3.js → chunk-n9ktjngj.js} +6 -6
  268. package/dist/{chunk-2tw2ve8h.js → chunk-nb2ntesh.js} +14 -10
  269. package/dist/{chunk-y18mc4m4.js → chunk-nbqv8ref.js} +10 -10
  270. package/dist/{chunk-74v9z7z4.js → chunk-nd4rncgd.js} +3 -13
  271. package/dist/chunk-nda50ze4.js +341 -0
  272. package/dist/{chunk-gb2q3nvc.js → chunk-nea2sah6.js} +5 -5
  273. package/dist/{chunk-t36rb2a8.js → chunk-nefsxetf.js} +294 -500
  274. package/dist/chunk-netzwgv1.js +154 -0
  275. package/dist/chunk-nfk9e540.js +107 -0
  276. package/dist/{chunk-xszk7n10.js → chunk-nh3cd07f.js} +1 -1
  277. package/dist/chunk-njq2hmjy.js +270 -0
  278. package/dist/chunk-nn5j7h8a.js +156 -0
  279. package/dist/{chunk-6fjab2dp.js → chunk-nrvkwzmq.js} +2 -2
  280. package/dist/chunk-nsextsmp.js +360 -0
  281. package/dist/{chunk-amhzxqj4.js → chunk-nt90fta7.js} +5 -5
  282. package/dist/{chunk-qbx1rq4f.js → chunk-p6sqbnqb.js} +193 -327
  283. package/dist/chunk-p8c23zr7.js +61 -0
  284. package/dist/chunk-p8enbwjk.js +183 -0
  285. package/dist/chunk-p8yggvgf.js +436 -0
  286. package/dist/{chunk-96awg5tc.js → chunk-pcfhe19b.js} +80 -17
  287. package/dist/{chunk-sfq65q9w.js → chunk-pgv9sa3a.js} +10 -14
  288. package/dist/chunk-ppwjyveh.js +8 -0
  289. package/dist/chunk-ppxvfp6m.js +424 -0
  290. package/dist/{chunk-zsfxha74.js → chunk-pshjyzq4.js} +8 -7
  291. package/dist/{chunk-35x3tjnr.js → chunk-pwr83fyy.js} +14 -8
  292. package/dist/chunk-q1976kze.js +473 -0
  293. package/dist/chunk-q387p8pp.js +943 -0
  294. package/dist/{chunk-b6av9ny9.js → chunk-q3ffkhnp.js} +132 -20
  295. package/dist/{chunk-w7wgpqcp.js → chunk-q50q8mc5.js} +7 -7
  296. package/dist/{chunk-e5pntxye.js → chunk-q7tpyeb3.js} +6 -4
  297. package/dist/{chunk-7ymfj7m3.js → chunk-q82r31er.js} +1 -1
  298. package/dist/chunk-qajrkk97.js +298 -0
  299. package/dist/chunk-qdazcrd7.js +362 -0
  300. package/dist/chunk-qhwvhgty.js +61 -0
  301. package/dist/{chunk-455a8z6g.js → chunk-qqk0kvsw.js} +138 -98
  302. package/dist/chunk-qqya1xyt.js +513 -0
  303. package/dist/{chunk-mzdwvbb0.js → chunk-qs6wypj1.js} +2 -2
  304. package/dist/chunk-qtahf5s5.js +113 -0
  305. package/dist/{chunk-tj79kfmn.js → chunk-qv9phqbv.js} +7 -7
  306. package/dist/{chunk-r5k04v8g.js → chunk-qyygv221.js} +13 -9
  307. package/dist/{chunk-zfc67eqj.js → chunk-r34f6vwc.js} +4 -4
  308. package/dist/{chunk-nerv0jvx.js → chunk-r59rgjxq.js} +1 -1
  309. package/dist/{chunk-7sb5axvf.js → chunk-r7j395t6.js} +2 -2
  310. package/dist/chunk-rb31sqzm.js +106 -0
  311. package/dist/{chunk-twsxz9ph.js → chunk-rbwy1qmm.js} +42 -31
  312. package/dist/{chunk-99t8enmg.js → chunk-re3crc6t.js} +10 -7
  313. package/dist/chunk-rhw4ayb1.js +6851 -0
  314. package/dist/{chunk-h6wtwdk0.js → chunk-rm31ynek.js} +8 -8
  315. package/dist/{chunk-eqrh0yjm.js → chunk-rr4e4axp.js} +2 -2
  316. package/dist/{chunk-neh2frnn.js → chunk-rs8304k5.js} +6 -6
  317. package/dist/{chunk-gax0fcbx.js → chunk-s1s8qfdh.js} +5 -5
  318. package/dist/{chunk-src9fqj8.js → chunk-s2483y2h.js} +3 -3
  319. package/dist/chunk-s2nhzjmt.js +113 -0
  320. package/dist/{chunk-7jma9mhn.js → chunk-sfhws681.js} +77 -61
  321. package/dist/{chunk-e3g8q4cn.js → chunk-sg66v252.js} +10 -8
  322. package/dist/{chunk-vp25xhav.js → chunk-szyt0xvf.js} +69 -78
  323. package/dist/{chunk-v7455ztd.js → chunk-t7j91et3.js} +86 -67
  324. package/dist/{chunk-mt25echc.js → chunk-tezak8rx.js} +1 -1
  325. package/dist/chunk-tf1p9trz.js +190 -0
  326. package/dist/{chunk-05gxvwvf.js → chunk-tm82sqkr.js} +96 -79
  327. package/dist/chunk-tpjetyb0.js +106 -0
  328. package/dist/chunk-trxvrrac.js +149 -0
  329. package/dist/chunk-tv9pcdnz.js +51 -0
  330. package/dist/{chunk-e5tfw9f7.js → chunk-twh7pzm8.js} +248 -307
  331. package/dist/{chunk-1x2wb3tc.js → chunk-txfvkh0w.js} +8 -8
  332. package/dist/chunk-var1et7e.js +66 -0
  333. package/dist/{chunk-se7v9emp.js → chunk-vbhvx4ma.js} +12 -10
  334. package/dist/{chunk-hqmz36b3.js → chunk-vf612n57.js} +21 -101
  335. package/dist/{chunk-3sdp7ds7.js → chunk-vfcty2ga.js} +10 -10
  336. package/dist/chunk-vhhyv8z8.js +147 -0
  337. package/dist/{chunk-48z7dgy1.js → chunk-vjcxs86z.js} +3 -3
  338. package/dist/{chunk-k5bpc8d5.js → chunk-vmnf3h9c.js} +43 -32
  339. package/dist/{chunk-fpjeh2em.js → chunk-vr7wmmyn.js} +17 -13
  340. package/dist/{chunk-9ewmqkgb.js → chunk-vxp2mhqy.js} +8 -8
  341. package/dist/{chunk-d238zp4m.js → chunk-w4gwnrwa.js} +2 -2
  342. package/dist/{chunk-jhsywyw8.js → chunk-wahkzh83.js} +9 -9
  343. package/dist/chunk-wdd4en5q.js +117 -0
  344. package/dist/{chunk-gm2m2yba.js → chunk-wgfnd174.js} +43 -32
  345. package/dist/chunk-wk1jw4dm.js +139 -0
  346. package/dist/chunk-wnpjc8hg.js +1018 -0
  347. package/dist/chunk-wv1t041q.js +151 -0
  348. package/dist/chunk-wvtmrmaj.js +130 -0
  349. package/dist/chunk-wyavftcj.js +103 -0
  350. package/dist/{chunk-4589pec2.js → chunk-x2dp18yj.js} +18 -46
  351. package/dist/{chunk-fj4hkg6k.js → chunk-x474ybns.js} +79 -110
  352. package/dist/chunk-x67cvhb8.js +134 -0
  353. package/dist/chunk-x6r4v44b.js +8 -0
  354. package/dist/{chunk-s0xfxkys.js → chunk-xk9pxqqx.js} +6 -6
  355. package/dist/{chunk-m06q12hg.js → chunk-xkt36p6r.js} +1 -1
  356. package/dist/{chunk-g653q217.js → chunk-xnav6j8h.js} +62 -374
  357. package/dist/chunk-xrjb0zyc.js +146 -0
  358. package/dist/chunk-xv3era3s.js +8 -0
  359. package/dist/{chunk-p7g7pf3f.js → chunk-y3r7v9pq.js} +4 -4
  360. package/dist/{chunk-3sagmdbp.js → chunk-y4szkj7r.js} +80 -64
  361. package/dist/{chunk-7d2700y8.js → chunk-y8syxjw1.js} +24 -54
  362. package/dist/chunk-y98z50mm.js +158 -0
  363. package/dist/chunk-ycrfxq10.js +123 -0
  364. package/dist/{chunk-8440dz44.js → chunk-yfjzdc0q.js} +9 -9
  365. package/dist/{chunk-cejskpky.js → chunk-ygf7pmmr.js} +145 -153
  366. package/dist/chunk-yha3z3ab.js +259 -0
  367. package/dist/chunk-ym5r3jnk.js +2007 -0
  368. package/dist/{chunk-28r6z9br.js → chunk-ys2gtqb0.js} +1 -3
  369. package/dist/{chunk-rzgtgtaf.js → chunk-ytg2n0dd.js} +7 -7
  370. package/dist/{chunk-q5hb65kq.js → chunk-ytzw9kw1.js} +78 -62
  371. package/dist/chunk-yzx3mhfd.js +110 -0
  372. package/dist/chunk-z1bs6d7k.js +24 -0
  373. package/dist/{chunk-6h9zcxaa.js → chunk-z1mvcq39.js} +4 -4
  374. package/dist/{chunk-gbq6jz9a.js → chunk-z3qhctbk.js} +134 -170
  375. package/dist/chunk-z9jn3442.js +146 -0
  376. package/dist/{chunk-5q7c8vt9.js → chunk-zbsz51qa.js} +41 -32
  377. package/dist/{chunk-n1erf6kh.js → chunk-ze6zvkg6.js} +5 -5
  378. package/dist/{chunk-t0rgmccj.js → chunk-zejm280k.js} +1 -1
  379. package/dist/{chunk-gfkppe34.js → chunk-zf47p99b.js} +10 -10
  380. package/dist/{chunk-53nbpp47.js → chunk-zhtrjznv.js} +557 -1502
  381. package/dist/{chunk-das977za.js → chunk-zq6tz1zv.js} +61 -100
  382. package/dist/chunk-zrw9gm80.js +264 -0
  383. package/dist/chunk-zseb1639.js +37 -0
  384. package/dist/{chunk-spqaamnc.js → chunk-zsgha506.js} +2 -2
  385. package/dist/chunk-zst7b4sp.js +2840 -0
  386. package/dist/{chunk-0xn1zr3e.js → chunk-zxkzzpgd.js} +145 -121
  387. package/dist/{chunk-g3t0act8.js → chunk-zzm33q8x.js} +1 -1
  388. package/dist/cli.js +20 -117
  389. package/dist/download-ripgrep.js +24821 -0
  390. package/dist/vendor/audio-capture/arm64-darwin/audio-capture.node +0 -0
  391. package/dist/vendor/audio-capture/arm64-linux/audio-capture.node +0 -0
  392. package/dist/vendor/audio-capture/arm64-win32/audio-capture.node +0 -0
  393. package/dist/vendor/audio-capture/x64-darwin/audio-capture.node +0 -0
  394. package/dist/vendor/audio-capture/x64-linux/audio-capture.node +0 -0
  395. package/dist/vendor/audio-capture/x64-win32/audio-capture.node +0 -0
  396. package/package.json +22 -14
  397. package/scripts/download-ripgrep.ts +335 -0
  398. package/scripts/postinstall.cjs +319 -0
  399. package/dist/chunk-0gemty6d.js +0 -70
  400. package/dist/chunk-0pjw8y9z.js +0 -2833
  401. package/dist/chunk-1c8z1b5v.js +0 -16
  402. package/dist/chunk-1ebedmba.js +0 -90
  403. package/dist/chunk-1rvz0433.js +0 -722
  404. package/dist/chunk-1wfb8e3m.js +0 -107
  405. package/dist/chunk-2qjywwq4.js +0 -3445
  406. package/dist/chunk-2y659zbj.js +0 -103
  407. package/dist/chunk-41md7gny.js +0 -91
  408. package/dist/chunk-45m062tx.js +0 -2058
  409. package/dist/chunk-4br37gsw.js +0 -107
  410. package/dist/chunk-4nfrc6sq.js +0 -2431
  411. package/dist/chunk-4pdedeb4.js +0 -2644
  412. package/dist/chunk-4wzyhqbt.js +0 -444
  413. package/dist/chunk-4zsw4fhp.js +0 -67
  414. package/dist/chunk-52wv09zw.js +0 -102
  415. package/dist/chunk-55sfqnz4.js +0 -1921
  416. package/dist/chunk-5cd9cptq.js +0 -110
  417. package/dist/chunk-5dbk24zg.js +0 -890
  418. package/dist/chunk-5tfppbkq.js +0 -55
  419. package/dist/chunk-60xyrp86.js +0 -117
  420. package/dist/chunk-6deqb0mc.js +0 -376
  421. package/dist/chunk-6kpbgc5w.js +0 -23
  422. package/dist/chunk-6ndpfxcn.js +0 -222
  423. package/dist/chunk-7nvpa5ex.js +0 -123
  424. package/dist/chunk-7va8tw32.js +0 -128
  425. package/dist/chunk-7z3tkgec.js +0 -66
  426. package/dist/chunk-8e8set87.js +0 -281
  427. package/dist/chunk-8fg1egbv.js +0 -107
  428. package/dist/chunk-8thd6sgk.js +0 -106
  429. package/dist/chunk-8ytkb7k9.js +0 -84
  430. package/dist/chunk-9s5nkgsg.js +0 -699
  431. package/dist/chunk-9wce9hrc.js +0 -1015
  432. package/dist/chunk-9y91z69v.js +0 -44
  433. package/dist/chunk-ae76ded0.js +0 -30
  434. package/dist/chunk-b0eez8w0.js +0 -169
  435. package/dist/chunk-b57sb1dw.js +0 -642
  436. package/dist/chunk-bg3mt9bm.js +0 -28
  437. package/dist/chunk-bhdt6k7w.js +0 -15
  438. package/dist/chunk-bm1qb16p.js +0 -17
  439. package/dist/chunk-bsbmmfyt.js +0 -17
  440. package/dist/chunk-c7q12yes.js +0 -269
  441. package/dist/chunk-cv6y320h.js +0 -299
  442. package/dist/chunk-cvy3vntc.js +0 -65
  443. package/dist/chunk-cy2hswr1.js +0 -15
  444. package/dist/chunk-d5d398m4.js +0 -184
  445. package/dist/chunk-d7q4zp2z.js +0 -89
  446. package/dist/chunk-dnk519qv.js +0 -94
  447. package/dist/chunk-dqqde43e.js +0 -93
  448. package/dist/chunk-dy4ayw0p.js +0 -522
  449. package/dist/chunk-e4ak3jfc.js +0 -1154
  450. package/dist/chunk-e64spn53.js +0 -283
  451. package/dist/chunk-e8pk14j0.js +0 -527
  452. package/dist/chunk-eashsrsv.js +0 -88
  453. package/dist/chunk-eb90vwvr.js +0 -152
  454. package/dist/chunk-ese2g7hc.js +0 -92
  455. package/dist/chunk-et4jnyb5.js +0 -713
  456. package/dist/chunk-fdy0651p.js +0 -212
  457. package/dist/chunk-frsyts9j.js +0 -1170
  458. package/dist/chunk-ft2jssz4.js +0 -424
  459. package/dist/chunk-g41hzcy2.js +0 -101
  460. package/dist/chunk-g8dr8vvj.js +0 -111
  461. package/dist/chunk-gj71pd83.js +0 -5395
  462. package/dist/chunk-gjdwtdch.js +0 -154
  463. package/dist/chunk-gyj242zr.js +0 -20
  464. package/dist/chunk-hr719wjg.js +0 -144
  465. package/dist/chunk-hs8ph4p8.js +0 -8
  466. package/dist/chunk-j7gpr82p.js +0 -105
  467. package/dist/chunk-jczedp5x.js +0 -91
  468. package/dist/chunk-jd0t67a6.js +0 -259
  469. package/dist/chunk-jgyp3mzg.js +0 -1318
  470. package/dist/chunk-jq1kp9yy.js +0 -90
  471. package/dist/chunk-jskhn7bz.js +0 -71
  472. package/dist/chunk-k5aas9d3.js +0 -6108
  473. package/dist/chunk-k8jcy7mj.js +0 -48
  474. package/dist/chunk-ka22ccvm.js +0 -1581
  475. package/dist/chunk-ka6jav10.js +0 -91
  476. package/dist/chunk-kq6j096k.js +0 -538
  477. package/dist/chunk-kqd0e3xj.js +0 -463
  478. package/dist/chunk-kqjrsah4.js +0 -85
  479. package/dist/chunk-m390jta5.js +0 -114
  480. package/dist/chunk-m44a9yfj.js +0 -90
  481. package/dist/chunk-m5c8ng6v.js +0 -328
  482. package/dist/chunk-meag7bbe.js +0 -89
  483. package/dist/chunk-mnsrmwn8.js +0 -604
  484. package/dist/chunk-mzj4mtye.js +0 -115
  485. package/dist/chunk-mzy911jq.js +0 -128
  486. package/dist/chunk-n0fwapk6.js +0 -347
  487. package/dist/chunk-nt0mgsh6.js +0 -496
  488. package/dist/chunk-nwcfrws3.js +0 -273
  489. package/dist/chunk-pa2xksyb.js +0 -57
  490. package/dist/chunk-pnhs96g8.js +0 -140
  491. package/dist/chunk-ps4c75j7.js +0 -105
  492. package/dist/chunk-q0yg73za.js +0 -490
  493. package/dist/chunk-q5by3da6.js +0 -8
  494. package/dist/chunk-qbmhde47.js +0 -92
  495. package/dist/chunk-qp3dw7b4.js +0 -100
  496. package/dist/chunk-qt0b9x2w.js +0 -42
  497. package/dist/chunk-qxe98jgk.js +0 -584
  498. package/dist/chunk-r7n42k56.js +0 -756
  499. package/dist/chunk-radsjrmv.js +0 -55
  500. package/dist/chunk-rckj9gd1.js +0 -55
  501. package/dist/chunk-rn4kqfvd.js +0 -99
  502. package/dist/chunk-rngmdt2v.js +0 -97
  503. package/dist/chunk-rs5e0520.js +0 -87
  504. package/dist/chunk-s274nv8k.js +0 -8
  505. package/dist/chunk-s7t2e2tw.js +0 -1493
  506. package/dist/chunk-sbbt0ct3.js +0 -90
  507. package/dist/chunk-t0mnk0qp.js +0 -105
  508. package/dist/chunk-t1qmy36p.js +0 -94
  509. package/dist/chunk-tdy66rf9.js +0 -116
  510. package/dist/chunk-tf40vqky.js +0 -70
  511. package/dist/chunk-tmcxeatp.js +0 -116
  512. package/dist/chunk-v3gm2day.js +0 -8
  513. package/dist/chunk-v496te8v.js +0 -192
  514. package/dist/chunk-vd2hwk8d.js +0 -61
  515. package/dist/chunk-vdsmt7v0.js +0 -998
  516. package/dist/chunk-vf3qxte3.js +0 -93
  517. package/dist/chunk-vfqe1jqj.js +0 -643
  518. package/dist/chunk-vk3270s6.js +0 -119
  519. package/dist/chunk-vsr9mbnq.js +0 -195
  520. package/dist/chunk-w18zryr9.js +0 -348
  521. package/dist/chunk-wdxcgk6m.js +0 -196
  522. package/dist/chunk-wef07p3j.js +0 -131
  523. package/dist/chunk-wf4q1xj3.js +0 -62
  524. package/dist/chunk-wjq4zq3t.js +0 -162
  525. package/dist/chunk-wp4hc4n7.js +0 -133
  526. package/dist/chunk-x0rjttct.js +0 -420
  527. package/dist/chunk-xdw5dv00.js +0 -8
  528. package/dist/chunk-xm8fv5c9.js +0 -469
  529. package/dist/chunk-xq5ztz4g.js +0 -130
  530. package/dist/chunk-xvcdtezw.js +0 -401
  531. package/dist/chunk-y7njq3z3.js +0 -1866
  532. package/dist/chunk-ycxwftfh.js +0 -97
  533. package/dist/chunk-yn38f69a.js +0 -105
  534. package/dist/chunk-yp5kc8hq.js +0 -372
  535. package/dist/chunk-z09n2krq.js +0 -752
  536. package/dist/chunk-zerg8qwf.js +0 -96
  537. package/dist/{chunk-p452k1xp.js → chunk-57s5mr32.js} +9 -9
  538. package/dist/{chunk-27xc1csx.js → chunk-dggvswz1.js} +3 -3
  539. package/dist/{chunk-zxzwfa0b.js → chunk-pbyq1tm3.js} +3 -3
@@ -0,0 +1,1071 @@
1
+ // @bun
2
+ import {
3
+ init_debug,
4
+ logForDebugging
5
+ } from "./chunk-404qm8xt.js";
6
+ import {
7
+ __esm,
8
+ __export,
9
+ __toCommonJS
10
+ } from "./chunk-qp2qdcda.js";
11
+
12
+ // src/utils/withResolvers.ts
13
+ function withResolvers() {
14
+ let resolve;
15
+ let reject;
16
+ const promise = new Promise((res, rej) => {
17
+ resolve = res;
18
+ reject = rej;
19
+ });
20
+ return { promise, resolve, reject };
21
+ }
22
+ var init_withResolvers = () => {};
23
+
24
+ // packages/@ant/computer-use-swift/src/backends/darwin.ts
25
+ var exports_darwin = {};
26
+ __export(exports_darwin, {
27
+ screenshot: () => screenshot,
28
+ display: () => display,
29
+ apps: () => apps
30
+ });
31
+ import { readFileSync, unlinkSync } from "fs";
32
+ import { tmpdir } from "os";
33
+ import { join } from "path";
34
+ function jxaSync(script) {
35
+ const result = Bun.spawnSync({
36
+ cmd: ["osascript", "-l", "JavaScript", "-e", script],
37
+ stdout: "pipe",
38
+ stderr: "pipe"
39
+ });
40
+ return new TextDecoder().decode(result.stdout).trim();
41
+ }
42
+ async function osascript(script) {
43
+ const proc = Bun.spawn(["osascript", "-e", script], {
44
+ stdout: "pipe",
45
+ stderr: "pipe"
46
+ });
47
+ const text = await new Response(proc.stdout).text();
48
+ await proc.exited;
49
+ return text.trim();
50
+ }
51
+ async function jxa(script) {
52
+ const proc = Bun.spawn(["osascript", "-l", "JavaScript", "-e", script], {
53
+ stdout: "pipe",
54
+ stderr: "pipe"
55
+ });
56
+ const text = await new Response(proc.stdout).text();
57
+ await proc.exited;
58
+ return text.trim();
59
+ }
60
+ async function captureScreenToBase64(args) {
61
+ const tmpFile = join(tmpdir(), `cu-screenshot-${Date.now()}.png`);
62
+ const proc = Bun.spawn(["screencapture", ...args, tmpFile], {
63
+ stdout: "pipe",
64
+ stderr: "pipe"
65
+ });
66
+ await proc.exited;
67
+ try {
68
+ const buf = readFileSync(tmpFile);
69
+ const base64 = buf.toString("base64");
70
+ const width = buf.readUInt32BE(16);
71
+ const height = buf.readUInt32BE(20);
72
+ return { base64, width, height };
73
+ } finally {
74
+ try {
75
+ unlinkSync(tmpFile);
76
+ } catch {}
77
+ }
78
+ }
79
+ var display, apps, screenshot;
80
+ var init_darwin = __esm(() => {
81
+ display = {
82
+ getSize(displayId) {
83
+ const all = this.listAll();
84
+ if (displayId !== undefined) {
85
+ const found = all.find((d) => d.displayId === displayId);
86
+ if (found)
87
+ return found;
88
+ }
89
+ return all[0] ?? { width: 1920, height: 1080, scaleFactor: 2, displayId: 1 };
90
+ },
91
+ listAll() {
92
+ try {
93
+ const raw = jxaSync(`
94
+ ObjC.import("CoreGraphics");
95
+ var displays = $.CGDisplayCopyAllDisplayModes ? [] : [];
96
+ var active = $.CGGetActiveDisplayList(10, null, Ref());
97
+ var countRef = Ref();
98
+ $.CGGetActiveDisplayList(0, null, countRef);
99
+ var count = countRef[0];
100
+ var idBuf = Ref();
101
+ $.CGGetActiveDisplayList(count, idBuf, countRef);
102
+ var result = [];
103
+ for (var i = 0; i < count; i++) {
104
+ var did = idBuf[i];
105
+ var w = $.CGDisplayPixelsWide(did);
106
+ var h = $.CGDisplayPixelsHigh(did);
107
+ var mode = $.CGDisplayCopyDisplayMode(did);
108
+ var pw = $.CGDisplayModeGetPixelWidth(mode);
109
+ var sf = pw > 0 && w > 0 ? pw / w : 2;
110
+ result.push({width: w, height: h, scaleFactor: sf, displayId: did});
111
+ }
112
+ JSON.stringify(result);
113
+ `);
114
+ return JSON.parse(raw).map((d) => ({
115
+ width: Number(d.width),
116
+ height: Number(d.height),
117
+ scaleFactor: Number(d.scaleFactor),
118
+ displayId: Number(d.displayId)
119
+ }));
120
+ } catch {
121
+ try {
122
+ const raw = jxaSync(`
123
+ ObjC.import("AppKit");
124
+ var screens = $.NSScreen.screens;
125
+ var result = [];
126
+ for (var i = 0; i < screens.count; i++) {
127
+ var s = screens.objectAtIndex(i);
128
+ var frame = s.frame;
129
+ var desc = s.deviceDescription;
130
+ var screenNumber = desc.objectForKey($("NSScreenNumber")).intValue;
131
+ var backingFactor = s.backingScaleFactor;
132
+ result.push({
133
+ width: Math.round(frame.size.width),
134
+ height: Math.round(frame.size.height),
135
+ scaleFactor: backingFactor,
136
+ displayId: screenNumber
137
+ });
138
+ }
139
+ JSON.stringify(result);
140
+ `);
141
+ return JSON.parse(raw).map((d) => ({
142
+ width: Number(d.width),
143
+ height: Number(d.height),
144
+ scaleFactor: Number(d.scaleFactor),
145
+ displayId: Number(d.displayId)
146
+ }));
147
+ } catch {
148
+ return [{ width: 1920, height: 1080, scaleFactor: 2, displayId: 1 }];
149
+ }
150
+ }
151
+ }
152
+ };
153
+ apps = {
154
+ async prepareDisplay(_allowlistBundleIds, _surrogateHost, _displayId) {
155
+ return { activated: "", hidden: [] };
156
+ },
157
+ async previewHideSet(_bundleIds, _displayId) {
158
+ return [];
159
+ },
160
+ async findWindowDisplays(bundleIds) {
161
+ return bundleIds.map((bundleId) => ({ bundleId, displayIds: [1] }));
162
+ },
163
+ async appUnderPoint(_x, _y) {
164
+ try {
165
+ const result = await jxa(`
166
+ ObjC.import("CoreGraphics");
167
+ ObjC.import("AppKit");
168
+ var pt = $.CGPointMake(${_x}, ${_y});
169
+ var app = $.NSWorkspace.sharedWorkspace.frontmostApplication;
170
+ JSON.stringify({bundleId: app.bundleIdentifier.js, displayName: app.localizedName.js});
171
+ `);
172
+ return JSON.parse(result);
173
+ } catch {
174
+ return null;
175
+ }
176
+ },
177
+ async listInstalled() {
178
+ try {
179
+ const result = await osascript(`
180
+ tell application "System Events"
181
+ set appList to ""
182
+ repeat with appFile in (every file of folder "Applications" of startup disk whose name ends with ".app")
183
+ set appPath to POSIX path of (appFile as alias)
184
+ set appName to name of appFile
185
+ set appList to appList & appPath & "|" & appName & "\\n"
186
+ end repeat
187
+ return appList
188
+ end tell
189
+ `);
190
+ return result.split(`
191
+ `).filter(Boolean).map((line) => {
192
+ const [path, name] = line.split("|", 2);
193
+ const displayName = (name ?? "").replace(/\.app$/, "");
194
+ return {
195
+ bundleId: `com.app.${displayName.toLowerCase().replace(/\s+/g, "-")}`,
196
+ displayName,
197
+ path: path ?? ""
198
+ };
199
+ });
200
+ } catch {
201
+ return [];
202
+ }
203
+ },
204
+ iconDataUrl(_path) {
205
+ return null;
206
+ },
207
+ listRunning() {
208
+ try {
209
+ const raw = jxaSync(`
210
+ var apps = Application("System Events").applicationProcesses.whose({backgroundOnly: false});
211
+ var result = [];
212
+ for (var i = 0; i < apps.length; i++) {
213
+ try {
214
+ var a = apps[i];
215
+ result.push({bundleId: a.bundleIdentifier(), displayName: a.name()});
216
+ } catch(e) {}
217
+ }
218
+ JSON.stringify(result);
219
+ `);
220
+ return JSON.parse(raw);
221
+ } catch {
222
+ return [];
223
+ }
224
+ },
225
+ async open(bundleId) {
226
+ await osascript(`tell application id "${bundleId}" to activate`);
227
+ },
228
+ async unhide(bundleIds) {
229
+ for (const bundleId of bundleIds) {
230
+ await osascript(`
231
+ tell application "System Events"
232
+ set visible of application process (name of application process whose bundle identifier is "${bundleId}") to true
233
+ end tell
234
+ `);
235
+ }
236
+ }
237
+ };
238
+ screenshot = {
239
+ async captureExcluding(_allowedBundleIds, _quality, _targetW, _targetH, displayId) {
240
+ const args = ["-x"];
241
+ if (displayId !== undefined)
242
+ args.push("-D", String(displayId));
243
+ return captureScreenToBase64(args);
244
+ },
245
+ async captureRegion(_allowedBundleIds, x, y, w, h, _outW, _outH, _quality, displayId) {
246
+ const args = ["-x", "-R", `${x},${y},${w},${h}`];
247
+ if (displayId !== undefined)
248
+ args.push("-D", String(displayId));
249
+ return captureScreenToBase64(args);
250
+ }
251
+ };
252
+ });
253
+
254
+ // src/utils/computerUse/win32/windowEnum.ts
255
+ var exports_windowEnum = {};
256
+ __export(exports_windowEnum, {
257
+ listWindows: () => listWindows
258
+ });
259
+ function listWindows() {
260
+ const result = Bun.spawnSync({
261
+ cmd: [
262
+ "powershell",
263
+ "-NoProfile",
264
+ "-NonInteractive",
265
+ "-Command",
266
+ ENUM_WINDOWS_PS
267
+ ],
268
+ stdout: "pipe",
269
+ stderr: "pipe"
270
+ });
271
+ const raw = new TextDecoder().decode(result.stdout).trim();
272
+ if (!raw)
273
+ return [];
274
+ return raw.split(`
275
+ `).filter(Boolean).map((line) => {
276
+ const trimmed = line.trim();
277
+ const firstPipe = trimmed.indexOf("|");
278
+ const secondPipe = trimmed.indexOf("|", firstPipe + 1);
279
+ if (firstPipe === -1 || secondPipe === -1)
280
+ return null;
281
+ const hwnd = trimmed.slice(0, firstPipe);
282
+ const pid = Number(trimmed.slice(firstPipe + 1, secondPipe));
283
+ const title = trimmed.slice(secondPipe + 1);
284
+ if (!hwnd || isNaN(pid) || !title)
285
+ return null;
286
+ return { hwnd, pid, title };
287
+ }).filter((item) => item !== null);
288
+ }
289
+ var ENUM_WINDOWS_PS = `
290
+ Add-Type @'
291
+ using System;
292
+ using System.Collections.Generic;
293
+ using System.Runtime.InteropServices;
294
+ using System.Text;
295
+ public class WinEnum {
296
+ public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
297
+
298
+ [DllImport("user32.dll")]
299
+ public static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam);
300
+ [DllImport("user32.dll")]
301
+ public static extern bool IsWindowVisible(IntPtr hWnd);
302
+ [DllImport("user32.dll", CharSet=CharSet.Unicode)]
303
+ public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
304
+ [DllImport("user32.dll")]
305
+ public static extern int GetWindowTextLength(IntPtr hWnd);
306
+ [DllImport("user32.dll")]
307
+ public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint processId);
308
+
309
+ public static List<string> results = new List<string>();
310
+
311
+ public static void Run() {
312
+ results.Clear();
313
+ EnumWindows(delegate(IntPtr hWnd, IntPtr lParam) {
314
+ if (!IsWindowVisible(hWnd)) return true;
315
+ int len = GetWindowTextLength(hWnd);
316
+ if (len == 0) return true;
317
+ StringBuilder sb = new StringBuilder(len + 1);
318
+ GetWindowText(hWnd, sb, sb.Capacity);
319
+ string title = sb.ToString();
320
+ if (string.IsNullOrWhiteSpace(title)) return true;
321
+ uint pid = 0;
322
+ GetWindowThreadProcessId(hWnd, out pid);
323
+ results.Add(hWnd.ToInt64() + "|" + pid + "|" + title);
324
+ return true;
325
+ }, IntPtr.Zero);
326
+ }
327
+ }
328
+ '@
329
+ [WinEnum]::Run()
330
+ [WinEnum]::results | ForEach-Object { $_ }
331
+ `;
332
+ var init_windowEnum = () => {};
333
+
334
+ // src/utils/computerUse/win32/windowCapture.ts
335
+ function parseCaptureOutput(raw) {
336
+ const trimmed = raw.trim();
337
+ if (!trimmed || trimmed === "NOT_FOUND" || trimmed === "INVALID_SIZE") {
338
+ return null;
339
+ }
340
+ const firstComma = trimmed.indexOf(",");
341
+ const secondComma = trimmed.indexOf(",", firstComma + 1);
342
+ if (firstComma === -1 || secondComma === -1)
343
+ return null;
344
+ const width = Number(trimmed.slice(0, firstComma));
345
+ const height = Number(trimmed.slice(firstComma + 1, secondComma));
346
+ const base64 = trimmed.slice(secondComma + 1);
347
+ if (!width || !height || !base64)
348
+ return null;
349
+ return { base64, width, height };
350
+ }
351
+ function runPs(script) {
352
+ const result = Bun.spawnSync({
353
+ cmd: ["powershell", "-NoProfile", "-NonInteractive", "-Command", script],
354
+ stdout: "pipe",
355
+ stderr: "pipe"
356
+ });
357
+ return new TextDecoder().decode(result.stdout).trim();
358
+ }
359
+ function captureWindow(title) {
360
+ const escaped = title.replace(/'/g, "''");
361
+ const script = `${CAPTURE_BY_TITLE_PS}
362
+ [WinCap]::Capture('${escaped}')`;
363
+ const raw = runPs(script);
364
+ return parseCaptureOutput(raw);
365
+ }
366
+ function captureWindowByHwnd(hwnd) {
367
+ const script = `${CAPTURE_BY_HWND_PS}
368
+ [WinCapH]::Capture([IntPtr]::new(${hwnd}))`;
369
+ const raw = runPs(script);
370
+ return parseCaptureOutput(raw);
371
+ }
372
+ var CAPTURE_BY_TITLE_PS = `
373
+ Add-Type -AssemblyName System.Drawing
374
+ Add-Type -ReferencedAssemblies System.Drawing @'
375
+ using System;
376
+ using System.Runtime.InteropServices;
377
+ using System.Drawing;
378
+ using System.Drawing.Imaging;
379
+ public class WinCap {
380
+ [DllImport("user32.dll", CharSet=CharSet.Unicode)]
381
+ public static extern IntPtr FindWindow(string c, string t);
382
+ [DllImport("user32.dll")]
383
+ public static extern bool GetWindowRect(IntPtr h, out RECT r);
384
+ [DllImport("user32.dll")]
385
+ public static extern bool PrintWindow(IntPtr h, IntPtr hdc, uint f);
386
+ [StructLayout(LayoutKind.Sequential)]
387
+ public struct RECT { public int L, T, R, B; }
388
+
389
+ public static string Capture(string title) {
390
+ IntPtr hwnd = FindWindow(null, title);
391
+ if (hwnd == IntPtr.Zero) return "NOT_FOUND";
392
+ RECT r; GetWindowRect(hwnd, out r);
393
+ int w = r.R - r.L; int h = r.B - r.T;
394
+ if (w <= 0 || h <= 0) return "INVALID_SIZE";
395
+ Bitmap bmp = new Bitmap(w, h);
396
+ Graphics g = Graphics.FromImage(bmp);
397
+ IntPtr hdc = g.GetHdc();
398
+ PrintWindow(hwnd, hdc, 2);
399
+ g.ReleaseHdc(hdc); g.Dispose();
400
+ var ms = new System.IO.MemoryStream();
401
+ bmp.Save(ms, ImageFormat.Png);
402
+ bmp.Dispose();
403
+ return w + "," + h + "," + Convert.ToBase64String(ms.ToArray());
404
+ }
405
+ }
406
+ '@
407
+ `, CAPTURE_BY_HWND_PS = `
408
+ Add-Type -AssemblyName System.Drawing
409
+ Add-Type -ReferencedAssemblies System.Drawing @'
410
+ using System;
411
+ using System.Runtime.InteropServices;
412
+ using System.Drawing;
413
+ using System.Drawing.Imaging;
414
+ public class WinCapH {
415
+ [DllImport("user32.dll")]
416
+ public static extern bool GetWindowRect(IntPtr h, out RECT r);
417
+ [DllImport("user32.dll")]
418
+ public static extern bool PrintWindow(IntPtr h, IntPtr hdc, uint f);
419
+ [DllImport("user32.dll")]
420
+ public static extern bool IsWindow(IntPtr hWnd);
421
+ [StructLayout(LayoutKind.Sequential)]
422
+ public struct RECT { public int L, T, R, B; }
423
+
424
+ public static string Capture(IntPtr hwnd) {
425
+ if (!IsWindow(hwnd)) return "NOT_FOUND";
426
+ RECT r; GetWindowRect(hwnd, out r);
427
+ int w = r.R - r.L; int h = r.B - r.T;
428
+ if (w <= 0 || h <= 0) return "INVALID_SIZE";
429
+ Bitmap bmp = new Bitmap(w, h);
430
+ Graphics g = Graphics.FromImage(bmp);
431
+ IntPtr hdc = g.GetHdc();
432
+ PrintWindow(hwnd, hdc, 2);
433
+ g.ReleaseHdc(hdc); g.Dispose();
434
+ var ms = new System.IO.MemoryStream();
435
+ bmp.Save(ms, ImageFormat.Png);
436
+ bmp.Dispose();
437
+ return w + "," + h + "," + Convert.ToBase64String(ms.ToArray());
438
+ }
439
+ }
440
+ '@
441
+ `;
442
+ var init_windowCapture = () => {};
443
+
444
+ // packages/@ant/computer-use-swift/src/backends/win32.ts
445
+ var exports_win32 = {};
446
+ __export(exports_win32, {
447
+ screenshot: () => screenshot2,
448
+ display: () => display2,
449
+ apps: () => apps2
450
+ });
451
+ function ps(script) {
452
+ const result = Bun.spawnSync({
453
+ cmd: ["powershell", "-NoProfile", "-NonInteractive", "-Command", script],
454
+ stdout: "pipe",
455
+ stderr: "pipe"
456
+ });
457
+ return new TextDecoder().decode(result.stdout).trim();
458
+ }
459
+ async function psAsync(script) {
460
+ const proc = Bun.spawn(["powershell", "-NoProfile", "-NonInteractive", "-Command", script], { stdout: "pipe", stderr: "pipe" });
461
+ const out = await new Response(proc.stdout).text();
462
+ await proc.exited;
463
+ return out.trim();
464
+ }
465
+ var display2, apps2, screenshot2;
466
+ var init_win32 = __esm(() => {
467
+ init_windowEnum();
468
+ init_windowCapture();
469
+ display2 = {
470
+ getSize(displayId) {
471
+ const all = this.listAll();
472
+ if (displayId !== undefined) {
473
+ const found = all.find((d) => d.displayId === displayId);
474
+ if (found)
475
+ return found;
476
+ }
477
+ return all[0] ?? { width: 1920, height: 1080, scaleFactor: 1, displayId: 0 };
478
+ },
479
+ listAll() {
480
+ try {
481
+ const raw = ps(`
482
+ Add-Type -AssemblyName System.Windows.Forms
483
+ $result = @()
484
+ $idx = 0
485
+ foreach ($s in [System.Windows.Forms.Screen]::AllScreens) {
486
+ $result += "$($s.Bounds.Width),$($s.Bounds.Height),$idx,$($s.Primary)"
487
+ $idx++
488
+ }
489
+ $result -join "|"
490
+ `);
491
+ return raw.split("|").filter(Boolean).map((entry) => {
492
+ const [w, h, id, primary] = entry.split(",");
493
+ return {
494
+ width: Number(w),
495
+ height: Number(h),
496
+ scaleFactor: 1,
497
+ displayId: Number(id)
498
+ };
499
+ });
500
+ } catch {
501
+ return [{ width: 1920, height: 1080, scaleFactor: 1, displayId: 0 }];
502
+ }
503
+ }
504
+ };
505
+ apps2 = {
506
+ async prepareDisplay(_allowlistBundleIds, _surrogateHost, _displayId) {
507
+ return { activated: "", hidden: [] };
508
+ },
509
+ async previewHideSet(_bundleIds, _displayId) {
510
+ return [];
511
+ },
512
+ async findWindowDisplays(bundleIds) {
513
+ return bundleIds.map((bundleId) => ({ bundleId, displayIds: [0] }));
514
+ },
515
+ async appUnderPoint(_x, _y) {
516
+ try {
517
+ const out = ps(`
518
+ Add-Type @'
519
+ using System;
520
+ using System.Runtime.InteropServices;
521
+ public class WinPt {
522
+ [StructLayout(LayoutKind.Sequential)] public struct POINT { public int X; public int Y; }
523
+ [DllImport("user32.dll")] public static extern IntPtr WindowFromPoint(POINT p);
524
+ [DllImport("user32.dll")] public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint pid);
525
+ }
526
+ '@
527
+ $pt = New-Object WinPt+POINT
528
+ $pt.X = ${_x}; $pt.Y = ${_y}
529
+ $hwnd = [WinPt]::WindowFromPoint($pt)
530
+ $pid = [uint32]0
531
+ [WinPt]::GetWindowThreadProcessId($hwnd, [ref]$pid) | Out-Null
532
+ $proc = Get-Process -Id $pid -ErrorAction SilentlyContinue
533
+ "$($proc.MainModule.FileName)|$($proc.ProcessName)"
534
+ `);
535
+ if (!out || !out.includes("|"))
536
+ return null;
537
+ const [exePath, name] = out.split("|", 2);
538
+ return { bundleId: exePath, displayName: name };
539
+ } catch {
540
+ return null;
541
+ }
542
+ },
543
+ async listInstalled() {
544
+ try {
545
+ const raw = await psAsync(`
546
+ $apps = @()
547
+ $paths = @(
548
+ 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*',
549
+ 'HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*',
550
+ 'HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'
551
+ )
552
+ foreach ($p in $paths) {
553
+ Get-ItemProperty $p -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName } | ForEach-Object {
554
+ $apps += "$($_.DisplayName)|$($_.InstallLocation)|$($_.PSChildName)"
555
+ }
556
+ }
557
+ $apps | Select-Object -Unique | Select-Object -First 200
558
+ `);
559
+ return raw.split(`
560
+ `).filter(Boolean).map((line) => {
561
+ const [name, path, id] = line.split("|", 3);
562
+ return {
563
+ bundleId: id ?? name ?? "",
564
+ displayName: name ?? "",
565
+ path: path ?? ""
566
+ };
567
+ });
568
+ } catch {
569
+ return [];
570
+ }
571
+ },
572
+ iconDataUrl(_path) {
573
+ return null;
574
+ },
575
+ listRunning() {
576
+ try {
577
+ const windows = listWindows();
578
+ return windows.map((w) => ({
579
+ bundleId: String(w.hwnd),
580
+ displayName: w.title
581
+ }));
582
+ } catch {
583
+ return [];
584
+ }
585
+ },
586
+ async open(name) {
587
+ const escaped = name.replace(/'/g, "''");
588
+ await psAsync(`
589
+ if (Test-Path '${escaped}') {
590
+ Start-Process '${escaped}'
591
+ } else {
592
+ Start-Process -FilePath '${escaped}' -ErrorAction SilentlyContinue
593
+ }`);
594
+ },
595
+ async unhide(bundleIds) {
596
+ for (const name of bundleIds) {
597
+ await psAsync(`
598
+ Add-Type @'
599
+ using System;
600
+ using System.Runtime.InteropServices;
601
+ public class WinShow {
602
+ [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, int nCmd);
603
+ [DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr hWnd);
604
+ }
605
+ '@
606
+ $proc = Get-Process -Name "${name}" -ErrorAction SilentlyContinue | Select-Object -First 1
607
+ if ($proc) { [WinShow]::ShowWindow($proc.MainWindowHandle, 9) | Out-Null; [WinShow]::SetForegroundWindow($proc.MainWindowHandle) | Out-Null }
608
+ `);
609
+ }
610
+ }
611
+ };
612
+ screenshot2 = {
613
+ async captureExcluding(_allowedBundleIds, _quality, _targetW, _targetH, displayId) {
614
+ const raw = await psAsync(`
615
+ Add-Type -AssemblyName System.Windows.Forms
616
+ Add-Type -AssemblyName System.Drawing
617
+ $screen = if (${displayId ?? -1} -ge 0) { [System.Windows.Forms.Screen]::AllScreens[${displayId ?? 0}] } else { [System.Windows.Forms.Screen]::PrimaryScreen }
618
+ $bounds = $screen.Bounds
619
+ $bmp = New-Object System.Drawing.Bitmap($bounds.Width, $bounds.Height)
620
+ $g = [System.Drawing.Graphics]::FromImage($bmp)
621
+ $g.CopyFromScreen($bounds.Location, [System.Drawing.Point]::Empty, $bounds.Size)
622
+ $g.Dispose()
623
+ $ms = New-Object System.IO.MemoryStream
624
+ $bmp.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png)
625
+ $bmp.Dispose()
626
+ $bytes = $ms.ToArray()
627
+ $ms.Dispose()
628
+ "$($bounds.Width),$($bounds.Height)," + [Convert]::ToBase64String($bytes)
629
+ `);
630
+ const firstComma = raw.indexOf(",");
631
+ const secondComma = raw.indexOf(",", firstComma + 1);
632
+ const width = Number(raw.slice(0, firstComma));
633
+ const height = Number(raw.slice(firstComma + 1, secondComma));
634
+ const base64 = raw.slice(secondComma + 1);
635
+ return { base64, width, height };
636
+ },
637
+ async captureRegion(_allowedBundleIds, x, y, w, h, _outW, _outH, _quality, _displayId) {
638
+ const raw = await psAsync(`
639
+ Add-Type -AssemblyName System.Windows.Forms
640
+ Add-Type -AssemblyName System.Drawing
641
+ $bmp = New-Object System.Drawing.Bitmap(${w}, ${h})
642
+ $g = [System.Drawing.Graphics]::FromImage($bmp)
643
+ $g.CopyFromScreen(${x}, ${y}, 0, 0, (New-Object System.Drawing.Size(${w}, ${h})))
644
+ $g.Dispose()
645
+ $ms = New-Object System.IO.MemoryStream
646
+ $bmp.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png)
647
+ $bmp.Dispose()
648
+ $bytes = $ms.ToArray()
649
+ $ms.Dispose()
650
+ "${w},${h}," + [Convert]::ToBase64String($bytes)
651
+ `);
652
+ const firstComma = raw.indexOf(",");
653
+ const secondComma = raw.indexOf(",", firstComma + 1);
654
+ const base64 = raw.slice(secondComma + 1);
655
+ return { base64, width: w, height: h };
656
+ },
657
+ captureWindowTarget(titleOrHwnd) {
658
+ if (typeof titleOrHwnd === "number") {
659
+ return captureWindowByHwnd(titleOrHwnd);
660
+ }
661
+ return captureWindow(titleOrHwnd);
662
+ }
663
+ };
664
+ });
665
+
666
+ // packages/@ant/computer-use-swift/src/backends/linux.ts
667
+ var exports_linux = {};
668
+ __export(exports_linux, {
669
+ screenshot: () => screenshot3,
670
+ display: () => display3,
671
+ apps: () => apps3
672
+ });
673
+ function run(cmd) {
674
+ const result = Bun.spawnSync({
675
+ cmd,
676
+ stdout: "pipe",
677
+ stderr: "pipe"
678
+ });
679
+ return new TextDecoder().decode(result.stdout).trim();
680
+ }
681
+ async function runAsync(cmd) {
682
+ const proc = Bun.spawn(cmd, { stdout: "pipe", stderr: "pipe" });
683
+ const out = await new Response(proc.stdout).text();
684
+ await proc.exited;
685
+ return out.trim();
686
+ }
687
+ function commandExists(name) {
688
+ const result = Bun.spawnSync({ cmd: ["which", name], stdout: "pipe", stderr: "pipe" });
689
+ return result.exitCode === 0;
690
+ }
691
+ var display3, apps3, SCREENSHOT_PATH = "/tmp/cu-screenshot.png", screenshot3;
692
+ var init_linux = __esm(() => {
693
+ display3 = {
694
+ getSize(displayId) {
695
+ const all = this.listAll();
696
+ if (displayId !== undefined) {
697
+ const found = all.find((d) => d.displayId === displayId);
698
+ if (found)
699
+ return found;
700
+ }
701
+ return all[0] ?? { width: 1920, height: 1080, scaleFactor: 1, displayId: 0 };
702
+ },
703
+ listAll() {
704
+ try {
705
+ const raw = run(["xrandr", "--query"]);
706
+ const displays = [];
707
+ let idx = 0;
708
+ const regex = /^\S+\s+connected\s+(?:primary\s+)?(\d+)x(\d+)\+\d+\+\d+/gm;
709
+ let match;
710
+ while ((match = regex.exec(raw)) !== null) {
711
+ displays.push({
712
+ width: Number(match[1]),
713
+ height: Number(match[2]),
714
+ scaleFactor: 1,
715
+ displayId: idx++
716
+ });
717
+ }
718
+ if (displays.length === 0) {
719
+ return [{ width: 1920, height: 1080, scaleFactor: 1, displayId: 0 }];
720
+ }
721
+ return displays;
722
+ } catch {
723
+ return [{ width: 1920, height: 1080, scaleFactor: 1, displayId: 0 }];
724
+ }
725
+ }
726
+ };
727
+ apps3 = {
728
+ async prepareDisplay(_allowlistBundleIds, _surrogateHost, _displayId) {
729
+ return { activated: "", hidden: [] };
730
+ },
731
+ async previewHideSet(_bundleIds, _displayId) {
732
+ return [];
733
+ },
734
+ async findWindowDisplays(bundleIds) {
735
+ return bundleIds.map((bundleId) => ({ bundleId, displayIds: [0] }));
736
+ },
737
+ async appUnderPoint(x, y) {
738
+ try {
739
+ const out = run(["xdotool", "mousemove", "--sync", String(x), String(y), "getmouselocation", "--shell"]);
740
+ const windowMatch = out.match(/WINDOW=(\d+)/);
741
+ if (!windowMatch)
742
+ return null;
743
+ const windowId = windowMatch[1];
744
+ const pidStr = run(["xdotool", "getwindowpid", windowId]);
745
+ if (!pidStr)
746
+ return null;
747
+ let exePath = "";
748
+ try {
749
+ exePath = run(["readlink", "-f", `/proc/${pidStr}/exe`]);
750
+ } catch {}
751
+ let appName = "";
752
+ try {
753
+ appName = run(["cat", `/proc/${pidStr}/comm`]);
754
+ } catch {}
755
+ if (!exePath && !appName)
756
+ return null;
757
+ return { bundleId: exePath || pidStr, displayName: appName || "unknown" };
758
+ } catch {
759
+ return null;
760
+ }
761
+ },
762
+ async listInstalled() {
763
+ try {
764
+ const dirs = ["/usr/share/applications", "/usr/local/share/applications", `${process.env.HOME}/.local/share/applications`];
765
+ const apps4 = [];
766
+ for (const dir of dirs) {
767
+ let files;
768
+ try {
769
+ files = run(["find", dir, "-name", "*.desktop", "-maxdepth", "1"]);
770
+ } catch {
771
+ continue;
772
+ }
773
+ for (const filepath of files.split(`
774
+ `).filter(Boolean)) {
775
+ try {
776
+ const content = run(["cat", filepath]);
777
+ const nameMatch = content.match(/^Name=(.+)$/m);
778
+ const execMatch = content.match(/^Exec=(.+)$/m);
779
+ const noDisplay = content.match(/^NoDisplay=true$/m);
780
+ if (noDisplay)
781
+ continue;
782
+ const name = nameMatch?.[1] ?? "";
783
+ const exec = execMatch?.[1] ?? "";
784
+ if (!name)
785
+ continue;
786
+ apps4.push({
787
+ bundleId: filepath.split("/").pop()?.replace(".desktop", "") ?? "",
788
+ displayName: name,
789
+ path: exec.split(/\s+/)[0] ?? ""
790
+ });
791
+ } catch {}
792
+ }
793
+ }
794
+ return apps4.slice(0, 200);
795
+ } catch {
796
+ return [];
797
+ }
798
+ },
799
+ iconDataUrl(_path) {
800
+ return null;
801
+ },
802
+ listRunning() {
803
+ try {
804
+ if (commandExists("wmctrl")) {
805
+ const raw2 = run(["wmctrl", "-l", "-p"]);
806
+ const apps5 = [];
807
+ for (const line of raw2.split(`
808
+ `).filter(Boolean)) {
809
+ const parts = line.split(/\s+/);
810
+ const pid = parts[2];
811
+ if (!pid || pid === "0")
812
+ continue;
813
+ let exePath = "";
814
+ try {
815
+ exePath = run(["readlink", "-f", `/proc/${pid}/exe`]);
816
+ } catch {}
817
+ let appName = "";
818
+ try {
819
+ appName = run(["cat", `/proc/${pid}/comm`]);
820
+ } catch {}
821
+ if (appName) {
822
+ apps5.push({ bundleId: exePath || pid, displayName: appName });
823
+ }
824
+ }
825
+ const seen = new Set;
826
+ return apps5.filter((a) => {
827
+ if (seen.has(a.bundleId))
828
+ return false;
829
+ seen.add(a.bundleId);
830
+ return true;
831
+ }).slice(0, 50);
832
+ }
833
+ const raw = run(["ps", "-eo", "pid,comm", "--no-headers"]);
834
+ const apps4 = [];
835
+ for (const line of raw.split(`
836
+ `).filter(Boolean).slice(0, 50)) {
837
+ const match = line.trim().match(/^(\d+)\s+(.+)$/);
838
+ if (match) {
839
+ apps4.push({ bundleId: match[1], displayName: match[2] });
840
+ }
841
+ }
842
+ return apps4;
843
+ } catch {
844
+ return [];
845
+ }
846
+ },
847
+ async open(name) {
848
+ try {
849
+ const desktopName = name.endsWith(".desktop") ? name : `${name}.desktop`;
850
+ if (commandExists("gtk-launch")) {
851
+ await runAsync(["gtk-launch", desktopName]);
852
+ return;
853
+ }
854
+ } catch {}
855
+ await runAsync(["xdg-open", name]);
856
+ },
857
+ async unhide(bundleIds) {
858
+ for (const id of bundleIds) {
859
+ try {
860
+ if (commandExists("wmctrl") && id.startsWith("0x")) {
861
+ await runAsync(["wmctrl", "-i", "-R", id]);
862
+ } else {
863
+ await runAsync(["xdotool", "search", "--name", id, "windowactivate"]);
864
+ }
865
+ } catch {}
866
+ }
867
+ }
868
+ };
869
+ screenshot3 = {
870
+ async captureExcluding(_allowedBundleIds, _quality, _targetW, _targetH, _displayId) {
871
+ try {
872
+ await runAsync(["scrot", "-o", SCREENSHOT_PATH]);
873
+ const file = Bun.file(SCREENSHOT_PATH);
874
+ const buffer = await file.arrayBuffer();
875
+ const base64 = Buffer.from(buffer).toString("base64");
876
+ const size = display3.getSize(_displayId);
877
+ return { base64, width: size.width, height: size.height };
878
+ } catch {
879
+ return { base64: "", width: 0, height: 0 };
880
+ }
881
+ },
882
+ async captureRegion(_allowedBundleIds, x, y, w, h, _outW, _outH, _quality, _displayId) {
883
+ try {
884
+ await runAsync(["scrot", "-a", `${x},${y},${w},${h}`, "-o", SCREENSHOT_PATH]);
885
+ const file = Bun.file(SCREENSHOT_PATH);
886
+ const buffer = await file.arrayBuffer();
887
+ const base64 = Buffer.from(buffer).toString("base64");
888
+ return { base64, width: w, height: h };
889
+ } catch {
890
+ return { base64: "", width: 0, height: 0 };
891
+ }
892
+ }
893
+ };
894
+ });
895
+
896
+ // packages/@ant/computer-use-swift/src/index.ts
897
+ var exports_src = {};
898
+ __export(exports_src, {
899
+ ComputerUseAPI: () => ComputerUseAPI
900
+ });
901
+ function loadBackend() {
902
+ try {
903
+ if (process.platform === "darwin") {
904
+ return init_darwin(), __toCommonJS(exports_darwin);
905
+ } else if (process.platform === "win32") {
906
+ return init_win32(), __toCommonJS(exports_win32);
907
+ } else if (process.platform === "linux") {
908
+ return init_linux(), __toCommonJS(exports_linux);
909
+ }
910
+ } catch {
911
+ return null;
912
+ }
913
+ return null;
914
+ }
915
+
916
+ class ComputerUseAPI {
917
+ apps = backend?.apps ?? {
918
+ async prepareDisplay() {
919
+ return { activated: "", hidden: [] };
920
+ },
921
+ async previewHideSet() {
922
+ return [];
923
+ },
924
+ async findWindowDisplays(ids) {
925
+ return ids.map((b) => ({ bundleId: b, displayIds: [] }));
926
+ },
927
+ async appUnderPoint() {
928
+ return null;
929
+ },
930
+ async listInstalled() {
931
+ return [];
932
+ },
933
+ iconDataUrl() {
934
+ return null;
935
+ },
936
+ listRunning() {
937
+ return [];
938
+ },
939
+ async open() {
940
+ throw new Error("@ant/computer-use-swift: macOS only");
941
+ },
942
+ async unhide() {}
943
+ };
944
+ display = backend?.display ?? {
945
+ getSize() {
946
+ throw new Error("@ant/computer-use-swift: macOS only");
947
+ },
948
+ listAll() {
949
+ throw new Error("@ant/computer-use-swift: macOS only");
950
+ }
951
+ };
952
+ screenshot = backend?.screenshot ?? {
953
+ async captureExcluding() {
954
+ throw new Error("@ant/computer-use-swift: macOS only");
955
+ },
956
+ async captureRegion() {
957
+ throw new Error("@ant/computer-use-swift: macOS only");
958
+ }
959
+ };
960
+ async resolvePrepareCapture(allowedBundleIds, _surrogateHost, quality, targetW, targetH, displayId) {
961
+ return this.screenshot.captureExcluding(allowedBundleIds, quality, targetW, targetH, displayId);
962
+ }
963
+ }
964
+ var backend;
965
+ var init_src = __esm(() => {
966
+ backend = loadBackend();
967
+ });
968
+
969
+ // src/utils/computerUse/swiftLoader.ts
970
+ function requireComputerUseSwift() {
971
+ if (cached)
972
+ return cached;
973
+ const mod = (init_src(), __toCommonJS(exports_src));
974
+ if (mod.ComputerUseAPI && typeof mod.ComputerUseAPI === "function") {
975
+ cached = new mod.ComputerUseAPI;
976
+ } else {
977
+ cached = mod;
978
+ }
979
+ return cached;
980
+ }
981
+ var cached;
982
+ var init_swiftLoader = () => {};
983
+
984
+ // src/utils/computerUse/drainRunLoop.ts
985
+ function drainTick(cu) {
986
+ cu._drainMainRunLoop();
987
+ }
988
+ function retain() {
989
+ pending++;
990
+ if (pump === undefined) {
991
+ pump = setInterval(drainTick, 1, requireComputerUseSwift());
992
+ logForDebugging("[drainRunLoop] pump started", { level: "verbose" });
993
+ }
994
+ }
995
+ function release() {
996
+ pending--;
997
+ if (pending <= 0 && pump !== undefined) {
998
+ clearInterval(pump);
999
+ pump = undefined;
1000
+ logForDebugging("[drainRunLoop] pump stopped", { level: "verbose" });
1001
+ pending = 0;
1002
+ }
1003
+ }
1004
+ function timeoutReject(reject) {
1005
+ reject(new Error(`computer-use native call exceeded ${TIMEOUT_MS}ms`));
1006
+ }
1007
+ async function drainRunLoop(fn) {
1008
+ if (process.platform !== "darwin")
1009
+ return fn();
1010
+ retain();
1011
+ let timer;
1012
+ try {
1013
+ const work = fn();
1014
+ work.catch(() => {});
1015
+ const timeout = withResolvers();
1016
+ timer = setTimeout(timeoutReject, TIMEOUT_MS, timeout.reject);
1017
+ return await Promise.race([work, timeout.promise]);
1018
+ } finally {
1019
+ clearTimeout(timer);
1020
+ release();
1021
+ }
1022
+ }
1023
+ var pump, pending = 0, TIMEOUT_MS = 30000, retainPump, releasePump;
1024
+ var init_drainRunLoop = __esm(() => {
1025
+ init_debug();
1026
+ init_withResolvers();
1027
+ init_swiftLoader();
1028
+ retainPump = retain;
1029
+ releasePump = release;
1030
+ });
1031
+
1032
+ // src/utils/computerUse/escHotkey.ts
1033
+ function registerEscHotkey(onEscape) {
1034
+ if (process.platform !== "darwin")
1035
+ return false;
1036
+ if (registered)
1037
+ return true;
1038
+ const cu = requireComputerUseSwift();
1039
+ if (!cu.hotkey.registerEscape(onEscape)) {
1040
+ logForDebugging("[cu-esc] registerEscape returned false", { level: "warn" });
1041
+ return false;
1042
+ }
1043
+ retainPump();
1044
+ registered = true;
1045
+ logForDebugging("[cu-esc] registered");
1046
+ return true;
1047
+ }
1048
+ function unregisterEscHotkey() {
1049
+ if (!registered)
1050
+ return;
1051
+ try {
1052
+ requireComputerUseSwift().hotkey.unregister();
1053
+ } finally {
1054
+ releasePump();
1055
+ registered = false;
1056
+ logForDebugging("[cu-esc] unregistered");
1057
+ }
1058
+ }
1059
+ function notifyExpectedEscape() {
1060
+ if (!registered)
1061
+ return;
1062
+ requireComputerUseSwift().hotkey.notifyExpectedEscape();
1063
+ }
1064
+ var registered = false;
1065
+ var init_escHotkey = __esm(() => {
1066
+ init_debug();
1067
+ init_drainRunLoop();
1068
+ init_swiftLoader();
1069
+ });
1070
+
1071
+ export { withResolvers, init_withResolvers, listWindows, exports_windowEnum, init_windowEnum, requireComputerUseSwift, init_swiftLoader, drainRunLoop, init_drainRunLoop, registerEscHotkey, unregisterEscHotkey, notifyExpectedEscape, init_escHotkey };