@jheavenknows/bluerouter 1.0.67 → 1.0.70

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 (509) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +12 -12
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ollama-nodes/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ollama-nodes/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/virtual-combos/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/virtual-combos/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  57. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  58. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  59. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  60. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  61. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  62. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  63. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  64. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  67. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  68. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  69. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  70. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  71. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  72. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  73. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  74. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  129. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/ollama-model-memory/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/install/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/reservations/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/status/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/ollama-nodes/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/ollama-routing-targets/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  154. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  159. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  176. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  203. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  225. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/version/restart/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/virtual-combos/[id]/route.js +1 -1
  235. package/app/.next-cli-build/server/app/api/virtual-combos/[id]/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/virtual-combos/preview/route.js +1 -1
  237. package/app/.next-cli-build/server/app/api/virtual-combos/preview/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/virtual-combos/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/virtual-combos/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  242. package/app/.next-cli-build/server/app/callback.html +1 -1
  243. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  244. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  245. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  246. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  247. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  248. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  249. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  250. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  251. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  252. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  253. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  254. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  255. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  256. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  257. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  258. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  259. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  260. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  261. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  262. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  263. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  264. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  265. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  266. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  267. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  268. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  269. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  270. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  271. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  272. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  273. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  274. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  275. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  276. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  277. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  278. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  279. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  280. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  281. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
  282. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  283. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  284. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  285. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  286. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  287. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  288. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  289. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  290. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  291. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  292. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  293. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  294. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  295. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  296. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  297. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  298. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  299. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  300. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  301. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  302. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  303. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  304. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  305. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  306. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  307. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  308. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  309. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  310. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  311. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.html +1 -1
  312. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.rsc +6 -6
  313. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk/dashboard/ollama-nodes/__PAGE__.segment.rsc +2 -2
  314. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk/dashboard/ollama-nodes.segment.rsc +1 -1
  315. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  316. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  317. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_full.segment.rsc +6 -6
  318. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_head.segment.rsc +1 -1
  319. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_index.segment.rsc +4 -4
  320. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_tree.segment.rsc +2 -2
  321. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  322. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  323. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  324. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  325. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  326. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  327. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  328. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  329. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  330. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  331. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  332. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +5 -5
  333. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  334. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  335. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  337. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +5 -5
  338. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  339. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +4 -4
  340. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
  341. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  342. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +5 -5
  343. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  344. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  345. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  346. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  347. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +5 -5
  348. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  349. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +4 -4
  350. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
  351. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  352. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  353. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  354. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  355. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  356. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  357. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  358. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  359. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  360. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  361. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  362. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  363. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  364. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  365. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  366. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  367. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  368. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  369. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  370. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  371. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  372. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  373. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  374. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  375. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  376. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  377. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  378. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  379. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  380. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  381. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  382. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  383. package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  384. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  385. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  386. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  387. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  388. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  389. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  390. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  391. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  392. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  393. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  394. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  395. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  396. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  397. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  398. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  399. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  400. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  401. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  402. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  403. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  404. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  405. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  406. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  407. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  408. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  409. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  410. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  411. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  412. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  413. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  414. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  415. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  416. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  417. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  418. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  419. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  420. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  421. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  422. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  423. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  424. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  425. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  426. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  427. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  428. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  429. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  430. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  431. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  432. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  433. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  434. package/app/.next-cli-build/server/app/dashboard/virtual-combos.html +1 -1
  435. package/app/.next-cli-build/server/app/dashboard/virtual-combos.rsc +5 -5
  436. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk/dashboard/virtual-combos/__PAGE__.segment.rsc +1 -1
  437. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk/dashboard/virtual-combos.segment.rsc +1 -1
  438. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  439. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  440. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_full.segment.rsc +5 -5
  441. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_head.segment.rsc +1 -1
  442. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_index.segment.rsc +4 -4
  443. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_tree.segment.rsc +2 -2
  444. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  445. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  446. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  447. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  448. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  449. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  450. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  451. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  452. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  453. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  454. package/app/.next-cli-build/server/app/index.html +1 -1
  455. package/app/.next-cli-build/server/app/index.rsc +4 -4
  456. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  457. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  458. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  459. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  460. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  461. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  462. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  463. package/app/.next-cli-build/server/app/landing.html +1 -1
  464. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  465. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  466. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  467. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  468. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  469. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  470. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  471. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  472. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  473. package/app/.next-cli-build/server/app/login.html +1 -1
  474. package/app/.next-cli-build/server/app/login.rsc +4 -4
  475. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  476. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  477. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  478. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  479. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  480. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  481. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  482. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  483. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  484. package/app/.next-cli-build/server/app-paths-manifest.json +12 -12
  485. package/app/.next-cli-build/server/chunks/1336.js +199 -0
  486. package/app/.next-cli-build/server/chunks/1807.js +2 -1
  487. package/app/.next-cli-build/server/chunks/3104.js +1 -1
  488. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  489. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  490. package/app/.next-cli-build/server/chunks/6604.js +3 -3
  491. package/app/.next-cli-build/server/chunks/7130.js +1 -1
  492. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  493. package/app/.next-cli-build/server/chunks/8895.js +1 -199
  494. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  495. package/app/.next-cli-build/server/pages/404.html +1 -1
  496. package/app/.next-cli-build/server/pages/500.html +1 -1
  497. package/app/.next-cli-build/static/chunks/{1321-be4987849d0d77ef.js → 1321-a9e80bc26e2f676d.js} +1 -1
  498. package/app/.next-cli-build/static/chunks/{5497-1047d219f0698864.js → 5497-89fc67cbff3f0984.js} +4 -4
  499. package/app/.next-cli-build/static/css/c827ff31f172d7aa.css +1 -0
  500. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-1.0.67-to-1.0.68-1.0.68-20260528-104113/data.sqlite +0 -0
  501. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-1.0.68-to-1.0.69-1.0.69-20260528-111921/data.sqlite +0 -0
  502. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-1.0.69-to-1.0.70-1.0.70-20260528-120034/data.sqlite +0 -0
  503. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  504. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  505. package/app/package.json +1 -1
  506. package/package.json +1 -1
  507. package/app/.next-cli-build/static/css/094fcadad9d4acb1.css +0 -1
  508. /package/app/.next-cli-build/static/{3Q8AwccjLy8JolXgCc7Xe → sFJi3zJCig6lUyxwl2fMG}/_buildManifest.js +0 -0
  509. /package/app/.next-cli-build/static/{3Q8AwccjLy8JolXgCc7Xe → sFJi3zJCig6lUyxwl2fMG}/_ssgManifest.js +0 -0
