flujo-ai 3.44.0 → 3.45.0

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 (386) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +7 -7
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/react-loadable-manifest.json +1 -1
  5. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +2 -2
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  18. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  23. package/.next/server/app/api/approvals/[id]/route.js +1 -1
  24. package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
  25. package/.next/server/app/api/approvals/route.js +1 -1
  26. package/.next/server/app/api/approvals/route.js.nft.json +1 -1
  27. package/.next/server/app/api/backup/route.js.nft.json +1 -1
  28. package/.next/server/app/api/bugs/enhance/route.js +1 -1
  29. package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
  30. package/.next/server/app/api/encryption/secure/route.js +1 -1
  31. package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
  32. package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route.js.nft.json +1 -1
  33. package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
  34. package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
  35. package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
  36. package/.next/server/app/api/flow/assist/route.js +1 -1
  37. package/.next/server/app/api/flow/assist/route.js.nft.json +1 -1
  38. package/.next/server/app/api/flow/compile/route.js +1 -1
  39. package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
  40. package/.next/server/app/api/flow/generate/route.js +1 -1
  41. package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
  42. package/.next/server/app/api/flow/generate/visual/route.js +2 -2
  43. package/.next/server/app/api/flow/generate/visual/route.js.nft.json +1 -1
  44. package/.next/server/app/api/flow/generator/route.js +1 -1
  45. package/.next/server/app/api/flow/generator/route.js.nft.json +1 -1
  46. package/.next/server/app/api/flow/improve/route.js +1 -1
  47. package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
  48. package/.next/server/app/api/flow/prompt-renderer/route.js +1 -1
  49. package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
  50. package/.next/server/app/api/flow/quick-chat/route.js +1 -1
  51. package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
  52. package/.next/server/app/api/flow/repair/route.js +1 -1
  53. package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
  54. package/.next/server/app/api/flow/route.js.nft.json +1 -1
  55. package/.next/server/app/api/init/route.js +1 -1
  56. package/.next/server/app/api/init/route.js.nft.json +1 -1
  57. package/.next/server/app/api/mcp/app-consent/route.js +1 -1
  58. package/.next/server/app/api/mcp/app-consent/route.js.nft.json +1 -1
  59. package/.next/server/app/api/mcp/app-sandbox/route.js +2 -2
  60. package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +1 -1
  61. package/.next/server/app/api/mcp/assistant/route.js +1 -1
  62. package/.next/server/app/api/mcp/assistant/route.js.nft.json +1 -1
  63. package/.next/server/app/api/mcp/cancel/route.js +1 -1
  64. package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
  65. package/.next/server/app/api/mcp/flujo/authoring/route.js +1 -1
  66. package/.next/server/app/api/mcp/flujo/authoring/route.js.nft.json +1 -1
  67. package/.next/server/app/api/mcp/flujo/automation/route.js +1 -1
  68. package/.next/server/app/api/mcp/flujo/automation/route.js.nft.json +1 -1
  69. package/.next/server/app/api/mcp/flujo/flows/route.js +1 -1
  70. package/.next/server/app/api/mcp/flujo/flows/route.js.nft.json +1 -1
  71. package/.next/server/app/api/mcp/flujo/resources/read/route.js +1 -1
  72. package/.next/server/app/api/mcp/flujo/resources/read/route.js.nft.json +1 -1
  73. package/.next/server/app/api/mcp/flujo/resources/route.js +1 -1
  74. package/.next/server/app/api/mcp/flujo/resources/route.js.nft.json +1 -1
  75. package/.next/server/app/api/mcp/flujo/servers/route.js +1 -1
  76. package/.next/server/app/api/mcp/flujo/servers/route.js.nft.json +1 -1
  77. package/.next/server/app/api/mcp/flujo/state/route.js +1 -1
  78. package/.next/server/app/api/mcp/flujo/state/route.js.nft.json +1 -1
  79. package/.next/server/app/api/mcp/flujo/tools/route.js +1 -1
  80. package/.next/server/app/api/mcp/flujo/tools/route.js.nft.json +1 -1
  81. package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
  82. package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
  83. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
  84. package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
  85. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
  86. package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
  87. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
  88. package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
  89. package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
  90. package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
  91. package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
  92. package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
  93. package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
  94. package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
  95. package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/confirm/route.js +1 -1
  96. package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/confirm/route.js.nft.json +1 -1
  97. package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/start/route.js +1 -1
  98. package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/start/route.js.nft.json +1 -1
  99. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
  100. package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
  101. package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
  102. package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
  103. package/.next/server/app/api/mcp/servers/route.js +1 -1
  104. package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  105. package/.next/server/app/api/mcp/test-connection/route.js +1 -1
  106. package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
  107. package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
  108. package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
  109. package/.next/server/app/api/mcp-registry/route.js +1 -1
  110. package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
  111. package/.next/server/app/api/model/[id]/route.js +1 -1
  112. package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
  113. package/.next/server/app/api/model/provider/route.js +1 -1
  114. package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
  115. package/.next/server/app/api/model/route.js +1 -1
  116. package/.next/server/app/api/model/route.js.nft.json +1 -1
  117. package/.next/server/app/api/model/test/route.js +1 -1
  118. package/.next/server/app/api/model/test/route.js.nft.json +1 -1
  119. package/.next/server/app/api/oauth/reset/route.js +1 -1
  120. package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
  121. package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
  122. package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
  123. package/.next/server/app/api/packages/install/route.js +1 -1
  124. package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
  125. package/.next/server/app/api/packages/install/status/route.js +1 -1
  126. package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
  127. package/.next/server/app/api/packages/installed/route.js +1 -1
  128. package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
  129. package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
  130. package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -1
  131. package/.next/server/app/api/packages/uninstall/route.js +1 -1
  132. package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
  133. package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
  134. package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
  135. package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
  136. package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
  137. package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
  138. package/.next/server/app/api/planned-executions/route.js +1 -1
  139. package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
  140. package/.next/server/app/api/restore/route.js.nft.json +1 -1
  141. package/.next/server/app/api/runs/active/route.js +1 -1
  142. package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
  143. package/.next/server/app/api/telemetry/daily-active/route.js +1 -1
  144. package/.next/server/app/api/waves/route.js +1 -1
  145. package/.next/server/app/api/waves/route.js.nft.json +1 -1
  146. package/.next/server/app/api/webhooks/[id]/route.js +1 -1
  147. package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  148. package/.next/server/app/automation/triggers/page_client-reference-manifest.js +1 -1
  149. package/.next/server/app/automation/triggers.html +1 -1
  150. package/.next/server/app/automation/triggers.rsc +3 -3
  151. package/.next/server/app/automation/triggers.segments/_full.segment.rsc +3 -3
  152. package/.next/server/app/automation/triggers.segments/_head.segment.rsc +1 -1
  153. package/.next/server/app/automation/triggers.segments/_index.segment.rsc +2 -2
  154. package/.next/server/app/automation/triggers.segments/_tree.segment.rsc +1 -1
  155. package/.next/server/app/automation/triggers.segments/automation/triggers/__PAGE__.segment.rsc +2 -2
  156. package/.next/server/app/automation/triggers.segments/automation/triggers.segment.rsc +1 -1
  157. package/.next/server/app/automation/triggers.segments/automation.segment.rsc +1 -1
  158. package/.next/server/app/automation/waves/page_client-reference-manifest.js +1 -1
  159. package/.next/server/app/automation/waves.html +1 -1
  160. package/.next/server/app/automation/waves.rsc +3 -3
  161. package/.next/server/app/automation/waves.segments/_full.segment.rsc +3 -3
  162. package/.next/server/app/automation/waves.segments/_head.segment.rsc +1 -1
  163. package/.next/server/app/automation/waves.segments/_index.segment.rsc +2 -2
  164. package/.next/server/app/automation/waves.segments/_tree.segment.rsc +1 -1
  165. package/.next/server/app/automation/waves.segments/automation/waves/__PAGE__.segment.rsc +2 -2
  166. package/.next/server/app/automation/waves.segments/automation/waves.segment.rsc +1 -1
  167. package/.next/server/app/automation/waves.segments/automation.segment.rsc +1 -1
  168. package/.next/server/app/chain-chat/page_client-reference-manifest.js +1 -1
  169. package/.next/server/app/chain-chat.html +1 -1
  170. package/.next/server/app/chain-chat.rsc +3 -3
  171. package/.next/server/app/chain-chat.segments/_full.segment.rsc +3 -3
  172. package/.next/server/app/chain-chat.segments/_head.segment.rsc +1 -1
  173. package/.next/server/app/chain-chat.segments/_index.segment.rsc +2 -2
  174. package/.next/server/app/chain-chat.segments/_tree.segment.rsc +1 -1
  175. package/.next/server/app/chain-chat.segments/chain-chat/__PAGE__.segment.rsc +2 -2
  176. package/.next/server/app/chain-chat.segments/chain-chat.segment.rsc +1 -1
  177. package/.next/server/app/chat/page.js +4 -4
  178. package/.next/server/app/chat/page.js.nft.json +1 -1
  179. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  180. package/.next/server/app/chat.html +1 -1
  181. package/.next/server/app/chat.rsc +3 -3
  182. package/.next/server/app/chat.segments/_full.segment.rsc +3 -3
  183. package/.next/server/app/chat.segments/_head.segment.rsc +1 -1
  184. package/.next/server/app/chat.segments/_index.segment.rsc +2 -2
  185. package/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
  186. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +2 -2
  187. package/.next/server/app/chat.segments/chat.segment.rsc +1 -1
  188. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  189. package/.next/server/app/docs.html +1 -1
  190. package/.next/server/app/docs.rsc +3 -3
  191. package/.next/server/app/docs.segments/_full.segment.rsc +3 -3
  192. package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  193. package/.next/server/app/docs.segments/_index.segment.rsc +2 -2
  194. package/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
  195. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +2 -2
  196. package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  197. package/.next/server/app/executions/page_client-reference-manifest.js +1 -1
  198. package/.next/server/app/executions.html +1 -1
  199. package/.next/server/app/executions.rsc +3 -3
  200. package/.next/server/app/executions.segments/_full.segment.rsc +3 -3
  201. package/.next/server/app/executions.segments/_head.segment.rsc +1 -1
  202. package/.next/server/app/executions.segments/_index.segment.rsc +2 -2
  203. package/.next/server/app/executions.segments/_tree.segment.rsc +1 -1
  204. package/.next/server/app/executions.segments/executions/__PAGE__.segment.rsc +2 -2
  205. package/.next/server/app/executions.segments/executions.segment.rsc +1 -1
  206. package/.next/server/app/flows/page.js +5 -5
  207. package/.next/server/app/flows/page.js.nft.json +1 -1
  208. package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  209. package/.next/server/app/flows.html +1 -1
  210. package/.next/server/app/flows.rsc +3 -3
  211. package/.next/server/app/flows.segments/_full.segment.rsc +3 -3
  212. package/.next/server/app/flows.segments/_head.segment.rsc +1 -1
  213. package/.next/server/app/flows.segments/_index.segment.rsc +2 -2
  214. package/.next/server/app/flows.segments/_tree.segment.rsc +1 -1
  215. package/.next/server/app/flows.segments/flows/__PAGE__.segment.rsc +2 -2
  216. package/.next/server/app/flows.segments/flows.segment.rsc +1 -1
  217. package/.next/server/app/index.html +1 -1
  218. package/.next/server/app/index.rsc +3 -3
  219. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  220. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  221. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  222. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  223. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  224. package/.next/server/app/mcp/page.js +1 -1
  225. package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  226. package/.next/server/app/mcp-flows/route.js +1 -1
  227. package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
  228. package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
  229. package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
  230. package/.next/server/app/mcp.html +1 -1
  231. package/.next/server/app/mcp.rsc +3 -3
  232. package/.next/server/app/mcp.segments/_full.segment.rsc +3 -3
  233. package/.next/server/app/mcp.segments/_head.segment.rsc +1 -1
  234. package/.next/server/app/mcp.segments/_index.segment.rsc +2 -2
  235. package/.next/server/app/mcp.segments/_tree.segment.rsc +1 -1
  236. package/.next/server/app/mcp.segments/mcp/__PAGE__.segment.rsc +2 -2
  237. package/.next/server/app/mcp.segments/mcp.segment.rsc +1 -1
  238. package/.next/server/app/meetings/page_client-reference-manifest.js +1 -1
  239. package/.next/server/app/meetings.html +1 -1
  240. package/.next/server/app/meetings.rsc +3 -3
  241. package/.next/server/app/meetings.segments/_full.segment.rsc +3 -3
  242. package/.next/server/app/meetings.segments/_head.segment.rsc +1 -1
  243. package/.next/server/app/meetings.segments/_index.segment.rsc +2 -2
  244. package/.next/server/app/meetings.segments/_tree.segment.rsc +1 -1
  245. package/.next/server/app/meetings.segments/meetings/__PAGE__.segment.rsc +2 -2
  246. package/.next/server/app/meetings.segments/meetings.segment.rsc +1 -1
  247. package/.next/server/app/models/page.js +3 -3
  248. package/.next/server/app/models/page_client-reference-manifest.js +1 -1
  249. package/.next/server/app/packages/page_client-reference-manifest.js +1 -1
  250. package/.next/server/app/packages.html +1 -1
  251. package/.next/server/app/packages.rsc +3 -3
  252. package/.next/server/app/packages.segments/_full.segment.rsc +3 -3
  253. package/.next/server/app/packages.segments/_head.segment.rsc +1 -1
  254. package/.next/server/app/packages.segments/_index.segment.rsc +2 -2
  255. package/.next/server/app/packages.segments/_tree.segment.rsc +1 -1
  256. package/.next/server/app/packages.segments/packages/__PAGE__.segment.rsc +2 -2
  257. package/.next/server/app/packages.segments/packages.segment.rsc +1 -1
  258. package/.next/server/app/page_client-reference-manifest.js +1 -1
  259. package/.next/server/app/settings/page.js +2 -2
  260. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  261. package/.next/server/app/settings.html +1 -1
  262. package/.next/server/app/settings.rsc +3 -3
  263. package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  264. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  265. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  266. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  267. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  268. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  269. package/.next/server/app/statistics/page_client-reference-manifest.js +1 -1
  270. package/.next/server/app/statistics.html +1 -1
  271. package/.next/server/app/statistics.rsc +3 -3
  272. package/.next/server/app/statistics.segments/_full.segment.rsc +3 -3
  273. package/.next/server/app/statistics.segments/_head.segment.rsc +1 -1
  274. package/.next/server/app/statistics.segments/_index.segment.rsc +2 -2
  275. package/.next/server/app/statistics.segments/_tree.segment.rsc +1 -1
  276. package/.next/server/app/statistics.segments/statistics/__PAGE__.segment.rsc +2 -2
  277. package/.next/server/app/statistics.segments/statistics.segment.rsc +1 -1
  278. package/.next/server/app/v1/chat/completions/route.js +1 -1
  279. package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
  280. package/.next/server/app/v1/chat/conversation-chains/route.js +1 -1
  281. package/.next/server/app/v1/chat/conversation-chains/route.js.nft.json +1 -1
  282. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +1 -1
  283. package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
  284. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +1 -1
  285. package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
  286. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/attach/route.js +1 -1
  287. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/attach/route.js.nft.json +1 -1
  288. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
  289. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
  290. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/state/route.js +1 -1
  291. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/state/route.js.nft.json +1 -1
  292. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
  293. package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
  294. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +1 -1
  295. package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
  296. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +1 -1
  297. package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
  298. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +1 -1
  299. package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -1
  300. package/.next/server/app/v1/chat/conversations/[conversationId]/recovery/route.js +1 -1
  301. package/.next/server/app/v1/chat/conversations/[conversationId]/recovery/route.js.nft.json +1 -1
  302. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
  303. package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
  304. package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js +1 -1
  305. package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js.nft.json +1 -1
  306. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +1 -1
  307. package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
  308. package/.next/server/app/v1/chat/conversations/route.js +1 -1
  309. package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
  310. package/.next/server/app/v1/chat/events/route.js +1 -1
  311. package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
  312. package/.next/server/app/v1/meetings/[meetingId]/cancel/route.js +1 -1
  313. package/.next/server/app/v1/meetings/[meetingId]/cancel/route.js.nft.json +1 -1
  314. package/.next/server/app/v1/meetings/[meetingId]/route.js +1 -1
  315. package/.next/server/app/v1/meetings/[meetingId]/route.js.nft.json +1 -1
  316. package/.next/server/app/v1/meetings/[meetingId]/start/route.js +1 -1
  317. package/.next/server/app/v1/meetings/[meetingId]/start/route.js.nft.json +1 -1
  318. package/.next/server/app/v1/meetings/route.js +1 -1
  319. package/.next/server/app/v1/meetings/route.js.nft.json +1 -1
  320. package/.next/server/app/v1/models/route.js +1 -1
  321. package/.next/server/app/v1/models/route.js.nft.json +1 -1
  322. package/.next/server/app/waves/page_client-reference-manifest.js +1 -1
  323. package/.next/server/app/waves.html +1 -1
  324. package/.next/server/app/waves.rsc +3 -3
  325. package/.next/server/app/waves.segments/_full.segment.rsc +3 -3
  326. package/.next/server/app/waves.segments/_head.segment.rsc +1 -1
  327. package/.next/server/app/waves.segments/_index.segment.rsc +2 -2
  328. package/.next/server/app/waves.segments/_tree.segment.rsc +1 -1
  329. package/.next/server/app/waves.segments/waves/__PAGE__.segment.rsc +2 -2
  330. package/.next/server/app/waves.segments/waves.segment.rsc +1 -1
  331. package/.next/server/app-paths-manifest.json +7 -7
  332. package/.next/server/chunks/1114.js +1 -1
  333. package/.next/server/chunks/{4271.js → 2126.js} +13 -13
  334. package/.next/server/chunks/2425.js +1 -1
  335. package/.next/server/chunks/244.js +1 -1
  336. package/.next/server/chunks/2728.js +1 -1
  337. package/.next/server/chunks/2970.js +1 -1
  338. package/.next/server/chunks/3133.js +2 -2
  339. package/.next/server/chunks/4558.js +1 -1
  340. package/.next/server/chunks/4779.js +1 -0
  341. package/.next/server/chunks/531.js +1 -1
  342. package/.next/server/chunks/5354.js +1 -1
  343. package/.next/server/chunks/5831.js +1 -1
  344. package/.next/server/chunks/609.js +1 -1
  345. package/.next/server/chunks/75.js +1 -1
  346. package/.next/server/chunks/7513.js +1 -1
  347. package/.next/server/chunks/7754.js +60 -60
  348. package/.next/server/chunks/811.js +1 -1
  349. package/.next/server/chunks/8542.js +1 -1
  350. package/.next/server/chunks/87.js +1 -1
  351. package/.next/server/chunks/8767.js +1 -1
  352. package/.next/server/middleware-build-manifest.js +1 -1
  353. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  354. package/.next/server/pages/404.html +1 -1
  355. package/.next/server/pages/500.html +1 -1
  356. package/.next/server/server-reference-manifest.js +1 -1
  357. package/.next/server/server-reference-manifest.json +1 -1
  358. package/.next/static/chunks/{8851-1ea4bbf9945c7b34.js → 2375-af6ebf80d9cb9975.js} +2 -2
  359. package/.next/static/chunks/{4742-e151939b0ae7ba74.js → 3841-0e4a10c621cac0e6.js} +1 -1
  360. package/.next/static/chunks/{5147-d239d0147237bb58.js → 5147-ec07dd70c20ec0b5.js} +1 -1
  361. package/.next/static/chunks/5212-898f308c44a32c22.js +2 -0
  362. package/.next/static/chunks/7401-cffc7c5fa1f5f06e.js +10 -0
  363. package/.next/static/chunks/app/chat/page-5b6d507b576cea9c.js +7 -0
  364. package/.next/static/chunks/app/flows/page-9b16d049d43ac817.js +9 -0
  365. package/.next/static/chunks/app/mcp/{page-70535f4bce57edbe.js → page-e4c284466c17fe32.js} +1 -1
  366. package/.next/static/chunks/app/models/page-2891efa80c126790.js +11 -0
  367. package/.next/static/chunks/{webpack-7efb2620f630c7d5.js → webpack-d9f1e56ee69d988f.js} +1 -1
  368. package/.next/trace +104 -104
  369. package/.next/trace-build +1 -1
  370. package/README.md +6 -3
  371. package/mcp-servers/bash/package.json +1 -1
  372. package/mcp-servers/browser/dist/resources.js +29 -3
  373. package/mcp-servers/browser/dist/resources.js.map +1 -1
  374. package/mcp-servers/browser/package.json +1 -1
  375. package/mcp-servers/filesystem/dist/resources.js +1 -1
  376. package/mcp-servers/filesystem/package.json +1 -1
  377. package/mcp-servers/flujo/package.json +1 -1
  378. package/package.json +5 -5
  379. package/.next/server/chunks/387.js +0 -1
  380. package/.next/static/chunks/5212-fa397222d5251b43.js +0 -2
  381. package/.next/static/chunks/7401-b0f0d4a7b2597302.js +0 -10
  382. package/.next/static/chunks/app/chat/page-3db891cc7ba29084.js +0 -7
  383. package/.next/static/chunks/app/flows/page-6b6748bc74604103.js +0 -9
  384. package/.next/static/chunks/app/models/page-e3430501cd05ff1f.js +0 -11
  385. /package/.next/static/{yjYCceqlIl4V9blcEb5AK → 4x_Vc1-WtJtqgqFZnCq3D}/_buildManifest.js +0 -0
  386. /package/.next/static/{yjYCceqlIl4V9blcEb5AK → 4x_Vc1-WtJtqgqFZnCq3D}/_ssgManifest.js +0 -0
