@sifxprime/krouter 0.5.167 → 0.5.169

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 (229) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +18 -18
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +3 -3
  5. package/app/.next-cli-build/required-server-files.json +12 -0
  6. package/app/.next-cli-build/routes-manifest.json +15 -0
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/environment/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/presidio/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  34. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  35. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  36. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  37. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  38. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  40. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  41. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  42. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  43. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  44. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  45. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  46. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  47. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +3 -3
  48. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  49. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  50. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  51. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  52. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  53. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  54. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  55. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  56. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  57. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  58. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  59. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  60. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  61. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  62. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  63. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  64. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  65. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  66. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  67. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  68. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  69. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  70. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/callback.html +1 -1
  72. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  73. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  74. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  75. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  76. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  77. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
  78. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  79. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
  80. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  81. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  82. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  83. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +5 -5
  84. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  85. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  86. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  87. package/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
  88. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
  89. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
  90. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  91. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  92. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +4 -4
  93. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +4 -4
  94. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +4 -4
  95. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  96. package/app/.next-cli-build/server/app/dashboard/environment.html +1 -1
  97. package/app/.next-cli-build/server/app/dashboard/environment.rsc +3 -3
  98. package/app/.next-cli-build/server/app/dashboard/environment.segments/!KGRhc2hib2FyZCk/dashboard/environment/__PAGE__.segment.rsc +3 -3
  99. package/app/.next-cli-build/server/app/dashboard/environment.segments/_full.segment.rsc +3 -3
  100. package/app/.next-cli-build/server/app/dashboard/environment.segments/_tree.segment.rsc +1 -1
  101. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  102. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
  103. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
  104. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
  105. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  106. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  107. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +4 -4
  108. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +4 -4
  109. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +4 -4
  110. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  111. package/app/.next-cli-build/server/app/dashboard/presidio.html +1 -1
  112. package/app/.next-cli-build/server/app/dashboard/presidio.rsc +3 -3
  113. package/app/.next-cli-build/server/app/dashboard/presidio.segments/!KGRhc2hib2FyZCk/dashboard/presidio/__PAGE__.segment.rsc +3 -3
  114. package/app/.next-cli-build/server/app/dashboard/presidio.segments/_full.segment.rsc +3 -3
  115. package/app/.next-cli-build/server/app/dashboard/presidio.segments/_tree.segment.rsc +1 -1
  116. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  117. package/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
  118. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
  119. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  120. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  121. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  122. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
  123. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
  124. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
  125. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  126. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  127. package/app/.next-cli-build/server/app/dashboard/providers.rsc +3 -3
  128. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +3 -3
  129. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +3 -3
  130. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  131. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  132. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
  133. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
  134. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
  135. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  136. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  137. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
  138. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  139. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
  140. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  141. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  142. package/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
  143. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  144. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
  145. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  146. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  147. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  148. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  149. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  150. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  151. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  152. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  153. package/app/.next-cli-build/server/app/dashboard/skills.rsc +3 -3
  154. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +3 -3
  155. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +3 -3
  156. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  157. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  158. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
  159. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  160. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
  161. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  162. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  163. package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  164. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +5 -5
  165. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  166. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  167. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  168. package/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
  169. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
  170. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
  171. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  172. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  173. package/app/.next-cli-build/server/app/dashboard.rsc +4 -4
  174. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +4 -4
  175. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +4 -4
  176. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  177. package/app/.next-cli-build/server/app/index.html +1 -1
  178. package/app/.next-cli-build/server/app/index.rsc +3 -3
  179. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  180. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  181. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  182. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  183. package/app/.next-cli-build/server/app/landing.html +1 -1
  184. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  185. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  186. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  187. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  188. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  189. package/app/.next-cli-build/server/app/login.html +1 -1
  190. package/app/.next-cli-build/server/app/login.rsc +3 -3
  191. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  192. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  193. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  194. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  195. package/app/.next-cli-build/server/app-paths-manifest.json +18 -18
  196. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  197. package/app/.next-cli-build/server/chunks/1738.js +1 -1
  198. package/app/.next-cli-build/server/chunks/2557.js +1 -1
  199. package/app/.next-cli-build/server/chunks/2722.js +1 -1
  200. package/app/.next-cli-build/server/chunks/3120.js +3 -3
  201. package/app/.next-cli-build/server/chunks/412.js +1 -1
  202. package/app/.next-cli-build/server/chunks/4315.js +1 -1
  203. package/app/.next-cli-build/server/chunks/4884.js +4 -4
  204. package/app/.next-cli-build/server/chunks/5330.js +2 -2
  205. package/app/.next-cli-build/server/chunks/5718.js +1 -1
  206. package/app/.next-cli-build/server/chunks/6182.js +7 -5
  207. package/app/.next-cli-build/server/chunks/6200.js +1 -1
  208. package/app/.next-cli-build/server/chunks/8238.js +1 -1
  209. package/app/.next-cli-build/server/chunks/8895.js +1 -1
  210. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  211. package/app/.next-cli-build/server/middleware.js +9 -9
  212. package/app/.next-cli-build/server/pages/404.html +1 -1
  213. package/app/.next-cli-build/server/pages/500.html +1 -1
  214. package/app/.next-cli-build/server/preview-props.json +3 -3
  215. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  216. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  217. package/app/.next-cli-build/static/KF4DQC15EViS89R-ZTHoZ/_buildManifest.js +1 -0
  218. package/app/.next-cli-build/static/chunks/{1321-3997ec181addbfaa.js → 1321-2101f9adafb561f2.js} +1 -1
  219. package/app/.next-cli-build/static/chunks/{5497-1af4fbf829c885c4.js → 5497-ff8c2e5da835ea40.js} +1 -1
  220. package/app/.next-cli-build/static/chunks/{6069-31c2febe26d36d92.js → 6069-816e9c8ac21ec280.js} +1 -1
  221. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-eacf2780757238ff.js +1 -0
  222. package/app/cli/package.json +1 -1
  223. package/app/package.json +1 -1
  224. package/app/server.js +1 -1
  225. package/app/src/mitm/server.js +30 -30
  226. package/package.json +1 -1
  227. package/app/.next-cli-build/static/KAn3kSXbD7TmQ0msMIDxv/_buildManifest.js +0 -1
  228. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-bbc10fd10f7af626.js +0 -1
  229. /package/app/.next-cli-build/static/{KAn3kSXbD7TmQ0msMIDxv → KF4DQC15EViS89R-ZTHoZ}/_ssgManifest.js +0 -0
@@ -154,13 +154,13 @@ You are producing plain text that will later be styled by the CLI. Follow these
154
154
  * Do not provide range of lines
