claude-code-best 1.3.6 → 1.4.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 (275) hide show
  1. package/README.md +1 -0
  2. package/dist/{chunk-snpjjn5q.js → chunk-00b2znqm.js} +2 -2
  3. package/dist/{chunk-cy7hbg8h.js → chunk-0asd58w2.js} +2 -2
  4. package/dist/{chunk-4zkbp6fk.js → chunk-0ctfznp2.js} +85 -84
  5. package/dist/{chunk-3b0p0vrc.js → chunk-0kp39at8.js} +40 -40
  6. package/dist/{chunk-xfe2m04z.js → chunk-0n0r9fwa.js} +1 -1
  7. package/dist/{chunk-ttqs2rma.js → chunk-0qe6jzfm.js} +28 -28
  8. package/dist/{chunk-m1xjfwvq.js → chunk-0rbezx7s.js} +28 -28
  9. package/dist/{chunk-r1pxpxxk.js → chunk-0w8eb8gt.js} +2 -2
  10. package/dist/{chunk-d267stxj.js → chunk-0z0m6mm5.js} +1 -1
  11. package/dist/{chunk-r6pe7y6z.js → chunk-157v5wtn.js} +2 -2
  12. package/dist/{chunk-m6ee4m2f.js → chunk-1e8f0nx0.js} +28 -28
  13. package/dist/{chunk-6a316dkg.js → chunk-1j332jvg.js} +10 -10
  14. package/dist/{chunk-mq37sf2q.js → chunk-1neq14g8.js} +28 -28
  15. package/dist/{chunk-ttswf1a8.js → chunk-1zjrec16.js} +5 -5
  16. package/dist/{chunk-e3kwey2b.js → chunk-21pvq2fw.js} +31 -31
  17. package/dist/{chunk-12e5a806.js → chunk-25yy8wx5.js} +4 -4
  18. package/dist/{chunk-dh6khzjj.js → chunk-29p0hjfs.js} +2 -2
  19. package/dist/{chunk-j16rp8y4.js → chunk-29yjrfeq.js} +1 -1
  20. package/dist/{chunk-bem4prar.js → chunk-2apay7a3.js} +31 -31
  21. package/dist/{chunk-dbv7vcrz.js → chunk-2c4003f8.js} +28 -28
  22. package/dist/{chunk-hd98he8z.js → chunk-2eb66dha.js} +6 -6
  23. package/dist/{chunk-8q4yg5pk.js → chunk-2j4wdmkt.js} +1 -1
  24. package/dist/{chunk-w94epkj0.js → chunk-2mbctja8.js} +5 -5
  25. package/dist/{chunk-a6s9h1qh.js → chunk-2smwf3e9.js} +2 -2
  26. package/dist/{chunk-194wmkgc.js → chunk-2x5az5dc.js} +29 -29
  27. package/dist/{chunk-03881djp.js → chunk-34vnwd0v.js} +8 -8
  28. package/dist/{chunk-q0exa8dt.js → chunk-386z9vh4.js} +30 -30
  29. package/dist/{chunk-hs7qq18b.js → chunk-3ah2pq1f.js} +34 -34
  30. package/dist/{chunk-etbqf6ty.js → chunk-3c0rxf7q.js} +33 -33
  31. package/dist/{chunk-2krazyfm.js → chunk-3ef0cpf6.js} +29 -29
  32. package/dist/{chunk-35g2t0y0.js → chunk-3fjgkntc.js} +1 -1
  33. package/dist/{chunk-hw1qqgzj.js → chunk-3gtk4mh3.js} +33 -33
  34. package/dist/{chunk-4xbmk1fe.js → chunk-3gww1j1y.js} +34 -30
  35. package/dist/{chunk-xqch8m5f.js → chunk-3wjy1cpr.js} +4 -4
  36. package/dist/{chunk-3h4pyb94.js → chunk-4169yf5x.js} +2 -2
  37. package/dist/{chunk-q5v3yazb.js → chunk-43b84za2.js} +1 -1
  38. package/dist/{chunk-j1r1mywp.js → chunk-4581z0wr.js} +8 -8
  39. package/dist/{chunk-mmcr6z1m.js → chunk-45bbgebk.js} +4 -4
  40. package/dist/{chunk-1scf0v8s.js → chunk-4drmj637.js} +5 -5
  41. package/dist/{chunk-jg85npcz.js → chunk-4f4jqsza.js} +1 -1
  42. package/dist/{chunk-e0jj5paw.js → chunk-4f5xrg8h.js} +28 -28
  43. package/dist/{chunk-v6maw2x3.js → chunk-4gpt5ay1.js} +29 -29
  44. package/dist/{chunk-hda58kjk.js → chunk-4krsdy3p.js} +2 -2
  45. package/dist/{chunk-wp6axm3b.js → chunk-4m47hfh0.js} +28 -28
  46. package/dist/{chunk-hwby3r4g.js → chunk-4nf1ec4f.js} +1 -1
  47. package/dist/{chunk-f39ftn0d.js → chunk-4vj2d7dz.js} +35 -35
  48. package/dist/{chunk-rpm043xg.js → chunk-4vjvqns0.js} +3 -3
  49. package/dist/{chunk-k2m40brd.js → chunk-50xwa16q.js} +29 -29
  50. package/dist/{chunk-683cf5j7.js → chunk-53sfy7n4.js} +28 -28
  51. package/dist/{chunk-nsh75cdk.js → chunk-53vj9v9s.js} +6 -6
  52. package/dist/{chunk-byrh00bq.js → chunk-5526qw2k.js} +1 -1
  53. package/dist/{chunk-t0b0bas5.js → chunk-5840qkdv.js} +1 -1
  54. package/dist/{chunk-8xmqgp50.js → chunk-5hjsrynt.js} +1 -1
  55. package/dist/{chunk-9dgec475.js → chunk-5km8j211.js} +1 -1
  56. package/dist/{chunk-vyejsevp.js → chunk-5wzcv9gh.js} +5 -5
  57. package/dist/{chunk-pwxgff26.js → chunk-5xjn56aq.js} +3 -3
  58. package/dist/{chunk-8vkefxtt.js → chunk-5yd55bg7.js} +28 -28
  59. package/dist/{chunk-61j8wh0j.js → chunk-607fe07t.js} +28 -28
  60. package/dist/{chunk-7xnaj5zg.js → chunk-688ah6p4.js} +42 -42
  61. package/dist/{chunk-26zepstf.js → chunk-6ad36q0w.js} +3 -3
  62. package/dist/{chunk-nkvkmxw4.js → chunk-6b45etp0.js} +2 -2
  63. package/dist/{chunk-38tedxdq.js → chunk-6cqap182.js} +32 -32
  64. package/dist/{chunk-ctbkh6m5.js → chunk-6k1w8x4k.js} +29 -29
  65. package/dist/{chunk-a75g97ek.js → chunk-6sqsx9jy.js} +5 -5
  66. package/dist/{chunk-r9cy8b69.js → chunk-6wpr3tjc.js} +28 -28
  67. package/dist/{chunk-s3gzpm93.js → chunk-6yahjmr9.js} +1 -1
  68. package/dist/{chunk-dqrmn537.js → chunk-75fdprgp.js} +1 -1
  69. package/dist/{chunk-asfhkynx.js → chunk-7750n93j.js} +1 -1
  70. package/dist/{chunk-33fsprrx.js → chunk-77dn0tk8.js} +3 -3
  71. package/dist/{chunk-kw6sq28k.js → chunk-79wycw4g.js} +68 -66
  72. package/dist/{chunk-zsssgqjr.js → chunk-7cfbwd7q.js} +29 -29
  73. package/dist/{chunk-rb79txq9.js → chunk-7hftfbxa.js} +2 -2
  74. package/dist/{chunk-n35gnb9g.js → chunk-7hmy36fh.js} +121 -2
  75. package/dist/{chunk-psz76514.js → chunk-7p1esgzf.js} +1 -1
  76. package/dist/{chunk-g4fc7hyp.js → chunk-7w2h14a6.js} +5 -5
  77. package/dist/{chunk-xkfzn8zv.js → chunk-86epd45z.js} +11 -11
  78. package/dist/{chunk-m9g44vvc.js → chunk-8833n19q.js} +1 -1
  79. package/dist/{chunk-rd3w1pnm.js → chunk-8cn35yvf.js} +4 -4
  80. package/dist/{chunk-p80rbxhh.js → chunk-8favkbxx.js} +2 -2
  81. package/dist/{chunk-znpx8t4w.js → chunk-8fwh1vg6.js} +5 -5
  82. package/dist/{chunk-04hdmsbx.js → chunk-8j0cag62.js} +1 -1
  83. package/dist/{chunk-t7z61mwv.js → chunk-8n7czf03.js} +29 -29
  84. package/dist/{chunk-vyty9qyf.js → chunk-90vttb3v.js} +38 -38
  85. package/dist/{chunk-z3vynq90.js → chunk-9fsvmcz5.js} +31 -31
  86. package/dist/{chunk-f9my4m74.js → chunk-9gpr8jae.js} +29 -29
  87. package/dist/{chunk-gcxez66d.js → chunk-9je35yst.js} +3 -3
  88. package/dist/{chunk-xspp3626.js → chunk-9qbwahdr.js} +3 -3
  89. package/dist/{chunk-fdc4mbdf.js → chunk-9tgts6mc.js} +1 -1
  90. package/dist/{chunk-7qf1wt5n.js → chunk-a27gcyws.js} +2 -2
  91. package/dist/{chunk-5rezdbjk.js → chunk-a5b9swcd.js} +28 -28
  92. package/dist/{chunk-yb4zstfq.js → chunk-adjan1zm.js} +28 -28
  93. package/dist/{chunk-66s54sg3.js → chunk-agabmbjf.js} +31 -31
  94. package/dist/{chunk-k73mekxt.js → chunk-ajs8dza3.js} +28 -28
  95. package/dist/{chunk-0jcebzyj.js → chunk-akkp39da.js} +28 -28
  96. package/dist/{chunk-c3a6ss16.js → chunk-amyrs3hm.js} +2 -2
  97. package/dist/{chunk-gnq6fd5g.js → chunk-ap1ykep6.js} +1 -1
  98. package/dist/{chunk-y7sdst27.js → chunk-azksrewr.js} +34 -34
  99. package/dist/{chunk-rwyc5eh7.js → chunk-b0x349dj.js} +29 -29
  100. package/dist/{chunk-cd99ankh.js → chunk-b2vzxkee.js} +5 -5
  101. package/dist/{chunk-tbm211vs.js → chunk-beq5rrj7.js} +5 -5
  102. package/dist/{chunk-963ysvck.js → chunk-bv1k9d6v.js} +28 -28
  103. package/dist/{chunk-870vafdb.js → chunk-bx6g17ek.js} +4 -4
  104. package/dist/{chunk-mayfcyq2.js → chunk-c1jzx2gv.js} +4 -4
  105. package/dist/{chunk-vhggszd9.js → chunk-c4y7537k.js} +2 -2
  106. package/dist/{chunk-a0yw6a1m.js → chunk-ccb92crb.js} +4 -4
  107. package/dist/{chunk-fj7x7q9f.js → chunk-cd6mvmte.js} +29 -29
  108. package/dist/{chunk-6p2kydfj.js → chunk-cdqf4qst.js} +28 -28
  109. package/dist/{chunk-13pvvkd3.js → chunk-cj8t81dc.js} +28 -28
  110. package/dist/{chunk-ez3c99v0.js → chunk-cnggqnzm.js} +6 -6
  111. package/dist/{chunk-b7e8n2r7.js → chunk-cqndxy46.js} +1 -1
  112. package/dist/chunk-cr6s4vp6.js +1396 -0
  113. package/dist/{chunk-7jsk6wen.js → chunk-crvsdcfv.js} +28 -28
  114. package/dist/{chunk-h48af73s.js → chunk-cyjjqcs3.js} +29 -29
  115. package/dist/{chunk-d01wa055.js → chunk-cyxsqapw.js} +3 -3
  116. package/dist/{chunk-7whq2gjt.js → chunk-d3paf9v2.js} +28 -28
  117. package/dist/{chunk-wrxzr8y1.js → chunk-d6ecf8f1.js} +37 -37
  118. package/dist/{chunk-evbemh4j.js → chunk-d92pjy0h.js} +31 -31
  119. package/dist/{chunk-wqx2ybqh.js → chunk-deatxv64.js} +8 -8
  120. package/dist/{chunk-9nm5sbkf.js → chunk-djp9rrcq.js} +17 -17
  121. package/dist/{chunk-274pv89a.js → chunk-dtv3phgm.js} +28 -28
  122. package/dist/{chunk-knqgpzjb.js → chunk-e5mw3cyw.js} +1 -1
  123. package/dist/{chunk-pj4p53ve.js → chunk-e6rrn2tj.js} +28 -28
  124. package/dist/{chunk-ewcq3dcx.js → chunk-ebzv9705.js} +2 -2
  125. package/dist/{chunk-gv4dsg6q.js → chunk-edz2xqmx.js} +37 -37
  126. package/dist/{chunk-714yn4hd.js → chunk-egwqdd9k.js} +13 -13
  127. package/dist/{chunk-92v75fwp.js → chunk-enzrrdn4.js} +1 -1
  128. package/dist/{chunk-j1ftb6pr.js → chunk-erjs2wr4.js} +4 -4
  129. package/dist/{chunk-yhg6hhw7.js → chunk-erxndz83.js} +21 -20
  130. package/dist/{chunk-2jzsktxp.js → chunk-etg0he8j.js} +28 -28
  131. package/dist/{chunk-yk15ya1h.js → chunk-evww0yyb.js} +2 -2
  132. package/dist/{chunk-k25d0zv6.js → chunk-ew9re4pd.js} +3 -3
  133. package/dist/{chunk-tpgs71gk.js → chunk-ewb2cm8z.js} +2 -2
  134. package/dist/{chunk-w3sv9y41.js → chunk-fbs21kq9.js} +1 -1
  135. package/dist/{chunk-9vshpe8q.js → chunk-fezbtqkp.js} +37 -37
  136. package/dist/{chunk-de1831as.js → chunk-fjh0vhqw.js} +3 -3
  137. package/dist/{chunk-dchgtage.js → chunk-fsqp1hdd.js} +2 -2
  138. package/dist/{chunk-jbts6gcv.js → chunk-fsrg55vw.js} +4 -4
  139. package/dist/{chunk-2qhfqgbj.js → chunk-g3t3tpmr.js} +5 -5
  140. package/dist/{chunk-yy3dj90t.js → chunk-g5w87dmr.js} +1 -1
  141. package/dist/{chunk-95jqp7w7.js → chunk-g9t81ym4.js} +29 -29
  142. package/dist/{chunk-gd0gptts.js → chunk-gc91es60.js} +28 -28
  143. package/dist/{chunk-etv5netv.js → chunk-gfc6zk7q.js} +3 -3
  144. package/dist/{chunk-xzh7ae0a.js → chunk-gra7rch0.js} +37 -37
  145. package/dist/{chunk-995f4htk.js → chunk-gyzh9997.js} +28 -28
  146. package/dist/{chunk-9wz3jvbh.js → chunk-h65cdcmj.js} +8 -8
  147. package/dist/{chunk-3cvw39wv.js → chunk-h6wkvzrd.js} +2 -2
  148. package/dist/{chunk-9073kfry.js → chunk-hcwq2bw3.js} +5 -5
  149. package/dist/{chunk-vsrejr6p.js → chunk-hhx05ny2.js} +39 -39
  150. package/dist/{chunk-sj7m6hsp.js → chunk-hy2yy9dj.js} +1 -1
  151. package/dist/{chunk-tjwcr6x0.js → chunk-hz4cc1fy.js} +28 -28
  152. package/dist/{chunk-1gvjejsj.js → chunk-j5pcp6j1.js} +2 -2
  153. package/dist/{chunk-a6hvbf61.js → chunk-jhbtp60e.js} +4 -4
  154. package/dist/{chunk-fqpabm91.js → chunk-jjcks6sw.js} +1 -1
  155. package/dist/{chunk-b4hkf17a.js → chunk-jver0cay.js} +1 -1
  156. package/dist/{chunk-9kgh44wk.js → chunk-jz86pz25.js} +40 -40
  157. package/dist/{chunk-fcwx5cbb.js → chunk-k5kw9hyy.js} +1 -1
  158. package/dist/{chunk-jr10vd79.js → chunk-k8vb990d.js} +28 -28
  159. package/dist/{chunk-wqmza60n.js → chunk-kyvg0zcc.js} +2 -2
  160. package/dist/{chunk-p4ebkyd1.js → chunk-m007chff.js} +12 -12
  161. package/dist/{chunk-q6nvm3r5.js → chunk-m08081ys.js} +29 -29
  162. package/dist/{chunk-79y6s5n4.js → chunk-m77e1esy.js} +1 -1
  163. package/dist/{chunk-ys51gfy8.js → chunk-mcwdvkc5.js} +5 -5
  164. package/dist/{chunk-mh6e2xje.js → chunk-mdk5vcer.js} +11 -11
  165. package/dist/{chunk-mcmh43pn.js → chunk-mfmqxvy3.js} +30 -30
  166. package/dist/{chunk-eqn3qmfz.js → chunk-mg88phh5.js} +28 -28
  167. package/dist/{chunk-3tbrhape.js → chunk-mh9bbz4s.js} +2 -2
  168. package/dist/{chunk-84tfftm0.js → chunk-mhd4n6av.js} +1 -1
  169. package/dist/{chunk-h6v79pb5.js → chunk-mmc59v16.js} +336 -136
  170. package/dist/{chunk-s6xaezgh.js → chunk-mqqg7cf6.js} +3 -3
  171. package/dist/{chunk-k3yxwy95.js → chunk-mt10f1tp.js} +1 -1
  172. package/dist/{chunk-1fn2d8e6.js → chunk-mz2rbmwe.js} +31 -31
  173. package/dist/{chunk-sbafpprr.js → chunk-n4by7yk8.js} +29 -29
  174. package/dist/{chunk-svb53yk3.js → chunk-ndgnv15y.js} +29 -29
  175. package/dist/{chunk-hw4w8f8x.js → chunk-ne7y2xb5.js} +3 -3
  176. package/dist/{chunk-sk1z4m1n.js → chunk-nnbp6hww.js} +2 -2
  177. package/dist/{chunk-x3nshkcr.js → chunk-nrgyjw8e.js} +5 -5
  178. package/dist/{chunk-akc4jb4z.js → chunk-ns09xpt7.js} +1 -1
  179. package/dist/{chunk-kkq06r33.js → chunk-ns11b23b.js} +30 -30
  180. package/dist/{chunk-7pfwfh7h.js → chunk-nskrydpn.js} +28 -28
  181. package/dist/{chunk-knqbt146.js → chunk-nt5vedsr.js} +1 -1
  182. package/dist/{chunk-x1afcacf.js → chunk-nzrgdzqp.js} +2 -2
  183. package/dist/{chunk-dm2gyqck.js → chunk-p2pgnk1y.js} +28 -28
  184. package/dist/{chunk-xce2xjv1.js → chunk-p78dmmrg.js} +28 -28
  185. package/dist/{chunk-979mvrgv.js → chunk-p88crc0s.js} +4 -4
  186. package/dist/{chunk-763jzvy7.js → chunk-p9rdn455.js} +29 -29
  187. package/dist/{chunk-7k3mv7cr.js → chunk-pc4szfak.js} +5 -5
  188. package/dist/{chunk-347zaz9e.js → chunk-pp11ggs7.js} +1 -1
  189. package/dist/{chunk-ejrvwn8n.js → chunk-ptpynwv2.js} +28 -28
  190. package/dist/{chunk-9zyfkrwt.js → chunk-ptxwtjpj.js} +17 -1387
  191. package/dist/{chunk-wnff3sck.js → chunk-pzxksam8.js} +28 -28
  192. package/dist/{chunk-sqzmp660.js → chunk-q223vmcc.js} +1 -1
  193. package/dist/{chunk-ag255pqj.js → chunk-q6d7rjw1.js} +28 -28
  194. package/dist/{chunk-vsfqfbsh.js → chunk-q7e35wkk.js} +1 -1
  195. package/dist/{chunk-zx084xfr.js → chunk-qbmbmhef.js} +28 -28
  196. package/dist/{chunk-t6q0r0gs.js → chunk-qga7he5v.js} +2 -2
  197. package/dist/{chunk-tnhf35ky.js → chunk-qkwmefpm.js} +29 -29
  198. package/dist/{chunk-namrjc11.js → chunk-qpprdv6x.js} +2 -2
  199. package/dist/{chunk-89be833d.js → chunk-qqfr3g23.js} +30 -30
  200. package/dist/{chunk-21r0t9p5.js → chunk-qxy16bqn.js} +93 -1030
  201. package/dist/{chunk-90tb6xj7.js → chunk-r1gkg1zh.js} +31 -31
  202. package/dist/{chunk-ff5z5bf0.js → chunk-r4hf85nn.js} +3 -3
  203. package/dist/{chunk-pe3t1k22.js → chunk-r8cbwyz2.js} +37 -37
  204. package/dist/{chunk-vrbt94t8.js → chunk-rck3g0jk.js} +28 -28
  205. package/dist/{chunk-6e1xak8j.js → chunk-rejx7z4t.js} +1 -1
  206. package/dist/{chunk-zmdg1zhh.js → chunk-rfnh6gdw.js} +5 -5
  207. package/dist/{chunk-s5yykd80.js → chunk-rywnz223.js} +4 -4
  208. package/dist/{chunk-jbhhp82d.js → chunk-s0c72pgz.js} +29 -29
  209. package/dist/{chunk-v4bx30kd.js → chunk-s4erjnky.js} +28 -28
  210. package/dist/{chunk-g04kk7dj.js → chunk-s7gt9pbp.js} +29 -29
  211. package/dist/{chunk-57vnbap8.js → chunk-s95y1wsx.js} +3 -3
  212. package/dist/{chunk-dnqrmqfa.js → chunk-sfs23jb0.js} +28 -28
  213. package/dist/{chunk-e1hz6df1.js → chunk-sjr9vygr.js} +3 -3
  214. package/dist/{chunk-ed8b4mw3.js → chunk-smskbnfh.js} +4 -4
  215. package/dist/{chunk-6174c2qe.js → chunk-swjmy1ec.js} +4 -4
  216. package/dist/{chunk-3me1hah2.js → chunk-t5vfbd78.js} +28 -28
  217. package/dist/{chunk-0z70mbgk.js → chunk-t76a178c.js} +28 -28
  218. package/dist/{chunk-d7mjq8wa.js → chunk-tgav5bz9.js} +86 -85
  219. package/dist/chunk-tr91zear.js +1012 -0
  220. package/dist/{chunk-06zzah5k.js → chunk-ts2892h4.js} +6 -6
  221. package/dist/{chunk-61q7vfrc.js → chunk-txz05nf1.js} +1 -1
  222. package/dist/{chunk-1ynhxc03.js → chunk-v3kfrhgg.js} +1 -1
  223. package/dist/chunk-v47r6dev.js +3799 -0
  224. package/dist/{chunk-8wzwqd1z.js → chunk-v7vav1dg.js} +29 -29
  225. package/dist/{chunk-9hcw3b4h.js → chunk-v88g6btg.js} +2 -2
  226. package/dist/{chunk-tcgzwpm2.js → chunk-v9bnkmpp.js} +29 -29
  227. package/dist/{chunk-rjgn3yzv.js → chunk-vchfbqh0.js} +1 -1
  228. package/dist/{chunk-2zzh0pds.js → chunk-vcv8kqah.js} +31 -31
  229. package/dist/{chunk-mbetxrea.js → chunk-vdv5g7q5.js} +29 -29
  230. package/dist/{chunk-s337frnp.js → chunk-vjbm6e89.js} +8 -8
  231. package/dist/{chunk-dm2wnjrr.js → chunk-vjvstd86.js} +1 -1
  232. package/dist/{chunk-ty49mrty.js → chunk-vmb323h1.js} +115 -115
  233. package/dist/{chunk-p8vf12kz.js → chunk-vq51wj3f.js} +28 -28
  234. package/dist/{chunk-e4518h45.js → chunk-vqrph16d.js} +2 -2
  235. package/dist/{chunk-w43ks9ey.js → chunk-vvsc8651.js} +36 -36
  236. package/dist/{chunk-xfe479s0.js → chunk-w5b8wpff.js} +29 -29
  237. package/dist/{chunk-3synjm2x.js → chunk-w5f4g9ty.js} +1 -1
  238. package/dist/{chunk-2k9fbk1p.js → chunk-w64rnehj.js} +5 -5
  239. package/dist/{chunk-g0ab48tb.js → chunk-w74twxev.js} +5 -5
  240. package/dist/{chunk-1mygjwf9.js → chunk-w8hh0w92.js} +28 -28
  241. package/dist/{chunk-7xxqf2r6.js → chunk-wcxc5m91.js} +6 -0
  242. package/dist/{chunk-eqvsjpvm.js → chunk-wh42d494.js} +29 -29
  243. package/dist/{chunk-j6493m6s.js → chunk-wm9c1620.js} +1 -1
  244. package/dist/{chunk-n562n1g9.js → chunk-x0qzkte0.js} +1 -1
  245. package/dist/{chunk-qz32t082.js → chunk-x3p67k4j.js} +1 -1
  246. package/dist/{chunk-eef1npre.js → chunk-x7jtxq14.js} +1 -1
  247. package/dist/{chunk-q2q31ng9.js → chunk-xayw54gs.js} +5 -5
  248. package/dist/{chunk-tj6kayqs.js → chunk-xe4dvfz2.js} +28 -28
  249. package/dist/{chunk-e1hqpkj1.js → chunk-xjcmfp13.js} +31 -31
  250. package/dist/{chunk-kd2g8s3v.js → chunk-xmretc2b.js} +28 -28
  251. package/dist/{chunk-vs95kmdc.js → chunk-xqf27kff.js} +28 -28
  252. package/dist/{chunk-epkw6jp6.js → chunk-xsevshsa.js} +4 -4
  253. package/dist/{chunk-jj2c3dtz.js → chunk-y0fvv8rp.js} +3 -3
  254. package/dist/{chunk-n3grbsgp.js → chunk-y2x0t2gb.js} +34 -34
  255. package/dist/{chunk-rb67t4fq.js → chunk-y315v6st.js} +12 -12
  256. package/dist/{chunk-a1pm2zwv.js → chunk-y81y5v3d.js} +30 -30
  257. package/dist/{chunk-648z0z9m.js → chunk-yatby2yh.js} +1 -1
  258. package/dist/{chunk-2fn6s9rq.js → chunk-yg0h97bm.js} +28 -28
  259. package/dist/{chunk-3caf4y23.js → chunk-ypgs2acw.js} +5 -5
  260. package/dist/{chunk-nhpkz83c.js → chunk-ysdxmhpv.js} +31 -31
  261. package/dist/{chunk-t7a8ch9m.js → chunk-ytwnb2km.js} +28 -28
  262. package/dist/{chunk-8200svcn.js → chunk-z6gvvfmf.js} +2 -2
  263. package/dist/{chunk-5zbm7te6.js → chunk-z6q66vf8.js} +1 -1
  264. package/dist/{chunk-7p3kar3b.js → chunk-z9f8mvd1.js} +34 -34
  265. package/dist/{chunk-kmnz4ygv.js → chunk-zda436nm.js} +2 -2
  266. package/dist/{chunk-4mtfrpdt.js → chunk-zddcrj90.js} +28 -28
  267. package/dist/{chunk-c209ascy.js → chunk-zh7z8zmq.js} +3 -3
  268. package/dist/{chunk-veeeke8r.js → chunk-zhq7vk2g.js} +5 -5
  269. package/dist/{chunk-42f9j6bp.js → chunk-zjhz0qyc.js} +30 -30
  270. package/dist/{chunk-4451b82w.js → chunk-zkv7atzf.js} +39 -39
  271. package/dist/{chunk-rzgj07hb.js → chunk-zrrd9egx.js} +29 -29
  272. package/dist/{chunk-9r28w6ye.js → chunk-zttmdag3.js} +1 -1
  273. package/dist/cli-node.js +0 -32
  274. package/dist/cli.js +14 -8
  275. package/package.json +19 -11
