claude-code-best 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 (522) hide show
  1. package/README.md +104 -369
  2. package/dist/{chunk-5wxspfct.js → chunk-01qzvbp3.js} +8 -2
  3. package/dist/chunk-053bj0m0.js +247 -0
  4. package/dist/chunk-05tt9tt1.js +653 -0
  5. package/dist/chunk-06sq1vz3.js +403 -0
  6. package/dist/chunk-07069jq1.js +30 -0
  7. package/dist/chunk-0dac8msw.js +135 -0
  8. package/dist/{chunk-52n4py3b.js → chunk-0ja0y3at.js} +6 -6
  9. package/dist/chunk-0jzdwbdc.js +14 -0
  10. package/dist/chunk-0nrq46nf.js +313 -0
  11. package/dist/chunk-0qz705wz.js +192 -0
  12. package/dist/{chunk-by7ezad6.js → chunk-0rn4v8sg.js} +42 -28
  13. package/dist/{chunk-1cbn5kxf.js → chunk-0rpb2bdp.js} +3 -2
  14. package/dist/{chunk-zz21rvr7.js → chunk-127cmycn.js} +8 -5
  15. package/dist/chunk-12vk6z7z.js +109 -0
  16. package/dist/chunk-15y014gg.js +102 -0
  17. package/dist/{chunk-44fpr6jq.js → chunk-168xb8v1.js} +4 -2
  18. package/dist/{chunk-8fmbf525.js → chunk-16bnxyz0.js} +1 -1
  19. package/dist/{chunk-wsqhnjj3.js → chunk-1atfzck5.js} +24 -24
  20. package/dist/chunk-1cbhkqxg.js +310 -0
  21. package/dist/chunk-1csq8bf1.js +295 -0
  22. package/dist/{chunk-0e1xsncc.js → chunk-1cwdhk7a.js} +1 -1
  23. package/dist/{chunk-36k3f7pn.js → chunk-1ebqpwhn.js} +79 -59
  24. package/dist/{chunk-ap2a2er6.js → chunk-1mh5vt6v.js} +102 -80
  25. package/dist/chunk-1qf125vg.js +123 -0
  26. package/dist/{chunk-fcz5eche.js → chunk-1sp6713v.js} +139 -170
  27. package/dist/{chunk-d18z9pna.js → chunk-1thgdca1.js} +2 -2
  28. package/dist/chunk-1z1gfx2c.js +443 -0
  29. package/dist/{chunk-7z8j9qfn.js → chunk-21z7acxh.js} +3 -3
  30. package/dist/chunk-229pcf6p.js +509 -0
  31. package/dist/chunk-238g70xa.js +1 -1
  32. package/dist/{chunk-vpb723tx.js → chunk-23ad5t92.js} +5 -5
  33. package/dist/chunk-28043j1k.js +68 -0
  34. package/dist/chunk-299r6d9v.js +141 -0
  35. package/dist/{chunk-5r3ak65p.js → chunk-2bw5nqsw.js} +4 -4
  36. package/dist/chunk-2mxstrx5.js +445 -0
  37. package/dist/{chunk-w2z5pqd3.js → chunk-2q39ej51.js} +6 -6
  38. package/dist/chunk-2qwgfjcj.js +5370 -0
  39. package/dist/chunk-2ss23j0q.js +3587 -0
  40. package/dist/{chunk-k9c3888e.js → chunk-2wvxddsg.js} +9 -7
  41. package/dist/chunk-2x2aznpc.js +134 -0
  42. package/dist/{chunk-bqq4zamw.js → chunk-2ys5wcxk.js} +3 -3
  43. package/dist/{chunk-2kbk09sb.js → chunk-3cvcwgsr.js} +79 -59
  44. package/dist/{chunk-rs45skes.js → chunk-3xv7rjsy.js} +15 -11
  45. package/dist/chunk-42x5tjk2.js +42 -0
  46. package/dist/{chunk-n78qmqpq.js → chunk-436r0x2n.js} +8 -8
  47. package/dist/{chunk-k3vpzx3c.js → chunk-44q4jkwa.js} +27 -67
  48. package/dist/{chunk-qnbdekts.js → chunk-44w22kyx.js} +111 -132
  49. package/dist/{chunk-7m2nd8da.js → chunk-46fcr28b.js} +31 -10
  50. package/dist/{chunk-wm2f2f1z.js → chunk-474y75ga.js} +2 -2
  51. package/dist/{chunk-6fkwz9yk.js → chunk-478rpnqm.js} +8 -8
  52. package/dist/chunk-48w0df8a.js +32 -0
  53. package/dist/chunk-4cp6193g.js +9076 -0
  54. package/dist/chunk-4d0de73v.js +436 -0
  55. package/dist/chunk-4eecm90d.js +1030 -0
  56. package/dist/{chunk-jfv3zczw.js → chunk-4f4ccg1h.js} +10 -115
  57. package/dist/chunk-4h102wt5.js +65 -0
  58. package/dist/{chunk-6n2qgm9v.js → chunk-4hv90qcz.js} +1 -1
  59. package/dist/{chunk-4gj6zzg1.js → chunk-4jcqmf9w.js} +43 -29
  60. package/dist/{chunk-067wa5sn.js → chunk-4kk7vxed.js} +8 -6
  61. package/dist/chunk-4nspekjp.js +69 -0
  62. package/dist/chunk-4xmb7bvy.js +125 -0
  63. package/dist/{chunk-nrp9yaq6.js → chunk-4xy0c1dz.js} +16 -12
  64. package/dist/{chunk-77g09znh.js → chunk-53c9gb9c.js} +23 -16
  65. package/dist/{chunk-03nqtgyr.js → chunk-53zsn91p.js} +42 -30
  66. package/dist/{chunk-gkrx7ptx.js → chunk-548g1d6z.js} +113 -114
  67. package/dist/chunk-559yvwh1.js +63 -0
  68. package/dist/chunk-5a6ahhvy.js +594 -0
  69. package/dist/{chunk-h2j4t3fk.js → chunk-5c6man70.js} +9692 -17630
  70. package/dist/chunk-5hb5ev7b.js +74 -0
  71. package/dist/{chunk-hx2tr4ep.js → chunk-5z28bqne.js} +34 -475
  72. package/dist/{chunk-p7g7pf3f.js → chunk-61ahbn23.js} +8 -6
  73. package/dist/chunk-64c1avct.js +13 -0
  74. package/dist/{chunk-0sb5scxx.js → chunk-652wnf1z.js} +5 -5
  75. package/dist/{chunk-1w361mz1.js → chunk-66jkaz3q.js} +109 -213
  76. package/dist/{chunk-q25bjaev.js → chunk-677as3nh.js} +2 -2
  77. package/dist/chunk-68ksfahx.js +386 -0
  78. package/dist/{chunk-xs0hwvpa.js → chunk-68pfxvxt.js} +14 -9
  79. package/dist/{chunk-epmheefa.js → chunk-69hys77v.js} +8 -8
  80. package/dist/{chunk-404wc7d4.js → chunk-6ayqcq3h.js} +126 -119
  81. package/dist/chunk-6kpbgc5w.js +23 -0
  82. package/dist/chunk-6mpsxxsf.js +362 -0
  83. package/dist/chunk-6nze0g86.js +119 -0
  84. package/dist/{chunk-v1mgv1et.js → chunk-6p4cyhb3.js} +4 -3
  85. package/dist/{chunk-w2qfgzzh.js → chunk-6t62dbnb.js} +61 -100
  86. package/dist/chunk-6t87a3q6.js +2842 -0
  87. package/dist/{chunk-q6av622g.js → chunk-6xana182.js} +18 -13
  88. package/dist/{chunk-fpf4cgbt.js → chunk-7bfach0x.js} +9 -9
  89. package/dist/{chunk-g6e1ab2k.js → chunk-7f1ggjr2.js} +81 -61
  90. package/dist/chunk-7fxjmmfw.js +1172 -0
  91. package/dist/{chunk-ckcagq32.js → chunk-7gqf9wej.js} +5 -5
  92. package/dist/chunk-7j3dkjqq.js +38 -0
  93. package/dist/chunk-7ns74x0q.js +475 -0
  94. package/dist/chunk-7qmknpkq.js +272 -0
  95. package/dist/chunk-7rzepn9c.js +83 -0
  96. package/dist/chunk-7tdcwje9.js +68 -0
  97. package/dist/{chunk-201dvaa3.js → chunk-8201tnhf.js} +11 -5
  98. package/dist/{chunk-dv1wfr85.js → chunk-8225arm6.js} +5 -4
  99. package/dist/chunk-822wfv88.js +70 -0
  100. package/dist/chunk-837tm8ht.js +183 -0
  101. package/dist/chunk-8a2ajt5d.js +878 -0
  102. package/dist/{chunk-drv8qvwz.js → chunk-8bymxfn4.js} +43 -29
  103. package/dist/chunk-8cwbzk7h.js +118 -0
  104. package/dist/chunk-8d0ev0m2.js +111 -0
  105. package/dist/chunk-8g5pe1gr.js +37 -0
  106. package/dist/{chunk-g0j0t6qk.js → chunk-8g747a8x.js} +1 -1
  107. package/dist/chunk-8kfwb79z.js +436 -0
  108. package/dist/{chunk-xyqr1cww.js → chunk-8me0yq6v.js} +12 -12
  109. package/dist/{chunk-qdrwxg3e.js → chunk-8n8285ax.js} +91 -71
  110. package/dist/{chunk-sdj9b9wh.js → chunk-8pn8tvgg.js} +9 -154
  111. package/dist/{chunk-ha0xq3e9.js → chunk-8qhr4n77.js} +64 -106
  112. package/dist/{chunk-fpjzr5jj.js → chunk-8s9bbk3r.js} +62 -45
  113. package/dist/{chunk-e3g8q4cn.js → chunk-905d2hee.js} +10 -8
  114. package/dist/{chunk-3psth3ez.js → chunk-91xq5y4a.js} +9 -9
  115. package/dist/{chunk-rq1kckze.js → chunk-93xsyzsp.js} +1 -1
  116. package/dist/chunk-99pmbfqp.js +230 -0
  117. package/dist/chunk-9f14bkn9.js +33068 -0
  118. package/dist/{chunk-ex978bsn.js → chunk-9m78gjpd.js} +1 -1
  119. package/dist/{chunk-hpwa620w.js → chunk-9pm2d2gv.js} +251 -306
  120. package/dist/chunk-a136cvvz.js +27 -0
  121. package/dist/{chunk-n5t9m8h9.js → chunk-a1bjde7d.js} +7 -7
  122. package/dist/chunk-a2evk7n1.js +168 -0
  123. package/dist/{chunk-6heqkcjx.js → chunk-a3k4w4cm.js} +42 -28
  124. package/dist/chunk-a3mcc1sb.js +1403 -0
  125. package/dist/{chunk-8hq5kk3y.js → chunk-a4twdmhf.js} +3 -2
  126. package/dist/chunk-a8eaey19.js +66 -0
  127. package/dist/chunk-abkb5pw6.js +426 -0
  128. package/dist/chunk-ae76ded0.js +30 -0
  129. package/dist/{chunk-2v1br2x0.js → chunk-agx5w9ce.js} +14 -8
  130. package/dist/chunk-ah46h8rp.js +70 -0
  131. package/dist/chunk-aj3azy6z.js +409 -0
  132. package/dist/chunk-an6z4rzv.js +158 -0
  133. package/dist/{chunk-r6b58y3x.js → chunk-ase86y73.js} +1 -3
  134. package/dist/{chunk-e6s36z54.js → chunk-avfjb6pd.js} +17 -557
  135. package/dist/{chunk-1hhdpn3t.js → chunk-az5x70pn.js} +8 -5
  136. package/dist/{chunk-91gk0g2y.js → chunk-b6rg3egp.js} +33 -18
  137. package/dist/chunk-b73r6ngr.js +125 -0
  138. package/dist/{chunk-8bedvdm1.js → chunk-b81hd3m6.js} +1 -1
  139. package/dist/{chunk-ebfsjcvm.js → chunk-b9mhpc0v.js} +3 -3
  140. package/dist/chunk-b9ndqcdv.js +139 -0
  141. package/dist/{chunk-w7wgpqcp.js → chunk-bd8zk9tn.js} +7 -7
  142. package/dist/chunk-bdy6n17s.js +343 -0
  143. package/dist/{chunk-s8y2tfzf.js → chunk-bf1j3azq.js} +156 -119
  144. package/dist/{chunk-j5j6nrfq.js → chunk-bfcet2mw.js} +2 -2
  145. package/dist/{chunk-jy35mvy3.js → chunk-bmjmrk76.js} +7 -7
  146. package/dist/{chunk-ra0r65nx.js → chunk-bsj8e2mb.js} +11 -11
  147. package/dist/{chunk-jce5r25x.js → chunk-bt64sq5y.js} +5 -4
  148. package/dist/{chunk-vyc0rjyx.js → chunk-bwg7582d.js} +1 -1
  149. package/dist/{chunk-3be7ka25.js → chunk-bxcfz5gy.js} +1 -1
  150. package/dist/{chunk-7wm1rjfm.js → chunk-c1k9tg7h.js} +518 -810
  151. package/dist/{chunk-qwvrkydc.js → chunk-c5pxerks.js} +13 -11
  152. package/dist/chunk-c6sjhj89.js +1284 -0
  153. package/dist/{chunk-brcnd1j0.js → chunk-c9q0phsg.js} +9 -6
  154. package/dist/chunk-caj0ab74.js +129 -0
  155. package/dist/chunk-chsyvavm.js +3435 -0
  156. package/dist/chunk-cjpt035a.js +269 -0
  157. package/dist/chunk-cmcbatgz.js +147 -0
  158. package/dist/chunk-cnsj3vq2.js +35 -0
  159. package/dist/chunk-cqjmxeqv.js +269 -0
  160. package/dist/{chunk-cdz5yb0r.js → chunk-crmjpsqe.js} +13 -2
  161. package/dist/{chunk-2mcp388c.js → chunk-cvb1v08x.js} +38 -32
  162. package/dist/{chunk-w0r5627q.js → chunk-cxhvyf7c.js} +234 -363
  163. package/dist/{chunk-s0wvh65m.js → chunk-cxx0e4nv.js} +1343 -2839
  164. package/dist/chunk-cy2hswr1.js +15 -0
  165. package/dist/{chunk-g9q2cznf.js → chunk-cy6ezb6j.js} +125994 -138958
  166. package/dist/{chunk-ks0m9njy.js → chunk-d2jekryq.js} +8 -8
  167. package/dist/chunk-d4mdda98.js +94 -0
  168. package/dist/{chunk-hgtf13es.js → chunk-d6ve5pze.js} +10 -10
  169. package/dist/{chunk-55wgxwa9.js → chunk-d7886r6a.js} +6928 -6935
  170. package/dist/{chunk-4bgz02m1.js → chunk-d83tmb5h.js} +87 -64
  171. package/dist/{chunk-hdwh7ncw.js → chunk-d8meetqc.js} +84 -63
  172. package/dist/{chunk-128nh5j9.js → chunk-d8r0q4ps.js} +547 -866
  173. package/dist/chunk-d95k8xkm.js +84 -0
  174. package/dist/chunk-dd4m7t1v.js +112 -0
  175. package/dist/{chunk-rcdpvnxh.js → chunk-dekbr08w.js} +24 -20
  176. package/dist/{chunk-cvge4pvp.js → chunk-dk8287aa.js} +1 -1
  177. package/dist/chunk-dm3n2qgd.js +24 -0
  178. package/dist/{chunk-b0105v1f.js → chunk-dmxte86x.js} +3 -3
  179. package/dist/{chunk-zkmxtgc3.js → chunk-dqvwn28p.js} +19 -15
  180. package/dist/chunk-drkm8yx2.js +34 -0
  181. package/dist/chunk-dsbewdgm.js +148 -0
  182. package/dist/{chunk-w7h2yphx.js → chunk-dwekpr47.js} +2 -2
  183. package/dist/{chunk-hg776v69.js → chunk-e3299veq.js} +16 -68
  184. package/dist/{chunk-wqpr7002.js → chunk-e5hcyxae.js} +132 -18
  185. package/dist/chunk-e7h0nd5w.js +106 -0
  186. package/dist/{chunk-7qwme3ab.js → chunk-eaemyebz.js} +5 -5
  187. package/dist/{chunk-hjhc4cpt.js → chunk-edzkkadh.js} +2 -2
  188. package/dist/chunk-em99fnet.js +128 -0
  189. package/dist/{chunk-hfzj1m07.js → chunk-epyaq1z0.js} +13 -4
  190. package/dist/{chunk-r8f13sz1.js → chunk-eqmkajs4.js} +102 -195
  191. package/dist/{chunk-gax0fcbx.js → chunk-ergam9ft.js} +5 -5
  192. package/dist/chunk-es2fdse0.js +63 -0
  193. package/dist/{chunk-grdvmq7q.js → chunk-esn3tgm2.js} +8 -6
  194. package/dist/{chunk-ptmcaxqn.js → chunk-et8ybmt2.js} +9 -7
  195. package/dist/chunk-ew9rp41b.js +300 -0
  196. package/dist/{chunk-dvfb4qwt.js → chunk-ewx6xfzb.js} +2 -2
  197. package/dist/chunk-eyjtbtt0.js +137 -0
  198. package/dist/chunk-f0jd2p9n.js +797 -0
  199. package/dist/{chunk-vzqrbsd1.js → chunk-f69rgsm2.js} +5 -5
  200. package/dist/{chunk-45kxdsp8.js → chunk-f6rbj3gz.js} +17 -12
  201. package/dist/chunk-fbhyqxdg.js +1182 -0
  202. package/dist/chunk-feyzykye.js +10 -0
  203. package/dist/chunk-ffhejx56.js +107 -0
  204. package/dist/{chunk-cpe70sxw.js → chunk-fhx6nt2a.js} +42 -28
  205. package/dist/chunk-fkkysfev.js +158 -0
  206. package/dist/chunk-fn510gqw.js +216 -0
  207. package/dist/chunk-ftsg8bjm.js +117 -0
  208. package/dist/{chunk-s39js2d3.js → chunk-fyts9grb.js} +2 -2
  209. package/dist/{chunk-bjqw6798.js → chunk-fz0ch109.js} +6 -5
  210. package/dist/{chunk-q1e6pzwh.js → chunk-g1jarkx9.js} +38 -8
  211. package/dist/chunk-g9f19ttm.js +15 -0
  212. package/dist/chunk-g9qte35t.js +341 -0
  213. package/dist/chunk-gaav53dc.js +105 -0
  214. package/dist/chunk-gfx3cwrk.js +75 -0
  215. package/dist/chunk-gk2d1x2a.js +946 -0
  216. package/dist/chunk-gkbat1p9.js +121 -0
  217. package/dist/{chunk-cg43nnpk.js → chunk-gmnyk2t8.js} +8 -6
  218. package/dist/{chunk-m23b51r2.js → chunk-gnmdprq3.js} +191 -338
  219. package/dist/{chunk-bq6x1ehp.js → chunk-gpz0ddyz.js} +8 -8
  220. package/dist/{chunk-yt6z8030.js → chunk-gv1csnc3.js} +217 -355
  221. package/dist/{chunk-nx6nds18.js → chunk-gv37c8ax.js} +3 -3
  222. package/dist/{chunk-h6c8cms4.js → chunk-gzr2601k.js} +10 -10
  223. package/dist/{chunk-2tkt52mz.js → chunk-h3pda469.js} +37 -82
  224. package/dist/{chunk-qqfa0dqg.js → chunk-h4b85amj.js} +20 -32
  225. package/dist/chunk-h5zv78zq.js +352 -0
  226. package/dist/{chunk-2x3gmbws.js → chunk-h7edytkc.js} +5 -5
  227. package/dist/{chunk-as261f01.js → chunk-ha0wbzc3.js} +13 -11
  228. package/dist/{chunk-nxsh6de2.js → chunk-hcgkak1j.js} +20 -125
  229. package/dist/{chunk-tjaqa99q.js → chunk-hezj20qy.js} +3 -3
  230. package/dist/{chunk-7ahman84.js → chunk-hf85ht0m.js} +2 -2
  231. package/dist/{chunk-w0hx9v3y.js → chunk-ht1nfygk.js} +42 -28
  232. package/dist/chunk-j316jjby.js +108 -0
  233. package/dist/chunk-j3fge71v.js +115 -0
  234. package/dist/{chunk-v4h5psgs.js → chunk-j4x0t6k2.js} +46 -31
  235. package/dist/{chunk-9gbamk79.js → chunk-j5bth84e.js} +5 -1
  236. package/dist/chunk-j783d5af.js +134 -0
  237. package/dist/chunk-j7pbwf9x.js +108 -0
  238. package/dist/{chunk-rf2w4x97.js → chunk-j8rnrm5n.js} +120 -142
  239. package/dist/{chunk-vratq94g.js → chunk-j9gxwbe3.js} +1 -1
  240. package/dist/{chunk-3r24h7t6.js → chunk-jaaxk89e.js} +1 -1
  241. package/dist/{chunk-y47cg3kz.js → chunk-jaew3662.js} +18 -13
  242. package/dist/{chunk-q1txr206.js → chunk-jbbj16w2.js} +128 -185
  243. package/dist/chunk-jerew25v.js +148 -0
  244. package/dist/{chunk-v399mzxk.js → chunk-jf0p00fz.js} +2 -2
  245. package/dist/{chunk-97r68x5g.js → chunk-jfsah2w3.js} +1065 -1762
  246. package/dist/{chunk-av73dywf.js → chunk-jna2tcvj.js} +8 -8
  247. package/dist/{chunk-yym1e1dr.js → chunk-jng0mb4r.js} +10 -10
  248. package/dist/chunk-jrrmwfp4.js +66 -0
  249. package/dist/{chunk-0rc2rn3b.js → chunk-jt6fa514.js} +14 -12
  250. package/dist/chunk-jvkyx1b7.js +911 -0
  251. package/dist/{chunk-41xeh3t9.js → chunk-jy6c07wa.js} +4 -4
  252. package/dist/chunk-k1fvb16y.js +269 -0
  253. package/dist/{chunk-bqfnp99q.js → chunk-k3s4yk22.js} +1 -1
  254. package/dist/{chunk-madfgr3n.js → chunk-k46gxg21.js} +68 -8
  255. package/dist/chunk-k8wwyz2t.js +110 -0
  256. package/dist/{chunk-mnx3wyv4.js → chunk-ka3fdfyb.js} +83 -62
  257. package/dist/{chunk-k5c8ssc6.js → chunk-ka4x7mhn.js} +42 -28
  258. package/dist/chunk-kb99zpps.js +216 -0
  259. package/dist/{chunk-1dyeexvn.js → chunk-kd3mmsd2.js} +4 -4
  260. package/dist/{chunk-1xkekb9y.js → chunk-kfd89dsd.js} +5 -3
  261. package/dist/{chunk-g7fxbqsc.js → chunk-km1wcchx.js} +87 -68
  262. package/dist/{chunk-248szg6m.js → chunk-kmhwx18d.js} +3 -3
  263. package/dist/{chunk-pabnr66n.js → chunk-kq91dwkq.js} +8 -6
  264. package/dist/chunk-m17m84b7.js +111 -0
  265. package/dist/chunk-m1a0s9fd.js +1070 -0
  266. package/dist/{chunk-jafes477.js → chunk-m2bcpk8j.js} +4 -3
  267. package/dist/{chunk-t0brxw87.js → chunk-m7jtn7dk.js} +80 -60
  268. package/dist/chunk-mq2mgyt9.js +103 -0
  269. package/dist/chunk-msv3w4qp.js +1811 -0
  270. package/dist/chunk-mx28h61f.js +1147 -0
  271. package/dist/{chunk-wf7yz2j0.js → chunk-mxe1f4jg.js} +13 -11
  272. package/dist/{chunk-n5crdyay.js → chunk-mzwjvfr2.js} +137 -124
  273. package/dist/{chunk-gf96dtb6.js → chunk-n2n0sq7r.js} +71 -77
  274. package/dist/{chunk-m06q12hg.js → chunk-n8mpqdje.js} +1 -1
  275. package/dist/chunk-n9e984ba.js +132 -0
  276. package/dist/chunk-netzwgv1.js +154 -0
  277. package/dist/{chunk-xszk7n10.js → chunk-nh3cd07f.js} +1 -1
  278. package/dist/chunk-njrz6mbe.js +66 -0
  279. package/dist/{chunk-sb2sew2f.js → chunk-nv7pfr7k.js} +2 -2
  280. package/dist/{chunk-g9xf7jc4.js → chunk-nwd8pb55.js} +85 -65
  281. package/dist/{chunk-5hva0tsg.js → chunk-p2yv7m0g.js} +6 -6
  282. package/dist/chunk-p5t2vy90.js +259 -0
  283. package/dist/{chunk-zk2wsm7d.js → chunk-p7vkh4wx.js} +2 -2
  284. package/dist/{chunk-da4ve9t5.js → chunk-p8crqj70.js} +10 -10
  285. package/dist/{chunk-02y0y853.js → chunk-pcngtzr8.js} +12 -6
  286. package/dist/{chunk-3vpqaqc6.js → chunk-pdjem6h1.js} +53 -71
  287. package/dist/{chunk-7rgwp44r.js → chunk-pmxdzjq0.js} +11 -9
  288. package/dist/{chunk-3s5r02ps.js → chunk-pnkcecq2.js} +31 -57
  289. package/dist/{chunk-zsfxha74.js → chunk-pshjyzq4.js} +8 -7
  290. package/dist/chunk-pt1yj9zf.js +107 -0
  291. package/dist/{chunk-rxwb7b78.js → chunk-py6b9d5b.js} +2331 -4219
  292. package/dist/chunk-q7n8d91g.js +67 -0
  293. package/dist/{chunk-e5pntxye.js → chunk-q7tpyeb3.js} +6 -4
  294. package/dist/{chunk-7ymfj7m3.js → chunk-q82r31er.js} +1 -1
  295. package/dist/chunk-qajrkk97.js +298 -0
  296. package/dist/chunk-qbrh24cn.js +119 -0
  297. package/dist/chunk-qd9ntz7c.js +230 -0
  298. package/dist/chunk-qfr5tcd5.js +2537 -0
  299. package/dist/chunk-qpzfmkct.js +456 -0
  300. package/dist/{chunk-ywxd4qw4.js → chunk-qtfc6wdh.js} +2 -5
  301. package/dist/chunk-r032587e.js +83 -0
  302. package/dist/chunk-r2k2jy0y.js +51 -0
  303. package/dist/{chunk-8mqwac85.js → chunk-r4dnnggx.js} +22 -16
  304. package/dist/{chunk-5wnn3t3a.js → chunk-r5n8fvw0.js} +7 -7
  305. package/dist/{chunk-pxvatg16.js → chunk-r7kh03er.js} +231 -190
  306. package/dist/{chunk-z4wtem3z.js → chunk-rfs0mfg8.js} +147 -151
  307. package/dist/{chunk-hrzerbfw.js → chunk-rgbbtszq.js} +14 -14
  308. package/dist/{chunk-ctw5jwcd.js → chunk-rkak3kjw.js} +10 -10
  309. package/dist/chunk-rp568bfw.js +111 -0
  310. package/dist/chunk-rtv718sv.js +146 -0
  311. package/dist/{chunk-8d5eyjse.js → chunk-rvkvehat.js} +5284 -3093
  312. package/dist/chunk-s1baskk7.js +14 -0
  313. package/dist/{chunk-tse7q7k1.js → chunk-s1eb67v3.js} +79 -59
  314. package/dist/{chunk-7rn4t7tx.js → chunk-s59kx26r.js} +87 -64
  315. package/dist/chunk-s6yk6m3b.js +109 -0
  316. package/dist/{chunk-bsk44136.js → chunk-sca71yv8.js} +11 -9
  317. package/dist/chunk-sfrwm87k.js +151 -0
  318. package/dist/chunk-sgaknx21.js +123 -0
  319. package/dist/{chunk-4y62603j.js → chunk-snyaz093.js} +9 -15
  320. package/dist/{chunk-ytg914ra.js → chunk-sq8wkk3z.js} +1 -3
  321. package/dist/chunk-sxqj7s2h.js +54 -0
  322. package/dist/chunk-t2m6cjp1.js +264 -0
  323. package/dist/chunk-t6hmvb6k.js +1021 -0
  324. package/dist/chunk-t72x960a.js +125 -0
  325. package/dist/chunk-t9kashay.js +440 -0
  326. package/dist/chunk-t9wzf009.js +151 -0
  327. package/dist/chunk-ta1dgyj1.js +154 -0
  328. package/dist/chunk-tavxhayf.js +149 -0
  329. package/dist/{chunk-2tw2ve8h.js → chunk-tcdv4gp8.js} +18 -12
  330. package/dist/chunk-td3b74vm.js +362 -0
  331. package/dist/{chunk-mt25echc.js → chunk-tezak8rx.js} +1 -1
  332. package/dist/chunk-tgcw0rzx.js +262 -0
  333. package/dist/{chunk-9rcbyag3.js → chunk-tmdbrszg.js} +2 -2
  334. package/dist/{chunk-avwewk4v.js → chunk-v17qee2y.js} +12 -8
  335. package/dist/{chunk-njtjmsx7.js → chunk-v1jd31dw.js} +2 -2
  336. package/dist/chunk-var1et7e.js +66 -0
  337. package/dist/{chunk-j5zq8axt.js → chunk-ve9wswz4.js} +7 -131
  338. package/dist/{chunk-hqmz36b3.js → chunk-vf612n57.js} +21 -101
  339. package/dist/chunk-vfhabc5j.js +109 -0
  340. package/dist/{chunk-wszmas1q.js → chunk-vgy0w6tt.js} +2 -2
  341. package/dist/chunk-vh02fvz1.js +375 -0
  342. package/dist/{chunk-jz6sqm8m.js → chunk-vm935era.js} +1083 -881
  343. package/dist/{chunk-e7393td6.js → chunk-vtb8z6as.js} +14 -9
  344. package/dist/chunk-w2kf9sxn.js +115 -0
  345. package/dist/chunk-w7trx259.js +132 -0
  346. package/dist/chunk-w92b262y.js +1072 -0
  347. package/dist/chunk-w9zqjhvm.js +103 -0
  348. package/dist/{chunk-0he1tqj5.js → chunk-wb2fvy1k.js} +81 -61
  349. package/dist/chunk-ws2d81aj.js +123 -0
  350. package/dist/{chunk-k808gmhk.js → chunk-wssgdcck.js} +2 -2
  351. package/dist/{chunk-t9z6njcr.js → chunk-wtycm8km.js} +9 -9
  352. package/dist/chunk-wz0d8mna.js +108 -0
  353. package/dist/chunk-x01wtn3p.js +144 -0
  354. package/dist/{chunk-ze747xz6.js → chunk-x2sp7rcv.js} +73 -105
  355. package/dist/{chunk-7vtykt4v.js → chunk-xbprynsc.js} +18 -46
  356. package/dist/{chunk-p196v9d0.js → chunk-xext3y2y.js} +8 -6
  357. package/dist/{chunk-r66hz8j6.js → chunk-xycy3c8q.js} +15 -12
  358. package/dist/{chunk-npv8q5qr.js → chunk-y01ys1vm.js} +25 -74
  359. package/dist/{chunk-spqaamnc.js → chunk-y78t50v0.js} +2 -2
  360. package/dist/chunk-y9bgt2k1.js +78 -0
  361. package/dist/{chunk-j8rw3m89.js → chunk-ydm0nfsv.js} +6 -6
  362. package/dist/{chunk-3cn070p7.js → chunk-yetebjek.js} +291 -502
  363. package/dist/chunk-ym5r3jnk.js +2007 -0
  364. package/dist/chunk-ysks0ewj.js +237 -0
  365. package/dist/chunk-yv3evkgg.js +68 -0
  366. package/dist/chunk-yw79dz62.js +164 -0
  367. package/dist/{chunk-ea18z8vr.js → chunk-yy59gvs4.js} +159 -183
  368. package/dist/{chunk-def1dc97.js → chunk-yyax4hdg.js} +10 -8
  369. package/dist/chunk-yzx3mhfd.js +110 -0
  370. package/dist/chunk-z0q85m5f.js +108 -0
  371. package/dist/chunk-z1bs6d7k.js +24 -0
  372. package/dist/chunk-z6e5jp2w.js +119 -0
  373. package/dist/chunk-z7ssqvt6.js +6886 -0
  374. package/dist/chunk-z95yxwyb.js +61 -0
  375. package/dist/{chunk-5a3cw988.js → chunk-z9aqj026.js} +5 -5
  376. package/dist/chunk-zc6dxhk9.js +169 -0
  377. package/dist/{chunk-2t3vw4tx.js → chunk-ze6zvkg6.js} +10 -10
  378. package/dist/{chunk-t0rgmccj.js → chunk-zejm280k.js} +1 -1
  379. package/dist/chunk-zfapazzd.js +37 -0
  380. package/dist/chunk-zj4fqmnc.js +219 -0
  381. package/dist/chunk-zkrpbswn.js +1608 -0
  382. package/dist/chunk-zktbb38m.js +112 -0
  383. package/dist/{chunk-2mcrd0rj.js → chunk-zptcqa7t.js} +92 -71
  384. package/dist/{chunk-a3csma98.js → chunk-zvnsjbt8.js} +1 -1
  385. package/dist/chunk-zwaanw8y.js +110 -0
  386. package/dist/{chunk-g3t0act8.js → chunk-zzm33q8x.js} +1 -1
  387. package/dist/{chunk-3gqdqmzb.js → chunk-zzzc1ead.js} +17 -12
  388. package/dist/cli.js +39 -10
  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 +25 -15
  397. package/scripts/download-ripgrep.ts +335 -0
  398. package/scripts/postinstall.cjs +319 -0
  399. package/dist/chunk-07ysf2mw.js +0 -184
  400. package/dist/chunk-0ewgfms5.js +0 -117
  401. package/dist/chunk-165b9y9k.js +0 -70
  402. package/dist/chunk-17g3drrw.js +0 -121
  403. package/dist/chunk-1jv1ckhg.js +0 -1152
  404. package/dist/chunk-1pxd1xfp.js +0 -103
  405. package/dist/chunk-1tzexy7d.js +0 -258
  406. package/dist/chunk-271zt54b.js +0 -1871
  407. package/dist/chunk-2a27tvzp.js +0 -281
  408. package/dist/chunk-2g1zxpt7.js +0 -2833
  409. package/dist/chunk-2jb48txn.js +0 -98
  410. package/dist/chunk-2kc13eta.js +0 -88
  411. package/dist/chunk-2tme3s1c.js +0 -114
  412. package/dist/chunk-4491abz9.js +0 -99
  413. package/dist/chunk-4dfmgx6h.js +0 -69
  414. package/dist/chunk-4fbyr2hm.js +0 -279
  415. package/dist/chunk-5dsvtbwb.js +0 -87
  416. package/dist/chunk-5t59fqg3.js +0 -127
  417. package/dist/chunk-60nc5bh3.js +0 -1579
  418. package/dist/chunk-6dcq96a3.js +0 -128
  419. package/dist/chunk-6tm5941a.js +0 -152
  420. package/dist/chunk-79zmgkg5.js +0 -750
  421. package/dist/chunk-7d35rxr3.js +0 -69
  422. package/dist/chunk-7enxknwt.js +0 -442
  423. package/dist/chunk-7j0wpf4m.js +0 -89
  424. package/dist/chunk-7q6pjeyp.js +0 -1493
  425. package/dist/chunk-7whgbwhx.js +0 -584
  426. package/dist/chunk-9egdc8n4.js +0 -463
  427. package/dist/chunk-9rr0wepz.js +0 -56
  428. package/dist/chunk-ajp7hmws.js +0 -422
  429. package/dist/chunk-bm1qb16p.js +0 -17
  430. package/dist/chunk-bmvzacx5.js +0 -998
  431. package/dist/chunk-bw093kge.js +0 -129
  432. package/dist/chunk-c4q9x8t2.js +0 -105
  433. package/dist/chunk-c6421kme.js +0 -54
  434. package/dist/chunk-cdajcgne.js +0 -195
  435. package/dist/chunk-ch8avrbh.js +0 -86
  436. package/dist/chunk-chkyv40s.js +0 -2642
  437. package/dist/chunk-d049dd11.js +0 -348
  438. package/dist/chunk-d7tw94h4.js +0 -114
  439. package/dist/chunk-daeav7vb.js +0 -418
  440. package/dist/chunk-dxnv8hfn.js +0 -536
  441. package/dist/chunk-dy3tzxgq.js +0 -91
  442. package/dist/chunk-exy9bnjf.js +0 -212
  443. package/dist/chunk-f1f3dmd5.js +0 -713
  444. package/dist/chunk-f7yg1atj.js +0 -47
  445. package/dist/chunk-fakajzny.js +0 -372
  446. package/dist/chunk-ftrm87vt.js +0 -467
  447. package/dist/chunk-ftsp0cj3.js +0 -105
  448. package/dist/chunk-fv7hhcns.js +0 -345
  449. package/dist/chunk-fvcwxb8x.js +0 -83
  450. package/dist/chunk-g00hs992.js +0 -90
  451. package/dist/chunk-g5fpkpeg.js +0 -520
  452. package/dist/chunk-g9qyg278.js +0 -88
  453. package/dist/chunk-gkjdjqfs.js +0 -112
  454. package/dist/chunk-gqk545se.js +0 -6107
  455. package/dist/chunk-gyj242zr.js +0 -20
  456. package/dist/chunk-gzmjp1eb.js +0 -696
  457. package/dist/chunk-hbh17tng.js +0 -1013
  458. package/dist/chunk-hdfzyzk4.js +0 -85
  459. package/dist/chunk-hdtb5jce.js +0 -101
  460. package/dist/chunk-j99mjxam.js +0 -220
  461. package/dist/chunk-jaqg0k7h.js +0 -271
  462. package/dist/chunk-jdew773m.js +0 -115
  463. package/dist/chunk-jjsx6t78.js +0 -169
  464. package/dist/chunk-jpr8js4w.js +0 -328
  465. package/dist/chunk-jx817w05.js +0 -11
  466. package/dist/chunk-k0g3jve7.js +0 -89
  467. package/dist/chunk-k1g3g183.js +0 -128
  468. package/dist/chunk-k1p54aq6.js +0 -54
  469. package/dist/chunk-kexj9c6y.js +0 -5398
  470. package/dist/chunk-kgg1gq3t.js +0 -113
  471. package/dist/chunk-kwkrek4t.js +0 -95
  472. package/dist/chunk-m4gcjpj3.js +0 -103
  473. package/dist/chunk-m6rk1r6q.js +0 -194
  474. package/dist/chunk-mb2xmb0d.js +0 -53
  475. package/dist/chunk-mv1pbf3a.js +0 -297
  476. package/dist/chunk-my7r0cca.js +0 -469
  477. package/dist/chunk-nprycdaa.js +0 -525
  478. package/dist/chunk-p2pztr2r.js +0 -104
  479. package/dist/chunk-p68nf56z.js +0 -92
  480. package/dist/chunk-p6pc9xrz.js +0 -3443
  481. package/dist/chunk-p7skftb4.js +0 -108
  482. package/dist/chunk-pa2235xc.js +0 -160
  483. package/dist/chunk-pmzbyaat.js +0 -99
  484. package/dist/chunk-pqzk7nbh.js +0 -91
  485. package/dist/chunk-pvvew193.js +0 -802
  486. package/dist/chunk-pvx0x5zm.js +0 -2057
  487. package/dist/chunk-py77warv.js +0 -66
  488. package/dist/chunk-q43gccx5.js +0 -92
  489. package/dist/chunk-rse6x10x.js +0 -89
  490. package/dist/chunk-rxdhy7ve.js +0 -131
  491. package/dist/chunk-scb48p4v.js +0 -496
  492. package/dist/chunk-sjqtqj35.js +0 -28
  493. package/dist/chunk-sq0wf7jj.js +0 -1919
  494. package/dist/chunk-sy1hkkty.js +0 -400
  495. package/dist/chunk-sy9jf9v2.js +0 -109
  496. package/dist/chunk-t2km9bn3.js +0 -87
  497. package/dist/chunk-t4afbt2j.js +0 -88
  498. package/dist/chunk-t4c5qtdc.js +0 -42
  499. package/dist/chunk-t94jxd0x.js +0 -100
  500. package/dist/chunk-tb2g2bba.js +0 -192
  501. package/dist/chunk-tdpvdzbf.js +0 -97
  502. package/dist/chunk-tf4dw2e2.js +0 -142
  503. package/dist/chunk-tp40437d.js +0 -90
  504. package/dist/chunk-vabm7x8v.js +0 -61
  505. package/dist/chunk-veaq13qy.js +0 -490
  506. package/dist/chunk-vmz3wcnv.js +0 -641
  507. package/dist/chunk-vsgv16zj.js +0 -756
  508. package/dist/chunk-vxa0avb0.js +0 -105
  509. package/dist/chunk-x14dq3v1.js +0 -722
  510. package/dist/chunk-x6bg700t.js +0 -88
  511. package/dist/chunk-x8b7vft8.js +0 -132
  512. package/dist/chunk-xmdcxa8r.js +0 -374
  513. package/dist/chunk-y42a2xmv.js +0 -1316
  514. package/dist/chunk-y56ckcf8.js +0 -44
  515. package/dist/chunk-ybgghjqa.js +0 -602
  516. package/dist/chunk-zacq47b2.js +0 -84
  517. package/dist/chunk-zv3hxg5y.js +0 -267
  518. package/dist/chunk-zw2x3xxq.js +0 -96
  519. package/dist/chunk-zyf9epwn.js +0 -642
  520. package/dist/{chunk-whvdag1y.js → chunk-3bfs3x0h.js} +9 -9
  521. package/dist/{chunk-27xc1csx.js → chunk-dggvswz1.js} +3 -3
  522. package/dist/{chunk-0wftg29n.js → chunk-f9nt10jh.js} +3 -3
