9router 0.3.6 → 0.3.7

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 (251) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +34 -34
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/_global-error.html +2 -2
  16. package/app/.next/server/app/_global-error.rsc +1 -1
  17. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  18. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  19. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  20. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  21. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  22. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  23. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/_not-found.html +1 -1
  25. package/app/.next/server/app/_not-found.rsc +2 -2
  26. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  27. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  28. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  29. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  30. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  31. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  32. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/callback.html +1 -1
  101. package/app/.next/server/app/callback.rsc +2 -2
  102. package/app/.next/server/app/callback.segments/_full.segment.rsc +2 -2
  103. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  104. package/app/.next/server/app/callback.segments/_index.segment.rsc +2 -2
  105. package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  106. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  107. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  108. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  109. package/app/.next/server/app/dashboard/cli-tools.rsc +4 -4
  110. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  111. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  112. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  113. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  114. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +4 -4
  115. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  116. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +2 -2
  117. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  118. package/app/.next/server/app/dashboard/combos.html +1 -1
  119. package/app/.next/server/app/dashboard/combos.rsc +4 -4
  120. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  121. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  122. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  123. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  124. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +4 -4
  125. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  126. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +2 -2
  127. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  128. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  129. package/app/.next/server/app/dashboard/endpoint.rsc +4 -4
  130. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  131. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  132. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  133. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  134. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +4 -4
  135. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  136. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +2 -2
  137. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  138. package/app/.next/server/app/dashboard/profile.html +1 -1
  139. package/app/.next/server/app/dashboard/profile.rsc +4 -4
  140. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  141. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  142. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  143. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  144. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  145. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  146. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +2 -2
  147. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  148. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  149. package/app/.next/server/app/dashboard/providers/new.rsc +4 -4
  150. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  151. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  152. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  153. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  154. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  155. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +4 -4
  156. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  157. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +2 -2
  158. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  159. package/app/.next/server/app/dashboard/providers.html +1 -1
  160. package/app/.next/server/app/dashboard/providers.rsc +4 -4
  161. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  162. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  163. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  164. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  165. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
  166. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  167. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +2 -2
  168. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  169. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  171. package/app/.next/server/app/dashboard/settings/pricing.rsc +2 -2
  172. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +2 -2
  173. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  174. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +2 -2
  175. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  176. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  177. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  178. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  179. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  180. package/app/.next/server/app/dashboard/translator.html +1 -1
  181. package/app/.next/server/app/dashboard/translator.rsc +4 -4
  182. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  183. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  184. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  185. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  186. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +4 -4
  187. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  188. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +2 -2
  189. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  190. package/app/.next/server/app/dashboard/usage.html +1 -1
  191. package/app/.next/server/app/dashboard/usage.rsc +4 -4
  192. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  193. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  194. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  195. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  196. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +4 -4
  197. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  198. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +2 -2
  199. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  200. package/app/.next/server/app/dashboard.html +1 -1
  201. package/app/.next/server/app/dashboard.rsc +4 -4
  202. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  203. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  204. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  205. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +4 -4
  206. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  207. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +2 -2
  208. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  209. package/app/.next/server/app/index.html +1 -1
  210. package/app/.next/server/app/index.rsc +2 -2
  211. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  212. package/app/.next/server/app/index.segments/_full.segment.rsc +2 -2
  213. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  214. package/app/.next/server/app/index.segments/_index.segment.rsc +2 -2
  215. package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  216. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  217. package/app/.next/server/app/landing.html +1 -1
  218. package/app/.next/server/app/landing.rsc +2 -2
  219. package/app/.next/server/app/landing.segments/_full.segment.rsc +2 -2
  220. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  221. package/app/.next/server/app/landing.segments/_index.segment.rsc +2 -2
  222. package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  223. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  224. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  225. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  226. package/app/.next/server/app/login.html +1 -1
  227. package/app/.next/server/app/login.rsc +3 -3
  228. package/app/.next/server/app/login.segments/_full.segment.rsc +3 -3
  229. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  230. package/app/.next/server/app/login.segments/_index.segment.rsc +2 -2
  231. package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  232. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  233. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  234. package/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  235. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  236. package/app/.next/server/app-paths-manifest.json +34 -34
  237. package/app/.next/server/chunks/6186.js +20 -14
  238. package/app/.next/server/chunks/8694.js +1 -1
  239. package/app/.next/server/pages/404.html +1 -1
  240. package/app/.next/server/pages/500.html +2 -2
  241. package/app/.next/server/server-reference-manifest.js +1 -1
  242. package/app/.next/server/server-reference-manifest.json +1 -1
  243. package/app/.next/static/chunks/{8729-341f5eb6223fedbb.js → 8729-34f7f0844b464ca0.js} +1 -1
  244. package/app/package.json +1 -1
  245. package/app/src/mitm/manager.js +39 -29
  246. package/app/src/mitm/server.js +1 -1
  247. package/package.json +1 -1
  248. package/src/cli/tray/icon.ico +0 -0
  249. package/src/cli/tray/icon.png +0 -0
  250. /package/app/.next/static/{0Lp-BbOX46czOm0uiIhuq → O7zv0v3lkhShT-i4HrmmA}/_buildManifest.js +0 -0
  251. /package/app/.next/static/{0Lp-BbOX46czOm0uiIhuq → O7zv0v3lkhShT-i4HrmmA}/_ssgManifest.js +0 -0