@@ -1,11 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8329],{8106:(e,t,i)=>{"use strict";i.d(t,{RJ:()=>r,gF:()=>o});let o="masked:********",r="********"},22766:(e,t,i)=>{"use strict";i.d(t,{Ij:()=>s,Pz:()=>d,g_:()=>m,wW:()=>n});let o=/<flujo-ui-actions>\s*([\s\S]*?)\s*<\/flujo-ui-actions>/gi,r=/```flujo-ui-actions\s*([\s\S]*?)\s*```/gi,a=new Set(["__proto__","prototype","constructor"]);function l(e){try{let t=JSON.parse(e);return(Array.isArray(t)?t:Array.isArray(t?.actions)?t.actions:[]).slice(0,20).flatMap((e,t)=>{if(!e||"object"!=typeof e||"highlight"!==e.type&&"set_value"!==e.type||"set_value"===e.type&&!("value"in e)||!e.target||"object"!=typeof e.target)return[];let i=e.target;return"string"==typeof i.kind&&i.kind.trim()?[{id:"string"==typeof e.id&&e.id?e.id:`ui-action-${t+1}`,type:e.type,target:{kind:i.kind,..."string"==typeof i.id?{id:i.id}:{},..."string"==typeof i.field?{field:i.field}:{},..."string"==typeof i.path?{path:i.path}:{}},..."value"in e?{value:e.value}:{},..."string"==typeof e.label?{label:e.label}:{},..."string"==typeof e.evidence?{evidence:e.evidence}:{}}]:[]})}catch{return[]}}function s(e){let t=[];for(let i of e){if(!i||"object"!=typeof i)continue;let e=i.tool_calls;if(Array.isArray(e))for(let i of e){if(!i||"object"!=typeof i)continue;let e=i.function?.name;if("string"!=typeof e||!e.endsWith("propose_ui_action"))continue;let o=i.function?.arguments;if("string"==typeof o)try{let e=JSON.parse(o),r=l(JSON.stringify({actions:[{...e,id:"string"==typeof i.id?i.id:void 0}]}));t.push(...r)}catch{}}}return t}function n(e){let t=[],i=(e,i)=>i.replace(e,(e,i)=>(t.push(...l(i)),"")),a=i(o,e);return{text:i(r,a).trim(),actions:t}}function d(e,t,i){let o=t?(t.startsWith("/")?t.slice(1).split("/").map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~")):t.split(".")).filter(Boolean):[];if(0===o.length||o.length>20||o.some(e=>a.has(e)))throw Error("The requested field path is not editable.");let r=Array.isArray(e)?[...e]:{...e},l=r,s=e;for(let e=0;e<o.length-1;e+=1){let t=o[e],i=s?.[t];if(null===i||"object"!=typeof i)throw Error(`The field path does not exist at "${t}".`);let r=Array.isArray(i)?[...i]:{...i};l[t]=r,l=r,s=i}let n=o[o.length-1];if(!s||!(n in Object(s)))throw Error(`The field "${n}" does not exist.`);return l[n]=i,r}function m(e,t=9e3){return e instanceof HTMLElement&&(document.querySelectorAll(".ask-flujo-highlight").forEach(e=>e.classList.remove("ask-flujo-highlight")),e.classList.add("ask-flujo-highlight"),e.scrollIntoView({behavior:"smooth",block:"center",inline:"center"}),window.setTimeout(()=>e.classList.remove("ask-flujo-highlight"),t),!0)}},30711:(e,t,i)=>{"use strict";i.d(t,{CR:()=>n,Lg:()=>a,eZ:()=>s});var o=i(89238),r=i(29598);let a=e=>e.displayName||e.name||"",l=e=>(0,o.T_)(e.provider,e.adapter).label;function s(e,t){switch(t){case"provider":{let t=l(e);return{key:`provider:${t}`,label:t}}case"context-asc":case"context-desc":var i;return"number"!=typeof(i=e.contextWindow)||Number.isNaN(i)?{key:"ctx:unknown",label:"Unknown context"}:i<=8e3?{key:"ctx:<=8k",label:"≤ 8K tokens"}:i<=32e3?{key:"ctx:8k-32k",label:"8K–32K tokens"}:i<=128e3?{key:"ctx:32k-128k",label:"32K–128K tokens"}:i<=1e6?{key:"ctx:128k-1m",label:"128K–1M tokens"}:{key:"ctx:>1m",label:"> 1M tokens"};default:return(0,r.po)(a(e))}}function n(e,t){let i=(e,i)=>{switch(t){case"name-asc":return a(e).localeCompare(a(i));case"name-desc":return a(i).localeCompare(a(e));case"provider":return l(e).localeCompare(l(i))||a(e).localeCompare(a(i));case"context-desc":case"context-asc":{let o="number"!=typeof e.contextWindow||Number.isNaN(e.contextWindow)?void 0:e.contextWindow,r="number"!=typeof i.contextWindow||Number.isNaN(i.contextWindow)?void 0:i.contextWindow;if(void 0===o&&void 0===r)return a(e).localeCompare(a(i));if(void 0===o)return 1;if(void 0===r)return -1;let l="context-desc"===t?r-o:o-r;return 0!==l?l:a(e).localeCompare(a(i))}default:return 0}};return[...e].sort((e,t)=>{let o=Number(!!t.favorite)-Number(!!e.favorite);return 0!==o?o:i(e,t)})}},62361:(e,t,i)=>{"use strict";i.d(t,{default:()=>s});var o=i(95155);i(12115);var r=i(76010),a=i(4061),l=i(75769);function s({storageKey:e,sx:t,deps:i,nav:n=!0,children:d}){let{ref:m,clusterProps:c}=(0,l.QY)(e,{deps:i});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.default,{ref:m,sx:{...t,overflow:"auto"},children:d}),!1!==n&&(0,o.jsx)(a.A,{...c,...Array.isArray(n)?{actions:n}:{}})]})}},69586:(e,t,i)=>{Promise.resolve().then(i.bind(i,56394)),Promise.resolve().then(i.bind(i,76010)),Promise.resolve().then(i.bind(i,41112)),Promise.resolve().then(i.bind(i,21957)),Promise.resolve().then(i.bind(i,79578)),Promise.resolve().then(i.bind(i,80919)),Promise.resolve().then(i.bind(i,62361)),Promise.resolve().then(i.bind(i,44424))},75769:(e,t,i)=>{"use strict";i.d(t,{QY:()=>n});var o=i(12115),r=i(90015),a=i(66301),l=i(74786),s=i(6310);function n(e,t={}){let{deps:i=[],groupsEnabled:d=!0,anchorSelector:m="[data-scroll-group-key]"}=t,{t:c}=(0,s.s9)(),{ref:p}=function(e,t={}){let{threshold:i=200,deps:l=[]}=t,s=(0,o.useRef)(null),[n,d]=(0,o.useState)(!1),m=(0,o.useRef)(!1),c=(0,o.useCallback)(()=>(0,a.Uu)(s),[]),p=(0,o.useCallback)(()=>(0,a.Ds)(c()).scrollTop,[c]),u=(0,o.useCallback)(e=>{(0,a.B_)(c(),e)},[c]);return(0,o.useEffect)(()=>{let t=s.current,o=0,a="function"==typeof window.requestAnimationFrame?window.requestAnimationFrame.bind(window):e=>window.setTimeout(()=>e(0),16),l="function"==typeof window.cancelAnimationFrame?window.cancelAnimationFrame.bind(window):e=>window.clearTimeout(e),n=()=>{let t=p();d(t>i),o&&l(o),o=a(()=>(0,r.WL)(e,t))};return t?.addEventListener("scroll",n,{passive:!0}),window.addEventListener("scroll",n,{passive:!0}),()=>{o&&l(o),t?.removeEventListener("scroll",n),window.removeEventListener("scroll",n)}},[e,i,p]),(0,o.useEffect)(()=>{if(m.current)return;let t=(0,r.F0)(e,0);if(t<=0){m.current=!0;return}u(t);let o=p();o>0&&(m.current=!0,d(o>i))},l),{ref:s,showBackToTop:n,scrollToTop:(0,o.useCallback)(()=>{(0,a.B_)(c(),0,(0,a.ik)("smooth")),d(!1)},[c])}}(e,{deps:i}),u=(0,l.Q)({ref:p,anchorSelector:m,deps:i}),x=(0,o.useCallback)(e=>{"top"===e?u.scrollToTop():"up"===e?u.scrollToPreviousAnchor():"down"===e?u.scrollToNextAnchor():u.scrollToBottom()},[u]);return{ref:p,clusterProps:(0,o.useMemo)(()=>({show:u.scrollable,disabled:{top:u.atTop,bottom:u.atBottom},labels:d?{up:c("scrollNav.previousGroup"),down:c("scrollNav.nextGroup")}:void 0,onAction:x}),[u.scrollable,u.atTop,u.atBottom,d,c,x]),atTop:u.atTop,atBottom:u.atBottom,scrollable:u.scrollable}}},79578:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>e1});var o=i(95155),r=i(12115),a=i(73321),l=i(95877),s=i(76010),n=i(91216),d=i(45483),m=i(1791),c=i(89852),p=i(10550),u=i(61281),x=i(10286),h=i(6438),f=i(72636),g=i(82325),y=i(45790),b=i(33801),v=i(83550),w=i(18785),A=i(19260),j=i(37156),k=i(93385),z=i(26576),C=i(64924),T=i(32782),S=i(85876),L=i(35558),F=i(82513),M=i(64090),N=i(2861),U=i(2168),I=i(36637),O=i(76152),R=i(99308),E=i(17842),W=i(29598),q=i(90015),D=i(30711),K=i(49103),P=i(6310);let $=(0,K.h)("frontend/components/models/list/ModelList"),B=({models:e,isLoading:t,onAdd:i,onUpdate:a,onDelete:n,folders:d=[],onSetFolder:m,onToggleFavorite:c})=>{let{t:f,tp:g}=(0,P.s9)(),y=(0,j.A)(),[b,v]=(0,q.Io)("flujo-ui:models:sort","name-asc"),[w,A]=(0,q.Io)("flujo-ui:models:group",W.FM),[K,B]=(0,r.useState)(null),[H,X]=(0,r.useState)(null),[_,G]=(0,q.Io)("flujo-ui:models:collapsed",[]),J=(0,r.useMemo)(()=>new Set(_),[_]),V=e=>{v(e),B(null)},Y=e=>{A(e),X(null)},Q=async e=>{let t=await a(e);t.success||$.error("Failed to update model in ModelList",t.error)},Z=(0,r.useMemo)(()=>(0,D.CR)(e,b),[e,b]),ee=(0,r.useMemo)(()=>"folder"===w?(0,W.Je)(Z,e=>e.folder,f("models.group.ungrouped")):"sort"===w?(0,W.Az)(Z,e=>{let t=(0,D.eZ)(e,b),i={"ctx:unknown":"models.group.unknownContext","ctx:<=8k":"models.group.context8k","ctx:8k-32k":"models.group.context32k","ctx:32k-128k":"models.group.context128k","ctx:128k-1m":"models.group.context1m","ctx:>1m":"models.group.contextOver1m"};return i[t.key]?{...t,label:f(i[t.key])}:t}):[],[w,Z,b,f]);if(t)return(0,o.jsx)(s.default,{display:"flex",justifyContent:"center",py:4,children:(0,o.jsx)(k.default,{})});let et=e=>(0,o.jsx)(z.Ay,{container:!0,spacing:2.5,children:e.map(e=>(0,o.jsx)(z.Ay,{item:!0,xs:12,sm:6,md:4,children:(0,o.jsx)(R.A,{model:e,onEdit:()=>Q(e),onDelete:()=>n(e.id),folder:e.folder,folders:d,onSetFolder:m?t=>m(e.id,t):void 0,onToggleFavorite:c})},e.id))});return(0,o.jsxs)(s.default,{children:[(0,o.jsx)(l.A,{elevation:0,variant:"outlined",sx:{mb:2.5,p:1.1,borderRadius:3,bgcolor:"transparent"},children:(0,o.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:1},children:[(0,o.jsxs)(C.A,{variant:"body2",color:"textSecondary",children:[g("models.connectionCount",e.length),(0,o.jsx)(s.default,{component:"span",sx:{mx:1,opacity:.5},children:"\xb7"}),f("models.sortedBy",{sort:f({"name-asc":"models.sort.nameAsc","name-desc":"models.sort.nameDesc",provider:"models.sort.provider","context-desc":"models.sort.contextLargest","context-asc":"models.sort.contextSmallest"}[b])})]}),(0,o.jsxs)(s.default,{sx:{display:"flex",gap:1,alignItems:"center"},children:[(0,o.jsx)(T.A,{size:"small",onClick:e=>X(e.currentTarget),color:"none"!==w?"primary":"default",sx:{border:`1px solid ${y.palette.divider}`,backgroundColor:y.palette.background.default},title:f("models.groupCards"),children:(0,o.jsx)(U.A,{fontSize:"small"})}),(0,o.jsx)(T.A,{size:"small",onClick:e=>B(e.currentTarget),sx:{border:`1px solid ${y.palette.divider}`,backgroundColor:y.palette.background.default},title:f("models.sortModels"),children:(0,o.jsx)(L.A,{fontSize:"small"})})]})]})}),e&&0!==e.length?"none"===w?et(Z):ee.map(e=>(0,o.jsx)(E.A,{groupKey:e.key,label:e.label,count:e.items.length,expanded:!J.has(e.key),onToggle:()=>{var t;return t=e.key,void G(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},showFolderIcon:"folder"===w,children:et(e.items)},e.key)):(0,o.jsx)(l.A,{variant:"outlined",sx:{display:"grid",minHeight:240,p:4,placeItems:"center",textAlign:"center",borderStyle:"dashed",bgcolor:"transparent"},children:(0,o.jsxs)(s.default,{children:[(0,o.jsx)(N.A,{sx:{mb:1.5,fontSize:38,color:"primary.light"}}),(0,o.jsx)(C.A,{variant:"h6",children:f("models.emptyTitle")}),(0,o.jsx)(C.A,{variant:"body2",color:"text.secondary",sx:{mt:.7,mb:2},children:f("models.emptyDescription")}),(0,o.jsx)(s.default,{children:(0,o.jsx)(T.A,{color:"primary",onClick:i,title:f("models.connectAi"),children:(0,o.jsx)(N.A,{})})})]})}),(0,o.jsxs)(p.A,{anchorEl:H,open:!!H,onClose:()=>X(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,o.jsxs)(u.A,{selected:"none"===w,onClick:()=>Y("none"),children:[(0,o.jsx)(x.A,{children:(0,o.jsx)(I.A,{fontSize:"small"})}),(0,o.jsx)(h.A,{primary:f("models.group.none")})]}),(0,o.jsxs)(u.A,{selected:"folder"===w,onClick:()=>Y("folder"),children:[(0,o.jsx)(x.A,{children:(0,o.jsx)(O.A,{fontSize:"small"})}),(0,o.jsx)(h.A,{primary:f("models.group.folder")})]}),(0,o.jsxs)(u.A,{selected:"sort"===w,onClick:()=>Y("sort"),children:[(0,o.jsx)(x.A,{children:(0,o.jsx)(U.A,{fontSize:"small"})}),(0,o.jsx)(h.A,{primary:f("models.group.sort")})]})]}),(0,o.jsxs)(p.A,{anchorEl:K,open:!!K,onClose:()=>B(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[(0,o.jsxs)(u.A,{selected:"name-asc"===b,onClick:()=>V("name-asc"),children:[(0,o.jsx)(x.A,{children:(0,o.jsx)(F.A,{fontSize:"small"})}),(0,o.jsx)(h.A,{primary:f("models.sort.nameAsc")})]}),(0,o.jsxs)(u.A,{selected:"name-desc"===b,onClick:()=>V("name-desc"),children:[(0,o.jsx)(x.A,{children:(0,o.jsx)(F.A,{fontSize:"small",sx:{transform:"scaleX(-1)"}})}),(0,o.jsx)(h.A,{primary:f("models.sort.nameDesc")})]}),(0,o.jsx)(S.A,{}),(0,o.jsxs)(u.A,{selected:"provider"===b,onClick:()=>V("provider"),children:[(0,o.jsx)(x.A,{children:(0,o.jsx)(M.A,{fontSize:"small"})}),(0,o.jsx)(h.A,{primary:f("models.sort.provider")})]}),(0,o.jsx)(S.A,{}),(0,o.jsxs)(u.A,{selected:"context-desc"===b,onClick:()=>V("context-desc"),children:[(0,o.jsx)(x.A,{children:(0,o.jsx)(N.A,{fontSize:"small"})}),(0,o.jsx)(h.A,{primary:f("models.sort.contextLargest")})]}),(0,o.jsxs)(u.A,{selected:"context-asc"===b,onClick:()=>V("context-asc"),children:[(0,o.jsx)(x.A,{children:(0,o.jsx)(N.A,{fontSize:"small",sx:{transform:"scaleY(-1)"}})}),(0,o.jsx)(h.A,{primary:f("models.sort.contextSmallest")})]})]})]})};var H=i(44469),X=i(66808),_=i(83793),G=i(87696),J=i(15344),V=i(1507),Y=i(78293),Q=i(85930),Z=i(82360),ee=i(42546),et=i(39749),ei=i(71473),eo=i(89238),er=i(8106),ea=i(32897),el=i(45355),es=i(22766),en=i(71031);let ed=(0,K.h)("frontend/components/models/modal"),em=e=>({...void 0!==e.contextWindow?{contextWindow:e.contextWindow}:{},...void 0!==e.maxTokens?{maxTokens:e.maxTokens}:{},...void 0!==e.supportsTools?{supportsTools:e.supportsTools}:{},...void 0!==e.supportedParameters?{supportedParameters:e.supportedParameters}:{},...void 0!==e.inputModalities?{inputModalities:e.inputModalities}:{},...void 0!==e.outputModalities?{outputModalities:e.outputModalities}:{},...void 0!==e.visionInputCapability?{visionInputCapability:e.visionInputCapability}:{}}),ec=({open:e,model:t,onSave:i,onClose:l})=>{let{t:d}=(0,P.s9)(),m=(0,j.A)(),p=(0,H.A)(m.breakpoints.down("sm")),x=(0,a.useRouter)(),{globalEnvVars:h,settings:g}=(0,et.useStorage)(),[y,b]=(0,r.useState)({}),[v,w]=(0,r.useState)({}),[A,S]=(0,r.useState)(null),[L,F]=(0,r.useState)(!1),[M,N]=(0,r.useState)(null),[U,I]=(0,r.useState)(!1),[O,R]=(0,r.useState)([]),[E,W]=(0,r.useState)(!1),q=(0,r.useRef)(null),D=(0,r.useRef)(null),K=(0,r.useMemo)(()=>["displayName","name","description","baseUrl","promptTemplate","temperature","reasoningEffort","thinkingLevel","thinkingBudget","serviceTier","contextWindow","maxTurns","maxTokens"],[]),$=(0,r.useCallback)(e=>{let i=[...document.querySelectorAll("[data-ask-flujo-model-id]")].find(e=>e.getAttribute("data-ask-flujo-model-id")===t.id)??null,o=i?[...i.querySelectorAll("[name]")].find(t=>t.getAttribute("name")===e)??null:null,r=o?.closest(".MuiFormControl-root")??i;return(0,es.g_)(r)},[t.id]),B=(0,r.useCallback)(e=>{if("model-field"!==e.target.kind||!e.target.field)return{success:!1,message:"That model UI target is not supported."};let t=e.target.field;if(!K.includes(t))return{success:!1,message:`The model field "${t}" is read-only for Ask FLUJO.`};if("highlight"===e.type){let e=$(t);return{success:e,message:e?`Highlighted ${t}.`:`Could not find ${t} on screen.`}}if(new Set(["thinkingBudget","contextWindow","maxTurns","maxTokens"]).has(t)){if("number"!=typeof e.value||!Number.isFinite(e.value))return{success:!1,message:`${t} must be a finite number.`}}else if("string"!=typeof e.value)return{success:!1,message:`${t} must be text.`};return b(i=>({...i,[t]:e.value})),window.requestAnimationFrame(()=>$(t)),{success:!0,message:`Updated ${t} in the unsaved form. Review it, then Save.`}},[K,$]);(0,el.qz)({scopeId:`model:${t.id}`,pageType:"model",route:"/models",title:y.displayName||t.displayName||t.name||"Model",identifiers:{modelId:t.id},data:{model:{...y,id:t.id,ApiKey:y.ApiKey?"[REDACTED]":""},saved:!1},capabilities:{highlightTargets:K.map(e=>({kind:"model-field",field:e})),editableTargets:K.map(e=>({kind:"model-field",field:e})),notes:["This is the live, unsaved model form.","API keys are never included in Ask FLUJO context and cannot be edited by Ask FLUJO."]}},B,100),(0,r.useEffect)(()=>{e&&R([])},[e]),(0,r.useEffect)(()=>{y.baseUrl&&(ed.debug("Base URL or API Key changed",{baseUrl:y.baseUrl}),R([]))},[y.baseUrl,y.ApiKey]),(0,r.useEffect)(()=>(D.current&&clearTimeout(D.current),y.baseUrl&&(D.current=setTimeout(()=>{ed.debug("Debounced fetchModels triggered",{name:y.name,baseUrl:y.baseUrl,searchTerm:y.name?`"${y.name}"`:"none"}),ec(y.baseUrl,y.name)},100)),()=>{D.current&&clearTimeout(D.current)}),[y.name,y.baseUrl]),(0,r.useEffect)(()=>()=>{D.current&&clearTimeout(D.current)},[]);let ec=async(e,i)=>{ed.debug("fetchModels called",{baseUrl:e,searchTerm:i?`"${i}"`:"none",apiKey:y.ApiKey?"present":"not present",isApiKeyBound:L}),W(!0),w({});try{let o=L&&M?`\${global:${M}}`:y.ApiKey&&y.ApiKey!==er.RJ?y.ApiKey:void 0,r=await ea.N.fetchProviderModels(e,t.id,i,o);if(ed.debug("Models fetched successfully",{count:r?.length,searchTerm:i?`"${i}"`:"none"}),Array.isArray(r)){R(r);let e=r.find(e=>e.id===y.name);e&&b(t=>t.name===e.id?{...t,...em(e)}:t),ed.info("Models set in state",{count:r.length,searchTerm:i?`"${i}"`:"none"})}else ed.warn("Unexpected API response format",{models:r}),R([])}catch(t){ed.warn("Error fetching models",{baseUrl:e,searchTerm:i,error:t}),R([])}finally{W(!1)}};(0,r.useEffect)(()=>{if(e){b({...t,displayName:t.displayName||t.name});let e=(t.ApiKey||"").match(/\$\{global:([^}]+)\}/);e?(F(!0),N(e[1])):(F(!1),N(null),b(e=>({...e,ApiKey:t.name?er.RJ:""})))}else b({name:"",displayName:"",description:"",ApiKey:"",baseUrl:"https://api.openai.com/v1",provider:"openai",adapter:"openai",promptTemplate:"",temperature:"0.0"}),F(!1),N(null);w({}),S(null)},[e,t]);let ep=(0,eo.T_)(y.provider,y.adapter),eu=(0,eo.g3)(y.provider,y.adapter,y.name),ex=(0,r.useMemo)(()=>g?.experimental?.showModelsWithoutToolCapabilities?O:O.filter(e=>!1!==e.supportsTools),[O,g?.experimental?.showModelsWithoutToolCapabilities]),eh=(e,t)=>{b(i=>({...i,[e]:t})),w(t=>({...t,[e]:""}))},ef=async e=>{e.preventDefault();let o={};if(y.name?.trim()||(o.name=d("models.modal.nameRequired")),y.displayName?.trim()||(o.displayName=d("models.modal.displayNameRequired")),eu.creativity&&y.temperature?.trim()){let e=Number(y.temperature);(!Number.isFinite(e)||e<eu.creativity.min||e>eu.creativity.max)&&(o.temperature=d("models.modal.creativityRange",{min:eu.creativity.min,max:eu.creativity.max}))}if(L||y.ApiKey?.trim()||"codex-cli"===ep.adapter||(o.ApiKey=d("models.modal.apiKeyRequired")),Object.keys(o).length>0)return void w(o);try{let e=await i({id:t.id,name:y.name,displayName:y.displayName,description:y.description,ApiKey:y.ApiKey,baseUrl:y.baseUrl,provider:y.provider,adapter:y.adapter||"openai",promptTemplate:y.promptTemplate,temperature:eu.creativity?y.temperature:void 0,reasoningEffort:eu.effortLevels?.includes(y.reasoningEffort)?y.reasoningEffort:void 0,thinkingLevel:eu.thinkingLevels?.includes(y.thinkingLevel)?y.thinkingLevel:void 0,thinkingBudget:eu.thinkingBudget?y.thinkingBudget:void 0,serviceTier:eu.priority?y.serviceTier||"default":void 0,contextWindow:y.contextWindow,supportsTools:y.supportsTools,supportedParameters:y.supportedParameters,inputModalities:y.inputModalities,outputModalities:y.outputModalities,visionInputCapability:y.visionInputCapability??(Array.isArray(y.inputModalities)?y.inputModalities.some(e=>/^(?:image|vision)$/i.test(e))?"supported":"unsupported":"unknown"),maxTurns:y.maxTurns,maxTokens:eu.maxOutputTokens?y.maxTokens:void 0});e.success?x.refresh():w({submit:e.error||d("models.saveFailed")})}catch(e){ed.error("Failed to save model",{error:e}),w({submit:e?.message||d("models.saveFailed")})}},eg={minimal:"models.modal.level.minimal",low:"models.modal.level.low",medium:"models.modal.level.medium",high:"models.modal.level.high",xhigh:"models.modal.level.xhigh",max:"models.modal.level.max"},ey=e=>eg[e]?d(eg[e]):e;return(0,o.jsx)(X.A,{open:e,onClose:l,maxWidth:"xl",fullWidth:!0,fullScreen:p,PaperProps:{"data-ask-flujo-model-id":t.id,sx:{width:p?"100%":"95vw",height:p?"100dvh":"90vh",maxWidth:p?"100%":"95vw",maxHeight:p?"100dvh":"90vh"}},children:(0,o.jsxs)("form",{onSubmit:ef,style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[(0,o.jsx)(en.A,{title:t.name?d("models.modal.editTitle"):d("models.modal.createTitle"),onClose:l}),(0,o.jsxs)(_.A,{sx:{display:"flex",flex:1,flexDirection:"column",minHeight:0,overflowY:{xs:"auto",md:"hidden"},px:{xs:2,sm:3}},children:[v.submit&&(0,o.jsx)(f.A,{severity:"error",sx:{mb:2},children:v.submit}),A&&(0,o.jsx)(f.A,{severity:"info",sx:{mb:2},children:A}),(0,o.jsxs)(z.Ay,{container:!0,spacing:2,sx:{flexGrow:1,minHeight:{md:0}},children:[(0,o.jsx)(z.Ay,{item:!0,xs:12,md:6,sx:{height:{xs:"auto",md:"100%"},minWidth:0},children:(0,o.jsxs)(s.default,{sx:{display:"flex",flexDirection:"column",height:{xs:"auto",md:"100%"},pr:{xs:0,md:2},overflowY:{xs:"visible",md:"auto"}},children:[(0,o.jsx)(C.A,{variant:"h6",gutterBottom:!0,children:d("models.modal.connectionDetails")}),(0,o.jsx)(n.A,{name:"displayName",autoFocus:!0,margin:"dense",label:d("models.modal.displayName"),fullWidth:!0,required:!0,value:y.displayName||"",onChange:e=>eh("displayName",e.target.value),error:!!v.displayName,helperText:v.displayName||d("models.modal.displayNameHelp")}),(0,o.jsxs)(G.A,{fullWidth:!0,margin:"dense",children:[(0,o.jsx)(J.A,{id:"provider-profile-label",children:d("models.modal.provider")}),(0,o.jsx)(V.A,{name:"provider",labelId:"provider-profile-label",label:d("models.modal.provider"),value:ep.id,onChange:e=>{var t;let i;return t=e.target.value,void((i=eo.xx.find(e=>e.id===t))&&(b(e=>({...e,provider:i.provider,adapter:i.adapter,baseUrl:i.baseUrl})),w(e=>({...e,baseUrl:""}))))},children:eo.xx.map(e=>(0,o.jsx)(u.A,{value:e.id,children:e.label},e.id))})]}),(0,o.jsxs)(C.A,{variant:"caption",color:"text.secondary",sx:{mt:.5,mb:1,display:"block"},children:[d("models.modal.usesSdk",{sdk:ep.sdkLabel}),"claude-cli"===ep.adapter?` ${d("models.modal.claudeAuthHelp")}`:"codex-cli"===ep.adapter?` ${d("models.modal.codexAuthHelp")}`:""]}),ep.showBaseUrl&&(0,o.jsx)(n.A,{name:"baseUrl",margin:"dense",label:d("models.card.baseUrl"),fullWidth:!0,value:y.baseUrl||"",onChange:e=>eh("baseUrl",e.target.value),helperText:d("models.modal.baseUrlHelp")}),(0,o.jsx)(s.default,{sx:{position:"relative",mt:1,mb:1},children:(0,o.jsx)(n.A,{name:"ApiKey",margin:"dense",label:d("models.modal.apiKey"),fullWidth:!0,required:!L&&"codex-cli"!==ep.adapter,type:L?"text":"password",value:y.ApiKey||"",onChange:e=>eh("ApiKey",e.target.value),error:!!v.ApiKey,helperText:v.ApiKey||("codex-cli"===ep.adapter?d("models.modal.apiKeyOptionalCodex"):d("models.modal.apiKeyRequiredProvider")),InputProps:{readOnly:L,endAdornment:(0,o.jsx)(s.default,{sx:{display:"flex",alignItems:"center"},children:L?(0,o.jsx)(T.A,{onClick:()=>{F(!1),N(null),b(e=>({...e,ApiKey:""}))},size:"small",title:d("models.modal.unbindGlobal"),children:(0,o.jsx)(Z.A,{})}):(0,o.jsx)(T.A,{onClick:()=>{I(!0)},size:"small",title:d("models.modal.bindGlobal"),children:(0,o.jsx)(ee.A,{})})})}})}),(0,o.jsx)(Y.A,{freeSolo:!0,loading:E,options:ep.showBaseUrl?ex.map(e=>e.id):ep.defaultModels??[],value:y.name||"",onChange:(e,t)=>{let i=O.find(e=>e.id===t);b(e=>({...e,name:t||"",...i?{description:i.description??e.description,...em(i)}:{}})),w(e=>({...e,name:""}))},onInputChange:(e,t)=>{eh("name",t)},filterOptions:(e,t)=>{let i=t.inputValue.toLowerCase();return i?e.filter(e=>{let t=e.toLowerCase();if(t.includes(i))return!0;let o=0,r=0;for(;o<t.length&&r<i.length;)t[o]===i[r]&&r++,o++;return r===i.length}):e},ListboxProps:{style:{maxHeight:"300px",overflow:"auto"}},renderInput:e=>(0,o.jsx)(n.A,{...e,margin:"dense",label:d("models.modal.technicalName"),required:!0,error:!!v.name,helperText:v.name||d("models.modal.technicalNameHelp"),InputProps:{...e.InputProps,endAdornment:(0,o.jsxs)(o.Fragment,{children:[E?(0,o.jsx)(k.default,{color:"inherit",size:20}):null,e.InputProps.endAdornment]})}}),renderOption:(e,t)=>{let i=O.find(e=>e.id===t),{key:r,...a}=e;return(0,o.jsx)("li",{...a,style:{borderBottom:"1px solid rgba(0,0,0,0.1)",padding:"8px 16px"},children:(0,o.jsxs)(s.default,{children:[(0,o.jsx)(C.A,{variant:"body1",fontWeight:"bold",children:t}),i?.description&&(0,o.jsx)(C.A,{variant:"body2",color:"text.secondary",sx:{fontSize:"0.75rem"},children:i.description})]})},r)},noOptionsText:d("models.modal.noMatches"),loadingText:d("models.modal.loadingModels")}),(0,o.jsx)(n.A,{name:"description",margin:"dense",label:d("models.modal.description"),fullWidth:!0,multiline:!0,rows:3,value:y.description||"",onChange:e=>eh("description",e.target.value)}),eu.creativity&&(0,o.jsx)(n.A,{name:"temperature",margin:"dense",label:d("models.modal.creativity"),fullWidth:!0,type:"number",value:y.temperature??"",onChange:e=>eh("temperature",e.target.value),error:!!v.temperature,inputProps:eu.creativity,helperText:v.temperature||d("models.modal.creativityHelp",{min:eu.creativity.min,max:eu.creativity.max})}),eu.effortLevels&&(0,o.jsxs)(G.A,{fullWidth:!0,margin:"dense",children:[(0,o.jsx)(J.A,{id:"reasoning-effort-label",children:d("models.modal.effort")}),(0,o.jsxs)(V.A,{name:"reasoningEffort",labelId:"reasoning-effort-label",label:d("models.modal.effort"),value:y.reasoningEffort||"",onChange:e=>b(t=>({...t,reasoningEffort:e.target.value?e.target.value:void 0})),children:[(0,o.jsx)(u.A,{value:"",children:(0,o.jsx)("em",{children:d("models.modal.providerDefault")})}),eu.effortLevels.map(e=>(0,o.jsx)(u.A,{value:e,children:ey(e)},e))]}),(0,o.jsx)(C.A,{variant:"caption",color:"text.secondary",sx:{mt:.5,ml:1.75},children:d("models.modal.effortHelp")})]}),eu.thinkingLevels&&(0,o.jsxs)(G.A,{fullWidth:!0,margin:"dense",children:[(0,o.jsx)(J.A,{id:"thinking-level-label",children:d("models.modal.thinkingLevel")}),(0,o.jsxs)(V.A,{name:"thinkingLevel",labelId:"thinking-level-label",label:d("models.modal.thinkingLevel"),value:y.thinkingLevel||"",onChange:e=>b(t=>({...t,thinkingLevel:e.target.value?e.target.value:void 0})),children:[(0,o.jsx)(u.A,{value:"",children:(0,o.jsx)("em",{children:d("models.modal.providerDefault")})}),eu.thinkingLevels.map(e=>(0,o.jsx)(u.A,{value:e,children:ey(e)},e))]})]}),eu.thinkingBudget&&(0,o.jsx)(n.A,{name:"thinkingBudget",margin:"dense",label:d("models.modal.thinkingBudget"),fullWidth:!0,type:"number",value:y.thinkingBudget??"",onChange:e=>{let t=e.target.value,i=""===t?void 0:Number(t);b(e=>({...e,thinkingBudget:void 0!==i&&Number.isFinite(i)&&i>=-1?Math.floor(i):void 0}))},inputProps:{min:-1,step:1},helperText:d("models.modal.thinkingBudgetHelp")}),eu.priority&&(0,o.jsxs)(G.A,{fullWidth:!0,margin:"dense",children:[(0,o.jsx)(J.A,{id:"service-tier-label",children:d("models.modal.priority")}),(0,o.jsxs)(V.A,{name:"serviceTier",labelId:"service-tier-label",label:d("models.modal.priority"),value:y.serviceTier||"default",onChange:e=>b(t=>({...t,serviceTier:e.target.value})),children:[(0,o.jsx)(u.A,{value:"default",children:d("models.modal.standard")}),(0,o.jsx)(u.A,{value:"priority",children:d("models.modal.priorityFaster")})]}),(0,o.jsx)(C.A,{variant:"caption",color:"text.secondary",sx:{mt:.5,ml:1.75},children:d("models.modal.priorityHelp")})]}),(0,o.jsx)(n.A,{name:"contextWindow",margin:"dense",label:d("models.modal.contextWindow"),fullWidth:!0,type:"number",value:y.contextWindow??"",onChange:e=>{let t=e.target.value,i=""===t?void 0:Number(t);b(e=>({...e,contextWindow:void 0!==i&&Number.isFinite(i)&&i>0?Math.floor(i):void 0}))},helperText:d("models.modal.contextWindowHelp")}),(0,o.jsx)(n.A,{name:"maxTurns",margin:"dense",label:d("models.modal.maxTurns"),fullWidth:!0,type:"number",value:y.maxTurns??"",onChange:e=>{let t=e.target.value,i=""===t?void 0:Number(t);b(e=>({...e,maxTurns:void 0!==i&&Number.isFinite(i)&&i>0?Math.floor(i):void 0}))},inputProps:{min:1},helperText:d("models.modal.maxTurnsHelp")}),eu.maxOutputTokens&&(0,o.jsx)(n.A,{name:"maxTokens",margin:"dense",label:d("models.modal.maxOutputTokens"),fullWidth:!0,type:"number",value:y.maxTokens??"",onChange:e=>{let t=e.target.value,i=""===t?void 0:Number(t);b(e=>({...e,maxTokens:void 0!==i&&Number.isFinite(i)&&i>0?Math.floor(i):void 0}))},inputProps:{min:1},helperText:d("models.modal.maxOutputTokensHelp")})]})}),(0,o.jsx)(z.Ay,{item:!0,xs:12,md:6,sx:{height:{xs:400,md:"100%"},minWidth:0},children:(0,o.jsxs)(s.default,{sx:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,pl:{xs:0,md:2}},children:[(0,o.jsx)(C.A,{variant:"h6",gutterBottom:!0,children:d("models.modal.promptTemplate")}),(0,o.jsx)(s.default,{sx:{flexGrow:1,display:"flex",flexDirection:"column",minHeight:0},children:(0,o.jsx)(ei.A,{ref:q,value:y.promptTemplate||"",onChange:e=>eh("promptTemplate",e),label:"",height:"100%"})})]})})]}),U&&(0,o.jsxs)(s.default,{sx:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:{xs:"calc(100% - 32px)",sm:400},maxWidth:400,bgcolor:"background.paper",boxShadow:24,p:{xs:2,sm:4},borderRadius:1,zIndex:9999},children:[(0,o.jsx)(C.A,{variant:"h6",component:"h2",sx:{mb:2},children:d("models.modal.bindTitle")}),0===Object.keys(h).length?(0,o.jsx)(C.A,{sx:{mb:2},children:d("models.modal.noGlobals")}):(0,o.jsx)(s.default,{sx:{maxHeight:300,overflow:"auto",mb:2},children:Object.entries(h).map(([e,t])=>(0,o.jsx)(c.A,{onClick:()=>{F(!0),N(e),b(t=>({...t,ApiKey:`\${global:${e}}`})),I(!1)},fullWidth:!0,sx:{justifyContent:"flex-start",textAlign:"left",mb:1,p:1,"&:hover":{bgcolor:"action.hover"}},children:(0,o.jsxs)(s.default,{sx:{display:"flex",justifyContent:"space-between",width:"100%"},children:[(0,o.jsx)(C.A,{children:e}),(0,o.jsx)(C.A,{variant:"body2",color:"text.secondary",children:e.toLowerCase().includes("key")||e.toLowerCase().includes("secret")||e.toLowerCase().includes("token")||e.toLowerCase().includes("password")?"********":"object"==typeof t&&null!==t&&"value"in t?t.value:t})]})},e))}),(0,o.jsx)(s.default,{sx:{display:"flex",justifyContent:"flex-end"},children:(0,o.jsx)(c.A,{onClick:()=>I(!1),children:d("common.cancel")})})]})]}),(0,o.jsxs)(Q.A,{sx:{flexShrink:0},children:[(0,o.jsx)(c.A,{onClick:l,children:d("common.cancel")}),(0,o.jsx)(c.A,{type:"submit",variant:"contained",color:"primary",children:d("models.modal.save")})]})]})})};var ep=i(95473),eu=i(40323),ex=i(12289),eh=i(53157),ef=i(25422),eg=i(6302),ey=i(23462),eb=i(5704),ev=i(1841),ew=i(35986),eA=i(63739),ej=i(21603),ek=i(58907),ez=i(77036),eC=i(22355),eT=i(52790),eS=i(92343),eL=i(92406),eF=i(96606),eM=i(12034),eN=i(78714),eU=i(10470),eI=i(90515),eO=i(65938),eR=i(93919),eE=i(28705),eW=i(30502),eq=i(28834),eD=i(5661);let eK={"openrouter-free":[{name:"openrouter/free",displayName:"OpenRouter Free",description:"Automatically routes each request to an available free OpenRouter model.",provider:"openrouter",adapter:"openai",baseUrl:"https://openrouter.ai/api/v1",supportsTools:!0}],"requesty-free":[{name:"openrouter/free",displayName:"Requesty Free Router",description:"Routes to OpenRouter’s free-model router through your Requesty account.",provider:"requesty",adapter:"openai",baseUrl:"https://router.requesty.ai/v1",supportsTools:!0}],"openrouter-paid":[{name:"openrouter/auto",displayName:"OpenRouter Auto",description:"A balanced automatic router for everyday work.",provider:"openrouter",adapter:"openai",baseUrl:"https://openrouter.ai/api/v1",supportsTools:!0},{name:"deepseek/deepseek-v3.2",displayName:"DeepSeek V3.2",description:"A cost-conscious model for fast general-purpose work.",provider:"openrouter",adapter:"openai",baseUrl:"https://openrouter.ai/api/v1",supportsTools:!0},{name:"openai/gpt-5.6-sol",displayName:"GPT-5.6 Sol via OpenRouter",description:"A high-capability model for demanding agentic work.",provider:"openrouter",adapter:"openai",baseUrl:"https://openrouter.ai/api/v1",reasoningEffort:"medium",supportsTools:!0}],"requesty-paid":[{name:"deepseek/deepseek-v3.2",displayName:"DeepSeek V3.2 via Requesty",description:"A cost-conscious default routed through Requesty.",provider:"requesty",adapter:"openai",baseUrl:"https://router.requesty.ai/v1",supportsTools:!0},{name:"anthropic/claude-sonnet-4-6",displayName:"Claude Sonnet via Requesty",description:"A balanced model for planning, writing, and tool use.",provider:"requesty",adapter:"openai",baseUrl:"https://router.requesty.ai/v1",supportsTools:!0},{name:"openai/gpt-5.6-sol",displayName:"GPT-5.6 Sol via Requesty",description:"A high-capability model for demanding agentic work.",provider:"requesty",adapter:"openai",baseUrl:"https://router.requesty.ai/v1",reasoningEffort:"medium",supportsTools:!0}],"claude-subscription":[{name:"haiku",displayName:"Claude Haiku",description:"Fast and light for small tasks through your Claude subscription.",provider:"claude-subscription",adapter:"claude-cli",supportsTools:!0},{name:"sonnet",displayName:"Claude Sonnet",description:"The balanced everyday choice through your Claude subscription.",provider:"claude-subscription",adapter:"claude-cli",reasoningEffort:"medium",supportsTools:!0},{name:"opus",displayName:"Claude Opus",description:"The strongest Claude option for complex work.",provider:"claude-subscription",adapter:"claude-cli",reasoningEffort:"high",supportsTools:!0},{name:"fable",displayName:"Claude Fable",description:"An additional Claude subscription model for flexible routing.",provider:"claude-subscription",adapter:"claude-cli",reasoningEffort:"medium",supportsTools:!0}],"codex-subscription":[{name:"gpt-5.6-terra",displayName:"Codex Terra",description:"A balanced Codex model for everyday agent work.",provider:"codex",adapter:"codex-cli",reasoningEffort:"medium",supportsTools:!0},{name:"gpt-5.6-sol",displayName:"Codex Sol",description:"The high-capability Codex model for difficult work.",provider:"codex",adapter:"codex-cli",reasoningEffort:"high",supportsTools:!0},{name:"gpt-5.4-mini",displayName:"Codex Mini",description:"A quick, efficient Codex option for smaller tasks.",provider:"codex",adapter:"codex-cli",reasoningEffort:"medium",supportsTools:!0}],"gemini-native":[{name:"gemini-2.5-flash-lite",displayName:"Gemini Flash Lite",description:"A quick and economical native Gemini model.",provider:"gemini",adapter:"gemini",supportsTools:!0},{name:"gemini-2.5-flash",displayName:"Gemini Flash",description:"A balanced native Gemini model for everyday work.",provider:"gemini",adapter:"gemini",supportsTools:!0},{name:"gemini-2.5-pro",displayName:"Gemini Pro",description:"A stronger native Gemini model for complex work.",provider:"gemini",adapter:"gemini",supportsTools:!0}]};function eP(e){let t=e.apiKey?.trim()??"";return("ollama"===e.kind?[{name:e.ollamaModel?.trim()||"llama3.2:3b",displayName:`Local ${e.ollamaModel?.trim()||"Llama 3.2"}`,description:"Runs privately on this machine through Ollama.",provider:"ollama",adapter:"openai",baseUrl:`${(e.ollamaUrl||"http://localhost:11434").replace(/\/+$/,"")}/v1`,supportsTools:!0}]:eK[e.kind]).map(i=>({id:(0,A.A)(),name:i.name,displayName:i.displayName,description:i.description,ApiKey:"ollama"===e.kind?"ollama":t,baseUrl:i.baseUrl||"",provider:i.provider,adapter:i.adapter,promptTemplate:"",temperature:"openai"===i.adapter||"gemini"===i.adapter?"0.0":void 0,reasoningEffort:i.reasoningEffort,supportsTools:i.supportsTools}))}let e$=(0,ey.i7)`
2
- 0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
3
- 50% { transform: translate3d(0, -9px, 0) rotate(5deg); }
4
- `,eB=(0,ey.i7)`
5
- from { opacity: 0; transform: translate3d(18px, 0, 0) scale(.985); }
6
- to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
7
- `,eH=(0,ey.i7)`
8
- 0% { transform: scale(.6) rotate(-12deg); opacity: 0; }
9
- 70% { transform: scale(1.08) rotate(3deg); opacity: 1; }
10
- 100% { transform: scale(1) rotate(0); opacity: 1; }
11
- `,eX={"openrouter-free":{eyebrow:"models.wizard.copy.freeOnline",title:"models.wizard.openrouterFree.title",summary:"models.wizard.openrouterFree.summary",accountUrl:"https://openrouter.ai/settings/keys",accountLabel:"models.wizard.openrouterFree.account",keyLabel:"models.wizard.openrouterKey",note:"models.wizard.openrouterFree.note"},"requesty-free":{eyebrow:"models.wizard.copy.freeOnline",title:"models.wizard.requestyFree.title",summary:"models.wizard.requestyFree.summary",accountUrl:"https://app.requesty.ai/api-keys",accountLabel:"models.wizard.requestyFree.account",keyLabel:"models.wizard.requestyKey",note:"models.wizard.requestyFree.note"},"openrouter-paid":{eyebrow:"models.wizard.copy.paygOnline",title:"models.wizard.openrouterPaid.title",summary:"models.wizard.openrouterPaid.summary",accountUrl:"https://openrouter.ai/settings/keys",accountLabel:"models.wizard.openrouterPaid.account",keyLabel:"models.wizard.openrouterKey",note:"models.wizard.openrouterPaid.note"},"requesty-paid":{eyebrow:"models.wizard.copy.paygOnline",title:"models.wizard.requestyPaid.title",summary:"models.wizard.requestyPaid.summary",accountUrl:"https://app.requesty.ai/api-keys",accountLabel:"models.wizard.requestyPaid.account",keyLabel:"models.wizard.requestyKey",note:"models.wizard.requestyPaid.note"},"claude-subscription":{eyebrow:"models.wizard.copy.claudeSubscription",title:"models.wizard.claude.title",summary:"models.wizard.claude.summary",keyLabel:"models.wizard.claude.key",note:"models.wizard.claude.note"},"codex-subscription":{eyebrow:"models.wizard.copy.chatgptSubscription",title:"models.wizard.codex.title",summary:"models.wizard.codex.summary",note:"models.wizard.codex.note"},"gemini-native":{eyebrow:"models.wizard.copy.googleNative",title:"models.wizard.gemini.title",summary:"models.wizard.gemini.summary",accountUrl:"https://aistudio.google.com/app/apikey",accountLabel:"models.wizard.gemini.account",keyLabel:"models.wizard.gemini.key",note:"models.wizard.gemini.note"}};function e_({icon:e,title:t,description:i,badge:r,onClick:a}){let n=(0,j.A)();return(0,o.jsxs)(l.A,{component:"button",type:"button",variant:"outlined",onClick:a,sx:{position:"relative",width:"100%",minHeight:132,p:2.2,borderRadius:3,color:"text.primary",textAlign:"left",cursor:"pointer",font:"inherit",background:`linear-gradient(145deg, ${(0,eb.X4)(n.palette.primary.main,.08)}, ${(0,eb.X4)(n.palette.background.paper,.72)} 55%)`,transition:"transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease","&:hover":{transform:"translateY(-3px) rotate(-.2deg)",borderColor:(0,eb.X4)(n.palette.primary.main,.7),boxShadow:`0 16px 38px ${(0,eb.X4)(n.palette.primary.main,.16)}`},"&:focus-visible":{outline:`3px solid ${(0,eb.X4)(n.palette.primary.main,.3)}`,outlineOffset:3}},children:[r?(0,o.jsx)(ep.A,{label:r,size:"small",color:"primary",sx:{position:"absolute",top:12,right:12}}):null,(0,o.jsx)(s.default,{sx:{width:43,height:43,display:"grid",placeItems:"center",mb:1.3,borderRadius:2.4,color:"primary.main",bgcolor:(0,eb.X4)(n.palette.primary.main,.12)},children:(0,o.jsx)(e,{})}),(0,o.jsx)(C.A,{variant:"subtitle1",sx:{fontWeight:720,pr:7*!!r},children:t}),(0,o.jsx)(C.A,{variant:"body2",color:"text.secondary",sx:{mt:.45},children:i})]})}function eG({children:e}){return(0,o.jsx)(s.default,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"repeat(3, minmax(0, 1fr))"},gap:1.5},children:e})}function eJ({command:e,copied:t,onCopy:i}){let r=(0,j.A)(),{t:a}=(0,P.s9)();return(0,o.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:1,borderRadius:2,bgcolor:(0,eb.X4)(r.palette.common.black,"dark"===r.palette.mode?.26:.055)},children:[(0,o.jsx)(eR.A,{fontSize:"small",color:"action"}),(0,o.jsx)(C.A,{component:"code",variant:"body2",sx:{flex:1,overflowWrap:"anywhere",fontFamily:"var(--font-geist-mono), ui-monospace, monospace"},children:e}),(0,o.jsx)(eu.A,{title:a(t?"models.wizard.copied":"models.wizard.copyCommand"),children:(0,o.jsx)(T.A,{size:"small",onClick:i,"aria-label":a("models.wizard.copyCommandAria",{command:e}),children:t?(0,o.jsx)(eA.A,{color:"success",fontSize:"small"}):(0,o.jsx)(eC.A,{fontSize:"small"})})})]})}function eV({open:e,onClose:t,onManualCreation:i,onCreateModels:a}){let d=(0,j.A)(),{t:m,tp:p}=(0,P.s9)(),[u,x]=(0,r.useState)("welcome"),[h,g]=(0,r.useState)([]),[y,v]=(0,r.useState)("beginner"),[A,z]=(0,r.useState)(null),[S,L]=(0,r.useState)(""),[F,M]=(0,r.useState)(!1),[N,U]=(0,r.useState)(!1),[I,O]=(0,r.useState)(null),[R,E]=(0,r.useState)([]),[W,q]=(0,r.useState)([]),[D,K]=(0,r.useState)(null),[$,B]=(0,r.useState)(null),[H,G]=(0,r.useState)([]),[J,V]=(0,r.useState)("idle"),[Y,Q]=(0,r.useState)(null),[Z,ee]=(0,r.useState)(!1),[et,ei]=(0,r.useState)(!1),[eo,er]=(0,r.useState)(!1),[ea,el]=(0,r.useState)([]);(0,r.useEffect)(()=>{e&&(x("welcome"),g([]),v("beginner"),z(null),L(""),M(!1),U(!1),O(null),E([]),q([]),K(null),B(null),G([]),V("idle"),Q(null),ei(!1),el([]))},[e]);let es=e=>{g(e=>[...e,u]),x(e),O(null)},en=e=>{z(e),es("setup")},ed=async e=>{try{await navigator.clipboard.writeText(e),K(e),window.setTimeout(()=>K(t=>t===e?null:t),1600)}catch{O(m("models.wizard.copyFailed"))}},em=(0,r.useCallback)(async()=>{ee(!0),O(null);try{let e=await fetch("/api/local-models/capability",{cache:"no-store"});if(!e.ok)throw Error(m("models.wizard.inspectFailed"));Q(await e.json())}catch(e){O(e instanceof Error?e.message:m("models.wizard.inspectFailed"))}finally{ei(!0),ee(!1)}},[m]);(0,r.useEffect)(()=>{!e||"setup"!==u||"ollama"!==A||et||Z||em()},[A,em,et,Z,e,u]);let ec=async e=>{B(e),V("idle"),G([]),O(null);try{let t=await fetch("/api/setup/ai-cli",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tool:e})});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error||m("models.wizard.installerStartFailed"))}let i=!1,o="";if(await (0,eD.z)(t,e=>{("stdout"===e.type||"stderr"===e.type)&&G(t=>[...t,e.data].slice(-8)),"status"===e.type&&e.message&&G(t=>[...t,e.message].slice(-8)),"result"===e.type&&(i=e.success,o=e.error||"")}),!i)throw Error(o||m("models.wizard.wingetFailed"));V("success"),"ollama"===e&&window.setTimeout(()=>void em(),1200)}catch(e){V("error"),O(e instanceof Error?e.message:m("models.wizard.installFailed"))}finally{B(null)}},eu=async e=>{U(!0),O(null);try{let t=await a(e);if(!t.success)throw Error(t.error||m("models.wizard.createFailed"));E(t.created),q(t.existing),es("success")}catch(e){O(e instanceof Error?e.message:m("models.wizard.createFailed"))}finally{U(!1)}},ey=async()=>{A&&"ollama"!==A&&("codex-subscription"===A||S.trim()?"codex-subscription"!==A||F?await eu(eP({kind:A,apiKey:S})):O(m("models.wizard.confirmCodexLogin")):O("claude-subscription"===A?m("models.wizard.pasteClaudeToken"):m("models.wizard.pasteApiKey")))},eC=async()=>{let e=Y?.suggestedModel||"llama3.2:3b",t=Y?.installedModels?.some(t=>t===e);if(!Y?.ollamaReachable)return void O(m("models.wizard.startOllama"));if(!t){er(!0),el([]),O(null);try{let t=await fetch("/api/local-models/pull",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:e})});if(!t.ok)throw Error(m("models.wizard.ollamaDownloadStartFailed"));let i=!1,o="";if(await (0,eD.z)(t,e=>{("stdout"===e.type||"stderr"===e.type)&&el(t=>[...t,e.data].slice(-6)),"result"===e.type&&(i=e.success,o=e.error||"")}),!i)throw Error(o||m("models.wizard.modelDownloadFailed",{model:e}))}catch(e){O(e instanceof Error?e.message:m("models.wizard.downloadFailed")),er(!1);return}er(!1)}await eu(eP({kind:"ollama",ollamaModel:e,ollamaUrl:Y?.ollamaUrl}))},eK="beginner"===y,eY=Math.min(96,"welcome"===u?8:"success"===u?100:22+15*h.length),eQ=A&&"ollama"!==A?eX[A]:null,eZ=(0,r.useMemo)(()=>A?eP({kind:A}).map(e=>e.displayName||e.name):[],[A]),e0=Y?.suggestedModel||"llama3.2:3b",e1=!!Y?.installedModels?.includes(e0),e2=(e,t,i)=>(0,o.jsxs)(ex.A,{spacing:1.1,children:[(0,o.jsx)(eJ,{command:t,copied:D===t,onCopy:()=>void ed(t)}),(0,o.jsx)(c.A,{variant:"outlined",startIcon:$===e?(0,o.jsx)(k.default,{size:17}):(0,o.jsx)(eS.A,{}),disabled:!!$,onClick:()=>void ec(e),sx:{alignSelf:"flex-start"},children:$===e?m("models.wizard.installing"):m("models.wizard.installWinget")}),i?(0,o.jsx)(eJ,{command:i,copied:D===i,onCopy:()=>void ed(i)}):null,"success"===J?(0,o.jsx)(f.A,{severity:"success",children:m("models.wizard.installedContinue")}):null,H.length?(0,o.jsx)(s.default,{component:"pre",sx:{m:0,p:1.4,maxHeight:110,overflow:"auto",borderRadius:2,bgcolor:(0,eb.X4)(d.palette.common.black,"dark"===d.palette.mode?.3:.06),color:"text.secondary",whiteSpace:"pre-wrap",fontSize:11},children:H.join("\n")}):null]});return(0,o.jsx)(X.A,{open:e,onClose:N||eo||$?void 0:t,fullWidth:!0,maxWidth:"md","aria-label":m("models.wizard.aria"),children:(0,o.jsxs)(_.A,{"data-tour":"ai-setup-wizard",sx:{position:"relative",minHeight:{xs:560,sm:590},p:{xs:2.2,sm:4},overflowX:"hidden",overflowY:"auto"},children:[(0,o.jsx)(s.default,{"aria-hidden":!0,sx:{position:"absolute",width:220,height:220,borderRadius:"50%",top:-120,right:-70,bgcolor:(0,eb.X4)(d.palette.secondary.main,.12),filter:"blur(1px)",animation:`${e$} 6s ease-in-out infinite`}}),(0,o.jsx)(s.default,{"aria-hidden":!0,sx:{position:"absolute",width:150,height:150,borderRadius:5,bottom:-100,left:-70,bgcolor:(0,eb.X4)(d.palette.primary.main,.1),transform:"rotate(24deg)",animation:`${e$} 7s ease-in-out -2s infinite`}}),(0,o.jsxs)(s.default,{sx:{position:"relative",zIndex:1},children:[(0,o.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",gap:1,mb:2},children:[h.length&&"success"!==u?(0,o.jsx)(T.A,{onClick:()=>{let e=h[h.length-1];e&&(g(e=>e.slice(0,-1)),x(e),O(null))},"aria-label":m("models.wizard.backAria"),children:(0,o.jsx)(ev.A,{})}):(0,o.jsx)(s.default,{sx:{width:40}}),(0,o.jsx)(s.default,{sx:{flex:1},children:(0,o.jsx)(eh.A,{variant:"determinate",value:eY,"aria-label":m("models.wizard.progressAria")})}),(0,o.jsxs)(s.default,{display:"flex",alignItems:"center",gap:.5,children:[(0,o.jsx)(eW.A,{}),(0,o.jsx)(eq.A,{variant:"icon"}),(0,o.jsx)(T.A,{onClick:t,"aria-label":m("models.wizard.closeAria"),disabled:N||eo||!!$,children:(0,o.jsx)(ej.A,{})})]})]}),I?(0,o.jsx)(f.A,{severity:"error",onClose:()=>O(null),sx:{mb:2},children:I}):null,(0,o.jsx)(s.default,{sx:{animation:`${eB} 260ms ease-out both`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}},children:(()=>{if("welcome"===u)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ep.A,{icon:(0,o.jsx)(b.A,{}),label:m("models.wizard.twoMinuteSetup"),color:"primary",variant:"outlined",sx:{mb:2}}),(0,o.jsx)(C.A,{variant:"h4",children:m("models.wizard.welcomeTitle")}),(0,o.jsx)(C.A,{variant:"body1",color:"text.secondary",sx:{mt:1,mb:3,maxWidth:680},children:m("models.wizard.welcomeQuestion")}),(0,o.jsxs)(eG,{children:[(0,o.jsx)(e_,{icon:eI.A,title:m("models.wizard.noIdea"),description:m("models.wizard.noIdeaDescription"),badge:m("models.wizard.gentleGuide"),onClick:()=>{v("beginner"),es("budget")}}),(0,o.jsx)(e_,{icon:ew.A,title:m("models.wizard.knowABit"),description:m("models.wizard.knowABitDescription"),onClick:()=>{v("familiar"),es("budget")}}),(0,o.jsx)(e_,{icon:w.A,title:m("models.wizard.expert"),description:m("models.wizard.expertDescription"),onClick:i})]})]});if("budget"===u)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.firstThings")}),(0,o.jsx)(C.A,{variant:"h4",children:m("models.wizard.budgetTitle")}),eK?(0,o.jsx)(C.A,{variant:"body1",color:"text.secondary",sx:{mt:1,mb:3,maxWidth:700},children:m("models.wizard.budgetVerbose")}):(0,o.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:3},children:m("models.wizard.budgetBrief")}),(0,o.jsxs)(eG,{children:[(0,o.jsx)(e_,{icon:eU.A,title:m("models.wizard.startFree"),description:m("models.wizard.startFreeDescription"),badge:m("models.wizard.startHere"),onClick:()=>es("location")}),(0,o.jsx)(e_,{icon:eE.A,title:m("models.wizard.alreadySubscribe"),description:m("models.wizard.alreadySubscribeDescription"),onClick:()=>es("subscription-provider")}),(0,o.jsx)(e_,{icon:eT.A,title:m("models.wizard.payNoSubscription"),description:m("models.wizard.payNoSubscriptionDescription"),onClick:()=>es("paid-provider")})]})]});if("location"===u)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.freeRoute")}),(0,o.jsx)(C.A,{variant:"h4",children:m("models.wizard.locationTitle")}),(0,o.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:3},children:eK?m("models.wizard.locationVerbose"):m("models.wizard.locationBrief")}),(0,o.jsxs)(s.default,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:1.5},children:[(0,o.jsx)(e_,{icon:ek.A,title:m("models.wizard.online"),description:m("models.wizard.onlineDescription"),badge:m("models.wizard.easy"),onClick:()=>es("free-provider")}),(0,o.jsx)(e_,{icon:ez.A,title:m("models.wizard.offline"),description:m("models.wizard.offlineDescription"),badge:m("models.wizard.private"),onClick:()=>en("ollama")})]})]});if("free-provider"===u)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.copy.freeOnline")}),(0,o.jsx)(C.A,{variant:"h4",children:m("models.wizard.chooseGateway")}),(0,o.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:3},children:eK?m("models.wizard.freeGatewayVerbose"):m("models.wizard.freeGatewayBrief")}),(0,o.jsxs)(s.default,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:1.5},children:[(0,o.jsx)(e_,{icon:eN.A,title:"OpenRouter",description:m("models.wizard.openrouterFreeDescription"),badge:m("models.wizard.recommended"),onClick:()=>en("openrouter-free")}),(0,o.jsx)(e_,{icon:ek.A,title:"Requesty",description:m("models.wizard.requestyFreeDescription"),onClick:()=>en("requesty-free")})]})]});if("subscription-provider"===u)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.useExisting")}),(0,o.jsx)(C.A,{variant:"h4",children:m("models.wizard.whichService")}),(0,o.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:3},children:eK?m("models.wizard.subscriptionVerbose"):m("models.wizard.subscriptionBrief")}),(0,o.jsxs)(eG,{children:[(0,o.jsx)(e_,{icon:eO.A,title:"Claude",description:m("models.wizard.claudeDescription"),onClick:()=>en("claude-subscription")}),(0,o.jsx)(e_,{icon:eR.A,title:"ChatGPT / Codex",description:m("models.wizard.codexDescription"),badge:m("models.wizard.noKeyPaste"),onClick:()=>en("codex-subscription")}),(0,o.jsx)(e_,{icon:b.A,title:m("models.wizard.geminiNative"),description:m("models.wizard.geminiDescription"),onClick:()=>en("gemini-native")})]})]});if("paid-provider"===u)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.payUsage")}),(0,o.jsx)(C.A,{variant:"h4",children:m("models.wizard.chooseModelGateway")}),(0,o.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:3},children:eK?m("models.wizard.paidVerbose"):m("models.wizard.paidBrief")}),(0,o.jsxs)(s.default,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gap:1.5},children:[(0,o.jsx)(e_,{icon:eN.A,title:"OpenRouter",description:m("models.wizard.openrouterPaidDescription"),badge:m("models.wizard.recommended"),onClick:()=>en("openrouter-paid")}),(0,o.jsx)(e_,{icon:ek.A,title:"Requesty",description:m("models.wizard.requestyPaidDescription"),onClick:()=>en("requesty-paid")})]})]});if("setup"===u&&"ollama"===A)return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C.A,{variant:"overline",color:"primary.main",children:m("models.wizard.freeOffline")}),(0,o.jsx)(C.A,{variant:"h4",children:m("models.wizard.ollamaTitle")}),(0,o.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:2.5},children:m("models.wizard.ollamaDescription")}),Z?(0,o.jsxs)(s.default,{sx:{display:"flex",alignItems:"center",gap:1.5,py:3},children:[(0,o.jsx)(k.default,{size:22}),(0,o.jsx)(C.A,{children:m("models.wizard.checkingOllama")})]}):null,!Z&&Y?(0,o.jsx)(l.A,{variant:"outlined",sx:{p:2,mb:2,borderRadius:3},children:(0,o.jsxs)(ex.A,{direction:{xs:"column",sm:"row"},justifyContent:"space-between",spacing:1.5,children:[(0,o.jsxs)(s.default,{children:[(0,o.jsx)(C.A,{variant:"subtitle1",sx:{fontWeight:720},children:m("models.wizard.recommendedModel",{model:e0})}),(0,o.jsx)(C.A,{variant:"body2",color:"text.secondary",children:Y.ollamaReachable?e1?m("models.wizard.ollamaInstalled"):m("models.wizard.ollamaCanDownload"):m("models.wizard.ollamaNotRunningHelp")})]}),(0,o.jsx)(ep.A,{color:Y.ollamaReachable?"success":"warning",label:Y.ollamaReachable?m("models.wizard.ollamaReady"):m("models.wizard.notRunning")})]})}):null,Z||Y?.ollamaReachable?null:(0,o.jsxs)(s.default,{sx:{mb:2},children:[e2("ollama","winget install --id Ollama.Ollama -e --source winget"),(0,o.jsx)(c.A,{startIcon:(0,o.jsx)(eM.A,{}),onClick:()=>void em(),disabled:Z||!!$,sx:{mt:1},children:m("models.wizard.checkAgain")})]}),eo?(0,o.jsxs)(s.default,{sx:{my:2},children:[(0,o.jsx)(eh.A,{}),(0,o.jsx)(C.A,{variant:"body2",sx:{mt:1},children:m("models.wizard.downloading",{model:e0})}),ea.length?(0,o.jsx)(C.A,{component:"pre",variant:"caption",color:"text.secondary",sx:{whiteSpace:"pre-wrap"},children:ea.join("\n")}):null]}):null,(0,o.jsx)(c.A,{variant:"contained",size:"large",startIcon:N||eo?(0,o.jsx)(k.default,{size:18,color:"inherit"}):(0,o.jsx)(eS.A,{}),onClick:()=>void eC(),disabled:!Y?.ollamaReachable||N||eo,children:e1?m("models.wizard.connectModel",{model:e0}):m("models.wizard.downloadConnect",{model:e0})})]});if("setup"===u&&A&&eQ){let e="claude-subscription"===A,t="codex-subscription"===A;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C.A,{variant:"overline",color:"primary.main",children:m(eQ.eyebrow)}),(0,o.jsx)(C.A,{variant:"h4",children:m(eQ.title)}),(0,o.jsx)(C.A,{color:"text.secondary",sx:{mt:1,mb:2.2,maxWidth:720},children:m(eQ.summary)}),e?(0,o.jsxs)(s.default,{sx:{mb:2},children:[(0,o.jsx)(C.A,{variant:"subtitle2",sx:{mb:1},children:m("models.wizard.installClaude")}),e2("claude","winget install --id Anthropic.ClaudeCode -e --source winget","claude setup-token")]}):null,t?(0,o.jsxs)(s.default,{sx:{mb:2},children:[(0,o.jsx)(C.A,{variant:"subtitle2",sx:{mb:1},children:m("models.wizard.installCodex")}),e2("codex","winget install --id OpenAI.Codex -e --source winget","codex login"),(0,o.jsx)(ef.A,{sx:{mt:1},control:(0,o.jsx)(eg.A,{checked:F,onChange:e=>M(e.target.checked)}),label:m("models.wizard.codexLoginComplete")})]}):null,eQ.accountUrl?(0,o.jsx)(c.A,{href:eQ.accountUrl,target:"_blank",rel:"noreferrer",variant:"outlined",startIcon:(0,o.jsx)(eF.A,{}),sx:{mb:2},children:eQ.accountLabel?m(eQ.accountLabel):null}):null,t?null:(0,o.jsx)(n.A,{fullWidth:!0,type:"password",autoComplete:"off",label:`${e?"2. ":""}${eQ.keyLabel?m(eQ.keyLabel):""}`,value:S,onChange:e=>{L(e.target.value),O(null)},InputProps:{startAdornment:(0,o.jsx)(eL.A,{color:"action",sx:{mr:1}})},helperText:m("models.wizard.keyStorageHelp"),sx:{mb:2}}),(0,o.jsx)(f.A,{severity:"info",sx:{mb:2},children:m(eQ.note)}),(0,o.jsx)(C.A,{variant:"subtitle2",sx:{mb:1},children:m("models.wizard.willAdd")}),(0,o.jsx)(ex.A,{direction:"row",gap:.8,flexWrap:"wrap",sx:{mb:2.5},children:eZ.map(e=>(0,o.jsx)(ep.A,{label:e,variant:"outlined"},e))}),(0,o.jsx)(c.A,{variant:"contained",size:"large",startIcon:N?(0,o.jsx)(k.default,{size:18,color:"inherit"}):(0,o.jsx)(b.A,{}),onClick:()=>void ey(),disabled:N||!!$,children:p("models.wizard.createModels",eZ.length)})]})}if("success"===u){let e=[...R,...W].map(e=>e.displayName||e.name);return(0,o.jsxs)(s.default,{sx:{textAlign:"center",py:2},children:[(0,o.jsx)(s.default,{sx:{width:78,height:78,mx:"auto",mb:2,display:"grid",placeItems:"center",borderRadius:"50%",color:"success.main",bgcolor:(0,eb.X4)(d.palette.success.main,.13),animation:`${eH} 520ms cubic-bezier(.2,.8,.2,1) both`},children:(0,o.jsx)(eA.A,{sx:{fontSize:47}})}),(0,o.jsx)(C.A,{variant:"h4",children:m("models.wizard.successTitle")}),(0,o.jsxs)(C.A,{color:"text.secondary",sx:{mt:1,mb:2.2},children:[R.length?p("models.wizard.created",R.length):m("models.wizard.alreadyMatched"),W.length?` ${p("models.wizard.kept",W.length)}`:""]}),(0,o.jsx)(ex.A,{direction:"row",gap:.8,justifyContent:"center",flexWrap:"wrap",sx:{mb:3},children:e.map(e=>(0,o.jsx)(ep.A,{icon:(0,o.jsx)(eO.A,{}),label:e,color:"primary",variant:"outlined"},e))}),(0,o.jsx)(c.A,{variant:"contained",size:"large",onClick:t,children:m("models.wizard.seeModels")})]})}return null})()},u)]})]})})}var eY=i(57643),eQ=i(43409),eZ=i(44424);let e0=(0,K.h)("app/models/ModelClient");function e1(){let{t:e}=(0,P.s9)(),t=(0,a.useRouter)(),i=(0,a.useSearchParams)(),[j,k]=(0,r.useState)([]),[z,C]=(0,r.useState)(!1),[T,S]=(0,r.useState)(""),L=(0,eQ.j)(),[F,M]=(0,r.useState)(null),[N,U]=(0,r.useState)(!1),[I,O]=(0,r.useState)(!1),[R,E]=(0,r.useState)(null),[q,D]=(0,r.useState)(null),K=(0,r.useRef)(!1);(0,el.qz)({scopeId:"models:dashboard",pageType:"models",route:"/models",title:"AI Setup",data:{models:j.map(e=>({...e,ApiKey:e.ApiKey?"[REDACTED]":""})),searchTerm:T},capabilities:{notes:["API keys are intentionally redacted before model configuration enters AI context."]}});let $=i.get("add"),H="manual"===$;if((0,r.useEffect)(()=>{H?D(e=>e??{id:(0,A.A)(),name:"",displayName:"",description:"",ApiKey:"",baseUrl:"",provider:"openai",promptTemplate:"",temperature:"0.0"}):D(null)},[H]),(0,r.useEffect)(()=>{try{let e=(0,ea.X)();e&&"function"==typeof e.loadModels&&(O(!0),e0.debug("Model service is ready"))}catch(t){e0.warn("Model service not ready, retrying...",t);let e=setTimeout(()=>{try{let e=(0,ea.X)();e&&"function"==typeof e.loadModels&&(O(!0),e0.debug("Model service is now ready"))}catch(e){e0.warn("Model service still not ready",e)}},100);return()=>clearTimeout(e)}},[]),(0,r.useEffect)(()=>{if(!I)return;let t=!1;return(0,ea.X)().loadModels().then(e=>{t||k(e)}).catch(i=>{e0.error("Failed to load models",i),t||M(e("models.error.description"))}).finally(()=>{t||C(!0)}),()=>{t=!0}},[I,e]),!I||!z)return e0.debug("Waiting for model service to be ready..."),(0,o.jsx)(eZ.default,{});let X=i.get("edit"),_=H?q:X?j.find(e=>e.id===X)??null:null,G=H?!!q:!!X,J=async i=>{e0.info("Saving model",{modelId:i.id,modelName:i.name,mode:H?"add":"update"}),U(!0);try{let o=(0,ea.X)(),r=H?await o.addModel(i):await o.updateModel(i);if(!r.success)return M(r.error||e("models.saveFailed")),{success:!1,error:r.error};{let e=await o.loadModels();return k(e),D(null),K.current?(K.current=!1,t.back()):t.push("/models"),{success:!0,model:r.model}}}catch(t){return e0.error("Failed to save model",t),M(t?.message||e("models.saveFailedRetry")),{success:!1,error:t?.message||e("models.saveFailed")}}finally{U(!1)}},V=async e=>(e0.info("Editing model",{modelId:e.id,modelName:e.name}),K.current=!0,t.push(`/models?edit=${e.id}`),{success:!0}),Y=async()=>{e0.info("Opening guided model connection wizard"),E(null),K.current=!0,t.push("/models?add=1")},Q=()=>{e0.info("Opening manual add-model modal"),E(null),K.current=!0,t.push("/models?add=manual")},Z=async i=>{e0.info("Creating guided model bundle",{count:i.length}),U(!0),M(null);let o=[],r=[];try{let a=(0,ea.X)(),l=[...await a.loadModels()];for(let t of i){let i=l.find(e=>e.provider===t.provider&&(e.adapter||"openai")===(t.adapter||"openai")&&e.name.trim().toLowerCase()===t.name.trim().toLowerCase());if(i){r.push(i);continue}let s=t.displayName||t.name,n=s,d=2;for(;l.some(e=>e.displayName?.trim().toLowerCase()===n.trim().toLowerCase());)n=`${s} (${d})`,d+=1;let m=await a.addModel({...t,displayName:n});if(!m.success||!m.model){let t=await a.loadModels();return k(t),{success:!1,created:o,existing:r,error:m.error||e("models.createNamedFailed",{name:n})}}o.push(m.model),l.push(m.model)}let s=await a.loadModels();return k(s),t.refresh(),{success:!0,created:o,existing:r}}catch(i){e0.error("Failed to create guided model bundle",i);let t=i?.message||e("models.guidedBundleFailed");return M(t),{success:!1,created:o,existing:r,error:t}}finally{U(!1)}},ee=async t=>{e0.info("Deleting model",{modelId:t}),U(!0);try{let e=(0,ea.X)();await e.deleteModel(t);let i=await e.loadModels();k(i)}catch(t){e0.error("Failed to delete model",t),M(e("models.deleteFailed"))}finally{U(!1)}},et=async(t,i)=>{e0.info("Setting model folder",{modelId:t,folder:i}),U(!0);try{let o=(0,ea.X)(),r=await o.getModel(t);if(!r)return void M(e("models.notFound"));let a=await o.updateModel({...r,folder:i});if(!a.success)return void M(a.error||e("models.moveFailed"));let l=await o.loadModels();k(l)}catch(t){e0.error("Failed to set model folder",t),M(t?.message||e("models.moveFailedRetry"))}finally{U(!1)}},ei=async t=>{e0.info("Toggling model favorite",{modelId:t}),U(!0);try{let i=(0,ea.X)(),o=await i.getModel(t);if(!o)return void M(e("models.notFound"));let r=!o.favorite,a=await i.updateModel({...o,favorite:r||void 0});if(!a.success)return void M(a.error||e("models.favoriteFailed"));let l=await i.loadModels();k(l)}catch(t){e0.error("Failed to toggle model favorite",t),M(t?.message||e("models.favoriteFailedRetry"))}finally{U(!1)}},eo=async()=>{D(null),K.current?(K.current=!1,t.back()):t.replace("/models")},er=T.trim()?j.filter(e=>{let t=T.toLowerCase();return(e.displayName||"").toLowerCase().includes(t)||(e.name||"").toLowerCase().includes(t)}):j;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(eY.A,{mode:"page",children:(0,o.jsx)(l.A,{elevation:0,variant:"outlined",sx:{mb:2.5,p:1.2,borderRadius:3},children:(0,o.jsxs)(s.default,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},gap:1,alignItems:{xs:"stretch",sm:"center"},justifyContent:"space-between"},children:[(0,o.jsx)(n.A,{placeholder:e("models.searchPlaceholder"),variant:"outlined",size:"small",value:T,onChange:e=>S(e.target.value),inputRef:L,InputProps:{startAdornment:(0,o.jsx)(d.A,{position:"start",children:(0,o.jsx)(v.A,{fontSize:"small"})})},sx:{maxWidth:{sm:300},width:"100%"}}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(m.A,{variant:"contained",color:"primary","aria-label":e("models.connectionOptionsAria"),children:[(0,o.jsx)(c.A,{startIcon:(0,o.jsx)(g.A,{}),onClick:Y,"data-tour":"add-model",children:e("models.connectAi")}),(0,o.jsx)(c.A,{size:"small","aria-label":e("models.moreOptionsAria"),"aria-controls":R?"add-model-menu":void 0,"aria-haspopup":"menu","aria-expanded":R?"true":void 0,onClick:e=>E(e.currentTarget),sx:{px:.8,minWidth:40},children:(0,o.jsx)(y.A,{})})]}),(0,o.jsxs)(p.A,{id:"add-model-menu",anchorEl:R,open:!!R,onClose:()=>E(null),children:[(0,o.jsxs)(u.A,{onClick:Y,children:[(0,o.jsx)(x.A,{children:(0,o.jsx)(b.A,{fontSize:"small"})}),(0,o.jsx)(h.A,{primary:e("models.guidedConnection"),secondary:e("models.guidedConnectionDescription")})]}),(0,o.jsxs)(u.A,{onClick:Q,children:[(0,o.jsx)(x.A,{children:(0,o.jsx)(w.A,{fontSize:"small"})}),(0,o.jsx)(h.A,{primary:e("models.manualCreation"),secondary:e("models.manualCreationDescription")})]})]})]})]})})}),F&&(0,o.jsx)(s.default,{sx:{mb:2},children:(0,o.jsx)(f.A,{severity:"error",onClose:()=>M(null),children:F})}),(0,o.jsx)(B,{models:er,isLoading:N,onAdd:Y,onUpdate:V,onDelete:ee,folders:(0,W.yF)(j,e=>e.folder),onSetFolder:et,onToggleFavorite:ei}),(0,o.jsx)(eV,{open:"1"===$,onClose:eo,onManualCreation:Q,onCreateModels:Z}),G&&_?(0,o.jsx)(ec,{open:G,model:_,onSave:J,onClose:eo}):null]})}},80919:(e,t,i)=>{"use strict";i.d(t,{default:()=>m});var o=i(95155),r=i(37156),a=i(76010),l=i(12289),s=i(64924),n=i(5704),d=i(6310);function m({title:e,titleKey:t,description:i,descriptionKey:c,eyebrow:p,eyebrowKey:u,icon:x,leading:h,badge:f,actions:g,compact:y=!1,maxWidth:b=1440}){let v=(0,r.A)(),{t:w}=(0,d.s9)(),A=t?w(t):e,j=c?w(c):i,k=u?w(u):p;return(0,o.jsx)(a.default,{component:"header","data-page-header":!0,sx:{position:"relative",overflow:"hidden",borderBottom:1,borderColor:"divider",background:`linear-gradient(110deg, ${(0,n.X4)(v.palette.primary.main,"dark"===v.palette.mode?.09:.055)}, transparent 38%, ${(0,n.X4)(v.palette.secondary.main,.045)})`,"&::after":{position:"absolute",top:-90,right:"8%",width:220,height:160,borderRadius:"50%",content:'""',pointerEvents:"none",background:`radial-gradient(circle, ${(0,n.X4)(v.palette.primary.main,.16)}, transparent 68%)`,filter:"blur(20px)"}},children:(0,o.jsxs)(a.default,{"data-page-header-content":!0,sx:{position:"relative",zIndex:1,display:"flex",width:"100%",maxWidth:b,mx:"auto",px:{xs:2,sm:3,lg:4},py:y?{xs:1.8,sm:2}:{xs:2.2,sm:2.8},alignItems:{xs:"flex-start",md:"center"},justifyContent:"space-between",flexDirection:{xs:"column",md:"row"},gap:2},children:[(0,o.jsxs)(l.A,{"data-page-header-heading":!0,direction:"row",spacing:1.5,alignItems:"center",sx:{minWidth:0},children:[h,x&&(0,o.jsx)(a.default,{"data-page-header-icon":!0,"aria-hidden":"true",sx:{display:"grid",width:y?40:46,height:y?40:46,flexShrink:0,placeItems:"center",border:`1px solid ${(0,n.X4)(v.palette.primary.main,.24)}`,borderRadius:y?2.8:3.2,color:"primary.light",bgcolor:(0,n.X4)(v.palette.primary.main,.1),boxShadow:`inset 0 1px 0 ${(0,n.X4)(v.palette.common.white,.08)}, 0 10px 30px ${(0,n.X4)(v.palette.primary.main,.12)}`},children:(0,o.jsx)(x,{sx:{fontSize:y?21:24}})}),(0,o.jsxs)(a.default,{"data-page-header-title-block":!0,sx:{minWidth:0},children:[(p||f)&&(0,o.jsxs)(l.A,{"data-page-header-meta":!0,direction:"row",spacing:1,alignItems:"center",sx:{mb:.35},children:[k&&(0,o.jsx)(s.A,{sx:{color:"primary.light",fontSize:"0.67rem",fontWeight:780,letterSpacing:"0.13em",textTransform:"uppercase"},children:k}),f]}),(0,o.jsx)(s.A,{"data-page-header-title":!0,component:"h1",variant:"h5",sx:{overflow:"hidden",textOverflow:"ellipsis",fontSize:y?"1.2rem":void 0,whiteSpace:{xs:"normal",sm:"nowrap"}},children:A}),j&&(0,o.jsx)(s.A,{"data-page-header-description":!0,variant:"body2",color:"text.secondary",sx:{mt:.45,maxWidth:720,textWrap:"balance"},children:j})]})]}),g&&(0,o.jsx)(a.default,{"data-page-header-actions":!0,sx:{display:"flex",width:{xs:"100%",md:"auto"},flexShrink:0,flexWrap:"wrap",alignItems:"center",gap:1,"& > .MuiButton-root":{flex:{xs:"1 1 auto",sm:"0 0 auto"}}},children:g})]})})}},89238:(e,t,i)=>{"use strict";i.d(t,{T_:()=>n,g3:()=>l,xx:()=>s});let o=/(^|[/_-])(o[1-9]|gpt-5)(?:[./_-]|$)/i,r=/claude-(?:fable|mythos)-5|claude-opus-4-(?:[7-9]|\d{2,})|claude-sonnet-5/i,a=/^(?:opus|sonnet|fable)$|claude-(?:fable|mythos)-5|claude-opus-4-(?:[6-9]|\d{2,})|claude-sonnet-4-6/i;function l(e,t,i=""){let s=t||"openai",n=i.trim();if("codex-cli"===s)return{effortLevels:/^gpt-5\.6-(?:sol|terra)$/i.test(n)?["low","medium","high","xhigh","max","ultra"]:/^gpt-5\.6-/i.test(n)?["low","medium","high","xhigh","max"]:["low","medium","high","xhigh"],priority:!/(?:mini|spark|review)/i.test(n),maxOutputTokens:!1};if("claude-cli"===s)return{...a.test(n)?{effortLevels:["low","medium","high","xhigh","max"]}:{},maxOutputTokens:!1};if("anthropic"===s)return{...!r.test(n)?{creativity:{min:0,max:1,step:.1}}:{},...a.test(n)?{effortLevels:["low","medium","high","xhigh","max"]}:{},maxOutputTokens:!0};if("gemini"===s)return{creativity:{min:0,max:2,step:.1},.../^gemini-2\.5/i.test(n)?{thinkingBudget:!0}:!/^gemini-2\.0/i.test(n)?{thinkingLevels:["minimal","low","medium","high"]}:{},maxOutputTokens:!0};let d="openai"===(e||"openai")&&o.test(n);return{...!d?{creativity:{min:0,max:2,step:.1}}:{},...d?{effortLevels:["low","medium","high"]}:{},maxOutputTokens:!0}}let s=[{id:"openai",label:"OpenAI",provider:"openai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.openai.com/v1",showBaseUrl:!0},{id:"openai-responses",label:"OpenAI (Responses API)",provider:"openai",adapter:"openai-responses",sdkLabel:"OpenAI SDK (Responses)",baseUrl:"https://api.openai.com/v1",showBaseUrl:!0,defaultModels:["gpt-5","gpt-5-mini","o4-mini","o3"]},{id:"openrouter",label:"OpenRouter",provider:"openrouter",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://openrouter.ai/api/v1",showBaseUrl:!0},{id:"requesty",label:"Requesty",provider:"requesty",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://router.requesty.ai/v1",showBaseUrl:!0},{id:"xai",label:"X.ai",provider:"xai",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.x.ai/v1",showBaseUrl:!0},{id:"ollama",label:"Ollama",provider:"ollama",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"http://localhost:11434/v1",showBaseUrl:!0},{id:"litellm",label:"LiteLLM",provider:"litellm",adapter:"openai",sdkLabel:"OpenAI SDK (via LiteLLM Proxy)",baseUrl:"http://localhost:4000/v1",showBaseUrl:!0},{id:"gemini-openai",label:"Gemini (OpenAI Format)",provider:"gemini",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai/",showBaseUrl:!0},{id:"gemini-native",label:"Gemini (Native)",provider:"gemini",adapter:"gemini",sdkLabel:"GenAI SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite","gemini-2.0-flash"]},{id:"anthropic-openai",label:"Anthropic (OpenAI Format)",provider:"anthropic",adapter:"openai",sdkLabel:"OpenAI SDK",baseUrl:"https://api.anthropic.com/v1/",showBaseUrl:!0},{id:"anthropic-native",label:"Anthropic (Native)",provider:"anthropic",adapter:"anthropic",sdkLabel:"Anthropic SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["claude-opus-4-8","claude-sonnet-4-6","claude-haiku-4-5-20251001","claude-fable-5"]},{id:"claude-subscription",label:"Claude Subscription",provider:"claude-subscription",adapter:"claude-cli",sdkLabel:"Claude CLI",baseUrl:"",showBaseUrl:!1,defaultModels:["opus","sonnet","haiku","fable"]},{id:"codex",label:"Codex (OpenAI)",provider:"codex",adapter:"codex-cli",sdkLabel:"Codex SDK",baseUrl:"",showBaseUrl:!1,defaultModels:["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.5","gpt-5.4","gpt-5.4-mini"]}];function n(e,t){let i=e||"openai",o=t||"openai";return s.find(e=>e.provider===i&&e.adapter===o)||s.find(e=>e.provider===i)||s[0]}}},e=>{e.O(0,[6373,7926,7564,2457,6714,8111,1627,2782,9852,1418,6686,1216,238,3420,8961,6268,9086,2667,191,7129,1190,7641,10,5212,9749,2352,1114,7540,8441,3794,7358],()=>e(e.s=69586)),_N_E=e.O()}]);