@@ -0,0 +1,1072 @@
1
+ // @bun
2
+ import {
3
+ init_debug,
4
+ logForDebugging
5
+ } from "./chunk-hcgkak1j.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 dirs = ["/Applications", "~/Applications", "/System/Applications"];
180
+ const allApps = [];
181
+ for (const dir of dirs) {
182
+ const expanded = dir.startsWith("~") ? join(process.env.HOME ?? "~", dir.slice(1)) : dir;
183
+ const proc = Bun.spawn(["bash", "-c", `for f in "${expanded}"/*.app; do [ -d "$f" ] || continue; bid=$(mdls -name kMDItemCFBundleIdentifier "$f" 2>/dev/null | sed 's/.*= "//;s/"//'); name=$(basename "$f" .app); echo "$f|$name|$bid"; done`], { stdout: "pipe", stderr: "pipe" });
184
+ const text = await new Response(proc.stdout).text();
185
+ await proc.exited;
186
+ for (const line of text.split(`
187
+ `).filter(Boolean)) {
188
+ const [path, displayName, bundleId] = line.split("|", 3);
189
+ if (path && displayName && bundleId && bundleId !== "(null)") {
190
+ allApps.push({ bundleId, displayName, path });
191
+ }
192
+ }
193
+ }
194
+ const seen = new Set;
195
+ return allApps.filter((app) => {
196
+ if (seen.has(app.bundleId))
197
+ return false;
198
+ seen.add(app.bundleId);
199
+ return true;
200
+ });
201
+ } catch {
202
+ return [];
203
+ }
204
+ },
205
+ iconDataUrl(_path) {
206
+ return null;
207
+ },
208
+ listRunning() {
209
+ try {
210
+ const raw = jxaSync(`
211
+ var apps = Application("System Events").applicationProcesses.whose({backgroundOnly: false});
212
+ var result = [];
213
+ for (var i = 0; i < apps.length; i++) {
214
+ try {
215
+ var a = apps[i];
216
+ result.push({bundleId: a.bundleIdentifier(), displayName: a.name()});
217
+ } catch(e) {}
218
+ }
219
+ JSON.stringify(result);
220
+ `);
221
+ return JSON.parse(raw);
222
+ } catch {
223
+ return [];
224
+ }
225
+ },
226
+ async open(bundleId) {
227
+ await osascript(`tell application id "${bundleId}" to activate`);
228
+ },
229
+ async unhide(bundleIds) {
230
+ for (const bundleId of bundleIds) {
231
+ await osascript(`
232
+ tell application "System Events"
233
+ set visible of application process (name of application process whose bundle identifier is "${bundleId}") to true
234
+ end tell
235
+ `);
236
+ }
237
+ }
238
+ };
239
+ screenshot = {
240
+ async captureExcluding(_allowedBundleIds, _quality, _targetW, _targetH, displayId) {
241
+ const args = ["-x"];
242
+ if (displayId !== undefined)
243
+ args.push("-D", String(displayId));
244
+ return captureScreenToBase64(args);
245
+ },
246
+ async captureRegion(_allowedBundleIds, x, y, w, h, _outW, _outH, _quality, displayId) {
247
+ const args = ["-x", "-R", `${x},${y},${w},${h}`];
248
+ if (displayId !== undefined)
249
+ args.push("-D", String(displayId));
250
+ return captureScreenToBase64(args);
251
+ }
252
+ };
253
+ });
254
+
255
+ // src/utils/computerUse/win32/windowEnum.ts
256
+ var exports_windowEnum = {};
257
+ __export(exports_windowEnum, {
258
+ listWindows: () => listWindows
259
+ });
260
+ function listWindows() {
261
+ const result = Bun.spawnSync({
262
+ cmd: [
263
+ "powershell",
264
+ "-NoProfile",
265
+ "-NonInteractive",
266
+ "-Command",
267
+ ENUM_WINDOWS_PS
268
+ ],
269
+ stdout: "pipe",
270
+ stderr: "pipe"
271
+ });
272
+ const raw = new TextDecoder().decode(result.stdout).trim();
273
+ if (!raw)
274
+ return [];
275
+ return raw.split(`
276
+ `).filter(Boolean).map((line) => {
277
+ const trimmed = line.trim();
278
+ const firstPipe = trimmed.indexOf("|");
279
+ const secondPipe = trimmed.indexOf("|", firstPipe + 1);
280
+ if (firstPipe === -1 || secondPipe === -1)
281
+ return null;
282
+ const hwnd = trimmed.slice(0, firstPipe);
283
+ const pid = Number(trimmed.slice(firstPipe + 1, secondPipe));
284
+ const title = trimmed.slice(secondPipe + 1);
285
+ if (!hwnd || isNaN(pid) || !title)
286
+ return null;
287
+ return { hwnd, pid, title };
288
+ }).filter((item) => item !== null);
289
+ }
290
+ var ENUM_WINDOWS_PS = `
291
+ Add-Type @'
292
+ using System;
293
+ using System.Collections.Generic;
294
+ using System.Runtime.InteropServices;
295
+ using System.Text;
296
+ public class WinEnum {
297
+ public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
298
+
299
+ [DllImport("user32.dll")]
300
+ public static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam);
301
+ [DllImport("user32.dll")]
302
+ public static extern bool IsWindowVisible(IntPtr hWnd);
303
+ [DllImport("user32.dll", CharSet=CharSet.Unicode)]
304
+ public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
305
+ [DllImport("user32.dll")]
306
+ public static extern int GetWindowTextLength(IntPtr hWnd);
307
+ [DllImport("user32.dll")]
308
+ public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint processId);
309
+
310
+ public static List<string> results = new List<string>();
311
+
312
+ public static void Run() {
313
+ results.Clear();
314
+ EnumWindows(delegate(IntPtr hWnd, IntPtr lParam) {
315
+ if (!IsWindowVisible(hWnd)) return true;
316
+ int len = GetWindowTextLength(hWnd);
317
+ if (len == 0) return true;
318
+ StringBuilder sb = new StringBuilder(len + 1);
319
+ GetWindowText(hWnd, sb, sb.Capacity);
320
+ string title = sb.ToString();
321
+ if (string.IsNullOrWhiteSpace(title)) return true;
322
+ uint pid = 0;
323
+ GetWindowThreadProcessId(hWnd, out pid);
324
+ results.Add(hWnd.ToInt64() + "|" + pid + "|" + title);
325
+ return true;
326
+ }, IntPtr.Zero);
327
+ }
328
+ }
329
+ '@
330
+ [WinEnum]::Run()
331
+ [WinEnum]::results | ForEach-Object { $_ }
332
+ `;
333
+ var init_windowEnum = () => {};
334
+
335
+ // src/utils/computerUse/win32/windowCapture.ts
336
+ function parseCaptureOutput(raw) {
337
+ const trimmed = raw.trim();
338
+ if (!trimmed || trimmed === "NOT_FOUND" || trimmed === "INVALID_SIZE") {
339
+ return null;
340
+ }
341
+ const firstComma = trimmed.indexOf(",");
342
+ const secondComma = trimmed.indexOf(",", firstComma + 1);
343
+ if (firstComma === -1 || secondComma === -1)
344
+ return null;
345
+ const width = Number(trimmed.slice(0, firstComma));
346
+ const height = Number(trimmed.slice(firstComma + 1, secondComma));
347
+ const base64 = trimmed.slice(secondComma + 1);
348
+ if (!width || !height || !base64)
349
+ return null;
350
+ return { base64, width, height };
351
+ }
352
+ function runPs(script) {
353
+ const result = Bun.spawnSync({
354
+ cmd: ["powershell", "-NoProfile", "-NonInteractive", "-Command", script],
355
+ stdout: "pipe",
356
+ stderr: "pipe"
357
+ });
358
+ return new TextDecoder().decode(result.stdout).trim();
359
+ }
360
+ function captureWindow(title) {
361
+ const escaped = title.replace(/'/g, "''");
362
+ const script = `${CAPTURE_BY_TITLE_PS}
363
+ [WinCap]::Capture('${escaped}')`;
364
+ const raw = runPs(script);
365
+ return parseCaptureOutput(raw);
366
+ }
367
+ function captureWindowByHwnd(hwnd) {
368
+ const script = `${CAPTURE_BY_HWND_PS}
369
+ [WinCapH]::Capture([IntPtr]::new(${hwnd}))`;
370
+ const raw = runPs(script);
371
+ return parseCaptureOutput(raw);
372
+ }
373
+ var CAPTURE_BY_TITLE_PS = `
374
+ Add-Type -AssemblyName System.Drawing
375
+ Add-Type -ReferencedAssemblies System.Drawing @'
376
+ using System;
377
+ using System.Runtime.InteropServices;
378
+ using System.Drawing;
379
+ using System.Drawing.Imaging;
380
+ public class WinCap {
381
+ [DllImport("user32.dll", CharSet=CharSet.Unicode)]
382
+ public static extern IntPtr FindWindow(string c, string t);
383
+ [DllImport("user32.dll")]
384
+ public static extern bool GetWindowRect(IntPtr h, out RECT r);
385
+ [DllImport("user32.dll")]
386
+ public static extern bool PrintWindow(IntPtr h, IntPtr hdc, uint f);
387
+ [StructLayout(LayoutKind.Sequential)]
388
+ public struct RECT { public int L, T, R, B; }
389
+
390
+ public static string Capture(string title) {
391
+ IntPtr hwnd = FindWindow(null, title);
392
+ if (hwnd == IntPtr.Zero) return "NOT_FOUND";
393
+ RECT r; GetWindowRect(hwnd, out r);
394
+ int w = r.R - r.L; int h = r.B - r.T;
395
+ if (w <= 0 || h <= 0) return "INVALID_SIZE";
396
+ Bitmap bmp = new Bitmap(w, h);
397
+ Graphics g = Graphics.FromImage(bmp);
398
+ IntPtr hdc = g.GetHdc();
399
+ PrintWindow(hwnd, hdc, 2);
400
+ g.ReleaseHdc(hdc); g.Dispose();
401
+ var ms = new System.IO.MemoryStream();
402
+ bmp.Save(ms, ImageFormat.Png);
403
+ bmp.Dispose();
404
+ return w + "," + h + "," + Convert.ToBase64String(ms.ToArray());
405
+ }
406
+ }
407
+ '@
408
+ `, CAPTURE_BY_HWND_PS = `
409
+ Add-Type -AssemblyName System.Drawing
410
+ Add-Type -ReferencedAssemblies System.Drawing @'
411
+ using System;
412
+ using System.Runtime.InteropServices;
413
+ using System.Drawing;
414
+ using System.Drawing.Imaging;
415
+ public class WinCapH {
416
+ [DllImport("user32.dll")]
417
+ public static extern bool GetWindowRect(IntPtr h, out RECT r);
418
+ [DllImport("user32.dll")]
419
+ public static extern bool PrintWindow(IntPtr h, IntPtr hdc, uint f);
420
+ [DllImport("user32.dll")]
421
+ public static extern bool IsWindow(IntPtr hWnd);
422
+ [StructLayout(LayoutKind.Sequential)]
423
+ public struct RECT { public int L, T, R, B; }
424
+
425
+ public static string Capture(IntPtr hwnd) {
426
+ if (!IsWindow(hwnd)) return "NOT_FOUND";
427
+ RECT r; GetWindowRect(hwnd, out r);
428
+ int w = r.R - r.L; int h = r.B - r.T;
429
+ if (w <= 0 || h <= 0) return "INVALID_SIZE";
430
+ Bitmap bmp = new Bitmap(w, h);
431
+ Graphics g = Graphics.FromImage(bmp);
432
+ IntPtr hdc = g.GetHdc();
433
+ PrintWindow(hwnd, hdc, 2);
434
+ g.ReleaseHdc(hdc); g.Dispose();
435
+ var ms = new System.IO.MemoryStream();
436
+ bmp.Save(ms, ImageFormat.Png);
437
+ bmp.Dispose();
438
+ return w + "," + h + "," + Convert.ToBase64String(ms.ToArray());
439
+ }
440
+ }
441
+ '@
442
+ `;
443
+ var init_windowCapture = () => {};
444
+
445
+ // packages/@ant/computer-use-swift/src/backends/win32.ts
446
+ var exports_win32 = {};
447
+ __export(exports_win32, {
448
+ screenshot: () => screenshot2,
449
+ display: () => display2,
450
+ apps: () => apps2
451
+ });
452
+ function ps(script) {
453
+ const result = Bun.spawnSync({
454
+ cmd: ["powershell", "-NoProfile", "-NonInteractive", "-Command", script],
455
+ stdout: "pipe",
456
+ stderr: "pipe"
457
+ });
458
+ return new TextDecoder().decode(result.stdout).trim();
459
+ }
460
+ async function psAsync(script) {
461
+ const proc = Bun.spawn(["powershell", "-NoProfile", "-NonInteractive", "-Command", script], { stdout: "pipe", stderr: "pipe" });
462
+ const out = await new Response(proc.stdout).text();
463
+ await proc.exited;
464
+ return out.trim();
465
+ }
466
+ var display2, apps2, screenshot2;
467
+ var init_win32 = __esm(() => {
468
+ init_windowEnum();
469
+ init_windowCapture();
470
+ display2 = {
471
+ getSize(displayId) {
472
+ const all = this.listAll();
473
+ if (displayId !== undefined) {
474
+ const found = all.find((d) => d.displayId === displayId);
475
+ if (found)
476
+ return found;
477
+ }
478
+ return all[0] ?? { width: 1920, height: 1080, scaleFactor: 1, displayId: 0 };
479
+ },
480
+ listAll() {
481
+ try {
482
+ const raw = ps(`
483
+ Add-Type -AssemblyName System.Windows.Forms
484
+ $result = @()
485
+ $idx = 0
486
+ foreach ($s in [System.Windows.Forms.Screen]::AllScreens) {
487
+ $result += "$($s.Bounds.Width),$($s.Bounds.Height),$idx,$($s.Primary)"
488
+ $idx++
489
+ }
490
+ $result -join "|"
491
+ `);
492
+ return raw.split("|").filter(Boolean).map((entry) => {
493
+ const [w, h, id, primary] = entry.split(",");
494
+ return {
495
+ width: Number(w),
496
+ height: Number(h),
497
+ scaleFactor: 1,
498
+ displayId: Number(id)
499
+ };
500
+ });
501
+ } catch {
502
+ return [{ width: 1920, height: 1080, scaleFactor: 1, displayId: 0 }];
503
+ }
504
+ }
505
+ };
506
+ apps2 = {
507
+ async prepareDisplay(_allowlistBundleIds, _surrogateHost, _displayId) {
508
+ return { activated: "", hidden: [] };
509
+ },
510
+ async previewHideSet(_bundleIds, _displayId) {
511
+ return [];
512
+ },
513
+ async findWindowDisplays(bundleIds) {
514
+ return bundleIds.map((bundleId) => ({ bundleId, displayIds: [0] }));
515
+ },
516
+ async appUnderPoint(_x, _y) {
517
+ try {
518
+ const out = ps(`
519
+ Add-Type @'
520
+ using System;
521
+ using System.Runtime.InteropServices;
522
+ public class WinPt {
523
+ [StructLayout(LayoutKind.Sequential)] public struct POINT { public int X; public int Y; }
524
+ [DllImport("user32.dll")] public static extern IntPtr WindowFromPoint(POINT p);
525
+ [DllImport("user32.dll")] public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint pid);
526
+ }
527
+ '@
528
+ $pt = New-Object WinPt+POINT
529
+ $pt.X = ${_x}; $pt.Y = ${_y}
530
+ $hwnd = [WinPt]::WindowFromPoint($pt)
531
+ $pid = [uint32]0
532
+ [WinPt]::GetWindowThreadProcessId($hwnd, [ref]$pid) | Out-Null
533
+ $proc = Get-Process -Id $pid -ErrorAction SilentlyContinue
534
+ "$($proc.MainModule.FileName)|$($proc.ProcessName)"
535
+ `);
536
+ if (!out || !out.includes("|"))
537
+ return null;
538
+ const [exePath, name] = out.split("|", 2);
539
+ return { bundleId: exePath, displayName: name };
540
+ } catch {
541
+ return null;
542
+ }
543
+ },
544
+ async listInstalled() {
545
+ try {
546
+ const raw = await psAsync(`
547
+ $apps = @()
548
+ $paths = @(
549
+ 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*',
550
+ 'HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*',
551
+ 'HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'
552
+ )
553
+ foreach ($p in $paths) {
554
+ Get-ItemProperty $p -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName } | ForEach-Object {
555
+ $apps += "$($_.DisplayName)|$($_.InstallLocation)|$($_.PSChildName)"
556
+ }
557
+ }
558
+ $apps | Select-Object -Unique | Select-Object -First 200
559
+ `);
560
+ return raw.split(`
561
+ `).filter(Boolean).map((line) => {
562
+ const [name, path, id] = line.split("|", 3);
563
+ return {
564
+ bundleId: id ?? name ?? "",
565
+ displayName: name ?? "",
566
+ path: path ?? ""
567
+ };
568
+ });
569
+ } catch {
570
+ return [];
571
+ }
572
+ },
573
+ iconDataUrl(_path) {
574
+ return null;
575
+ },
576
+ listRunning() {
577
+ try {
578
+ const windows = listWindows();
579
+ return windows.map((w) => ({
580
+ bundleId: String(w.hwnd),
581
+ displayName: w.title
582
+ }));
583
+ } catch {
584
+ return [];
585
+ }
586
+ },
587
+ async open(name) {
588
+ const escaped = name.replace(/'/g, "''");
589
+ await psAsync(`
590
+ if (Test-Path '${escaped}') {
591
+ Start-Process '${escaped}'
592
+ } else {
593
+ Start-Process -FilePath '${escaped}' -ErrorAction SilentlyContinue
594
+ }`);
595
+ },
596
+ async unhide(bundleIds) {
597
+ for (const name of bundleIds) {
598
+ await psAsync(`
599
+ Add-Type @'
600
+ using System;
601
+ using System.Runtime.InteropServices;
602
+ public class WinShow {
603
+ [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, int nCmd);
604
+ [DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr hWnd);
605
+ }
606
+ '@
607
+ $proc = Get-Process -Name "${name}" -ErrorAction SilentlyContinue | Select-Object -First 1
608
+ if ($proc) { [WinShow]::ShowWindow($proc.MainWindowHandle, 9) | Out-Null; [WinShow]::SetForegroundWindow($proc.MainWindowHandle) | Out-Null }
609
+ `);
610
+ }
611
+ }
612
+ };
613
+ screenshot2 = {
614
+ async captureExcluding(_allowedBundleIds, _quality, _targetW, _targetH, displayId) {
615
+ const raw = await psAsync(`
616
+ Add-Type -AssemblyName System.Windows.Forms
617
+ Add-Type -AssemblyName System.Drawing
618
+ $screen = if (${displayId ?? -1} -ge 0) { [System.Windows.Forms.Screen]::AllScreens[${displayId ?? 0}] } else { [System.Windows.Forms.Screen]::PrimaryScreen }
619
+ $bounds = $screen.Bounds
620
+ $bmp = New-Object System.Drawing.Bitmap($bounds.Width, $bounds.Height)
621
+ $g = [System.Drawing.Graphics]::FromImage($bmp)
622
+ $g.CopyFromScreen($bounds.Location, [System.Drawing.Point]::Empty, $bounds.Size)
623
+ $g.Dispose()
624
+ $ms = New-Object System.IO.MemoryStream
625
+ $bmp.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png)
626
+ $bmp.Dispose()
627
+ $bytes = $ms.ToArray()
628
+ $ms.Dispose()
629
+ "$($bounds.Width),$($bounds.Height)," + [Convert]::ToBase64String($bytes)
630
+ `);
631
+ const firstComma = raw.indexOf(",");
632
+ const secondComma = raw.indexOf(",", firstComma + 1);
633
+ const width = Number(raw.slice(0, firstComma));
634
+ const height = Number(raw.slice(firstComma + 1, secondComma));
635
+ const base64 = raw.slice(secondComma + 1);
636
+ return { base64, width, height };
637
+ },
638
+ async captureRegion(_allowedBundleIds, x, y, w, h, _outW, _outH, _quality, _displayId) {
639
+ const raw = await psAsync(`
640
+ Add-Type -AssemblyName System.Windows.Forms
641
+ Add-Type -AssemblyName System.Drawing
642
+ $bmp = New-Object System.Drawing.Bitmap(${w}, ${h})
643
+ $g = [System.Drawing.Graphics]::FromImage($bmp)
644
+ $g.CopyFromScreen(${x}, ${y}, 0, 0, (New-Object System.Drawing.Size(${w}, ${h})))
645
+ $g.Dispose()
646
+ $ms = New-Object System.IO.MemoryStream
647
+ $bmp.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png)
648
+ $bmp.Dispose()
649
+ $bytes = $ms.ToArray()
650
+ $ms.Dispose()
651
+ "${w},${h}," + [Convert]::ToBase64String($bytes)
652
+ `);
653
+ const firstComma = raw.indexOf(",");
654
+ const secondComma = raw.indexOf(",", firstComma + 1);
655
+ const base64 = raw.slice(secondComma + 1);
656
+ return { base64, width: w, height: h };
657
+ },
658
+ captureWindowTarget(titleOrHwnd) {
659
+ if (typeof titleOrHwnd === "number") {
660
+ return captureWindowByHwnd(titleOrHwnd);
661
+ }
662
+ return captureWindow(titleOrHwnd);
663
+ }
664
+ };
665
+ });
666
+
667
+ // packages/@ant/computer-use-swift/src/backends/linux.ts
668
+ var exports_linux = {};
669
+ __export(exports_linux, {
670
+ screenshot: () => screenshot3,
671
+ display: () => display3,
672
+ apps: () => apps3
673
+ });
674
+ function run(cmd) {
675
+ const result = Bun.spawnSync({
676
+ cmd,
677
+ stdout: "pipe",
678
+ stderr: "pipe"
679
+ });
680
+ return new TextDecoder().decode(result.stdout).trim();
681
+ }
682
+ async function runAsync(cmd) {
683
+ const proc = Bun.spawn(cmd, { stdout: "pipe", stderr: "pipe" });
684
+ const out = await new Response(proc.stdout).text();
685
+ await proc.exited;
686
+ return out.trim();
687
+ }
688
+ function commandExists(name) {
689
+ const result = Bun.spawnSync({ cmd: ["which", name], stdout: "pipe", stderr: "pipe" });
690
+ return result.exitCode === 0;
691
+ }
692
+ var display3, apps3, SCREENSHOT_PATH = "/tmp/cu-screenshot.png", screenshot3;
693
+ var init_linux = __esm(() => {
694
+ display3 = {
695
+ getSize(displayId) {
696
+ const all = this.listAll();
697
+ if (displayId !== undefined) {
698
+ const found = all.find((d) => d.displayId === displayId);
699
+ if (found)
700
+ return found;
701
+ }
702
+ return all[0] ?? { width: 1920, height: 1080, scaleFactor: 1, displayId: 0 };
703
+ },
704
+ listAll() {
705
+ try {
706
+ const raw = run(["xrandr", "--query"]);
707
+ const displays = [];
708
+ let idx = 0;
709
+ const regex = /^\S+\s+connected\s+(?:primary\s+)?(\d+)x(\d+)\+\d+\+\d+/gm;
710
+ let match;
711
+ while ((match = regex.exec(raw)) !== null) {
712
+ displays.push({
713
+ width: Number(match[1]),
714
+ height: Number(match[2]),
715
+ scaleFactor: 1,
716
+ displayId: idx++
717
+ });
718
+ }
719
+ if (displays.length === 0) {
720
+ return [{ width: 1920, height: 1080, scaleFactor: 1, displayId: 0 }];
721
+ }
722
+ return displays;
723
+ } catch {
724
+ return [{ width: 1920, height: 1080, scaleFactor: 1, displayId: 0 }];
725
+ }
726
+ }
727
+ };
728
+ apps3 = {
729
+ async prepareDisplay(_allowlistBundleIds, _surrogateHost, _displayId) {
730
+ return { activated: "", hidden: [] };
731
+ },
732
+ async previewHideSet(_bundleIds, _displayId) {
733
+ return [];
734
+ },
735
+ async findWindowDisplays(bundleIds) {
736
+ return bundleIds.map((bundleId) => ({ bundleId, displayIds: [0] }));
737
+ },
738
+ async appUnderPoint(x, y) {
739
+ try {
740
+ const out = run(["xdotool", "mousemove", "--sync", String(x), String(y), "getmouselocation", "--shell"]);
741
+ const windowMatch = out.match(/WINDOW=(\d+)/);
742
+ if (!windowMatch)
743
+ return null;
744
+ const windowId = windowMatch[1];
745
+ const pidStr = run(["xdotool", "getwindowpid", windowId]);
746
+ if (!pidStr)
747
+ return null;
748
+ let exePath = "";
749
+ try {
750
+ exePath = run(["readlink", "-f", `/proc/${pidStr}/exe`]);
751
+ } catch {}
752
+ let appName = "";
753
+ try {
754
+ appName = run(["cat", `/proc/${pidStr}/comm`]);
755
+ } catch {}
756
+ if (!exePath && !appName)
757
+ return null;
758
+ return { bundleId: exePath || pidStr, displayName: appName || "unknown" };
759
+ } catch {
760
+ return null;
761
+ }
762
+ },
763
+ async listInstalled() {
764
+ try {
765
+ const dirs = ["/usr/share/applications", "/usr/local/share/applications", `${process.env.HOME}/.local/share/applications`];
766
+ const apps4 = [];
767
+ for (const dir of dirs) {
768
+ let files;
769
+ try {
770
+ files = run(["find", dir, "-name", "*.desktop", "-maxdepth", "1"]);
771
+ } catch {
772
+ continue;
773
+ }
774
+ for (const filepath of files.split(`
775
+ `).filter(Boolean)) {
776
+ try {
777
+ const content = run(["cat", filepath]);
778
+ const nameMatch = content.match(/^Name=(.+)$/m);
779
+ const execMatch = content.match(/^Exec=(.+)$/m);
780
+ const noDisplay = content.match(/^NoDisplay=true$/m);
781
+ if (noDisplay)
782
+ continue;
783
+ const name = nameMatch?.[1] ?? "";
784
+ const exec = execMatch?.[1] ?? "";
785
+ if (!name)
786
+ continue;
787
+ apps4.push({
788
+ bundleId: filepath.split("/").pop()?.replace(".desktop", "") ?? "",
789
+ displayName: name,
790
+ path: exec.split(/\s+/)[0] ?? ""
791
+ });
792
+ } catch {}
793
+ }
794
+ }
795
+ return apps4.slice(0, 200);
796
+ } catch {
797
+ return [];
798
+ }
799
+ },
800
+ iconDataUrl(_path) {
801
+ return null;
802
+ },
803
+ listRunning() {
804
+ try {
805
+ if (commandExists("wmctrl")) {
806
+ const raw2 = run(["wmctrl", "-l", "-p"]);
807
+ const apps5 = [];
808
+ for (const line of raw2.split(`
809
+ `).filter(Boolean)) {
810
+ const parts = line.split(/\s+/);
811
+ const pid = parts[2];
812
+ if (!pid || pid === "0")
813
+ continue;
814
+ let exePath = "";
815
+ try {
816
+ exePath = run(["readlink", "-f", `/proc/${pid}/exe`]);
817
+ } catch {}
818
+ let appName = "";
819
+ try {
820
+ appName = run(["cat", `/proc/${pid}/comm`]);
821
+ } catch {}
822
+ if (appName) {
823
+ apps5.push({ bundleId: exePath || pid, displayName: appName });
824
+ }
825
+ }
826
+ const seen = new Set;
827
+ return apps5.filter((a) => {
828
+ if (seen.has(a.bundleId))
829
+ return false;
830
+ seen.add(a.bundleId);
831
+ return true;
832
+ }).slice(0, 50);
833
+ }
834
+ const raw = run(["ps", "-eo", "pid,comm", "--no-headers"]);
835
+ const apps4 = [];
836
+ for (const line of raw.split(`
837
+ `).filter(Boolean).slice(0, 50)) {
838
+ const match = line.trim().match(/^(\d+)\s+(.+)$/);
839
+ if (match) {
840
+ apps4.push({ bundleId: match[1], displayName: match[2] });
841
+ }
842
+ }
843
+ return apps4;
844
+ } catch {
845
+ return [];
846
+ }
847
+ },
848
+ async open(name) {
849
+ try {
850
+ const desktopName = name.endsWith(".desktop") ? name : `${name}.desktop`;
851
+ if (commandExists("gtk-launch")) {
852
+ await runAsync(["gtk-launch", desktopName]);
853
+ return;
854
+ }
855
+ } catch {}
856
+ await runAsync(["xdg-open", name]);
857
+ },
858
+ async unhide(bundleIds) {
859
+ for (const id of bundleIds) {
860
+ try {
861
+ if (commandExists("wmctrl") && id.startsWith("0x")) {
862
+ await runAsync(["wmctrl", "-i", "-R", id]);
863
+ } else {
864
+ await runAsync(["xdotool", "search", "--name", id, "windowactivate"]);
865
+ }
866
+ } catch {}
867
+ }
868
+ }
869
+ };
870
+ screenshot3 = {
871
+ async captureExcluding(_allowedBundleIds, _quality, _targetW, _targetH, _displayId) {
872
+ try {
873
+ await runAsync(["scrot", "-o", SCREENSHOT_PATH]);
874
+ const file = Bun.file(SCREENSHOT_PATH);
875
+ const buffer = await file.arrayBuffer();
876
+ const base64 = Buffer.from(buffer).toString("base64");
877
+ const size = display3.getSize(_displayId);
878
+ return { base64, width: size.width, height: size.height };
879
+ } catch {
880
+ return { base64: "", width: 0, height: 0 };
881
+ }
882
+ },
883
+ async captureRegion(_allowedBundleIds, x, y, w, h, _outW, _outH, _quality, _displayId) {
884
+ try {
885
+ await runAsync(["scrot", "-a", `${x},${y},${w},${h}`, "-o", SCREENSHOT_PATH]);
886
+ const file = Bun.file(SCREENSHOT_PATH);
887
+ const buffer = await file.arrayBuffer();
888
+ const base64 = Buffer.from(buffer).toString("base64");
889
+ return { base64, width: w, height: h };
890
+ } catch {
891
+ return { base64: "", width: 0, height: 0 };
892
+ }
893
+ }
894
+ };
895
+ });
896
+
897
+ // packages/@ant/computer-use-swift/src/index.ts
898
+ var exports_src = {};
899
+ __export(exports_src, {
900
+ ComputerUseAPI: () => ComputerUseAPI
901
+ });
902
+ function loadBackend() {
903
+ try {
904
+ if (process.platform === "darwin") {
905
+ return init_darwin(), __toCommonJS(exports_darwin);
906
+ } else if (process.platform === "win32") {
907
+ return init_win32(), __toCommonJS(exports_win32);
908
+ } else if (process.platform === "linux") {
909
+ return init_linux(), __toCommonJS(exports_linux);
910
+ }
911
+ } catch {
912
+ return null;
913
+ }
914
+ return null;
915
+ }
916
+
917
+ class ComputerUseAPI {
918
+ apps = backend?.apps ?? {
919
+ async prepareDisplay() {
920
+ return { activated: "", hidden: [] };
921
+ },
922
+ async previewHideSet() {
923
+ return [];
924
+ },
925
+ async findWindowDisplays(ids) {
926
+ return ids.map((b) => ({ bundleId: b, displayIds: [] }));
927
+ },
928
+ async appUnderPoint() {
929
+ return null;
930
+ },
931
+ async listInstalled() {
932
+ return [];
933
+ },
934
+ iconDataUrl() {
935
+ return null;
936
+ },
937
+ listRunning() {
938
+ return [];
939
+ },
940
+ async open() {
941
+ throw new Error("@ant/computer-use-swift: macOS only");
942
+ },
943
+ async unhide() {}
944
+ };
945
+ display = backend?.display ?? {
946
+ getSize() {
947
+ throw new Error("@ant/computer-use-swift: macOS only");
948
+ },
949
+ listAll() {
950
+ throw new Error("@ant/computer-use-swift: macOS only");
951
+ }
952
+ };
953
+ screenshot = backend?.screenshot ?? {
954
+ async captureExcluding() {
955
+ throw new Error("@ant/computer-use-swift: macOS only");
956
+ },
957
+ async captureRegion() {
958
+ throw new Error("@ant/computer-use-swift: macOS only");
959
+ }
960
+ };
961
+ async resolvePrepareCapture(allowedBundleIds, _surrogateHost, quality, targetW, targetH, displayId) {
962
+ return this.screenshot.captureExcluding(allowedBundleIds, quality, targetW, targetH, displayId);
963
+ }
964
+ }
965
+ var backend;
966
+ var init_src = __esm(() => {
967
+ backend = loadBackend();
968
+ });
969
+
970
+ // src/utils/computerUse/swiftLoader.ts
971
+ function requireComputerUseSwift() {
972
+ if (cached)
973
+ return cached;
974
+ const mod = (init_src(), __toCommonJS(exports_src));
975
+ if (mod.ComputerUseAPI && typeof mod.ComputerUseAPI === "function") {
976
+ cached = new mod.ComputerUseAPI;
977
+ } else {
978
+ cached = mod;
979
+ }
980
+ return cached;
981
+ }
982
+ var cached;
983
+ var init_swiftLoader = () => {};
984
+
985
+ // src/utils/computerUse/drainRunLoop.ts
986
+ function drainTick(cu) {
987
+ cu?._drainMainRunLoop?.();
988
+ }
989
+ function retain() {
990
+ pending++;
991
+ if (pump === undefined) {
992
+ pump = setInterval(drainTick, 1, requireComputerUseSwift());
993
+ logForDebugging("[drainRunLoop] pump started", { level: "verbose" });
994
+ }
995
+ }
996
+ function release() {
997
+ pending--;
998
+ if (pending <= 0 && pump !== undefined) {
999
+ clearInterval(pump);
1000
+ pump = undefined;
1001
+ logForDebugging("[drainRunLoop] pump stopped", { level: "verbose" });
1002
+ pending = 0;
1003
+ }
1004
+ }
1005
+ function timeoutReject(reject) {
1006
+ reject(new Error(`computer-use native call exceeded ${TIMEOUT_MS}ms`));
1007
+ }
1008
+ async function drainRunLoop(fn) {
1009
+ if (process.platform !== "darwin")
1010
+ return fn();
1011
+ retain();
1012
+ let timer;
1013
+ try {
1014
+ const work = fn();
1015
+ work.catch(() => {});
1016
+ const timeout = withResolvers();
1017
+ timer = setTimeout(timeoutReject, TIMEOUT_MS, timeout.reject);
1018
+ return await Promise.race([work, timeout.promise]);
1019
+ } finally {
1020
+ clearTimeout(timer);
1021
+ release();
1022
+ }
1023
+ }
1024
+ var pump, pending = 0, TIMEOUT_MS = 30000, retainPump, releasePump;
1025
+ var init_drainRunLoop = __esm(() => {
1026
+ init_debug();
1027
+ init_withResolvers();
1028
+ init_swiftLoader();
1029
+ retainPump = retain;
1030
+ releasePump = release;
1031
+ });
1032
+
1033
+ // src/utils/computerUse/escHotkey.ts
1034
+ function registerEscHotkey(onEscape) {
1035
+ if (process.platform !== "darwin")
1036
+ return false;
1037
+ if (registered)
1038
+ return true;
1039
+ const cu = requireComputerUseSwift();
1040
+ if (!cu.hotkey?.registerEscape(onEscape)) {
1041
+ logForDebugging("[cu-esc] registerEscape returned false", { level: "warn" });
1042
+ return false;
1043
+ }
1044
+ retainPump();
1045
+ registered = true;
1046
+ logForDebugging("[cu-esc] registered");
1047
+ return true;
1048
+ }
1049
+ function unregisterEscHotkey() {
1050
+ if (!registered)
1051
+ return;
1052
+ try {
1053
+ requireComputerUseSwift().hotkey?.unregister();
1054
+ } finally {
1055
+ releasePump();
1056
+ registered = false;
1057
+ logForDebugging("[cu-esc] unregistered");
1058
+ }
1059
+ }
1060
+ function notifyExpectedEscape() {
1061
+ if (!registered)
1062
+ return;
1063
+ requireComputerUseSwift().hotkey?.notifyExpectedEscape();
1064
+ }
1065
+ var registered = false;
1066
+ var init_escHotkey = __esm(() => {
1067
+ init_debug();
1068
+ init_drainRunLoop();
1069
+ init_swiftLoader();
1070
+ });
1071
+
1072
+ export { withResolvers, init_withResolvers, listWindows, exports_windowEnum, init_windowEnum, requireComputerUseSwift, init_swiftLoader, drainRunLoop, init_drainRunLoop, registerEscHotkey, unregisterEscHotkey, notifyExpectedEscape, init_escHotkey };