155
155
  * Examples: src/app.ts, src/app.ts:42, b/server/index.js#L10, C:\\repo\\project\\main.rs:12:5`;var g=c(35024),h=c(93943),i=c(42654),j=c(71553),k=c(47774);let l=new Set(["metadata.google.internal","metadata"]);async function m(a){if(!a)return null;let b=a.toLowerCase().replace(/^\[|\]$/g,"");if(l.has(b))return null;try{let b=await (0,j.lookup)(a,{all:!0});if(!b.length||b.some(a=>(function a(b){if(!b)return!0;let c=b.toLowerCase();if(c.startsWith("::ffff:"))return a(c.slice(7));if(c.includes(":"))return!!("::"===c||"::1"===c||c.startsWith("fc")||c.startsWith("fd")||c.startsWith("fe80"));if(c.includes(".")){let[a,b]=c.split(".").map(Number);if(10===a||127===a||169===a&&254===b||172===a&&b>=16&&b<=31||192===a&&168===b||0===a||a>=224)return!0}return!1})(a.address)))return null;return b}catch{return null}}async function n(a,b={}){let c,{signal:d,timeoutMs:e=1e4,maxBytes:f=0x1400000}=b;if(!a||!a.startsWith("http://")&&!a.startsWith("https://"))return null;try{c=new URL(a)}catch{return null}let g=await m(c.hostname);if(!g)return null;let h=new AbortController,i=d?null:setTimeout(()=>h.abort(),e),j=d||h.signal,l=new k.Agent({connect:{lookup:(a,b,c)=>c(null,[{address:g[0].address,family:g[0].family}])}});try{let b=await fetch(a,{signal:j,redirect:"manual",dispatcher:l});if(!b.ok||!b.body)return null;let c=b.body.getReader(),d=[],e=0;for(;;){let{done:a,value:b}=await c.read();if(a)break;if((e+=b.byteLength)>f){try{c.cancel()}catch{}return null}d.push(b)}let g=Buffer.concat(d.map(a=>Buffer.from(a))),h=b.headers.get("Content-Type")||"image/jpeg",i=g.toString("base64");return{url:`data:${h};base64,${i}`,mimeType:h}}catch{return null}finally{i&&clearTimeout(i),l.close().catch(()=>{})}}var o=c(44404),p=c(54603),q=c(41004),r=c(92306);let s=/(^|[^\\])(\\\\)*\\[pP]\{/;function t(a,b={removed:0}){return function a(b,c){if(Array.isArray(b)){let d=!1,e=b.map(b=>{let e=a(b,c);return e!==b&&(d=!0),e});return d?e:b}if(!b||"object"!=typeof b)return b;let d=!1,e={};for(let[g,h]of Object.entries(b)){var f;if("pattern"===g&&"string"==typeof(f=h)&&s.test(f)){c.removed+=1,d=!0;continue}if("properties"===g&&h&&"object"==typeof h&&!Array.isArray(h)){let b=!1,f={};for(let[d,e]of Object.entries(h)){let g=a(e,c);g!==e&&(b=!0),f[d]=g}b&&(d=!0),e[g]=b?f:h;continue}let b=a(h,c);b!==h&&(d=!0),e[g]=b}return d?e:b}(a,b)}let u=["server_is_overloaded","service_unavailable_error"],v=new Map,w=/^(rs|fc|resp|msg)_/,x=new Set(["none","minimal","off"]);function y(a){return"string"==typeof a&&!!a&&(0,o.SM)("cx").some(b=>b.id===a&&!0===b.responsesLite)}function z(a){return Array.isArray(a)&&a.some(a=>a?.type==="web_search")}function A(a){return`${a?.type}:${a?.name||a?.function?.name||""}`}function B(a){return x.has(a)?"low":a}let C=new Set(["image_generation","web_search","web_search_preview","file_search","computer","computer_use_preview","code_interpreter","mcp","local_shell","tool_search"]),D=new Set(["custom"]),E=new Set(["model","input","instructions","tools","tool_choice","stream","store","reasoning","service_tier","include","prompt_cache_key","client_metadata","parallel_tool_calls"]),F=null;function G(a){return(0,d.createHash)("sha256").update(a).digest("hex").slice(0,16)}function H(){return`sess_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,9)}`}function I(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}(0,p.Xj)().then(a=>{F=a}),setInterval(()=>{let a=Date.now();for(let[b,c]of v)a-c.lastUsed>36e5&&v.delete(b)},6e5);class J extends e.H{constructor(){super("codex",g.xq.codex),this._currentSessionId=null}buildHeaders(a,b=!0,c=null,d=null,e=null){let f=super.buildHeaders(a,b);y(d&&(0,o.kt)("cx",d))&&!z(e?.tools)&&(f["x-openai-internal-codex-responses-lite"]="true"),f.version||(f.version=g.Ch),f.session_id=this._currentSessionId||a?.connectionId||"default",f.originator||(f.originator="codex_cli_rs");let h=a?.providerSpecificData?.workspaceId;return"string"==typeof h&&h&&!f["chatgpt-account-id"]&&(f["chatgpt-account-id"]=h),f}buildUrl(a,b,c=0,d=null){let e=super.buildUrl(a,b,c,d);return this._isCompact?`${e}/compact`:e}async refreshCredentials(a,b){return a?.refreshToken?(0,h.Vq)("codex",a,b):null}needsRefresh(a){return(0,h.fp)("codex",a)}async prefetchImages(a){if(Array.isArray(a?.input))for(let b of a.input){if(!Array.isArray(b.content))continue;let a=b.content.map(async a=>{if("image_url"!==a.type)return a;let b="string"==typeof a.image_url?a.image_url:a.image_url?.url,c=a.image_url?.detail||"auto";if(!b)return a;if(b.startsWith("data:"))return{type:"input_image",image_url:b,detail:c};let d=await n(b,{timeoutMs:15e3});return{type:"input_image",image_url:d?.url||b,detail:c}});b.content=await Promise.all(a)}}async execute(a){let b=Array.isArray(a.body?.input)?a.body.input.reduce((a,b)=>a+(Array.isArray(b.content)?b.content.filter(a=>"image_url"===a.type).length:0),0):0,c=Array.isArray(a.body?.input)?a.body.input.length:0;if((0,r.s)("CODEX",`execute start | inputItems=${c} | images=${b} | sessionId=${this._currentSessionId||"pending"}`),b>0){let b=Date.now();await this.prefetchImages(a.body),(0,r.s)("CODEX",`prefetchImages done | ${Date.now()-b}ms`)}else await this.prefetchImages(a.body);let d={...q.cI,...this.config.retry},{attempts:e,delayMs:f}=(0,q.DR)(d[503]),g=0;for(;;){let b=await super.execute(a),c=await this._peekSseOverloaded(b.response);if(!c.matched)return c.replacementBody&&(b.response=new Response(c.replacementBody,{status:b.response.status,statusText:b.response.statusText,headers:b.response.headers})),b;if(g>=e)return a.log?.warn?.("RETRY",`CODEX | SSE overloaded "${c.matched}" — retries exhausted (${g}/${e})`),c.replacementBody&&(b.response=new Response(c.replacementBody,{status:b.response.status,statusText:b.response.statusText,headers:b.response.headers})),b;g++,a.log?.debug?.("RETRY",`CODEX | SSE "${c.matched}" retry ${g}/${e} after ${f/1e3}s`),(0,r.s)("CODEX",`SSE overloaded "${c.matched}" → retry ${g}/${e} in ${f}ms`);try{await b.response.body?.cancel?.()}catch{}await new Promise(a=>setTimeout(a,f))}}async _peekSseOverloaded(a){if(!a||!a.ok||!a.body)return{matched:null,replacementBody:null};let b=a.body.getReader(),c=new TextDecoder,d=[],e="",f=null;try{for(;e.length<4096;){let{done:a,value:g}=await b.read();if(a)break;d.push(g),e+=c.decode(g,{stream:!0});let h=u.find(a=>e.includes(a));if(h){f=h;break}}}catch(a){(0,r.s)("CODEX",`peek read error: ${a.message}`)}b.releaseLock();let g=a.body,h=null;return{matched:f,replacementBody:new ReadableStream({start(a){for(let b of d)a.enqueue(b);h=g.getReader()},async pull(a){try{let{done:b,value:c}=await h.read();if(b)return void a.close();a.enqueue(c)}catch(b){a.error(b)}},cancel(a){try{h?.cancel(a)}catch{}}})}}parseError(a,b){if(429===a.status&&b)try{let a=JSON.parse(b),c=a?.error;if(c?.type==="usage_limit_reached"){let a=Date.now(),d=null;if("number"==typeof c.resets_at&&c.resets_at>0){let b=1e3*c.resets_at;b>a&&(d=b)}if(!d&&"number"==typeof c.resets_in_seconds&&c.resets_in_seconds>0&&(d=a+1e3*c.resets_in_seconds),d)return{status:429,message:c.message||b,resetsAtMs:d}}}catch{}return super.parseError(a,b)}transformRequest(a,b,c,d){this._isCompact=!!b._compact,delete b._compact,this._currentSessionId=function(a,b,c){let d=I(a?.prompt_cache_key)||I(a?.session_id)||I(a?.conversation_id);if(d)return d;if(Array.isArray(a?.input)&&a.input.length>0){let b="";for(let c of a.input){if(c?.role!=="assistant")continue;let a=c?"string"==typeof c.content?c.content:Array.isArray(c.content)?c.content.map(a=>a.text||a.output||"").filter(Boolean).join(""):"":"";if(a&&(b+=a).length>=200)break}if(b.length>=50){let a=G((c||"")+b.slice(0,200)),d=v.get(a);if(d)return d.lastUsed=Date.now(),d.sessionId;let e=H();return v.set(a,{sessionId:e,lastUsed:Date.now()}),e}}let e=I(b?.providerSpecificData?.workspaceId);return e||(c?`sess_${G(c)}`:H())}(b,d,F);let e=(0,i.m)(b.input);e&&(b.input=e);let g=(0,o.kt)("cx",b.model||a),h=y(g),j=!1;if(h&&Array.isArray(b.input)){let a=b.input.filter(a=>a?.type==="additional_tools"),c=a.flatMap(a=>Array.isArray(a.tools)?a.tools:[]);if(z(b.tools)||z(c)){let d=Array.isArray(b.tools)?[...b.tools]:[],e=new Set(d.map(A));for(let a of c){let b=A(a);e.has(b)||(e.add(b),d.push(a))}b.tools=d,j=a.length>0,b.input=b.input.filter(a=>a?.type!=="additional_tools")}}let k=h&&!z(b.tools);(!b.input||Array.isArray(b.input)&&0===b.input.length)&&(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]);if(Array.isArray(b.input))for(let a of b.input)!(!a||"object"!=typeof a||Array.isArray(a))&&("system"!==a.role||a.type&&"message"!==a.type||(a.role="developer"));if(!function(a,b=!1){Array.isArray(a.input)&&(a.input=a.input.filter(a=>{if("string"==typeof a&&w.test(a))return!1;if(a&&"object"==typeof a&&!Array.isArray(a)){if("item_reference"===a.type)return!1;let c=b&&"developer"===a.role&&"string"==typeof a.id&&a.id.startsWith("msg_");"string"==typeof a.id&&w.test(a.id)&&!c&&delete a.id}return!0}))}(b,k),!function(a){if(!Array.isArray(a.tools))return;let b=new Set,c={removed:0};if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let d="string"==typeof a.type?a.type:"";if("namespace"===d){if(Array.isArray(a.tools)){for(let c of a.tools){let a="string"==typeof c?.name?c.name.trim().slice(0,128):"";a&&b.add(a)}let d=a.tools.map(a=>{if(!a?.parameters||"object"!=typeof a.parameters)return a;let b=t(a.parameters,c);return b===a.parameters?a:{...a,parameters:b}});d.some((b,c)=>b!==a.tools[c])&&(a.tools=d)}return!0}if("function"!==d)return!!D.has(d)||!!d&&!a.function&&"string"!=typeof a.name&&C.has(d);let e=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,f=("string"==typeof a.name?a.name:"string"==typeof e?.name?e.name:"").trim();if(!f)return!1;let g="string"==typeof a.description?a.description:"string"==typeof e?.description?e.description:"",h=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:e?.parameters&&"object"==typeof e.parameters&&!Array.isArray(e.parameters)?e.parameters:{type:"object",properties:{}};"object"!==h.type||h.properties||(h={...h,properties:{}});let i="boolean"==typeof a.strict?a.strict:e?.strict;for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=f.slice(0,128),g&&(a.description=g),a.parameters=t(h,c),"boolean"==typeof i&&(a.strict=i),b.add(f),!0}),c.removed>0&&(0,r.s)("CODEX",`stripped ${c.removed} unsupported tool schema pattern(s)`),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),b.stream=!0,k||j||b.instructions&&""!==b.instructions.trim()||(b.instructions=f),b.store=!1,!b.prompt_cache_key&&this._currentSessionId&&(b.prompt_cache_key=this._currentSessionId),b.model=g,k){let a=Array.isArray(b.input)?b.input:[b.input];if(!a.some(a=>a?.type==="additional_tools")){let c="string"==typeof b.instructions&&b.instructions.trim()?b.instructions:f,d=[{type:"additional_tools",role:"developer",tools:Array.isArray(b.tools)?b.tools:[]}];c&&d.push({type:"message",role:"developer",content:[{type:"input_text",text:c}]}),a.unshift(...d)}b.input=a,b.instructions="",b.tools=null,b.tool_choice||="auto",b.parallel_tool_calls=!1}else delete b.parallel_tool_calls;let l=null;for(let a of["none","low","medium","high","xhigh"])if(b.model.endsWith(`-${a}`)){l=a,b.model=b.model.replace(`-${a}`,"");break}if(b.reasoning)k&&b.reasoning.effort&&(b.reasoning.effort=B(b.reasoning.effort)),k||b.reasoning.summary||(b.reasoning.summary="auto");else{let a=b.reasoning_effort||l||(k?"medium":"low"),c=k?B(a):a;b.reasoning=k?{effort:c}:{effort:c,summary:"auto"}}for(let a of(k&&(b.reasoning.context="all_turns"),delete b.reasoning_effort,b.reasoning&&b.reasoning.effort&&"none"!==b.reasoning.effort&&(b.include=["reasoning.encrypted_content"]),delete b.temperature,delete b.top_p,delete b.frequency_penalty,delete b.presence_penalty,delete b.logprobs,delete b.top_logprobs,delete b.n,delete b.seed,delete b.max_tokens,delete b.max_completion_tokens,delete b.max_output_tokens,delete b.user,delete b.prompt_cache_retention,delete b.metadata,delete b.stream_options,delete b.safety_identifier,delete b.previous_response_id,Object.keys(b)))E.has(a)||delete b[a];return b}}},47370:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(9248)},49059:(a,b,c)=>{c.d(b,{vr:()=>j});var d=c(96179);let e=new Set(["none","off"]),f=["minimal","low","medium","high","xhigh","max"],g=new Map([["glm-5.3",["low","high","max"]],["glm-5.3-flash",["low","high","max"]],["glm-5.2",["high","xhigh"]],["kimi-k2.8-preview",["low","medium","high"]],["hy3",["low","high"]],["hy4-preview",["high"]],["deepseek-v4-pro",["low","high","xhigh"]],["deepseek-v4.1-flash",["low","high","max"]]]),h=/超出频率限制|频率限制|限额|frequency limit/i,i=/(\d{4}-\d{2}-\d{2})[\sT](\d{2}:\d{2}:\d{2})(?:\s*UTC\s*([+-]?[0-9:]+))?/i;class j extends d.L{constructor(){super("codebuddy-cn")}transformRequest(a,b,c,d){let h={...super.transformRequest(a,b,c,d),stream:!0},i=h.reasoning_effort;return!i||e.has(i)?(delete h.reasoning_effort,delete h.reasoning_summary):(h.reasoning_effort=function(a,b){let c=g.get(a);if(!c||c.includes(b))return b;let d=f.indexOf(b);if(-1===d)return b;let e=c.map(a=>({level:a,rank:f.indexOf(a)})).filter(a=>-1!==a.rank).sort((a,b)=>a.rank-b.rank);if(!e.length)return b;let h=e.filter(a=>a.rank<=d);return(h.length?h[h.length-1]:e[0]).level}(a,i),h.reasoning_summary="auto"),h}parseError(a,b){let c=null;try{c=JSON.parse(b||"")}catch{c=null}if(c&&"object"==typeof c){let a=c.msg||c.message||c.error?.message||"";if(6004===c.code||h.test(a))return{status:429,message:a||"CodeBuddy frequency limit (6004)",resetsAtMs:function(a){let b=i.exec(String(a||""));if(!b)return null;let c=new Date(`${b[1]}T${b[2]}${function(a){if(!a)return"+08:00";let b=a.startsWith("-")?"-":"+",[c,d="00"]=a.replace(/^[+-]/,"").split(":");return`${b}${c.padStart(2,"0")}:${d.padStart(2,"0")}`}(b[3])}`);return Number.isNaN(c.getTime())?null:c.getTime()}(a)}}return super.parseError(a,b)}}},54603:(a,b,c)=>{c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.n,"machine-id"),m=h().join(k.n,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.n,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="9r-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},55330:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>C});var e=c(2648),f=c(98625),g=c(95128),h=c(11655),i=c(61433),j=c(8729),k=c(13511),l=c(43173),m=c(19946),n=c(73870),o=c(94515),p=c(95501),q=c(13120),r=c(38572),s=c(23013),t=c(9708),u=c(90926),v=c(26878),w=c(16046),x=c(49059),y=c(32447),z=c(22376),A=c(96179);c(15308);var B=a([m]);m=(B.then?(await B)():B)[0];let D={antigravity:new e.c,"codebuddy-cn":new x.vr,kimchi:new y.BL,"grok-cli":new z.hG,azure:new f.P,"gemini-cli":new g.V,github:new h.x,iflow:new i.r,qoder:new j.DH,kiro:new k.B,codex:new l.T,cursor:new m.o,cu:new m.o,vertex:new n.w("vertex"),"vertex-partner":new n.w("vertex-partner"),qwen:new o.R,opencode:new p.j9,"opencode-go":new q.H_,"grok-web":new r.$,"perplexity-web":new s.Ay,"ollama-local":new t.D,commandcode:new u.Ak,"xiaomi-tokenplan":new v.F,"mimo-free":new w.Yh,mmf:new w.Yh},E=new Map;function C(a){return D[a]?D[a]:(E.has(a)||E.set(a,new A.L(a)),E.get(a))}d()}catch(a){d(a)}})},55456:(a,b,c)=>{c.d(b,{CP:()=>q,yI:()=>n});var d=c(94755),e=c(74075),f=c.n(e);let g="1"===process.env.CURSOR_PROTOBUF_DEBUG,h=(a,...b)=>g&&console.log(`[PROTOBUF:${a}]`,...b);new TextDecoder;let i="1.1.3",j=new Set([1,2,3,9,10,11,27,1,25]);function k(a){let b=[];for(;a>=128;)b.push(127&a|128),a>>>=7;return b.push(127&a),new Uint8Array(b)}function l(a,b,c){let d=k(a<<3|b);if(0===b)return m(d,k(c));if(2===b){let a="string"==typeof c?new TextEncoder().encode(c):c instanceof Uint8Array?c:Buffer.isBuffer(c)?new Uint8Array(c):new Uint8Array(0);return m(d,k(a.length),a)}return new Uint8Array(0)}function m(...a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}function n(a,b,c=[],e=null,g=!1){h("BODY",`Generating: ${a.length} msgs, model=${b}, tools=${c.length}, reasoning=${e||"none"}, forceAgentMode=${g}`);let i=function(a,b,c=[],e=null,f=!1){return l(1,2,function(a,b,c=[],e=null,f=!1){let g,i=c?.length>0,j=i||f,n=[],o=[],p=[];for(let b=0;b<a.length;b++){let c=a[b],d=Array.isArray(c?.tool_calls)&&c.tool_calls.length>0,e=Array.isArray(c?.tool_results)&&c.tool_results.length>0;if(c?.role==="assistant"&&d&&e){h("ENCODE",`normalizing mixed assistant tool payload at msg[${b}] (calls=${c.tool_calls.length}, results=${c.tool_results.length})`),p.push({...c,tool_results:[]});let d=a[b+1],e=d?.role==="assistant"&&Array.isArray(d?.tool_results)&&d.tool_results.length>0,f=new Set(c.tool_results.map(a=>a?.tool_call_id).filter(a=>"string"==typeof a)),g=new Set((d?.tool_results||[]).map(a=>a?.tool_call_id).filter(a=>"string"==typeof a)),i=f.size>0&&f.size===g.size;if(i){for(let a of f)if(!g.has(a)){i=!1;break}}e&&i||p.push({role:"assistant",content:"",tool_results:c.tool_results});continue}p.push(c)}for(let a=0;a<p.length;a++){let b=p[a],c="user"===b.role?1:2,e=(0,d.A)(),f=a===p.length-1;n.push({content:b.content,role:c,messageId:e,isLast:f,hasTools:i,toolResults:b.tool_results||[]}),o.push({messageId:e,role:c})}let q=0;return"medium"===e?q=1:"high"===e&&(q=2),m(...n.map(a=>l(1,2,function(a,b,c,d=!1,e=!1,f=[],g=null){let h=f.length>0;return m(l(1,2,a),l(2,0,b),l(13,2,c),...g?[l(32,2,g)]:[],...h?f.map(a=>l(18,2,function(a){var b;let c,d,e=function(a){let b="string"==typeof a&&a.length>0?a:"tool";if(b.startsWith("mcp__")){let a=b.slice(5),c=a.indexOf("__");if(c>=0){let b=a.slice(0,c)||"custom",d=a.slice(c+2)||"tool";return`mcp_${b}_${d}`}return`mcp_custom_${a||"tool"}`}return b.startsWith("mcp_")?b:`mcp_custom_${b}`}(a.tool_name||a.name||""),f=a.raw_args||"{}",g=a.result_content||a.result||"",{toolCallId:h,modelCallId:i}=(b=a.tool_call_id||"",c="\nmc_",(d=b.indexOf(c))>=0?{toolCallId:b.slice(0,d),modelCallId:b.slice(d+c.length)}:{toolCallId:b,modelCallId:null}),j=a.tool_index||a.index||1,{serverName:k,selectedTool:n}=function(a){if("string"!=typeof a||!a.startsWith("mcp_"))return{serverName:"custom",selectedTool:a||"tool"};let b=a.slice(4),c=b.indexOf("_");return c<0?{serverName:"custom",selectedTool:b||"tool"}:{serverName:b.slice(0,c)||"custom",selectedTool:b.slice(c+1)||"tool"}}(e);return m(l(1,2,h),l(2,2,e),l(3,0,j>0?j:1),...i?[l(12,2,i)]:[],l(5,2,f),l(8,2,function(a,b,c,d,e=1){return m(l(1,0,19),l(28,2,m(l(1,2,c),l(2,2,d))),l(35,2,a),...b?[l(48,2,b)]:[],l(49,0,e>0?e:1))}(h,i,n,g,j)),l(11,2,function(a,b,c,d,e,f,g=1){let h;return m(l(1,0,19),l(27,2,(h=m(l(1,2,c),l(3,2,e),l(4,2,d)),l(1,2,h))),l(3,2,a),l(9,2,b),l(10,2,e),l(48,0,g>0?g:1),...f?[l(49,2,f)]:[])}(h,e,n,k,f,i,j)))}(a))):[],l(29,0,+!!e),l(47,0,e?2:1),...d&&e?[l(51,2,k(1))]:[])}(a.content,a.role,a.messageId,a.isLast,a.hasTools,a.toolResults))),l(2,0,1),l(3,2,new Uint8Array(0)),l(4,0,1),l(5,2,m(l(1,2,b),l(4,2,new Uint8Array(0)))),l(8,2,""),l(13,0,1),l(15,2,(g=m(l(1,2,new Uint8Array(0)),l(2,2,new Uint8Array(0))),m(l(1,2,"cursor\\aisettings"),l(3,2,new Uint8Array(0)),l(6,2,g),l(8,0,1),l(9,0,1)))),l(19,0,1),l(23,2,(0,d.A)()),l(26,2,m(l(1,2,process.platform||"linux"),l(2,2,process.arch||"x64"),l(3,2,process.version||"v20.0.0"),l(4,2,process.cwd?.()||"/"),l(5,2,new Date().toISOString()))),l(27,0,+!!j),...j?[l(29,2,k(1))]:[],...o.map(a=>l(30,2,function(a,b,c=null){return m(l(1,2,a),...c?[l(2,2,c)]:[],l(3,0,b))}(a.messageId,a.role))),...c?.length>0?c.map(a=>{let b,c,d;return l(34,2,(b=a.function?.name||a.name||"",c=a.function?.description||a.description||"",d=a.function?.parameters||a.input_schema||{},m(...b?[l(1,2,b)]:[],...c?[l(2,2,c)]:[],...Object.keys(d).length>0?[l(3,2,JSON.stringify(d))]:[],l(4,2,"custom"))))}):[],l(35,0,0),l(38,0,0),l(46,0,j?2:1),l(47,2,""),l(48,0,+!j),l(49,0,q),l(51,0,0),l(53,0,1),l(54,2,j?"Agent":"Ask"))}(a,b,c,e,f))}(a,b,c,e,g),j=function(a,b=!1){let c=a,d=0;b&&(c=new Uint8Array(f().gzipSync(Buffer.from(a))),d=1);let e=new Uint8Array(5+c.length);return e[0]=d,e[1]=c.length>>24&255,e[2]=c.length>>16&255,e[3]=c.length>>8&255,e[4]=255&c.length,e.set(c,5),e}(i,!1);return h("BODY",`Protobuf=${i.length}B, Framed=${j.length}B`),j}function o(a,b){let c=0,d=0,e=b;for(;e<a.length;){let b=a[e];if(c|=(127&b)<<d,e++,!(128&b))break;d+=7}return[c,e]}function p(a){let b=new Map,c=0;for(;c<a.length;){let[d,e,f,g]=function(a,b){let c;if(b>=a.length)return[null,null,null,b];let[d,e]=o(a,b),f=7&d,g=e;if(0===f)[c,g]=o(a,g);else if(2===f){let[b,d]=o(a,g);c=a.slice(d,d+b),g=d+b}else 1===f?(c=a.slice(g,g+8),g+=8):5===f?(c=a.slice(g,g+4),g+=4):c=null;return[d>>3,f,c,g]}(a,c);if(null===d)break;b.has(d)||b.set(d,[]),b.get(d).push({wireType:e,value:f}),c=g}return b}function q(a){try{let b=p(a);for(let a of b.keys())j.has(a)||h("SCHEMA",`Unknown response field #${a} detected. Schema v${i} may be outdated.`);if(b.has(1)){let a=function(a){let b=p(a),c="",d="",e="",f=!1;if(b.has(3)&&(c=new TextDecoder().decode(b.get(3)[0].value).split("\n")[0]),b.has(9)&&(d=new TextDecoder().decode(b.get(9)[0].value)),b.has(11)&&(f=0!==b.get(11)[0].value),b.has(27))try{let a=p(b.get(27)[0].value);if(a.has(1)){let b=p(a.get(1)[0].value);b.has(1)&&(d=new TextDecoder().decode(b.get(1)[0].value)),b.has(3)&&(e=new TextDecoder().decode(b.get(3)[0].value))}}catch(a){h("EXTRACT",`MCP parse error: ${a.message}`)}return(!e&&b.has(10)&&(e=new TextDecoder().decode(b.get(10)[0].value)),c&&d)?{id:c,type:"function",function:{name:d,arguments:e||"{}"},isLast:f}:null}(b.get(1)[0].value);if(a)return h("EXTRACT",`Tool call: ${a.function.name}`),{text:null,error:null,toolCall:a,thinking:null}}if(b.has(2)){let{text:a,thinking:c}=function(a){let b=p(a),c=null,d=null;if(b.has(1)&&(c=new TextDecoder().decode(b.get(1)[0].value)),b.has(25))try{let a=p(b.get(25)[0].value);a.has(1)&&(d=new TextDecoder().decode(a.get(1)[0].value))}catch(a){h("EXTRACT",`Thinking parse error: ${a.message}`)}return{text:c,thinking:d}}(b.get(2)[0].value);if(a||c)return{text:a,error:null,toolCall:null,thinking:c}}return{text:null,error:null,toolCall:null,thinking:null}}catch(b){return h("EXTRACT",`Decode failed (schema v${i}): ${b.message}`),{text:null,error:null,toolCall:null,thinking:null,raw:Buffer.from(a).toString("base64"),decodeError:b.message}}}},61433:(a,b,c)=>{c.d(b,{r:()=>h});var d=c(55511),e=c.n(d),f=c(15308),g=c(35024);class h extends f.H{constructor(){super("iflow",g.xq.iflow)}generateUUID(){return e().randomUUID()}createIFlowSignature(a,b,c,d){if(!d)return"";let f=`${a}:${b}:${c}`,g=e().createHmac("sha256",d);return g.update(f),g.digest("hex")}buildHeaders(a,b=!0){let c=`session-${this.generateUUID()}`,d=Date.now(),e=this.config.headers["User-Agent"]||"iFlow-Cli",f=a.apiKey||a.accessToken||"",g=this.createIFlowSignature(e,c,d,f),h={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-iflow-timestamp":d.toString(),"x-iflow-signature":g};return a.apiKey&&(h.Authorization=`Bearer ${a.apiKey}`),b&&(h.Accept="text/event-stream"),h}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}},73483:(a,b,c)=>{c.d(b,{Gh:()=>j,IF:()=>m,O9:()=>g,OF:()=>l,WL:()=>h,f5:()=>k,lm:()=>f});var d=c(47370),e=c(14170);let f={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"};function g(a){if(!a||"object"!=typeof a)return a;let b={...a};return void 0!==b.input_tokens&&(b.input_tokens+=2e3),void 0!==b.prompt_tokens&&(b.prompt_tokens+=2e3),void 0!==b.total_tokens?b.total_tokens+=2e3:void 0!==b.prompt_tokens&&void 0!==b.completion_tokens&&(b.total_tokens=b.prompt_tokens+b.completion_tokens),b}function h(a,b){if(!a||"object"!=typeof a)return a;let c={[e.h.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated"],[e.h.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated"],[e.h.OPENAI_RESPONSES]:["input_tokens","output_tokens","total_tokens","input_tokens_details","output_tokens_details","estimated"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated"]},d=c[b];b===e.h.GEMINI_CLI||b===e.h.ANTIGRAVITY?d=c[e.h.GEMINI]:b===e.h.OPENAI_RESPONSE?d=c[e.h.OPENAI_RESPONSES]:d||(d=c.default);let f={};for(let b of d)void 0!==a[b]&&(f[b]=a[b]);return f}function i(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b={},c=(a,c)=>{if(null==c)return;let d=Number(c);Number.isFinite(d)&&(b[a]=d)};return(c("prompt_tokens",a?.prompt_tokens),c("completion_tokens",a?.completion_tokens),c("total_tokens",a?.total_tokens),c("cache_read_input_tokens",a?.cache_read_input_tokens),c("cache_creation_input_tokens",a?.cache_creation_input_tokens),c("cached_tokens",a?.cached_tokens),c("reasoning_tokens",a?.reasoning_tokens),a?.prompt_tokens_details&&"object"==typeof a.prompt_tokens_details&&(b.prompt_tokens_details=a.prompt_tokens_details),a?.completion_tokens_details&&"object"==typeof a.completion_tokens_details&&(b.completion_tokens_details=a.completion_tokens_details),0===Object.keys(b).length)?null:b}function j(a){if(!a||"object"!=typeof a)return!1;for(let b of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof a[b]&&a[b]>0)return!0;return!1}function k(a){if(!a||"object"!=typeof a)return null;if("message_delta"===a.type&&a.usage&&"object"==typeof a.usage)return i({prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens});if(("response.completed"===a.type||"response.done"===a.type)&&a.response?.usage&&"object"==typeof a.response.usage){let b=a.response.usage,c=b.input_tokens_details?.cached_tokens;return i({prompt_tokens:b.input_tokens||b.prompt_tokens||0,completion_tokens:b.output_tokens||b.completion_tokens||0,cached_tokens:c,reasoning_tokens:b.output_tokens_details?.reasoning_tokens,prompt_tokens_details:c?{cached_tokens:c}:void 0})}if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return i({prompt_tokens:a.usage.prompt_tokens,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens||a.usage.prompt_cache_hit_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens,prompt_tokens_details:a.usage.prompt_tokens_details,completion_tokens_details:a.usage.completion_tokens_details});let b=a.usageMetadata||a.response?.usageMetadata;return b&&"object"==typeof b?i({prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,total_tokens:b.totalTokenCount,cached_tokens:b.cachedContentTokenCount,reasoning_tokens:b.thoughtsTokenCount}):!0===a.done&&"number"==typeof a.prompt_eval_count?i({prompt_tokens:a.prompt_eval_count||0,completion_tokens:a.eval_count||0,total_tokens:(a.prompt_eval_count||0)+(a.eval_count||0),cached_tokens:a.prompt_eval_cached_count||0}):null}function l(a,b,c=e.h.OPENAI){var d,f;return d=function(a){if(!a||"object"!=typeof a)return 0;try{let b=JSON.stringify(a).length;return Math.ceil(b/4)}catch(a){return 0}}(a),f=b&&!(b<=0)?Math.max(1,Math.floor(b/4)):0,c===e.h.CLAUDE?g({input_tokens:d,output_tokens:f,estimated:!0}):g({prompt_tokens:d,completion_tokens:f,total_tokens:d+f,estimated:!0})}function m(a,b,c=null,e=null,g=null){if(!b||"object"!=typeof b)return;let h=a?.toUpperCase()||"UNKNOWN",i=b?.prompt_tokens||b?.input_tokens||0,j=b?.completion_tokens||b?.output_tokens||0,k=e?e.slice(0,8)+"...":"unknown",l=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 ${f.green}[USAGE] ${h} | in=${i} | out=${j} | account=${k}${f.reset}`;b.estimated&&(l+=` ${f.yellow}(estimated)${f.reset}`);let n=b.cache_read_input_tokens||b.cached_tokens||b.prompt_tokens_details?.cached_tokens;n&&(l+=` | cache_read=${n}`);let o=b.cache_creation_input_tokens;o&&(l+=` | cache_create=${o}`);let p=b.reasoning_tokens;p&&(l+=` | reasoning=${p}`),console.log(l);let q={prompt_tokens:i,completion_tokens:j,cache_read_input_tokens:n||0,cache_creation_input_tokens:o||0,reasoning_tokens:p||0};(0,d.sZ)({model:c,provider:a,connectionId:e,tokens:q,apiKey:g||void 0}).catch(()=>{}),(0,d.E5)({model:c,provider:a,connectionId:e,tokens:q,status:"200 OK"}).catch(()=>{})}},73870:(a,b,c)=>{c.d(b,{w:()=>k});var d=c(15308),e=c(35024),f=c(8590),g=c(39609);let h=new Map;function i(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("authorized_user"===b.type&&b.client_id&&b.client_secret&&b.refresh_token)return b;return null}catch{return null}}async function j(a){if(h.has(a))return h.get(a);let b=await fetch(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),c=await b.json().catch(()=>null),d=(c?.[0]?.error?.message||c?.error?.message||"").match(/projects\/([^/]+)\//),e=d?.[1]||null;return e&&h.set(a,e),e}class k extends d.H{constructor(a="vertex"){super(a,e.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=(0,f.Sc)(d?.apiKey),g=i(d?.apiKey),h=!!e||!!g||!!d?.accessToken,j=h?null:d?.apiKey,k=e?.project_id||g?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!k)throw Error("Vertex partner models require a project_id. Add it in providerSpecificData or use Service Account JSON.");let a=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/global/endpoints/openapi/chat/completions`;return j?`${a}?key=${j}`:a}let l=b?"streamGenerateContent":"generateContent";if(h){if(!k)throw Error("Vertex OAuth/ADC requires a project_id. Add quota_project_id to your ADC JSON or set providerSpecificData.projectId.");let c=d?.providerSpecificData?.location||"us-central1",e=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${c}/publishers/google/models/${a}:${l}`;return b&&(e+="?alt=sse"),e}let m=`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${l}`;return b&&(m+="?alt=sse"),j&&(m+=b?`&key=${j}`:`?key=${j}`),m}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),b&&(c.Accept="text/event-stream"),c}async refreshCredentials(a,b){let c=(0,f.Sc)(a?.apiKey);if(!c)return null;let d=await (0,f.pb)(c,b);return d?{accessToken:d.accessToken,expiresAt:d.expiresAt}:null}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:h,proxyOptions:k=null}){let l=(0,f.Sc)(d?.apiKey),m=i(d?.apiKey);if(l){let a=await (0,f.pb)(l,h);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if(m){let a=await (0,f.I9)(m.refresh_token,m.client_id,m.client_secret,h);if(!a?.accessToken)throw Error("Vertex: failed to refresh access token from ADC JSON (authorized_user)");d.accessToken=a.accessToken}if("vertex-partner"===this.provider&&!l&&!m&&!d?.providerSpecificData?.projectId){let a=await j(d.apiKey);if(!a)throw Error("Vertex: could not resolve project_id from API key. Please add it manually in provider settings.");h?.debug?.("VERTEX",`Resolved project_id: ${a}`),d.providerSpecificData={...d.providerSpecificData,projectId:a}}let n=this.buildUrl(a,c,0,d),o=this.buildHeaders(d,c),p=this.transformRequest(a,b,c,d);return{response:await (0,g.proxyAwareFetch)(n,{method:"POST",headers:o,body:JSON.stringify(p),signal:e},k),url:n,headers:o,transformedBody:p}}}},74010:(a,b,c)=>{c.d(b,{c:()=>f});let d=["reasoning_content","reasoning","reasoning_details"],e=[{match:/claude/i,drop:["temperature"]},{provider:"github",match:/gpt-5\.4/i,drop:["temperature"]},{provider:"github",match:a=>/claude/i.test(a)&&!/claude.*(opus|sonnet).*4[.\-]6/i.test(a),drop:["thinking","reasoning_effort"]},{provider:"groq",dropMessageFields:d},{provider:"mistral",dropMessageFields:d},{provider:"cerebras",dropMessageFields:d}];function f(a,b,c){if(!b||!c||"object"!=typeof c)return c;for(let d of e)if((!d.provider||d.provider===a)&&(!d.match||("function"==typeof d.match?d.match(b):d.match.test(b)))){for(let a of d.drop||[])void 0!==c[a]&&delete c[a];Array.isArray(d.dropMessageFields)&&Array.isArray(c.messages)&&(c.messages=function(a,b){let c=!1,d=a.map(a=>a&&"assistant"===a.role&&b.some(b=>void 0!==a[b])?(c=!0,Object.fromEntries(Object.entries(a).filter(([a])=>!b.includes(a)))):a);return c?d:a}(c.messages,d.dropMessageFields))}return c}},81756:(a,b,c)=>{c.d(b,{JA:()=>h});var d=c(55511),e=c.n(d),f=c(85081);function g(a,b=""){return e().createHash("sha256").update(a+b).digest("hex")}function h(a,b=null,c=!0){let d=a.includes("::")?a.split("::")[1]:a,i=b||g(d,"machineId"),j=(0,f.Ay)(d,f.Ay.DNS),k=g(d),l=function(a){let b=Math.floor(Date.now()/1e6),c=new Uint8Array([b>>40&255,b>>32&255,b>>24&255,b>>16&255,b>>8&255,255&b]),d=165;for(let a=0;a<c.length;a++)c[a]=(c[a]^d)+a%256&255,d=c[a];let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",f="";for(let a=0;a<c.length;a+=3){let b=c[a],d=a+1<c.length?c[a+1]:0,g=a+2<c.length?c[a+2]:0;f+=e[b>>2],f+=e[(3&b)<<4|d>>4],a+1<c.length&&(f+=e[(15&d)<<2|g>>6]),a+2<c.length&&(f+=e[63&g])}return`${f}${a}`}(i),m="linux";"u">typeof process&&("win32"===process.platform?m="windows":"darwin"===process.platform&&(m="macos"));let n="x64";return"u">typeof process&&"arm64"===process.arch&&(n="aarch64"),{authorization:`Bearer ${d}`,"connect-accept-encoding":"gzip","connect-protocol-version":"1","content-type":"application/connect+proto","user-agent":"connect-es/1.6.1","x-amzn-trace-id":`Root=${e().randomUUID()}`,"x-client-key":k,"x-cursor-checksum":l,"x-cursor-client-version":"3.1.0","x-cursor-client-type":"ide","x-cursor-client-os":m,"x-cursor-client-arch":n,"x-cursor-client-device-type":"desktop","x-cursor-config-version":e().randomUUID(),"x-cursor-timezone":Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC","x-ghost-mode":c?"true":"false","x-request-id":e().randomUUID(),"x-session-id":j}}},90926:(a,b,c)=>{c.d(b,{Ak:()=>i});var d=c(55511),e=c(15308),f=c(35024),g=c(47723);let h=new Set([502,503,504]);class i extends e.H{constructor(){super("commandcode",f.xq.commandcode)}transformRequest(a,b,c,d){return b.stream=!0,b}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers||{},"x-session-id":(0,d.randomUUID)()},e=a?.apiKey||a?.accessToken;return e&&(c.Authorization=`Bearer ${e}`),b&&(c.Accept="text/event-stream"),c}async execute(a){for(let b=0;;b++){let c=await super.execute(a);if(!c?.response?.ok||!c.response.body)return c;let d=await j(c.response,a.model);if(!(!d.ok&&h.has(d.status))||b>=2)return{...c,response:d};a.log?.debug?.("RETRY",`CommandCode stream verdict ${d.status}, retry ${b+1}/2`),await new Promise(a=>setTimeout(a,1e3*(b+1)))}}parseError(a,b){let c=null;try{c=JSON.parse(b||"{}")}catch{c=null}let d=c?.error||c,e=d?.message||c?.message||b||a.statusText;return{status:Number(d?.code||d?.statusCode||a.status)||a.status,message:e||`CommandCode upstream error: ${a.status}`}}}async function j(a,b){var c,d;let e,f=a.body.getReader(),h=new TextDecoder,i="",j=[],k=null;try{for(;;){let{value:a,done:b}=await f.read();if(b){let a=i.trim();if(a)try{let b=a.startsWith("data:")?a.slice(5).trim():a,c=JSON.parse(b);c?.type==="error"&&(k=c)}catch{}break}j.push(a);let c=(i+=h.decode(a,{stream:!0})).split("\n");i=c.pop()||"";let d=!1;for(let a of c){let b,c=a.trim();if(!c)continue;let e=c.startsWith("data:")?c.slice(5).trim():c;if(!e||"[DONE]"===e){d=!0;break}try{b=JSON.parse(e)}catch{continue}if(b?.type==="error"){k=b,d=!0;break}if(b?.type==="text-delta"||b?.type==="reasoning-delta"||b?.type==="tool-input-start"||b?.type==="tool-call"||b?.type==="finish"||b?.type==="finish-step"){d=!0;break}}if(d)break}}catch{try{f.releaseLock()}catch{}return a}if(k){try{await f.cancel()}catch{}let{statusCode:a,message:b,type:c}=function(a){if(!a||"object"!=typeof a)return{statusCode:503,message:"CommandCode upstream error",type:"server_error"};let b=a.error??a.message??"unknown",c="",d=null,e="server_error";if("object"==typeof b&&null!==b?(c=b.message||b.error||JSON.stringify(b),b.statusCode&&Number.isInteger(Number(b.statusCode))?d=Number(b.statusCode):b.status&&Number.isInteger(Number(b.status))&&(d=Number(b.status)),b.type&&(e=b.type)):c="string"==typeof b?b:JSON.stringify(b),a.statusCode&&Number.isInteger(Number(a.statusCode))&&(d=Number(a.statusCode)),!d||d<400||d>599){let a=c.toLowerCase();a.includes("rate limit")||a.includes("too many requests")?(d=429,e="rate_limit_error"):a.includes("unauthorized")||a.includes("invalid api key")||a.includes("authentication")?(d=401,e="authentication_error"):a.includes("payment required")||a.includes("billing")?(d=402,e="billing_error"):a.includes("quota")||a.includes("forbidden")||a.includes("permission")?(d=403,e="permission_error"):a.includes("not found")?(d=404,e="invalid_request_error"):a.includes("unavailable")||a.includes("overloaded")||a.includes("server error")?(d=503,e="server_error"):d=503}return{statusCode:d,message:c,type:e}}(k);return new Response(JSON.stringify({error:{message:`[CommandCode error: ${b}]`,type:c,code:a}}),{status:a,statusText:503===a?"Service Unavailable":429===a?"Too Many Requests":"Bad Gateway",headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}return function(a,b,c=null){let d=new TextDecoder,e=new TextEncoder,f="",h={model:b},i=(a,b)=>{if(a)for(let c of Array.isArray(a)?a:[a])null!=c&&b.enqueue(e.encode(`data: ${JSON.stringify(c)}