@@ -0,0 +1,199 @@
1
+ "use strict";exports.id=1336,exports.ids=[1336],exports.modules={71336:(a,b,c)=>{c.d(b,{q7:()=>G});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env||{},f="false"!==e.ENABLE_REQUEST_LOGS,g=null,h=null,i=null,j={expiresAt:0,config:null},k=new Set;async function l(){if(d&&f&&!g)try{g=await Promise.resolve().then(c.t.bind(c,29021,23)),h=await Promise.resolve().then(c.t.bind(c,33873,23)),i=e.REQUEST_LOG_DIR||(e.DATA_DIR?h.join(e.DATA_DIR,"logs","requests"):null)||h.join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}function m(a,b){k.has(a)||(k.add(a),console.log(b))}function n(a){return Array.isArray(a)?a[0]||"":a||""}function o(a={}){let b={};for(let[c,d]of Object.entries(a||{}))b[c.toLowerCase()]=d;return b}function p(a={}){let b=o(a);return{client_ip:String(n(b["x-9r-client-ip"])||n(b["x-forwarded-for"])||"").split(",")[0].trim().replace(/^::ffff:/,"").replace(/^::1$/,"127.0.0.1"),client_port:String(n(b["x-9r-client-port"])||""),client_user_agent:String(n(b["x-9r-client-user-agent"])||n(b["user-agent"])||""),client_host:String(n(b["x-9r-client-host"])||n(b.host)||"")}}function q(a={}){let b=o(a);return{source_tool:String(n(b["x-9r-source-tool"])||""),source_tool_label:String(n(b["x-9r-source-tool-label"])||""),source_host:String(n(b["x-9r-source-host"])||n(b.host)||"")}}function r(a={},b={}){return{...a,...Object.fromEntries(Object.entries(b||{}).filter(([,a])=>null!=a&&""!==String(a)))}}async function s(a){try{let b=await Promise.resolve().then(c.t.bind(c,87550,23)),d=new(b.default||b)(a);return d.pragma("journal_mode = WAL"),d.pragma("busy_timeout = 5000"),{kind:"better-sqlite3",db:d,get:(a,b=[])=>d.prepare(a).get(...b),exec(a){d.exec(a)},run:(a,b=[])=>d.prepare(a).run(...b),close(){d.close()}}}catch(d){let b=new(await Promise.resolve().then(c.t.bind(c,79868,23))).DatabaseSync(a);return b.exec("PRAGMA journal_mode = WAL"),b.exec("PRAGMA busy_timeout = 5000"),{kind:"node:sqlite",db:b,get:(a,c=[])=>b.prepare(a).get(...c),exec(a){b.exec(a)},run:(a,c=[])=>b.prepare(a).run(...c),close(){b.close()}}}}async function t(){if(await l(),!g||!h)return null;let a=Date.now();if(j.config&&j.expiresAt>a)return j.config;let b=null;try{let a=h?e.PROMPT_LOG_CONFIG_DB?e.PROMPT_LOG_CONFIG_DB:e.DATA_DIR?h.join(e.DATA_DIR,"db","data.sqlite"):null:null;if(a&&g.existsSync(a)){let c=await s(a);try{let a=c.get("SELECT data FROM settings WHERE id = 1");a?.data&&(b=JSON.parse(a.data).promptLogDb||null)}finally{c.close()}}}catch(a){m("config-read",`[PromptDB] Failed to read config: ${a.message}`)}return b||"true"!==e.PROMPT_LOG_DB_ENABLED||(b={enabled:!0,type:"sqlite",sqlitePath:e.PROMPT_LOG_DB||(e.DATA_DIR?h.join(e.DATA_DIR,"logs","promptLogs.sqlite"):""),logClientRequest:!0,logSourceRequest:!0,logTargetRequest:!0,logProviderResponse:"true"===e.PROMPT_LOG_DB_RESPONSE,logErrors:!0}),j={config:b,expiresAt:a+5e3},b}function u(a){return"postgres"===a?`
2
+ CREATE TABLE IF NOT EXISTS prompt_logs (
3
+ id TEXT PRIMARY KEY,
4
+ created_at TIMESTAMPTZ NOT NULL,
5
+ session_id TEXT,
6
+ source_format TEXT,
7
+ target_format TEXT,
8
+ model TEXT,
9
+ endpoint TEXT,
10
+ stage TEXT,
11
+ provider_url TEXT,
12
+ provider TEXT,
13
+ account_name TEXT,
14
+ connection_id TEXT,
15
+ display_model TEXT,
16
+ client_ip TEXT,
17
+ client_port TEXT,
18
+ client_user_agent TEXT,
19
+ client_host TEXT,
20
+ source_tool TEXT,
21
+ source_tool_label TEXT,
22
+ source_host TEXT,
23
+ prompt_text TEXT,
24
+ full_request_json JSONB,
25
+ response_text TEXT,
26
+ status_code INTEGER,
27
+ error_text TEXT,
28
+ meta_json JSONB
29
+ );
30
+
31
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_created_at
32
+ ON prompt_logs(created_at DESC);
33
+
34
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_model
35
+ ON prompt_logs(model);
36
+
37
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_stage
38
+ ON prompt_logs(stage);
39
+
40
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_session
41
+ ON prompt_logs(session_id);
42
+
43
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip
44
+ ON prompt_logs(client_ip);
45
+
46
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool
47
+ ON prompt_logs(source_tool);
48
+ `:"mysql"===a?`
49
+ CREATE TABLE IF NOT EXISTS prompt_logs (
50
+ id VARCHAR(80) PRIMARY KEY,
51
+ created_at DATETIME(3) NOT NULL,
52
+ session_id VARCHAR(255),
53
+ source_format VARCHAR(80),
54
+ target_format VARCHAR(80),
55
+ model VARCHAR(255),
56
+ endpoint TEXT,
57
+ stage VARCHAR(80),
58
+ provider_url TEXT,
59
+ provider VARCHAR(120),
60
+ account_name VARCHAR(255),
61
+ connection_id VARCHAR(120),
62
+ display_model VARCHAR(512),
63
+ client_ip VARCHAR(64),
64
+ client_port VARCHAR(32),
65
+ client_user_agent TEXT,
66
+ client_host TEXT,
67
+ source_tool VARCHAR(80),
68
+ source_tool_label VARCHAR(120),
69
+ source_host VARCHAR(255),
70
+ prompt_text LONGTEXT,
71
+ full_request_json JSON,
72
+ response_text LONGTEXT,
73
+ status_code INT,
74
+ error_text TEXT,
75
+ meta_json JSON,
76
+ INDEX idx_prompt_logs_created_at (created_at),
77
+ INDEX idx_prompt_logs_model (model),
78
+ INDEX idx_prompt_logs_stage (stage),
79
+ INDEX idx_prompt_logs_session (session_id),
80
+ INDEX idx_prompt_logs_client_ip (client_ip),
81
+ INDEX idx_prompt_logs_source_tool (source_tool)
82
+ );
83
+ `:`
84
+ CREATE TABLE IF NOT EXISTS prompt_logs (
85
+ id TEXT PRIMARY KEY,
86
+ created_at TEXT NOT NULL,
87
+ session_id TEXT,
88
+ source_format TEXT,
89
+ target_format TEXT,
90
+ model TEXT,
91
+ endpoint TEXT,
92
+ stage TEXT,
93
+ provider_url TEXT,
94
+ provider TEXT,
95
+ account_name TEXT,
96
+ connection_id TEXT,
97
+ display_model TEXT,
98
+ client_ip TEXT,
99
+ client_port TEXT,
100
+ client_user_agent TEXT,
101
+ client_host TEXT,
102
+ source_tool TEXT,
103
+ source_tool_label TEXT,
104
+ source_host TEXT,
105
+ prompt_text TEXT,
106
+ full_request_json TEXT,
107
+ response_text TEXT,
108
+ status_code INTEGER,
109
+ error_text TEXT,
110
+ meta_json TEXT
111
+ );
112
+
113
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_created_at
114
+ ON prompt_logs(created_at DESC);
115
+
116
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_model
117
+ ON prompt_logs(model);
118
+
119
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_stage
120
+ ON prompt_logs(stage);
121
+
122
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_session
123
+ ON prompt_logs(session_id);
124
+ `}async function v(a){a.get;let b=[];try{"better-sqlite3"===a.kind?b=a.db.prepare("PRAGMA table_info(prompt_logs)").all():"node:sqlite"===a.kind&&(b=a.db.prepare("PRAGMA table_info(prompt_logs)").all())}catch{b=[]}let c=new Set(b.map(a=>a.name)),d=(b,d)=>{c.has(b)||a.exec(`ALTER TABLE prompt_logs ADD COLUMN ${b} ${d};`)};d("client_ip","TEXT"),d("client_port","TEXT"),d("client_user_agent","TEXT"),d("client_host","TEXT"),d("source_tool","TEXT"),d("source_tool_label","TEXT"),d("source_host","TEXT"),d("provider","TEXT"),d("account_name","TEXT"),d("connection_id","TEXT"),d("display_model","TEXT"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip ON prompt_logs(client_ip);"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool ON prompt_logs(source_tool);")}async function w(a){await a.query(`
125
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_ip TEXT;
126
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_port TEXT;
127
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_user_agent TEXT;
128
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_host TEXT;
129
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_tool TEXT;
130
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_tool_label TEXT;
131
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_host TEXT;
132
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS provider TEXT;
133
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS account_name TEXT;
134
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS connection_id TEXT;
135
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS display_model TEXT;
136
+
137
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip
138
+ ON prompt_logs(client_ip);
139
+
140
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool
141
+ ON prompt_logs(source_tool);
142
+ `)}async function x(a,b,c,d){let[e]=await a.query(`
143
+ SELECT 1 AS found
144
+ FROM INFORMATION_SCHEMA.COLUMNS
145
+ WHERE TABLE_SCHEMA = ?
146
+ AND TABLE_NAME = ?
147
+ AND COLUMN_NAME = ?
148
+ LIMIT 1
149
+ `,[b,c,d]);return e.length>0}async function y(a,b,c,d){let[e]=await a.query(`
150
+ SELECT 1 AS found
151
+ FROM INFORMATION_SCHEMA.STATISTICS
152
+ WHERE TABLE_SCHEMA = ?
153
+ AND TABLE_NAME = ?
154
+ AND INDEX_NAME = ?
155
+ LIMIT 1
156
+ `,[b,c,d]);return e.length>0}async function z(a,b){let c=async(c,d)=>{await x(a,b.database,"prompt_logs",c)||await a.query(`ALTER TABLE prompt_logs ADD COLUMN ${c} ${d}`)};await c("client_ip","VARCHAR(64)"),await c("client_port","VARCHAR(32)"),await c("client_user_agent","TEXT"),await c("client_host","TEXT"),await c("source_tool","VARCHAR(80)"),await c("source_tool_label","VARCHAR(120)"),await c("source_host","VARCHAR(255)"),await c("provider","VARCHAR(120)"),await c("account_name","VARCHAR(255)"),await c("connection_id","VARCHAR(120)"),await c("display_model","VARCHAR(512)"),await y(a,b.database,"prompt_logs","idx_prompt_logs_client_ip")||await a.query("CREATE INDEX idx_prompt_logs_client_ip ON prompt_logs(client_ip)"),await y(a,b.database,"prompt_logs","idx_prompt_logs_source_tool")||await a.query("CREATE INDEX idx_prompt_logs_source_tool ON prompt_logs(source_tool)")}function A(a){return String(a||"").trim()}function B(a){let b=A(a);if(!b)return"";try{return new URL(b).hostname||""}catch{return b.replace(/^https?:\/\//,"").replace(/\/.*$/,"").replace(/:\d+$/,"")}}async function C(a){try{var b;if(await l(),!g||!h)return;let d=await t();if(b=a.stage,!d?.enabled||("client"===b?!1===d.logClientRequest:"source"===b||"openai"===b?!1===d.logSourceRequest:"target"===b?!1===d.logTargetRequest:"provider_response"===b?!0!==d.logProviderResponse:"error"===b&&!1===d.logErrors))return;let f=new Date().toISOString(),i=(a.promptText||(function a(b,c=0,d=[]){if(null==b||c>10||d.join("\n").length>2e5)return d;if("string"==typeof b)return b.trim()&&d.push(b),d;if(Array.isArray(b)){for(let e of b)a(e,c+1,d);return d}if("object"==typeof b)for(let[e,f]of Object.entries(b)){let b=e.toLowerCase();["content","text","prompt","input","message"].includes(b)?a(f,c+1,d):c<5&&("messages"===b||"contents"===b||"parts"===b||"body"===b)&&a(f,c+1,d)}return d})(a.request||a.response||{}).join("\n\n")).slice(0,5e5),j=p(a.headers||a.request?.headers||{}),k=q(a.headers||a.request?.headers||{}),m=r(j,a.clientInfo||{}),n=r(k,a.sourceInfo||{}),o=function(a={}){var b,c;let d,e,f,g=a.context||{},h=function(a){let b=A(a),c=b.indexOf("/");if(c<=0)return"";let d=b.slice(0,c);return/^[a-z][a-z0-9_-]{1,60}$/i.test(d)?d:""}(a.model),i=A(g.provider)||A(a.provider)||A(a.providerId)||A(a.provider_id)||h||"",j=(d=A(i),/^openai-compatible-chat-[0-9a-f-]{20,}$/i.test(d)||/^openai-compatible-[0-9a-f-]{20,}$/i.test(d))?"":i,k=A(g.accountName)||A(g.account_name)||A(g.connectionName)||A(a.accountName)||A(a.account_name)||A(a.keyName)||A(a.key_name)||"",l=A(g.connectionId)||A(a.connectionId)||A(a.connection_id)||"",m=(b=A(a.model),c=j||h,e=A(b),(f=A(c))&&e.startsWith(`${f}/`)?e.slice(f.length+1):e),n=B(a.providerUrl)||B(a.endpoint),o="";return j&&k&&k!==j?o=`${j}/${k}`:j?o=j:k?o=k:n&&(o=n),{provider:j||null,accountName:k||null,connectionId:l||null,displayModel:o&&m?`${o}/${m}`:null}}(a),x={id:`${Date.now()}_${Math.random().toString(16).slice(2)}`,created_at:f,session_id:a.sessionId||null,source_format:a.sourceFormat||null,target_format:a.targetFormat||null,model:a.model||null,endpoint:a.endpoint||null,stage:a.stage||null,provider_url:a.providerUrl||null,provider:o.provider||null,account_name:o.accountName||null,connection_id:o.connectionId||null,display_model:o.displayModel||null,client_ip:m.client_ip||null,client_port:m.client_port||null,client_user_agent:m.client_user_agent||null,client_host:m.client_host||null,source_tool:n.source_tool||null,source_tool_label:n.source_tool_label||null,source_host:n.source_host||null,prompt_text:i||null,full_request_json:a.request?JSON.stringify(a.request):null,response_text:"string"==typeof a.response?a.response:null,status_code:a.statusCode||null,error_text:a.errorText||null,meta_json:a.meta?JSON.stringify(a.meta):null};if("postgres"===d.type){let a=new(await Promise.resolve().then(c.bind(c,64939))).Client({host:d.host,port:Number(d.port||5432),database:d.database,user:d.username,password:d.password,ssl:!!d.ssl&&{rejectUnauthorized:!1}});try{await a.connect(),await a.query(u("postgres")),await w(a),await a.query(`INSERT INTO prompt_logs (
157
+ id, created_at, session_id, source_format, target_format, model,
158
+ endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
159
+ client_ip, client_port, client_user_agent, client_host,
160
+ source_tool, source_tool_label, source_host,
161
+ prompt_text, full_request_json,
162
+ response_text, status_code, error_text, meta_json
163
+ ) VALUES (
164
+ $1, $2, $3, $4, $5, $6,
165
+ $7, $8, $9, $10, $11, $12, $13,
166
+ $14, $15, $16, $17,
167
+ $18, $19, $20,
168
+ $21, $22::jsonb,
169
+ $23, $24, $25, $26::jsonb
170
+ )`,[x.id,x.created_at,x.session_id,x.source_format,x.target_format,x.model,x.endpoint,x.stage,x.provider_url,x.provider,x.account_name,x.connection_id,x.display_model,x.client_ip,x.client_port,x.client_user_agent,x.client_host,x.source_tool,x.source_tool_label,x.source_host,x.prompt_text,x.full_request_json,x.response_text,x.status_code,x.error_text,x.meta_json]),x.session_id&&x.display_model&&await a.query(`UPDATE prompt_logs
171
+ SET provider = COALESCE(provider, $1),
172
+ account_name = COALESCE(account_name, $2),
173
+ connection_id = COALESCE(connection_id, $3),
174
+ display_model = $4
175
+ WHERE session_id = $5`,[x.provider,x.account_name,x.connection_id,x.display_model,x.session_id])}finally{await a.end()}return}if("mysql"===d.type){let a=await c.e(8491).then(c.t.bind(c,38491,19)),b=await a.createConnection({host:d.host,port:Number(d.port||3306),database:d.database,user:d.username,password:d.password,ssl:d.ssl?{}:void 0,multipleStatements:!0});try{await b.query(u("mysql")),await z(b,d),await b.query(`INSERT INTO prompt_logs (
176
+ id, created_at, session_id, source_format, target_format, model,
177
+ endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
178
+ client_ip, client_port, client_user_agent, client_host,
179
+ source_tool, source_tool_label, source_host,
180
+ prompt_text, full_request_json,
181
+ response_text, status_code, error_text, meta_json
182
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CAST(? AS JSON), ?, ?, ?, CAST(? AS JSON))`,[x.id,x.created_at.replace("T"," ").replace("Z",""),x.session_id,x.source_format,x.target_format,x.model,x.endpoint,x.stage,x.provider_url,x.provider,x.account_name,x.connection_id,x.display_model,x.client_ip,x.client_port,x.client_user_agent,x.client_host,x.source_tool,x.source_tool_label,x.source_host,x.prompt_text,x.full_request_json,x.response_text,x.status_code,x.error_text,x.meta_json]),x.session_id&&x.display_model&&await b.query(`UPDATE prompt_logs
183
+ SET provider = COALESCE(provider, ?),
184
+ account_name = COALESCE(account_name, ?),
185
+ connection_id = COALESCE(connection_id, ?),
186
+ display_model = ?
187
+ WHERE session_id = ?`,[x.provider,x.account_name,x.connection_id,x.display_model,x.session_id])}finally{await b.end()}return}let y=d.sqlitePath||(e.DATA_DIR?h.join(e.DATA_DIR,"logs","promptLogs.sqlite"):null);if(!y)return;g.mkdirSync(h.dirname(y),{recursive:!0});let C=await s(y);try{C.exec(u("sqlite")),await v(C),C.run(`INSERT INTO prompt_logs (
188
+ id, created_at, session_id, source_format, target_format, model,
189
+ endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
190
+ client_ip, client_port, client_user_agent, client_host,
191
+ source_tool, source_tool_label, source_host,
192
+ prompt_text, full_request_json,
193
+ response_text, status_code, error_text, meta_json
194
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[x.id,x.created_at,x.session_id,x.source_format,x.target_format,x.model,x.endpoint,x.stage,x.provider_url,x.provider,x.account_name,x.connection_id,x.display_model,x.client_ip,x.client_port,x.client_user_agent,x.client_host,x.source_tool,x.source_tool_label,x.source_host,x.prompt_text,x.full_request_json,x.response_text,x.status_code,x.error_text,x.meta_json]),x.session_id&&x.display_model&&C.run(`UPDATE prompt_logs
195
+ SET provider = COALESCE(provider, ?),
196
+ account_name = COALESCE(account_name, ?),
197
+ connection_id = COALESCE(connection_id, ?),
198
+ display_model = ?
199
+ WHERE session_id = ?`,[x.provider,x.account_name,x.connection_id,x.display_model,x.session_id])}finally{C.close()}}catch(a){m("db-write",`[PromptDB] Failed to write prompt log: ${a.message}`)}}async function D(a,b,c){if(await l(),!g||!i)return null;try{g.existsSync(i)||g.mkdirSync(i,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),f=`${a}_${b}_${e}_${d}`,j=h.join(i,f);return g.mkdirSync(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function E(a,b,c){if(g&&a)try{let d=h.join(a,b);g.writeFileSync(d,JSON.stringify(c,null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}function F(a){if(!a)return{};let b={...a},c=["authorization","x-api-key","cookie","token","api-key","openai-api-key","anthropic-api-key","gemini-api-key","google-api-key"];for(let a of Object.keys(b)){let d=a.toLowerCase();if(c.some(a=>d.includes(a))){let c=String(b[a]||"");c.length>16?b[a]=`${c.slice(0,6)}...${c.slice(-4)}`:c.length>0&&(b[a]="***")}}return b}async function G(a,b,c,d={}){if(!f)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let e=await D(a,b,c),i=e?String(e).split(/[\\/]/).pop():null,j={},k={};return{get sessionPath(){return e},logClientRawRequest(f,g,h={}){let l={timestamp:new Date().toISOString(),endpoint:f,headers:F(h),body:g};j=r(j,p(h)),k=r(k,q(h)),E(e,"1_req_client.json",l),C({stage:"client",clientInfo:j,sourceInfo:k,sessionId:i,sourceFormat:a,targetFormat:b,model:c,context:d,endpoint:f,request:l})},logRawRequest(f,g={}){let h={timestamp:new Date().toISOString(),headers:F(g),body:f};j=r(j,p(g)),k=r(k,q(g)),E(e,"2_req_source.json",h),C({stage:"source",clientInfo:j,sourceInfo:k,sessionId:i,sourceFormat:a,targetFormat:b,model:c,context:d,request:h})},logOpenAIRequest(f){let g={timestamp:new Date().toISOString(),body:f};E(e,"3_req_openai.json",g),C({stage:"openai",clientInfo:j,sourceInfo:k,sessionId:i,sourceFormat:a,targetFormat:b,model:c,context:d,request:g})},logTargetRequest(f,g,h){let l={timestamp:new Date().toISOString(),url:f,headers:F(g),body:h};E(e,"4_req_target.json",l),C({stage:"target",clientInfo:j,sourceInfo:k,sessionId:i,sourceFormat:a,targetFormat:b,model:c,context:d,endpoint:f,providerUrl:f,request:l})},logProviderResponse(f,g,h,l){let m={timestamp:new Date().toISOString(),status:f,statusText:g,headers:h?"function"==typeof h.entries?Object.fromEntries(h.entries()):h:{},body:l};E(e,"5_res_provider.json",m),C({stage:"provider_response",clientInfo:j,sourceInfo:k,sessionId:i,sourceFormat:a,targetFormat:b,model:c,context:d,statusCode:f,response:l,meta:m})},appendProviderChunk(a){if(g&&e)try{let b=h.join(e,"5_res_provider.txt");g.appendFileSync(b,a)}catch{}},appendOpenAIChunk(a){if(g&&e)try{let b=h.join(e,"6_res_openai.txt");g.appendFileSync(b,a)}catch{}},logConvertedResponse(a){E(e,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(g&&e)try{let b=h.join(e,"7_res_client.txt");g.appendFileSync(b,a)}catch{}},logError(f,g=null){let h={timestamp:new Date().toISOString(),error:f?.message||String(f),stack:f?.stack,requestBody:g};E(e,"6_error.json",h),C({stage:"error",clientInfo:j,sourceInfo:k,sessionId:i,sourceFormat:a,targetFormat:b,model:c,context:d,errorText:h.error,request:g,meta:h})}}}}};
@@ -1 +1,2 @@
1
- "use strict";exports.id=1807,exports.ids=[1807],exports.modules={31807:(a,b,c)=>{c.d(b,{H8:()=>h,Lw:()=>n,M9:()=>o,YA:()=>w,au:()=>y,hy:()=>p});var d=c(6774),e=c(19253),f=c(69773),g=c(35448);let h="ollama-local";function i(a){return String(a??"").trim()}function j(a,b=!1){return null==a||""===a?b:!0===a||"true"===a||1===a||"1"===a||"on"===a}function k(a,b=0){let c=Number(a);return Number.isFinite(c)?c:b}function l(a){return i(a).replace(/^.*\//,"").toLowerCase()}function m(a,b=0){if("string"==typeof a)return{pattern:i(a),priority:Math.max(1,100-5*b),enabled:!0};if(!a||"object"!=typeof a)return null;let c=i(a.pattern||a.model||a.name||a.id);return c?{pattern:c,priority:k(a.priority,Math.max(1,100-5*b)),enabled:!1!==a.enabled,notes:i(a.notes||"")}:null}function n(a={}){var b,c;let d=a?.localOllama&&"object"==typeof a.localOllama?a.localOllama:a||{};return{modelPatterns:function(a=[]){return(Array.isArray(a)?a:String(a||"").split(/\n+/)).map((a,b)=>{if("string"!=typeof a)return m(a,b);let c=a.split("|").map(a=>a.trim()).filter(Boolean),d=c.shift();if(!d)return null;let e={pattern:d,priority:Math.max(1,100-5*b),enabled:!0};for(let a of c){let[b,...c]=a.split("="),d=i(b).toLowerCase(),f=i(c.join("="));("priority"===d||"prio"===d)&&(e.priority=k(f,e.priority)),"enabled"===d&&(e.enabled=j(f,!0)),("notes"===d||"note"===d)&&(e.notes=f)}return m(e,b)}).filter(Boolean)}(d.modelPatterns||d.models||d.patterns||[]),allowedNodeIds:Array.isArray(b=d.allowedNodeIds||d.allowedNodes||d.nodeIds)?[...new Set(b.map(a=>i(a)).filter(Boolean))]:[...new Set(String(b||"").split(/[\n,;]+/).map(a=>i(a)).filter(Boolean))],allowedPorts:Array.isArray(c=d.allowedPorts||d.ports||d.allowedInstancePorts)?[...new Set(c.map(Number).filter(a=>Number.isFinite(a)&&a>0))]:[...new Set(String(c||"").split(/[\n,;\s]+/).map(Number).filter(a=>Number.isFinite(a)&&a>0))],preferLoaded:j(d.preferLoaded,!0),allowWakeSleeping:j(d.allowWakeSleeping,!0),requireGpu:j(d.requireGpu,!1),allowCpuFallback:j(d.allowCpuFallback,!0),allowMultiGpuSplit:j(d.allowMultiGpuSplit,!1),maxWakeVramMb:Math.max(0,k(d.maxWakeVramMb,0)),maxWakeRamMb:Math.max(0,k(d.maxWakeRamMb,0)),fallbackCombo:i(d.fallbackCombo||""),selectionPolicy:i(d.selectionPolicy||"best-fit")||"best-fit"}}function o(a={}){return i(a.type||a.comboType).toLowerCase()===h}function p(a={}){let b=i(a.name||a.id||a.exposedModel||a.model),c=i(a.exposedModel||a.model||a.name||a.id);return{...a,id:i(a.id)||b,name:b,exposedModel:c,enabled:!1!==a.enabled,type:h,localOllama:n(a.localOllama||a),description:i(a.description||"")}}function q(a,b){return k(a?.requirement?.[b],0)}function r(a,b,c={}){return{...a,eligible:!1,reason:b,...c}}function s(a){return q(a,"effectiveMinRamFreeMb")||q(a,"minRamFreeMb")}function t(a){return q(a,"effectiveMinVramFreeMb")||q(a,"minVramFreeMb")}function u(a){let b=k(a?.latencyMs||a?.health?.latencyMs,0);return b>0?b/20:0}async function v(a,b={}){p(a);let c=await (0,d.U1)();if(!1!==b.refresh){let a=Math.max(1e3,k(b.maxAgeMs,5e3));c=(await (0,e.sV)(c,{maxAgeMs:a})).nodes}return(0,f.o)(c)}async function w(a,b={}){let c=p(a),d=c.localOllama;if(!d.modelPatterns.length)return{combo:c,selected:null,eligible:[],rejected:[],error:"No model patterns configured"};let e=await v(c,b),f=e.map(a=>(function(a,b){let c,d,e,f=function(a,b=[]){let c=b.map(b=>(function(a,b){let c,d=i(a).replace(/^.*\//,""),e=i(b?.pattern);if(!e||b?.enabled===!1)return null;let f=d===e,g=l(d)===l(e),h=e.includes("*")&&(c=i(e).split("*").map(a=>a.replace(/[|\\{}()[\]^$+?.]/g,"\\$&")).join(".*"),RegExp(`^${c}$`,"i")).test(d);return f||g||h?{pattern:e,priority:k(b.priority,0),matchType:f?"exact":g?"case-insensitive":"wildcard"}:null})(a,b)).filter(Boolean);return c.sort((a,b)=>b.priority-a.priority),c[0]||null}(a.model,b.modelPatterns);if(!f)return r(a,"model-not-in-combo");if(b.allowedNodeIds.length&&!b.allowedNodeIds.includes(String(a.nodeId)))return r(a,"node-not-allowed",{patternMatch:f});if(b.allowedPorts.length&&!b.allowedPorts.includes(Number(a.port)))return r(a,"port-not-allowed",{patternMatch:f});if(!1===a.okToRoute)return r(a,a.status||"target-not-routeable",{patternMatch:f});let g=Array.isArray(a.gpuIndices)&&a.gpuIndices.length>0,h=b.allowCpuFallback&&!b.requireGpu;if(b.requireGpu&&!g)return r(a,"gpu-required-no-gpu-scope",{patternMatch:f});if(!g&&!h)return r(a,"cpu-fallback-disabled",{patternMatch:f});if(!a.loaded&&!b.allowWakeSleeping)return r(a,"sleeping-wake-disabled",{patternMatch:f});if(!a.loaded){let c=t(a),d=s(a);if(b.maxWakeVramMb>0&&c>b.maxWakeVramMb)return r(a,"wake-vram-over-combo-limit",{patternMatch:f,wakeVramMb:c});if(b.maxWakeRamMb>0&&d>b.maxWakeRamMb)return r(a,"wake-ram-over-combo-limit",{patternMatch:f,wakeRamMb:d})}let j=(c=String(b.selectionPolicy||"best-fit").toLowerCase(),d=0,b.preferLoaded&&a.loaded&&(d+=1e3),a.loaded&&"loaded-first"===c&&(d+=500),d+=5*k(f?.priority,0),f?.matchType==="exact"?d+=300:f?.matchType==="case-insensitive"?d+=250:f?.matchType==="wildcard"&&(d+=180),d+=(e=String(a?.hardwareScope?.source||a?.effectiveGpuSource||"").toLowerCase()).includes("manual")?180:e.includes("configured")?150:e.includes("runtime")||e.includes("nvidia")?120:80*!!e.includes("ps"),d+=Math.min(200,k(a.vramFreeMb,0)/1024*10),d+=Math.min(120,k(a.ramAvailableMb,0)/4096*5),a.loaded||(d-=t(a)/1024*20,d-=s(a)/1024*8),d-=u(a),"lowest-latency"===c&&(d-=3*u(a)),"balanced"===c&&(d+=20*Math.random()),Math.round(100*d)/100);return{...a,eligible:!0,reason:a.loaded?"loaded-ok":"sleeping-ok",patternMatch:f,score:j}})(a,d)),g=f.filter(a=>a.eligible).sort((a,b)=>b.score-a.score),h=f.filter(a=>!a.eligible);return{combo:c,selected:g[0]||null,eligible:g,rejected:h,counts:{targets:e.length,eligible:g.length,rejected:h.length}}}async function x(a,b={}){if(!a||a.loaded)return null;let c=a.requirement||{},d=k(c.effectiveMinRamFreeMb,0),e=k(c.effectiveMinVramFreeMb,0);return d<=0&&e<=0?null:(0,g.lz)({nodeId:a.nodeId,instanceId:a.instanceId,port:a.port,model:a.model,ramMb:d,vramMb:e,gpuIndices:a.gpuIndices||[],ttlMs:k(b?.metadata?.ollamaReservationTtlMs,6e4),reason:"ollama-local-combo-wake"})}async function y({body:a,combo:b,request:c,log:d,handleFallback:e}={}){let f=await w(b,{maxAgeMs:5e3}),g=f.selected;if(!g){let b=f.combo?.localOllama?.fallbackCombo;return b&&"function"==typeof e?(d?.warn?.("OLLAMA_LOCAL_COMBO",`No local target for ${f.combo.name}; falling back to ${b}`),e({...a,model:b},b,f)):new Response(JSON.stringify({error:{message:`No eligible local Ollama target for ${f.combo?.name||a?.model||"local combo"}`,preview:{counts:f.counts,rejected:f.rejected.slice(0,20).map(a=>({nodeName:a.nodeName,port:a.port,model:a.model,reason:a.reason,status:a.status}))}}}),{status:503,headers:{"Content-Type":"application/json"}})}await x(g,a);let h=function(a,b={}){let c="/v1/chat/completions";try{c=new URL(a.url).pathname}catch{}return c.includes("/embeddings")?"/v1/embeddings":"/v1/chat/completions"}(c,a),i=`${g.endpoint}${h}`,j={...a,model:g.model};d?.info?.("OLLAMA_LOCAL_COMBO",`${f.combo.name} -> ${g.nodeName}:${g.port} ${g.model} (${g.reason}, score=${g.score})`);try{let a,b;return await fetch(i,{method:"POST",headers:((a=new Headers).set("Content-Type","application/json"),(b=c?.headers?.get?.("accept"))&&a.set("Accept",b),a),body:JSON.stringify(j),cache:"no-store"})}catch(c){let b=f.combo?.localOllama?.fallbackCombo;if(b&&"function"==typeof e)return d?.warn?.("OLLAMA_LOCAL_COMBO",`Local target failed; falling back to ${b}`,{error:c?.message}),e({...a,model:b},b,f);return new Response(JSON.stringify({error:{message:c?.message||"Ollama local combo request failed"}}),{status:502,headers:{"Content-Type":"application/json"}})}}},69773:(a,b,c)=>{function d(a,b=0){let c=Number(a);return Number.isFinite(c)?c:b}function e(a){return Array.isArray(a)?a:[]}function f(a,b){return`http://${a.host}:${b.port}`}function g(a=[]){let b=[];for(let c of a)if(c?.enabled){for(let a of c.lastEvaluation?.instances||[])if(function(a={},b={}){let c=function(a={}){let b=e(a.instances).filter(a=>a&&!1!==a.enabled).map(a=>Number(a.port)).filter(a=>Number.isFinite(a)&&a>0);if(b.length)return new Set(b);let c=e(a.ollamaPorts).map(a=>Number(a)).filter(a=>Number.isFinite(a)&&a>0);return c.length?new Set(c):null}(a);if(!c)return!0;let d=Number(b.port);return Number.isFinite(d)&&c.has(d)}(c,a)&&a.config?.enabled!==!1&&!1!==a.alive)for(let g of a.modelReadiness||[])b.push(function(a,b,c){let g=b.config||{},h=c.hardwareScope||b.hardwareScope||{},i=c.requirement||null;return{id:`${a.id}:${b.port}:${c.model}`,nodeId:a.id,nodeName:a.name,nodeHost:a.host,instanceId:g.id||b.id||`ollama-${b.port}`,instanceName:g.name||b.name||`Ollama :${b.port}`,port:Number(b.port),endpoint:f(a,b),baseUrl:b.baseUrl||f(a,b),model:c.model,okToRoute:!1!==c.okToRoute,loaded:!0===c.loaded,loadedName:c.loadedName||null,loadedMatch:c.loadedMatch||null,status:c.status,reason:c.reason,ruleSource:c.ruleSource,ruleKey:c.ruleKey,requirement:i,ramAvailableMb:d(c.ramAvailableMb,0),vramFreeMb:d(c.vramFreeMb,0),gpuMode:g.gpuMode||"auto",gpuIndices:e(h.gpuIndices).map(Number).filter(a=>Number.isInteger(a)&&a>=0),candidateGpuIndices:e(h.candidateGpuIndices).map(Number).filter(a=>Number.isInteger(a)&&a>=0),allowMultiGpuSplit:!0===g.allowMultiGpuSplit,hardwareScope:h,runtimeType:b.runtimeType||null,serviceName:b.serviceName||null,containerName:b.containerName||null,pid:b.pid||null,configuredGpuIndices:e(b.configuredGpuIndices),configuredGpuSource:b.configuredGpuSource||null,runtimeGpuIndices:e(b.runtimeGpuIndices),detectedGpuIndices:e(b.detectedGpuIndices),detectedGpuBindingSource:b.detectedGpuBindingSource||null,effectiveGpuIndices:e(b.effectiveGpuIndices),effectiveGpuSource:b.effectiveGpuSource||null,temperatureC:h.gpus?.length?Math.max(...h.gpus.map(a=>d(a.temperatureC,0))):null,updatedAt:a.lastStatusAt||null}}(c,a,g))}return b}c.d(b,{o:()=>g})}};
1
+ "use strict";exports.id=1807,exports.ids=[1807],exports.modules={31807:(a,b,c)=>{c.d(b,{H8:()=>r,Lw:()=>x,M9:()=>y,YA:()=>G,au:()=>I,hy:()=>z});var d=c(6774),e=c(19253),f=c(69773),g=c(35448),h=c(47370),i=c(71336);let j="ollama-local",k="ollama-local-combo";function l(a){let b={};try{a&&"function"==typeof a.forEach?a.forEach((a,c)=>{b[c]=a}):a&&"object"==typeof a&&Object.assign(b,a)}catch{}return b}function m(a,b=!1){if(b||!a||"object"!=typeof a)return a;let c=Array.isArray(a)?[...a]:{...a};return void 0!==c.reasoning&&delete c.reasoning,void 0!==c.thinking&&delete c.thinking,void 0!==c.reasoning_content&&delete c.reasoning_content,Array.isArray(c.choices)&&(c.choices=c.choices.map(a=>{if(!a||"object"!=typeof a)return a;let b={...a};return b.message&&"object"==typeof b.message&&(b.message={...b.message},delete b.message.reasoning,delete b.message.thinking,delete b.message.reasoning_content),b.delta&&"object"==typeof b.delta&&(b.delta={...b.delta},delete b.delta.reasoning,delete b.delta.thinking,delete b.delta.reasoning_content),b})),c}function n(a,b=!1){if(b||!String(a||"").startsWith("data:"))return a;let c=String(a).slice(5).trimStart();if(!c||"[DONE]"===c)return a;try{let a=JSON.parse(c),b=m(a,!1);return`data: ${JSON.stringify(b)}`}catch{return a}}function o(a){let b=a?.usage||{};return{prompt_tokens:Number(b.prompt_tokens||b.input_tokens||0),completion_tokens:Number(b.completion_tokens||b.output_tokens||0),total_tokens:Number(b.total_tokens||(b.prompt_tokens||b.input_tokens||0)+(b.completion_tokens||b.output_tokens||0)),reasoning_tokens:Number(b.completion_tokens_details?.reasoning_tokens||b.reasoning_tokens||0)}}async function p({requestedModel:a,comboName:b,target:c,body:d,upstreamBody:e,responseBody:f,status:g,latencyMs:i,request:k,routePath:m,error:n=null}){let q=`${c?.nodeId||"node"}:${c?.port||"port"}`,r=c?.model||a||b||"ollama-local",s=o(f),t=m||"/v1/chat/completions";await (0,h.E5)({model:r,provider:j,connectionId:q,status:n?`FAILED ${g||502}`:`OK ${g||200}`}).catch(()=>{}),n||await (0,h.sZ)({provider:j,model:r,connectionId:q,endpoint:t,status:"ok",tokens:s,meta:{requestedModel:a,combo:b,nodeId:c?.nodeId,nodeName:c?.nodeName,port:c?.port,localCombo:!0}}).catch(()=>{}),await (0,h.ox)(function({requestedModel:a,target:b,body:c,upstreamBody:d,responseBody:e,status:f,latencyMs:g,error:h=null,request:i,routePath:k}){let m=o(e);return{provider:j,model:b?.model||a,connectionId:`${b?.nodeId||"node"}:${b?.port||"port"}`,status:h?"error":"success",latency:{total:g,ttft:0},tokens:m,request:{endpoint:k||"",headers:l(i?.headers),body:c,routedModel:b?.model||null,requestedModel:a},providerRequest:d||null,providerResponse:e||null,response:h?{error:h,status:f}:{body:e,status:f}}}({requestedModel:a,target:c,body:d,upstreamBody:e,responseBody:f,status:g,latencyMs:i,error:n,request:k,routePath:m})).catch(()=>{})}async function q({body:a,requestedModel:b,target:c,request:d,routePath:e}){try{let f=await (0,i.q7)("openai","openai",c?.model||b,{provider:j,connectionName:c?.nodeName?`${c.nodeName}:${c.port}`:k,connectionId:c?.nodeId?`${c.nodeId}:${c.port}`:k,accountName:c?.nodeName||"Ollama Local Combo"});return f.logClientRawRequest(e||"/v1/chat/completions",a,l(d?.headers)),f.logRawRequest(a,l(d?.headers)),f}catch{return null}}let r="ollama-local";function s(a){return String(a??"").trim()}function t(a,b=!1){return null==a||""===a?b:!0===a||"true"===a||1===a||"1"===a||"on"===a}function u(a,b=0){let c=Number(a);return Number.isFinite(c)?c:b}function v(a){return s(a).replace(/^.*\//,"").toLowerCase()}function w(a,b=0){if("string"==typeof a)return{pattern:s(a),priority:Math.max(1,100-5*b),enabled:!0};if(!a||"object"!=typeof a)return null;let c=s(a.pattern||a.model||a.name||a.id);return c?{pattern:c,priority:u(a.priority,Math.max(1,100-5*b)),enabled:!1!==a.enabled,notes:s(a.notes||"")}:null}function x(a={}){var b,c;let d=a?.localOllama&&"object"==typeof a.localOllama?a.localOllama:a||{};return{modelPatterns:function(a=[]){return(Array.isArray(a)?a:String(a||"").split(/\n+/)).map((a,b)=>{if("string"!=typeof a)return w(a,b);let c=a.split("|").map(a=>a.trim()).filter(Boolean),d=c.shift();if(!d)return null;let e={pattern:d,priority:Math.max(1,100-5*b),enabled:!0};for(let a of c){let[b,...c]=a.split("="),d=s(b).toLowerCase(),f=s(c.join("="));("priority"===d||"prio"===d)&&(e.priority=u(f,e.priority)),"enabled"===d&&(e.enabled=t(f,!0)),("notes"===d||"note"===d)&&(e.notes=f)}return w(e,b)}).filter(Boolean)}(d.modelPatterns||d.models||d.patterns||[]),allowedNodeIds:Array.isArray(b=d.allowedNodeIds||d.allowedNodes||d.nodeIds)?[...new Set(b.map(a=>s(a)).filter(Boolean))]:[...new Set(String(b||"").split(/[\n,;]+/).map(a=>s(a)).filter(Boolean))],allowedPorts:Array.isArray(c=d.allowedPorts||d.ports||d.allowedInstancePorts)?[...new Set(c.map(Number).filter(a=>Number.isFinite(a)&&a>0))]:[...new Set(String(c||"").split(/[\n,;\s]+/).map(Number).filter(a=>Number.isFinite(a)&&a>0))],preferLoaded:t(d.preferLoaded,!0),allowWakeSleeping:t(d.allowWakeSleeping,!0),requireGpu:t(d.requireGpu,!1),allowCpuFallback:t(d.allowCpuFallback,!0),allowMultiGpuSplit:t(d.allowMultiGpuSplit,!1),maxWakeVramMb:Math.max(0,u(d.maxWakeVramMb,0)),maxWakeRamMb:Math.max(0,u(d.maxWakeRamMb,0)),fallbackCombo:s(d.fallbackCombo||""),selectionPolicy:s(d.selectionPolicy||"best-fit")||"best-fit"}}function y(a={}){return s(a.type||a.comboType).toLowerCase()===r}function z(a={}){let b=s(a.name||a.id||a.exposedModel||a.model),c=s(a.exposedModel||a.model||a.name||a.id);return{...a,id:s(a.id)||b,name:b,exposedModel:c,enabled:!1!==a.enabled,type:r,localOllama:x(a.localOllama||a),description:s(a.description||"")}}function A(a,b){return u(a?.requirement?.[b],0)}function B(a,b,c={}){return{...a,eligible:!1,reason:b,...c}}function C(a){return A(a,"effectiveMinRamFreeMb")||A(a,"minRamFreeMb")}function D(a){return A(a,"effectiveMinVramFreeMb")||A(a,"minVramFreeMb")}function E(a){let b=u(a?.latencyMs||a?.health?.latencyMs,0);return b>0?b/20:0}async function F(a,b={}){z(a);let c=await (0,d.U1)();if(!1!==b.refresh){let a=Math.max(1e3,u(b.maxAgeMs,5e3));c=(await (0,e.sV)(c,{maxAgeMs:a})).nodes}return(0,f.o)(c)}async function G(a,b={}){let c=z(a),d=c.localOllama;if(!d.modelPatterns.length)return{combo:c,selected:null,eligible:[],rejected:[],error:"No model patterns configured"};let e=await F(c,b),f=e.map(a=>(function(a,b){let c,d,e,f=function(a,b=[]){let c=b.map(b=>(function(a,b){let c,d=s(a).replace(/^.*\//,""),e=s(b?.pattern);if(!e||b?.enabled===!1)return null;let f=d===e,g=v(d)===v(e),h=e.includes("*")&&(c=s(e).split("*").map(a=>a.replace(/[|\\{}()[\]^$+?.]/g,"\\$&")).join(".*"),RegExp(`^${c}$`,"i")).test(d);return f||g||h?{pattern:e,priority:u(b.priority,0),matchType:f?"exact":g?"case-insensitive":"wildcard"}:null})(a,b)).filter(Boolean);return c.sort((a,b)=>b.priority-a.priority),c[0]||null}(a.model,b.modelPatterns);if(!f)return B(a,"model-not-in-combo");if(b.allowedNodeIds.length&&!b.allowedNodeIds.includes(String(a.nodeId)))return B(a,"node-not-allowed",{patternMatch:f});if(b.allowedPorts.length&&!b.allowedPorts.includes(Number(a.port)))return B(a,"port-not-allowed",{patternMatch:f});if(!1===a.okToRoute)return B(a,a.status||"target-not-routeable",{patternMatch:f});let g=Array.isArray(a.gpuIndices)&&a.gpuIndices.length>0,h=b.allowCpuFallback&&!b.requireGpu;if(b.requireGpu&&!g)return B(a,"gpu-required-no-gpu-scope",{patternMatch:f});if(!g&&!h)return B(a,"cpu-fallback-disabled",{patternMatch:f});if(!a.loaded&&!b.allowWakeSleeping)return B(a,"sleeping-wake-disabled",{patternMatch:f});if(!a.loaded){let c=D(a),d=C(a);if(b.maxWakeVramMb>0&&c>b.maxWakeVramMb)return B(a,"wake-vram-over-combo-limit",{patternMatch:f,wakeVramMb:c});if(b.maxWakeRamMb>0&&d>b.maxWakeRamMb)return B(a,"wake-ram-over-combo-limit",{patternMatch:f,wakeRamMb:d})}let i=(c=String(b.selectionPolicy||"best-fit").toLowerCase(),d=0,b.preferLoaded&&a.loaded&&(d+=1e3),a.loaded&&"loaded-first"===c&&(d+=500),d+=5*u(f?.priority,0),f?.matchType==="exact"?d+=300:f?.matchType==="case-insensitive"?d+=250:f?.matchType==="wildcard"&&(d+=180),d+=(e=String(a?.hardwareScope?.source||a?.effectiveGpuSource||"").toLowerCase()).includes("manual")?180:e.includes("configured")?150:e.includes("runtime")||e.includes("nvidia")?120:80*!!e.includes("ps"),d+=Math.min(200,u(a.vramFreeMb,0)/1024*10),d+=Math.min(120,u(a.ramAvailableMb,0)/4096*5),a.loaded||(d-=D(a)/1024*20,d-=C(a)/1024*8),d-=E(a),"lowest-latency"===c&&(d-=3*E(a)),"balanced"===c&&(d+=20*Math.random()),Math.round(100*d)/100);return{...a,eligible:!0,reason:a.loaded?"loaded-ok":"sleeping-ok",patternMatch:f,score:i}})(a,d)),g=f.filter(a=>a.eligible).sort((a,b)=>b.score-a.score),h=f.filter(a=>!a.eligible);return{combo:c,selected:g[0]||null,eligible:g,rejected:h,counts:{targets:e.length,eligible:g.length,rejected:h.length}}}async function H(a,b={}){if(!a||a.loaded)return null;let c=a.requirement||{},d=u(c.effectiveMinRamFreeMb,0),e=u(c.effectiveMinVramFreeMb,0);return d<=0&&e<=0?null:(0,g.lz)({nodeId:a.nodeId,instanceId:a.instanceId,port:a.port,model:a.model,ramMb:d,vramMb:e,gpuIndices:a.gpuIndices||[],ttlMs:u(b?.metadata?.ollamaReservationTtlMs,6e4),reason:"ollama-local-combo-wake"})}async function I({body:a,combo:b,request:c,log:d,handleFallback:e}={}){let f=s(a?.model||b?.exposedModel||b?.name),g=await G(b,{maxAgeMs:5e3}),i=g.selected;if(!i){let b=g.combo?.localOllama?.fallbackCombo;return b&&"function"==typeof e?(d?.warn?.("OLLAMA_LOCAL_COMBO",`No local target for ${g.combo.name}; falling back to ${b}`),e({...a,model:b},b,g)):new Response(JSON.stringify({error:{message:`No eligible local Ollama target for ${g.combo?.name||a?.model||"local combo"}`,preview:{counts:g.counts,rejected:g.rejected.slice(0,20).map(a=>({nodeName:a.nodeName,port:a.port,model:a.model,reason:a.reason,status:a.status}))}}}),{status:503,headers:{"Content-Type":"application/json"}})}await H(i,a);let k=function(a,b={}){let c="/v1/chat/completions";try{c=new URL(a.url).pathname}catch{}return c.includes("/embeddings")?"/v1/embeddings":"/v1/chat/completions"}(c,a),l=`${i.endpoint}${k}`,o={...a,model:i.model},r=a?.include_reasoning===!0||a?.metadata?.include_reasoning===!0,t=g.combo?.exposedModel||g.combo?.name||f,u=`${i.nodeId||"node"}:${i.port||"port"}`,v=Date.now(),w=null;d?.info?.("OLLAMA_LOCAL_COMBO",`${g.combo.name} -> ${i.nodeName}:${i.port} ${i.model} (${i.reason}, score=${i.score})`),(0,h.uw)(i.model,j,u,!0),await (0,h.E5)({model:i.model,provider:j,connectionId:u,status:"PENDING"}).catch(()=>{});try{let b,d;w=await q({body:a,requestedModel:f,target:i,request:c,routePath:k}),w?.logTargetRequest?.(l,{"Content-Type":"application/json"},o);let e=await fetch(l,{method:"POST",headers:((b=new Headers).set("Content-Type","application/json"),(d=c?.headers?.get?.("accept"))&&b.set("Accept",d),b),body:JSON.stringify(o),cache:"no-store",signal:c?.signal}),g=e.headers.get("content-type")||"";if(e.ok&&g.includes("text/event-stream")&&e.body)return function({upstreamResponse:a,includeReasoning:b=!1,onComplete:c,onError:d}){let e=new Headers(a.headers);e.set("Content-Type","text/event-stream; charset=utf-8"),e.set("Cache-Control","no-cache, no-transform"),e.set("Connection","keep-alive"),e.set("X-Accel-Buffering","no"),e.delete("content-length"),e.delete("content-encoding");let f=new TextEncoder,g=new TextDecoder,h="",i="";return new Response(new ReadableStream({async start(e){let j=a.body?.getReader?.();if(!j){let a=Error("Ollama local combo returned an empty stream");Promise.resolve(d?.(a,i)).catch(()=>{}),e.error(a);return}let k=a=>{a&&(i+=a,e.enqueue(f.encode(a)))},l=()=>{let a=h.split(/\r?\n/);for(let c of(h=a.pop()||"",a))k(`${n(c,b)}
2
+ `)};try{for(;;){let{value:a,done:b}=await j.read();if(b)break;h+=g.decode(a,{stream:!0}),l()}let a=g.decode();a&&(h+=a),h&&(k(n(h,b)),h=""),Promise.resolve(c?.(i)).catch(()=>{}),e.close()}catch(a){Promise.resolve(d?.(a,i)).catch(()=>{}),e.error(a)}},cancel(a){Promise.resolve(d?.(a||Error("Client cancelled Ollama local combo stream"),i)).catch(()=>{})}}),{status:a.status,statusText:a.statusText,headers:e})}({upstreamResponse:e,includeReasoning:r,onComplete:async b=>{let d=Date.now()-v;w?.logProviderResponse?.(e.status,e.statusText,e.headers,b),w?.logConvertedResponse?.(b),(0,h.uw)(i.model,j,u,!1),await p({requestedModel:f,comboName:t,target:i,body:a,upstreamBody:o,responseBody:b,status:e.status,latencyMs:d,request:c,routePath:k})},onError:async(b,d)=>{let e=Date.now()-v,g=b?.message||String(b||"Ollama local combo stream failed");w?.logError?.(b,o),(0,h.uw)(i.model,j,u,!1,!0),await p({requestedModel:f,comboName:t,target:i,body:a,upstreamBody:o,responseBody:d||null,status:502,latencyMs:e,request:c,routePath:k,error:g})}});let s=await e.text().catch(()=>""),x=null;try{x=s?JSON.parse(s):null}catch{}let{response:y,bodyForLog:z}=function({upstreamResponse:a,rawText:b,parsed:c,includeReasoning:d=!1}){let e=new Headers(a.headers);if(e.set("Content-Type",e.get("Content-Type")||"application/json; charset=utf-8"),e.delete("content-length"),e.delete("content-encoding"),(e.get("content-type")||"").includes("text/event-stream")){let c=function(a,b=!1){return b?a:String(a||"").split(/\r?\n/).map(a=>n(a,b)).join("\n")}(b,d);return e.set("Content-Type","text/event-stream; charset=utf-8"),{response:new Response(c,{status:a.status,statusText:a.statusText,headers:e}),bodyForLog:c}}if(c&&"object"==typeof c){let b=m(c,d);return e.set("Content-Type","application/json; charset=utf-8"),{response:new Response(JSON.stringify(b),{status:a.status,statusText:a.statusText,headers:e}),bodyForLog:b}}return{response:new Response(b,{status:a.status,statusText:a.statusText,headers:e}),bodyForLog:b}}({upstreamResponse:e,rawText:s,parsed:x,includeReasoning:r}),A=Date.now()-v;if(w?.logProviderResponse?.(e.status,e.statusText,e.headers,x||s),w?.logConvertedResponse?.(z),!e.ok){let b=x?.error?.message||x?.error||x?.message||s||e.statusText||"Ollama local combo target failed";return(0,h.uw)(i.model,j,u,!1,!0),await p({requestedModel:f,comboName:t,target:i,body:a,upstreamBody:o,responseBody:z,status:e.status,latencyMs:A,request:c,routePath:k,error:String(b)}),y}return(0,h.uw)(i.model,j,u,!1),await p({requestedModel:f,comboName:t,target:i,body:a,upstreamBody:o,responseBody:z,status:e.status,latencyMs:A,request:c,routePath:k}),y}catch(m){let b=Date.now()-v;(0,h.uw)(i.model,j,u,!1,!0),w?.logError?.(m,o),await p({requestedModel:f,comboName:t,target:i,body:a,upstreamBody:o,responseBody:null,status:502,latencyMs:b,request:c,routePath:k,error:m?.message||String(m)});let l=g.combo?.localOllama?.fallbackCombo;if(l&&"function"==typeof e)return d?.warn?.("OLLAMA_LOCAL_COMBO",`Local target failed; falling back to ${l}`,{error:m?.message}),e({...a,model:l},l,g);return new Response(JSON.stringify({error:{message:m?.message||"Ollama local combo request failed"}}),{status:502,headers:{"Content-Type":"application/json"}})}}},69773:(a,b,c)=>{function d(a,b=0){let c=Number(a);return Number.isFinite(c)?c:b}function e(a){return Array.isArray(a)?a:[]}function f(a,b){return`http://${a.host}:${b.port}`}function g(a=[]){let b=[];for(let c of a)if(c?.enabled){for(let a of c.lastEvaluation?.instances||[])if(function(a={},b={}){let c=function(a={}){let b=e(a.instances).filter(a=>a&&!1!==a.enabled).map(a=>Number(a.port)).filter(a=>Number.isFinite(a)&&a>0);if(b.length)return new Set(b);let c=e(a.ollamaPorts).map(a=>Number(a)).filter(a=>Number.isFinite(a)&&a>0);return c.length?new Set(c):null}(a);if(!c)return!0;let d=Number(b.port);return Number.isFinite(d)&&c.has(d)}(c,a)&&a.config?.enabled!==!1&&!1!==a.alive)for(let g of a.modelReadiness||[])b.push(function(a,b,c){let g=b.config||{},h=c.hardwareScope||b.hardwareScope||{},i=c.requirement||null;return{id:`${a.id}:${b.port}:${c.model}`,nodeId:a.id,nodeName:a.name,nodeHost:a.host,instanceId:g.id||b.id||`ollama-${b.port}`,instanceName:g.name||b.name||`Ollama :${b.port}`,port:Number(b.port),endpoint:f(a,b),baseUrl:b.baseUrl||f(a,b),model:c.model,okToRoute:!1!==c.okToRoute,loaded:!0===c.loaded,loadedName:c.loadedName||null,loadedMatch:c.loadedMatch||null,status:c.status,reason:c.reason,ruleSource:c.ruleSource,ruleKey:c.ruleKey,requirement:i,ramAvailableMb:d(c.ramAvailableMb,0),vramFreeMb:d(c.vramFreeMb,0),gpuMode:g.gpuMode||"auto",gpuIndices:e(h.gpuIndices).map(Number).filter(a=>Number.isInteger(a)&&a>=0),candidateGpuIndices:e(h.candidateGpuIndices).map(Number).filter(a=>Number.isInteger(a)&&a>=0),allowMultiGpuSplit:!0===g.allowMultiGpuSplit,hardwareScope:h,runtimeType:b.runtimeType||null,serviceName:b.serviceName||null,containerName:b.containerName||null,pid:b.pid||null,configuredGpuIndices:e(b.configuredGpuIndices),configuredGpuSource:b.configuredGpuSource||null,runtimeGpuIndices:e(b.runtimeGpuIndices),detectedGpuIndices:e(b.detectedGpuIndices),detectedGpuBindingSource:b.detectedGpuBindingSource||null,effectiveGpuIndices:e(b.effectiveGpuIndices),effectiveGpuSource:b.effectiveGpuSource||null,temperatureC:h.gpus?.length?Math.max(...h.gpus.map(a=>d(a.temperatureC,0))):null,updatedAt:a.lastStatusAt||null}}(c,a,g))}return b}c.d(b,{o:()=>g})}};
@@ -40,4 +40,4 @@
40
40
  <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#f5f5f5}.c{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.i{color:${a?"#22c55e":"#ef4444"};font-size:3rem}h1{margin:1rem 0}p{color:#666}</style>
41
41
  </head><body><div class="c"><div class="i">${a?"&#10003;":"&#10007;"}</div><h1>${c}</h1><p>${b}</p><p>Closing in <span id="cd">3</span>s...</p>
42
42
  <script>let n=3;const c=document.getElementById("cd");const t=setInterval(()=>{n--;c.textContent=n;if(n<=0){clearInterval(t);window.close();}},1000);</script>
43
- </div></body></html>`}function o(a){return new Promise(b=>{if(h)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),k=h?j.get(h):null;if(k){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(5433),c.e(4404),c.e(3110),c.e(318),c.e(8895),c.e(2549)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("codex",g,k.redirectUri,k.codeVerifier,h),j=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});k.status="done",k.connectionId=j.id,k.email=j.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(n(!0,"You can close this window."))}catch(a){k.status="error",k.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(n(!1,a.message))}finally{p()}return}let l=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:l}),d.end(),p()});d.listen(1455,"127.0.0.1",()=>{h=d,i=setTimeout(()=>p(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function p(){i&&(clearTimeout(i),i=null),h&&(h.close(),h=null)}let q=null,r=null,s=new Map;function t({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(s.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function u(a){return s.get(a)||null}function v(a){s.delete(a)}function w(a){return new Promise(b=>{if(q)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?s.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(5433),c.e(4404),c.e(3110),c.e(318),c.e(8895),c.e(2549)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(n(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(n(!1,a.message))}finally{x()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),x()});d.listen(56121,"127.0.0.1",()=>{q=d,r=setTimeout(()=>x(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function x(){r&&(clearTimeout(r),r=null),q&&(q.close(),q=null)}},73159:(a,b,c)=>{c.d(b,{Ue:()=>i,oT:()=>j});let d="https://auth.x.ai",e="/oauth2/authorize",f="/oauth2/token",g="/.well-known/openid-configuration",h="/callback",i=96,j={clientId:"b1a00492-073a-47ea-816f-4c329264a828",issuer:d,authEndpointPath:e,tokenEndpointPath:f,discoveryPath:g,authorizeUrl:`${d}${e}`,tokenUrl:`${d}${f}`,discoveryUrl:`${d}${g}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${h}`,loopbackPort:56121,callbackPath:h,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/bluerouter",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>g,Hp:()=>i,LT:()=>h,MZ:()=>r,Nl:()=>u,Nu:()=>n,OV:()=>f,Tx:()=>o,WN:()=>p,Ww:()=>v,YT:()=>l,ZL:()=>k,cD:()=>m,f7:()=>t,hF:()=>j,lB:()=>s,t:()=>q});var d=c(21820);function e(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let f={clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256"},g={clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"}},h={clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"]},i={clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256"},j={apiBaseUrl:"https://api2.qoder.sh",deviceTokenUrl:"https://api2.qoder.sh/api/v1/deviceToken/poll",deviceRefreshUrl:"https://api2.qoder.sh/api/v1/deviceToken/refresh",refreshUrl:"https://api2.qoder.sh/api/v3/user/refresh_token",userInfoUrl:"https://api2.qoder.sh/api/v1/userinfo",statusUrl:"https://api2.qoder.sh/api/v3/user/status",loginUrl:"https://qoder.com/login"},k={clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"}},l={clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:e(),pluginType:2})};function m(){return{ideType:9,platform:e(),pluginType:2}}let n={clientId:"Iv1.b507a08c87ecfe98",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},o={ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},p={apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetDefaultModelNudgeData",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"},dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},q={clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token"},r={apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},s={appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},t={defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"},u={baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3},v=3e5}};
43
+ </div></body></html>`}function o(a){return new Promise(b=>{if(h)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),k=h?j.get(h):null;if(k){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(5433),c.e(4404),c.e(3110),c.e(318),c.e(1336),c.e(8895),c.e(2549)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("codex",g,k.redirectUri,k.codeVerifier,h),j=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});k.status="done",k.connectionId=j.id,k.email=j.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(n(!0,"You can close this window."))}catch(a){k.status="error",k.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(n(!1,a.message))}finally{p()}return}let l=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:l}),d.end(),p()});d.listen(1455,"127.0.0.1",()=>{h=d,i=setTimeout(()=>p(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function p(){i&&(clearTimeout(i),i=null),h&&(h.close(),h=null)}let q=null,r=null,s=new Map;function t({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(s.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function u(a){return s.get(a)||null}function v(a){s.delete(a)}function w(a){return new Promise(b=>{if(q)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?s.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(5433),c.e(4404),c.e(3110),c.e(318),c.e(1336),c.e(8895),c.e(2549)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(n(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(n(!1,a.message))}finally{x()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),x()});d.listen(56121,"127.0.0.1",()=>{q=d,r=setTimeout(()=>x(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function x(){r&&(clearTimeout(r),r=null),q&&(q.close(),q=null)}},73159:(a,b,c)=>{c.d(b,{Ue:()=>i,oT:()=>j});let d="https://auth.x.ai",e="/oauth2/authorize",f="/oauth2/token",g="/.well-known/openid-configuration",h="/callback",i=96,j={clientId:"b1a00492-073a-47ea-816f-4c329264a828",issuer:d,authEndpointPath:e,tokenEndpointPath:f,discoveryPath:g,authorizeUrl:`${d}${e}`,tokenUrl:`${d}${f}`,discoveryUrl:`${d}${g}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${h}`,loopbackPort:56121,callbackPath:h,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/bluerouter",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>g,Hp:()=>i,LT:()=>h,MZ:()=>r,Nl:()=>u,Nu:()=>n,OV:()=>f,Tx:()=>o,WN:()=>p,Ww:()=>v,YT:()=>l,ZL:()=>k,cD:()=>m,f7:()=>t,hF:()=>j,lB:()=>s,t:()=>q});var d=c(21820);function e(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let f={clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256"},g={clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"}},h={clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"]},i={clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256"},j={apiBaseUrl:"https://api2.qoder.sh",deviceTokenUrl:"https://api2.qoder.sh/api/v1/deviceToken/poll",deviceRefreshUrl:"https://api2.qoder.sh/api/v1/deviceToken/refresh",refreshUrl:"https://api2.qoder.sh/api/v3/user/refresh_token",userInfoUrl:"https://api2.qoder.sh/api/v1/userinfo",statusUrl:"https://api2.qoder.sh/api/v3/user/status",loginUrl:"https://qoder.com/login"},k={clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"}},l={clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:e(),pluginType:2})};function m(){return{ideType:9,platform:e(),pluginType:2}}let n={clientId:"Iv1.b507a08c87ecfe98",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},o={ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},p={apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetDefaultModelNudgeData",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"},dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},q={clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token"},r={apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},s={appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},t={defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"},u={baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3},v=3e5}};