@caspian2026/agent-sdk 0.0.2

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 (371) hide show
  1. package/dist/chunk-018smjq7.js +26 -0
  2. package/dist/chunk-055q0a2m.js +146 -0
  3. package/dist/chunk-07069jq1.js +30 -0
  4. package/dist/chunk-0731m51q.js +8 -0
  5. package/dist/chunk-0awwmrwr.js +46 -0
  6. package/dist/chunk-0htx82k2.js +64 -0
  7. package/dist/chunk-0jmt5sx1.js +104 -0
  8. package/dist/chunk-0kj8bq80.js +252 -0
  9. package/dist/chunk-0kxcq8h9.js +86 -0
  10. package/dist/chunk-0paqc2yw.js +15 -0
  11. package/dist/chunk-0vkfrmqm.js +690 -0
  12. package/dist/chunk-0xjaqda8.js +1124 -0
  13. package/dist/chunk-10qhq6f8.js +458 -0
  14. package/dist/chunk-15m49c67.js +121 -0
  15. package/dist/chunk-15sfg4bs.js +65 -0
  16. package/dist/chunk-162ewhvy.js +869 -0
  17. package/dist/chunk-177s15bv.js +120 -0
  18. package/dist/chunk-19e603rv.js +284 -0
  19. package/dist/chunk-1ax1znzj.js +537 -0
  20. package/dist/chunk-1c4j7qn2.js +319 -0
  21. package/dist/chunk-1gx78081.js +66 -0
  22. package/dist/chunk-1h2famwb.js +49 -0
  23. package/dist/chunk-1nk93fqz.js +357 -0
  24. package/dist/chunk-1xct96nd.js +2520 -0
  25. package/dist/chunk-1xvcvdef.js +90 -0
  26. package/dist/chunk-1yrcnrs7.js +261 -0
  27. package/dist/chunk-21bcvwr7.js +660 -0
  28. package/dist/chunk-2352ts05.js +667 -0
  29. package/dist/chunk-23jzrwsw.js +43 -0
  30. package/dist/chunk-26hg7303.js +62 -0
  31. package/dist/chunk-2f21meep.js +122 -0
  32. package/dist/chunk-2fwze72g.js +24 -0
  33. package/dist/chunk-2gzv8nrw.js +205 -0
  34. package/dist/chunk-2h05vtpv.js +83 -0
  35. package/dist/chunk-2h0y6m16.js +465 -0
  36. package/dist/chunk-2n7bbxm6.js +168 -0
  37. package/dist/chunk-2nv3d0he.js +108 -0
  38. package/dist/chunk-2vqrdwx9.js +1811 -0
  39. package/dist/chunk-3389cj3w.js +120 -0
  40. package/dist/chunk-35sgv3er.js +231 -0
  41. package/dist/chunk-3c25bcsw.js +17 -0
  42. package/dist/chunk-3e20cj49.js +443 -0
  43. package/dist/chunk-3mr5ryx4.js +122 -0
  44. package/dist/chunk-3nk79af8.js +8 -0
  45. package/dist/chunk-3qbdzsvm.js +120 -0
  46. package/dist/chunk-3yprydpw.js +213 -0
  47. package/dist/chunk-430yrtmk.js +492 -0
  48. package/dist/chunk-46hd1gyd.js +140 -0
  49. package/dist/chunk-46hdszda.js +63 -0
  50. package/dist/chunk-46n7byh8.js +102 -0
  51. package/dist/chunk-4cp6193g.js +9076 -0
  52. package/dist/chunk-4dn3n459.js +409 -0
  53. package/dist/chunk-4hv90qcz.js +8 -0
  54. package/dist/chunk-4jm600zv.js +13 -0
  55. package/dist/chunk-4nspekjp.js +69 -0
  56. package/dist/chunk-505mxxa9.js +19 -0
  57. package/dist/chunk-50bay5qy.js +224 -0
  58. package/dist/chunk-537qfvn5.js +345 -0
  59. package/dist/chunk-55raexh7.js +14358 -0
  60. package/dist/chunk-572vjq78.js +56 -0
  61. package/dist/chunk-5apfzkpy.js +87 -0
  62. package/dist/chunk-5ccdsxgy.js +74 -0
  63. package/dist/chunk-5dmhsqap.js +32 -0
  64. package/dist/chunk-5fs6nkjr.js +98 -0
  65. package/dist/chunk-5nchekqe.js +87 -0
  66. package/dist/chunk-5pp28k2r.js +120 -0
  67. package/dist/chunk-5rt4b8q9.js +116 -0
  68. package/dist/chunk-5rv9c8yd.js +1072 -0
  69. package/dist/chunk-5z28bqne.js +6748 -0
  70. package/dist/chunk-64c1avct.js +13 -0
  71. package/dist/chunk-66zry909.js +11 -0
  72. package/dist/chunk-682qgta2.js +102 -0
  73. package/dist/chunk-68ffk5qa.js +14 -0
  74. package/dist/chunk-68w91pzt.js +79 -0
  75. package/dist/chunk-69fgaak0.js +654 -0
  76. package/dist/chunk-69n11zng.js +436 -0
  77. package/dist/chunk-6dj5t602.js +341 -0
  78. package/dist/chunk-6gh20s05.js +146 -0
  79. package/dist/chunk-6maej1hh.js +502 -0
  80. package/dist/chunk-6nsd9606.js +790 -0
  81. package/dist/chunk-6p4cyhb3.js +16 -0
  82. package/dist/chunk-6t4a9cgj.js +877 -0
  83. package/dist/chunk-6t8yqfks.js +227 -0
  84. package/dist/chunk-6vthy0fj.js +213 -0
  85. package/dist/chunk-70cw4cg9.js +1026 -0
  86. package/dist/chunk-70eey1nh.js +164 -0
  87. package/dist/chunk-76j2e9vy.js +68 -0
  88. package/dist/chunk-7acgdm7x.js +93 -0
  89. package/dist/chunk-7aw745vx.js +40175 -0
  90. package/dist/chunk-7gvwg1v9.js +122 -0
  91. package/dist/chunk-7h2ybnf3.js +636 -0
  92. package/dist/chunk-7kcm5hn2.js +155 -0
  93. package/dist/chunk-7m2hp89m.js +73 -0
  94. package/dist/chunk-7mqab3z7.js +31 -0
  95. package/dist/chunk-7sgtxrsc.js +1059 -0
  96. package/dist/chunk-7wm5s02e.js +216 -0
  97. package/dist/chunk-7xyswgjh.js +8 -0
  98. package/dist/chunk-7yxvpj5j.js +1452 -0
  99. package/dist/chunk-80a8vabn.js +93 -0
  100. package/dist/chunk-83e71kz6.js +180 -0
  101. package/dist/chunk-83hfzbx3.js +10 -0
  102. package/dist/chunk-8g5pe1gr.js +37 -0
  103. package/dist/chunk-8g747a8x.js +26 -0
  104. package/dist/chunk-8hj8ms5q.js +111 -0
  105. package/dist/chunk-8mkwsdk1.js +61 -0
  106. package/dist/chunk-8n42zyfx.js +40 -0
  107. package/dist/chunk-8qhxyqj9.js +1155 -0
  108. package/dist/chunk-8y30k9pz.js +38 -0
  109. package/dist/chunk-960ze3jj.js +124 -0
  110. package/dist/chunk-97wgdsab.js +35 -0
  111. package/dist/chunk-9grztvcg.js +93 -0
  112. package/dist/chunk-9x5zgy22.js +12 -0
  113. package/dist/chunk-a8792r1c.js +620 -0
  114. package/dist/chunk-ahr1r7c6.js +4275 -0
  115. package/dist/chunk-ase86y73.js +15 -0
  116. package/dist/chunk-b0kf00ff.js +637 -0
  117. package/dist/chunk-b0qptb1k.js +640 -0
  118. package/dist/chunk-b1kcd3ss.js +27 -0
  119. package/dist/chunk-b2fd462a.js +54 -0
  120. package/dist/chunk-bdrjvs5k.js +157 -0
  121. package/dist/chunk-beg7bdyz.js +90 -0
  122. package/dist/chunk-bg4x9ex0.js +21 -0
  123. package/dist/chunk-bktfq0ns.js +95 -0
  124. package/dist/chunk-bmbq6nt1.js +145 -0
  125. package/dist/chunk-bvf2z3g6.js +1003 -0
  126. package/dist/chunk-bxcfz5gy.js +56 -0
  127. package/dist/chunk-c11swzas.js +5368 -0
  128. package/dist/chunk-c37j5zxe.js +57 -0
  129. package/dist/chunk-c5mz5vw2.js +117 -0
  130. package/dist/chunk-c6sjhj89.js +1284 -0
  131. package/dist/chunk-c7jwbe76.js +29030 -0
  132. package/dist/chunk-cc2tg4q8.js +311 -0
  133. package/dist/chunk-cdhmrbj4.js +6353 -0
  134. package/dist/chunk-cdz5yb0r.js +57 -0
  135. package/dist/chunk-cfv996bs.js +22 -0
  136. package/dist/chunk-cgfdkzhb.js +12 -0
  137. package/dist/chunk-chakj069.js +310 -0
  138. package/dist/chunk-chsyvavm.js +3435 -0
  139. package/dist/chunk-cnsj3vq2.js +35 -0
  140. package/dist/chunk-ctdg0qxh.js +1386 -0
  141. package/dist/chunk-cxq7gc42.js +386 -0
  142. package/dist/chunk-d1pyf9as.js +8586 -0
  143. package/dist/chunk-d4kwjqjy.js +308 -0
  144. package/dist/chunk-d4mdda98.js +94 -0
  145. package/dist/chunk-d7886r6a.js +13870 -0
  146. package/dist/chunk-d7f1pzkq.js +95 -0
  147. package/dist/chunk-ddsjkqs4.js +39 -0
  148. package/dist/chunk-dm3n2qgd.js +24 -0
  149. package/dist/chunk-e2mv8ts8.js +115 -0
  150. package/dist/chunk-e4bhfc6d.js +2720 -0
  151. package/dist/chunk-e4p1jbs4.js +58 -0
  152. package/dist/chunk-e7h4qxgw.js +21 -0
  153. package/dist/chunk-e8p3fy6v.js +202 -0
  154. package/dist/chunk-e97mp86b.js +111 -0
  155. package/dist/chunk-ebqwkhyf.js +145 -0
  156. package/dist/chunk-eenq3avg.js +69 -0
  157. package/dist/chunk-efgjfast.js +61 -0
  158. package/dist/chunk-ehtwnxpg.js +1591 -0
  159. package/dist/chunk-en8wkxh7.js +173 -0
  160. package/dist/chunk-enkdxqas.js +33 -0
  161. package/dist/chunk-eqp1rfft.js +17 -0
  162. package/dist/chunk-ercvcek8.js +266 -0
  163. package/dist/chunk-etgh9xvt.js +369 -0
  164. package/dist/chunk-ev3qkf76.js +106 -0
  165. package/dist/chunk-evp5pb9x.js +3567 -0
  166. package/dist/chunk-ewadzrm8.js +103 -0
  167. package/dist/chunk-exah13mz.js +94 -0
  168. package/dist/chunk-f0rzvqmq.js +87 -0
  169. package/dist/chunk-f1m9pect.js +258 -0
  170. package/dist/chunk-fajg8x36.js +8158 -0
  171. package/dist/chunk-fbv4apne.js +51 -0
  172. package/dist/chunk-fbvw6wq9.js +116 -0
  173. package/dist/chunk-feyzykye.js +10 -0
  174. package/dist/chunk-fn1vvj8k.js +894 -0
  175. package/dist/chunk-fshfxw2q.js +183 -0
  176. package/dist/chunk-fyc5fepv.js +10 -0
  177. package/dist/chunk-g9f19ttm.js +15 -0
  178. package/dist/chunk-gcpfxk0c.js +644 -0
  179. package/dist/chunk-gdg6411p.js +106 -0
  180. package/dist/chunk-gkyzz8er.js +849 -0
  181. package/dist/chunk-gxahdggv.js +71 -0
  182. package/dist/chunk-h6fsks9j.js +220 -0
  183. package/dist/chunk-h9n54swm.js +27 -0
  184. package/dist/chunk-hakdhagh.js +16606 -0
  185. package/dist/chunk-hchy0hq6.js +159 -0
  186. package/dist/chunk-hh3k5s1s.js +180 -0
  187. package/dist/chunk-hqqkj5pg.js +202 -0
  188. package/dist/chunk-htpehq9t.js +251 -0
  189. package/dist/chunk-hwfknpxv.js +39 -0
  190. package/dist/chunk-hwn8vetn.js +394 -0
  191. package/dist/chunk-hx3j6n92.js +178 -0
  192. package/dist/chunk-hyb749hd.js +194 -0
  193. package/dist/chunk-hzgnejb1.js +90 -0
  194. package/dist/chunk-hzknr99c.js +477 -0
  195. package/dist/chunk-j3zhb8vv.js +152 -0
  196. package/dist/chunk-j5bth84e.js +97 -0
  197. package/dist/chunk-j64ga6ta.js +8035 -0
  198. package/dist/chunk-jaaxk89e.js +113 -0
  199. package/dist/chunk-jd32zbps.js +15 -0
  200. package/dist/chunk-jfja8q7w.js +91 -0
  201. package/dist/chunk-jgjqa49s.js +27 -0
  202. package/dist/chunk-jgpmpgx6.js +19 -0
  203. package/dist/chunk-jgwd85hp.js +91 -0
  204. package/dist/chunk-jk69qtzx.js +277 -0
  205. package/dist/chunk-jr1xm1dd.js +147 -0
  206. package/dist/chunk-jss0azv7.js +2337 -0
  207. package/dist/chunk-jxpmkae9.js +108 -0
  208. package/dist/chunk-jy9rxxqe.js +102 -0
  209. package/dist/chunk-jyw3np47.js +264 -0
  210. package/dist/chunk-jzthz1bx.js +15 -0
  211. package/dist/chunk-k0p9w03v.js +4957 -0
  212. package/dist/chunk-k2rybwww.js +92 -0
  213. package/dist/chunk-k3939ggz.js +168 -0
  214. package/dist/chunk-k591cwbg.js +345 -0
  215. package/dist/chunk-k5ez1h65.js +108 -0
  216. package/dist/chunk-k8vp0atq.js +2331 -0
  217. package/dist/chunk-kajf3jgq.js +694 -0
  218. package/dist/chunk-kbm69rtz.js +276 -0
  219. package/dist/chunk-kjh11txh.js +419 -0
  220. package/dist/chunk-kqggbte3.js +326 -0
  221. package/dist/chunk-kr6qfwq0.js +95 -0
  222. package/dist/chunk-kvfg8eeg.js +150 -0
  223. package/dist/chunk-kwekc97v.js +18 -0
  224. package/dist/chunk-m1cehfta.js +861 -0
  225. package/dist/chunk-m87bhhqv.js +61 -0
  226. package/dist/chunk-mg7pbk0r.js +151 -0
  227. package/dist/chunk-mpbfkp8j.js +418 -0
  228. package/dist/chunk-mpk1sjyk.js +117 -0
  229. package/dist/chunk-msecaxyj.js +74 -0
  230. package/dist/chunk-mswx2nma.js +103 -0
  231. package/dist/chunk-mw1kpeg9.js +6895 -0
  232. package/dist/chunk-mxr2s6d1.js +89 -0
  233. package/dist/chunk-my40g5hp.js +560 -0
  234. package/dist/chunk-n0kmh4ra.js +338 -0
  235. package/dist/chunk-n18q5yqs.js +397 -0
  236. package/dist/chunk-n7pnyq43.js +131 -0
  237. package/dist/chunk-naybw0p0.js +32 -0
  238. package/dist/chunk-nb6abcch.js +83 -0
  239. package/dist/chunk-ne5r3k03.js +350 -0
  240. package/dist/chunk-nebezy1d.js +997 -0
  241. package/dist/chunk-netzwgv1.js +154 -0
  242. package/dist/chunk-nhapyawz.js +32994 -0
  243. package/dist/chunk-npnvheft.js +156 -0
  244. package/dist/chunk-nrtksr2p.js +51 -0
  245. package/dist/chunk-nw9t5pq9.js +132 -0
  246. package/dist/chunk-nxgsnh2y.js +735 -0
  247. package/dist/chunk-p11xp4xp.js +266 -0
  248. package/dist/chunk-p1hwrf72.js +74 -0
  249. package/dist/chunk-p1zj9mg9.js +567 -0
  250. package/dist/chunk-p39a677r.js +115 -0
  251. package/dist/chunk-p7vkh4wx.js +15 -0
  252. package/dist/chunk-p8na2wwp.js +14 -0
  253. package/dist/chunk-pcb7fbyg.js +259 -0
  254. package/dist/chunk-pckwmrzd.js +409 -0
  255. package/dist/chunk-ped973jn.js +111 -0
  256. package/dist/chunk-phd1qfpc.js +5971 -0
  257. package/dist/chunk-pkkngdv0.js +524 -0
  258. package/dist/chunk-ppwjyveh.js +8 -0
  259. package/dist/chunk-pqvr8jq7.js +324 -0
  260. package/dist/chunk-prcah3ys.js +106 -0
  261. package/dist/chunk-ps49ymvj.js +43 -0
  262. package/dist/chunk-pwwa7s62.js +11 -0
  263. package/dist/chunk-pxdzy0jh.js +134 -0
  264. package/dist/chunk-q3jr5t07.js +62 -0
  265. package/dist/chunk-q6cfkntd.js +675 -0
  266. package/dist/chunk-q6m26rc8.js +88 -0
  267. package/dist/chunk-q6xs51jj.js +332 -0
  268. package/dist/chunk-q7jnesv8.js +74 -0
  269. package/dist/chunk-q7zpf4r2.js +440 -0
  270. package/dist/chunk-q8c88vjm.js +24 -0
  271. package/dist/chunk-qajrkk97.js +298 -0
  272. package/dist/chunk-qatfdxvd.js +34 -0
  273. package/dist/chunk-qb6k2afy.js +153 -0
  274. package/dist/chunk-qfk94vcn.js +329 -0
  275. package/dist/chunk-qj2e1apf.js +471 -0
  276. package/dist/chunk-qj2mk79w.js +111 -0
  277. package/dist/chunk-qk7dfae6.js +267 -0
  278. package/dist/chunk-qnfx3qtx.js +617 -0
  279. package/dist/chunk-qp2qdcda.js +100 -0
  280. package/dist/chunk-qq0phwn8.js +458 -0
  281. package/dist/chunk-qwqjesx7.js +258 -0
  282. package/dist/chunk-qygmcg7w.js +60 -0
  283. package/dist/chunk-qz2x630m.js +49145 -0
  284. package/dist/chunk-qzj4e8fn.js +357 -0
  285. package/dist/chunk-ratvcbmn.js +255 -0
  286. package/dist/chunk-rkg741k3.js +37 -0
  287. package/dist/chunk-rn0v1hk8.js +34 -0
  288. package/dist/chunk-rsq0h0rz.js +91 -0
  289. package/dist/chunk-rvnb2gn6.js +1053 -0
  290. package/dist/chunk-rx278zpa.js +75 -0
  291. package/dist/chunk-s3hsqf80.js +473 -0
  292. package/dist/chunk-s4cb0bcb.js +655 -0
  293. package/dist/chunk-s8kj6ajy.js +32 -0
  294. package/dist/chunk-sd36yzx8.js +954 -0
  295. package/dist/chunk-sfcpjh4r.js +98 -0
  296. package/dist/chunk-spybh2dy.js +175 -0
  297. package/dist/chunk-sw9ax3ym.js +92 -0
  298. package/dist/chunk-szj5wvdy.js +28 -0
  299. package/dist/chunk-t29a6zb5.js +45 -0
  300. package/dist/chunk-t9p85zff.js +24 -0
  301. package/dist/chunk-tc1aazk4.js +131 -0
  302. package/dist/chunk-tdbz9gbm.js +1030 -0
  303. package/dist/chunk-tjcfpk38.js +208 -0
  304. package/dist/chunk-tp2jxmcx.js +8427 -0
  305. package/dist/chunk-tqmtkm0k.js +92 -0
  306. package/dist/chunk-tvgvt220.js +22820 -0
  307. package/dist/chunk-v0qraze5.js +291 -0
  308. package/dist/chunk-v1kzp02e.js +785 -0
  309. package/dist/chunk-v78fj8by.js +145 -0
  310. package/dist/chunk-v8g3kad0.js +101 -0
  311. package/dist/chunk-v9smspw2.js +4301 -0
  312. package/dist/chunk-vawgyev5.js +157 -0
  313. package/dist/chunk-vb3x3cxe.js +375 -0
  314. package/dist/chunk-vf612n57.js +472 -0
  315. package/dist/chunk-vjn8mbcw.js +198 -0
  316. package/dist/chunk-vmbfv1y5.js +295 -0
  317. package/dist/chunk-vrf54kmt.js +321 -0
  318. package/dist/chunk-vyjeh50y.js +2149 -0
  319. package/dist/chunk-vzgkedm9.js +159745 -0
  320. package/dist/chunk-w004kfw0.js +245 -0
  321. package/dist/chunk-w0yhbmxn.js +132 -0
  322. package/dist/chunk-w4yn8cq7.js +123 -0
  323. package/dist/chunk-waqwgprq.js +1164 -0
  324. package/dist/chunk-wayfjcwt.js +447 -0
  325. package/dist/chunk-wby6yd4m.js +91 -0
  326. package/dist/chunk-wha6v7za.js +705 -0
  327. package/dist/chunk-wjcq2vkf.js +641 -0
  328. package/dist/chunk-wtjt9qyk.js +2670 -0
  329. package/dist/chunk-x2pvw7xw.js +42 -0
  330. package/dist/chunk-x6r4v44b.js +8 -0
  331. package/dist/chunk-x8d2ehd7.js +19 -0
  332. package/dist/chunk-xd6kmmb1.js +95 -0
  333. package/dist/chunk-xp61y5ba.js +125 -0
  334. package/dist/chunk-xv3era3s.js +8 -0
  335. package/dist/chunk-xxw9a0bq.js +58 -0
  336. package/dist/chunk-xzhaa7gd.js +112 -0
  337. package/dist/chunk-y1784krc.js +19 -0
  338. package/dist/chunk-y4ca9kqz.js +3830 -0
  339. package/dist/chunk-yff68ex1.js +113 -0
  340. package/dist/chunk-yg4vgpxs.js +436 -0
  341. package/dist/chunk-yk62vxj2.js +2964 -0
  342. package/dist/chunk-ym5r3jnk.js +2007 -0
  343. package/dist/chunk-ysanv95x.js +225 -0
  344. package/dist/chunk-yvtzznds.js +63 -0
  345. package/dist/chunk-yyex5gsf.js +269 -0
  346. package/dist/chunk-yyf72f78.js +456 -0
  347. package/dist/chunk-z19sd3bt.js +1648 -0
  348. package/dist/chunk-z2dp53wn.js +17 -0
  349. package/dist/chunk-z9n0183s.js +39 -0
  350. package/dist/chunk-zb8f6h5g.js +9174 -0
  351. package/dist/chunk-zctfbr1v.js +594 -0
  352. package/dist/chunk-zesnmkg3.js +2840 -0
  353. package/dist/chunk-zf47r1b7.js +94 -0
  354. package/dist/chunk-zghtdbat.js +253 -0
  355. package/dist/chunk-zpmwvd09.js +275 -0
  356. package/dist/chunk-zqncgyf6.js +127 -0
  357. package/dist/chunk-zr6mz36s.js +281 -0
  358. package/dist/chunk-zshzdw1n.js +141 -0
  359. package/dist/chunk-zx5kw7z4.js +40 -0
  360. package/dist/chunk-zzm33q8x.js +8 -0
  361. package/dist/cli.js +91 -0
  362. package/dist/download-ripgrep.js +24821 -0
  363. package/dist/vendor/audio-capture/arm64-darwin/audio-capture.node +0 -0
  364. package/dist/vendor/audio-capture/arm64-linux/audio-capture.node +0 -0
  365. package/dist/vendor/audio-capture/arm64-win32/audio-capture.node +0 -0
  366. package/dist/vendor/audio-capture/x64-darwin/audio-capture.node +0 -0
  367. package/dist/vendor/audio-capture/x64-linux/audio-capture.node +0 -0
  368. package/dist/vendor/audio-capture/x64-win32/audio-capture.node +0 -0
  369. package/dist/vendor/ripgrep/x64-win32/rg.exe +0 -0
  370. package/package.json +122 -0
  371. package/scripts/postinstall.cjs +319 -0
