@sifxprime/krouter 0.5.16 → 0.5.17

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 (382) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +3 -3
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +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.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/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/quota/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  32. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  33. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  34. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  35. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  36. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  37. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  38. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  39. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  41. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  42. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  43. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  44. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  45. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  46. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  47. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  48. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  61. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/api/import/route.js +1 -1
  64. package/app/.next-cli-build/server/app/api/import/route.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/mitm/cert/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/models/live/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  78. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  80. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  96. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  99. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  114. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  138. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  149. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  150. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  152. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  154. package/app/.next-cli-build/server/app/callback.html +1 -1
  155. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  156. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  157. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  158. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  159. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  160. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  161. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  162. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  163. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  164. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  165. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  166. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  167. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  168. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  169. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  170. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  171. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  172. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  173. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  174. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  175. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  176. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  177. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  178. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  179. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  180. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  181. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  182. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  183. package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  184. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  185. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  186. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  187. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  188. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  189. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  190. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  191. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  192. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  193. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  194. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  195. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  196. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  197. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  198. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  199. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  200. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  201. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  202. package/app/.next-cli-build/server/app/dashboard/environment.html +1 -1
  203. package/app/.next-cli-build/server/app/dashboard/environment.rsc +5 -5
  204. package/app/.next-cli-build/server/app/dashboard/environment.segments/!KGRhc2hib2FyZCk/dashboard/environment/__PAGE__.segment.rsc +2 -2
  205. package/app/.next-cli-build/server/app/dashboard/environment.segments/!KGRhc2hib2FyZCk/dashboard/environment.segment.rsc +1 -1
  206. package/app/.next-cli-build/server/app/dashboard/environment.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  207. package/app/.next-cli-build/server/app/dashboard/environment.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  208. package/app/.next-cli-build/server/app/dashboard/environment.segments/_full.segment.rsc +5 -5
  209. package/app/.next-cli-build/server/app/dashboard/environment.segments/_head.segment.rsc +1 -1
  210. package/app/.next-cli-build/server/app/dashboard/environment.segments/_index.segment.rsc +3 -3
  211. package/app/.next-cli-build/server/app/dashboard/environment.segments/_tree.segment.rsc +1 -1
  212. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  213. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  214. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  215. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  216. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  217. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  218. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  219. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  220. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  221. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  222. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  223. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  224. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  225. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  226. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  227. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  228. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  229. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  230. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  231. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  232. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  233. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  234. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  235. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  236. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  237. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  238. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  239. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  240. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  241. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  242. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  243. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  244. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  245. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  246. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  247. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  248. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  249. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  250. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  251. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  252. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  253. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  254. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  255. package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  256. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  257. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  258. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  259. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  260. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  261. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  262. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  263. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  264. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  265. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  266. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  267. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  268. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  269. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  270. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  271. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  272. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  273. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  274. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  275. package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  276. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  277. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  278. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  279. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  280. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  281. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  282. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  283. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  284. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  285. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  286. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  287. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  288. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  289. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  290. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  291. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  292. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  293. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  294. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  295. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  296. package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  297. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  298. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  299. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  300. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  301. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  302. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  303. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  304. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  305. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  306. package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  307. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  308. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  309. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  310. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  311. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  312. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  313. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  314. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  315. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  316. package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  317. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  318. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  319. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  320. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  321. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  322. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  323. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  324. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  325. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  326. package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  327. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  328. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  329. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  330. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  331. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  332. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  333. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  334. package/app/.next-cli-build/server/app/index.html +1 -1
  335. package/app/.next-cli-build/server/app/index.rsc +3 -3
  336. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  337. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  338. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  339. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  340. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  341. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  342. package/app/.next-cli-build/server/app/landing.html +1 -1
  343. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  344. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  345. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  346. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  347. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  348. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  349. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  350. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  351. package/app/.next-cli-build/server/app/login.html +1 -1
  352. package/app/.next-cli-build/server/app/login.rsc +4 -4
  353. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  354. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  355. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  356. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  357. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  358. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  359. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  360. package/app/.next-cli-build/server/app-paths-manifest.json +3 -3
  361. package/app/.next-cli-build/server/chunks/2722.js +1 -1
  362. package/app/.next-cli-build/server/chunks/318.js +3 -3
  363. package/app/.next-cli-build/server/chunks/4632.js +1 -1
  364. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  365. package/app/.next-cli-build/server/chunks/5681.js +1 -1
  366. package/app/.next-cli-build/server/chunks/706.js +1 -1
  367. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  368. package/app/.next-cli-build/server/chunks/7501.js +1 -1
  369. package/app/.next-cli-build/server/chunks/7540.js +3 -3
  370. package/app/.next-cli-build/server/chunks/8895.js +2 -2
  371. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  372. package/app/.next-cli-build/server/pages/404.html +1 -1
  373. package/app/.next-cli-build/server/pages/500.html +1 -1
  374. package/app/.next-cli-build/static/chunks/{1321-c5bb9c9981eb6f37.js → 1321-45daffa48fe03af6.js} +1 -1
  375. package/app/.next-cli-build/static/chunks/{6069-5c229452ebc2da84.js → 6069-f4f576e620d41009.js} +1 -1
  376. package/app/cli/.build-home/.krouter/db/backups/{upgrade-0.5.11-to-0.5.12-0.5.12-20260620-210434 → upgrade-0.5.15-to-0.5.16-0.5.16-20260621-054043}/data.sqlite +0 -0
  377. package/app/cli/.build-home/.krouter/db/data.sqlite +0 -0
  378. package/app/package.json +1 -1
  379. package/app/src/mitm/server.js +1 -1
  380. package/package.json +1 -1
  381. /package/app/.next-cli-build/static/{kzRnTfrZiVox-SX1ePItu → 4faqTz-oRf5i2RgMmKhrk}/_buildManifest.js +0 -0
  382. /package/app/.next-cli-build/static/{kzRnTfrZiVox-SX1ePItu → 4faqTz-oRf5i2RgMmKhrk}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6069],{3534:(e,t,s)=>{s.d(t,{dM:()=>a,wn:()=>l});let l={antigravity:{id:"antigravity",name:"Antigravity",image:"/providers/antigravity.png",color:"#4285F4",description:"Google Antigravity IDE with MITM",configType:"mitm",mitmDomain:"daily-cloudcode-pa.googleapis.com",modelAliases:["gemini-3.5-flash-low","gemini-3-flash-agent","gemini-3.5-flash-extra-low","gemini-3.1-pro-low","gemini-pro-agent","claude-sonnet-4-6","claude-opus-4-6-thinking","gpt-oss-120b-medium","gemini-3-flash"],defaultModels:[{id:"gemini-3.5-flash-low",name:"Gemini 3.5 Flash (Medium) / Default",alias:"gemini-3.5-flash-low",mandatory:!0},{id:"gemini-3-flash-agent",name:"Gemini 3.5 Flash (High)",alias:"gemini-3-flash-agent"},{id:"gemini-3.5-flash-extra-low",name:"Gemini 3.5 Flash (Low)",alias:"gemini-3.5-flash-extra-low"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)",alias:"gemini-3.1-pro-low"},{id:"gemini-pro-agent",name:"Gemini 3.1 Pro (High)",alias:"gemini-pro-agent"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)",alias:"claude-sonnet-4-6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)",alias:"claude-opus-4-6-thinking"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)",alias:"gpt-oss-120b-medium"},{id:"gemini-3-flash",name:"Gemini 3 Flash (Command)",alias:"gemini-3-flash"}]},copilot:{id:"copilot",name:"GitHub Copilot",image:"/providers/copilot.png",color:"#1F6FEB",description:"GitHub Copilot IDE with MITM",configType:"mitm",mitmDomain:"api.individual.githubcopilot.com",modelAliases:["gpt-5-mini","gpt-5.4-nano","claude-haiku-4.5","gpt-4o","gpt-4.1"],defaultModels:[{id:"gpt-5-mini",name:"GPT-5 mini",alias:"gpt-5-mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 nano",alias:"gpt-5.4-nano"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"},{id:"gpt-4o",name:"GPT-4o",alias:"gpt-4o"},{id:"gpt-4.1",name:"GPT-4.1",alias:"gpt-4.1"}]},kiro:{id:"kiro",name:"Kiro",image:"/providers/kiro.png",color:"#FF6B00",description:"Kiro IDE with MITM",configType:"mitm",mitmDomain:"q.us-east-1.amazonaws.com",defaultModels:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",alias:"claude-sonnet-4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4",alias:"claude-sonnet-4"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",alias:"deepseek-3.2"},{id:"minimax-m2.1",name:"MiniMax M2.1",alias:"minimax-m2.1"},{id:"simple-task",name:"Qwen3 Coder Next",alias:"simple-task"}]},claude:{id:"claude",name:"Claude Desktop",image:"/providers/claude.png",color:"#D97757",description:"Anthropic Claude Desktop app (Electron). Intercepts api.anthropic.com so the desktop app routes through kRouter to whichever provider you've mapped (your Claude OAuth, Antigravity, etc.). The Claude Code CLI does NOT need this — use ANTHROPIC_BASE_URL instead.",configType:"mitm",mitmDomain:"api.anthropic.com",defaultModels:[{id:"claude-opus-4-7",name:"Claude Opus 4.7",alias:"claude-opus-4-7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6",alias:"claude-opus-4-6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",alias:"claude-sonnet-4-6"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",alias:"claude-sonnet-4-5"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",alias:"claude-haiku-4-5"}]}},a={claude:{id:"claude",name:"Claude Code",image:"/providers/claude.png",color:"#D97757",description:"Anthropic Claude Code CLI",configType:"env",envVars:{baseUrl:"ANTHROPIC_BASE_URL",model:"ANTHROPIC_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"},modelAliases:["default","sonnet","opus","haiku","opusplan"],settingsFile:"~/.claude/settings.json",defaultModels:[{id:"opus",name:"Claude Opus",alias:"opus",envKey:"ANTHROPIC_DEFAULT_OPUS_MODEL",defaultValue:"cc/claude-opus-4-6"},{id:"sonnet",name:"Claude Sonnet",alias:"sonnet",envKey:"ANTHROPIC_DEFAULT_SONNET_MODEL",defaultValue:"cc/claude-sonnet-4-6"},{id:"haiku",name:"Claude Haiku",alias:"haiku",envKey:"ANTHROPIC_DEFAULT_HAIKU_MODEL",defaultValue:"cc/claude-haiku-4-5-20251001"}]},openclaw:{id:"openclaw",name:"Open Claw",image:"/providers/openclaw.png",color:"#FF6B35",description:"Open Claw AI Assistant",configType:"custom"},codex:{id:"codex",name:"OpenAI Codex CLI / App",image:"/providers/codex.png",color:"#10A37F",description:"OpenAI Codex CLI",configType:"custom"},opencode:{id:"opencode",name:"OpenCode",image:"/providers/opencode.png",color:"#E87040",description:"OpenCode AI Terminal Assistant",configType:"custom"},cowork:{id:"cowork",name:"Claude Cowork",image:"/providers/claude.png",color:"#D97757",description:"Claude Desktop Cowork (third-party inference)",configType:"custom"},hermes:{id:"hermes",name:"Hermes Agent",image:"/providers/hermes.png",color:"#8B5CF6",description:"Nous Research self-improving AI agent",configType:"custom"},droid:{id:"droid",name:"Factory Droid",image:"/providers/droid.png",color:"#00D4FF",description:"Factory Droid AI Assistant",configType:"custom"},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.png",color:"#000000",description:"Cursor AI Code Editor",configType:"guide",requiresExternalUrl:!0,notes:[{type:"warning",text:"Requires Cursor Pro account to use this feature."},{type:"cloudCheck",text:"Cursor routes requests through its own server, so local endpoint is not supported. Please enable Tunnel or Cloud Endpoint in Settings."}],guideSteps:[{step:1,title:"Open Settings",desc:"Go to Settings → Models"},{step:2,title:"Enable OpenAI API",desc:'Enable "OpenAI API key" option'},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Add Custom Model",desc:'Click "View All Model" → "Add Custom Model"'},{step:6,title:"Select Model",type:"modelSelector"}]},cline:{id:"cline",name:"Cline",image:"/providers/cline.png",color:"#00D1B2",description:"Cline AI Coding Assistant",configType:"custom"},kilo:{id:"kilo",name:"Kilo Code",image:"/providers/kilocode.png",color:"#FF6B6B",description:"Kilo Code AI Assistant",configType:"custom"},roo:{id:"roo",name:"Roo",image:"/providers/roo.png",color:"#FF6B6B",description:"Roo AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Settings",desc:"Go to Roo Settings panel"},{step:2,title:"Select Provider",desc:"Choose API Provider → Ollama"},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Select Model",type:"modelSelector"}]},continue:{id:"continue",name:"Continue",image:"/providers/continue.png",color:"#7C3AED",description:"Continue AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Config",desc:"Open Continue configuration file"},{step:2,title:"API Key",type:"apiKeySelector"},{step:3,title:"Select Model",type:"modelSelector"},{step:4,title:"Add Model Config",desc:"Add the following configuration to your models array:"}],codeBlock:{language:"json",code:`{
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6069],{3534:(e,t,s)=>{s.d(t,{dM:()=>a,wn:()=>l});let l={antigravity:{id:"antigravity",name:"Antigravity",image:"/providers/antigravity.png",color:"#4285F4",description:"Google Antigravity IDE with MITM",configType:"mitm",mitmDomain:"daily-cloudcode-pa.googleapis.com",modelAliases:["gemini-3.5-flash-low","gemini-3-flash-agent","gemini-3.5-flash-extra-low","gemini-3.1-pro-low","gemini-pro-agent","claude-sonnet-4-6","claude-opus-4-6-thinking","gpt-oss-120b-medium","gemini-3-flash"],defaultModels:[{id:"gemini-3.5-flash-low",name:"Gemini 3.5 Flash (Medium) / Default",alias:"gemini-3.5-flash-low",mandatory:!0},{id:"gemini-3-flash-agent",name:"Gemini 3.5 Flash (High)",alias:"gemini-3-flash-agent"},{id:"gemini-3.5-flash-extra-low",name:"Gemini 3.5 Flash (Low)",alias:"gemini-3.5-flash-extra-low"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)",alias:"gemini-3.1-pro-low"},{id:"gemini-pro-agent",name:"Gemini 3.1 Pro (High)",alias:"gemini-pro-agent"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)",alias:"claude-sonnet-4-6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)",alias:"claude-opus-4-6-thinking"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)",alias:"gpt-oss-120b-medium"},{id:"gemini-3-flash",name:"Gemini 3 Flash (Command)",alias:"gemini-3-flash"}]},copilot:{id:"copilot",name:"GitHub Copilot",image:"/providers/copilot.png",color:"#1F6FEB",description:"GitHub Copilot IDE with MITM",configType:"mitm",mitmDomain:"api.individual.githubcopilot.com",modelAliases:["gpt-5-mini","gpt-5.4-nano","claude-haiku-4.5","gpt-4o","gpt-4.1"],defaultModels:[{id:"gpt-5-mini",name:"GPT-5 mini",alias:"gpt-5-mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 nano",alias:"gpt-5.4-nano"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"},{id:"gpt-4o",name:"GPT-4o",alias:"gpt-4o"},{id:"gpt-4.1",name:"GPT-4.1",alias:"gpt-4.1"}]},kiro:{id:"kiro",name:"Kiro",image:"/providers/kiro.png",color:"#FF6B00",description:"Kiro IDE with MITM",configType:"mitm",mitmDomain:"q.us-east-1.amazonaws.com",defaultModels:[{id:"auto",name:"Auto (Kiro agent default)",alias:"auto"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",alias:"claude-sonnet-4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4",alias:"claude-sonnet-4"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",alias:"deepseek-3.2"},{id:"minimax-m2.1",name:"MiniMax M2.1",alias:"minimax-m2.1"},{id:"simple-task",name:"Qwen3 Coder Next",alias:"simple-task"}]},claude:{id:"claude",name:"Claude Desktop",image:"/providers/claude.png",color:"#D97757",description:"Anthropic Claude Desktop app (Electron). Intercepts api.anthropic.com so the desktop app routes through kRouter to whichever provider you've mapped (your Claude OAuth, Antigravity, etc.). The Claude Code CLI does NOT need this — use ANTHROPIC_BASE_URL instead.",configType:"mitm",mitmDomain:"api.anthropic.com",defaultModels:[{id:"claude-opus-4-7",name:"Claude Opus 4.7",alias:"claude-opus-4-7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6",alias:"claude-opus-4-6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",alias:"claude-sonnet-4-6"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",alias:"claude-sonnet-4-5"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",alias:"claude-haiku-4-5"}]}},a={claude:{id:"claude",name:"Claude Code",image:"/providers/claude.png",color:"#D97757",description:"Anthropic Claude Code CLI",configType:"env",envVars:{baseUrl:"ANTHROPIC_BASE_URL",model:"ANTHROPIC_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"},modelAliases:["default","sonnet","opus","haiku","opusplan"],settingsFile:"~/.claude/settings.json",defaultModels:[{id:"opus",name:"Claude Opus",alias:"opus",envKey:"ANTHROPIC_DEFAULT_OPUS_MODEL",defaultValue:"cc/claude-opus-4-6"},{id:"sonnet",name:"Claude Sonnet",alias:"sonnet",envKey:"ANTHROPIC_DEFAULT_SONNET_MODEL",defaultValue:"cc/claude-sonnet-4-6"},{id:"haiku",name:"Claude Haiku",alias:"haiku",envKey:"ANTHROPIC_DEFAULT_HAIKU_MODEL",defaultValue:"cc/claude-haiku-4-5-20251001"}]},openclaw:{id:"openclaw",name:"Open Claw",image:"/providers/openclaw.png",color:"#FF6B35",description:"Open Claw AI Assistant",configType:"custom"},codex:{id:"codex",name:"OpenAI Codex CLI / App",image:"/providers/codex.png",color:"#10A37F",description:"OpenAI Codex CLI",configType:"custom"},opencode:{id:"opencode",name:"OpenCode",image:"/providers/opencode.png",color:"#E87040",description:"OpenCode AI Terminal Assistant",configType:"custom"},cowork:{id:"cowork",name:"Claude Cowork",image:"/providers/claude.png",color:"#D97757",description:"Claude Desktop Cowork (third-party inference)",configType:"custom"},hermes:{id:"hermes",name:"Hermes Agent",image:"/providers/hermes.png",color:"#8B5CF6",description:"Nous Research self-improving AI agent",configType:"custom"},droid:{id:"droid",name:"Factory Droid",image:"/providers/droid.png",color:"#00D4FF",description:"Factory Droid AI Assistant",configType:"custom"},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.png",color:"#000000",description:"Cursor AI Code Editor",configType:"guide",requiresExternalUrl:!0,notes:[{type:"warning",text:"Requires Cursor Pro account to use this feature."},{type:"cloudCheck",text:"Cursor routes requests through its own server, so local endpoint is not supported. Please enable Tunnel or Cloud Endpoint in Settings."}],guideSteps:[{step:1,title:"Open Settings",desc:"Go to Settings → Models"},{step:2,title:"Enable OpenAI API",desc:'Enable "OpenAI API key" option'},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Add Custom Model",desc:'Click "View All Model" → "Add Custom Model"'},{step:6,title:"Select Model",type:"modelSelector"}]},cline:{id:"cline",name:"Cline",image:"/providers/cline.png",color:"#00D1B2",description:"Cline AI Coding Assistant",configType:"custom"},kilo:{id:"kilo",name:"Kilo Code",image:"/providers/kilocode.png",color:"#FF6B6B",description:"Kilo Code AI Assistant",configType:"custom"},roo:{id:"roo",name:"Roo",image:"/providers/roo.png",color:"#FF6B6B",description:"Roo AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Settings",desc:"Go to Roo Settings panel"},{step:2,title:"Select Provider",desc:"Choose API Provider → Ollama"},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Select Model",type:"modelSelector"}]},continue:{id:"continue",name:"Continue",image:"/providers/continue.png",color:"#7C3AED",description:"Continue AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Config",desc:"Open Continue configuration file"},{step:2,title:"API Key",type:"apiKeySelector"},{step:3,title:"Select Model",type:"modelSelector"},{step:4,title:"Add Model Config",desc:"Add the following configuration to your models array:"}],codeBlock:{language:"json",code:`{
2
2
  "apiBase": "{{baseUrl}}",
3
3
  "title": "{{model}}",
4
4
  "model": "{{model}}",
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "krouter-app",
3
- "version": "0.5.16",
3
+ "version": "0.5.17",
4
4
  "description": "kRouter (Kodelyth Router) web dashboard — Kodelyth AI Infrastructure",
5
5
  "private": true,
6
6
  "scripts": {
@@ -22,7 +22,7 @@ ${f}`;Ht.writeFileSync(n,v)}catch{}},file:n}}Wn.exports={log:Fu,err:Ku,dumpReque
22
22
  Private-Lines: `+u+`\r
23
23
  `,s+=c;var S=Sa("putty-private-key-file-mac-key",t),I=Ce.util.createBuffer();vr(I,r),vr(I,n),vr(I,a),I.putInt32(i.length()),I.putBuffer(i),I.putInt32(l.length()),I.putBuffer(l);var B=Ce.hmac.create();return B.start("sha1",S),B.update(I.bytes()),s+=`\r
24
24
  Private-MAC: `+B.digest().toHex()+`\r
25
- `,s};Ta.publicKeyToOpenSSH=function(e,t){var a="ssh-rsa";t=t||"";var r=Ce.util.createBuffer();return vr(r,a),Et(r,e.e),Et(r,e.n),a+" "+Ce.util.encode64(r.bytes())+" "+t};Ta.privateKeyToOpenSSH=function(e,t){return t?Ce.pki.encryptRsaPrivateKey(e,t,{legacy:!0,algorithm:"aes128"}):Ce.pki.privateKeyToPem(e)};Ta.getPublicKeyFingerprint=function(e,t){t=t||{};var a=t.md||Ce.md.md5.create(),r="ssh-rsa",n=Ce.util.createBuffer();vr(n,r),Et(n,e.e),Et(n,e.n),a.start(),a.update(n.getBytes());var s=a.digest();if(t.encoding==="hex"){var i=s.toHex();return t.delimiter?i.match(/.{2}/g).join(t.delimiter):i}else{if(t.encoding==="binary")return s.getBytes();if(t.encoding)throw new Error('Unknown encoding "'+t.encoding+'".')}return s};function Et(e,t){var a=t.toString(16);a[0]>="8"&&(a="00"+a);var r=Ce.util.hexToBytes(a);e.putInt32(r.length),e.putBytes(r)}function vr(e,t){e.putInt32(t.length),e.putString(t)}function Sa(){for(var e=Ce.md.sha1.create(),t=arguments.length,a=0;a<t;++a)e.update(arguments[a]);return e.digest()}});var ho=F((op,fo)=>{fo.exports=$();Rt();Rs();lt();$r();Br();js();ir();Zs();ao();io();an();na();Qt();Xa();on();uo();ln();Za();Ha();fa();tt();Qa();co();gn();re()});var vo=F((up,yo)=>{var po=require("path"),Xe=require("fs"),Je=ho(),{MITM_DIR:Ia}=rr(),Kt=po.join(Ia,"rootCA.key"),Bt=po.join(Ia,"rootCA.crt");function go(e){try{let t=Je.pki.certificateFromPem(Xe.readFileSync(e,"utf8")),a=new Date(Date.now()+720*60*60*1e3);return t.validity.notAfter<a}catch{return!0}}async function Rf(){let e=Xe.existsSync(Kt)&&Xe.existsSync(Bt);if(e&&!go(Bt))return console.log("\u2705 Root CA already exists"),{key:Kt,cert:Bt};if(e){console.log("\u{1F510} Root CA expired or expiring soon \u2014 regenerating...");try{Xe.unlinkSync(Kt)}catch{}try{Xe.unlinkSync(Bt)}catch{}}Xe.existsSync(Ia)||Xe.mkdirSync(Ia,{recursive:!0}),console.log("\u{1F510} Generating Root CA certificate...");let t=Je.pki.rsa.generateKeyPair(2048),a=Je.pki.createCertificate();a.publicKey=t.publicKey,a.serialNumber="01",a.validity.notBefore=new Date,a.validity.notAfter=new Date,a.validity.notAfter.setFullYear(a.validity.notBefore.getFullYear()+10);let r=[{name:"commonName",value:"9Router MITM Root CA"},{name:"organizationName",value:"kRouter"},{name:"countryName",value:"US"}];a.setSubject(r),a.setIssuer(r),a.setExtensions([{name:"basicConstraints",cA:!0,critical:!0},{name:"keyUsage",keyCertSign:!0,cRLSign:!0,critical:!0},{name:"subjectKeyIdentifier"}]),a.sign(t.privateKey,Je.md.sha256.create());let n=Je.pki.privateKeyToPem(t.privateKey),s=Je.pki.certificateToPem(a);return Xe.writeFileSync(Kt,n),Xe.writeFileSync(Bt,s),console.log("\u2705 Root CA generated successfully"),{key:Kt,cert:Bt}}function Lf(){if(!Xe.existsSync(Kt)||!Xe.existsSync(Bt))throw new Error("Root CA not found. Generate it first.");let e=Xe.readFileSync(Kt,"utf8"),t=Xe.readFileSync(Bt,"utf8");return{key:Je.pki.privateKeyFromPem(e),cert:Je.pki.certificateFromPem(t)}}function kf(e,t){let a=Je.pki.rsa.generateKeyPair(2048),r=Je.pki.createCertificate();return r.publicKey=a.publicKey,r.serialNumber=Math.floor(Math.random()*1e6).toString(),r.validity.notBefore=new Date,r.validity.notAfter=new Date,r.validity.notAfter.setFullYear(r.validity.notBefore.getFullYear()+1),r.setSubject([{name:"commonName",value:e}]),r.setIssuer(t.cert.subject.attributes),r.setExtensions([{name:"basicConstraints",cA:!1},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0},{name:"subjectAltName",altNames:[{type:2,value:e},{type:2,value:`*.${e}`}]}]),r.sign(t.key,Je.md.sha256.create()),{key:Je.pki.privateKeyToPem(a.privateKey),cert:Je.pki.certificateToPem(r)}}yo.exports={generateRootCA:Rf,loadRootCA:Lf,generateLeafCert:kf,isCertExpired:go,ROOT_CA_CERT_PATH:Bt,ROOT_CA_KEY_PATH:Kt}});var Co=F((dp,mo)=>{var lp=require("path"),cp=require("fs"),{MITM_DIR:fp}=rr(),{generateRootCA:Df,loadRootCA:Uf,generateLeafCert:Pf}=vo();async function Of(){return await Df()}function Vf(e){try{let t=Uf(),a=Pf(e,t);return{key:a.key,cert:a.cert}}catch(t){return console.error(`Failed to generate cert for ${e}:`,t.message),null}}mo.exports={generateCert:Of,getCertForDomain:Vf}});var To=F((hp,So)=>{var Eo=require("fs"),Ff=require("path"),{DATA_DIR:Kf}=rr(),xo=Ff.join(Kf,"mitm","aliases.json");function Mf(){try{return Eo.existsSync(xo)?JSON.parse(Eo.readFileSync(xo,"utf-8")):null}catch{return null}}function qf(e){return Mf()?.[e]||null}So.exports={getMitmAlias:qf}});var Bo=F((pp,Ao)=>{"use strict";var mr="1.23.2";function Hf(e){return!e||typeof e!="object"||Array.isArray(e)?!1:String(e.ideName||"").toLowerCase()==="antigravity"||String(e.ideType||"").toUpperCase()==="ANTIGRAVITY"?!0:Object.prototype.hasOwnProperty.call(e,"ideVersion")}function Io(e,t){return typeof e!="string"||!e.includes("antigravity/")?e:e.replace(/antigravity\/[^\s]+/,`antigravity/${t}`)}function Gf(e,t){let a={...t},r=Io(a["user-agent"],mr),n=r!==a["user-agent"];n&&(a["user-agent"]=r);try{let s=JSON.parse(e.toString());return Hf(s?.metadata)?(s.metadata.ideVersion=mr,{bodyBuffer:Buffer.from(JSON.stringify(s)),headers:a,applied:!0,version:mr}):{bodyBuffer:e,headers:a,applied:n,version:mr}}catch{return{bodyBuffer:e,headers:a,applied:n,version:mr}}}Ao.exports={ANTIGRAVITY_IDE_VERSION:mr,applyAntigravityIdeVersionOverride:Gf,rewriteAntigravityUserAgent:Io}});var Vr=F((gp,Ro)=>{var{log:Aa,err:Cr}=_t(),zf=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let a=t;for(let r=0;r<8;r++)a=a&1?3988292384^a>>>1:a>>>1;e[t]=a>>>0}return e})();function bo(e){let t=4294967295;for(let a=0;a<e.length;a++)t=zf[(t^e[a])&255]^t>>>8;return(t^4294967295)>>>0}function Ln(e,t){let a=Buffer.from(e,"utf8"),r=Buffer.from(t,"utf8");if(a.length>255)throw new Error("EventStream header name too long");if(r.length>65535)throw new Error("EventStream header value too long");let n=Buffer.alloc(1+a.length+1+2+r.length),s=0;return n[s++]=a.length,a.copy(n,s),s+=a.length,n[s++]=7,n.writeUInt16BE(r.length,s),s+=2,r.copy(n,s),n}function _o(e,t="internalServerException"){let a=Buffer.from(JSON.stringify({message:String(e||"Upstream error")}),"utf8"),r=Buffer.concat([Ln(":message-type","exception"),Ln(":exception-type",t),Ln(":content-type","application/json")]),n=12+r.length+a.length+4,s=Buffer.alloc(n);return s.writeUInt32BE(n,0),s.writeUInt32BE(r.length,4),s.writeUInt32BE(bo(s.slice(0,8)),8),r.copy(s,12),a.copy(s,12+r.length),s.writeUInt32BE(bo(s.slice(0,n-4)),n-4),s}async function Qf(e){try{let t=await e.text();if(!t)return`Upstream ${e.status}`;try{let a=JSON.parse(t);return a?.error?.message||a?.message||a?.error||t.slice(0,500)}catch{return t.slice(0,500)}}catch{return`Upstream ${e.status}`}}var wo="http://localhost:20128",$f=String(process.env.MITM_ROUTER_BASE||wo).trim().replace(/\/+$/,"")||wo,No=process.env.ROUTER_API_KEY,Yf=new Set(["host","content-length","connection","transfer-encoding","content-type","authorization"]);async function jf(e,t="/v1/chat/completions",a={}){let r={};for(let[s,i]of Object.entries(a))Yf.has(s.toLowerCase())||(r[s]=i);return await fetch(`${$f}${t}`,{method:"POST",headers:{...r,"Content-Type":"application/json",...No&&{Authorization:`Bearer ${No}`}},body:JSON.stringify(e)})}async function Wf(e,t,a){let r=e.headers.get("content-type")||"application/json",n=e.status||200,s={"Content-Type":r,"Cache-Control":"no-cache",Connection:"keep-alive"};if(r.includes("text/event-stream")&&(s["X-Accel-Buffering"]="no"),t.writeHead(n,s),a&&a.writeHeader(e.status,Object.fromEntries(e.headers)),!e.body){let u=await e.text().catch(()=>"");a&&(a.writeChunk(u),a.end()),t.end(u);return}let i=e.body.getReader(),o=new TextDecoder;try{for(;;){let{done:u,value:l}=await i.read();if(u)break;a&&a.writeChunk(l),t.write(o.decode(l,{stream:!0}))}}catch(u){Cr(`[MITM] pipeSSE upstream read failed: ${u.message}`),a&&a.writeChunk(`
25
+ `,s};Ta.publicKeyToOpenSSH=function(e,t){var a="ssh-rsa";t=t||"";var r=Ce.util.createBuffer();return vr(r,a),Et(r,e.e),Et(r,e.n),a+" "+Ce.util.encode64(r.bytes())+" "+t};Ta.privateKeyToOpenSSH=function(e,t){return t?Ce.pki.encryptRsaPrivateKey(e,t,{legacy:!0,algorithm:"aes128"}):Ce.pki.privateKeyToPem(e)};Ta.getPublicKeyFingerprint=function(e,t){t=t||{};var a=t.md||Ce.md.md5.create(),r="ssh-rsa",n=Ce.util.createBuffer();vr(n,r),Et(n,e.e),Et(n,e.n),a.start(),a.update(n.getBytes());var s=a.digest();if(t.encoding==="hex"){var i=s.toHex();return t.delimiter?i.match(/.{2}/g).join(t.delimiter):i}else{if(t.encoding==="binary")return s.getBytes();if(t.encoding)throw new Error('Unknown encoding "'+t.encoding+'".')}return s};function Et(e,t){var a=t.toString(16);a[0]>="8"&&(a="00"+a);var r=Ce.util.hexToBytes(a);e.putInt32(r.length),e.putBytes(r)}function vr(e,t){e.putInt32(t.length),e.putString(t)}function Sa(){for(var e=Ce.md.sha1.create(),t=arguments.length,a=0;a<t;++a)e.update(arguments[a]);return e.digest()}});var ho=F((op,fo)=>{fo.exports=$();Rt();Rs();lt();$r();Br();js();ir();Zs();ao();io();an();na();Qt();Xa();on();uo();ln();Za();Ha();fa();tt();Qa();co();gn();re()});var vo=F((up,yo)=>{var po=require("path"),Xe=require("fs"),Je=ho(),{MITM_DIR:Ia}=rr(),Kt=po.join(Ia,"rootCA.key"),Bt=po.join(Ia,"rootCA.crt");function go(e){try{let t=Je.pki.certificateFromPem(Xe.readFileSync(e,"utf8")),a=new Date(Date.now()+720*60*60*1e3);return t.validity.notAfter<a}catch{return!0}}async function Rf(){let e=Xe.existsSync(Kt)&&Xe.existsSync(Bt);if(e&&!go(Bt))return console.log("\u2705 Root CA already exists"),{key:Kt,cert:Bt};if(e){console.log("\u{1F510} Root CA expired or expiring soon \u2014 regenerating...");try{Xe.unlinkSync(Kt)}catch{}try{Xe.unlinkSync(Bt)}catch{}}Xe.existsSync(Ia)||Xe.mkdirSync(Ia,{recursive:!0}),console.log("\u{1F510} Generating Root CA certificate...");let t=Je.pki.rsa.generateKeyPair(2048),a=Je.pki.createCertificate();a.publicKey=t.publicKey,a.serialNumber="01",a.validity.notBefore=new Date,a.validity.notAfter=new Date,a.validity.notAfter.setFullYear(a.validity.notBefore.getFullYear()+10);let r=[{name:"commonName",value:"9Router MITM Root CA"},{name:"organizationName",value:"kRouter"},{name:"countryName",value:"US"}];a.setSubject(r),a.setIssuer(r),a.setExtensions([{name:"basicConstraints",cA:!0,critical:!0},{name:"keyUsage",keyCertSign:!0,cRLSign:!0,critical:!0},{name:"subjectKeyIdentifier"}]),a.sign(t.privateKey,Je.md.sha256.create());let n=Je.pki.privateKeyToPem(t.privateKey),s=Je.pki.certificateToPem(a);return Xe.writeFileSync(Kt,n),Xe.writeFileSync(Bt,s),console.log("\u2705 Root CA generated successfully"),{key:Kt,cert:Bt}}function Lf(){if(!Xe.existsSync(Kt)||!Xe.existsSync(Bt))throw new Error("Root CA not found. Generate it first.");let e=Xe.readFileSync(Kt,"utf8"),t=Xe.readFileSync(Bt,"utf8");return{key:Je.pki.privateKeyFromPem(e),cert:Je.pki.certificateFromPem(t)}}function kf(e,t){let a=Je.pki.rsa.generateKeyPair(2048),r=Je.pki.createCertificate();return r.publicKey=a.publicKey,r.serialNumber=Math.floor(Math.random()*1e6).toString(),r.validity.notBefore=new Date,r.validity.notAfter=new Date,r.validity.notAfter.setFullYear(r.validity.notBefore.getFullYear()+1),r.setSubject([{name:"commonName",value:e}]),r.setIssuer(t.cert.subject.attributes),r.setExtensions([{name:"basicConstraints",cA:!1},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0},{name:"subjectAltName",altNames:[{type:2,value:e},{type:2,value:`*.${e}`}]}]),r.sign(t.key,Je.md.sha256.create()),{key:Je.pki.privateKeyToPem(a.privateKey),cert:Je.pki.certificateToPem(r)}}yo.exports={generateRootCA:Rf,loadRootCA:Lf,generateLeafCert:kf,isCertExpired:go,ROOT_CA_CERT_PATH:Bt,ROOT_CA_KEY_PATH:Kt}});var Co=F((dp,mo)=>{var lp=require("path"),cp=require("fs"),{MITM_DIR:fp}=rr(),{generateRootCA:Df,loadRootCA:Uf,generateLeafCert:Pf}=vo();async function Of(){return await Df()}function Vf(e){try{let t=Uf(),a=Pf(e,t);return{key:a.key,cert:a.cert}}catch(t){return console.error(`Failed to generate cert for ${e}:`,t.message),null}}mo.exports={generateCert:Of,getCertForDomain:Vf}});var To=F((hp,So)=>{var Eo=require("fs"),Ff=require("path"),{DATA_DIR:Kf}=rr(),xo=Ff.join(Kf,"mitm","aliases.json");function Mf(){try{return Eo.existsSync(xo)?JSON.parse(Eo.readFileSync(xo,"utf-8")):null}catch{return null}}function qf(e){return Mf()?.[e]||null}So.exports={getMitmAlias:qf}});var Bo=F((pp,Ao)=>{"use strict";var mr="1.23.2";function Hf(e){return!e||typeof e!="object"||Array.isArray(e)?!1:String(e.ideName||"").toLowerCase()==="antigravity"||String(e.ideType||"").toUpperCase()==="ANTIGRAVITY"?!0:Object.prototype.hasOwnProperty.call(e,"ideVersion")}function Io(e,t){return typeof e!="string"||!e.includes("antigravity/")?e:e.replace(/antigravity\/[^\s]+/,`antigravity/${t}`)}function Gf(e,t){let a={...t},r=Io(a["user-agent"],mr),n=r!==a["user-agent"];n&&(a["user-agent"]=r);try{let s=JSON.parse(e.toString());return Hf(s?.metadata)?(s.metadata.ideVersion=mr,{bodyBuffer:Buffer.from(JSON.stringify(s)),headers:a,applied:!0,version:mr}):{bodyBuffer:e,headers:a,applied:n,version:mr}}catch{return{bodyBuffer:e,headers:a,applied:n,version:mr}}}Ao.exports={ANTIGRAVITY_IDE_VERSION:mr,applyAntigravityIdeVersionOverride:Gf,rewriteAntigravityUserAgent:Io}});var Vr=F((gp,Ro)=>{var{log:Aa,err:Cr}=_t(),zf=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let a=t;for(let r=0;r<8;r++)a=a&1?3988292384^a>>>1:a>>>1;e[t]=a>>>0}return e})();function bo(e){let t=4294967295;for(let a=0;a<e.length;a++)t=zf[(t^e[a])&255]^t>>>8;return(t^4294967295)>>>0}function Ln(e,t){let a=Buffer.from(e,"utf8"),r=Buffer.from(t,"utf8");if(a.length>255)throw new Error("EventStream header name too long");if(r.length>65535)throw new Error("EventStream header value too long");let n=Buffer.alloc(1+a.length+1+2+r.length),s=0;return n[s++]=a.length,a.copy(n,s),s+=a.length,n[s++]=7,n.writeUInt16BE(r.length,s),s+=2,r.copy(n,s),n}function _o(e,t="internalServerException"){let a=Buffer.from(JSON.stringify({message:String(e||"Upstream error")}),"utf8"),r=Buffer.concat([Ln(":message-type","exception"),Ln(":exception-type",t),Ln(":content-type","application/json")]),n=12+r.length+a.length+4,s=Buffer.alloc(n);return s.writeUInt32BE(n,0),s.writeUInt32BE(r.length,4),s.writeUInt32BE(bo(s.slice(0,8)),8),r.copy(s,12),a.copy(s,12+r.length),s.writeUInt32BE(bo(s.slice(0,n-4)),n-4),s}async function Qf(e){try{let t=await e.text();if(!t)return`Upstream ${e.status}`;let a=t.toLowerCase();if(a.includes("monthly_request_count")||a.includes("servicequotaexceeded")||e.status===402&&a.includes("reached the limit"))return"Monthly Kiro quota exhausted on this account. Add another Kiro connection in kRouter dashboard, or wait until next billing cycle. (Provider returned MONTHLY_REQUEST_COUNT.)";try{let r=JSON.parse(t);return r?.error?.message||r?.message||r?.error||t.slice(0,500)}catch{return t.slice(0,500)}}catch{return`Upstream ${e.status}`}}var wo="http://localhost:20128",$f=String(process.env.MITM_ROUTER_BASE||wo).trim().replace(/\/+$/,"")||wo,No=process.env.ROUTER_API_KEY,Yf=new Set(["host","content-length","connection","transfer-encoding","content-type","authorization"]);async function jf(e,t="/v1/chat/completions",a={}){let r={};for(let[s,i]of Object.entries(a))Yf.has(s.toLowerCase())||(r[s]=i);return await fetch(`${$f}${t}`,{method:"POST",headers:{...r,"Content-Type":"application/json",...No&&{Authorization:`Bearer ${No}`}},body:JSON.stringify(e)})}async function Wf(e,t,a){let r=e.headers.get("content-type")||"application/json",n=e.status||200,s={"Content-Type":r,"Cache-Control":"no-cache",Connection:"keep-alive"};if(r.includes("text/event-stream")&&(s["X-Accel-Buffering"]="no"),t.writeHead(n,s),a&&a.writeHeader(e.status,Object.fromEntries(e.headers)),!e.body){let u=await e.text().catch(()=>"");a&&(a.writeChunk(u),a.end()),t.end(u);return}let i=e.body.getReader(),o=new TextDecoder;try{for(;;){let{done:u,value:l}=await i.read();if(u)break;a&&a.writeChunk(l),t.write(o.decode(l,{stream:!0}))}}catch(u){Cr(`[MITM] pipeSSE upstream read failed: ${u.message}`),a&&a.writeChunk(`
26
26
  [ERROR] ${u.message}
27
27
  `)}finally{if(a)try{a.end()}catch{}if(!t.writableEnded)try{t.end()}catch{}}}async function Xf(e,t,a,r){let n=e.headers.get("content-type")||"application/json",s={"Content-Type":n,"Cache-Control":"no-cache",Connection:"keep-alive"};if(n.includes("text/event-stream")&&(s["X-Accel-Buffering"]="no"),t.writeHead(200,s),!e.body){t.end(await e.text().catch(()=>""));return}let i=e.body.getReader(),o=new TextDecoder("utf-8",{fatal:!1}),u="",l=null;try{for(;;){let{done:c,value:f}=await i.read();if(c)break;u+=o.decode(f,{stream:!0});let g=u.split(`
28
28
  `);u=g.pop()||"";for(let v of g){let y=v.trim();if(!y||!y.startsWith("data:"))continue;let x=y.slice(5).trim();if(x!=="[DONE]"){process.env.DEBUG_MITM&&Aa(`[SSE in] ${x.slice(0,200)}`);try{let S=JSON.parse(x),I=a(S,r);if(I!=null){let B=Array.isArray(I)?I:[I];for(let b of B){if(process.env.DEBUG_MITM){let P=b.length||b.byteLength||0;Aa(`[write binary frame] (${P}B) first 20B: ${Array.from(b.slice(0,20)).join(",")}`)}t.write(Buffer.from(b))}}}catch{}}}}}catch(c){l=c,Cr(`[MITM] pipeTransformedSSE upstream read failed: ${c.message}`)}finally{try{let c=a(null,r);if(c!=null){let f=Array.isArray(c)?c:[c];for(let g of f)t.write(g)}}catch{}if(l&&!t.writableEnded)try{t.write(`data: ${JSON.stringify({error:{message:`Upstream read failed: ${l.message}`,type:"mitm_upstream_error"}})}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sifxprime/krouter",
3
- "version": "0.5.16",
3
+ "version": "0.5.17",
4
4
  "description": "kRouter (Kodelyth Router) CLI — Kodelyth AI Infrastructure",
5
5
  "homepage": "https://github.com/sifxprime/krouter",
6
6
  "repository": {