@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
@@ -1,78 +1,85 @@
1
1
  // @bun
2
- import"./chunk-ghmbr193.js";
2
+ import"./chunk-9rvqx05m.js";
3
3
  import {
4
4
  cliError,
5
5
  cliOk
6
6
  } from "./chunk-z2dp53wn.js";
7
+ import {
8
+ buildDeepLinkBanner
9
+ } from "./chunk-c5vkve4j.js";
7
10
  import {
8
11
  filterExistingPaths,
9
12
  getKnownPathsForRepo,
10
13
  updateGithubRepoPathMapping
11
- } from "./chunk-vykgfhrb.js";
14
+ } from "./chunk-0svbkpfn.js";
12
15
  import {
13
16
  computeInitialTeamContext,
14
17
  createRemoteSessionConfig,
15
18
  getModelDeprecationWarning,
16
19
  getRelevantTips,
17
20
  refreshExampleCommands
18
- } from "./chunk-k48thqgp.js";
21
+ } from "./chunk-myk8saf6.js";
19
22
  import {
20
23
  processResumedConversation,
21
24
  skillChangeDetector
22
- } from "./chunk-5qbwrz8m.js";
23
- import"./chunk-vsr9mbnq.js";
24
- import"./chunk-gax0fcbx.js";
25
+ } from "./chunk-ea2f7wt3.js";
26
+ import"./chunk-wyavftcj.js";
27
+ import {
28
+ installAsciicastRecorder
29
+ } from "./chunk-s1s8qfdh.js";
25
30
  import {
26
31
  getBaseRenderOptions
27
- } from "./chunk-v399mzxk.js";
32
+ } from "./chunk-g63tgj4f.js";
28
33
  import {
29
34
  createStatsStore
30
- } from "./chunk-vqr58rfh.js";
35
+ } from "./chunk-mky388t4.js";
31
36
  import {
32
- applyConfigEnvironmentVariables,
33
- applySafeConfigEnvironmentVariables,
34
37
  onChangeAppState
35
- } from "./chunk-1rnkpxy4.js";
36
- import"./chunk-pnhs96g8.js";
37
- import"./chunk-70qb5sds.js";
38
- import"./chunk-6n2qgm9v.js";
38
+ } from "./chunk-fpe5nywt.js";
39
+ import"./chunk-6kwwke3r.js";
40
+ import"./chunk-4hv90qcz.js";
41
+ import {
42
+ seedEarlyInput,
43
+ stopCapturingEarlyInput
44
+ } from "./chunk-1erfksyp.js";
39
45
  import {
40
46
  init_setup,
41
47
  setupClaudeInChrome,
42
48
  shouldAutoEnableClaudeInChrome,
43
49
  shouldEnableClaudeInChrome
44
- } from "./chunk-3sdp7ds7.js";
50
+ } from "./chunk-vfcty2ga.js";
45
51
  import {
46
52
  init_partition,
47
53
  partition_default
48
- } from "./chunk-mzdwvbb0.js";
54
+ } from "./chunk-qs6wypj1.js";
49
55
  import {
50
56
  VALID_INSTALLABLE_SCOPES,
51
57
  VALID_UPDATE_SCOPES
52
- } from "./chunk-j9wpkwjj.js";
53
- import"./chunk-6mapphaq.js";
58
+ } from "./chunk-jwyzy83k.js";
59
+ import"./chunk-18jc5efa.js";
54
60
  import {
55
61
  init_releaseNotes,
56
62
  migrateChangelogFromConfig
57
- } from "./chunk-y18mc4m4.js";
58
- import"./chunk-8yx1trkj.js";
59
- import"./chunk-ycxwftfh.js";
60
- import"./chunk-v496te8v.js";
63
+ } from "./chunk-nbqv8ref.js";
64
+ import"./chunk-29r4exv2.js";
65
+ import"./chunk-z9jn3442.js";
66
+ import"./chunk-86f4vq6n.js";
67
+ import {
68
+ BROWSER_TOOLS,
69
+ init_src as init_src2
70
+ } from "./chunk-ym5r3jnk.js";
61
71
  import {
62
72
  init_sink,
63
73
  initializeAnalyticsGates
64
- } from "./chunk-spde0bf5.js";
65
- import {
66
- BROWSER_TOOLS,
67
- init_src
68
- } from "./chunk-gyj242zr.js";
69
- import"./chunk-x5j50p5x.js";
74
+ } from "./chunk-d14ygn80.js";
70
75
  import {
71
76
  ASK_USER_QUESTION_TOOL_NAME,
72
77
  AppStateProvider,
73
78
  CLAUDE_CODE_GUIDE_AGENT_TYPE,
74
79
  CRON_CREATE_TOOL_NAME,
75
80
  CRON_DELETE_TOOL_NAME,
81
+ CRON_LIST_TOOL_NAME,
82
+ ConfigurableShortcutHint,
76
83
  DEFAULT_BINDINGS,
77
84
  DEFAULT_MAX_AGE_DAYS,
78
85
  ENTER_PLAN_MODE_TOOL_NAME,
@@ -81,6 +88,7 @@ import {
81
88
  KeybindingSetup,
82
89
  MACOS_RESERVED,
83
90
  NON_REBINDABLE,
91
+ REMOTE_TRIGGER_TOOL_NAME,
84
92
  SKILL_TOOL_NAME,
85
93
  SandboxManager,
86
94
  Select,
@@ -89,14 +97,18 @@ import {
89
97
  acquireIdpIdToken,
90
98
  addMcpConfig,
91
99
  addToHistory,
100
+ applyConfigEnvironmentVariables,
101
+ applySafeConfigEnvironmentVariables,
92
102
  areMcpConfigsAllowedWithEnterpriseMcpConfig,
93
103
  asSessionId,
94
104
  assertMinVersion,
105
+ buildConsolidationPrompt,
95
106
  cacheSessionTitle,
96
107
  canUserConfigureAdvisor,
97
108
  checkAndDisableBypassPermissions,
98
109
  checkOutTeleportedSessionBranch,
99
110
  checkQuotaStatus,
111
+ checkRepoForRemoteAccess,
100
112
  cleanupOrphanedPluginVersionsInBackground,
101
113
  clearIdpClientSecret,
102
114
  clearIdpIdToken,
@@ -104,6 +116,7 @@ import {
104
116
  clearServerCache,
105
117
  countConcurrentSessions,
106
118
  countFilesRoundedRg,
119
+ createDefaultCloudEnvironment,
107
120
  createStore,
108
121
  createSyntheticOutputTool,
109
122
  createSystemMessage,
@@ -120,6 +133,7 @@ import {
120
133
  exports_BriefTool,
121
134
  exports_teammatePromptAddendum,
122
135
  fetchClaudeAIMcpConfigsIfEligible,
136
+ fetchEnvironments,
123
137
  filterCommandsForRemoteMode,
124
138
  filterMcpServersByPolicy,
125
139
  generateTempFilePath,
@@ -142,6 +156,7 @@ import {
142
156
  getMemoryFiles,
143
157
  getMessagesAfterCompactBoundary,
144
158
  getPluginSeedDirs,
159
+ getProjectDir,
145
160
  getProjectMcpServerStatus,
146
161
  getRemoteSessionUrl,
147
162
  getSessionIdFromLog,
@@ -159,6 +174,7 @@ import {
159
174
  init_AppState,
160
175
  init_AppStateStore,
161
176
  init_BriefTool,
177
+ init_ConfigurableShortcutHint,
162
178
  init_CustomSelect,
163
179
  init_KeybindingProviderSetup,
164
180
  init_SelectMulti,
@@ -167,7 +183,7 @@ import {
167
183
  init_advisor,
168
184
  init_allErrors,
169
185
  init_api as init_api2,
170
- init_auth1 as init_auth2,
186
+ init_auth as init_auth2,
171
187
  init_autoUpdater,
172
188
  init_bundledSkills,
173
189
  init_cacheUtils,
@@ -180,6 +196,8 @@ import {
180
196
  init_commands1 as init_commands,
181
197
  init_concurrentSessions,
182
198
  init_config as init_config3,
199
+ init_consolidationLock,
200
+ init_consolidationPrompt,
183
201
  init_constants2 as init_constants3,
184
202
  init_constants3 as init_constants4,
185
203
  init_constants5,
@@ -187,6 +205,7 @@ import {
187
205
  init_conversationRecovery,
188
206
  init_defaultBindings,
189
207
  init_effort,
208
+ init_environments,
190
209
  init_filesApi,
191
210
  init_filesystem,
192
211
  init_frontmatterParser,
@@ -200,6 +219,7 @@ import {
200
219
  init_internalLogging,
201
220
  init_loadAgentsDir,
202
221
  init_loadUserBindings,
222
+ init_managedEnv,
203
223
  init_managedPlugins,
204
224
  init_manager,
205
225
  init_mapValues,
@@ -210,10 +230,12 @@ import {
210
230
  init_pluginLoader,
211
231
  init_pluginTelemetry,
212
232
  init_policyLimits,
233
+ init_preconditions,
213
234
  init_product,
214
- init_prompt6 as init_prompt,
215
- init_prompt8 as init_prompt2,
216
- init_prompt9 as init_prompt3,
235
+ init_prompt12 as init_prompt5,
236
+ init_prompt6 as init_prompt2,
237
+ init_prompt8 as init_prompt3,
238
+ init_prompt9 as init_prompt4,
217
239
  init_promptSuggestion,
218
240
  init_remoteManagedSettings,
219
241
  init_reservedShortcuts,
@@ -257,6 +279,7 @@ import {
257
279
  loadConversationForResume,
258
280
  loadPolicyLimits,
259
281
  loadRemoteManagedSettings,
282
+ loadTranscriptFromFile,
260
283
  logContextMetrics,
261
284
  logPermissionContextForAnts,
262
285
  logPluginLoadErrors,
@@ -271,15 +294,18 @@ import {
271
294
  parseMcpConfig,
272
295
  parseMcpConfigFromFilePath,
273
296
  parsePRReference,
297
+ parseToolListFromCLI,
274
298
  prefetchAllMcpResources,
275
299
  processMessagesForTeleportResume,
276
300
  processSessionStartHooks,
277
301
  processSetupHooks,
278
302
  readClientSecret,
303
+ recordConsolidation,
279
304
  refreshPolicyLimits,
280
305
  refreshRemoteManagedSettings,
281
306
  registerBundledSkill,
282
307
  registerSession,
308
+ removeDangerousPermissions,
283
309
  saveAgentSetting,
284
310
  saveIdpClientSecret,
285
311
  saveIdpIdTokenFromJwt,
@@ -302,112 +328,98 @@ import {
302
328
  validateUuid,
303
329
  waitForPolicyLimitsToLoad,
304
330
  waitForRemoteManagedSettingsToLoad
305
- } from "./chunk-5frcqxsv.js";
306
- import"./chunk-t0rgmccj.js";
331
+ } from "./chunk-4m6k7588.js";
307
332
  import {
308
333
  getSessionIngressAuthToken,
309
334
  init_sessionIngressAuth
310
- } from "./chunk-gb2q3nvc.js";
311
- import"./chunk-neh2frnn.js";
335
+ } from "./chunk-nea2sah6.js";
336
+ import"./chunk-rs8304k5.js";
337
+ import {
338
+ initSentry,
339
+ init_sentry
340
+ } from "./chunk-1c2qp0ks.js";
312
341
  import {
313
342
  exports_teammateModeSnapshot,
314
343
  init_teammateModeSnapshot
315
- } from "./chunk-q6b51yc5.js";
316
- import {
317
- createEmptyAttributionState,
318
- init_commitAttribution
319
- } from "./chunk-gfkppe34.js";
344
+ } from "./chunk-9z4vq44b.js";
345
+ import"./chunk-zejm280k.js";
346
+ import"./chunk-4nspekjp.js";
320
347
  import {
321
348
  BASE_CHROME_PROMPT,
322
- Byline,
323
349
  CLAUDE_IN_CHROME_SKILL_HINT,
324
- ConfigurableShortcutHint,
325
- Dialog,
326
- KeyboardShortcutHint,
327
- init_Byline,
328
- init_ConfigurableShortcutHint,
329
- init_Dialog,
330
- init_KeyboardShortcutHint,
331
- init_prompt as init_prompt4
332
- } from "./chunk-kqd0e3xj.js";
350
+ init_prompt as init_prompt6
351
+ } from "./chunk-var1et7e.js";
333
352
  import"./chunk-ehtwnxpg.js";
334
- import"./chunk-3be7ka25.js";
353
+ import"./chunk-akxywws0.js";
354
+ import {
355
+ createEmptyAttributionState,
356
+ init_commitAttribution
357
+ } from "./chunk-zf47p99b.js";
358
+ import"./chunk-bxcfz5gy.js";
335
359
  import {
336
360
  DEFAULT_TASKS_MODE_TASK_LIST_ID,
361
+ TASK_STATUSES,
337
362
  init_tasks
338
- } from "./chunk-xe6z85xc.js";
363
+ } from "./chunk-1xbs4yb6.js";
339
364
  import"./chunk-2gzv8nrw.js";
340
- import {
341
- init_worktreeModeEnabled,
342
- isWorktreeModeEnabled
343
- } from "./chunk-cgfdkzhb.js";
344
- import"./chunk-bhdt6k7w.js";
345
365
  import {
346
366
  CLAUDE_IN_CHROME_MCP_SERVER_NAME,
347
367
  init_common,
348
368
  isClaudeInChromeMCPServer
349
- } from "./chunk-45kxdsp8.js";
350
- import"./chunk-5dbk24zg.js";
351
- import"./chunk-pxrffn0w.js";
369
+ } from "./chunk-8h6sdj66.js";
370
+ import {
371
+ init_worktreeModeEnabled,
372
+ isWorktreeModeEnabled
373
+ } from "./chunk-cgfdkzhb.js";
374
+ import"./chunk-6eg4c33n.js";
352
375
  import {
353
376
  init_referral,
354
377
  prefetchPassesEligibility
355
- } from "./chunk-0nt9md2b.js";
356
- import"./chunk-rn4kqfvd.js";
357
- import"./chunk-9gbamk79.js";
358
- import"./chunk-n8sjmqba.js";
359
- import"./chunk-9e2kqv5g.js";
360
- import"./chunk-g653q217.js";
361
- import {
362
- Link,
363
- SHOW_CURSOR,
364
- ThemedBox_default,
365
- ThemedText,
366
- init_dec,
367
- init_ink,
368
- init_terminal,
369
- isSynchronizedOutputSupported,
370
- require_compiler_runtime
371
- } from "./chunk-z72st5c8.js";
372
- import {
373
- init_earlyInput,
374
- seedEarlyInput,
375
- stopCapturingEarlyInput
376
- } from "./chunk-7m2nd8da.js";
378
+ } from "./chunk-2cctz9ww.js";
379
+ import"./chunk-j5bth84e.js";
380
+ import"./chunk-d0n93ge4.js";
381
+ import"./chunk-5pevjsyw.js";
382
+ import"./chunk-xnav6j8h.js";
377
383
  import"./chunk-ps49ymvj.js";
378
- import {
379
- require_jsx_dev_runtime
380
- } from "./chunk-g338npwr.js";
381
384
  import"./chunk-zk2wsm7d.js";
382
- import"./chunk-35x3tjnr.js";
383
- import"./chunk-m06q12hg.js";
385
+ import"./chunk-2t0xa4dt.js";
386
+ import"./chunk-pwr83fyy.js";
387
+ import"./chunk-hjnbg9qw.js";
388
+ import"./chunk-zsgha506.js";
389
+ import"./chunk-4jm600zv.js";
390
+ import"./chunk-xkt36p6r.js";
384
391
  import {
385
392
  fetchSession,
386
393
  init_api,
387
394
  prepareApiRequest
388
- } from "./chunk-40b8p5em.js";
395
+ } from "./chunk-585cb3h6.js";
389
396
  import {
390
397
  getTelemetryAttributes,
391
398
  init_betaSessionTracing,
392
399
  init_telemetryAttributes,
393
400
  isBetaTracingEnabled
394
- } from "./chunk-s0xfxkys.js";
395
- import"./chunk-spqaamnc.js";
396
- import"./chunk-4jm600zv.js";
397
- import"./chunk-7sb5axvf.js";
398
- import"./chunk-v9smspw2.js";
399
- import"./chunk-qz2x630m.js";
401
+ } from "./chunk-xk9pxqqx.js";
402
+ import"./chunk-mx28h61f.js";
403
+ import"./chunk-bx811wk6.js";
404
+ import"./chunk-8vnxjgz9.js";
405
+ import"./chunk-2v8cya3p.js";
406
+ import"./chunk-eyqnj23w.js";
407
+ import"./chunk-chsyvavm.js";
408
+ import"./chunk-6mpw9h55.js";
400
409
  import {
401
410
  AGENT_TOOL_NAME,
411
+ PERMISSION_MODES,
402
412
  SettingsSchema,
403
413
  checkHasTrustDialogAccepted,
404
414
  enableConfigs,
405
415
  ensureKeychainPrefetchCompleted,
406
416
  ensureMdmSettingsLoaded,
407
417
  ensureModelStringsInitialized,
418
+ exports_prompt,
408
419
  filterAllowedSdkBetas,
409
420
  getAPIProvider,
410
421
  getAnthropicApiKey,
422
+ getAutoMemPath,
411
423
  getClaudeAIOAuthTokens,
412
424
  getClaudeCodeUserAgent,
413
425
  getContextWindowForModel,
@@ -427,6 +439,7 @@ import {
427
439
  getSettings_DEPRECATED,
428
440
  getSubscriptionType,
429
441
  getUserSpecifiedModelSetting,
442
+ hasGrowthBookEnvOverride,
430
443
  hasProfileScope,
431
444
  hasSkipDangerousModePermissionPrompt,
432
445
  initJetBrainsDetection,
@@ -454,11 +467,11 @@ import {
454
467
  init_officialRegistry,
455
468
  init_paths,
456
469
  init_pickBy,
470
+ init_prompt1 as init_prompt,
457
471
  init_providers,
458
472
  init_rawRead,
459
473
  init_settings,
460
474
  init_settings1 as init_settings2,
461
- init_source,
462
475
  init_stringUtils,
463
476
  init_types,
464
477
  init_user,
@@ -495,115 +508,140 @@ import {
495
508
  resolveFastModeStatusFromCache,
496
509
  saveCurrentProjectConfig,
497
510
  saveGlobalConfig,
498
- source_default,
499
511
  startKeychainPrefetch,
500
512
  startMdmRawRead,
501
513
  updateSettingsForSource,
502
514
  validateForceLoginOrg,
503
515
  withOAuth401Retry
504
- } from "./chunk-53nbpp47.js";
516
+ } from "./chunk-zhtrjznv.js";
505
517
  import {
506
518
  init_json,
507
519
  safeParseJSON
508
- } from "./chunk-e3g8q4cn.js";
520
+ } from "./chunk-sg66v252.js";
509
521
  import {
510
522
  init_windowsPaths,
511
523
  setShellIfWindows
512
- } from "./chunk-ctw5jwcd.js";
524
+ } from "./chunk-8bwqtasa.js";
525
+ import"./chunk-j9gxwbe3.js";
513
526
  import {
514
527
  configureGlobalAgents,
515
528
  configureGlobalMTLS,
516
529
  init_mtls,
517
530
  init_proxy
518
- } from "./chunk-fw49pe3p.js";
531
+ } from "./chunk-cztjpxq4.js";
519
532
  import {
520
533
  count,
521
534
  exports_teammate,
522
535
  init_array,
523
536
  init_teammate,
524
537
  uniq
525
- } from "./chunk-0e1xsncc.js";
526
- import"./chunk-vratq94g.js";
527
- import {
528
- init_v4
529
- } from "./chunk-g0j0t6qk.js";
538
+ } from "./chunk-1cwdhk7a.js";
530
539
  import {
531
- PERMISSION_MODES
532
- } from "./chunk-6kpbgc5w.js";
533
- import"./chunk-3c25bcsw.js";
540
+ init_lazySchema,
541
+ lazySchema
542
+ } from "./chunk-64c1avct.js";
543
+ import"./chunk-8g5pe1gr.js";
534
544
  import {
535
545
  getPlatform,
536
546
  init_platform
537
- } from "./chunk-tjaqa99q.js";
547
+ } from "./chunk-gx8016vp.js";
548
+ import"./chunk-4cp6193g.js";
549
+ import {
550
+ init_v4
551
+ } from "./chunk-8g747a8x.js";
538
552
  import {
539
553
  exports_external,
540
- init_lazySchema,
541
- lazySchema,
542
554
  toJSONSchema
543
- } from "./chunk-55wgxwa9.js";
555
+ } from "./chunk-d7886r6a.js";
556
+ import"./chunk-f5ma3nh5.js";
557
+ import"./chunk-qz2x630m.js";
558
+ import"./chunk-r7j395t6.js";
559
+ import"./chunk-tv9pcdnz.js";
560
+ import"./chunk-3c25bcsw.js";
544
561
  import {
545
562
  init_bundledMode,
546
563
  isInBundledMode,
547
564
  isRunningWithBun
548
- } from "./chunk-w2z5pqd3.js";
565
+ } from "./chunk-n9ktjngj.js";
549
566
  import {
550
567
  OAUTH_BETA_HEADER,
551
568
  getOauthConfig,
552
569
  init_oauth
553
- } from "./chunk-7ymfj7m3.js";
554
- import"./chunk-f5ma3nh5.js";
555
- import"./chunk-v1kzp02e.js";
570
+ } from "./chunk-q82r31er.js";
556
571
  import"./chunk-p2816w9z.js";