156
156
 
157
- `))},j=new TransformStream({transform(a,b){let c=(f+=d.decode(a,{stream:!0})).split("\n");for(let a of(f=c.pop()||"",c)){let c=a.trim();c&&i((0,g.convertCommandCodeToOpenAI)(c,h),b)}},flush(a){let b=f.trim();b&&i((0,g.convertCommandCodeToOpenAI)(b,h),a),a.enqueue(e.encode("data: [DONE]\n\n"))}});return new Response(a.pipeThrough(j),{status:c?.status||200,statusText:c?.statusText||"OK",headers:function(a){let b=new Headers;if(a?.headers)for(let[c,d]of a.headers.entries())b.set(c,d);return b.set("Content-Type","text/event-stream"),b.set("Cache-Control","no-cache"),b.set("Connection","keep-alive"),b}(c)})}((c=j,d=f,e=!1,new ReadableStream({async pull(a){if(!e)for(let b of(e=!0,c))a.enqueue(b);try{let{value:b,done:c}=await d.read();c?a.close():a.enqueue(b)}catch(b){a.error(b)}},async cancel(a){try{await d.cancel(a)}catch{}}})),b,a)}},94515:(a,b,c)=>{c.d(b,{R:()=>i});var d=c(96179),e=c(35024),f=c(75924);let g="QwenCode/0.12.3 (linux; x64)",h={role:"system",content:[{type:"text",text:"",cache_control:{type:"ephemeral"}}]};class i extends d.L{constructor(){super("qwen")}buildUrl(a,b,c=0,d=null){let e=d?.providerSpecificData?.resourceUrl,f=e?e.replace(/^https?:\/\//,"").replace(/\/$/,""):"portal.qwen.ai";return`https://${f}/v1/chat/completions`}buildHeaders(a,b=!0){return function(a,b=!0){let c=a?.apiKey||a?.accessToken||"",d={"Content-Type":"application/json",Authorization:`Bearer ${c}`,"User-Agent":g,"X-DashScope-AuthType":"qwen-oauth","X-DashScope-CacheControl":"enable","X-DashScope-UserAgent":g,"X-Stainless-Arch":"x64","X-Stainless-Lang":"js","X-Stainless-Os":"Linux","X-Stainless-Package-Version":"5.11.0","X-Stainless-Retry-Count":"1","X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":"v18.19.1",Connection:"keep-alive","Accept-Language":"*","Sec-Fetch-Mode":"cors"};return d.Accept=b?"text/event-stream":"application/json",d}(a,b)}transformRequest(a,b,c,d){let e=b&&"object"==typeof b?{...b}:b;c&&e?.messages&&!e.stream_options&&!e.thinking&&!e.enable_thinking&&!1!==e.stream&&(e.stream_options={include_usage:!0});var f=e=function(a){let b;if(!0!==(b=a?.thinking)&&a?.enable_thinking!==!0&&("object"!=typeof b||null===b||Array.isArray(b)||"enabled"!==b.type))return a;let c=a.tool_choice;return"required"!==c&&("object"!=typeof c||null===c)?a:{...a,tool_choice:"auto"}}(e);if(!f||"object"!=typeof f)return f;let g={...f};return Array.isArray(g.messages)?g.messages=[h,...g.messages]:g.messages=[h],g}async refreshCredentials(a,b){if(!a?.refreshToken)return null;try{let c=await fetch(f.NA.qwen.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:e.xq.qwen.clientId})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","qwen refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,providerSpecificData:{...a.providerSpecificData||{},...d.resource_url?{resourceUrl:d.resource_url}:{}}}}catch(a){return b?.error?.("TOKEN",`qwen refresh error: ${a.message}`),null}}}},95128:(a,b,c)=>{c.d(b,{V:()=>g});var d=c(15308),e=c(35024),f=c(75924);class g extends d.H{constructor(){super("gemini-cli",e.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,f.sX)(this._currentModel),"X-Goog-Api-Client":f.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return(this._currentModel=a,b&&b.request&&b.model)?b:{project:d?.projectId||b?.project,model:a,request:b}}parseError(a,b){let c=super.parseError(a,b);if(429!==a.status||!b)return c;try{let a=JSON.parse(b),d=a?.error?.details;if(Array.isArray(d)){for(let a of d)if(a?.["@type"]==="type.googleapis.com/google.rpc.RetryInfo"&&a?.retryDelay){c.retryAfter=a.retryDelay;let b=function(a){if("string"==typeof a){let b=a.trim().match(/^(\d+(?:\.\d+)?)s$/);return b&&Math.ceil(1e3*parseFloat(b[1]))||null}if(a&&"object"==typeof a){let b=1e3*Number(a.seconds||0)+Math.ceil(Number(a.nanos||0)/1e6);return Number.isFinite(b)&&b>0?b:null}return null}(a.retryDelay);b&&(c.resetsAtMs=Date.now()+b);break}}}catch{}return c}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await fetch(f.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},95501:(a,b,c)=>{c.d(b,{j9:()=>D});var d=c(77598),e=c.n(d),f=c(15308),g=c(35024),h=c(86724);let i=["read","shell"];Object.freeze(["responses","chat","claude"]);let j={read:{description:"Read the contents of a file or directory. Supports text files, images, and PDFs. Images and PDFs are presented directly to the model. Each text line is prefixed by its 1-based line number as <line>: <content>. The prefix is for reference and is not part of the file content. Directory entries are returned one per line. Use offset and limit to read large files or directories in sections. Prefer one larger read over many small slices, and use grep to find specific content in large files.",parameters:{type:"object",properties:{path:{type:"string",description:"File or directory to read"},offset:{type:"integer",minimum:0,description:"The line or directory entry to start reading from (1-based)"},limit:{type:"integer",minimum:0,description:"The maximum number of lines or directory entries to read (defaults to and capped at 2000)"}},required:["path"],additionalProperties:!1}},shell:{description:"Execute a shell command and return its output. Commands run on Linux using bash. Quote file paths containing spaces or special characters. Prefer dedicated tools over shell commands when possible. When output is large, the full result is saved to a file and a truncated preview is returned. Rely on automatic truncation unless filtering the output is more useful. Commands accept an optional timeout, background commands have no timeout by default. Background commands return immediately, and you will be notified when they complete.",parameters:{type:"object",properties:{command:{type:"string",description:"Shell command string to execute"},workdir:{type:"string",description:"Working directory to execute the command in. Defaults to the current working directory. When possible, avoid changing directories in the command and set the working directory here instead."},timeout:{type:"integer",minimum:0,description:"Timeout in milliseconds. Set to 0 to disable the timeout. Defaults to 120000 for foreground commands. Background commands have no timeout by default."},background:{type:"boolean",description:"Run the command in the background and return immediately (useful for dev servers and long-running builds). You do not need to use '&' at the end of the command when using this parameter. You will be notified when it completes. DO NOT poll for completion."}},required:["command"],additionalProperties:!1}}},k=new WeakMap;function l(a){let b=String(a??"").trim();return i.includes(b)?b:""}function m(a){if(!a||"object"!=typeof a||Array.isArray(a))return"";if("string"==typeof a.name&&a.name.trim())return a.name.trim();let b=a.function;return b&&"object"==typeof b&&!Array.isArray(b)&&"string"==typeof b.name?b.name.trim():""}function n(a){let b=a?.function;return b&&"object"==typeof b&&!Array.isArray(b)?b:null}function o(a){return new Map([...a].map(([a,b])=>[b,a]))}function p(a,b="chat"){if(!a||"object"!=typeof a)return new Map;let{tools:c,map:d}=function(a,b){let c=new Map;if(!Array.isArray(a)||0===a.length)return{tools:a,map:c};let d=new Set(a.map(m)),e=new Set,f=[];for(let g of a){if(!g||"object"!=typeof g||Array.isArray(g)){f.push(g);continue}let a=l(m(g));if(!a){f.push(g);continue}if(e.has(a))continue;if(e.add(a),function(a,b,c){let d=a&&(n(a)||a),e=j[b],f="claude"===c?d?.input_schema:d?.parameters;return!!d&&d.description===e.description&&JSON.stringify(f)===JSON.stringify(e.parameters)}(g,a,b)){f.push(g);continue}let h=`${a}_client`;for(let b=2;d.has(h);b++)h=`${a}_client${b}`;d.add(h),c.set(h,a),f.push(function(a,b){let c=n(a);return c?{...a,function:{...c,name:b}}:{...a,name:b}}(g,h))}return{tools:f,map:c}}(a.tools,b);a.tools=Array.isArray(c)?c:[];let e=function(a,b){let c=[];if(!Array.isArray(a))return c;for(let d of i){if(a.some(a=>l(m(a))===d))continue;let{description:e,parameters:f}=j[d];"responses"===b?a.push({type:"function",name:d,description:e,parameters:f,strict:!1}):"claude"===b?a.push({name:d,description:e,input_schema:f}):a.push({type:"function",function:{name:d,description:e,parameters:f}}),c.push(d)}return c}(a.tools,b);return!function(a,b){if(!a||"object"!=typeof a||!b?.size)return;let c=a.tool_choice;if(!c||"object"!=typeof c||Array.isArray(c))return;let d=o(b);if("string"==typeof c.name){let b=d.get(c.name.trim());b&&(a.tool_choice={...c,name:b});return}let e=c.function;if(e&&"object"==typeof e&&!Array.isArray(e)&&"string"==typeof e.name){let b=d.get(e.name.trim());b&&(a.tool_choice={...c,function:{...e,name:b}})}}(a,d),!function(a,b){if(!a||"object"!=typeof a||!b?.size)return;let c=o(b);Array.isArray(a.input)&&(a.input=a.input.map(a=>a?.type==="function_call"&&c.has(a.name)?{...a,name:c.get(a.name)}:a)),Array.isArray(a.messages)&&(a.messages=a.messages.map(a=>{if(Array.isArray(a?.content)){let b=a.content.map(a=>a?.type==="tool_use"&&c.has(a.name)?{...a,name:c.get(a.name)}:a);a={...a,content:b}}return Array.isArray(a?.tool_calls)?{...a,tool_calls:a.tool_calls.map(a=>c.has(a?.function?.name)?{...a,function:{...a.function,name:c.get(a.function.name)}}:a)}:a}))}(a,d),e.length&&function(a,b,c){let d=c.map(a=>`\`${a}\``).join(" or "),e=c.length>1?`Do not call the ${d} tools; they are placeholders that do nothing. Use the other tools you have been given instead.`:`Do not call the ${d} tool; it is a placeholder that does nothing. Use the other tools you have been given instead.`;if("responses"===b){a.instructions="string"==typeof a.instructions&&a.instructions.trim()?`${a.instructions}
157
+ `))},j=new TransformStream({transform(a,b){let c=(f+=d.decode(a,{stream:!0})).split("\n");for(let a of(f=c.pop()||"",c)){let c=a.trim();c&&i((0,g.convertCommandCodeToOpenAI)(c,h),b)}},flush(a){let b=f.trim();b&&i((0,g.convertCommandCodeToOpenAI)(b,h),a),a.enqueue(e.encode("data: [DONE]\n\n"))}});return new Response(a.pipeThrough(j),{status:c?.status||200,statusText:c?.statusText||"OK",headers:function(a){let b=new Headers;if(a?.headers)for(let[c,d]of a.headers.entries())b.set(c,d);return b.set("Content-Type","text/event-stream"),b.set("Cache-Control","no-cache"),b.set("Connection","keep-alive"),b}(c)})}((c=j,d=f,e=!1,new ReadableStream({async pull(a){if(!e)for(let b of(e=!0,c))a.enqueue(b);try{let{value:b,done:c}=await d.read();c?a.close():a.enqueue(b)}catch(b){a.error(b)}},async cancel(a){try{await d.cancel(a)}catch{}}})),b,a)}},94515:(a,b,c)=>{c.d(b,{R:()=>i});var d=c(96179),e=c(35024),f=c(75924);let g="QwenCode/0.12.3 (linux; x64)",h={role:"system",content:[{type:"text",text:"",cache_control:{type:"ephemeral"}}]};class i extends d.L{constructor(){super("qwen")}buildUrl(a,b,c=0,d=null){let e=d?.providerSpecificData?.resourceUrl,f=e?e.replace(/^https?:\/\//,"").replace(/\/$/,""):"portal.qwen.ai";return`https://${f}/v1/chat/completions`}buildHeaders(a,b=!0){return function(a,b=!0){let c=a?.apiKey||a?.accessToken||"",d={"Content-Type":"application/json",Authorization:`Bearer ${c}`,"User-Agent":g,"X-DashScope-AuthType":"qwen-oauth","X-DashScope-CacheControl":"enable","X-DashScope-UserAgent":g,"X-Stainless-Arch":"x64","X-Stainless-Lang":"js","X-Stainless-Os":"Linux","X-Stainless-Package-Version":"5.11.0","X-Stainless-Retry-Count":"1","X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":"v18.19.1",Connection:"keep-alive","Accept-Language":"*","Sec-Fetch-Mode":"cors"};return d.Accept=b?"text/event-stream":"application/json",d}(a,b)}transformRequest(a,b,c,d){let e=b&&"object"==typeof b?{...b}:b;c&&e?.messages&&!e.stream_options&&!e.thinking&&!e.enable_thinking&&!1!==e.stream&&(e.stream_options={include_usage:!0});var f=e=function(a){let b;if(!0!==(b=a?.thinking)&&a?.enable_thinking!==!0&&("object"!=typeof b||null===b||Array.isArray(b)||"enabled"!==b.type))return a;let c=a.tool_choice;return"required"!==c&&("object"!=typeof c||null===c)?a:{...a,tool_choice:"auto"}}(e);if(!f||"object"!=typeof f)return f;let g={...f};return Array.isArray(g.messages)?g.messages=[h,...g.messages]:g.messages=[h],g}async refreshCredentials(a,b){if(!a?.refreshToken)return null;try{let c=await fetch(f.NA.qwen.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:e.xq.qwen.clientId})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","qwen refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,providerSpecificData:{...a.providerSpecificData||{},...d.resource_url?{resourceUrl:d.resource_url}:{}}}}catch(a){return b?.error?.("TOKEN",`qwen refresh error: ${a.message}`),null}}}},95128:(a,b,c)=>{c.d(b,{V:()=>g});var d=c(15308),e=c(35024),f=c(75924);class g extends d.H{constructor(){super("gemini-cli",e.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,f.sX)(this._currentModel),"X-Goog-Api-Client":f.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return(this._currentModel=a,b&&b.request&&b.model)?b:{project:d?.projectId||b?.project,model:a,request:b}}parseError(a,b){let c=super.parseError(a,b);if(429!==a.status||!b)return c;try{let a=JSON.parse(b),d=a?.error?.details;if(Array.isArray(d)){for(let a of d)if(a?.["@type"]==="type.googleapis.com/google.rpc.RetryInfo"&&a?.retryDelay){c.retryAfter=a.retryDelay;let b=function(a){if("string"==typeof a){let b=a.trim().match(/^(\d+(?:\.\d+)?)s$/);return b&&Math.ceil(1e3*parseFloat(b[1]))||null}if(a&&"object"==typeof a){let b=1e3*Number(a.seconds||0)+Math.ceil(Number(a.nanos||0)/1e6);return Number.isFinite(b)&&b>0?b:null}return null}(a.retryDelay);b&&(c.resetsAtMs=Date.now()+b);break}}}catch{}return c}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await fetch(f.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},95501:(a,b,c)=>{c.d(b,{j9:()=>F});var d=c(77598),e=c.n(d),f=c(15308),g=c(35024),h=c(41004),i=c(86724);let j=["read","shell"];Object.freeze(["responses","chat","claude"]);let k={read:{description:"Read the contents of a file or directory. Supports text files, images, and PDFs. Images and PDFs are presented directly to the model. Each text line is prefixed by its 1-based line number as <line>: <content>. The prefix is for reference and is not part of the file content. Directory entries are returned one per line. Use offset and limit to read large files or directories in sections. Prefer one larger read over many small slices, and use grep to find specific content in large files.",parameters:{type:"object",properties:{path:{type:"string",description:"File or directory to read"},offset:{type:"integer",minimum:0,description:"The line or directory entry to start reading from (1-based)"},limit:{type:"integer",minimum:0,description:"The maximum number of lines or directory entries to read (defaults to and capped at 2000)"}},required:["path"],additionalProperties:!1}},shell:{description:"Execute a shell command and return its output. Commands run on Linux using bash. Quote file paths containing spaces or special characters. Prefer dedicated tools over shell commands when possible. When output is large, the full result is saved to a file and a truncated preview is returned. Rely on automatic truncation unless filtering the output is more useful. Commands accept an optional timeout, background commands have no timeout by default. Background commands return immediately, and you will be notified when they complete.",parameters:{type:"object",properties:{command:{type:"string",description:"Shell command string to execute"},workdir:{type:"string",description:"Working directory to execute the command in. Defaults to the current working directory. When possible, avoid changing directories in the command and set the working directory here instead."},timeout:{type:"integer",minimum:0,description:"Timeout in milliseconds. Set to 0 to disable the timeout. Defaults to 120000 for foreground commands. Background commands have no timeout by default."},background:{type:"boolean",description:"Run the command in the background and return immediately (useful for dev servers and long-running builds). You do not need to use '&' at the end of the command when using this parameter. You will be notified when it completes. DO NOT poll for completion."}},required:["command"],additionalProperties:!1}}},l=new WeakMap;function m(a){let b=String(a??"").trim();return j.includes(b)?b:""}function n(a){if(!a||"object"!=typeof a||Array.isArray(a))return"";if("string"==typeof a.name&&a.name.trim())return a.name.trim();let b=a.function;return b&&"object"==typeof b&&!Array.isArray(b)&&"string"==typeof b.name?b.name.trim():""}function o(a){let b=a?.function;return b&&"object"==typeof b&&!Array.isArray(b)?b:null}function p(a){return new Map([...a].map(([a,b])=>[b,a]))}function q(a,b="chat"){if(!a||"object"!=typeof a)return new Map;let{tools:c,map:d}=function(a,b){let c=new Map;if(!Array.isArray(a)||0===a.length)return{tools:a,map:c};let d=new Set(a.map(n)),e=new Set,f=[];for(let g of a){if(!g||"object"!=typeof g||Array.isArray(g)){f.push(g);continue}let a=m(n(g));if(!a){f.push(g);continue}if(e.has(a))continue;if(e.add(a),function(a,b,c){let d=a&&(o(a)||a),e=k[b],f="claude"===c?d?.input_schema:d?.parameters;return!!d&&d.description===e.description&&JSON.stringify(f)===JSON.stringify(e.parameters)}(g,a,b)){f.push(g);continue}let h=`${a}_client`;for(let b=2;d.has(h);b++)h=`${a}_client${b}`;d.add(h),c.set(h,a),f.push(function(a,b){let c=o(a);return c?{...a,function:{...c,name:b}}:{...a,name:b}}(g,h))}return{tools:f,map:c}}(a.tools,b);a.tools=Array.isArray(c)?c:[];let e=function(a,b){let c=[];if(!Array.isArray(a))return c;for(let d of j){if(a.some(a=>m(n(a))===d))continue;let{description:e,parameters:f}=k[d];"responses"===b?a.push({type:"function",name:d,description:e,parameters:f,strict:!1}):"claude"===b?a.push({name:d,description:e,input_schema:f}):a.push({type:"function",function:{name:d,description:e,parameters:f}}),c.push(d)}return c}(a.tools,b);return!function(a,b){if(!a||"object"!=typeof a||!b?.size)return;let c=a.tool_choice;if(!c||"object"!=typeof c||Array.isArray(c))return;let d=p(b);if("string"==typeof c.name){let b=d.get(c.name.trim());b&&(a.tool_choice={...c,name:b});return}let e=c.function;if(e&&"object"==typeof e&&!Array.isArray(e)&&"string"==typeof e.name){let b=d.get(e.name.trim());b&&(a.tool_choice={...c,function:{...e,name:b}})}}(a,d),!function(a,b){if(!a||"object"!=typeof a||!b?.size)return;let c=p(b);Array.isArray(a.input)&&(a.input=a.input.map(a=>a?.type==="function_call"&&c.has(a.name)?{...a,name:c.get(a.name)}:a)),Array.isArray(a.messages)&&(a.messages=a.messages.map(a=>{if(Array.isArray(a?.content)){let b=a.content.map(a=>a?.type==="tool_use"&&c.has(a.name)?{...a,name:c.get(a.name)}:a);a={...a,content:b}}return Array.isArray(a?.tool_calls)?{...a,tool_calls:a.tool_calls.map(a=>c.has(a?.function?.name)?{...a,function:{...a.function,name:c.get(a.function.name)}}:a)}:a}))}(a,d),e.length&&function(a,b,c){let d=c.map(a=>`\`${a}\``).join(" or "),e=c.length>1?`Do not call the ${d} tools; they are placeholders that do nothing. Use the other tools you have been given instead.`:`Do not call the ${d} tool; it is a placeholder that does nothing. Use the other tools you have been given instead.`;if("responses"===b){a.instructions="string"==typeof a.instructions&&a.instructions.trim()?`${a.instructions}
158
158
 
