switchboard-router 0.9.9 → 0.9.11

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 (1440) hide show
  1. package/app/.next/static/Gpu8irTBATTeQnftVm3kL/_buildManifest.js +1 -0
  2. package/app/.next/static/chunks/1321-cdb7f44691303560.js +1 -0
  3. package/app/.next/static/chunks/1330-a43190104575ffe5.js +7 -0
  4. package/app/.next/static/chunks/3378-277dccfa153c2c15.js +73 -0
  5. package/app/.next/static/chunks/4707-8ea6ba647d0a40c9.js +1 -0
  6. package/app/.next/static/chunks/app/(dashboard)/dashboard/agent-library/page-fa24110e606e19b6.js +1 -0
  7. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-7b00fb83303d1d11.js +1 -0
  8. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-5743f3aa5bc106d4.js +1 -0
  9. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-3f393136e502e1c0.js +1 -0
  10. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-aaae06cada500532.js +1 -0
  11. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/routing/page-ef491ec5a2ccecfb.js +1 -0
  12. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-eefda4a8f32e649e.js +1 -0
  13. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-51f788f35bc5325f.js +16 -0
  14. package/app/.next/static/chunks/app/(dashboard)/dashboard/loading-c80ac975cf0f4842.js +1 -0
  15. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-e6fc3a5c25ce1247.js +59 -0
  16. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-078eb5d8bfc3f4d1.js +1 -0
  17. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-7dfde081613f35f3.js +4 -0
  18. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/page-1d63cfd88010b65f.js +1 -0
  19. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-281c93713fd1e960.js +1 -0
  20. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-14c65f14d73bdfa7.js +1 -0
  21. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-88fc3c530d1ce735.js +1 -0
  22. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-0e0047609d5634c9.js +1 -0
  23. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-cb9292ca42b61d7d.js +10 -0
  24. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-604dae851964c441.js +1 -0
  25. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-e1c9f4ce8466e3ad.js +1 -0
  26. package/app/.next/static/chunks/app/(dashboard)/dashboard/pxpipe/page-6ca234b58c5e9feb.js +1 -0
  27. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-40db6db68022a0cc.js +1 -0
  28. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-ea262b6192d5a92c.js +1 -0
  29. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-36d107b083ad3a43.js +1 -0
  30. package/app/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-14e5599c720c645b.js +1 -0
  31. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-687e09f904b04cea.js +1 -0
  32. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-195bdcbea10136e1.js +1 -0
  33. package/app/.next/static/chunks/app/(dashboard)/layout-6dfa9d7deb27d461.js +1 -0
  34. package/app/.next/static/chunks/app/_global-error/page-d23122546cc60c2d.js +1 -0
  35. package/app/.next/static/chunks/app/api/agent-library/catalog/route-d23122546cc60c2d.js +1 -0
  36. package/app/.next/static/chunks/app/api/agent-library/doctor/route-d23122546cc60c2d.js +1 -0
  37. package/app/.next/static/chunks/app/api/agent-library/export/route-d23122546cc60c2d.js +1 -0
  38. package/app/.next/static/chunks/app/api/agent-library/mcp/route-d23122546cc60c2d.js +1 -0
  39. package/app/.next/static/chunks/app/api/agent-library/route-d23122546cc60c2d.js +1 -0
  40. package/app/.next/static/chunks/app/api/agent-library/skills/route-d23122546cc60c2d.js +1 -0
  41. package/app/.next/static/chunks/app/api/agent-library/sync/route-d23122546cc60c2d.js +1 -0
  42. package/app/.next/static/chunks/app/api/agent-library/updates/route-d23122546cc60c2d.js +1 -0
  43. package/app/.next/static/chunks/app/api/auth/status/route-d23122546cc60c2d.js +1 -0
  44. package/app/.next/static/chunks/app/api/cli-tools/aider-settings/route-d23122546cc60c2d.js +1 -0
  45. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-d23122546cc60c2d.js +1 -0
  46. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-d23122546cc60c2d.js +1 -0
  47. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-d23122546cc60c2d.js +1 -0
  48. package/app/.next/static/chunks/app/api/cli-tools/claude-full-catalog/route-d23122546cc60c2d.js +1 -0
  49. package/app/.next/static/chunks/app/api/cli-tools/claude-picker-labels/route-d23122546cc60c2d.js +1 -0
  50. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-d23122546cc60c2d.js +1 -0
  51. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-d23122546cc60c2d.js +1 -0
  52. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-d23122546cc60c2d.js +1 -0
  53. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-d23122546cc60c2d.js +1 -0
  54. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-d23122546cc60c2d.js +1 -0
  55. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-d23122546cc60c2d.js +1 -0
  56. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-d23122546cc60c2d.js +1 -0
  57. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-d23122546cc60c2d.js +1 -0
  58. package/app/.next/static/chunks/app/api/cli-tools/gemini-cli-settings/route-d23122546cc60c2d.js +1 -0
  59. package/app/.next/static/chunks/app/api/cli-tools/grok-settings/route-d23122546cc60c2d.js +1 -0
  60. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-d23122546cc60c2d.js +1 -0
  61. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-d23122546cc60c2d.js +1 -0
  62. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-d23122546cc60c2d.js +1 -0
  63. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-d23122546cc60c2d.js +1 -0
  64. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-d23122546cc60c2d.js +1 -0
  65. package/app/.next/static/chunks/app/api/cli-tools/pi-settings/route-d23122546cc60c2d.js +1 -0
  66. package/app/.next/static/chunks/app/api/cli-tools/picker-labels/route-d23122546cc60c2d.js +1 -0
  67. package/app/.next/static/chunks/app/api/combos/[id]/route-d23122546cc60c2d.js +1 -0
  68. package/app/.next/static/chunks/app/api/combos/route-d23122546cc60c2d.js +1 -0
  69. package/app/.next/static/chunks/app/api/headroom/extras/route-d23122546cc60c2d.js +1 -0
  70. package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-d23122546cc60c2d.js +1 -0
  71. package/app/.next/static/chunks/app/api/headroom/restart/route-d23122546cc60c2d.js +1 -0
  72. package/app/.next/static/chunks/app/api/headroom/start/route-d23122546cc60c2d.js +1 -0
  73. package/app/.next/static/chunks/app/api/headroom/status/route-d23122546cc60c2d.js +1 -0
  74. package/app/.next/static/chunks/app/api/headroom/stop/route-d23122546cc60c2d.js +1 -0
  75. package/app/.next/static/chunks/app/api/health/route-d23122546cc60c2d.js +1 -0
  76. package/app/.next/static/chunks/app/api/keys/[id]/route-d23122546cc60c2d.js +1 -0
  77. package/app/.next/static/chunks/app/api/keys/route-d23122546cc60c2d.js +1 -0
  78. package/app/.next/static/chunks/app/api/locale/route-d23122546cc60c2d.js +1 -0
  79. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-d23122546cc60c2d.js +1 -0
  80. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-d23122546cc60c2d.js +1 -0
  81. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-d23122546cc60c2d.js +1 -0
  82. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-d23122546cc60c2d.js +1 -0
  83. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-d23122546cc60c2d.js +1 -0
  84. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-d23122546cc60c2d.js +1 -0
  85. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-d23122546cc60c2d.js +1 -0
  86. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/route-d23122546cc60c2d.js +1 -0
  87. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-d23122546cc60c2d.js +1 -0
  88. package/app/.next/static/chunks/app/api/mgmt/v1/combos/route-d23122546cc60c2d.js +1 -0
  89. package/app/.next/static/chunks/app/api/mgmt/v1/health/route-d23122546cc60c2d.js +1 -0
  90. package/app/.next/static/chunks/app/api/mgmt/v1/metrics/route-d23122546cc60c2d.js +1 -0
  91. package/app/.next/static/chunks/app/api/mgmt/v1/providers/route-d23122546cc60c2d.js +1 -0
  92. package/app/.next/static/chunks/app/api/mgmt/v1/routing/route-d23122546cc60c2d.js +1 -0
  93. package/app/.next/static/chunks/app/api/mgmt/v1/usage/route-d23122546cc60c2d.js +1 -0
  94. package/app/.next/static/chunks/app/api/mgmt/v1/version/route-d23122546cc60c2d.js +1 -0
  95. package/app/.next/static/chunks/app/api/models/alias/route-d23122546cc60c2d.js +1 -0
  96. package/app/.next/static/chunks/app/api/models/availability/route-d23122546cc60c2d.js +1 -0
  97. package/app/.next/static/chunks/app/api/models/custom/route-d23122546cc60c2d.js +1 -0
  98. package/app/.next/static/chunks/app/api/models/disabled/route-d23122546cc60c2d.js +1 -0
  99. package/app/.next/static/chunks/app/api/models/route-d23122546cc60c2d.js +1 -0
  100. package/app/.next/static/chunks/app/api/models/test/route-d23122546cc60c2d.js +1 -0
  101. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-d23122546cc60c2d.js +1 -0
  102. package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-d23122546cc60c2d.js +1 -0
  103. package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-d23122546cc60c2d.js +1 -0
  104. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-d23122546cc60c2d.js +1 -0
  105. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-d23122546cc60c2d.js +1 -0
  106. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-d23122546cc60c2d.js +1 -0
  107. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-d23122546cc60c2d.js +1 -0
  108. package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-d23122546cc60c2d.js +1 -0
  109. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-d23122546cc60c2d.js +1 -0
  110. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-d23122546cc60c2d.js +1 -0
  111. package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-d23122546cc60c2d.js +1 -0
  112. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-d23122546cc60c2d.js +1 -0
  113. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-d23122546cc60c2d.js +1 -0
  114. package/app/.next/static/chunks/app/api/pricing/defaults/route-d23122546cc60c2d.js +1 -0
  115. package/app/.next/static/chunks/app/api/pricing/route-d23122546cc60c2d.js +1 -0
  116. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-d23122546cc60c2d.js +1 -0
  117. package/app/.next/static/chunks/app/api/provider-nodes/route-d23122546cc60c2d.js +1 -0
  118. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-d23122546cc60c2d.js +1 -0
  119. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/batch/route-d23122546cc60c2d.js +1 -0
  120. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/cache/route-d23122546cc60c2d.js +1 -0
  121. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/prepare/route-d23122546cc60c2d.js +1 -0
  122. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-d23122546cc60c2d.js +1 -0
  123. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/route-d23122546cc60c2d.js +1 -0
  124. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-d23122546cc60c2d.js +1 -0
  125. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-d23122546cc60c2d.js +1 -0
  126. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-d23122546cc60c2d.js +1 -0
  127. package/app/.next/static/chunks/app/api/providers/[id]/models/route-d23122546cc60c2d.js +1 -0
  128. package/app/.next/static/chunks/app/api/providers/[id]/route-d23122546cc60c2d.js +1 -0
  129. package/app/.next/static/chunks/app/api/providers/[id]/test/route-d23122546cc60c2d.js +1 -0
  130. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-d23122546cc60c2d.js +1 -0
  131. package/app/.next/static/chunks/app/api/providers/client/route-d23122546cc60c2d.js +1 -0
  132. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-d23122546cc60c2d.js +1 -0
  133. package/app/.next/static/chunks/app/api/providers/route-d23122546cc60c2d.js +1 -0
  134. package/app/.next/static/chunks/app/api/providers/suggested-models/route-d23122546cc60c2d.js +1 -0
  135. package/app/.next/static/chunks/app/api/providers/test-batch/route-d23122546cc60c2d.js +1 -0
  136. package/app/.next/static/chunks/app/api/providers/validate/route-d23122546cc60c2d.js +1 -0
  137. package/app/.next/static/chunks/app/api/pxpipe/health/route-d23122546cc60c2d.js +1 -0
  138. package/app/.next/static/chunks/app/api/pxpipe/install/route-d23122546cc60c2d.js +1 -0
  139. package/app/.next/static/chunks/app/api/pxpipe/logs/route-d23122546cc60c2d.js +1 -0
  140. package/app/.next/static/chunks/app/api/pxpipe/restart/route-d23122546cc60c2d.js +1 -0
  141. package/app/.next/static/chunks/app/api/pxpipe/start/route-d23122546cc60c2d.js +1 -0
  142. package/app/.next/static/chunks/app/api/pxpipe/stats/route-d23122546cc60c2d.js +1 -0
  143. package/app/.next/static/chunks/app/api/pxpipe/status/route-d23122546cc60c2d.js +1 -0
  144. package/app/.next/static/chunks/app/api/pxpipe/stop/route-d23122546cc60c2d.js +1 -0
  145. package/app/.next/static/chunks/app/api/routing/feedback/route-d23122546cc60c2d.js +1 -0
  146. package/app/.next/static/chunks/app/api/routing/insights/route-d23122546cc60c2d.js +1 -0
  147. package/app/.next/static/chunks/app/api/routing/learn/route-d23122546cc60c2d.js +1 -0
  148. package/app/.next/static/chunks/app/api/routing/stats/route-d23122546cc60c2d.js +1 -0
  149. package/app/.next/static/chunks/app/api/routing/versions/promote/route-d23122546cc60c2d.js +1 -0
  150. package/app/.next/static/chunks/app/api/routing/versions/rollback/route-d23122546cc60c2d.js +1 -0
  151. package/app/.next/static/chunks/app/api/settings/database/route-d23122546cc60c2d.js +1 -0
  152. package/app/.next/static/chunks/app/api/settings/proxy-test/route-d23122546cc60c2d.js +1 -0
  153. package/app/.next/static/chunks/app/api/settings/route-d23122546cc60c2d.js +1 -0
  154. package/app/.next/static/chunks/app/api/shutdown/route-d23122546cc60c2d.js +1 -0
  155. package/app/.next/static/chunks/app/api/skills/[id]/route-d23122546cc60c2d.js +1 -0
  156. package/app/.next/static/chunks/app/api/tags/route-d23122546cc60c2d.js +1 -0
  157. package/app/.next/static/chunks/app/api/token-saver/vault-stats/route-d23122546cc60c2d.js +1 -0
  158. package/app/.next/static/chunks/app/api/translator/console-logs/route-d23122546cc60c2d.js +1 -0
  159. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-d23122546cc60c2d.js +1 -0
  160. package/app/.next/static/chunks/app/api/translator/load/route-d23122546cc60c2d.js +1 -0
  161. package/app/.next/static/chunks/app/api/translator/save/route-d23122546cc60c2d.js +1 -0
  162. package/app/.next/static/chunks/app/api/translator/send/route-d23122546cc60c2d.js +1 -0
  163. package/app/.next/static/chunks/app/api/translator/translate/route-d23122546cc60c2d.js +1 -0
  164. package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-d23122546cc60c2d.js +1 -0
  165. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-d23122546cc60c2d.js +1 -0
  166. package/app/.next/static/chunks/app/api/usage/chart/route-d23122546cc60c2d.js +1 -0
  167. package/app/.next/static/chunks/app/api/usage/history/route-d23122546cc60c2d.js +1 -0
  168. package/app/.next/static/chunks/app/api/usage/logs/route-d23122546cc60c2d.js +1 -0
  169. package/app/.next/static/chunks/app/api/usage/providers/route-d23122546cc60c2d.js +1 -0
  170. package/app/.next/static/chunks/app/api/usage/request-details/[id]/route-d23122546cc60c2d.js +1 -0
  171. package/app/.next/static/chunks/app/api/usage/request-details/route-d23122546cc60c2d.js +1 -0
  172. package/app/.next/static/chunks/app/api/usage/request-logs/route-d23122546cc60c2d.js +1 -0
  173. package/app/.next/static/chunks/app/api/usage/stats/route-d23122546cc60c2d.js +1 -0
  174. package/app/.next/static/chunks/app/api/usage/stream/route-d23122546cc60c2d.js +1 -0
  175. package/app/.next/static/chunks/app/api/v1/api/chat/route-d23122546cc60c2d.js +1 -0
  176. package/app/.next/static/chunks/app/api/v1/audio/speech/route-d23122546cc60c2d.js +1 -0
  177. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-d23122546cc60c2d.js +1 -0
  178. package/app/.next/static/chunks/app/api/v1/audio/voices/route-d23122546cc60c2d.js +1 -0
  179. package/app/.next/static/chunks/app/api/v1/chat/completions/route-d23122546cc60c2d.js +1 -0
  180. package/app/.next/static/chunks/app/api/v1/embeddings/route-d23122546cc60c2d.js +1 -0
  181. package/app/.next/static/chunks/app/api/v1/images/generations/route-d23122546cc60c2d.js +1 -0
  182. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-d23122546cc60c2d.js +1 -0
  183. package/app/.next/static/chunks/app/api/v1/messages/route-d23122546cc60c2d.js +1 -0
  184. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-d23122546cc60c2d.js +1 -0
  185. package/app/.next/static/chunks/app/api/v1/models/info/route-d23122546cc60c2d.js +1 -0
  186. package/app/.next/static/chunks/app/api/v1/models/route-d23122546cc60c2d.js +1 -0
  187. package/app/.next/static/chunks/app/api/v1/responses/compact/route-d23122546cc60c2d.js +1 -0
  188. package/app/.next/static/chunks/app/api/v1/responses/route-d23122546cc60c2d.js +1 -0
  189. package/app/.next/static/chunks/app/api/v1/route-d23122546cc60c2d.js +1 -0
  190. package/app/.next/static/chunks/app/api/v1/search/route-d23122546cc60c2d.js +1 -0
  191. package/app/.next/static/chunks/app/api/v1/videos/[id]/route-d23122546cc60c2d.js +1 -0
  192. package/app/.next/static/chunks/app/api/v1/videos/edits/route-d23122546cc60c2d.js +1 -0
  193. package/app/.next/static/chunks/app/api/v1/videos/extensions/route-d23122546cc60c2d.js +1 -0
  194. package/app/.next/static/chunks/app/api/v1/videos/generations/route-d23122546cc60c2d.js +1 -0
  195. package/app/.next/static/chunks/app/api/v1/web/fetch/route-d23122546cc60c2d.js +1 -0
  196. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-d23122546cc60c2d.js +1 -0
  197. package/app/.next/static/chunks/app/api/v1beta/models/route-d23122546cc60c2d.js +1 -0
  198. package/app/.next/static/chunks/app/api/version/route-d23122546cc60c2d.js +1 -0
  199. package/app/.next/static/chunks/app/api/version/shutdown/route-d23122546cc60c2d.js +1 -0
  200. package/app/.next/static/chunks/app/api/version/update/route-d23122546cc60c2d.js +1 -0
  201. package/app/.next/static/chunks/app/landing/page-b2d84fd7a580e623.js +1 -0
  202. package/app/.next/static/chunks/app/login/page-d23122546cc60c2d.js +1 -0
  203. package/app/.next/static/chunks/app/manifest.webmanifest/route-d23122546cc60c2d.js +1 -0
  204. package/app/.next/static/chunks/app/page-d23122546cc60c2d.js +1 -0
  205. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-d23122546cc60c2d.js +1 -0
  206. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-d23122546cc60c2d.js +1 -0
  207. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-d23122546cc60c2d.js +1 -0
  208. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-d23122546cc60c2d.js +1 -0
  209. package/app/.next/static/css/ec805e65297c40c7.css +1 -0
  210. package/app/.next/static/media/catalog.fb7b1b70.json +1722 -0
  211. package/app/.next-cli-build/BUILD_ID +1 -1
  212. package/app/.next-cli-build/app-path-routes-manifest.json +22 -20
  213. package/app/.next-cli-build/build-manifest.json +2 -2
  214. package/app/.next-cli-build/prerender-manifest.json +3 -3
  215. package/app/.next-cli-build/routes-manifest.json +14 -0
  216. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js +1 -1
  217. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
  219. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  220. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  222. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  223. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  225. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  226. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  228. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  229. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  231. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js +1 -1
  232. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.js +1 -1
  234. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  235. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  237. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +3 -3
  238. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  240. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +14 -14
  241. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  243. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  244. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  246. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  247. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  249. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js +1 -1
  250. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
  252. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  253. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  255. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  256. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  258. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  259. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  261. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  262. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  264. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  265. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  267. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  268. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  270. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  271. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  273. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  274. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  276. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  277. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  279. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js +1 -1
  280. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.js +1 -1
  282. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  283. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  285. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  286. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  288. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  289. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  291. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  292. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  294. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  295. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  297. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  298. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  299. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  300. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  301. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  302. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  303. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  305. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  306. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  307. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  308. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  309. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  310. package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js +1 -1
  313. package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/agent-library/export/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/agent-library/export/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js +1 -1
  317. package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/agent-library/route.js +1 -1
  319. package/app/.next-cli-build/server/app/api/agent-library/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/agent-library/skills/route.js +1 -1
  321. package/app/.next-cli-build/server/app/api/agent-library/skills/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/agent-library/sync/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/agent-library/sync/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/agent-library/updates/route.js +1 -1
  325. package/app/.next-cli-build/server/app/api/agent-library/updates/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  327. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +2 -2
  329. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  331. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  333. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/cli-tools/claude-full-catalog/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/cli-tools/claude-full-catalog/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/cli-tools/claude-picker-labels/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/cli-tools/claude-picker-labels/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  343. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  345. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  347. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  349. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  351. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  353. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  355. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +3 -3
  357. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +2 -2
  359. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  361. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
  363. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  365. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  367. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  369. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/cli-tools/picker-labels/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/cli-tools/picker-labels/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  381. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  387. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  393. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  399. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  401. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  403. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  404. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  405. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  409. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  411. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js +1 -1
  415. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js +1 -1
  417. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js +1 -1
  419. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/mgmt/v1/metrics/route.js +2 -2
  421. package/app/.next-cli-build/server/app/api/mgmt/v1/metrics/route.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js +1 -1
  423. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js +1 -1
  427. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js.nft.json +1 -1
  428. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js +1 -1
  429. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js.nft.json +1 -1
  430. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  431. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  433. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  435. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  437. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  439. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  440. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  441. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  442. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  443. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  444. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  445. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  446. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  447. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  448. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  449. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  450. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  451. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  452. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  453. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  454. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  455. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  456. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  457. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  458. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  459. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  460. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  461. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  462. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  463. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  464. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  465. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  466. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  467. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  468. package/app/.next-cli-build/server/app/api/pricing/defaults/route.js +1 -0
  469. package/app/.next-cli-build/server/app/api/pricing/defaults/route.js.nft.json +1 -0
  470. package/app/.next-cli-build/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -0
  471. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  472. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  473. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  474. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  475. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  476. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  477. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  478. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  479. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js +1 -1
  480. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js.nft.json +1 -1
  481. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js +1 -1
  482. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js.nft.json +1 -1
  483. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js +1 -1
  484. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js.nft.json +1 -1
  485. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js +1 -1
  486. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js.nft.json +1 -1
  487. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/route.js +1 -1
  488. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/route.js.nft.json +1 -1
  489. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/cancel/route.js +1 -1
  490. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/cancel/route.js.nft.json +1 -1
  491. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/start/route.js +1 -1
  492. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/start/route.js.nft.json +1 -1
  493. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/status/route.js +1 -1
  494. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/status/route.js.nft.json +1 -1
  495. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  496. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  497. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  498. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  499. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  500. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  501. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  502. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  503. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  504. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  505. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  506. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  507. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  508. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  509. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  510. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  511. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  512. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  513. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  514. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  515. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  516. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  517. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  518. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  519. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  520. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  521. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  522. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  523. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  524. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  525. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  526. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  527. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  528. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  529. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +1 -1
  530. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  531. package/app/.next-cli-build/server/app/api/routing/feedback/route.js +1 -1
  532. package/app/.next-cli-build/server/app/api/routing/feedback/route.js.nft.json +1 -1
  533. package/app/.next-cli-build/server/app/api/routing/insights/route.js +1 -1
  534. package/app/.next-cli-build/server/app/api/routing/insights/route.js.nft.json +1 -1
  535. package/app/.next-cli-build/server/app/api/routing/learn/route.js +1 -1
  536. package/app/.next-cli-build/server/app/api/routing/learn/route.js.nft.json +1 -1
  537. package/app/.next-cli-build/server/app/api/routing/stats/route.js +1 -1
  538. package/app/.next-cli-build/server/app/api/routing/stats/route.js.nft.json +1 -1
  539. package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js +1 -1
  540. package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js.nft.json +1 -1
  541. package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js +1 -1
  542. package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js.nft.json +1 -1
  543. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  544. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  545. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  546. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  547. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  548. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  549. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  550. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  551. package/app/.next-cli-build/server/app/api/skills/[id]/route.js +1 -1
  552. package/app/.next-cli-build/server/app/api/skills/[id]/route.js.nft.json +1 -1
  553. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  554. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  555. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js +1 -1
  556. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js.nft.json +1 -1
  557. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  558. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  559. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  560. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  561. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  562. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  563. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  564. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  565. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  566. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  567. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  568. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  569. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  570. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  571. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  572. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  573. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  574. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  575. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  576. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  577. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  578. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  579. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  580. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  581. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js +1 -0
  582. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -0
  583. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route_client-reference-manifest.js +1 -0
  584. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  585. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  586. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  587. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  588. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  589. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  590. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -6
  591. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  592. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +2 -1
  593. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  594. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  595. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  596. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  597. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  598. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  599. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  600. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  601. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  602. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  603. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  604. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  605. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  606. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  607. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  608. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  609. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  610. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  611. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  612. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  613. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  614. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  615. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  616. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  617. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  618. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  619. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  620. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  621. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  622. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  623. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  624. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  625. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  626. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  627. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  628. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  629. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  630. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  631. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  632. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  633. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  634. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  635. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  636. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  637. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  638. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  639. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  640. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  641. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  642. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  643. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  644. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  645. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  646. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  647. package/app/.next-cli-build/server/app/callback.html +1 -1
  648. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  649. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  650. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  651. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  652. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  653. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  654. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  655. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  656. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
  657. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  658. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  659. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +5 -5
  660. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  661. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  662. package/app/.next-cli-build/server/app/index.html +1 -1
  663. package/app/.next-cli-build/server/app/index.rsc +4 -4
  664. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  665. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  666. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  667. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  668. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  669. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  670. package/app/.next-cli-build/server/app/landing.html +1 -1
  671. package/app/.next-cli-build/server/app/landing.rsc +5 -5
  672. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
  673. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  674. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
  675. package/app/.next-cli-build/server/app/login/page.js +1 -1
  676. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  677. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  678. package/app/.next-cli-build/server/app/login.html +1 -1
  679. package/app/.next-cli-build/server/app/login.rsc +4 -4
  680. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  681. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  682. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  683. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  684. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  685. package/app/.next-cli-build/server/app/page.js +1 -1
  686. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  687. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  688. package/app/.next-cli-build/server/app-paths-manifest.json +22 -20
  689. package/app/.next-cli-build/server/chunks/1158.js +1 -0
  690. package/app/.next-cli-build/server/chunks/1274.js +1 -0
  691. package/app/.next-cli-build/server/chunks/1294.js +3 -3
  692. package/app/.next-cli-build/server/chunks/1351.js +1 -0
  693. package/app/.next-cli-build/server/chunks/1792.js +2 -0
  694. package/app/.next-cli-build/server/chunks/1837.js +1 -0
  695. package/app/.next-cli-build/server/chunks/1937.js +1 -1
  696. package/app/.next-cli-build/server/chunks/1998.js +1 -1
  697. package/app/.next-cli-build/server/chunks/2142.js +121 -0
  698. package/app/.next-cli-build/server/chunks/2524.js +1 -1
  699. package/app/.next-cli-build/server/chunks/27.js +8 -0
  700. package/app/.next-cli-build/server/chunks/3423.js +1 -0
  701. package/app/.next-cli-build/server/chunks/3446.js +1 -1
  702. package/app/.next-cli-build/server/chunks/3593.js +2 -2
  703. package/app/.next-cli-build/server/chunks/369.js +10 -10
  704. package/app/.next-cli-build/server/chunks/3735.js +2 -2
  705. package/app/.next-cli-build/server/chunks/3787.js +1 -1
  706. package/app/.next-cli-build/server/chunks/403.js +1 -0
  707. package/app/.next-cli-build/server/chunks/4176.js +1 -1
  708. package/app/.next-cli-build/server/chunks/4330.js +7 -0
  709. package/app/.next-cli-build/server/chunks/4646.js +1 -1
  710. package/app/.next-cli-build/server/chunks/4675.js +246 -0
  711. package/app/.next-cli-build/server/chunks/4739.js +2 -2
  712. package/app/.next-cli-build/server/chunks/4780.js +2 -2
  713. package/app/.next-cli-build/server/chunks/4803.js +1 -1
  714. package/app/.next-cli-build/server/chunks/507.js +2 -2
  715. package/app/.next-cli-build/server/chunks/5115.js +1 -0
  716. package/app/.next-cli-build/server/chunks/5139.js +1 -0
  717. package/app/.next-cli-build/server/chunks/519.js +1 -0
  718. package/app/.next-cli-build/server/chunks/5195.js +1 -0
  719. package/app/.next-cli-build/server/chunks/5258.js +2 -2
  720. package/app/.next-cli-build/server/chunks/5565.js +73 -0
  721. package/app/.next-cli-build/server/chunks/5717.js +9 -14
  722. package/app/.next-cli-build/server/chunks/5774.js +1 -0
  723. package/app/.next-cli-build/server/chunks/5781.js +2 -2
  724. package/app/.next-cli-build/server/chunks/5888.js +1 -1
  725. package/app/.next-cli-build/server/chunks/5920.js +2 -2
  726. package/app/.next-cli-build/server/chunks/6194.js +1 -0
  727. package/app/.next-cli-build/server/chunks/6252.js +1 -1
  728. package/app/.next-cli-build/server/chunks/6305.js +2 -0
  729. package/app/.next-cli-build/server/chunks/6328.js +1 -1
  730. package/app/.next-cli-build/server/chunks/6406.js +3 -1
  731. package/app/.next-cli-build/server/chunks/646.js +15 -15
  732. package/app/.next-cli-build/server/chunks/6492.js +1 -1
  733. package/app/.next-cli-build/server/chunks/6757.js +38 -0
  734. package/app/.next-cli-build/server/chunks/698.js +2 -2
  735. package/app/.next-cli-build/server/chunks/7133.js +1 -0
  736. package/app/.next-cli-build/server/chunks/7454.js +1 -1
  737. package/app/.next-cli-build/server/chunks/7662.js +1 -1
  738. package/app/.next-cli-build/server/chunks/7757.js +1 -1
  739. package/app/.next-cli-build/server/chunks/7774.js +3 -3
  740. package/app/.next-cli-build/server/chunks/7880.js +2 -0
  741. package/app/.next-cli-build/server/chunks/7965.js +2 -2
  742. package/app/.next-cli-build/server/chunks/8027.js +63 -0
  743. package/app/.next-cli-build/server/chunks/8062.js +1 -1
  744. package/app/.next-cli-build/server/chunks/8400.js +13 -11
  745. package/app/.next-cli-build/server/chunks/8469.js +1 -1
  746. package/app/.next-cli-build/server/chunks/8520.js +2 -2
  747. package/app/.next-cli-build/server/chunks/869.js +1 -1
  748. package/app/.next-cli-build/server/chunks/8775.js +1 -1
  749. package/app/.next-cli-build/server/chunks/8789.js +1 -1
  750. package/app/.next-cli-build/server/chunks/8942.js +2 -2
  751. package/app/.next-cli-build/server/chunks/8976.js +1 -1
  752. package/app/.next-cli-build/server/chunks/8998.js +59 -49
  753. package/app/.next-cli-build/server/chunks/9059.js +1 -0
  754. package/app/.next-cli-build/server/chunks/9091.js +3 -3
  755. package/app/.next-cli-build/server/chunks/9261.js +29 -18
  756. package/app/.next-cli-build/server/chunks/9264.js +2 -2
  757. package/app/.next-cli-build/server/chunks/9421.js +2 -2
  758. package/app/.next-cli-build/server/chunks/static/media/catalog.fb7b1b70.json +1722 -0
  759. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  760. package/app/.next-cli-build/server/middleware.js +12 -17
  761. package/app/.next-cli-build/server/pages/404.html +1 -1
  762. package/app/.next-cli-build/server/pages/500.html +1 -1
  763. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  764. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  765. package/app/.next-cli-build/static/Gpu8irTBATTeQnftVm3kL/_buildManifest.js +1 -0
  766. package/app/.next-cli-build/static/chunks/1321-cdb7f44691303560.js +1 -0
  767. package/app/.next-cli-build/static/chunks/1330-a43190104575ffe5.js +7 -0
  768. package/app/.next-cli-build/static/chunks/3378-277dccfa153c2c15.js +73 -0
  769. package/app/.next-cli-build/static/chunks/4707-8ea6ba647d0a40c9.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/agent-library/page-fa24110e606e19b6.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-7b00fb83303d1d11.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-5743f3aa5bc106d4.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-3f393136e502e1c0.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-aaae06cada500532.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/routing/page-ef491ec5a2ccecfb.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-eefda4a8f32e649e.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-51f788f35bc5325f.js +16 -0
  778. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/loading-c80ac975cf0f4842.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-e6fc3a5c25ce1247.js +59 -0
  780. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-078eb5d8bfc3f4d1.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-7dfde081613f35f3.js +4 -0
  782. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/page-1d63cfd88010b65f.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-281c93713fd1e960.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-14c65f14d73bdfa7.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-88fc3c530d1ce735.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-0e0047609d5634c9.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-cb9292ca42b61d7d.js +10 -0
  788. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-604dae851964c441.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-e1c9f4ce8466e3ad.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-6ca234b58c5e9feb.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-40db6db68022a0cc.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-ea262b6192d5a92c.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-36d107b083ad3a43.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-14e5599c720c645b.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-687e09f904b04cea.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-195bdcbea10136e1.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-6dfa9d7deb27d461.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/_global-error/page-d23122546cc60c2d.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/agent-library/catalog/route-d23122546cc60c2d.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/agent-library/doctor/route-d23122546cc60c2d.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/agent-library/export/route-d23122546cc60c2d.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/agent-library/mcp/route-d23122546cc60c2d.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/agent-library/route-d23122546cc60c2d.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/agent-library/skills/route-d23122546cc60c2d.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/agent-library/sync/route-d23122546cc60c2d.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/agent-library/updates/route-d23122546cc60c2d.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-d23122546cc60c2d.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/cli-tools/aider-settings/route-d23122546cc60c2d.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-d23122546cc60c2d.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-d23122546cc60c2d.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-d23122546cc60c2d.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-full-catalog/route-d23122546cc60c2d.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-picker-labels/route-d23122546cc60c2d.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-d23122546cc60c2d.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-d23122546cc60c2d.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-d23122546cc60c2d.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-d23122546cc60c2d.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-d23122546cc60c2d.js +1 -0
  819. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-d23122546cc60c2d.js +1 -0
  820. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-d23122546cc60c2d.js +1 -0
  821. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-d23122546cc60c2d.js +1 -0
  822. package/app/.next-cli-build/static/chunks/app/api/cli-tools/gemini-cli-settings/route-d23122546cc60c2d.js +1 -0
  823. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-settings/route-d23122546cc60c2d.js +1 -0
  824. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-d23122546cc60c2d.js +1 -0
  825. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-d23122546cc60c2d.js +1 -0
  826. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-d23122546cc60c2d.js +1 -0
  827. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-d23122546cc60c2d.js +1 -0
  828. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-d23122546cc60c2d.js +1 -0
  829. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-d23122546cc60c2d.js +1 -0
  830. package/app/.next-cli-build/static/chunks/app/api/cli-tools/picker-labels/route-d23122546cc60c2d.js +1 -0
  831. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-d23122546cc60c2d.js +1 -0
  832. package/app/.next-cli-build/static/chunks/app/api/combos/route-d23122546cc60c2d.js +1 -0
  833. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-d23122546cc60c2d.js +1 -0
  834. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-d23122546cc60c2d.js +1 -0
  835. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-d23122546cc60c2d.js +1 -0
  836. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-d23122546cc60c2d.js +1 -0
  837. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-d23122546cc60c2d.js +1 -0
  838. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-d23122546cc60c2d.js +1 -0
  839. package/app/.next-cli-build/static/chunks/app/api/health/route-d23122546cc60c2d.js +1 -0
  840. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-d23122546cc60c2d.js +1 -0
  841. package/app/.next-cli-build/static/chunks/app/api/keys/route-d23122546cc60c2d.js +1 -0
  842. package/app/.next-cli-build/static/chunks/app/api/locale/route-d23122546cc60c2d.js +1 -0
  843. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-d23122546cc60c2d.js +1 -0
  844. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-d23122546cc60c2d.js +1 -0
  845. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-d23122546cc60c2d.js +1 -0
  846. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-d23122546cc60c2d.js +1 -0
  847. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-d23122546cc60c2d.js +1 -0
  848. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-d23122546cc60c2d.js +1 -0
  849. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-d23122546cc60c2d.js +1 -0
  850. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/route-d23122546cc60c2d.js +1 -0
  851. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-d23122546cc60c2d.js +1 -0
  852. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/route-d23122546cc60c2d.js +1 -0
  853. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/health/route-d23122546cc60c2d.js +1 -0
  854. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/metrics/route-d23122546cc60c2d.js +1 -0
  855. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/providers/route-d23122546cc60c2d.js +1 -0
  856. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/routing/route-d23122546cc60c2d.js +1 -0
  857. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/usage/route-d23122546cc60c2d.js +1 -0
  858. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/version/route-d23122546cc60c2d.js +1 -0
  859. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-d23122546cc60c2d.js +1 -0
  860. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-d23122546cc60c2d.js +1 -0
  861. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-d23122546cc60c2d.js +1 -0
  862. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-d23122546cc60c2d.js +1 -0
  863. package/app/.next-cli-build/static/chunks/app/api/models/route-d23122546cc60c2d.js +1 -0
  864. package/app/.next-cli-build/static/chunks/app/api/models/test/route-d23122546cc60c2d.js +1 -0
  865. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-d23122546cc60c2d.js +1 -0
  866. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-d23122546cc60c2d.js +1 -0
  867. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-d23122546cc60c2d.js +1 -0
  868. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-d23122546cc60c2d.js +1 -0
  869. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-d23122546cc60c2d.js +1 -0
  870. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-d23122546cc60c2d.js +1 -0
  871. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-d23122546cc60c2d.js +1 -0
  872. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-d23122546cc60c2d.js +1 -0
  873. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-d23122546cc60c2d.js +1 -0
  874. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-d23122546cc60c2d.js +1 -0
  875. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-d23122546cc60c2d.js +1 -0
  876. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-d23122546cc60c2d.js +1 -0
  877. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-d23122546cc60c2d.js +1 -0
  878. package/app/.next-cli-build/static/chunks/app/api/pricing/defaults/route-d23122546cc60c2d.js +1 -0
  879. package/app/.next-cli-build/static/chunks/app/api/pricing/route-d23122546cc60c2d.js +1 -0
  880. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-d23122546cc60c2d.js +1 -0
  881. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-d23122546cc60c2d.js +1 -0
  882. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-d23122546cc60c2d.js +1 -0
  883. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/batch/route-d23122546cc60c2d.js +1 -0
  884. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/cache/route-d23122546cc60c2d.js +1 -0
  885. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/prepare/route-d23122546cc60c2d.js +1 -0
  886. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-d23122546cc60c2d.js +1 -0
  887. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/route-d23122546cc60c2d.js +1 -0
  888. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-d23122546cc60c2d.js +1 -0
  889. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-d23122546cc60c2d.js +1 -0
  890. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-d23122546cc60c2d.js +1 -0
  891. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-d23122546cc60c2d.js +1 -0
  892. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-d23122546cc60c2d.js +1 -0
  893. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-d23122546cc60c2d.js +1 -0
  894. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-d23122546cc60c2d.js +1 -0
  895. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-d23122546cc60c2d.js +1 -0
  896. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-d23122546cc60c2d.js +1 -0
  897. package/app/.next-cli-build/static/chunks/app/api/providers/route-d23122546cc60c2d.js +1 -0
  898. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-d23122546cc60c2d.js +1 -0
  899. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-d23122546cc60c2d.js +1 -0
  900. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-d23122546cc60c2d.js +1 -0
  901. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-d23122546cc60c2d.js +1 -0
  902. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-d23122546cc60c2d.js +1 -0
  903. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-d23122546cc60c2d.js +1 -0
  904. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-d23122546cc60c2d.js +1 -0
  905. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-d23122546cc60c2d.js +1 -0
  906. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-d23122546cc60c2d.js +1 -0
  907. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-d23122546cc60c2d.js +1 -0
  908. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-d23122546cc60c2d.js +1 -0
  909. package/app/.next-cli-build/static/chunks/app/api/routing/feedback/route-d23122546cc60c2d.js +1 -0
  910. package/app/.next-cli-build/static/chunks/app/api/routing/insights/route-d23122546cc60c2d.js +1 -0
  911. package/app/.next-cli-build/static/chunks/app/api/routing/learn/route-d23122546cc60c2d.js +1 -0
  912. package/app/.next-cli-build/static/chunks/app/api/routing/stats/route-d23122546cc60c2d.js +1 -0
  913. package/app/.next-cli-build/static/chunks/app/api/routing/versions/promote/route-d23122546cc60c2d.js +1 -0
  914. package/app/.next-cli-build/static/chunks/app/api/routing/versions/rollback/route-d23122546cc60c2d.js +1 -0
  915. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-d23122546cc60c2d.js +1 -0
  916. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-d23122546cc60c2d.js +1 -0
  917. package/app/.next-cli-build/static/chunks/app/api/settings/route-d23122546cc60c2d.js +1 -0
  918. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-d23122546cc60c2d.js +1 -0
  919. package/app/.next-cli-build/static/chunks/app/api/skills/[id]/route-d23122546cc60c2d.js +1 -0
  920. package/app/.next-cli-build/static/chunks/app/api/tags/route-d23122546cc60c2d.js +1 -0
  921. package/app/.next-cli-build/static/chunks/app/api/token-saver/vault-stats/route-d23122546cc60c2d.js +1 -0
  922. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-d23122546cc60c2d.js +1 -0
  923. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-d23122546cc60c2d.js +1 -0
  924. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-d23122546cc60c2d.js +1 -0
  925. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-d23122546cc60c2d.js +1 -0
  926. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-d23122546cc60c2d.js +1 -0
  927. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-d23122546cc60c2d.js +1 -0
  928. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-d23122546cc60c2d.js +1 -0
  929. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-d23122546cc60c2d.js +1 -0
  930. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-d23122546cc60c2d.js +1 -0
  931. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-d23122546cc60c2d.js +1 -0
  932. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-d23122546cc60c2d.js +1 -0
  933. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-d23122546cc60c2d.js +1 -0
  934. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/[id]/route-d23122546cc60c2d.js +1 -0
  935. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-d23122546cc60c2d.js +1 -0
  936. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-d23122546cc60c2d.js +1 -0
  937. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-d23122546cc60c2d.js +1 -0
  938. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-d23122546cc60c2d.js +1 -0
  939. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-d23122546cc60c2d.js +1 -0
  940. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-d23122546cc60c2d.js +1 -0
  941. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-d23122546cc60c2d.js +1 -0
  942. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-d23122546cc60c2d.js +1 -0
  943. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-d23122546cc60c2d.js +1 -0
  944. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-d23122546cc60c2d.js +1 -0
  945. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-d23122546cc60c2d.js +1 -0
  946. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-d23122546cc60c2d.js +1 -0
  947. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-d23122546cc60c2d.js +1 -0
  948. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-d23122546cc60c2d.js +1 -0
  949. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-d23122546cc60c2d.js +1 -0
  950. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-d23122546cc60c2d.js +1 -0
  951. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-d23122546cc60c2d.js +1 -0
  952. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-d23122546cc60c2d.js +1 -0
  953. package/app/.next-cli-build/static/chunks/app/api/v1/route-d23122546cc60c2d.js +1 -0
  954. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-d23122546cc60c2d.js +1 -0
  955. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-d23122546cc60c2d.js +1 -0
  956. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-d23122546cc60c2d.js +1 -0
  957. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-d23122546cc60c2d.js +1 -0
  958. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-d23122546cc60c2d.js +1 -0
  959. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-d23122546cc60c2d.js +1 -0
  960. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-d23122546cc60c2d.js +1 -0
  961. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-d23122546cc60c2d.js +1 -0
  962. package/app/.next-cli-build/static/chunks/app/api/version/route-d23122546cc60c2d.js +1 -0
  963. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-d23122546cc60c2d.js +1 -0
  964. package/app/.next-cli-build/static/chunks/app/api/version/update/route-d23122546cc60c2d.js +1 -0
  965. package/app/.next-cli-build/static/chunks/app/landing/page-b2d84fd7a580e623.js +1 -0
  966. package/app/.next-cli-build/static/chunks/app/login/page-d23122546cc60c2d.js +1 -0
  967. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-d23122546cc60c2d.js +1 -0
  968. package/app/.next-cli-build/static/chunks/app/page-d23122546cc60c2d.js +1 -0
  969. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-d23122546cc60c2d.js +1 -0
  970. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-d23122546cc60c2d.js +1 -0
  971. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-d23122546cc60c2d.js +1 -0
  972. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-d23122546cc60c2d.js +1 -0
  973. package/app/.next-cli-build/static/css/ec805e65297c40c7.css +1 -0
  974. package/app/.next-cli-build/static/media/catalog.fb7b1b70.json +1722 -0
  975. package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
  976. package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
  977. package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
  978. package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
  979. package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
  980. package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
  981. package/app/open-sse/providers/generated/catalog.json +143 -131
  982. package/app/package.json +1 -1
  983. package/app/public/i18n/literals/zh-CN.json +17 -1
  984. package/app/src/lib/db/adapters/betterSqliteAdapter.js +2 -2
  985. package/app/src/lib/db/adapters/sqljsAdapter.js +5 -4
  986. package/app/src/lib/updater/updater.js +7 -2
  987. package/app/src/mitm/server.js +34 -34
  988. package/cli.js +67 -24
  989. package/hooks/trayRuntime.js +72 -17
  990. package/package.json +1 -1
  991. package/src/cli/api/client.js +9 -3
  992. package/src/cli/cliOptions.js +1 -1
  993. package/src/cli/commands/xaiVideo.js +31 -8
  994. package/src/cli/interfaceMenu.js +12 -1
  995. package/src/cli/processManager.js +47 -1
  996. package/src/cli/serverStatus.js +32 -9
  997. package/src/cli/terminalUI.js +5 -2
  998. package/src/cli/tray/autostart.js +20 -4
  999. package/src/cli/tray/tray.js +4 -1
  1000. package/src/cli/tray/trayWin.js +23 -3
  1001. package/src/cli/utils/display.js +20 -0
  1002. package/app/.next/static/GP6N1FvEOE4uYUrdrCir5/_buildManifest.js +0 -1
  1003. package/app/.next/static/chunks/1321-f49cd2f61cbf7361.js +0 -1
  1004. package/app/.next/static/chunks/1330-56405eca78b12fee.js +0 -7
  1005. package/app/.next/static/chunks/3531-eb5d385c954b3765.js +0 -68
  1006. package/app/.next/static/chunks/4707-1ec0b2edbb07f455.js +0 -1
  1007. package/app/.next/static/chunks/app/(dashboard)/dashboard/agent-library/page-40f3ca16440f8e17.js +0 -1
  1008. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-0e1d54e59ac767a1.js +0 -1
  1009. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-af0d85c06970853b.js +0 -1
  1010. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-2cfc2352bc42d9b8.js +0 -1
  1011. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-62cd36ee99eaa630.js +0 -1
  1012. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/routing/page-0b02e9a2f1cc6e43.js +0 -1
  1013. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-ded6ec41e583b3b3.js +0 -1
  1014. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-ca47b09e6ed6ae7b.js +0 -16
  1015. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-78d098f14f8cff05.js +0 -59
  1016. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-d1654fba27199492.js +0 -1
  1017. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-ff13a39fb7744f5e.js +0 -4
  1018. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/page-919f3eec8dfc9b6e.js +0 -1
  1019. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-db19da41661d630b.js +0 -1
  1020. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-309b09a142a2995d.js +0 -1
  1021. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-86cd6523dcd61f1b.js +0 -1
  1022. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-ae6cf9ce7ac84eb7.js +0 -1
  1023. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-97e0f7067cab0724.js +0 -10
  1024. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-413b59dd764a1563.js +0 -1
  1025. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-31212a5a4a9825b0.js +0 -1
  1026. package/app/.next/static/chunks/app/(dashboard)/dashboard/pxpipe/page-1805f993834a1adb.js +0 -1
  1027. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-798a65a8c4d2708a.js +0 -1
  1028. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-aba614778bfe50ad.js +0 -1
  1029. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-645e7c5ec034fe8c.js +0 -1
  1030. package/app/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-1711a424a8dcad0e.js +0 -1
  1031. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-0c7b901caf8614b9.js +0 -1
  1032. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-b085086e6c5b9387.js +0 -1
  1033. package/app/.next/static/chunks/app/(dashboard)/layout-59baac68c7aedd25.js +0 -1
  1034. package/app/.next/static/chunks/app/_global-error/page-e5f03432dd0bcd61.js +0 -1
  1035. package/app/.next/static/chunks/app/api/agent-library/catalog/route-e5f03432dd0bcd61.js +0 -1
  1036. package/app/.next/static/chunks/app/api/agent-library/doctor/route-e5f03432dd0bcd61.js +0 -1
  1037. package/app/.next/static/chunks/app/api/agent-library/export/route-e5f03432dd0bcd61.js +0 -1
  1038. package/app/.next/static/chunks/app/api/agent-library/mcp/route-e5f03432dd0bcd61.js +0 -1
  1039. package/app/.next/static/chunks/app/api/agent-library/route-e5f03432dd0bcd61.js +0 -1
  1040. package/app/.next/static/chunks/app/api/agent-library/skills/route-e5f03432dd0bcd61.js +0 -1
  1041. package/app/.next/static/chunks/app/api/agent-library/sync/route-e5f03432dd0bcd61.js +0 -1
  1042. package/app/.next/static/chunks/app/api/agent-library/updates/route-e5f03432dd0bcd61.js +0 -1
  1043. package/app/.next/static/chunks/app/api/auth/status/route-e5f03432dd0bcd61.js +0 -1
  1044. package/app/.next/static/chunks/app/api/cli-tools/aider-settings/route-e5f03432dd0bcd61.js +0 -1
  1045. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-e5f03432dd0bcd61.js +0 -1
  1046. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-e5f03432dd0bcd61.js +0 -1
  1047. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-e5f03432dd0bcd61.js +0 -1
  1048. package/app/.next/static/chunks/app/api/cli-tools/claude-full-catalog/route-e5f03432dd0bcd61.js +0 -1
  1049. package/app/.next/static/chunks/app/api/cli-tools/claude-picker-labels/route-e5f03432dd0bcd61.js +0 -1
  1050. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-e5f03432dd0bcd61.js +0 -1
  1051. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-e5f03432dd0bcd61.js +0 -1
  1052. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-e5f03432dd0bcd61.js +0 -1
  1053. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-e5f03432dd0bcd61.js +0 -1
  1054. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-e5f03432dd0bcd61.js +0 -1
  1055. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-e5f03432dd0bcd61.js +0 -1
  1056. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-e5f03432dd0bcd61.js +0 -1
  1057. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-e5f03432dd0bcd61.js +0 -1
  1058. package/app/.next/static/chunks/app/api/cli-tools/gemini-cli-settings/route-e5f03432dd0bcd61.js +0 -1
  1059. package/app/.next/static/chunks/app/api/cli-tools/grok-settings/route-e5f03432dd0bcd61.js +0 -1
  1060. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-e5f03432dd0bcd61.js +0 -1
  1061. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-e5f03432dd0bcd61.js +0 -1
  1062. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-e5f03432dd0bcd61.js +0 -1
  1063. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-e5f03432dd0bcd61.js +0 -1
  1064. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-e5f03432dd0bcd61.js +0 -1
  1065. package/app/.next/static/chunks/app/api/cli-tools/pi-settings/route-e5f03432dd0bcd61.js +0 -1
  1066. package/app/.next/static/chunks/app/api/cli-tools/picker-labels/route-e5f03432dd0bcd61.js +0 -1
  1067. package/app/.next/static/chunks/app/api/combos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1068. package/app/.next/static/chunks/app/api/combos/route-e5f03432dd0bcd61.js +0 -1
  1069. package/app/.next/static/chunks/app/api/headroom/extras/route-e5f03432dd0bcd61.js +0 -1
  1070. package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-e5f03432dd0bcd61.js +0 -1
  1071. package/app/.next/static/chunks/app/api/headroom/restart/route-e5f03432dd0bcd61.js +0 -1
  1072. package/app/.next/static/chunks/app/api/headroom/start/route-e5f03432dd0bcd61.js +0 -1
  1073. package/app/.next/static/chunks/app/api/headroom/status/route-e5f03432dd0bcd61.js +0 -1
  1074. package/app/.next/static/chunks/app/api/headroom/stop/route-e5f03432dd0bcd61.js +0 -1
  1075. package/app/.next/static/chunks/app/api/health/route-e5f03432dd0bcd61.js +0 -1
  1076. package/app/.next/static/chunks/app/api/keys/[id]/route-e5f03432dd0bcd61.js +0 -1
  1077. package/app/.next/static/chunks/app/api/keys/route-e5f03432dd0bcd61.js +0 -1
  1078. package/app/.next/static/chunks/app/api/locale/route-e5f03432dd0bcd61.js +0 -1
  1079. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-e5f03432dd0bcd61.js +0 -1
  1080. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-e5f03432dd0bcd61.js +0 -1
  1081. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-e5f03432dd0bcd61.js +0 -1
  1082. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-e5f03432dd0bcd61.js +0 -1
  1083. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-e5f03432dd0bcd61.js +0 -1
  1084. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-e5f03432dd0bcd61.js +0 -1
  1085. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-e5f03432dd0bcd61.js +0 -1
  1086. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1087. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-e5f03432dd0bcd61.js +0 -1
  1088. package/app/.next/static/chunks/app/api/mgmt/v1/combos/route-e5f03432dd0bcd61.js +0 -1
  1089. package/app/.next/static/chunks/app/api/mgmt/v1/health/route-e5f03432dd0bcd61.js +0 -1
  1090. package/app/.next/static/chunks/app/api/mgmt/v1/metrics/route-e5f03432dd0bcd61.js +0 -1
  1091. package/app/.next/static/chunks/app/api/mgmt/v1/providers/route-e5f03432dd0bcd61.js +0 -1
  1092. package/app/.next/static/chunks/app/api/mgmt/v1/routing/route-e5f03432dd0bcd61.js +0 -1
  1093. package/app/.next/static/chunks/app/api/mgmt/v1/usage/route-e5f03432dd0bcd61.js +0 -1
  1094. package/app/.next/static/chunks/app/api/mgmt/v1/version/route-e5f03432dd0bcd61.js +0 -1
  1095. package/app/.next/static/chunks/app/api/models/alias/route-e5f03432dd0bcd61.js +0 -1
  1096. package/app/.next/static/chunks/app/api/models/availability/route-e5f03432dd0bcd61.js +0 -1
  1097. package/app/.next/static/chunks/app/api/models/custom/route-e5f03432dd0bcd61.js +0 -1
  1098. package/app/.next/static/chunks/app/api/models/disabled/route-e5f03432dd0bcd61.js +0 -1
  1099. package/app/.next/static/chunks/app/api/models/route-e5f03432dd0bcd61.js +0 -1
  1100. package/app/.next/static/chunks/app/api/models/test/route-e5f03432dd0bcd61.js +0 -1
  1101. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-e5f03432dd0bcd61.js +0 -1
  1102. package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-e5f03432dd0bcd61.js +0 -1
  1103. package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-e5f03432dd0bcd61.js +0 -1
  1104. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-e5f03432dd0bcd61.js +0 -1
  1105. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-e5f03432dd0bcd61.js +0 -1
  1106. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-e5f03432dd0bcd61.js +0 -1
  1107. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-e5f03432dd0bcd61.js +0 -1
  1108. package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-e5f03432dd0bcd61.js +0 -1
  1109. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-e5f03432dd0bcd61.js +0 -1
  1110. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-e5f03432dd0bcd61.js +0 -1
  1111. package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-e5f03432dd0bcd61.js +0 -1
  1112. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-e5f03432dd0bcd61.js +0 -1
  1113. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-e5f03432dd0bcd61.js +0 -1
  1114. package/app/.next/static/chunks/app/api/pricing/route-e5f03432dd0bcd61.js +0 -1
  1115. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-e5f03432dd0bcd61.js +0 -1
  1116. package/app/.next/static/chunks/app/api/provider-nodes/route-e5f03432dd0bcd61.js +0 -1
  1117. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-e5f03432dd0bcd61.js +0 -1
  1118. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/batch/route-e5f03432dd0bcd61.js +0 -1
  1119. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/cache/route-e5f03432dd0bcd61.js +0 -1
  1120. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/prepare/route-e5f03432dd0bcd61.js +0 -1
  1121. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-e5f03432dd0bcd61.js +0 -1
  1122. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/route-e5f03432dd0bcd61.js +0 -1
  1123. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-e5f03432dd0bcd61.js +0 -1
  1124. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-e5f03432dd0bcd61.js +0 -1
  1125. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-e5f03432dd0bcd61.js +0 -1
  1126. package/app/.next/static/chunks/app/api/providers/[id]/models/route-e5f03432dd0bcd61.js +0 -1
  1127. package/app/.next/static/chunks/app/api/providers/[id]/route-e5f03432dd0bcd61.js +0 -1
  1128. package/app/.next/static/chunks/app/api/providers/[id]/test/route-e5f03432dd0bcd61.js +0 -1
  1129. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-e5f03432dd0bcd61.js +0 -1
  1130. package/app/.next/static/chunks/app/api/providers/client/route-e5f03432dd0bcd61.js +0 -1
  1131. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-e5f03432dd0bcd61.js +0 -1
  1132. package/app/.next/static/chunks/app/api/providers/route-e5f03432dd0bcd61.js +0 -1
  1133. package/app/.next/static/chunks/app/api/providers/suggested-models/route-e5f03432dd0bcd61.js +0 -1
  1134. package/app/.next/static/chunks/app/api/providers/test-batch/route-e5f03432dd0bcd61.js +0 -1
  1135. package/app/.next/static/chunks/app/api/providers/validate/route-e5f03432dd0bcd61.js +0 -1
  1136. package/app/.next/static/chunks/app/api/pxpipe/health/route-e5f03432dd0bcd61.js +0 -1
  1137. package/app/.next/static/chunks/app/api/pxpipe/install/route-e5f03432dd0bcd61.js +0 -1
  1138. package/app/.next/static/chunks/app/api/pxpipe/logs/route-e5f03432dd0bcd61.js +0 -1
  1139. package/app/.next/static/chunks/app/api/pxpipe/restart/route-e5f03432dd0bcd61.js +0 -1
  1140. package/app/.next/static/chunks/app/api/pxpipe/start/route-e5f03432dd0bcd61.js +0 -1
  1141. package/app/.next/static/chunks/app/api/pxpipe/stats/route-e5f03432dd0bcd61.js +0 -1
  1142. package/app/.next/static/chunks/app/api/pxpipe/status/route-e5f03432dd0bcd61.js +0 -1
  1143. package/app/.next/static/chunks/app/api/pxpipe/stop/route-e5f03432dd0bcd61.js +0 -1
  1144. package/app/.next/static/chunks/app/api/routing/feedback/route-e5f03432dd0bcd61.js +0 -1
  1145. package/app/.next/static/chunks/app/api/routing/insights/route-e5f03432dd0bcd61.js +0 -1
  1146. package/app/.next/static/chunks/app/api/routing/learn/route-e5f03432dd0bcd61.js +0 -1
  1147. package/app/.next/static/chunks/app/api/routing/stats/route-e5f03432dd0bcd61.js +0 -1
  1148. package/app/.next/static/chunks/app/api/routing/versions/promote/route-e5f03432dd0bcd61.js +0 -1
  1149. package/app/.next/static/chunks/app/api/routing/versions/rollback/route-e5f03432dd0bcd61.js +0 -1
  1150. package/app/.next/static/chunks/app/api/settings/database/route-e5f03432dd0bcd61.js +0 -1
  1151. package/app/.next/static/chunks/app/api/settings/proxy-test/route-e5f03432dd0bcd61.js +0 -1
  1152. package/app/.next/static/chunks/app/api/settings/route-e5f03432dd0bcd61.js +0 -1
  1153. package/app/.next/static/chunks/app/api/shutdown/route-e5f03432dd0bcd61.js +0 -1
  1154. package/app/.next/static/chunks/app/api/skills/[id]/route-e5f03432dd0bcd61.js +0 -1
  1155. package/app/.next/static/chunks/app/api/tags/route-e5f03432dd0bcd61.js +0 -1
  1156. package/app/.next/static/chunks/app/api/token-saver/vault-stats/route-e5f03432dd0bcd61.js +0 -1
  1157. package/app/.next/static/chunks/app/api/translator/console-logs/route-e5f03432dd0bcd61.js +0 -1
  1158. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-e5f03432dd0bcd61.js +0 -1
  1159. package/app/.next/static/chunks/app/api/translator/load/route-e5f03432dd0bcd61.js +0 -1
  1160. package/app/.next/static/chunks/app/api/translator/save/route-e5f03432dd0bcd61.js +0 -1
  1161. package/app/.next/static/chunks/app/api/translator/send/route-e5f03432dd0bcd61.js +0 -1
  1162. package/app/.next/static/chunks/app/api/translator/translate/route-e5f03432dd0bcd61.js +0 -1
  1163. package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-e5f03432dd0bcd61.js +0 -1
  1164. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-e5f03432dd0bcd61.js +0 -1
  1165. package/app/.next/static/chunks/app/api/usage/chart/route-e5f03432dd0bcd61.js +0 -1
  1166. package/app/.next/static/chunks/app/api/usage/history/route-e5f03432dd0bcd61.js +0 -1
  1167. package/app/.next/static/chunks/app/api/usage/logs/route-e5f03432dd0bcd61.js +0 -1
  1168. package/app/.next/static/chunks/app/api/usage/providers/route-e5f03432dd0bcd61.js +0 -1
  1169. package/app/.next/static/chunks/app/api/usage/request-details/route-e5f03432dd0bcd61.js +0 -1
  1170. package/app/.next/static/chunks/app/api/usage/request-logs/route-e5f03432dd0bcd61.js +0 -1
  1171. package/app/.next/static/chunks/app/api/usage/stats/route-e5f03432dd0bcd61.js +0 -1
  1172. package/app/.next/static/chunks/app/api/usage/stream/route-e5f03432dd0bcd61.js +0 -1
  1173. package/app/.next/static/chunks/app/api/v1/api/chat/route-e5f03432dd0bcd61.js +0 -1
  1174. package/app/.next/static/chunks/app/api/v1/audio/speech/route-e5f03432dd0bcd61.js +0 -1
  1175. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-e5f03432dd0bcd61.js +0 -1
  1176. package/app/.next/static/chunks/app/api/v1/audio/voices/route-e5f03432dd0bcd61.js +0 -1
  1177. package/app/.next/static/chunks/app/api/v1/chat/completions/route-e5f03432dd0bcd61.js +0 -1
  1178. package/app/.next/static/chunks/app/api/v1/embeddings/route-e5f03432dd0bcd61.js +0 -1
  1179. package/app/.next/static/chunks/app/api/v1/images/generations/route-e5f03432dd0bcd61.js +0 -1
  1180. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-e5f03432dd0bcd61.js +0 -1
  1181. package/app/.next/static/chunks/app/api/v1/messages/route-e5f03432dd0bcd61.js +0 -1
  1182. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-e5f03432dd0bcd61.js +0 -1
  1183. package/app/.next/static/chunks/app/api/v1/models/info/route-e5f03432dd0bcd61.js +0 -1
  1184. package/app/.next/static/chunks/app/api/v1/models/route-e5f03432dd0bcd61.js +0 -1
  1185. package/app/.next/static/chunks/app/api/v1/responses/compact/route-e5f03432dd0bcd61.js +0 -1
  1186. package/app/.next/static/chunks/app/api/v1/responses/route-e5f03432dd0bcd61.js +0 -1
  1187. package/app/.next/static/chunks/app/api/v1/route-e5f03432dd0bcd61.js +0 -1
  1188. package/app/.next/static/chunks/app/api/v1/search/route-e5f03432dd0bcd61.js +0 -1
  1189. package/app/.next/static/chunks/app/api/v1/videos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1190. package/app/.next/static/chunks/app/api/v1/videos/edits/route-e5f03432dd0bcd61.js +0 -1
  1191. package/app/.next/static/chunks/app/api/v1/videos/extensions/route-e5f03432dd0bcd61.js +0 -1
  1192. package/app/.next/static/chunks/app/api/v1/videos/generations/route-e5f03432dd0bcd61.js +0 -1
  1193. package/app/.next/static/chunks/app/api/v1/web/fetch/route-e5f03432dd0bcd61.js +0 -1
  1194. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-e5f03432dd0bcd61.js +0 -1
  1195. package/app/.next/static/chunks/app/api/v1beta/models/route-e5f03432dd0bcd61.js +0 -1
  1196. package/app/.next/static/chunks/app/api/version/route-e5f03432dd0bcd61.js +0 -1
  1197. package/app/.next/static/chunks/app/api/version/shutdown/route-e5f03432dd0bcd61.js +0 -1
  1198. package/app/.next/static/chunks/app/api/version/update/route-e5f03432dd0bcd61.js +0 -1
  1199. package/app/.next/static/chunks/app/landing/page-9e06d57d9b215fd7.js +0 -1
  1200. package/app/.next/static/chunks/app/login/page-e5f03432dd0bcd61.js +0 -1
  1201. package/app/.next/static/chunks/app/manifest.webmanifest/route-e5f03432dd0bcd61.js +0 -1
  1202. package/app/.next/static/chunks/app/page-e5f03432dd0bcd61.js +0 -1
  1203. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-e5f03432dd0bcd61.js +0 -1
  1204. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-e5f03432dd0bcd61.js +0 -1
  1205. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-e5f03432dd0bcd61.js +0 -1
  1206. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-e5f03432dd0bcd61.js +0 -1
  1207. package/app/.next/static/css/196a6347b9104610.css +0 -1
  1208. package/app/.next/static/media/catalog.e7ada387.json +0 -1710
  1209. package/app/.next-cli-build/server/chunks/1350.js +0 -1
  1210. package/app/.next-cli-build/server/chunks/159.js +0 -1
  1211. package/app/.next-cli-build/server/chunks/1656.js +0 -2
  1212. package/app/.next-cli-build/server/chunks/194.js +0 -1
  1213. package/app/.next-cli-build/server/chunks/3026.js +0 -1
  1214. package/app/.next-cli-build/server/chunks/3072.js +0 -2
  1215. package/app/.next-cli-build/server/chunks/3986.js +0 -121
  1216. package/app/.next-cli-build/server/chunks/5573.js +0 -1
  1217. package/app/.next-cli-build/server/chunks/5616.js +0 -1
  1218. package/app/.next-cli-build/server/chunks/5913.js +0 -1
  1219. package/app/.next-cli-build/server/chunks/6052.js +0 -2
  1220. package/app/.next-cli-build/server/chunks/6182.js +0 -63
  1221. package/app/.next-cli-build/server/chunks/6274.js +0 -1
  1222. package/app/.next-cli-build/server/chunks/6347.js +0 -1
  1223. package/app/.next-cli-build/server/chunks/6395.js +0 -68
  1224. package/app/.next-cli-build/server/chunks/6985.js +0 -1
  1225. package/app/.next-cli-build/server/chunks/849.js +0 -1
  1226. package/app/.next-cli-build/server/chunks/8658.js +0 -1
  1227. package/app/.next-cli-build/server/chunks/8834.js +0 -7
  1228. package/app/.next-cli-build/server/chunks/940.js +0 -246
  1229. package/app/.next-cli-build/server/chunks/9508.js +0 -45
  1230. package/app/.next-cli-build/server/chunks/9617.js +0 -1
  1231. package/app/.next-cli-build/server/chunks/static/media/catalog.e7ada387.json +0 -1710
  1232. package/app/.next-cli-build/static/GP6N1FvEOE4uYUrdrCir5/_buildManifest.js +0 -1
  1233. package/app/.next-cli-build/static/chunks/1321-f49cd2f61cbf7361.js +0 -1
  1234. package/app/.next-cli-build/static/chunks/1330-56405eca78b12fee.js +0 -7
  1235. package/app/.next-cli-build/static/chunks/3531-eb5d385c954b3765.js +0 -68
  1236. package/app/.next-cli-build/static/chunks/4707-1ec0b2edbb07f455.js +0 -1
  1237. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/agent-library/page-40f3ca16440f8e17.js +0 -1
  1238. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-0e1d54e59ac767a1.js +0 -1
  1239. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-af0d85c06970853b.js +0 -1
  1240. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-2cfc2352bc42d9b8.js +0 -1
  1241. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-62cd36ee99eaa630.js +0 -1
  1242. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/routing/page-0b02e9a2f1cc6e43.js +0 -1
  1243. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-ded6ec41e583b3b3.js +0 -1
  1244. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-ca47b09e6ed6ae7b.js +0 -16
  1245. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-78d098f14f8cff05.js +0 -59
  1246. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-d1654fba27199492.js +0 -1
  1247. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-ff13a39fb7744f5e.js +0 -4
  1248. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/page-919f3eec8dfc9b6e.js +0 -1
  1249. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-db19da41661d630b.js +0 -1
  1250. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-309b09a142a2995d.js +0 -1
  1251. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-86cd6523dcd61f1b.js +0 -1
  1252. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-ae6cf9ce7ac84eb7.js +0 -1
  1253. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-97e0f7067cab0724.js +0 -10
  1254. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-413b59dd764a1563.js +0 -1
  1255. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-31212a5a4a9825b0.js +0 -1
  1256. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-1805f993834a1adb.js +0 -1
  1257. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-798a65a8c4d2708a.js +0 -1
  1258. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-aba614778bfe50ad.js +0 -1
  1259. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-645e7c5ec034fe8c.js +0 -1
  1260. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-1711a424a8dcad0e.js +0 -1
  1261. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-0c7b901caf8614b9.js +0 -1
  1262. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-b085086e6c5b9387.js +0 -1
  1263. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-59baac68c7aedd25.js +0 -1
  1264. package/app/.next-cli-build/static/chunks/app/_global-error/page-e5f03432dd0bcd61.js +0 -1
  1265. package/app/.next-cli-build/static/chunks/app/api/agent-library/catalog/route-e5f03432dd0bcd61.js +0 -1
  1266. package/app/.next-cli-build/static/chunks/app/api/agent-library/doctor/route-e5f03432dd0bcd61.js +0 -1
  1267. package/app/.next-cli-build/static/chunks/app/api/agent-library/export/route-e5f03432dd0bcd61.js +0 -1
  1268. package/app/.next-cli-build/static/chunks/app/api/agent-library/mcp/route-e5f03432dd0bcd61.js +0 -1
  1269. package/app/.next-cli-build/static/chunks/app/api/agent-library/route-e5f03432dd0bcd61.js +0 -1
  1270. package/app/.next-cli-build/static/chunks/app/api/agent-library/skills/route-e5f03432dd0bcd61.js +0 -1
  1271. package/app/.next-cli-build/static/chunks/app/api/agent-library/sync/route-e5f03432dd0bcd61.js +0 -1
  1272. package/app/.next-cli-build/static/chunks/app/api/agent-library/updates/route-e5f03432dd0bcd61.js +0 -1
  1273. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-e5f03432dd0bcd61.js +0 -1
  1274. package/app/.next-cli-build/static/chunks/app/api/cli-tools/aider-settings/route-e5f03432dd0bcd61.js +0 -1
  1275. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-e5f03432dd0bcd61.js +0 -1
  1276. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-e5f03432dd0bcd61.js +0 -1
  1277. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-e5f03432dd0bcd61.js +0 -1
  1278. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-full-catalog/route-e5f03432dd0bcd61.js +0 -1
  1279. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-picker-labels/route-e5f03432dd0bcd61.js +0 -1
  1280. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-e5f03432dd0bcd61.js +0 -1
  1281. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-e5f03432dd0bcd61.js +0 -1
  1282. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-e5f03432dd0bcd61.js +0 -1
  1283. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-e5f03432dd0bcd61.js +0 -1
  1284. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-e5f03432dd0bcd61.js +0 -1
  1285. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-e5f03432dd0bcd61.js +0 -1
  1286. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-e5f03432dd0bcd61.js +0 -1
  1287. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-e5f03432dd0bcd61.js +0 -1
  1288. package/app/.next-cli-build/static/chunks/app/api/cli-tools/gemini-cli-settings/route-e5f03432dd0bcd61.js +0 -1
  1289. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-settings/route-e5f03432dd0bcd61.js +0 -1
  1290. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-e5f03432dd0bcd61.js +0 -1
  1291. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-e5f03432dd0bcd61.js +0 -1
  1292. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-e5f03432dd0bcd61.js +0 -1
  1293. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-e5f03432dd0bcd61.js +0 -1
  1294. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-e5f03432dd0bcd61.js +0 -1
  1295. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-e5f03432dd0bcd61.js +0 -1
  1296. package/app/.next-cli-build/static/chunks/app/api/cli-tools/picker-labels/route-e5f03432dd0bcd61.js +0 -1
  1297. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1298. package/app/.next-cli-build/static/chunks/app/api/combos/route-e5f03432dd0bcd61.js +0 -1
  1299. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-e5f03432dd0bcd61.js +0 -1
  1300. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-e5f03432dd0bcd61.js +0 -1
  1301. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-e5f03432dd0bcd61.js +0 -1
  1302. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-e5f03432dd0bcd61.js +0 -1
  1303. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-e5f03432dd0bcd61.js +0 -1
  1304. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-e5f03432dd0bcd61.js +0 -1
  1305. package/app/.next-cli-build/static/chunks/app/api/health/route-e5f03432dd0bcd61.js +0 -1
  1306. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-e5f03432dd0bcd61.js +0 -1
  1307. package/app/.next-cli-build/static/chunks/app/api/keys/route-e5f03432dd0bcd61.js +0 -1
  1308. package/app/.next-cli-build/static/chunks/app/api/locale/route-e5f03432dd0bcd61.js +0 -1
  1309. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-e5f03432dd0bcd61.js +0 -1
  1310. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-e5f03432dd0bcd61.js +0 -1
  1311. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-e5f03432dd0bcd61.js +0 -1
  1312. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-e5f03432dd0bcd61.js +0 -1
  1313. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-e5f03432dd0bcd61.js +0 -1
  1314. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-e5f03432dd0bcd61.js +0 -1
  1315. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-e5f03432dd0bcd61.js +0 -1
  1316. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1317. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-e5f03432dd0bcd61.js +0 -1
  1318. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/route-e5f03432dd0bcd61.js +0 -1
  1319. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/health/route-e5f03432dd0bcd61.js +0 -1
  1320. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/metrics/route-e5f03432dd0bcd61.js +0 -1
  1321. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/providers/route-e5f03432dd0bcd61.js +0 -1
  1322. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/routing/route-e5f03432dd0bcd61.js +0 -1
  1323. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/usage/route-e5f03432dd0bcd61.js +0 -1
  1324. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/version/route-e5f03432dd0bcd61.js +0 -1
  1325. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-e5f03432dd0bcd61.js +0 -1
  1326. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-e5f03432dd0bcd61.js +0 -1
  1327. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-e5f03432dd0bcd61.js +0 -1
  1328. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-e5f03432dd0bcd61.js +0 -1
  1329. package/app/.next-cli-build/static/chunks/app/api/models/route-e5f03432dd0bcd61.js +0 -1
  1330. package/app/.next-cli-build/static/chunks/app/api/models/test/route-e5f03432dd0bcd61.js +0 -1
  1331. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-e5f03432dd0bcd61.js +0 -1
  1332. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-e5f03432dd0bcd61.js +0 -1
  1333. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-e5f03432dd0bcd61.js +0 -1
  1334. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-e5f03432dd0bcd61.js +0 -1
  1335. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-e5f03432dd0bcd61.js +0 -1
  1336. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-e5f03432dd0bcd61.js +0 -1
  1337. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-e5f03432dd0bcd61.js +0 -1
  1338. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-e5f03432dd0bcd61.js +0 -1
  1339. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-e5f03432dd0bcd61.js +0 -1
  1340. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-e5f03432dd0bcd61.js +0 -1
  1341. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-e5f03432dd0bcd61.js +0 -1
  1342. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-e5f03432dd0bcd61.js +0 -1
  1343. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-e5f03432dd0bcd61.js +0 -1
  1344. package/app/.next-cli-build/static/chunks/app/api/pricing/route-e5f03432dd0bcd61.js +0 -1
  1345. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-e5f03432dd0bcd61.js +0 -1
  1346. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-e5f03432dd0bcd61.js +0 -1
  1347. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-e5f03432dd0bcd61.js +0 -1
  1348. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/batch/route-e5f03432dd0bcd61.js +0 -1
  1349. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/cache/route-e5f03432dd0bcd61.js +0 -1
  1350. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/prepare/route-e5f03432dd0bcd61.js +0 -1
  1351. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-e5f03432dd0bcd61.js +0 -1
  1352. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/route-e5f03432dd0bcd61.js +0 -1
  1353. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-e5f03432dd0bcd61.js +0 -1
  1354. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-e5f03432dd0bcd61.js +0 -1
  1355. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-e5f03432dd0bcd61.js +0 -1
  1356. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-e5f03432dd0bcd61.js +0 -1
  1357. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-e5f03432dd0bcd61.js +0 -1
  1358. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-e5f03432dd0bcd61.js +0 -1
  1359. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-e5f03432dd0bcd61.js +0 -1
  1360. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-e5f03432dd0bcd61.js +0 -1
  1361. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-e5f03432dd0bcd61.js +0 -1
  1362. package/app/.next-cli-build/static/chunks/app/api/providers/route-e5f03432dd0bcd61.js +0 -1
  1363. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-e5f03432dd0bcd61.js +0 -1
  1364. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-e5f03432dd0bcd61.js +0 -1
  1365. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-e5f03432dd0bcd61.js +0 -1
  1366. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-e5f03432dd0bcd61.js +0 -1
  1367. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-e5f03432dd0bcd61.js +0 -1
  1368. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-e5f03432dd0bcd61.js +0 -1
  1369. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-e5f03432dd0bcd61.js +0 -1
  1370. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-e5f03432dd0bcd61.js +0 -1
  1371. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-e5f03432dd0bcd61.js +0 -1
  1372. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-e5f03432dd0bcd61.js +0 -1
  1373. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-e5f03432dd0bcd61.js +0 -1
  1374. package/app/.next-cli-build/static/chunks/app/api/routing/feedback/route-e5f03432dd0bcd61.js +0 -1
  1375. package/app/.next-cli-build/static/chunks/app/api/routing/insights/route-e5f03432dd0bcd61.js +0 -1
  1376. package/app/.next-cli-build/static/chunks/app/api/routing/learn/route-e5f03432dd0bcd61.js +0 -1
  1377. package/app/.next-cli-build/static/chunks/app/api/routing/stats/route-e5f03432dd0bcd61.js +0 -1
  1378. package/app/.next-cli-build/static/chunks/app/api/routing/versions/promote/route-e5f03432dd0bcd61.js +0 -1
  1379. package/app/.next-cli-build/static/chunks/app/api/routing/versions/rollback/route-e5f03432dd0bcd61.js +0 -1
  1380. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-e5f03432dd0bcd61.js +0 -1
  1381. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-e5f03432dd0bcd61.js +0 -1
  1382. package/app/.next-cli-build/static/chunks/app/api/settings/route-e5f03432dd0bcd61.js +0 -1
  1383. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-e5f03432dd0bcd61.js +0 -1
  1384. package/app/.next-cli-build/static/chunks/app/api/skills/[id]/route-e5f03432dd0bcd61.js +0 -1
  1385. package/app/.next-cli-build/static/chunks/app/api/tags/route-e5f03432dd0bcd61.js +0 -1
  1386. package/app/.next-cli-build/static/chunks/app/api/token-saver/vault-stats/route-e5f03432dd0bcd61.js +0 -1
  1387. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-e5f03432dd0bcd61.js +0 -1
  1388. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-e5f03432dd0bcd61.js +0 -1
  1389. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-e5f03432dd0bcd61.js +0 -1
  1390. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-e5f03432dd0bcd61.js +0 -1
  1391. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-e5f03432dd0bcd61.js +0 -1
  1392. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-e5f03432dd0bcd61.js +0 -1
  1393. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-e5f03432dd0bcd61.js +0 -1
  1394. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-e5f03432dd0bcd61.js +0 -1
  1395. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-e5f03432dd0bcd61.js +0 -1
  1396. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-e5f03432dd0bcd61.js +0 -1
  1397. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-e5f03432dd0bcd61.js +0 -1
  1398. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-e5f03432dd0bcd61.js +0 -1
  1399. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-e5f03432dd0bcd61.js +0 -1
  1400. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-e5f03432dd0bcd61.js +0 -1
  1401. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-e5f03432dd0bcd61.js +0 -1
  1402. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-e5f03432dd0bcd61.js +0 -1
  1403. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-e5f03432dd0bcd61.js +0 -1
  1404. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-e5f03432dd0bcd61.js +0 -1
  1405. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-e5f03432dd0bcd61.js +0 -1
  1406. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-e5f03432dd0bcd61.js +0 -1
  1407. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-e5f03432dd0bcd61.js +0 -1
  1408. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-e5f03432dd0bcd61.js +0 -1
  1409. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-e5f03432dd0bcd61.js +0 -1
  1410. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-e5f03432dd0bcd61.js +0 -1
  1411. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-e5f03432dd0bcd61.js +0 -1
  1412. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-e5f03432dd0bcd61.js +0 -1
  1413. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-e5f03432dd0bcd61.js +0 -1
  1414. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-e5f03432dd0bcd61.js +0 -1
  1415. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-e5f03432dd0bcd61.js +0 -1
  1416. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-e5f03432dd0bcd61.js +0 -1
  1417. package/app/.next-cli-build/static/chunks/app/api/v1/route-e5f03432dd0bcd61.js +0 -1
  1418. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-e5f03432dd0bcd61.js +0 -1
  1419. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1420. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-e5f03432dd0bcd61.js +0 -1
  1421. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-e5f03432dd0bcd61.js +0 -1
  1422. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-e5f03432dd0bcd61.js +0 -1
  1423. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-e5f03432dd0bcd61.js +0 -1
  1424. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-e5f03432dd0bcd61.js +0 -1
  1425. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-e5f03432dd0bcd61.js +0 -1
  1426. package/app/.next-cli-build/static/chunks/app/api/version/route-e5f03432dd0bcd61.js +0 -1
  1427. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-e5f03432dd0bcd61.js +0 -1
  1428. package/app/.next-cli-build/static/chunks/app/api/version/update/route-e5f03432dd0bcd61.js +0 -1
  1429. package/app/.next-cli-build/static/chunks/app/landing/page-9e06d57d9b215fd7.js +0 -1
  1430. package/app/.next-cli-build/static/chunks/app/login/page-e5f03432dd0bcd61.js +0 -1
  1431. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-e5f03432dd0bcd61.js +0 -1
  1432. package/app/.next-cli-build/static/chunks/app/page-e5f03432dd0bcd61.js +0 -1
  1433. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-e5f03432dd0bcd61.js +0 -1
  1434. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-e5f03432dd0bcd61.js +0 -1
  1435. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-e5f03432dd0bcd61.js +0 -1
  1436. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-e5f03432dd0bcd61.js +0 -1
  1437. package/app/.next-cli-build/static/css/196a6347b9104610.css +0 -1
  1438. package/app/.next-cli-build/static/media/catalog.e7ada387.json +0 -1710
  1439. /package/app/.next/static/{GP6N1FvEOE4uYUrdrCir5 → Gpu8irTBATTeQnftVm3kL}/_ssgManifest.js +0 -0
  1440. /package/app/.next-cli-build/static/{GP6N1FvEOE4uYUrdrCir5 → Gpu8irTBATTeQnftVm3kL}/_ssgManifest.js +0 -0