@@ -0,0 +1,3799 @@
1
+ // @bun
2
+ import {
3
+ QueryEngine
4
+ } from "./chunk-tr91zear.js";
5
+ import"./chunk-cr6s4vp6.js";
6
+ import"./chunk-w5f4g9ty.js";
7
+ import"./chunk-cnsj3vq2.js";
8
+ import"./chunk-rn0v1hk8.js";
9
+ import {
10
+ applySafeConfigEnvironmentVariables,
11
+ deserializeMessages,
12
+ getCommands,
13
+ getDefaultAppState,
14
+ getEmptyToolPermissionContext,
15
+ getLastSessionLog,
16
+ getModelOptions,
17
+ getTools,
18
+ init_AppStateStore,
19
+ init_Tool,
20
+ init_commands1 as init_commands,
21
+ init_conversationRecovery,
22
+ init_listSessionsImpl,
23
+ init_managedEnv,
24
+ init_modelOptions,
25
+ init_sessionStorage,
26
+ init_tools1 as init_tools,
27
+ listSessionsImpl,
28
+ sessionIdExists
29
+ } from "./chunk-mmc59v16.js";
30
+ import"./chunk-qe3qr56q.js";
31
+ import"./chunk-75fdprgp.js";
32
+ import"./chunk-x0qzkte0.js";
33
+ import"./chunk-et824jj8.js";
34
+ import"./chunk-43b84za2.js";
35
+ import"./chunk-var1et7e.js";
36
+ import"./chunk-jjcks6sw.js";
37
+ import"./chunk-2gzv8nrw.js";
38
+ import"./chunk-ehtwnxpg.js";
39
+ import"./chunk-z6gvvfmf.js";
40
+ import"./chunk-5km8j211.js";
41
+ import"./chunk-2f6hs25r.js";
42
+ import"./chunk-8833n19q.js";
43
+ import"./chunk-vjvstd86.js";
44
+ import"./chunk-cgfdkzhb.js";
45
+ import"./chunk-s9nr589x.js";
46
+ import"./chunk-4169yf5x.js";
47
+ import {
48
+ FileStateCache,
49
+ init_fileStateCache
50
+ } from "./chunk-zttmdag3.js";
51
+ import"./chunk-5526qw2k.js";
52
+ import"./chunk-4f4jqsza.js";
53
+ import"./chunk-m8v1x99r.js";
54
+ import"./chunk-t0twk3e5.js";
55
+ import"./chunk-ps49ymvj.js";
56
+ import"./chunk-t4kcvmes.js";
57
+ import"./chunk-3fjgkntc.js";
58
+ import"./chunk-5wb5ym2h.js";
59
+ import"./chunk-9tgts6mc.js";
60
+ import"./chunk-vpp13z80.js";
61
+ import"./chunk-4jm600zv.js";
62
+ import"./chunk-2dsqf7sp.js";
63
+ import"./chunk-v3kfrhgg.js";
64
+ import"./chunk-rkmwx1yz.js";
65
+ import"./chunk-mhd4n6av.js";
66
+ import"./chunk-ykr5qx9v.js";
67
+ import"./chunk-77dn0tk8.js";
68
+ import"./chunk-nt5vedsr.js";
69
+ import"./chunk-yatby2yh.js";
70
+ import"./chunk-erxndz83.js";
71
+ import"./chunk-j50zvssc.js";
72
+ import"./chunk-wcxc5m91.js";
73
+ import {
74
+ enableConfigs,
75
+ getMainLoopModel,
76
+ init_config1 as init_config,
77
+ init_model
78
+ } from "./chunk-4581z0wr.js";
79
+ import"./chunk-hnx0eg6x.js";
80
+ import"./chunk-2j4wdmkt.js";
81
+ import"./chunk-j06y02aw.js";
82
+ import"./chunk-zwarn9h7.js";
83
+ import"./chunk-6kpbgc5w.js";
84
+ import"./chunk-7hmy36fh.js";
85
+ import"./chunk-64c1avct.js";
86
+ import"./chunk-8g5pe1gr.js";
87
+ import"./chunk-7nebst32.js";
88
+ import"./chunk-4cp6193g.js";
89
+ import {
90
+ init_v4
91
+ } from "./chunk-8g747a8x.js";
92
+ import {
93
+ exports_external
94
+ } from "./chunk-d7886r6a.js";
95
+ import"./chunk-90wp6wez.js";
96
+ import"./chunk-a8ejc632.js";
97
+ import"./chunk-f5ma3nh5.js";
98
+ import"./chunk-qz2x630m.js";
99
+ import"./chunk-wmbpegg3.js";
100
+ import"./chunk-ardzdtan.js";
101
+ import"./chunk-3c25bcsw.js";
102
+ import"./chunk-n1pa72ns.js";
103
+ import"./chunk-rh5a2rg9.js";
104
+ import"./chunk-p2816w9z.js";
105
+ import"./chunk-v9smspw2.js";
106
+ import"./chunk-v1kzp02e.js";
107
+ import"./chunk-prgsmrmy.js";
108
+ import"./chunk-crmjpsqe.js";
109
+ import"./chunk-e4jqbn4d.js";
110
+ import"./chunk-vxnvzfnv.js";
111
+ import"./chunk-ns3babbs.js";
112
+ import"./chunk-h0rbjg6x.js";
113
+ import"./chunk-0vkfrmqm.js";
114
+ import"./chunk-0xjaqda8.js";
115
+ import"./chunk-xaw4scep.js";
116
+ import"./chunk-pedmqmrf.js";
117
+ import"./chunk-cj8m3h8r.js";
118
+ import"./chunk-zs5b1dgr.js";
119
+ import"./chunk-81dq52pk.js";
120
+ import"./chunk-tv74hgw9.js";
121
+ import"./chunk-d2vb6m9e.js";
122
+ import"./chunk-8tnsngw2.js";
123
+ import"./chunk-2t5ve6ev.js";
124
+ import"./chunk-qwj4n799.js";
125
+ import"./chunk-5z28bqne.js";
126
+ import"./chunk-qajrkk97.js";
127
+ import"./chunk-kmgp6prw.js";
128
+ import"./chunk-3ev51j3h.js";
129
+ import"./chunk-fbv4apne.js";
130
+ import {
131
+ init_state,
132
+ setOriginalCwd
133
+ } from "./chunk-gzp6rza1.js";
134
+ import"./chunk-50dgek10.js";
135
+ import"./chunk-7wm5s02e.js";
136
+ import"./chunk-z0csm2zq.js";
137
+ import"./chunk-hxhwzgnn.js";
138
+ import"./chunk-qx8z601m.js";
139
+ import"./chunk-cgm6758j.js";
140
+ import"./chunk-9m27g5s1.js";
141
+ import"./chunk-8pn8tvgg.js";
142
+ import"./chunk-netzwgv1.js";
143
+ import"./chunk-qp2qdcda.js";
144
+
145
+ // node_modules/.bun/@agentclientprotocol+sdk@0.19.0+3c5d820c62823f0b/node_modules/@agentclientprotocol/sdk/dist/acp.js
146
+ init_v4();
147
+
148
+ // node_modules/.bun/@agentclientprotocol+sdk@0.19.0+3c5d820c62823f0b/node_modules/@agentclientprotocol/sdk/dist/schema/index.js
149
+ var AGENT_METHODS = {
150
+ authenticate: "authenticate",
151
+ document_did_change: "document/didChange",
152
+ document_did_close: "document/didClose",
153
+ document_did_focus: "document/didFocus",
154
+ document_did_open: "document/didOpen",
155
+ document_did_save: "document/didSave",
156
+ initialize: "initialize",
157
+ logout: "logout",
158
+ nes_accept: "nes/accept",
159
+ nes_close: "nes/close",
160
+ nes_reject: "nes/reject",
161
+ nes_start: "nes/start",
162
+ nes_suggest: "nes/suggest",
163
+ session_cancel: "session/cancel",
164
+ session_close: "session/close",
165
+ session_fork: "session/fork",
166
+ session_list: "session/list",
167
+ session_load: "session/load",
168
+ session_new: "session/new",
169
+ session_prompt: "session/prompt",
170
+ session_resume: "session/resume",
171
+ session_set_config_option: "session/set_config_option",
172
+ session_set_mode: "session/set_mode",
173
+ session_set_model: "session/set_model"
174
+ };
175
+ var CLIENT_METHODS = {
176
+ elicitation_complete: "elicitation/complete",
177
+ elicitation_create: "elicitation/create",
178
+ fs_read_text_file: "fs/read_text_file",
179
+ fs_write_text_file: "fs/write_text_file",
180
+ session_request_permission: "session/request_permission",
181
+ session_update: "session/update",
182
+ terminal_create: "terminal/create",
183
+ terminal_kill: "terminal/kill",
184
+ terminal_output: "terminal/output",
185
+ terminal_release: "terminal/release",
186
+ terminal_wait_for_exit: "terminal/wait_for_exit"
187
+ };
188
+
189
+ // node_modules/.bun/@agentclientprotocol+sdk@0.19.0+3c5d820c62823f0b/node_modules/@agentclientprotocol/sdk/dist/schema/zod.gen.js
190
+ init_v4();
191
+ var zAuthCapabilities = exports_external.object({
192
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
193
+ terminal: exports_external.boolean().optional().default(false)
194
+ });
195
+ var zAuthEnvVar = exports_external.object({
196
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
197
+ label: exports_external.string().nullish(),
198
+ name: exports_external.string(),
199
+ optional: exports_external.boolean().optional().default(false),
200
+ secret: exports_external.boolean().optional().default(true)
201
+ });
202
+ var zAuthMethodAgent = exports_external.object({
203
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
204
+ description: exports_external.string().nullish(),
205
+ id: exports_external.string(),
206
+ name: exports_external.string()
207
+ });
208
+ var zAuthMethodEnvVar = exports_external.object({
209
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
210
+ description: exports_external.string().nullish(),
211
+ id: exports_external.string(),
212
+ link: exports_external.string().nullish(),
213
+ name: exports_external.string(),
214
+ vars: exports_external.array(zAuthEnvVar)
215
+ });
216
+ var zAuthMethodTerminal = exports_external.object({
217
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
218
+ args: exports_external.array(exports_external.string()).optional(),
219
+ description: exports_external.string().nullish(),
220
+ env: exports_external.record(exports_external.string(), exports_external.string()).optional(),
221
+ id: exports_external.string(),
222
+ name: exports_external.string()
223
+ });
224
+ var zAuthMethod = exports_external.union([
225
+ zAuthMethodEnvVar.and(exports_external.object({
226
+ type: exports_external.literal("env_var")
227
+ })),
228
+ zAuthMethodTerminal.and(exports_external.object({
229
+ type: exports_external.literal("terminal")
230
+ })),
231
+ zAuthMethodAgent
232
+ ]);
233
+ var zAuthenticateRequest = exports_external.object({
234
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
235
+ methodId: exports_external.string()
236
+ });
237
+ var zAuthenticateResponse = exports_external.object({
238
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
239
+ });
240
+ var zBlobResourceContents = exports_external.object({
241
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
242
+ blob: exports_external.string(),
243
+ mimeType: exports_external.string().nullish(),
244
+ uri: exports_external.string()
245
+ });
246
+ var zBooleanPropertySchema = exports_external.object({
247
+ default: exports_external.boolean().nullish(),
248
+ description: exports_external.string().nullish(),
249
+ title: exports_external.string().nullish()
250
+ });
251
+ var zCloseNesResponse = exports_external.object({
252
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
253
+ });
254
+ var zCloseSessionResponse = exports_external.object({
255
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
256
+ });
257
+ var zCost = exports_external.object({
258
+ amount: exports_external.number(),
259
+ currency: exports_external.string()
260
+ });
261
+ var zCreateTerminalResponse = exports_external.object({
262
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
263
+ terminalId: exports_external.string()
264
+ });
265
+ var zDiff = exports_external.object({
266
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
267
+ newText: exports_external.string(),
268
+ oldText: exports_external.string().nullish(),
269
+ path: exports_external.string()
270
+ });
271
+ var zElicitationContentValue = exports_external.union([
272
+ exports_external.string(),
273
+ exports_external.number(),
274
+ exports_external.number(),
275
+ exports_external.boolean(),
276
+ exports_external.array(exports_external.string())
277
+ ]);
278
+ var zElicitationAcceptAction = exports_external.object({
279
+ content: exports_external.record(exports_external.string(), zElicitationContentValue).nullish()
280
+ });
281
+ var zCreateElicitationResponse = exports_external.intersection(exports_external.union([
282
+ zElicitationAcceptAction.and(exports_external.object({
283
+ action: exports_external.literal("accept")
284
+ })),
285
+ exports_external.object({
286
+ action: exports_external.literal("decline")
287
+ }),
288
+ exports_external.object({
289
+ action: exports_external.literal("cancel")
290
+ })
291
+ ]), exports_external.object({
292
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
293
+ }));
294
+ var zElicitationFormCapabilities = exports_external.object({
295
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
296
+ });
297
+ var zElicitationId = exports_external.string();
298
+ var zCompleteElicitationNotification = exports_external.object({
299
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
300
+ elicitationId: zElicitationId
301
+ });
302
+ var zElicitationSchemaType = exports_external.literal("object");
303
+ var zElicitationStringType = exports_external.literal("string");
304
+ var zElicitationUrlCapabilities = exports_external.object({
305
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
306
+ });
307
+ var zElicitationCapabilities = exports_external.object({
308
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
309
+ form: zElicitationFormCapabilities.nullish(),
310
+ url: zElicitationUrlCapabilities.nullish()
311
+ });
312
+ var zEnumOption = exports_external.object({
313
+ const: exports_external.string(),
314
+ title: exports_external.string()
315
+ });
316
+ var zEnvVariable = exports_external.object({
317
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
318
+ name: exports_external.string(),
319
+ value: exports_external.string()
320
+ });
321
+ var zErrorCode = exports_external.union([
322
+ exports_external.literal(-32700),
323
+ exports_external.literal(-32600),
324
+ exports_external.literal(-32601),
325
+ exports_external.literal(-32602),
326
+ exports_external.literal(-32603),
327
+ exports_external.literal(-32800),
328
+ exports_external.literal(-32000),
329
+ exports_external.literal(-32002),
330
+ exports_external.literal(-32042),
331
+ exports_external.number().int().min(-2147483648, {
332
+ message: "Invalid value: Expected int32 to be >= -2147483648"
333
+ }).max(2147483647, {
334
+ message: "Invalid value: Expected int32 to be <= 2147483647"
335
+ })
336
+ ]);
337
+ var zError = exports_external.object({
338
+ code: zErrorCode,
339
+ data: exports_external.unknown().optional(),
340
+ message: exports_external.string()
341
+ });
342
+ var zExtNotification = exports_external.unknown();
343
+ var zExtRequest = exports_external.unknown();
344
+ var zExtResponse = exports_external.unknown();
345
+ var zFileSystemCapabilities = exports_external.object({
346
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
347
+ readTextFile: exports_external.boolean().optional().default(false),
348
+ writeTextFile: exports_external.boolean().optional().default(false)
349
+ });
350
+ var zHttpHeader = exports_external.object({
351
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
352
+ name: exports_external.string(),
353
+ value: exports_external.string()
354
+ });
355
+ var zImplementation = exports_external.object({
356
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
357
+ name: exports_external.string(),
358
+ title: exports_external.string().nullish(),
359
+ version: exports_external.string()
360
+ });
361
+ var zIntegerPropertySchema = exports_external.object({
362
+ default: exports_external.number().nullish(),
363
+ description: exports_external.string().nullish(),
364
+ maximum: exports_external.number().nullish(),
365
+ minimum: exports_external.number().nullish(),
366
+ title: exports_external.string().nullish()
367
+ });
368
+ var zKillTerminalResponse = exports_external.object({
369
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
370
+ });
371
+ var zListSessionsRequest = exports_external.object({
372
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
373
+ additionalDirectories: exports_external.array(exports_external.string()).optional(),
374
+ cursor: exports_external.string().nullish(),
375
+ cwd: exports_external.string().nullish()
376
+ });
377
+ var zLogoutCapabilities = exports_external.object({
378
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
379
+ });
380
+ var zAgentAuthCapabilities = exports_external.object({
381
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
382
+ logout: zLogoutCapabilities.nullish()
383
+ });
384
+ var zLogoutRequest = exports_external.object({
385
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
386
+ });
387
+ var zLogoutResponse = exports_external.object({
388
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
389
+ });
390
+ var zMcpCapabilities = exports_external.object({
391
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
392
+ http: exports_external.boolean().optional().default(false),
393
+ sse: exports_external.boolean().optional().default(false)
394
+ });
395
+ var zMcpServerHttp = exports_external.object({
396
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
397
+ headers: exports_external.array(zHttpHeader),
398
+ name: exports_external.string(),
399
+ url: exports_external.string()
400
+ });
401
+ var zMcpServerSse = exports_external.object({
402
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
403
+ headers: exports_external.array(zHttpHeader),
404
+ name: exports_external.string(),
405
+ url: exports_external.string()
406
+ });
407
+ var zMcpServerStdio = exports_external.object({
408
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
409
+ args: exports_external.array(exports_external.string()),
410
+ command: exports_external.string(),
411
+ env: exports_external.array(zEnvVariable),
412
+ name: exports_external.string()
413
+ });
414
+ var zMcpServer = exports_external.union([
415
+ zMcpServerHttp.and(exports_external.object({
416
+ type: exports_external.literal("http")
417
+ })),
418
+ zMcpServerSse.and(exports_external.object({
419
+ type: exports_external.literal("sse")
420
+ })),
421
+ zMcpServerStdio
422
+ ]);
423
+ var zModelId = exports_external.string();
424
+ var zModelInfo = exports_external.object({
425
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
426
+ description: exports_external.string().nullish(),
427
+ modelId: zModelId,
428
+ name: exports_external.string()
429
+ });
430
+ var zNesDiagnosticSeverity = exports_external.union([
431
+ exports_external.literal("error"),
432
+ exports_external.literal("warning"),
433
+ exports_external.literal("information"),
434
+ exports_external.literal("hint")
435
+ ]);
436
+ var zNesDiagnosticsCapabilities = exports_external.object({
437
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
438
+ });
439
+ var zNesDocumentDidCloseCapabilities = exports_external.object({
440
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
441
+ });
442
+ var zNesDocumentDidFocusCapabilities = exports_external.object({
443
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
444
+ });
445
+ var zNesDocumentDidOpenCapabilities = exports_external.object({
446
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
447
+ });
448
+ var zNesDocumentDidSaveCapabilities = exports_external.object({
449
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
450
+ });
451
+ var zNesEditHistoryCapabilities = exports_external.object({
452
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
453
+ maxCount: exports_external.number().int().gte(0).max(4294967295, {
454
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
455
+ }).nullish()
456
+ });
457
+ var zNesEditHistoryEntry = exports_external.object({
458
+ diff: exports_external.string(),
459
+ uri: exports_external.string()
460
+ });
461
+ var zNesExcerpt = exports_external.object({
462
+ endLine: exports_external.number().int().gte(0).max(4294967295, {
463
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
464
+ }),
465
+ startLine: exports_external.number().int().gte(0).max(4294967295, {
466
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
467
+ }),
468
+ text: exports_external.string()
469
+ });
470
+ var zNesJumpCapabilities = exports_external.object({
471
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
472
+ });
473
+ var zNesOpenFilesCapabilities = exports_external.object({
474
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
475
+ });
476
+ var zNesRecentFile = exports_external.object({
477
+ languageId: exports_external.string(),
478
+ text: exports_external.string(),
479
+ uri: exports_external.string()
480
+ });
481
+ var zNesRecentFilesCapabilities = exports_external.object({
482
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
483
+ maxCount: exports_external.number().int().gte(0).max(4294967295, {
484
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
485
+ }).nullish()
486
+ });
487
+ var zNesRejectReason = exports_external.union([
488
+ exports_external.literal("rejected"),
489
+ exports_external.literal("ignored"),
490
+ exports_external.literal("replaced"),
491
+ exports_external.literal("cancelled")
492
+ ]);
493
+ var zNesRelatedSnippet = exports_external.object({
494
+ excerpts: exports_external.array(zNesExcerpt),
495
+ uri: exports_external.string()
496
+ });
497
+ var zNesRelatedSnippetsCapabilities = exports_external.object({
498
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
499
+ });
500
+ var zNesRenameCapabilities = exports_external.object({
501
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
502
+ });
503
+ var zNesRepository = exports_external.object({
504
+ name: exports_external.string(),
505
+ owner: exports_external.string(),
506
+ remoteUrl: exports_external.string()
507
+ });
508
+ var zNesSearchAndReplaceCapabilities = exports_external.object({
509
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
510
+ });
511
+ var zClientNesCapabilities = exports_external.object({
512
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
513
+ jump: zNesJumpCapabilities.nullish(),
514
+ rename: zNesRenameCapabilities.nullish(),
515
+ searchAndReplace: zNesSearchAndReplaceCapabilities.nullish()
516
+ });
517
+ var zNesSearchAndReplaceSuggestion = exports_external.object({
518
+ id: exports_external.string(),
519
+ isRegex: exports_external.boolean().nullish(),
520
+ replace: exports_external.string(),
521
+ search: exports_external.string(),
522
+ uri: exports_external.string()
523
+ });
524
+ var zNesTriggerKind = exports_external.union([
525
+ exports_external.literal("automatic"),
526
+ exports_external.literal("diagnostic"),
527
+ exports_external.literal("manual")
528
+ ]);
529
+ var zNesUserActionsCapabilities = exports_external.object({
530
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
531
+ maxCount: exports_external.number().int().gte(0).max(4294967295, {
532
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
533
+ }).nullish()
534
+ });
535
+ var zNesContextCapabilities = exports_external.object({
536
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
537
+ diagnostics: zNesDiagnosticsCapabilities.nullish(),
538
+ editHistory: zNesEditHistoryCapabilities.nullish(),
539
+ openFiles: zNesOpenFilesCapabilities.nullish(),
540
+ recentFiles: zNesRecentFilesCapabilities.nullish(),
541
+ relatedSnippets: zNesRelatedSnippetsCapabilities.nullish(),
542
+ userActions: zNesUserActionsCapabilities.nullish()
543
+ });
544
+ var zNewSessionRequest = exports_external.object({
545
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
546
+ additionalDirectories: exports_external.array(exports_external.string()).optional(),
547
+ cwd: exports_external.string(),
548
+ mcpServers: exports_external.array(zMcpServer)
549
+ });
550
+ var zNumberPropertySchema = exports_external.object({
551
+ default: exports_external.number().nullish(),
552
+ description: exports_external.string().nullish(),
553
+ maximum: exports_external.number().nullish(),
554
+ minimum: exports_external.number().nullish(),
555
+ title: exports_external.string().nullish()
556
+ });
557
+ var zPermissionOptionId = exports_external.string();
558
+ var zPermissionOptionKind = exports_external.union([
559
+ exports_external.literal("allow_once"),
560
+ exports_external.literal("allow_always"),
561
+ exports_external.literal("reject_once"),
562
+ exports_external.literal("reject_always")
563
+ ]);
564
+ var zPermissionOption = exports_external.object({
565
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
566
+ kind: zPermissionOptionKind,
567
+ name: exports_external.string(),
568
+ optionId: zPermissionOptionId
569
+ });
570
+ var zPlanEntryPriority = exports_external.union([
571
+ exports_external.literal("high"),
572
+ exports_external.literal("medium"),
573
+ exports_external.literal("low")
574
+ ]);
575
+ var zPlanEntryStatus = exports_external.union([
576
+ exports_external.literal("pending"),
577
+ exports_external.literal("in_progress"),
578
+ exports_external.literal("completed")
579
+ ]);
580
+ var zPlanEntry = exports_external.object({
581
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
582
+ content: exports_external.string(),
583
+ priority: zPlanEntryPriority,
584
+ status: zPlanEntryStatus
585
+ });
586
+ var zPlan = exports_external.object({
587
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
588
+ entries: exports_external.array(zPlanEntry)
589
+ });
590
+ var zPosition = exports_external.object({
591
+ character: exports_external.number().int().gte(0).max(4294967295, {
592
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
593
+ }),
594
+ line: exports_external.number().int().gte(0).max(4294967295, {
595
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
596
+ })
597
+ });
598
+ var zNesJumpSuggestion = exports_external.object({
599
+ id: exports_external.string(),
600
+ position: zPosition,
601
+ uri: exports_external.string()
602
+ });
603
+ var zNesRenameSuggestion = exports_external.object({
604
+ id: exports_external.string(),
605
+ newName: exports_external.string(),
606
+ position: zPosition,
607
+ uri: exports_external.string()
608
+ });
609
+ var zNesUserAction = exports_external.object({
610
+ action: exports_external.string(),
611
+ position: zPosition,
612
+ timestampMs: exports_external.number(),
613
+ uri: exports_external.string()
614
+ });
615
+ var zPositionEncodingKind = exports_external.union([
616
+ exports_external.literal("utf-16"),
617
+ exports_external.literal("utf-32"),
618
+ exports_external.literal("utf-8")
619
+ ]);
620
+ var zClientCapabilities = exports_external.object({
621
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
622
+ auth: zAuthCapabilities.optional().default({ terminal: false }),
623
+ elicitation: zElicitationCapabilities.nullish(),
624
+ fs: zFileSystemCapabilities.optional().default({ readTextFile: false, writeTextFile: false }),
625
+ nes: zClientNesCapabilities.nullish(),
626
+ positionEncodings: exports_external.array(zPositionEncodingKind).optional(),
627
+ terminal: exports_external.boolean().optional().default(false)
628
+ });
629
+ var zPromptCapabilities = exports_external.object({
630
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
631
+ audio: exports_external.boolean().optional().default(false),
632
+ embeddedContext: exports_external.boolean().optional().default(false),
633
+ image: exports_external.boolean().optional().default(false)
634
+ });
635
+ var zProtocolVersion = exports_external.number().int().gte(0).lte(65535);
636
+ var zInitializeRequest = exports_external.object({
637
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
638
+ clientCapabilities: zClientCapabilities.optional().default({
639
+ auth: { terminal: false },
640
+ fs: { readTextFile: false, writeTextFile: false },
641
+ terminal: false
642
+ }),
643
+ clientInfo: zImplementation.nullish(),
644
+ protocolVersion: zProtocolVersion
645
+ });
646
+ var zRange = exports_external.object({
647
+ end: zPosition,
648
+ start: zPosition
649
+ });
650
+ var zNesDiagnostic = exports_external.object({
651
+ message: exports_external.string(),
652
+ range: zRange,
653
+ severity: zNesDiagnosticSeverity,
654
+ uri: exports_external.string()
655
+ });
656
+ var zNesOpenFile = exports_external.object({
657
+ languageId: exports_external.string(),
658
+ lastFocusedMs: exports_external.number().nullish(),
659
+ uri: exports_external.string(),
660
+ visibleRange: zRange.nullish()
661
+ });
662
+ var zNesSuggestContext = exports_external.object({
663
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
664
+ diagnostics: exports_external.array(zNesDiagnostic).nullish(),
665
+ editHistory: exports_external.array(zNesEditHistoryEntry).nullish(),
666
+ openFiles: exports_external.array(zNesOpenFile).nullish(),
667
+ recentFiles: exports_external.array(zNesRecentFile).nullish(),
668
+ relatedSnippets: exports_external.array(zNesRelatedSnippet).nullish(),
669
+ userActions: exports_external.array(zNesUserAction).nullish()
670
+ });
671
+ var zNesTextEdit = exports_external.object({
672
+ newText: exports_external.string(),
673
+ range: zRange
674
+ });
675
+ var zNesEditSuggestion = exports_external.object({
676
+ cursorPosition: zPosition.nullish(),
677
+ edits: exports_external.array(zNesTextEdit),
678
+ id: exports_external.string(),
679
+ uri: exports_external.string()
680
+ });
681
+ var zNesSuggestion = exports_external.union([
682
+ zNesEditSuggestion.and(exports_external.object({
683
+ kind: exports_external.literal("edit")
684
+ })),
685
+ zNesJumpSuggestion.and(exports_external.object({
686
+ kind: exports_external.literal("jump")
687
+ })),
688
+ zNesRenameSuggestion.and(exports_external.object({
689
+ kind: exports_external.literal("rename")
690
+ })),
691
+ zNesSearchAndReplaceSuggestion.and(exports_external.object({
692
+ kind: exports_external.literal("searchAndReplace")
693
+ }))
694
+ ]);
695
+ var zReadTextFileResponse = exports_external.object({
696
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
697
+ content: exports_external.string()
698
+ });
699
+ var zReleaseTerminalResponse = exports_external.object({
700
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
701
+ });
702
+ var zRequestId = exports_external.union([exports_external.number(), exports_external.string()]).nullable();
703
+ var zCancelRequestNotification = exports_external.object({
704
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
705
+ requestId: zRequestId
706
+ });
707
+ var zElicitationRequestScope = exports_external.object({
708
+ requestId: zRequestId
709
+ });
710
+ var zRole = exports_external.enum(["assistant", "user"]);
711
+ var zAnnotations = exports_external.object({
712
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
713
+ audience: exports_external.array(zRole).nullish(),
714
+ lastModified: exports_external.string().nullish(),
715
+ priority: exports_external.number().nullish()
716
+ });
717
+ var zAudioContent = exports_external.object({
718
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
719
+ annotations: zAnnotations.nullish(),
720
+ data: exports_external.string(),
721
+ mimeType: exports_external.string()
722
+ });
723
+ var zImageContent = exports_external.object({
724
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
725
+ annotations: zAnnotations.nullish(),
726
+ data: exports_external.string(),
727
+ mimeType: exports_external.string(),
728
+ uri: exports_external.string().nullish()
729
+ });
730
+ var zResourceLink = exports_external.object({
731
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
732
+ annotations: zAnnotations.nullish(),
733
+ description: exports_external.string().nullish(),
734
+ mimeType: exports_external.string().nullish(),
735
+ name: exports_external.string(),
736
+ size: exports_external.number().nullish(),
737
+ title: exports_external.string().nullish(),
738
+ uri: exports_external.string()
739
+ });
740
+ var zSelectedPermissionOutcome = exports_external.object({
741
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
742
+ optionId: zPermissionOptionId
743
+ });
744
+ var zRequestPermissionOutcome = exports_external.union([
745
+ exports_external.object({
746
+ outcome: exports_external.literal("cancelled")
747
+ }),
748
+ zSelectedPermissionOutcome.and(exports_external.object({
749
+ outcome: exports_external.literal("selected")
750
+ }))
751
+ ]);
752
+ var zRequestPermissionResponse = exports_external.object({
753
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
754
+ outcome: zRequestPermissionOutcome
755
+ });
756
+ var zSessionAdditionalDirectoriesCapabilities = exports_external.object({
757
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
758
+ });
759
+ var zSessionCloseCapabilities = exports_external.object({
760
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
761
+ });
762
+ var zSessionConfigBoolean = exports_external.object({
763
+ currentValue: exports_external.boolean()
764
+ });
765
+ var zSessionConfigGroupId = exports_external.string();
766
+ var zSessionConfigId = exports_external.string();
767
+ var zSessionConfigOptionCategory = exports_external.union([
768
+ exports_external.literal("mode"),
769
+ exports_external.literal("model"),
770
+ exports_external.literal("thought_level"),
771
+ exports_external.string()
772
+ ]);
773
+ var zSessionConfigValueId = exports_external.string();
774
+ var zSessionConfigSelectOption = exports_external.object({
775
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
776
+ description: exports_external.string().nullish(),
777
+ name: exports_external.string(),
778
+ value: zSessionConfigValueId
779
+ });
780
+ var zSessionConfigSelectGroup = exports_external.object({
781
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
782
+ group: zSessionConfigGroupId,
783
+ name: exports_external.string(),
784
+ options: exports_external.array(zSessionConfigSelectOption)
785
+ });
786
+ var zSessionConfigSelectOptions = exports_external.union([
787
+ exports_external.array(zSessionConfigSelectOption),
788
+ exports_external.array(zSessionConfigSelectGroup)
789
+ ]);
790
+ var zSessionConfigSelect = exports_external.object({
791
+ currentValue: zSessionConfigValueId,
792
+ options: zSessionConfigSelectOptions
793
+ });
794
+ var zSessionConfigOption = exports_external.intersection(exports_external.union([
795
+ zSessionConfigSelect.and(exports_external.object({
796
+ type: exports_external.literal("select")
797
+ })),
798
+ zSessionConfigBoolean.and(exports_external.object({
799
+ type: exports_external.literal("boolean")
800
+ }))
801
+ ]), exports_external.object({
802
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
803
+ category: zSessionConfigOptionCategory.nullish(),
804
+ description: exports_external.string().nullish(),
805
+ id: zSessionConfigId,
806
+ name: exports_external.string()
807
+ }));
808
+ var zConfigOptionUpdate = exports_external.object({
809
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
810
+ configOptions: exports_external.array(zSessionConfigOption)
811
+ });
812
+ var zSessionForkCapabilities = exports_external.object({
813
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
814
+ });
815
+ var zSessionId = exports_external.string();
816
+ var zAcceptNesNotification = exports_external.object({
817
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
818
+ id: exports_external.string(),
819
+ sessionId: zSessionId
820
+ });
821
+ var zCancelNotification = exports_external.object({
822
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
823
+ sessionId: zSessionId
824
+ });
825
+ var zCloseNesRequest = exports_external.object({
826
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
827
+ sessionId: zSessionId
828
+ });
829
+ var zCloseSessionRequest = exports_external.object({
830
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
831
+ sessionId: zSessionId
832
+ });
833
+ var zCreateTerminalRequest = exports_external.object({
834
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
835
+ args: exports_external.array(exports_external.string()).optional(),
836
+ command: exports_external.string(),
837
+ cwd: exports_external.string().nullish(),
838
+ env: exports_external.array(zEnvVariable).optional(),
839
+ outputByteLimit: exports_external.number().nullish(),
840
+ sessionId: zSessionId
841
+ });
842
+ var zDidCloseDocumentNotification = exports_external.object({
843
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
844
+ sessionId: zSessionId,
845
+ uri: exports_external.string()
846
+ });
847
+ var zDidFocusDocumentNotification = exports_external.object({
848
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
849
+ position: zPosition,
850
+ sessionId: zSessionId,
851
+ uri: exports_external.string(),
852
+ version: exports_external.number(),
853
+ visibleRange: zRange
854
+ });
855
+ var zDidOpenDocumentNotification = exports_external.object({
856
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
857
+ languageId: exports_external.string(),
858
+ sessionId: zSessionId,
859
+ text: exports_external.string(),
860
+ uri: exports_external.string(),
861
+ version: exports_external.number()
862
+ });
863
+ var zDidSaveDocumentNotification = exports_external.object({
864
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
865
+ sessionId: zSessionId,
866
+ uri: exports_external.string()
867
+ });
868
+ var zForkSessionRequest = exports_external.object({
869
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
870
+ additionalDirectories: exports_external.array(exports_external.string()).optional(),
871
+ cwd: exports_external.string(),
872
+ mcpServers: exports_external.array(zMcpServer).optional(),
873
+ sessionId: zSessionId
874
+ });
875
+ var zKillTerminalRequest = exports_external.object({
876
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
877
+ sessionId: zSessionId,
878
+ terminalId: exports_external.string()
879
+ });
880
+ var zLoadSessionRequest = exports_external.object({
881
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
882
+ additionalDirectories: exports_external.array(exports_external.string()).optional(),
883
+ cwd: exports_external.string(),
884
+ mcpServers: exports_external.array(zMcpServer),
885
+ sessionId: zSessionId
886
+ });
887
+ var zReadTextFileRequest = exports_external.object({
888
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
889
+ limit: exports_external.number().int().gte(0).max(4294967295, {
890
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
891
+ }).nullish(),
892
+ line: exports_external.number().int().gte(0).max(4294967295, {
893
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
894
+ }).nullish(),
895
+ path: exports_external.string(),
896
+ sessionId: zSessionId
897
+ });
898
+ var zRejectNesNotification = exports_external.object({
899
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
900
+ id: exports_external.string(),
901
+ reason: zNesRejectReason.nullish(),
902
+ sessionId: zSessionId
903
+ });
904
+ var zReleaseTerminalRequest = exports_external.object({
905
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
906
+ sessionId: zSessionId,
907
+ terminalId: exports_external.string()
908
+ });
909
+ var zResumeSessionRequest = exports_external.object({
910
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
911
+ additionalDirectories: exports_external.array(exports_external.string()).optional(),
912
+ cwd: exports_external.string(),
913
+ mcpServers: exports_external.array(zMcpServer).optional(),
914
+ sessionId: zSessionId
915
+ });
916
+ var zSessionInfo = exports_external.object({
917
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
918
+ additionalDirectories: exports_external.array(exports_external.string()).optional(),
919
+ cwd: exports_external.string(),
920
+ sessionId: zSessionId,
921
+ title: exports_external.string().nullish(),
922
+ updatedAt: exports_external.string().nullish()
923
+ });
924
+ var zListSessionsResponse = exports_external.object({
925
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
926
+ nextCursor: exports_external.string().nullish(),
927
+ sessions: exports_external.array(zSessionInfo)
928
+ });
929
+ var zSessionInfoUpdate = exports_external.object({
930
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
931
+ title: exports_external.string().nullish(),
932
+ updatedAt: exports_external.string().nullish()
933
+ });
934
+ var zSessionListCapabilities = exports_external.object({
935
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
936
+ });
937
+ var zSessionModeId = exports_external.string();
938
+ var zCurrentModeUpdate = exports_external.object({
939
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
940
+ currentModeId: zSessionModeId
941
+ });
942
+ var zSessionMode = exports_external.object({
943
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
944
+ description: exports_external.string().nullish(),
945
+ id: zSessionModeId,
946
+ name: exports_external.string()
947
+ });
948
+ var zSessionModeState = exports_external.object({
949
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
950
+ availableModes: exports_external.array(zSessionMode),
951
+ currentModeId: zSessionModeId
952
+ });
953
+ var zSessionModelState = exports_external.object({
954
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
955
+ availableModels: exports_external.array(zModelInfo),
956
+ currentModelId: zModelId
957
+ });
958
+ var zForkSessionResponse = exports_external.object({
959
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
960
+ configOptions: exports_external.array(zSessionConfigOption).nullish(),
961
+ models: zSessionModelState.nullish(),
962
+ modes: zSessionModeState.nullish(),
963
+ sessionId: zSessionId
964
+ });
965
+ var zLoadSessionResponse = exports_external.object({
966
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
967
+ configOptions: exports_external.array(zSessionConfigOption).nullish(),
968
+ models: zSessionModelState.nullish(),
969
+ modes: zSessionModeState.nullish()
970
+ });
971
+ var zNewSessionResponse = exports_external.object({
972
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
973
+ configOptions: exports_external.array(zSessionConfigOption).nullish(),
974
+ models: zSessionModelState.nullish(),
975
+ modes: zSessionModeState.nullish(),
976
+ sessionId: zSessionId
977
+ });
978
+ var zResumeSessionResponse = exports_external.object({
979
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
980
+ configOptions: exports_external.array(zSessionConfigOption).nullish(),
981
+ models: zSessionModelState.nullish(),
982
+ modes: zSessionModeState.nullish()
983
+ });
984
+ var zSessionResumeCapabilities = exports_external.object({
985
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
986
+ });
987
+ var zSessionCapabilities = exports_external.object({
988
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
989
+ additionalDirectories: zSessionAdditionalDirectoriesCapabilities.nullish(),
990
+ close: zSessionCloseCapabilities.nullish(),
991
+ fork: zSessionForkCapabilities.nullish(),
992
+ list: zSessionListCapabilities.nullish(),
993
+ resume: zSessionResumeCapabilities.nullish()
994
+ });
995
+ var zSetSessionConfigOptionRequest = exports_external.intersection(exports_external.union([
996
+ exports_external.object({
997
+ type: exports_external.literal("boolean"),
998
+ value: exports_external.boolean()
999
+ }),
1000
+ exports_external.object({
1001
+ value: zSessionConfigValueId
1002
+ })
1003
+ ]), exports_external.object({
1004
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1005
+ configId: zSessionConfigId,
1006
+ sessionId: zSessionId
1007
+ }));
1008
+ var zSetSessionConfigOptionResponse = exports_external.object({
1009
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1010
+ configOptions: exports_external.array(zSessionConfigOption)
1011
+ });
1012
+ var zSetSessionModeRequest = exports_external.object({
1013
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1014
+ modeId: zSessionModeId,
1015
+ sessionId: zSessionId
1016
+ });
1017
+ var zSetSessionModeResponse = exports_external.object({
1018
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
1019
+ });
1020
+ var zSetSessionModelRequest = exports_external.object({
1021
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1022
+ modelId: zModelId,
1023
+ sessionId: zSessionId
1024
+ });
1025
+ var zSetSessionModelResponse = exports_external.object({
1026
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
1027
+ });
1028
+ var zStartNesResponse = exports_external.object({
1029
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1030
+ sessionId: zSessionId
1031
+ });
1032
+ var zStopReason = exports_external.union([
1033
+ exports_external.literal("end_turn"),
1034
+ exports_external.literal("max_tokens"),
1035
+ exports_external.literal("max_turn_requests"),
1036
+ exports_external.literal("refusal"),
1037
+ exports_external.literal("cancelled")
1038
+ ]);
1039
+ var zStringFormat = exports_external.union([
1040
+ exports_external.literal("email"),
1041
+ exports_external.literal("uri"),
1042
+ exports_external.literal("date"),
1043
+ exports_external.literal("date-time")
1044
+ ]);
1045
+ var zStringPropertySchema = exports_external.object({
1046
+ default: exports_external.string().nullish(),
1047
+ description: exports_external.string().nullish(),
1048
+ enum: exports_external.array(exports_external.string()).nullish(),
1049
+ format: zStringFormat.nullish(),
1050
+ maxLength: exports_external.number().int().gte(0).max(4294967295, {
1051
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
1052
+ }).nullish(),
1053
+ minLength: exports_external.number().int().gte(0).max(4294967295, {
1054
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
1055
+ }).nullish(),
1056
+ oneOf: exports_external.array(zEnumOption).nullish(),
1057
+ pattern: exports_external.string().nullish(),
1058
+ title: exports_external.string().nullish()
1059
+ });
1060
+ var zSuggestNesRequest = exports_external.object({
1061
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1062
+ context: zNesSuggestContext.nullish(),
1063
+ position: zPosition,
1064
+ selection: zRange.nullish(),
1065
+ sessionId: zSessionId,
1066
+ triggerKind: zNesTriggerKind,
1067
+ uri: exports_external.string(),
1068
+ version: exports_external.number()
1069
+ });
1070
+ var zSuggestNesResponse = exports_external.object({
1071
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1072
+ suggestions: exports_external.array(zNesSuggestion)
1073
+ });
1074
+ var zTerminal = exports_external.object({
1075
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1076
+ terminalId: exports_external.string()
1077
+ });
1078
+ var zTerminalExitStatus = exports_external.object({
1079
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1080
+ exitCode: exports_external.number().int().gte(0).max(4294967295, {
1081
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
1082
+ }).nullish(),
1083
+ signal: exports_external.string().nullish()
1084
+ });
1085
+ var zTerminalOutputRequest = exports_external.object({
1086
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1087
+ sessionId: zSessionId,
1088
+ terminalId: exports_external.string()
1089
+ });
1090
+ var zTerminalOutputResponse = exports_external.object({
1091
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1092
+ exitStatus: zTerminalExitStatus.nullish(),
1093
+ output: exports_external.string(),
1094
+ truncated: exports_external.boolean()
1095
+ });
1096
+ var zTextContent = exports_external.object({
1097
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1098
+ annotations: zAnnotations.nullish(),
1099
+ text: exports_external.string()
1100
+ });
1101
+ var zTextDocumentContentChangeEvent = exports_external.object({
1102
+ range: zRange.nullish(),
1103
+ text: exports_external.string()
1104
+ });
1105
+ var zDidChangeDocumentNotification = exports_external.object({
1106
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1107
+ contentChanges: exports_external.array(zTextDocumentContentChangeEvent),
1108
+ sessionId: zSessionId,
1109
+ uri: exports_external.string(),
1110
+ version: exports_external.number()
1111
+ });
1112
+ var zClientNotification = exports_external.object({
1113
+ method: exports_external.string(),
1114
+ params: exports_external.union([
1115
+ zCancelNotification,
1116
+ zDidOpenDocumentNotification,
1117
+ zDidChangeDocumentNotification,
1118
+ zDidCloseDocumentNotification,
1119
+ zDidSaveDocumentNotification,
1120
+ zDidFocusDocumentNotification,
1121
+ zAcceptNesNotification,
1122
+ zRejectNesNotification,
1123
+ zExtNotification
1124
+ ]).nullish()
1125
+ });
1126
+ var zTextDocumentSyncKind = exports_external.union([
1127
+ exports_external.literal("full"),
1128
+ exports_external.literal("incremental")
1129
+ ]);
1130
+ var zNesDocumentDidChangeCapabilities = exports_external.object({
1131
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1132
+ syncKind: zTextDocumentSyncKind
1133
+ });
1134
+ var zNesDocumentEventCapabilities = exports_external.object({
1135
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1136
+ didChange: zNesDocumentDidChangeCapabilities.nullish(),
1137
+ didClose: zNesDocumentDidCloseCapabilities.nullish(),
1138
+ didFocus: zNesDocumentDidFocusCapabilities.nullish(),
1139
+ didOpen: zNesDocumentDidOpenCapabilities.nullish(),
1140
+ didSave: zNesDocumentDidSaveCapabilities.nullish()
1141
+ });
1142
+ var zNesEventCapabilities = exports_external.object({
1143
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1144
+ document: zNesDocumentEventCapabilities.nullish()
1145
+ });
1146
+ var zNesCapabilities = exports_external.object({
1147
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1148
+ context: zNesContextCapabilities.nullish(),
1149
+ events: zNesEventCapabilities.nullish()
1150
+ });
1151
+ var zAgentCapabilities = exports_external.object({
1152
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1153
+ auth: zAgentAuthCapabilities.optional().default({}),
1154
+ loadSession: exports_external.boolean().optional().default(false),
1155
+ mcpCapabilities: zMcpCapabilities.optional().default({ http: false, sse: false }),
1156
+ nes: zNesCapabilities.nullish(),
1157
+ positionEncoding: zPositionEncodingKind.nullish(),
1158
+ promptCapabilities: zPromptCapabilities.optional().default({
1159
+ audio: false,
1160
+ embeddedContext: false,
1161
+ image: false
1162
+ }),
1163
+ sessionCapabilities: zSessionCapabilities.optional().default({})
1164
+ });
1165
+ var zInitializeResponse = exports_external.object({
1166
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1167
+ agentCapabilities: zAgentCapabilities.optional().default({
1168
+ auth: {},
1169
+ loadSession: false,
1170
+ mcpCapabilities: { http: false, sse: false },
1171
+ promptCapabilities: {
1172
+ audio: false,
1173
+ embeddedContext: false,
1174
+ image: false
1175
+ },
1176
+ sessionCapabilities: {}
1177
+ }),
1178
+ agentInfo: zImplementation.nullish(),
1179
+ authMethods: exports_external.array(zAuthMethod).optional().default([]),
1180
+ protocolVersion: zProtocolVersion
1181
+ });
1182
+ var zTextResourceContents = exports_external.object({
1183
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1184
+ mimeType: exports_external.string().nullish(),
1185
+ text: exports_external.string(),
1186
+ uri: exports_external.string()
1187
+ });
1188
+ var zEmbeddedResourceResource = exports_external.union([
1189
+ zTextResourceContents,
1190
+ zBlobResourceContents
1191
+ ]);
1192
+ var zEmbeddedResource = exports_external.object({
1193
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1194
+ annotations: zAnnotations.nullish(),
1195
+ resource: zEmbeddedResourceResource
1196
+ });
1197
+ var zContentBlock = exports_external.union([
1198
+ zTextContent.and(exports_external.object({
1199
+ type: exports_external.literal("text")
1200
+ })),
1201
+ zImageContent.and(exports_external.object({
1202
+ type: exports_external.literal("image")
1203
+ })),
1204
+ zAudioContent.and(exports_external.object({
1205
+ type: exports_external.literal("audio")
1206
+ })),
1207
+ zResourceLink.and(exports_external.object({
1208
+ type: exports_external.literal("resource_link")
1209
+ })),
1210
+ zEmbeddedResource.and(exports_external.object({
1211
+ type: exports_external.literal("resource")
1212
+ }))
1213
+ ]);
1214
+ var zContent = exports_external.object({
1215
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1216
+ content: zContentBlock
1217
+ });
1218
+ var zContentChunk = exports_external.object({
1219
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1220
+ content: zContentBlock,
1221
+ messageId: exports_external.string().nullish()
1222
+ });
1223
+ var zPromptRequest = exports_external.object({
1224
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1225
+ messageId: exports_external.string().nullish(),
1226
+ prompt: exports_external.array(zContentBlock),
1227
+ sessionId: zSessionId
1228
+ });
1229
+ var zTitledMultiSelectItems = exports_external.object({
1230
+ anyOf: exports_external.array(zEnumOption)
1231
+ });
1232
+ var zToolCallContent = exports_external.union([
1233
+ zContent.and(exports_external.object({
1234
+ type: exports_external.literal("content")
1235
+ })),
1236
+ zDiff.and(exports_external.object({
1237
+ type: exports_external.literal("diff")
1238
+ })),
1239
+ zTerminal.and(exports_external.object({
1240
+ type: exports_external.literal("terminal")
1241
+ }))
1242
+ ]);
1243
+ var zToolCallId = exports_external.string();
1244
+ var zElicitationSessionScope = exports_external.object({
1245
+ sessionId: zSessionId,
1246
+ toolCallId: zToolCallId.nullish()
1247
+ });
1248
+ var zElicitationUrlMode = exports_external.intersection(exports_external.union([zElicitationSessionScope, zElicitationRequestScope]), exports_external.object({
1249
+ elicitationId: zElicitationId,
1250
+ url: exports_external.string().url()
1251
+ }));
1252
+ var zToolCallLocation = exports_external.object({
1253
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1254
+ line: exports_external.number().int().gte(0).max(4294967295, {
1255
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
1256
+ }).nullish(),
1257
+ path: exports_external.string()
1258
+ });
1259
+ var zToolCallStatus = exports_external.union([
1260
+ exports_external.literal("pending"),
1261
+ exports_external.literal("in_progress"),
1262
+ exports_external.literal("completed"),
1263
+ exports_external.literal("failed")
1264
+ ]);
1265
+ var zToolKind = exports_external.union([
1266
+ exports_external.literal("read"),
1267
+ exports_external.literal("edit"),
1268
+ exports_external.literal("delete"),
1269
+ exports_external.literal("move"),
1270
+ exports_external.literal("search"),
1271
+ exports_external.literal("execute"),
1272
+ exports_external.literal("think"),
1273
+ exports_external.literal("fetch"),
1274
+ exports_external.literal("switch_mode"),
1275
+ exports_external.literal("other")
1276
+ ]);
1277
+ var zToolCall = exports_external.object({
1278
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1279
+ content: exports_external.array(zToolCallContent).optional(),
1280
+ kind: zToolKind.optional(),
1281
+ locations: exports_external.array(zToolCallLocation).optional(),
1282
+ rawInput: exports_external.unknown().optional(),
1283
+ rawOutput: exports_external.unknown().optional(),
1284
+ status: zToolCallStatus.optional(),
1285
+ title: exports_external.string(),
1286
+ toolCallId: zToolCallId
1287
+ });
1288
+ var zToolCallUpdate = exports_external.object({
1289
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1290
+ content: exports_external.array(zToolCallContent).nullish(),
1291
+ kind: zToolKind.nullish(),
1292
+ locations: exports_external.array(zToolCallLocation).nullish(),
1293
+ rawInput: exports_external.unknown().optional(),
1294
+ rawOutput: exports_external.unknown().optional(),
1295
+ status: zToolCallStatus.nullish(),
1296
+ title: exports_external.string().nullish(),
1297
+ toolCallId: zToolCallId
1298
+ });
1299
+ var zRequestPermissionRequest = exports_external.object({
1300
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1301
+ options: exports_external.array(zPermissionOption),
1302
+ sessionId: zSessionId,
1303
+ toolCall: zToolCallUpdate
1304
+ });
1305
+ var zUnstructuredCommandInput = exports_external.object({
1306
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1307
+ hint: exports_external.string()
1308
+ });
1309
+ var zAvailableCommandInput = zUnstructuredCommandInput;
1310
+ var zAvailableCommand = exports_external.object({
1311
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1312
+ description: exports_external.string(),
1313
+ input: zAvailableCommandInput.nullish(),
1314
+ name: exports_external.string()
1315
+ });
1316
+ var zAvailableCommandsUpdate = exports_external.object({
1317
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1318
+ availableCommands: exports_external.array(zAvailableCommand)
1319
+ });
1320
+ var zUntitledMultiSelectItems = exports_external.object({
1321
+ enum: exports_external.array(exports_external.string()),
1322
+ type: zElicitationStringType
1323
+ });
1324
+ var zMultiSelectItems = exports_external.union([
1325
+ zUntitledMultiSelectItems,
1326
+ zTitledMultiSelectItems
1327
+ ]);
1328
+ var zMultiSelectPropertySchema = exports_external.object({
1329
+ default: exports_external.array(exports_external.string()).nullish(),
1330
+ description: exports_external.string().nullish(),
1331
+ items: zMultiSelectItems,
1332
+ maxItems: exports_external.number().nullish(),
1333
+ minItems: exports_external.number().nullish(),
1334
+ title: exports_external.string().nullish()
1335
+ });
1336
+ var zElicitationPropertySchema = exports_external.union([
1337
+ zStringPropertySchema.and(exports_external.object({
1338
+ type: exports_external.literal("string")
1339
+ })),
1340
+ zNumberPropertySchema.and(exports_external.object({
1341
+ type: exports_external.literal("number")
1342
+ })),
1343
+ zIntegerPropertySchema.and(exports_external.object({
1344
+ type: exports_external.literal("integer")
1345
+ })),
1346
+ zBooleanPropertySchema.and(exports_external.object({
1347
+ type: exports_external.literal("boolean")
1348
+ })),
1349
+ zMultiSelectPropertySchema.and(exports_external.object({
1350
+ type: exports_external.literal("array")
1351
+ }))
1352
+ ]);
1353
+ var zElicitationSchema = exports_external.object({
1354
+ description: exports_external.string().nullish(),
1355
+ properties: exports_external.record(exports_external.string(), zElicitationPropertySchema).optional().default({}),
1356
+ required: exports_external.array(exports_external.string()).nullish(),
1357
+ title: exports_external.string().nullish(),
1358
+ type: zElicitationSchemaType.optional().default("object")
1359
+ });
1360
+ var zElicitationFormMode = exports_external.intersection(exports_external.union([zElicitationSessionScope, zElicitationRequestScope]), exports_external.object({
1361
+ requestedSchema: zElicitationSchema
1362
+ }));
1363
+ var zCreateElicitationRequest = exports_external.intersection(exports_external.union([
1364
+ zElicitationFormMode.and(exports_external.object({
1365
+ mode: exports_external.literal("form")
1366
+ })),
1367
+ zElicitationUrlMode.and(exports_external.object({
1368
+ mode: exports_external.literal("url")
1369
+ }))
1370
+ ]), exports_external.object({
1371
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1372
+ message: exports_external.string()
1373
+ }));
1374
+ var zUsage = exports_external.object({
1375
+ cachedReadTokens: exports_external.number().nullish(),
1376
+ cachedWriteTokens: exports_external.number().nullish(),
1377
+ inputTokens: exports_external.number(),
1378
+ outputTokens: exports_external.number(),
1379
+ thoughtTokens: exports_external.number().nullish(),
1380
+ totalTokens: exports_external.number()
1381
+ });
1382
+ var zPromptResponse = exports_external.object({
1383
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1384
+ stopReason: zStopReason,
1385
+ usage: zUsage.nullish(),
1386
+ userMessageId: exports_external.string().nullish()
1387
+ });
1388
+ var zAgentResponse = exports_external.union([
1389
+ exports_external.object({
1390
+ id: zRequestId,
1391
+ result: exports_external.union([
1392
+ zInitializeResponse,
1393
+ zAuthenticateResponse,
1394
+ zLogoutResponse,
1395
+ zNewSessionResponse,
1396
+ zLoadSessionResponse,
1397
+ zListSessionsResponse,
1398
+ zForkSessionResponse,
1399
+ zResumeSessionResponse,
1400
+ zCloseSessionResponse,
1401
+ zSetSessionModeResponse,
1402
+ zSetSessionConfigOptionResponse,
1403
+ zPromptResponse,
1404
+ zSetSessionModelResponse,
1405
+ zStartNesResponse,
1406
+ zSuggestNesResponse,
1407
+ zCloseNesResponse,
1408
+ zExtResponse
1409
+ ])
1410
+ }),
1411
+ exports_external.object({
1412
+ error: zError,
1413
+ id: zRequestId
1414
+ })
1415
+ ]);
1416
+ var zUsageUpdate = exports_external.object({
1417
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1418
+ cost: zCost.nullish(),
1419
+ size: exports_external.number(),
1420
+ used: exports_external.number()
1421
+ });
1422
+ var zSessionUpdate = exports_external.union([
1423
+ zContentChunk.and(exports_external.object({
1424
+ sessionUpdate: exports_external.literal("user_message_chunk")
1425
+ })),
1426
+ zContentChunk.and(exports_external.object({
1427
+ sessionUpdate: exports_external.literal("agent_message_chunk")
1428
+ })),
1429
+ zContentChunk.and(exports_external.object({
1430
+ sessionUpdate: exports_external.literal("agent_thought_chunk")
1431
+ })),
1432
+ zToolCall.and(exports_external.object({
1433
+ sessionUpdate: exports_external.literal("tool_call")
1434
+ })),
1435
+ zToolCallUpdate.and(exports_external.object({
1436
+ sessionUpdate: exports_external.literal("tool_call_update")
1437
+ })),
1438
+ zPlan.and(exports_external.object({
1439
+ sessionUpdate: exports_external.literal("plan")
1440
+ })),
1441
+ zAvailableCommandsUpdate.and(exports_external.object({
1442
+ sessionUpdate: exports_external.literal("available_commands_update")
1443
+ })),
1444
+ zCurrentModeUpdate.and(exports_external.object({
1445
+ sessionUpdate: exports_external.literal("current_mode_update")
1446
+ })),
1447
+ zConfigOptionUpdate.and(exports_external.object({
1448
+ sessionUpdate: exports_external.literal("config_option_update")
1449
+ })),
1450
+ zSessionInfoUpdate.and(exports_external.object({
1451
+ sessionUpdate: exports_external.literal("session_info_update")
1452
+ })),
1453
+ zUsageUpdate.and(exports_external.object({
1454
+ sessionUpdate: exports_external.literal("usage_update")
1455
+ }))
1456
+ ]);
1457
+ var zSessionNotification = exports_external.object({
1458
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1459
+ sessionId: zSessionId,
1460
+ update: zSessionUpdate
1461
+ });
1462
+ var zAgentNotification = exports_external.object({
1463
+ method: exports_external.string(),
1464
+ params: exports_external.union([
1465
+ zSessionNotification,
1466
+ zCompleteElicitationNotification,
1467
+ zExtNotification
1468
+ ]).nullish()
1469
+ });
1470
+ var zWaitForTerminalExitRequest = exports_external.object({
1471
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1472
+ sessionId: zSessionId,
1473
+ terminalId: exports_external.string()
1474
+ });
1475
+ var zWaitForTerminalExitResponse = exports_external.object({
1476
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1477
+ exitCode: exports_external.number().int().gte(0).max(4294967295, {
1478
+ message: "Invalid value: Expected uint32 to be <= 4294967295"
1479
+ }).nullish(),
1480
+ signal: exports_external.string().nullish()
1481
+ });
1482
+ var zWorkspaceFolder = exports_external.object({
1483
+ name: exports_external.string(),
1484
+ uri: exports_external.string()
1485
+ });
1486
+ var zStartNesRequest = exports_external.object({
1487
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1488
+ repository: zNesRepository.nullish(),
1489
+ workspaceFolders: exports_external.array(zWorkspaceFolder).nullish(),
1490
+ workspaceUri: exports_external.string().nullish()
1491
+ });
1492
+ var zClientRequest = exports_external.object({
1493
+ id: zRequestId,
1494
+ method: exports_external.string(),
1495
+ params: exports_external.union([
1496
+ zInitializeRequest,
1497
+ zAuthenticateRequest,
1498
+ zLogoutRequest,
1499
+ zNewSessionRequest,
1500
+ zLoadSessionRequest,
1501
+ zListSessionsRequest,
1502
+ zForkSessionRequest,
1503
+ zResumeSessionRequest,
1504
+ zCloseSessionRequest,
1505
+ zSetSessionModeRequest,
1506
+ zSetSessionConfigOptionRequest,
1507
+ zPromptRequest,
1508
+ zSetSessionModelRequest,
1509
+ zStartNesRequest,
1510
+ zSuggestNesRequest,
1511
+ zCloseNesRequest,
1512
+ zExtRequest
1513
+ ]).nullish()
1514
+ });
1515
+ var zWriteTextFileRequest = exports_external.object({
1516
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish(),
1517
+ content: exports_external.string(),
1518
+ path: exports_external.string(),
1519
+ sessionId: zSessionId
1520
+ });
1521
+ var zAgentRequest = exports_external.object({
1522
+ id: zRequestId,
1523
+ method: exports_external.string(),
1524
+ params: exports_external.union([
1525
+ zWriteTextFileRequest,
1526
+ zReadTextFileRequest,
1527
+ zRequestPermissionRequest,
1528
+ zCreateTerminalRequest,
1529
+ zTerminalOutputRequest,
1530
+ zReleaseTerminalRequest,
1531
+ zWaitForTerminalExitRequest,
1532
+ zKillTerminalRequest,
1533
+ zCreateElicitationRequest,
1534
+ zExtRequest
1535
+ ]).nullish()
1536
+ });
1537
+ var zWriteTextFileResponse = exports_external.object({
1538
+ _meta: exports_external.record(exports_external.string(), exports_external.unknown()).nullish()
1539
+ });
1540
+ var zClientResponse = exports_external.union([
1541
+ exports_external.object({
1542
+ id: zRequestId,
1543
+ result: exports_external.union([
1544
+ zWriteTextFileResponse,
1545
+ zReadTextFileResponse,
1546
+ zRequestPermissionResponse,
1547
+ zCreateTerminalResponse,
1548
+ zTerminalOutputResponse,
1549
+ zReleaseTerminalResponse,
1550
+ zWaitForTerminalExitResponse,
1551
+ zKillTerminalResponse,
1552
+ zCreateElicitationResponse,
1553
+ zExtResponse
1554
+ ])
1555
+ }),
1556
+ exports_external.object({
1557
+ error: zError,
1558
+ id: zRequestId
1559
+ })
1560
+ ]);
1561
+ // node_modules/.bun/@agentclientprotocol+sdk@0.19.0+3c5d820c62823f0b/node_modules/@agentclientprotocol/sdk/dist/stream.js
1562
+ function ndJsonStream(output, input) {
1563
+ const textEncoder = new TextEncoder;
1564
+ const textDecoder = new TextDecoder;
1565
+ const readable = new ReadableStream({
1566
+ async start(controller) {
1567
+ let content = "";
1568
+ const reader = input.getReader();
1569
+ try {
1570
+ while (true) {
1571
+ const { value, done } = await reader.read();
1572
+ if (done) {
1573
+ break;
1574
+ }
1575
+ if (!value) {
1576
+ continue;
1577
+ }
1578
+ content += textDecoder.decode(value, { stream: true });
1579
+ const lines = content.split(`
1580
+ `);
1581
+ content = lines.pop() || "";
1582
+ for (const line of lines) {
1583
+ const trimmedLine = line.trim();
1584
+ if (trimmedLine) {
1585
+ try {
1586
+ const message = JSON.parse(trimmedLine);
1587
+ controller.enqueue(message);
1588
+ } catch (err) {
1589
+ console.error("Failed to parse JSON message:", trimmedLine, err);
1590
+ }
1591
+ }
1592
+ }
1593
+ }
1594
+ } catch (err) {
1595
+ controller.error(err);
1596
+ return;
1597
+ } finally {
1598
+ reader.releaseLock();
1599
+ }
1600
+ controller.close();
1601
+ }
1602
+ });
1603
+ const writable = new WritableStream({
1604
+ async write(message) {
1605
+ const content = JSON.stringify(message) + `
1606
+ `;
1607
+ const writer = output.getWriter();
1608
+ try {
1609
+ await writer.write(textEncoder.encode(content));
1610
+ } finally {
1611
+ writer.releaseLock();
1612
+ }
1613
+ }
1614
+ });
1615
+ return { readable, writable };
1616
+ }
1617
+
1618
+ // node_modules/.bun/@agentclientprotocol+sdk@0.19.0+3c5d820c62823f0b/node_modules/@agentclientprotocol/sdk/dist/acp.js
1619
+ class AgentSideConnection {
1620
+ #connection;
1621
+ constructor(toAgent, stream2) {
1622
+ const agent = toAgent(this);
1623
+ const requestHandler = async (method, params) => {
1624
+ switch (method) {
1625
+ case AGENT_METHODS.initialize: {
1626
+ const validatedParams = zInitializeRequest.parse(params);
1627
+ return agent.initialize(validatedParams);
1628
+ }
1629
+ case AGENT_METHODS.session_new: {
1630
+ const validatedParams = zNewSessionRequest.parse(params);
1631
+ return agent.newSession(validatedParams);
1632
+ }
1633
+ case AGENT_METHODS.session_load: {
1634
+ if (!agent.loadSession) {
1635
+ throw RequestError.methodNotFound(method);
1636
+ }
1637
+ const validatedParams = zLoadSessionRequest.parse(params);
1638
+ return agent.loadSession(validatedParams);
1639
+ }
1640
+ case AGENT_METHODS.session_list: {
1641
+ if (!agent.listSessions) {
1642
+ throw RequestError.methodNotFound(method);
1643
+ }
1644
+ const validatedParams = zListSessionsRequest.parse(params);
1645
+ return agent.listSessions(validatedParams);
1646
+ }
1647
+ case AGENT_METHODS.session_fork: {
1648
+ if (!agent.unstable_forkSession) {
1649
+ throw RequestError.methodNotFound(method);
1650
+ }
1651
+ const validatedParams = zForkSessionRequest.parse(params);
1652
+ return agent.unstable_forkSession(validatedParams);
1653
+ }
1654
+ case AGENT_METHODS.session_resume: {
1655
+ if (!agent.unstable_resumeSession) {
1656
+ throw RequestError.methodNotFound(method);
1657
+ }
1658
+ const validatedParams = zResumeSessionRequest.parse(params);
1659
+ return agent.unstable_resumeSession(validatedParams);
1660
+ }
1661
+ case AGENT_METHODS.session_close: {
1662
+ if (!agent.unstable_closeSession) {
1663
+ throw RequestError.methodNotFound(method);
1664
+ }
1665
+ const validatedParams = zCloseSessionRequest.parse(params);
1666
+ return agent.unstable_closeSession(validatedParams);
1667
+ }
1668
+ case AGENT_METHODS.session_set_mode: {
1669
+ if (!agent.setSessionMode) {
1670
+ throw RequestError.methodNotFound(method);
1671
+ }
1672
+ const validatedParams = zSetSessionModeRequest.parse(params);
1673
+ const result = await agent.setSessionMode(validatedParams);
1674
+ return result ?? {};
1675
+ }
1676
+ case AGENT_METHODS.authenticate: {
1677
+ const validatedParams = zAuthenticateRequest.parse(params);
1678
+ const result = await agent.authenticate(validatedParams);
1679
+ return result ?? {};
1680
+ }
1681
+ case AGENT_METHODS.logout: {
1682
+ if (!agent.unstable_logout) {
1683
+ throw RequestError.methodNotFound(method);
1684
+ }
1685
+ const validatedParams = zLogoutRequest.parse(params);
1686
+ const result = await agent.unstable_logout(validatedParams);
1687
+ return result ?? {};
1688
+ }
1689
+ case AGENT_METHODS.session_prompt: {
1690
+ const validatedParams = zPromptRequest.parse(params);
1691
+ return agent.prompt(validatedParams);
1692
+ }
1693
+ case AGENT_METHODS.session_set_model: {
1694
+ if (!agent.unstable_setSessionModel) {
1695
+ throw RequestError.methodNotFound(method);
1696
+ }
1697
+ const validatedParams = zSetSessionModelRequest.parse(params);
1698
+ const result = await agent.unstable_setSessionModel(validatedParams);
1699
+ return result ?? {};
1700
+ }
1701
+ case AGENT_METHODS.session_set_config_option: {
1702
+ if (!agent.setSessionConfigOption) {
1703
+ throw RequestError.methodNotFound(method);
1704
+ }
1705
+ const validatedParams = zSetSessionConfigOptionRequest.parse(params);
1706
+ return agent.setSessionConfigOption(validatedParams);
1707
+ }
1708
+ case AGENT_METHODS.nes_start: {
1709
+ if (!agent.unstable_startNes) {
1710
+ throw RequestError.methodNotFound(method);
1711
+ }
1712
+ const validatedParams = zStartNesRequest.parse(params);
1713
+ return agent.unstable_startNes(validatedParams);
1714
+ }
1715
+ case AGENT_METHODS.nes_suggest: {
1716
+ if (!agent.unstable_suggestNes) {
1717
+ throw RequestError.methodNotFound(method);
1718
+ }
1719
+ const validatedParams = zSuggestNesRequest.parse(params);
1720
+ return agent.unstable_suggestNes(validatedParams);
1721
+ }
1722
+ case AGENT_METHODS.nes_close: {
1723
+ if (!agent.unstable_closeNes) {
1724
+ throw RequestError.methodNotFound(method);
1725
+ }
1726
+ const validatedParams = zCloseNesRequest.parse(params);
1727
+ const result = await agent.unstable_closeNes(validatedParams);
1728
+ return result ?? {};
1729
+ }
1730
+ default:
1731
+ if (agent.extMethod) {
1732
+ return agent.extMethod(method, params);
1733
+ }
1734
+ throw RequestError.methodNotFound(method);
1735
+ }
1736
+ };
1737
+ const notificationHandler = async (method, params) => {
1738
+ switch (method) {
1739
+ case AGENT_METHODS.session_cancel: {
1740
+ const validatedParams = zCancelNotification.parse(params);
1741
+ return agent.cancel(validatedParams);
1742
+ }
1743
+ case AGENT_METHODS.document_did_open: {
1744
+ if (!agent.unstable_didOpenDocument)
1745
+ return;
1746
+ const validatedParams = zDidOpenDocumentNotification.parse(params);
1747
+ return agent.unstable_didOpenDocument(validatedParams);
1748
+ }
1749
+ case AGENT_METHODS.document_did_change: {
1750
+ if (!agent.unstable_didChangeDocument)
1751
+ return;
1752
+ const validatedParams = zDidChangeDocumentNotification.parse(params);
1753
+ return agent.unstable_didChangeDocument(validatedParams);
1754
+ }
1755
+ case AGENT_METHODS.document_did_close: {
1756
+ if (!agent.unstable_didCloseDocument)
1757
+ return;
1758
+ const validatedParams = zDidCloseDocumentNotification.parse(params);
1759
+ return agent.unstable_didCloseDocument(validatedParams);
1760
+ }
1761
+ case AGENT_METHODS.document_did_save: {
1762
+ if (!agent.unstable_didSaveDocument)
1763
+ return;
1764
+ const validatedParams = zDidSaveDocumentNotification.parse(params);
1765
+ return agent.unstable_didSaveDocument(validatedParams);
1766
+ }
1767
+ case AGENT_METHODS.document_did_focus: {
1768
+ if (!agent.unstable_didFocusDocument)
1769
+ return;
1770
+ const validatedParams = zDidFocusDocumentNotification.parse(params);
1771
+ return agent.unstable_didFocusDocument(validatedParams);
1772
+ }
1773
+ case AGENT_METHODS.nes_accept: {
1774
+ if (!agent.unstable_acceptNes)
1775
+ return;
1776
+ const validatedParams = zAcceptNesNotification.parse(params);
1777
+ return agent.unstable_acceptNes(validatedParams);
1778
+ }
1779
+ case AGENT_METHODS.nes_reject: {
1780
+ if (!agent.unstable_rejectNes)
1781
+ return;
1782
+ const validatedParams = zRejectNesNotification.parse(params);
1783
+ return agent.unstable_rejectNes(validatedParams);
1784
+ }
1785
+ default:
1786
+ if (agent.extNotification) {
1787
+ return agent.extNotification(method, params);
1788
+ }
1789
+ throw RequestError.methodNotFound(method);
1790
+ }
1791
+ };
1792
+ this.#connection = new Connection(requestHandler, notificationHandler, stream2);
1793
+ }
1794
+ async sessionUpdate(params) {
1795
+ return await this.#connection.sendNotification(CLIENT_METHODS.session_update, params);
1796
+ }
1797
+ async requestPermission(params) {
1798
+ return await this.#connection.sendRequest(CLIENT_METHODS.session_request_permission, params);
1799
+ }
1800
+ async readTextFile(params) {
1801
+ return await this.#connection.sendRequest(CLIENT_METHODS.fs_read_text_file, params);
1802
+ }
1803
+ async writeTextFile(params) {
1804
+ return await this.#connection.sendRequest(CLIENT_METHODS.fs_write_text_file, params) ?? {};
1805
+ }
1806
+ async createTerminal(params) {
1807
+ const response = await this.#connection.sendRequest(CLIENT_METHODS.terminal_create, params);
1808
+ return new TerminalHandle(response.terminalId, params.sessionId, this.#connection);
1809
+ }
1810
+ async unstable_createElicitation(params) {
1811
+ return await this.#connection.sendRequest(CLIENT_METHODS.elicitation_create, params);
1812
+ }
1813
+ async unstable_completeElicitation(params) {
1814
+ return await this.#connection.sendNotification(CLIENT_METHODS.elicitation_complete, params);
1815
+ }
1816
+ async extMethod(method, params) {
1817
+ return await this.#connection.sendRequest(method, params);
1818
+ }
1819
+ async extNotification(method, params) {
1820
+ return await this.#connection.sendNotification(method, params);
1821
+ }
1822
+ get signal() {
1823
+ return this.#connection.signal;
1824
+ }
1825
+ get closed() {
1826
+ return this.#connection.closed;
1827
+ }
1828
+ }
1829
+
1830
+ class TerminalHandle {
1831
+ id;
1832
+ #sessionId;
1833
+ #connection;
1834
+ constructor(id, sessionId, conn) {
1835
+ this.id = id;
1836
+ this.#sessionId = sessionId;
1837
+ this.#connection = conn;
1838
+ }
1839
+ async currentOutput() {
1840
+ return await this.#connection.sendRequest(CLIENT_METHODS.terminal_output, {
1841
+ sessionId: this.#sessionId,
1842
+ terminalId: this.id
1843
+ });
1844
+ }
1845
+ async waitForExit() {
1846
+ return await this.#connection.sendRequest(CLIENT_METHODS.terminal_wait_for_exit, {
1847
+ sessionId: this.#sessionId,
1848
+ terminalId: this.id
1849
+ });
1850
+ }
1851
+ async kill() {
1852
+ return await this.#connection.sendRequest(CLIENT_METHODS.terminal_kill, {
1853
+ sessionId: this.#sessionId,
1854
+ terminalId: this.id
1855
+ }) ?? {};
1856
+ }
1857
+ async release() {
1858
+ return await this.#connection.sendRequest(CLIENT_METHODS.terminal_release, {
1859
+ sessionId: this.#sessionId,
1860
+ terminalId: this.id
1861
+ }) ?? {};
1862
+ }
1863
+ async[Symbol.asyncDispose]() {
1864
+ await this.release();
1865
+ }
1866
+ }
1867
+
1868
+ class ClientSideConnection {
1869
+ #connection;
1870
+ constructor(toClient, stream2) {
1871
+ const client = toClient(this);
1872
+ const requestHandler = async (method, params) => {
1873
+ switch (method) {
1874
+ case CLIENT_METHODS.fs_write_text_file: {
1875
+ const validatedParams = zWriteTextFileRequest.parse(params);
1876
+ return client.writeTextFile?.(validatedParams);
1877
+ }
1878
+ case CLIENT_METHODS.fs_read_text_file: {
1879
+ const validatedParams = zReadTextFileRequest.parse(params);
1880
+ return client.readTextFile?.(validatedParams);
1881
+ }
1882
+ case CLIENT_METHODS.session_request_permission: {
1883
+ const validatedParams = zRequestPermissionRequest.parse(params);
1884
+ return client.requestPermission(validatedParams);
1885
+ }
1886
+ case CLIENT_METHODS.terminal_create: {
1887
+ const validatedParams = zCreateTerminalRequest.parse(params);
1888
+ return client.createTerminal?.(validatedParams);
1889
+ }
1890
+ case CLIENT_METHODS.terminal_output: {
1891
+ const validatedParams = zTerminalOutputRequest.parse(params);
1892
+ return client.terminalOutput?.(validatedParams);
1893
+ }
1894
+ case CLIENT_METHODS.terminal_release: {
1895
+ const validatedParams = zReleaseTerminalRequest.parse(params);
1896
+ const result = await client.releaseTerminal?.(validatedParams);
1897
+ return result ?? {};
1898
+ }
1899
+ case CLIENT_METHODS.terminal_wait_for_exit: {
1900
+ const validatedParams = zWaitForTerminalExitRequest.parse(params);
1901
+ return client.waitForTerminalExit?.(validatedParams);
1902
+ }
1903
+ case CLIENT_METHODS.terminal_kill: {
1904
+ const validatedParams = zKillTerminalRequest.parse(params);
1905
+ const result = await client.killTerminal?.(validatedParams);
1906
+ return result ?? {};
1907
+ }
1908
+ case CLIENT_METHODS.elicitation_create: {
1909
+ if (!client.unstable_createElicitation) {
1910
+ throw RequestError.methodNotFound(method);
1911
+ }
1912
+ const validatedParams = zCreateElicitationRequest.parse(params);
1913
+ return client.unstable_createElicitation(validatedParams);
1914
+ }
1915
+ default:
1916
+ if (client.extMethod) {
1917
+ return client.extMethod(method, params);
1918
+ }
1919
+ throw RequestError.methodNotFound(method);
1920
+ }
1921
+ };
1922
+ const notificationHandler = async (method, params) => {
1923
+ switch (method) {
1924
+ case CLIENT_METHODS.session_update: {
1925
+ const validatedParams = zSessionNotification.parse(params);
1926
+ return client.sessionUpdate(validatedParams);
1927
+ }
1928
+ case CLIENT_METHODS.elicitation_complete: {
1929
+ if (!client.unstable_completeElicitation)
1930
+ return;
1931
+ const validatedParams = zCompleteElicitationNotification.parse(params);
1932
+ return client.unstable_completeElicitation(validatedParams);
1933
+ }
1934
+ default:
1935
+ if (client.extNotification) {
1936
+ return client.extNotification(method, params);
1937
+ }
1938
+ throw RequestError.methodNotFound(method);
1939
+ }
1940
+ };
1941
+ this.#connection = new Connection(requestHandler, notificationHandler, stream2);
1942
+ }
1943
+ async initialize(params) {
1944
+ return await this.#connection.sendRequest(AGENT_METHODS.initialize, params);
1945
+ }
1946
+ async newSession(params) {
1947
+ return await this.#connection.sendRequest(AGENT_METHODS.session_new, params);
1948
+ }
1949
+ async loadSession(params) {
1950
+ return await this.#connection.sendRequest(AGENT_METHODS.session_load, params) ?? {};
1951
+ }
1952
+ async unstable_forkSession(params) {
1953
+ return await this.#connection.sendRequest(AGENT_METHODS.session_fork, params);
1954
+ }
1955
+ async listSessions(params) {
1956
+ return await this.#connection.sendRequest(AGENT_METHODS.session_list, params);
1957
+ }
1958
+ async unstable_resumeSession(params) {
1959
+ return await this.#connection.sendRequest(AGENT_METHODS.session_resume, params);
1960
+ }
1961
+ async unstable_closeSession(params) {
1962
+ return await this.#connection.sendRequest(AGENT_METHODS.session_close, params);
1963
+ }
1964
+ async setSessionMode(params) {
1965
+ return await this.#connection.sendRequest(AGENT_METHODS.session_set_mode, params) ?? {};
1966
+ }
1967
+ async unstable_setSessionModel(params) {
1968
+ return await this.#connection.sendRequest(AGENT_METHODS.session_set_model, params) ?? {};
1969
+ }
1970
+ async setSessionConfigOption(params) {
1971
+ return await this.#connection.sendRequest(AGENT_METHODS.session_set_config_option, params);
1972
+ }
1973
+ async authenticate(params) {
1974
+ return await this.#connection.sendRequest(AGENT_METHODS.authenticate, params) ?? {};
1975
+ }
1976
+ async unstable_logout(params) {
1977
+ return await this.#connection.sendRequest(AGENT_METHODS.logout, params) ?? {};
1978
+ }
1979
+ async prompt(params) {
1980
+ return await this.#connection.sendRequest(AGENT_METHODS.session_prompt, params);
1981
+ }
1982
+ async cancel(params) {
1983
+ return await this.#connection.sendNotification(AGENT_METHODS.session_cancel, params);
1984
+ }
1985
+ async unstable_startNes(params) {
1986
+ return await this.#connection.sendRequest(AGENT_METHODS.nes_start, params);
1987
+ }
1988
+ async unstable_suggestNes(params) {
1989
+ return await this.#connection.sendRequest(AGENT_METHODS.nes_suggest, params);
1990
+ }
1991
+ async unstable_closeNes(params) {
1992
+ return await this.#connection.sendRequest(AGENT_METHODS.nes_close, params) ?? {};
1993
+ }
1994
+ async unstable_didOpenDocument(params) {
1995
+ return await this.#connection.sendNotification(AGENT_METHODS.document_did_open, params);
1996
+ }
1997
+ async unstable_didChangeDocument(params) {
1998
+ return await this.#connection.sendNotification(AGENT_METHODS.document_did_change, params);
1999
+ }
2000
+ async unstable_didCloseDocument(params) {
2001
+ return await this.#connection.sendNotification(AGENT_METHODS.document_did_close, params);
2002
+ }
2003
+ async unstable_didSaveDocument(params) {
2004
+ return await this.#connection.sendNotification(AGENT_METHODS.document_did_save, params);
2005
+ }
2006
+ async unstable_didFocusDocument(params) {
2007
+ return await this.#connection.sendNotification(AGENT_METHODS.document_did_focus, params);
2008
+ }
2009
+ async unstable_acceptNes(params) {
2010
+ return await this.#connection.sendNotification(AGENT_METHODS.nes_accept, params);
2011
+ }
2012
+ async unstable_rejectNes(params) {
2013
+ return await this.#connection.sendNotification(AGENT_METHODS.nes_reject, params);
2014
+ }
2015
+ async extMethod(method, params) {
2016
+ return await this.#connection.sendRequest(method, params);
2017
+ }
2018
+ async extNotification(method, params) {
2019
+ return await this.#connection.sendNotification(method, params);
2020
+ }
2021
+ get signal() {
2022
+ return this.#connection.signal;
2023
+ }
2024
+ get closed() {
2025
+ return this.#connection.closed;
2026
+ }
2027
+ }
2028
+
2029
+ class Connection {
2030
+ #pendingResponses = new Map;
2031
+ #nextRequestId = 0;
2032
+ #requestHandler;
2033
+ #notificationHandler;
2034
+ #stream;
2035
+ #writeQueue = Promise.resolve();
2036
+ #abortController = new AbortController;
2037
+ #closedPromise;
2038
+ constructor(requestHandler, notificationHandler, stream2) {
2039
+ this.#requestHandler = requestHandler;
2040
+ this.#notificationHandler = notificationHandler;
2041
+ this.#stream = stream2;
2042
+ this.#closedPromise = new Promise((resolve) => {
2043
+ this.#abortController.signal.addEventListener("abort", () => resolve());
2044
+ });
2045
+ this.#receive();
2046
+ }
2047
+ get signal() {
2048
+ return this.#abortController.signal;
2049
+ }
2050
+ get closed() {
2051
+ return this.#closedPromise;
2052
+ }
2053
+ async#receive() {
2054
+ let closeError = undefined;
2055
+ try {
2056
+ const reader = this.#stream.readable.getReader();
2057
+ try {
2058
+ while (!this.#abortController.signal.aborted) {
2059
+ const { value: message, done } = await reader.read();
2060
+ if (done) {
2061
+ break;
2062
+ }
2063
+ if (!message) {
2064
+ continue;
2065
+ }
2066
+ try {
2067
+ this.#processMessage(message);
2068
+ } catch (err) {
2069
+ console.error("Unexpected error during message processing:", message, err);
2070
+ if ("id" in message && message.id !== undefined) {
2071
+ this.#sendMessage({
2072
+ jsonrpc: "2.0",
2073
+ id: message.id,
2074
+ error: {
2075
+ code: -32700,
2076
+ message: "Parse error"
2077
+ }
2078
+ });
2079
+ }
2080
+ }
2081
+ }
2082
+ } finally {
2083
+ reader.releaseLock();
2084
+ }
2085
+ } catch (error) {
2086
+ closeError = error;
2087
+ } finally {
2088
+ this.#close(closeError);
2089
+ }
2090
+ }
2091
+ #close(error) {
2092
+ if (this.#abortController.signal.aborted) {
2093
+ return;
2094
+ }
2095
+ const closeError = error ?? new Error("ACP connection closed");
2096
+ for (const pendingResponse of this.#pendingResponses.values()) {
2097
+ pendingResponse.reject(closeError);
2098
+ }
2099
+ this.#pendingResponses.clear();
2100
+ this.#abortController.abort(closeError);
2101
+ }
2102
+ async#processMessage(message) {
2103
+ if ("method" in message && "id" in message) {
2104
+ const response = await this.#tryCallRequestHandler(message.method, message.params);
2105
+ if ("error" in response) {
2106
+ console.error("Error handling request", message, response.error);
2107
+ }
2108
+ await this.#sendMessage({
2109
+ jsonrpc: "2.0",
2110
+ id: message.id,
2111
+ ...response
2112
+ });
2113
+ } else if ("method" in message) {
2114
+ const response = await this.#tryCallNotificationHandler(message.method, message.params);
2115
+ if ("error" in response) {
2116
+ console.error("Error handling notification", message, response.error);
2117
+ }
2118
+ } else if ("id" in message) {
2119
+ this.#handleResponse(message);
2120
+ } else {
2121
+ console.error("Invalid message", { message });
2122
+ }
2123
+ }
2124
+ async#tryCallRequestHandler(method, params) {
2125
+ try {
2126
+ const result = await this.#requestHandler(method, params);
2127
+ return { result: result ?? null };
2128
+ } catch (error) {
2129
+ if (error instanceof RequestError) {
2130
+ return error.toResult();
2131
+ }
2132
+ if (error instanceof exports_external.ZodError) {
2133
+ return RequestError.invalidParams(error.format()).toResult();
2134
+ }
2135
+ let details;
2136
+ if (error instanceof Error) {
2137
+ details = error.message;
2138
+ } else if (typeof error === "object" && error != null && "message" in error && typeof error.message === "string") {
2139
+ details = error.message;
2140
+ }
2141
+ try {
2142
+ return RequestError.internalError(details ? JSON.parse(details) : {}).toResult();
2143
+ } catch {
2144
+ return RequestError.internalError({ details }).toResult();
2145
+ }
2146
+ }
2147
+ }
2148
+ async#tryCallNotificationHandler(method, params) {
2149
+ try {
2150
+ await this.#notificationHandler(method, params);
2151
+ return { result: null };
2152
+ } catch (error) {
2153
+ if (error instanceof RequestError) {
2154
+ return error.toResult();
2155
+ }
2156
+ if (error instanceof exports_external.ZodError) {
2157
+ return RequestError.invalidParams(error.format()).toResult();
2158
+ }
2159
+ let details;
2160
+ if (error instanceof Error) {
2161
+ details = error.message;
2162
+ } else if (typeof error === "object" && error != null && "message" in error && typeof error.message === "string") {
2163
+ details = error.message;
2164
+ }
2165
+ try {
2166
+ return RequestError.internalError(details ? JSON.parse(details) : {}).toResult();
2167
+ } catch {
2168
+ return RequestError.internalError({ details }).toResult();
2169
+ }
2170
+ }
2171
+ }
2172
+ #handleResponse(response) {
2173
+ const pendingResponse = this.#pendingResponses.get(response.id);
2174
+ if (pendingResponse) {
2175
+ if ("result" in response) {
2176
+ pendingResponse.resolve(response.result);
2177
+ } else if ("error" in response) {
2178
+ const { code, message, data } = response.error;
2179
+ pendingResponse.reject(new RequestError(code, message, data));
2180
+ }
2181
+ this.#pendingResponses.delete(response.id);
2182
+ } else {
2183
+ console.error("Got response to unknown request", response.id);
2184
+ }
2185
+ }
2186
+ async sendRequest(method, params) {
2187
+ this.#throwIfClosed();
2188
+ const id = this.#nextRequestId++;
2189
+ const responsePromise = new Promise((resolve, reject) => {
2190
+ this.#pendingResponses.set(id, { resolve, reject });
2191
+ });
2192
+ await this.#sendMessage({ jsonrpc: "2.0", id, method, params });
2193
+ return responsePromise;
2194
+ }
2195
+ async sendNotification(method, params) {
2196
+ this.#throwIfClosed();
2197
+ await this.#sendMessage({ jsonrpc: "2.0", method, params });
2198
+ }
2199
+ #throwIfClosed() {
2200
+ if (this.#abortController.signal.aborted) {
2201
+ throw this.#abortController.signal.reason ?? new Error("ACP connection closed");
2202
+ }
2203
+ }
2204
+ async#sendMessage(message) {
2205
+ this.#writeQueue = this.#writeQueue.then(async () => {
2206
+ const writer = this.#stream.writable.getWriter();
2207
+ try {
2208
+ await writer.write(message);
2209
+ } finally {
2210
+ writer.releaseLock();
2211
+ }
2212
+ }).catch((error) => {
2213
+ this.#close(error);
2214
+ });
2215
+ return this.#writeQueue;
2216
+ }
2217
+ }
2218
+
2219
+ class RequestError extends Error {
2220
+ code;
2221
+ data;
2222
+ constructor(code, message, data) {
2223
+ super(message);
2224
+ this.code = code;
2225
+ this.name = "RequestError";
2226
+ this.data = data;
2227
+ }
2228
+ static parseError(data, additionalMessage) {
2229
+ return new RequestError(-32700, `Parse error${additionalMessage ? `: ${additionalMessage}` : ""}`, data);
2230
+ }
2231
+ static invalidRequest(data, additionalMessage) {
2232
+ return new RequestError(-32600, `Invalid request${additionalMessage ? `: ${additionalMessage}` : ""}`, data);
2233
+ }
2234
+ static methodNotFound(method) {
2235
+ return new RequestError(-32601, `"Method not found": ${method}`, {
2236
+ method
2237
+ });
2238
+ }
2239
+ static invalidParams(data, additionalMessage) {
2240
+ return new RequestError(-32602, `Invalid params${additionalMessage ? `: ${additionalMessage}` : ""}`, data);
2241
+ }
2242
+ static internalError(data, additionalMessage) {
2243
+ return new RequestError(-32603, `Internal error${additionalMessage ? `: ${additionalMessage}` : ""}`, data);
2244
+ }
2245
+ static authRequired(data, additionalMessage) {
2246
+ return new RequestError(-32000, `Authentication required${additionalMessage ? `: ${additionalMessage}` : ""}`, data);
2247
+ }
2248
+ static resourceNotFound(uri) {
2249
+ return new RequestError(-32002, `Resource not found${uri ? `: ${uri}` : ""}`, uri && { uri });
2250
+ }
2251
+ toResult() {
2252
+ return {
2253
+ error: {
2254
+ code: this.code,
2255
+ message: this.message,
2256
+ data: this.data
2257
+ }
2258
+ };
2259
+ }
2260
+ toErrorResponse() {
2261
+ return {
2262
+ code: this.code,
2263
+ message: this.message,
2264
+ data: this.data
2265
+ };
2266
+ }
2267
+ }
2268
+
2269
+ // src/services/acp/entry.ts
2270
+ import { Readable, Writable } from "stream";
2271
+
2272
+ // src/services/acp/agent.ts
2273
+ init_conversationRecovery();
2274
+ init_sessionStorage();
2275
+ import { randomUUID } from "crypto";
2276
+ init_tools();
2277
+ init_Tool();
2278
+ init_commands();
2279
+ init_state();
2280
+ init_config();
2281
+ init_fileStateCache();
2282
+ init_AppStateStore();
2283
+
2284
+ // src/services/acp/utils.ts
2285
+ import * as path from "path";
2286
+ var IS_ROOT = typeof process.geteuid === "function" ? process.geteuid() === 0 : typeof process.getuid === "function" ? process.getuid() === 0 : false;
2287
+ var ALLOW_BYPASS = !IS_ROOT || !!process.env.IS_SANDBOX;
2288
+ var PERMISSION_MODE_ALIASES = {
2289
+ auto: "auto",
2290
+ default: "default",
2291
+ acceptedits: "acceptEdits",
2292
+ dontask: "dontAsk",
2293
+ plan: "plan",
2294
+ bypasspermissions: "bypassPermissions",
2295
+ bypass: "bypassPermissions"
2296
+ };
2297
+ function resolvePermissionMode(defaultMode) {
2298
+ if (defaultMode === undefined) {
2299
+ return "default";
2300
+ }
2301
+ if (typeof defaultMode !== "string") {
2302
+ throw new Error("Invalid permissions.defaultMode: expected a string.");
2303
+ }
2304
+ const normalized = defaultMode.trim().toLowerCase();
2305
+ if (normalized === "") {
2306
+ throw new Error("Invalid permissions.defaultMode: expected a non-empty string.");
2307
+ }
2308
+ const mapped = PERMISSION_MODE_ALIASES[normalized];
2309
+ if (!mapped) {
2310
+ throw new Error(`Invalid permissions.defaultMode: ${defaultMode}.`);
2311
+ }
2312
+ if (mapped === "bypassPermissions" && !ALLOW_BYPASS) {
2313
+ throw new Error("Invalid permissions.defaultMode: bypassPermissions is not available when running as root.");
2314
+ }
2315
+ return mapped;
2316
+ }
2317
+ function computeSessionFingerprint(params) {
2318
+ const servers = [...params.mcpServers ?? []].sort((a, b) => a.name.localeCompare(b.name));
2319
+ return JSON.stringify({ cwd: params.cwd, mcpServers: servers });
2320
+ }
2321
+ var MAX_TITLE_LENGTH = 256;
2322
+ function sanitizeTitle(text) {
2323
+ const sanitized = text.replace(/[\r\n]+/g, " ").replace(/\s+/g, " ").trim();
2324
+ if (sanitized.length <= MAX_TITLE_LENGTH) {
2325
+ return sanitized;
2326
+ }
2327
+ return sanitized.slice(0, MAX_TITLE_LENGTH - 1) + "\u2026";
2328
+ }
2329
+ function toDisplayPath(filePath, cwd) {
2330
+ if (!cwd)
2331
+ return filePath;
2332
+ const resolvedCwd = path.resolve(cwd);
2333
+ const resolvedFile = path.resolve(filePath);
2334
+ if (resolvedFile.startsWith(resolvedCwd + path.sep) || resolvedFile === resolvedCwd) {
2335
+ return path.relative(resolvedCwd, resolvedFile);
2336
+ }
2337
+ return filePath;
2338
+ }
2339
+ function markdownEscape(text) {
2340
+ let escape = "```";
2341
+ for (const m of text.matchAll(/^```+/gm) ?? []) {
2342
+ while (m[0].length >= escape.length) {
2343
+ escape += "`";
2344
+ }
2345
+ }
2346
+ return escape + `
2347
+ ` + text + (text.endsWith(`
2348
+ `) ? "" : `
2349
+ `) + escape;
2350
+ }
2351
+
2352
+ // src/services/acp/bridge.ts
2353
+ function toolInfoFromToolUse(toolUse, _supportsTerminalOutput = false, cwd) {
2354
+ const name = toolUse.name;
2355
+ const input = toolUse.input;
2356
+ switch (name) {
2357
+ case "Agent":
2358
+ case "Task": {
2359
+ const description = input?.description ?? "Task";
2360
+ const prompt = input?.prompt;
2361
+ return {
2362
+ title: description,
2363
+ kind: "think",
2364
+ content: prompt ? [{ type: "content", content: { type: "text", text: prompt } }] : []
2365
+ };
2366
+ }
2367
+ case "Bash": {
2368
+ const command = input?.command ?? "Terminal";
2369
+ const description = input?.description;
2370
+ return {
2371
+ title: command,
2372
+ kind: "execute",
2373
+ content: _supportsTerminalOutput ? [{ type: "terminal", terminalId: toolUse.id }] : description ? [{ type: "content", content: { type: "text", text: description } }] : []
2374
+ };
2375
+ }
2376
+ case "Read": {
2377
+ const filePath = input?.file_path ?? "File";
2378
+ const offset = input?.offset;
2379
+ const limit = input?.limit;
2380
+ let suffix = "";
2381
+ if (limit && limit > 0) {
2382
+ suffix = ` (${offset ?? 1} - ${(offset ?? 1) + limit - 1})`;
2383
+ } else if (offset) {
2384
+ suffix = ` (from line ${offset})`;
2385
+ }
2386
+ const displayPath = filePath ? toDisplayPath(filePath, cwd) : "File";
2387
+ return {
2388
+ title: `Read ${displayPath}${suffix}`,
2389
+ kind: "read",
2390
+ locations: filePath ? [{ path: filePath, line: offset ?? 1 }] : [],
2391
+ content: []
2392
+ };
2393
+ }
2394
+ case "Write": {
2395
+ const filePath = input?.file_path ?? "";
2396
+ const content = input?.content ?? "";
2397
+ const displayPath = filePath ? toDisplayPath(filePath, cwd) : undefined;
2398
+ return {
2399
+ title: displayPath ? `Write ${displayPath}` : "Write",
2400
+ kind: "edit",
2401
+ content: filePath ? [{ type: "diff", path: filePath, oldText: null, newText: content }] : [{ type: "content", content: { type: "text", text: content } }],
2402
+ locations: filePath ? [{ path: filePath }] : []
2403
+ };
2404
+ }
2405
+ case "Edit": {
2406
+ const filePath = input?.file_path ?? "";
2407
+ const oldString = input?.old_string ?? "";
2408
+ const newString = input?.new_string ?? "";
2409
+ const displayPath = filePath ? toDisplayPath(filePath, cwd) : undefined;
2410
+ return {
2411
+ title: displayPath ? `Edit ${displayPath}` : "Edit",
2412
+ kind: "edit",
2413
+ content: filePath ? [{ type: "diff", path: filePath, oldText: oldString || null, newText: newString }] : [],
2414
+ locations: filePath ? [{ path: filePath }] : []
2415
+ };
2416
+ }
2417
+ case "Glob": {
2418
+ const globPath = input?.path ?? "";
2419
+ const pattern = input?.pattern ?? "";
2420
+ let label = "Find";
2421
+ if (globPath)
2422
+ label += ` \`${globPath}\``;
2423
+ if (pattern)
2424
+ label += ` \`${pattern}\``;
2425
+ return {
2426
+ title: label,
2427
+ kind: "search",
2428
+ content: [],
2429
+ locations: globPath ? [{ path: globPath }] : []
2430
+ };
2431
+ }
2432
+ case "Grep": {
2433
+ const grepPattern = input?.pattern ?? "";
2434
+ const grepPath = input?.path ?? "";
2435
+ let label = "grep";
2436
+ if (input?.["-i"])
2437
+ label += " -i";
2438
+ if (input?.["-n"])
2439
+ label += " -n";
2440
+ if (input?.["-A"] !== undefined)
2441
+ label += ` -A ${input["-A"]}`;
2442
+ if (input?.["-B"] !== undefined)
2443
+ label += ` -B ${input["-B"]}`;
2444
+ if (input?.["-C"] !== undefined)
2445
+ label += ` -C ${input["-C"]}`;
2446
+ if (input?.output_mode === "files_with_matches")
2447
+ label += " -l";
2448
+ else if (input?.output_mode === "count")
2449
+ label += " -c";
2450
+ if (input?.head_limit !== undefined)
2451
+ label += ` | head -${input.head_limit}`;
2452
+ if (input?.glob)
2453
+ label += ` --include="${input.glob}"`;
2454
+ if (input?.type)
2455
+ label += ` --type=${input.type}`;
2456
+ if (input?.multiline)
2457
+ label += " -P";
2458
+ if (grepPattern)
2459
+ label += ` "${grepPattern}"`;
2460
+ if (grepPath)
2461
+ label += ` ${grepPath}`;
2462
+ return {
2463
+ title: label,
2464
+ kind: "search",
2465
+ content: []
2466
+ };
2467
+ }
2468
+ case "WebFetch": {
2469
+ const url = input?.url ?? "";
2470
+ const fetchPrompt = input?.prompt;
2471
+ return {
2472
+ title: url ? `Fetch ${url}` : "Fetch",
2473
+ kind: "fetch",
2474
+ content: fetchPrompt ? [{ type: "content", content: { type: "text", text: fetchPrompt } }] : []
2475
+ };
2476
+ }
2477
+ case "WebSearch": {
2478
+ const query = input?.query ?? "Web search";
2479
+ let label = `"${query}"`;
2480
+ const allowed = input?.allowed_domains;
2481
+ const blocked = input?.blocked_domains;
2482
+ if (allowed && allowed.length > 0)
2483
+ label += ` (allowed: ${allowed.join(", ")})`;
2484
+ if (blocked && blocked.length > 0)
2485
+ label += ` (blocked: ${blocked.join(", ")})`;
2486
+ return {
2487
+ title: label,
2488
+ kind: "fetch",
2489
+ content: []
2490
+ };
2491
+ }
2492
+ case "TodoWrite": {
2493
+ const todos = input?.todos;
2494
+ return {
2495
+ title: Array.isArray(todos) ? `Update TODOs: ${todos.map((t) => t.content).join(", ")}` : "Update TODOs",
2496
+ kind: "think",
2497
+ content: []
2498
+ };
2499
+ }
2500
+ case "ExitPlanMode": {
2501
+ const plan = input?.plan;
2502
+ return {
2503
+ title: "Ready to code?",
2504
+ kind: "switch_mode",
2505
+ content: plan ? [{ type: "content", content: { type: "text", text: plan } }] : []
2506
+ };
2507
+ }
2508
+ default:
2509
+ return {
2510
+ title: name || "Unknown Tool",
2511
+ kind: "other",
2512
+ content: []
2513
+ };
2514
+ }
2515
+ }
2516
+ function toolUpdateFromToolResult(toolResult, toolUse, _supportsTerminalOutput = false) {
2517
+ if (!toolUse)
2518
+ return {};
2519
+ const isError = toolResult.is_error === true;
2520
+ const resultContent = toolResult.content;
2521
+ if (isError && resultContent) {
2522
+ return toAcpContentUpdate(resultContent, true);
2523
+ }
2524
+ switch (toolUse.name) {
2525
+ case "Read": {
2526
+ if (typeof resultContent === "string" && resultContent.length > 0) {
2527
+ return {
2528
+ content: [
2529
+ {
2530
+ type: "content",
2531
+ content: { type: "text", text: markdownEscape(resultContent) }
2532
+ }
2533
+ ]
2534
+ };
2535
+ }
2536
+ if (Array.isArray(resultContent) && resultContent.length > 0) {
2537
+ return {
2538
+ content: resultContent.map((c) => ({
2539
+ type: "content",
2540
+ content: c.type === "text" ? { type: "text", text: markdownEscape(c.text) } : toAcpContentBlock(c, false)
2541
+ }))
2542
+ };
2543
+ }
2544
+ return {};
2545
+ }
2546
+ case "Bash": {
2547
+ let output = "";
2548
+ let exitCode = isError ? 1 : 0;
2549
+ const terminalId = String(toolUse.id);
2550
+ if (resultContent && typeof resultContent === "object" && !Array.isArray(resultContent) && resultContent.type === "bash_code_execution_result") {
2551
+ const bashResult = resultContent;
2552
+ output = [bashResult.stdout, bashResult.stderr].filter(Boolean).join(`
2553
+ `);
2554
+ exitCode = bashResult.return_code ?? (isError ? 1 : 0);
2555
+ } else if (typeof resultContent === "string") {
2556
+ output = resultContent;
2557
+ } else if (Array.isArray(resultContent) && resultContent.length > 0) {
2558
+ output = resultContent.map((c) => c.type === "text" ? c.text : "").join(`
2559
+ `);
2560
+ }
2561
+ if (_supportsTerminalOutput) {
2562
+ return {
2563
+ content: [{ type: "terminal", terminalId }],
2564
+ _meta: {
2565
+ terminal_info: { terminal_id: terminalId },
2566
+ terminal_output: { terminal_id: terminalId, data: output },
2567
+ terminal_exit: { terminal_id: terminalId, exit_code: exitCode, signal: null }
2568
+ }
2569
+ };
2570
+ }
2571
+ if (output.trim()) {
2572
+ return {
2573
+ content: [
2574
+ {
2575
+ type: "content",
2576
+ content: {
2577
+ type: "text",
2578
+ text: `\`\`\`console
2579
+ ${output.trimEnd()}
2580
+ \`\`\``
2581
+ }
2582
+ }
2583
+ ]
2584
+ };
2585
+ }
2586
+ return {};
2587
+ }
2588
+ case "Edit":
2589
+ case "Write": {
2590
+ return {};
2591
+ }
2592
+ case "ExitPlanMode": {
2593
+ return { title: "Exited Plan Mode" };
2594
+ }
2595
+ default: {
2596
+ return toAcpContentUpdate(resultContent ?? "", isError);
2597
+ }
2598
+ }
2599
+ }
2600
+ function toAcpContentUpdate(content, isError) {
2601
+ if (Array.isArray(content) && content.length > 0) {
2602
+ return {
2603
+ content: content.map((c) => ({
2604
+ type: "content",
2605
+ content: toAcpContentBlock(c, isError)
2606
+ }))
2607
+ };
2608
+ }
2609
+ if (typeof content === "string" && content.length > 0) {
2610
+ return {
2611
+ content: [
2612
+ {
2613
+ type: "content",
2614
+ content: {
2615
+ type: "text",
2616
+ text: isError ? `\`\`\`
2617
+ ${content}
2618
+ \`\`\`` : content
2619
+ }
2620
+ }
2621
+ ]
2622
+ };
2623
+ }
2624
+ return {};
2625
+ }
2626
+ function toAcpContentBlock(content, isError) {
2627
+ const wrapText = (text) => ({
2628
+ type: "text",
2629
+ text: isError ? `\`\`\`
2630
+ ${text}
2631
+ \`\`\`` : text
2632
+ });
2633
+ const type = content.type;
2634
+ switch (type) {
2635
+ case "text": {
2636
+ const text = content.text;
2637
+ return { type: "text", text: isError ? `\`\`\`
2638
+ ${text}
2639
+ \`\`\`` : text };
2640
+ }
2641
+ case "image": {
2642
+ const source = content.source;
2643
+ if (source?.type === "base64") {
2644
+ return {
2645
+ type: "image",
2646
+ data: source.data,
2647
+ mimeType: source.media_type
2648
+ };
2649
+ }
2650
+ return wrapText(source?.type === "url" ? `[image: ${source.url}]` : "[image: file reference]");
2651
+ }
2652
+ case "tool_reference":
2653
+ return wrapText(`Tool: ${content.tool_name}`);
2654
+ case "tool_search_tool_search_result": {
2655
+ const refs = content.tool_references;
2656
+ return wrapText(`Tools found: ${refs?.map((r) => r.tool_name).join(", ") || "none"}`);
2657
+ }
2658
+ case "tool_search_tool_result_error":
2659
+ return wrapText(`Error: ${content.error_code}${content.error_message ? ` - ${content.error_message}` : ""}`);
2660
+ case "web_search_result":
2661
+ return wrapText(`${content.title} (${content.url})`);
2662
+ case "web_search_tool_result_error":
2663
+ return wrapText(`Error: ${content.error_code}`);
2664
+ case "web_fetch_result":
2665
+ return wrapText(`Fetched: ${content.url}`);
2666
+ case "web_fetch_tool_result_error":
2667
+ return wrapText(`Error: ${content.error_code}`);
2668
+ case "code_execution_result":
2669
+ case "bash_code_execution_result":
2670
+ return wrapText(`Output: ${content.stdout || content.stderr || ""}`);
2671
+ case "code_execution_tool_result_error":
2672
+ case "bash_code_execution_tool_result_error":
2673
+ return wrapText(`Error: ${content.error_code}`);
2674
+ case "text_editor_code_execution_view_result":
2675
+ return wrapText(content.content);
2676
+ case "text_editor_code_execution_create_result":
2677
+ return wrapText(content.is_file_update ? "File updated" : "File created");
2678
+ case "text_editor_code_execution_str_replace_result": {
2679
+ const lines = content.lines;
2680
+ return wrapText(lines?.join(`
2681
+ `) || "");
2682
+ }
2683
+ case "text_editor_code_execution_tool_result_error":
2684
+ return wrapText(`Error: ${content.error_code}${content.error_message ? ` - ${content.error_message}` : ""}`);
2685
+ default:
2686
+ try {
2687
+ return { type: "text", text: JSON.stringify(content) };
2688
+ } catch {
2689
+ return { type: "text", text: "[content]" };
2690
+ }
2691
+ }
2692
+ }
2693
+ async function forwardSessionUpdates(sessionId, sdkMessages, conn, abortSignal, toolUseCache, clientCapabilities, cwd, isCancelled) {
2694
+ let stopReason = "end_turn";
2695
+ const accumulatedUsage = {
2696
+ inputTokens: 0,
2697
+ outputTokens: 0,
2698
+ cachedReadTokens: 0,
2699
+ cachedWriteTokens: 0
2700
+ };
2701
+ let lastAssistantTotalUsage = null;
2702
+ let lastAssistantModel = null;
2703
+ let lastContextWindowSize = 200000;
2704
+ try {
2705
+ while (!abortSignal.aborted) {
2706
+ const nextResult = await Promise.race([
2707
+ sdkMessages.next(),
2708
+ new Promise((resolve2) => {
2709
+ if (abortSignal.aborted) {
2710
+ resolve2({ done: true, value: undefined });
2711
+ return;
2712
+ }
2713
+ const handler = () => resolve2({ done: true, value: undefined });
2714
+ abortSignal.addEventListener("abort", handler, { once: true });
2715
+ })
2716
+ ]);
2717
+ if (nextResult.done || abortSignal.aborted)
2718
+ break;
2719
+ const msg = nextResult.value;
2720
+ const type = msg.type;
2721
+ switch (type) {
2722
+ case "system": {
2723
+ const subtype = msg.subtype;
2724
+ if (subtype === "compact_boundary") {
2725
+ lastAssistantTotalUsage = 0;
2726
+ await conn.sessionUpdate({
2727
+ sessionId,
2728
+ update: {
2729
+ sessionUpdate: "usage_update",
2730
+ used: 0,
2731
+ size: lastContextWindowSize
2732
+ }
2733
+ });
2734
+ await conn.sessionUpdate({
2735
+ sessionId,
2736
+ update: {
2737
+ sessionUpdate: "agent_message_chunk",
2738
+ content: { type: "text", text: `
2739
+
2740
+ Compacting completed.` }
2741
+ }
2742
+ });
2743
+ }
2744
+ break;
2745
+ }
2746
+ case "result": {
2747
+ const usage = msg.usage;
2748
+ if (usage) {
2749
+ accumulatedUsage.inputTokens += usage.input_tokens;
2750
+ accumulatedUsage.outputTokens += usage.output_tokens;
2751
+ accumulatedUsage.cachedReadTokens += usage.cache_read_input_tokens;
2752
+ accumulatedUsage.cachedWriteTokens += usage.cache_creation_input_tokens;
2753
+ }
2754
+ const modelUsage = msg.modelUsage;
2755
+ if (modelUsage && lastAssistantModel) {
2756
+ const match = getMatchingModelUsage(modelUsage, lastAssistantModel);
2757
+ if (match?.contextWindow) {
2758
+ lastContextWindowSize = match.contextWindow;
2759
+ }
2760
+ }
2761
+ const usedTokens = lastAssistantTotalUsage ?? accumulatedUsage.inputTokens + accumulatedUsage.outputTokens + accumulatedUsage.cachedReadTokens + accumulatedUsage.cachedWriteTokens;
2762
+ const totalCostUsd = msg.total_cost_usd;
2763
+ await conn.sessionUpdate({
2764
+ sessionId,
2765
+ update: {
2766
+ sessionUpdate: "usage_update",
2767
+ used: usedTokens,
2768
+ size: lastContextWindowSize,
2769
+ cost: totalCostUsd != null ? { amount: totalCostUsd, currency: "USD" } : undefined
2770
+ }
2771
+ });
2772
+ const subtype = msg.subtype;
2773
+ const isError = msg.is_error;
2774
+ if (abortSignal.aborted) {
2775
+ stopReason = "cancelled";
2776
+ break;
2777
+ }
2778
+ switch (subtype) {
2779
+ case "success": {
2780
+ const stopReasonStr = msg.stop_reason;
2781
+ if (stopReasonStr === "max_tokens") {
2782
+ stopReason = "max_tokens";
2783
+ }
2784
+ if (isError) {
2785
+ stopReason = "end_turn";
2786
+ }
2787
+ break;
2788
+ }
2789
+ case "error_during_execution": {
2790
+ if (msg.stop_reason === "max_tokens") {
2791
+ stopReason = "max_tokens";
2792
+ } else if (isError) {
2793
+ stopReason = "end_turn";
2794
+ } else {
2795
+ stopReason = "end_turn";
2796
+ }
2797
+ break;
2798
+ }
2799
+ case "error_max_budget_usd":
2800
+ case "error_max_turns":
2801
+ case "error_max_structured_output_retries":
2802
+ if (isError) {
2803
+ stopReason = "max_turn_requests";
2804
+ } else {
2805
+ stopReason = "max_turn_requests";
2806
+ }
2807
+ break;
2808
+ }
2809
+ break;
2810
+ }
2811
+ case "stream_event": {
2812
+ const notifications = streamEventToAcpNotifications(msg, sessionId, toolUseCache, conn, {
2813
+ clientCapabilities,
2814
+ cwd
2815
+ });
2816
+ for (const notification of notifications) {
2817
+ await conn.sessionUpdate(notification);
2818
+ }
2819
+ break;
2820
+ }
2821
+ case "assistant": {
2822
+ const assistantMsg = msg.message;
2823
+ const parentToolUseId = msg.parent_tool_use_id;
2824
+ if (assistantMsg?.usage && parentToolUseId === null) {
2825
+ const msgUsage = assistantMsg.usage;
2826
+ lastAssistantTotalUsage = (msgUsage.input_tokens ?? 0) + (msgUsage.output_tokens ?? 0) + (msgUsage.cache_read_input_tokens ?? 0) + (msgUsage.cache_creation_input_tokens ?? 0);
2827
+ }
2828
+ if (parentToolUseId === null && assistantMsg?.model && assistantMsg.model !== "<synthetic>") {
2829
+ lastAssistantModel = assistantMsg.model;
2830
+ }
2831
+ const notifications = assistantMessageToAcpNotifications(msg, sessionId, toolUseCache, conn, {
2832
+ clientCapabilities,
2833
+ cwd
2834
+ });
2835
+ for (const notification of notifications) {
2836
+ await conn.sessionUpdate(notification);
2837
+ }
2838
+ break;
2839
+ }
2840
+ case "user": {
2841
+ break;
2842
+ }
2843
+ case "progress": {
2844
+ const progressData = msg.data;
2845
+ if (!progressData)
2846
+ break;
2847
+ const progressType = progressData.type;
2848
+ if (progressType === "agent_progress" || progressType === "skill_progress") {
2849
+ const progressMessage = progressData.message;
2850
+ if (progressMessage) {
2851
+ const content = progressMessage.content;
2852
+ if (content) {
2853
+ for (const block of content) {
2854
+ if (block.type === "text") {
2855
+ await conn.sessionUpdate({
2856
+ sessionId,
2857
+ update: {
2858
+ sessionUpdate: "agent_message_chunk",
2859
+ content: { type: "text", text: block.text }
2860
+ }
2861
+ });
2862
+ }
2863
+ }
2864
+ }
2865
+ }
2866
+ }
2867
+ break;
2868
+ }
2869
+ case "tool_use_summary": {
2870
+ break;
2871
+ }
2872
+ case "attachment": {
2873
+ break;
2874
+ }
2875
+ case "compact_boundary": {
2876
+ lastAssistantTotalUsage = 0;
2877
+ await conn.sessionUpdate({
2878
+ sessionId,
2879
+ update: {
2880
+ sessionUpdate: "usage_update",
2881
+ used: 0,
2882
+ size: lastContextWindowSize
2883
+ }
2884
+ });
2885
+ await conn.sessionUpdate({
2886
+ sessionId,
2887
+ update: {
2888
+ sessionUpdate: "agent_message_chunk",
2889
+ content: { type: "text", text: `
2890
+
2891
+ Compacting completed.` }
2892
+ }
2893
+ });
2894
+ break;
2895
+ }
2896
+ default:
2897
+ break;
2898
+ }
2899
+ }
2900
+ if (abortSignal.aborted || isCancelled?.()) {
2901
+ return { stopReason: "cancelled", usage: accumulatedUsage };
2902
+ }
2903
+ } catch (err) {
2904
+ if (abortSignal.aborted) {
2905
+ return { stopReason: "cancelled", usage: accumulatedUsage };
2906
+ }
2907
+ throw err;
2908
+ }
2909
+ return { stopReason, usage: accumulatedUsage };
2910
+ }
2911
+ function assistantMessageToAcpNotifications(msg, sessionId, toolUseCache, conn, options) {
2912
+ const message = msg.message;
2913
+ if (!message)
2914
+ return [];
2915
+ const content = message.content;
2916
+ if (!content)
2917
+ return [];
2918
+ if (typeof content === "string") {
2919
+ return [
2920
+ {
2921
+ sessionId,
2922
+ update: {
2923
+ sessionUpdate: "agent_message_chunk",
2924
+ content: { type: "text", text: content }
2925
+ }
2926
+ }
2927
+ ];
2928
+ }
2929
+ return toAcpNotifications(content, "assistant", sessionId, toolUseCache, conn, undefined, options);
2930
+ }
2931
+ function streamEventToAcpNotifications(msg, sessionId, toolUseCache, conn, options) {
2932
+ const event = msg.event;
2933
+ if (!event)
2934
+ return [];
2935
+ switch (event.type) {
2936
+ case "content_block_start": {
2937
+ const contentBlock = event.content_block;
2938
+ if (!contentBlock)
2939
+ return [];
2940
+ return toAcpNotifications([contentBlock], "assistant", sessionId, toolUseCache, conn, undefined, {
2941
+ clientCapabilities: options?.clientCapabilities,
2942
+ parentToolUseId: msg.parent_tool_use_id,
2943
+ cwd: options?.cwd
2944
+ });
2945
+ }
2946
+ case "content_block_delta": {
2947
+ const delta = event.delta;
2948
+ if (!delta)
2949
+ return [];
2950
+ return toAcpNotifications([delta], "assistant", sessionId, toolUseCache, conn, undefined, {
2951
+ clientCapabilities: options?.clientCapabilities,
2952
+ parentToolUseId: msg.parent_tool_use_id,
2953
+ cwd: options?.cwd
2954
+ });
2955
+ }
2956
+ case "message_start":
2957
+ case "message_delta":
2958
+ case "message_stop":
2959
+ case "content_block_stop":
2960
+ return [];
2961
+ default:
2962
+ return [];
2963
+ }
2964
+ }
2965
+ function toAcpNotifications(content, role, sessionId, toolUseCache, _conn, _logger, options) {
2966
+ const output = [];
2967
+ for (const chunk of content) {
2968
+ const chunkType = chunk.type;
2969
+ let update = null;
2970
+ switch (chunkType) {
2971
+ case "text":
2972
+ case "text_delta": {
2973
+ const text = chunk.text ?? "";
2974
+ update = {
2975
+ sessionUpdate: role === "assistant" ? "agent_message_chunk" : "user_message_chunk",
2976
+ content: { type: "text", text }
2977
+ };
2978
+ break;
2979
+ }
2980
+ case "thinking":
2981
+ case "thinking_delta": {
2982
+ const thinking = chunk.thinking ?? "";
2983
+ update = {
2984
+ sessionUpdate: "agent_thought_chunk",
2985
+ content: { type: "text", text: thinking }
2986
+ };
2987
+ break;
2988
+ }
2989
+ case "image": {
2990
+ const source = chunk.source;
2991
+ if (source?.type === "base64") {
2992
+ update = {
2993
+ sessionUpdate: role === "assistant" ? "agent_message_chunk" : "user_message_chunk",
2994
+ content: {
2995
+ type: "image",
2996
+ data: source.data,
2997
+ mimeType: source.media_type
2998
+ }
2999
+ };
3000
+ }
3001
+ break;
3002
+ }
3003
+ case "tool_use":
3004
+ case "server_tool_use":
3005
+ case "mcp_tool_use": {
3006
+ const toolUseId = chunk.id ?? "";
3007
+ const toolName = chunk.name ?? "unknown";
3008
+ const toolInput = chunk.input;
3009
+ const alreadyCached = toolUseId in toolUseCache;
3010
+ toolUseCache[toolUseId] = {
3011
+ type: chunkType,
3012
+ id: toolUseId,
3013
+ name: toolName,
3014
+ input: toolInput
3015
+ };
3016
+ if (toolName === "TodoWrite") {
3017
+ const todos = toolInput?.todos;
3018
+ if (Array.isArray(todos)) {
3019
+ const entries = todos.map((todo) => ({
3020
+ content: todo.content,
3021
+ status: normalizePlanStatus(todo.status),
3022
+ priority: "medium"
3023
+ }));
3024
+ update = {
3025
+ sessionUpdate: "plan",
3026
+ entries
3027
+ };
3028
+ }
3029
+ } else {
3030
+ let rawInput;
3031
+ try {
3032
+ rawInput = JSON.parse(JSON.stringify(toolInput ?? {}));
3033
+ } catch {}
3034
+ if (alreadyCached) {
3035
+ update = {
3036
+ _meta: {
3037
+ claudeCode: { toolName }
3038
+ },
3039
+ toolCallId: toolUseId,
3040
+ sessionUpdate: "tool_call_update",
3041
+ rawInput,
3042
+ ...toolInfoFromToolUse({ name: toolName, id: toolUseId, input: toolInput ?? {} }, false, options?.cwd)
3043
+ };
3044
+ } else {
3045
+ update = {
3046
+ _meta: {
3047
+ claudeCode: { toolName }
3048
+ },
3049
+ toolCallId: toolUseId,
3050
+ sessionUpdate: "tool_call",
3051
+ rawInput,
3052
+ status: "pending",
3053
+ ...toolInfoFromToolUse({ name: toolName, id: toolUseId, input: toolInput ?? {} }, false, options?.cwd)
3054
+ };
3055
+ }
3056
+ }
3057
+ break;
3058
+ }
3059
+ case "tool_result":
3060
+ case "mcp_tool_result": {
3061
+ const toolUseId = chunk.tool_use_id ?? "";
3062
+ const toolUse = toolUseCache[toolUseId];
3063
+ if (!toolUse)
3064
+ break;
3065
+ if (toolUse.name !== "TodoWrite") {
3066
+ const toolUpdate = toolUpdateFromToolResult(chunk, { name: toolUse.name, id: toolUse.id }, false);
3067
+ update = {
3068
+ _meta: {
3069
+ claudeCode: { toolName: toolUse.name }
3070
+ },
3071
+ toolCallId: toolUseId,
3072
+ sessionUpdate: "tool_call_update",
3073
+ status: chunk.is_error === true ? "failed" : "completed",
3074
+ rawOutput: chunk.content,
3075
+ ...toolUpdate
3076
+ };
3077
+ }
3078
+ break;
3079
+ }
3080
+ case "redacted_thinking":
3081
+ case "input_json_delta":
3082
+ case "citations_delta":
3083
+ case "signature_delta":
3084
+ case "container_upload":
3085
+ case "compaction":
3086
+ case "compaction_delta":
3087
+ break;
3088
+ }
3089
+ if (update) {
3090
+ if (options?.parentToolUseId) {
3091
+ const existingMeta = update._meta;
3092
+ update._meta = {
3093
+ ...existingMeta,
3094
+ claudeCode: {
3095
+ ...existingMeta?.claudeCode ?? {},
3096
+ parentToolUseId: options.parentToolUseId
3097
+ }
3098
+ };
3099
+ }
3100
+ output.push({ sessionId, update });
3101
+ }
3102
+ }
3103
+ return output;
3104
+ }
3105
+ function normalizePlanStatus(status) {
3106
+ if (status === "in_progress")
3107
+ return "in_progress";
3108
+ if (status === "completed")
3109
+ return "completed";
3110
+ return "pending";
3111
+ }
3112
+ async function replayHistoryMessages(sessionId, messages, conn, toolUseCache, clientCapabilities, cwd) {
3113
+ for (const msg of messages) {
3114
+ const type = msg.type;
3115
+ if (type !== "user" && type !== "assistant")
3116
+ continue;
3117
+ if (msg.isMeta === true)
3118
+ continue;
3119
+ const messageData = msg.message;
3120
+ const content = messageData?.content;
3121
+ if (!content)
3122
+ continue;
3123
+ const role = type === "assistant" ? "assistant" : "user";
3124
+ if (typeof content === "string") {
3125
+ if (!content.trim())
3126
+ continue;
3127
+ await conn.sessionUpdate({
3128
+ sessionId,
3129
+ update: {
3130
+ sessionUpdate: role === "assistant" ? "agent_message_chunk" : "user_message_chunk",
3131
+ content: { type: "text", text: content }
3132
+ }
3133
+ });
3134
+ continue;
3135
+ }
3136
+ if (Array.isArray(content)) {
3137
+ const notifications = toAcpNotifications(content, role, sessionId, toolUseCache, conn, undefined, { clientCapabilities, cwd });
3138
+ for (const notification of notifications) {
3139
+ await conn.sessionUpdate(notification);
3140
+ }
3141
+ }
3142
+ }
3143
+ }
3144
+ function commonPrefixLength(a, b) {
3145
+ let i = 0;
3146
+ const maxLen = Math.min(a.length, b.length);
3147
+ while (i < maxLen && a[i] === b[i])
3148
+ i++;
3149
+ return i;
3150
+ }
3151
+ function getMatchingModelUsage(modelUsage, currentModel) {
3152
+ let bestKey = null;
3153
+ let bestLen = 0;
3154
+ for (const key of Object.keys(modelUsage)) {
3155
+ const len = commonPrefixLength(key, currentModel);
3156
+ if (len > bestLen) {
3157
+ bestLen = len;
3158
+ bestKey = key;
3159
+ }
3160
+ }
3161
+ return bestKey ? modelUsage[bestKey] ?? null : null;
3162
+ }
3163
+
3164
+ // src/services/acp/permissions.ts
3165
+ var IS_ROOT2 = typeof process.geteuid === "function" ? process.geteuid() === 0 : typeof process.getuid === "function" ? process.getuid() === 0 : false;
3166
+ var ALLOW_BYPASS2 = !IS_ROOT2 || !!process.env.IS_SANDBOX;
3167
+ function createAcpCanUseTool(conn, sessionId, getCurrentMode, clientCapabilities, cwd) {
3168
+ return async (tool, input, _context, _assistantMessage, toolUseID, _forceDecision) => {
3169
+ const supportsTerminalOutput = checkTerminalOutput(clientCapabilities);
3170
+ if (tool.name === "ExitPlanMode") {
3171
+ return handleExitPlanMode(conn, sessionId, toolUseID, input, supportsTerminalOutput, cwd);
3172
+ }
3173
+ if (getCurrentMode() === "bypassPermissions") {
3174
+ return {
3175
+ behavior: "allow",
3176
+ updatedInput: input
3177
+ };
3178
+ }
3179
+ const info = toolInfoFromToolUse({ name: tool.name, id: toolUseID, input }, supportsTerminalOutput, cwd);
3180
+ const toolCall = {
3181
+ toolCallId: toolUseID,
3182
+ title: info.title,
3183
+ kind: info.kind,
3184
+ status: "pending",
3185
+ rawInput: input
3186
+ };
3187
+ const options = [
3188
+ { kind: "allow_always", name: "Always Allow", optionId: "allow_always" },
3189
+ { kind: "allow_once", name: "Allow", optionId: "allow" },
3190
+ { kind: "reject_once", name: "Reject", optionId: "reject" }
3191
+ ];
3192
+ try {
3193
+ const response = await conn.requestPermission({
3194
+ sessionId,
3195
+ toolCall,
3196
+ options
3197
+ });
3198
+ if (response.outcome.outcome === "cancelled") {
3199
+ return {
3200
+ behavior: "deny",
3201
+ message: "Permission request cancelled by client",
3202
+ decisionReason: { type: "mode", mode: "default" }
3203
+ };
3204
+ }
3205
+ if (response.outcome.outcome === "selected" && "optionId" in response.outcome && response.outcome.optionId !== undefined) {
3206
+ const optionId = response.outcome.optionId;
3207
+ if (optionId === "allow" || optionId === "allow_always") {
3208
+ return {
3209
+ behavior: "allow",
3210
+ updatedInput: input
3211
+ };
3212
+ }
3213
+ }
3214
+ return {
3215
+ behavior: "deny",
3216
+ message: "Permission denied by client",
3217
+ decisionReason: { type: "mode", mode: "default" }
3218
+ };
3219
+ } catch {
3220
+ return {
3221
+ behavior: "deny",
3222
+ message: "Permission request failed",
3223
+ decisionReason: { type: "mode", mode: "default" }
3224
+ };
3225
+ }
3226
+ };
3227
+ }
3228
+ async function handleExitPlanMode(conn, sessionId, toolUseID, input, supportsTerminalOutput, cwd) {
3229
+ const options = [
3230
+ { kind: "allow_always", name: 'Yes, and use "auto" mode', optionId: "auto" },
3231
+ { kind: "allow_always", name: "Yes, and auto-accept edits", optionId: "acceptEdits" },
3232
+ { kind: "allow_once", name: "Yes, and manually approve edits", optionId: "default" },
3233
+ { kind: "reject_once", name: "No, keep planning", optionId: "plan" }
3234
+ ];
3235
+ if (ALLOW_BYPASS2) {
3236
+ options.unshift({
3237
+ kind: "allow_always",
3238
+ name: "Yes, and bypass permissions",
3239
+ optionId: "bypassPermissions"
3240
+ });
3241
+ }
3242
+ const info = toolInfoFromToolUse({ name: "ExitPlanMode", id: toolUseID, input }, supportsTerminalOutput, cwd);
3243
+ const toolCall = {
3244
+ toolCallId: toolUseID,
3245
+ title: info.title,
3246
+ kind: info.kind,
3247
+ status: "pending",
3248
+ rawInput: input
3249
+ };
3250
+ const response = await conn.requestPermission({
3251
+ sessionId,
3252
+ toolCall,
3253
+ options
3254
+ });
3255
+ if (response.outcome.outcome === "cancelled") {
3256
+ return {
3257
+ behavior: "deny",
3258
+ message: "Tool use aborted",
3259
+ decisionReason: { type: "mode", mode: "default" }
3260
+ };
3261
+ }
3262
+ if (response.outcome.outcome === "selected" && "optionId" in response.outcome && response.outcome.optionId !== undefined) {
3263
+ const selectedOption = response.outcome.optionId;
3264
+ if (selectedOption === "default" || selectedOption === "acceptEdits" || selectedOption === "auto" || selectedOption === "bypassPermissions") {
3265
+ await conn.sessionUpdate({
3266
+ sessionId,
3267
+ update: {
3268
+ sessionUpdate: "current_mode_update",
3269
+ currentModeId: selectedOption
3270
+ }
3271
+ });
3272
+ return {
3273
+ behavior: "allow",
3274
+ updatedInput: input
3275
+ };
3276
+ }
3277
+ }
3278
+ return {
3279
+ behavior: "deny",
3280
+ message: "User rejected request to exit plan mode.",
3281
+ decisionReason: { type: "mode", mode: "plan" }
3282
+ };
3283
+ }
3284
+ function checkTerminalOutput(clientCapabilities) {
3285
+ if (!clientCapabilities)
3286
+ return false;
3287
+ const meta = clientCapabilities._meta;
3288
+ if (!meta || typeof meta !== "object")
3289
+ return false;
3290
+ return meta["terminal_output"] === true;
3291
+ }
3292
+
3293
+ // src/services/acp/agent.ts
3294
+ init_listSessionsImpl();
3295
+ init_model();
3296
+ init_modelOptions();
3297
+
3298
+ class AcpAgent {
3299
+ conn;
3300
+ sessions = new Map;
3301
+ clientCapabilities;
3302
+ constructor(conn) {
3303
+ this.conn = conn;
3304
+ }
3305
+ async initialize(params) {
3306
+ this.clientCapabilities = params.clientCapabilities;
3307
+ return {
3308
+ protocolVersion: 1,
3309
+ agentInfo: {
3310
+ name: "claude-code",
3311
+ title: "Claude Code",
3312
+ version: typeof globalThis.MACRO === "object" && globalThis.MACRO !== null ? String(globalThis.MACRO.VERSION ?? "0.0.0") : "0.0.0"
3313
+ },
3314
+ agentCapabilities: {
3315
+ _meta: {
3316
+ claudeCode: {
3317
+ promptQueueing: true
3318
+ }
3319
+ },
3320
+ promptCapabilities: {
3321
+ image: true,
3322
+ embeddedContext: true
3323
+ },
3324
+ mcpCapabilities: {
3325
+ http: true,
3326
+ sse: true
3327
+ },
3328
+ loadSession: true,
3329
+ sessionCapabilities: {
3330
+ fork: {},
3331
+ list: {},
3332
+ resume: {},
3333
+ close: {}
3334
+ }
3335
+ }
3336
+ };
3337
+ }
3338
+ async authenticate(_params) {
3339
+ return {};
3340
+ }
3341
+ async newSession(params) {
3342
+ return this.createSession(params);
3343
+ }
3344
+ async unstable_resumeSession(params) {
3345
+ const result = await this.getOrCreateSession(params);
3346
+ setTimeout(() => {
3347
+ this.sendAvailableCommandsUpdate(params.sessionId);
3348
+ }, 0);
3349
+ return result;
3350
+ }
3351
+ async loadSession(params) {
3352
+ const result = await this.getOrCreateSession(params);
3353
+ setTimeout(() => {
3354
+ this.sendAvailableCommandsUpdate(params.sessionId);
3355
+ }, 0);
3356
+ return result;
3357
+ }
3358
+ async listSessions(params) {
3359
+ const candidates = await listSessionsImpl({
3360
+ dir: params.cwd ?? undefined,
3361
+ limit: 100
3362
+ });
3363
+ const sessions = [];
3364
+ for (const candidate of candidates) {
3365
+ if (!candidate.cwd)
3366
+ continue;
3367
+ sessions.push({
3368
+ sessionId: candidate.sessionId,
3369
+ cwd: candidate.cwd,
3370
+ title: sanitizeTitle(candidate.summary ?? ""),
3371
+ updatedAt: new Date(candidate.lastModified).toISOString()
3372
+ });
3373
+ }
3374
+ return { sessions };
3375
+ }
3376
+ async unstable_forkSession(params) {
3377
+ const response = await this.createSession({
3378
+ cwd: params.cwd,
3379
+ mcpServers: params.mcpServers ?? [],
3380
+ _meta: params._meta
3381
+ });
3382
+ setTimeout(() => {
3383
+ this.sendAvailableCommandsUpdate(response.sessionId);
3384
+ }, 0);
3385
+ return response;
3386
+ }
3387
+ async unstable_closeSession(params) {
3388
+ const session = this.sessions.get(params.sessionId);
3389
+ if (!session) {
3390
+ throw new Error("Session not found");
3391
+ }
3392
+ await this.teardownSession(params.sessionId);
3393
+ return {};
3394
+ }
3395
+ async prompt(params) {
3396
+ const session = this.sessions.get(params.sessionId);
3397
+ if (!session) {
3398
+ throw new Error(`Session ${params.sessionId} not found`);
3399
+ }
3400
+ session.cancelled = false;
3401
+ const promptInput = promptToQueryInput(params.prompt);
3402
+ if (!promptInput.trim()) {
3403
+ return { stopReason: "end_turn" };
3404
+ }
3405
+ if (session.promptRunning) {
3406
+ const order = session.nextPendingOrder++;
3407
+ const promptUuid = randomUUID();
3408
+ const cancelled = await new Promise((resolve2) => {
3409
+ session.pendingMessages.set(promptUuid, { resolve: resolve2, order });
3410
+ });
3411
+ if (cancelled) {
3412
+ return { stopReason: "cancelled" };
3413
+ }
3414
+ }
3415
+ session.promptRunning = true;
3416
+ try {
3417
+ session.queryEngine.resetAbortController();
3418
+ const sdkMessages = session.queryEngine.submitMessage(promptInput);
3419
+ const { stopReason, usage } = await forwardSessionUpdates(params.sessionId, sdkMessages, this.conn, session.queryEngine.getAbortSignal(), session.toolUseCache, this.clientCapabilities, session.cwd, () => session.cancelled);
3420
+ if (session.cancelled) {
3421
+ return { stopReason: "cancelled" };
3422
+ }
3423
+ return {
3424
+ stopReason,
3425
+ usage: usage ? {
3426
+ inputTokens: usage.inputTokens,
3427
+ outputTokens: usage.outputTokens,
3428
+ cachedReadTokens: usage.cachedReadTokens,
3429
+ cachedWriteTokens: usage.cachedWriteTokens,
3430
+ totalTokens: usage.inputTokens + usage.outputTokens + usage.cachedReadTokens + usage.cachedWriteTokens
3431
+ } : undefined
3432
+ };
3433
+ } catch (err) {
3434
+ if (session.cancelled) {
3435
+ return { stopReason: "cancelled" };
3436
+ }
3437
+ if (err instanceof Error && (err.message.includes("terminated") || err.message.includes("process exited"))) {
3438
+ this.teardownSession(params.sessionId);
3439
+ throw new Error("The Claude Agent process exited unexpectedly. Please start a new session.");
3440
+ }
3441
+ console.error("[ACP] prompt error:", err);
3442
+ return { stopReason: "end_turn" };
3443
+ } finally {
3444
+ session.promptRunning = false;
3445
+ if (session.pendingMessages.size > 0) {
3446
+ const next = [...session.pendingMessages.entries()].sort((a, b) => a[1].order - b[1].order)[0];
3447
+ if (next) {
3448
+ next[1].resolve(false);
3449
+ session.pendingMessages.delete(next[0]);
3450
+ }
3451
+ }
3452
+ }
3453
+ }
3454
+ async cancel(params) {
3455
+ const session = this.sessions.get(params.sessionId);
3456
+ if (!session)
3457
+ return;
3458
+ session.cancelled = true;
3459
+ for (const [, pending] of session.pendingMessages) {
3460
+ pending.resolve(true);
3461
+ }
3462
+ session.pendingMessages.clear();
3463
+ session.queryEngine.interrupt();
3464
+ }
3465
+ async setSessionMode(params) {
3466
+ const session = this.sessions.get(params.sessionId);
3467
+ if (!session) {
3468
+ throw new Error("Session not found");
3469
+ }
3470
+ this.applySessionMode(params.sessionId, params.modeId);
3471
+ await this.updateConfigOption(params.sessionId, "mode", params.modeId);
3472
+ return {};
3473
+ }
3474
+ async unstable_setSessionModel(params) {
3475
+ const session = this.sessions.get(params.sessionId);
3476
+ if (!session) {
3477
+ throw new Error("Session not found");
3478
+ }
3479
+ session.queryEngine.setModel(params.modelId);
3480
+ await this.updateConfigOption(params.sessionId, "model", params.modelId);
3481
+ }
3482
+ async setSessionConfigOption(params) {
3483
+ const session = this.sessions.get(params.sessionId);
3484
+ if (!session) {
3485
+ throw new Error("Session not found");
3486
+ }
3487
+ if (typeof params.value !== "string") {
3488
+ throw new Error(`Invalid value for config option ${params.configId}: ${String(params.value)}`);
3489
+ }
3490
+ const option = session.configOptions.find((o) => o.id === params.configId);
3491
+ if (!option) {
3492
+ throw new Error(`Unknown config option: ${params.configId}`);
3493
+ }
3494
+ const value = params.value;
3495
+ if (params.configId === "mode") {
3496
+ this.applySessionMode(params.sessionId, value);
3497
+ await this.conn.sessionUpdate({
3498
+ sessionId: params.sessionId,
3499
+ update: {
3500
+ sessionUpdate: "current_mode_update",
3501
+ currentModeId: value
3502
+ }
3503
+ });
3504
+ } else if (params.configId === "model") {
3505
+ session.queryEngine.setModel(value);
3506
+ }
3507
+ this.syncSessionConfigState(session, params.configId, value);
3508
+ session.configOptions = session.configOptions.map((o) => o.id === params.configId && typeof o.currentValue === "string" ? { ...o, currentValue: value } : o);
3509
+ return { configOptions: session.configOptions };
3510
+ }
3511
+ async createSession(params, opts = {}) {
3512
+ enableConfigs();
3513
+ const sessionId = opts.sessionId ?? randomUUID();
3514
+ const cwd = params.cwd;
3515
+ setOriginalCwd(cwd);
3516
+ try {
3517
+ process.chdir(cwd);
3518
+ } catch {}
3519
+ const permissionContext = getEmptyToolPermissionContext();
3520
+ const tools = getTools(permissionContext);
3521
+ const permissionMode = resolvePermissionMode(this.getSetting("permissions.defaultMode"));
3522
+ const canUseTool = createAcpCanUseTool(this.conn, sessionId, () => this.sessions.get(sessionId)?.modes.currentModeId ?? "default", this.clientCapabilities, cwd);
3523
+ const appState = {
3524
+ ...getDefaultAppState(),
3525
+ toolPermissionContext: {
3526
+ ...permissionContext,
3527
+ mode: permissionMode
3528
+ }
3529
+ };
3530
+ const commands = await getCommands(cwd);
3531
+ const engineConfig = {
3532
+ cwd,
3533
+ tools,
3534
+ commands,
3535
+ mcpClients: [],
3536
+ agents: [],
3537
+ canUseTool,
3538
+ getAppState: () => appState,
3539
+ setAppState: (updater) => {
3540
+ const updated = updater(appState);
3541
+ Object.assign(appState, updated);
3542
+ },
3543
+ readFileCache: new FileStateCache(500, 50 * 1024 * 1024),
3544
+ includePartialMessages: true,
3545
+ replayUserMessages: true,
3546
+ initialMessages: opts.initialMessages
3547
+ };
3548
+ const queryEngine = new QueryEngine(engineConfig);
3549
+ const availableModes = [
3550
+ { id: "auto", name: "Auto", description: "Use a model classifier to approve/deny permission prompts." },
3551
+ { id: "default", name: "Default", description: "Standard behavior, prompts for dangerous operations" },
3552
+ { id: "acceptEdits", name: "Accept Edits", description: "Auto-accept file edit operations" },
3553
+ { id: "plan", name: "Plan Mode", description: "Planning mode, no actual tool execution" },
3554
+ { id: "dontAsk", name: "Don't Ask", description: "Don't prompt for permissions, deny if not pre-approved" }
3555
+ ];
3556
+ const modes = {
3557
+ currentModeId: permissionMode,
3558
+ availableModes
3559
+ };
3560
+ const modelOptions = getModelOptions();
3561
+ const currentModel = getMainLoopModel();
3562
+ const models = {
3563
+ availableModels: modelOptions.map((m) => ({
3564
+ modelId: String(m.value ?? ""),
3565
+ name: m.label ?? String(m.value ?? ""),
3566
+ description: m.description ?? undefined
3567
+ })),
3568
+ currentModelId: currentModel
3569
+ };
3570
+ queryEngine.setModel(currentModel);
3571
+ const configOptions = buildConfigOptions(modes, models);
3572
+ const session = {
3573
+ queryEngine,
3574
+ cancelled: false,
3575
+ cwd,
3576
+ modes,
3577
+ models,
3578
+ configOptions,
3579
+ promptRunning: false,
3580
+ pendingMessages: new Map,
3581
+ nextPendingOrder: 0,
3582
+ toolUseCache: {},
3583
+ clientCapabilities: this.clientCapabilities,
3584
+ appState,
3585
+ commands,
3586
+ sessionFingerprint: computeSessionFingerprint({
3587
+ cwd,
3588
+ mcpServers: params.mcpServers
3589
+ })
3590
+ };
3591
+ this.sessions.set(sessionId, session);
3592
+ setTimeout(() => {
3593
+ this.sendAvailableCommandsUpdate(sessionId);
3594
+ }, 0);
3595
+ return {
3596
+ sessionId,
3597
+ models,
3598
+ modes,
3599
+ configOptions
3600
+ };
3601
+ }
3602
+ async getOrCreateSession(params) {
3603
+ const existingSession = this.sessions.get(params.sessionId);
3604
+ if (existingSession) {
3605
+ const fingerprint = computeSessionFingerprint({
3606
+ cwd: params.cwd,
3607
+ mcpServers: params.mcpServers
3608
+ });
3609
+ if (fingerprint === existingSession.sessionFingerprint) {
3610
+ return {
3611
+ sessionId: params.sessionId,
3612
+ modes: existingSession.modes,
3613
+ models: existingSession.models,
3614
+ configOptions: existingSession.configOptions
3615
+ };
3616
+ }
3617
+ await this.teardownSession(params.sessionId);
3618
+ }
3619
+ setOriginalCwd(params.cwd);
3620
+ let initialMessages;
3621
+ if (sessionIdExists(params.sessionId)) {
3622
+ try {
3623
+ const log = await getLastSessionLog(params.sessionId);
3624
+ if (log && log.messages.length > 0) {
3625
+ initialMessages = deserializeMessages(log.messages);
3626
+ }
3627
+ } catch (err) {
3628
+ console.error("[ACP] Failed to load session history:", err);
3629
+ }
3630
+ }
3631
+ const response = await this.createSession({
3632
+ cwd: params.cwd,
3633
+ mcpServers: params.mcpServers ?? [],
3634
+ _meta: params._meta
3635
+ }, { sessionId: params.sessionId, initialMessages });
3636
+ if (initialMessages && initialMessages.length > 0) {
3637
+ const session = this.sessions.get(params.sessionId);
3638
+ if (session) {
3639
+ await replayHistoryMessages(params.sessionId, initialMessages, this.conn, session.toolUseCache, this.clientCapabilities, session.cwd);
3640
+ }
3641
+ }
3642
+ return {
3643
+ sessionId: response.sessionId,
3644
+ modes: response.modes,
3645
+ models: response.models,
3646
+ configOptions: response.configOptions
3647
+ };
3648
+ }
3649
+ async teardownSession(sessionId) {
3650
+ const session = this.sessions.get(sessionId);
3651
+ if (!session)
3652
+ return;
3653
+ await this.cancel({ sessionId });
3654
+ this.sessions.delete(sessionId);
3655
+ }
3656
+ applySessionMode(sessionId, modeId) {
3657
+ const validModes = ["auto", "default", "acceptEdits", "bypassPermissions", "dontAsk", "plan"];
3658
+ if (!validModes.includes(modeId)) {
3659
+ throw new Error(`Invalid mode: ${modeId}`);
3660
+ }
3661
+ const session = this.sessions.get(sessionId);
3662
+ if (session) {
3663
+ session.modes = { ...session.modes, currentModeId: modeId };
3664
+ }
3665
+ }
3666
+ async updateConfigOption(sessionId, configId, value) {
3667
+ const session = this.sessions.get(sessionId);
3668
+ if (!session)
3669
+ return;
3670
+ this.syncSessionConfigState(session, configId, value);
3671
+ session.configOptions = session.configOptions.map((o) => o.id === configId && typeof o.currentValue === "string" ? { ...o, currentValue: value } : o);
3672
+ await this.conn.sessionUpdate({
3673
+ sessionId,
3674
+ update: {
3675
+ sessionUpdate: "config_option_update",
3676
+ configOptions: session.configOptions
3677
+ }
3678
+ });
3679
+ }
3680
+ syncSessionConfigState(session, configId, value) {
3681
+ if (configId === "mode") {
3682
+ session.modes = { ...session.modes, currentModeId: value };
3683
+ } else if (configId === "model") {
3684
+ session.models = { ...session.models, currentModelId: value };
3685
+ }
3686
+ }
3687
+ async sendAvailableCommandsUpdate(sessionId) {
3688
+ const session = this.sessions.get(sessionId);
3689
+ if (!session)
3690
+ return;
3691
+ const availableCommands = session.commands.filter((cmd) => cmd.type === "prompt" && !cmd.isHidden && cmd.userInvocable !== false).map((cmd) => ({
3692
+ name: cmd.name,
3693
+ description: cmd.description,
3694
+ input: cmd.argumentHint ? { hint: cmd.argumentHint } : undefined
3695
+ }));
3696
+ await this.conn.sessionUpdate({
3697
+ sessionId,
3698
+ update: {
3699
+ sessionUpdate: "available_commands_update",
3700
+ availableCommands
3701
+ }
3702
+ });
3703
+ }
3704
+ getSetting(key) {
3705
+ return;
3706
+ }
3707
+ }
3708
+ function promptToQueryInput(prompt) {
3709
+ if (!prompt || prompt.length === 0)
3710
+ return "";
3711
+ const parts = [];
3712
+ for (const block of prompt) {
3713
+ const b = block;
3714
+ if (b.type === "text") {
3715
+ parts.push(b.text);
3716
+ } else if (b.type === "resource_link") {
3717
+ parts.push(`[${b.name ?? ""}](${b.uri})`);
3718
+ } else if (b.type === "resource") {
3719
+ const resource = b.resource;
3720
+ if (resource && "text" in resource) {
3721
+ parts.push(resource.text);
3722
+ }
3723
+ }
3724
+ }
3725
+ return parts.join(`
3726
+ `);
3727
+ }
3728
+ function buildConfigOptions(modes, models) {
3729
+ return [
3730
+ {
3731
+ id: "mode",
3732
+ name: "Mode",
3733
+ description: "Session permission mode",
3734
+ category: "mode",
3735
+ type: "select",
3736
+ currentValue: modes.currentModeId,
3737
+ options: modes.availableModes.map((m) => ({
3738
+ value: m.id,
3739
+ name: m.name,
3740
+ description: m.description
3741
+ }))
3742
+ },
3743
+ {
3744
+ id: "model",
3745
+ name: "Model",
3746
+ description: "AI model to use",
3747
+ category: "model",
3748
+ type: "select",
3749
+ currentValue: models.currentModelId,
3750
+ options: models.availableModels.map((m) => ({
3751
+ value: m.modelId,
3752
+ name: m.name,
3753
+ description: m.description ?? undefined
3754
+ }))
3755
+ }
3756
+ ];
3757
+ }
3758
+
3759
+ // src/services/acp/entry.ts
3760
+ init_config();
3761
+ init_managedEnv();
3762
+ function createAcpStream(nodeReadable, nodeWritable) {
3763
+ const readableFromClient = Readable.toWeb(nodeReadable);
3764
+ const writableToClient = Writable.toWeb(nodeWritable);
3765
+ return ndJsonStream(writableToClient, readableFromClient);
3766
+ }
3767
+ async function runAcpAgent() {
3768
+ enableConfigs();
3769
+ applySafeConfigEnvironmentVariables();
3770
+ const stream2 = createAcpStream(process.stdin, process.stdout);
3771
+ let agent;
3772
+ const connection = new AgentSideConnection((conn) => {
3773
+ agent = new AcpAgent(conn);
3774
+ return agent;
3775
+ }, stream2);
3776
+ console.log = console.error;
3777
+ console.info = console.error;
3778
+ console.warn = console.error;
3779
+ console.debug = console.error;
3780
+ async function shutdown() {
3781
+ for (const [sessionId] of agent.sessions) {
3782
+ try {
3783
+ await agent.unstable_closeSession({ sessionId });
3784
+ } catch {}
3785
+ }
3786
+ process.exit(0);
3787
+ }
3788
+ connection.closed.then(shutdown).catch(shutdown);
3789
+ process.on("SIGTERM", shutdown);
3790
+ process.on("SIGINT", shutdown);
3791
+ process.on("unhandledRejection", (reason, promise) => {
3792
+ console.error("Unhandled Rejection at:", promise, "reason:", reason);
3793
+ });
3794
+ process.stdin.resume();
3795
+ }
3796
+ export {
3797
+ runAcpAgent,
3798
+ createAcpStream
3799
+ };