557
- import"./chunk-0vkfrmqm.js";
558
- import"./chunk-0xjaqda8.js";
572
+ import"./chunk-v9smspw2.js";
573
+ import"./chunk-v1kzp02e.js";
559
574
  import {
560
575
  formatFileSize,
561
576
  init_format,
562
577
  init_startupProfiler,
563
578
  profileCheckpoint,
564
579
  profileReport
565
- } from "./chunk-1rvz0433.js";
566
- import"./chunk-cdz5yb0r.js";
580
+ } from "./chunk-64hks9ax.js";
581
+ import"./chunk-crmjpsqe.js";
582
+ import {
583
+ Byline,
584
+ Dialog,
585
+ KeyboardShortcutHint,
586
+ Link,
587
+ SHOW_CURSOR,
588
+ ThemedBox_default,
589
+ ThemedText,
590
+ init_source,
591
+ init_src,
592
+ isSynchronizedOutputSupported,
593
+ source_default
594
+ } from "./chunk-cmsknj6n.js";
595
+ import {
596
+ require_jsx_dev_runtime,
597
+ require_react
598
+ } from "./chunk-g338npwr.js";
567
599
  import {
568
600
  init_analytics,
569
601
  logEvent
570
- } from "./chunk-f2mhrmww.js";
602
+ } from "./chunk-h0rbjg6x.js";
603
+ import"./chunk-0vkfrmqm.js";
604
+ import"./chunk-0xjaqda8.js";
571
605
  import {
572
606
  detectCurrentRepository,
573
- init_detectRepository
574
- } from "./chunk-7z8j9qfn.js";
607
+ detectCurrentRepositoryWithHost,
608
+ init_detectRepository,
609
+ parseGitRemote
610
+ } from "./chunk-h1mr3371.js";
575
611
  import {
612
+ findGitRoot,
576
613
  getBranch,
577
614
  getIsGit,
615
+ getRemoteUrl,
578
616
  getWorktreeCount,
579
617
  init_diagLogs,
580
618
  init_git,
581
- init_gitFilesystem,
582
619
  logForDiagnosticsNoPII
583
- } from "./chunk-hrzerbfw.js";
584
- import"./chunk-d18z9pna.js";
620
+ } from "./chunk-36b2q5fg.js";
621
+ import"./chunk-a7rhvq9b.js";
585
622
  import"./chunk-qnfx3qtx.js";
623
+ import"./chunk-m74w3187.js";
586
624
  import {
587
- init_which,
588
- which
589
- } from "./chunk-hjhc4cpt.js";
590
- import"./chunk-vyc0rjyx.js";
591
- import {
592
- execa,
593
- init_execa
594
- } from "./chunk-hx2tr4ep.js";
625
+ getCwd,
626
+ init_cwd
627
+ } from "./chunk-b81hd3m6.js";
595
628
  import {
596
629
  init_log,
597
630
  init_privacyLevel,
598
631
  isEssentialTrafficOnly,
599
632
  logError
600
- } from "./chunk-p7g7pf3f.js";
633
+ } from "./chunk-y3r7v9pq.js";
601
634
  import"./chunk-8tnsngw2.js";
602
635
  import {
603
- getCwd,
604
- init_cwd
605
- } from "./chunk-8bedvdm1.js";
606
- import"./chunk-7wm5s02e.js";
636
+ init_which,
637
+ which
638
+ } from "./chunk-awb4vc41.js";
639
+ import"./chunk-cbrt5vsb.js";
640
+ import {
641
+ execa,
642
+ init_execa
643
+ } from "./chunk-5z28bqne.js";
644
+ import"./chunk-qajrkk97.js";
607
645
  import {
608
646
  ConfigParseError,
609
647
  TeleportOperationError,
@@ -626,7 +664,7 @@ import {
626
664
  setHasFormattedOutput,
627
665
  toError,
628
666
  writeFileSync_DEPRECATED
629
- } from "./chunk-nxsh6de2.js";
667
+ } from "./chunk-404qm8xt.js";
630
668
  import {
631
669
  init_process,
632
670
  peekForStdinData,
@@ -640,7 +678,7 @@ import {
640
678
  isInProtectedNamespace,
641
679
  isRunningOnHomespace,
642
680
  parseEnvVars
643
- } from "./chunk-3r24h7t6.js";
681
+ } from "./chunk-jaaxk89e.js";
644
682
  import {
645
683
  getInitialMainLoopModel,
646
684
  getIsNonInteractiveSession,
@@ -649,6 +687,7 @@ import {
649
687
  getSdkBetas,
650
688
  getSessionCounter,
651
689
  getSessionId,
690
+ getUserMsgOptIn,
652
691
  init_settingsCache,
653
692
  init_state,
654
693
  resetSettingsCache,
@@ -675,20 +714,26 @@ import {
675
714
  setTeleportedSessionInfo,
676
715
  setUserMsgOptIn,
677
716
  switchSession
678
- } from "./chunk-qqfa0dqg.js";
717
+ } from "./chunk-h4b85amj.js";
718
+ import"./chunk-07069jq1.js";
679
719
  import {
680
720
  init_memoize,
681
721
  memoize_default
682
- } from "./chunk-hqmz36b3.js";
722
+ } from "./chunk-vf612n57.js";
723
+ import"./chunk-d4mdda98.js";
724
+ import"./chunk-7wm5s02e.js";
683
725
  import"./chunk-4g3v8y12.js";
684
726
  import"./chunk-7739pg2c.js";
685
727
  import {
686
728
  axios_default,
687
729
  init_axios
688
- } from "./chunk-xszk7n10.js";
689
- import"./chunk-sdj9b9wh.js";
730
+ } from "./chunk-nh3cd07f.js";
731
+ import"./chunk-8pn8tvgg.js";
732
+ import"./chunk-netzwgv1.js";
690
733
  import {
691
734
  __commonJS,
735
+ __esm,
736
+ __export,
692
737
  __require,
693
738
  __toCommonJS,
694
739
  __toESM
@@ -2745,6 +2790,367 @@ var require_extra_typings = __commonJS((exports, module) => {
2745
2790
  exports.createArgument = (name, description) => new commander.Argument(name, description);
2746
2791
  });
2747
2792
 
2793
+ // src/skills/bundled/scheduleRemoteAgents.ts
2794
+ var exports_scheduleRemoteAgents = {};
2795
+ __export(exports_scheduleRemoteAgents, {
2796
+ registerScheduleRemoteAgentsSkill: () => registerScheduleRemoteAgentsSkill
2797
+ });
2798
+ function taggedIdToUUID(taggedId) {
2799
+ const prefix = "mcpsrv_";
2800
+ if (!taggedId.startsWith(prefix)) {
2801
+ return null;
2802
+ }
2803
+ const rest = taggedId.slice(prefix.length);
2804
+ const base58Data = rest.slice(2);
2805
+ let n = 0n;
2806
+ for (const c of base58Data) {
2807
+ const idx = BASE58.indexOf(c);
2808
+ if (idx === -1) {
2809
+ return null;
2810
+ }
2811
+ n = n * 58n + BigInt(idx);
2812
+ }
2813
+ const hex = n.toString(16).padStart(32, "0");
2814
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;
2815
+ }
2816
+ function getConnectedClaudeAIConnectors(mcpClients) {
2817
+ const connectors = [];
2818
+ for (const client of mcpClients) {
2819
+ if (client.type !== "connected") {
2820
+ continue;
2821
+ }
2822
+ if (client.config.type !== "claudeai-proxy") {
2823
+ continue;
2824
+ }
2825
+ const uuid = taggedIdToUUID(client.config.id);
2826
+ if (!uuid) {
2827
+ continue;
2828
+ }
2829
+ connectors.push({
2830
+ uuid,
2831
+ name: client.name,
2832
+ url: client.config.url
2833
+ });
2834
+ }
2835
+ return connectors;
2836
+ }
2837
+ function sanitizeConnectorName(name) {
2838
+ return name.replace(/^claude[.\s-]ai[.\s-]/i, "").replace(/[^a-zA-Z0-9_-]/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
2839
+ }
2840
+ function formatConnectorsInfo(connectors) {
2841
+ if (connectors.length === 0) {
2842
+ return "No connected MCP connectors found. The user may need to connect servers at https://claude.ai/settings/connectors";
2843
+ }
2844
+ const lines = ["Connected connectors (available for triggers):"];
2845
+ for (const c of connectors) {
2846
+ const safeName = sanitizeConnectorName(c.name);
2847
+ lines.push(`- ${c.name} (connector_uuid: ${c.uuid}, name: ${safeName}, url: ${c.url})`);
2848
+ }
2849
+ return lines.join(`
2850
+ `);
2851
+ }
2852
+ function formatSetupNotes(notes) {
2853
+ const items = notes.map((n) => `- ${n}`).join(`
2854
+ `);
2855
+ return `\u26A0 Heads-up:
2856
+ ${items}`;
2857
+ }
2858
+ async function getCurrentRepoHttpsUrl() {
2859
+ const remoteUrl = await getRemoteUrl();
2860
+ if (!remoteUrl) {
2861
+ return null;
2862
+ }
2863
+ const parsed = parseGitRemote(remoteUrl);
2864
+ if (!parsed) {
2865
+ return null;
2866
+ }
2867
+ return `https://${parsed.host}/${parsed.owner}/${parsed.name}`;
2868
+ }
2869
+ function buildPrompt3(opts) {
2870
+ const {
2871
+ userTimezone,
2872
+ connectorsInfo,
2873
+ gitRepoUrl,
2874
+ environmentsInfo,
2875
+ createdEnvironment,
2876
+ setupNotes,
2877
+ needsGitHubAccessReminder,
2878
+ userArgs
2879
+ } = opts;
2880
+ const setupNotesSection = userArgs && setupNotes.length > 0 ? `
2881
+ ## Setup Notes
2882
+
2883
+ ${formatSetupNotes(setupNotes)}
2884
+ ` : "";
2885
+ const initialQuestion = setupNotes.length > 0 ? `${formatSetupNotes(setupNotes)}
2886
+
2887
+ ${BASE_QUESTION}` : BASE_QUESTION;
2888
+ const firstStep = userArgs ? `The user has already told you what they want (see User Request at the bottom). Skip the initial question and go directly to the matching workflow.` : `Your FIRST action must be a single ${ASK_USER_QUESTION_TOOL_NAME} tool call (no preamble). Use this EXACT string for the \`question\` field \u2014 do not paraphrase or shorten it:
2889
+
2890
+ ${jsonStringify(initialQuestion)}
2891
+
2892
+ Set \`header: "Action"\` and offer the four actions (create/list/update/run) as options. After the user picks, follow the matching workflow below.`;
2893
+ return `# Schedule Remote Agents
2894
+
2895
+ You are helping the user schedule, update, list, or run **remote** Claude Code agents. These are NOT local cron jobs \u2014 each trigger spawns a fully isolated remote session (CCR) in Anthropic's cloud infrastructure on a cron schedule. The agent runs in a sandboxed environment with its own git checkout, tools, and optional MCP connections.
2896
+
2897
+ ## First Step
2898
+
2899
+ ${firstStep}
2900
+ ${setupNotesSection}
2901
+
2902
+ ## What You Can Do
2903
+
2904
+ Use the \`${REMOTE_TRIGGER_TOOL_NAME}\` tool (load it first with \`ToolSearch select:${REMOTE_TRIGGER_TOOL_NAME}\`; auth is handled in-process \u2014 do not use curl):
2905
+
2906
+ - \`{action: "list"}\` \u2014 list all triggers
2907
+ - \`{action: "get", trigger_id: "..."}\` \u2014 fetch one trigger
2908
+ - \`{action: "create", body: {...}}\` \u2014 create a trigger
2909
+ - \`{action: "update", trigger_id: "...", body: {...}}\` \u2014 partial update
2910
+ - \`{action: "run", trigger_id: "..."}\` \u2014 run a trigger now
2911
+
2912
+ You CANNOT delete triggers. If the user asks to delete, direct them to: https://claude.ai/code/scheduled
2913
+
2914
+ ## Create body shape
2915
+
2916
+ \`\`\`json
2917
+ {
2918
+ "name": "AGENT_NAME",
2919
+ "cron_expression": "CRON_EXPR",
2920
+ "enabled": true,
2921
+ "job_config": {
2922
+ "ccr": {
2923
+ "environment_id": "ENVIRONMENT_ID",
2924
+ "session_context": {
2925
+ "model": "claude-sonnet-4-6",
2926
+ "sources": [
2927
+ {"git_repository": {"url": "${gitRepoUrl || "https://github.com/ORG/REPO"}"}}
2928
+ ],
2929
+ "allowed_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep"]
2930
+ },
2931
+ "events": [
2932
+ {"data": {
2933
+ "uuid": "<lowercase v4 uuid>",
2934
+ "session_id": "",
2935
+ "type": "user",
2936
+ "parent_tool_use_id": null,
2937
+ "message": {"content": "PROMPT_HERE", "role": "user"}
2938
+ }}
2939
+ ]
2940
+ }
2941
+ }
2942
+ }
2943
+ \`\`\`
2944
+
2945
+ Generate a fresh lowercase UUID for \`events[].data.uuid\` yourself.
2946
+
2947
+ ## Available MCP Connectors
2948
+
2949
+ These are the user's currently connected claude.ai MCP connectors:
2950
+
2951
+ ${connectorsInfo}
2952
+
2953
+ When attaching connectors to a trigger, use the \`connector_uuid\` and \`name\` shown above (the name is already sanitized to only contain letters, numbers, hyphens, and underscores), and the connector's URL. The \`name\` field in \`mcp_connections\` must only contain \`[a-zA-Z0-9_-]\` \u2014 dots and spaces are NOT allowed.
2954
+
2955
+ **Important:** Infer what services the agent needs from the user's description. For example, if they say "check Datadog and Slack me errors," the agent needs both Datadog and Slack connectors. Cross-reference against the list above and warn if any required service isn't connected. If a needed connector is missing, direct the user to https://claude.ai/settings/connectors to connect it first.
2956
+
2957
+ ## Environments
2958
+
2959
+ Every trigger requires an \`environment_id\` in the job config. This determines where the remote agent runs. Ask the user which environment to use.
2960
+
2961
+ ${environmentsInfo}
2962
+
2963
+ Use the \`id\` value as the \`environment_id\` in \`job_config.ccr.environment_id\`.
2964
+ ${createdEnvironment ? `
2965
+ **Note:** A new environment \`${createdEnvironment.name}\` (id: \`${createdEnvironment.environment_id}\`) was just created for the user because they had none. Use this id for \`job_config.ccr.environment_id\` and mention the creation when you confirm the trigger config.
2966
+ ` : ""}
2967
+
2968
+ ## API Field Reference
2969
+
2970
+ ### Create Trigger \u2014 Required Fields
2971
+ - \`name\` (string) \u2014 A descriptive name
2972
+ - \`cron_expression\` (string) \u2014 5-field cron. **Minimum interval is 1 hour.**
2973
+ - \`job_config\` (object) \u2014 Session configuration (see structure above)
2974
+
2975
+ ### Create Trigger \u2014 Optional Fields
2976
+ - \`enabled\` (boolean, default: true)
2977
+ - \`mcp_connections\` (array) \u2014 MCP servers to attach:
2978
+ \`\`\`json
2979
+ [{"connector_uuid": "uuid", "name": "server-name", "url": "https://..."}]
2980
+ \`\`\`
2981
+
2982
+ ### Update Trigger \u2014 Optional Fields
2983
+ All fields optional (partial update):
2984
+ - \`name\`, \`cron_expression\`, \`enabled\`, \`job_config\`
2985
+ - \`mcp_connections\` \u2014 Replace MCP connections
2986
+ - \`clear_mcp_connections\` (boolean) \u2014 Remove all MCP connections
2987
+
2988
+ ### Cron Expression Examples
2989
+
2990
+ The user's local timezone is **${userTimezone}**. Cron expressions are always in UTC. When the user says a local time, convert it to UTC for the cron expression but confirm with them: "9am ${userTimezone} = Xam UTC, so the cron would be \`0 X * * 1-5\`."
2991
+
2992
+ - \`0 9 * * 1-5\` \u2014 Every weekday at 9am **UTC**
2993
+ - \`0 */2 * * *\` \u2014 Every 2 hours
2994
+ - \`0 0 * * *\` \u2014 Daily at midnight **UTC**
2995
+ - \`30 14 * * 1\` \u2014 Every Monday at 2:30pm **UTC**
2996
+ - \`0 8 1 * *\` \u2014 First of every month at 8am **UTC**
2997
+
2998
+ Minimum interval is 1 hour. \`*/30 * * * *\` will be rejected.
2999
+
3000
+ ## Workflow
3001
+
3002
+ ### CREATE a new trigger:
3003
+
3004
+ 1. **Understand the goal** \u2014 Ask what they want the remote agent to do. What repo(s)? What task? Remind them that the agent runs remotely \u2014 it won't have access to their local machine, local files, or local environment variables.
3005
+ 2. **Craft the prompt** \u2014 Help them write an effective agent prompt. Good prompts are:
3006
+ - Specific about what to do and what success looks like
3007
+ - Clear about which files/areas to focus on
3008
+ - Explicit about what actions to take (open PRs, commit, just analyze, etc.)
3009
+ 3. **Set the schedule** \u2014 Ask when and how often. The user's timezone is ${userTimezone}. When they say a time (e.g., "every morning at 9am"), assume they mean their local time and convert to UTC for the cron expression. Always confirm the conversion: "9am ${userTimezone} = Xam UTC."
3010
+ 4. **Choose the model** \u2014 Default to \`claude-sonnet-4-6\`. Tell the user which model you're defaulting to and ask if they want a different one.
3011
+ 5. **Validate connections** \u2014 Infer what services the agent will need from the user's description. For example, if they say "check Datadog and Slack me errors," the agent needs both Datadog and Slack MCP connectors. Cross-reference with the connectors list above. If any are missing, warn the user and link them to https://claude.ai/settings/connectors to connect first.${gitRepoUrl ? ` The default git repo is already set to \`${gitRepoUrl}\`. Ask the user if this is the right repo or if they need a different one.` : " Ask which git repos the remote agent needs cloned into its environment."}
3012
+ 6. **Review and confirm** \u2014 Show the full configuration before creating. Let them adjust.
3013
+ 7. **Create it** \u2014 Call \`${REMOTE_TRIGGER_TOOL_NAME}\` with \`action: "create"\` and show the result. The response includes the trigger ID. Always output a link at the end: \`https://claude.ai/code/scheduled/{TRIGGER_ID}\`
3014
+
3015
+ ### UPDATE a trigger:
3016
+
3017
+ 1. List triggers first so they can pick one
3018
+ 2. Ask what they want to change
3019
+ 3. Show current vs proposed value
3020
+ 4. Confirm and update
3021
+
3022
+ ### LIST triggers:
3023
+
3024
+ 1. Fetch and display in a readable format
3025
+ 2. Show: name, schedule (human-readable), enabled/disabled, next run, repo(s)
3026
+
3027
+ ### RUN NOW:
3028
+
3029
+ 1. List triggers if they haven't specified which one
3030
+ 2. Confirm which trigger
3031
+ 3. Execute and confirm
3032
+
3033
+ ## Important Notes
3034
+
3035
+ - These are REMOTE agents \u2014 they run in Anthropic's cloud, not on the user's machine. They cannot access local files, local services, or local environment variables.
3036
+ - Always convert cron to human-readable when displaying
3037
+ - Default to \`enabled: true\` unless user says otherwise
3038
+ - Accept GitHub URLs in any format (https://github.com/org/repo, org/repo, etc.) and normalize to the full HTTPS URL (without .git suffix)
3039
+ - The prompt is the most important part \u2014 spend time getting it right. The remote agent starts with zero context, so the prompt must be self-contained.
3040
+ - To delete a trigger, direct users to https://claude.ai/code/scheduled
3041
+ ${needsGitHubAccessReminder ? `- If the user's request seems to require GitHub repo access (e.g. cloning a repo, opening PRs, reading code), remind them that ${getFeatureValue_CACHED_MAY_BE_STALE("tengu_cobalt_lantern", false) ? "they should run /web-setup to connect their GitHub account (or install the Claude GitHub App on the repo as an alternative) \u2014 otherwise the remote agent won't be able to access it" : "they need the Claude GitHub App installed on the repo \u2014 otherwise the remote agent won't be able to access it"}.` : ""}
3042
+ ${userArgs ? `
3043
+ ## User Request
3044
+
3045
+ The user said: "${userArgs}"
3046
+
3047
+ Start by understanding their intent and working through the appropriate workflow above.` : ""}`;
3048
+ }
3049
+ function registerScheduleRemoteAgentsSkill() {
3050
+ registerBundledSkill({
3051
+ name: "schedule",
3052
+ description: "Create, update, list, or run scheduled remote agents (triggers) that execute on a cron schedule.",
3053
+ whenToUse: "When the user wants to schedule a recurring remote agent, set up automated tasks, create a cron job for Claude Code, or manage their scheduled agents/triggers.",
3054
+ userInvocable: true,
3055
+ isEnabled: () => getFeatureValue_CACHED_MAY_BE_STALE("tengu_surreal_dali", false) && isPolicyAllowed("allow_remote_sessions"),
3056
+ allowedTools: [REMOTE_TRIGGER_TOOL_NAME, ASK_USER_QUESTION_TOOL_NAME],
3057
+ async getPromptForCommand(args, context) {
3058
+ if (!getClaudeAIOAuthTokens()?.accessToken) {
3059
+ return [
3060
+ {
3061
+ type: "text",
3062
+ text: "You need to authenticate with a claude.ai account first. API accounts are not supported. Run /login, then try /schedule again."
3063
+ }
3064
+ ];
3065
+ }
3066
+ let environments;
3067
+ try {
3068
+ environments = await fetchEnvironments();
3069
+ } catch (err) {
3070
+ logForDebugging(`[schedule] Failed to fetch environments: ${err}`, {
3071
+ level: "warn"
3072
+ });
3073
+ return [
3074
+ {
3075
+ type: "text",
3076
+ text: "We're having trouble connecting with your remote claude.ai account to set up a scheduled task. Please try /schedule again in a few minutes."
3077
+ }
3078
+ ];
3079
+ }
3080
+ let createdEnvironment = null;
3081
+ if (environments.length === 0) {
3082
+ try {
3083
+ createdEnvironment = await createDefaultCloudEnvironment("claude-code-default");
3084
+ environments = [createdEnvironment];
3085
+ } catch (err) {
3086
+ logForDebugging(`[schedule] Failed to create environment: ${err}`, {
3087
+ level: "warn"
3088
+ });
3089
+ return [
3090
+ {
3091
+ type: "text",
3092
+ text: "No remote environments found, and we could not create one automatically. Visit https://claude.ai/code to set one up, then run /schedule again."
3093
+ }
3094
+ ];
3095
+ }
3096
+ }
3097
+ const setupNotes = [];
3098
+ let needsGitHubAccessReminder = false;
3099
+ const repo = await detectCurrentRepositoryWithHost();
3100
+ if (repo === null) {
3101
+ setupNotes.push(`Not in a git repo \u2014 you'll need to specify a repo URL manually (or skip repos entirely).`);
3102
+ } else if (repo.host === "github.com") {
3103
+ const { hasAccess } = await checkRepoForRemoteAccess(repo.owner, repo.name);
3104
+ if (!hasAccess) {
3105
+ needsGitHubAccessReminder = true;
3106
+ const webSetupEnabled = getFeatureValue_CACHED_MAY_BE_STALE("tengu_cobalt_lantern", false);
3107
+ const msg = webSetupEnabled ? `GitHub not connected for ${repo.owner}/${repo.name} \u2014 run /web-setup to sync your GitHub credentials, or install the Claude GitHub App at https://claude.ai/code/onboarding?magic=github-app-setup.` : `Claude GitHub App not installed on ${repo.owner}/${repo.name} \u2014 install at https://claude.ai/code/onboarding?magic=github-app-setup if your trigger needs this repo.`;
3108
+ setupNotes.push(msg);
3109
+ }
3110
+ }
3111
+ const connectors = getConnectedClaudeAIConnectors(context.options.mcpClients);
3112
+ if (connectors.length === 0) {
3113
+ setupNotes.push(`No MCP connectors \u2014 connect at https://claude.ai/settings/connectors if needed.`);
3114
+ }
3115
+ const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
3116
+ const connectorsInfo = formatConnectorsInfo(connectors);
3117
+ const gitRepoUrl = await getCurrentRepoHttpsUrl();
3118
+ const lines = ["Available environments:"];
3119
+ for (const env of environments) {
3120
+ lines.push(`- ${env.name} (id: ${env.environment_id}, kind: ${env.kind})`);
3121
+ }
3122
+ const environmentsInfo = lines.join(`
3123
+ `);
3124
+ const prompt = buildPrompt3({
3125
+ userTimezone,
3126
+ connectorsInfo,
3127
+ gitRepoUrl,
3128
+ environmentsInfo,
3129
+ createdEnvironment,
3130
+ setupNotes,
3131
+ needsGitHubAccessReminder,
3132
+ userArgs: args
3133
+ });
3134
+ return [{ type: "text", text: prompt }];
3135
+ }
3136
+ });
3137
+ }
3138
+ var BASE58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", BASE_QUESTION = "What would you like to do with scheduled remote agents?";
3139
+ var init_scheduleRemoteAgents = __esm(() => {
3140
+ init_growthbook();
3141
+ init_policyLimits();
3142
+ init_prompt3();
3143
+ init_prompt5();
3144
+ init_auth();
3145
+ init_preconditions();
3146
+ init_debug();
3147
+ init_detectRepository();
3148
+ init_git();
3149
+ init_slowOperations();
3150
+ init_environments();
3151
+ init_bundledSkills();
3152
+ });
3153
+
2748
3154
  // src/main.tsx
