gong-code 0.1.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 (374) hide show
  1. package/README.md +38 -0
  2. package/dist/SKILL-22jccbka.md +1 -0
  3. package/dist/chunk-01wdn84e.js +8 -0
  4. package/dist/chunk-04bc74vz.js +243 -0
  5. package/dist/chunk-05t2vqsb.js +490 -0
  6. package/dist/chunk-0727wret.js +159 -0
  7. package/dist/chunk-07rervty.js +200 -0
  8. package/dist/chunk-0b9nxvyg.js +478 -0
  9. package/dist/chunk-0e428b73.js +600 -0
  10. package/dist/chunk-0hqfheht.js +3439 -0
  11. package/dist/chunk-0pnk52c2.js +116 -0
  12. package/dist/chunk-0sbddf6m.js +68 -0
  13. package/dist/chunk-0vf7xb84.js +176 -0
  14. package/dist/chunk-0yz17yjy.js +1061 -0
  15. package/dist/chunk-0zscb6c7.js +10 -0
  16. package/dist/chunk-10p21kq6.js +378 -0
  17. package/dist/chunk-17k78pmz.js +120 -0
  18. package/dist/chunk-19jvvqzp.js +1390 -0
  19. package/dist/chunk-1d5czqnr.js +173 -0
  20. package/dist/chunk-1gjysfnf.js +13876 -0
  21. package/dist/chunk-1jjfv0wd.js +467 -0
  22. package/dist/chunk-1jjzp2pa.js +617 -0
  23. package/dist/chunk-1m38dj2k.js +155 -0
  24. package/dist/chunk-1pgttway.js +211 -0
  25. package/dist/chunk-1vvnx0gb.js +8035 -0
  26. package/dist/chunk-1ztm9yps.js +49145 -0
  27. package/dist/chunk-208x1t0m.js +88 -0
  28. package/dist/chunk-20xqs3yk.js +843 -0
  29. package/dist/chunk-2b2c0wnn.js +584 -0
  30. package/dist/chunk-2g07117j.js +541 -0
  31. package/dist/chunk-2g6p2t3w.js +780 -0
  32. package/dist/chunk-2kjeaeg7.js +28 -0
  33. package/dist/chunk-2n0s2dhc.js +12 -0
  34. package/dist/chunk-2p0hvt8k.js +785 -0
  35. package/dist/chunk-2qmxg9y7.js +40174 -0
  36. package/dist/chunk-2qpy8kne.js +28 -0
  37. package/dist/chunk-2rgbf62a.js +40 -0
  38. package/dist/chunk-2tx0s41y.js +150 -0
  39. package/dist/chunk-2x8zk5cz.js +101 -0
  40. package/dist/chunk-2yqy25z4.js +48 -0
  41. package/dist/chunk-318g78ty.js +552 -0
  42. package/dist/chunk-31gfg8tz.js +290 -0
  43. package/dist/chunk-32n0s532.js +1317 -0
  44. package/dist/chunk-35dw2r9g.js +137 -0
  45. package/dist/chunk-36b5zqvn.js +1865 -0
  46. package/dist/chunk-38kpx69j.js +97 -0
  47. package/dist/chunk-3b01vp8p.js +815 -0
  48. package/dist/chunk-3f76a1ek.js +317 -0
  49. package/dist/chunk-3fd1hkhh.js +4254 -0
  50. package/dist/chunk-3ffxa7zj.js +8 -0
  51. package/dist/chunk-3gcj7w95.js +8 -0
  52. package/dist/chunk-3jf3k40v.js +970 -0
  53. package/dist/chunk-3k51qfp9.js +9301 -0
  54. package/dist/chunk-3mhygd2v.js +1180 -0
  55. package/dist/chunk-3p6y0gvb.js +117 -0
  56. package/dist/chunk-3r60xdt5.js +93 -0
  57. package/dist/chunk-43agf6xv.js +8 -0
  58. package/dist/chunk-46zr418r.js +15 -0
  59. package/dist/chunk-48k2bs4w.js +118 -0
  60. package/dist/chunk-4p987a4z.js +84 -0
  61. package/dist/chunk-4px25pe0.js +776 -0
  62. package/dist/chunk-4s93jyky.js +113 -0
  63. package/dist/chunk-4xv8bedf.js +58 -0
  64. package/dist/chunk-4y382mzd.js +346 -0
  65. package/dist/chunk-52dzw4bc.js +246 -0
  66. package/dist/chunk-52qqmh5g.js +110 -0
  67. package/dist/chunk-53grnhp7.js +8 -0
  68. package/dist/chunk-59craaxx.js +4249 -0
  69. package/dist/chunk-5b833jqs.js +96 -0
  70. package/dist/chunk-5cp2q9sh.js +58 -0
  71. package/dist/chunk-5dbaxmts.js +87 -0
  72. package/dist/chunk-5f5sxgp0.js +96 -0
  73. package/dist/chunk-5mkfderj.js +195 -0
  74. package/dist/chunk-5qw0mpvq.js +389 -0
  75. package/dist/chunk-5rxmszm8.js +48 -0
  76. package/dist/chunk-5ygxa3hr.js +65 -0
  77. package/dist/chunk-61d5dqq2.js +71 -0
  78. package/dist/chunk-6350958y.js +272 -0
  79. package/dist/chunk-65z8hg8j.js +1337 -0
  80. package/dist/chunk-6aq85gdq.js +8 -0
  81. package/dist/chunk-6cjh9exg.js +40751 -0
  82. package/dist/chunk-6e41p5m6.js +187 -0
  83. package/dist/chunk-6jb6xcnq.js +10511 -0
  84. package/dist/chunk-6jta29r1.js +20 -0
  85. package/dist/chunk-6q7f2rrv.js +4757 -0
  86. package/dist/chunk-6sg0ec6v.js +41 -0
  87. package/dist/chunk-6v0rhx4e.js +328 -0
  88. package/dist/chunk-6x5mz95v.js +751 -0
  89. package/dist/chunk-6xqp51qr.js +87 -0
  90. package/dist/chunk-6xvyx1s9.js +6957 -0
  91. package/dist/chunk-6ywh7wgp.js +468 -0
  92. package/dist/chunk-75ne77gm.js +1920 -0
  93. package/dist/chunk-77cb06js.js +602 -0
  94. package/dist/chunk-78n9kfp8.js +1645 -0
  95. package/dist/chunk-7be87rww.js +277 -0
  96. package/dist/chunk-7e1qjk3s.js +125 -0
  97. package/dist/chunk-7e7nxnss.js +360 -0
  98. package/dist/chunk-7g8156qp.js +55 -0
  99. package/dist/chunk-7nz71s42.js +3353 -0
  100. package/dist/chunk-7r078t2x.js +113 -0
  101. package/dist/chunk-7shx41hj.js +3094 -0
  102. package/dist/chunk-7yexhdjs.js +216 -0
  103. package/dist/chunk-83kmfcjv.js +256 -0
  104. package/dist/chunk-846rr9n1.js +107 -0
  105. package/dist/chunk-84ncsm1r.js +183 -0
  106. package/dist/chunk-867x8aq0.js +8936 -0
  107. package/dist/chunk-8byh30kb.js +1947 -0
  108. package/dist/chunk-8c8f6gnt.js +432 -0
  109. package/dist/chunk-8gtdseev.js +454 -0
  110. package/dist/chunk-8jfh9rq6.js +642 -0
  111. package/dist/chunk-8n4n4m67.js +800 -0
  112. package/dist/chunk-8za61tze.js +847 -0
  113. package/dist/chunk-9029sbq1.js +57 -0
  114. package/dist/chunk-94dm5rrm.js +673 -0
  115. package/dist/chunk-9bs8n985.js +329 -0
  116. package/dist/chunk-9c23776j.js +763 -0
  117. package/dist/chunk-9e93g81n.js +298 -0
  118. package/dist/chunk-9f3d61y7.js +548 -0
  119. package/dist/chunk-9gc3andd.js +422 -0
  120. package/dist/chunk-9kn3tgpb.js +130 -0
  121. package/dist/chunk-9m5rn7hk.js +61 -0
  122. package/dist/chunk-9p4hsd6a.js +50 -0
  123. package/dist/chunk-9qasfk8n.js +758 -0
  124. package/dist/chunk-9snp5mn2.js +533 -0
  125. package/dist/chunk-9tcvras3.js +2331 -0
  126. package/dist/chunk-a0186ngk.js +57 -0
  127. package/dist/chunk-a2m8f0aj.js +268 -0
  128. package/dist/chunk-a2rcafav.js +716 -0
  129. package/dist/chunk-a9hjdzar.js +160 -0
  130. package/dist/chunk-aak6ts5n.js +526 -0
  131. package/dist/chunk-aca3w84n.js +267 -0
  132. package/dist/chunk-ae76ded0.js +30 -0
  133. package/dist/chunk-afnjhn3j.js +21933 -0
  134. package/dist/chunk-ahj70tf0.js +880 -0
  135. package/dist/chunk-apjsxssq.js +169 -0
  136. package/dist/chunk-av49wjj1.js +43 -0
  137. package/dist/chunk-axggebfy.js +206 -0
  138. package/dist/chunk-az7jpbv8.js +16 -0
  139. package/dist/chunk-azz7sep6.js +328 -0
  140. package/dist/chunk-b4tpz2g1.js +93 -0
  141. package/dist/chunk-bczf2eyq.js +115 -0
  142. package/dist/chunk-bd95f637.js +208 -0
  143. package/dist/chunk-bdhdmkya.js +10 -0
  144. package/dist/chunk-bp0ynk17.js +32 -0
  145. package/dist/chunk-bq75gxjs.js +90 -0
  146. package/dist/chunk-btk5jaq6.js +10464 -0
  147. package/dist/chunk-bv4c48a5.js +120 -0
  148. package/dist/chunk-byfb105n.js +341 -0
  149. package/dist/chunk-c0bdmy7w.js +4223 -0
  150. package/dist/chunk-c20aqkz8.js +641 -0
  151. package/dist/chunk-c4jg3s2c.js +163 -0
  152. package/dist/chunk-c61q5cer.js +258 -0
  153. package/dist/chunk-c9f761sy.js +386 -0
  154. package/dist/chunk-ca6jkz06.js +157 -0
  155. package/dist/chunk-ccyg9ap9.js +171374 -0
  156. package/dist/chunk-cfej8cc7.js +371 -0
  157. package/dist/chunk-cjqxdnf9.js +23 -0
  158. package/dist/chunk-ckrs789w.js +8 -0
  159. package/dist/chunk-cqeq13wg.js +48 -0
  160. package/dist/chunk-crfj3w5e.js +22821 -0
  161. package/dist/chunk-ct5x6z7g.js +8066 -0
  162. package/dist/chunk-cv5h8n8c.js +101 -0
  163. package/dist/chunk-cwe8h159.js +1563 -0
  164. package/dist/chunk-cwm234zz.js +908 -0
  165. package/dist/chunk-d1jkfp45.js +1580 -0
  166. package/dist/chunk-d3hb1qdr.js +126 -0
  167. package/dist/chunk-d70d0zer.js +713 -0
  168. package/dist/chunk-d91tx29f.js +105 -0
  169. package/dist/chunk-d952pymh.js +20 -0
  170. package/dist/chunk-d9af3z8k.js +720 -0
  171. package/dist/chunk-da1n53c2.js +47 -0
  172. package/dist/chunk-df5c1x8m.js +732 -0
  173. package/dist/chunk-dkv64xys.js +71 -0
  174. package/dist/chunk-dm7166v6.js +251 -0
  175. package/dist/chunk-dr0y5a61.js +258 -0
  176. package/dist/chunk-drzb0rrd.js +306 -0
  177. package/dist/chunk-dw1v1q7w.js +37 -0
  178. package/dist/chunk-e224qet4.js +348 -0
  179. package/dist/chunk-e50ckbv0.js +1099 -0
  180. package/dist/chunk-e5gn6by6.js +1165 -0
  181. package/dist/chunk-e7m3f74m.js +37 -0
  182. package/dist/chunk-e8ghgwaj.js +295 -0
  183. package/dist/chunk-ed8k4ya2.js +41 -0
  184. package/dist/chunk-eh0vnqdz.js +76 -0
  185. package/dist/chunk-epwrzr35.js +4301 -0
  186. package/dist/chunk-er9h6sw5.js +5379 -0
  187. package/dist/chunk-eta5aekm.js +79 -0
  188. package/dist/chunk-ev5gxscq.js +63 -0
  189. package/dist/chunk-evp72hv5.js +212 -0
  190. package/dist/chunk-ex41stfq.js +127 -0
  191. package/dist/chunk-ezpa510h.js +62 -0
  192. package/dist/chunk-f0fm6dey.js +477 -0
  193. package/dist/chunk-f239sbhc.js +152 -0
  194. package/dist/chunk-f2bj47xf.js +109 -0
  195. package/dist/chunk-f4t24rq4.js +258 -0
  196. package/dist/chunk-f9ghvzy8.js +106 -0
  197. package/dist/chunk-f9rahzgr.js +99 -0
  198. package/dist/chunk-ff75qzty.js +521 -0
  199. package/dist/chunk-fj0ctt6q.js +264 -0
  200. package/dist/chunk-fj7wxdt3.js +221 -0
  201. package/dist/chunk-fnnpqv92.js +714 -0
  202. package/dist/chunk-fpd3zzx1.js +26696 -0
  203. package/dist/chunk-fqv2cn76.js +227 -0
  204. package/dist/chunk-fqw9j3bj.js +439 -0
  205. package/dist/chunk-frbcqhz0.js +4984 -0
  206. package/dist/chunk-fzkj59sg.js +174 -0
  207. package/dist/chunk-fzpzbpbw.js +248 -0
  208. package/dist/chunk-g52cpmd1.js +686 -0
  209. package/dist/chunk-g98m2qe6.js +31 -0
  210. package/dist/chunk-g9zgq4vy.js +715 -0
  211. package/dist/chunk-gbpt7tm8.js +687 -0
  212. package/dist/chunk-gg52jka8.js +373 -0
  213. package/dist/chunk-gjttphax.js +5793 -0
  214. package/dist/chunk-gs7vjaas.js +65 -0
  215. package/dist/chunk-gv8n85j2.js +8 -0
  216. package/dist/chunk-gxdwm6pt.js +650 -0
  217. package/dist/chunk-gy8wajg2.js +1014 -0
  218. package/dist/chunk-gz3647m0.js +200 -0
  219. package/dist/chunk-gzg07mqh.js +16 -0
  220. package/dist/chunk-h3zc60tq.js +44 -0
  221. package/dist/chunk-h4p1qt16.js +74 -0
  222. package/dist/chunk-h8219f18.js +282 -0
  223. package/dist/chunk-h9agq92v.js +331 -0
  224. package/dist/chunk-hhjtpwbj.js +16 -0
  225. package/dist/chunk-hpgpwzra.js +548 -0
  226. package/dist/chunk-hsnjvn19.js +80 -0
  227. package/dist/chunk-hsp9qrry.js +417 -0
  228. package/dist/chunk-hwz6aq2m.js +3939 -0
  229. package/dist/chunk-hzph0hbh.js +272 -0
  230. package/dist/chunk-hzqkss6v.js +153 -0
  231. package/dist/chunk-j0t31f39.js +1149 -0
  232. package/dist/chunk-j1qm6n1v.js +30 -0
  233. package/dist/chunk-j6e4b522.js +81 -0
  234. package/dist/chunk-j7qfbvxk.js +84 -0
  235. package/dist/chunk-j7qv3hvm.js +1635 -0
  236. package/dist/chunk-j8mxc6k6.js +213 -0
  237. package/dist/chunk-jevj87jn.js +224 -0
  238. package/dist/chunk-jk2ps88q.js +815 -0
  239. package/dist/chunk-jz7tbdyv.js +1599 -0
  240. package/dist/chunk-k36jpjvh.js +300 -0
  241. package/dist/chunk-k4nmrt3w.js +61 -0
  242. package/dist/chunk-kavn03r9.js +16606 -0
  243. package/dist/chunk-kkgav8dm.js +54 -0
  244. package/dist/chunk-kkq26g5c.js +33 -0
  245. package/dist/chunk-kp6nepx4.js +106 -0
  246. package/dist/chunk-ksefybc8.js +1551 -0
  247. package/dist/chunk-kv147680.js +3436 -0
  248. package/dist/chunk-kya46axt.js +833 -0
  249. package/dist/chunk-kyz233ny.js +227 -0
  250. package/dist/chunk-kzs75xmj.js +143 -0
  251. package/dist/chunk-m0vrez9w.js +266 -0
  252. package/dist/chunk-m1wadav3.js +118 -0
  253. package/dist/chunk-m4rfx3cj.js +221 -0
  254. package/dist/chunk-mc9zaggs.js +6374 -0
  255. package/dist/chunk-mcg5ttj4.js +105 -0
  256. package/dist/chunk-mf4r7918.js +63 -0
  257. package/dist/chunk-mh9khrt4.js +286 -0
  258. package/dist/chunk-mhc4szw7.js +22 -0
  259. package/dist/chunk-mkq0yzp0.js +38 -0
  260. package/dist/chunk-mr58jv4w.js +256 -0
  261. package/dist/chunk-mrrx3bmt.js +168 -0
  262. package/dist/chunk-mtyk3zz6.js +87 -0
  263. package/dist/chunk-mvgxntv6.js +62 -0
  264. package/dist/chunk-mwnjydcm.js +102 -0
  265. package/dist/chunk-mwxt0m3f.js +862 -0
  266. package/dist/chunk-mz1pxck8.js +998 -0
  267. package/dist/chunk-n3agghys.js +214 -0
  268. package/dist/chunk-n6q02ya9.js +442 -0
  269. package/dist/chunk-nt3y91vh.js +443 -0
  270. package/dist/chunk-nt837qt9.js +21 -0
  271. package/dist/chunk-ntgmegfs.js +39 -0
  272. package/dist/chunk-nwk16bbd.js +30 -0
  273. package/dist/chunk-p367ay90.js +672 -0
  274. package/dist/chunk-p7m3x9qk.js +48 -0
  275. package/dist/chunk-pagmjwp5.js +132 -0
  276. package/dist/chunk-pbd4r8ek.js +161 -0
  277. package/dist/chunk-pdkpssgv.js +2422 -0
  278. package/dist/chunk-pf6z1e35.js +32 -0
  279. package/dist/chunk-pfzejvpt.js +213 -0
  280. package/dist/chunk-pktxyhvk.js +400 -0
  281. package/dist/chunk-pp5xhveq.js +124 -0
  282. package/dist/chunk-ppnd7a8x.js +38 -0
  283. package/dist/chunk-pqh2w7dr.js +2202 -0
  284. package/dist/chunk-pr878d0z.js +240 -0
  285. package/dist/chunk-psf0y7hy.js +140 -0
  286. package/dist/chunk-pz2zz2f7.js +1586 -0
  287. package/dist/chunk-q0xkrxy8.js +890 -0
  288. package/dist/chunk-q5b0kpr3.js +14369 -0
  289. package/dist/chunk-q7z3t531.js +334 -0
  290. package/dist/chunk-qdjjtgwt.js +3183 -0
  291. package/dist/chunk-qezv7msv.js +26 -0
  292. package/dist/chunk-qmxn7f86.js +2643 -0
  293. package/dist/chunk-qqc3b97c.js +15 -0
  294. package/dist/chunk-qwrp63wh.js +145 -0
  295. package/dist/chunk-qyvqbst3.js +537 -0
  296. package/dist/chunk-qztvd4hd.js +465 -0
  297. package/dist/chunk-r0bvez4y.js +235 -0
  298. package/dist/chunk-r3z0896k.js +2831 -0
  299. package/dist/chunk-r4cxb6t7.js +32 -0
  300. package/dist/chunk-rb8k68m7.js +118 -0
  301. package/dist/chunk-rdprgm4t.js +42 -0
  302. package/dist/chunk-rex82hys.js +1710 -0
  303. package/dist/chunk-rjjakkw2.js +2560 -0
  304. package/dist/chunk-rka6gcv3.js +304 -0
  305. package/dist/chunk-rkz12ghm.js +144 -0
  306. package/dist/chunk-rnc7m1qs.js +436 -0
  307. package/dist/chunk-rx6z23h0.js +165 -0
  308. package/dist/chunk-s76582j1.js +28 -0
  309. package/dist/chunk-sez03qd9.js +7140 -0
  310. package/dist/chunk-sjvdn2ep.js +130 -0
  311. package/dist/chunk-smwhyy8p.js +115 -0
  312. package/dist/chunk-snw7nh0d.js +695 -0
  313. package/dist/chunk-sqx9c057.js +193 -0
  314. package/dist/chunk-sscms68s.js +16 -0
  315. package/dist/chunk-stknnmsb.js +272 -0
  316. package/dist/chunk-sywdxbs6.js +853 -0
  317. package/dist/chunk-syxy4pf2.js +782 -0
  318. package/dist/chunk-t0hpqsqn.js +6157 -0
  319. package/dist/chunk-tjm70vnw.js +123 -0
  320. package/dist/chunk-trzh0msn.js +154 -0
  321. package/dist/chunk-v1z17cpg.js +723 -0
  322. package/dist/chunk-vsfj449x.js +333 -0
  323. package/dist/chunk-vvkq20tt.js +287 -0
  324. package/dist/chunk-vxgdzx6p.js +338 -0
  325. package/dist/chunk-vxqhjyfz.js +15 -0
  326. package/dist/chunk-vzsstfmb.js +80 -0
  327. package/dist/chunk-w1jew5sn.js +69 -0
  328. package/dist/chunk-w3kwr76v.js +789 -0
  329. package/dist/chunk-w40netr9.js +59 -0
  330. package/dist/chunk-w99cpfdg.js +559 -0
  331. package/dist/chunk-wacn14d2.js +271 -0
  332. package/dist/chunk-wbhrqrq3.js +3033 -0
  333. package/dist/chunk-wfg9g0p7.js +17612 -0
  334. package/dist/chunk-wj3vjsbx.js +93 -0
  335. package/dist/chunk-wjhq855a.js +372 -0
  336. package/dist/chunk-wr06gqxh.js +114 -0
  337. package/dist/chunk-ws0z2y1g.js +195 -0
  338. package/dist/chunk-wt62wqcj.js +98 -0
  339. package/dist/chunk-wx4v7ddx.js +42 -0
  340. package/dist/chunk-wy0t3vb2.js +6101 -0
  341. package/dist/chunk-wysz7qk4.js +280 -0
  342. package/dist/chunk-x63fx1vd.js +192 -0
  343. package/dist/chunk-x8b7vft8.js +132 -0
  344. package/dist/chunk-x8jhkgxb.js +346 -0
  345. package/dist/chunk-x9z4q5k5.js +275 -0
  346. package/dist/chunk-xjd7e9jq.js +126 -0
  347. package/dist/chunk-xjr0n27e.js +42 -0
  348. package/dist/chunk-xpwyw7cd.js +24 -0
  349. package/dist/chunk-xw4ycnyz.js +37 -0
  350. package/dist/chunk-y66bqywr.js +17303 -0
  351. package/dist/chunk-ycarry7d.js +157 -0
  352. package/dist/chunk-ycr0hp6v.js +1486 -0
  353. package/dist/chunk-yqmaw6hf.js +496 -0
  354. package/dist/chunk-yrtm7d23.js +602 -0
  355. package/dist/chunk-yts879rw.js +48 -0
  356. package/dist/chunk-yvmhx96e.js +347 -0
  357. package/dist/chunk-ywq00rg4.js +246 -0
  358. package/dist/chunk-yygeg5mj.js +752 -0
  359. package/dist/chunk-z0exw850.js +726 -0
  360. package/dist/chunk-z2dp53wn.js +17 -0
  361. package/dist/chunk-z4rzc9nd.js +103 -0
  362. package/dist/chunk-zb0akt77.js +684 -0
  363. package/dist/chunk-zb2xrj5t.js +1789 -0
  364. package/dist/chunk-zbptn0ky.js +423 -0
  365. package/dist/chunk-zd45wbmf.js +1090 -0
  366. package/dist/chunk-zjkvspz9.js +2050 -0
  367. package/dist/chunk-zke1sp3x.js +1524 -0
  368. package/dist/chunk-zv2cvfsv.js +58 -0
  369. package/dist/chunk-zy4tmqst.js +644 -0
  370. package/dist/chunk-zygzzzvk.js +192 -0
  371. package/dist/cli-21v3v6ny.md +1 -0
  372. package/dist/cli.js +246 -0
  373. package/dist/server-n5f2q89z.md +1 -0
  374. package/package.json +161 -0
