@yina-npm/openrouterx 0.4.20 → 0.4.21

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 (561) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +6 -3
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/routes-manifest.json +18 -0
  5. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js +2 -2
  6. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js.nft.json +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js +2 -2
  9. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js.nft.json +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  12. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  15. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  18. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  21. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  24. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +3 -3
  27. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  30. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  33. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  36. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  39. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  42. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  45. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  48. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  51. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  54. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  57. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  60. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  63. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  66. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  69. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  70. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/(dashboard)/dashboard/user/page.js +3 -3
  72. package/app/.next/server/app/(dashboard)/dashboard/user/page.js.nft.json +1 -1
  73. package/app/.next/server/app/(dashboard)/dashboard/user/page_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/_global-error/page.js +3 -3
  75. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/_global-error.html +1 -1
  77. package/app/.next/server/app/_global-error.rsc +1 -1
  78. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  79. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  80. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  81. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  82. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  83. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/app/.next/server/app/_not-found/page.js +2 -2
  85. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/_not-found.html +1 -1
  87. package/app/.next/server/app/_not-found.rsc +4 -4
  88. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  89. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  90. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  91. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  92. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  93. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  94. package/app/.next/server/app/api/auth/login/route.js +1 -1
  95. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  96. package/app/.next/server/app/api/auth/me/route.js +1 -1
  97. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  98. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  99. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  100. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  101. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  102. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -0
  103. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -0
  104. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js +1 -0
  105. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  106. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  107. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  108. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  109. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  110. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  111. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  112. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  113. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  114. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  115. package/app/.next/server/app/api/combos/route.js +1 -1
  116. package/app/.next/server/app/api/health/route.js +1 -1
  117. package/app/.next/server/app/api/init/route.js +1 -1
  118. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  119. package/app/.next/server/app/api/keys/route.js +1 -1
  120. package/app/.next/server/app/api/locale/route.js +1 -1
  121. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  122. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  123. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  124. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  125. package/app/.next/server/app/api/models/alias/route.js +1 -1
  126. package/app/.next/server/app/api/models/availability/route.js +1 -1
  127. package/app/.next/server/app/api/models/custom/route.js +1 -1
  128. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  129. package/app/.next/server/app/api/models/route.js +1 -1
  130. package/app/.next/server/app/api/models/test/route.js +1 -1
  131. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  132. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  133. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  134. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  135. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  136. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  137. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  138. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  139. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  140. package/app/.next/server/app/api/pricing/route.js +1 -1
  141. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  142. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  143. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  144. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  145. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  146. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  147. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  148. package/app/.next/server/app/api/providers/client/route.js +1 -1
  149. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  150. package/app/.next/server/app/api/providers/route.js +1 -1
  151. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  152. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  153. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  154. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  155. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  156. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  157. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  158. package/app/.next/server/app/api/settings/database/route.js +1 -1
  159. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  160. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  161. package/app/.next/server/app/api/settings/route.js +1 -1
  162. package/app/.next/server/app/api/shutdown/route.js +1 -1
  163. package/app/.next/server/app/api/tags/route.js +1 -1
  164. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  165. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  166. package/app/.next/server/app/api/translator/load/route.js +1 -1
  167. package/app/.next/server/app/api/translator/save/route.js +1 -1
  168. package/app/.next/server/app/api/translator/send/route.js +1 -1
  169. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  170. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  171. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  172. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  173. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
  174. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  175. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  176. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +3 -3
  177. package/app/.next/server/app/api/tunnel/tailscale-login/route.js +1 -1
  178. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
  179. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  180. package/app/.next/server/app/api/usage/api-keys/route.js +1 -1
  181. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  182. package/app/.next/server/app/api/usage/history/route.js +1 -1
  183. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  184. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  185. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  186. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  187. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  188. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  189. package/app/.next/server/app/api/users/[id]/route.js +1 -1
  190. package/app/.next/server/app/api/users/route.js +1 -1
  191. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  192. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  193. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  194. package/app/.next/server/app/api/v1/audio/voices/route.js +1 -0
  195. package/app/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -0
  196. package/app/.next/server/app/api/v1/audio/voices/route_client-reference-manifest.js +1 -0
  197. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  198. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  199. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  200. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  201. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  202. package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
  203. package/app/.next/server/app/api/v1/models/info/route.js +1 -0
  204. package/app/.next/server/app/api/v1/models/info/route.js.nft.json +1 -0
  205. package/app/.next/server/app/api/v1/models/info/route_client-reference-manifest.js +1 -0
  206. package/app/.next/server/app/api/v1/models/route.js +1 -1
  207. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  208. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  209. package/app/.next/server/app/api/v1/route.js +1 -1
  210. package/app/.next/server/app/api/v1/search/route.js +1 -1
  211. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  212. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  213. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  214. package/app/.next/server/app/api/version/route.js +1 -1
  215. package/app/.next/server/app/api/version/update/route.js +1 -1
  216. package/app/.next/server/app/callback/page.js +2 -2
  217. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/callback.html +1 -1
  219. package/app/.next/server/app/callback.rsc +4 -4
  220. package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
  221. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  222. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  223. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  224. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  225. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  226. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  227. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  228. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  229. package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
  230. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  231. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  232. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  233. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  234. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  235. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  236. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  237. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  238. package/app/.next/server/app/favicon.ico/route.js +1 -1
  239. package/app/.next/server/app/index.html +1 -1
  240. package/app/.next/server/app/index.rsc +4 -4
  241. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  242. package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
  243. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  244. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  245. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  246. package/app/.next/server/app/landing/page.js +2 -2
  247. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  248. package/app/.next/server/app/landing.html +1 -1
  249. package/app/.next/server/app/landing.rsc +4 -4
  250. package/app/.next/server/app/landing.segments/_full.segment.rsc +4 -4
  251. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  252. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  253. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  254. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  255. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  256. package/app/.next/server/app/login/page.js +2 -2
  257. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  258. package/app/.next/server/app/login.html +1 -1
  259. package/app/.next/server/app/login.rsc +5 -5
  260. package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
  261. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  262. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  263. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  264. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  265. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  266. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  267. package/app/.next/server/app/page.js +2 -2
  268. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  269. package/app/.next/server/app-paths-manifest.json +6 -3
  270. package/app/.next/server/chunks/2343.js +1 -1
  271. package/app/.next/server/chunks/3855.js +1 -1
  272. package/app/.next/server/chunks/3913.js +1 -1
  273. package/app/.next/server/chunks/412.js +6 -6
  274. package/app/.next/server/chunks/4122.js +1 -1
  275. package/app/.next/server/chunks/4989.js +1 -1
  276. package/app/.next/server/chunks/5627.js +2 -2
  277. package/app/.next/server/chunks/5681.js +1 -1
  278. package/app/.next/server/chunks/6182.js +3 -3
  279. package/app/.next/server/chunks/6774.js +1 -0
  280. package/app/.next/server/chunks/7595.js +1 -1
  281. package/app/.next/server/chunks/7937.js +3 -3
  282. package/app/.next/server/chunks/9547.js +23 -0
  283. package/app/.next/server/middleware-build-manifest.js +1 -1
  284. package/app/.next/server/middleware.js +1 -1
  285. package/app/.next/server/pages/404.html +1 -1
  286. package/app/.next/server/pages/500.html +1 -1
  287. package/app/.next/server/server-reference-manifest.js +1 -1
  288. package/app/.next/server/server-reference-manifest.json +1 -1
  289. package/app/.next/static/2TCKT7FIN7PE7ZJ20oAeb/_buildManifest.js +1 -0
  290. package/app/.next/static/chunks/{1321-764b2073673fc333.js → 1321-b84130cd27e8b78c.js} +1 -1
  291. package/app/.next/static/chunks/1a258343-5938f676ed376386.js +1 -0
  292. package/app/.next/static/chunks/2336-5b3617dc05c223ff.js +23 -0
  293. package/app/.next/static/chunks/5497-a2d728c63029180e.js +7 -0
  294. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-ba226c8b3c01dd8d.js → page-bd677c182bc2aae9.js} +1 -1
  295. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-cee4e0a7455b73ca.js → page-32b908ea6b23f583.js} +1 -1
  296. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-28a10e3cb86b9581.js → page-82cfc464b5e01f4f.js} +2 -2
  297. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-99260106103e6a4e.js → page-4473f52ad379b661.js} +1 -1
  298. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-d1c369e2c3fb727b.js +1 -0
  299. package/app/.next/static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js +1 -0
  300. package/app/.next/static/chunks/app/_global-error/page-d1c369e2c3fb727b.js +1 -0
  301. package/app/.next/static/chunks/app/api/auth/login/route-d1c369e2c3fb727b.js +1 -0
  302. package/app/.next/static/chunks/app/api/auth/logout/route-d1c369e2c3fb727b.js +1 -0
  303. package/app/.next/static/chunks/app/api/auth/me/route-d1c369e2c3fb727b.js +1 -0
  304. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-d1c369e2c3fb727b.js +1 -0
  305. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-d1c369e2c3fb727b.js +1 -0
  306. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-d1c369e2c3fb727b.js +1 -0
  307. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-d1c369e2c3fb727b.js +1 -0
  308. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-d1c369e2c3fb727b.js +1 -0
  309. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-d1c369e2c3fb727b.js +1 -0
  310. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-d1c369e2c3fb727b.js +1 -0
  311. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-d1c369e2c3fb727b.js +1 -0
  312. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-d1c369e2c3fb727b.js +1 -0
  313. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-d1c369e2c3fb727b.js +1 -0
  314. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-d1c369e2c3fb727b.js +1 -0
  315. package/app/.next/static/chunks/app/api/cloud/auth/route-d1c369e2c3fb727b.js +1 -0
  316. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-d1c369e2c3fb727b.js +1 -0
  317. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-d1c369e2c3fb727b.js +1 -0
  318. package/app/.next/static/chunks/app/api/cloud/models/alias/route-d1c369e2c3fb727b.js +1 -0
  319. package/app/.next/static/chunks/app/api/combos/[id]/route-d1c369e2c3fb727b.js +1 -0
  320. package/app/.next/static/chunks/app/api/combos/route-d1c369e2c3fb727b.js +1 -0
  321. package/app/.next/static/chunks/app/api/health/route-d1c369e2c3fb727b.js +1 -0
  322. package/app/.next/static/chunks/app/api/init/route-d1c369e2c3fb727b.js +1 -0
  323. package/app/.next/static/chunks/app/api/keys/[id]/route-d1c369e2c3fb727b.js +1 -0
  324. package/app/.next/static/chunks/app/api/keys/route-d1c369e2c3fb727b.js +1 -0
  325. package/app/.next/static/chunks/app/api/locale/route-d1c369e2c3fb727b.js +1 -0
  326. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-d1c369e2c3fb727b.js +1 -0
  327. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-d1c369e2c3fb727b.js +1 -0
  328. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-d1c369e2c3fb727b.js +1 -0
  329. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-d1c369e2c3fb727b.js +1 -0
  330. package/app/.next/static/chunks/app/api/models/alias/route-d1c369e2c3fb727b.js +1 -0
  331. package/app/.next/static/chunks/app/api/models/availability/route-d1c369e2c3fb727b.js +1 -0
  332. package/app/.next/static/chunks/app/api/models/custom/route-d1c369e2c3fb727b.js +1 -0
  333. package/app/.next/static/chunks/app/api/models/disabled/route-d1c369e2c3fb727b.js +1 -0
  334. package/app/.next/static/chunks/app/api/models/route-d1c369e2c3fb727b.js +1 -0
  335. package/app/.next/static/chunks/app/api/models/test/route-d1c369e2c3fb727b.js +1 -0
  336. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-d1c369e2c3fb727b.js +1 -0
  337. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-d1c369e2c3fb727b.js +1 -0
  338. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-d1c369e2c3fb727b.js +1 -0
  339. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-d1c369e2c3fb727b.js +1 -0
  340. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-d1c369e2c3fb727b.js +1 -0
  341. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-d1c369e2c3fb727b.js +1 -0
  342. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-d1c369e2c3fb727b.js +1 -0
  343. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-d1c369e2c3fb727b.js +1 -0
  344. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-d1c369e2c3fb727b.js +1 -0
  345. package/app/.next/static/chunks/app/api/pricing/route-d1c369e2c3fb727b.js +1 -0
  346. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-d1c369e2c3fb727b.js +1 -0
  347. package/app/.next/static/chunks/app/api/provider-nodes/route-d1c369e2c3fb727b.js +1 -0
  348. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-d1c369e2c3fb727b.js +1 -0
  349. package/app/.next/static/chunks/app/api/providers/[id]/models/route-d1c369e2c3fb727b.js +1 -0
  350. package/app/.next/static/chunks/app/api/providers/[id]/route-d1c369e2c3fb727b.js +1 -0
  351. package/app/.next/static/chunks/app/api/providers/[id]/test/route-d1c369e2c3fb727b.js +1 -0
  352. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-d1c369e2c3fb727b.js +1 -0
  353. package/app/.next/static/chunks/app/api/providers/client/route-d1c369e2c3fb727b.js +1 -0
  354. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-d1c369e2c3fb727b.js +1 -0
  355. package/app/.next/static/chunks/app/api/providers/route-d1c369e2c3fb727b.js +1 -0
  356. package/app/.next/static/chunks/app/api/providers/suggested-models/route-d1c369e2c3fb727b.js +1 -0
  357. package/app/.next/static/chunks/app/api/providers/test-batch/route-d1c369e2c3fb727b.js +1 -0
  358. package/app/.next/static/chunks/app/api/providers/validate/route-d1c369e2c3fb727b.js +1 -0
  359. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-d1c369e2c3fb727b.js +1 -0
  360. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-d1c369e2c3fb727b.js +1 -0
  361. package/app/.next/static/chunks/app/api/proxy-pools/route-d1c369e2c3fb727b.js +1 -0
  362. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-d1c369e2c3fb727b.js +1 -0
  363. package/app/.next/static/chunks/app/api/settings/database/route-d1c369e2c3fb727b.js +1 -0
  364. package/app/.next/static/chunks/app/api/settings/proxy-test/route-d1c369e2c3fb727b.js +1 -0
  365. package/app/.next/static/chunks/app/api/settings/require-login/route-d1c369e2c3fb727b.js +1 -0
  366. package/app/.next/static/chunks/app/api/settings/route-d1c369e2c3fb727b.js +1 -0
  367. package/app/.next/static/chunks/app/api/shutdown/route-d1c369e2c3fb727b.js +1 -0
  368. package/app/.next/static/chunks/app/api/tags/route-d1c369e2c3fb727b.js +1 -0
  369. package/app/.next/static/chunks/app/api/translator/console-logs/route-d1c369e2c3fb727b.js +1 -0
  370. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-d1c369e2c3fb727b.js +1 -0
  371. package/app/.next/static/chunks/app/api/translator/load/route-d1c369e2c3fb727b.js +1 -0
  372. package/app/.next/static/chunks/app/api/translator/save/route-d1c369e2c3fb727b.js +1 -0
  373. package/app/.next/static/chunks/app/api/translator/send/route-d1c369e2c3fb727b.js +1 -0
  374. package/app/.next/static/chunks/app/api/translator/translate/route-d1c369e2c3fb727b.js +1 -0
  375. package/app/.next/static/chunks/app/api/tunnel/disable/route-d1c369e2c3fb727b.js +1 -0
  376. package/app/.next/static/chunks/app/api/tunnel/enable/route-d1c369e2c3fb727b.js +1 -0
  377. package/app/.next/static/chunks/app/api/tunnel/status/route-d1c369e2c3fb727b.js +1 -0
  378. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-d1c369e2c3fb727b.js +1 -0
  379. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-d1c369e2c3fb727b.js +1 -0
  380. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-d1c369e2c3fb727b.js +1 -0
  381. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-d1c369e2c3fb727b.js +1 -0
  382. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-d1c369e2c3fb727b.js +1 -0
  383. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-d1c369e2c3fb727b.js +1 -0
  384. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-d1c369e2c3fb727b.js +1 -0
  385. package/app/.next/static/chunks/app/api/usage/api-keys/route-d1c369e2c3fb727b.js +1 -0
  386. package/app/.next/static/chunks/app/api/usage/chart/route-d1c369e2c3fb727b.js +1 -0
  387. package/app/.next/static/chunks/app/api/usage/history/route-d1c369e2c3fb727b.js +1 -0
  388. package/app/.next/static/chunks/app/api/usage/logs/route-d1c369e2c3fb727b.js +1 -0
  389. package/app/.next/static/chunks/app/api/usage/providers/route-d1c369e2c3fb727b.js +1 -0
  390. package/app/.next/static/chunks/app/api/usage/request-details/route-d1c369e2c3fb727b.js +1 -0
  391. package/app/.next/static/chunks/app/api/usage/request-logs/route-d1c369e2c3fb727b.js +1 -0
  392. package/app/.next/static/chunks/app/api/usage/stats/route-d1c369e2c3fb727b.js +1 -0
  393. package/app/.next/static/chunks/app/api/usage/stream/route-d1c369e2c3fb727b.js +1 -0
  394. package/app/.next/static/chunks/app/api/users/[id]/route-d1c369e2c3fb727b.js +1 -0
  395. package/app/.next/static/chunks/app/api/users/route-d1c369e2c3fb727b.js +1 -0
  396. package/app/.next/static/chunks/app/api/v1/api/chat/route-d1c369e2c3fb727b.js +1 -0
  397. package/app/.next/static/chunks/app/api/v1/audio/speech/route-d1c369e2c3fb727b.js +1 -0
  398. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-d1c369e2c3fb727b.js +1 -0
  399. package/app/.next/static/chunks/app/api/v1/audio/voices/route-d1c369e2c3fb727b.js +1 -0
  400. package/app/.next/static/chunks/app/api/v1/chat/completions/route-d1c369e2c3fb727b.js +1 -0
  401. package/app/.next/static/chunks/app/api/v1/embeddings/route-d1c369e2c3fb727b.js +1 -0
  402. package/app/.next/static/chunks/app/api/v1/images/generations/route-d1c369e2c3fb727b.js +1 -0
  403. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-d1c369e2c3fb727b.js +1 -0
  404. package/app/.next/static/chunks/app/api/v1/messages/route-d1c369e2c3fb727b.js +1 -0
  405. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-d1c369e2c3fb727b.js +1 -0
  406. package/app/.next/static/chunks/app/api/v1/models/info/route-d1c369e2c3fb727b.js +1 -0
  407. package/app/.next/static/chunks/app/api/v1/models/route-d1c369e2c3fb727b.js +1 -0
  408. package/app/.next/static/chunks/app/api/v1/responses/compact/route-d1c369e2c3fb727b.js +1 -0
  409. package/app/.next/static/chunks/app/api/v1/responses/route-d1c369e2c3fb727b.js +1 -0
  410. package/app/.next/static/chunks/app/api/v1/route-d1c369e2c3fb727b.js +1 -0
  411. package/app/.next/static/chunks/app/api/v1/search/route-d1c369e2c3fb727b.js +1 -0
  412. package/app/.next/static/chunks/app/api/v1/web/fetch/route-d1c369e2c3fb727b.js +1 -0
  413. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-d1c369e2c3fb727b.js +1 -0
  414. package/app/.next/static/chunks/app/api/v1beta/models/route-d1c369e2c3fb727b.js +1 -0
  415. package/app/.next/static/chunks/app/api/version/route-d1c369e2c3fb727b.js +1 -0
  416. package/app/.next/static/chunks/app/api/version/update/route-d1c369e2c3fb727b.js +1 -0
  417. package/app/.next/static/chunks/app/manifest.webmanifest/route-d1c369e2c3fb727b.js +1 -0
  418. package/app/.next/static/chunks/app/page-d1c369e2c3fb727b.js +1 -0
  419. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-d1c369e2c3fb727b.js +1 -0
  420. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-d1c369e2c3fb727b.js +1 -0
  421. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-d1c369e2c3fb727b.js +1 -0
  422. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-d1c369e2c3fb727b.js +1 -0
  423. package/app/.next/static/css/48caf49054c81db9.css +1 -0
  424. package/app/package.json +1 -1
  425. package/app/src/lib/updater/updater.js +6 -2
  426. package/app/src/mitm/dns/dnsConfig.js +1 -1
  427. package/app/src/mitm/handlers/kiro.js +385 -6
  428. package/app/src/mitm/manager.js +12 -3
  429. package/app/src/mitm/paths.js +7 -3
  430. package/cli.js +4 -3
  431. package/package.json +1 -1
  432. package/app/.next/server/chunks/212.js +0 -1
  433. package/app/.next/server/chunks/2238.js +0 -23
  434. package/app/.next/static/V2uXdl1SgLstSOcrQU5I9/_buildManifest.js +0 -1
  435. package/app/.next/static/chunks/1a258343-4878413fb430abba.js +0 -1
  436. package/app/.next/static/chunks/4295-99e90be71bb8d50c.js +0 -23
  437. package/app/.next/static/chunks/5497-27af7f632895d68e.js +0 -7
  438. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-badb7034e478a358.js +0 -1
  439. package/app/.next/static/chunks/app/(dashboard)/layout-edd266e7233eb314.js +0 -1
  440. package/app/.next/static/chunks/app/_global-error/page-badb7034e478a358.js +0 -1
  441. package/app/.next/static/chunks/app/api/auth/login/route-badb7034e478a358.js +0 -1
  442. package/app/.next/static/chunks/app/api/auth/logout/route-badb7034e478a358.js +0 -1
  443. package/app/.next/static/chunks/app/api/auth/me/route-badb7034e478a358.js +0 -1
  444. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-badb7034e478a358.js +0 -1
  445. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-badb7034e478a358.js +0 -1
  446. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-badb7034e478a358.js +0 -1
  447. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-badb7034e478a358.js +0 -1
  448. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-badb7034e478a358.js +0 -1
  449. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-badb7034e478a358.js +0 -1
  450. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-badb7034e478a358.js +0 -1
  451. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-badb7034e478a358.js +0 -1
  452. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-badb7034e478a358.js +0 -1
  453. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-badb7034e478a358.js +0 -1
  454. package/app/.next/static/chunks/app/api/cloud/auth/route-badb7034e478a358.js +0 -1
  455. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-badb7034e478a358.js +0 -1
  456. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-badb7034e478a358.js +0 -1
  457. package/app/.next/static/chunks/app/api/cloud/models/alias/route-badb7034e478a358.js +0 -1
  458. package/app/.next/static/chunks/app/api/combos/[id]/route-badb7034e478a358.js +0 -1
  459. package/app/.next/static/chunks/app/api/combos/route-badb7034e478a358.js +0 -1
  460. package/app/.next/static/chunks/app/api/health/route-badb7034e478a358.js +0 -1
  461. package/app/.next/static/chunks/app/api/init/route-badb7034e478a358.js +0 -1
  462. package/app/.next/static/chunks/app/api/keys/[id]/route-badb7034e478a358.js +0 -1
  463. package/app/.next/static/chunks/app/api/keys/route-badb7034e478a358.js +0 -1
  464. package/app/.next/static/chunks/app/api/locale/route-badb7034e478a358.js +0 -1
  465. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-badb7034e478a358.js +0 -1
  466. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-badb7034e478a358.js +0 -1
  467. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-badb7034e478a358.js +0 -1
  468. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-badb7034e478a358.js +0 -1
  469. package/app/.next/static/chunks/app/api/models/alias/route-badb7034e478a358.js +0 -1
  470. package/app/.next/static/chunks/app/api/models/availability/route-badb7034e478a358.js +0 -1
  471. package/app/.next/static/chunks/app/api/models/custom/route-badb7034e478a358.js +0 -1
  472. package/app/.next/static/chunks/app/api/models/disabled/route-badb7034e478a358.js +0 -1
  473. package/app/.next/static/chunks/app/api/models/route-badb7034e478a358.js +0 -1
  474. package/app/.next/static/chunks/app/api/models/test/route-badb7034e478a358.js +0 -1
  475. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-badb7034e478a358.js +0 -1
  476. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-badb7034e478a358.js +0 -1
  477. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-badb7034e478a358.js +0 -1
  478. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-badb7034e478a358.js +0 -1
  479. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-badb7034e478a358.js +0 -1
  480. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-badb7034e478a358.js +0 -1
  481. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-badb7034e478a358.js +0 -1
  482. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-badb7034e478a358.js +0 -1
  483. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-badb7034e478a358.js +0 -1
  484. package/app/.next/static/chunks/app/api/pricing/route-badb7034e478a358.js +0 -1
  485. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-badb7034e478a358.js +0 -1
  486. package/app/.next/static/chunks/app/api/provider-nodes/route-badb7034e478a358.js +0 -1
  487. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-badb7034e478a358.js +0 -1
  488. package/app/.next/static/chunks/app/api/providers/[id]/models/route-badb7034e478a358.js +0 -1
  489. package/app/.next/static/chunks/app/api/providers/[id]/route-badb7034e478a358.js +0 -1
  490. package/app/.next/static/chunks/app/api/providers/[id]/test/route-badb7034e478a358.js +0 -1
  491. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-badb7034e478a358.js +0 -1
  492. package/app/.next/static/chunks/app/api/providers/client/route-badb7034e478a358.js +0 -1
  493. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-badb7034e478a358.js +0 -1
  494. package/app/.next/static/chunks/app/api/providers/route-badb7034e478a358.js +0 -1
  495. package/app/.next/static/chunks/app/api/providers/suggested-models/route-badb7034e478a358.js +0 -1
  496. package/app/.next/static/chunks/app/api/providers/test-batch/route-badb7034e478a358.js +0 -1
  497. package/app/.next/static/chunks/app/api/providers/validate/route-badb7034e478a358.js +0 -1
  498. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-badb7034e478a358.js +0 -1
  499. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-badb7034e478a358.js +0 -1
  500. package/app/.next/static/chunks/app/api/proxy-pools/route-badb7034e478a358.js +0 -1
  501. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-badb7034e478a358.js +0 -1
  502. package/app/.next/static/chunks/app/api/settings/database/route-badb7034e478a358.js +0 -1
  503. package/app/.next/static/chunks/app/api/settings/proxy-test/route-badb7034e478a358.js +0 -1
  504. package/app/.next/static/chunks/app/api/settings/require-login/route-badb7034e478a358.js +0 -1
  505. package/app/.next/static/chunks/app/api/settings/route-badb7034e478a358.js +0 -1
  506. package/app/.next/static/chunks/app/api/shutdown/route-badb7034e478a358.js +0 -1
  507. package/app/.next/static/chunks/app/api/tags/route-badb7034e478a358.js +0 -1
  508. package/app/.next/static/chunks/app/api/translator/console-logs/route-badb7034e478a358.js +0 -1
  509. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-badb7034e478a358.js +0 -1
  510. package/app/.next/static/chunks/app/api/translator/load/route-badb7034e478a358.js +0 -1
  511. package/app/.next/static/chunks/app/api/translator/save/route-badb7034e478a358.js +0 -1
  512. package/app/.next/static/chunks/app/api/translator/send/route-badb7034e478a358.js +0 -1
  513. package/app/.next/static/chunks/app/api/translator/translate/route-badb7034e478a358.js +0 -1
  514. package/app/.next/static/chunks/app/api/tunnel/disable/route-badb7034e478a358.js +0 -1
  515. package/app/.next/static/chunks/app/api/tunnel/enable/route-badb7034e478a358.js +0 -1
  516. package/app/.next/static/chunks/app/api/tunnel/status/route-badb7034e478a358.js +0 -1
  517. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-badb7034e478a358.js +0 -1
  518. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-badb7034e478a358.js +0 -1
  519. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-badb7034e478a358.js +0 -1
  520. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-badb7034e478a358.js +0 -1
  521. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-badb7034e478a358.js +0 -1
  522. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-badb7034e478a358.js +0 -1
  523. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-badb7034e478a358.js +0 -1
  524. package/app/.next/static/chunks/app/api/usage/api-keys/route-badb7034e478a358.js +0 -1
  525. package/app/.next/static/chunks/app/api/usage/chart/route-badb7034e478a358.js +0 -1
  526. package/app/.next/static/chunks/app/api/usage/history/route-badb7034e478a358.js +0 -1
  527. package/app/.next/static/chunks/app/api/usage/logs/route-badb7034e478a358.js +0 -1
  528. package/app/.next/static/chunks/app/api/usage/providers/route-badb7034e478a358.js +0 -1
  529. package/app/.next/static/chunks/app/api/usage/request-details/route-badb7034e478a358.js +0 -1
  530. package/app/.next/static/chunks/app/api/usage/request-logs/route-badb7034e478a358.js +0 -1
  531. package/app/.next/static/chunks/app/api/usage/stats/route-badb7034e478a358.js +0 -1
  532. package/app/.next/static/chunks/app/api/usage/stream/route-badb7034e478a358.js +0 -1
  533. package/app/.next/static/chunks/app/api/users/[id]/route-badb7034e478a358.js +0 -1
  534. package/app/.next/static/chunks/app/api/users/route-badb7034e478a358.js +0 -1
  535. package/app/.next/static/chunks/app/api/v1/api/chat/route-badb7034e478a358.js +0 -1
  536. package/app/.next/static/chunks/app/api/v1/audio/speech/route-badb7034e478a358.js +0 -1
  537. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-badb7034e478a358.js +0 -1
  538. package/app/.next/static/chunks/app/api/v1/chat/completions/route-badb7034e478a358.js +0 -1
  539. package/app/.next/static/chunks/app/api/v1/embeddings/route-badb7034e478a358.js +0 -1
  540. package/app/.next/static/chunks/app/api/v1/images/generations/route-badb7034e478a358.js +0 -1
  541. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-badb7034e478a358.js +0 -1
  542. package/app/.next/static/chunks/app/api/v1/messages/route-badb7034e478a358.js +0 -1
  543. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-badb7034e478a358.js +0 -1
  544. package/app/.next/static/chunks/app/api/v1/models/route-badb7034e478a358.js +0 -1
  545. package/app/.next/static/chunks/app/api/v1/responses/compact/route-badb7034e478a358.js +0 -1
  546. package/app/.next/static/chunks/app/api/v1/responses/route-badb7034e478a358.js +0 -1
  547. package/app/.next/static/chunks/app/api/v1/route-badb7034e478a358.js +0 -1
  548. package/app/.next/static/chunks/app/api/v1/search/route-badb7034e478a358.js +0 -1
  549. package/app/.next/static/chunks/app/api/v1/web/fetch/route-badb7034e478a358.js +0 -1
  550. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-badb7034e478a358.js +0 -1
  551. package/app/.next/static/chunks/app/api/v1beta/models/route-badb7034e478a358.js +0 -1
  552. package/app/.next/static/chunks/app/api/version/route-badb7034e478a358.js +0 -1
  553. package/app/.next/static/chunks/app/api/version/update/route-badb7034e478a358.js +0 -1
  554. package/app/.next/static/chunks/app/manifest.webmanifest/route-badb7034e478a358.js +0 -1
  555. package/app/.next/static/chunks/app/page-badb7034e478a358.js +0 -1
  556. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-badb7034e478a358.js +0 -1
  557. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-badb7034e478a358.js +0 -1
  558. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-badb7034e478a358.js +0 -1
  559. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-badb7034e478a358.js +0 -1
  560. package/app/.next/static/css/76d369cc5468e708.css +0 -1
  561. /package/app/.next/static/{V2uXdl1SgLstSOcrQU5I9 → 2TCKT7FIN7PE7ZJ20oAeb}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