package/cli.js CHANGED
@@ -602,7 +602,7 @@ async function showInterfaceMenu(latestVersion, { trayAvailable = true } = {}) {
602
602
  const { selectMenu } = require("./src/cli/utils/input");
603
603
  const { clearScreen } = require("./src/cli/utils/display");
604
604
  const { getEndpoint } = require("./src/cli/utils/endpoint");
605
- const { buildInterfaceMenuItems } = require("./src/cli/interfaceMenu");
605
+ const { buildInterfaceMenuItems, mapInterfaceSelection } = require("./src/cli/interfaceMenu");
606
606
 
607
607
  clearScreen();
608
608
 
@@ -626,11 +626,11 @@ async function showInterfaceMenu(latestVersion, { trayAvailable = true } = {}) {
626
626
  });
627
627
 
628
628
  const selected = await selectMenu(`Choose Interface (v${pkg.version})`, menuItems, 0, subtitle);
629
- return menuItems[selected]?.action || "exit";
629
+ return mapInterfaceSelection(menuItems, selected);
630
630
  }
631
631
 
632
- const MAX_RESTARTS = 2;
633
- const RESTART_RESET_MS = 30000; // Reset counter if alive > 30s
632
+
633
+ const RESTART_RESET_MS = 30000;
634
634
 