159
159
  ${e}`:e;return}if("claude"===b||void 0!==a.system)return Array.isArray(a.system)?a.system=[...a.system,{type:"text",text:e}]:"string"==typeof a.system&&a.system.trim()?a.system=`${a.system}
160
160
 
161
161
  ${e}`:a.system=e;if(!Array.isArray(a.messages))return;let f=a.messages[0];f?.role==="system"&&"string"==typeof f.content?a.messages=[{...f,content:`${f.content}
162
162
 
163
- ${e}`},...a.messages.slice(1)]:a.messages=[{role:"system",content:e},...a.messages]}(a,b,e),"none"===a.tool_choice&&delete a.tool_choice,a.tool_choice||"responses"!==b||(a.tool_choice="auto"),q(a,d),d}function q(a,b){a&&"object"==typeof a&&b?.size&&k.set(a,b)}var r=c(13120),s=c(14530);let t="_opencodeSession",u=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,v=new Set(["muse-spark-1.2-contributor-free","muse-spark-1.3-contributor-free"]),w=new Set(["union-alpha"]),x=new Set(["muse-spark-1.3","muse-spark-1.3-contributor-free"]),y=(1n<<48n)-1n,z=(1n<<36n)-1n;function A(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function B(a){let b,c=A(a);return v.has(c)||(b=A(c),/^muse[-_]?spark(?:$|[-_:.\s])/i.test(b.includes("/")?b.split("/").pop():b))}function C(a){return w.has(A(a))}class D extends f.H{constructor(){super("opencode",g.xq.opencode)}prepareRequestCredentials({body:a,credentials:b,clientTool:c}={}){let d=b||{};return{...d,[t]:function(a,b,c){let d=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if("x-opencode-session"===b.toLowerCase())return function(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}(c);return null}(b?.rawHeaders);if(d&&u.test(d))return d;let f={...b||{}};return f.connectionId||f.id||(f.connectionId="opencode:noauth"),function(a,b=""){if("string"==typeof a&&u.test(a.trim()))return a.trim();let c=e().createHash("sha256").update(`opencode\0${b||"generic"}\0${a||""}`).digest(),d=(~(4096n*BigInt(BigInt(`0x${c.subarray(0,5).toString("hex")}`)&z)+BigInt(1))&y).toString(16).padStart(12,"0"),f="";for(let a=6;a<20;a++)f+="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[c[a]%62];return`ses_${d}${f}`}(d||(0,r.fH)(f,a),c)}(a,d,c)}}resolveTargetFormat(a){return C(a)?"claude":"openai"}transformRequest(a,b,c,d){if(!b||"object"!=typeof b)return b;if(a&&!b.model&&(b.model=a),B(a||b.model)){let e=(0,r.dY)(a,b,c,d);return void 0!==e.tool_choice&&"auto"!==e.tool_choice&&x.has(A(a))&&(e.tool_choice="auto"),e.stream=!0,p(e,"responses"),e}b.stream=!0;let e=p(b,C(a)?"claude":"chat"),f=(0,h.Z)({provider:this.provider,model:a,body:b});return f!==b&&q(f,e),f}async execute(a){var b;let c=this.prepareRequestCredentials(a),d=await super.execute({...a,credentials:c});if(!d?.response?.ok)return d;let e=function(a,b){if(!b?.size||!a?.body)return a;let c=new TextDecoder("utf-8",{fatal:!1}),d=new TextEncoder,e="",f=a=>a.split("\n").map(a=>(function(a,b){let c;if(!a.startsWith("data:"))return a;let d=a.slice(5).trim();if(!d||"[DONE]"===d)return a;try{c=JSON.parse(d)}catch{return a}let e=function a(b,c){if(!c?.size||!b)return b;if(Array.isArray(b))return b.map(b=>a(b,c));if("object"!=typeof b)return b;let d=b,e=(a,c)=>{d===b&&(d={...b}),d[a]=c};if("content_block_start"===b.type){let a=b.content_block;a?.type==="tool_use"&&"string"==typeof a.name&&c.has(a.name)&&e("content_block",{...a,name:c.get(a.name)})}Array.isArray(b.content)&&e("content",b.content.map(a=>a?.type==="tool_use"&&"string"==typeof a.name&&c.has(a.name)?{...a,name:c.get(a.name)}:a)),Array.isArray(b.choices)&&e("choices",b.choices.map(a=>{let b=!1,d={...a};for(let e of["delta","message"]){let f=a?.[e];if(!f||!Array.isArray(f.tool_calls)||0===f.tool_calls.length)continue;let g=f.tool_calls.map(a=>{let d=a?.function?.name;return"string"==typeof d&&c.has(d)?(b=!0,{...a,function:{...a.function,name:c.get(d)}}):a});d[e]={...f,tool_calls:g}}return b?d:a})),Array.isArray(b.output)&&e("output",b.output.map(a=>a?.type==="function_call"&&"string"==typeof a.name&&c.has(a.name)?{...a,name:c.get(a.name)}:a));let f=b.item;return f?.type==="function_call"&&"string"==typeof f.name&&c.has(f.name)&&e("item",{...f,name:c.get(f.name)}),d}(c,b);return e===c?a:`data: ${JSON.stringify(e)}`})(a,b)).join("\n"),g=new TransformStream({transform(a,b){let g=(e+=c.decode(a,{stream:!0})).lastIndexOf("\n");if(-1===g)return;let h=e.slice(0,g+1);e=e.slice(g+1),b.enqueue(d.encode(f(h)))},flush(a){(e+=c.decode())&&a.enqueue(d.encode(f(e)))}});return new Response(a.body.pipeThrough(g),{status:a.status,statusText:a.statusText,headers:a.headers})}(d.response,(b=d.transformedBody)&&"object"==typeof b&&k.get(b)||null);return B(a.model)&&(e=(0,s.L)(e,{model:a.model,stream:a.stream})),e===d.response?d:{...d,response:e}}buildUrl(a){let b=this.config.baseUrl;return B(a)?`${b}/inference/v1/responses`:C(a)?`${b}/inference/v1/messages`:`${b}/inference/v1/chat/completions`}buildHeaders(a,b=!0,c=""){let d,e=function(a){let b={};for(let[c,d]of Object.entries(a||{}))b[c.toLowerCase()]=d;return b}(a?.rawHeaders),f=e["user-agent"]||"",g=a?.[t]||this.prepareRequestCredentials({credentials:a})[t],h={"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":(d=String(f||"").match(/^opencode\/[a-z0-9-]+\/(\d+)\.\d+\.\d+\/[a-z0-9-]+$/i))&&parseInt(d[1],10)>=2?f:"opencode/latest/2.0.26/cli","x-opencode-client":e["x-opencode-client"]||"cli","x-opencode-session":g,"x-opencode-session-id":g,"x-session-affinity":g,"x-session-id":g,"x-opencode-project":e["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"};return String(c).endsWith("/messages")&&(h["anthropic-version"]="2023-06-01"),h}}},96179:(a,b,c)=>{c.d(b,{L:()=>m});var d=c(15308),e=c(35024),f=c(75924),g=c(15626),h=c(39609),i=c(86724),j=c(74010),k=c(33748),l=c(55399);class m extends d.H{constructor(a){super(a,e.xq[a]||e.xq.openai)}isClaudeFormatTarget(){return this.config?.format==="claude"||!!this.provider?.startsWith?.("anthropic-compatible-")}transformRequest(a,b){let c=this.applyJsonSchemaFallback(b);return c&&"object"==typeof c&&(this.isClaudeFormatTarget()&&(c=(0,k.VM)(c,c.model||a)),"gemini"===this.provider&&(delete c.model,delete c.stream),("cerebras"===this.provider||"mistral"===this.provider)&&delete c.client_metadata,(0,j.c)(this.provider,a,c)),(0,i.Z)({provider:this.provider,model:a,body:c})}applyJsonSchemaFallback(a){if(!this.provider?.startsWith?.("openai-compatible-"))return a;let b=a?.response_format;if(b?.type!=="json_schema"||!b.json_schema?.schema)return a;let c=JSON.stringify(b.json_schema.schema,null,2),d=`You must respond with valid JSON that strictly follows this JSON schema:
163
+ ${e}`},...a.messages.slice(1)]:a.messages=[{role:"system",content:e},...a.messages]}(a,b,e),"none"===a.tool_choice&&delete a.tool_choice,a.tool_choice||"responses"!==b||(a.tool_choice="auto"),r(a,d),d}function r(a,b){a&&"object"==typeof a&&b?.size&&l.set(a,b)}var s=c(13120),t=c(14530);let u="_opencodeSession",v=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,w=new Set(["muse-spark-1.2-contributor-free","muse-spark-1.3-contributor-free"]),x=new Set(["union-alpha"]),y=new Set(["muse-spark-1.3","muse-spark-1.3-contributor-free"]),z=(1n<<48n)-1n,A=new Map,B=setInterval(()=>{let a=Date.now();for(let[b,c]of A)a-c.lastUsed>h.v1.sessionTtlMs&&A.delete(b)},h.v1.sessionCleanupIntervalMs);function C(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function D(a){let b,c=C(a);return w.has(c)||(b=C(c),/^muse[-_]?spark(?:$|[-_:.\s])/i.test(b.includes("/")?b.split("/").pop():b))}function E(a){return x.has(C(a))}B.unref&&B.unref();class F extends f.H{constructor(){super("opencode",g.xq.opencode)}prepareRequestCredentials({body:a,credentials:b,clientTool:c}={}){let d=b||{};return{...d,[u]:function(a,b,c){let d=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if("x-opencode-session"===b.toLowerCase())return function(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}(c);return null}(b?.rawHeaders);if(d&&v.test(d))return d;let f={...b||{}};return f.connectionId||f.id||(f.connectionId="opencode:noauth"),function(a,b=""){if("string"==typeof a&&v.test(a.trim()))return a.trim();let c=`${b||"generic"}\0${a||""}`,d=A.get(c);if(d)return d.lastUsed=Date.now(),d.sessionId;let f=`ses_${(~(4096n*BigInt(Date.now())+BigInt(1))&z).toString(16).padStart(12,"0")}${function(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[a[c]%62];return b}()}`;return A.size>=5e3&&A.delete(A.keys().next().value),A.set(c,{sessionId:f,lastUsed:Date.now()}),f}(d||(0,s.fH)(f,a),c)}(a,d,c)}}resolveTargetFormat(a){return E(a)?"claude":"openai"}transformRequest(a,b,c,d){if(!b||"object"!=typeof b)return b;if(a&&!b.model&&(b.model=a),D(a||b.model)){let e=(0,s.dY)(a,b,c,d);return void 0!==e.tool_choice&&"auto"!==e.tool_choice&&y.has(C(a))&&(e.tool_choice="auto"),e.stream=!0,q(e,"responses"),e}b.stream=!0;let e=q(b,E(a)?"claude":"chat"),f=(0,i.Z)({provider:this.provider,model:a,body:b});return f!==b&&r(f,e),f}async execute(a){var b;let c=this.prepareRequestCredentials(a),d=await super.execute({...a,credentials:c});if(!d?.response?.ok)return d;let e=function(a,b){if(!b?.size||!a?.body)return a;let c=new TextDecoder("utf-8",{fatal:!1}),d=new TextEncoder,e="",f=a=>a.split("\n").map(a=>(function(a,b){let c;if(!a.startsWith("data:"))return a;let d=a.slice(5).trim();if(!d||"[DONE]"===d)return a;try{c=JSON.parse(d)}catch{return a}let e=function a(b,c){if(!c?.size||!b)return b;if(Array.isArray(b))return b.map(b=>a(b,c));if("object"!=typeof b)return b;let d=b,e=(a,c)=>{d===b&&(d={...b}),d[a]=c};if("content_block_start"===b.type){let a=b.content_block;a?.type==="tool_use"&&"string"==typeof a.name&&c.has(a.name)&&e("content_block",{...a,name:c.get(a.name)})}Array.isArray(b.content)&&e("content",b.content.map(a=>a?.type==="tool_use"&&"string"==typeof a.name&&c.has(a.name)?{...a,name:c.get(a.name)}:a)),Array.isArray(b.choices)&&e("choices",b.choices.map(a=>{let b=!1,d={...a};for(let e of["delta","message"]){let f=a?.[e];if(!f||!Array.isArray(f.tool_calls)||0===f.tool_calls.length)continue;let g=f.tool_calls.map(a=>{let d=a?.function?.name;return"string"==typeof d&&c.has(d)?(b=!0,{...a,function:{...a.function,name:c.get(d)}}):a});d[e]={...f,tool_calls:g}}return b?d:a})),Array.isArray(b.output)&&e("output",b.output.map(a=>a?.type==="function_call"&&"string"==typeof a.name&&c.has(a.name)?{...a,name:c.get(a.name)}:a));let f=b.item;return f?.type==="function_call"&&"string"==typeof f.name&&c.has(f.name)&&e("item",{...f,name:c.get(f.name)}),d}(c,b);return e===c?a:`data: ${JSON.stringify(e)}`})(a,b)).join("\n"),g=new TransformStream({transform(a,b){let g=(e+=c.decode(a,{stream:!0})).lastIndexOf("\n");if(-1===g)return;let h=e.slice(0,g+1);e=e.slice(g+1),b.enqueue(d.encode(f(h)))},flush(a){(e+=c.decode())&&a.enqueue(d.encode(f(e)))}});return new Response(a.body.pipeThrough(g),{status:a.status,statusText:a.statusText,headers:a.headers})}(d.response,(b=d.transformedBody)&&"object"==typeof b&&l.get(b)||null);return D(a.model)&&(e=(0,t.L)(e,{model:a.model,stream:a.stream})),e===d.response?d:{...d,response:e}}buildUrl(a){let b=this.config.baseUrl;return D(a)?`${b}/inference/v1/responses`:E(a)?`${b}/inference/v1/messages`:`${b}/inference/v1/chat/completions`}buildHeaders(a,b=!0,c=""){let d,e=function(a){let b={};for(let[c,d]of Object.entries(a||{}))b[c.toLowerCase()]=d;return b}(a?.rawHeaders),f=e["user-agent"]||"",g=a?.[u]||this.prepareRequestCredentials({credentials:a})[u],h={"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":(d=String(f||"").match(/^opencode\/[a-z0-9-]+\/(\d+)\.\d+\.\d+\/[a-z0-9-]+$/i))&&parseInt(d[1],10)>=2?f:"opencode/latest/2.0.26/cli","x-opencode-client":e["x-opencode-client"]||"cli","x-opencode-session":g,"x-opencode-session-id":g,"x-session-affinity":g,"x-session-id":g,"x-opencode-project":e["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"};return String(c).endsWith("/messages")&&(h["anthropic-version"]="2023-06-01"),h}}},96179:(a,b,c)=>{c.d(b,{L:()=>m});var d=c(15308),e=c(35024),f=c(75924),g=c(15626),h=c(39609),i=c(86724),j=c(74010),k=c(33748),l=c(55399);class m extends d.H{constructor(a){super(a,e.xq[a]||e.xq.openai)}isClaudeFormatTarget(){return this.config?.format==="claude"||!!this.provider?.startsWith?.("anthropic-compatible-")}transformRequest(a,b){let c=this.applyJsonSchemaFallback(b);return c&&"object"==typeof c&&(this.isClaudeFormatTarget()&&(c=(0,k.VM)(c,c.model||a)),"gemini"===this.provider&&(delete c.model,delete c.stream),("cerebras"===this.provider||"mistral"===this.provider)&&delete c.client_metadata,(0,j.c)(this.provider,a,c)),(0,i.Z)({provider:this.provider,model:a,body:c})}applyJsonSchemaFallback(a){if(!this.provider?.startsWith?.("openai-compatible-"))return a;let b=a?.response_format;if(b?.type!=="json_schema"||!b.json_schema?.schema)return a;let c=JSON.stringify(b.json_schema.schema,null,2),d=`You must respond with valid JSON that strictly follows this JSON schema:
164
164
  \`\`\`json
165
165
  ${c}
166
166
  \`\`\`
@@ -1 +1 @@
1
- "use strict";exports.id=5718,exports.ids=[5718],exports.modules={15626:(a,b,c)=>{c.d(b,{w$:()=>e});let d=c(39006).rE||"0.0.0";function e(a,b={}){let c,f=(c=function(a){if("string"!=typeof a)return"";let b=a.trim();return b?b.toLowerCase().startsWith("workos:")?b:/^eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/.test(b)?`workos:${b}`:b:""}(a))?`Bearer ${c}`:"",g={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","User-Agent":`kRouter/${d}`,"X-PLATFORM":process.platform||"unknown","X-PLATFORM-VERSION":process.version||"unknown","X-CLIENT-TYPE":"9router","X-CLIENT-VERSION":d,"X-CORE-VERSION":d,"X-IS-MULTIROOT":"false",...b};return f&&(g.Authorization=f),g}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(9248)},18893:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>z,OPTIONS:()=>y,buildModelsList:()=>x,invalidateModelsCache:()=>q});var d=c(81329),e=c(75681),f=c(89718),g=c(16655),h=c(29679),i=c(53225),j=c(15626);async function k(a){let b=!!a?.apiKey,c=b?a.apiKey:a?.accessToken;if(!c)return null;let d=new AbortController,e=setTimeout(()=>d.abort(),5e3);try{let a=await fetch("https://api.cline.bot/api/v1/models",{method:"GET",headers:b?{Accept:"application/json",Authorization:`Bearer ${c}`}:(0,j.w$)(c,{Accept:"application/json"}),signal:d.signal});if(!a.ok)return null;let e=await a.json(),f=Array.isArray(e)?e:e?.data;if(!Array.isArray(f))return null;let g=f.filter(a=>"string"==typeof a?.id&&a.id.startsWith("cline-pass/")).map(a=>({id:a.id,name:a.name||a.id}));return g.length?{models:g}:null}catch{return null}finally{clearTimeout(e)}}var l=c(52007),m=c(66306),n=c(77598),o=c.n(n);let p=new Map;function q(){p.clear()}let r={kiro:async a=>{let b=await (0,h.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},qoder:async a=>{let b=await (0,i.EV)({accessToken:a.accessToken,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}});return b?.models?.length?{models:b.models.map(a=>({id:a.id,name:a.name}))}:null},kimchi:async a=>{let b=await (0,l.av)({accessToken:a.accessToken,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData||{}});return b?.models?.length?{models:b.models}:null},clinepass:async a=>{let b=await k({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null}},s=/[-_][0-9a-f]{8,}$/i,t={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText",video:"video"};function u(a){return a?.type&&t[a.type]||"llm"}async function v(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{var f;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:d,cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let g=(f=await e.json(),Array.isArray(f)?f:f?.data||f?.models||f?.results||[]);return Array.from(new Set(g.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function w(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}async function x(a){let b=[],c=!1;try{b=(b=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){c=!0,console.log("Could not fetch providers, returning all models")}let h=[];try{h=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let i=[];try{i=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let j={};try{j=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let k={};try{k=await (0,g.vF)()}catch(a){console.log("Could not fetch disabled models")}let l=(a,b)=>Array.isArray(k[a])&&k[a].includes(b),n=new Map;for(let a of b)n.has(a.provider)||n.set(a.provider,a);let o=[];for(let b of h){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;let c={id:b.name,object:"model",owned_by:"combo"};("webSearch"===b.kind||"webFetch"===b.kind)&&(c.kind=b.kind),o.push(c)}if(c){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.vq))if(w(b[c]||c,a))for(let b of e)a.includes(u(b))&&(l(c,b.id)||o.push({id:`${c}/${b.id}`,object:"model",owned_by:c}));for(let b of i){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&o.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[b,c]of n.entries()){if(!w(b,a))continue;let f=d.Xg[b]||b,g=(c?.providerSpecificData?.prefix||(0,e.wG)(b)||f).trim(),h=d.vq[f]||[],k=c?.providerSpecificData?.enabledModels,n=Array.isArray(k)&&k.length>0,p=(0,e.mq)(b)||(0,e.gb)(b),q=new Map(h.map(a=>[a.id,u(a)])),t=n?Array.from(new Set(k.filter(a=>"string"==typeof a&&""!==a.trim()))):h.map(a=>a.id);p&&0===t.length&&!s.test(b)&&(t=await v(c));let x=r[b];if(x&&!n)try{let a=await x(c);a?.models?.length&&(t=a.models.map(a=>a.id))}catch(a){console.log(`Live model fetch failed for ${b}: ${a?.message||a}`)}let y=t.map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),z=new Map;for(let c of Array.from(new Set([...y,...i.filter(c=>{if(!c?.id)return!1;let d=u(c)||"llm";if(!a.includes(d)&&!("imageToText"===d&&a.includes("llm")))return!1;let e=c.providerAlias;return e===f||e===g||e===b}).map(a=>{let b=String(a.id).trim();return b&&z.set(b,u(a)||"llm"),b}).filter(a=>""!==a),...Object.values(j||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${g}/`)||a.startsWith(`${f}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let d=z.get(c),e=q.get(c)||d||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c),h="imageToText"===e&&a.includes("llm");if(!a.includes(e)&&!h||l(g,c)||l(f,c))continue;let i={id:`${g}/${c}`,object:"model",owned_by:g},j=(0,m.a0)(d);if(j&&(i.capabilities=j),"llm"===e||h){let a=(0,m.nl)(b,c);Number.isFinite(a?.contextWindow)&&(i.context_length=a.contextWindow),Number.isFinite(a?.maxOutput)&&(i.max_completion_tokens=a.maxOutput)}o.push(i)}let A=e.AI_PROVIDERS[b],B=[];if(a.includes("tts")&&Array.isArray(A?.ttsConfig?.models))for(let a of A.ttsConfig.models)a?.id&&B.push(a.id);if(a.includes("embedding")&&Array.isArray(A?.embeddingConfig?.models))for(let a of A.embeddingConfig.models)a?.id&&B.push(a.id);for(let a of B)l(g,a)||l(f,a)||o.push({id:`${g}/${a}`,object:"model",owned_by:g});a.includes("webSearch")&&A?.searchConfig&&o.push({id:`${g}/search`,object:"model",kind:"webSearch",owned_by:g}),a.includes("webFetch")&&A?.fetchConfig&&o.push({id:`${g}/fetch`,object:"model",kind:"webFetch",owned_by:g})}let p=[],q=new Set;for(let a of o)!a?.id||q.has(a.id)||(q.add(a.id),p.push(a));return p}async function y(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function z(a){try{var b;let c=(a?.headers?.get("user-agent")||"").toLowerCase(),d=new URL(a.url),e=c.includes("codex")||"codex"===d.searchParams.get("format"),f=["llm"],g=(b=e?"codex":"openai",`${[...f].sort().join(",")}|${b}`),h=Date.now(),i=p.get(g);if(!i||i.expiresAt<=h){let a,b=await x(f),c=e?JSON.stringify({models:b.map(a=>({id:a.id,name:a.id,...a.capabilities?{capabilities:a.capabilities}:{}}))}):JSON.stringify({object:"list",data:b});i={body:c,etag:(a=o().createHash("sha1").update(c).digest("hex").slice(0,16),`W/"${a}"`),expiresAt:h+3e4},p.set(g,i)}let j=a?.headers?.get("if-none-match");if(j&&j===i.etag)return new Response(null,{status:304,headers:{"Access-Control-Allow-Origin":"*","Cache-Control":"public, max-age=30",ETag:i.etag}});return new Response(i.body,{status:200,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*","Cache-Control":"public, max-age=30",ETag:i.etag}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},19225:(a,b,c)=>{a.exports=c(44870)},29679:(a,b,c)=>{c.d(b,{cW:()=>l});var d=c(94755),e=c(55511),f=c(8590);let g="1.0.0",h="0.10.32",i="us-east-1",j=new Map;async function k(a,b){let c,f,j,k=a?.providerSpecificData?.profileArn||"",l=function(a){if(!a||"string"!=typeof a)return i;let b=a.split(":");return b.length>=4&&b[3]?b[3]:i}(k),m=new URLSearchParams;m.set("origin","AI_EDITOR"),k&&m.set("profileArn",k);let n=`https://q.${l}.amazonaws.com/ListAvailableModels?${m.toString()}`,o={...(f=a?.providerSpecificData?.clientId||a?.refreshToken||a?.providerSpecificData?.profileArn||a?.accessToken||"kiro-anonymous",j=(0,e.createHash)("sha256").update(String(f)).digest("hex"),{"User-Agent":`aws-sdk-js/${g} ua/2.1 os/windows#10.0.26200 lang/js md/nodejs#22.21.1 api/codewhispererruntime#${g} m/N,E KiroIDE-${h}-${j}`,"x-amz-user-agent":`aws-sdk-js/${g} KiroIDE-${h}-${j}`,"x-amzn-kiro-agent-mode":"vibe","x-amzn-codewhisperer-optout":"true","amz-sdk-request":"attempt=1; max=1","amz-sdk-invocation-id":(0,d.A)(),Accept:"application/json"}),Authorization:`Bearer ${a?.accessToken||""}`},p=new AbortController,q=setTimeout(()=>p.abort("timeout"),3e4);b&&"function"==typeof b.addEventListener&&b.addEventListener("abort",()=>p.abort(b.reason));try{c=await fetch(n,{method:"GET",headers:o,signal:p.signal})}finally{clearTimeout(q)}if(!c.ok){let a=await c.text().catch(()=>""),b=Error(`Kiro ListAvailableModels ${c.status}: ${a||c.statusText}`);throw b.status=c.status,b.body=a,b}let r=await c.json();return Array.isArray(r?.models)?r.models:[]}async function l(a,b={}){let c,d,g;if(!a||!a.accessToken)return b.log?.debug?.("KIRO_MODELS","No accessToken; skipping live fetch"),null;let h=(g=(d=a?.providerSpecificData||{}).profileArn||d.clientId||a?.refreshToken||a?.accessToken||"anonymous",(0,e.createHash)("sha256").update(`kiro:${g}`).digest("hex")),i=Date.now();if(!b.forceRefresh){let a=j.get(h);if(a&&a.expiresAt>i)return{models:a.models,rawModels:a.rawModels}}try{c=await k(a,b.signal)}catch(d){if(!d||401!==d.status||!a.refreshToken)return b.log?.warn?.("KIRO_MODELS",`ListAvailableModels failed: ${d?.message||d}`),null;{b.log?.info?.("KIRO_MODELS","Got 401 from Kiro; refreshing token");let d=await (0,f.Ql)(a.refreshToken,a.providerSpecificData,b.log);if(!d?.accessToken)return b.log?.warn?.("KIRO_MODELS","Token refresh did not return accessToken"),null;{let e={...a,...d};if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed(d)}catch(a){b.log?.warn?.("KIRO_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await k(e,b.signal),a.accessToken=e.accessToken,e.refreshToken&&(a.refreshToken=e.refreshToken)}catch(a){return b.log?.warn?.("KIRO_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}}let m=[];for(let a of c){if(!a||"object"!=typeof a)continue;let b=a.modelId||a.id;if(!b)continue;let c=function(a,b,c){let d=(a||b||"Kiro").trim(),e=Number(c);if(!Number.isFinite(e)||1e-9>Math.abs(e-1)||e<=0)return`Kiro ${d}`;let f=e.toFixed(1).replace(",",".");return`Kiro ${d} (${f}x credit)`}(a.modelName,b,a.rateMultiplier),d=Number(a?.tokenLimits?.maxInputTokens)||2e5;for(let e of function(a,b){let c,d=((c=a).endsWith("-agentic")&&(c=c.slice(0,-8)),c.endsWith("-thinking")&&(c=c.slice(0,-9)),c),e=b||`Kiro ${d}`,f=[{id:d,name:e,capabilities:{thinking:!1,agentic:!1}},{id:`${d}-thinking`,name:`${e} (Thinking)`,capabilities:{thinking:!0,agentic:!1}}];return"auto"!==d&&(f.push({id:`${d}-agentic`,name:`${e} (Agentic)`,capabilities:{thinking:!1,agentic:!0}}),f.push({id:`${d}-thinking-agentic`,name:`${e} (Thinking + Agentic)`,capabilities:{thinking:!0,agentic:!0}})),f}(b,c))m.push({...e,contextLength:d,rateMultiplier:Number.isFinite(Number(a.rateMultiplier))?Number(a.rateMultiplier):1,upstreamModelId:b,description:a.description||""})}return j.set(h,{expiresAt:i+3e5,models:m,rawModels:c}),{models:m,rawModels:c}}},39006:a=>{a.exports={rE:"0.5.167"}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},81329:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(44404);new Set(Object.entries(c(75681).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a));let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
1
+ "use strict";exports.id=5718,exports.ids=[5718],exports.modules={15626:(a,b,c)=>{c.d(b,{w$:()=>e});let d=c(39006).rE||"0.0.0";function e(a,b={}){let c,f=(c=function(a){if("string"!=typeof a)return"";let b=a.trim();return b?b.toLowerCase().startsWith("workos:")?b:/^eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/.test(b)?`workos:${b}`:b:""}(a))?`Bearer ${c}`:"",g={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","User-Agent":`kRouter/${d}`,"X-PLATFORM":process.platform||"unknown","X-PLATFORM-VERSION":process.version||"unknown","X-CLIENT-TYPE":"9router","X-CLIENT-VERSION":d,"X-CORE-VERSION":d,"X-IS-MULTIROOT":"false",...b};return f&&(g.Authorization=f),g}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(9248)},18893:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>z,OPTIONS:()=>y,buildModelsList:()=>x,invalidateModelsCache:()=>q});var d=c(81329),e=c(75681),f=c(89718),g=c(16655),h=c(29679),i=c(53225),j=c(15626);async function k(a){let b=!!a?.apiKey,c=b?a.apiKey:a?.accessToken;if(!c)return null;let d=new AbortController,e=setTimeout(()=>d.abort(),5e3);try{let a=await fetch("https://api.cline.bot/api/v1/models",{method:"GET",headers:b?{Accept:"application/json",Authorization:`Bearer ${c}`}:(0,j.w$)(c,{Accept:"application/json"}),signal:d.signal});if(!a.ok)return null;let e=await a.json(),f=Array.isArray(e)?e:e?.data;if(!Array.isArray(f))return null;let g=f.filter(a=>"string"==typeof a?.id&&a.id.startsWith("cline-pass/")).map(a=>({id:a.id,name:a.name||a.id}));return g.length?{models:g}:null}catch{return null}finally{clearTimeout(e)}}var l=c(52007),m=c(66306),n=c(77598),o=c.n(n);let p=new Map;function q(){p.clear()}let r={kiro:async a=>{let b=await (0,h.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},qoder:async a=>{let b=await (0,i.EV)({accessToken:a.accessToken,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}});return b?.models?.length?{models:b.models.map(a=>({id:a.id,name:a.name}))}:null},kimchi:async a=>{let b=await (0,l.av)({accessToken:a.accessToken,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData||{}});return b?.models?.length?{models:b.models}:null},clinepass:async a=>{let b=await k({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null}},s=/[-_][0-9a-f]{8,}$/i,t={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText",video:"video"};function u(a){return a?.type&&t[a.type]||"llm"}async function v(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{var f;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:d,cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let g=(f=await e.json(),Array.isArray(f)?f:f?.data||f?.models||f?.results||[]);return Array.from(new Set(g.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function w(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}async function x(a){let b=[],c=!1;try{b=(b=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){c=!0,console.log("Could not fetch providers, returning all models")}let h=[];try{h=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let i=[];try{i=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let j={};try{j=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let k={};try{k=await (0,g.vF)()}catch(a){console.log("Could not fetch disabled models")}let l=(a,b)=>Array.isArray(k[a])&&k[a].includes(b),n=new Map;for(let a of b)n.has(a.provider)||n.set(a.provider,a);let o=[];for(let b of h){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;let c={id:b.name,object:"model",owned_by:"combo"};("webSearch"===b.kind||"webFetch"===b.kind)&&(c.kind=b.kind),o.push(c)}if(c){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.vq))if(w(b[c]||c,a))for(let b of e)a.includes(u(b))&&(l(c,b.id)||o.push({id:`${c}/${b.id}`,object:"model",owned_by:c}));for(let b of i){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&o.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[b,c]of n.entries()){if(!w(b,a))continue;let f=d.Xg[b]||b,g=(c?.providerSpecificData?.prefix||(0,e.wG)(b)||f).trim(),h=d.vq[f]||[],k=c?.providerSpecificData?.enabledModels,n=Array.isArray(k)&&k.length>0,p=(0,e.mq)(b)||(0,e.gb)(b),q=new Map(h.map(a=>[a.id,u(a)])),t=n?Array.from(new Set(k.filter(a=>"string"==typeof a&&""!==a.trim()))):h.map(a=>a.id);p&&0===t.length&&!s.test(b)&&(t=await v(c));let x=r[b];if(x&&!n)try{let a=await x(c);a?.models?.length&&(t=a.models.map(a=>a.id))}catch(a){console.log(`Live model fetch failed for ${b}: ${a?.message||a}`)}let y=t.map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),z=new Map;for(let c of Array.from(new Set([...y,...i.filter(c=>{if(!c?.id)return!1;let d=u(c)||"llm";if(!a.includes(d)&&!("imageToText"===d&&a.includes("llm")))return!1;let e=c.providerAlias;return e===f||e===g||e===b}).map(a=>{let b=String(a.id).trim();return b&&z.set(b,u(a)||"llm"),b}).filter(a=>""!==a),...Object.values(j||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${g}/`)||a.startsWith(`${f}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let d=z.get(c),e=q.get(c)||d||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c),h="imageToText"===e&&a.includes("llm");if(!a.includes(e)&&!h||l(g,c)||l(f,c))continue;let i={id:`${g}/${c}`,object:"model",owned_by:g},j=(0,m.a0)(d);if(j&&(i.capabilities=j),"llm"===e||h){let a=(0,m.nl)(b,c);Number.isFinite(a?.contextWindow)&&(i.context_length=a.contextWindow),Number.isFinite(a?.maxOutput)&&(i.max_completion_tokens=a.maxOutput)}o.push(i)}let A=e.AI_PROVIDERS[b],B=[];if(a.includes("tts")&&Array.isArray(A?.ttsConfig?.models))for(let a of A.ttsConfig.models)a?.id&&B.push(a.id);if(a.includes("embedding")&&Array.isArray(A?.embeddingConfig?.models))for(let a of A.embeddingConfig.models)a?.id&&B.push(a.id);for(let a of B)l(g,a)||l(f,a)||o.push({id:`${g}/${a}`,object:"model",owned_by:g});a.includes("webSearch")&&A?.searchConfig&&o.push({id:`${g}/search`,object:"model",kind:"webSearch",owned_by:g}),a.includes("webFetch")&&A?.fetchConfig&&o.push({id:`${g}/fetch`,object:"model",kind:"webFetch",owned_by:g})}let p=[],q=new Set;for(let a of o)!a?.id||q.has(a.id)||(q.add(a.id),p.push(a));return p}async function y(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function z(a){try{var b;let c=(a?.headers?.get("user-agent")||"").toLowerCase(),d=new URL(a.url),e=c.includes("codex")||"codex"===d.searchParams.get("format"),f=["llm"],g=(b=e?"codex":"openai",`${[...f].sort().join(",")}|${b}`),h=Date.now(),i=p.get(g);if(!i||i.expiresAt<=h){let a,b=await x(f),c=e?JSON.stringify({models:b.map(a=>({id:a.id,name:a.id,...a.capabilities?{capabilities:a.capabilities}:{}}))}):JSON.stringify({object:"list",data:b});i={body:c,etag:(a=o().createHash("sha1").update(c).digest("hex").slice(0,16),`W/"${a}"`),expiresAt:h+3e4},p.set(g,i)}let j=a?.headers?.get("if-none-match");if(j&&j===i.etag)return new Response(null,{status:304,headers:{"Access-Control-Allow-Origin":"*","Cache-Control":"public, max-age=30",ETag:i.etag}});return new Response(i.body,{status:200,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*","Cache-Control":"public, max-age=30",ETag:i.etag}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},19225:(a,b,c)=>{a.exports=c(44870)},29679:(a,b,c)=>{c.d(b,{cW:()=>l});var d=c(94755),e=c(55511),f=c(8590);let g="1.0.0",h="0.10.32",i="us-east-1",j=new Map;async function k(a,b){let c,f,j,k=a?.providerSpecificData?.profileArn||"",l=function(a){if(!a||"string"!=typeof a)return i;let b=a.split(":");return b.length>=4&&b[3]?b[3]:i}(k),m=new URLSearchParams;m.set("origin","AI_EDITOR"),k&&m.set("profileArn",k);let n=`https://q.${l}.amazonaws.com/ListAvailableModels?${m.toString()}`,o={...(f=a?.providerSpecificData?.clientId||a?.refreshToken||a?.providerSpecificData?.profileArn||a?.accessToken||"kiro-anonymous",j=(0,e.createHash)("sha256").update(String(f)).digest("hex"),{"User-Agent":`aws-sdk-js/${g} ua/2.1 os/windows#10.0.26200 lang/js md/nodejs#22.21.1 api/codewhispererruntime#${g} m/N,E KiroIDE-${h}-${j}`,"x-amz-user-agent":`aws-sdk-js/${g} KiroIDE-${h}-${j}`,"x-amzn-kiro-agent-mode":"vibe","x-amzn-codewhisperer-optout":"true","amz-sdk-request":"attempt=1; max=1","amz-sdk-invocation-id":(0,d.A)(),Accept:"application/json"}),Authorization:`Bearer ${a?.accessToken||""}`},p=new AbortController,q=setTimeout(()=>p.abort("timeout"),3e4);b&&"function"==typeof b.addEventListener&&b.addEventListener("abort",()=>p.abort(b.reason));try{c=await fetch(n,{method:"GET",headers:o,signal:p.signal})}finally{clearTimeout(q)}if(!c.ok){let a=await c.text().catch(()=>""),b=Error(`Kiro ListAvailableModels ${c.status}: ${a||c.statusText}`);throw b.status=c.status,b.body=a,b}let r=await c.json();return Array.isArray(r?.models)?r.models:[]}async function l(a,b={}){let c,d,g;if(!a||!a.accessToken)return b.log?.debug?.("KIRO_MODELS","No accessToken; skipping live fetch"),null;let h=(g=(d=a?.providerSpecificData||{}).profileArn||d.clientId||a?.refreshToken||a?.accessToken||"anonymous",(0,e.createHash)("sha256").update(`kiro:${g}`).digest("hex")),i=Date.now();if(!b.forceRefresh){let a=j.get(h);if(a&&a.expiresAt>i)return{models:a.models,rawModels:a.rawModels}}try{c=await k(a,b.signal)}catch(d){if(!d||401!==d.status||!a.refreshToken)return b.log?.warn?.("KIRO_MODELS",`ListAvailableModels failed: ${d?.message||d}`),null;{b.log?.info?.("KIRO_MODELS","Got 401 from Kiro; refreshing token");let d=await (0,f.Ql)(a.refreshToken,a.providerSpecificData,b.log);if(!d?.accessToken)return b.log?.warn?.("KIRO_MODELS","Token refresh did not return accessToken"),null;{let e={...a,...d};if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed(d)}catch(a){b.log?.warn?.("KIRO_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await k(e,b.signal),a.accessToken=e.accessToken,e.refreshToken&&(a.refreshToken=e.refreshToken)}catch(a){return b.log?.warn?.("KIRO_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}}let m=[];for(let a of c){if(!a||"object"!=typeof a)continue;let b=a.modelId||a.id;if(!b)continue;let c=function(a,b,c){let d=(a||b||"Kiro").trim(),e=Number(c);if(!Number.isFinite(e)||1e-9>Math.abs(e-1)||e<=0)return`Kiro ${d}`;let f=e.toFixed(1).replace(",",".");return`Kiro ${d} (${f}x credit)`}(a.modelName,b,a.rateMultiplier),d=Number(a?.tokenLimits?.maxInputTokens)||2e5;for(let e of function(a,b){let c,d=((c=a).endsWith("-agentic")&&(c=c.slice(0,-8)),c.endsWith("-thinking")&&(c=c.slice(0,-9)),c),e=b||`Kiro ${d}`,f=[{id:d,name:e,capabilities:{thinking:!1,agentic:!1}},{id:`${d}-thinking`,name:`${e} (Thinking)`,capabilities:{thinking:!0,agentic:!1}}];return"auto"!==d&&(f.push({id:`${d}-agentic`,name:`${e} (Agentic)`,capabilities:{thinking:!1,agentic:!0}}),f.push({id:`${d}-thinking-agentic`,name:`${e} (Thinking + Agentic)`,capabilities:{thinking:!0,agentic:!0}})),f}(b,c))m.push({...e,contextLength:d,rateMultiplier:Number.isFinite(Number(a.rateMultiplier))?Number(a.rateMultiplier):1,upstreamModelId:b,description:a.description||""})}return j.set(h,{expiresAt:i+3e5,models:m,rawModels:c}),{models:m,rawModels:c}}},39006:a=>{a.exports={rE:"0.5.169"}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},81329:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(44404);new Set(Object.entries(c(75681).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a));let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
@@ -36,7 +36,7 @@
36
36
  fi
37
37
  fi
38
38
  done
39
- `;return new Promise(a=>{f(d,{shell:"/bin/bash"},()=>a())})}async function z(a,b){if(!h()){k(`🔐 Cert: cannot install to system store without sudo — trust this file on clients: ${b}`),await y(b,"add");return}let c=p(),d=`${c.dir}/krouter-root-ca.crt`,e=`${c.dir}/9router-root-ca.crt`,f=`rm -f "${e}"; cp "${b}" "${d}" && (${c.cmd} 2>/dev/null || true)`;try{await g(f,a),await y(b,"add"),k(`🔐 Cert: ✅ installed to Linux trust store (${c.dir}) and user browser databases`)}catch(a){throw Error(`Certificate install failed: ${a.message}`)}}async function A(a){if(await y(null,"delete"),!h())return;let b=p(),c=`${b.dir}/krouter-root-ca.crt`,d=`${b.dir}/9router-root-ca.crt`,e=`rm -f "${c}" "${d}" && (${b.cmd} 2>/dev/null || true)`;try{await g(e,a),k("\uD83D\uDD10 Cert: ✅ uninstalled from Linux trust store and user browser databases")}catch(a){throw Error("Failed to uninstall certificate")}}a.exports={installCert:async function a(a,b){if(!d.existsSync(b))throw Error(`Certificate file not found: ${b}`);await s(b)?k("\uD83D\uDD10 Cert: already trusted ✅"):m?await v(b):n?await u(a,b):await z(a,b)},uninstallCert:async function a(a,b){await s(b)?m?await x():n?await w(a,b):await A(a):k("\uD83D\uDD10 Cert: not found in system store")},checkCertInstalled:s,describeSudoFailure:t}},11722:(a,b,c)=>{let d=["docker","containerd","kubepods","podman","lxc","crio"];a.exports={detectContainer:function(a){let b=a||{existsSync:c(29021).existsSync,readFileSync:c(29021).readFileSync,env:process.env,platform:process.platform},e=a=>{try{return!!b.existsSync(a)}catch{return!1}},f=b.env||{};if(f.KUBERNETES_SERVICE_HOST)return{containerized:!0,kind:"kubernetes"};if("1"===String(f.KROUTER_FORCE_MITM||"")||"linux"!==b.platform)return{containerized:!1,kind:null};if(e("/.dockerenv"))return{containerized:!0,kind:"docker"};if(e("/run/.containerenv"))return{containerized:!0,kind:"podman"};let g=(a=>{try{return String(b.readFileSync(a,"utf8")??"")}catch{return""}})("/proc/1/cgroup").toLowerCase(),h=d.find(a=>g.includes(a));return h?{containerized:!0,kind:"crio"===h?"cri-o":h}:{containerized:!1,kind:null}}}},17511:(a,b,c)=>{let d=c(29021),e=(()=>{if("win32"===process.platform)return null;for(let a of["/usr/sbin/lsof","/usr/bin/lsof","/sbin/lsof"])try{return d.accessSync(a,d.constants.X_OK),a}catch{}return"lsof"})(),f={antigravity:[":generateContent",":streamGenerateContent"],copilot:["/chat/completions","/v1/messages","/responses"],kiro:["/generateAssistantResponse"],cursor:["/BidiAppend","/RunSSE","/RunPoll","/Run"],claude:["/v1/messages"]};a.exports={IS_DEV:!1,LSOF_BIN:e,TARGET_HOSTS:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","runtime.us-east-1.kiro.dev","api2.cursor.sh","api.anthropic.com"],URL_PATTERNS:f,MODEL_SYNONYMS:{antigravity:{"gemini-default":"gemini-3.8-flash-medium","gemini-3.5-flash-high":"gemini-3.8-flash-high","gemini-3.5-flash-medium":"gemini-3.8-flash-medium","gemini-3.5-flash-low":"gemini-3.8-flash-low","gemini-3.5-flash-extra-low":"gemini-3.8-flash-low","gemini-3.8-flash":"gemini-3.8-flash-medium","gemini-3.1-pro-high":"gemini-pro-agent","gemini-3-pro-high":"gemini-pro-agent","gemini-3-pro-low":"gemini-3.1-pro-low"}},MODEL_PATTERNS:{antigravity:[{match:/flash.*extra.*low|extra.*low.*flash|flash.*low|low.*flash/i,alias:"gemini-3.8-flash-low"},{match:/flash.*medium|medium.*flash/i,alias:"gemini-3.8-flash-medium"},{match:/flash.*agent|agent.*flash|flash/i,alias:"gemini-3.8-flash-high"},{match:/pro.*low|low.*pro/i,alias:"gemini-3.1-pro-low"},{match:/gemini.*pro|pro.*gemini/i,alias:"gemini-pro-agent"},{match:/opus.*5[.-]5.*high|5[.-]5.*opus.*high/i,alias:"claude-opus-5-5-high"},{match:/opus.*5[.-]5.*medium|5[.-]5.*opus.*medium/i,alias:"claude-opus-5-5-medium"},{match:/opus.*5[.-]5.*low|5[.-]5.*opus.*low/i,alias:"claude-opus-5-5-low"},{match:/opus.*5[.-]5|5[.-]5.*opus/i,alias:"claude-opus-5-5"},{match:/sonnet.*5[.-]5.*high|5[.-]5.*sonnet.*high/i,alias:"claude-sonnet-5-5-high"},{match:/sonnet.*5[.-]5.*medium|5[.-]5.*sonnet.*medium/i,alias:"claude-sonnet-5-5-medium"},{match:/sonnet.*5[.-]5.*low|5[.-]5.*sonnet.*low/i,alias:"claude-sonnet-5-5-low"},{match:/sonnet.*5[.-]5|5[.-]5.*sonnet/i,alias:"claude-sonnet-5-5"},{match:/opus/i,alias:"claude-opus-4-6-thinking"},{match:/sonnet|claude/i,alias:"claude-sonnet-4-6"},{match:/gpt.*oss|oss/i,alias:"gpt-oss-120b-medium"}]},MODEL_NO_MAP:{antigravity:[/^tab[_-]/i]},LOG_BLACKLIST_URL_PARTS:["recordCodeAssistMetrics","recordTrajectoryAnalytics","fetchAdminControls","listExperiments","fetchUserInfo"],getToolForHost:function(a){let b=(a||"").split(":")[0];return"api.individual.githubcopilot.com"===b?"copilot":"daily-cloudcode-pa.googleapis.com"===b||"cloudcode-pa.googleapis.com"===b?"antigravity":"q.us-east-1.amazonaws.com"===b||"codewhisperer.us-east-1.amazonaws.com"===b||"runtime.us-east-1.kiro.dev"===b?"kiro":"api2.cursor.sh"===b?"cursor":"api.anthropic.com"===b?"claude":null},isChatRequest:function(a,b){return!!(f[a]||[]).some(a=>(b.url||"").includes(a))||"kiro"===a&&String(b.headers?.["x-amz-target"]||"").includes("GenerateAssistantResponse")}}},26033:(a,b,c)=>{c(33873),c(29021);let{MITM_DIR:d}=c(82193),{generateRootCA:e,loadRootCA:f,generateLeafCert:g}=c(8578);a.exports={generateCert:async function a(){return await e()},getCertForDomain:function(a){try{let b=f(),c=g(a,b);return{key:c.key,cert:c.cert}}catch(b){return console.error(`Failed to generate cert for ${a}:`,b.message),null}}}},26444:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820),{log:g}=c(87777),h="# >>> krouter NODE_EXTRA_CA_CERTS >>>",i="# <<< krouter NODE_EXTRA_CA_CERTS <<<",j=[".profile",".bash_profile",".bashrc",".zshrc"],k=".config/environment.d/95-krouter.conf",l=".pam_environment";function m(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function n(a){if(!a.includes(h))return{contents:a,changed:!1};let b=RegExp(`\\n?${m(h)}[\\s\\S]*?${m(i)}\\n?`,"g"),c=a.replace(b,"");return{contents:c,changed:c!==a}}a.exports={setLinuxNodeExtraCaCerts:function(a){if("linux"!==process.platform||!a||"string"!=typeof a)return[];let b=f.homedir(),c=`${h}
39
+ `;return new Promise(a=>{f(d,{shell:"/bin/bash"},()=>a())})}async function z(a,b){if(!h()){k(`🔐 Cert: cannot install to system store without sudo — trust this file on clients: ${b}`),await y(b,"add");return}let c=p(),d=`${c.dir}/krouter-root-ca.crt`,e=`${c.dir}/9router-root-ca.crt`,f=`rm -f "${e}"; cp "${b}" "${d}" && (${c.cmd} 2>/dev/null || true)`;try{await g(f,a),await y(b,"add"),k(`🔐 Cert: ✅ installed to Linux trust store (${c.dir}) and user browser databases`)}catch(a){throw Error(`Certificate install failed: ${a.message}`)}}async function A(a){if(await y(null,"delete"),!h())return;let b=p(),c=`${b.dir}/krouter-root-ca.crt`,d=`${b.dir}/9router-root-ca.crt`,e=`rm -f "${c}" "${d}" && (${b.cmd} 2>/dev/null || true)`;try{await g(e,a),k("\uD83D\uDD10 Cert: ✅ uninstalled from Linux trust store and user browser databases")}catch(a){throw Error("Failed to uninstall certificate")}}a.exports={installCert:async function a(a,b){if(!d.existsSync(b))throw Error(`Certificate file not found: ${b}`);await s(b)?k("\uD83D\uDD10 Cert: already trusted ✅"):m?await v(b):n?await u(a,b):await z(a,b)},uninstallCert:async function a(a,b){if(!await s(b))return void k("\uD83D\uDD10 Cert: not found in system store");m?await x():n?await w(a,b):await A(a);try{let{removeIdeCaTrust:a}=c(77715),{removed:b,failed:d}=a();for(let a of b)k(`🔐 Cert: removed ${a}`);for(let a of d)k(`🔐 Cert: ${a}`)}catch(a){k(`🔐 Cert: failed to remove IDE trust settings: ${a.message}`)}},checkCertInstalled:s,describeSudoFailure:t}},11722:(a,b,c)=>{let d=["docker","containerd","kubepods","podman","lxc","crio"];a.exports={detectContainer:function(a){let b=a||{existsSync:c(29021).existsSync,readFileSync:c(29021).readFileSync,env:process.env,platform:process.platform},e=a=>{try{return!!b.existsSync(a)}catch{return!1}},f=b.env||{};if(f.KUBERNETES_SERVICE_HOST)return{containerized:!0,kind:"kubernetes"};if("1"===String(f.KROUTER_FORCE_MITM||"")||"linux"!==b.platform)return{containerized:!1,kind:null};if(e("/.dockerenv"))return{containerized:!0,kind:"docker"};if(e("/run/.containerenv"))return{containerized:!0,kind:"podman"};let g=(a=>{try{return String(b.readFileSync(a,"utf8")??"")}catch{return""}})("/proc/1/cgroup").toLowerCase(),h=d.find(a=>g.includes(a));return h?{containerized:!0,kind:"crio"===h?"cri-o":h}:{containerized:!1,kind:null}}}},17511:(a,b,c)=>{let d=c(29021),e=(()=>{if("win32"===process.platform)return null;for(let a of["/usr/sbin/lsof","/usr/bin/lsof","/sbin/lsof"])try{return d.accessSync(a,d.constants.X_OK),a}catch{}return"lsof"})(),f={antigravity:[":generateContent",":streamGenerateContent"],copilot:["/chat/completions","/v1/messages","/responses"],kiro:["/generateAssistantResponse"],cursor:["/BidiAppend","/RunSSE","/RunPoll","/Run"],claude:["/v1/messages"]};a.exports={IS_DEV:!1,LSOF_BIN:e,TARGET_HOSTS:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","runtime.us-east-1.kiro.dev","api2.cursor.sh","api.anthropic.com"],URL_PATTERNS:f,MODEL_SYNONYMS:{antigravity:{"gemini-default":"gemini-3.8-flash-medium","gemini-3.5-flash-high":"gemini-3.8-flash-high","gemini-3.5-flash-medium":"gemini-3.8-flash-medium","gemini-3.5-flash-low":"gemini-3.8-flash-low","gemini-3.5-flash-extra-low":"gemini-3.8-flash-low","gemini-3.8-flash":"gemini-3.8-flash-medium","gemini-3.1-pro-high":"gemini-pro-agent","gemini-3-pro-high":"gemini-pro-agent","gemini-3-pro-low":"gemini-3.1-pro-low"}},MODEL_PATTERNS:{antigravity:[{match:/flash.*extra.*low|extra.*low.*flash|flash.*low|low.*flash/i,alias:"gemini-3.8-flash-low"},{match:/flash.*medium|medium.*flash/i,alias:"gemini-3.8-flash-medium"},{match:/flash.*agent|agent.*flash|flash/i,alias:"gemini-3.8-flash-high"},{match:/pro.*low|low.*pro/i,alias:"gemini-3.1-pro-low"},{match:/gemini.*pro|pro.*gemini/i,alias:"gemini-pro-agent"},{match:/opus.*5[.-]5.*high|5[.-]5.*opus.*high/i,alias:"claude-opus-5-5-high"},{match:/opus.*5[.-]5.*medium|5[.-]5.*opus.*medium/i,alias:"claude-opus-5-5-medium"},{match:/opus.*5[.-]5.*low|5[.-]5.*opus.*low/i,alias:"claude-opus-5-5-low"},{match:/opus.*5[.-]5|5[.-]5.*opus/i,alias:"claude-opus-5-5"},{match:/sonnet.*5[.-]5.*high|5[.-]5.*sonnet.*high/i,alias:"claude-sonnet-5-5-high"},{match:/sonnet.*5[.-]5.*medium|5[.-]5.*sonnet.*medium/i,alias:"claude-sonnet-5-5-medium"},{match:/sonnet.*5[.-]5.*low|5[.-]5.*sonnet.*low/i,alias:"claude-sonnet-5-5-low"},{match:/sonnet.*5[.-]5|5[.-]5.*sonnet/i,alias:"claude-sonnet-5-5"},{match:/opus/i,alias:"claude-opus-4-6-thinking",fallback:!0},{match:/sonnet|claude/i,alias:"claude-sonnet-4-6",fallback:!0},{match:/gpt.*oss|oss/i,alias:"gpt-oss-120b-medium",fallback:!0}],claude:[{match:/opus.*5[.-]5|5[.-]5.*opus/i,alias:"claude-opus-5-5"},{match:/opus.*5[.-]5|5[.-]5.*opus/i,alias:"claude-opus-4-7"},{match:/opus.*5[.-]5|5[.-]5.*opus/i,alias:"claude-opus-4-6"},{match:/sonnet.*5[.-]5|5[.-]5.*sonnet/i,alias:"claude-sonnet-5-5"},{match:/sonnet.*5[.-]5|5[.-]5.*sonnet/i,alias:"claude-sonnet-4-6"},{match:/sonnet.*5[.-]5|5[.-]5.*sonnet/i,alias:"claude-sonnet-4-5"},{match:/haiku/i,alias:"claude-haiku-5-5"},{match:/haiku/i,alias:"claude-haiku-4-5"},{match:/fable/i,alias:"claude-fable-5-1"},{match:/fable/i,alias:"claude-sonnet-4-6"},{match:/opus/i,alias:"claude-opus-5-5",fallback:!0},{match:/opus/i,alias:"claude-opus-4-7",fallback:!0},{match:/opus/i,alias:"claude-opus-4-6",fallback:!0},{match:/sonnet/i,alias:"claude-sonnet-5-5",fallback:!0},{match:/sonnet/i,alias:"claude-sonnet-4-6",fallback:!0},{match:/sonnet/i,alias:"claude-sonnet-4-5",fallback:!0},{match:/claude/i,alias:"claude-opus-4-7",fallback:!0},{match:/claude/i,alias:"claude-sonnet-4-6",fallback:!0}]},MODEL_NO_MAP:{antigravity:[/^tab[_-]/i]},LOG_BLACKLIST_URL_PARTS:["recordCodeAssistMetrics","recordTrajectoryAnalytics","fetchAdminControls","listExperiments","fetchUserInfo"],getToolForHost:function(a){let b=(a||"").split(":")[0];return"api.individual.githubcopilot.com"===b?"copilot":"daily-cloudcode-pa.googleapis.com"===b||"cloudcode-pa.googleapis.com"===b?"antigravity":"q.us-east-1.amazonaws.com"===b||"codewhisperer.us-east-1.amazonaws.com"===b||"runtime.us-east-1.kiro.dev"===b?"kiro":"api2.cursor.sh"===b?"cursor":"api.anthropic.com"===b?"claude":null},isChatRequest:function(a,b){return!!(f[a]||[]).some(a=>(b.url||"").includes(a))||"kiro"===a&&String(b.headers?.["x-amz-target"]||"").includes("GenerateAssistantResponse")}}},26033:(a,b,c)=>{c(33873),c(29021);let{MITM_DIR:d}=c(82193),{generateRootCA:e,loadRootCA:f,generateLeafCert:g}=c(8578);a.exports={generateCert:async function a(){return await e()},getCertForDomain:function(a){try{let b=f(),c=g(a,b);return{key:c.key,cert:c.cert}}catch(b){return console.error(`Failed to generate cert for ${a}:`,b.message),null}}}},26444:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820),{log:g}=c(87777),h="# >>> krouter NODE_EXTRA_CA_CERTS >>>",i="# <<< krouter NODE_EXTRA_CA_CERTS <<<",j=[".profile",".bash_profile",".bashrc",".zshrc"],k=".config/environment.d/95-krouter.conf",l=".pam_environment";function m(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function n(a){if(!a.includes(h))return{contents:a,changed:!1};let b=RegExp(`\\n?${m(h)}[\\s\\S]*?${m(i)}\\n?`,"g"),c=a.replace(b,"");return{contents:c,changed:c!==a}}a.exports={setLinuxNodeExtraCaCerts:function(a){if("linux"!==process.platform||!a||"string"!=typeof a)return[];let b=f.homedir(),c=`${h}
40
40
  # Auto-managed by kRouter — DO NOT EDIT. Set/unset via the kRouter MITM panel.
41
41
  # Tells Node.js + Electron apps to trust the kRouter MITM root CA.
42
42
  export NODE_EXTRA_CA_CERTS="${a}"
@@ -59,11 +59,13 @@ NODE_EXTRA_CA_CERTS=${b}
59
59
  ${c}\r
60
60
  `;n(q,a,e),await l("ipconfig /flushdns | Out-Null")}else{let a=g.readFileSync(q,"utf8").replace(/[\r\n\s]+$/g,""),c=d.map(a=>`127.0.0.1 ${a}`).join("\n"),e=`${a}
61
61
  ${c}
62
- `.replace(/'/g,"'\\''");await t(`printf '%s' '${e}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ added ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to add DNS entry: ${a.message}`)}}async function x(a,b){let c=k[a];if(!c)throw Error(`Unknown tool: ${a}`);let d=c.filter(a=>v(a));if(0===d.length)return void i(`🌐 DNS ${a}: already inactive`);try{if(o){let a=g.readFileSync(q,"utf8"),b=a.split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";n(q,a,b),await l("ipconfig /flushdns | Out-Null")}else{let a=(g.readFileSync(q,"utf8").split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\n").replace(/[\r\n\s]+$/g,"")+"\n").replace(/'/g,"'\\''");await t(`printf '%s' '${a}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ removed ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to remove DNS entry: ${a.message}`)}}async function y(a){for(let b of Object.keys(k))try{await x(b,a)}catch(a){j(`DNS ${b}: failed to remove — ${a.message}`)}}a.exports={TOOL_HOSTS:k,addDNSEntry:w,removeDNSEntry:x,removeAllDNSEntries:y,removeAllDNSEntriesSync:function(){try{if(!g.existsSync(q))return;let a=Object.values(k).flat(),b=g.readFileSync(q,"utf8"),c=o?"\r\n":"\n",d=b.split(/\r?\n/).filter(b=>!a.some(a=>b.includes(a))).join(c).replace(/[\r\n\s]+$/g,"")+c;if(d===b)return;if(g.writeFileSync(q,d,"utf8"),o)try{f("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}else if(p)try{f("dscacheutil -flushcache && killall -HUP mDNSResponder",{stdio:"ignore"})}catch{}else try{f("resolvectl flush-caches 2>/dev/null || true",{stdio:"ignore"})}catch{}}catch{}},execWithPassword:t,isSudoAvailable:r,canRunSudoWithoutPassword:s,isSudoPasswordRequired:function(){return!o&&r()&&!s()},checkDNSEntry:v,checkAllDNSStatus:function(){try{let a=g.readFileSync(q,"utf8"),b={};for(let[c,d]of Object.entries(k))b[c]=d.every(b=>a.includes(b));return b}catch{return Object.fromEntries(Object.keys(k).map(a=>[a,!1]))}}}},82193:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820),g="krouter";function h(){return"win32"===process.platform?e.join(process.env.APPDATA||e.join(f.homedir(),"AppData","Roaming"),g):e.join(f.homedir(),`.${g}`)}let i=function(){let a=process.env.DATA_DIR;if(!a)return h();try{return d.mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${g}`),h();throw b}}(),j=e.join(i,"mitm");a.exports={DATA_DIR:i,MITM_DIR:j,APP_NAME:g}},85341:a=>{a.exports={TOOL_HOSTS:{antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com"],copilot:["api.individual.githubcopilot.com"],kiro:["runtime.us-east-1.kiro.dev","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com"],cursor:["api2.cursor.sh"],claude:["api.anthropic.com"]}}},87777:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(74075),{DATA_DIR:g}=c(82193),{LOG_BLACKLIST_URL_PARTS:h}=c(17511);function i(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let j=e.join(g,"logs","mitm");d.existsSync(j)||d.mkdirSync(j,{recursive:!0});let k=/^(authorization|proxy-authorization|cookie|set-cookie|x-api-key|api-key|x-goog-api-key|x-aws-.*|x-amz-.*|x-amzn-.*|x-stainless-api-key|openai-api-key|anthropic-api-key)$/i;function l(a){if(!a||"object"!=typeof a)return a;let b={};for(let[c,d]of Object.entries(a))b[c]=k.test(c)?"[REDACTED]":d;return b}let m=Number(process.env.MITM_MAX_DUMP_FILES)||1e3,n=0;function o(){if(++n%100==0)try{for(let{f:a}of d.readdirSync(j).map(a=>({f:a,t:d.statSync(e.join(j,a)).mtimeMs})).sort((a,b)=>b.t-a.t).slice(m))try{d.rmSync(e.join(j,a),{force:!0})}catch{}}catch{}}let p=/^\s*(\{\s*\}|\[\s*\]|null)?\s*$/;function q(a,b=80){return String(a).replace(/[^a-zA-Z0-9]/g,"_").substring(0,b)}function r(a){return!!a&&h.some(b=>a.includes(b))}a.exports={log:a=>console.log(`[${i()}] [MITM] ${a}`),err:a=>console.error(`[${i()}] ❌ [MITM] ${a}`),dumpRequest:function(a,b,c="raw"){if(r(a.url))return null;try{let f=new Date().toISOString().replace(/[:.]/g,"-"),g=q((a.headers.host||"")+a.url),h=e.join(j,`${f}_${c}_${g}.req.json`),i=null;try{i=JSON.parse(b.toString())}catch{}return d.writeFileSync(h,JSON.stringify({method:a.method,url:a.url,host:a.headers.host,headers:l(a.headers),body:i??b.toString("utf8")},null,2)),o(),h}catch{return null}},createResponseDumper:function(a,b="raw"){if(r(a.url))return null;let c=new Date().toISOString().replace(/[:.]/g,"-"),g=q((a.headers.host||"")+a.url),h=e.join(j,`${c}_${b}_${g}.res.txt`),i=0,k={},m=[];return{writeHeader:(a,b)=>{i=a,k=b||{}},writeChunk:a=>{null!=a&&m.push(Buffer.isBuffer(a)?a:Buffer.from(a))},end:()=>{try{let a=Buffer.concat(m),b=k["content-encoding"]||k["Content-Encoding"],c=(function(a,b){if(!a||0===a.length)return a;try{let c=(b||"").toLowerCase();if(c.includes("gzip"))return f.gunzipSync(a);if(c.includes("br"))return f.brotliDecompressSync(a);if(c.includes("deflate"))return f.inflateSync(a)}catch{}return a})(a,b).toString("utf8");if(p.test(c))return;let e=l({...k});delete e["content-encoding"],delete e["Content-Encoding"];let g=`STATUS: ${i}
62
+ `.replace(/'/g,"'\\''");await t(`printf '%s' '${e}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ added ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to add DNS entry: ${a.message}`)}}async function x(a,b){let c=k[a];if(!c)throw Error(`Unknown tool: ${a}`);let d=c.filter(a=>v(a));if(0===d.length)return void i(`🌐 DNS ${a}: already inactive`);try{if(o){let a=g.readFileSync(q,"utf8"),b=a.split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";n(q,a,b),await l("ipconfig /flushdns | Out-Null")}else{let a=(g.readFileSync(q,"utf8").split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\n").replace(/[\r\n\s]+$/g,"")+"\n").replace(/'/g,"'\\''");await t(`printf '%s' '${a}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ removed ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to remove DNS entry: ${a.message}`)}}async function y(a){for(let b of Object.keys(k))try{await x(b,a)}catch(a){j(`DNS ${b}: failed to remove — ${a.message}`)}}a.exports={TOOL_HOSTS:k,addDNSEntry:w,removeDNSEntry:x,removeAllDNSEntries:y,removeAllDNSEntriesSync:function(){try{if(!g.existsSync(q))return;let a=Object.values(k).flat(),b=g.readFileSync(q,"utf8"),c=o?"\r\n":"\n",d=b.split(/\r?\n/).filter(b=>!a.some(a=>b.includes(a))).join(c).replace(/[\r\n\s]+$/g,"")+c;if(d===b)return;if(g.writeFileSync(q,d,"utf8"),o)try{f("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}else if(p)try{f("dscacheutil -flushcache && killall -HUP mDNSResponder",{stdio:"ignore"})}catch{}else try{f("resolvectl flush-caches 2>/dev/null || true",{stdio:"ignore"})}catch{}}catch{}},execWithPassword:t,isSudoAvailable:r,canRunSudoWithoutPassword:s,isSudoPasswordRequired:function(){return!o&&r()&&!s()},checkDNSEntry:v,checkAllDNSStatus:function(){try{let a=g.readFileSync(q,"utf8"),b={};for(let[c,d]of Object.entries(k))b[c]=d.every(b=>a.includes(b));return b}catch{return Object.fromEntries(Object.keys(k).map(a=>[a,!1]))}}}},77715:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820),g=[{id:"antigravity",name:"Antigravity IDE",setting:"antigravity.caCertificates",value:a=>[a],userDirs:()=>{let a=f.homedir();if("darwin"===process.platform)return[e.join(a,"Library","Application Support","Antigravity IDE","User"),e.join(a,"Library","Application Support","Antigravity","User")];if("win32"===process.platform){let b=process.env.APPDATA||e.join(a,"AppData","Roaming");return[e.join(b,"Antigravity IDE","User"),e.join(b,"Antigravity","User")]}return[e.join(a,".config","Antigravity IDE","User"),e.join(a,".config","Antigravity","User")]}}];function h(a){if(!d.existsSync(a))return{};let b=d.readFileSync(a,"utf-8");if(!b.trim())return{};try{return JSON.parse(b)}catch{let a=b.replace(/\/\*[\s\S]*?\*\//g,"").replace(/(^|[^:"'\\])\/\/.*$/gm,"$1").replace(/,(\s*[}\]])/g,"$1");try{return JSON.parse(a)}catch{return null}}}a.exports={configureIdeCaTrust:function(a){let b={written:[],skipped:[],failed:[]};if(!a||!d.existsSync(a))return b;for(let f of g)for(let g of f.userDirs()){var c;if(!d.existsSync(g))continue;let i=e.join(g,"settings.json"),j=h(i);if(null===j){b.failed.push(`${f.name}: settings.json is not parseable, left untouched`);continue}let k=f.value(a);if(c=j[f.setting],JSON.stringify(c)===JSON.stringify(k)){b.skipped.push(`${f.name}: already trusts the kRouter CA`);continue}try{let a={...j,[f.setting]:k};d.writeFileSync(i,`${JSON.stringify(a,null,4)}
63
+ `),b.written.push(`${f.name}: ${f.setting}`)}catch(a){b.failed.push(`${f.name}: ${a.message}`)}}return b},removeIdeCaTrust:function(){let a={removed:[],failed:[]};for(let b of g)for(let c of b.userDirs()){let f=e.join(c,"settings.json");if(!d.existsSync(f))continue;let g=h(f);if(null!==g&&b.setting in g)try{let c={...g};delete c[b.setting],d.writeFileSync(f,`${JSON.stringify(c,null,4)}
64
+ `),a.removed.push(`${b.name}: ${b.setting}`)}catch(c){a.failed.push(`${b.name}: ${c.message}`)}}return a},IDE_CA_SETTINGS:g,__test__:{readSettings:h}}},82193:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820),g="krouter";function h(){return"win32"===process.platform?e.join(process.env.APPDATA||e.join(f.homedir(),"AppData","Roaming"),g):e.join(f.homedir(),`.${g}`)}let i=function(){let a=process.env.DATA_DIR;if(!a)return h();try{return d.mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${g}`),h();throw b}}(),j=e.join(i,"mitm");a.exports={DATA_DIR:i,MITM_DIR:j,APP_NAME:g}},85341:a=>{a.exports={TOOL_HOSTS:{antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com"],copilot:["api.individual.githubcopilot.com"],kiro:["runtime.us-east-1.kiro.dev","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com"],cursor:["api2.cursor.sh"],claude:["api.anthropic.com"]}}},87777:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(74075),{DATA_DIR:g}=c(82193),{LOG_BLACKLIST_URL_PARTS:h}=c(17511);function i(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let j=e.join(g,"logs","mitm");d.existsSync(j)||d.mkdirSync(j,{recursive:!0});let k=/^(authorization|proxy-authorization|cookie|set-cookie|x-api-key|api-key|x-goog-api-key|x-aws-.*|x-amz-.*|x-amzn-.*|x-stainless-api-key|openai-api-key|anthropic-api-key)$/i;function l(a){if(!a||"object"!=typeof a)return a;let b={};for(let[c,d]of Object.entries(a))b[c]=k.test(c)?"[REDACTED]":d;return b}let m=Number(process.env.MITM_MAX_DUMP_FILES)||1e3,n=0;function o(){if(++n%100==0)try{for(let{f:a}of d.readdirSync(j).map(a=>({f:a,t:d.statSync(e.join(j,a)).mtimeMs})).sort((a,b)=>b.t-a.t).slice(m))try{d.rmSync(e.join(j,a),{force:!0})}catch{}}catch{}}let p=/^\s*(\{\s*\}|\[\s*\]|null)?\s*$/;function q(a,b=80){return String(a).replace(/[^a-zA-Z0-9]/g,"_").substring(0,b)}function r(a){return!!a&&h.some(b=>a.includes(b))}a.exports={log:a=>console.log(`[${i()}] [MITM] ${a}`),err:a=>console.error(`[${i()}] ❌ [MITM] ${a}`),dumpRequest:function(a,b,c="raw"){if(r(a.url))return null;try{let f=new Date().toISOString().replace(/[:.]/g,"-"),g=q((a.headers.host||"")+a.url),h=e.join(j,`${f}_${c}_${g}.req.json`),i=null;try{i=JSON.parse(b.toString())}catch{}return d.writeFileSync(h,JSON.stringify({method:a.method,url:a.url,host:a.headers.host,headers:l(a.headers),body:i??b.toString("utf8")},null,2)),o(),h}catch{return null}},createResponseDumper:function(a,b="raw"){if(r(a.url))return null;let c=new Date().toISOString().replace(/[:.]/g,"-"),g=q((a.headers.host||"")+a.url),h=e.join(j,`${c}_${b}_${g}.res.txt`),i=0,k={},m=[];return{writeHeader:(a,b)=>{i=a,k=b||{}},writeChunk:a=>{null!=a&&m.push(Buffer.isBuffer(a)?a:Buffer.from(a))},end:()=>{try{let a=Buffer.concat(m),b=k["content-encoding"]||k["Content-Encoding"],c=(function(a,b){if(!a||0===a.length)return a;try{let c=(b||"").toLowerCase();if(c.includes("gzip"))return f.gunzipSync(a);if(c.includes("br"))return f.brotliDecompressSync(a);if(c.includes("deflate"))return f.inflateSync(a)}catch{}return a})(a,b).toString("utf8");if(p.test(c))return;let e=l({...k});delete e["content-encoding"],delete e["Content-Encoding"];let g=`STATUS: ${i}
63
65
  HEADERS: ${JSON.stringify(e,null,2)}
64
66
  ---BODY---
65
- ${c}`;d.writeFileSync(h,g),o()}catch{}},file:h}},clearDumpDir:function(){try{if(!d.existsSync(j))return;for(let a of d.readdirSync(j))try{d.rmSync(e.join(j,a),{recursive:!0,force:!0})}catch{}}catch{}}}},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021),i=c(21820),j=c(91645),k=c(55591),l=c(55511),{addDNSEntry:m,removeDNSEntry:n,removeAllDNSEntries:o,removeAllDNSEntriesSync:p,checkAllDNSStatus:q,TOOL_HOSTS:r,isSudoAvailable:s,isSudoPasswordRequired:t}=c(66936),{isAdmin:u}=c(64809),{detectContainer:v}=c(11722),w="win32"===process.platform,x="darwin"===process.platform,{generateCert:y}=c(26033),{installCert:z,uninstallCert:A}=c(9631),{isCertExpired:B}=c(8578),{DATA_DIR:C,MITM_DIR:D}=c(82193),{log:E,err:F}=c(87777),{LSOF_BIN:G}=c(17511),{setLinuxNodeExtraCaCerts:H,unsetLinuxNodeExtraCaCerts:I}=c(26444),J="linux"===process.platform,K="http://localhost:20128";function L(a){return null==a||""===a?"''":`'${String(a).replace(/'/g,"'\\''")}'`}async function M(){if(!ad)return K;try{let a=await ad(),b=a&&null!=a.mitmRouterBaseUrl?String(a.mitmRouterBaseUrl).trim():"";if(!b)return K;let c=new URL(b);if("http:"!==c.protocol&&"https:"!==c.protocol)return K;return b.replace(/\/+$/,"")}catch{return K}}let N=g.join(D,".mitm.pid"),O=g.join(D,".mitm.lock"),P=[5e3,1e4,2e4,3e4,6e4],Q=0,R=0,S=!1;function T(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}function U(a){try{if(!a||!h.existsSync(a)||!a.includes(`${g.sep}node_modules${g.sep}`))return a;let b=g.join(C,"runtime","mitm"),c=g.join(b,"server.js");if(h.existsSync(c))try{if(h.statSync(a).size===h.statSync(c).size)return c}catch{}return h.mkdirSync(b,{recursive:!0}),h.copyFileSync(a,c),c}catch(b){try{E(`[MITM] runtime copy failed: ${b.message}`)}catch{}return a}}let V=U(T()),W="aes-256-gcm",X="9router-mitm-pwd",Y=null,Z=null;function $(){return globalThis.__mitmSudoPassword||null}function _(a){globalThis.__mitmSudoPassword=a}function aa(a){try{return process.kill(a,0),!0}catch(a){return"EACCES"===a.code}}function ab(a,b=!1,e=null){if(w)d(`taskkill ${b?"/F ":""}/PID ${a}`,{windowsHide:!0},()=>{});else{let f=b?"SIGKILL":"SIGTERM",g=`pkill -${f} -P ${a} 2>/dev/null; kill -${f} ${a} 2>/dev/null`;if(e||s()){let{execWithPassword:a}=c(66936);a(g,e||"").catch(()=>d(g,{windowsHide:!0},()=>{}))}else d(g,{windowsHide:!0},()=>{})}}function ac(){try{let{machineIdSync:a}=c(19713),b=a();return l.createHash("sha256").update(b+X).digest()}catch{return l.createHash("sha256").update(X).digest()}}let ad=null,ae=null;async function af(a,b){if(ae)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=ac(),d=l.randomBytes(12),e=l.createCipheriv(W,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await ae(h)}catch(a){F(`Failed to save settings: ${a.message}`)}}async function ag(){if(ae)try{await ae({mitmSudoEncrypted:null})}catch(a){F(`Failed to clear encrypted password: ${a.message}`)}}async function ah(){if(!ad)return null;try{let a=await ad();if(!a.mitmSudoEncrypted)return null;return function(a){try{let[b,c,d]=a.split(":");if(!b||!c||!d)return null;let e=ac(),f=l.createDecipheriv(W,e,Buffer.from(b,"hex"));return f.setAuthTag(Buffer.from(c,"hex")),f.update(Buffer.from(d,"hex"))+f.final("utf8")}catch{return null}}(a.mitmSudoEncrypted)}catch{return null}}async function ai(a,b){if(ae&&ad)try{let c={...(await ad()).dnsToolEnabled||{},[a]:b};await ae({dnsToolEnabled:c})}catch(a){F(`Failed to save DNS state: ${a.message}`)}}async function aj(){if(!ad)return{};try{return(await ad()).dnsToolEnabled||{}}catch{return{}}}async function ak(a){let b=await aj(),c=a||$()||await ah();for(let[a,d]of Object.entries(b))if(d&&r[a])try{await m(a,c)}catch(b){F(`DNS ${a}: restore failed — ${b.message}`)}}async function al(){return w?u():!(!u()&&t())||!!($()||await ah())}function am(a){return new Promise(a=>{w?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d(`${G} -nP -iTCP:443 -sTCP:LISTEN -t`,{windowsHide:!0},(b,c)=>{if(b||!c?.trim())return a(null);let e=parseInt(c.trim().split("\n")[0],10);if(!e||isNaN(e))return a(null);d(`ps -p ${e} -o comm=`,{windowsHide:!0},(b,c)=>{a({pid:e,name:c?.trim()||"unknown"})})})})}async function an(a){if(Y&&!Y.killed){try{Y.kill("SIGKILL")}catch{}Y=null,Z=null}try{if(h.existsSync(N)){let b=parseInt(h.readFileSync(N,"utf-8").trim(),10);b&&aa(b)&&(ab(b,!0,a),await new Promise(a=>setTimeout(a,500))),h.unlinkSync(N)}}catch{}if(!w&&V)try{let b=V.replace(/'/g,"'\\''");if(a||s()){let{execWithPassword:d}=c(66936);await d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,a||"").catch(()=>{})}else d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,{windowsHide:!0},()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}async function ao(){let a=null!==Y&&!Y.killed,b=Z;if(!a)try{if(h.existsSync(N)){let c=parseInt(h.readFileSync(N,"utf-8").trim(),10);c&&aa(c)?(a=!0,b=c):h.unlinkSync(N)}}catch{}let d=q(),e=g.join(D,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(9631),j=!!f&&await i(e),k=a?[]:Object.keys(d||{}).filter(a=>d[a]),l=k.length>0,{containerized:m,kind:n}=v();return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d,staleDns:l,staleDnsTools:k,containerized:m,containerKind:n}}async function ap(a){if(S)return;if(S=!0,Y&&!Y.killed){Q=0,E("MITM server already running, no restart needed");return}if(Date.now()-R>=6e4&&(Q=0),Q>=5){F("Max restart attempts reached. Giving up."),S=!1;return}let b=P[Math.min(Q,P.length-1)];Q++,E(`Restarting in ${b/1e3}s... (${Q}/5)`),await new Promise(a=>setTimeout(a,b));try{let b=ad?await ad():null;if(b&&!b.mitmEnabled){E("MITM disabled, skipping restart"),S=!1;return}let c=$()||await ah();if(!c&&!w){F("No cached password, cannot auto-restart"),S=!1;return}await ar(a,c),E("\uD83D\uDD04 Restarted successfully"),Q=0,S=!1}catch(b){F(`Restart attempt ${Q}/5 failed: ${b.message}`),S=!1,ap(a)}}async function aq(a,b){if(a&&a.pid){if(w)try{f(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${a.pid} -Force -ErrorAction SilentlyContinue"`,{windowsHide:!0})}catch{}else try{let{execWithPassword:d}=c(66936);b||s()?await d(`kill -9 ${a.pid}`,b||""):f(`kill -9 ${a.pid}`,{windowsHide:!0})}catch{}await new Promise(a=>setTimeout(a,800))}}async function ar(a,b,l=!1){if(!Y||Y.killed)try{if(h.existsSync(N)){let a=parseInt(h.readFileSync(N,"utf-8").trim(),10);if(a&&aa(a))return Z=a,E(`♻️ Reusing existing process (PID: ${a})`),await af(!0,b),b&&_(b),{running:!0,pid:a};h.unlinkSync(N)}}catch{}if(Y&&!Y.killed)throw Error("MITM server is already running");try{h.writeFileSync(O,String(process.pid),{flag:"wx"})}catch(a){if("EEXIST"===a.code)throw Error("MITM server is already starting (lock contention)");throw a}try{if(await an(b),!w){let a=await new Promise(a=>{let b=j.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await am(b);if(a){let c=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;if(l)E(`Killing process on port 443 (PID ${a.pid}, name=${c})...`),await aq(a,b);else{let b=Error(`Port 443 is already in use by "${c}" (PID ${a.pid}).`);throw b.code="PORT_443_BUSY",b.portOwner={pid:a.pid,name:c},b}}}}let m=g.join(D,"rootCA.crt"),n=g.join(D,"rootCA.key"),o=h.existsSync(m)&&h.existsSync(n);if(!o||B(m)){if(o){E("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||$()||await ah();try{await A(a,m)}catch{}}E("\uD83D\uDD10 Generating Root CA..."),await y()}let{checkCertInstalled:p}=c(9631),r=await p(m),u=!w&&!x&&!s();if(r)E("\uD83D\uDD10 Cert: already trusted ✅");else{E("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||$()||await ah();if(u)E(`🔐 Cert: skipping system trust (no sudo). Install ${m} as a trusted CA on machines that use this proxy.`);else{if(!a&&t())throw Error("Sudo password required to install Root CA certificate");try{await z(a,m),E("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}}let v=V;if((!v||!h.existsSync(v))&&(E(`[MITM] server.js missing at ${v} → recopying`),!(v=U(T()))||!h.existsSync(v)))throw Error(`MITM server.js not found at ${v}. Reinstall kRouter.`);let C=await M();if(E(`🚀 Starting server... (router: ${C})`),w){let c=await am(b);if(c)if(l)E(`Killing process on port 443 (PID ${c.pid}, name=${c.name})...`),await aq(c,b);else{let a=Error(`Port 443 is already in use by "${c.name}" (PID ${c.pid}).`);throw a.code="PORT_443_BUSY",a.portOwner={pid:c.pid,name:c.name},a}Y=e(process.execPath,[v],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:C}}),ae&&await ae({mitmCertInstalled:!0}).catch(()=>{})}else if(s()){let c=[`HOME=${L(i.homedir())}`,`ROUTER_API_KEY=${L(a)}`,`MITM_ROUTER_BASE=${L(C)}`,"NODE_ENV=production",L(process.execPath),L(v)].join(" ");(Y=e("sudo",["-S","-E","sh","-c",c],{detached:!1,windowsHide:!0,stdio:["pipe","pipe","pipe"]})).stdin.write(`${b}
66
- `),Y.stdin.end()}else Y=e(process.execPath,[v],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:C}});if(Y&&(Z=Y.pid,h.writeFileSync(N,String(Z)),R=Date.now()),x){let a=g.join(D,"rootCA.crt");h.existsSync(a)&&d(`launchctl setenv NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},b=>{b?E(`[launchctl] Failed to set NODE_EXTRA_CA_CERTS: ${b.message}`):E(`[launchctl] NODE_EXTRA_CA_CERTS set to ${a}`)})}else if(w){let a=g.join(D,"rootCA.crt");h.existsSync(a)&&d(`setx NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},a=>{a?E(`[setx] Failed to set NODE_EXTRA_CA_CERTS: ${a.message}`):E("[setx] NODE_EXTRA_CA_CERTS set for current user")})}else if(J){let a=g.join(D,"rootCA.crt");if(h.existsSync(a))try{let b=H(a);b.length>0?(E(`[linux-node-ca] NODE_EXTRA_CA_CERTS written to ${b.length} file(s): ${b.map(a=>a.replace(i.homedir(),"~")).join(", ")}`),E("[linux-node-ca] ⚠ Terminal-launched IDE: open a NEW terminal OR run: source ~/.profile"),E("[linux-node-ca] ⚠ Menu-launched IDE (GNOME / KDE Activities, .desktop): log out + back in OR run: systemctl --user daemon-reload && systemctl --user import-environment")):E("[linux-node-ca] NODE_EXTRA_CA_CERTS already set, no changes needed")}catch(a){E(`[linux-node-ca] Failed to set NODE_EXTRA_CA_CERTS: ${a.message}`)}}let I=null;Y&&(Y.stdout.on("data",a=>{process.stdout.write(a)}),Y.stderr.on("data",a=>{let b=a.toString().trim();b&&(w||!b.includes("Password:")&&!b.includes("password for"))&&(F(b),I=b),!w&&(b.includes("incorrect password")||b.includes("no password was provided"))&&(_(null),ag(),S=!0)}),Y.on("exit",b=>{E(`Server exited (code: ${b})`),Y=null,Z=null;try{h.unlinkSync(N)}catch{}try{h.unlinkSync(O)}catch{}0===b||S||ap(a)}));let K=await function(a=443){return new Promise(b=>{let c=Date.now()+8e3,d=()=>{let e=k.request({hostname:"127.0.0.1",port:a,path:"/_mitm_health",method:"GET",rejectUnauthorized:!1},a=>{let c="";a.on("data",a=>{c+=a}),a.on("end",()=>{try{let a=JSON.parse(c);b(!0===a.ok?{ok:!0,pid:a.pid||null}:null)}catch{b(null)}})});e.on("error",()=>{Date.now()<c?setTimeout(d,500):b(null)}),e.end()};d()})}(443);if(!K){if(Y&&!Y.killed){try{Y.kill()}catch{}Y=null}let a=function(){try{if(w){let a=f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{encoding:"utf8",windowsHide:!0}).trim(),b=parseInt(a,10);if(b&&b>4){let a=f(`tasklist /FI "PID eq ${b}" /FO CSV /NH`,{encoding:"utf8",windowsHide:!0}).match(/"([^"]+)"/);if(a)return a[1].replace(".exe","")}}else{let a=f(`${G} -i :443`,{encoding:"utf8",windowsHide:!0}).trim().split("\n");if(a.length>1)return a[1].split(/\s+/)[0]}}catch{}return null}(),b=a?` Port 443 already in use by ${a}.`:"",c=I||`Check sudo password or port 443 access.${b}`;throw Error(`MITM server failed to start. ${c}`)}ae&&await ae({mitmCertInstalled:!0}).catch(()=>{}),E(`✅ Server healthy (PID: ${Z||K.pid})`);let P=q();for(let[a,b]of Object.entries(P))E(`🌐 DNS ${a}: ${b?"✅ active":"❌ inactive"}`);await af(!0,b),b&&_(b);try{h.unlinkSync(O)}catch{}return{running:!0,pid:Z}}catch(a){try{h.unlinkSync(O)}catch{}throw a}}async function as(a){S=!0,Q=0,E("⏹ Stopping server...");let b=Y,e=b&&!b.killed?b.pid:(()=>{try{return parseInt(h.readFileSync(N,"utf-8").trim(),10)}catch{return null}})();if(e&&aa(e)&&(E(`Killing server (PID: ${e})...`),ab(e,!1,a),await new Promise(a=>setTimeout(a,1e3)),aa(e)&&ab(e,!0,a)),Y=null,Z=null,w){let a=g.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"),b=Object.values(r).flat();try{let{isAdmin:d,runElevatedPowerShell:e,quotePs:f}=c(64809);if(d()){let d=h.readFileSync(a,"utf8"),e=d.split(/\r?\n/).filter(a=>!b.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";e!==d&&h.writeFileSync(a,e,"utf8");try{c(79646).execSync("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}E("\uD83C\uDF10 DNS: ✅ all tool hosts removed")}else{let c=b.map(f).join(","),d=`
67
+ ${c}`;d.writeFileSync(h,g),o()}catch{}},file:h}},clearDumpDir:function(){try{if(!d.existsSync(j))return;for(let a of d.readdirSync(j))try{d.rmSync(e.join(j,a),{recursive:!0,force:!0})}catch{}}catch{}}}},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021),i=c(21820),j=c(91645),k=c(55591),l=c(55511),{addDNSEntry:m,removeDNSEntry:n,removeAllDNSEntries:o,removeAllDNSEntriesSync:p,checkAllDNSStatus:q,TOOL_HOSTS:r,isSudoAvailable:s,isSudoPasswordRequired:t}=c(66936),{isAdmin:u}=c(64809),{detectContainer:v}=c(11722),w="win32"===process.platform,x="darwin"===process.platform,{generateCert:y}=c(26033),{installCert:z,uninstallCert:A}=c(9631),{isCertExpired:B}=c(8578),{DATA_DIR:C,MITM_DIR:D}=c(82193),{log:E,err:F}=c(87777),{LSOF_BIN:G}=c(17511),{setLinuxNodeExtraCaCerts:H}=c(26444),{configureIdeCaTrust:I}=c(77715),J="linux"===process.platform,K="http://localhost:20128";function L(a){return null==a||""===a?"''":`'${String(a).replace(/'/g,"'\\''")}'`}async function M(){if(!ad)return K;try{let a=await ad(),b=a&&null!=a.mitmRouterBaseUrl?String(a.mitmRouterBaseUrl).trim():"";if(!b)return K;let c=new URL(b);if("http:"!==c.protocol&&"https:"!==c.protocol)return K;return b.replace(/\/+$/,"")}catch{return K}}let N=g.join(D,".mitm.pid"),O=g.join(D,".mitm.lock"),P=[5e3,1e4,2e4,3e4,6e4],Q=0,R=0,S=!1;function T(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}function U(a){try{if(!a||!h.existsSync(a)||!a.includes(`${g.sep}node_modules${g.sep}`))return a;let b=g.join(C,"runtime","mitm"),c=g.join(b,"server.js");if(h.existsSync(c))try{if(h.statSync(a).size===h.statSync(c).size)return c}catch{}return h.mkdirSync(b,{recursive:!0}),h.copyFileSync(a,c),c}catch(b){try{E(`[MITM] runtime copy failed: ${b.message}`)}catch{}return a}}let V=U(T()),W="aes-256-gcm",X="9router-mitm-pwd",Y=null,Z=null;function $(){return globalThis.__mitmSudoPassword||null}function _(a){globalThis.__mitmSudoPassword=a}function aa(a){try{return process.kill(a,0),!0}catch(a){return"EACCES"===a.code}}function ab(a,b=!1,e=null){if(w)d(`taskkill ${b?"/F ":""}/PID ${a}`,{windowsHide:!0},()=>{});else{let f=b?"SIGKILL":"SIGTERM",g=`pkill -${f} -P ${a} 2>/dev/null; kill -${f} ${a} 2>/dev/null`;if(e||s()){let{execWithPassword:a}=c(66936);a(g,e||"").catch(()=>d(g,{windowsHide:!0},()=>{}))}else d(g,{windowsHide:!0},()=>{})}}function ac(){try{let{machineIdSync:a}=c(19713),b=a();return l.createHash("sha256").update(b+X).digest()}catch{return l.createHash("sha256").update(X).digest()}}let ad=null,ae=null;async function af(a,b){if(ae)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=ac(),d=l.randomBytes(12),e=l.createCipheriv(W,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await ae(h)}catch(a){F(`Failed to save settings: ${a.message}`)}}async function ag(){if(ae)try{await ae({mitmSudoEncrypted:null})}catch(a){F(`Failed to clear encrypted password: ${a.message}`)}}async function ah(){if(!ad)return null;try{let a=await ad();if(!a.mitmSudoEncrypted)return null;return function(a){try{let[b,c,d]=a.split(":");if(!b||!c||!d)return null;let e=ac(),f=l.createDecipheriv(W,e,Buffer.from(b,"hex"));return f.setAuthTag(Buffer.from(c,"hex")),f.update(Buffer.from(d,"hex"))+f.final("utf8")}catch{return null}}(a.mitmSudoEncrypted)}catch{return null}}async function ai(a,b){if(ae&&ad)try{let c={...(await ad()).dnsToolEnabled||{},[a]:b};await ae({dnsToolEnabled:c})}catch(a){F(`Failed to save DNS state: ${a.message}`)}}async function aj(){if(!ad)return{};try{return(await ad()).dnsToolEnabled||{}}catch{return{}}}async function ak(a){let b=await aj(),c=a||$()||await ah();for(let[a,d]of Object.entries(b))if(d&&r[a])try{await m(a,c)}catch(b){F(`DNS ${a}: restore failed — ${b.message}`)}}async function al(){return w?u():!(!u()&&t())||!!($()||await ah())}function am(a){return new Promise(a=>{w?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d(`${G} -nP -iTCP:443 -sTCP:LISTEN -t`,{windowsHide:!0},(b,c)=>{if(b||!c?.trim())return a(null);let e=parseInt(c.trim().split("\n")[0],10);if(!e||isNaN(e))return a(null);d(`ps -p ${e} -o comm=`,{windowsHide:!0},(b,c)=>{a({pid:e,name:c?.trim()||"unknown"})})})})}async function an(a){if(Y&&!Y.killed){try{Y.kill("SIGKILL")}catch{}Y=null,Z=null}try{if(h.existsSync(N)){let b=parseInt(h.readFileSync(N,"utf-8").trim(),10);b&&aa(b)&&(ab(b,!0,a),await new Promise(a=>setTimeout(a,500))),h.unlinkSync(N)}}catch{}if(!w&&V)try{let b=V.replace(/'/g,"'\\''");if(a||s()){let{execWithPassword:d}=c(66936);await d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,a||"").catch(()=>{})}else d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,{windowsHide:!0},()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}async function ao(){let a=null!==Y&&!Y.killed,b=Z;if(!a)try{if(h.existsSync(N)){let c=parseInt(h.readFileSync(N,"utf-8").trim(),10);c&&aa(c)?(a=!0,b=c):h.unlinkSync(N)}}catch{}let d=q(),e=g.join(D,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(9631),j=!!f&&await i(e),k=a?[]:Object.keys(d||{}).filter(a=>d[a]),l=k.length>0,{containerized:m,kind:n}=v();return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d,staleDns:l,staleDnsTools:k,containerized:m,containerKind:n}}async function ap(a){if(S)return;if(S=!0,Y&&!Y.killed){Q=0,E("MITM server already running, no restart needed");return}if(Date.now()-R>=6e4&&(Q=0),Q>=5){F("Max restart attempts reached. Giving up."),S=!1;return}let b=P[Math.min(Q,P.length-1)];Q++,E(`Restarting in ${b/1e3}s... (${Q}/5)`),await new Promise(a=>setTimeout(a,b));try{let b=ad?await ad():null;if(b&&!b.mitmEnabled){E("MITM disabled, skipping restart"),S=!1;return}let c=$()||await ah();if(!c&&!w){F("No cached password, cannot auto-restart"),S=!1;return}await ar(a,c),E("\uD83D\uDD04 Restarted successfully"),Q=0,S=!1}catch(b){F(`Restart attempt ${Q}/5 failed: ${b.message}`),S=!1,ap(a)}}async function aq(a,b){if(a&&a.pid){if(w)try{f(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${a.pid} -Force -ErrorAction SilentlyContinue"`,{windowsHide:!0})}catch{}else try{let{execWithPassword:d}=c(66936);b||s()?await d(`kill -9 ${a.pid}`,b||""):f(`kill -9 ${a.pid}`,{windowsHide:!0})}catch{}await new Promise(a=>setTimeout(a,800))}}async function ar(a,b,l=!1){if(!Y||Y.killed)try{if(h.existsSync(N)){let a=parseInt(h.readFileSync(N,"utf-8").trim(),10);if(a&&aa(a))return Z=a,E(`♻️ Reusing existing process (PID: ${a})`),await af(!0,b),b&&_(b),{running:!0,pid:a};h.unlinkSync(N)}}catch{}if(Y&&!Y.killed)throw Error("MITM server is already running");try{h.writeFileSync(O,String(process.pid),{flag:"wx"})}catch(a){if("EEXIST"===a.code)throw Error("MITM server is already starting (lock contention)");throw a}try{if(await an(b),!w){let a=await new Promise(a=>{let b=j.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await am(b);if(a){let c=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;if(l)E(`Killing process on port 443 (PID ${a.pid}, name=${c})...`),await aq(a,b);else{let b=Error(`Port 443 is already in use by "${c}" (PID ${a.pid}).`);throw b.code="PORT_443_BUSY",b.portOwner={pid:a.pid,name:c},b}}}}let m=g.join(D,"rootCA.crt"),n=g.join(D,"rootCA.key"),o=h.existsSync(m)&&h.existsSync(n);if(!o||B(m)){if(o){E("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||$()||await ah();try{await A(a,m)}catch{}}E("\uD83D\uDD10 Generating Root CA..."),await y()}let{checkCertInstalled:p}=c(9631),r=await p(m),u=!w&&!x&&!s();if(r)E("\uD83D\uDD10 Cert: already trusted ✅");else{E("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||$()||await ah();if(u)E(`🔐 Cert: skipping system trust (no sudo). Install ${m} as a trusted CA on machines that use this proxy.`);else{if(!a&&t())throw Error("Sudo password required to install Root CA certificate");try{await z(a,m),E("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}}let v=V;if((!v||!h.existsSync(v))&&(E(`[MITM] server.js missing at ${v} → recopying`),!(v=U(T()))||!h.existsSync(v)))throw Error(`MITM server.js not found at ${v}. Reinstall kRouter.`);let C=await M();if(E(`🚀 Starting server... (router: ${C})`),w){let c=await am(b);if(c)if(l)E(`Killing process on port 443 (PID ${c.pid}, name=${c.name})...`),await aq(c,b);else{let a=Error(`Port 443 is already in use by "${c.name}" (PID ${c.pid}).`);throw a.code="PORT_443_BUSY",a.portOwner={pid:c.pid,name:c.name},a}Y=e(process.execPath,[v],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:C}}),ae&&await ae({mitmCertInstalled:!0}).catch(()=>{})}else if(s()){let c=[`HOME=${L(i.homedir())}`,`ROUTER_API_KEY=${L(a)}`,`MITM_ROUTER_BASE=${L(C)}`,"NODE_ENV=production",L(process.execPath),L(v)].join(" ");(Y=e("sudo",["-S","-E","sh","-c",c],{detached:!1,windowsHide:!0,stdio:["pipe","pipe","pipe"]})).stdin.write(`${b}
68
+ `),Y.stdin.end()}else Y=e(process.execPath,[v],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:C}});Y&&(Z=Y.pid,h.writeFileSync(N,String(Z)),R=Date.now());try{let a=g.join(D,"rootCA.crt"),b=I(a);for(let a of b.written)E(`[ide-ca] ${a} -> kRouter root CA`);for(let a of b.failed)E(`[ide-ca] ${a}`)}catch(a){E(`[ide-ca] Failed: ${a.message}`)}if(x){let a=g.join(D,"rootCA.crt");h.existsSync(a)&&d(`launchctl setenv NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},b=>{b?E(`[launchctl] Failed to set NODE_EXTRA_CA_CERTS: ${b.message}`):E(`[launchctl] NODE_EXTRA_CA_CERTS set to ${a}`)})}else if(w){let a=g.join(D,"rootCA.crt");h.existsSync(a)&&d(`setx NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},a=>{a?E(`[setx] Failed to set NODE_EXTRA_CA_CERTS: ${a.message}`):E("[setx] NODE_EXTRA_CA_CERTS set for current user")})}else if(J){let a=g.join(D,"rootCA.crt");if(h.existsSync(a))try{let b=H(a);b.length>0?(E(`[linux-node-ca] NODE_EXTRA_CA_CERTS written to ${b.length} file(s): ${b.map(a=>a.replace(i.homedir(),"~")).join(", ")}`),E("[linux-node-ca] ⚠ Terminal-launched IDE: open a NEW terminal OR run: source ~/.profile"),E("[linux-node-ca] ⚠ Menu-launched IDE (GNOME / KDE Activities, .desktop): log out + back in OR run: systemctl --user daemon-reload && systemctl --user import-environment")):E("[linux-node-ca] NODE_EXTRA_CA_CERTS already set, no changes needed")}catch(a){E(`[linux-node-ca] Failed to set NODE_EXTRA_CA_CERTS: ${a.message}`)}}let K=null;Y&&(Y.stdout.on("data",a=>{process.stdout.write(a)}),Y.stderr.on("data",a=>{let b=a.toString().trim();b&&(w||!b.includes("Password:")&&!b.includes("password for"))&&(F(b),K=b),!w&&(b.includes("incorrect password")||b.includes("no password was provided"))&&(_(null),ag(),S=!0)}),Y.on("exit",b=>{E(`Server exited (code: ${b})`),Y=null,Z=null;try{h.unlinkSync(N)}catch{}try{h.unlinkSync(O)}catch{}0===b||S||ap(a)}));let P=await function(a=443){return new Promise(b=>{let c=Date.now()+8e3,d=()=>{let e=k.request({hostname:"127.0.0.1",port:a,path:"/_mitm_health",method:"GET",rejectUnauthorized:!1},a=>{let c="";a.on("data",a=>{c+=a}),a.on("end",()=>{try{let a=JSON.parse(c);b(!0===a.ok?{ok:!0,pid:a.pid||null}:null)}catch{b(null)}})});e.on("error",()=>{Date.now()<c?setTimeout(d,500):b(null)}),e.end()};d()})}(443);if(!P){if(Y&&!Y.killed){try{Y.kill()}catch{}Y=null}let a=function(){try{if(w){let a=f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{encoding:"utf8",windowsHide:!0}).trim(),b=parseInt(a,10);if(b&&b>4){let a=f(`tasklist /FI "PID eq ${b}" /FO CSV /NH`,{encoding:"utf8",windowsHide:!0}).match(/"([^"]+)"/);if(a)return a[1].replace(".exe","")}}else{let a=f(`${G} -i :443`,{encoding:"utf8",windowsHide:!0}).trim().split("\n");if(a.length>1)return a[1].split(/\s+/)[0]}}catch{}return null}(),b=a?` Port 443 already in use by ${a}.`:"",c=K||`Check sudo password or port 443 access.${b}`;throw Error(`MITM server failed to start. ${c}`)}ae&&await ae({mitmCertInstalled:!0}).catch(()=>{}),E(`✅ Server healthy (PID: ${Z||P.pid})`);let Q=q();for(let[a,b]of Object.entries(Q))E(`🌐 DNS ${a}: ${b?"✅ active":"❌ inactive"}`);await af(!0,b),b&&_(b);try{h.unlinkSync(O)}catch{}return{running:!0,pid:Z}}catch(a){try{h.unlinkSync(O)}catch{}throw a}}async function as(a){S=!0,Q=0,E("⏹ Stopping server...");let b=Y,d=b&&!b.killed?b.pid:(()=>{try{return parseInt(h.readFileSync(N,"utf-8").trim(),10)}catch{return null}})();if(d&&aa(d)&&(E(`Killing server (PID: ${d})...`),ab(d,!1,a),await new Promise(a=>setTimeout(a,1e3)),aa(d)&&ab(d,!0,a)),Y=null,Z=null,w){let a=g.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"),b=Object.values(r).flat();try{let{isAdmin:d,runElevatedPowerShell:e,quotePs:f}=c(64809);if(d()){let d=h.readFileSync(a,"utf8"),e=d.split(/\r?\n/).filter(a=>!b.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";e!==d&&h.writeFileSync(a,e,"utf8");try{c(79646).execSync("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}E("\uD83C\uDF10 DNS: ✅ all tool hosts removed")}else{let c=b.map(f).join(","),d=`
67
69
  $hosts = @(${c})
68
70
  $lines = Get-Content -LiteralPath ${f(a)}
69
71
  $filtered = $lines | Where-Object {
@@ -72,4 +74,4 @@ ${c}`;d.writeFileSync(h,g),o()}catch{}},file:h}},clearDumpDir:function(){try{if(
72
74
  }
73
75
  Set-Content -LiteralPath ${f(a)} -Value $filtered
74
76
  ipconfig /flushdns | Out-Null
75
- `;await e(d)}}catch(a){F(`Failed to clean hosts: ${a.message}`)}}else await o(a);if(x)d("launchctl unsetenv NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?E(`[launchctl] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):E("[launchctl] NODE_EXTRA_CA_CERTS unset")});else if(w)d("reg delete HKCU\\Environment /F /V NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?E(`[reg] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):E("[reg] NODE_EXTRA_CA_CERTS unset")});else if(J)try{let a=I();a.length>0&&E(`[linux-node-ca] NODE_EXTRA_CA_CERTS removed from ${a.length} shell rc file(s)`)}catch(a){E(`[linux-node-ca] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`)}try{h.unlinkSync(N)}catch{}try{h.unlinkSync(O)}catch{}return await af(!1,null),S=!1,{running:!1,pid:null}}async function at(a,b){if(!(await ao()).running)throw Error("MITM server is not running. Start the server first.");let c=b||$()||await ah();return await m(a,c),await ai(a,!0),{success:!0}}a.exports={getMitmStatus:ao,startServer:ar,stopServer:as,enableToolDNS:at,disableToolDNS:async function a(a,b){let c=b||$()||await ah();return await n(a,c),await ai(a,!1),{success:!0}},trustCert:async function a(a){let b=g.join(D,"rootCA.crt");if(!h.existsSync(b))throw Error("Root CA not found. Start server first to generate it.");let{installCert:d}=c(9631);if(!w&&!x&&!s())return void E(`🔐 Cert: system trust unavailable (no sudo). Use file: ${b}`);let e=a||$()||await ah();if(!e&&t())throw Error("Sudo password required to trust certificate");await d(e,b),e&&_(e)},startMitm:ar,stopMitm:as,getCachedPassword:$,setCachedPassword:_,loadEncryptedPassword:ah,clearEncryptedPassword:ag,isSudoPasswordRequired:t,initDbHooks:function(a,b){ad=a,ae=b},restoreToolDNS:ak,hasDnsPrivilege:al,removeAllDNSEntries:o,removeAllDNSEntriesSync:p}}};
77
+ `;await e(d)}}catch(a){F(`Failed to clean hosts: ${a.message}`)}}else await o(a);try{h.unlinkSync(N)}catch{}try{h.unlinkSync(O)}catch{}return await af(!1,null),S=!1,{running:!1,pid:null}}async function at(a,b){if(!(await ao()).running)throw Error("MITM server is not running. Start the server first.");let c=b||$()||await ah();return await m(a,c),await ai(a,!0),{success:!0}}a.exports={getMitmStatus:ao,startServer:ar,stopServer:as,enableToolDNS:at,disableToolDNS:async function a(a,b){let c=b||$()||await ah();return await n(a,c),await ai(a,!1),{success:!0}},trustCert:async function a(a){let b=g.join(D,"rootCA.crt");if(!h.existsSync(b))throw Error("Root CA not found. Start server first to generate it.");let{installCert:d}=c(9631);if(!w&&!x&&!s())return void E(`🔐 Cert: system trust unavailable (no sudo). Use file: ${b}`);let e=a||$()||await ah();if(!e&&t())throw Error("Sudo password required to trust certificate");await d(e,b),e&&_(e)},startMitm:ar,stopMitm:as,getCachedPassword:$,setCachedPassword:_,loadEncryptedPassword:ah,clearEncryptedPassword:ag,isSudoPasswordRequired:t,initDbHooks:function(a,b){ad=a,ae=b},restoreToolDNS:ak,hasDnsPrivilege:al,removeAllDNSEntries:o,removeAllDNSEntriesSync:p}}};