@@ -0,0 +1,687 @@
1
+ // @bun
2
+ import {
3
+ Byline,
4
+ ConfigurableShortcutHint,
5
+ Dialog,
6
+ KeyboardShortcutHint,
7
+ init_Byline,
8
+ init_ConfigurableShortcutHint,
9
+ init_Dialog,
10
+ init_KeyboardShortcutHint
11
+ } from "./chunk-qztvd4hd.js";
12
+ import {
13
+ init_useKeybinding,
14
+ init_useTerminalSize,
15
+ useKeybinding,
16
+ useTerminalSize
17
+ } from "./chunk-8n4n4m67.js";
18
+ import {
19
+ require_jsx_dev_runtime,
20
+ require_react
21
+ } from "./chunk-0yz17yjy.js";
22
+ import {
23
+ init_browser,
24
+ openBrowser
25
+ } from "./chunk-9m5rn7hk.js";
26
+ import {
27
+ env,
28
+ init_env
29
+ } from "./chunk-vxgdzx6p.js";
30
+ import {
31
+ init_analytics,
32
+ logEvent
33
+ } from "./chunk-ezpa510h.js";
34
+ import {
35
+ getInMemoryErrors,
36
+ init_log,
37
+ isEssentialTrafficOnly,
38
+ logError
39
+ } from "./chunk-vsfj449x.js";
40
+ import {
41
+ init_debug,
42
+ init_slowOperations,
43
+ jsonStringify,
44
+ logForDebugging
45
+ } from "./chunk-rex82hys.js";
46
+ import {
47
+ __esm,
48
+ __toESM
49
+ } from "./chunk-eta5aekm.js";
50
+ import {
51
+ MAX_TRANSCRIPT_READ_BYTES,
52
+ TextInput,
53
+ asSystemPrompt,
54
+ extractTeammateTranscriptsFromTasks,
55
+ getLastAssistantMessage,
56
+ getTranscriptPath,
57
+ init_TextInput,
58
+ init_claude,
59
+ init_errors,
60
+ init_messages,
61
+ init_sessionStorage,
62
+ loadAllSubagentTranscriptsFromDisk,
63
+ normalizeMessagesForAPI,
64
+ queryHaiku,
65
+ startsWithApiErrorPrefix
66
+ } from "./chunk-ccyg9ap9.js";
67
+ import {
68
+ ThemedBox_default,
69
+ ThemedText,
70
+ init_ink,
71
+ use_input_default
72
+ } from "./chunk-fpd3zzx1.js";
73
+ import {
74
+ checkAndRefreshOAuthTokenIfNeeded,
75
+ getAuthHeaders,
76
+ getUserAgent,
77
+ init_auth,
78
+ init_firstPartyEventLogger,
79
+ init_http,
80
+ logEventTo1P
81
+ } from "./chunk-y66bqywr.js";
82
+ import {
83
+ getGitState,
84
+ getIsGit,
85
+ init_git
86
+ } from "./chunk-65z8hg8j.js";
87
+ import {
88
+ getLastAPIRequest,
89
+ init_state
90
+ } from "./chunk-rjjakkw2.js";
91
+ import {
92
+ axios_default,
93
+ init_axios
94
+ } from "./chunk-q5b0kpr3.js";
95
+
96
+ // src/components/Feedback.tsx
97
+ import { readFile, stat } from "fs/promises";
98
+ function redactSensitiveInfo(text) {
99
+ let redacted = text;
100
+ redacted = redacted.replace(/"(sk-ant[^\s"']{24,})"/g, '"[REDACTED_API_KEY]"');
101
+ redacted = redacted.replace(/(?<![A-Za-z0-9"'])(sk-ant-?[A-Za-z0-9_-]{10,})(?![A-Za-z0-9"'])/g, "[REDACTED_API_KEY]");
102
+ redacted = redacted.replace(/AWS key: "(AWS[A-Z0-9]{20,})"/g, 'AWS key: "[REDACTED_AWS_KEY]"');
103
+ redacted = redacted.replace(/(AKIA[A-Z0-9]{16})/g, "[REDACTED_AWS_KEY]");
104
+ redacted = redacted.replace(/(?<![A-Za-z0-9])(AIza[A-Za-z0-9_-]{35})(?![A-Za-z0-9])/g, "[REDACTED_GCP_KEY]");
105
+ 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]");
106
+ redacted = redacted.replace(/(["']?x-api-key["']?\s*[:=]\s*["']?)[^"',\s)}\]]+/gi, "$1[REDACTED_API_KEY]");
107
+ redacted = redacted.replace(/(["']?authorization["']?\s*[:=]\s*["']?(bearer\s+)?)[^"',\s)}\]]+/gi, "$1[REDACTED_TOKEN]");
108
+ redacted = redacted.replace(/(AWS[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi, "$1[REDACTED_AWS_VALUE]");
109
+ redacted = redacted.replace(/(GOOGLE[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi, "$1[REDACTED_GCP_VALUE]");
110
+ redacted = redacted.replace(/((API[-_]?KEY|TOKEN|SECRET|PASSWORD)\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi, "$1[REDACTED]");
111
+ return redacted;
112
+ }
113
+ function getSanitizedErrorLogs() {
114
+ return getInMemoryErrors().map((errorInfo) => {
115
+ const errorCopy = {
116
+ ...errorInfo
117
+ };
118
+ if (errorCopy && typeof errorCopy.error === "string") {
119
+ errorCopy.error = redactSensitiveInfo(errorCopy.error);
120
+ }
121
+ return errorCopy;
122
+ });
123
+ }
124
+ async function loadRawTranscriptJsonl() {
125
+ try {
126
+ const transcriptPath = getTranscriptPath();
127
+ const {
128
+ size
129
+ } = await stat(transcriptPath);
130
+ if (size > MAX_TRANSCRIPT_READ_BYTES) {
131
+ logForDebugging(`Skipping raw transcript read: file too large (${size} bytes)`, {
132
+ level: "warn"
133
+ });
134
+ return null;
135
+ }
136
+ return await readFile(transcriptPath, "utf-8");
137
+ } catch {
138
+ return null;
139
+ }
140
+ }
141
+ function Feedback({
142
+ abortSignal,
143
+ messages,
144
+ initialDescription,
145
+ onDone,
146
+ backgroundTasks = {}
147
+ }) {
148
+ const [step, setStep] = import_react.useState("userInput");
149
+ const [cursorOffset, setCursorOffset] = import_react.useState(0);
150
+ const [description, setDescription] = import_react.useState(initialDescription ?? "");
151
+ const [feedbackId, setFeedbackId] = import_react.useState(null);
152
+ const [error, setError] = import_react.useState(null);
153
+ const [envInfo, setEnvInfo] = import_react.useState({
154
+ isGit: false,
155
+ gitState: null
156
+ });
157
+ const [title, setTitle] = import_react.useState(null);
158
+ const textInputColumns = useTerminalSize().columns - 4;
159
+ import_react.useEffect(() => {
160
+ async function loadEnvInfo() {
161
+ const isGit = await getIsGit();
162
+ let gitState = null;
163
+ if (isGit) {
164
+ gitState = await getGitState();
165
+ }
166
+ setEnvInfo({
167
+ isGit,
168
+ gitState
169
+ });
170
+ }
171
+ loadEnvInfo();
172
+ }, []);
173
+ const submitReport = import_react.useCallback(async () => {
174
+ setStep("submitting");
175
+ setError(null);
176
+ setFeedbackId(null);
177
+ const sanitizedErrors = getSanitizedErrorLogs();
178
+ const lastAssistantMessage = getLastAssistantMessage(messages);
179
+ const lastAssistantMessageId = lastAssistantMessage?.requestId ?? null;
180
+ const [diskTranscripts, rawTranscriptJsonl] = await Promise.all([loadAllSubagentTranscriptsFromDisk(), loadRawTranscriptJsonl()]);
181
+ const teammateTranscripts = extractTeammateTranscriptsFromTasks(backgroundTasks);
182
+ const subagentTranscripts = {
183
+ ...diskTranscripts,
184
+ ...teammateTranscripts
185
+ };
186
+ const reportData = {
187
+ latestAssistantMessageId: lastAssistantMessageId,
188
+ message_count: messages.length,
189
+ datetime: new Date().toISOString(),
190
+ description,
191
+ platform: env.platform,
192
+ gitRepo: envInfo.isGit,
193
+ terminal: env.terminal,
194
+ version: MACRO.VERSION,
195
+ transcript: normalizeMessagesForAPI(messages),
196
+ errors: sanitizedErrors,
197
+ lastApiRequest: getLastAPIRequest(),
198
+ ...Object.keys(subagentTranscripts).length > 0 && {
199
+ subagentTranscripts
200
+ },
201
+ ...rawTranscriptJsonl && {
202
+ rawTranscriptJsonl
203
+ }
204
+ };
205
+ const [result, t] = await Promise.all([submitFeedback(reportData, abortSignal), generateTitle(description, abortSignal)]);
206
+ setTitle(t);
207
+ if (result.success) {
208
+ if (result.feedbackId) {
209
+ setFeedbackId(result.feedbackId);
210
+ logEvent("tengu_bug_report_submitted", {
211
+ feedback_id: result.feedbackId,
212
+ last_assistant_message_id: lastAssistantMessageId
213
+ });
214
+ logEventTo1P("tengu_bug_report_description", {
215
+ feedback_id: result.feedbackId,
216
+ description: redactSensitiveInfo(description)
217
+ });
218
+ }
219
+ setStep("done");
220
+ } else {
221
+ if (result.isZdrOrg) {
222
+ setError("Feedback collection is not available for organizations with custom data retention policies.");
223
+ } else {
224
+ setError("Could not submit feedback. Please try again later.");
225
+ }
226
+ setStep("userInput");
227
+ }
228
+ }, [description, envInfo.isGit, messages]);
229
+ const handleCancel = import_react.useCallback(() => {
230
+ if (step === "done") {
231
+ if (error) {
232
+ onDone("Error submitting feedback / bug report", {
233
+ display: "system"
234
+ });
235
+ } else {
236
+ onDone("Feedback / bug report submitted", {
237
+ display: "system"
238
+ });
239
+ }
240
+ return;
241
+ }
242
+ onDone("Feedback / bug report cancelled", {
243
+ display: "system"
244
+ });
245
+ }, [step, error, onDone]);
246
+ useKeybinding("confirm:no", handleCancel, {
247
+ context: "Settings",
248
+ isActive: step === "userInput"
249
+ });
250
+ use_input_default((input, key) => {
251
+ if (step === "done") {
252
+ if (key.return && title) {
253
+ const issueUrl = createGitHubIssueUrl(feedbackId ?? "", title, description, getSanitizedErrorLogs());
254
+ openBrowser(issueUrl);
255
+ }
256
+ if (error) {
257
+ onDone("Error submitting feedback / bug report", {
258
+ display: "system"
259
+ });
260
+ } else {
261
+ onDone("Feedback / bug report submitted", {
262
+ display: "system"
263
+ });
264
+ }
265
+ return;
266
+ }
267
+ if (error && step !== "userInput") {
268
+ onDone("Error submitting feedback / bug report", {
269
+ display: "system"
270
+ });
271
+ return;
272
+ }
273
+ if (step === "consent" && (key.return || input === " ")) {
274
+ submitReport();
275
+ }
276
+ });
277
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Dialog, {
278
+ title: "Submit Feedback / Bug Report",
279
+ onCancel: handleCancel,
280
+ isCancelActive: step !== "userInput",
281
+ inputGuide: (exitState) => exitState.pending ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
282
+ children: [
283
+ "Press ",
284
+ exitState.keyName,
285
+ " again to exit"
286
+ ]
287
+ }, undefined, true, undefined, this) : step === "userInput" ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Byline, {
288
+ children: [
289
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(KeyboardShortcutHint, {
290
+ shortcut: "Enter",
291
+ action: "continue"
292
+ }, undefined, false, undefined, this),
293
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ConfigurableShortcutHint, {
294
+ action: "confirm:no",
295
+ context: "Confirmation",
296
+ fallback: "Esc",
297
+ description: "cancel"
298
+ }, undefined, false, undefined, this)
299
+ ]
300
+ }, undefined, true, undefined, this) : step === "consent" ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Byline, {
301
+ children: [
302
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(KeyboardShortcutHint, {
303
+ shortcut: "Enter",
304
+ action: "submit"
305
+ }, undefined, false, undefined, this),
306
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ConfigurableShortcutHint, {
307
+ action: "confirm:no",
308
+ context: "Confirmation",
309
+ fallback: "Esc",
310
+ description: "cancel"
311
+ }, undefined, false, undefined, this)
312
+ ]
313
+ }, undefined, true, undefined, this) : null,
314
+ children: [
315
+ step === "userInput" && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
316
+ flexDirection: "column",
317
+ gap: 1,
318
+ children: [
319
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
320
+ children: "Describe the issue below:"
321
+ }, undefined, false, undefined, this),
322
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(TextInput, {
323
+ value: description,
324
+ onChange: (value) => {
325
+ setDescription(value);
326
+ if (error) {
327
+ setError(null);
328
+ }
329
+ },
330
+ columns: textInputColumns,
331
+ onSubmit: () => setStep("consent"),
332
+ onExitMessage: () => onDone("Feedback cancelled", {
333
+ display: "system"
334
+ }),
335
+ cursorOffset,
336
+ onChangeCursorOffset: setCursorOffset,
337
+ showCursor: true
338
+ }, undefined, false, undefined, this),
339
+ error && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
340
+ flexDirection: "column",
341
+ gap: 1,
342
+ children: [
343
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
344
+ color: "error",
345
+ children: error
346
+ }, undefined, false, undefined, this),
347
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
348
+ dimColor: true,
349
+ children: "Edit and press Enter to retry, or Esc to cancel"
350
+ }, undefined, false, undefined, this)
351
+ ]
352
+ }, undefined, true, undefined, this)
353
+ ]
354
+ }, undefined, true, undefined, this),
355
+ step === "consent" && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
356
+ flexDirection: "column",
357
+ children: [
358
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
359
+ children: "This report will include:"
360
+ }, undefined, false, undefined, this),
361
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
362
+ marginLeft: 2,
363
+ flexDirection: "column",
364
+ children: [
365
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
366
+ children: [
367
+ "- Your feedback / bug description:",
368
+ " ",
369
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
370
+ dimColor: true,
371
+ children: description
372
+ }, undefined, false, undefined, this)
373
+ ]
374
+ }, undefined, true, undefined, this),
375
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
376
+ children: [
377
+ "- Environment info:",
378
+ " ",
379
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
380
+ dimColor: true,
381
+ children: [
382
+ env.platform,
383
+ ", ",
384
+ env.terminal,
385
+ ", v",
386
+ MACRO.VERSION
387
+ ]
388
+ }, undefined, true, undefined, this)
389
+ ]
390
+ }, undefined, true, undefined, this),
391
+ envInfo.gitState && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
392
+ children: [
393
+ "- Git repo metadata:",
394
+ " ",
395
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
396
+ dimColor: true,
397
+ children: [
398
+ envInfo.gitState.branchName,
399
+ envInfo.gitState.commitHash ? `, ${envInfo.gitState.commitHash.slice(0, 7)}` : "",
400
+ envInfo.gitState.remoteUrl ? ` @ ${envInfo.gitState.remoteUrl}` : "",
401
+ !envInfo.gitState.isHeadOnRemote && ", not synced",
402
+ !envInfo.gitState.isClean && ", has local changes"
403
+ ]
404
+ }, undefined, true, undefined, this)
405
+ ]
406
+ }, undefined, true, undefined, this),
407
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
408
+ children: "- Current session transcript"
409
+ }, undefined, false, undefined, this)
410
+ ]
411
+ }, undefined, true, undefined, this),
412
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
413
+ marginTop: 1,
414
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
415
+ wrap: "wrap",
416
+ dimColor: true,
417
+ children: [
418
+ "We will use your feedback to debug related issues or to improve",
419
+ " ",
420
+ "Claude Code's functionality (eg. to reduce the risk of bugs occurring in the future)."
421
+ ]
422
+ }, undefined, true, undefined, this)
423
+ }, undefined, false, undefined, this),
424
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
425
+ marginTop: 1,
426
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
427
+ children: [
428
+ "Press ",
429
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
430
+ bold: true,
431
+ children: "Enter"
432
+ }, undefined, false, undefined, this),
433
+ " to confirm and submit."
434
+ ]
435
+ }, undefined, true, undefined, this)
436
+ }, undefined, false, undefined, this)
437
+ ]
438
+ }, undefined, true, undefined, this),
439
+ step === "submitting" && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
440
+ flexDirection: "row",
441
+ gap: 1,
442
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
443
+ children: "Submitting report\u2026"
444
+ }, undefined, false, undefined, this)
445
+ }, undefined, false, undefined, this),
446
+ step === "done" && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
447
+ flexDirection: "column",
448
+ children: [
449
+ error ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
450
+ color: "error",
451
+ children: error
452
+ }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
453
+ color: "success",
454
+ children: "Thank you for your report!"
455
+ }, undefined, false, undefined, this),
456
+ feedbackId && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
457
+ dimColor: true,
458
+ children: [
459
+ "Feedback ID: ",
460
+ feedbackId
461
+ ]
462
+ }, undefined, true, undefined, this),
463
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
464
+ marginTop: 1,
465
+ children: [
466
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
467
+ children: "Press "
468
+ }, undefined, false, undefined, this),
469
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
470
+ bold: true,
471
+ children: "Enter "
472
+ }, undefined, false, undefined, this),
473
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
474
+ children: "to open your browser and draft a GitHub issue, or any other key to close."
475
+ }, undefined, false, undefined, this)
476
+ ]
477
+ }, undefined, true, undefined, this)
478
+ ]
479
+ }, undefined, true, undefined, this)
480
+ ]
481
+ }, undefined, true, undefined, this);
482
+ }
483
+ function createGitHubIssueUrl(feedbackId, title, description, errors) {
484
+ const sanitizedTitle = redactSensitiveInfo(title);
485
+ const sanitizedDescription = redactSensitiveInfo(description);
486
+ const bodyPrefix = `**Bug Description**
487
+ ${sanitizedDescription}
488
+
489
+ ` + `**Environment Info**
490
+ ` + `- Platform: ${env.platform}
491
+ ` + `- Terminal: ${env.terminal}
492
+ ` + `- Version: ${MACRO.VERSION || "unknown"}
493
+ ` + `- Feedback ID: ${feedbackId}
494
+ ` + `
495
+ **Errors**
496
+ \`\`\`json
497
+ `;
498
+ const errorSuffix = `
499
+ \`\`\`
500
+ `;
501
+ const errorsJson = jsonStringify(errors);
502
+ const baseUrl = `${GITHUB_ISSUES_REPO_URL}/new?title=${encodeURIComponent(sanitizedTitle)}&labels=user-reported,bug&body=`;
503
+ const truncationNote = `
504
+ **Note:** Content was truncated.
505
+ `;
506
+ const encodedPrefix = encodeURIComponent(bodyPrefix);
507
+ const encodedSuffix = encodeURIComponent(errorSuffix);
508
+ const encodedNote = encodeURIComponent(truncationNote);
509
+ const encodedErrors = encodeURIComponent(errorsJson);
510
+ const spaceForErrors = GITHUB_URL_LIMIT - baseUrl.length - encodedPrefix.length - encodedSuffix.length - encodedNote.length;
511
+ if (spaceForErrors <= 0) {
512
+ const ellipsis2 = encodeURIComponent("\u2026");
513
+ const buffer2 = 50;
514
+ const maxEncodedLength = GITHUB_URL_LIMIT - baseUrl.length - ellipsis2.length - encodedNote.length - buffer2;
515
+ const fullBody = bodyPrefix + errorsJson + errorSuffix;
516
+ let encodedFullBody = encodeURIComponent(fullBody);
517
+ if (encodedFullBody.length > maxEncodedLength) {
518
+ encodedFullBody = encodedFullBody.slice(0, maxEncodedLength);
519
+ const lastPercent2 = encodedFullBody.lastIndexOf("%");
520
+ if (lastPercent2 >= encodedFullBody.length - 2) {
521
+ encodedFullBody = encodedFullBody.slice(0, lastPercent2);
522
+ }
523
+ }
524
+ return baseUrl + encodedFullBody + ellipsis2 + encodedNote;
525
+ }
526
+ if (encodedErrors.length <= spaceForErrors) {
527
+ return baseUrl + encodedPrefix + encodedErrors + encodedSuffix;
528
+ }
529
+ const ellipsis = encodeURIComponent("\u2026");
530
+ const buffer = 50;
531
+ let truncatedEncodedErrors = encodedErrors.slice(0, spaceForErrors - ellipsis.length - buffer);
532
+ const lastPercent = truncatedEncodedErrors.lastIndexOf("%");
533
+ if (lastPercent >= truncatedEncodedErrors.length - 2) {
534
+ truncatedEncodedErrors = truncatedEncodedErrors.slice(0, lastPercent);
535
+ }
536
+ return baseUrl + encodedPrefix + truncatedEncodedErrors + ellipsis + encodedSuffix + encodedNote;
537
+ }
538
+ async function generateTitle(description, abortSignal) {
539
+ try {
540
+ const response = await queryHaiku({
541
+ systemPrompt: asSystemPrompt(["Generate a concise, technical issue title (max 80 chars) for a public GitHub issue based on this bug report for Claude Code.", "Claude Code is an agentic coding CLI based on the Anthropic API.", "The title should:", "- Include the type of issue [Bug] or [Feature Request] as the first thing in the title", "- Be concise, specific and descriptive of the actual problem", "- Use technical terminology appropriate for a software issue", '- For error messages, extract the key error (e.g., "Missing Tool Result Block" rather than the full message)', "- Be direct and clear for developers to understand the problem", '- If you cannot determine a clear issue, use "Bug Report: [brief description]"', "- Any LLM API errors are from the Anthropic API, not from any other model provider", "Your response will be directly used as the title of the Github issue, and as such should not contain any other commentary or explaination", '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"']),
542
+ userPrompt: description,
543
+ signal: abortSignal,
544
+ options: {
545
+ hasAppendSystemPrompt: false,
546
+ toolChoice: undefined,
547
+ isNonInteractiveSession: false,
548
+ agents: [],
549
+ querySource: "feedback",
550
+ mcpTools: []
551
+ }
552
+ });
553
+ const firstBlock = Array.isArray(response.message.content) ? response.message.content[0] : undefined;
554
+ const title = firstBlock && typeof firstBlock !== "string" && firstBlock.type === "text" ? firstBlock.text : "Bug Report";
555
+ if (startsWithApiErrorPrefix(title)) {
556
+ return createFallbackTitle(description);
557
+ }
558
+ return title;
559
+ } catch (error) {
560
+ logError(error);
561
+ return createFallbackTitle(description);
562
+ }
563
+ }
564
+ function createFallbackTitle(description) {
565
+ const firstLine = description.split(`
566
+ `)[0] || "";
567
+ if (firstLine.length <= 60 && firstLine.length > 5) {
568
+ return firstLine;
569
+ }
570
+ let truncated = firstLine.slice(0, 60);
571
+ if (firstLine.length > 60) {
572
+ const lastSpace = truncated.lastIndexOf(" ");
573
+ if (lastSpace > 30) {
574
+ truncated = truncated.slice(0, lastSpace);
575
+ }
576
+ truncated += "...";
577
+ }
578
+ return truncated.length < 10 ? "Bug Report" : truncated;
579
+ }
580
+ function sanitizeAndLogError(err) {
581
+ if (err instanceof Error) {
582
+ const safeError = new Error(redactSensitiveInfo(err.message));
583
+ if (err.stack) {
584
+ safeError.stack = redactSensitiveInfo(err.stack);
585
+ }
586
+ logError(safeError);
587
+ } else {
588
+ const errorString = redactSensitiveInfo(String(err));
589
+ logError(new Error(errorString));
590
+ }
591
+ }
592
+ async function submitFeedback(data, signal) {
593
+ if (isEssentialTrafficOnly()) {
594
+ return {
595
+ success: false
596
+ };
597
+ }
598
+ try {
599
+ await checkAndRefreshOAuthTokenIfNeeded();
600
+ const authResult = getAuthHeaders();
601
+ if (authResult.error) {
602
+ return {
603
+ success: false
604
+ };
605
+ }
606
+ const headers = {
607
+ "Content-Type": "application/json",
608
+ "User-Agent": getUserAgent(),
609
+ ...authResult.headers
610
+ };
611
+ const response = await axios_default.post("https://api.anthropic.com/api/claude_cli_feedback", {
612
+ content: jsonStringify(data)
613
+ }, {
614
+ headers,
615
+ timeout: 30000,
616
+ signal
617
+ });
618
+ if (response.status === 200) {
619
+ const result = response.data;
620
+ if (result?.feedback_id) {
621
+ return {
622
+ success: true,
623
+ feedbackId: result.feedback_id
624
+ };
625
+ }
626
+ sanitizeAndLogError(new Error("Failed to submit feedback: request did not return feedback_id"));
627
+ return {
628
+ success: false
629
+ };
630
+ }
631
+ sanitizeAndLogError(new Error("Failed to submit feedback:" + response.status));
632
+ return {
633
+ success: false
634
+ };
635
+ } catch (err) {
636
+ if (axios_default.isCancel(err)) {
637
+ return {
638
+ success: false
639
+ };
640
+ }
641
+ if (axios_default.isAxiosError(err) && err.response?.status === 403) {
642
+ const errorData = err.response.data;
643
+ if (errorData?.error?.type === "permission_error" && errorData?.error?.message?.includes("Custom data retention settings")) {
644
+ sanitizeAndLogError(new Error("Cannot submit feedback because custom data retention settings are enabled"));
645
+ return {
646
+ success: false,
647
+ isZdrOrg: true
648
+ };
649
+ }
650
+ }
651
+ sanitizeAndLogError(err);
652
+ return {
653
+ success: false
654
+ };
655
+ }
656
+ }
657
+ var import_react, jsx_dev_runtime, GITHUB_URL_LIMIT = 7250, GITHUB_ISSUES_REPO_URL = "https://github.com/anthropics/claude-code/issues";
658
+ var init_Feedback = __esm(() => {
659
+ init_axios();
660
+ init_state();
661
+ init_firstPartyEventLogger();
662
+ init_analytics();
663
+ init_messages();
664
+ init_useTerminalSize();
665
+ init_ink();
666
+ init_useKeybinding();
667
+ init_claude();
668
+ init_errors();
669
+ init_auth();
670
+ init_browser();
671
+ init_debug();
672
+ init_env();
673
+ init_git();
674
+ init_http();
675
+ init_log();
676
+ init_sessionStorage();
677
+ init_slowOperations();
678
+ init_ConfigurableShortcutHint();
679
+ init_Byline();
680
+ init_Dialog();
681
+ init_KeyboardShortcutHint();
682
+ init_TextInput();
683
+ import_react = __toESM(require_react(), 1);
684
+ jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
685
+ });
686
+
687
+ export { redactSensitiveInfo, Feedback, init_Feedback };