@jheavenknows/bluerouter 1.0.81 → 1.0.82

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 (982) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +2 -14
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +0 -48
  5. package/app/.next-cli-build/routes-manifest.json +0 -82
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js +2 -2
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js +2 -2
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  76. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  79. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  85. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  86. package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  87. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  89. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  90. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  91. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  92. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  93. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  94. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  95. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  96. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  97. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +3 -3
  114. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  128. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  134. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  140. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  146. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  148. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  152. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  154. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js +2 -2
  158. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js +2 -2
  160. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  166. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  168. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  170. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  172. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +5 -5
  174. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  176. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  190. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  202. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/provider-health/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  244. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  246. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  252. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  254. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  256. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  258. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  260. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  264. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  266. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  268. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  270. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  274. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  276. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  278. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  286. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js +1 -1
  300. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  302. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  304. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  306. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  308. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  310. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  312. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  314. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  316. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  318. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  320. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  322. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  324. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  328. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  330. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  332. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  334. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  338. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  340. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  341. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  342. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  344. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  348. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  352. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  354. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  355. package/app/.next-cli-build/server/app/api/version/restart/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/version/restart/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  358. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  360. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  361. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  362. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  363. package/app/.next-cli-build/server/app/callback/page.js +2 -2
  364. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  365. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  366. package/app/.next-cli-build/server/app/callback.html +1 -1
  367. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  368. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  369. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  370. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  371. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  372. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  373. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  374. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  375. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  376. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  377. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  378. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  379. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  380. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  381. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  382. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  383. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  384. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  385. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  386. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  387. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  388. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  389. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  390. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  391. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  393. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  394. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  395. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  396. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  397. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  398. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  399. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  400. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  401. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  402. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  403. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  404. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  405. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
  406. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  407. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  408. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  409. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  410. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  411. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  412. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  413. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  414. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  415. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  416. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  417. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  418. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  419. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  420. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  421. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  422. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  423. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  424. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  425. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  426. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  427. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  428. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  429. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  430. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  431. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  432. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  433. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  434. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  435. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  436. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  437. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  438. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  439. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  440. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  441. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  442. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  443. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  444. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  445. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  446. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +5 -5
  447. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  448. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  449. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  450. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  451. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +5 -5
  452. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  453. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +4 -4
  454. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
  455. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  456. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +5 -5
  457. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  458. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  459. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  460. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  461. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +5 -5
  462. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  463. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +4 -4
  464. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
  465. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  466. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  467. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  468. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  469. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  470. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  471. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  472. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  473. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  474. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  475. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  476. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  477. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  478. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  479. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  480. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  481. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  482. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  483. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  484. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  485. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  486. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  487. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  488. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  489. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  490. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  491. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  492. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  493. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  494. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  495. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  496. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  497. package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  498. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  499. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  500. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  501. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  502. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  503. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  504. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  505. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  506. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  507. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  508. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  509. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  510. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  511. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  512. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  513. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  514. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  515. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  516. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  517. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  518. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  519. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  520. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  521. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  522. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  523. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  524. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  525. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  526. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  527. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  528. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  529. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  530. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  531. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  532. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  533. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  534. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  535. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  536. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  537. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  538. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  539. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  540. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  541. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  542. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  543. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  544. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  545. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  546. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  547. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  548. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  549. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  550. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  551. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  552. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  553. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  554. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  555. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  556. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  557. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  558. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  559. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  560. package/app/.next-cli-build/server/app/index.html +1 -1
  561. package/app/.next-cli-build/server/app/index.rsc +4 -4
  562. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  563. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  564. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  565. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  566. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  567. package/app/.next-cli-build/server/app/landing/page.js +2 -2
  568. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  569. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  570. package/app/.next-cli-build/server/app/landing.html +1 -1
  571. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  572. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  573. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  574. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  575. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  576. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  577. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  578. package/app/.next-cli-build/server/app/login/page.js +2 -2
  579. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  580. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  581. package/app/.next-cli-build/server/app/login.html +1 -1
  582. package/app/.next-cli-build/server/app/login.rsc +4 -4
  583. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  584. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  585. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  586. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  587. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  588. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  589. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  590. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  591. package/app/.next-cli-build/server/app/page.js +2 -2
  592. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  593. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  594. package/app/.next-cli-build/server/app-paths-manifest.json +2 -14
  595. package/app/.next-cli-build/server/chunks/{5199.js → 1850.js} +1 -1
  596. package/app/.next-cli-build/server/chunks/3104.js +1 -1
  597. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  598. package/app/.next-cli-build/server/chunks/318.js +1 -1
  599. package/app/.next-cli-build/server/chunks/4177.js +1 -0
  600. package/app/.next-cli-build/server/chunks/4632.js +1 -1
  601. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  602. package/app/.next-cli-build/server/chunks/4884.js +1 -1
  603. package/app/.next-cli-build/server/chunks/6108.js +1 -1
  604. package/app/.next-cli-build/server/chunks/6604.js +1 -1
  605. package/app/.next-cli-build/server/chunks/7130.js +1 -1
  606. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  607. package/app/.next-cli-build/server/chunks/8491.js +2 -2
  608. package/app/.next-cli-build/server/chunks/8520.js +1 -1
  609. package/app/.next-cli-build/server/chunks/918.js +1 -1
  610. package/app/.next-cli-build/server/chunks/9489.js +2 -1
  611. package/app/.next-cli-build/server/functions-config-manifest.json +1 -9
  612. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  613. package/app/.next-cli-build/server/middleware.js +1 -1
  614. package/app/.next-cli-build/server/pages/404.html +1 -1
  615. package/app/.next-cli-build/server/pages/500.html +1 -1
  616. package/app/.next-cli-build/static/R24qfjQevGqknodafpTPA/_buildManifest.js +1 -0
  617. package/app/.next-cli-build/static/chunks/{1321-9521c58a649385d0.js → 1321-ec91d8042c9c4ec5.js} +1 -1
  618. package/app/.next-cli-build/static/chunks/{5497-89fc67cbff3f0984.js → 5497-31de2efdeddd7fc5.js} +1 -1
  619. package/app/.next-cli-build/static/chunks/app/_global-error/page-06c52ffae3497d9a.js +1 -0
  620. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/test/route-06c52ffae3497d9a.js +1 -0
  621. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/users/route-06c52ffae3497d9a.js +1 -0
  622. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-06c52ffae3497d9a.js +1 -0
  623. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-06c52ffae3497d9a.js +1 -0
  624. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-06c52ffae3497d9a.js +1 -0
  625. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-06c52ffae3497d9a.js +1 -0
  626. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-06c52ffae3497d9a.js +1 -0
  627. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-06c52ffae3497d9a.js +1 -0
  628. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-06c52ffae3497d9a.js +1 -0
  629. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-06c52ffae3497d9a.js +1 -0
  630. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-06c52ffae3497d9a.js +1 -0
  631. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-06c52ffae3497d9a.js +1 -0
  632. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-06c52ffae3497d9a.js +1 -0
  633. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-06c52ffae3497d9a.js +1 -0
  634. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-06c52ffae3497d9a.js +1 -0
  635. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-06c52ffae3497d9a.js +1 -0
  636. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-06c52ffae3497d9a.js +1 -0
  637. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-06c52ffae3497d9a.js +1 -0
  638. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-06c52ffae3497d9a.js +1 -0
  639. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-06c52ffae3497d9a.js +1 -0
  640. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-06c52ffae3497d9a.js +1 -0
  641. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-06c52ffae3497d9a.js +1 -0
  642. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-06c52ffae3497d9a.js +1 -0
  643. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-06c52ffae3497d9a.js +1 -0
  644. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-06c52ffae3497d9a.js +1 -0
  645. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-06c52ffae3497d9a.js +1 -0
  646. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-06c52ffae3497d9a.js +1 -0
  647. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-06c52ffae3497d9a.js +1 -0
  648. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-06c52ffae3497d9a.js +1 -0
  649. package/app/.next-cli-build/static/chunks/app/api/combos/route-06c52ffae3497d9a.js +1 -0
  650. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-06c52ffae3497d9a.js +1 -0
  651. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-06c52ffae3497d9a.js +1 -0
  652. package/app/.next-cli-build/static/chunks/app/api/health/route-06c52ffae3497d9a.js +1 -0
  653. package/app/.next-cli-build/static/chunks/app/api/init/route-06c52ffae3497d9a.js +1 -0
  654. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-06c52ffae3497d9a.js +1 -0
  655. package/app/.next-cli-build/static/chunks/app/api/keys/route-06c52ffae3497d9a.js +1 -0
  656. package/app/.next-cli-build/static/chunks/app/api/locale/route-06c52ffae3497d9a.js +1 -0
  657. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-06c52ffae3497d9a.js +1 -0
  658. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-06c52ffae3497d9a.js +1 -0
  659. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-06c52ffae3497d9a.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-06c52ffae3497d9a.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-06c52ffae3497d9a.js +1 -0
  662. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-06c52ffae3497d9a.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-06c52ffae3497d9a.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-06c52ffae3497d9a.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-06c52ffae3497d9a.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-06c52ffae3497d9a.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-06c52ffae3497d9a.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/api/models/route-06c52ffae3497d9a.js +1 -0
  669. package/app/.next-cli-build/static/chunks/app/api/models/test/route-06c52ffae3497d9a.js +1 -0
  670. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-06c52ffae3497d9a.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-06c52ffae3497d9a.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-06c52ffae3497d9a.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-06c52ffae3497d9a.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-06c52ffae3497d9a.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-06c52ffae3497d9a.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-06c52ffae3497d9a.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-06c52ffae3497d9a.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-06c52ffae3497d9a.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-06c52ffae3497d9a.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/pricing/route-06c52ffae3497d9a.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/provider-health/route-06c52ffae3497d9a.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-06c52ffae3497d9a.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-06c52ffae3497d9a.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-06c52ffae3497d9a.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-06c52ffae3497d9a.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-06c52ffae3497d9a.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-06c52ffae3497d9a.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-06c52ffae3497d9a.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-06c52ffae3497d9a.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-06c52ffae3497d9a.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/providers/route-06c52ffae3497d9a.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-06c52ffae3497d9a.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-06c52ffae3497d9a.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-06c52ffae3497d9a.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-06c52ffae3497d9a.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-06c52ffae3497d9a.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-06c52ffae3497d9a.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-06c52ffae3497d9a.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-06c52ffae3497d9a.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-06c52ffae3497d9a.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-06c52ffae3497d9a.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-06c52ffae3497d9a.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-06c52ffae3497d9a.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/settings/route-06c52ffae3497d9a.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-06c52ffae3497d9a.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/tags/route-06c52ffae3497d9a.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-06c52ffae3497d9a.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-06c52ffae3497d9a.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-06c52ffae3497d9a.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-06c52ffae3497d9a.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-06c52ffae3497d9a.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-06c52ffae3497d9a.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-06c52ffae3497d9a.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-06c52ffae3497d9a.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-06c52ffae3497d9a.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-06c52ffae3497d9a.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-06c52ffae3497d9a.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-06c52ffae3497d9a.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-06c52ffae3497d9a.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-06c52ffae3497d9a.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-06c52ffae3497d9a.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-06c52ffae3497d9a.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-06c52ffae3497d9a.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-06c52ffae3497d9a.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-06c52ffae3497d9a.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-06c52ffae3497d9a.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-06c52ffae3497d9a.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-06c52ffae3497d9a.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-06c52ffae3497d9a.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-06c52ffae3497d9a.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-06c52ffae3497d9a.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-06c52ffae3497d9a.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-06c52ffae3497d9a.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-06c52ffae3497d9a.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-06c52ffae3497d9a.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-06c52ffae3497d9a.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-06c52ffae3497d9a.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-06c52ffae3497d9a.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-06c52ffae3497d9a.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-06c52ffae3497d9a.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-06c52ffae3497d9a.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-06c52ffae3497d9a.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-06c52ffae3497d9a.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/v1/route-06c52ffae3497d9a.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-06c52ffae3497d9a.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-06c52ffae3497d9a.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-06c52ffae3497d9a.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-06c52ffae3497d9a.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/version/restart/route-06c52ffae3497d9a.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/version/route-06c52ffae3497d9a.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-06c52ffae3497d9a.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/version/update/route-06c52ffae3497d9a.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-06c52ffae3497d9a.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/page-06c52ffae3497d9a.js +1 -0
  755. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-06c52ffae3497d9a.js +1 -0
  756. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-06c52ffae3497d9a.js +1 -0
  757. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-06c52ffae3497d9a.js +1 -0
  758. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-06c52ffae3497d9a.js +1 -0
  759. package/app/.next-cli-build/static/css/9fe572f5db18fa52.css +1 -0
  760. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-1.0.81-to-1.0.82-1.0.82-20260609-074214/data.sqlite +0 -0
  761. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  762. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  763. package/app/package.json +1 -1
  764. package/package.json +1 -1
  765. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ollama-nodes/page.js +0 -2
  766. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ollama-nodes/page.js.nft.json +0 -1
  767. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ollama-nodes/page_client-reference-manifest.js +0 -1
  768. package/app/.next-cli-build/server/app/(dashboard)/dashboard/virtual-combos/page.js +0 -16
  769. package/app/.next-cli-build/server/app/(dashboard)/dashboard/virtual-combos/page.js.nft.json +0 -1
  770. package/app/.next-cli-build/server/app/(dashboard)/dashboard/virtual-combos/page_client-reference-manifest.js +0 -1
  771. package/app/.next-cli-build/server/app/api/ollama-model-memory/route.js +0 -1
  772. package/app/.next-cli-build/server/app/api/ollama-model-memory/route.js.nft.json +0 -1
  773. package/app/.next-cli-build/server/app/api/ollama-model-memory/route_client-reference-manifest.js +0 -1
  774. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/install/route.js +0 -816
  775. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/install/route.js.nft.json +0 -1
  776. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/install/route_client-reference-manifest.js +0 -1
  777. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/reservations/route.js +0 -1
  778. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/reservations/route.js.nft.json +0 -1
  779. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/reservations/route_client-reference-manifest.js +0 -1
  780. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/route.js +0 -1
  781. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/route.js.nft.json +0 -1
  782. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/route_client-reference-manifest.js +0 -1
  783. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/status/route.js +0 -1
  784. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/status/route.js.nft.json +0 -1
  785. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/status/route_client-reference-manifest.js +0 -1
  786. package/app/.next-cli-build/server/app/api/ollama-nodes/route.js +0 -1
  787. package/app/.next-cli-build/server/app/api/ollama-nodes/route.js.nft.json +0 -1
  788. package/app/.next-cli-build/server/app/api/ollama-nodes/route_client-reference-manifest.js +0 -1
  789. package/app/.next-cli-build/server/app/api/ollama-routing-targets/route.js +0 -1
  790. package/app/.next-cli-build/server/app/api/ollama-routing-targets/route.js.nft.json +0 -1
  791. package/app/.next-cli-build/server/app/api/ollama-routing-targets/route_client-reference-manifest.js +0 -1
  792. package/app/.next-cli-build/server/app/api/virtual-combos/[id]/route.js +0 -1
  793. package/app/.next-cli-build/server/app/api/virtual-combos/[id]/route.js.nft.json +0 -1
  794. package/app/.next-cli-build/server/app/api/virtual-combos/[id]/route_client-reference-manifest.js +0 -1
  795. package/app/.next-cli-build/server/app/api/virtual-combos/preview/route.js +0 -1
  796. package/app/.next-cli-build/server/app/api/virtual-combos/preview/route.js.nft.json +0 -1
  797. package/app/.next-cli-build/server/app/api/virtual-combos/preview/route_client-reference-manifest.js +0 -1
  798. package/app/.next-cli-build/server/app/api/virtual-combos/route.js +0 -1
  799. package/app/.next-cli-build/server/app/api/virtual-combos/route.js.nft.json +0 -1
  800. package/app/.next-cli-build/server/app/api/virtual-combos/route_client-reference-manifest.js +0 -1
  801. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.html +0 -1
  802. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.meta +0 -17
  803. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.rsc +0 -25
  804. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk/dashboard/ollama-nodes/__PAGE__.segment.rsc +0 -9
  805. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk/dashboard/ollama-nodes.segment.rsc +0 -5
  806. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  807. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  808. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_full.segment.rsc +0 -25
  809. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_head.segment.rsc +0 -6
  810. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_index.segment.rsc +0 -8
  811. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_tree.segment.rsc +0 -4
  812. package/app/.next-cli-build/server/app/dashboard/virtual-combos.html +0 -1
  813. package/app/.next-cli-build/server/app/dashboard/virtual-combos.meta +0 -17
  814. package/app/.next-cli-build/server/app/dashboard/virtual-combos.rsc +0 -25
  815. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk/dashboard/virtual-combos/__PAGE__.segment.rsc +0 -9
  816. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk/dashboard/virtual-combos.segment.rsc +0 -5
  817. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  818. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  819. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_full.segment.rsc +0 -25
  820. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_head.segment.rsc +0 -6
  821. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_index.segment.rsc +0 -8
  822. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_tree.segment.rsc +0 -4
  823. package/app/.next-cli-build/server/chunks/1807.js +0 -2
  824. package/app/.next-cli-build/server/chunks/2549.js +0 -1
  825. package/app/.next-cli-build/server/chunks/6774.js +0 -1
  826. package/app/.next-cli-build/server/chunks/8910.js +0 -1
  827. package/app/.next-cli-build/server/chunks/9253.js +0 -1
  828. package/app/.next-cli-build/static/Fu-s3enszk1Ac17I7xxhf/_buildManifest.js +0 -1
  829. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/ollama-nodes/page-c771cf90148ecc62.js +0 -1
  830. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/virtual-combos/page-79d93a5bfc4e1475.js +0 -15
  831. package/app/.next-cli-build/static/chunks/app/_global-error/page-092c69469068a0c3.js +0 -1
  832. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/test/route-092c69469068a0c3.js +0 -1
  833. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/users/route-092c69469068a0c3.js +0 -1
  834. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-092c69469068a0c3.js +0 -1
  835. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-092c69469068a0c3.js +0 -1
  836. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-092c69469068a0c3.js +0 -1
  837. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-092c69469068a0c3.js +0 -1
  838. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-092c69469068a0c3.js +0 -1
  839. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-092c69469068a0c3.js +0 -1
  840. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-092c69469068a0c3.js +0 -1
  841. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-092c69469068a0c3.js +0 -1
  842. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-092c69469068a0c3.js +0 -1
  843. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-092c69469068a0c3.js +0 -1
  844. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-092c69469068a0c3.js +0 -1
  845. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-092c69469068a0c3.js +0 -1
  846. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-092c69469068a0c3.js +0 -1
  847. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-092c69469068a0c3.js +0 -1
  848. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-092c69469068a0c3.js +0 -1
  849. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-092c69469068a0c3.js +0 -1
  850. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-092c69469068a0c3.js +0 -1
  851. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-092c69469068a0c3.js +0 -1
  852. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-092c69469068a0c3.js +0 -1
  853. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-092c69469068a0c3.js +0 -1
  854. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-092c69469068a0c3.js +0 -1
  855. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-092c69469068a0c3.js +0 -1
  856. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-092c69469068a0c3.js +0 -1
  857. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-092c69469068a0c3.js +0 -1
  858. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-092c69469068a0c3.js +0 -1
  859. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-092c69469068a0c3.js +0 -1
  860. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-092c69469068a0c3.js +0 -1
  861. package/app/.next-cli-build/static/chunks/app/api/combos/route-092c69469068a0c3.js +0 -1
  862. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-092c69469068a0c3.js +0 -1
  863. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-092c69469068a0c3.js +0 -1
  864. package/app/.next-cli-build/static/chunks/app/api/health/route-092c69469068a0c3.js +0 -1
  865. package/app/.next-cli-build/static/chunks/app/api/init/route-092c69469068a0c3.js +0 -1
  866. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-092c69469068a0c3.js +0 -1
  867. package/app/.next-cli-build/static/chunks/app/api/keys/route-092c69469068a0c3.js +0 -1
  868. package/app/.next-cli-build/static/chunks/app/api/locale/route-092c69469068a0c3.js +0 -1
  869. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-092c69469068a0c3.js +0 -1
  870. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-092c69469068a0c3.js +0 -1
  871. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-092c69469068a0c3.js +0 -1
  872. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-092c69469068a0c3.js +0 -1
  873. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-092c69469068a0c3.js +0 -1
  874. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-092c69469068a0c3.js +0 -1
  875. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-092c69469068a0c3.js +0 -1
  876. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-092c69469068a0c3.js +0 -1
  877. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-092c69469068a0c3.js +0 -1
  878. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-092c69469068a0c3.js +0 -1
  879. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-092c69469068a0c3.js +0 -1
  880. package/app/.next-cli-build/static/chunks/app/api/models/route-092c69469068a0c3.js +0 -1
  881. package/app/.next-cli-build/static/chunks/app/api/models/test/route-092c69469068a0c3.js +0 -1
  882. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-092c69469068a0c3.js +0 -1
  883. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-092c69469068a0c3.js +0 -1
  884. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-092c69469068a0c3.js +0 -1
  885. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-092c69469068a0c3.js +0 -1
  886. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-092c69469068a0c3.js +0 -1
  887. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-092c69469068a0c3.js +0 -1
  888. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-092c69469068a0c3.js +0 -1
  889. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-092c69469068a0c3.js +0 -1
  890. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-092c69469068a0c3.js +0 -1
  891. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-092c69469068a0c3.js +0 -1
  892. package/app/.next-cli-build/static/chunks/app/api/ollama-model-memory/route-092c69469068a0c3.js +0 -1
  893. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/install/route-092c69469068a0c3.js +0 -1
  894. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/reservations/route-092c69469068a0c3.js +0 -1
  895. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/route-092c69469068a0c3.js +0 -1
  896. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/status/route-092c69469068a0c3.js +0 -1
  897. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/route-092c69469068a0c3.js +0 -1
  898. package/app/.next-cli-build/static/chunks/app/api/ollama-routing-targets/route-092c69469068a0c3.js +0 -1
  899. package/app/.next-cli-build/static/chunks/app/api/pricing/route-092c69469068a0c3.js +0 -1
  900. package/app/.next-cli-build/static/chunks/app/api/provider-health/route-092c69469068a0c3.js +0 -1
  901. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-092c69469068a0c3.js +0 -1
  902. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-092c69469068a0c3.js +0 -1
  903. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-092c69469068a0c3.js +0 -1
  904. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-092c69469068a0c3.js +0 -1
  905. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-092c69469068a0c3.js +0 -1
  906. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-092c69469068a0c3.js +0 -1
  907. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-092c69469068a0c3.js +0 -1
  908. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-092c69469068a0c3.js +0 -1
  909. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-092c69469068a0c3.js +0 -1
  910. package/app/.next-cli-build/static/chunks/app/api/providers/route-092c69469068a0c3.js +0 -1
  911. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-092c69469068a0c3.js +0 -1
  912. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-092c69469068a0c3.js +0 -1
  913. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-092c69469068a0c3.js +0 -1
  914. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-092c69469068a0c3.js +0 -1
  915. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-092c69469068a0c3.js +0 -1
  916. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-092c69469068a0c3.js +0 -1
  917. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-092c69469068a0c3.js +0 -1
  918. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-092c69469068a0c3.js +0 -1
  919. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-092c69469068a0c3.js +0 -1
  920. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-092c69469068a0c3.js +0 -1
  921. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-092c69469068a0c3.js +0 -1
  922. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-092c69469068a0c3.js +0 -1
  923. package/app/.next-cli-build/static/chunks/app/api/settings/route-092c69469068a0c3.js +0 -1
  924. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-092c69469068a0c3.js +0 -1
  925. package/app/.next-cli-build/static/chunks/app/api/tags/route-092c69469068a0c3.js +0 -1
  926. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-092c69469068a0c3.js +0 -1
  927. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-092c69469068a0c3.js +0 -1
  928. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-092c69469068a0c3.js +0 -1
  929. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-092c69469068a0c3.js +0 -1
  930. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-092c69469068a0c3.js +0 -1
  931. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-092c69469068a0c3.js +0 -1
  932. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-092c69469068a0c3.js +0 -1
  933. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-092c69469068a0c3.js +0 -1
  934. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-092c69469068a0c3.js +0 -1
  935. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-092c69469068a0c3.js +0 -1
  936. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-092c69469068a0c3.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-092c69469068a0c3.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-092c69469068a0c3.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-092c69469068a0c3.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-092c69469068a0c3.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-092c69469068a0c3.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-092c69469068a0c3.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-092c69469068a0c3.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-092c69469068a0c3.js +0 -1
  945. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-092c69469068a0c3.js +0 -1
  946. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-092c69469068a0c3.js +0 -1
  947. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-092c69469068a0c3.js +0 -1
  948. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-092c69469068a0c3.js +0 -1
  949. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-092c69469068a0c3.js +0 -1
  950. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-092c69469068a0c3.js +0 -1
  951. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-092c69469068a0c3.js +0 -1
  952. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-092c69469068a0c3.js +0 -1
  953. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-092c69469068a0c3.js +0 -1
  954. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-092c69469068a0c3.js +0 -1
  955. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-092c69469068a0c3.js +0 -1
  956. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-092c69469068a0c3.js +0 -1
  957. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-092c69469068a0c3.js +0 -1
  958. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-092c69469068a0c3.js +0 -1
  959. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-092c69469068a0c3.js +0 -1
  960. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-092c69469068a0c3.js +0 -1
  961. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-092c69469068a0c3.js +0 -1
  962. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-092c69469068a0c3.js +0 -1
  963. package/app/.next-cli-build/static/chunks/app/api/v1/route-092c69469068a0c3.js +0 -1
  964. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-092c69469068a0c3.js +0 -1
  965. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-092c69469068a0c3.js +0 -1
  966. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-092c69469068a0c3.js +0 -1
  967. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-092c69469068a0c3.js +0 -1
  968. package/app/.next-cli-build/static/chunks/app/api/version/restart/route-092c69469068a0c3.js +0 -1
  969. package/app/.next-cli-build/static/chunks/app/api/version/route-092c69469068a0c3.js +0 -1
  970. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-092c69469068a0c3.js +0 -1
  971. package/app/.next-cli-build/static/chunks/app/api/version/update/route-092c69469068a0c3.js +0 -1
  972. package/app/.next-cli-build/static/chunks/app/api/virtual-combos/[id]/route-092c69469068a0c3.js +0 -1
  973. package/app/.next-cli-build/static/chunks/app/api/virtual-combos/preview/route-092c69469068a0c3.js +0 -1
  974. package/app/.next-cli-build/static/chunks/app/api/virtual-combos/route-092c69469068a0c3.js +0 -1
  975. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-092c69469068a0c3.js +0 -1
  976. package/app/.next-cli-build/static/chunks/app/page-092c69469068a0c3.js +0 -1
  977. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-092c69469068a0c3.js +0 -1
  978. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-092c69469068a0c3.js +0 -1
  979. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-092c69469068a0c3.js +0 -1
  980. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-092c69469068a0c3.js +0 -1
  981. package/app/.next-cli-build/static/css/e1d3ab81dc0fcb09.css +0 -1
  982. /package/app/.next-cli-build/static/{Fu-s3enszk1Ac17I7xxhf → R24qfjQevGqknodafpTPA}/_ssgManifest.js +0 -0