1
  (()=>{var a={};a.id=3472,a.ids=[3472],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24424:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49120:(a,b,c)=>{"use strict";c.d(b,{n:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);function j(a){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),a):g().join(i().homedir(),`.${a}`)}let k=function(){if(process.env.DATA_DIR)return process.env.DATA_DIR;let a=j("openrouterx"),b=j("9router");return!e().existsSync(a)&&e().existsSync(b)?b:a}()},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},51455:a=>{"use strict";a.exports=require("node:fs/promises")},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65818:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>ac,GET:()=>aa,POST:()=>ab});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l);let n=/^(?:( )+|\t+)/,o="space";function p(a,b){let c=new Map,d=0,e,f;for(let g of a.split(/\n/g)){if(!g)continue;let a=g.match(n);if(null===a)d=0,e="";else{let g=a[0].length,h=a[1]?o:"tab";if(b&&h===o&&1===g)continue;h!==e&&(d=0),e=h;let i=1,j=0,k=g-d;if(d=g,0===k)i=0,j=1;else{let a=Math.abs(k);if(b&&h===o&&1===a)continue;f=(h===o?"s":"t")+String(a)}let l=c.get(f);c.set(f,void 0===l?[1,0]:[l[0]+i,l[1]+j])}}return c}let q=Symbol.for("__confbox_fmt__"),r=/^(\s+)/,s=/(\s+)$/;var t=class extends Error{line;column;codeblock;constructor(a,b){let[c,d]=function(a,b){let c=a.slice(0,b).split(/\r\n|\n|\r/g);return[c.length,c.pop().length+1]}(b.toml,b.ptr),e=function(a,b,c){let d=a.split(/\r\n|\n|\r/g),e="",f=(0|Math.log10(b+1))+1;for(let a=b-1;a<=b+1;a++){let g=d[a-1];g&&(e+=a.toString().padEnd(f," "),e+=": ",e+=g,e+=`
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},37456:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527),u=c(65818);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/codex-settings/route",pathname:"/api/cli-tools/codex-settings",filename:"route",bundlePath:"app/api/cli-tools/codex-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/bytedance/Documents/9router/src/app/api/cli-tools/codex-settings/route.js",nextConfigOutput:"standalone",userland:u,...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/codex-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49120:(a,b,c)=>{"use strict";c.d(b,{n:()=>i}),c(29021);var d,e=c(33873),f=c.n(e),g=c(21820),h=c.n(g);let i=process.env.DATA_DIR?process.env.DATA_DIR:(d="openrouterx","win32"===process.platform?f().join(process.env.APPDATA||f().join(h().homedir(),"AppData","Roaming"),d):f().join(h().homedir(),`.${d}`))},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},51455:a=>{"use strict";a.exports=require("node:fs/promises")},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65818:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>ac,GET:()=>aa,POST:()=>ab});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l);let n=/^(?:( )+|\t+)/,o="space";function p(a,b){let c=new Map,d=0,e,f;for(let g of a.split(/\n/g)){if(!g)continue;let a=g.match(n);if(null===a)d=0,e="";else{let g=a[0].length,h=a[1]?o:"tab";if(b&&h===o&&1===g)continue;h!==e&&(d=0),e=h;let i=1,j=0,k=g-d;if(d=g,0===k)i=0,j=1;else{let a=Math.abs(k);if(b&&h===o&&1===a)continue;f=(h===o?"s":"t")+String(a)}let l=c.get(f);c.set(f,void 0===l?[1,0]:[l[0]+i,l[1]+j])}}return c}let q=Symbol.for("__confbox_fmt__"),r=/^(\s+)/,s=/(\s+)$/;var t=class extends Error{line;column;codeblock;constructor(a,b){let[c,d]=function(a,b){let c=a.slice(0,b).split(/\r\n|\n|\r/g);return[c.length,c.pop().length+1]}(b.toml,b.ptr),e=function(a,b,c){let d=a.split(/\r\n|\n|\r/g),e="",f=(0|Math.log10(b+1))+1;for(let a=b-1;a<=b+1;a++){let g=d[a-1];g&&(e+=a.toString().padEnd(f," "),e+=": ",e+=g,e+=`
3
3
  `,a===b&&(e+=" ".repeat(f+c+2),e+=`^
4
4
  `))}return e}(b.toml,c,d);super(`Invalid TOML document: ${a}
5
5
 
@@ -29,4 +29,4 @@ ${e}`,b),this.line=c,this.column=d,this.codeblock=e}};function u(a,b=0,c=a.lengt
29
29
  ${g}`:`[${b}]`),g&&h?`${g}
30
30
  ${h}`:g||h}(0,a,"",b,c);return d[d.length-1]===`
31
31
  `?d:d+`
32
- `}(a);return b.whitespace.start+c+b.whitespace.end}var O=c(68658),P=c(24424);let Q=(0,g.promisify)(f.exec);async function R(a){let b=await (0,O.f1)(a);return b?{payload:b,response:null}:{payload:null,response:e.NextResponse.json({error:"Unauthorized"},{status:401})}}let S=()=>k().join(m().homedir(),".codex"),T=()=>k().join(S(),"config.toml"),U=()=>k().join(S(),"auth.json"),V="openrouterx",W=a=>"string"!=typeof a?a:a.startsWith("cx/")?a.slice(3):a,X=a=>a??{},Y=(a,b,c)=>{let d=b.split("."),e=a;for(let a=0;a<d.length-1;a++)(null==e[d[a]]||"object"!=typeof e[d[a]])&&(e[d[a]]={}),e=e[d[a]];e[d[d.length-1]]=c},Z=(a,b)=>{let c=b.split("."),d=a;for(let a=0;a<c.length-1;a++)if(null==(d=d?.[c[a]]))return;delete d[c[c.length-1]]},$=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await Q(a?"where codex":"which codex",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(T()),!0}catch{return!1}}},_=async()=>{try{let a=T();return await i().readFile(a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}};async function aa(a){try{let{response:b}=await R(a);if(b)return b;if(!await $())return e.NextResponse.json({installed:!1,config:null,message:"Codex CLI is not installed"});let c=await _();return e.NextResponse.json({installed:!0,config:c,hasOpenRouterX:!!c&&(c.includes(`model_provider = "${V}"`)||c.includes(`[model_providers.${V}]`)),configPath:T()})}catch(a){return console.log("Error checking codex settings:",a),e.NextResponse.json({error:"Failed to check codex settings"},{status:500})}}async function ab(a){try{let{payload:b,response:c}=await R(a);if(c)return c;if("super_admin"!==b.role)return e.NextResponse.json({error:"Forbidden"},{status:403});let{baseUrl:d,apiKey:f,model:g,subagentModel:h}=await a.json(),j=W(g),k=W(h);if(!d||!f||!j)return e.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});let l=S(),m=T();await i().mkdir(l,{recursive:!0});let n={};try{let a=await i().readFile(m,"utf-8");n=X(M(a))}catch{}n.model=j,n.model_provider=V;let o=d.endsWith("/v1")?d:`${d}/v1`;Y(n,`model_providers.${V}`,{name:"OpenRouterX",base_url:o,wire_api:"responses"});let p=k||j;Y(n,"agents.subagent",{model:p});let q=N(n);await i().writeFile(m,q);let r=U(),s={};try{let a=await i().readFile(r,"utf-8");s=JSON.parse(a)}catch{}return s.OPENAI_API_KEY=f,s.auth_mode="apikey",await i().writeFile(r,JSON.stringify(s,null,2)),e.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:m})}catch(a){return console.log("Error updating codex settings:",a),e.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function ac(a){try{let{payload:b,response:c}=await R(a);if(c)return c;if("super_admin"!==b.role)return e.NextResponse.json({error:"Forbidden"},{status:403});let d=T(),f={};try{let a=await i().readFile(d,"utf-8");f=X(M(a))}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}f.model_provider===V&&(delete f.model,delete f.model_provider),Z(f,`model_providers.${V}`),Z(f,"agents.subagent");let g=N(f);await i().writeFile(d,g);let h=U();try{let a=await i().readFile(h,"utf-8"),b=JSON.parse(a);delete b.OPENAI_API_KEY,delete b.auth_mode,0===Object.keys(b).length?await i().unlink(h):await i().writeFile(h,JSON.stringify(b,null,2))}catch{}return e.NextResponse.json({success:!0,message:"OpenRouterX settings removed successfully"})}catch(a){return console.log("Error resetting codex settings:",a),e.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,P.D)([aa,ab,ac]),(0,d.A)(aa,"40aa00cc96a19a2425f2f39d3cf9d7804ae30ab2b9",null),(0,d.A)(ab,"405300066732c0446106498f73853d0c23647f486d",null),(0,d.A)(ac,"400114307a83d2c399139799054f350eb556af8afd",null)},68658:(a,b,c)=>{"use strict";c.d(b,{f1:()=>f}),c(23211);var d=c(69614);c(89718),c(54603);let e=new TextEncoder().encode(process.env.JWT_SECRET||"9router-default-secret-change-me");async function f(a){let b=a.cookies.get("auth_token")?.value;if(!b)return null;try{let{payload:a}=await (0,d.V)(b,e);return a}catch{return null}}},69236:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527),u=c(65818);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/codex-settings/route",pathname:"/api/cli-tools/codex-settings",filename:"route",bundlePath:"app/api/cli-tools/codex-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/bytedance/Documents/9router/src/app/api/cli-tools/codex-settings/route.js",nextConfigOutput:"standalone",userland:u,...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/codex-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},69614:(a,b,c)=>{"use strict";c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},77847:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"400114307a83d2c399139799054f350eb556af8afd":()=>d.DELETE,"405300066732c0446106498f73853d0c23647f486d":()=>d.POST,"40aa00cc96a19a2425f2f39d3cf9d7804ae30ab2b9":()=>d.GET});var d=c(65818)},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7502,1813,8838,6184,9718],()=>b(b.s=69236));module.exports=c})();
32
+ `}(a);return b.whitespace.start+c+b.whitespace.end}var O=c(68658),P=c(24424);let Q=(0,g.promisify)(f.exec);async function R(a){let b=await (0,O.f1)(a);return b?{payload:b,response:null}:{payload:null,response:e.NextResponse.json({error:"Unauthorized"},{status:401})}}let S=()=>k().join(m().homedir(),".codex"),T=()=>k().join(S(),"config.toml"),U=()=>k().join(S(),"auth.json"),V="openrouterx",W=a=>"string"!=typeof a?a:a.startsWith("cx/")?a.slice(3):a,X=a=>a??{},Y=(a,b,c)=>{let d=b.split("."),e=a;for(let a=0;a<d.length-1;a++)(null==e[d[a]]||"object"!=typeof e[d[a]])&&(e[d[a]]={}),e=e[d[a]];e[d[d.length-1]]=c},Z=(a,b)=>{let c=b.split("."),d=a;for(let a=0;a<c.length-1;a++)if(null==(d=d?.[c[a]]))return;delete d[c[c.length-1]]},$=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await Q(a?"where codex":"which codex",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(T()),!0}catch{return!1}}},_=async()=>{try{let a=T();return await i().readFile(a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}};async function aa(a){try{let{response:b}=await R(a);if(b)return b;if(!await $())return e.NextResponse.json({installed:!1,config:null,message:"Codex CLI is not installed"});let c=await _();return e.NextResponse.json({installed:!0,config:c,hasOpenRouterX:!!c&&(c.includes(`model_provider = "${V}"`)||c.includes(`[model_providers.${V}]`)),configPath:T()})}catch(a){return console.log("Error checking codex settings:",a),e.NextResponse.json({error:"Failed to check codex settings"},{status:500})}}async function ab(a){try{let{payload:b,response:c}=await R(a);if(c)return c;if("super_admin"!==b.role)return e.NextResponse.json({error:"Forbidden"},{status:403});let{baseUrl:d,apiKey:f,model:g,subagentModel:h}=await a.json(),j=W(g),k=W(h);if(!d||!f||!j)return e.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});let l=S(),m=T();await i().mkdir(l,{recursive:!0});let n={};try{let a=await i().readFile(m,"utf-8");n=X(M(a))}catch{}n.model=j,n.model_provider=V;let o=d.endsWith("/v1")?d:`${d}/v1`;Y(n,`model_providers.${V}`,{name:"OpenRouterX",base_url:o,wire_api:"responses"});let p=k||j;Y(n,"agents.subagent",{model:p});let q=N(n);await i().writeFile(m,q);let r=U(),s={};try{let a=await i().readFile(r,"utf-8");s=JSON.parse(a)}catch{}return s.OPENAI_API_KEY=f,s.auth_mode="apikey",await i().writeFile(r,JSON.stringify(s,null,2)),e.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:m})}catch(a){return console.log("Error updating codex settings:",a),e.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function ac(a){try{let{payload:b,response:c}=await R(a);if(c)return c;if("super_admin"!==b.role)return e.NextResponse.json({error:"Forbidden"},{status:403});let d=T(),f={};try{let a=await i().readFile(d,"utf-8");f=X(M(a))}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}f.model_provider===V&&(delete f.model,delete f.model_provider),Z(f,`model_providers.${V}`),Z(f,"agents.subagent");let g=N(f);await i().writeFile(d,g);let h=U();try{let a=await i().readFile(h,"utf-8"),b=JSON.parse(a);delete b.OPENAI_API_KEY,delete b.auth_mode,0===Object.keys(b).length?await i().unlink(h):await i().writeFile(h,JSON.stringify(b,null,2))}catch{}return e.NextResponse.json({success:!0,message:"OpenRouterX settings removed successfully"})}catch(a){return console.log("Error resetting codex settings:",a),e.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,P.D)([aa,ab,ac]),(0,d.A)(aa,"40aa00cc96a19a2425f2f39d3cf9d7804ae30ab2b9",null),(0,d.A)(ab,"405300066732c0446106498f73853d0c23647f486d",null),(0,d.A)(ac,"400114307a83d2c399139799054f350eb556af8afd",null)},68658:(a,b,c)=>{"use strict";c.d(b,{f1:()=>f}),c(23211);var d=c(69614);c(89718),c(54603);let e=new TextEncoder().encode(process.env.JWT_SECRET||"9router-default-secret-change-me");async function f(a){let b=a.cookies.get("auth_token")?.value;if(!b)return null;try{let{payload:a}=await (0,d.V)(b,e);return a}catch{return null}}},69614:(a,b,c)=>{"use strict";c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},77847:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"400114307a83d2c399139799054f350eb556af8afd":()=>d.DELETE,"405300066732c0446106498f73853d0c23647f486d":()=>d.POST,"40aa00cc96a19a2425f2f39d3cf9d7804ae30ab2b9":()=>d.GET});var d=c(65818)},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7502,1813,8838,6184,9718],()=>b(b.s=37456));module.exports=c})();
@@ -1,2 +1,2 @@
1
- (()=>{var a={};a.id=543,a.ids=[543],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3984:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527),u=c(20703);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/copilot-settings/route",pathname:"/api/cli-tools/copilot-settings",filename:"route",bundlePath:"app/api/cli-tools/copilot-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/bytedance/Documents/9router/src/app/api/cli-tools/copilot-settings/route.js",nextConfigOutput:"standalone",userland:u,...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/copilot-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},20703:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>r,GET:()=>p,POST:()=>q});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(24424);let m=()=>{let a=k().homedir(),b=k().platform();return"win32"===b?i().join(process.env.APPDATA||a,"Code","User","chatLanguageModels.json"):"darwin"===b?i().join(a,"Library","Application Support","Code","User","chatLanguageModels.json"):i().join(a,".config","Code","User","chatLanguageModels.json")},n=async()=>{try{let a=await g().readFile(m(),"utf-8");return JSON.parse(a)}catch(a){if("ENOENT"===a.code)return null;throw a}},o="OpenRouterX";async function p(){try{let a=await n(),b=Array.isArray(a)&&a.find(a=>a.name===o)||null;return e.NextResponse.json({installed:!0,config:a,hasOpenRouterX:!!Array.isArray(a)&&a.some(a=>a.name===o),configPath:m(),currentModel:b?.models?.[0]?.id||null,currentUrl:b?.models?.[0]?.url||null})}catch(a){return console.log("Error checking copilot settings:",a),e.NextResponse.json({error:"Failed to check copilot settings"},{status:500})}}async function q(a){try{let{baseUrl:b,apiKey:c,models:d}=await a.json();if(!b||!d?.length)return e.NextResponse.json({error:"baseUrl and models are required"},{status:400});let f=m();await g().mkdir(i().dirname(f),{recursive:!0});let h=[];try{let a=await g().readFile(f,"utf-8"),b=JSON.parse(a);h=Array.isArray(b)?b:[]}catch{}let j=`${b}/chat/completions#models.ai.azure.com`,k={name:o,vendor:"azure",apiKey:c||"sk_openrouterx",models:d.map(a=>({id:a,name:a,url:j,toolCalling:!0,vision:!1,maxInputTokens:128e3,maxOutputTokens:16e3}))},l=h.findIndex(a=>a.name===o);return l>=0?h[l]=k:h.push(k),await g().writeFile(f,JSON.stringify(h,null,2)),e.NextResponse.json({success:!0,message:"Copilot settings applied! Reload VS Code to take effect.",configPath:f})}catch(a){return console.log("Error updating copilot settings:",a),e.NextResponse.json({error:"Failed to update copilot settings"},{status:500})}}async function r(){try{let a=m(),b=[];try{let c=await g().readFile(a,"utf-8"),d=JSON.parse(c);b=Array.isArray(d)?d:[]}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}return b=b.filter(a=>a.name!==o),await g().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"OpenRouterX removed from Copilot config"})}catch(a){return console.log("Error resetting copilot settings:",a),e.NextResponse.json({error:"Failed to reset copilot settings"},{status:500})}}(0,l.D)([p,q,r]),(0,d.A)(p,"000ec0cfb9aa627701d073e49ec32dbcdeb335afb7",null),(0,d.A)(q,"40585f724460fece52de8fd57e3e2776aa1a98fc63",null),(0,d.A)(r,"0097aeee3efe74142a3a8ec88537f76a9efa73ade1",null)},21820:a=>{"use strict";a.exports=require("os")},24424:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95198:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"000ec0cfb9aa627701d073e49ec32dbcdeb335afb7":()=>d.GET,"0097aeee3efe74142a3a8ec88537f76a9efa73ade1":()=>d.DELETE,"40585f724460fece52de8fd57e3e2776aa1a98fc63":()=>d.POST});var d=c(20703)},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813],()=>b(b.s=3984));module.exports=c})();
1
+ (()=>{var a={};a.id=543,a.ids=[543],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},20703:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>r,GET:()=>p,POST:()=>q});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(24424);let m=()=>{let a=k().homedir(),b=k().platform();return"win32"===b?i().join(process.env.APPDATA||a,"Code","User","chatLanguageModels.json"):"darwin"===b?i().join(a,"Library","Application Support","Code","User","chatLanguageModels.json"):i().join(a,".config","Code","User","chatLanguageModels.json")},n=async()=>{try{let a=await g().readFile(m(),"utf-8");return JSON.parse(a)}catch(a){if("ENOENT"===a.code)return null;throw a}},o="OpenRouterX";async function p(){try{let a=await n(),b=Array.isArray(a)&&a.find(a=>a.name===o)||null;return e.NextResponse.json({installed:!0,config:a,hasOpenRouterX:!!Array.isArray(a)&&a.some(a=>a.name===o),configPath:m(),currentModel:b?.models?.[0]?.id||null,currentUrl:b?.models?.[0]?.url||null})}catch(a){return console.log("Error checking copilot settings:",a),e.NextResponse.json({error:"Failed to check copilot settings"},{status:500})}}async function q(a){try{let{baseUrl:b,apiKey:c,models:d}=await a.json();if(!b||!d?.length)return e.NextResponse.json({error:"baseUrl and models are required"},{status:400});let f=m();await g().mkdir(i().dirname(f),{recursive:!0});let h=[];try{let a=await g().readFile(f,"utf-8"),b=JSON.parse(a);h=Array.isArray(b)?b:[]}catch{}let j=`${b}/chat/completions#models.ai.azure.com`,k={name:o,vendor:"azure",apiKey:c||"sk_openrouterx",models:d.map(a=>({id:a,name:a,url:j,toolCalling:!0,vision:!1,maxInputTokens:128e3,maxOutputTokens:16e3}))},l=h.findIndex(a=>a.name===o);return l>=0?h[l]=k:h.push(k),await g().writeFile(f,JSON.stringify(h,null,2)),e.NextResponse.json({success:!0,message:"Copilot settings applied! Reload VS Code to take effect.",configPath:f})}catch(a){return console.log("Error updating copilot settings:",a),e.NextResponse.json({error:"Failed to update copilot settings"},{status:500})}}async function r(){try{let a=m(),b=[];try{let c=await g().readFile(a,"utf-8"),d=JSON.parse(c);b=Array.isArray(d)?d:[]}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}return b=b.filter(a=>a.name!==o),await g().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"OpenRouterX removed from Copilot config"})}catch(a){return console.log("Error resetting copilot settings:",a),e.NextResponse.json({error:"Failed to reset copilot settings"},{status:500})}}(0,l.D)([p,q,r]),(0,d.A)(p,"000ec0cfb9aa627701d073e49ec32dbcdeb335afb7",null),(0,d.A)(q,"40585f724460fece52de8fd57e3e2776aa1a98fc63",null),(0,d.A)(r,"0097aeee3efe74142a3a8ec88537f76a9efa73ade1",null)},21820:a=>{"use strict";a.exports=require("os")},24424:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64348:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527),u=c(20703);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/copilot-settings/route",pathname:"/api/cli-tools/copilot-settings",filename:"route",bundlePath:"app/api/cli-tools/copilot-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/bytedance/Documents/9router/src/app/api/cli-tools/copilot-settings/route.js",nextConfigOutput:"standalone",userland:u,...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/copilot-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95198:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"000ec0cfb9aa627701d073e49ec32dbcdeb335afb7":()=>d.GET,"0097aeee3efe74142a3a8ec88537f76a9efa73ade1":()=>d.DELETE,"40585f724460fece52de8fd57e3e2776aa1a98fc63":()=>d.POST});var d=c(20703)},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813],()=>b(b.s=64348));module.exports=c})();
@@ -0,0 +1,2 @@
1
+ (()=>{var a={};a.id=1697,a.ids=[1697],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15027:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"400081dd9fee7df71337862f8119d6fa2cdae82452":()=>d.GET});var d=c(90795)},24424:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},41678:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527),u=c(90795);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/cowork-mcp-registry/route",pathname:"/api/cli-tools/cowork-mcp-registry",filename:"route",bundlePath:"app/api/cli-tools/cowork-mcp-registry/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/bytedance/Documents/9router/src/app/api/cli-tools/cowork-mcp-registry/route.js",nextConfigOutput:"standalone",userland:u,...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/cowork-mcp-registry/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},90795:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>k});var d=c(49796),e=c(23211),f=c(24424);let g="anthropics/knowledge-work-plugins",h="__9routerCoworkMcpRegistryCache";async function i(){let a=[],b="";for(let c=0;c<20;c++){let c=`https://api.anthropic.com/mcp-registry/v0/servers?limit=500&visibility=commercial,gsuite,gsuite-google${b?`&cursor=${encodeURIComponent(b)}`:""}`,d=await fetch(c,{headers:{accept:"application/json"}});if(!d.ok)break;let e=await d.json();for(let b of e.servers||[]){let c=b.server||{},d=(c.remotes||[])[0];if(!d?.url)continue;let e="streamable-http"===d.type?"http":"sse"===d.type?"sse":"http";a.push({source:"registry",name:c.name,title:c.title||c.name,description:c.description||"",url:d.url,transport:e})}if(!(b=e.metadata?.nextCursor))break}return a}async function j(){let a=await fetch(`https://api.github.com/repos/${g}/contents/`,{headers:{accept:"application/vnd.github.v3+json"}});if(!a.ok)return[];let b=(await a.json()).filter(a=>"dir"===a.type&&!a.name.startsWith(".")&&"partner-built"!==a.name),c=[];return await Promise.all(b.map(async a=>{try{let b=`https://raw.githubusercontent.com/${g}/main/${a.name}/.claude-plugin/plugin.json`,d=await fetch(b);if(!d.ok)return;let e=await d.json(),f=e.mcp_servers||e.mcpServers||{};for(let[b,d]of Object.entries(f)){if(!d?.url||"string"!=typeof d.url||!/^https?:\/\//i.test(d.url))continue;let f=/\/sse(\b|\/)/i.test(d.url)||"sse"===d.type?"sse":"http";c.push({source:"plugins",plugin:a.name,name:`${a.name}-${b}`,title:e.name||a.name,description:e.description||"",url:d.url,transport:f})}}catch{}})),c}async function k(a){let{searchParams:b}=new URL(a.url),c="1"===b.get("refresh"),d=(globalThis[h]||(globalThis[h]={ts:0,data:null}),globalThis[h]);if(!c&&d.data&&Date.now()-d.ts<36e5)return e.NextResponse.json({cached:!0,...d.data});try{let[a,b]=await Promise.all([i(),j()]),c=new Set,f=[...a,...b].filter(a=>!c.has(a.url)&&(c.add(a.url),!0)),g={servers:f,counts:{registry:a.length,plugins:b.length,total:f.length}};return d.ts=Date.now(),d.data=g,e.NextResponse.json({cached:!1,...g})}catch(a){return e.NextResponse.json({error:a.message,servers:[],counts:{total:0}},{status:500})}}(0,f.D)([k]),(0,d.A)(k,"400081dd9fee7df71337862f8119d6fa2cdae82452",null)},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813],()=>b(b.s=41678));module.exports=c})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1813.js","../../../../chunks/4741.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/cowork-mcp-registry/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/bytedance/Documents/9router/src/app/api/cli-tools/cowork-mcp-registry/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1,2 +1,2 @@
1
- (()=>{var a={};a.id=4010,a.ids=[4010],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21350:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>B,GET:()=>z,POST:()=>A});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(55511),m=c.n(l),n=c(24424);let o="gateway",p=()=>{if("darwin"===k().platform()){let a=i().join(k().homedir(),"Library","Application Support");return[i().join(a,"Claude-3p"),i().join(a,"Claude")]}if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return[i().join(a,"Claude-3p"),i().join(b,"Claude-3p"),i().join(a,"Claude"),i().join(b,"Claude")]}return[i().join(k().homedir(),".config","Claude-3p"),i().join(k().homedir(),".config","Claude")]},q=async()=>{let a=p();for(let b of a)try{return await g().access(i().join(b,"configLibrary")),b}catch{}return a[0]},r=async()=>i().join(await q(),"configLibrary"),s=()=>i().join(p()[0],"configLibrary"),t=async()=>i().join(await r(),"_meta.json"),u=()=>{if("darwin"===k().platform())return i().join(k().homedir(),"Library","Application Support","Claude");if("win32"===k().platform()){process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local");let a=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return i().join(a,"Claude")}return i().join(k().homedir(),".config","Claude")},v=async()=>{let a=i().join(u(),"claude_desktop_config.json"),b={};try{let c=await g().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"!==a.code)throw a}return"3p"!==b.deploymentMode&&(b.deploymentMode="3p",await g().mkdir(u(),{recursive:!0}),await g().writeFile(a,JSON.stringify(b,null,2)),!0)},w=async()=>{for(let a of[...p(),...(()=>{if("darwin"===k().platform())return["/Applications/Claude.app",i().join(k().homedir(),"Applications","Claude.app")];if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.ProgramFiles||"C:\\Program Files";return[i().join(a,"AnthropicClaude"),i().join(b,"Claude"),i().join(b,"AnthropicClaude")]}return[]})()])try{return await g().access(a),!0}catch{}return!1},x=async a=>{try{let b=await g().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}},y=async()=>{let a=i().join(s(),"_meta.json"),b=await x(a);if(!b||!b.appliedId){let c=await x(await t());if(c?.appliedId)b=c;else{let a=m().randomUUID();b={appliedId:a,entries:[{id:a,name:"Default"}]}}await g().mkdir(s(),{recursive:!0}),await g().writeFile(a,JSON.stringify(b,null,2))}return b};async function z(){try{if(!await w())return e.NextResponse.json({installed:!1,config:null,message:"Claude Desktop (Cowork mode) not detected"});let a=await x(await t()),b=a?.appliedId||null,c=await r(),d=b?i().join(c,`${b}.json`):null,f=d?await x(d):null,g=f?.inferenceGatewayBaseUrl||null,h=Array.isArray(f?.inferenceModels)?f.inferenceModels.map(a=>"string"==typeof a?a:a?.name).filter(Boolean):[],j=!!(f?.inferenceProvider===o&&g);return e.NextResponse.json({installed:!0,config:f,has9Router:j,configPath:d,cowork:{appliedId:b,baseUrl:g,models:h,provider:f?.inferenceProvider||null}})}catch(a){return console.log("Error reading cowork settings:",a),e.NextResponse.json({error:"Failed to read cowork settings"},{status:500})}}async function A(a){try{let{baseUrl:b,apiKey:c,models:d}=await a.json();if(!b||!c)return e.NextResponse.json({error:"baseUrl and apiKey are required"},{status:400});if(/localhost|127\.0\.0\.1|0\.0\.0\.0/i.test(b||""))return e.NextResponse.json({error:"Claude Cowork sandbox cannot reach localhost. Enable Tunnel/Cloud Endpoint or use Tailscale/VPS."},{status:400});let f=Array.isArray(d)?d.filter(a=>"string"==typeof a&&a.trim()):[];if(0===f.length)return e.NextResponse.json({error:"At least one model is required"},{status:400});let h=await v(),j=await y(),k=i().join(s(),`${j.appliedId}.json`),l={inferenceProvider:o,inferenceGatewayBaseUrl:b,inferenceGatewayApiKey:c,inferenceModels:f.map(a=>({name:a}))};return await g().writeFile(k,JSON.stringify(l,null,2)),e.NextResponse.json({success:!0,bootstrapped:h,message:h?"Cowork enabled (3p mode set). Quit & reopen Claude Desktop.":"Cowork settings applied. Quit & reopen Claude Desktop.",configPath:k})}catch(a){return console.log("Error applying cowork settings:",a),e.NextResponse.json({error:"Failed to apply cowork settings"},{status:500})}}async function B(){try{let a=await x(await t());if(!a?.appliedId)return e.NextResponse.json({success:!0,message:"No active config to reset"});let b=i().join(await r(),`${a.appliedId}.json`);try{await g().writeFile(b,JSON.stringify({},null,2))}catch(a){if("ENOENT"!==a.code)throw a}return e.NextResponse.json({success:!0,message:"Cowork config reset"})}catch(a){return console.log("Error resetting cowork settings:",a),e.NextResponse.json({error:"Failed to reset cowork settings"},{status:500})}}(0,n.D)([z,A,B]),(0,d.A)(z,"0090136f10c11bf167e9ef458090bcb624cf4c319e",null),(0,d.A)(A,"401231d4e6936c8dda0a3be7e87bb90ed8d121ffd0",null),(0,d.A)(B,"00834219c23ed3d8e09eb917554f4fa7710aca2c9d",null)},21820:a=>{"use strict";a.exports=require("os")},24424:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},25118:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527),u=c(21350);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/cowork-settings/route",pathname:"/api/cli-tools/cowork-settings",filename:"route",bundlePath:"app/api/cli-tools/cowork-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/bytedance/Documents/9router/src/app/api/cli-tools/cowork-settings/route.js",nextConfigOutput:"standalone",userland:u,...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/cowork-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34409:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"00834219c23ed3d8e09eb917554f4fa7710aca2c9d":()=>d.DELETE,"0090136f10c11bf167e9ef458090bcb624cf4c319e":()=>d.GET,"401231d4e6936c8dda0a3be7e87bb90ed8d121ffd0":()=>d.POST});var d=c(21350)},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813],()=>b(b.s=25118));module.exports=c})();
1
+ (()=>{var a={};a.id=4010,a.ids=[4010],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21350:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>G,GET:()=>E,POST:()=>F});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(55511),m=c.n(l),n=c(28286),o=c(24424);let p="gateway";async function q(){for(let a of(()=>{if("darwin"===k().platform()){let a=k().homedir();return[i().join(a,"Library","Application Support","Claude-3p","org-plugins"),i().join(a,"Library","Application Support","Claude","org-plugins"),"/Library/Application Support/Claude/org-plugins"]}if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.ProgramData||"C:\\ProgramData";return[i().join(a,"Claude-3p","org-plugins"),i().join(a,"Claude","org-plugins"),i().join(b,"Claude","org-plugins")]}return[i().join(k().homedir(),".config","Claude-3p","org-plugins"),"/etc/Claude/org-plugins"]})())try{await g().mkdir(a,{recursive:!0});let b=i().join(a,".__9router_probe");return await g().writeFile(b,"ok"),await g().unlink(b),a}catch{}return null}async function r(a){let b=await q();if(!b)return{error:"no_writable_plugins_dir",written:[]};let c=new Set(a||[]),d=n.COWORK_PLUGINS.filter(a=>c.has(a.name));for(let a of n.COWORK_PLUGINS)try{await g().rm(i().join(b,a.name),{recursive:!0,force:!0})}catch{}let e=[];for(let a of d){let c=i().join(b,a.name),d=i().join(c,".claude-plugin");try{await g().mkdir(d,{recursive:!0});let b={name:a.name,version:"1.0.0",description:a.description||a.name,author:{name:"9router"}};await g().writeFile(i().join(d,"plugin.json"),JSON.stringify(b,null,2));let f={};for(let b of a.servers)f[1===a.servers.length?a.name:`${a.name}-${b.key}`]={type:/\/sse(\b|\/)/i.test(b.url)?"sse":"http",url:b.url};await g().writeFile(i().join(c,".mcp.json"),JSON.stringify({mcpServers:f},null,2)),e.push(a.name)}catch(a){return{error:a.code||a.message,written:e,root:b}}}return{written:e,root:b}}async function s(a){let b=i().join(v(),"config.json"),c={};try{c=JSON.parse(await g().readFile(b,"utf-8"))||{}}catch(a){if("ENOENT"!==a.code)return{error:a.code}}let d=new Set;for(let a of n.COWORK_PLUGINS)for(let b of a.servers)d.add(1===a.servers.length?a.name:`${a.name}-${b.key}`);let e=c.operonSkipMcpApprovals&&"object"==typeof c.operonSkipMcpApprovals?c.operonSkipMcpApprovals:{};for(let a of Object.keys(e))d.has(a)&&delete e[a];for(let b of a)b?.name&&(e[b.name]=!0);return c.operonSkipMcpApprovals=e,await g().mkdir(v(),{recursive:!0}),await g().writeFile(b,JSON.stringify(c,null,2)),{written:Object.keys(e).length}}let t=()=>{if("darwin"===k().platform()){let a=i().join(k().homedir(),"Library","Application Support");return[i().join(a,"Claude-3p"),i().join(a,"Claude")]}if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return[i().join(a,"Claude-3p"),i().join(b,"Claude-3p"),i().join(a,"Claude"),i().join(b,"Claude")]}return[i().join(k().homedir(),".config","Claude-3p"),i().join(k().homedir(),".config","Claude")]},u=async()=>{let a=t();for(let b of a)try{return await g().access(i().join(b,"configLibrary")),b}catch{}return a[0]},v=()=>t()[0],w=async()=>i().join(await u(),"configLibrary"),x=()=>i().join(v(),"configLibrary"),y=async()=>i().join(await w(),"_meta.json"),z=()=>{if("darwin"===k().platform())return i().join(k().homedir(),"Library","Application Support","Claude");if("win32"===k().platform()){process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local");let a=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return i().join(a,"Claude")}return i().join(k().homedir(),".config","Claude")},A=async()=>{let a=i().join(z(),"claude_desktop_config.json"),b={};try{let c=await g().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"!==a.code)throw a}return"3p"!==b.deploymentMode&&(b.deploymentMode="3p",await g().mkdir(z(),{recursive:!0}),await g().writeFile(a,JSON.stringify(b,null,2)),!0)},B=async()=>{for(let a of[...t(),...(()=>{if("darwin"===k().platform())return["/Applications/Claude.app",i().join(k().homedir(),"Applications","Claude.app")];if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.ProgramFiles||"C:\\Program Files";return[i().join(a,"AnthropicClaude"),i().join(b,"Claude"),i().join(b,"AnthropicClaude")]}return[]})()])try{return await g().access(a),!0}catch{}return!1},C=async a=>{try{let b=await g().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}},D=async()=>{let a=i().join(x(),"_meta.json"),b=await C(a);if(!b||!b.appliedId){let c=await C(await y());if(c?.appliedId)b=c;else{let a=m().randomUUID();b={appliedId:a,entries:[{id:a,name:"Default"}]}}await g().mkdir(x(),{recursive:!0}),await g().writeFile(a,JSON.stringify(b,null,2))}return b};async function E(){try{if(!await B())return e.NextResponse.json({installed:!1,config:null,message:"Claude Desktop (Cowork mode) not detected"});let a=await C(await y()),b=a?.appliedId||null,c=await w(),d=b?i().join(c,`${b}.json`):null,f=d?await C(d):null,g=f?.inferenceGatewayBaseUrl||null,h=Array.isArray(f?.inferenceModels)?f.inferenceModels.map(a=>"string"==typeof a?a:a?.name).filter(Boolean):[],j=Array.isArray(f?.managedMcpServers)?f.managedMcpServers:[],k=n.COWORK_PLUGINS.filter(a=>a.servers.some(a=>j.some(b=>b?.url===a.url))).map(a=>a.name),l=!!(f?.inferenceProvider===p&&g);return e.NextResponse.json({installed:!0,config:f,has9Router:l,configPath:d,cowork:{appliedId:b,baseUrl:g,models:h,provider:f?.inferenceProvider||null,selectedPlugins:k},availablePlugins:n.COWORK_PLUGINS.map(a=>({name:a.name,description:a.description}))})}catch(a){return console.log("Error reading cowork settings:",a),e.NextResponse.json({error:"Failed to read cowork settings"},{status:500})}}async function F(a){try{let{baseUrl:b,apiKey:c,models:d,plugins:f}=await a.json();if(!b||!c)return e.NextResponse.json({error:"baseUrl and apiKey are required"},{status:400});let h=Array.isArray(d)?d.filter(a=>"string"==typeof a&&a.trim()):[];if(0===h.length)return e.NextResponse.json({error:"At least one model is required"},{status:400});let j=Array.isArray(f)?f.filter(a=>"string"==typeof a):[],k=(0,n.buildManagedMcpServers)(j),l=await A(),m=await D(),o=i().join(x(),`${m.appliedId}.json`),q={inferenceProvider:p,inferenceGatewayBaseUrl:b,inferenceGatewayApiKey:c,inferenceModels:h.map(a=>({name:a})),isLocalDevMcpEnabled:!0,isDesktopExtensionEnabled:!0};k.length>0&&(q.managedMcpServers=k),await g().writeFile(o,JSON.stringify(q,null,2));let t=await r(j),u=null;try{u=await s(k)}catch(a){u={error:a.message}}return e.NextResponse.json({success:!0,bootstrapped:l,message:l?"Cowork enabled (3p mode set). Quit & reopen Claude Desktop.":"Cowork settings applied. Quit & reopen Claude Desktop.",configPath:o,plugins:t,skipApprovals:u})}catch(a){return console.log("Error applying cowork settings:",a),e.NextResponse.json({error:"Failed to apply cowork settings"},{status:500})}}async function G(){try{let a=await C(await y());if(!a?.appliedId)return e.NextResponse.json({success:!0,message:"No active config to reset"});let b=i().join(await w(),`${a.appliedId}.json`);try{await g().writeFile(b,JSON.stringify({},null,2))}catch(a){if("ENOENT"!==a.code)throw a}await r([]);try{await s([])}catch{}return e.NextResponse.json({success:!0,message:"Cowork config reset"})}catch(a){return console.log("Error resetting cowork settings:",a),e.NextResponse.json({error:"Failed to reset cowork settings"},{status:500})}}(0,o.D)([E,F,G]),(0,d.A)(E,"0090136f10c11bf167e9ef458090bcb624cf4c319e",null),(0,d.A)(F,"401231d4e6936c8dda0a3be7e87bb90ed8d121ffd0",null),(0,d.A)(G,"00834219c23ed3d8e09eb917554f4fa7710aca2c9d",null)},21820:a=>{"use strict";a.exports=require("os")},24424:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},28286:a=>{"use strict";let b=[{name:"tavily",description:"Tavily - Real-time web search API optimized for LLM agents. Search and extract content from the web.",servers:[{key:"tavily",url:"https://mcp.tavily.com/mcp",type:"http"}]},{name:"lseg",description:"Price bonds, analyze yield curves, evaluate FX carry trades, value options, and build macro dashboards using LSEG financial data and analytics.",servers:[{key:"lseg",url:"https://api.analytics.lseg.com/lfa/mcp",type:"http"}]},{name:"sp-global",description:"S&P Global - Financial data and analytics skills including company tearsheets, earnings previews, and transaction summaries",servers:[{key:"spglobal",url:"https://kfinance.kensho.com/integrations/mcp",type:"http"}]},{name:"adobe-for-creativity",description:"Brings together Adobe Creative Cloud tools for images, vectors, design, and video. Edit multiple assets at once, adapt for different platforms, and complete multi-step creative workflows for polished ",servers:[{key:"Adobe for creativity",url:"https://adobe-creativity.adobe.io/mcp",type:"http"}]},{name:"figma",description:"Figma design platform integration. Access design files, extract component information, read design tokens, and translate designs into code. Bridge the gap between design and development workflows.",servers:[{key:"figma",url:"https://mcp.figma.com/mcp",type:"http"}]},{name:"atlan",description:"Atlan data catalog plugin for Claude Code. Search, explore, govern, and manage your data assets through natural language. Powered by the Atlan MCP server with semantic search, lineage traversal, gloss",servers:[{key:"atlan",url:"https://mcp.atlan.com/mcp",type:"http"}]},{name:"cloudinary",description:"Use Cloudinary directly in Claude. Manage assets, apply transformations, optimize media, and more through natural conversation.",servers:[{key:"cloudinary-asset-mgmt",url:"https://asset-management.mcp.cloudinary.com/mcp",type:"http"},{key:"cloudinary-env-config",url:"https://environment-config.mcp.cloudinary.com/mcp",type:"http"},{key:"cloudinary-smd",url:"https://structured-metadata.mcp.cloudinary.com/mcp",type:"http"},{key:"cloudinary-analysis",url:"https://analysis.mcp.cloudinary.com/sse",type:"http"},{key:"cloudinary-mediaflows",url:"https://mediaflows.mcp.cloudinary.com/v2/mcp",type:"http"}]},{name:"prisma",description:"Prisma MCP integration for Postgres database management, schema migrations, SQL queries, and connection string management. Provision Prisma Postgres databases, run migrations, and interact with your d",servers:[{key:"Prisma-Remote",url:"https://mcp.prisma.io/mcp",type:"http"}]},{name:"cockroachdb",description:"CockroachDB plugin for Claude Code — explore schemas, write optimized SQL, debug queries, and manage distributed database clusters directly from your AI coding agent.",servers:[{key:"cockroachdb-toolbox-http",url:"http://127.0.0.1:5000/mcp",type:"http"},{key:"cockroachdb-cloud",url:"https://cockroachlabs.cloud/mcp",type:"http"}]},{name:"daloopa",description:"Financial analysis skills powered by Daloopa's institutional-grade data",servers:[{key:"daloopa",url:"https://mcp.daloopa.com/server/mcp",type:"http"},{key:"daloopa-docs",url:"https://docs.daloopa.com/mcp",type:"http"}]},{name:"intercom",description:"Intercom integration for Claude Code. Search conversations, analyze customer support patterns, look up contacts and companies, and install the Intercom Messenger. Connect your Intercom workspace to ge",servers:[{key:"intercom",url:"https://mcp.intercom.com/mcp",type:"http"}]},{name:"zoominfo",description:"Search companies and contacts, enrich leads, find lookalikes, and get AI-ranked contact recommendations. Pre-built skills chain multiple ZoomInfo tools into complete B2B sales workflows.",servers:[{key:"zoominfo",url:"https://mcp.zoominfo.com/mcp",type:"http"}]},{name:"sanity-plugin",description:"Sanity content platform integration with MCP server, agent skills, and slash commands. Query and author content, build and optimize GROQ queries, design schemas, and set up Visual Editing.",servers:[{key:"Sanity",url:"https://mcp.sanity.io",type:"http"}]},{name:"adspirer-ads-agent",description:"Cross-platform ad management for Google Ads, Meta Ads, TikTok Ads, and LinkedIn Ads. 91 tools for keyword research, campaign creation, performance analysis, and budget optimization.",servers:[{key:"adspirer",url:"https://mcp.adspirer.com/mcp",type:"http"}]},{name:"planetscale",description:"An authenticated hosted MCP server that accesses your PlanetScale organizations, databases, branches, schema, and Insights data. Query against your data, surface slow queries, and get organizational a",servers:[{key:"planetscale",url:"https://mcp.pscale.dev/mcp/planetscale",type:"http"}]},{name:"miro",description:"Secure access to Miro boards. Enables AI to read board context, create diagrams, and generate code with enterprise-grade security.",servers:[{key:"miro",url:"https://mcp.miro.com/",type:"http"}]},{name:"zoom-plugin",description:"Plan, build, and debug Zoom integrations across REST APIs, Meeting SDK, Video SDK, webhooks, bots, and MCP workflows. Search meetings, retrieve recordings, access transcripts, and design AI-powered Zo",servers:[{key:"zoom-mcp",url:"https://mcp-us.zoom.us/mcp/zoom/streamable",type:"http"},{key:"zoom-docs-mcp",url:"https://mcp.zoom.us/mcp/docs/streamable",type:"http"},{key:"zoom-whiteboard-mcp",url:"https://mcp-us.zoom.us/mcp/whiteboard/streamable",type:"http"}]},{name:"bigdata-com",description:"Official Bigdata.com plugin providing financial research, analytics, and intelligence tools powered by Bigdata MCP.",servers:[{key:"bigdata.com",url:"https://mcp.bigdata.com",type:"http"}]},{name:"operations",description:"Optimize business operations — vendor management, process documentation, change management, capacity planning, and compliance tracking. Keep your organization running efficiently.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"servicenow",url:"https://mcp.servicenow.com/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"}]},{name:"brand-voice",description:"Discover your brand voice from existing documents and conversations, generate enforceable guidelines, and validate AI-generated content against your established tone and positioning.",servers:[{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"box",url:"https://mcp.box.com",type:"http"},{key:"figma",url:"https://mcp.figma.com/mcp",type:"http"},{key:"gong",url:"https://mcp.gong.io/mcp",type:"http"},{key:"microsoft-365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"},{key:"granola",url:"https://mcp.granola.ai/mcp",type:"http"}]},{name:"human-resources",description:"Streamline people operations — recruiting, onboarding, performance reviews, compensation analysis, and policy guidance. Maintain compliance and keep your team running smoothly.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"}]},{name:"design",description:"Accelerate design workflows — critique, design system management, UX writing, accessibility audits, research synthesis, and dev handoff. From exploration to pixel-perfect specs.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"figma",url:"https://mcp.figma.com/mcp",type:"http"},{key:"linear",url:"https://mcp.linear.app/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"intercom",url:"https://mcp.intercom.com/mcp",type:"http"}]},{name:"engineering",description:"Streamline engineering workflows — standups, code review, architecture decisions, incident response, and technical documentation. Works with your existing tools or standalone.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"linear",url:"https://mcp.linear.app/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"github",url:"https://api.githubcopilot.com/mcp/",type:"http"},{key:"pagerduty",url:"https://mcp.pagerduty.com/mcp",type:"http"},{key:"datadog",url:"https://mcp.datadoghq.com/mcp",type:"http"}]},{name:"common-room",description:"Turn Common Room into your GTM copilot. Research accounts and contacts, prep for calls with attendee profiles and talking points, and draft personalized outreach across email, LinkedIn, and phone.",servers:[{key:"common-room",url:"https://mcp.commonroom.io/mcp",type:"http"}]},{name:"apollo",description:"Prospect, enrich leads, and load outreach sequences with Apollo.io — one-click MCP server integration for Claude Code and Cowork.",servers:[{key:"apollo",url:"https://mcp.apollo.io/mcp",type:"http"}]},{name:"slack-by-salesforce",description:"Slack integration for searching messages, sending communications, managing canvases, and more",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"}]},{name:"bio-research",description:"Connect to preclinical research tools and databases (literature search, genomics analysis, target prioritization) to accelerate early-stage life sciences R&D",servers:[{key:"pubmed",url:"https://pubmed.mcp.claude.com/mcp",type:"http"},{key:"biorender",url:"https://mcp.services.biorender.com/mcp",type:"http"},{key:"biorxiv",url:"https://mcp.deepsense.ai/biorxiv/mcp",type:"http"},{key:"c-trials",url:"https://mcp.deepsense.ai/clinical_trials/mcp",type:"http"},{key:"chembl",url:"https://mcp.deepsense.ai/chembl/mcp",type:"http"},{key:"synapse",url:"https://mcp.synapse.org/mcp",type:"http"},{key:"wiley",url:"https://connector.scholargateway.ai/mcp",type:"http"},{key:"owkin",url:"https://mcp.k.owkin.com/mcp",type:"http"},{key:"ot",url:"https://mcp.platform.opentargets.org/mcp",type:"http"}]},{name:"sales",description:"Prospect, craft outreach, and build deal strategy faster. Prep for calls, manage your pipeline, and write personalized messaging that moves deals forward.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"hubspot",url:"https://mcp.hubspot.com/anthropic",type:"http"},{key:"close",url:"https://mcp.close.com/mcp",type:"http"},{key:"clay",url:"https://api.clay.com/v3/mcp",type:"http"},{key:"zoominfo",url:"https://mcp.zoominfo.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"fireflies",url:"https://api.fireflies.ai/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"},{key:"apollo",url:"https://api.apollo.io/mcp",type:"http"},{key:"outreach",url:"https://mcp.outreach.io/mcp",type:"http"},{key:"similarweb",url:"https://mcp.similarweb.com/mcp",type:"http"}]},{name:"legal",description:"Speed up contract review, NDA triage, and compliance workflows for in-house legal teams. Draft legal briefs, organize precedent research, and manage institutional knowledge.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"box",url:"https://mcp.box.com",type:"http"},{key:"egnyte",url:"https://mcp-server.egnyte.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"},{key:"docusign",url:"https://mcp.docusign.com/mcp",type:"http"}]},{name:"product-management",description:"Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"linear",url:"https://mcp.linear.app/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"monday",url:"https://mcp.monday.com/mcp",type:"http"},{key:"clickup",url:"https://mcp.clickup.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"figma",url:"https://mcp.figma.com/mcp",type:"http"},{key:"amplitude",url:"https://mcp.amplitude.com/mcp",type:"http"},{key:"amplitude-eu",url:"https://mcp.eu.amplitude.com/mcp",type:"http"},{key:"pendo",url:"https://app.pendo.io/mcp/v0/shttp",type:"http"},{key:"intercom",url:"https://mcp.intercom.com/mcp",type:"http"},{key:"fireflies",url:"https://api.fireflies.ai/mcp",type:"http"},{key:"similarweb",url:"https://mcp.similarweb.com/mcp",type:"http"}]},{name:"productivity",description:"Manage tasks, plan your day, and build up memory of important context about your work. Syncs with your calendar, email, and chat to keep everything organized and on track.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"linear",url:"https://mcp.linear.app/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"},{key:"monday",url:"https://mcp.monday.com/mcp",type:"http"},{key:"clickup",url:"https://mcp.clickup.com/mcp",type:"http"}]},{name:"marketing",description:"Create content, plan campaigns, and analyze performance across marketing channels. Maintain brand voice consistency, track competitors, and report on what's working.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"canva",url:"https://mcp.canva.com/mcp",type:"http"},{key:"figma",url:"https://mcp.figma.com/mcp",type:"http"},{key:"hubspot",url:"https://mcp.hubspot.com/anthropic",type:"http"},{key:"amplitude",url:"https://mcp.amplitude.com/mcp",type:"http"},{key:"amplitude-eu",url:"https://mcp.eu.amplitude.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"ahrefs",url:"https://api.ahrefs.com/mcp/mcp",type:"http"},{key:"similarweb",url:"https://mcp.similarweb.com",type:"http"},{key:"klaviyo",url:"https://mcp.klaviyo.com/mcp",type:"http"},{key:"supermetrics",url:"https://mcp.supermetrics.com/mcp",type:"http"}]},{name:"finance",description:"Streamline finance and accounting workflows, from journal entries and reconciliation to financial statements and variance analysis. Speed up audit prep, month-end close, and keeping your books clean.",servers:[{key:"bigquery",url:"https://bigquery.googleapis.com/mcp",type:"http"},{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"}]},{name:"enterprise-search",description:"Search across all of your company's tools in one place. Find anything across email, chat, documents, and wikis without switching between apps.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"guru",url:"https://mcp.api.getguru.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"}]},{name:"data",description:"Write SQL, explore datasets, and generate insights faster. Build visualizations and dashboards, and turn raw data into clear stories for stakeholders.",servers:[{key:"bigquery",url:"https://bigquery.googleapis.com/mcp",type:"http"},{key:"hex",url:"https://app.hex.tech/mcp",type:"http"},{key:"amplitude",url:"https://mcp.amplitude.com/mcp",type:"http"},{key:"amplitude-eu",url:"https://mcp.eu.amplitude.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"definite",url:"https://api.definite.app/v3/mcp/http",type:"http"}]},{name:"customer-support",description:"Triage tickets, draft responses, escalate issues, and build your knowledge base. Research customer context and turn resolved issues into self-service content.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"intercom",url:"https://mcp.intercom.com/mcp",type:"http"},{key:"hubspot",url:"https://mcp.hubspot.com/anthropic",type:"http"},{key:"guru",url:"https://mcp.api.getguru.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"}]}];a.exports={COWORK_PLUGINS:b,buildManagedMcpServers:function(a){let c=new Set(a||[]),d=[];for(let a of b)if(c.has(a.name))for(let b of a.servers){let c=1===a.servers.length?a.name:`${a.name}-${b.key}`,e=/\/sse(\b|\/)/i.test(b.url)?"sse":"http";d.push({name:c,url:b.url,transport:e,oauth:!0})}return d}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34409:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"00834219c23ed3d8e09eb917554f4fa7710aca2c9d":()=>d.DELETE,"0090136f10c11bf167e9ef458090bcb624cf4c319e":()=>d.GET,"401231d4e6936c8dda0a3be7e87bb90ed8d121ffd0":()=>d.POST});var d=c(21350)},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79748:a=>{"use strict";a.exports=require("fs/promises")},79974:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527),u=c(21350);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/cowork-settings/route",pathname:"/api/cli-tools/cowork-settings",filename:"route",bundlePath:"app/api/cli-tools/cowork-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/bytedance/Documents/9router/src/app/api/cli-tools/cowork-settings/route.js",nextConfigOutput:"standalone",userland:u,...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/cowork-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813],()=>b(b.s=79974));module.exports=c})();
@@ -1,2 +1,2 @@
1
- (()=>{var a={};a.id=9321,a.ids=[9321],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2568:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"409be9954d127efa5be739496a27aabaa0f337a27d":()=>d.DELETE,"409f96b61f1d5212b5f4eb6ea1b5dab9311355dbf9":()=>d.GET,"40f12473ccb6a19c96811f484de83eb08cdcb981a1":()=>d.POST});var d=c(29657)},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},12880:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527),u=c(29657);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/droid-settings/route",pathname:"/api/cli-tools/droid-settings",filename:"route",bundlePath:"app/api/cli-tools/droid-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/bytedance/Documents/9router/src/app/api/cli-tools/droid-settings/route.js",nextConfigOutput:"standalone",userland:u,...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/droid-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},21820:a=>{"use strict";a.exports=require("os")},24424:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29657:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>y,GET:()=>w,POST:()=>x});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(68658),o=c(24424);let p=(0,g.promisify)(f.exec);async function q(a){let b=await (0,n.f1)(a);return b?{payload:b,response:null}:{payload:null,response:e.NextResponse.json({error:"Unauthorized"},{status:401})}}let r=()=>k().join(m().homedir(),".factory"),s=()=>k().join(r(),"settings.json"),t="custom:openrouterx",u=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await p(a?"where droid":"which droid",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(s()),!0}catch{return!1}}},v=async()=>{try{let a=s(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function w(a){try{let{response:b}=await q(a);if(b)return b;if(!await u())return e.NextResponse.json({installed:!1,settings:null,message:"Factory Droid CLI is not installed"});let c=await v();return e.NextResponse.json({installed:!0,settings:c,hasOpenRouterX:!!c&&!!c.customModels&&c.customModels.some(a=>a.id?.startsWith(t)),settingsPath:s()})}catch(a){return console.log("Error checking droid settings:",a),e.NextResponse.json({error:"Failed to check droid settings"},{status:500})}}async function x(a){try{let{payload:b,response:c}=await q(a);if(c)return c;if("super_admin"!==b.role)return e.NextResponse.json({error:"Forbidden"},{status:403});let{baseUrl:d,apiKey:f,model:g,models:h,activeModel:j}=await a.json(),k=Array.isArray(h)?h.slice():"string"==typeof g?[g]:[];if(!d||0===k.length)return e.NextResponse.json({error:"baseUrl and at least one model are required"},{status:400});let l=r(),m=s();await i().mkdir(l,{recursive:!0});let n={};try{let a=await i().readFile(m,"utf-8");n=JSON.parse(a)}catch{}n.customModels||(n.customModels=[]),n.customModels=n.customModels.filter(a=>!a.id?.startsWith(t));let o=d.endsWith("/v1")?d:`${d}/v1`,p=f||"your_api_key",u=0;if("string"==typeof j)if(""===j)u=-1;else{let a=k.indexOf(j);u=a>=0?a:0}for(let a=0;a<k.length;a++){let b=k[a];b&&"string"==typeof b&&n.customModels.push({model:b,id:`${t}-${a}`,index:a,baseUrl:o,apiKey:p,displayName:b,maxOutputTokens:131072,noImageSupport:!1,provider:"openai"})}if(u>=0&&n.customModels[u]){let[a]=n.customModels.splice(u,1);n.customModels.unshift({...a,index:0}),n.customModels.forEach((a,b)=>{a.index=b})}return await i().writeFile(m,JSON.stringify(n,null,2)),e.NextResponse.json({success:!0,message:"Factory Droid settings applied successfully!",settingsPath:m})}catch(a){return console.log("Error updating droid settings:",a),e.NextResponse.json({error:"Failed to update droid settings"},{status:500})}}async function y(a){try{let{payload:b,response:c}=await q(a);if(c)return c;if("super_admin"!==b.role)return e.NextResponse.json({error:"Forbidden"},{status:403});let d=s(),f={};try{let a=await i().readFile(d,"utf-8");f=JSON.parse(a)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}return f.customModels&&(f.customModels=f.customModels.filter(a=>!a.id?.startsWith(t)),0===f.customModels.length&&delete f.customModels),await i().writeFile(d,JSON.stringify(f,null,2)),e.NextResponse.json({success:!0,message:"OpenRouterX settings removed successfully"})}catch(a){return console.log("Error resetting droid settings:",a),e.NextResponse.json({error:"Failed to reset droid settings"},{status:500})}}(0,o.D)([w,x,y]),(0,d.A)(w,"409f96b61f1d5212b5f4eb6ea1b5dab9311355dbf9",null),(0,d.A)(x,"40f12473ccb6a19c96811f484de83eb08cdcb981a1",null),(0,d.A)(y,"409be9954d127efa5be739496a27aabaa0f337a27d",null)},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49120:(a,b,c)=>{"use strict";c.d(b,{n:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);function j(a){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),a):g().join(i().homedir(),`.${a}`)}let k=function(){if(process.env.DATA_DIR)return process.env.DATA_DIR;let a=j("openrouterx"),b=j("9router");return!e().existsSync(a)&&e().existsSync(b)?b:a}()},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},51455:a=>{"use strict";a.exports=require("node:fs/promises")},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68658:(a,b,c)=>{"use strict";c.d(b,{f1:()=>f}),c(23211);var d=c(69614);c(89718),c(54603);let e=new TextEncoder().encode(process.env.JWT_SECRET||"9router-default-secret-change-me");async function f(a){let b=a.cookies.get("auth_token")?.value;if(!b)return null;try{let{payload:a}=await (0,d.V)(b,e);return a}catch{return null}}},69614:(a,b,c)=>{"use strict";c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7502,1813,8838,6184,9718],()=>b(b.s=12880));module.exports=c})();
1
+ (()=>{var a={};a.id=9321,a.ids=[9321],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2568:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"409be9954d127efa5be739496a27aabaa0f337a27d":()=>d.DELETE,"409f96b61f1d5212b5f4eb6ea1b5dab9311355dbf9":()=>d.GET,"40f12473ccb6a19c96811f484de83eb08cdcb981a1":()=>d.POST});var d=c(29657)},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24424:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29657:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>y,GET:()=>w,POST:()=>x});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(68658),o=c(24424);let p=(0,g.promisify)(f.exec);async function q(a){let b=await (0,n.f1)(a);return b?{payload:b,response:null}:{payload:null,response:e.NextResponse.json({error:"Unauthorized"},{status:401})}}let r=()=>k().join(m().homedir(),".factory"),s=()=>k().join(r(),"settings.json"),t="custom:openrouterx",u=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await p(a?"where droid":"which droid",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(s()),!0}catch{return!1}}},v=async()=>{try{let a=s(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function w(a){try{let{response:b}=await q(a);if(b)return b;if(!await u())return e.NextResponse.json({installed:!1,settings:null,message:"Factory Droid CLI is not installed"});let c=await v();return e.NextResponse.json({installed:!0,settings:c,hasOpenRouterX:!!c&&!!c.customModels&&c.customModels.some(a=>a.id?.startsWith(t)),settingsPath:s()})}catch(a){return console.log("Error checking droid settings:",a),e.NextResponse.json({error:"Failed to check droid settings"},{status:500})}}async function x(a){try{let{payload:b,response:c}=await q(a);if(c)return c;if("super_admin"!==b.role)return e.NextResponse.json({error:"Forbidden"},{status:403});let{baseUrl:d,apiKey:f,model:g,models:h,activeModel:j}=await a.json(),k=Array.isArray(h)?h.slice():"string"==typeof g?[g]:[];if(!d||0===k.length)return e.NextResponse.json({error:"baseUrl and at least one model are required"},{status:400});let l=r(),m=s();await i().mkdir(l,{recursive:!0});let n={};try{let a=await i().readFile(m,"utf-8");n=JSON.parse(a)}catch{}n.customModels||(n.customModels=[]),n.customModels=n.customModels.filter(a=>!a.id?.startsWith(t));let o=d.endsWith("/v1")?d:`${d}/v1`,p=f||"your_api_key",u=0;if("string"==typeof j)if(""===j)u=-1;else{let a=k.indexOf(j);u=a>=0?a:0}for(let a=0;a<k.length;a++){let b=k[a];b&&"string"==typeof b&&n.customModels.push({model:b,id:`${t}-${a}`,index:a,baseUrl:o,apiKey:p,displayName:b,maxOutputTokens:131072,noImageSupport:!1,provider:"openai"})}if(u>=0&&n.customModels[u]){let[a]=n.customModels.splice(u,1);n.customModels.unshift({...a,index:0}),n.customModels.forEach((a,b)=>{a.index=b})}return await i().writeFile(m,JSON.stringify(n,null,2)),e.NextResponse.json({success:!0,message:"Factory Droid settings applied successfully!",settingsPath:m})}catch(a){return console.log("Error updating droid settings:",a),e.NextResponse.json({error:"Failed to update droid settings"},{status:500})}}async function y(a){try{let{payload:b,response:c}=await q(a);if(c)return c;if("super_admin"!==b.role)return e.NextResponse.json({error:"Forbidden"},{status:403});let d=s(),f={};try{let a=await i().readFile(d,"utf-8");f=JSON.parse(a)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}return f.customModels&&(f.customModels=f.customModels.filter(a=>!a.id?.startsWith(t)),0===f.customModels.length&&delete f.customModels),await i().writeFile(d,JSON.stringify(f,null,2)),e.NextResponse.json({success:!0,message:"OpenRouterX settings removed successfully"})}catch(a){return console.log("Error resetting droid settings:",a),e.NextResponse.json({error:"Failed to reset droid settings"},{status:500})}}(0,o.D)([w,x,y]),(0,d.A)(w,"409f96b61f1d5212b5f4eb6ea1b5dab9311355dbf9",null),(0,d.A)(x,"40f12473ccb6a19c96811f484de83eb08cdcb981a1",null),(0,d.A)(y,"409be9954d127efa5be739496a27aabaa0f337a27d",null)},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49120:(a,b,c)=>{"use strict";c.d(b,{n:()=>i}),c(29021);var d,e=c(33873),f=c.n(e),g=c(21820),h=c.n(g);let i=process.env.DATA_DIR?process.env.DATA_DIR:(d="openrouterx","win32"===process.platform?f().join(process.env.APPDATA||f().join(h().homedir(),"AppData","Roaming"),d):f().join(h().homedir(),`.${d}`))},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},50172:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527),u=c(29657);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/droid-settings/route",pathname:"/api/cli-tools/droid-settings",filename:"route",bundlePath:"app/api/cli-tools/droid-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/bytedance/Documents/9router/src/app/api/cli-tools/droid-settings/route.js",nextConfigOutput:"standalone",userland:u,...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/droid-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68658:(a,b,c)=>{"use strict";c.d(b,{f1:()=>f}),c(23211);var d=c(69614);c(89718),c(54603);let e=new TextEncoder().encode(process.env.JWT_SECRET||"9router-default-secret-change-me");async function f(a){let b=a.cookies.get("auth_token")?.value;if(!b)return null;try{let{payload:a}=await (0,d.V)(b,e);return a}catch{return null}}},69614:(a,b,c)=>{"use strict";c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7502,1813,8838,6184,9718],()=>b(b.s=50172));module.exports=c})();
@@ -7,4 +7,4 @@ ${b}`:c);if(await i().writeFile(s(),o),k){let a,b,c=(d=await x(),f="OPENAI_API_K
7
7
  ${b}
8
8
  `:`${d}${b}
9
9
  `);await i().writeFile(t(),c)}return e.NextResponse.json({success:!0,message:"Hermes settings applied successfully!",configPath:s()})}catch(a){return console.log("Error updating hermes settings:",a),e.NextResponse.json({error:"Failed to update hermes settings"},{status:500})}}async function A(a){try{let{payload:b,response:c}=await q(a);if(c)return c;if("super_admin"!==b.role)return e.NextResponse.json({error:"Forbidden"},{status:403});let d=s(),f="";try{f=await i().readFile(d,"utf-8")}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}let g=f.replace(u,"").replace(/^\n+/,"");return await i().writeFile(d,g),e.NextResponse.json({success:!0,message:"openrouterx model block removed"})}catch(a){return console.log("Error resetting hermes settings:",a),e.NextResponse.json({error:"Failed to reset hermes settings"},{status:500})}}(0,o.D)([y,z,A]),(0,d.A)(y,"4009323a5182b7e2e027d2b291983bc2b323f3b688",null),(0,d.A)(z,"40da4ae234dc025f3de5120b7655aa5a9bed81ffef",null),(0,d.A)(A,"40b4d4f4da766f2218a04e54cda40c8d9e7a6c5c61",null)},21820:a=>{"use strict";a.exports=require("os")},24424:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