2749
3155
  init_startupProfiler();
2750
3156
  init_rawRead();
@@ -2853,12 +3259,14 @@ init_envDynamic();
2853
3259
  init_envUtils();
2854
3260
  init_errors();
2855
3261
  init_gracefulShutdown();
3262
+ init_managedEnv();
2856
3263
  init_mtls();
2857
3264
  init_filesystem();
2858
3265
  init_proxy();
2859
3266
  init_betaSessionTracing();
2860
3267
  init_telemetryAttributes();
2861
3268
  init_windowsPaths();
3269
+ init_sentry();
2862
3270
  var telemetryInitialized = false;
2863
3271
  var init = memoize_default(async () => {
2864
3272
  const initStartTime = Date.now();
@@ -2881,8 +3289,8 @@ var init = memoize_default(async () => {
2881
3289
  setupGracefulShutdown();
2882
3290
  profileCheckpoint("init_after_graceful_shutdown");
2883
3291
  Promise.all([
2884
- import("./chunk-wf4q1xj3.js"),
2885
- import("./chunk-4qv4z794.js")
3292
+ import("./chunk-84nf3k34.js"),
3293
+ import("./chunk-m32mdkts.js")
2886
3294
  ]).then(([fp, gb]) => {
2887
3295
  fp.initialize1PEventLogging();
2888
3296
  gb.onGrowthBookRefresh(() => {
@@ -2918,11 +3326,12 @@ var init = memoize_default(async () => {
2918
3326
  });
2919
3327
  logForDebugging("[init] configureGlobalAgents complete");
2920
3328
  profileCheckpoint("init_network_configured");
3329
+ initSentry();
2921
3330
  preconnectAnthropicApi();
2922
3331
  if (isEnvTruthy(process.env.CLAUDE_CODE_REMOTE)) {
2923
3332
  try {
2924
- const { initUpstreamProxy, getUpstreamProxyEnv } = await import("./chunk-99t8enmg.js");
2925
- const { registerUpstreamProxyEnvFn } = await import("./chunk-v1mgv1et.js");
3333
+ const { initUpstreamProxy, getUpstreamProxyEnv } = await import("./chunk-re3crc6t.js");
3334
+ const { registerUpstreamProxyEnvFn } = await import("./chunk-6p4cyhb3.js");
2926
3335
  registerUpstreamProxyEnvFn(getUpstreamProxyEnv);
2927
3336
  await initUpstreamProxy();
2928
3337
  } catch (err) {
@@ -2932,7 +3341,7 @@ var init = memoize_default(async () => {
2932
3341
  setShellIfWindows();
2933
3342
  registerCleanup(shutdownLspServerManager);
2934
3343
  registerCleanup(async () => {
2935
- const { cleanupSessionTeams } = await import("./chunk-kkkneeg1.js");
3344
+ const { cleanupSessionTeams } = await import("./chunk-gay98970.js");
2936
3345
  await cleanupSessionTeams();
2937
3346
  });
2938
3347
  if (isScratchpadEnabled()) {
@@ -2954,7 +3363,7 @@ var init = memoize_default(async () => {
2954
3363
  gracefulShutdownSync(1);
2955
3364
  return;
2956
3365
  }
2957
- return import("./chunk-e64spn53.js").then((m) => m.showInvalidConfigDialog({ error }));
3366
+ return import("./chunk-9pq45ycx.js").then((m) => m.showInvalidConfigDialog({ error }));
2958
3367
  } else {
2959
3368
  throw error;
2960
3369
  }
@@ -2994,7 +3403,7 @@ async function doInitializeTelemetry() {
2994
3403
  }
2995
3404
  }
2996
3405
  async function setMeterState() {
2997
- const { initializeTelemetry } = await import("./chunk-45m062tx.js");
3406
+ const { initializeTelemetry } = await import("./chunk-q387p8pp.js");
2998
3407
  const meter = await initializeTelemetry();
2999
3408
  if (meter) {
3000
3409
  const createAttributedCounter = (name, options) => {
@@ -3021,12 +3430,8 @@ init_history();
3021
3430
  // src/replLauncher.tsx
3022
3431
  var jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
3023
3432
  async function launchRepl(root, appProps, replProps, renderAndRun) {
3024
- const {
3025
- App
3026
- } = await import("./chunk-gjdwtdch.js");
3027
- const {
3028
- REPL
3029
- } = await import("./chunk-hr719wjg.js");
3433
+ const { App } = await import("./chunk-d5qggsbm.js");
3434
+ const { REPL } = await import("./chunk-m7s7j422.js");
3030
3435
  await renderAndRun(root, /* @__PURE__ */ jsx_dev_runtime.jsxDEV(App, {
3031
3436
  ...appProps,
3032
3437
  children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(REPL, {
@@ -3152,9 +3557,9 @@ init_agentSwarmsEnabled();
3152
3557
  init_array();
3153
3558
  init_auth();
3154
3559
  init_config2();
3155
- init_earlyInput();
3156
3560
  init_effort();
3157
3561
  init_fastMode();
3562
+ init_managedEnv();
3158
3563
  init_messages();
3159
3564
  init_platform();
3160
3565
  init_sessionIngressAuth();
@@ -3216,10 +3621,9 @@ init_worktreeModeEnabled();
3216
3621
  init_config();
3217
3622
  init_growthbook();
3218
3623
  init_analytics();
3219
- init_sink();
3220
3624
  init_state();
3221
3625
  init_commands();
3222
- import { resolve } from "path";
3626
+ import { relative, resolve } from "path";
3223
3627
 
3224
3628
  // src/interactiveHelpers.tsx
3225
3629
  init_analytics();
@@ -3227,7 +3631,7 @@ init_gracefulShutdown();
3227
3631
  init_state();
3228
3632
  import { appendFileSync } from "fs";
3229
3633
  init_context2();
3230
- init_terminal();
3634
+ init_src();
3231
3635
  init_KeybindingProviderSetup();
3232
3636
  init_growthbook();
3233
3637
  init_grove();
@@ -3236,324 +3640,189 @@ init_grove();
3236
3640
  init_analytics();
3237
3641
  init_settings2();
3238
3642
  init_CustomSelect();
3239
- init_Dialog();
3240
- var import_compiler_runtime2 = __toESM(require_compiler_runtime(), 1);
3643
+ init_src();
3241
3644
 
3242
3645
  // src/components/MCPServerDialogCopy.tsx
3243
- init_ink();
3244
- var import_compiler_runtime = __toESM(require_compiler_runtime(), 1);
3646
+ init_src();
3245
3647
  var jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
3246
3648
  function MCPServerDialogCopy() {
3247
- const $ = import_compiler_runtime.c(1);
3248
- let t0;
3249
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
3250
- t0 = /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
3251
- children: [
3252
- "MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the",
3253
- " ",
3254
- /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Link, {
3255
- url: "https://code.claude.com/docs/en/mcp",
3256
- children: "MCP documentation"
3257
- }, undefined, false, undefined, this),
3258
- "."
3259
- ]
3260
- }, undefined, true, undefined, this);
3261
- $[0] = t0;
3262
- } else {
3263
- t0 = $[0];
3264
- }
3265
- return t0;
3649
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
3650
+ children: [
3651
+ "MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the",
3652
+ " ",
3653
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Link, {
3654
+ url: "https://code.claude.com/docs/en/mcp",
3655
+ children: "MCP documentation"
3656
+ }, undefined, false, undefined, this),
3657
+ "."
3658
+ ]
3659
+ }, undefined, true, undefined, this);
3266
3660
  }
3267
3661
 
3268
3662
  // src/components/MCPServerApprovalDialog.tsx
3269
3663
  var jsx_dev_runtime3 = __toESM(require_jsx_dev_runtime(), 1);
3270
- function MCPServerApprovalDialog(t0) {
3271
- const $ = import_compiler_runtime2.c(13);
3272
- const {
3273
- serverName,
3274
- onDone
3275
- } = t0;
3276
- let t1;
3277
- if ($[0] !== onDone || $[1] !== serverName) {
3278
- t1 = function onChange2(value) {
3279
- logEvent("tengu_mcp_dialog_choice", {
3280
- choice: value
3281
- });
3282
- bb2:
3283
- switch (value) {
3284
- case "yes":
3285
- case "yes_all": {
3286
- const currentSettings_0 = getSettings_DEPRECATED() || {};
3287
- const enabledServers = currentSettings_0.enabledMcpjsonServers || [];
3288
- if (!enabledServers.includes(serverName)) {
3289
- updateSettingsForSource("localSettings", {
3290
- enabledMcpjsonServers: [...enabledServers, serverName]
3291
- });
3292
- }
3293
- if (value === "yes_all") {
3294
- updateSettingsForSource("localSettings", {
3295
- enableAllProjectMcpServers: true
3296
- });
3297
- }
3298
- onDone();
3299
- break bb2;
3300
- }
3301
- case "no": {
3302
- const currentSettings = getSettings_DEPRECATED() || {};
3303
- const disabledServers = currentSettings.disabledMcpjsonServers || [];
3304
- if (!disabledServers.includes(serverName)) {
3305
- updateSettingsForSource("localSettings", {
3306
- disabledMcpjsonServers: [...disabledServers, serverName]
3307
- });
3308
- }
3309
- onDone();
3310
- }
3664
+ function MCPServerApprovalDialog({
3665
+ serverName,
3666
+ onDone
3667
+ }) {
3668
+ function onChange(value) {
3669
+ logEvent("tengu_mcp_dialog_choice", {
3670
+ choice: value
3671
+ });
3672
+ switch (value) {
3673
+ case "yes":
3674
+ case "yes_all": {
3675
+ const currentSettings = getSettings_DEPRECATED() || {};
3676
+ const enabledServers = currentSettings.enabledMcpjsonServers || [];
3677
+ if (!enabledServers.includes(serverName)) {
3678
+ updateSettingsForSource("localSettings", {
3679
+ enabledMcpjsonServers: [...enabledServers, serverName]
3680
+ });
3311
3681
  }
3312
- };
3313
- $[0] = onDone;
3314
- $[1] = serverName;
3315
- $[2] = t1;
3316
- } else {
3317
- t1 = $[2];
3318
- }
3319
- const onChange = t1;
3320
- const t2 = `New MCP server found in .mcp.json: ${serverName}`;
3321
- let t3;
3322
- if ($[3] !== onChange) {
3323
- t3 = () => onChange("no");
3324
- $[3] = onChange;
3325
- $[4] = t3;
3326
- } else {
3327
- t3 = $[4];
3328
- }
3329
- let t4;
3330
- if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
3331
- t4 = /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(MCPServerDialogCopy, {}, undefined, false, undefined, this);
3332
- $[5] = t4;
3333
- } else {
3334
- t4 = $[5];
3335
- }
3336
- let t5;
3337
- if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
3338
- t5 = [{
3339
- label: "Use this and all future MCP servers in this project",
3340
- value: "yes_all"
3341
- }, {
3342
- label: "Use this MCP server",
3343
- value: "yes"
3344
- }, {
3345
- label: "Continue without using this MCP server",
3346
- value: "no"
3347
- }];
3348
- $[6] = t5;
3349
- } else {
3350
- t5 = $[6];
3351
- }
3352
- let t6;
3353
- if ($[7] !== onChange) {
3354
- t6 = /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Select, {
3355
- options: t5,
3356
- onChange: (value_0) => onChange(value_0),
3357
- onCancel: () => onChange("no")
3358
- }, undefined, false, undefined, this);
3359
- $[7] = onChange;
3360
- $[8] = t6;
3361
- } else {
3362
- t6 = $[8];
3363
- }
3364
- let t7;
3365
- if ($[9] !== t2 || $[10] !== t3 || $[11] !== t6) {
3366
- t7 = /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Dialog, {
3367
- title: t2,
3368
- color: "warning",
3369
- onCancel: t3,
3370
- children: [
3371
- t4,
3372
- t6
3373
- ]
3374
- }, undefined, true, undefined, this);
3375
- $[9] = t2;
3376
- $[10] = t3;
3377
- $[11] = t6;
3378
- $[12] = t7;
3379
- } else {
3380
- t7 = $[12];
3682
+ if (value === "yes_all") {
3683
+ updateSettingsForSource("localSettings", {
3684
+ enableAllProjectMcpServers: true
3685
+ });
3686
+ }
3687
+ onDone();
3688
+ break;
3689
+ }
3690
+ case "no": {
3691
+ const currentSettings = getSettings_DEPRECATED() || {};
3692
+ const disabledServers = currentSettings.disabledMcpjsonServers || [];
3693
+ if (!disabledServers.includes(serverName)) {
3694
+ updateSettingsForSource("localSettings", {
3695
+ disabledMcpjsonServers: [...disabledServers, serverName]
3696
+ });
3697
+ }
3698
+ onDone();
3699
+ break;
3700
+ }
3701
+ }
3381
3702
  }
3382
- return t7;
3703
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Dialog, {
3704
+ title: `New MCP server found in .mcp.json: ${serverName}`,
3705
+ color: "warning",
3706
+ onCancel: () => onChange("no"),
3707
+ children: [
3708
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(MCPServerDialogCopy, {}, undefined, false, undefined, this),
3709
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Select, {
3710
+ options: [
3711
+ {
3712
+ label: `Use this and all future MCP servers in this project`,
3713
+ value: "yes_all"
3714
+ },
3715
+ { label: `Use this MCP server`, value: "yes" },
3716
+ { label: `Continue without using this MCP server`, value: "no" }
3717
+ ],
3718
+ onChange: (value) => onChange(value),
3719
+ onCancel: () => onChange("no")
3720
+ }, undefined, false, undefined, this)
3721
+ ]
3722
+ }, undefined, true, undefined, this);
3383
3723
  }
3384
3724
 
3385
3725
  // src/components/MCPServerMultiselectDialog.tsx
3386
3726
  init_partition();
3387
3727
  init_analytics();
3388
- init_ink();
3728
+ init_src();
3389
3729
  init_settings2();
3390
3730
  init_ConfigurableShortcutHint();
3391
3731
  init_SelectMulti();
3392
- init_Byline();
3393
- init_Dialog();
3394
- init_KeyboardShortcutHint();
3395
- var import_compiler_runtime3 = __toESM(require_compiler_runtime(), 1);
3732
+ init_src();
3733
+ var import_react = __toESM(require_react(), 1);
3396
3734
  var jsx_dev_runtime4 = __toESM(require_jsx_dev_runtime(), 1);
3397
- function MCPServerMultiselectDialog(t0) {
3398
- const $ = import_compiler_runtime3.c(21);
3399
- const {
3400
- serverNames,
3401
- onDone
3402
- } = t0;
3403
- let t1;
3404
- if ($[0] !== onDone || $[1] !== serverNames) {
3405
- t1 = function onSubmit2(selectedServers) {
3406
- const currentSettings = getSettings_DEPRECATED() || {};
3407
- const enabledServers = currentSettings.enabledMcpjsonServers || [];
3408
- const disabledServers = currentSettings.disabledMcpjsonServers || [];
3409
- const [approvedServers, rejectedServers] = partition_default(serverNames, (server) => selectedServers.includes(server));
3410
- logEvent("tengu_mcp_multidialog_choice", {
3411
- approved: approvedServers.length,
3412
- rejected: rejectedServers.length
3735
+ function MCPServerMultiselectDialog({
3736
+ serverNames,
3737
+ onDone
3738
+ }) {
3739
+ function onSubmit(selectedServers) {
3740
+ const currentSettings = getSettings_DEPRECATED() || {};
3741
+ const enabledServers = currentSettings.enabledMcpjsonServers || [];
3742
+ const disabledServers = currentSettings.disabledMcpjsonServers || [];
3743
+ const [approvedServers, rejectedServers] = partition_default(serverNames, (server) => selectedServers.includes(server));
3744
+ logEvent("tengu_mcp_multidialog_choice", {
3745
+ approved: approvedServers.length,
3746
+ rejected: rejectedServers.length
3747
+ });
3748
+ if (approvedServers.length > 0) {
3749
+ const newEnabledServers = [
3750
+ ...new Set([...enabledServers, ...approvedServers])
3751
+ ];
3752
+ updateSettingsForSource("localSettings", {
3753
+ enabledMcpjsonServers: newEnabledServers
3413
3754
  });
3414
- if (approvedServers.length > 0) {
3415
- const newEnabledServers = [...new Set([...enabledServers, ...approvedServers])];
3416
- updateSettingsForSource("localSettings", {
3417
- enabledMcpjsonServers: newEnabledServers
3418
- });
3419
- }
3420
- if (rejectedServers.length > 0) {
3421
- const newDisabledServers = [...new Set([...disabledServers, ...rejectedServers])];
3422
- updateSettingsForSource("localSettings", {
3423
- disabledMcpjsonServers: newDisabledServers
3424
- });
3425
- }
3426
- onDone();
3427
- };
3428
- $[0] = onDone;
3429
- $[1] = serverNames;
3430
- $[2] = t1;
3431
- } else {
3432
- t1 = $[2];
3433
- }
3434
- const onSubmit = t1;
3435
- let t2;
3436
- if ($[3] !== onDone || $[4] !== serverNames) {
3437
- t2 = () => {
3438
- const currentSettings_0 = getSettings_DEPRECATED() || {};
3439
- const disabledServers_0 = currentSettings_0.disabledMcpjsonServers || [];
3440
- const newDisabledServers_0 = [...new Set([...disabledServers_0, ...serverNames])];
3755
+ }
3756
+ if (rejectedServers.length > 0) {
3757
+ const newDisabledServers = [
3758
+ ...new Set([...disabledServers, ...rejectedServers])
3759
+ ];
3441
3760
  updateSettingsForSource("localSettings", {
3442
- disabledMcpjsonServers: newDisabledServers_0
3761
+ disabledMcpjsonServers: newDisabledServers
3443
3762
  });
3444
- onDone();
3445
- };
3446
- $[3] = onDone;
3447
- $[4] = serverNames;
3448
- $[5] = t2;
3449
- } else {
3450
- t2 = $[5];
3451
- }
3452
- const handleEscRejectAll = t2;
3453
- const t3 = `${serverNames.length} new MCP servers found in .mcp.json`;
3454
- let t4;
3455
- if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
3456
- t4 = /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(MCPServerDialogCopy, {}, undefined, false, undefined, this);
3457
- $[6] = t4;
3458
- } else {
3459
- t4 = $[6];
3763
+ }
3764
+ onDone();
3460
3765
  }
3461
- let t5;
3462
- if ($[7] !== serverNames) {
3463
- t5 = serverNames.map(_temp);
3464
- $[7] = serverNames;
3465
- $[8] = t5;
3466
- } else {
3467
- t5 = $[8];
3468
- }
3469
- let t6;
3470
- if ($[9] !== handleEscRejectAll || $[10] !== onSubmit || $[11] !== serverNames || $[12] !== t5) {
3471
- t6 = /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(SelectMulti, {
3472
- options: t5,
3473
- defaultValue: serverNames,
3474
- onSubmit,
3475
- onCancel: handleEscRejectAll,
3476
- hideIndexes: true
3477
- }, undefined, false, undefined, this);
3478
- $[9] = handleEscRejectAll;
3479
- $[10] = onSubmit;
3480
- $[11] = serverNames;
3481
- $[12] = t5;
3482
- $[13] = t6;
3483
- } else {
3484
- t6 = $[13];
3485
- }
3486
- let t7;
3487
- if ($[14] !== handleEscRejectAll || $[15] !== t3 || $[16] !== t6) {
3488
- t7 = /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Dialog, {
3489
- title: t3,
3490
- subtitle: "Select any you wish to enable.",
3491
- color: "warning",
3492
- onCancel: handleEscRejectAll,
3493
- hideInputGuide: true,
3494
- children: [
3495
- t4,
3496
- t6
3497
- ]
3498
- }, undefined, true, undefined, this);
3499
- $[14] = handleEscRejectAll;
3500
- $[15] = t3;
3501
- $[16] = t6;
3502
- $[17] = t7;
3503
- } else {
3504
- t7 = $[17];
3505
- }
3506
- let t8;
3507
- if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
3508
- t8 = /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
3509
- paddingX: 1,
3510
- children: /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
3511
- dimColor: true,
3512
- italic: true,
3513
- children: /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Byline, {
3514
- children: [
3515
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(KeyboardShortcutHint, {
3516
- shortcut: "Space",
3517
- action: "select"
3518
- }, undefined, false, undefined, this),
3519
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(KeyboardShortcutHint, {
3520
- shortcut: "Enter",
3521
- action: "confirm"
3522
- }, undefined, false, undefined, this),
3523
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ConfigurableShortcutHint, {
3524
- action: "confirm:no",
3525
- context: "Confirmation",
3526
- fallback: "Esc",
3527
- description: "reject all"
3528
- }, undefined, false, undefined, this)
3529
- ]
3530
- }, undefined, true, undefined, this)
3766
+ const handleEscRejectAll = import_react.useCallback(() => {
3767
+ const currentSettings = getSettings_DEPRECATED() || {};
3768
+ const disabledServers = currentSettings.disabledMcpjsonServers || [];
3769
+ const newDisabledServers = [
3770
+ ...new Set([...disabledServers, ...serverNames])
3771
+ ];
3772
+ updateSettingsForSource("localSettings", {
3773
+ disabledMcpjsonServers: newDisabledServers
3774
+ });
3775
+ onDone();
3776
+ }, [serverNames, onDone]);
3777
+ return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(jsx_dev_runtime4.Fragment, {
3778
+ children: [
3779
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Dialog, {
3780
+ title: `${serverNames.length} new MCP servers found in .mcp.json`,
3781
+ subtitle: "Select any you wish to enable.",
3782
+ color: "warning",
3783
+ onCancel: handleEscRejectAll,
3784
+ hideInputGuide: true,
3785
+ children: [
3786
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(MCPServerDialogCopy, {}, undefined, false, undefined, this),
3787
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(SelectMulti, {
3788
+ options: serverNames.map((server) => ({
3789
+ label: server,
3790
+ value: server
3791
+ })),
3792
+ defaultValue: serverNames,
3793
+ onSubmit,
3794
+ onCancel: handleEscRejectAll,
3795
+ hideIndexes: true
3796
+ }, undefined, false, undefined, this)
3797
+ ]
3798
+ }, undefined, true, undefined, this),
3799
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
3800
+ paddingX: 1,
3801
+ children: /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
3802
+ dimColor: true,
3803
+ italic: true,
3804
+ children: /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Byline, {
3805
+ children: [
3806
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(KeyboardShortcutHint, {
3807
+ shortcut: "Space",
3808
+ action: "select"
3809
+ }, undefined, false, undefined, this),
3810
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(KeyboardShortcutHint, {
3811
+ shortcut: "Enter",
3812
+ action: "confirm"
3813
+ }, undefined, false, undefined, this),
3814
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ConfigurableShortcutHint, {
3815
+ action: "confirm:no",
3816
+ context: "Confirmation",
3817
+ fallback: "Esc",
3818
+ description: "reject all"
3819
+ }, undefined, false, undefined, this)
3820
+ ]
3821
+ }, undefined, true, undefined, this)
3822
+ }, undefined, false, undefined, this)
3531
3823
  }, undefined, false, undefined, this)
3532
- }, undefined, false, undefined, this);
3533
- $[18] = t8;
3534
- } else {
3535
- t8 = $[18];
3536
- }
3537
- let t9;
3538
- if ($[19] !== t7) {
3539
- t9 = /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(jsx_dev_runtime4.Fragment, {
3540
- children: [
3541
- t7,
3542
- t8
3543
- ]
3544
- }, undefined, true, undefined, this);
3545
- $[19] = t7;
3546
- $[20] = t9;
3547
- } else {
3548
- t9 = $[20];
3549
- }
3550
- return t9;
3551
- }
3552
- function _temp(server_0) {
3553
- return {
3554
- label: server_0,
3555
- value: server_0
3556
- };
3824
+ ]
3825
+ }, undefined, true, undefined, this);
3557
3826
  }
3558
3827
 
3559
3828
  // src/services/mcpServerApproval.tsx
@@ -3563,9 +3832,7 @@ init_config3();
3563
3832
  init_utils();
3564
3833
  var jsx_dev_runtime5 = __toESM(require_jsx_dev_runtime(), 1);
3565
3834
  async function handleMcpjsonServerApprovals(root) {
3566
- const {
3567
- servers: projectServers
3568
- } = getMcpConfigsByScope("project");
3835
+ const { servers: projectServers } = getMcpConfigsByScope("project");
3569
3836
  const pendingServers = Object.keys(projectServers).filter((serverName) => getProjectMcpServerStatus(serverName) === "pending");
3570
3837
  if (pendingServers.length === 0) {
3571
3838
  return;
@@ -3604,6 +3871,30 @@ init_config2();
3604
3871
  // src/utils/deepLink/terminalPreference.ts
3605
3872
  init_config2();
3606
3873
  init_debug();
3874
+ var TERM_PROGRAM_TO_APP = {
3875
+ iterm: "iTerm",
3876
+ "iterm.app": "iTerm",
3877
+ ghostty: "Ghostty",
3878
+ kitty: "kitty",
3879
+ alacritty: "Alacritty",
3880
+ wezterm: "WezTerm",
3881
+ apple_terminal: "Terminal"
3882
+ };
3883
+ function updateDeepLinkTerminalPreference() {
3884
+ if (process.platform !== "darwin")
3885
+ return;
3886
+ const termProgram = process.env.TERM_PROGRAM;
3887
+ if (!termProgram)
3888
+ return;
3889
+ const app = TERM_PROGRAM_TO_APP[termProgram.toLowerCase()];
3890
+ if (!app)
3891
+ return;
3892
+ const config = getGlobalConfig();
3893
+ if (config.deepLinkTerminal === app)
3894
+ return;
3895
+ saveGlobalConfig((current) => ({ ...current, deepLinkTerminal: app }));
3896
+ logForDebugging(`Stored deep link terminal preference: ${app}`);
3897
+ }
3607
3898
 
3608
3899
  // src/interactiveHelpers.tsx
3609
3900
  init_envUtils();
@@ -3643,6 +3934,7 @@ class FpsTracker {
3643
3934
  }
3644
3935
 
3645
3936
  // src/interactiveHelpers.tsx
3937
+ init_managedEnv();
3646
3938
  init_allErrors();
3647
3939
  init_settings2();
3648
3940
  var jsx_dev_runtime6 = __toESM(require_jsx_dev_runtime(), 1);
@@ -3650,7 +3942,7 @@ function completeOnboarding() {
3650
3942
  saveGlobalConfig((current) => ({
3651
3943
  ...current,
3652
3944
  hasCompletedOnboarding: true,
3653
- lastOnboardingVersion: MACRO.VERSION
3945
+ lastOnboardingVersion: "2.1.888"
3654
3946
  }));
3655
3947
  }
3656
3948
  function showDialog(root, renderer) {
@@ -3660,15 +3952,10 @@ function showDialog(root, renderer) {
3660
3952
  });
3661
3953
  }
3662
3954
  async function exitWithError(root, message, beforeExit) {
3663
- return exitWithMessage(root, message, {
3664
- color: "error",
3665
- beforeExit
3666
- });
3955
+ return exitWithMessage(root, message, { color: "error", beforeExit });
3667
3956
  }
3668
3957
  async function exitWithMessage(root, message, options) {
3669
- const {
3670
- Text
3671
- } = await import("./chunk-mzy911jq.js");
3958
+ const { Text } = await import("./chunk-3ewzhjyb.js");
3672
3959
  const color = options?.color;
3673
3960
  const exitCode = options?.exitCode ?? 1;
3674
3961
  root.render(color ? /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Text, {
@@ -3703,23 +3990,17 @@ async function showSetupScreens(root, permissionMode, allowDangerouslySkipPermis
3703
3990
  let onboardingShown = false;
3704
3991
  if (!config.theme || !config.hasCompletedOnboarding) {
3705
3992
  onboardingShown = true;
3706
- const {
3707
- Onboarding
3708
- } = await import("./chunk-qbx1rq4f.js");
3993
+ const { Onboarding } = await import("./chunk-p6sqbnqb.js");
3709
3994
  await showSetupDialog(root, (done) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Onboarding, {
3710
3995
  onDone: () => {
3711
3996
  completeOnboarding();
3712
3997
  done();
3713
3998
  }
3714
- }, undefined, false, undefined, this), {
3715
- onChangeAppState
3716
- });
3999
+ }, undefined, false, undefined, this), { onChangeAppState });
3717
4000
  }
3718
4001
  if (!isEnvTruthy(process.env.CLAUBBIT)) {
3719
4002
  if (!checkHasTrustDialogAccepted()) {
3720
- const {
3721
- TrustDialog
3722
- } = await import("./chunk-mnsrmwn8.js");
4003
+ const { TrustDialog } = await import("./chunk-fvpgrg19.js");
3723
4004
  await showSetupDialog(root, (done) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(TrustDialog, {
3724
4005
  commands,
3725
4006
  onDone: done
@@ -3729,17 +4010,13 @@ async function showSetupScreens(root, permissionMode, allowDangerouslySkipPermis
3729
4010
  resetGrowthBook();
3730
4011
  initializeGrowthBook();
3731
4012
  getSystemContext();
3732
- const {
3733
- errors: allErrors
3734
- } = getSettingsWithAllErrors();
4013
+ const { errors: allErrors } = getSettingsWithAllErrors();
3735
4014
  if (allErrors.length === 0) {
3736
4015
  await handleMcpjsonServerApprovals(root);
3737
4016
  }
3738
4017
  if (await shouldShowClaudeMdExternalIncludesWarning()) {
3739
4018
  const externalIncludes = getExternalClaudeMdIncludes(await getMemoryFiles(true));
3740
- const {
3741
- ClaudeMdExternalIncludesDialog
3742
- } = await import("./chunk-eashsrsv.js");
4019
+ const { ClaudeMdExternalIncludesDialog } = await import("./chunk-ktjjb0k9.js");
3743
4020
  await showSetupDialog(root, (done) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ClaudeMdExternalIncludesDialog, {
3744
4021
  onDone: done,
3745
4022
  isStandaloneDialog: true,
@@ -3748,13 +4025,13 @@ async function showSetupScreens(root, permissionMode, allowDangerouslySkipPermis
3748
4025
  }
3749
4026
  }
3750
4027
  updateGithubRepoPathMapping();
3751
- if (false) {}
4028
+ if (true) {
4029
+ updateDeepLinkTerminalPreference();
4030
+ }
3752
4031
  applyConfigEnvironmentVariables();
3753
4032
  setImmediate(() => initializeTelemetryAfterTrust());
3754
4033
  if (await isQualifiedForGrove()) {
3755
- const {
3756
- GroveDialog
3757
- } = await import("./chunk-1ebedmba.js");
4034
+ const { GroveDialog } = await import("./chunk-0zfmj5y2.js");
3758
4035
  const decision = await showSetupDialog(root, (done) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(GroveDialog, {
3759
4036
  showIfAlreadyViewed: false,
3760
4037
  location: onboardingShown ? "onboarding" : "policy_update_modal",
@@ -3770,21 +4047,15 @@ async function showSetupScreens(root, permissionMode, allowDangerouslySkipPermis
3770
4047
  const customApiKeyTruncated = normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY);
3771
4048
  const keyStatus = getCustomApiKeyStatus(customApiKeyTruncated);
3772
4049
  if (keyStatus === "new") {
3773
- const {
3774
- ApproveApiKey
3775
- } = await import("./chunk-kqjrsah4.js");
4050
+ const { ApproveApiKey } = await import("./chunk-6eahnbxj.js");
3776
4051
  await showSetupDialog(root, (done) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ApproveApiKey, {
3777
4052
  customApiKeyTruncated,
3778
4053
  onDone: done
3779
- }, undefined, false, undefined, this), {
3780
- onChangeAppState
3781
- });
4054
+ }, undefined, false, undefined, this), { onChangeAppState });
3782
4055
  }
3783
4056
  }
3784
4057
  if ((permissionMode === "bypassPermissions" || allowDangerouslySkipPermissions) && !hasSkipDangerousModePermissionPrompt()) {
3785
- const {
3786
- BypassPermissionsModeDialog
3787
- } = await import("./chunk-6ndpfxcn.js");
4058
+ const { BypassPermissionsModeDialog } = await import("./chunk-tf1p9trz.js");
3788
4059
  await showSetupDialog(root, (done) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(BypassPermissionsModeDialog, {
3789
4060
  onAccept: done
3790
4061
  }, undefined, false, undefined, this));
@@ -3792,9 +4063,7 @@ async function showSetupScreens(root, permissionMode, allowDangerouslySkipPermis
3792
4063
  if (false) {}
3793
4064
  if (false) {}
3794
4065
  if (claudeInChrome && !getGlobalConfig().hasCompletedClaudeInChromeOnboarding) {
3795
- const {
3796
- ClaudeInChromeOnboarding
3797
- } = await import("./chunk-jd0t67a6.js");
4066
+ const { ClaudeInChromeOnboarding } = await import("./chunk-7r3v46aq.js");
3798
4067
  await showSetupDialog(root, (done) => /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ClaudeInChromeOnboarding, {
3799
4068
  onDone: done
3800
4069
  }, undefined, false, undefined, this));
@@ -3855,9 +4124,7 @@ function getRenderContext(exitOnCtrlC) {
3855
4124
  init_KeybindingProviderSetup();
3856
4125
  var jsx_dev_runtime7 = __toESM(require_jsx_dev_runtime(), 1);
3857
4126
  async function launchInvalidSettingsDialog(root, props) {
3858
- const {
3859
- InvalidSettingsDialog
3860
- } = await import("./chunk-wdxcgk6m.js");
4127
+ const { InvalidSettingsDialog } = await import("./chunk-nn5j7h8a.js");
3861
4128
  return showSetupDialog(root, (done) => /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(InvalidSettingsDialog, {
3862
4129
  settingsErrors: props.settingsErrors,
3863
4130
  onContinue: done,
@@ -3865,9 +4132,7 @@ async function launchInvalidSettingsDialog(root, props) {
3865
4132
  }, undefined, false, undefined, this));
3866
4133
  }
3867
4134
  async function launchTeleportResumeWrapper(root) {
3868
- const {
3869
- TeleportResumeWrapper
3870
- } = await import("./chunk-h3qa8f5w.js");
4135
+ const { TeleportResumeWrapper } = await import("./chunk-2jvpw0q1.js");
3871
4136
  return showSetupDialog(root, (done) => /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(TeleportResumeWrapper, {
3872
4137
  onComplete: done,
3873
4138
  onCancel: () => done(null),
@@ -3875,9 +4140,7 @@ async function launchTeleportResumeWrapper(root) {
3875
4140
  }, undefined, false, undefined, this));
3876
4141
  }
3877
4142
  async function launchTeleportRepoMismatchDialog(root, props) {
3878
- const {
3879
- TeleportRepoMismatchDialog
3880
- } = await import("./chunk-c7q12yes.js");
4143
+ const { TeleportRepoMismatchDialog } = await import("./chunk-jz8v9sn3.js");
3881
4144
  return showSetupDialog(root, (done) => /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(TeleportRepoMismatchDialog, {
3882
4145
  targetRepo: props.targetRepo,
3883
4146
  initialPaths: props.initialPaths,
@@ -3886,11 +4149,11 @@ async function launchTeleportRepoMismatchDialog(root, props) {
3886
4149
  }, undefined, false, undefined, this));
3887
4150
  }
3888
4151
  async function launchResumeChooser(root, appProps, worktreePathsPromise, resumeProps) {
3889
- const [worktreePaths, {
3890
- ResumeConversation
3891
- }, {
3892
- App
3893
- }] = await Promise.all([worktreePathsPromise, import("./chunk-e5tfw9f7.js"), import("./chunk-gjdwtdch.js")]);
4152
+ const [worktreePaths, { ResumeConversation }, { App }] = await Promise.all([
4153
+ worktreePathsPromise,
4154
+ import("./chunk-twh7pzm8.js"),
4155
+ import("./chunk-d5qggsbm.js")
4156
+ ]);
3894
4157
  await renderAndRun(root, /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(App, {
3895
4158
  getFpsMetrics: appProps.getFpsMetrics,
3896
4159
  stats: appProps.stats,
@@ -3905,7 +4168,7 @@ async function launchResumeChooser(root, appProps, worktreePathsPromise, resumeP
3905
4168
  }
3906
4169
 
3907
4170
  // src/main.tsx
3908
- init_dec();
4171
+ init_src();
3909
4172
 
3910
4173
  // src/plugins/bundled/index.ts
3911
4174
  function initBuiltinPlugins() {}
@@ -3919,7 +4182,7 @@ init_setup();
3919
4182
 
3920
4183
  // src/skills/bundled/batch.ts
3921
4184
  init_constants2();
3922
- init_prompt2();
4185
+ init_prompt3();
3923
4186
  init_constants4();
3924
4187
  init_constants3();
3925
4188
  init_constants5();
@@ -4034,8 +4297,8 @@ function registerBatchSkill() {
4034
4297
  }
4035
4298
 
4036
4299
  // src/skills/bundled/claudeInChrome.ts
4037
- init_src();
4038
- init_prompt4();
4300
+ init_src2();
4301
+ init_prompt6();
4039
4302
  init_setup();
4040
4303
  init_bundledSkills();
4041
4304
  var CLAUDE_IN_CHROME_MCP_TOOLS = BROWSER_TOOLS.map((tool) => `mcp__claude-in-chrome__${tool.name}`);
@@ -5272,8 +5535,58 @@ ${args}
5272
5535
  });
5273
5536
  }
5274
5537
 
5538
+ // src/skills/bundled/cronManage.ts
5539
+ init_prompt4();
5540
+ init_bundledSkills();
5541
+ function registerCronListSkill() {
5542
+ registerBundledSkill({
5543
+ name: "cron-list",
5544
+ description: "List all scheduled cron jobs in this session",
5545
+ whenToUse: "When the user wants to see their scheduled/recurring tasks, check active cron jobs, or review what is currently looping.",
5546
+ userInvocable: true,
5547
+ isEnabled: isKairosCronEnabled,
5548
+ async getPromptForCommand() {
5549
+ return [
5550
+ {
5551
+ type: "text",
5552
+ text: `Call ${CRON_LIST_TOOL_NAME} to list all scheduled cron jobs. Display the results in a table with columns: ID, Schedule, Prompt, Recurring, Durable. If no jobs exist, say "No scheduled tasks."`
5553
+ }
5554
+ ];
5555
+ }
5556
+ });
5557
+ }
5558
+ function registerCronDeleteSkill() {
5559
+ registerBundledSkill({
5560
+ name: "cron-delete",
5561
+ description: "Cancel a scheduled cron job by ID",
5562
+ whenToUse: "When the user wants to cancel, stop, or remove a scheduled/recurring task or cron job.",
5563
+ argumentHint: "<job-id>",
5564
+ userInvocable: true,
5565
+ isEnabled: isKairosCronEnabled,
5566
+ async getPromptForCommand(args) {
5567
+ const id = args.trim();
5568
+ if (!id) {
5569
+ return [
5570
+ {
5571
+ type: "text",
5572
+ text: `Usage: /cron-delete <job-id>
5573
+
5574
+ Provide the job ID to cancel. Use /cron-list to see active jobs and their IDs.`
5575
+ }
5576
+ ];
5577
+ }
5578
+ return [
5579
+ {
5580
+ type: "text",
5581
+ text: `Call ${CRON_DELETE_TOOL_NAME} with id "${id}" to cancel that scheduled job. Confirm the result to the user.`
5582
+ }
5583
+ ];
5584
+ }
5585
+ });
5586
+ }
5587
+
5275
5588
  // src/skills/bundled/loop.ts
5276
- init_prompt3();
5589
+ init_prompt4();
5277
5590
  init_bundledSkills();
5278
5591
  var DEFAULT_INTERVAL = "10m";
5279
5592
  var USAGE_MESSAGE = `Usage: /loop [interval] <prompt>
@@ -5355,6 +5668,43 @@ function registerLoopSkill() {
5355
5668
  });
5356
5669
  }
5357
5670
 
5671
+ // src/skills/bundled/dream.ts
5672
+ init_paths();
5673
+ init_consolidationPrompt();
5674
+ init_consolidationLock();
5675
+ init_state();
5676
+ init_sessionStorage();
5677
+ init_bundledSkills();
5678
+ var DREAM_PROMPT_PREFIX = `# Dream: Memory Consolidation (manual run)
5679
+
5680
+ You are performing a manual dream \u2014 a reflective pass over your memory files. Unlike the automatic background dream, this run has full tool permissions and the user is watching. Synthesize what you've learned recently into durable, well-organized memories so that future sessions can orient quickly.
5681
+
5682
+ `;
5683
+ function registerDreamSkill() {
5684
+ registerBundledSkill({
5685
+ name: "dream",
5686
+ description: "Manually trigger memory consolidation \u2014 review, organize, and prune your auto-memory files.",
5687
+ whenToUse: "Use when the user says /dream or wants to manually consolidate memories, organize memory files, or clean up stale entries.",
5688
+ userInvocable: true,
5689
+ isEnabled: () => isAutoMemoryEnabled(),
5690
+ async getPromptForCommand(args) {
5691
+ const memoryRoot = getAutoMemPath();
5692
+ const transcriptDir = getProjectDir(getOriginalCwd());
5693
+ await recordConsolidation();
5694
+ const basePrompt = buildConsolidationPrompt(memoryRoot, transcriptDir, "");
5695
+ let prompt = DREAM_PROMPT_PREFIX + basePrompt;
5696
+ if (args) {
5697
+ prompt += `
5698
+
5699
+ ## Additional context from user
5700
+
5701
+ ${args}`;
5702
+ }
5703
+ return [{ type: "text", text: prompt }];
5704
+ }
5705
+ });
5706
+ }
5707
+
5358
5708
  // src/skills/bundled/updateConfig.ts
5359
5709
  init_v4();
5360
5710
  init_types();
@@ -5890,9 +6240,16 @@ function initBundledSkills() {
5890
6240
  registerBatchSkill();
5891
6241
  registerStuckSkill();
5892
6242
  registerLoopSkill();
6243
+ registerCronListSkill();
6244
+ registerCronDeleteSkill();
6245
+ registerDreamSkill();
5893
6246
  if (false) {}
5894
- if (false) {}
5895
- if (false) {}
6247
+ if (true) {
6248
+ const {
6249
+ registerScheduleRemoteAgentsSkill: registerScheduleRemoteAgentsSkill2
6250
+ } = (init_scheduleRemoteAgents(), __toCommonJS(exports_scheduleRemoteAgents));
6251
+ registerScheduleRemoteAgentsSkill2();
6252
+ }
5896
6253
  if (false) {}
5897
6254
  if (shouldAutoEnableClaudeInChrome()) {
5898
6255
  registerClaudeInChromeSkill();
@@ -5903,18 +6260,10 @@ function initBundledSkills() {
5903
6260
  // src/main.tsx
5904
6261
  init_loadAgentsDir();
5905
6262
  init_autoUpdater();
5906
- init_prompt4();
6263
+ init_prompt6();
5907
6264
  init_setup();
5908
6265
  init_context();
5909
6266
  init_conversationRecovery();
5910
-
5911
- // src/utils/deepLink/banner.ts
5912
- init_format();
5913
- init_gitFilesystem();
5914
- init_git();
5915
- var STALE_FETCH_WARN_MS = 7 * 24 * 60 * 60 * 1000;
5916
-
5917
- // src/main.tsx
5918
6267
  init_envUtils();
5919
6268
  init_getWorktreePaths();
5920
6269
  init_git();
@@ -5960,7 +6309,7 @@ init_pluginTelemetry();
5960
6309
  // src/utils/telemetry/skillLoadedEvent.ts
5961
6310
  init_commands();
5962
6311
  init_analytics();
5963
- init_prompt();
6312
+ init_prompt2();
5964
6313
  async function logSkillsLoaded(cwd, contextWindowTokens) {
5965
6314
  const skills = await getSkillToolCommands(cwd);
5966
6315
  const skillBudget = getCharBudget(contextWindowTokens);
@@ -6430,6 +6779,29 @@ function migrateEnableAllProjectMcpServersToSettings() {
6430
6779
 
6431
6780
  // src/migrations/migrateFennecToOpus.ts
6432
6781
  init_settings2();
6782
+ function migrateFennecToOpus() {
6783
+ if (process.env.USER_TYPE !== "ant") {
6784
+ return;
6785
+ }
6786
+ const settings = getSettingsForSource("userSettings");
6787
+ const model = settings?.model;
6788
+ if (typeof model === "string") {
6789
+ if (model.startsWith("fennec-latest[1m]")) {
6790
+ updateSettingsForSource("userSettings", {
6791
+ model: "opus[1m]"
6792
+ });
6793
+ } else if (model.startsWith("fennec-latest")) {
6794
+ updateSettingsForSource("userSettings", {
6795
+ model: "opus"
6796
+ });
6797
+ } else if (model.startsWith("fennec-fast-latest") || model.startsWith("opus-4-5-fast")) {
6798
+ updateSettingsForSource("userSettings", {
6799
+ model: "opus[1m]",
6800
+ fastMode: true
6801
+ });
6802
+ }
6803
+ }
6804
+ }
6433
6805
 
6434
6806
  // src/migrations/migrateLegacyOpusToCurrent.ts
6435
6807
  init_analytics();
@@ -6630,6 +7002,7 @@ init_api();
6630
7002
  init_teleport();
6631
7003
  init_thinking();
6632
7004
  init_user();
7005
+ init_sink();
6633
7006
  init_worktree();
6634
7007
  profileCheckpoint("main_tsx_entry");
6635
7008
  startMdmRawRead();
@@ -6675,10 +7048,7 @@ if (isBeingDebugged()) {
6675
7048
  function logSessionTelemetry() {
6676
7049
  const model = parseUserSpecifiedModel(getInitialMainLoopModel() ?? getDefaultMainLoopModel());
6677
7050
  logSkillsLoaded(getCwd(), getContextWindowForModel(model, getSdkBetas()));
6678
- loadAllPluginsCacheOnly().then(({
6679
- enabled,
6680
- errors
6681
- }) => {
7051
+ loadAllPluginsCacheOnly().then(({ enabled, errors }) => {
6682
7052
  const managedNames = getManagedPluginNames();
6683
7053
  logPluginsEnabledForSession(enabled, managedNames, getPluginSeedDirs());
6684
7054
  logPluginLoadErrors(errors, managedNames);
@@ -6703,7 +7073,11 @@ function getCertEnvVarTelemetry() {
6703
7073
  async function logStartupTelemetry() {
6704
7074
  if (isAnalyticsDisabled())
6705
7075
  return;
6706
- const [isGit, worktreeCount, ghAuthStatus] = await Promise.all([getIsGit(), getWorktreeCount(), getGhAuthStatus()]);
7076
+ const [isGit, worktreeCount, ghAuthStatus] = await Promise.all([
7077
+ getIsGit(),
7078
+ getWorktreeCount(),
7079
+ getGhAuthStatus()
7080
+ ]);
6707
7081
  logEvent("tengu_startup_telemetry", {
6708
7082
  is_git: isGit,
6709
7083
  worktree_count: worktreeCount,
@@ -6729,11 +7103,10 @@ function runMigrations() {
6729
7103
  migrateOpusToOpus1m();
6730
7104
  migrateReplBridgeEnabledToRemoteControlAtStartup();
6731
7105
  if (false) {}
6732
- if (false) {}
6733
- saveGlobalConfig((prev) => prev.migrationVersion === CURRENT_MIGRATION_VERSION ? prev : {
6734
- ...prev,
6735
- migrationVersion: CURRENT_MIGRATION_VERSION
6736
- });
7106
+ if (process.env.USER_TYPE === "ant") {
7107
+ migrateFennecToOpus();
7108
+ }
7109
+ saveGlobalConfig((prev) => prev.migrationVersion === CURRENT_MIGRATION_VERSION ? prev : { ...prev, migrationVersion: CURRENT_MIGRATION_VERSION });
6737
7110
  }
6738
7111
  migrateChangelogFromConfig().catch(() => {});
6739
7112
  }
@@ -6774,7 +7147,9 @@ function startDeferredPrefetches() {
6774
7147
  if (!isBareMode()) {
6775
7148
  skillChangeDetector.initialize();
6776
7149
  }
6777
- if (false) {}
7150
+ if (process.env.USER_TYPE === "ant") {
7151
+ import("./chunk-xv3era3s.js").then((m) => m.startEventLoopStallDetector());
7152
+ }
6778
7153
  }
6779
7154
  function loadSettingsFromFlag(settingsFile) {
6780
7155
  try {
@@ -6793,9 +7168,7 @@ function loadSettingsFromFlag(settingsFile) {
6793
7168
  });
6794
7169
  writeFileSync_DEPRECATED(settingsPath, trimmedSettings, "utf8");
6795
7170
  } else {
6796
- const {
6797
- resolvedPath: resolvedSettingsPath
6798
- } = safeResolvePath(getFsImplementation(), settingsFile);
7171
+ const { resolvedPath: resolvedSettingsPath } = safeResolvePath(getFsImplementation(), settingsFile);
6799
7172
  try {
6800
7173
  readFileSync(resolvedSettingsPath, "utf8");
6801
7174
  } catch (e) {
@@ -6876,7 +7249,24 @@ async function main() {
6876
7249
  });
6877
7250
  profileCheckpoint("main_warning_handler_initialized");
6878
7251
  if (false) {}
6879
- if (false) {}
7252
+ if (true) {
7253
+ const handleUriIdx = process.argv.indexOf("--handle-uri");
7254
+ if (handleUriIdx !== -1 && process.argv[handleUriIdx + 1]) {
7255
+ const { enableConfigs: enableConfigs2 } = await import("./chunk-rbwy1qmm.js");
7256
+ enableConfigs2();
7257
+ const uri = process.argv[handleUriIdx + 1];
7258
+ const { handleDeepLinkUri } = await import("./chunk-q1976kze.js");
7259
+ const exitCode = await handleDeepLinkUri(uri);
7260
+ process.exit(exitCode);
7261
+ }
7262
+ if (process.platform === "darwin" && process.env.__CFBundleIdentifier === "com.anthropic.claude-code-url-handler") {
7263
+ const { enableConfigs: enableConfigs2 } = await import("./chunk-rbwy1qmm.js");
7264
+ enableConfigs2();
7265
+ const { handleUrlSchemeLaunch } = await import("./chunk-q1976kze.js");
7266
+ const urlSchemeResult = await handleUrlSchemeLaunch();
7267
+ process.exit(urlSchemeResult ?? 1);
7268
+ }
7269
+ }
6880
7270
  if (false) {}
6881
7271
  if (false) {}
6882
7272
  const cliArgs = process.argv.slice(2);
@@ -6953,10 +7343,7 @@ async function run() {
6953
7343
  profileCheckpoint("run_function_start");
6954
7344
  function createSortedHelpConfig() {
6955
7345
  const getOptionSortKey = (opt) => opt.long?.replace(/^--/, "") ?? opt.short?.replace(/^-/, "") ?? "";
6956
- return Object.assign({
6957
- sortSubcommands: true,
6958
- sortOptions: true
6959
- }, {
7346
+ return Object.assign({ sortSubcommands: true, sortOptions: true }, {
6960
7347
  compareOptions: (a, b) => getOptionSortKey(a).localeCompare(getOptionSortKey(b))
6961
7348
  });
6962
7349
  }
@@ -6964,16 +7351,17 @@ async function run() {
6964
7351
  profileCheckpoint("run_commander_initialized");
6965
7352
  program2.hook("preAction", async (thisCommand) => {
6966
7353
  profileCheckpoint("preAction_start");
6967
- await Promise.all([ensureMdmSettingsLoaded(), ensureKeychainPrefetchCompleted()]);
7354
+ await Promise.all([
7355
+ ensureMdmSettingsLoaded(),
7356
+ ensureKeychainPrefetchCompleted()
7357
+ ]);
6968
7358
  profileCheckpoint("preAction_after_mdm");
6969
7359
  await init();
6970
7360
  profileCheckpoint("preAction_after_init");
6971
7361
  if (!isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_TERMINAL_TITLE)) {
6972
7362
  process.title = "claude";
6973
7363
  }
6974
- const {
6975
- initSinks
6976
- } = await import("./chunk-k8jcy7mj.js");
7364
+ const { initSinks } = await import("./chunk-p8c23zr7.js");
6977
7365
  initSinks();
6978
7366
  profileCheckpoint("preAction_after_sinks");
6979
7367
  const pluginDir = thisCommand.getOptionValue("pluginDir");
@@ -7024,9 +7412,7 @@ async function run() {
7024
7412
  prompt = undefined;
7025
7413
  }
7026
7414
  if (prompt && typeof prompt === "string" && !/\s/.test(prompt) && prompt.length > 0) {
7027
- logEvent("tengu_single_word_prompt", {
7028
- length: prompt.length
7029
- });
7415
+ logEvent("tengu_single_word_prompt", { length: prompt.length });
7030
7416
  }
7031
7417
  let kairosEnabled = false;
7032
7418
  let assistantTeamContext;
@@ -7065,9 +7451,11 @@ async function run() {
7065
7451
  const initOnly = options.initOnly ?? false;
7066
7452
  const maintenance = options.maintenance ?? false;
7067
7453
  const disableSlashCommands = options.disableSlashCommands || false;
7068
- const tasksOption = false;
7454
+ const tasksOption = process.env.USER_TYPE === "ant" && options.tasks;
7069
7455
  const taskListId = tasksOption ? typeof tasksOption === "string" ? tasksOption : DEFAULT_TASKS_MODE_TASK_LIST_ID : undefined;
7070
- if (false) {}
7456
+ if (process.env.USER_TYPE === "ant" && taskListId) {
7457
+ process.env.CLAUDE_CODE_TASK_LIST_ID = taskListId;
7458
+ }
7071
7459
  const worktreeOption = isWorktreeModeEnabled() ? options.worktree : undefined;
7072
7460
  let worktreeName = typeof worktreeOption === "string" ? worktreeOption : undefined;
7073
7461
  const worktreeEnabled = worktreeOption !== undefined;
@@ -7243,10 +7631,7 @@ ${getTmuxInstallInstructions()}
7243
7631
 
7244
7632
  ${addendum}` : addendum;
7245
7633
  }
7246
- const {
7247
- mode: permissionMode,
7248
- notification: permissionModeNotification
7249
- } = initialPermissionModeFromCLI({
7634
+ const { mode: permissionMode, notification: permissionModeNotification } = initialPermissionModeFromCLI({
7250
7635
  permissionModeCli,
7251
7636
  dangerouslySkipPermissions
7252
7637
  });
@@ -7289,18 +7674,13 @@ ${addendum}` : addendum;
7289
7674
  if (errors.length > 0) {
7290
7675
  allErrors.push(...errors);
7291
7676
  } else if (configs) {
7292
- allConfigs = {
7293
- ...allConfigs,
7294
- ...configs
7295
- };
7677
+ allConfigs = { ...allConfigs, ...configs };
7296
7678
  }
7297
7679
  }
7298
7680
  if (allErrors.length > 0) {
7299
7681
  const formattedErrors = allErrors.map((err) => `${err.path ? err.path + ": " : ""}${err.message}`).join(`
7300
7682
  `);
7301
- logForDebugging(`--mcp-config validation failed (${allErrors.length} errors): ${formattedErrors}`, {
7302
- level: "error"
7303
- });
7683
+ logForDebugging(`--mcp-config validation failed (${allErrors.length} errors): ${formattedErrors}`, { level: "error" });
7304
7684
  process.stderr.write(`Error: Invalid MCP configuration:
7305
7685
  ${formattedErrors}
7306
7686
  `);
@@ -7311,7 +7691,12 @@ ${formattedErrors}
7311
7691
  let reservedNameError = null;
7312
7692
  if (nonSdkConfigNames.some(isClaudeInChromeMCPServer)) {
7313
7693
  reservedNameError = `Invalid MCP configuration: "${CLAUDE_IN_CHROME_MCP_SERVER_NAME}" is a reserved MCP name.`;
7314
- } else if (false) {}
7694
+ } else if (true) {
7695
+ const { isComputerUseMCPServer, COMPUTER_USE_MCP_SERVER_NAME } = await import("./chunk-gey7mwcw.js");
7696
+ if (nonSdkConfigNames.some(isComputerUseMCPServer)) {
7697
+ reservedNameError = `Invalid MCP configuration: "${COMPUTER_USE_MCP_SERVER_NAME}" is a reserved MCP name.`;
7698
+ }
7699
+ }
7315
7700
  if (reservedNameError) {
7316
7701
  process.stderr.write(`Error: ${reservedNameError}
7317
7702
  `);
@@ -7321,23 +7706,17 @@ ${formattedErrors}
7321
7706
  ...config,
7322
7707
  scope: "dynamic"
7323
7708
  }));
7324
- const {
7325
- allowed,
7326
- blocked
7327
- } = filterMcpServersByPolicy(scopedConfigs);
7709
+ const { allowed, blocked } = filterMcpServersByPolicy(scopedConfigs);
7328
7710
  if (blocked.length > 0) {
7329
7711
  process.stderr.write(`Warning: MCP ${plural(blocked.length, "server")} blocked by enterprise policy: ${blocked.join(", ")}
7330
7712
  `);
7331
7713
  }
7332
- dynamicMcpConfig = {
7333
- ...dynamicMcpConfig,
7334
- ...allowed
7335
- };
7714
+ dynamicMcpConfig = { ...dynamicMcpConfig, ...allowed };
7336
7715
  }
7337
7716
  }
7338
7717
  const chromeOpts = options;
7339
7718
  setChromeFlagOverride(chromeOpts.chrome);
7340
- const enableClaudeInChrome = shouldEnableClaudeInChrome(chromeOpts.chrome) && isClaudeAISubscriber();
7719
+ const enableClaudeInChrome = shouldEnableClaudeInChrome(chromeOpts.chrome) && (process.env.USER_TYPE === "ant" || isClaudeAISubscriber());
7341
7720
  const autoEnableClaudeInChrome = !enableClaudeInChrome && shouldAutoEnableClaudeInChrome();
7342
7721
  if (enableClaudeInChrome) {
7343
7722
  const platform = getPlatform();
@@ -7350,10 +7729,7 @@ ${formattedErrors}
7350
7729
  allowedTools: chromeMcpTools,
7351
7730
  systemPrompt: chromeSystemPrompt
7352
7731
  } = setupClaudeInChrome();
7353
- dynamicMcpConfig = {
7354
- ...dynamicMcpConfig,
7355
- ...chromeMcpConfig
7356
- };
7732
+ dynamicMcpConfig = { ...dynamicMcpConfig, ...chromeMcpConfig };
7357
7733
  allowedTools.push(...chromeMcpTools);
7358
7734
  if (chromeSystemPrompt) {
7359
7735
  appendSystemPrompt = appendSystemPrompt ? `${chromeSystemPrompt}
@@ -7371,13 +7747,8 @@ ${appendSystemPrompt}` : chromeSystemPrompt;
7371
7747
  }
7372
7748
  } else if (autoEnableClaudeInChrome) {
7373
7749
  try {
7374
- const {
7375
- mcpConfig: chromeMcpConfig
7376
- } = setupClaudeInChrome();
7377
- dynamicMcpConfig = {
7378
- ...dynamicMcpConfig,
7379
- ...chromeMcpConfig
7380
- };
7750
+ const { mcpConfig: chromeMcpConfig } = setupClaudeInChrome();
7751
+ dynamicMcpConfig = { ...dynamicMcpConfig, ...chromeMcpConfig };
7381
7752
  const hint = CLAUDE_IN_CHROME_SKILL_HINT;
7382
7753
  appendSystemPrompt = appendSystemPrompt ? `${appendSystemPrompt}
7383
7754
 
@@ -7397,11 +7768,30 @@ ${hint}` : hint;
7397
7768
  process.exit(1);
7398
7769
  }
7399
7770
  }
7400
- if (false) {}
7771
+ if (getPlatform() !== "unknown" && !getIsNonInteractiveSession()) {
7772
+ try {
7773
+ const { getChicagoEnabled } = await import("./chunk-h707k8xq.js");
7774
+ if (getChicagoEnabled()) {
7775
+ const { setupComputerUseMCP } = await import("./chunk-8c9jtmsm.js");
7776
+ const { mcpConfig: mcpConfig2, allowedTools: cuTools } = setupComputerUseMCP();
7777
+ dynamicMcpConfig = { ...dynamicMcpConfig, ...mcpConfig2 };
7778
+ allowedTools.push(...cuTools);
7779
+ }
7780
+ } catch (error) {
7781
+ logForDebugging(`[Computer Use MCP] Setup failed: ${errorMessage(error)}`);
7782
+ }
7783
+ }
7401
7784
  setAdditionalDirectoriesForClaudeMd(addDir);
7402
7785
  let devChannels;
7403
7786
  if (false) {}
7404
- if (false) {}
7787
+ if (baseTools.length > 0) {
7788
+ const { BRIEF_TOOL_NAME, LEGACY_BRIEF_TOOL_NAME } = (init_prompt(), __toCommonJS(exports_prompt));
7789
+ const { isBriefEntitled } = (init_BriefTool(), __toCommonJS(exports_BriefTool));
7790
+ const parsed = parseToolListFromCLI(baseTools);
7791
+ if ((parsed.includes(BRIEF_TOOL_NAME) || parsed.includes(LEGACY_BRIEF_TOOL_NAME)) && isBriefEntitled()) {
7792
+ setUserMsgOptIn(true);
7793
+ }
7794
+ }
7405
7795
  const initResult = await initializeToolPermissionContext({
7406
7796
  allowedToolsCli: allowedTools,
7407
7797
  disallowedToolsCli: disallowedTools,
@@ -7411,22 +7801,20 @@ ${hint}` : hint;
7411
7801
  addDirs: addDir
7412
7802
  });
7413
7803
  let toolPermissionContext = initResult.toolPermissionContext;
7414
- const {
7415
- warnings,
7416
- dangerousPermissions,
7417
- overlyBroadBashPermissions
7418
- } = initResult;
7419
- if (false) {}
7804
+ const { warnings, dangerousPermissions, overlyBroadBashPermissions } = initResult;
7805
+ if (process.env.USER_TYPE === "ant" && overlyBroadBashPermissions.length > 0) {
7806
+ for (const permission of overlyBroadBashPermissions) {
7807
+ logForDebugging(`Ignoring overly broad shell permission ${permission.ruleDisplay} from ${permission.sourceDisplay}`);
7808
+ }
7809
+ toolPermissionContext = removeDangerousPermissions(toolPermissionContext, overlyBroadBashPermissions);
7810
+ }
7420
7811
  if (false) {}
7421
7812
  warnings.forEach((warning) => {
7422
7813
  console.error(warning);
7423
7814
  });
7424
7815
  assertMinVersion();
7425
7816
  const claudeaiConfigPromise = isNonInteractiveSession && !strictMcpConfig && !doesEnterpriseMcpConfigExist() && !isBareMode() ? fetchClaudeAIMcpConfigsIfEligible().then((configs) => {
7426
- const {
7427
- allowed,
7428
- blocked
7429
- } = filterMcpServersByPolicy(configs);
7817
+ const { allowed, blocked } = filterMcpServersByPolicy(configs);
7430
7818
  if (blocked.length > 0) {
7431
7819
  process.stderr.write(`Warning: claude.ai MCP ${plural(blocked.length, "server")} blocked by enterprise policy: ${blocked.join(", ")}
7432
7820
  `);
@@ -7480,9 +7868,7 @@ ${hint}` : hint;
7480
7868
  if (false) {}
7481
7869
  profileCheckpoint("action_tools_loaded");
7482
7870
  let jsonSchema;
7483
- if (isSyntheticOutputToolEnabled({
7484
- isNonInteractiveSession
7485
- }) && options.jsonSchema) {
7871
+ if (isSyntheticOutputToolEnabled({ isNonInteractiveSession }) && options.jsonSchema) {
7486
7872
  jsonSchema = jsonParse(options.jsonSchema);
7487
7873
  }
7488
7874
  if (jsonSchema) {
@@ -7502,9 +7888,7 @@ ${hint}` : hint;
7502
7888
  profileCheckpoint("action_before_setup");
7503
7889
  logForDebugging("[STARTUP] Running setup()...");
7504
7890
  const setupStart = Date.now();
7505
- const {
7506
- setup
7507
- } = await import("./chunk-05gxvwvf.js");
7891
+ const { setup } = await import("./chunk-tm82sqkr.js");
7508
7892
  const messagingSocketPath = undefined;
7509
7893
  const preSetupCwd = getCwd();
7510
7894
  if (process.env.CLAUDE_CODE_ENTRYPOINT !== "local-agent") {
@@ -7532,13 +7916,18 @@ ${hint}` : hint;
7532
7916
  cacheSessionTitle(sessionNameArg);
7533
7917
  }
7534
7918
  const explicitModel = options.model || process.env.ANTHROPIC_MODEL;
7535
- if (false) {}
7919
+ if (process.env.USER_TYPE === "ant" && explicitModel && explicitModel !== "default" && !hasGrowthBookEnvOverride("tengu_ant_model_override") && getGlobalConfig().cachedGrowthBookFeatures?.["tengu_ant_model_override"] == null) {
7920
+ await initializeGrowthBook();
7921
+ }
7536
7922
  const userSpecifiedModel = options.model === "default" ? getDefaultMainLoopModel() : options.model;
7537
7923
  const userSpecifiedFallbackModel = fallbackModel === "default" ? getDefaultMainLoopModel() : fallbackModel;
7538
7924
  const currentCwd = worktreeEnabled ? getCwd() : preSetupCwd;
7539
7925
  logForDebugging("[STARTUP] Loading commands and agents...");
7540
7926
  const commandsStart = Date.now();
7541
- const [commands, agentDefinitionsResult] = await Promise.all([commandsPromise ?? getCommands(currentCwd), agentDefsPromise ?? getAgentDefinitionsWithOverrides(currentCwd)]);
7927
+ const [commands, agentDefinitionsResult] = await Promise.all([
7928
+ commandsPromise ?? getCommands(currentCwd),
7929
+ agentDefsPromise ?? getAgentDefinitionsWithOverrides(currentCwd)
7930
+ ]);
7542
7931
  logForDebugging(`[STARTUP] Commands and agents loaded in ${Date.now() - commandsStart}ms`);
7543
7932
  profileCheckpoint("action_commands_loaded");
7544
7933
  let cliAgents = [];
@@ -7634,7 +8023,9 @@ ${inputPrompt}` : mainThreadAgentDefinition.initialPrompt;
7634
8023
  }
7635
8024
  if (customAgent.memory) {
7636
8025
  logEvent("tengu_agent_memory_loaded", {
7637
- ...false,
8026
+ ...process.env.USER_TYPE === "ant" && {
8027
+ agent_type: customAgent.agentType
8028
+ },
7638
8029
  scope: customAgent.memory,
7639
8030
  source: "teammate"
7640
8031
  });
@@ -7652,7 +8043,12 @@ ${customInstructions}` : customInstructions;
7652
8043
  }
7653
8044
  }
7654
8045
  maybeActivateBrief(options);
7655
- if (false) {}
8046
+ if (!getIsNonInteractiveSession() && !getUserMsgOptIn() && getInitialSettings().defaultView === "chat") {
8047
+ const { isBriefEntitled } = (init_BriefTool(), __toCommonJS(exports_BriefTool));
8048
+ if (isBriefEntitled()) {
8049
+ setUserMsgOptIn(true);
8050
+ }
8051
+ }
7656
8052
  if (false) {}
7657
8053
  if (false) {}
7658
8054
  let root;
@@ -7662,10 +8058,10 @@ ${customInstructions}` : customInstructions;
7662
8058
  const ctx = getRenderContext(false);
7663
8059
  getFpsMetrics = ctx.getFpsMetrics;
7664
8060
  stats = ctx.stats;
7665
- if (false) {}
7666
- const {
7667
- createRoot
7668
- } = await import("./chunk-mzy911jq.js");
8061
+ if (process.env.USER_TYPE === "ant") {
8062
+ installAsciicastRecorder();
8063
+ }
8064
+ const { createRoot } = await import("./chunk-3ewzhjyb.js");
7669
8065
  root = await createRoot(ctx.renderOptions);
7670
8066
  logEvent("tengu_timer", {
7671
8067
  event: "startup",
@@ -7685,7 +8081,7 @@ ${customInstructions}` : customInstructions;
7685
8081
  refreshPolicyLimits();
7686
8082
  resetUserCache();
7687
8083
  refreshGrowthBookAfterAuthChange();
7688
- import("./chunk-5tfppbkq.js").then((m) => {
8084
+ import("./chunk-n2zdmx4g.js").then((m) => {
7689
8085
  m.clearTrustedDeviceToken();
7690
8086
  return m.enrollTrustedDevice();
7691
8087
  });
@@ -7701,9 +8097,7 @@ ${customInstructions}` : customInstructions;
7701
8097
  }
7702
8098
  initializeLspServerManager();
7703
8099
  if (!isNonInteractiveSession) {
7704
- const {
7705
- errors
7706
- } = getSettingsWithErrors();
8100
+ const { errors } = getSettingsWithErrors();
7707
8101
  const nonMcpErrors = errors.filter((e) => !e.mcpErrorMetadata);
7708
8102
  if (nonMcpErrors.length > 0) {
7709
8103
  await launchInvalidSettingsDialog(root, {
@@ -7739,14 +8133,9 @@ ${customInstructions}` : customInstructions;
7739
8133
  if (!isNonInteractiveSession) {
7740
8134
  refreshExampleCommands();
7741
8135
  }
7742
- const {
7743
- servers: existingMcpConfigs
7744
- } = await mcpConfigPromise;
8136
+ const { servers: existingMcpConfigs } = await mcpConfigPromise;
7745
8137
  logForDebugging(`[STARTUP] MCP configs resolved in ${mcpConfigResolvedMs}ms (awaited at +${Date.now() - mcpConfigStart}ms)`);
7746
- const allMcpConfigs = {
7747
- ...existingMcpConfigs,
7748
- ...dynamicMcpConfig
7749
- };
8138
+ const allMcpConfigs = { ...existingMcpConfigs, ...dynamicMcpConfig };
7750
8139
  const sdkMcpConfigs = {};
7751
8140
  const regularMcpConfigs = {};
7752
8141
  for (const [name, config] of Object.entries(allMcpConfigs)) {
@@ -7758,21 +8147,12 @@ ${customInstructions}` : customInstructions;
7758
8147
  }
7759
8148
  }
7760
8149
  profileCheckpoint("action_mcp_configs_loaded");
7761
- const localMcpPromise = isNonInteractiveSession ? Promise.resolve({
7762
- clients: [],
7763
- tools: [],
7764
- commands: []
7765
- }) : prefetchAllMcpResources(regularMcpConfigs);
7766
- const claudeaiMcpPromise = isNonInteractiveSession ? Promise.resolve({
7767
- clients: [],
7768
- tools: [],
7769
- commands: []
7770
- }) : claudeaiConfigPromise.then((configs) => Object.keys(configs).length > 0 ? prefetchAllMcpResources(configs) : {
7771
- clients: [],
7772
- tools: [],
7773
- commands: []
7774
- });
7775
- const mcpPromise = Promise.all([localMcpPromise, claudeaiMcpPromise]).then(([local, claudeai]) => ({
8150
+ const localMcpPromise = isNonInteractiveSession ? Promise.resolve({ clients: [], tools: [], commands: [] }) : prefetchAllMcpResources(regularMcpConfigs);
8151
+ const claudeaiMcpPromise = isNonInteractiveSession ? Promise.resolve({ clients: [], tools: [], commands: [] }) : claudeaiConfigPromise.then((configs) => Object.keys(configs).length > 0 ? prefetchAllMcpResources(configs) : { clients: [], tools: [], commands: [] });
8152
+ const mcpPromise = Promise.all([
8153
+ localMcpPromise,
8154
+ claudeaiMcpPromise
8155
+ ]).then(([local, claudeai]) => ({
7776
8156
  clients: [...local.clients, ...claudeai.clients],
7777
8157
  tools: uniqBy_default([...local.tools, ...claudeai.tools], "name"),
7778
8158
  commands: uniqBy_default([...local.commands, ...claudeai.commands], "name")
@@ -7787,21 +8167,13 @@ ${customInstructions}` : customInstructions;
7787
8167
  const mcpTools = [];
7788
8168
  const mcpCommands = [];
7789
8169
  let thinkingEnabled = shouldEnableThinkingByDefault();
7790
- let thinkingConfig = thinkingEnabled !== false ? {
7791
- type: "adaptive"
7792
- } : {
7793
- type: "disabled"
7794
- };
8170
+ let thinkingConfig = thinkingEnabled !== false ? { type: "adaptive" } : { type: "disabled" };
7795
8171
  if (options.thinking === "adaptive" || options.thinking === "enabled") {
7796
8172
  thinkingEnabled = true;
7797
- thinkingConfig = {
7798
- type: "adaptive"
7799
- };
8173
+ thinkingConfig = { type: "adaptive" };
7800
8174
  } else if (options.thinking === "disabled") {
7801
8175
  thinkingEnabled = false;
7802
- thinkingConfig = {
7803
- type: "disabled"
7804
- };
8176
+ thinkingConfig = { type: "disabled" };
7805
8177
  } else {
7806
8178
  const maxThinkingTokens = process.env.MAX_THINKING_TOKENS ? parseInt(process.env.MAX_THINKING_TOKENS, 10) : options.maxThinkingTokens;
7807
8179
  if (maxThinkingTokens !== undefined) {
@@ -7813,14 +8185,12 @@ ${customInstructions}` : customInstructions;
7813
8185
  };
7814
8186
  } else if (maxThinkingTokens === 0) {
7815
8187
  thinkingEnabled = false;
7816
- thinkingConfig = {
7817
- type: "disabled"
7818
- };
8188
+ thinkingConfig = { type: "disabled" };
7819
8189
  }
7820
8190
  }
7821
8191
  }
7822
8192
  logForDiagnosticsNoPII("info", "started", {
7823
- version: MACRO.VERSION,
8193
+ version: "2.1.888",
7824
8194
  is_native_binary: isInBundledMode()
7825
8195
  });
7826
8196
  registerCleanup(async () => {
@@ -7861,9 +8231,7 @@ ${customInstructions}` : customInstructions;
7861
8231
  }
7862
8232
  countConcurrentSessions().then((count2) => {
7863
8233
  if (count2 >= 2) {
7864
- logEvent("tengu_concurrent_sessions", {
7865
- num_sessions: count2
7866
- });
8234
+ logEvent("tengu_concurrent_sessions", { num_sessions: count2 });
7867
8235
  }
7868
8236
  });
7869
8237
  });
@@ -7881,12 +8249,8 @@ ${customInstructions}` : customInstructions;
7881
8249
  const setupTrigger = initOnly || init2 ? "init" : maintenance ? "maintenance" : null;
7882
8250
  if (initOnly) {
7883
8251
  applyConfigEnvironmentVariables();
7884
- await processSetupHooks("init", {
7885
- forceSyncExecution: true
7886
- });
7887
- await processSessionStartHooks("startup", {
7888
- forceSyncExecution: true
7889
- });
8252
+ await processSetupHooks("init", { forceSyncExecution: true });
8253
+ await processSessionStartHooks("startup", { forceSyncExecution: true });
7890
8254
  gracefulShutdownSync(0);
7891
8255
  return;
7892
8256
  }
@@ -7920,9 +8284,7 @@ ${customInstructions}` : customInstructions;
7920
8284
  ...isFastModeEnabled() && {
7921
8285
  fastMode: getInitialFastModeSetting(effectiveModel ?? null)
7922
8286
  },
7923
- ...isAdvisorEnabled() && advisorModel && {
7924
- advisorModel
7925
- },
8287
+ ...isAdvisorEnabled() && advisorModel && { advisorModel },
7926
8288
  ...{}
7927
8289
  };
7928
8290
  const headlessStore = createStore(headlessInitialState, onChangeAppState);
@@ -7941,18 +8303,17 @@ ${customInstructions}` : customInstructions;
7941
8303
  ...prev,
7942
8304
  mcp: {
7943
8305
  ...prev.mcp,
7944
- clients: [...prev.mcp.clients, ...Object.entries(configs).map(([name, config]) => ({
7945
- name,
7946
- type: "pending",
7947
- config
7948
- }))]
8306
+ clients: [
8307
+ ...prev.mcp.clients,
8308
+ ...Object.entries(configs).map(([name, config]) => ({
8309
+ name,
8310
+ type: "pending",
8311
+ config
8312
+ }))
8313
+ ]
7949
8314
  }
7950
8315
  }));
7951
- return getMcpToolsCommandsAndResources(({
7952
- client,
7953
- tools: tools2,
7954
- commands: commands2
7955
- }) => {
8316
+ return getMcpToolsCommandsAndResources(({ client, tools: tools2, commands: commands2 }) => {
7956
8317
  headlessStore.setState((prev) => ({
7957
8318
  ...prev,
7958
8319
  mcp: {
@@ -7993,12 +8354,7 @@ ${customInstructions}` : customInstructions;
7993
8354
  clearServerCache(c.name, c.config).catch(() => {});
7994
8355
  }
7995
8356
  headlessStore.setState((prev) => {
7996
- let {
7997
- clients,
7998
- tools: tools2,
7999
- commands: commands2,
8000
- resources
8001
- } = prev.mcp;
8357
+ let { clients, tools: tools2, commands: commands2, resources } = prev.mcp;
8002
8358
  clients = clients.filter((c) => !suppressed.has(c.name));
8003
8359
  tools2 = tools2.filter((t) => !t.mcpInfo || !suppressed.has(t.mcpInfo.serverName));
8004
8360
  for (const name of suppressed) {
@@ -8007,27 +8363,22 @@ ${customInstructions}` : customInstructions;
8007
8363
  }
8008
8364
  return {
8009
8365
  ...prev,
8010
- mcp: {
8011
- ...prev.mcp,
8012
- clients,
8013
- tools: tools2,
8014
- commands: commands2,
8015
- resources
8016
- }
8366
+ mcp: { ...prev.mcp, clients, tools: tools2, commands: commands2, resources }
8017
8367
  };
8018
8368
  });
8019
8369
  }
8020
8370
  }
8021
8371
  const nonPluginConfigs = pickBy_default(regularMcpConfigs, (_, n) => !n.startsWith("plugin:"));
8022
- const {
8023
- servers: dedupedClaudeAi
8024
- } = dedupClaudeAiMcpServers(claudeaiConfigs, nonPluginConfigs);
8372
+ const { servers: dedupedClaudeAi } = dedupClaudeAiMcpServers(claudeaiConfigs, nonPluginConfigs);
8025
8373
  return connectMcpBatch(dedupedClaudeAi, "claudeai");
8026
8374
  });
8027
8375
  let claudeaiTimer;
8028
- const claudeaiTimedOut = await Promise.race([claudeaiConnect.then(() => false), new Promise((resolve2) => {
8029
- claudeaiTimer = setTimeout((r) => r(true), CLAUDE_AI_MCP_TIMEOUT_MS, resolve2);
8030
- })]);
8376
+ const claudeaiTimedOut = await Promise.race([
8377
+ claudeaiConnect.then(() => false),
8378
+ new Promise((resolve2) => {
8379
+ claudeaiTimer = setTimeout((r) => r(true), CLAUDE_AI_MCP_TIMEOUT_MS, resolve2);
8380
+ })
8381
+ ]);
8031
8382
  if (claudeaiTimer)
8032
8383
  clearTimeout(claudeaiTimer);
8033
8384
  if (claudeaiTimedOut) {
@@ -8036,14 +8387,14 @@ ${customInstructions}` : customInstructions;
8036
8387
  profileCheckpoint("after_connectMcp_claudeai");
8037
8388
  if (!isBareMode()) {
8038
8389
  startDeferredPrefetches();
8039
- import("./chunk-d7q4zp2z.js").then((m) => m.startBackgroundHousekeeping());
8040
- if (false) {}
8390
+ import("./chunk-rb31sqzm.js").then((m) => m.startBackgroundHousekeeping());
8391
+ if (process.env.USER_TYPE === "ant") {
8392
+ import("./chunk-3nk79af8.js").then((m) => m.startSdkMemoryMonitor());
8393
+ }
8041
8394
  }
8042
8395
  logSessionTelemetry();
8043
8396
  profileCheckpoint("before_print_import");
8044
- const {
8045
- runHeadless
8046
- } = await import("./chunk-0xn1zr3e.js");
8397
+ const { runHeadless } = await import("./chunk-zxkzzpgd.js");
8047
8398
  profileCheckpoint("after_print_import");
8048
8399
  runHeadless(inputPrompt, () => headlessStore.getState(), headlessStore.setState, commandsHeadless, tools, sdkMcpConfigs, agentDefinitions.activeAgents, {
8049
8400
  continue: options.continue,
@@ -8056,9 +8407,7 @@ ${customInstructions}` : customInstructions;
8056
8407
  thinkingConfig,
8057
8408
  maxTurns: options.maxTurns,
8058
8409
  maxBudgetUsd: options.maxBudgetUsd,
8059
- taskBudget: options.taskBudget ? {
8060
- total: options.taskBudget
8061
- } : undefined,
8410
+ taskBudget: options.taskBudget ? { total: options.taskBudget } : undefined,
8062
8411
  systemPrompt,
8063
8412
  appendSystemPrompt,
8064
8413
  userSpecifiedModel: effectiveModel,
@@ -8118,7 +8467,7 @@ ${customInstructions}` : customInstructions;
8118
8467
  ...toolPermissionContext,
8119
8468
  mode: isAgentSwarmsEnabled() && getTeammateUtils().isPlanModeRequired() ? "plan" : toolPermissionContext.mode
8120
8469
  };
8121
- const initialIsBriefOnly = false;
8470
+ const initialIsBriefOnly = getUserMsgOptIn();
8122
8471
  const fullRemoteControl = remoteControl || getRemoteControlAtStartup() || kairosEnabled;
8123
8472
  let ccrMirrorEnabled = false;
8124
8473
  if (false) {}
@@ -8215,18 +8564,12 @@ ${customInstructions}` : customInstructions;
8215
8564
  pendingWorkerRequest: null,
8216
8565
  pendingSandboxRequest: null,
8217
8566
  authVersion: 0,
8218
- initialMessage: inputPrompt ? {
8219
- message: createUserMessage({
8220
- content: String(inputPrompt)
8221
- })
8222
- } : null,
8567
+ initialMessage: inputPrompt ? { message: createUserMessage({ content: String(inputPrompt) }) } : null,
8223
8568
  effortValue: parseEffortValue(options.effort) ?? getInitialEffortSetting(),
8224
8569
  activeOverlays: new Set,
8225
8570
  fastMode: getInitialFastModeSetting(resolvedInitialModel),
8226
- ...isAdvisorEnabled() && advisorModel && {
8227
- advisorModel
8228
- },
8229
- teamContext: computeInitialTeamContext?.() || undefined
8571
+ ...isAdvisorEnabled() && advisorModel && { advisorModel },
8572
+ teamContext: computeInitialTeamContext?.()
8230
8573
  };
8231
8574
  if (inputPrompt) {
8232
8575
  addToHistory(String(inputPrompt));
@@ -8240,7 +8583,7 @@ ${customInstructions}` : customInstructions;
8240
8583
  logStartupTelemetry();
8241
8584
  logSessionTelemetry();
8242
8585
  });
8243
- const sessionUploaderPromise = null;
8586
+ const sessionUploaderPromise = process.env.USER_TYPE === "ant" ? import("./chunk-7xyswgjh.js") : null;
8244
8587
  const uploaderReady = sessionUploaderPromise ? sessionUploaderPromise.then((mod) => mod.createSessionTurnUploader()).catch(() => null) : null;
8245
8588
  const sessionConfig = {
8246
8589
  debug: debug || debugToStderr,
@@ -8274,9 +8617,7 @@ ${customInstructions}` : customInstructions;
8274
8617
  let resumeSucceeded = false;
8275
8618
  try {
8276
8619
  const resumeStart = performance.now();
8277
- const {
8278
- clearSessionCaches
8279
- } = await import("./chunk-sbbt0ct3.js");
8620
+ const { clearSessionCaches } = await import("./chunk-b4zy6y92.js");
8280
8621
  clearSessionCaches();
8281
8622
  const result = await loadConversationForResume(undefined, undefined);
8282
8623
  if (!result) {
@@ -8300,11 +8641,7 @@ ${customInstructions}` : customInstructions;
8300
8641
  resume_duration_ms: Math.round(performance.now() - resumeStart)
8301
8642
  });
8302
8643
  resumeSucceeded = true;
8303
- await launchRepl(root, {
8304
- getFpsMetrics,
8305
- stats,
8306
- initialState: loaded.initialState
8307
- }, {
8644
+ await launchRepl(root, { getFpsMetrics, stats, initialState: loaded.initialState }, {
8308
8645
  ...sessionConfig,
8309
8646
  mainThreadAgentDefinition: loaded.restoredAgentDef ?? mainThreadAgentDefinition,
8310
8647
  initialMessages: loaded.messages,
@@ -8323,9 +8660,7 @@ ${customInstructions}` : customInstructions;
8323
8660
  process.exit(1);
8324
8661
  }
8325
8662
  } else if (false) {} else if (false) {} else if (false) {} else if (options.resume || options.fromPr || teleport || remote !== null) {
8326
- const {
8327
- clearSessionCaches
8328
- } = await import("./chunk-sbbt0ct3.js");
8663
+ const { clearSessionCaches } = await import("./chunk-b4zy6y92.js");
8329
8664
  clearSessionCaches();
8330
8665
  let messages = null;
8331
8666
  let processedResume = undefined;
@@ -8400,26 +8735,18 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
8400
8735
  logError(toError(error));
8401
8736
  return await exitWithError(root, `Error: ${errorMessage(error) || "Failed to authenticate"}`, () => gracefulShutdown(1));
8402
8737
  }
8403
- const {
8404
- getClaudeAIOAuthTokens: getTokensForRemote
8405
- } = await import("./chunk-9wm5e9e9.js");
8738
+ const { getClaudeAIOAuthTokens: getTokensForRemote } = await import("./chunk-2mj88mnr.js");
8406
8739
  const getAccessTokenForRemote = () => getTokensForRemote()?.accessToken ?? apiCreds.accessToken;
8407
8740
  const remoteSessionConfig = createRemoteSessionConfig(createdSession.id, getAccessTokenForRemote, apiCreds.orgUUID, hasInitialPrompt);
8408
8741
  const remoteSessionUrl = `${getRemoteSessionUrl(createdSession.id)}?m=0`;
8409
8742
  const remoteInfoMessage = createSystemMessage(`/remote-control is active. Code in CLI or at ${remoteSessionUrl}`, "info");
8410
- const initialUserMessage = hasInitialPrompt ? createUserMessage({
8411
- content: remote
8412
- }) : null;
8743
+ const initialUserMessage = hasInitialPrompt ? createUserMessage({ content: remote }) : null;
8413
8744
  const remoteInitialState = {
8414
8745
  ...initialState,
8415
8746
  remoteSessionUrl
8416
8747
  };
8417
8748
  const remoteCommands = filterCommandsForRemoteMode(commands);
8418
- await launchRepl(root, {
8419
- getFpsMetrics,
8420
- stats,
8421
- initialState: remoteInitialState
8422
- }, {
8749
+ await launchRepl(root, { getFpsMetrics, stats, initialState: remoteInitialState }, {
8423
8750
  debug: debug || debugToStderr,
8424
8751
  commands: remoteCommands,
8425
8752
  initialTools: [],
@@ -8441,9 +8768,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
8441
8768
  await gracefulShutdown(0);
8442
8769
  process.exit(0);
8443
8770
  }
8444
- const {
8445
- branchError
8446
- } = await checkOutTeleportedSessionBranch(teleportResult.branch);
8771
+ const { branchError } = await checkOutTeleportedSessionBranch(teleportResult.branch);
8447
8772
  messages = processMessagesForTeleportResume(teleportResult.log, branchError);
8448
8773
  } else if (typeof teleport === "string") {
8449
8774
  logEvent("tengu_teleport_resume_session", {
@@ -8479,13 +8804,9 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
8479
8804
  `));
8480
8805
  }
8481
8806
  await validateGitState();
8482
- const {
8483
- teleportWithProgress
8484
- } = await import("./chunk-8e8set87.js");
8807
+ const { teleportWithProgress } = await import("./chunk-80p18mf8.js");
8485
8808
  const result = await teleportWithProgress(root, teleport);
8486
- setTeleportedSessionInfo({
8487
- sessionId: teleport
8488
- });
8809
+ setTeleportedSessionInfo({ sessionId: teleport });
8489
8810
  messages = result.messages;
8490
8811
  } catch (error) {
8491
8812
  if (error instanceof TeleportOperationError) {
@@ -8500,7 +8821,86 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
8500
8821
  }
8501
8822
  }
8502
8823
  }
8503
- if (false) {}
8824
+ if (process.env.USER_TYPE === "ant") {
8825
+ if (options.resume && typeof options.resume === "string" && !maybeSessionId) {
8826
+ const { parseCcshareId, loadCcshare } = await import("./chunk-9x5zgy22.js");
8827
+ const ccshareId = parseCcshareId(options.resume);
8828
+ if (ccshareId) {
8829
+ try {
8830
+ const resumeStart = performance.now();
8831
+ const logOption = await loadCcshare(ccshareId);
8832
+ const result = await loadConversationForResume(logOption, undefined);
8833
+ if (result) {
8834
+ processedResume = await processResumedConversation(result, {
8835
+ forkSession: true,
8836
+ transcriptPath: result.fullPath
8837
+ }, resumeContext);
8838
+ if (processedResume.restoredAgentDef) {
8839
+ mainThreadAgentDefinition = processedResume.restoredAgentDef;
8840
+ }
8841
+ logEvent("tengu_session_resumed", {
8842
+ entrypoint: "ccshare",
8843
+ success: true,
8844
+ resume_duration_ms: Math.round(performance.now() - resumeStart)
8845
+ });
8846
+ } else {
8847
+ logEvent("tengu_session_resumed", {
8848
+ entrypoint: "ccshare",
8849
+ success: false
8850
+ });
8851
+ }
8852
+ } catch (error) {
8853
+ logEvent("tengu_session_resumed", {
8854
+ entrypoint: "ccshare",
8855
+ success: false
8856
+ });
8857
+ logError(error);
8858
+ await exitWithError(root, `Unable to resume from ccshare: ${errorMessage(error)}`, () => gracefulShutdown(1));
8859
+ }
8860
+ } else {
8861
+ const resolvedPath = resolve(options.resume);
8862
+ try {
8863
+ const resumeStart = performance.now();
8864
+ let logOption;
8865
+ try {
8866
+ logOption = await loadTranscriptFromFile(resolvedPath);
8867
+ } catch (error) {
8868
+ if (!isENOENT(error))
8869
+ throw error;
8870
+ }
8871
+ if (logOption) {
8872
+ const result = await loadConversationForResume(logOption, undefined);
8873
+ if (result) {
8874
+ processedResume = await processResumedConversation(result, {
8875
+ forkSession: !!options.forkSession,
8876
+ transcriptPath: result.fullPath
8877
+ }, resumeContext);
8878
+ if (processedResume.restoredAgentDef) {
8879
+ mainThreadAgentDefinition = processedResume.restoredAgentDef;
8880
+ }
8881
+ logEvent("tengu_session_resumed", {
8882
+ entrypoint: "file",
8883
+ success: true,
8884
+ resume_duration_ms: Math.round(performance.now() - resumeStart)
8885
+ });
8886
+ } else {
8887
+ logEvent("tengu_session_resumed", {
8888
+ entrypoint: "file",
8889
+ success: false
8890
+ });
8891
+ }
8892
+ }
8893
+ } catch (error) {
8894
+ logEvent("tengu_session_resumed", {
8895
+ entrypoint: "file",
8896
+ success: false
8897
+ });
8898
+ logError(error);
8899
+ await exitWithError(root, `Unable to load transcript from file: ${options.resume}`, () => gracefulShutdown(1));
8900
+ }
8901
+ }
8902
+ }
8903
+ }
8504
8904
  if (maybeSessionId) {
8505
8905
  const sessionId2 = maybeSessionId;
8506
8906
  try {
@@ -8560,11 +8960,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
8560
8960
  if (resumeData) {
8561
8961
  maybeActivateProactive(options);
8562
8962
  maybeActivateBrief(options);
8563
- await launchRepl(root, {
8564
- getFpsMetrics,
8565
- stats,
8566
- initialState: resumeData.initialState
8567
- }, {
8963
+ await launchRepl(root, { getFpsMetrics, stats, initialState: resumeData.initialState }, {
8568
8964
  ...sessionConfig,
8569
8965
  mainThreadAgentDefinition: resumeData.restoredAgentDef ?? mainThreadAgentDefinition,
8570
8966
  initialMessages: resumeData.messages,
@@ -8574,11 +8970,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
8574
8970
  initialAgentColor: resumeData.agentColor
8575
8971
  }, renderAndRun);
8576
8972
  } else {
8577
- await launchResumeChooser(root, {
8578
- getFpsMetrics,
8579
- stats,
8580
- initialState
8581
- }, getWorktreePaths(getOriginalCwd()), {
8973
+ await launchResumeChooser(root, { getFpsMetrics, stats, initialState }, getWorktreePaths(getOriginalCwd()), {
8582
8974
  ...sessionConfig,
8583
8975
  initialSearchQuery: searchTerm,
8584
8976
  forkSession: options.forkSession,
@@ -8592,29 +8984,48 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
8592
8984
  maybeActivateBrief(options);
8593
8985
  if (false) {}
8594
8986
  let deepLinkBanner = null;
8595
- if (false) {}
8987
+ if (true) {
8988
+ if (options.deepLinkOrigin) {
8989
+ logEvent("tengu_deep_link_opened", {
8990
+ has_prefill: Boolean(options.prefill),
8991
+ has_repo: Boolean(options.deepLinkRepo)
8992
+ });
8993
+ deepLinkBanner = createSystemMessage(buildDeepLinkBanner({
8994
+ cwd: getCwd(),
8995
+ prefillLength: options.prefill?.length,
8996
+ repo: options.deepLinkRepo,
8997
+ lastFetch: options.deepLinkLastFetch !== undefined ? new Date(options.deepLinkLastFetch) : undefined
8998
+ }), "warning");
8999
+ } else if (options.prefill) {
9000
+ deepLinkBanner = createSystemMessage("Launched with a pre-filled prompt \u2014 review it before pressing Enter.", "warning");
9001
+ }
9002
+ }
8596
9003
  const initialMessages = deepLinkBanner ? [deepLinkBanner, ...hookMessages] : hookMessages.length > 0 ? hookMessages : undefined;
8597
- await launchRepl(root, {
8598
- getFpsMetrics,
8599
- stats,
8600
- initialState
8601
- }, {
9004
+ await launchRepl(root, { getFpsMetrics, stats, initialState }, {
8602
9005
  ...sessionConfig,
8603
9006
  initialMessages,
8604
9007
  pendingHookMessages
8605
9008
  }, renderAndRun);
8606
9009
  }
8607
- }).version(`${MACRO.VERSION} (Claude Code)`, "-v, --version", "Output the version number");
9010
+ }).version("2.1.888 (Claude Code)", "-v, --version", "Output the version number");
8608
9011
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
8609
9012
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
8610
9013
  if (canUserConfigureAdvisor()) {
8611
9014
  program2.addOption(new Option("--advisor <model>", "Enable the server-side advisor tool with the specified model (alias or full ID).").hideHelp());
8612
9015
  }
9016
+ if (process.env.USER_TYPE === "ant") {
9017
+ program2.addOption(new Option("--delegate-permissions", "[ANT-ONLY] Alias for --permission-mode auto.").implies({ permissionMode: "auto" }));
9018
+ program2.addOption(new Option("--dangerously-skip-permissions-with-classifiers", "[ANT-ONLY] Deprecated alias for --permission-mode auto.").hideHelp().implies({ permissionMode: "auto" }));
9019
+ program2.addOption(new Option("--afk", "[ANT-ONLY] Deprecated alias for --permission-mode auto.").hideHelp().implies({ permissionMode: "auto" }));
9020
+ program2.addOption(new Option("--tasks [id]", '[ANT-ONLY] Tasks mode: watch for tasks and auto-process them. Optional id is used as both the task list ID and agent ID (defaults to "tasklist").').argParser(String).hideHelp());
9021
+ program2.option("--agent-teams", "[ANT-ONLY] Force Claude to use multi-agent mode for solving problems", () => true);
9022
+ }
8613
9023
  if (false) {}
8614
9024
  if (false) {}
8615
9025
  if (false) {}
8616
- if (false) {}
8617
- if (false) {}
9026
+ if (true) {
9027
+ program2.addOption(new Option("--brief", "Enable SendUserMessage tool for agent-to-user communication"));
9028
+ }
8618
9029
  if (false) {}
8619
9030
  if (false) {}
8620
9031
  program2.addOption(new Option("--agent-id <id>", "Teammate agent ID").hideHelp());
@@ -8640,56 +9051,36 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
8640
9051
  return program2;
8641
9052
  }
8642
9053
  const mcp = program2.command("mcp").description("Configure and manage MCP servers").configureHelp(createSortedHelpConfig()).enablePositionalOptions();
8643
- mcp.command("serve").description(`Start the Claude Code MCP server`).option("-d, --debug", "Enable debug mode", () => true).option("--verbose", "Override verbose mode setting from config", () => true).action(async ({
8644
- debug,
8645
- verbose
8646
- }) => {
8647
- const {
8648
- mcpServeHandler
8649
- } = await import("./chunk-5xz7ts0k.js");
8650
- await mcpServeHandler({
8651
- debug,
8652
- verbose
8653
- });
9054
+ mcp.command("serve").description(`Start the Claude Code MCP server`).option("-d, --debug", "Enable debug mode", () => true).option("--verbose", "Override verbose mode setting from config", () => true).action(async ({ debug, verbose }) => {
9055
+ const { mcpServeHandler } = await import("./chunk-g0vh71q6.js");
9056
+ await mcpServeHandler({ debug, verbose });
8654
9057
  });
8655
9058
  registerMcpAddCommand(mcp);
8656
9059
  if (isXaaEnabled()) {
8657
9060
  registerMcpXaaIdpCommand(mcp);
8658
9061
  }
8659
9062
  mcp.command("remove <name>").description("Remove an MCP server").option("-s, --scope <scope>", "Configuration scope (local, user, or project) - if not specified, removes from whichever scope it exists in").action(async (name, options) => {
8660
- const {
8661
- mcpRemoveHandler
8662
- } = await import("./chunk-5xz7ts0k.js");
9063
+ const { mcpRemoveHandler } = await import("./chunk-g0vh71q6.js");
8663
9064
  await mcpRemoveHandler(name, options);
8664
9065
  });
8665
9066
  mcp.command("list").description("List configured MCP servers. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async () => {
8666
- const {
8667
- mcpListHandler
8668
- } = await import("./chunk-5xz7ts0k.js");
9067
+ const { mcpListHandler } = await import("./chunk-g0vh71q6.js");
8669
9068
  await mcpListHandler();
8670
9069
  });
8671
9070
  mcp.command("get <name>").description("Get details about an MCP server. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async (name) => {
8672
- const {
8673
- mcpGetHandler
8674
- } = await import("./chunk-5xz7ts0k.js");
9071
+ const { mcpGetHandler } = await import("./chunk-g0vh71q6.js");
8675
9072
  await mcpGetHandler(name);
8676
9073
  });
8677
9074
  mcp.command("add-json <name> <json>").description("Add an MCP server (stdio or SSE) with a JSON string").option("-s, --scope <scope>", "Configuration scope (local, user, or project)", "local").option("--client-secret", "Prompt for OAuth client secret (or set MCP_CLIENT_SECRET env var)").action(async (name, json, options) => {
8678
- const {
8679
- mcpAddJsonHandler
8680
- } = await import("./chunk-5xz7ts0k.js");
9075
+ const { mcpAddJsonHandler } = await import("./chunk-g0vh71q6.js");
8681
9076
  await mcpAddJsonHandler(name, json, options);
8682
9077
  });
8683
9078
  mcp.command("add-from-claude-desktop").description("Import MCP servers from Claude Desktop (Mac and WSL only)").option("-s, --scope <scope>", "Configuration scope (local, user, or project)", "local").action(async (options) => {
8684
- const {
8685
- mcpAddFromDesktopHandler
8686
- } = await import("./chunk-5xz7ts0k.js");
9079
+ const { mcpAddFromDesktopHandler } = await import("./chunk-g0vh71q6.js");
8687
9080
  await mcpAddFromDesktopHandler(options);
8688
9081
  });
8689
9082
  mcp.command("reset-project-choices").description("Reset all approved and rejected project-scoped (.mcp.json) servers within this project").action(async () => {
8690
- const {
8691
- mcpResetChoicesHandler
8692
- } = await import("./chunk-5xz7ts0k.js");
9083
+ const { mcpResetChoicesHandler } = await import("./chunk-g0vh71q6.js");
8693
9084
  await mcpResetChoicesHandler();
8694
9085
  });
8695
9086
  if (false) {}
@@ -8702,110 +9093,74 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
8702
9093
  console: useConsole,
8703
9094
  claudeai
8704
9095
  }) => {
8705
- const {
8706
- authLogin
8707
- } = await import("./chunk-vf3qxte3.js");
8708
- await authLogin({
8709
- email,
8710
- sso,
8711
- console: useConsole,
8712
- claudeai
8713
- });
9096
+ const { authLogin } = await import("./chunk-1xj1yz5n.js");
9097
+ await authLogin({ email, sso, console: useConsole, claudeai });
8714
9098
  });
8715
9099
  auth.command("status").description("Show authentication status").option("--json", "Output as JSON (default)").option("--text", "Output as human-readable text").action(async (opts) => {
8716
- const {
8717
- authStatus
8718
- } = await import("./chunk-vf3qxte3.js");
9100
+ const { authStatus } = await import("./chunk-1xj1yz5n.js");
8719
9101
  await authStatus(opts);
8720
9102
  });
8721
9103
  auth.command("logout").description("Log out from your Anthropic account").action(async () => {
8722
- const {
8723
- authLogout
8724
- } = await import("./chunk-vf3qxte3.js");
9104
+ const { authLogout } = await import("./chunk-1xj1yz5n.js");
8725
9105
  await authLogout();
8726
9106
  });
8727
9107
  const coworkOption = () => new Option("--cowork", "Use cowork_plugins directory").hideHelp();
8728
9108
  const pluginCmd = program2.command("plugin").alias("plugins").description("Manage Claude Code plugins").configureHelp(createSortedHelpConfig());
8729
9109
  pluginCmd.command("validate <path>").description("Validate a plugin or marketplace manifest").addOption(coworkOption()).action(async (manifestPath, options) => {
8730
- const {
8731
- pluginValidateHandler
8732
- } = await import("./chunk-gdp8wgnd.js");
9110
+ const { pluginValidateHandler } = await import("./chunk-e8b9gcwf.js");
8733
9111
  await pluginValidateHandler(manifestPath, options);
8734
9112
  });
8735
9113
  pluginCmd.command("list").description("List installed plugins").option("--json", "Output as JSON").option("--available", "Include available plugins from marketplaces (requires --json)").addOption(coworkOption()).action(async (options) => {
8736
- const {
8737
- pluginListHandler
8738
- } = await import("./chunk-gdp8wgnd.js");
9114
+ const { pluginListHandler } = await import("./chunk-e8b9gcwf.js");
8739
9115
  await pluginListHandler(options);
8740
9116
  });
8741
9117
  const marketplaceCmd = pluginCmd.command("marketplace").description("Manage Claude Code marketplaces").configureHelp(createSortedHelpConfig());
8742
9118
  marketplaceCmd.command("add <source>").description("Add a marketplace from a URL, path, or GitHub repo").addOption(coworkOption()).option("--sparse <paths...>", "Limit checkout to specific directories via git sparse-checkout (for monorepos). Example: --sparse .claude-plugin plugins").option("--scope <scope>", "Where to declare the marketplace: user (default), project, or local").action(async (source, options) => {
8743
- const {
8744
- marketplaceAddHandler
8745
- } = await import("./chunk-gdp8wgnd.js");
9119
+ const { marketplaceAddHandler } = await import("./chunk-e8b9gcwf.js");
8746
9120
  await marketplaceAddHandler(source, options);
8747
9121
  });
8748
9122
  marketplaceCmd.command("list").description("List all configured marketplaces").option("--json", "Output as JSON").addOption(coworkOption()).action(async (options) => {
8749
- const {
8750
- marketplaceListHandler
8751
- } = await import("./chunk-gdp8wgnd.js");
9123
+ const { marketplaceListHandler } = await import("./chunk-e8b9gcwf.js");
8752
9124
  await marketplaceListHandler(options);
8753
9125
  });
8754
9126
  marketplaceCmd.command("remove <name>").alias("rm").description("Remove a configured marketplace").addOption(coworkOption()).action(async (name, options) => {
8755
- const {
8756
- marketplaceRemoveHandler
8757
- } = await import("./chunk-gdp8wgnd.js");
9127
+ const { marketplaceRemoveHandler } = await import("./chunk-e8b9gcwf.js");
8758
9128
  await marketplaceRemoveHandler(name, options);
8759
9129
  });
8760
9130
  marketplaceCmd.command("update [name]").description("Update marketplace(s) from their source - updates all if no name specified").addOption(coworkOption()).action(async (name, options) => {
8761
- const {
8762
- marketplaceUpdateHandler
8763
- } = await import("./chunk-gdp8wgnd.js");
9131
+ const { marketplaceUpdateHandler } = await import("./chunk-e8b9gcwf.js");
8764
9132
  await marketplaceUpdateHandler(name, options);
8765
9133
  });
8766
9134
  pluginCmd.command("install <plugin>").alias("i").description("Install a plugin from available marketplaces (use plugin@marketplace for specific marketplace)").option("-s, --scope <scope>", "Installation scope: user, project, or local", "user").addOption(coworkOption()).action(async (plugin, options) => {
8767
- const {
8768
- pluginInstallHandler
8769
- } = await import("./chunk-gdp8wgnd.js");
9135
+ const { pluginInstallHandler } = await import("./chunk-e8b9gcwf.js");
8770
9136
  await pluginInstallHandler(plugin, options);
8771
9137
  });
8772
9138
  pluginCmd.command("uninstall <plugin>").alias("remove").alias("rm").description("Uninstall an installed plugin").option("-s, --scope <scope>", "Uninstall from scope: user, project, or local", "user").option("--keep-data", "Preserve the plugin's persistent data directory (~/.claude/plugins/data/{id}/)").addOption(coworkOption()).action(async (plugin, options) => {
8773
- const {
8774
- pluginUninstallHandler
8775
- } = await import("./chunk-gdp8wgnd.js");
9139
+ const { pluginUninstallHandler } = await import("./chunk-e8b9gcwf.js");
8776
9140
  await pluginUninstallHandler(plugin, options);
8777
9141
  });
8778
9142
  pluginCmd.command("enable <plugin>").description("Enable a disabled plugin").option("-s, --scope <scope>", `Installation scope: ${VALID_INSTALLABLE_SCOPES.join(", ")} (default: auto-detect)`).addOption(coworkOption()).action(async (plugin, options) => {
8779
- const {
8780
- pluginEnableHandler
8781
- } = await import("./chunk-gdp8wgnd.js");
9143
+ const { pluginEnableHandler } = await import("./chunk-e8b9gcwf.js");
8782
9144
  await pluginEnableHandler(plugin, options);
8783
9145
  });
8784
9146
  pluginCmd.command("disable [plugin]").description("Disable an enabled plugin").option("-a, --all", "Disable all enabled plugins").option("-s, --scope <scope>", `Installation scope: ${VALID_INSTALLABLE_SCOPES.join(", ")} (default: auto-detect)`).addOption(coworkOption()).action(async (plugin, options) => {
8785
- const {
8786
- pluginDisableHandler
8787
- } = await import("./chunk-gdp8wgnd.js");
9147
+ const { pluginDisableHandler } = await import("./chunk-e8b9gcwf.js");
8788
9148
  await pluginDisableHandler(plugin, options);
8789
9149
  });
8790
9150
  pluginCmd.command("update <plugin>").description("Update a plugin to the latest version (restart required to apply)").option("-s, --scope <scope>", `Installation scope: ${VALID_UPDATE_SCOPES.join(", ")} (default: user)`).addOption(coworkOption()).action(async (plugin, options) => {
8791
- const {
8792
- pluginUpdateHandler
8793
- } = await import("./chunk-gdp8wgnd.js");
9151
+ const { pluginUpdateHandler } = await import("./chunk-e8b9gcwf.js");
8794
9152
  await pluginUpdateHandler(plugin, options);
8795
9153
  });
8796
9154
  program2.command("setup-token").description("Set up a long-lived authentication token (requires Claude subscription)").action(async () => {
8797
- const [{
8798
- setupTokenHandler
8799
- }, {
8800
- createRoot
8801
- }] = await Promise.all([import("./chunk-zvbpaaa1.js"), import("./chunk-mzy911jq.js")]);
9155
+ const [{ setupTokenHandler }, { createRoot }] = await Promise.all([
9156
+ import("./chunk-kz3ctzg3.js"),
9157
+ import("./chunk-3ewzhjyb.js")
9158
+ ]);
8802
9159
  const root = await createRoot(getBaseRenderOptions(false));
8803
9160
  await setupTokenHandler(root);
8804
9161
  });
8805
9162
  program2.command("agents").description("List configured agents").option("--setting-sources <sources>", "Comma-separated list of setting sources to load (user, project, local).").action(async () => {
8806
- const {
8807
- agentsHandler
8808
- } = await import("./chunk-0w63x62y.js");
9163
+ const { agentsHandler } = await import("./chunk-181q7ysj.js");
8809
9164
  await agentsHandler();
8810
9165
  process.exit(0);
8811
9166
  });
@@ -8813,29 +9168,90 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
8813
9168
  if (false) {}
8814
9169
  if (false) {}
8815
9170
  program2.command("doctor").description("Check the health of your Claude Code auto-updater. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async () => {
8816
- const [{
8817
- doctorHandler
8818
- }, {
8819
- createRoot
8820
- }] = await Promise.all([import("./chunk-zvbpaaa1.js"), import("./chunk-mzy911jq.js")]);
9171
+ const [{ doctorHandler }, { createRoot }] = await Promise.all([
9172
+ import("./chunk-kz3ctzg3.js"),
9173
+ import("./chunk-3ewzhjyb.js")
9174
+ ]);
8821
9175
  const root = await createRoot(getBaseRenderOptions(false));
8822
9176
  await doctorHandler(root);
8823
9177
  });
8824
9178
  program2.command("update").alias("upgrade").description("Check for updates and install if available").action(async () => {
8825
- const {
8826
- update
8827
- } = await import("./chunk-77czbpcq.js");
9179
+ const { update } = await import("./chunk-76pa90ge.js");
8828
9180
  await update();
8829
9181
  });
8830
- if (false) {}
8831
- if (false) {}
9182
+ if (process.env.USER_TYPE === "ant") {
9183
+ program2.command("up").description('[ANT-ONLY] Initialize or upgrade the local dev environment using the "# claude up" section of the nearest CLAUDE.md').action(async () => {
9184
+ const { up } = await import("./chunk-ppwjyveh.js");
9185
+ await up();
9186
+ });
9187
+ }
9188
+ if (process.env.USER_TYPE === "ant") {
9189
+ program2.command("rollback [target]").description(`[ANT-ONLY] Roll back to a previous release
9190
+
9191
+ Examples:
9192
+ claude rollback Go 1 version back from current
9193
+ claude rollback 3 Go 3 versions back from current
9194
+ claude rollback 2.0.73-dev.20251217.t190658 Roll back to a specific version`).option("-l, --list", "List recent published versions with ages").option("--dry-run", "Show what would be installed without installing").option("--safe", "Roll back to the server-pinned safe version (set by oncall during incidents)").action(async (target, options) => {
9195
+ const { rollback } = await import("./chunk-x6r4v44b.js");
9196
+ await rollback(target, options);
9197
+ });
9198
+ }
8832
9199
  program2.command("install [target]").description("Install Claude Code native build. Use [target] to specify version (stable, latest, or specific version)").option("--force", "Force installation even if already installed").action(async (target, options) => {
8833
- const {
8834
- installHandler
8835
- } = await import("./chunk-zvbpaaa1.js");
9200
+ const { installHandler } = await import("./chunk-kz3ctzg3.js");
8836
9201
  await installHandler(target, options);
8837
9202
  });
8838
- if (false) {}
9203
+ if (process.env.USER_TYPE === "ant") {
9204
+ const validateLogId = (value) => {
9205
+ const maybeSessionId = validateUuid(value);
9206
+ if (maybeSessionId)
9207
+ return maybeSessionId;
9208
+ return Number(value);
9209
+ };
9210
+ program2.command("log").description("[ANT-ONLY] Manage conversation logs.").argument("[number|sessionId]", "A number (0, 1, 2, etc.) to display a specific log, or the sesssion ID (uuid) of a log", validateLogId).action(async (logId) => {
9211
+ const { logHandler } = await import("./chunk-2fwze72g.js");
9212
+ await logHandler(logId);
9213
+ });
9214
+ program2.command("error").description("[ANT-ONLY] View error logs. Optionally provide a number (0, -1, -2, etc.) to display a specific log.").argument("[number]", "A number (0, 1, 2, etc.) to display a specific log", parseInt).action(async (number) => {
9215
+ const { errorHandler } = await import("./chunk-2fwze72g.js");
9216
+ await errorHandler(number);
9217
+ });
9218
+ program2.command("export").description("[ANT-ONLY] Export a conversation to a text file.").usage("<source> <outputFile>").argument("<source>", "Session ID, log index (0, 1, 2...), or path to a .json/.jsonl log file").argument("<outputFile>", "Output file path for the exported text").addHelpText("after", `
9219
+ Examples:
9220
+ $ claude export 0 conversation.txt Export conversation at log index 0
9221
+ $ claude export <uuid> conversation.txt Export conversation by session ID
9222
+ $ claude export input.json output.txt Render JSON log file to text
9223
+ $ claude export <uuid>.jsonl output.txt Render JSONL session file to text`).action(async (source, outputFile) => {
9224
+ const { exportHandler } = await import("./chunk-2fwze72g.js");
9225
+ await exportHandler(source, outputFile);
9226
+ });
9227
+ if (process.env.USER_TYPE === "ant") {
9228
+ const taskCmd = program2.command("task").description("[ANT-ONLY] Manage task list tasks");
9229
+ taskCmd.command("create <subject>").description("Create a new task").option("-d, --description <text>", "Task description").option("-l, --list <id>", 'Task list ID (defaults to "tasklist")').action(async (subject, opts) => {
9230
+ const { taskCreateHandler } = await import("./chunk-2fwze72g.js");
9231
+ await taskCreateHandler(subject, opts);
9232
+ });
9233
+ taskCmd.command("list").description("List all tasks").option("-l, --list <id>", 'Task list ID (defaults to "tasklist")').option("--pending", "Show only pending tasks").option("--json", "Output as JSON").action(async (opts) => {
9234
+ const { taskListHandler } = await import("./chunk-2fwze72g.js");
9235
+ await taskListHandler(opts);
9236
+ });
9237
+ taskCmd.command("get <id>").description("Get details of a task").option("-l, --list <id>", 'Task list ID (defaults to "tasklist")').action(async (id, opts) => {
9238
+ const { taskGetHandler } = await import("./chunk-2fwze72g.js");
9239
+ await taskGetHandler(id, opts);
9240
+ });
9241
+ taskCmd.command("update <id>").description("Update a task").option("-l, --list <id>", 'Task list ID (defaults to "tasklist")').option("-s, --status <status>", `Set status (${TASK_STATUSES.join(", ")})`).option("--subject <text>", "Update subject").option("-d, --description <text>", "Update description").option("--owner <agentId>", "Set owner").option("--clear-owner", "Clear owner").action(async (id, opts) => {
9242
+ const { taskUpdateHandler } = await import("./chunk-2fwze72g.js");
9243
+ await taskUpdateHandler(id, opts);
9244
+ });
9245
+ taskCmd.command("dir").description("Show the tasks directory path").option("-l, --list <id>", 'Task list ID (defaults to "tasklist")').action(async (opts) => {
9246
+ const { taskDirHandler } = await import("./chunk-2fwze72g.js");
9247
+ await taskDirHandler(opts);
9248
+ });
9249
+ }
9250
+ program2.command("completion <shell>", { hidden: true }).description("Generate shell completion script (bash, zsh, or fish)").option("--output <file>", "Write completion script directly to a file instead of stdout").action(async (shell, opts) => {
9251
+ const { completionHandler } = await import("./chunk-2fwze72g.js");
9252
+ await completionHandler(shell, opts, program2);
9253
+ });
9254
+ }
8839
9255
  profileCheckpoint("run_before_parse");
8840
9256
  await program2.parseAsync(process.argv);
8841
9257
  profileCheckpoint("run_after_parse");
@@ -8904,7 +9320,14 @@ async function logTenguInit({
8904
9320
  assistantActivationPath
8905
9321
  },
8906
9322
  autoUpdatesChannel: getInitialSettings().autoUpdatesChannel ?? "latest",
8907
- ...{}
9323
+ ...process.env.USER_TYPE === "ant" ? (() => {
9324
+ const cwd = getCwd();
9325
+ const gitRoot = findGitRoot(cwd);
9326
+ const rp = gitRoot ? relative(gitRoot, cwd) || "." : undefined;
9327
+ return rp ? {
9328
+ relativeProjectPath: rp
9329
+ } : {};
9330
+ })() : {}
8908
9331
  });
8909
9332
  } catch (error) {
8910
9333
  logError(error);
@@ -8914,15 +9337,13 @@ function maybeActivateProactive(options) {
8914
9337
  if (false) {}
8915
9338
  }
8916
9339
  function maybeActivateBrief(options) {
8917
- if (true)
8918
- return;
9340
+ if (false)
9341
+ ;
8919
9342
  const briefFlag = options.brief;
8920
9343
  const briefEnv = isEnvTruthy(process.env.CLAUDE_CODE_BRIEF);
8921
9344
  if (!briefFlag && !briefEnv)
8922
9345
  return;
8923
- const {
8924
- isBriefEntitled
8925
- } = (init_BriefTool(), __toCommonJS(exports_BriefTool));
9346
+ const { isBriefEntitled } = (init_BriefTool(), __toCommonJS(exports_BriefTool));
8926
9347
  const entitled = isBriefEntitled();
8927
9348
  if (entitled) {
8928
9349
  setUserMsgOptIn(true);