@@ -1,816 +0,0 @@
1
- (()=>{var a={};a.id=9902,a.ids=[9902],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86762:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>J,patchFetch:()=>I,routeModule:()=>E,serverHooks:()=>H,workAsyncStorage:()=>F,workUnitAsyncStorage:()=>G});var d={};c.r(d),c.d(d,{POST:()=>D,dynamic:()=>C,runtime:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(6774),x=c(79646);function y(a){return`'${String(a??"").replace(/'/g,"'\"'\"'")}'`}function z(a,b,{input:c="",timeoutMs:d=12e4}={}){return new Promise(e=>{let f=(0,x.spawn)(a,b,{stdio:["pipe","pipe","pipe"]}),g="",h="",i=!1,j=setTimeout(()=>{i||f.kill("SIGKILL")},d);f.stdout.on("data",a=>{g+=a.toString()}),f.stderr.on("data",a=>{h+=a.toString()}),f.on("close",a=>{i=!0,clearTimeout(j),e({ok:0===a,code:a,stdout:g,stderr:h})}),c&&f.stdin.write(c),f.stdin.end()})}async function A(a,b={}){let c=a.sshUser||"root",d=Number(a.sshPort||22),e=`${c}@${a.host}`,f=function(a,b={}){let c="/opt/bluerouter-ollama-agent",d=(a.ollamaPorts||[11434]).join(","),e=String.raw`#!/usr/bin/env python3
2
- import json
3
- import os
4
- import re
5
- import socket
6
- import subprocess
7
- import urllib.request
8
- from datetime import datetime, timezone
9
- from http.server import BaseHTTPRequestHandler, HTTPServer
10
-
11
- PORT = int(os.environ.get("AGENT_PORT", "19999"))
12
- OLLAMA_HOST = os.environ.get("OLLAMA_HOST", "127.0.0.1")
13
- OLLAMA_PORTS = [p.strip() for p in os.environ.get("OLLAMA_PORTS", "11434").split(",") if p.strip()]
14
- AGENT_TOKEN = os.environ.get("AGENT_TOKEN", "")
15
-
16
-
17
- def run_cmd(cmd, timeout=4):
18
- try:
19
- return subprocess.check_output(cmd, stderr=subprocess.STDOUT, timeout=timeout, text=True).strip()
20
- except Exception:
21
- return None
22
-
23
-
24
- def run_json(cmd, timeout=6):
25
- out = run_cmd(cmd, timeout=timeout)
26
- if not out:
27
- return None
28
- try:
29
- return json.loads(out)
30
- except Exception:
31
- return None
32
-
33
-
34
- def http_json(url, timeout=3):
35
- try:
36
- with urllib.request.urlopen(url, timeout=timeout) as r:
37
- return json.loads(r.read().decode("utf-8"))
38
- except Exception:
39
- return None
40
-
41
-
42
- def read_file(path):
43
- try:
44
- with open(path, "rb") as f:
45
- return f.read()
46
- except Exception:
47
- return b""
48
-
49
-
50
- def read_text(path):
51
- try:
52
- with open(path, "r", encoding="utf-8", errors="ignore") as f:
53
- return f.read()
54
- except Exception:
55
- return ""
56
-
57
-
58
- def read_cmdline(pid):
59
- raw = read_file(f"/proc/{pid}/cmdline")
60
- if not raw:
61
- return ""
62
- return raw.replace(b"\x00", b" ").decode("utf-8", errors="ignore").strip()
63
-
64
-
65
- def read_environ(pid):
66
- raw = read_file(f"/proc/{pid}/environ")
67
- env = {}
68
- if not raw:
69
- return env
70
- for item in raw.split(b"\x00"):
71
- if not item or b"=" not in item:
72
- continue
73
- k, v = item.split(b"=", 1)
74
- env[k.decode("utf-8", errors="ignore")] = v.decode("utf-8", errors="ignore")
75
- return env
76
-
77
-
78
- def parse_systemd_environment(text):
79
- # systemctl show -p Environment usually returns: Environment=A=1 B=two C=/x/y
80
- env = {}
81
- if not text:
82
- return env
83
- if text.startswith("Environment="):
84
- text = text[len("Environment="):]
85
- for part in re.findall(r'(?:[^\s"\']+|"[^"]*"|\'[^\']*\')+', text):
86
- item = part.strip().strip('"').strip("'")
87
- if "=" not in item:
88
- continue
89
- k, v = item.split("=", 1)
90
- if k:
91
- env[k] = v
92
- return env
93
-
94
-
95
- def get_service_from_cgroup(pid):
96
- text = read_text(f"/proc/{pid}/cgroup")
97
- m = re.search(r'/system\.slice/([^/]+\.service)', text)
98
- if m:
99
- return m.group(1)
100
- # user services may appear under user.slice/user-1000.slice/.../app.slice/name.service
101
- m = re.search(r'/([^/]+\.service)(?:$|/)', text)
102
- if m:
103
- return m.group(1)
104
- return None
105
-
106
-
107
- def get_systemd_env(service):
108
- if not service:
109
- return {}
110
- out = run_cmd(["systemctl", "show", service, "-p", "Environment"], timeout=3)
111
- return parse_systemd_environment(out or "")
112
-
113
-
114
- def get_gpu_status():
115
- out = run_cmd([
116
- "nvidia-smi",
117
- "--query-gpu=index,uuid,name,memory.total,memory.used,memory.free,utilization.gpu,temperature.gpu",
118
- "--format=csv,noheader,nounits"
119
- ])
120
- if not out:
121
- return []
122
- gpus = []
123
- for line in out.splitlines():
124
- parts = [x.strip() for x in line.split(",")]
125
- if len(parts) < 8:
126
- continue
127
- try:
128
- idx, uuid, name, total, used, free, util, temp = parts[:8]
129
- total = int(float(total)); used = int(float(used)); free = int(float(free))
130
- gpus.append({
131
- "index": int(float(idx)),
132
- "uuid": uuid,
133
- "name": name,
134
- "vramTotalMb": total,
135
- "vramUsedMb": used,
136
- "vramFreeMb": free,
137
- "vramUsedPercent": round((used / total) * 100, 2) if total else None,
138
- "gpuUsagePercent": int(float(util)),
139
- "temperatureC": int(float(temp))
140
- })
141
- except Exception:
142
- pass
143
- return gpus
144
-
145
-
146
- def get_ram_status():
147
- out = run_cmd(["free", "-m"])
148
- if not out:
149
- return None
150
- for line in out.splitlines():
151
- if line.lower().startswith("mem:"):
152
- p = line.split()
153
- total = int(p[1]); used = int(p[2]); free = int(p[3])
154
- avail = int(p[6]) if len(p) > 6 else free
155
- return {
156
- "totalMb": total,
157
- "usedMb": used,
158
- "freeMb": free,
159
- "availableMb": avail,
160
- "usedPercent": round((used / total) * 100, 2) if total else None
161
- }
162
- return None
163
-
164
-
165
- def get_cpu_status():
166
- load = os.getloadavg()
167
- cores = os.cpu_count() or 1
168
- return {
169
- "cores": cores,
170
- "load1": load[0],
171
- "load5": load[1],
172
- "load15": load[2],
173
- "load1PercentOfCores": round((load[0] / cores) * 100, 2)
174
- }
175
-
176
-
177
- def get_gpu_processes(gpus):
178
- uuid_to_index = {g.get("uuid"): g.get("index") for g in gpus if g.get("uuid")}
179
- out = run_cmd([
180
- "nvidia-smi",
181
- "--query-compute-apps=gpu_uuid,pid,process_name,used_memory",
182
- "--format=csv,noheader,nounits"
183
- ])
184
- processes = []
185
- if out:
186
- for line in out.splitlines():
187
- parts = [x.strip() for x in line.split(",")]
188
- if len(parts) < 4:
189
- continue
190
- gpu_uuid, pid, process_name, used_memory = parts[:4]
191
- try:
192
- pid_n = int(float(pid))
193
- used_n = int(float(str(used_memory).replace("MiB", "").strip()))
194
- except Exception:
195
- continue
196
- processes.append({
197
- "gpuUuid": gpu_uuid,
198
- "gpuIndex": uuid_to_index.get(gpu_uuid),
199
- "pid": pid_n,
200
- "processName": process_name,
201
- "usedMemoryMb": used_n
202
- })
203
- return processes
204
-
205
-
206
- def compact_model(item):
207
- if not isinstance(item, dict):
208
- return None
209
- return {
210
- "name": item.get("name") or item.get("model"),
211
- "model": item.get("model") or item.get("name"),
212
- "digest": item.get("digest"),
213
- "size": item.get("size"),
214
- "size_vram": item.get("size_vram"),
215
- "expires_at": item.get("expires_at"),
216
- "context_length": item.get("context_length"),
217
- "details": item.get("details") or {}
218
- }
219
-
220
-
221
- def find_listener_pid_by_ss(port):
222
- candidates = []
223
- commands = [
224
- ["ss", "-H", "-ltnp", "sport", "=", f":{port}"],
225
- ["ss", "-H", "-ltnp"],
226
- ]
227
- for cmd in commands:
228
- out = run_cmd(cmd, timeout=3)
229
- if not out:
230
- continue
231
- for line in out.splitlines():
232
- if f":{port}" not in line:
233
- continue
234
- for pid in re.findall(r'pid=([0-9]+)', line):
235
- candidates.append({"pid": int(pid), "source": "ss", "line": line})
236
- return candidates
237
-
238
-
239
- def find_listener_pid_by_lsof(port):
240
- candidates = []
241
- out = run_cmd(["lsof", "-nP", f"-iTCP:{port}", "-sTCP:LISTEN"], timeout=4)
242
- if not out:
243
- return candidates
244
- for line in out.splitlines()[1:]:
245
- parts = line.split()
246
- if len(parts) >= 2 and parts[1].isdigit():
247
- candidates.append({"pid": int(parts[1]), "source": "lsof", "line": line})
248
- return candidates
249
-
250
-
251
- def find_listener_pid_by_fuser(port):
252
- candidates = []
253
- out = run_cmd(["fuser", "-n", "tcp", str(port)], timeout=4)
254
- if not out:
255
- return candidates
256
- for pid in re.findall(r'\b[0-9]+\b', out):
257
- candidates.append({"pid": int(pid), "source": "fuser", "line": out})
258
- return candidates
259
-
260
-
261
- def tcp_port_hex(port):
262
- return f"{int(port):04X}"
263
-
264
-
265
- def listener_inodes_for_port(port):
266
- inodes = set()
267
- want = tcp_port_hex(port)
268
- for path in ["/proc/net/tcp", "/proc/net/tcp6"]:
269
- text = read_text(path)
270
- for line in text.splitlines()[1:]:
271
- cols = line.split()
272
- if len(cols) < 10:
273
- continue
274
- local = cols[1]
275
- state = cols[3]
276
- inode = cols[9]
277
- if state != "0A":
278
- continue
279
- if local.split(":")[-1].upper() == want:
280
- inodes.add(inode)
281
- return inodes
282
-
283
-
284
- def find_listener_pid_by_proc(port):
285
- candidates = []
286
- inodes = listener_inodes_for_port(port)
287
- if not inodes:
288
- return candidates
289
- proc_root = "/proc"
290
- for pid in os.listdir(proc_root):
291
- if not pid.isdigit():
292
- continue
293
- fd_dir = os.path.join(proc_root, pid, "fd")
294
- try:
295
- fds = os.listdir(fd_dir)
296
- except Exception:
297
- continue
298
- for fd in fds:
299
- try:
300
- target = os.readlink(os.path.join(fd_dir, fd))
301
- except Exception:
302
- continue
303
- m = re.match(r'socket:\[([0-9]+)\]', target)
304
- if m and m.group(1) in inodes:
305
- candidates.append({"pid": int(pid), "source": "proc-net", "line": f"inode={m.group(1)} fd={fd}"})
306
- break
307
- return candidates
308
-
309
-
310
- def find_listener_pid(port):
311
- all_candidates = []
312
- for fn in [find_listener_pid_by_ss, find_listener_pid_by_lsof, find_listener_pid_by_fuser, find_listener_pid_by_proc]:
313
- try:
314
- all_candidates.extend(fn(port))
315
- except Exception:
316
- pass
317
- seen = set()
318
- unique = []
319
- for c in all_candidates:
320
- pid = c.get("pid")
321
- if not pid or pid in seen:
322
- continue
323
- seen.add(pid)
324
- unique.append(c)
325
- if not unique:
326
- return None, None, []
327
- chosen = unique[0]
328
- return chosen.get("pid"), chosen.get("source"), unique
329
-
330
-
331
- def process_tree_pids(root_pid):
332
- try:
333
- root_pid = int(root_pid)
334
- except Exception:
335
- return []
336
- out = run_cmd(["ps", "-eo", "pid=,ppid=,cmd="], timeout=4)
337
- children = {}
338
- if out:
339
- for line in out.splitlines():
340
- parts = line.strip().split(None, 2)
341
- if len(parts) < 2:
342
- continue
343
- try:
344
- pid = int(parts[0]); ppid = int(parts[1])
345
- except Exception:
346
- continue
347
- children.setdefault(ppid, []).append(pid)
348
- result = []
349
- stack = [root_pid]
350
- seen = set()
351
- while stack:
352
- pid = stack.pop()
353
- if pid in seen:
354
- continue
355
- seen.add(pid)
356
- result.append(pid)
357
- stack.extend(children.get(pid, []))
358
- return result
359
-
360
-
361
- def docker_ps_rows():
362
- out = run_cmd(["docker", "ps", "--format", "{{.ID}}\t{{.Names}}\t{{.Ports}}"], timeout=5)
363
- rows = []
364
- if not out:
365
- return rows
366
- for line in out.splitlines():
367
- parts = line.split("\t")
368
- if len(parts) >= 3:
369
- rows.append({"id": parts[0], "name": parts[1], "ports": parts[2]})
370
- return rows
371
-
372
-
373
- def docker_inspect(cid):
374
- data = run_json(["docker", "inspect", cid], timeout=6)
375
- if isinstance(data, list) and data:
376
- return data[0]
377
- return None
378
-
379
-
380
- def find_docker_container_for_port(port, docker_proxy_info=None):
381
- # Prefer Docker's authoritative NetworkSettings.Ports mapping.
382
- for row in docker_ps_rows():
383
- info = docker_inspect(row["id"])
384
- if not info:
385
- continue
386
- ports = (((info.get("NetworkSettings") or {}).get("Ports")) or {})
387
- for container_port, host_bindings in ports.items():
388
- if not str(container_port).startswith(str(port)) and not str(container_port).startswith(str((docker_proxy_info or {}).get("containerPort", ""))):
389
- pass
390
- for binding in host_bindings or []:
391
- if str(binding.get("HostPort")) == str(port):
392
- return row, info
393
- # Fallback: match container IP parsed from docker-proxy command.
394
- container_ip = (docker_proxy_info or {}).get("containerIp")
395
- if container_ip:
396
- networks = ((info.get("NetworkSettings") or {}).get("Networks")) or {}
397
- for net in networks.values():
398
- if net.get("IPAddress") == container_ip:
399
- return row, info
400
- # Fallback: match docker ps formatted Ports text.
401
- if f":{port}->" in row.get("ports", "") or f"0.0.0.0:{port}" in row.get("ports", "") or f"[::]:{port}" in row.get("ports", ""):
402
- return row, info
403
- return None, None
404
-
405
-
406
- def parse_docker_proxy_cmd(cmdline):
407
- if "docker-proxy" not in (cmdline or ""):
408
- return None
409
- tokens = cmdline.split()
410
- out = {"kind": "docker-proxy"}
411
- for i, token in enumerate(tokens):
412
- if token in ["-host-port", "--host-port"] and i + 1 < len(tokens):
413
- out["hostPort"] = tokens[i + 1]
414
- elif token in ["-container-port", "--container-port"] and i + 1 < len(tokens):
415
- out["containerPort"] = tokens[i + 1]
416
- elif token in ["-container-ip", "--container-ip"] and i + 1 < len(tokens):
417
- out["containerIp"] = tokens[i + 1]
418
- return out
419
-
420
-
421
- def docker_env_and_meta(port, pid, cmdline):
422
- proxy = parse_docker_proxy_cmd(cmdline)
423
- if not proxy:
424
- return None
425
- row, info = find_docker_container_for_port(port, proxy)
426
- if not info:
427
- return {
428
- "runtimeType": "docker-proxy",
429
- "dockerProxy": proxy,
430
- "containerFound": False,
431
- "env": {},
432
- "source": "docker-proxy-no-container"
433
- }
434
- env_list = ((info.get("Config") or {}).get("Env")) or []
435
- env = {}
436
- for item in env_list:
437
- if "=" in item:
438
- k, v = item.split("=", 1)
439
- env[k] = v
440
- host_config = info.get("HostConfig") or {}
441
- state = info.get("State") or {}
442
- labels = (info.get("Config") or {}).get("Labels") or {}
443
- networks = ((info.get("NetworkSettings") or {}).get("Networks")) or {}
444
- ips = []
445
- for net_name, net in networks.items():
446
- if net.get("IPAddress"):
447
- ips.append({"network": net_name, "ip": net.get("IPAddress")})
448
- return {
449
- "runtimeType": "docker",
450
- "dockerProxy": proxy,
451
- "containerFound": True,
452
- "containerId": (info.get("Id") or row.get("id"))[:12],
453
- "containerName": (info.get("Name") or row.get("name") or "").lstrip("/"),
454
- "containerImage": (info.get("Config") or {}).get("Image"),
455
- "containerPid": state.get("Pid"),
456
- "containerIps": ips,
457
- "dockerPorts": row.get("ports"),
458
- "dockerNetworkMode": host_config.get("NetworkMode"),
459
- "dockerDeviceRequests": host_config.get("DeviceRequests") or [],
460
- "dockerLabels": labels,
461
- "env": env,
462
- "source": "docker-inspect"
463
- }
464
-
465
-
466
- def parse_visible_devices(value, gpus, source):
467
- if value is None:
468
- return None
469
- raw = str(value).strip()
470
- lower = raw.lower()
471
- if raw == "":
472
- return None
473
- if lower in ["none", "void", "no", "false", "-1"]:
474
- return {"indices": [], "mode": "disabled", "source": source, "raw": raw}
475
- if lower == "all":
476
- return {"indices": [g["index"] for g in gpus], "mode": "all-visible", "source": source, "raw": raw}
477
- uuid_to_index = {str(g.get("uuid")): g.get("index") for g in gpus if g.get("uuid")}
478
- indices = []
479
- unknown = []
480
- for item in re.split(r'[,;\s]+', raw):
481
- if not item:
482
- continue
483
- if item.isdigit():
484
- indices.append(int(item))
485
- elif item in uuid_to_index:
486
- indices.append(uuid_to_index[item])
487
- elif item.startswith("GPU-") and item in uuid_to_index:
488
- indices.append(uuid_to_index[item])
489
- elif item.startswith("MIG-"):
490
- unknown.append(item)
491
- else:
492
- unknown.append(item)
493
- return {
494
- "indices": sorted(list(set(indices))),
495
- "mode": "specific" if indices else "unknown",
496
- "source": source,
497
- "raw": raw,
498
- "unknownDevices": unknown
499
- }
500
-
501
-
502
- def parse_device_requests(device_requests, gpus):
503
- if not device_requests:
504
- return None
505
- ids = []
506
- all_gpu = False
507
- for req in device_requests:
508
- count = req.get("Count")
509
- caps = req.get("Capabilities") or []
510
- driver = req.get("Driver")
511
- req_ids = req.get("DeviceIDs") or []
512
- if driver == "nvidia" or any("gpu" in str(x).lower() for cap in caps for x in cap):
513
- if count == -1 and not req_ids:
514
- all_gpu = True
515
- ids.extend(req_ids)
516
- if all_gpu:
517
- return {"indices": [g["index"] for g in gpus], "mode": "all-visible", "source": "docker-device-requests:all", "raw": "all"}
518
- if ids:
519
- return parse_visible_devices(",".join(ids), gpus, "docker-device-requests")
520
- return None
521
-
522
-
523
- def configured_gpu_from_env(runtime_type, env, gpus, docker_meta=None):
524
- # Prefer NVIDIA_VISIBLE_DEVICES in Docker, CUDA_VISIBLE_DEVICES for direct/systemd.
525
- candidates = []
526
- if runtime_type == "docker":
527
- candidates = [
528
- ("NVIDIA_VISIBLE_DEVICES", env.get("NVIDIA_VISIBLE_DEVICES")),
529
- ("CUDA_VISIBLE_DEVICES", env.get("CUDA_VISIBLE_DEVICES")),
530
- ]
531
- req = parse_device_requests((docker_meta or {}).get("dockerDeviceRequests"), gpus)
532
- if req:
533
- return req
534
- else:
535
- candidates = [
536
- ("CUDA_VISIBLE_DEVICES", env.get("CUDA_VISIBLE_DEVICES")),
537
- ("NVIDIA_VISIBLE_DEVICES", env.get("NVIDIA_VISIBLE_DEVICES")),
538
- ("HIP_VISIBLE_DEVICES", env.get("HIP_VISIBLE_DEVICES")),
539
- ("ROCR_VISIBLE_DEVICES", env.get("ROCR_VISIBLE_DEVICES")),
540
- ]
541
- for key, value in candidates:
542
- parsed = parse_visible_devices(value, gpus, f"{runtime_type}-env:{key}")
543
- if parsed:
544
- return parsed
545
- if runtime_type in ["systemd", "direct"]:
546
- return {"indices": [g["index"] for g in gpus], "mode": "all-visible", "source": "all-visible-no-env", "raw": None}
547
- if runtime_type == "docker":
548
- # For Docker, lack of NVIDIA_VISIBLE_DEVICES is less conclusive.
549
- return {"indices": [], "mode": "unknown", "source": "docker-no-visible-devices-env", "raw": None}
550
- return {"indices": [], "mode": "unknown", "source": "no-gpu-config", "raw": None}
551
-
552
-
553
- def process_metadata(port, pid, gpus):
554
- if not pid:
555
- return {"runtimeType": "unknown", "env": {}, "configured": configured_gpu_from_env("unknown", {}, gpus)}
556
- cmdline = read_cmdline(pid)
557
- service = get_service_from_cgroup(pid)
558
- runtime_type = "systemd" if service else "direct"
559
- docker_meta = docker_env_and_meta(port, pid, cmdline)
560
- if docker_meta:
561
- runtime_type = docker_meta.get("runtimeType") or "docker"
562
- env = docker_meta.get("env") or {}
563
- configured = configured_gpu_from_env("docker", env, gpus, docker_meta)
564
- return {
565
- "runtimeType": runtime_type,
566
- "processCmdline": cmdline,
567
- "serviceName": service,
568
- "env": env,
569
- "configured": configured,
570
- **{k: v for k, v in docker_meta.items() if k not in ["env"]}
571
- }
572
- env = {}
573
- env.update(get_systemd_env(service))
574
- env.update(read_environ(pid))
575
- configured = configured_gpu_from_env("systemd" if service else "direct", env, gpus)
576
- return {
577
- "runtimeType": runtime_type,
578
- "processCmdline": cmdline,
579
- "serviceName": service,
580
- "env": {k: v for k, v in env.items() if re.search(r'OLLAMA|CUDA|NVIDIA|HIP|ROCR|GPU', k, re.I)},
581
- "configured": configured,
582
- }
583
-
584
-
585
- def gpu_processes_for_pids(gpu_processes, pids):
586
- pid_set = set(int(x) for x in pids if x)
587
- return [p for p in gpu_processes if int(p.get("pid") or -1) in pid_set]
588
-
589
-
590
- def infer_gpu_from_ps(ps_models, gpus, configured):
591
- size_bytes = sum(int(m.get("size_vram") or 0) for m in ps_models or [])
592
- size_mb = int(size_bytes / (1024 * 1024)) if size_bytes else 0
593
- if size_mb <= 0:
594
- return [], 0, None
595
- configured_indices = configured.get("indices") or [] if configured else []
596
- if configured_indices:
597
- return configured_indices, size_mb, "ollama-ps-configured-gpu-inferred"
598
- if len(gpus) == 1:
599
- return [gpus[0]["index"]], size_mb, "ollama-ps-single-gpu-inferred"
600
- # Conservative multi-GPU inference: only infer if one GPU's used memory is close enough.
601
- candidates = []
602
- for gpu in gpus:
603
- used = int(gpu.get("vramUsedMb") or 0)
604
- if used >= max(512, int(size_mb * 0.45)):
605
- candidates.append(gpu)
606
- if len(candidates) == 1:
607
- return [candidates[0]["index"]], size_mb, "ollama-ps-single-used-gpu-inferred"
608
- return [], 0, None
609
-
610
-
611
- def get_ollama_instance(port, gpus, gpu_processes):
612
- base = f"http://{OLLAMA_HOST}:{port}"
613
- tags = http_json(f"{base}/api/tags")
614
- ps = http_json(f"{base}/api/ps")
615
-
616
- model_details = []
617
- models = []
618
- if tags and isinstance(tags.get("models"), list):
619
- for m in tags["models"]:
620
- cm = compact_model(m)
621
- if cm and cm.get("name"):
622
- model_details.append(cm)
623
- models.append(cm["name"])
624
-
625
- ps_models = []
626
- loaded_models = []
627
- if ps and isinstance(ps.get("models"), list):
628
- for m in ps["models"]:
629
- cm = compact_model(m)
630
- if cm and cm.get("name"):
631
- ps_models.append(cm)
632
- loaded_models.append(cm["name"])
633
-
634
- pid, pid_source, pid_candidates = find_listener_pid(port)
635
- meta = process_metadata(port, pid, gpus)
636
- pid_tree = process_tree_pids(pid) if pid else []
637
- # Docker containers may expose a container init PID whose children hold GPU handles.
638
- container_pid = meta.get("containerPid")
639
- if container_pid:
640
- pid_tree = sorted(list(set(pid_tree + process_tree_pids(container_pid))))
641
- matched_gpu_processes = gpu_processes_for_pids(gpu_processes, pid_tree)
642
- runtime_indices = sorted(list(set([p.get("gpuIndex") for p in matched_gpu_processes if p.get("gpuIndex") is not None])))
643
- runtime_used = sum(int(p.get("usedMemoryMb") or 0) for p in matched_gpu_processes)
644
- runtime_source = "port-pid-nvidia-smi" if runtime_indices else None
645
- ps_indices, ps_used, ps_source = infer_gpu_from_ps(ps_models, gpus, meta.get("configured") or {})
646
-
647
- configured = meta.get("configured") or {}
648
- effective_indices = []
649
- effective_source = None
650
- if configured.get("indices"):
651
- effective_indices = configured.get("indices")
652
- effective_source = configured.get("source")
653
- elif runtime_indices:
654
- effective_indices = runtime_indices
655
- effective_source = runtime_source
656
- elif ps_indices:
657
- effective_indices = ps_indices
658
- effective_source = ps_source
659
-
660
- detected_indices = runtime_indices or ps_indices
661
- detected_used = runtime_used if runtime_indices else ps_used
662
- detected_source = runtime_source or ps_source or ("port-pid-no-gpu" if pid else None)
663
-
664
- return {
665
- "id": f"ollama-{port}",
666
- "port": int(port),
667
- "baseUrl": base,
668
- "alive": tags is not None,
669
- "models": models,
670
- "modelDetails": model_details,
671
- "loadedModels": loaded_models,
672
- "psModels": ps_models,
673
- "loadedDigests": sorted(list(set([m.get("digest") for m in ps_models if m.get("digest")]))),
674
- "pid": pid,
675
- "pidDetectionSource": pid_source,
676
- "pidCandidates": pid_candidates,
677
- "pidTree": pid_tree,
678
- "runtimeType": meta.get("runtimeType"),
679
- "serviceName": meta.get("serviceName"),
680
- "processCmdline": meta.get("processCmdline"),
681
- "processEnv": meta.get("env"),
682
- "containerId": meta.get("containerId"),
683
- "containerName": meta.get("containerName"),
684
- "containerImage": meta.get("containerImage"),
685
- "containerPid": meta.get("containerPid"),
686
- "containerIps": meta.get("containerIps"),
687
- "dockerNetworkMode": meta.get("dockerNetworkMode"),
688
- "dockerPorts": meta.get("dockerPorts"),
689
- "dockerDeviceRequests": meta.get("dockerDeviceRequests"),
690
- "dockerLabels": meta.get("dockerLabels"),
691
- "dockerProxy": meta.get("dockerProxy"),
692
- "configuredGpuIndices": configured.get("indices") or [],
693
- "configuredGpuMode": configured.get("mode"),
694
- "configuredGpuSource": configured.get("source"),
695
- "configuredGpuRaw": configured.get("raw"),
696
- "configuredGpuUnknownDevices": configured.get("unknownDevices") or [],
697
- "runtimeGpuIndices": runtime_indices,
698
- "runtimeGpuVramUsedMb": runtime_used,
699
- "runtimeGpuProcesses": matched_gpu_processes,
700
- "detectedGpuIndices": detected_indices,
701
- "detectedGpuVramUsedMb": detected_used,
702
- "detectedGpuProcesses": matched_gpu_processes,
703
- "detectedGpuBindingSource": detected_source,
704
- "effectiveGpuIndices": effective_indices,
705
- "effectiveGpuSource": effective_source,
706
- }
707
-
708
-
709
- def build_status():
710
- hostname = run_cmd(["hostname"]) or "unknown"
711
- gpus = get_gpu_status()
712
- gpu_processes = get_gpu_processes(gpus)
713
- ram = get_ram_status()
714
- cpu = get_cpu_status()
715
- instances = [get_ollama_instance(p, gpus, gpu_processes) for p in OLLAMA_PORTS]
716
- tags = ["ollama", "lan"]
717
- if gpus:
718
- tags += ["gpu", "nvidia"]
719
- for gpu in gpus:
720
- tags.append(f"gpu:{gpu.get('index')}:{str(gpu.get('name','')).lower().replace(' ','-')}")
721
- else:
722
- tags.append("cpu")
723
- for inst in instances:
724
- for model in inst.get("models", []):
725
- tags.append(f"model_support:{model}")
726
- best_gpu = max(gpus, key=lambda x: x.get("vramFreeMb", 0)) if gpus else None
727
- return {
728
- "ok": True,
729
- "hostname": hostname,
730
- "provider": "ollama",
731
- "instances": instances,
732
- "hardware": {"cpu": cpu, "ram": ram, "gpus": gpus, "gpuProcesses": gpu_processes},
733
- "score": {
734
- "gpuFreeVramMb": best_gpu.get("vramFreeMb") if best_gpu else 0,
735
- "gpuUsagePercent": best_gpu.get("gpuUsagePercent") if best_gpu else None,
736
- "ramAvailableMb": ram.get("availableMb") if ram else None
737
- },
738
- "tags": sorted(set(tags)),
739
- "updatedAt": datetime.now(timezone.utc).isoformat()
740
- }
741
-
742
-
743
- class Handler(BaseHTTPRequestHandler):
744
- def _send(self, code, payload):
745
- body = json.dumps(payload, ensure_ascii=False).encode("utf-8")
746
- self.send_response(code)
747
- self.send_header("Content-Type", "application/json; charset=utf-8")
748
- self.send_header("Content-Length", str(len(body)))
749
- self.end_headers()
750
- self.wfile.write(body)
751
-
752
- def _authorized(self):
753
- return (not AGENT_TOKEN) or self.headers.get("Authorization", "") == f"Bearer {AGENT_TOKEN}"
754
-
755
- def do_GET(self):
756
- if self.path not in ["/status", "/health"]:
757
- self._send(404, {"ok": False, "error": "not_found"})
758
- return
759
- if not self._authorized():
760
- self._send(401, {"ok": False, "error": "unauthorized"})
761
- return
762
- if self.path == "/health":
763
- self._send(200, {"ok": True})
764
- return
765
- try:
766
- self._send(200, build_status())
767
- except Exception as e:
768
- self._send(500, {"ok": False, "error": str(e)})
769
-
770
- def log_message(self, fmt, *args):
771
- return
772
-
773
-
774
- if __name__ == "__main__":
775
- print(f"BlueRouter Ollama Agent listening on 0.0.0.0:{PORT}; ports={OLLAMA_PORTS}")
776
- HTTPServer(("0.0.0.0", PORT), Handler).serve_forever()
777
- `,f=String(b.ufwAllowFrom??a.ufwAllowFrom??"").trim(),g=Number(a.agentPort||19999),h=String(b.ollamaHost||"127.0.0.1"),i=String(a.agentToken||"");return`#!/usr/bin/env bash
778
- set -euo pipefail
779
- AGENT_DIR=${y(c)}
780
- mkdir -p "$AGENT_DIR"
781
- cat > "$AGENT_DIR/agent.py" <<'PY_AGENT'
782
- ${e}
783
- PY_AGENT
784
- chmod +x "$AGENT_DIR/agent.py"
785
- cat > /etc/systemd/system/bluerouter-ollama-agent.service <<'SERVICE'
786
- [Unit]
787
- Description=BlueRouter Ollama Hardware Status Agent
788
- After=network.target docker.service ollama.service
789
-
790
- [Service]
791
- Type=simple
792
- WorkingDirectory=${c}
793
- Environment="AGENT_PORT=${g}"
794
- Environment="OLLAMA_HOST=${h}"
795
- Environment="OLLAMA_PORTS=${d}"
796
- Environment="AGENT_TOKEN=${i}"
797
- ExecStart=/usr/bin/python3 ${c}/agent.py
798
- Restart=always
799
- RestartSec=3
800
-
801
- [Install]
802
- WantedBy=multi-user.target
803
- SERVICE
804
- systemctl daemon-reload
805
- systemctl enable bluerouter-ollama-agent
806
- systemctl restart bluerouter-ollama-agent
807
- if command -v ufw >/dev/null 2>&1 && [ -n ${y(f)} ]; then
808
- ufw allow from ${y(f)} to any port ${g} proto tcp || true
809
- fi
810
- systemctl status bluerouter-ollama-agent --no-pager || true
811
- echo "Installed BlueRouter Ollama Agent"
812
- echo "Agent port: ${g}"
813
- echo "Ollama host: ${h}"
814
- echo "Ollama ports: ${d}"
815
- `}(a,b),g=!0===a.useSudo&&"root"!==c,h=b.sudoPassword||b.sshPassword||"",i=g?`${h}
816
- ${f}`:f,j=["-p",String(d),"-o","StrictHostKeyChecking=no",e,g?"sudo -S -p '' bash -s":"bash -s"];return b.sshPassword?z("sshpass",["-p",b.sshPassword,"ssh",...j],{input:i}):z("ssh",j,{input:i})}let B="nodejs",C="force-dynamic";async function D(a,b){let{id:c}=await b.params,d=await (0,w.Vs)(c);if(!d)return v.NextResponse.json({error:"not_found"},{status:404});let e=await a.json().catch(()=>({}));try{let a=await A(d,{sshPassword:e.sshPassword||"",sudoPassword:e.sudoPassword||"",ufwAllowFrom:e.ufwAllowFrom,ollamaHost:e.ollamaHost||"127.0.0.1"});if(await (0,w.YT)(d.id,{lastInstallAt:new Date().toISOString(),lastInstallOk:a.ok,lastInstallLog:[a.stdout,a.stderr].filter(Boolean).join("\n").slice(-12e3)}),!a.ok)return v.NextResponse.json({ok:!1,error:"Remote install failed",result:a},{status:500});return v.NextResponse.json({ok:!0,result:a})}catch(a){return v.NextResponse.json({ok:!1,error:a.message||"Remote install failed"},{status:500})}}let E=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/ollama-nodes/[id]/install/route",pathname:"/api/ollama-nodes/[id]/install",filename:"route",bundlePath:"app/api/ollama-nodes/[id]/install/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"D:\\bluerouter\\src\\app\\api\\ollama-nodes\\[id]\\install\\route.js",nextConfigOutput:"standalone",userland:d,...{}}),{workAsyncStorage:F,workUnitAsyncStorage:G,serverHooks:H}=E;function I(){return(0,g.patchFetch)({workAsyncStorage:F,workUnitAsyncStorage:G})}async function J(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),E.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/ollama-nodes/[id]/install/route";"/index"===d&&(d="/");let e=await E.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||E.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===E.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==B?void 0:B.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await E.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>E.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>E.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await E.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:C})},!1,B),b}},k=await E.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await E.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:C})},!1,B),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},96487:()=>{}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,6774],()=>b(b.s=86762));module.exports=c})();