@@ -0,0 +1,660 @@
1
+ // @bun
2
+ import {
3
+ ConfigurableShortcutHint,
4
+ MAX_TRANSCRIPT_READ_BYTES,
5
+ TextInput,
6
+ asSystemPrompt,
7
+ extractTeammateTranscriptsFromTasks,
8
+ getLastAssistantMessage,
9
+ getTranscriptPath,
10
+ init_ConfigurableShortcutHint,
11
+ init_TextInput,
12
+ init_claude,
13
+ init_errors,
14
+ init_messages1 as init_messages,
15
+ init_sessionStorage,
16
+ init_systemPromptType,
17
+ init_useTerminalSize,
18
+ loadAllSubagentTranscriptsFromDisk,
19
+ normalizeMessagesForAPI,
20
+ queryHaiku,
21
+ startsWithApiErrorPrefix
22
+ } from "./chunk-vzgkedm9.js";
23
+ import {
24
+ init_useKeybinding
25
+ } from "./chunk-68ffk5qa.js";
26
+ import {
27
+ init_browser,
28
+ openBrowser
29
+ } from "./chunk-m87bhhqv.js";
30
+ import {
31
+ checkAndRefreshOAuthTokenIfNeeded,
32
+ getAuthHeaders,
33
+ getUserAgent,
34
+ init_auth,
35
+ init_firstPartyEventLogger,
36
+ init_http,
37
+ logEventTo1P
38
+ } from "./chunk-tp2jxmcx.js";
39
+ import {
40
+ env,
41
+ init_env
42
+ } from "./chunk-s3hsqf80.js";
43
+ import {
44
+ Byline,
45
+ Dialog,
46
+ KeyboardShortcutHint,
47
+ ThemedBox_default,
48
+ ThemedText,
49
+ init_src,
50
+ useKeybinding,
51
+ useTerminalSize,
52
+ use_input_default
53
+ } from "./chunk-c7jwbe76.js";
54
+ import {
55
+ require_jsx_dev_runtime,
56
+ require_react
57
+ } from "./chunk-7sgtxrsc.js";
58
+ import {
59
+ init_analytics,
60
+ logEvent
61
+ } from "./chunk-x8d2ehd7.js";
62
+ import {
63
+ getGitState,
64
+ getIsGit,
65
+ init_git
66
+ } from "./chunk-tdbz9gbm.js";
67
+ import {
68
+ getInMemoryErrors,
69
+ init_log,
70
+ init_privacyLevel,
71
+ isEssentialTrafficOnly,
72
+ logError
73
+ } from "./chunk-1nk93fqz.js";
74
+ import {
75
+ init_debug,
76
+ init_slowOperations,
77
+ jsonStringify,
78
+ logForDebugging
79
+ } from "./chunk-phd1qfpc.js";
80
+ import {
81
+ getLastAPIRequest,
82
+ init_state
83
+ } from "./chunk-k8vp0atq.js";
84
+ import {
85
+ axios_default,
86
+ init_axios
87
+ } from "./chunk-55raexh7.js";
88
+ import {
89
+ __esm,
90
+ __toESM
91
+ } from "./chunk-qp2qdcda.js";
92
+
93
+ // src/components/Feedback.tsx
94
+ import { readFile, stat } from "fs/promises";
95
+ function redactSensitiveInfo(text) {
96
+ let redacted = text;
97
+ redacted = redacted.replace(/"(sk-ant[^\s"']{24,})"/g, '"[REDACTED_API_KEY]"');
98
+ redacted = redacted.replace(/(?<![A-Za-z0-9"'])(sk-ant-?[A-Za-z0-9_-]{10,})(?![A-Za-z0-9"'])/g, "[REDACTED_API_KEY]");
99
+ redacted = redacted.replace(/AWS key: "(AWS[A-Z0-9]{20,})"/g, 'AWS key: "[REDACTED_AWS_KEY]"');
100
+ redacted = redacted.replace(/(AKIA[A-Z0-9]{16})/g, "[REDACTED_AWS_KEY]");
101
+ redacted = redacted.replace(/(?<![A-Za-z0-9])(AIza[A-Za-z0-9_-]{35})(?![A-Za-z0-9])/g, "[REDACTED_GCP_KEY]");
102
+ redacted = redacted.replace(/(?<![A-Za-z0-9])([a-z0-9-]+@[a-z0-9-]+\.iam\.gserviceaccount\.com)(?![A-Za-z0-9])/g, "[REDACTED_GCP_SERVICE_ACCOUNT]");
103
+ redacted = redacted.replace(/(["']?x-api-key["']?\s*[:=]\s*["']?)[^"',\s)}\]]+/gi, "$1[REDACTED_API_KEY]");
104
+ redacted = redacted.replace(/(["']?authorization["']?\s*[:=]\s*["']?(bearer\s+)?)[^"',\s)}\]]+/gi, "$1[REDACTED_TOKEN]");
105
+ redacted = redacted.replace(/(AWS[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi, "$1[REDACTED_AWS_VALUE]");
106
+ redacted = redacted.replace(/(GOOGLE[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi, "$1[REDACTED_GCP_VALUE]");
107
+ redacted = redacted.replace(/((API[-_]?KEY|TOKEN|SECRET|PASSWORD)\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi, "$1[REDACTED]");
108
+ return redacted;
109
+ }
110
+ function getSanitizedErrorLogs() {
111
+ return getInMemoryErrors().map((errorInfo) => {
112
+ const errorCopy = { ...errorInfo };
113
+ if (errorCopy && typeof errorCopy.error === "string") {
114
+ errorCopy.error = redactSensitiveInfo(errorCopy.error);
115
+ }
116
+ return errorCopy;
117
+ });
118
+ }
119
+ async function loadRawTranscriptJsonl() {
120
+ try {
121
+ const transcriptPath = getTranscriptPath();
122
+ const { size } = await stat(transcriptPath);
123
+ if (size > MAX_TRANSCRIPT_READ_BYTES) {
124
+ logForDebugging(`Skipping raw transcript read: file too large (${size} bytes)`, { level: "warn" });
125
+ return null;
126
+ }
127
+ return await readFile(transcriptPath, "utf-8");
128
+ } catch {
129
+ return null;
130
+ }
131
+ }
132
+ function Feedback({
133
+ abortSignal,
134
+ messages,
135
+ initialDescription,
136
+ onDone,
137
+ backgroundTasks = {}
138
+ }) {
139
+ const [step, setStep] = import_react.useState("userInput");
140
+ const [cursorOffset, setCursorOffset] = import_react.useState(0);
141
+ const [description, setDescription] = import_react.useState(initialDescription ?? "");
142
+ const [feedbackId, setFeedbackId] = import_react.useState(null);
143
+ const [error, setError] = import_react.useState(null);
144
+ const [envInfo, setEnvInfo] = import_react.useState({ isGit: false, gitState: null });
145
+ const [title, setTitle] = import_react.useState(null);
146
+ const textInputColumns = useTerminalSize().columns - 4;
147
+ import_react.useEffect(() => {
148
+ async function loadEnvInfo() {
149
+ const isGit = await getIsGit();
150
+ let gitState = null;
151
+ if (isGit) {
152
+ gitState = await getGitState();
153
+ }
154
+ setEnvInfo({ isGit, gitState });
155
+ }
156
+ loadEnvInfo();
157
+ }, []);
158
+ const submitReport = import_react.useCallback(async () => {
159
+ setStep("submitting");
160
+ setError(null);
161
+ setFeedbackId(null);
162
+ const sanitizedErrors = getSanitizedErrorLogs();
163
+ const lastAssistantMessage = getLastAssistantMessage(messages);
164
+ const lastAssistantMessageId = lastAssistantMessage?.requestId ?? null;
165
+ const [diskTranscripts, rawTranscriptJsonl] = await Promise.all([
166
+ loadAllSubagentTranscriptsFromDisk(),
167
+ loadRawTranscriptJsonl()
168
+ ]);
169
+ const teammateTranscripts = extractTeammateTranscriptsFromTasks(backgroundTasks);
170
+ const subagentTranscripts = { ...diskTranscripts, ...teammateTranscripts };
171
+ const reportData = {
172
+ latestAssistantMessageId: lastAssistantMessageId,
173
+ message_count: messages.length,
174
+ datetime: new Date().toISOString(),
175
+ description,
176
+ platform: env.platform,
177
+ gitRepo: envInfo.isGit,
178
+ terminal: env.terminal,
179
+ version: "2.1.888",
180
+ transcript: normalizeMessagesForAPI(messages),
181
+ errors: sanitizedErrors,
182
+ lastApiRequest: getLastAPIRequest(),
183
+ ...Object.keys(subagentTranscripts).length > 0 && {
184
+ subagentTranscripts
185
+ },
186
+ ...rawTranscriptJsonl && { rawTranscriptJsonl }
187
+ };
188
+ const [result, t] = await Promise.all([
189
+ submitFeedback(reportData, abortSignal),
190
+ generateTitle(description, abortSignal)
191
+ ]);
192
+ setTitle(t);
193
+ if (result.success) {
194
+ if (result.feedbackId) {
195
+ setFeedbackId(result.feedbackId);
196
+ logEvent("tengu_bug_report_submitted", {
197
+ feedback_id: result.feedbackId,
198
+ last_assistant_message_id: lastAssistantMessageId
199
+ });
200
+ logEventTo1P("tengu_bug_report_description", {
201
+ feedback_id: result.feedbackId,
202
+ description: redactSensitiveInfo(description)
203
+ });
204
+ }
205
+ setStep("done");
206
+ } else {
207
+ if (result.isZdrOrg) {
208
+ setError("Feedback collection is not available for organizations with custom data retention policies.");
209
+ } else {
210
+ setError("Could not submit feedback. Please try again later.");
211
+ }
212
+ setStep("userInput");
213
+ }
214
+ }, [description, envInfo.isGit, messages]);
215
+ const handleCancel = import_react.useCallback(() => {
216
+ if (step === "done") {
217
+ if (error) {
218
+ onDone("Error submitting feedback / bug report", {
219
+ display: "system"
220
+ });
221
+ } else {
222
+ onDone("Feedback / bug report submitted", { display: "system" });
223
+ }
224
+ return;
225
+ }
226
+ onDone("Feedback / bug report cancelled", { display: "system" });
227
+ }, [step, error, onDone]);
228
+ useKeybinding("confirm:no", handleCancel, {
229
+ context: "Settings",
230
+ isActive: step === "userInput"
231
+ });
232
+ use_input_default((input, key) => {
233
+ if (step === "done") {
234
+ if (key.return && title) {
235
+ const issueUrl = createGitHubIssueUrl(feedbackId ?? "", title, description, getSanitizedErrorLogs());
236
+ openBrowser(issueUrl);
237
+ }
238
+ if (error) {
239
+ onDone("Error submitting feedback / bug report", {
240
+ display: "system"
241
+ });
242
+ } else {
243
+ onDone("Feedback / bug report submitted", { display: "system" });
244
+ }
245
+ return;
246
+ }
247
+ if (error && step !== "userInput") {
248
+ onDone("Error submitting feedback / bug report", {
249
+ display: "system"
250
+ });
251
+ return;
252
+ }
253
+ if (step === "consent" && (key.return || input === " ")) {
254
+ submitReport();
255
+ }
256
+ });
257
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Dialog, {
258
+ title: "Submit Feedback / Bug Report",
259
+ onCancel: handleCancel,
260
+ isCancelActive: step !== "userInput",
261
+ inputGuide: (exitState) => exitState.pending ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
262
+ children: [
263
+ "Press ",
264
+ exitState.keyName,
265
+ " again to exit"
266
+ ]
267
+ }, undefined, true, undefined, this) : step === "userInput" ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Byline, {
268
+ children: [
269
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(KeyboardShortcutHint, {
270
+ shortcut: "Enter",
271
+ action: "continue"
272
+ }, undefined, false, undefined, this),
273
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ConfigurableShortcutHint, {
274
+ action: "confirm:no",
275
+ context: "Confirmation",
276
+ fallback: "Esc",
277
+ description: "cancel"
278
+ }, undefined, false, undefined, this)
279
+ ]
280
+ }, undefined, true, undefined, this) : step === "consent" ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Byline, {
281
+ children: [
282
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(KeyboardShortcutHint, {
283
+ shortcut: "Enter",
284
+ action: "submit"
285
+ }, undefined, false, undefined, this),
286
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ConfigurableShortcutHint, {
287
+ action: "confirm:no",
288
+ context: "Confirmation",
289
+ fallback: "Esc",
290
+ description: "cancel"
291
+ }, undefined, false, undefined, this)
292
+ ]
293
+ }, undefined, true, undefined, this) : null,
294
+ children: [
295
+ step === "userInput" && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
296
+ flexDirection: "column",
297
+ gap: 1,
298
+ children: [
299
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
300
+ children: "Describe the issue below:"
301
+ }, undefined, false, undefined, this),
302
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(TextInput, {
303
+ value: description,
304
+ onChange: (value) => {
305
+ setDescription(value);
306
+ if (error) {
307
+ setError(null);
308
+ }
309
+ },
310
+ columns: textInputColumns,
311
+ onSubmit: () => setStep("consent"),
312
+ onExitMessage: () => onDone("Feedback cancelled", { display: "system" }),
313
+ cursorOffset,
314
+ onChangeCursorOffset: setCursorOffset,
315
+ showCursor: true
316
+ }, undefined, false, undefined, this),
317
+ error && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
318
+ flexDirection: "column",
319
+ gap: 1,
320
+ children: [
321
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
322
+ color: "error",
323
+ children: error
324
+ }, undefined, false, undefined, this),
325
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
326
+ dimColor: true,
327
+ children: "Edit and press Enter to retry, or Esc to cancel"
328
+ }, undefined, false, undefined, this)
329
+ ]
330
+ }, undefined, true, undefined, this)
331
+ ]
332
+ }, undefined, true, undefined, this),
333
+ step === "consent" && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
334
+ flexDirection: "column",
335
+ children: [
336
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
337
+ children: "This report will include:"
338
+ }, undefined, false, undefined, this),
339
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
340
+ marginLeft: 2,
341
+ flexDirection: "column",
342
+ children: [
343
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
344
+ children: [
345
+ "- Your feedback / bug description:",
346
+ " ",
347
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
348
+ dimColor: true,
349
+ children: description
350
+ }, undefined, false, undefined, this)
351
+ ]
352
+ }, undefined, true, undefined, this),
353
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
354
+ children: [
355
+ "- Environment info:",
356
+ " ",
357
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
358
+ dimColor: true,
359
+ children: [
360
+ env.platform,
361
+ ", ",
362
+ env.terminal,
363
+ ", v",
364
+ "2.1.888"
365
+ ]
366
+ }, undefined, true, undefined, this)
367
+ ]
368
+ }, undefined, true, undefined, this),
369
+ envInfo.gitState && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
370
+ children: [
371
+ "- Git repo metadata:",
372
+ " ",
373
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
374
+ dimColor: true,
375
+ children: [
376
+ envInfo.gitState.branchName,
377
+ envInfo.gitState.commitHash ? `, ${envInfo.gitState.commitHash.slice(0, 7)}` : "",
378
+ envInfo.gitState.remoteUrl ? ` @ ${envInfo.gitState.remoteUrl}` : "",
379
+ !envInfo.gitState.isHeadOnRemote && ", not synced",
380
+ !envInfo.gitState.isClean && ", has local changes"
381
+ ]
382
+ }, undefined, true, undefined, this)
383
+ ]
384
+ }, undefined, true, undefined, this),
385
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
386
+ children: "- Current session transcript"
387
+ }, undefined, false, undefined, this)
388
+ ]
389
+ }, undefined, true, undefined, this),
390
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
391
+ marginTop: 1,
392
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
393
+ wrap: "wrap",
394
+ dimColor: true,
395
+ children: [
396
+ "We will use your feedback to debug related issues or to improve",
397
+ " ",
398
+ "Claude Code's functionality (eg. to reduce the risk of bugs occurring in the future)."
399
+ ]
400
+ }, undefined, true, undefined, this)
401
+ }, undefined, false, undefined, this),
402
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
403
+ marginTop: 1,
404
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
405
+ children: [
406
+ "Press ",
407
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
408
+ bold: true,
409
+ children: "Enter"
410
+ }, undefined, false, undefined, this),
411
+ " to confirm and submit."
412
+ ]
413
+ }, undefined, true, undefined, this)
414
+ }, undefined, false, undefined, this)
415
+ ]
416
+ }, undefined, true, undefined, this),
417
+ step === "submitting" && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
418
+ flexDirection: "row",
419
+ gap: 1,
420
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
421
+ children: "Submitting report\u2026"
422
+ }, undefined, false, undefined, this)
423
+ }, undefined, false, undefined, this),
424
+ step === "done" && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
425
+ flexDirection: "column",
426
+ children: [
427
+ error ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
428
+ color: "error",
429
+ children: error
430
+ }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
431
+ color: "success",
432
+ children: "Thank you for your report!"
433
+ }, undefined, false, undefined, this),
434
+ feedbackId && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
435
+ dimColor: true,
436
+ children: [
437
+ "Feedback ID: ",
438
+ feedbackId
439
+ ]
440
+ }, undefined, true, undefined, this),
441
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
442
+ marginTop: 1,
443
+ children: [
444
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
445
+ children: "Press "
446
+ }, undefined, false, undefined, this),
447
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
448
+ bold: true,
449
+ children: "Enter "
450
+ }, undefined, false, undefined, this),
451
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
452
+ children: "to open your browser and draft a GitHub issue, or any other key to close."
453
+ }, undefined, false, undefined, this)
454
+ ]
455
+ }, undefined, true, undefined, this)
456
+ ]
457
+ }, undefined, true, undefined, this)
458
+ ]
459
+ }, undefined, true, undefined, this);
460
+ }
461
+ function createGitHubIssueUrl(feedbackId, title, description, errors) {
462
+ const sanitizedTitle = redactSensitiveInfo(title);
463
+ const sanitizedDescription = redactSensitiveInfo(description);
464
+ const bodyPrefix = `**Bug Description**
465
+ ${sanitizedDescription}
466
+
467
+ ` + `**Environment Info**
468
+ ` + `- Platform: ${env.platform}
469
+ ` + `- Terminal: ${env.terminal}
470
+ ` + `- Version: ${"2.1.888"}
471
+ ` + `- Feedback ID: ${feedbackId}
472
+ ` + `
473
+ **Errors**
474
+ \`\`\`json
475
+ `;
476
+ const errorSuffix = `
477
+ \`\`\`
478
+ `;
479
+ const errorsJson = jsonStringify(errors);
480
+ const baseUrl = `${GITHUB_ISSUES_REPO_URL}/new?title=${encodeURIComponent(sanitizedTitle)}&labels=user-reported,bug&body=`;
481
+ const truncationNote = `
482
+ **Note:** Content was truncated.
483
+ `;
484
+ const encodedPrefix = encodeURIComponent(bodyPrefix);
485
+ const encodedSuffix = encodeURIComponent(errorSuffix);
486
+ const encodedNote = encodeURIComponent(truncationNote);
487
+ const encodedErrors = encodeURIComponent(errorsJson);
488
+ const spaceForErrors = GITHUB_URL_LIMIT - baseUrl.length - encodedPrefix.length - encodedSuffix.length - encodedNote.length;
489
+ if (spaceForErrors <= 0) {
490
+ const ellipsis2 = encodeURIComponent("\u2026");
491
+ const buffer2 = 50;
492
+ const maxEncodedLength = GITHUB_URL_LIMIT - baseUrl.length - ellipsis2.length - encodedNote.length - buffer2;
493
+ const fullBody = bodyPrefix + errorsJson + errorSuffix;
494
+ let encodedFullBody = encodeURIComponent(fullBody);
495
+ if (encodedFullBody.length > maxEncodedLength) {
496
+ encodedFullBody = encodedFullBody.slice(0, maxEncodedLength);
497
+ const lastPercent2 = encodedFullBody.lastIndexOf("%");
498
+ if (lastPercent2 >= encodedFullBody.length - 2) {
499
+ encodedFullBody = encodedFullBody.slice(0, lastPercent2);
500
+ }
501
+ }
502
+ return baseUrl + encodedFullBody + ellipsis2 + encodedNote;
503
+ }
504
+ if (encodedErrors.length <= spaceForErrors) {
505
+ return baseUrl + encodedPrefix + encodedErrors + encodedSuffix;
506
+ }
507
+ const ellipsis = encodeURIComponent("\u2026");
508
+ const buffer = 50;
509
+ let truncatedEncodedErrors = encodedErrors.slice(0, spaceForErrors - ellipsis.length - buffer);
510
+ const lastPercent = truncatedEncodedErrors.lastIndexOf("%");
511
+ if (lastPercent >= truncatedEncodedErrors.length - 2) {
512
+ truncatedEncodedErrors = truncatedEncodedErrors.slice(0, lastPercent);
513
+ }
514
+ return baseUrl + encodedPrefix + truncatedEncodedErrors + ellipsis + encodedSuffix + encodedNote;
515
+ }
516
+ async function generateTitle(description, abortSignal) {
517
+ try {
518
+ const response = await queryHaiku({
519
+ systemPrompt: asSystemPrompt([
520
+ "Generate a concise, technical issue title (max 80 chars) for a public GitHub issue based on this bug report for Claude Code.",
521
+ "Claude Code is an agentic coding CLI based on the Anthropic API.",
522
+ "The title should:",
523
+ "- Include the type of issue [Bug] or [Feature Request] as the first thing in the title",
524
+ "- Be concise, specific and descriptive of the actual problem",
525
+ "- Use technical terminology appropriate for a software issue",
526
+ '- For error messages, extract the key error (e.g., "Missing Tool Result Block" rather than the full message)',
527
+ "- Be direct and clear for developers to understand the problem",
528
+ '- If you cannot determine a clear issue, use "Bug Report: [brief description]"',
529
+ "- Any LLM API errors are from the Anthropic API, not from any other model provider",
530
+ "Your response will be directly used as the title of the Github issue, and as such should not contain any other commentary or explaination",
531
+ 'Examples of good titles include: "[Bug] Auto-Compact triggers to soon", "[Bug] Anthropic API Error: Missing Tool Result Block", "[Bug] Error: Invalid Model Name for Opus"'
532
+ ]),
533
+ userPrompt: description,
534
+ signal: abortSignal,
535
+ options: {
536
+ hasAppendSystemPrompt: false,
537
+ toolChoice: undefined,
538
+ isNonInteractiveSession: false,
539
+ agents: [],
540
+ querySource: "feedback",
541
+ mcpTools: []
542
+ }
543
+ });
544
+ const title = response.message.content[0]?.type === "text" ? response.message.content[0].text : "Bug Report";
545
+ if (startsWithApiErrorPrefix(title)) {
546
+ return createFallbackTitle(description);
547
+ }
548
+ return title;
549
+ } catch (error) {
550
+ logError(error);
551
+ return createFallbackTitle(description);
552
+ }
553
+ }
554
+ function createFallbackTitle(description) {
555
+ const firstLine = description.split(`
556
+ `)[0] || "";
557
+ if (firstLine.length <= 60 && firstLine.length > 5) {
558
+ return firstLine;
559
+ }
560
+ let truncated = firstLine.slice(0, 60);
561
+ if (firstLine.length > 60) {
562
+ const lastSpace = truncated.lastIndexOf(" ");
563
+ if (lastSpace > 30) {
564
+ truncated = truncated.slice(0, lastSpace);
565
+ }
566
+ truncated += "...";
567
+ }
568
+ return truncated.length < 10 ? "Bug Report" : truncated;
569
+ }
570
+ function sanitizeAndLogError(err) {
571
+ if (err instanceof Error) {
572
+ const safeError = new Error(redactSensitiveInfo(err.message));
573
+ if (err.stack) {
574
+ safeError.stack = redactSensitiveInfo(err.stack);
575
+ }
576
+ logError(safeError);
577
+ } else {
578
+ const errorString = redactSensitiveInfo(String(err));
579
+ logError(new Error(errorString));
580
+ }
581
+ }
582
+ async function submitFeedback(data, signal) {
583
+ if (isEssentialTrafficOnly()) {
584
+ return { success: false };
585
+ }
586
+ try {
587
+ await checkAndRefreshOAuthTokenIfNeeded();
588
+ const authResult = getAuthHeaders();
589
+ if (authResult.error) {
590
+ return { success: false };
591
+ }
592
+ const headers = {
593
+ "Content-Type": "application/json",
594
+ "User-Agent": getUserAgent(),
595
+ ...authResult.headers
596
+ };
597
+ const response = await axios_default.post("https://api.anthropic.com/api/claude_cli_feedback", {
598
+ content: jsonStringify(data)
599
+ }, {
600
+ headers,
601
+ timeout: 30000,
602
+ signal
603
+ });
604
+ if (response.status === 200) {
605
+ const result = response.data;
606
+ if (result?.feedback_id) {
607
+ return { success: true, feedbackId: result.feedback_id };
608
+ }
609
+ sanitizeAndLogError(new Error("Failed to submit feedback: request did not return feedback_id"));
610
+ return { success: false };
611
+ }
612
+ sanitizeAndLogError(new Error("Failed to submit feedback:" + response.status));
613
+ return { success: false };
614
+ } catch (err) {
615
+ if (axios_default.isCancel(err)) {
616
+ return { success: false };
617
+ }
618
+ if (axios_default.isAxiosError(err) && err.response?.status === 403) {
619
+ const errorData = err.response.data;
620
+ if (errorData?.error?.type === "permission_error" && errorData?.error?.message?.includes("Custom data retention settings")) {
621
+ sanitizeAndLogError(new Error("Cannot submit feedback because custom data retention settings are enabled"));
622
+ return { success: false, isZdrOrg: true };
623
+ }
624
+ }
625
+ sanitizeAndLogError(err);
626
+ return { success: false };
627
+ }
628
+ }
629
+ var import_react, jsx_dev_runtime, GITHUB_URL_LIMIT = 7250, GITHUB_ISSUES_REPO_URL;
630
+ var init_Feedback = __esm(() => {
631
+ init_axios();
632
+ init_state();
633
+ init_firstPartyEventLogger();
634
+ init_analytics();
635
+ init_messages();
636
+ init_useTerminalSize();
637
+ init_src();
638
+ init_useKeybinding();
639
+ init_claude();
640
+ init_errors();
641
+ init_auth();
642
+ init_browser();
643
+ init_debug();
644
+ init_env();
645
+ init_git();
646
+ init_http();
647
+ init_log();
648
+ init_privacyLevel();
649
+ init_sessionStorage();
650
+ init_slowOperations();
651
+ init_systemPromptType();
652
+ init_ConfigurableShortcutHint();
653
+ init_src();
654
+ init_TextInput();
655
+ import_react = __toESM(require_react(), 1);
656
+ jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
657
+ GITHUB_ISSUES_REPO_URL = process.env.USER_TYPE === "ant" ? "https://github.com/anthropics/claude-cli-internal/issues" : "https://github.com/anthropics/claude-code/issues";
658
+ });
659
+
660
+ export { redactSensitiveInfo, Feedback, init_Feedback };