10
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},37434:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"4009323a5182b7e2e027d2b291983bc2b323f3b688":()=>d.GET,"40b4d4f4da766f2218a04e54cda40c8d9e7a6c5c61":()=>d.DELETE,"40da4ae234dc025f3de5120b7655aa5a9bed81ffef":()=>d.POST});var d=c(21757)},37942:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527),u=c(21757);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/hermes-settings/route",pathname:"/api/cli-tools/hermes-settings",filename:"route",bundlePath:"app/api/cli-tools/hermes-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/bytedance/Documents/9router/src/app/api/cli-tools/hermes-settings/route.js",nextConfigOutput:"standalone",userland:u,...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/hermes-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49120:(a,b,c)=>{"use strict";c.d(b,{n:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);function j(a){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),a):g().join(i().homedir(),`.${a}`)}let k=function(){if(process.env.DATA_DIR)return process.env.DATA_DIR;let a=j("openrouterx"),b=j("9router");return!e().existsSync(a)&&e().existsSync(b)?b:a}()},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},51455:a=>{"use strict";a.exports=require("node:fs/promises")},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68658:(a,b,c)=>{"use strict";c.d(b,{f1:()=>f}),c(23211);var d=c(69614);c(89718),c(54603);let e=new TextEncoder().encode(process.env.JWT_SECRET||"9router-default-secret-change-me");async function f(a){let b=a.cookies.get("auth_token")?.value;if(!b)return null;try{let{payload:a}=await (0,d.V)(b,e);return a}catch{return null}}},69614:(a,b,c)=>{"use strict";c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7502,1813,8838,6184,9718],()=>b(b.s=37942));module.exports=c})();
10
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},37434:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"4009323a5182b7e2e027d2b291983bc2b323f3b688":()=>d.GET,"40b4d4f4da766f2218a04e54cda40c8d9e7a6c5c61":()=>d.DELETE,"40da4ae234dc025f3de5120b7655aa5a9bed81ffef":()=>d.POST});var d=c(21757)},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49120:(a,b,c)=>{"use strict";c.d(b,{n:()=>i}),c(29021);var d,e=c(33873),f=c.n(e),g=c(21820),h=c.n(g);let i=process.env.DATA_DIR?process.env.DATA_DIR:(d="openrouterx","win32"===process.platform?f().join(process.env.APPDATA||f().join(h().homedir(),"AppData","Roaming"),d):f().join(h().homedir(),`.${d}`))},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},51455:a=>{"use strict";a.exports=require("node:fs/promises")},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63918:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527),u=c(21757);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/hermes-settings/route",pathname:"/api/cli-tools/hermes-settings",filename:"route",bundlePath:"app/api/cli-tools/hermes-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/bytedance/Documents/9router/src/app/api/cli-tools/hermes-settings/route.js",nextConfigOutput:"standalone",userland:u,...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/hermes-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},68658:(a,b,c)=>{"use strict";c.d(b,{f1:()=>f}),c(23211);var d=c(69614);c(89718),c(54603);let e=new TextEncoder().encode(process.env.JWT_SECRET||"9router-default-secret-change-me");async function f(a){let b=a.cookies.get("auth_token")?.value;if(!b)return null;try{let{payload:a}=await (0,d.V)(b,e);return a}catch{return null}}},69614:(a,b,c)=>{"use strict";c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7502,1813,8838,6184,9718],()=>b(b.s=63918));module.exports=c})();