635
635
  function startServer(latestVersion) {
636
636
  const displayHost = getDisplayHost();
@@ -641,15 +641,20 @@ function startServer(latestVersion) {
641
641
  if (reachableHost) console.log(`\x1b[33m⚠ Network-exposed: reachable at http://${reachableHost}:${port} (bound ${host}). Use --host 127.0.0.1 for local-only. Non-loopback /v1 requires an API key by default.\x1b[0m`);
642
642
  }
643
643
 
644
- let restartCount = 0;
644
+ let consecutiveCrashes = 0;
645
+ let everHealthy = false;
645
646
  let serverStartTime = Date.now();
646
647
 
647
648
  const CRASH_LOG_LINES = 50;
648
649
  let crashLog = [];
650
+ let lastPrintedCrashLog = "";
649
651
 
650
652
  function spawnServer() {
651
653
  serverStartTime = Date.now();
652
654
  crashLog = [];
655
+ // A restarted child must prove itself healthy again before it earns
656
+ // unbounded restarts.
657
+ everHealthy = false;
653
658
  const child = spawn(RUNTIME, ["--max-old-space-size=6144", serverPath], {
654
659
  cwd: standaloneDir,
655
660
  stdio: ["ignore", "pipe", "pipe"],
@@ -687,8 +692,16 @@ function startServer(latestVersion) {
687
692
  const stopHealthWatchdog = startHealthWatchdog({
688
693
  port,
689
694
  hostname: getProbeHost(),
695
+ onHealthy: () => {
696
+ everHealthy = true;
697
+ if (!isShuttingDown && server?.pid) writeOwnedProcessState(server.pid);
698
+ },
690
699
  onUnhealthy: async () => {
691
- if (isShuttingDown || watchdogRestarting || !server?.pid) return;
700
+ // A child that already exited belongs to the crash-restart path (its
701
+ // respawn timer is pending); signalling its PID could hit an unrelated
702
+ // process if the OS reused it, so leave it alone without touching
703
+ // restartTimer.
704
+ if (isShuttingDown || watchdogRestarting || !processTools.childIsLive(server)) return;
692
705
  watchdogRestarting = true;
693
706
  const unhealthyServer = server;
694
707
  clearTimeout(restartTimer);
@@ -697,8 +710,15 @@ function startServer(latestVersion) {
697
710
  try {
698
711
  const terminated = await processTools.terminatePid(unhealthyServer.pid, { timeoutMs: 2500, processGroup: true });
699
712
  if (!terminated || isShuttingDown || server !== unhealthyServer) return;
700
- server = spawnServer();
701
- attachServerEvents();
713
+ try {
714
+ server = spawnServer();
715
+ attachServerEvents();
716
+ } catch (error) {
717
+ // The watchdog swallows callback errors, so a failed respawn must
718
+ // exit here instead of leaving a launcher with no server.
719
+ console.error("Failed to restart server:", error.message);
720
+ void shutdown(1);
721
+ }
702
722
  } finally {
703
723
  watchdogRestarting = false;
704
724
  }
@@ -716,9 +736,12 @@ function startServer(latestVersion) {
716
736
  } catch (e) { }
717
737
  killProxyByPidFile();
718
738
  killTunnelByPidFile();
719
- const serverCleanup = server?.pid
739
+ // An exited child is never signalled (its PID may be reused), but its
740
+ // process group can still hold grandchildren (MCP stdio bridges, MITM
741
+ // proxy) that must not outlive the launcher.
742
+ const serverCleanup = processTools.childIsLive(server)
720
743
  ? processTools.terminatePid(server.pid, { timeoutMs: 2500, processGroup: true })
721
- : Promise.resolve(true);
744
+ : processTools.terminateOrphanedGroup(server?.pid, { timeoutMs: 2500 });
722
745
  const [, serverResult] = await Promise.allSettled([trayCleanup, serverCleanup]);
723
746
  if (serverResult.status === "fulfilled" && serverResult.value === true) clearOwnedProcessState();
724
747
  } catch (e) { }
@@ -779,6 +802,9 @@ function startServer(latestVersion) {
779
802
  // Ignore SIGHUP so macOS terminal close doesn't kill the background tray process
780
803
  process.removeAllListeners("SIGHUP");
781
804
  process.on("SIGHUP", () => {});
805
+ // The terminal may close while we keep running; a later console write to
806
+ // the dead pty would wedge the process, so fail those writes safely.
807
+ require("./src/cli/utils/display").detachTerminalOutput();
782
808
 
783
809
  console.log(`\n🚀 ${pkg.name} v${pkg.version}`);
784
810
  console.log(`Starting server at http://${displayHost}:${port}...`);
@@ -795,6 +821,7 @@ function startServer(latestVersion) {
795
821
  }
796
822
  return;
797
823
  }
824
+ everHealthy = true;
798
825
  const trayReady = await initTrayIcon();
799
826
  if (trayReady) {
800
827
  console.log("\nSwitchboard is ready in the system tray.");
@@ -823,6 +850,7 @@ function startServer(latestVersion) {
823
850
  }
824
851
  return;
825
852
  }
853
+ everHealthy = true;
826
854
  let trayReady = await initTrayIcon();
827
855
  if (!trayReady) {
828
856
  console.warn(`Tray icon unavailable. You can stop safely with Ctrl+C or "${APP_NAME} stop".`);
@@ -832,7 +860,9 @@ function startServer(latestVersion) {
832
860
  while (true) {
833
861
  const choice = await showInterfaceMenu(latestVersion, { trayAvailable: trayReady });
834
862
 
835
- if (choice === "update") {
863
+ if (choice === "back") {
864
+ continue;
865
+ } else if (choice === "update") {
836
866
  const { clearScreen } = require("./src/cli/utils/display");
837
867
  clearScreen();
838
868
  console.log(`\n⬆ Update v${pkg.version} → v${latestVersion}\n`);
@@ -848,7 +878,7 @@ function startServer(latestVersion) {
848
878
  } else if (choice === "terminal") {
849
879
  // Start Terminal UI - it will return when user selects Back
850
880
  const { startTerminalUI } = require("./src/cli/terminalUI");
851
- await startTerminalUI(port, { networkExposed: isNetworkExposed() });
881
+ await startTerminalUI(port, { networkExposed: isNetworkExposed(), host: getProbeHost() });
852
882
  // Loop continues, show menu again
853
883
  } else if (choice === "hide") {
854
884
  const { clearScreen } = require("./src/cli/utils/display");
@@ -872,6 +902,9 @@ function startServer(latestVersion) {
872
902
  // it outside the login session so NSStatusItem silently fails.
873
903
  process.removeAllListeners("SIGHUP");
874
904
  process.on("SIGHUP", () => {});
905
+ // The user may now close this terminal; detach output first so a
906
+ // later console write to the dead pty cannot wedge the launcher.
907
+ require("./src/cli/utils/display").detachTerminalOutput();
875
908
 
876
909
  console.log(`\n⏳ Switching to tray mode... (icon already visible in menu bar)`);
877
910
  console.log(`🔔 Switchboard is running in tray (PID: ${process.pid})`);
@@ -948,11 +981,16 @@ function startServer(latestVersion) {
948
981
  return;
949
982
  }
950
983
  const aliveMs = Date.now() - serverStartTime;
951
- // Reset counter if last run was stable
952
- if (aliveMs >= RESTART_RESET_MS) restartCount = 0;
984
+ // Stable runs reset backoff. Repeated crashes keep retrying at a bounded
985
+ // cadence so a transient runtime fault never leaves the gateway dead.
986
+ if (aliveMs >= RESTART_RESET_MS) {
987
+ consecutiveCrashes = 0;
988
+ lastPrintedCrashLog = "";
989
+ }
953
990
 
954
- if (restartCount >= MAX_RESTARTS) {
955
- console.error(`\nServer crashed ${MAX_RESTARTS} times. Giving up without changing your settings.`);
991
+ consecutiveCrashes++;
992
+ if (processTools.shouldAbandonRestarts({ consecutiveCrashes, everHealthy })) {
993
+ console.error(`\nServer crashed ${consecutiveCrashes} times without ever becoming healthy. Giving up without changing your settings.`);
956
994
  console.error(`Data directory: ${getAppDataDir()}`);
957
995
  console.error(`Retry with server logs: ${commandFor()} --log`);
958
996
  if (crashLog.length) {
@@ -963,15 +1001,19 @@ function startServer(latestVersion) {
963
1001
  void shutdown(1);
964
1002
  return;
965
1003
  }
966
-
967
- restartCount++;
968
- const delay = Math.min(1000 * restartCount, 10000);
1004
+ const delay = processTools.nextRestartDelay(consecutiveCrashes - 1);
969
1005
  const reason = signal ? `signal=${signal}` : `code=${code ?? "unknown"}`;
970
- console.error(`\nServer exited (${reason}). Restarting in ${delay / 1000}s... (${restartCount}/${MAX_RESTARTS})`);
971
- if (crashLog.length) {
972
- console.error("\n--- Server crash log ---");
973
- crashLog.forEach(l => console.error(l));
974
- console.error("--- End crash log ---\n");
1006
+ console.error(`\nServer exited (${reason}). Restarting in ${delay / 1000}s... (attempt ${consecutiveCrashes})`);
1007
+ const logText = crashLog.join("\n");
1008
+ if (processTools.shouldPrintCrashLog(consecutiveCrashes, crashLog, lastPrintedCrashLog)) {
1009
+ if (crashLog.length) {
1010
+ console.error("\n--- Server crash log ---");
1011
+ crashLog.forEach(l => console.error(l));
1012
+ console.error("--- End crash log ---\n");
1013
+ }
1014
+ lastPrintedCrashLog = logText;
1015
+ } else if (consecutiveCrashes === 11 && logText) {
1016
+ console.error(`suppressing repeated crash log; run \`${commandFor()} --log\` for full output`);
975
1017
  }
976
1018
 
977
1019
  restartTimer = setTimeout(() => {
@@ -982,5 +1024,6 @@ function startServer(latestVersion) {
982
1024
  }, delay);
983
1025
  }
984
1026
 
1027
+
985
1028
  attachServerEvents();
986
1029
  }
@@ -2,14 +2,19 @@
2
2
  // Uses platform-specific optionalDependencies (esbuild/swc pattern).
3
3
  // Each platform has its own npm package containing only that architecture's binary.
4
4
  // Falls back to downloading from GitHub releases if optionalDeps are missing.
5
+ const crypto = require("crypto");
5
6
  const fs = require("fs");
6
7
  const path = require("path");
7
8
  const https = require("https");
8
9
  const zlib = require("zlib");
10
+ const { getDataDir } = require("../src/shared/dataDir");
9
11
 
10
12
  const BINARY_NAME = "switchboard-tray";
11
13
  const TRAY_VERSION = "1.0.0";
12
14
  const GITHUB_REPO = "Vijay-Duke/switchboard-router";
15
+ // Upper bound for any single registry response body we buffer in memory.
16
+ const TARBALL_MAX_BYTES = 32 * 1024 * 1024;
17
+ const METADATA_MAX_BYTES = 1024 * 1024;
13
18
 
14
19
  // Platform → package name mapping
15
20
  const PLATFORM_PACKAGES = {
@@ -48,13 +53,10 @@ function resolveBinaryFromPackage() {
48
53
  }
49
54
 
50
55
  /**
51
- * Fallback: check if the binary was downloaded by postinstall into ~/.switchboard/runtime/bin/
56
+ * Fallback: check if the binary was downloaded by postinstall into <DATA_DIR>/runtime/bin/
52
57
  */
53
58
  function resolveBinaryFromCache() {
54
- const cacheDir = path.join(
55
- process.env.SWITCHBOARD_DATA_DIR || path.join(require("os").homedir(), ".switchboard"),
56
- "runtime", "bin"
57
- );
59
+ const cacheDir = path.join(getDataDir(), "runtime", "bin");
58
60
  const binPath = path.join(cacheDir, BINARY_NAME);
59
61
  if (fs.existsSync(binPath)) {
60
62
  return binPath;
@@ -63,17 +65,50 @@ function resolveBinaryFromCache() {
63
65
  }
64
66
 
65
67
  /**
66
- * Download the tray binary from GitHub releases as a last resort.
67
- * Stores it in ~/.switchboard/runtime/bin/
68
+ * Fetch the registry-recorded sha512 integrity for the platform tarball.
69
+ * Returns null when the metadata is missing or unusable (fail closed).
70
+ */
71
+ async function fetchTarballIntegrity(pkg) {
72
+ const metaUrl = `https://registry.npmjs.org/${pkg}/${TRAY_VERSION}`;
73
+ const body = await module.exports.httpGet(metaUrl, { maxBytes: METADATA_MAX_BYTES });
74
+ let meta;
75
+ try {
76
+ meta = JSON.parse(body.toString("utf8"));
77
+ } catch {
78
+ return null;
79
+ }
80
+ const integrity = meta && meta.dist && meta.dist.integrity;
81
+ if (typeof integrity !== "string" || !integrity.startsWith("sha512-")) return null;
82
+ return integrity;
83
+ }
84
+
85
+ /**
86
+ * Verify the downloaded tarball against the registry-recorded integrity
87
+ * (`sha512-<base64>`). Throws on mismatch — the bytes must never be executed.
88
+ */
89
+ function verifyTarballIntegrity(tarball, integrity) {
90
+ let expected;
91
+ try {
92
+ expected = Buffer.from(integrity.slice("sha512-".length), "base64");
93
+ } catch {
94
+ throw new Error("tray tarball has an unparseable integrity value");
95
+ }
96
+ const actual = crypto.createHash("sha512").update(tarball).digest();
97
+ if (expected.length !== actual.length || !crypto.timingSafeEqual(expected, actual)) {
98
+ throw new Error("tray tarball integrity mismatch; refusing to install");
99
+ }
100
+ }
101
+
102
+ /**
103
+ * Download the tray binary from the npm registry as a last resort.
104
+ * Stores it in <DATA_DIR>/runtime/bin/. The tarball is verified against the
105
+ * registry metadata integrity before anything is written or executed.
68
106
  */
69
107
  async function downloadBinaryFallback({ silent = false } = {}) {
70
108
  const pkg = getPlatformPackage();
71
109
  if (!pkg) return null;
72
110
 
73
- const cacheDir = path.join(
74
- process.env.SWITCHBOARD_DATA_DIR || path.join(require("os").homedir(), ".switchboard"),
75
- "runtime", "bin"
76
- );
111
+ const cacheDir = path.join(getDataDir(), "runtime", "bin");
77
112
  fs.mkdirSync(cacheDir, { recursive: true });
78
113
  const destPath = path.join(cacheDir, BINARY_NAME);
79
114
 
@@ -82,7 +117,13 @@ async function downloadBinaryFallback({ silent = false } = {}) {
82
117
  if (!silent) console.log(`⏳ Downloading tray binary from npm (${pkg})...`);
83
118
 
84
119
  try {
85
- const tarball = await httpGet(tarballUrl);
120
+ const integrity = await fetchTarballIntegrity(pkg);
121
+ if (!integrity) {
122
+ if (!silent) console.warn("⚠️ Tray metadata has no usable integrity; refusing download");
123
+ return null;
124
+ }
125
+ const tarball = await module.exports.httpGet(tarballUrl, { maxBytes: TARBALL_MAX_BYTES });
126
+ verifyTarballIntegrity(tarball, integrity);
86
127
  const extracted = extractFileFromTarball(zlib.gunzipSync(tarball), `package/bin/${BINARY_NAME}`);
87
128
  if (!extracted) {
88
129
  if (!silent) console.warn("⚠️ Failed to extract tray binary from tarball");
@@ -97,18 +138,32 @@ async function downloadBinaryFallback({ silent = false } = {}) {
97
138
  }
98
139
  }
99
140
 
100
- function httpGet(url) {
141
+ function httpGet(url, { maxBytes = TARBALL_MAX_BYTES } = {}) {
101
142
  return new Promise((resolve, reject) => {
102
143
  https.get(url, (res) => {
103
144
  if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
104
- return httpGet(res.headers.location).then(resolve, reject);
145
+ return module.exports.httpGet(res.headers.location, { maxBytes }).then(resolve, reject);
105
146
  }
106
147
  if (res.statusCode < 200 || res.statusCode >= 300) {
107
148
  return reject(new Error(`HTTP ${res.statusCode}`));
108
149
  }
109
150
  const chunks = [];
110
- res.on("data", (c) => chunks.push(c));
111
- res.on("end", () => resolve(Buffer.concat(chunks)));
151
+ let size = 0;
152
+ let rejected = false;
153
+ res.on("data", (c) => {
154
+ if (rejected) return;
155
+ size += c.length;
156
+ if (size > maxBytes) {
157
+ rejected = true;
158
+ try { res.destroy(); } catch { /* best effort */ }
159
+ reject(new Error(`response exceeds ${maxBytes} bytes`));
160
+ return;
161
+ }
162
+ chunks.push(c);
163
+ });
164
+ res.on("end", () => {
165
+ if (!rejected) resolve(Buffer.concat(chunks));
166
+ });
112
167
  res.on("error", reject);
113
168
  }).on("error", reject);
114
169
  });
@@ -179,5 +234,5 @@ function ensureTrayRuntime({ silent = false } = {}) {
179
234
  return { systray: false, needsDownload: true };
180
235
  }
181
236
 
182
- module.exports = { ensureTrayRuntime, getTrayBinPath, downloadBinaryFallback, getPlatformPackage };
237
+ module.exports = { ensureTrayRuntime, getTrayBinPath, downloadBinaryFallback, getPlatformPackage, httpGet };
183
238
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "switchboard-router",
3
- "version": "0.9.9",
3
+ "version": "0.9.11",
4
4
  "description": "Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)",
5
5
  "bin": {
6
6
  "switchboard": "./cli.js",
@@ -50,10 +50,14 @@ function loadCliSecret() {
50
50
  }
51
51
 
52
52
  function getCliToken() {
53
- if (cachedCliToken !== null) return cachedCliToken;
53
+ if (cachedCliToken) return cachedCliToken;
54
+ // Never cache an empty token: the long-lived launcher probes before the
55
+ // server has written machine-id, and machineIdSync can fail (e.g. no
56
+ // /usr/sbin on PATH under launchd). Retry until the file exists.
54
57
  const raw = loadRawMachineId();
58
+ if (!raw) return "";
55
59
  const secret = loadCliSecret();
56
- cachedCliToken = raw ? crypto.createHash("sha256").update(raw + CLI_TOKEN_SALT + secret).digest("hex").substring(0, 16) : "";
60
+ cachedCliToken = crypto.createHash("sha256").update(raw + CLI_TOKEN_SALT + secret).digest("hex").substring(0, 16);
57
61
  return cachedCliToken;
58
62
  }
59
63
 
@@ -481,7 +485,9 @@ async function disableTunnel() {
481
485
 
482
486
  module.exports = {
483
487
  configure,
484
-
488
+ getCliToken,
489
+ CLI_TOKEN_HEADER,
490
+
485
491
  // Providers
486
492
  getProviders,
487
493
  getProviderById,
@@ -102,6 +102,7 @@ function formatHelp({ version = "unknown", defaultPort = DEFAULT_PORT, defaultHo
102
102
  Usage:
103
103
  switchboard [start] [options] Start Switchboard (default)
104
104
  switchboard status [options] Show server, version, PID, and ownership status
105
+ Exit codes: 0 running, 1 port conflict, 3 not running
105
106
  switchboard stop [options] Stop the owned Switchboard instance gracefully
106
107
  switchboard restart [options] Gracefully stop, then start Switchboard
107
108
  switchboard xai video [options] Generate a Grok Imagine video (MP4)
@@ -129,7 +130,6 @@ Examples:
129
130
  switchboard restart --port ${defaultPort}
130
131
  switchboard xai video --prompt "a neon city" --output video.mp4
131
132
  switchboard stop
132
- switchboard xai video --prompt "a neon city" --output video.mp4
133
133
  `;
134
134
  }
135
135
 
@@ -18,6 +18,7 @@ const DEFAULT_HOST = "127.0.0.1";
18
18
  const DEFAULT_MODEL = "xai/grok-imagine-video";
19
19
  const DEFAULT_TIMEOUT_SEC = 600;
20
20
  const DEFAULT_POLL_INTERVAL_MS = 5000;
21
+ const DEFAULT_REQUEST_TIMEOUT_SEC = 30;
21
22
 
22
23
  const TERMINAL_STATUSES = new Set(["done", "failed", "completed", "error", "expired", "cancelled"]);
23
24
  const FAILED_STATUSES = new Set(["failed", "error", "expired", "cancelled"]);
@@ -37,6 +38,8 @@ Options:
37
38
  --resolution <res> 480p | 720p | 1080p
38
39
  --image <path-or-url> Image input for image-to-video
39
40
  --timeout <seconds> Max wait for the job (default: ${DEFAULT_TIMEOUT_SEC})
41
+ --request-timeout <seconds> Per-request gateway timeout (default: ${DEFAULT_REQUEST_TIMEOUT_SEC})
42
+ --force Overwrite the output file if it exists
40
43
  --port <port> Gateway port (default: ${DEFAULT_PORT})
41
44
  --host <host> Gateway host (default: ${DEFAULT_HOST})
42
45
  --api-key <key> Switchboard API key (or env SWITCHBOARD_API_KEY)
@@ -47,19 +50,29 @@ function sanitizeText(text) {
47
50
  return String(text ?? "").replace(/Bearer\s+[A-Za-z0-9._~+/=-]{8,}/gi, "Bearer [redacted]");
48
51
  }
49
52
 
53
+ function requireValue(argv, i, flag) {
54
+ const value = argv[i + 1];
55
+ if (value === undefined || value.startsWith("-")) {
56
+ throw new Error(`${flag} requires a value`);
57
+ }
58
+ return value;
59
+ }
60
+
50
61
  function parseArgs(argv) {
51
62
  const opts = {
52
63
  model: DEFAULT_MODEL,
53
64
  output: "video.mp4",
54
65
  timeoutSec: DEFAULT_TIMEOUT_SEC,
66
+ requestTimeoutMs: DEFAULT_REQUEST_TIMEOUT_SEC * 1000,
55
67
  port: DEFAULT_PORT,
56
68
  host: DEFAULT_HOST,
57
69
  apiKey: process.env.SWITCHBOARD_API_KEY || null,
58
70
  pollIntervalMs: DEFAULT_POLL_INTERVAL_MS,
71
+ force: false,
59
72
  };
60
73
  for (let i = 0; i < argv.length; i++) {
61
74
  const a = argv[i];
62
- const next = () => argv[++i];
75
+ const next = (flag = a) => { const v = requireValue(argv, i, flag); i++; return v; };
63
76
  if (a === "--prompt") opts.prompt = next();
64
77
  else if (a === "--output" || a === "-o") opts.output = next();
65
78
  else if (a === "--model") opts.model = next();
@@ -68,6 +81,8 @@ function parseArgs(argv) {
68
81
  else if (a === "--resolution") opts.resolution = next();
69
82
  else if (a === "--image") opts.image = next();
70
83
  else if (a === "--timeout") opts.timeoutSec = parseInt(next(), 10) || DEFAULT_TIMEOUT_SEC;
84
+ else if (a === "--request-timeout") opts.requestTimeoutMs = (parseInt(next(), 10) || DEFAULT_REQUEST_TIMEOUT_SEC) * 1000;
85
+ else if (a === "--force") opts.force = true;
71
86
  else if (a === "--port" || a === "-p") opts.port = parseInt(next(), 10) || DEFAULT_PORT;
72
87
  else if (a === "--host" || a === "-H") opts.host = next() || DEFAULT_HOST;
73
88
  else if (a === "--api-key") opts.apiKey = next();
@@ -90,7 +105,7 @@ function imageInputToUrl(input) {
90
105
  }
91
106
 
92
107
  /** Minimal JSON request against the local gateway. Returns { status, headers, body }. */
93
- function gatewayRequest({ host, port, apiKey, method, reqPath, body, signal }) {
108
+ function gatewayRequest({ host, port, apiKey, method, reqPath, body, signal, timeoutMs = DEFAULT_REQUEST_TIMEOUT_SEC * 1000 }) {
94
109
  return new Promise((resolve, reject) => {
95
110
  const payload = body ? JSON.stringify(body) : null;
96
111
  const headers = { Accept: "application/json" };
@@ -100,7 +115,7 @@ function gatewayRequest({ host, port, apiKey, method, reqPath, body, signal }) {
100
115
  }
101
116
  if (apiKey) headers.Authorization = `Bearer ${apiKey}`;
102
117
 
103
- const req = http.request({ hostname: host, port, path: reqPath, method, headers, signal }, (res) => {
118
+ const req = http.request({ hostname: host, port, path: reqPath, method, headers, signal, timeout: timeoutMs }, (res) => {
104
119
  let data = "";
105
120
  res.on("data", (c) => (data += c));
106
121
  res.on("end", () => {
@@ -109,6 +124,7 @@ function gatewayRequest({ host, port, apiKey, method, reqPath, body, signal }) {
109
124
  resolve({ status: res.statusCode, headers: res.headers, body: parsed, raw: data });
110
125
  });
111
126
  });
127
+ req.on("timeout", () => req.destroy(new Error("gateway request timed out")));
112
128
  req.on("error", reject);
113
129
  if (payload) req.write(payload);
114
130
  req.end();
@@ -125,7 +141,7 @@ const sleep = (ms, signal) =>
125
141
  * Poll GET /v1/videos/{id} until a terminal status or deadline.
126
142
  * @returns {Promise<object>} final poll body (status done) — throws on failed/timeout.
127
143
  */
128
- async function pollUntilDone({ host, port, apiKey, requestId, connectionId, timeoutSec, pollIntervalMs, signal, onProgress }) {
144
+ async function pollUntilDone({ host, port, apiKey, requestId, connectionId, timeoutSec, pollIntervalMs, signal, onProgress, timeoutMs }) {
129
145
  const deadline = Date.now() + timeoutSec * 1000;
130
146
  while (true) {
131
147
  if (signal?.aborted) throw new Error("aborted");
@@ -133,7 +149,7 @@ async function pollUntilDone({ host, port, apiKey, requestId, connectionId, time
133
149
  throw new Error(`Timed out after ${timeoutSec}s waiting for video job ${requestId}`);
134
150
  }
135
151
 
136
- const res = await gatewayRequestWithConnection({ host, port, apiKey, requestId, connectionId, signal });
152
+ const res = await gatewayRequestWithConnection({ host, port, apiKey, requestId, connectionId, signal, timeoutMs });
137
153
  if (res.status === 200 && res.body) {
138
154
  const status = String(res.body.status || "").toLowerCase();
139
155
  onProgress?.(status || "pending", res.body.progress);
@@ -149,13 +165,13 @@ async function pollUntilDone({ host, port, apiKey, requestId, connectionId, time
149
165
  }
150
166
  }
151
167
 
152
- function gatewayRequestWithConnection({ host, port, apiKey, requestId, connectionId, signal }) {
168
+ function gatewayRequestWithConnection({ host, port, apiKey, requestId, connectionId, signal, timeoutMs = DEFAULT_REQUEST_TIMEOUT_SEC * 1000 }) {
153
169
  return new Promise((resolve, reject) => {
154
170
  const headers = { Accept: "application/json" };
155
171
  if (apiKey) headers.Authorization = `Bearer ${apiKey}`;
156
172
  if (connectionId) headers["x-connection-id"] = connectionId;
157
173
  const req = http.request(
158
- { hostname: host, port, path: `/v1/videos/${encodeURIComponent(requestId)}`, method: "GET", headers, signal },
174
+ { hostname: host, port, path: `/v1/videos/${encodeURIComponent(requestId)}`, method: "GET", headers, signal, timeout: timeoutMs },
159
175
  (res) => {
160
176
  let data = "";
161
177
  res.on("data", (c) => (data += c));
@@ -166,6 +182,7 @@ function gatewayRequestWithConnection({ host, port, apiKey, requestId, connectio
166
182
  });
167
183
  }
168
184
  );
185
+ req.on("timeout", () => req.destroy(new Error("gateway request timed out")));
169
186
  req.on("error", reject);
170
187
  req.end();
171
188
  });
@@ -224,6 +241,10 @@ async function run(argv) {
224
241
  console.log(HELP);
225
242
  return 1;
226
243
  }
244
+ if (!opts.force && fs.existsSync(opts.output)) {
245
+ console.error(`❌ Output file already exists: ${opts.output} (use --force to overwrite)`);
246
+ return 1;
247
+ }
227
248
 
228
249
  const controller = new AbortController();
229
250
  const partPath = `${opts.output}.part`;
@@ -246,6 +267,7 @@ async function run(argv) {
246
267
  const create = await gatewayRequest({
247
268
  host: opts.host, port: opts.port, apiKey: opts.apiKey,
248
269
  method: "POST", reqPath: "/v1/videos/generations", body, signal: controller.signal,
270
+ timeoutMs: opts.requestTimeoutMs,
249
271
  });
250
272
 
251
273
  if (create.status !== 200 || !create.body?.request_id) {
@@ -266,6 +288,7 @@ async function run(argv) {
266
288
  host: opts.host, port: opts.port, apiKey: opts.apiKey,
267
289
  requestId, connectionId,
268
290
  timeoutSec: opts.timeoutSec, pollIntervalMs: opts.pollIntervalMs,
291
+ timeoutMs: opts.requestTimeoutMs,
269
292
  signal: controller.signal,
270
293
  onProgress: (status, progress) => {
271
294
  const line = `⏳ ${status}${Number.isFinite(progress) ? ` ${progress}%` : ""}`;
@@ -297,4 +320,4 @@ async function run(argv) {
297
320
  }
298
321
  }
299
322
 
300
- module.exports = { run, parseArgs, pollUntilDone, downloadToFile, imageInputToUrl, sanitizeText };
323
+ module.exports = { run, parseArgs, pollUntilDone, downloadToFile, imageInputToUrl, sanitizeText, gatewayRequest, gatewayRequestWithConnection, DEFAULT_REQUEST_TIMEOUT_SEC };
@@ -29,4 +29,15 @@ async function ensureTrayReady(trayReady, initTrayIcon) {
29
29
  return Boolean(await initTrayIcon());
30
30
  }
31
31
 
32
- module.exports = { buildInterfaceMenuItems, ensureTrayReady };
32
+ /**
33
+ * Map a selectMenu() index to a menu action. ESC / non-TTY resolves -1 and
34
+ * out-of-range indexes are treated as "back" (re-show the menu) — never as
35
+ * "exit", so dismissing the menu cannot shut down a healthy gateway.
36
+ */
37
+ function mapInterfaceSelection(menuItems, selected) {
38
+ if (!Array.isArray(menuItems)) return "back";
39
+ if (!Number.isInteger(selected) || selected < 0 || selected >= menuItems.length) return "back";
40
+ return menuItems[selected]?.action || "back";
41
+ }
42
+
43
+ module.exports = { buildInterfaceMenuItems, ensureTrayReady, mapInterfaceSelection };
@@ -3,7 +3,8 @@ const path = require("path");
3
3
  const { execFileSync, execSync } = require("child_process");
4
4
 
5
5
  function normalizePath(value) {
6
- try { return path.resolve(value); } catch { return ""; }
6
+ try { return fs.realpathSync(path.resolve(value)); }
7
+ catch { try { return path.resolve(value); } catch { return ""; } }
7
8
  }
8
9
 
9
10
  function tokenizeCommand(command) {
@@ -176,6 +177,16 @@ async function terminatePid(pid, { timeoutMs = 2000, processGroup = false } = {}
176
177
  return !targetIsAlive();
177
178
  }
178
179
 
180
+ // After a detached child has exited, its process group may still hold
181
+ // grandchildren. Sweep the group only while the leader PID itself is gone: a
182
+ // live PID means the OS reused it, and that process's group is not ours.
183
+ async function terminateOrphanedGroup(pid, { timeoutMs = 2000 } = {}) {
184
+ const numericPid = Number(pid);
185
+ if (process.platform === "win32" || !Number.isInteger(numericPid) || numericPid <= 1) return true;
186
+ if (isPidAlive(numericPid) || !isPidAlive(-numericPid)) return true;
187
+ return terminatePid(numericPid, { timeoutMs, processGroup: true });
188
+ }
189
+
179
190
  function observeChildExit(child, onTerminal) {
180
191
  let handled = false;
181
192
  const finish = (code, signal, error) => {
@@ -187,14 +198,49 @@ function observeChildExit(child, onTerminal) {
187
198
  child.once("exit", (code, signal) => finish(code, signal, null));
188
199
  }
189
200
 
201
+ function nextRestartDelay(attempt) {
202
+ const exponent = Math.min(Math.max(Number(attempt) || 0, 0), 5);
203
+ return Math.min(1000 * (2 ** exponent), 30000);
204
+ }
205
+
206
+ // Give up on deterministic boot failures: a child that never served a healthy
207
+ // probe after maxBootFailures consecutive crashes will never recover by
208
+ // retrying. Once a child has been healthy, restarts stay unbounded.
209
+ function shouldAbandonRestarts({ consecutiveCrashes, everHealthy, maxBootFailures = 5 } = {}) {
210
+ return !everHealthy && Number(consecutiveCrashes) >= Number(maxBootFailures);
211
+ }
212
+
213
+ // True only for a child that the OS may still deliver signals to. A crashed
214
+ // child keeps its pid property after exit, so signalling it risks hitting an
215
+ // unrelated process if the OS has reused the PID.
216
+ function childIsLive(child) {
217
+ return !!child?.pid && child.exitCode === null && child.signalCode === null;
218
+ }
219
+
220
+ // Echo the crash log on the first attempt of a backoff cycle and whenever it
221
+ // changes; after 10 consecutive crashes the launcher keeps restarting at the
222
+ // 30 s cap but stays quiet (the log is still available via --log).
223
+ function shouldPrintCrashLog(attempt, log, lastPrinted) {
224
+ if (Number(attempt) > 10) return false;
225
+ const text = Array.isArray(log) ? log.join("\n") : String(log ?? "");
226
+ if (!text) return false;
227
+ if (Number(attempt) <= 1) return true;
228
+ return text !== String(lastPrinted ?? "");
229
+ }
230
+
190
231
  module.exports = {
191
232
  acquireLifecycleLock,
233
+ childIsLive,
192
234
  findListeningPids,
193
235
  getProcessCommand,
194
236
  getProcessCwd,
195
237
  isPidAlive,
196
238
  observeChildExit,
239
+ nextRestartDelay,
240
+ shouldAbandonRestarts,
241
+ shouldPrintCrashLog,
197
242
  matchesRecordedProcess,
198
243
  processMatchesRecordedPath,
244
+ terminateOrphanedGroup,
199
245
  terminatePid,
200
246
  };