@@ -12,8 +12,6 @@ const { generateCert } = require("./cert/generate");
12
12
  const { installCert } = require("./cert/install");
13
13
 
14
14
  const MITM_PORT = 443;
15
- // On Windows, node listens on HIGH_PORT and netsh portproxy forwards 443 → HIGH_PORT
16
- const WIN_NODE_PORT = 8443;
17
15
  const PID_FILE = path.join(os.homedir(), ".9router", "mitm", ".mitm.pid");
18
16
 
19
17
  // Resolve server.js path robustly:
@@ -278,7 +276,7 @@ async function killLeftoverMitm(sudoPassword) {
278
276
  * Returns { ok, pid } on success, null on timeout.
279
277
  */
280
278
  function pollMitmHealth(timeoutMs) {
281
- const healthPort = IS_WIN ? WIN_NODE_PORT : MITM_PORT;
279
+ const healthPort = MITM_PORT;
282
280
  return new Promise((resolve) => {
283
281
  const deadline = Date.now() + timeoutMs;
284
282
  const check = () => {
@@ -415,38 +413,42 @@ async function startMitm(apiKey, sudoPassword) {
415
413
  const esc = (s) => s.replace(/'/g, "''");
416
414
  const certPsPath = esc(certPath);
417
415
  const hostsPsPath = esc(hostsFile);
416
+ const nodePsPath = esc(process.execPath);
417
+ const serverPsPath = esc(SERVER_PATH);
418
418
 
419
419
  const dnsAddLines = TARGET_HOSTS_WIN.map(h =>
420
420
  `if (-not (Select-String -Path '${hostsPsPath}' -Pattern '${h}' -Quiet)) { Add-Content -Path '${hostsPsPath}' -Value "127.0.0.1 ${h}" }`
421
421
  ).join("\n");
422
422
 
423
- // Phase 1: single UAC — cert + DNS + netsh urlacl + netsh portproxy
423
+ // Single elevated script: cert + DNS + urlacl (allow node to bind 443) + start node
424
+ // urlacl grants non-admin processes permission to bind port 443 via HTTP.sys
424
425
  const setupScript = `
425
- # 1. Install cert if not already in Root store
426
+ # 1. Install cert to Root store if not present
426
427
  $certCheck = & certutil -store Root 'daily-cloudcode-pa.googleapis.com' 2>&1
427
428
  if ($LASTEXITCODE -ne 0) {
428
429
  & certutil -addstore Root '${certPsPath}' | Out-Null
429
430
  }
430
431
 
431
- # 2. Add DNS entries
432
+ # 2. Add DNS entries to hosts file
432
433
  ${dnsAddLines}
433
434
  & ipconfig /flushdns | Out-Null
434
435
 
435
- # 3. Allow node to bind port ${WIN_NODE_PORT} without admin
436
- & netsh http add urlacl url=https://+:${WIN_NODE_PORT}/ user=Everyone | Out-Null
436
+ # 3. Grant permission for any user to bind HTTPS port 443 (no admin needed after this)
437
+ & netsh http add urlacl url=https://+:${MITM_PORT}/ user=Everyone 2>&1 | Out-Null
437
438
 
438
- # 4. Forward :443 :${WIN_NODE_PORT} (portproxy)
439
- & netsh interface portproxy delete v4tov4 listenport=${MITM_PORT} listenaddress=0.0.0.0 2>&1 | Out-Null
440
- & netsh interface portproxy add v4tov4 listenport=${MITM_PORT} listenaddress=0.0.0.0 connectport=${WIN_NODE_PORT} connectaddress=127.0.0.1 | Out-Null
439
+ # 4. Start node MITM server (now allowed to bind 443 without admin)
440
+ $env:ROUTER_API_KEY = '${esc(apiKey)}'
441
+ $env:NODE_ENV = 'production'
442
+ Start-Process -FilePath '${nodePsPath}' -ArgumentList '"${serverPsPath}"' -WindowStyle Hidden
441
443
  `.trim();
442
444
 
443
445
  const tmpSetup = path.join(os.tmpdir(), `mitm_setup_${Date.now()}.ps1`);
444
446
  fs.writeFileSync(tmpSetup, setupScript, "utf8");
445
447
 
446
- // Run elevated setup single UAC prompt, wait for completion
448
+ // Outer spawn WITHOUT -NonInteractive so UAC dialog can appear
447
449
  await new Promise((resolve, reject) => {
448
450
  const setupProc = spawn("powershell", [
449
- "-NoProfile", "-NonInteractive", "-WindowStyle", "Hidden",
451
+ "-NoProfile", "-WindowStyle", "Hidden",
450
452
  "-Command",
451
453
  `Start-Process powershell -ArgumentList '-NoProfile -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass -File \\"${esc(tmpSetup)}\\"' -Verb RunAs -Wait; Remove-Item '${esc(tmpSetup)}' -ErrorAction SilentlyContinue`
452
454
  ], { stdio: "ignore", windowsHide: true });
@@ -456,14 +458,9 @@ ${dnsAddLines}
456
458
 
457
459
  if (_updateSettings) await _updateSettings({ mitmCertInstalled: true }).catch(() => { });
458
460
 
459
- // Phase 2: start node server on WIN_NODE_PORT — no admin needed
460
- serverProcess = spawn(process.execPath, [SERVER_PATH], {
461
- env: { ...process.env, ROUTER_API_KEY: apiKey, NODE_ENV: "production", MITM_PORT: String(WIN_NODE_PORT) },
462
- stdio: "ignore",
463
- windowsHide: true,
464
- detached: true,
465
- });
466
- serverProcess.unref();
461
+ // serverProcess reference not available (started inside elevated script)
462
+ // PID will be captured from health check response
463
+ serverProcess = { pid: null, killed: false };
467
464
  } else {
468
465
  // macOS/Linux: install cert + add DNS (requires sudo), then spawn server
469
466
  const settings = _getSettings ? await _getSettings().catch(() => ({})) : {};
@@ -486,8 +483,8 @@ ${dnsAddLines}
486
483
  serverProcess.stdin.end();
487
484
  }
488
485
 
489
- serverPid = serverProcess.pid;
490
- fs.writeFileSync(PID_FILE, String(serverPid));
486
+ serverPid = IS_WIN ? null : serverProcess.pid;
487
+ if (serverPid) fs.writeFileSync(PID_FILE, String(serverPid));
491
488
 
492
489
  let startError = null;
493
490
  if (!IS_WIN) {
@@ -564,24 +561,37 @@ async function stopMitm(sudoPassword) {
564
561
  }
565
562
 
566
563
  if (IS_WIN) {
567
- // Cleanup netsh portproxy + urlacl — single UAC prompt
564
+ // Cleanup: remove DNS entries + urlacl — single UAC prompt
565
+ const hostsFile = path.join(process.env.SystemRoot || "C:\\Windows", "System32", "drivers", "etc", "hosts");
566
+ const TARGET_HOSTS_WIN = ["daily-cloudcode-pa.googleapis.com", "cloudcode-pa.googleapis.com"];
567
+ const esc = (s) => s.replace(/'/g, "''");
568
+ const hostsPsPath = esc(hostsFile);
569
+
570
+ const content = fs.readFileSync(hostsFile, "utf8");
571
+ const filtered = content.split(/\r?\n/).filter(l => !TARGET_HOSTS_WIN.some(h => l.includes(h))).join("\r\n");
572
+ const tmpHosts = path.join(os.tmpdir(), "hosts_filtered.tmp");
573
+ fs.writeFileSync(tmpHosts, filtered, "utf8");
574
+
568
575
  const cleanupScript = `
569
- & netsh interface portproxy delete v4tov4 listenport=${MITM_PORT} listenaddress=0.0.0.0 2>&1 | Out-Null
570
- & netsh http delete urlacl url=https://+:${WIN_NODE_PORT}/ 2>&1 | Out-Null
576
+ # Remove DNS entries
577
+ Copy-Item -Path '${esc(tmpHosts)}' -Destination '${hostsPsPath}' -Force
578
+ & ipconfig /flushdns | Out-Null
579
+ Remove-Item '${esc(tmpHosts)}' -ErrorAction SilentlyContinue
580
+
581
+ # Remove urlacl
582
+ & netsh http delete urlacl url=https://+:${MITM_PORT}/ 2>&1 | Out-Null
571
583
  `.trim();
572
584
  const tmpCleanup = path.join(os.tmpdir(), `mitm_cleanup_${Date.now()}.ps1`);
573
585
  fs.writeFileSync(tmpCleanup, cleanupScript, "utf8");
574
- const esc = (s) => s.replace(/'/g, "''");
575
586
  await new Promise((resolve) => {
576
587
  const p = spawn("powershell", [
577
- "-NoProfile", "-NonInteractive", "-WindowStyle", "Hidden",
588
+ "-NoProfile", "-WindowStyle", "Hidden",
578
589
  "-Command",
579
590
  `Start-Process powershell -ArgumentList '-NoProfile -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass -File \\"${esc(tmpCleanup)}\\"' -Verb RunAs -Wait; Remove-Item '${esc(tmpCleanup)}' -ErrorAction SilentlyContinue`
580
591
  ], { stdio: "ignore", windowsHide: true });
581
592
  p.on("close", resolve);
582
593
  p.on("error", resolve);
583
594
  });
584
- await removeDNSEntry(sudoPassword);
585
595
  } else {
586
596
  console.log("Removing DNS entry...");
587
597
  await removeDNSEntry(sudoPassword);
@@ -11,7 +11,7 @@ const TARGET_HOSTS = [
11
11
  "daily-cloudcode-pa.googleapis.com",
12
12
  "cloudcode-pa.googleapis.com"
13
13
  ];
14
- const LOCAL_PORT = parseInt(process.env.MITM_PORT || "443", 10);
14
+ const LOCAL_PORT = 443;
15
15
  const ROUTER_URL = "http://localhost:20128/v1/chat/completions";
16
16
  const API_KEY = process.env.ROUTER_API_KEY;
17
17
  const DB_FILE = path.join(os.homedir(), ".9router", "db.json");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "9Router CLI - Start and manage 9Router server",
5
5
  "bin": {
6
6
  "9router": "./cli.js"
Binary file
Binary file