@jayjiang/open-cc 0.2.1

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 (459) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +107 -0
  3. package/dist/chunk-00dxqxqj.js +227 -0
  4. package/dist/chunk-01p8hhsp.js +154 -0
  5. package/dist/chunk-02wy0m47.js +152 -0
  6. package/dist/chunk-0465tnzh.js +110 -0
  7. package/dist/chunk-054mjk62.js +678 -0
  8. package/dist/chunk-06saje2v.js +39 -0
  9. package/dist/chunk-0731m51q.js +8 -0
  10. package/dist/chunk-09y0jvtm.js +165 -0
  11. package/dist/chunk-0fkqze0v.js +113 -0
  12. package/dist/chunk-0hn525br.js +1920 -0
  13. package/dist/chunk-0hneh9ha.js +123 -0
  14. package/dist/chunk-0paqc2yw.js +15 -0
  15. package/dist/chunk-0rkbrabt.js +32 -0
  16. package/dist/chunk-0scs4rpx.js +96 -0
  17. package/dist/chunk-0vkfrmqm.js +690 -0
  18. package/dist/chunk-0w2byc95.js +38 -0
  19. package/dist/chunk-0xjaqda8.js +1124 -0
  20. package/dist/chunk-0y3vcsv4.js +92 -0
  21. package/dist/chunk-0yb4dz9c.js +26840 -0
  22. package/dist/chunk-10fdxge0.js +121 -0
  23. package/dist/chunk-1141xmr4.js +8 -0
  24. package/dist/chunk-14vffdmg.js +38 -0
  25. package/dist/chunk-178ykx7k.js +1493 -0
  26. package/dist/chunk-1bhva2z9.js +128 -0
  27. package/dist/chunk-1c8z1b5v.js +16 -0
  28. package/dist/chunk-1cbn5kxf.js +7 -0
  29. package/dist/chunk-1che51a5.js +1585 -0
  30. package/dist/chunk-1h2famwb.js +49 -0
  31. package/dist/chunk-1jrkpnbn.js +71 -0
  32. package/dist/chunk-1k4j1xcf.js +154 -0
  33. package/dist/chunk-1mm9d8p4.js +70 -0
  34. package/dist/chunk-1n3gnn2t.js +41 -0
  35. package/dist/chunk-1nqaq1rs.js +654 -0
  36. package/dist/chunk-1p2j9g3w.js +998 -0
  37. package/dist/chunk-1p7jfcee.js +533 -0
  38. package/dist/chunk-1pg8s12r.js +338 -0
  39. package/dist/chunk-1qjb22fx.js +109 -0
  40. package/dist/chunk-1yzc16qa.js +39 -0
  41. package/dist/chunk-20gm89wf.js +208 -0
  42. package/dist/chunk-238g70xa.js +36 -0
  43. package/dist/chunk-26k0324b.js +751 -0
  44. package/dist/chunk-27xc1csx.js +104 -0
  45. package/dist/chunk-2a42s11t.js +412 -0
  46. package/dist/chunk-2bhq4emw.js +10476 -0
  47. package/dist/chunk-2eykm0j0.js +20 -0
  48. package/dist/chunk-2gzv8nrw.js +205 -0
  49. package/dist/chunk-2k995y2x.js +880 -0
  50. package/dist/chunk-2kpzaa7w.js +401 -0
  51. package/dist/chunk-2nayx6q1.js +63 -0
  52. package/dist/chunk-2qhs9n36.js +151 -0
  53. package/dist/chunk-2s5f2nnw.js +603 -0
  54. package/dist/chunk-2y54j9ew.js +174394 -0
  55. package/dist/chunk-2zcaw1jd.js +2343 -0
  56. package/dist/chunk-30chpfyc.js +15275 -0
  57. package/dist/chunk-30k39xd2.js +28 -0
  58. package/dist/chunk-30rst83v.js +168 -0
  59. package/dist/chunk-36z5enc4.js +160 -0
  60. package/dist/chunk-3c25bcsw.js +17 -0
  61. package/dist/chunk-3c4qja3e.js +63 -0
  62. package/dist/chunk-3ccx8k84.js +102 -0
  63. package/dist/chunk-3envnthj.js +157 -0
  64. package/dist/chunk-3h8a89gy.js +46 -0
  65. package/dist/chunk-3kadbep2.js +6956 -0
  66. package/dist/chunk-3kd79cnk.js +15 -0
  67. package/dist/chunk-3m45xtza.js +1188 -0
  68. package/dist/chunk-3q50xe1j.js +17 -0
  69. package/dist/chunk-3w6s9m5w.js +16 -0
  70. package/dist/chunk-3x0408tc.js +42 -0
  71. package/dist/chunk-3z7ae04g.js +372 -0
  72. package/dist/chunk-40tedt0y.js +275 -0
  73. package/dist/chunk-44q8kegv.js +811 -0
  74. package/dist/chunk-47gy6qkp.js +328 -0
  75. package/dist/chunk-495d85x1.js +8066 -0
  76. package/dist/chunk-4axcksrv.js +129 -0
  77. package/dist/chunk-4e1271a8.js +106 -0
  78. package/dist/chunk-4g3v8y12.js +23 -0
  79. package/dist/chunk-4g5mrzm0.js +220 -0
  80. package/dist/chunk-4jm600zv.js +13 -0
  81. package/dist/chunk-4n989n6h.js +153 -0
  82. package/dist/chunk-4qedx22a.js +44 -0
  83. package/dist/chunk-4rze71rx.js +116 -0
  84. package/dist/chunk-4wbhvcag.js +91 -0
  85. package/dist/chunk-4zfkzkt6.js +37 -0
  86. package/dist/chunk-55wgxwa9.js +13877 -0
  87. package/dist/chunk-56ta4h0b.js +154 -0
  88. package/dist/chunk-58a0x39g.js +89 -0
  89. package/dist/chunk-5dbk24zg.js +890 -0
  90. package/dist/chunk-5gzg4q1k.js +99 -0
  91. package/dist/chunk-5k2gdxnr.js +336 -0
  92. package/dist/chunk-5kp252z6.js +202 -0
  93. package/dist/chunk-5p2ssw3d.js +825 -0
  94. package/dist/chunk-5w33j8gy.js +1580 -0
  95. package/dist/chunk-5ywjzvm8.js +61 -0
  96. package/dist/chunk-5ztxx8gd.js +80 -0
  97. package/dist/chunk-62vwr0y5.js +117 -0
  98. package/dist/chunk-6b8ksqmf.js +1153 -0
  99. package/dist/chunk-6bd8brc4.js +48 -0
  100. package/dist/chunk-6cpqmd4r.js +132 -0
  101. package/dist/chunk-6dj5t602.js +341 -0
  102. package/dist/chunk-6g62sjpf.js +328 -0
  103. package/dist/chunk-6gr3c3w9.js +378 -0
  104. package/dist/chunk-6h9n8qbr.js +1170 -0
  105. package/dist/chunk-6kpbgc5w.js +23 -0
  106. package/dist/chunk-6n2qgm9v.js +8 -0
  107. package/dist/chunk-6n6jfmce.js +2833 -0
  108. package/dist/chunk-6q2x8zeg.js +802 -0
  109. package/dist/chunk-6tnekwtp.js +849 -0
  110. package/dist/chunk-6tq2v3rk.js +186 -0
  111. package/dist/chunk-6vphqqd1.js +27 -0
  112. package/dist/chunk-6wkdqk81.js +444 -0
  113. package/dist/chunk-7226mgjt.js +195 -0
  114. package/dist/chunk-72fey14y.js +565 -0
  115. package/dist/chunk-73fgm72g.js +698 -0
  116. package/dist/chunk-73fhat5j.js +212 -0
  117. package/dist/chunk-73rpbt04.js +1947 -0
  118. package/dist/chunk-743znc5c.js +56 -0
  119. package/dist/chunk-760252na.js +101 -0
  120. package/dist/chunk-76t2h5v2.js +495 -0
  121. package/dist/chunk-7739pg2c.js +4261 -0
  122. package/dist/chunk-789khc7a.js +96 -0
  123. package/dist/chunk-78mma1s7.js +88 -0
  124. package/dist/chunk-7aw745vx.js +40175 -0
  125. package/dist/chunk-7azp8c8y.js +584 -0
  126. package/dist/chunk-7m2nd8da.js +110 -0
  127. package/dist/chunk-7pemewz2.js +726 -0
  128. package/dist/chunk-7rjyn5d3.js +125 -0
  129. package/dist/chunk-7v0wq9nk.js +93 -0
  130. package/dist/chunk-7wm5s02e.js +216 -0
  131. package/dist/chunk-83hfzbx3.js +10 -0
  132. package/dist/chunk-84k64e4a.js +1646 -0
  133. package/dist/chunk-87jfpcm7.js +438 -0
  134. package/dist/chunk-8btm871b.js +42 -0
  135. package/dist/chunk-8hbbzet5.js +34 -0
  136. package/dist/chunk-8hq5kk3y.js +44 -0
  137. package/dist/chunk-8j6vs75t.js +256 -0
  138. package/dist/chunk-8ngxagxq.js +18 -0
  139. package/dist/chunk-8nsem424.js +110 -0
  140. package/dist/chunk-8pf73pc8.js +169 -0
  141. package/dist/chunk-8tnsngw2.js +31 -0
  142. package/dist/chunk-8y12jxg8.js +10 -0
  143. package/dist/chunk-8ymf4e6z.js +48 -0
  144. package/dist/chunk-90wp6wez.js +10510 -0
  145. package/dist/chunk-95dt8mpg.js +603 -0
  146. package/dist/chunk-95rj8m4e.js +130 -0
  147. package/dist/chunk-9ebygqen.js +89 -0
  148. package/dist/chunk-9gbamk79.js +93 -0
  149. package/dist/chunk-9tkq3g56.js +642 -0
  150. package/dist/chunk-a05hje2h.js +105 -0
  151. package/dist/chunk-a2krhf3c.js +90 -0
  152. package/dist/chunk-a6q9rehn.js +182 -0
  153. package/dist/chunk-a78b3pvt.js +71 -0
  154. package/dist/chunk-a8ejc632.js +3094 -0
  155. package/dist/chunk-a9vdeb6y.js +258 -0
  156. package/dist/chunk-a9zh40sj.js +48 -0
  157. package/dist/chunk-ab59azrr.js +480 -0
  158. package/dist/chunk-accxhkm6.js +88 -0
  159. package/dist/chunk-adzd8pzb.js +1095 -0
  160. package/dist/chunk-ae76ded0.js +30 -0
  161. package/dist/chunk-aftppv3p.js +691 -0
  162. package/dist/chunk-agmw1vmf.js +725 -0
  163. package/dist/chunk-an5cb1vx.js +16 -0
  164. package/dist/chunk-b1s11z4y.js +63 -0
  165. package/dist/chunk-b2rkh01x.js +443 -0
  166. package/dist/chunk-b4w4argn.js +1551 -0
  167. package/dist/chunk-b4wg70y1.js +54 -0
  168. package/dist/chunk-b5b7h81y.js +7189 -0
  169. package/dist/chunk-b9k5cs09.js +50 -0
  170. package/dist/chunk-bapy5rc8.js +40 -0
  171. package/dist/chunk-bda3gxxz.js +246 -0
  172. package/dist/chunk-bhdt6k7w.js +15 -0
  173. package/dist/chunk-bm1qb16p.js +17 -0
  174. package/dist/chunk-bp0dnrwg.js +281 -0
  175. package/dist/chunk-bqfnp99q.js +477 -0
  176. package/dist/chunk-bs6keys0.js +158 -0
  177. package/dist/chunk-bsbmmfyt.js +17 -0
  178. package/dist/chunk-btkettbr.js +166 -0
  179. package/dist/chunk-bwgde7nf.js +37 -0
  180. package/dist/chunk-c1zc58pw.js +280 -0
  181. package/dist/chunk-c2g96ga2.js +184 -0
  182. package/dist/chunk-c3z7ptb2.js +21933 -0
  183. package/dist/chunk-c8vn3ynx.js +349 -0
  184. package/dist/chunk-cdm0k2n0.js +115 -0
  185. package/dist/chunk-cdz5yb0r.js +57 -0
  186. package/dist/chunk-cfv996bs.js +22 -0
  187. package/dist/chunk-cg788ab0.js +100 -0
  188. package/dist/chunk-cgfdkzhb.js +12 -0
  189. package/dist/chunk-cp76dsdp.js +386 -0
  190. package/dist/chunk-cr6t6rth.js +306 -0
  191. package/dist/chunk-cvp5vayb.js +31 -0
  192. package/dist/chunk-cwehsmj5.js +114 -0
  193. package/dist/chunk-cy2hswr1.js +15 -0
  194. package/dist/chunk-d2rzy2p0.js +42 -0
  195. package/dist/chunk-d3v2fbay.js +106 -0
  196. package/dist/chunk-dc4eha8a.js +243 -0
  197. package/dist/chunk-dcz167d6.js +73 -0
  198. package/dist/chunk-de55jjre.js +106 -0
  199. package/dist/chunk-dfx733j3.js +650 -0
  200. package/dist/chunk-dgqrcy74.js +48 -0
  201. package/dist/chunk-dj6dk19k.js +55 -0
  202. package/dist/chunk-dn2xcmc4.js +173 -0
  203. package/dist/chunk-dndehvfr.js +57 -0
  204. package/dist/chunk-dnh7jtpb.js +37 -0
  205. package/dist/chunk-dnwzz9f7.js +88 -0
  206. package/dist/chunk-dv1wfr85.js +6373 -0
  207. package/dist/chunk-dwq5rs3q.js +62 -0
  208. package/dist/chunk-dz8exe78.js +91 -0
  209. package/dist/chunk-e4rzw1sd.js +606 -0
  210. package/dist/chunk-e6rrwzv0.js +463 -0
  211. package/dist/chunk-e6t9kpzq.js +145 -0
  212. package/dist/chunk-e7c8ypwc.js +287 -0
  213. package/dist/chunk-e9nkfs4e.js +738 -0
  214. package/dist/chunk-eaf7c8ck.js +537 -0
  215. package/dist/chunk-ebyr6p77.js +115 -0
  216. package/dist/chunk-edfv7pme.js +104 -0
  217. package/dist/chunk-eh474zhj.js +59 -0
  218. package/dist/chunk-er8ckwzt.js +140 -0
  219. package/dist/chunk-ev5p07yh.js +144 -0
  220. package/dist/chunk-ewadzrm8.js +103 -0
  221. package/dist/chunk-f2mhrmww.js +62 -0
  222. package/dist/chunk-f2zhqnb6.js +69 -0
  223. package/dist/chunk-f5ma3nh5.js +3436 -0
  224. package/dist/chunk-f63q7vx7.js +756 -0
  225. package/dist/chunk-fbv4apne.js +51 -0
  226. package/dist/chunk-fcna95wg.js +113 -0
  227. package/dist/chunk-fdvcpaz3.js +163 -0
  228. package/dist/chunk-fgc0q2b2.js +3354 -0
  229. package/dist/chunk-fm2jvsk7.js +87 -0
  230. package/dist/chunk-ft7fs35e.js +282 -0
  231. package/dist/chunk-fyc5fepv.js +10 -0
  232. package/dist/chunk-g0j0t6qk.js +26 -0
  233. package/dist/chunk-g0nbec9m.js +32 -0
  234. package/dist/chunk-g1fdv1kb.js +86 -0
  235. package/dist/chunk-g338npwr.js +1061 -0
  236. package/dist/chunk-g3t0act8.js +8 -0
  237. package/dist/chunk-g6qddbvf.js +1391 -0
  238. package/dist/chunk-ga5faygf.js +61 -0
  239. package/dist/chunk-gac6nzhc.js +90 -0
  240. package/dist/chunk-gck2cswd.js +862 -0
  241. package/dist/chunk-gntr3b25.js +40683 -0
  242. package/dist/chunk-gq5bbtme.js +456 -0
  243. package/dist/chunk-gyj242zr.js +20 -0
  244. package/dist/chunk-h0qngp9w.js +157 -0
  245. package/dist/chunk-h1xnvnye.js +524 -0
  246. package/dist/chunk-h3mhfamg.js +60 -0
  247. package/dist/chunk-h6s1tx0e.js +250 -0
  248. package/dist/chunk-h7qb4hyj.js +70 -0
  249. package/dist/chunk-h8qd1gw2.js +106 -0
  250. package/dist/chunk-hakdhagh.js +16606 -0
  251. package/dist/chunk-hcdt34n4.js +143 -0
  252. package/dist/chunk-hh7cmy4k.js +20 -0
  253. package/dist/chunk-hk9xz7gk.js +118 -0
  254. package/dist/chunk-hqmz36b3.js +552 -0
  255. package/dist/chunk-hs8ph4p8.js +8 -0
  256. package/dist/chunk-hsq4vtjy.js +92 -0
  257. package/dist/chunk-hzhd0p1y.js +104 -0
  258. package/dist/chunk-hzhe8ygc.js +547 -0
  259. package/dist/chunk-j0tqbsh7.js +176 -0
  260. package/dist/chunk-j1s1jvad.js +346 -0
  261. package/dist/chunk-j2k4p94p.js +55 -0
  262. package/dist/chunk-j3a4p81y.js +184 -0
  263. package/dist/chunk-j595yd4h.js +439 -0
  264. package/dist/chunk-j64ga6ta.js +8035 -0
  265. package/dist/chunk-j7qwxra8.js +2335 -0
  266. package/dist/chunk-j98f65zv.js +789 -0
  267. package/dist/chunk-jd32zbps.js +15 -0
  268. package/dist/chunk-jdgeec04.js +4249 -0
  269. package/dist/chunk-jdt5s5k7.js +62 -0
  270. package/dist/chunk-jeaek018.js +97 -0
  271. package/dist/chunk-jkhvm8yk.js +104 -0
  272. package/dist/chunk-jmxaze30.js +780 -0
  273. package/dist/chunk-jne71s1f.js +104 -0
  274. package/dist/chunk-jnhkref0.js +30 -0
  275. package/dist/chunk-jpgr7zfs.js +95 -0
  276. package/dist/chunk-jqp0q5nk.js +339 -0
  277. package/dist/chunk-jtqgnyaq.js +1317 -0
  278. package/dist/chunk-jx817w05.js +11 -0
  279. package/dist/chunk-jynzr5w9.js +71 -0
  280. package/dist/chunk-jzmz18nn.js +65 -0
  281. package/dist/chunk-k0p9w03v.js +4957 -0
  282. package/dist/chunk-k1jnpyj9.js +155 -0
  283. package/dist/chunk-k445en8h.js +102 -0
  284. package/dist/chunk-k62k13ya.js +81 -0
  285. package/dist/chunk-kf8kjmfv.js +821 -0
  286. package/dist/chunk-kgn1nfg9.js +468 -0
  287. package/dist/chunk-khmz14d4.js +38 -0
  288. package/dist/chunk-kjhmt6ba.js +100 -0
  289. package/dist/chunk-kkrz2zw2.js +122 -0
  290. package/dist/chunk-kv1ryvtm.js +176 -0
  291. package/dist/chunk-kwekc97v.js +18 -0
  292. package/dist/chunk-kyvwf342.js +65 -0
  293. package/dist/chunk-m0g3xv72.js +266 -0
  294. package/dist/chunk-m26twd8m.js +277 -0
  295. package/dist/chunk-m4bc15mz.js +229 -0
  296. package/dist/chunk-m9t8j37k.js +253 -0
  297. package/dist/chunk-mb2gpwwf.js +432 -0
  298. package/dist/chunk-mezwt1bt.js +306 -0
  299. package/dist/chunk-mfm83xn5.js +84 -0
  300. package/dist/chunk-mn7870fh.js +4389 -0
  301. package/dist/chunk-mr9df5v8.js +722 -0
  302. package/dist/chunk-mt25echc.js +6157 -0
  303. package/dist/chunk-mwrr6zbb.js +55 -0
  304. package/dist/chunk-mywpbwad.js +198 -0
  305. package/dist/chunk-mzdtkccs.js +125 -0
  306. package/dist/chunk-mzn0z9d3.js +691 -0
  307. package/dist/chunk-n0qaeaa5.js +256 -0
  308. package/dist/chunk-n128bzxs.js +2739 -0
  309. package/dist/chunk-n1erf6kh.js +22820 -0
  310. package/dist/chunk-n4nbgkvd.js +520 -0
  311. package/dist/chunk-n5gkdn9v.js +120 -0
  312. package/dist/chunk-n7ttdtk0.js +641 -0
  313. package/dist/chunk-n8b1njwb.js +208 -0
  314. package/dist/chunk-nek12gtk.js +94 -0
  315. package/dist/chunk-nerv0jvx.js +74 -0
  316. package/dist/chunk-nka1g8f4.js +773 -0
  317. package/dist/chunk-nm2cncrq.js +336 -0
  318. package/dist/chunk-nq0fxyxh.js +752 -0
  319. package/dist/chunk-nrnkshv2.js +192 -0
  320. package/dist/chunk-nsqma629.js +128 -0
  321. package/dist/chunk-nt837qt9.js +21 -0
  322. package/dist/chunk-nttf3k0r.js +2643 -0
  323. package/dist/chunk-nx638j6h.js +268 -0
  324. package/dist/chunk-nx7s0zn5.js +375 -0
  325. package/dist/chunk-p0hff8zy.js +8871 -0
  326. package/dist/chunk-p2816w9z.js +1486 -0
  327. package/dist/chunk-p2d5nh3g.js +342 -0
  328. package/dist/chunk-p57bz7nv.js +55 -0
  329. package/dist/chunk-p5z8t6r3.js +130 -0
  330. package/dist/chunk-pd6653na.js +5394 -0
  331. package/dist/chunk-pjnzf3cg.js +61 -0
  332. package/dist/chunk-ps49ymvj.js +43 -0
  333. package/dist/chunk-pthzapbx.js +348 -0
  334. package/dist/chunk-pwwa7s62.js +11 -0
  335. package/dist/chunk-pyx135a5.js +20 -0
  336. package/dist/chunk-q132dkwr.js +195 -0
  337. package/dist/chunk-q16y18s1.js +120 -0
  338. package/dist/chunk-q25bjaev.js +15 -0
  339. package/dist/chunk-q3jxs36m.js +716 -0
  340. package/dist/chunk-q5by3da6.js +8 -0
  341. package/dist/chunk-q663msp4.js +908 -0
  342. package/dist/chunk-qezgfppb.js +4521 -0
  343. package/dist/chunk-qgjgqmy5.js +5796 -0
  344. package/dist/chunk-qj7h3xc3.js +40 -0
  345. package/dist/chunk-qjcxkbv6.js +644 -0
  346. package/dist/chunk-qnfx3qtx.js +617 -0
  347. package/dist/chunk-qnmyzsam.js +84 -0
  348. package/dist/chunk-qp2qdcda.js +100 -0
  349. package/dist/chunk-qvrq1sby.js +6107 -0
  350. package/dist/chunk-qz2x630m.js +49145 -0
  351. package/dist/chunk-qz3fe4fj.js +469 -0
  352. package/dist/chunk-r0af6bw0.js +173 -0
  353. package/dist/chunk-r1v8d6da.js +1299 -0
  354. package/dist/chunk-r6b58y3x.js +17 -0
  355. package/dist/chunk-r6e45bzh.js +118 -0
  356. package/dist/chunk-r843jezp.js +28 -0
  357. package/dist/chunk-rbgjkg3v.js +90 -0
  358. package/dist/chunk-rc5bbzx4.js +655 -0
  359. package/dist/chunk-rca5xtnd.js +267 -0
  360. package/dist/chunk-rfdbzyjh.js +1865 -0
  361. package/dist/chunk-rh7q28df.js +93 -0
  362. package/dist/chunk-rn0v1hk8.js +34 -0
  363. package/dist/chunk-rvxs7x7j.js +542 -0
  364. package/dist/chunk-rw6fwk2s.js +98 -0
  365. package/dist/chunk-rwagvxh5.js +1711 -0
  366. package/dist/chunk-s10vyjz4.js +224 -0
  367. package/dist/chunk-s274nv8k.js +8 -0
  368. package/dist/chunk-s3pzvdss.js +50 -0
  369. package/dist/chunk-s4w01jsb.js +969 -0
  370. package/dist/chunk-s56j2d6g.js +500 -0
  371. package/dist/chunk-sbs1r0h4.js +317 -0
  372. package/dist/chunk-sd36yzx8.js +954 -0
  373. package/dist/chunk-sd6env07.js +19 -0
  374. package/dist/chunk-sdj9b9wh.js +782 -0
  375. package/dist/chunk-sfht9xvd.js +24 -0
  376. package/dist/chunk-sk3gpkdt.js +89 -0
  377. package/dist/chunk-sp5cjcjh.js +526 -0
  378. package/dist/chunk-sq847dr5.js +1528 -0
  379. package/dist/chunk-sskngwam.js +89 -0
  380. package/dist/chunk-svar8pp2.js +276 -0
  381. package/dist/chunk-szj5wvdy.js +28 -0
  382. package/dist/chunk-t175chdd.js +714 -0
  383. package/dist/chunk-t4k75hqs.js +4987 -0
  384. package/dist/chunk-t7z7vg91.js +225 -0
  385. package/dist/chunk-tanfpxm1.js +419 -0
  386. package/dist/chunk-tf9h0cyj.js +3037 -0
  387. package/dist/chunk-tm1wwvm1.js +99 -0
  388. package/dist/chunk-trtgjd28.js +9300 -0
  389. package/dist/chunk-ts2p6bv1.js +224 -0
  390. package/dist/chunk-ttk5dzz8.js +25 -0
  391. package/dist/chunk-tvg352rv.js +391 -0
  392. package/dist/chunk-tww14j0s.js +86 -0
  393. package/dist/chunk-tz03j2da.js +66 -0
  394. package/dist/chunk-v1kzp02e.js +785 -0
  395. package/dist/chunk-v2sm9w6h.js +220 -0
  396. package/dist/chunk-v3gm2day.js +8 -0
  397. package/dist/chunk-v4qn3g0d.js +286 -0
  398. package/dist/chunk-v66tbnn6.js +476 -0
  399. package/dist/chunk-v78fj8by.js +145 -0
  400. package/dist/chunk-v9smspw2.js +4301 -0
  401. package/dist/chunk-v9ybze94.js +713 -0
  402. package/dist/chunk-vest0y6x.js +3830 -0
  403. package/dist/chunk-vf5sd1nq.js +12 -0
  404. package/dist/chunk-vht4mzgb.js +298 -0
  405. package/dist/chunk-vjwgf4qh.js +41 -0
  406. package/dist/chunk-vkrhafhf.js +248 -0
  407. package/dist/chunk-vn56q87z.js +2058 -0
  408. package/dist/chunk-vscz82fv.js +27 -0
  409. package/dist/chunk-vvn4gkak.js +642 -0
  410. package/dist/chunk-vxj5rbg5.js +84 -0
  411. package/dist/chunk-vyjeh50y.js +2149 -0
  412. package/dist/chunk-w44nvpvt.js +22 -0
  413. package/dist/chunk-waambva2.js +2430 -0
  414. package/dist/chunk-wbhsqc2a.js +275 -0
  415. package/dist/chunk-wbsnpxzh.js +471 -0
  416. package/dist/chunk-wfz0qffj.js +3939 -0
  417. package/dist/chunk-wpqbrv0f.js +83 -0
  418. package/dist/chunk-wzpdet3m.js +843 -0
  419. package/dist/chunk-x6tb96y2.js +264 -0
  420. package/dist/chunk-x8b7vft8.js +132 -0
  421. package/dist/chunk-x8eg216f.js +99 -0
  422. package/dist/chunk-xc9khn0r.js +490 -0
  423. package/dist/chunk-xch406a3.js +673 -0
  424. package/dist/chunk-xdw5dv00.js +8 -0
  425. package/dist/chunk-xe0bpcbr.js +3444 -0
  426. package/dist/chunk-xm3ed3zn.js +300 -0
  427. package/dist/chunk-xpm4ebhz.js +87 -0
  428. package/dist/chunk-xr6yfttj.js +43 -0
  429. package/dist/chunk-xsq9ae7x.js +90 -0
  430. package/dist/chunk-xszk7n10.js +14358 -0
  431. package/dist/chunk-xzmkekfb.js +259 -0
  432. package/dist/chunk-y1784krc.js +19 -0
  433. package/dist/chunk-y3py9g5d.js +213 -0
  434. package/dist/chunk-y9nnmev5.js +687 -0
  435. package/dist/chunk-ya6jq0hf.js +29 -0
  436. package/dist/chunk-ycc3xnx0.js +374 -0
  437. package/dist/chunk-yfa54ssn.js +87 -0
  438. package/dist/chunk-ymy4xrr8.js +101 -0
  439. package/dist/chunk-yqfz2k9z.js +48 -0
  440. package/dist/chunk-ywxd4qw4.js +22 -0
  441. package/dist/chunk-yxmz5k16.js +122 -0
  442. package/dist/chunk-yxvy4jt4.js +1014 -0
  443. package/dist/chunk-z2dp53wn.js +17 -0
  444. package/dist/chunk-z2xxx2sz.js +294 -0
  445. package/dist/chunk-z31an09g.js +67 -0
  446. package/dist/chunk-z95xqvr0.js +75 -0
  447. package/dist/chunk-zbmxxxz8.js +161 -0
  448. package/dist/chunk-zk2wsm7d.js +15 -0
  449. package/dist/chunk-zmg1pcp3.js +71 -0
  450. package/dist/chunk-znrwmznk.js +272 -0
  451. package/dist/chunk-zq9r43cb.js +26 -0
  452. package/dist/chunk-zsfxha74.js +17655 -0
  453. package/dist/chunk-ztpr96av.js +229 -0
  454. package/dist/chunk-zv7qrz04.js +58 -0
  455. package/dist/chunk-zxa7st21.js +32 -0
  456. package/dist/chunk-zxhezavg.js +216 -0
  457. package/dist/chunk-zz0qcq2n.js +434 -0
  458. package/dist/cli.js +194 -0
  459. package/package.json +164 -0
package/LICENSE ADDED
@@ -0,0 +1,8 @@
1
+ PROPRIETARY LICENSE
2
+
3
+ Copyright (c) 2025 JayJiangCT. All rights reserved.
4
+
5
+ This software is proprietary and confidential. Unauthorized copying, distribution,
6
+ modification, or use of this software, in whole or in part, is strictly prohibited.
7
+
8
+ This software is for private use only. No redistribution is permitted.
package/README.md ADDED
@@ -0,0 +1,107 @@
1
+ # Open CC
2
+
3
+ An AI coding assistant CLI tool for the terminal, powered by multi-vendor LLM routing (Anthropic, AWS Bedrock, Google Vertex, Azure Foundry).
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install -g open-cc
9
+ ```
10
+
11
+ Or with Bun:
12
+
13
+ ```bash
14
+ bun install -g open-cc
15
+ ```
16
+
17
+ ## Setup
18
+
19
+ Set your API key for at least one provider:
20
+
21
+ ```bash
22
+ # Anthropic (default)
23
+ export ANTHROPIC_API_KEY="sk-ant-..."
24
+
25
+ # AWS Bedrock
26
+ export AWS_ACCESS_KEY_ID="..."
27
+ export AWS_SECRET_ACCESS_KEY="..."
28
+ export AWS_REGION="us-east-1"
29
+
30
+ # Google Vertex
31
+ export GOOGLE_APPLICATION_CREDENTIALS="/path/to/credentials.json"
32
+ export CLOUD_ML_REGION="us-central1"
33
+
34
+ # Azure Foundry
35
+ export AZURE_API_KEY="..."
36
+ export AZURE_RESOURCE_NAME="..."
37
+ ```
38
+
39
+ ## Usage
40
+
41
+ ```bash
42
+ # Interactive REPL
43
+ opencc
44
+
45
+ # Pipe mode (non-interactive)
46
+ echo "explain this error" | opencc -p
47
+
48
+ # Resume last session
49
+ opencc --resume
50
+ ```
51
+
52
+ ## Features
53
+
54
+ - Interactive REPL terminal UI (React + Ink)
55
+ - Multi-vendor LLM routing (Anthropic, Bedrock, Vertex, Azure)
56
+ - Streaming conversations with tool calls
57
+ - File read, write, edit, and search tools
58
+ - Shell command execution with sandbox support
59
+ - Sub-agent dispatching
60
+ - MCP Server integration
61
+ - Session resume and compaction
62
+ - Permission management system
63
+ - Hook system for automation
64
+ - Skills / slash commands
65
+
66
+ ## Configuration
67
+
68
+ Global config lives at `~/.open-cc/`:
69
+
70
+ | Path | Purpose |
71
+ |------|---------|
72
+ | `settings.json` | Global settings (provider, model, theme, etc.) |
73
+ | `sessions/` | Session history |
74
+ | `memory/` | Persistent memory files |
75
+
76
+ Project-level config: place a `CLAUDE.md` in your project root.
77
+
78
+ ## Development
79
+
80
+ ### Prerequisites
81
+
82
+ - [Bun](https://bun.sh/) >= 1.2.0
83
+
84
+ ### Commands
85
+
86
+ ```bash
87
+ bun install # Install dependencies
88
+ bun run dev # Dev mode (direct execution)
89
+ bun run build # Build to dist/
90
+ bun run lint # Lint (Biome)
91
+ bun run lint:fix # Auto-fix lint issues
92
+ bun run format # Format source
93
+ bun test # Run tests
94
+ bun run health # Health check (lint + tests + build)
95
+ ```
96
+
97
+ ## Tech Stack
98
+
99
+ - **Runtime**: Bun
100
+ - **UI**: React + Ink (terminal rendering)
101
+ - **CLI**: Commander.js
102
+ - **API**: Anthropic SDK (multi-provider)
103
+ - **Build**: Bun.build() with code splitting
104
+
105
+ ## License
106
+
107
+ Proprietary - See [LICENSE](./LICENSE)
@@ -0,0 +1,227 @@
1
+ // @bun
2
+ import {
3
+ SAFE_ENV_VARS,
4
+ isProviderManagedEnvVar
5
+ } from "./chunk-x8b7vft8.js";
6
+ import {
7
+ notifyPermissionModeChanged,
8
+ notifySessionMetadataChanged
9
+ } from "./chunk-5ywjzvm8.js";
10
+ import {
11
+ init_syncCache,
12
+ isRemoteManagedSettingsEligible
13
+ } from "./chunk-2y54j9ew.js";
14
+ import {
15
+ clearApiKeyHelperCache,
16
+ clearAwsCredentialsCache,
17
+ clearGcpCredentialsCache,
18
+ getGlobalConfig,
19
+ getSettingsForSource,
20
+ getSettings_DEPRECATED,
21
+ init_PermissionMode,
22
+ init_auth,
23
+ init_config1 as init_config,
24
+ init_constants,
25
+ init_settings1 as init_settings,
26
+ isSettingSourceEnabled,
27
+ permissionModeFromString,
28
+ saveGlobalConfig,
29
+ toExternalPermissionMode,
30
+ updateSettingsForSource
31
+ } from "./chunk-30chpfyc.js";
32
+ import {
33
+ clearCACertsCache,
34
+ clearMTLSCache,
35
+ clearProxyCache,
36
+ configureGlobalAgents,
37
+ init_caCerts,
38
+ init_mtls,
39
+ init_proxy
40
+ } from "./chunk-7pemewz2.js";
41
+ import {
42
+ init_log,
43
+ logError
44
+ } from "./chunk-nm2cncrq.js";
45
+ import {
46
+ init_errors,
47
+ toError
48
+ } from "./chunk-rwagvxh5.js";
49
+ import {
50
+ init_envUtils,
51
+ isEnvTruthy
52
+ } from "./chunk-0fkqze0v.js";
53
+ import {
54
+ init_state,
55
+ setMainLoopModelOverride
56
+ } from "./chunk-2zcaw1jd.js";
57
+
58
+ // src/utils/managedEnv.ts
59
+ init_syncCache();
60
+ init_caCerts();
61
+ init_config();
62
+ init_envUtils();
63
+ init_mtls();
64
+ init_proxy();
65
+ init_constants();
66
+ init_settings();
67
+ function withoutSSHTunnelVars(env) {
68
+ if (!env || !process.env.ANTHROPIC_UNIX_SOCKET)
69
+ return env || {};
70
+ const {
71
+ ANTHROPIC_UNIX_SOCKET: _1,
72
+ ANTHROPIC_BASE_URL: _2,
73
+ ANTHROPIC_API_KEY: _3,
74
+ ANTHROPIC_AUTH_TOKEN: _4,
75
+ CLAUDE_CODE_OAUTH_TOKEN: _5,
76
+ ...rest
77
+ } = env;
78
+ return rest;
79
+ }
80
+ function withoutHostManagedProviderVars(env) {
81
+ if (!env)
82
+ return {};
83
+ if (!isEnvTruthy(process.env.CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST)) {
84
+ return env;
85
+ }
86
+ const out = {};
87
+ for (const [key, value] of Object.entries(env)) {
88
+ if (!isProviderManagedEnvVar(key)) {
89
+ out[key] = value;
90
+ }
91
+ }
92
+ return out;
93
+ }
94
+ var ccdSpawnEnvKeys;
95
+ function withoutCcdSpawnEnvKeys(env) {
96
+ if (!env || !ccdSpawnEnvKeys)
97
+ return env || {};
98
+ const out = {};
99
+ for (const [key, value] of Object.entries(env)) {
100
+ if (!ccdSpawnEnvKeys.has(key))
101
+ out[key] = value;
102
+ }
103
+ return out;
104
+ }
105
+ function filterSettingsEnv(env) {
106
+ return withoutCcdSpawnEnvKeys(withoutHostManagedProviderVars(withoutSSHTunnelVars(env)));
107
+ }
108
+ var TRUSTED_SETTING_SOURCES = [
109
+ "userSettings",
110
+ "flagSettings",
111
+ "policySettings"
112
+ ];
113
+ function applySafeConfigEnvironmentVariables() {
114
+ if (ccdSpawnEnvKeys === undefined) {
115
+ ccdSpawnEnvKeys = process.env.CLAUDE_CODE_ENTRYPOINT === "claude-desktop" ? new Set(Object.keys(process.env)) : null;
116
+ }
117
+ Object.assign(process.env, filterSettingsEnv(getGlobalConfig().env));
118
+ for (const source of TRUSTED_SETTING_SOURCES) {
119
+ if (source === "policySettings")
120
+ continue;
121
+ if (!isSettingSourceEnabled(source))
122
+ continue;
123
+ Object.assign(process.env, filterSettingsEnv(getSettingsForSource(source)?.env));
124
+ }
125
+ isRemoteManagedSettingsEligible();
126
+ Object.assign(process.env, filterSettingsEnv(getSettingsForSource("policySettings")?.env));
127
+ const settingsEnv = filterSettingsEnv(getSettings_DEPRECATED()?.env);
128
+ for (const [key, value] of Object.entries(settingsEnv)) {
129
+ if (SAFE_ENV_VARS.has(key.toUpperCase())) {
130
+ process.env[key] = value;
131
+ }
132
+ }
133
+ }
134
+ function applyConfigEnvironmentVariables() {
135
+ Object.assign(process.env, filterSettingsEnv(getGlobalConfig().env));
136
+ Object.assign(process.env, filterSettingsEnv(getSettings_DEPRECATED()?.env));
137
+ clearCACertsCache();
138
+ clearMTLSCache();
139
+ clearProxyCache();
140
+ configureGlobalAgents();
141
+ }
142
+
143
+ // src/state/onChangeAppState.ts
144
+ init_state();
145
+ init_auth();
146
+ init_config();
147
+ init_errors();
148
+ init_log();
149
+ init_PermissionMode();
150
+ init_settings();
151
+ function externalMetadataToAppState(metadata) {
152
+ return (prev) => ({
153
+ ...prev,
154
+ ...typeof metadata.permission_mode === "string" ? {
155
+ toolPermissionContext: {
156
+ ...prev.toolPermissionContext,
157
+ mode: permissionModeFromString(metadata.permission_mode)
158
+ }
159
+ } : {},
160
+ ...typeof metadata.is_ultraplan_mode === "boolean" ? { isUltraplanMode: metadata.is_ultraplan_mode } : {}
161
+ });
162
+ }
163
+ function onChangeAppState({
164
+ newState,
165
+ oldState
166
+ }) {
167
+ const prevMode = oldState.toolPermissionContext.mode;
168
+ const newMode = newState.toolPermissionContext.mode;
169
+ if (prevMode !== newMode) {
170
+ const prevExternal = toExternalPermissionMode(prevMode);
171
+ const newExternal = toExternalPermissionMode(newMode);
172
+ if (prevExternal !== newExternal) {
173
+ const isUltraplan = newExternal === "plan" && newState.isUltraplanMode && !oldState.isUltraplanMode ? true : null;
174
+ notifySessionMetadataChanged({
175
+ permission_mode: newExternal,
176
+ is_ultraplan_mode: isUltraplan
177
+ });
178
+ }
179
+ notifyPermissionModeChanged(newMode);
180
+ }
181
+ if (newState.mainLoopModel !== oldState.mainLoopModel && newState.mainLoopModel === null) {
182
+ updateSettingsForSource("userSettings", { model: undefined });
183
+ setMainLoopModelOverride(null);
184
+ }
185
+ if (newState.mainLoopModel !== oldState.mainLoopModel && newState.mainLoopModel !== null) {
186
+ updateSettingsForSource("userSettings", { model: newState.mainLoopModel });
187
+ setMainLoopModelOverride(newState.mainLoopModel);
188
+ }
189
+ if (newState.expandedView !== oldState.expandedView) {
190
+ const showExpandedTodos = newState.expandedView === "tasks";
191
+ const showSpinnerTree = newState.expandedView === "teammates";
192
+ if (getGlobalConfig().showExpandedTodos !== showExpandedTodos || getGlobalConfig().showSpinnerTree !== showSpinnerTree) {
193
+ saveGlobalConfig((current) => ({
194
+ ...current,
195
+ showExpandedTodos,
196
+ showSpinnerTree
197
+ }));
198
+ }
199
+ }
200
+ if (newState.verbose !== oldState.verbose && getGlobalConfig().verbose !== newState.verbose) {
201
+ const verbose = newState.verbose;
202
+ saveGlobalConfig((current) => ({
203
+ ...current,
204
+ verbose
205
+ }));
206
+ }
207
+ if (process.env.USER_TYPE === "ant") {
208
+ if (newState.tungstenPanelVisible !== oldState.tungstenPanelVisible && newState.tungstenPanelVisible !== undefined && getGlobalConfig().tungstenPanelVisible !== newState.tungstenPanelVisible) {
209
+ const tungstenPanelVisible = newState.tungstenPanelVisible;
210
+ saveGlobalConfig((current) => ({ ...current, tungstenPanelVisible }));
211
+ }
212
+ }
213
+ if (newState.settings !== oldState.settings) {
214
+ try {
215
+ clearApiKeyHelperCache();
216
+ clearAwsCredentialsCache();
217
+ clearGcpCredentialsCache();
218
+ if (newState.settings.env !== oldState.settings.env) {
219
+ applyConfigEnvironmentVariables();
220
+ }
221
+ } catch (error) {
222
+ logError(toError(error));
223
+ }
224
+ }
225
+ }
226
+
227
+ export { applySafeConfigEnvironmentVariables, applyConfigEnvironmentVariables, externalMetadataToAppState, onChangeAppState };
@@ -0,0 +1,154 @@
1
+ // @bun
2
+ import {
3
+ AGENT_COLORS,
4
+ getTranscriptPath,
5
+ init_agentColorManager,
6
+ init_sessionStorage,
7
+ saveAgentColor
8
+ } from "./chunk-2y54j9ew.js";
9
+ import"./chunk-1yzc16qa.js";
10
+ import"./chunk-s10vyjz4.js";
11
+ import"./chunk-1k4j1xcf.js";
12
+ import"./chunk-3c4qja3e.js";
13
+ import"./chunk-rc5bbzx4.js";
14
+ import"./chunk-e6rrwzv0.js";
15
+ import"./chunk-2gzv8nrw.js";
16
+ import"./chunk-743znc5c.js";
17
+ import"./chunk-5p2ssw3d.js";
18
+ import"./chunk-cgfdkzhb.js";
19
+ import"./chunk-bhdt6k7w.js";
20
+ import"./chunk-6wkdqk81.js";
21
+ import"./chunk-5dbk24zg.js";
22
+ import"./chunk-bda3gxxz.js";
23
+ import"./chunk-zxhezavg.js";
24
+ import"./chunk-x8eg216f.js";
25
+ import"./chunk-9gbamk79.js";
26
+ import"./chunk-t175chdd.js";
27
+ import"./chunk-7rjyn5d3.js";
28
+ import"./chunk-6q2x8zeg.js";
29
+ import"./chunk-0yb4dz9c.js";
30
+ import"./chunk-7m2nd8da.js";
31
+ import"./chunk-ps49ymvj.js";
32
+ import"./chunk-g338npwr.js";
33
+ import"./chunk-zk2wsm7d.js";
34
+ import"./chunk-eh474zhj.js";
35
+ import"./chunk-ga5faygf.js";
36
+ import"./chunk-e7c8ypwc.js";
37
+ import"./chunk-g6qddbvf.js";
38
+ import"./chunk-b1s11z4y.js";
39
+ import"./chunk-4jm600zv.js";
40
+ import"./chunk-yxmz5k16.js";
41
+ import"./chunk-v9smspw2.js";
42
+ import"./chunk-qz2x630m.js";
43
+ import"./chunk-30chpfyc.js";
44
+ import"./chunk-84k64e4a.js";
45
+ import"./chunk-y3py9g5d.js";
46
+ import"./chunk-7pemewz2.js";
47
+ import {
48
+ init_teammate,
49
+ isTeammate
50
+ } from "./chunk-s4w01jsb.js";
51
+ import"./chunk-c8vn3ynx.js";
52
+ import"./chunk-g0j0t6qk.js";
53
+ import"./chunk-6kpbgc5w.js";
54
+ import"./chunk-3c25bcsw.js";
55
+ import"./chunk-mzdtkccs.js";
56
+ import"./chunk-55wgxwa9.js";
57
+ import"./chunk-5k2gdxnr.js";
58
+ import"./chunk-2qhs9n36.js";
59
+ import"./chunk-f5ma3nh5.js";
60
+ import"./chunk-v1kzp02e.js";
61
+ import"./chunk-p2816w9z.js";
62
+ import"./chunk-0vkfrmqm.js";
63
+ import"./chunk-0xjaqda8.js";
64
+ import"./chunk-mr9df5v8.js";
65
+ import"./chunk-cdz5yb0r.js";
66
+ import"./chunk-f2mhrmww.js";
67
+ import"./chunk-10fdxge0.js";
68
+ import"./chunk-r1v8d6da.js";
69
+ import"./chunk-d3v2fbay.js";
70
+ import"./chunk-qnfx3qtx.js";
71
+ import"./chunk-f2zhqnb6.js";
72
+ import"./chunk-cvp5vayb.js";
73
+ import"./chunk-b5b7h81y.js";
74
+ import"./chunk-nm2cncrq.js";
75
+ import"./chunk-8tnsngw2.js";
76
+ import"./chunk-0rkbrabt.js";
77
+ import"./chunk-7wm5s02e.js";
78
+ import"./chunk-rwagvxh5.js";
79
+ import"./chunk-fbv4apne.js";
80
+ import"./chunk-0fkqze0v.js";
81
+ import {
82
+ getSessionId,
83
+ init_state
84
+ } from "./chunk-2zcaw1jd.js";
85
+ import"./chunk-hqmz36b3.js";
86
+ import"./chunk-4g3v8y12.js";
87
+ import"./chunk-7739pg2c.js";
88
+ import"./chunk-xszk7n10.js";
89
+ import"./chunk-sdj9b9wh.js";
90
+ import {
91
+ __esm
92
+ } from "./chunk-qp2qdcda.js";
93
+
94
+ // src/commands/color/color.ts
95
+ async function call(onDone, context, args) {
96
+ if (isTeammate()) {
97
+ onDone("Cannot set color: This session is a swarm teammate. Teammate colors are assigned by the team leader.", { display: "system" });
98
+ return null;
99
+ }
100
+ if (!args || args.trim() === "") {
101
+ const colorList = AGENT_COLORS.join(", ");
102
+ onDone(`Please provide a color. Available colors: ${colorList}, default`, {
103
+ display: "system"
104
+ });
105
+ return null;
106
+ }
107
+ const colorArg = args.trim().toLowerCase();
108
+ if (RESET_ALIASES.includes(colorArg)) {
109
+ const sessionId2 = getSessionId();
110
+ const fullPath2 = getTranscriptPath();
111
+ await saveAgentColor(sessionId2, "default", fullPath2);
112
+ context.setAppState((prev) => ({
113
+ ...prev,
114
+ standaloneAgentContext: {
115
+ ...prev.standaloneAgentContext,
116
+ name: prev.standaloneAgentContext?.name ?? "",
117
+ color: undefined
118
+ }
119
+ }));
120
+ onDone("Session color reset to default", { display: "system" });
121
+ return null;
122
+ }
123
+ if (!AGENT_COLORS.includes(colorArg)) {
124
+ const colorList = AGENT_COLORS.join(", ");
125
+ onDone(`Invalid color "${colorArg}". Available colors: ${colorList}, default`, { display: "system" });
126
+ return null;
127
+ }
128
+ const sessionId = getSessionId();
129
+ const fullPath = getTranscriptPath();
130
+ await saveAgentColor(sessionId, colorArg, fullPath);
131
+ context.setAppState((prev) => ({
132
+ ...prev,
133
+ standaloneAgentContext: {
134
+ ...prev.standaloneAgentContext,
135
+ name: prev.standaloneAgentContext?.name ?? "",
136
+ color: colorArg
137
+ }
138
+ }));
139
+ onDone(`Session color set to: ${colorArg}`, { display: "system" });
140
+ return null;
141
+ }
142
+ var RESET_ALIASES;
143
+ var init_color = __esm(() => {
144
+ init_state();
145
+ init_agentColorManager();
146
+ init_sessionStorage();
147
+ init_teammate();
148
+ RESET_ALIASES = ["default", "reset", "none", "gray", "grey"];
149
+ });
150
+ init_color();
151
+
152
+ export {
153
+ call
154
+ };
@@ -0,0 +1,152 @@
1
+ // @bun
2
+ import {
3
+ init_analytics,
4
+ logEvent
5
+ } from "./chunk-f2mhrmww.js";
6
+ import {
7
+ init_diagLogs,
8
+ logForDiagnosticsNoPII
9
+ } from "./chunk-r1v8d6da.js";
10
+ import {
11
+ errorMessage,
12
+ init_debug,
13
+ init_errors,
14
+ init_slowOperations,
15
+ jsonParse,
16
+ logForDebugging
17
+ } from "./chunk-rwagvxh5.js";
18
+
19
+ // src/bridge/jwtUtils.ts
20
+ init_analytics();
21
+ init_debug();
22
+ init_diagLogs();
23
+ init_errors();
24
+ init_slowOperations();
25
+ function formatDuration(ms) {
26
+ if (ms < 60000)
27
+ return `${Math.round(ms / 1000)}s`;
28
+ const m = Math.floor(ms / 60000);
29
+ const s = Math.round(ms % 60000 / 1000);
30
+ return s > 0 ? `${m}m ${s}s` : `${m}m`;
31
+ }
32
+ function decodeJwtPayload(token) {
33
+ const jwt = token.startsWith("sk-ant-si-") ? token.slice("sk-ant-si-".length) : token;
34
+ const parts = jwt.split(".");
35
+ if (parts.length !== 3 || !parts[1])
36
+ return null;
37
+ try {
38
+ return jsonParse(Buffer.from(parts[1], "base64url").toString("utf8"));
39
+ } catch {
40
+ return null;
41
+ }
42
+ }
43
+ function decodeJwtExpiry(token) {
44
+ const payload = decodeJwtPayload(token);
45
+ if (payload !== null && typeof payload === "object" && "exp" in payload && typeof payload.exp === "number") {
46
+ return payload.exp;
47
+ }
48
+ return null;
49
+ }
50
+ var TOKEN_REFRESH_BUFFER_MS = 5 * 60 * 1000;
51
+ var FALLBACK_REFRESH_INTERVAL_MS = 30 * 60 * 1000;
52
+ var MAX_REFRESH_FAILURES = 3;
53
+ var REFRESH_RETRY_DELAY_MS = 60000;
54
+ function createTokenRefreshScheduler({
55
+ getAccessToken,
56
+ onRefresh,
57
+ label,
58
+ refreshBufferMs = TOKEN_REFRESH_BUFFER_MS
59
+ }) {
60
+ const timers = new Map;
61
+ const failureCounts = new Map;
62
+ const generations = new Map;
63
+ function nextGeneration(sessionId) {
64
+ const gen = (generations.get(sessionId) ?? 0) + 1;
65
+ generations.set(sessionId, gen);
66
+ return gen;
67
+ }
68
+ function schedule(sessionId, token) {
69
+ const expiry = decodeJwtExpiry(token);
70
+ if (!expiry) {
71
+ logForDebugging(`[${label}:token] Could not decode JWT expiry for sessionId=${sessionId}, token prefix=${token.slice(0, 15)}\u2026, keeping existing timer`);
72
+ return;
73
+ }
74
+ const existing = timers.get(sessionId);
75
+ if (existing) {
76
+ clearTimeout(existing);
77
+ }
78
+ const gen = nextGeneration(sessionId);
79
+ const expiryDate = new Date(expiry * 1000).toISOString();
80
+ const delayMs = expiry * 1000 - Date.now() - refreshBufferMs;
81
+ if (delayMs <= 0) {
82
+ logForDebugging(`[${label}:token] Token for sessionId=${sessionId} expires=${expiryDate} (past or within buffer), refreshing immediately`);
83
+ doRefresh(sessionId, gen);
84
+ return;
85
+ }
86
+ logForDebugging(`[${label}:token] Scheduled token refresh for sessionId=${sessionId} in ${formatDuration(delayMs)} (expires=${expiryDate}, buffer=${refreshBufferMs / 1000}s)`);
87
+ const timer = setTimeout(doRefresh, delayMs, sessionId, gen);
88
+ timers.set(sessionId, timer);
89
+ }
90
+ function scheduleFromExpiresIn(sessionId, expiresInSeconds) {
91
+ const existing = timers.get(sessionId);
92
+ if (existing)
93
+ clearTimeout(existing);
94
+ const gen = nextGeneration(sessionId);
95
+ const delayMs = Math.max(expiresInSeconds * 1000 - refreshBufferMs, 30000);
96
+ logForDebugging(`[${label}:token] Scheduled token refresh for sessionId=${sessionId} in ${formatDuration(delayMs)} (expires_in=${expiresInSeconds}s, buffer=${refreshBufferMs / 1000}s)`);
97
+ const timer = setTimeout(doRefresh, delayMs, sessionId, gen);
98
+ timers.set(sessionId, timer);
99
+ }
100
+ async function doRefresh(sessionId, gen) {
101
+ let oauthToken;
102
+ try {
103
+ oauthToken = await getAccessToken();
104
+ } catch (err) {
105
+ logForDebugging(`[${label}:token] getAccessToken threw for sessionId=${sessionId}: ${errorMessage(err)}`, { level: "error" });
106
+ }
107
+ if (generations.get(sessionId) !== gen) {
108
+ logForDebugging(`[${label}:token] doRefresh for sessionId=${sessionId} stale (gen ${gen} vs ${generations.get(sessionId)}), skipping`);
109
+ return;
110
+ }
111
+ if (!oauthToken) {
112
+ const failures = (failureCounts.get(sessionId) ?? 0) + 1;
113
+ failureCounts.set(sessionId, failures);
114
+ logForDebugging(`[${label}:token] No OAuth token available for refresh, sessionId=${sessionId} (failure ${failures}/${MAX_REFRESH_FAILURES})`, { level: "error" });
115
+ logForDiagnosticsNoPII("error", "bridge_token_refresh_no_oauth");
116
+ if (failures < MAX_REFRESH_FAILURES) {
117
+ const retryTimer = setTimeout(doRefresh, REFRESH_RETRY_DELAY_MS, sessionId, gen);
118
+ timers.set(sessionId, retryTimer);
119
+ }
120
+ return;
121
+ }
122
+ failureCounts.delete(sessionId);
123
+ logForDebugging(`[${label}:token] Refreshing token for sessionId=${sessionId}: new token prefix=${oauthToken.slice(0, 15)}\u2026`);
124
+ logEvent("tengu_bridge_token_refreshed", {});
125
+ onRefresh(sessionId, oauthToken);
126
+ const timer = setTimeout(doRefresh, FALLBACK_REFRESH_INTERVAL_MS, sessionId, gen);
127
+ timers.set(sessionId, timer);
128
+ logForDebugging(`[${label}:token] Scheduled follow-up refresh for sessionId=${sessionId} in ${formatDuration(FALLBACK_REFRESH_INTERVAL_MS)}`);
129
+ }
130
+ function cancel(sessionId) {
131
+ nextGeneration(sessionId);
132
+ const timer = timers.get(sessionId);
133
+ if (timer) {
134
+ clearTimeout(timer);
135
+ timers.delete(sessionId);
136
+ }
137
+ failureCounts.delete(sessionId);
138
+ }
139
+ function cancelAll() {
140
+ for (const sessionId of generations.keys()) {
141
+ nextGeneration(sessionId);
142
+ }
143
+ for (const timer of timers.values()) {
144
+ clearTimeout(timer);
145
+ }
146
+ timers.clear();
147
+ failureCounts.clear();
148
+ }
149
+ return { schedule, scheduleFromExpiresIn, cancel, cancelAll };
150
+ }
151
+
152
+ export { decodeJwtExpiry, createTokenRefreshScheduler };