ompgui 0.5.1 → 0.5.3

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 (252) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +4 -3
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/react-loadable-manifest.json +14 -4
  6. package/.next/required-server-files.js +3 -3
  7. package/.next/required-server-files.json +3 -3
  8. package/.next/routes-manifest.json +6 -0
  9. package/.next/server/app/_global-error/page.js +2 -2
  10. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_global-error.html +1 -1
  12. package/.next/server/app/_global-error.rsc +2 -2
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  14. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page.js +1 -1
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +1 -1
  19. package/.next/server/app/_not-found.rsc +3 -3
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  24. package/.next/server/app/api/agent/[id]/events/route.js +1 -1
  25. package/.next/server/app/api/agent/[id]/route.js +1 -1
  26. package/.next/server/app/api/agent/new/route.js +1 -1
  27. package/.next/server/app/api/agent/running/events/route.js +2 -2
  28. package/.next/server/app/api/agents/[name]/route.js +1 -1
  29. package/.next/server/app/api/agents/route.js +1 -1
  30. package/.next/server/app/api/agents/unpack/route.js +1 -1
  31. package/.next/server/app/api/app-update/route.js +1 -1
  32. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  33. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  34. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  35. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  36. package/.next/server/app/api/auth/providers/route.js +1 -1
  37. package/.next/server/app/api/cwd/browse/route.js +1 -1
  38. package/.next/server/app/api/cwd/validate/route.js +1 -1
  39. package/.next/server/app/api/default-cwd/route.js +1 -1
  40. package/.next/server/app/api/file-index/route.js +1 -1
  41. package/.next/server/app/api/files/[...path]/route.js +2 -2
  42. package/.next/server/app/api/git/diff/route.js +2 -2
  43. package/.next/server/app/api/git/status/route.js +1 -1
  44. package/.next/server/app/api/home/route.js +1 -1
  45. package/.next/server/app/api/mcp/route.js +2 -2
  46. package/.next/server/app/api/model-roles/route.js +1 -1
  47. package/.next/server/app/api/models/route.js +1 -1
  48. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  49. package/.next/server/app/api/models-config/route.js +1 -1
  50. package/.next/server/app/api/models-config/test/route.js +1 -1
  51. package/.next/server/app/api/omp-settings/route.js +1 -1
  52. package/.next/server/app/api/omp-update/route.js +1 -1
  53. package/.next/server/app/api/omp-version/route.js +1 -1
  54. package/.next/server/app/api/plugins/route.js +1 -1
  55. package/.next/server/app/api/projects/route.js +2 -2
  56. package/.next/server/app/api/providers/enable/route.js +1 -1
  57. package/.next/server/app/api/sessions/[id]/archive/route.js +1 -1
  58. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  59. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  60. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  61. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  62. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  63. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  64. package/.next/server/app/api/sessions/[id]/subagents/[subagentId]/route.js +1 -1
  65. package/.next/server/app/api/sessions/[id]/subagents/route.js +1 -1
  66. package/.next/server/app/api/sessions/archive/route.js +1 -0
  67. package/.next/server/app/api/sessions/archive/route.js.nft.json +1 -0
  68. package/.next/server/app/api/sessions/archive/route_client-reference-manifest.js +1 -0
  69. package/.next/server/app/api/sessions/import/route.js +1 -1
  70. package/.next/server/app/api/sessions/route.js +1 -1
  71. package/.next/server/app/api/skills/check/route.js +1 -1
  72. package/.next/server/app/api/skills/install/route.js +1 -1
  73. package/.next/server/app/api/skills/route.js +1 -1
  74. package/.next/server/app/api/skills/search/route.js +1 -1
  75. package/.next/server/app/api/skills/update/route.js +1 -1
  76. package/.next/server/app/api/usage/route.js +1 -1
  77. package/.next/server/app/api/web-auth/session/route.js +1 -1
  78. package/.next/server/app/api/worktrees/route.js +1 -1
  79. package/.next/server/app/favicon.ico/route.js +1 -1
  80. package/.next/server/app/index.html +1 -1
  81. package/.next/server/app/index.rsc +4 -4
  82. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  83. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  84. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  85. package/.next/server/app/login/page.js +1 -1
  86. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  87. package/.next/server/app/login.html +1 -1
  88. package/.next/server/app/login.rsc +3 -3
  89. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  90. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  91. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  92. package/.next/server/app/page.js +2 -19
  93. package/.next/server/app/page.js.nft.json +1 -1
  94. package/.next/server/app/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app-paths-manifest.json +4 -3
  96. package/.next/server/chunks/3798.js +3 -3
  97. package/.next/server/chunks/5834.js +18 -0
  98. package/.next/server/chunks/6209.js +4 -4
  99. package/.next/server/chunks/6465.js +1 -1
  100. package/.next/server/chunks/7567.js +1 -1
  101. package/.next/server/chunks/7834.js +3 -3
  102. package/.next/server/chunks/8170.js +1 -1
  103. package/.next/server/chunks/933.js +1 -1
  104. package/.next/server/functions-config-manifest.json +2 -1
  105. package/.next/server/instrumentation.js +1 -1
  106. package/.next/server/middleware-build-manifest.js +1 -1
  107. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  108. package/.next/server/pages/404.html +1 -1
  109. package/.next/server/pages/500.html +1 -1
  110. package/.next/server/server-reference-manifest.json +1 -1
  111. package/.next/static/chunks/2201.b0b6e40a6fc1628a.js +1 -0
  112. package/.next/static/chunks/3274.2faf978d45b29a27.js +1 -0
  113. package/.next/static/chunks/3688.77dd9e68a61af45e.js +1 -0
  114. package/.next/static/chunks/4315-e505812d4c93f5ca.js +1 -0
  115. package/.next/static/chunks/5589.28bb80a6b56e416c.js +17 -0
  116. package/.next/static/chunks/8920-c73b529c74b3a43d.js +1 -0
  117. package/.next/static/chunks/9182.b3f6afd537f9c3fe.js +1 -0
  118. package/.next/static/chunks/9448.a3d481d9e75112d4.js +2 -0
  119. package/.next/static/chunks/9668.b606b2dc0af7c335.js +1 -0
  120. package/.next/static/chunks/app/_global-error/page-6522fcf9bacdbe27.js +1 -0
  121. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-6522fcf9bacdbe27.js +1 -0
  122. package/.next/static/chunks/app/api/agent/[id]/events/route-6522fcf9bacdbe27.js +1 -0
  123. package/.next/static/chunks/app/api/agent/[id]/route-6522fcf9bacdbe27.js +1 -0
  124. package/.next/static/chunks/app/api/agent/new/route-6522fcf9bacdbe27.js +1 -0
  125. package/.next/static/chunks/app/api/agent/running/events/route-6522fcf9bacdbe27.js +1 -0
  126. package/.next/static/chunks/app/api/agents/[name]/route-6522fcf9bacdbe27.js +1 -0
  127. package/.next/static/chunks/app/api/agents/route-6522fcf9bacdbe27.js +1 -0
  128. package/.next/static/chunks/app/api/agents/unpack/route-6522fcf9bacdbe27.js +1 -0
  129. package/.next/static/chunks/app/api/app-update/route-6522fcf9bacdbe27.js +1 -0
  130. package/.next/static/chunks/app/api/auth/all-providers/route-6522fcf9bacdbe27.js +1 -0
  131. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-6522fcf9bacdbe27.js +1 -0
  132. package/.next/static/chunks/app/api/auth/login/[provider]/route-6522fcf9bacdbe27.js +1 -0
  133. package/.next/static/chunks/app/api/auth/logout/[provider]/route-6522fcf9bacdbe27.js +1 -0
  134. package/.next/static/chunks/app/api/auth/providers/route-6522fcf9bacdbe27.js +1 -0
  135. package/.next/static/chunks/app/api/cwd/browse/route-6522fcf9bacdbe27.js +1 -0
  136. package/.next/static/chunks/app/api/cwd/validate/route-6522fcf9bacdbe27.js +1 -0
  137. package/.next/static/chunks/app/api/default-cwd/route-6522fcf9bacdbe27.js +1 -0
  138. package/.next/static/chunks/app/api/file-index/route-6522fcf9bacdbe27.js +1 -0
  139. package/.next/static/chunks/app/api/files/[...path]/route-6522fcf9bacdbe27.js +1 -0
  140. package/.next/static/chunks/app/api/git/diff/route-6522fcf9bacdbe27.js +1 -0
  141. package/.next/static/chunks/app/api/git/status/route-6522fcf9bacdbe27.js +1 -0
  142. package/.next/static/chunks/app/api/home/route-6522fcf9bacdbe27.js +1 -0
  143. package/.next/static/chunks/app/api/mcp/route-6522fcf9bacdbe27.js +1 -0
  144. package/.next/static/chunks/app/api/model-roles/route-6522fcf9bacdbe27.js +1 -0
  145. package/.next/static/chunks/app/api/models/route-6522fcf9bacdbe27.js +1 -0
  146. package/.next/static/chunks/app/api/models-config/catalog/route-6522fcf9bacdbe27.js +1 -0
  147. package/.next/static/chunks/app/api/models-config/route-6522fcf9bacdbe27.js +1 -0
  148. package/.next/static/chunks/app/api/models-config/test/route-6522fcf9bacdbe27.js +1 -0
  149. package/.next/static/chunks/app/api/omp-settings/route-6522fcf9bacdbe27.js +1 -0
  150. package/.next/static/chunks/app/api/omp-update/route-6522fcf9bacdbe27.js +1 -0
  151. package/.next/static/chunks/app/api/omp-version/route-6522fcf9bacdbe27.js +1 -0
  152. package/.next/static/chunks/app/api/plugins/route-6522fcf9bacdbe27.js +1 -0
  153. package/.next/static/chunks/app/api/projects/route-6522fcf9bacdbe27.js +1 -0
  154. package/.next/static/chunks/app/api/providers/enable/route-6522fcf9bacdbe27.js +1 -0
  155. package/.next/static/chunks/app/api/sessions/[id]/archive/route-6522fcf9bacdbe27.js +1 -0
  156. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-6522fcf9bacdbe27.js +1 -0
  157. package/.next/static/chunks/app/api/sessions/[id]/context/route-6522fcf9bacdbe27.js +1 -0
  158. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-6522fcf9bacdbe27.js +1 -0
  159. package/.next/static/chunks/app/api/sessions/[id]/export/route-6522fcf9bacdbe27.js +1 -0
  160. package/.next/static/chunks/app/api/sessions/[id]/route-6522fcf9bacdbe27.js +1 -0
  161. package/.next/static/chunks/app/api/sessions/[id]/state/route-6522fcf9bacdbe27.js +1 -0
  162. package/.next/static/chunks/app/api/sessions/[id]/subagents/[subagentId]/route-6522fcf9bacdbe27.js +1 -0
  163. package/.next/static/chunks/app/api/sessions/[id]/subagents/route-6522fcf9bacdbe27.js +1 -0
  164. package/.next/static/chunks/app/api/sessions/archive/route-6522fcf9bacdbe27.js +1 -0
  165. package/.next/static/chunks/app/api/sessions/import/route-6522fcf9bacdbe27.js +1 -0
  166. package/.next/static/chunks/app/api/sessions/route-6522fcf9bacdbe27.js +1 -0
  167. package/.next/static/chunks/app/api/skills/check/route-6522fcf9bacdbe27.js +1 -0
  168. package/.next/static/chunks/app/api/skills/install/route-6522fcf9bacdbe27.js +1 -0
  169. package/.next/static/chunks/app/api/skills/route-6522fcf9bacdbe27.js +1 -0
  170. package/.next/static/chunks/app/api/skills/search/route-6522fcf9bacdbe27.js +1 -0
  171. package/.next/static/chunks/app/api/skills/update/route-6522fcf9bacdbe27.js +1 -0
  172. package/.next/static/chunks/app/api/usage/route-6522fcf9bacdbe27.js +1 -0
  173. package/.next/static/chunks/app/api/web-auth/session/route-6522fcf9bacdbe27.js +1 -0
  174. package/.next/static/chunks/app/api/worktrees/route-6522fcf9bacdbe27.js +1 -0
  175. package/.next/static/chunks/app/page-a17db33f16fecf66.js +59 -0
  176. package/.next/static/chunks/next/dist/client/components/builtin/app-error-6522fcf9bacdbe27.js +1 -0
  177. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-6522fcf9bacdbe27.js +1 -0
  178. package/.next/static/chunks/next/dist/client/components/builtin/not-found-6522fcf9bacdbe27.js +1 -0
  179. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6522fcf9bacdbe27.js +1 -0
  180. package/.next/static/chunks/webpack-67515f5d41ff9bce.js +1 -0
  181. package/.next/static/css/c6eda91f31526945.css +3 -0
  182. package/.next/static/fRcutXx13x4CJ0lH1LDw2/_buildManifest.js +1 -0
  183. package/package.json +1 -1
  184. package/.next/static/chunks/2201.6abfe81cfb579cec.js +0 -1
  185. package/.next/static/chunks/3274.30d8439f3571079d.js +0 -1
  186. package/.next/static/chunks/3451-3d65a6a41175e276.js +0 -1
  187. package/.next/static/chunks/4315-c1043ad8843c6724.js +0 -1
  188. package/.next/static/chunks/9182.b5a8480a8c9fd1ce.js +0 -1
  189. package/.next/static/chunks/9668.50f63e37c76796c5.js +0 -1
  190. package/.next/static/chunks/app/_global-error/page-b3b7f9faeba219c0.js +0 -1
  191. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-b3b7f9faeba219c0.js +0 -1
  192. package/.next/static/chunks/app/api/agent/[id]/events/route-b3b7f9faeba219c0.js +0 -1
  193. package/.next/static/chunks/app/api/agent/[id]/route-b3b7f9faeba219c0.js +0 -1
  194. package/.next/static/chunks/app/api/agent/new/route-b3b7f9faeba219c0.js +0 -1
  195. package/.next/static/chunks/app/api/agent/running/events/route-b3b7f9faeba219c0.js +0 -1
  196. package/.next/static/chunks/app/api/agents/[name]/route-b3b7f9faeba219c0.js +0 -1
  197. package/.next/static/chunks/app/api/agents/route-b3b7f9faeba219c0.js +0 -1
  198. package/.next/static/chunks/app/api/agents/unpack/route-b3b7f9faeba219c0.js +0 -1
  199. package/.next/static/chunks/app/api/app-update/route-b3b7f9faeba219c0.js +0 -1
  200. package/.next/static/chunks/app/api/auth/all-providers/route-b3b7f9faeba219c0.js +0 -1
  201. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-b3b7f9faeba219c0.js +0 -1
  202. package/.next/static/chunks/app/api/auth/login/[provider]/route-b3b7f9faeba219c0.js +0 -1
  203. package/.next/static/chunks/app/api/auth/logout/[provider]/route-b3b7f9faeba219c0.js +0 -1
  204. package/.next/static/chunks/app/api/auth/providers/route-b3b7f9faeba219c0.js +0 -1
  205. package/.next/static/chunks/app/api/cwd/browse/route-b3b7f9faeba219c0.js +0 -1
  206. package/.next/static/chunks/app/api/cwd/validate/route-b3b7f9faeba219c0.js +0 -1
  207. package/.next/static/chunks/app/api/default-cwd/route-b3b7f9faeba219c0.js +0 -1
  208. package/.next/static/chunks/app/api/file-index/route-b3b7f9faeba219c0.js +0 -1
  209. package/.next/static/chunks/app/api/files/[...path]/route-b3b7f9faeba219c0.js +0 -1
  210. package/.next/static/chunks/app/api/git/diff/route-b3b7f9faeba219c0.js +0 -1
  211. package/.next/static/chunks/app/api/git/status/route-b3b7f9faeba219c0.js +0 -1
  212. package/.next/static/chunks/app/api/home/route-b3b7f9faeba219c0.js +0 -1
  213. package/.next/static/chunks/app/api/mcp/route-b3b7f9faeba219c0.js +0 -1
  214. package/.next/static/chunks/app/api/model-roles/route-b3b7f9faeba219c0.js +0 -1
  215. package/.next/static/chunks/app/api/models/route-b3b7f9faeba219c0.js +0 -1
  216. package/.next/static/chunks/app/api/models-config/catalog/route-b3b7f9faeba219c0.js +0 -1
  217. package/.next/static/chunks/app/api/models-config/route-b3b7f9faeba219c0.js +0 -1
  218. package/.next/static/chunks/app/api/models-config/test/route-b3b7f9faeba219c0.js +0 -1
  219. package/.next/static/chunks/app/api/omp-settings/route-b3b7f9faeba219c0.js +0 -1
  220. package/.next/static/chunks/app/api/omp-update/route-b3b7f9faeba219c0.js +0 -1
  221. package/.next/static/chunks/app/api/omp-version/route-b3b7f9faeba219c0.js +0 -1
  222. package/.next/static/chunks/app/api/plugins/route-b3b7f9faeba219c0.js +0 -1
  223. package/.next/static/chunks/app/api/projects/route-b3b7f9faeba219c0.js +0 -1
  224. package/.next/static/chunks/app/api/providers/enable/route-b3b7f9faeba219c0.js +0 -1
  225. package/.next/static/chunks/app/api/sessions/[id]/archive/route-b3b7f9faeba219c0.js +0 -1
  226. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-b3b7f9faeba219c0.js +0 -1
  227. package/.next/static/chunks/app/api/sessions/[id]/context/route-b3b7f9faeba219c0.js +0 -1
  228. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-b3b7f9faeba219c0.js +0 -1
  229. package/.next/static/chunks/app/api/sessions/[id]/export/route-b3b7f9faeba219c0.js +0 -1
  230. package/.next/static/chunks/app/api/sessions/[id]/route-b3b7f9faeba219c0.js +0 -1
  231. package/.next/static/chunks/app/api/sessions/[id]/state/route-b3b7f9faeba219c0.js +0 -1
  232. package/.next/static/chunks/app/api/sessions/[id]/subagents/[subagentId]/route-b3b7f9faeba219c0.js +0 -1
  233. package/.next/static/chunks/app/api/sessions/[id]/subagents/route-b3b7f9faeba219c0.js +0 -1
  234. package/.next/static/chunks/app/api/sessions/import/route-b3b7f9faeba219c0.js +0 -1
  235. package/.next/static/chunks/app/api/sessions/route-b3b7f9faeba219c0.js +0 -1
  236. package/.next/static/chunks/app/api/skills/check/route-b3b7f9faeba219c0.js +0 -1
  237. package/.next/static/chunks/app/api/skills/install/route-b3b7f9faeba219c0.js +0 -1
  238. package/.next/static/chunks/app/api/skills/route-b3b7f9faeba219c0.js +0 -1
  239. package/.next/static/chunks/app/api/skills/search/route-b3b7f9faeba219c0.js +0 -1
  240. package/.next/static/chunks/app/api/skills/update/route-b3b7f9faeba219c0.js +0 -1
  241. package/.next/static/chunks/app/api/usage/route-b3b7f9faeba219c0.js +0 -1
  242. package/.next/static/chunks/app/api/web-auth/session/route-b3b7f9faeba219c0.js +0 -1
  243. package/.next/static/chunks/app/api/worktrees/route-b3b7f9faeba219c0.js +0 -1
  244. package/.next/static/chunks/app/page-42f14d1d105b560f.js +0 -76
  245. package/.next/static/chunks/next/dist/client/components/builtin/app-error-b3b7f9faeba219c0.js +0 -1
  246. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b3b7f9faeba219c0.js +0 -1
  247. package/.next/static/chunks/next/dist/client/components/builtin/not-found-b3b7f9faeba219c0.js +0 -1
  248. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b3b7f9faeba219c0.js +0 -1
  249. package/.next/static/chunks/webpack-aa3ac8754f36a5a1.js +0 -1
  250. package/.next/static/css/fd6895a0365999bd.css +0 -3
  251. package/.next/static/p27_8jX1Nr1Q_uA0Whr9L/_buildManifest.js +0 -1
  252. /package/.next/static/{p27_8jX1Nr1Q_uA0Whr9L → fRcutXx13x4CJ0lH1LDw2}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ @font-face{font-family:Noto Sans Mono;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1cdd02902f937a18-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Noto Sans Mono;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7deddc85b7ffd1dc-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Noto Sans Mono;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1a3dce5cfb5f7760-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Noto Sans Mono;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/15605e25b523335c-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Noto Sans Mono;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/641a7b8a5800ee0e-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Noto Sans Mono;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/4c4b3b30b6bcb2be-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Noto Sans Mono;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/ec14413c594b3356-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Noto Sans Mono Fallback;src:local("Arial");ascent-override:79.43%;descent-override:21.77%;line-gap-override:0.00%;size-adjust:134.59%}.__className_66b8ca{font-family:Noto Sans Mono,Noto Sans Mono Fallback;font-style:normal}.__variable_66b8ca{--font-noto-mono:"Noto Sans Mono","Noto Sans Mono Fallback"}@font-face{font-family:Pretendard Variable;font-weight:45 920;font-style:normal;font-display:swap;src:url(/_next/static/media/PretendardVariable.ff840cfe.woff2) format("woff2-variations")}
2
+
3
+ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--font-weight-medium:500;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-border:var(--border);--color-text:var(--text);--color-text-muted:var(--text-muted);--color-text-dim:var(--text-dim);--color-accent:var(--accent);--color-accent-hover:var(--accent-hover);--color-bg-subtle:var(--bg-subtle)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-\[720px\]{height:720px}.h-full{height:100%}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-\[720px\]{width:720px}.w-full{width:100%}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e+38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-solid{--tw-border-style:solid;border-style:solid}.border-border{border-color:var(--color-border)}.bg-accent{background-color:var(--color-accent)}.bg-bg-subtle{background-color:var(--color-bg-subtle)}.px-2{padding-inline:calc(var(--spacing) * 2)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-6{padding-top:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-all{word-break:break-all}.text-accent{color:var(--color-accent)}.text-text{color:var(--color-text)}.text-text-dim{color:var(--color-text-dim)}.text-text-muted{color:var(--color-text-muted)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[1px\]{--tw-backdrop-blur:blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.\[scrollbar-width\:none\]{scrollbar-width:none}@media (hover:hover){.hover\:text-accent-hover:hover{color:var(--color-accent-hover)}.hover\:text-text:hover{color:var(--color-text)}}}:root,html[data-palette=warm]{--bg:#faf9f6;--bg-panel:#f2f0ea;--bg-hover:#eae7df;--bg-selected:#e5e0d4;--border:#e2ddd2;--text:#2b2823;--text-muted:#69635a;--text-dim:#6a6458;--accent:#b03e22;--accent-strong:#b03e22;--accent-hover:#96331b;--user-bg:#f5ede1;--tool-bg:#f6f3ed;--bg-subtle:#3c32230a;--status-error:#b42318;--status-success:#18794e;--status-warning:#8a5a00;--status-modified:#a87b1f;--status-renamed:#2563eb;--on-accent:#fff;--overlay-backdrop:var(--text)}@supports (color:color-mix(in lab,red,red)){:root,html[data-palette=warm]{--overlay-backdrop:color-mix(in srgb,var(--text) 24%,transparent)}}:root,html[data-palette=warm]{--border-muted:#e2ddd2;--border-accent:#b03e22;--focus-ring-color:#b03e22;--custom-message-bg:#f3eee6;--tool-pending-bg:#f3f0ea;--tool-success-bg:#edf3ec;--tool-error-bg:#f7ece8;--source-project:#b03e22;--source-user:#69635a;--source-extension:#6a6458;--switch-track:#e2ddd2;--switch-thumb:#fff;--switch-thumb-shadow:0 1px 2px #3c322338}html.dark:not([data-palette]),html[data-palette=warm].dark{--bg:#1b1916;--bg-panel:#231f1b;--bg-hover:#2b2721;--bg-selected:#332e26;--border:#38322b;--text:#ebe6dc;--text-muted:#a39b8e;--text-dim:#938c81;--accent:#e07b54;--accent-strong:#c2542e;--accent-hover:#e89371;--user-bg:#2c2721;--tool-bg:#26221d;--bg-subtle:#ebe1d20d;--status-error:#ff8a80;--status-success:#69d5a5;--status-warning:#f0c36a;--status-modified:#e0b24d;--status-renamed:#7ca8ff;--on-accent:#fff;--overlay-backdrop:var(--text)}@supports (color:color-mix(in lab,red,red)){html.dark:not([data-palette]),html[data-palette=warm].dark{--overlay-backdrop:color-mix(in srgb,var(--text) 24%,transparent)}}html.dark:not([data-palette]),html[data-palette=warm].dark{--border-muted:#38322b;--border-accent:#e07b54;--focus-ring-color:#e07b54;--custom-message-bg:#2a252f;--tool-pending-bg:#25242a;--tool-success-bg:#202923;--tool-error-bg:#302221;--source-project:#e07b54;--source-user:#a39b8e;--source-extension:#938c81;--switch-track:#38322b;--switch-thumb:#ebe6dc;--switch-thumb-shadow:0 1px 2px #00000073}html[data-palette=omp]{--bg:#f9f7f1;--bg-panel:#f1eee6;--bg-hover:#ebe7dc;--bg-selected:#ede9df;--border:#c8c4b8;--text:#3a3832;--text-muted:#68645c;--text-dim:#746f65;--accent:#608058;--accent-strong:#4a603f;--accent-hover:#526f4b;--user-bg:#f2efe7;--tool-bg:#eef0ed;--bg-subtle:#3a38320b;--status-error:#a8463e;--status-success:#4a713f;--status-warning:#876a20;--status-modified:#876a20;--status-renamed:#456f68;--on-accent:#fff;--overlay-backdrop:var(--text)}@supports (color:color-mix(in lab,red,red)){html[data-palette=omp]{--overlay-backdrop:color-mix(in srgb,var(--text) 24%,transparent)}}html[data-palette=omp]{--border-muted:#d8d3c7;--border-accent:#608058;--focus-ring-color:#608058;--custom-message-bg:#eef5ec;--tool-pending-bg:#eef0ed;--tool-success-bg:#ecf2ea;--tool-error-bg:#f5efed;--source-project:#608058;--source-user:#68645c;--source-extension:#746f65;--switch-track:#c8c4b8;--switch-thumb:#fff;--switch-thumb-shadow:0 1px 2px #3a383238}html[data-palette=omp].dark{--bg:#18181e;--bg-panel:#1e1e24;--bg-hover:#272a31;--bg-selected:#31363f;--border:#3d424a;--text:#e7e8ea;--text-muted:#a0a4ac;--text-dim:#858b96;--accent:#febc38;--accent-strong:#956000;--accent-hover:#ffd06a;--user-bg:#221d1a;--tool-bg:#1d2129;--bg-subtle:#e7e8ea0d;--status-error:#ff6b78;--status-success:#89d281;--status-warning:#e4c00f;--status-modified:#e4c00f;--status-renamed:#64b5d2;--on-accent:#fff;--overlay-backdrop:var(--text)}@supports (color:color-mix(in lab,red,red)){html[data-palette=omp].dark{--overlay-backdrop:color-mix(in srgb,var(--text) 24%,transparent)}}html[data-palette=omp].dark{--border-muted:#3d424a;--border-accent:#178fb9;--focus-ring-color:#0088fa;--custom-message-bg:#2a2530;--tool-pending-bg:#1d2129;--tool-success-bg:#161a1f;--tool-error-bg:#291d1d;--source-project:#febc38;--source-user:#a0a4ac;--source-extension:#858b96;--switch-track:#3d424a;--switch-thumb:#e7e8ea;--switch-thumb-shadow:0 1px 2px #00000080}:root{--radius-control:8px;--radius-card:12px;--radius-modal:16px;--control-height-sm:28px;--control-height:32px;--control-height-lg:36px;--shell-topbar-height:36px;--shell-file-toggle-size:calc(var(--shell-topbar-height) - 6px);--control-touch:44px;--control-touch-icon:40px;--space-1:2px;--space-2:4px;--space-3:6px;--space-4:8px;--space-5:12px;--space-6:16px;--space-8:24px;--text-xs:10px;--text-sm:11px;--text-md:12px;--text-base:13px;--text-lg:14px;--text-xl:17px;--composer-ring-size:26px;--composer-control-h:var(--control-height-sm);--composer-attachment-w:var(--control-height-sm);--composer-thinking-max-w:66px;--composer-send-size:34px;--composer-shell-padding:var(--space-5) var(--space-5) var(--space-4) calc(var(--space-5) + var(--space-1));--composer-toolbar-separation:var(--space-2);--sidebar-mobile-width:280px;--accent-subtle:var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--accent-subtle:color-mix(in srgb,var(--accent) 12%,transparent)}}:root{--status-success-subtle:var(--status-success)}@supports (color:color-mix(in lab,red,red)){:root{--status-success-subtle:color-mix(in srgb,var(--status-success) 12%,transparent)}}:root{--status-warning-subtle:var(--status-warning)}@supports (color:color-mix(in lab,red,red)){:root{--status-warning-subtle:color-mix(in srgb,var(--status-warning) 12%,transparent)}}:root{--code-bg:var(--bg)}@supports (color:color-mix(in lab,red,red)){:root{--code-bg:color-mix(in srgb,var(--bg) 88%,var(--bg-panel))}}:root{--code-font-size:12.5px;--code-line-height:1.62;--code-padding-block:11px;--code-padding-inline:13px;--control-padding-inline:10px;--z-dropdown:50;--z-extension-dialog:90;--z-tooltip:120;--z-sidebar-backdrop:199;--z-sidebar:200;--z-resize-handle:205;--z-file-toggle:300;--z-branch-popover:600;--z-dialog-backdrop:1000;--z-dialog:1001;--z-directory-picker:1002;--z-command-palette:2000;--z-toast:2100;--dur-spin:.8s;--shadow-live-indicator:0 0 4px var(--status-success);--focus-ring:0 0 0 2px var(--focus-ring-color)}@supports (color:color-mix(in lab,red,red)){:root{--focus-ring:0 0 0 2px color-mix(in srgb,var(--focus-ring-color) 22%,transparent)}}:root{--shadow-card:0 1px 2px #3c32230d,0 2px 8px #3c32230f;--shadow-pop:0 2px 6px #3c322312,0 8px 24px #3c32231a;--shadow-modal:0 4px 12px #3c322314,0 16px 48px #3c322324;--ease-out-warm:cubic-bezier(.22,1,.36,1);--dur-fast:.15s;--dur-med:.22s;--dur-slow:.32s;--dur-theme:.45s;--palette-warm-preview-bg:#faf9f6;--palette-warm-preview-panel:#f2f0ea;--palette-warm-preview-accent:#b03e22;--palette-omp-preview-bg:#f9f7f1;--palette-omp-preview-panel:#ebe7dc;--palette-omp-preview-accent:#608058}html.dark{--shadow-card:0 1px 2px #00000059,0 0 0 1px #ebe1d208;--shadow-pop:0 2px 8px #00000073,0 0 0 1px #ebe1d20a;--shadow-modal:0 8px 32px #0000008c,0 0 0 1px #ebe1d20d}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-sans);overscroll-behavior:none;margin:0;padding:0;font-size:14px;overflow:hidden}body{height:100dvh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-dim)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-dim) 45%,transparent)}}::-webkit-scrollbar-thumb{background-clip:content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text-dim) 75%,transparent)}}::-webkit-scrollbar-thumb:hover{background-clip:content-box}*{scrollbar-width:thin;scrollbar-color:var(--text-dim) transparent}@supports (color:color-mix(in lab,red,red)){*{scrollbar-color:color-mix(in srgb,var(--text-dim) 45%,transparent) transparent}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}:root{--font-sans:"Pretendard Variable","Pretendard",-apple-system,BlinkMacSystemFont,system-ui,sans-serif;--font-mono:var(--font-noto-mono),"SFMono-Regular","Consolas",var(--font-sans),monospace;--font-serif:var(--font-sans)}code,pre{font-family:var(--font-mono)}.display-serif{font-family:var(--font-sans);letter-spacing:-.012em;font-weight:600}.markdown-body{color:var(--text);word-break:break-word;font-size:14px;line-height:1.7}.markdown-body p{margin:0 0 10px}.markdown-body p:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-family:var(--font-sans);color:var(--text);letter-spacing:.005em;font-weight:600;line-height:1.35}.markdown-body h1{margin:14px 0 8px;font-size:1.2em}.markdown-body h2{margin:12px 0 6px;font-size:1.1em}.markdown-body h3{color:var(--text);margin:10px 0 5px;font-size:1em}@supports (color:color-mix(in lab,red,red)){.markdown-body h3{color:color-mix(in srgb,var(--text) 88%,var(--text-muted))}}.markdown-body ol,.markdown-body ul{margin:6px 0 10px;padding-left:22px;list-style-position:outside}.markdown-body li{margin:2px 0;padding-left:2px}.markdown-body li>ol,.markdown-body li>ul{margin:2px 0 4px}.markdown-body ul>li{list-style-type:disc}.markdown-body ol>li{list-style-type:decimal}.markdown-body li>p{margin:0}.markdown-body li::marker{color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body li::marker{color:color-mix(in srgb,var(--accent) 72%,var(--text-muted))}}.markdown-body li::marker{font-weight:600}.markdown-body strong{color:var(--text)}@supports (color:color-mix(in lab,red,red)){.markdown-body strong{color:color-mix(in srgb,var(--text) 88%,var(--accent))}}.markdown-body strong{font-weight:700}.markdown-body em{color:var(--text-muted)}.markdown-body a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body a{-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent)}}.markdown-body a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.markdown-body img{border-radius:6px;max-width:100%;height:auto;margin:8px 0;display:block}.markdown-body .markdown-inline-code{background:var(--bg-panel)}@supports (color:color-mix(in lab,red,red)){.markdown-body .markdown-inline-code{background:color-mix(in srgb,var(--bg-panel) 62%,var(--bg))}}.markdown-body .markdown-inline-code{color:var(--text);font-family:var(--font-mono);box-shadow:inset 0 0 0 1px var(--border);border-radius:5px;padding:1px 5px;font-size:.92em}@supports (color:color-mix(in lab,red,red)){.markdown-body .markdown-inline-code{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 60%,transparent)}}.markdown-body .contains-task-list{padding-left:0;list-style:none}.markdown-body .task-list-item{padding-left:25px;display:block;position:relative}.markdown-body .task-list-item::marker{content:""}.markdown-body .task-list-item>input[type=checkbox],.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child{appearance:none;border:1px solid var(--border);background:var(--bg);border-radius:4px;place-content:center;width:14px;height:14px;margin:0;display:inline-grid;position:absolute;top:.35em;left:0}.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}}.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.markdown-body .task-list-item>input[type=checkbox]:checked,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked{background:color-mix(in srgb,var(--accent) 10%,var(--bg))}}.markdown-body .task-list-item>input[type=checkbox]:checked:before,.markdown-body .task-list-item>p:first-child>input[type=checkbox]:first-child:checked:before{content:"";border:solid var(--accent);border-width:0 1.5px 1.5px 0;width:4px;height:8px;transform:rotate(45deg)translateY(-1px)}.markdown-body blockquote{border-left:3px solid var(--border)}@supports (color:color-mix(in lab,red,red)){.markdown-body blockquote{border-left:3px solid color-mix(in srgb,var(--border) 75%,var(--text-muted))}}.markdown-body blockquote{background:var(--bg-subtle);color:var(--text-muted);border-radius:0 6px 6px 0;margin:6px 0;padding:6px 11px}.markdown-table-wrap{border:1px solid var(--border);border-radius:7px;width:100%;margin:8px 0;overflow:auto hidden}.markdown-body table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13px}.markdown-body td,.markdown-body th{border:0;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 10px}.markdown-body tr:last-child td{border-bottom:0}.markdown-body th{background:var(--bg-panel);color:var(--text)}@supports (color:color-mix(in lab,red,red)){.markdown-body th{color:color-mix(in srgb,var(--text) 88%,var(--text-muted))}}.markdown-body th{font-weight:650}.markdown-body tbody tr:nth-child(2n) td{background:var(--bg-subtle)}.markdown-body hr{background:linear-gradient(90deg,transparent,var(--border),transparent);border:none;height:1px;margin:12px 0}.markdown-body .katex-display{margin:.6em 0;padding:2px 0;overflow:auto hidden}.markdown-body .katex{font-size:1.05em}.markdown-user-message p{white-space:pre-wrap}.markdown-custom-message{line-height:1.32}.markdown-custom-message p{margin:0}.markdown-custom-message h1,.markdown-custom-message h2,.markdown-custom-message h3,.markdown-custom-message h4,.markdown-custom-message h5,.markdown-custom-message h6{margin:4px 0 2px;line-height:1.18}.markdown-custom-message ol,.markdown-custom-message ul{margin:2px 0 3px}.markdown-custom-message li{margin:0}.markdown-custom-message blockquote{margin:3px 0;padding:4px 8px}.markdown-custom-message .markdown-code-block,.markdown-custom-message .markdown-table-wrap{margin:4px 0}.markdown-compaction-message{line-height:1.5}.markdown-compaction-message p{margin:0 0 7px}.markdown-compaction-message h1,.markdown-compaction-message h2,.markdown-compaction-message h3,.markdown-compaction-message h4,.markdown-compaction-message h5,.markdown-compaction-message h6{margin:8px 0 3px;line-height:1.25}.markdown-compaction-message ol,.markdown-compaction-message ul{margin:4px 0 8px}.markdown-compaction-message li{margin:2px 0}.markdown-compaction-message .markdown-code-block,.markdown-compaction-message .markdown-table-wrap{margin:6px 0}.markdown-subagent-text{font-size:13px;line-height:1.55}.markdown-subagent-text p{margin:0 0 6px}.markdown-subagent-text p:last-child{margin-bottom:0}.markdown-subagent-text h1,.markdown-subagent-text h2,.markdown-subagent-text h3,.markdown-subagent-text h4,.markdown-subagent-text h5,.markdown-subagent-text h6{margin:7px 0 3px;line-height:1.25}.markdown-subagent-text ol,.markdown-subagent-text ul{margin:3px 0 6px}.markdown-subagent-text li{margin:1px 0}.markdown-subagent-text blockquote{margin:4px 0;padding:4px 8px}.markdown-subagent-text .markdown-code-block,.markdown-subagent-text .markdown-table-wrap{margin:5px 0}.compaction-file-details{border-top:1px solid var(--border);color:var(--text-muted);margin-top:10px;padding-top:8px;font-size:12px}.compaction-file-details summary{cursor:pointer;font-weight:600;line-height:1.4}.compaction-file-section{margin-top:8px}.compaction-file-title{color:var(--text);margin-bottom:4px;font-size:11px;font-weight:650}.compaction-file-list{border:1px solid var(--border);background:var(--bg-panel);max-height:180px;font-family:var(--font-mono);border-radius:6px;margin:0;padding:7px 8px;font-size:11px;line-height:1.45;list-style:none;overflow:auto}.compaction-file-list li{overflow-wrap:anywhere}.compaction-file-list li+li{margin-top:3px}.markdown-code-block{border:1px solid var(--border);background:var(--bg);box-shadow:0 1px 0 var(--border);border-radius:6px;margin:6px 0;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.markdown-code-block{box-shadow:0 1px 0 color-mix(in srgb,var(--border) 42%,transparent)}}.markdown-code-header{background:var(--bg-panel);border-bottom:1px solid var(--border);color:var(--text-dim);justify-content:space-between;align-items:center;gap:8px;padding:5px 10px;font-size:11px;display:flex}.markdown-code-lang{color:var(--text-muted);font-family:var(--font-mono);font-weight:650}.markdown-code-actions{align-items:center;gap:6px;display:flex}.markdown-code-action{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;font:inherit;border-radius:5px;padding:2px 7px;font-size:11px;line-height:1.25}.markdown-code-action:hover:not(:disabled){color:var(--text);border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.markdown-code-action:hover:not(:disabled){border-color:color-mix(in srgb,var(--border) 70%,var(--text-muted))}}.markdown-code-action:hover:not(:disabled){background:var(--bg-hover)}.markdown-code-action.is-copied{color:var(--status-success);border-color:var(--status-success)}@supports (color:color-mix(in lab,red,red)){.markdown-code-action.is-copied{border-color:color-mix(in srgb,var(--status-success) 45%,var(--border))}}.markdown-code-action.is-copied{background:var(--bg-panel)}.markdown-code-action:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.75}.markdown-code-action.is-active{background:var(--bg-selected);color:var(--text)}.mermaid-block{background:var(--bg);padding:12px;overflow-x:auto}@supports (color:color-mix(in lab,red,red)){.mermaid-block{background:color-mix(in srgb,var(--bg) 92%,var(--bg-panel))}}.mermaid-block svg{max-width:none;display:block}.mermaid-block-loading{min-height:120px;color:var(--text-muted);justify-content:center;align-items:center;gap:8px;font-size:12px;animation:pulse 1.4s ease-in-out infinite;display:flex}.mermaid-block-loading:after{content:"";border:2px solid var(--border);border-top-color:var(--accent);width:14px;height:14px;animation:spin var(--dur-spin) linear infinite;border-radius:50%}.mermaid-block-error{color:var(--text-muted);font-family:var(--font-mono);align-items:center;gap:10px;padding:12px;font-size:12px;display:flex}.mermaid-preview-button{width:100%;color:inherit;cursor:zoom-in;text-align:left;border:0}.mermaid-preview-button:hover{opacity:.85}.mermaid-preview-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.mermaid-zoom-dialog{background:var(--bg);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--text);border:0;margin:0;padding:0}.mermaid-zoom-dialog::backdrop{background:var(--overlay-backdrop)}.mermaid-zoom-layout{grid-template-rows:auto minmax(0,1fr);height:100%;display:grid}.mermaid-zoom-toolbar{background:var(--bg-panel);border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:40px;padding:7px 10px;display:flex}.mermaid-zoom-title{min-width:0;color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.mermaid-zoom-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.mermaid-zoom-stepper{border:1px solid var(--border);background:var(--bg);border-radius:5px;align-items:center;height:24px;display:flex;overflow:hidden}.mermaid-zoom-icon-button,.mermaid-zoom-stepper button{width:24px;height:24px;color:var(--text-muted);cursor:pointer;touch-action:manipulation;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.mermaid-zoom-stepper button{height:22px}.mermaid-zoom-stepper button+.mermaid-zoom-value,.mermaid-zoom-value+button{border-left:1px solid var(--border)}.mermaid-zoom-icon-button{border:1px solid var(--border);border-radius:5px;flex:0 0 24px}.mermaid-zoom-icon-button:hover,.mermaid-zoom-stepper button:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.mermaid-zoom-stepper button:disabled{opacity:.35;cursor:default}.mermaid-zoom-icon-button:focus-visible,.mermaid-zoom-stepper button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.mermaid-zoom-value{min-width:48px;height:22px;color:var(--text-muted);font-family:var(--font-mono);text-align:center;-webkit-user-select:none;user-select:none;font-size:12px;line-height:22px}.mermaid-zoom-viewport{background:var(--bg);-webkit-overflow-scrolling:touch;min-width:0;min-height:0;padding:24px;overflow:auto}.mermaid-zoom-canvas{border:1px solid var(--border);background:var(--bg-panel);transition:transform var(--dur-fast) var(--ease-out-warm);border-radius:7px;margin:0 auto;padding:12px}.mermaid-zoom-canvas svg{height:auto;display:block;width:100%!important;max-width:none!important}@media (max-width:480px){.mermaid-zoom-toolbar{padding-inline:8px}.mermaid-zoom-title{font-size:10px}.mermaid-zoom-viewport{padding:12px}}.image-clickable{cursor:zoom-in;background:0 0;border:none;max-width:100%;padding:0;line-height:0;display:inline-block}.markdown-body .image-clickable{width:fit-content;display:block}.image-clickable:hover img{opacity:.85}.image-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.image-lightbox-dialog{background:var(--bg);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--text);border:0;margin:0;padding:0}.image-lightbox-dialog::backdrop{background:var(--overlay-backdrop)}.image-lightbox-layout{grid-template-rows:auto minmax(0,1fr);height:100%;display:grid}.image-lightbox-toolbar{background:var(--bg-panel);border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:40px;padding:7px 10px;display:flex}.image-lightbox-title{min-width:0;color:var(--text-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.image-lightbox-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.image-lightbox-stepper{border:1px solid var(--border);background:var(--bg);border-radius:5px;align-items:center;height:24px;display:flex;overflow:hidden}.image-lightbox-icon-button,.image-lightbox-stepper button{width:24px;height:24px;color:var(--text-muted);cursor:pointer;touch-action:manipulation;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.image-lightbox-stepper button{height:22px}.image-lightbox-stepper button+.image-lightbox-zoom-value,.image-lightbox-zoom-value+button{border-left:1px solid var(--border)}.image-lightbox-icon-button{border:1px solid var(--border);border-radius:5px;flex:0 0 24px}.image-lightbox-icon-button:hover,.image-lightbox-stepper button:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.image-lightbox-stepper button:disabled{opacity:.35;cursor:default}.image-lightbox-icon-button:focus-visible,.image-lightbox-stepper button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.image-lightbox-zoom-value{min-width:48px;height:22px;color:var(--text-muted);font-family:var(--font-mono);text-align:center;-webkit-user-select:none;user-select:none;font-size:12px;line-height:22px}.image-lightbox-viewport{background:var(--bg);-webkit-overflow-scrolling:touch;min-width:0;min-height:0;padding:24px;display:flex;overflow:auto}.image-lightbox-dialog .image-lightbox-img{max-width:none;height:auto;transition:transform var(--dur-fast) var(--ease-out-warm);margin:auto;display:block}@media (max-width:480px){.image-lightbox-toolbar{padding-inline:8px}.image-lightbox-title{font-size:10px}.image-lightbox-viewport{padding:12px}}.file-viewer-toolbar{min-width:0;min-height:35px}.file-viewer-path{flex:auto;min-width:48px}.file-viewer-meta,.file-viewer-path{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-viewer-meta{flex:0 auto;min-width:0}.file-viewer-live-indicator{border-radius:50%;flex:0 0 7px;width:7px;height:7px}.file-viewer-controls{gap:6px}.file-viewer-actions,.file-viewer-controls{flex-shrink:0;align-items:center;display:flex}.file-viewer-actions{order:-1;gap:4px;height:24px}.file-viewer-mode-switch{border:1px solid var(--border);border-radius:5px;height:24px;display:flex;overflow:hidden}.file-viewer-mode-button{border:0;border-left:1px solid var(--border);height:22px;font:inherit;letter-spacing:0;cursor:pointer;white-space:nowrap;padding:0 8px;font-size:11px;font-weight:500}.file-viewer-mode-button:first-child{border-left:0}.file-viewer-mode-button:hover{filter:brightness(1.08)}.file-viewer-icon-button{box-sizing:border-box;border:1px solid var(--border);width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:5px;flex:0 0 24px;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.file-viewer-icon-button:hover{color:var(--text);background:var(--bg-hover)!important}.file-viewer-icon-button:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.55}.file-viewer-icon-button:disabled:hover{color:var(--text-dim);background:0 0!important}.file-viewer-icon-button:focus-visible,.file-viewer-mode-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.directory-picker-path:focus-visible{box-shadow:0 0 0 3px var(--accent);border-color:var(--accent)!important}@supports (color:color-mix(in lab,red,red)){.directory-picker-path:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}}.directory-picker-action:focus-visible,.directory-picker-back:focus-visible,.directory-picker-entry:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.session-item-button{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.session-item-button:focus-visible,.session-item-icon-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:4px}.sidebar-new-session:focus-visible,.sidebar-project-action:focus-visible,.sidebar-project-header>button:focus-visible,.sidebar-project-identity:focus-visible,.sidebar-settings-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sidebar-menu-item{text-align:left;cursor:pointer;width:100%;transition:background var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;display:block}.sidebar-menu-item:hover:not(:disabled){background:var(--bg-hover)}.sidebar-menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}.sidebar-project{isolation:isolate;transition:margin var(--dur-med) var(--ease-out-warm);position:relative}.sidebar-project-header{z-index:1;position:relative}.sidebar-project-worktree{animation:sidebar-worktree-in var(--dur-fast) var(--ease-out-warm) both;margin:0 0 0 32px;padding:0 0 2px 6px}.sidebar-project-worktree>div{width:auto!important;margin:0!important}.sidebar-project-worktree button{width:100%!important;max-width:none!important}@keyframes sidebar-worktree-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}@keyframes sidebar-sessions-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.sidebar-project-activity{transition:transform var(--dur-fast) var(--ease-out-warm),opacity var(--dur-fast) var(--ease-out-warm)}.sidebar-project:hover .sidebar-project-activity{transform:translate(-1px)}.chat-input-shell{transition:border-color var(--dur-med) var(--ease-out-warm),box-shadow var(--dur-med) var(--ease-out-warm),transform var(--dur-med) var(--ease-out-warm)}.chat-input-shell:focus-within{transform:none}.composer-control-shelf{animation:ui-slide-up var(--dur-fast) var(--ease-out-warm) both}.composer-control-shelf>button{transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm),border-color var(--dur-fast) var(--ease-out-warm),transform var(--dur-fast) var(--ease-out-warm)}.composer-control-shelf>button:hover:not(:disabled){transform:none;background:var(--bg-hover)!important;color:var(--text)!important}@media (min-width:641px){.composer-control-shelf{border-top:1px solid var(--border);justify-content:flex-end;max-width:min(100%,760px);padding-top:4px;gap:4px!important}@supports (color:color-mix(in lab,red,red)){.composer-control-shelf{border-top:1px solid color-mix(in srgb,var(--border) 72%,transparent)}}.composer-control-shelf>button{border-radius:6px!important;height:28px!important;padding-inline:8px!important;font-size:11px!important}}@media (prefers-reduced-motion:reduce){.composer-control-shelf,.sidebar-project-sessions,.sidebar-project-worktree{animation:none}}@media (max-width:640px){.file-viewer-meta{display:none}}@media (max-width:380px){.file-viewer-toolbar{gap:6px!important;padding-inline:8px!important}.file-viewer-mode-button{padding-inline:6px}}.markdown-file-preview h1{font-size:1.8em}.markdown-file-preview h2{font-size:1.4em}.markdown-file-preview h3{font-size:1.15em}.markdown-file-preview p{margin:0 0 12px}.markdown-file-preview pre{border:1px solid var(--border);border-radius:6px;margin:12px 0;padding:12px 16px;font-size:13px;overflow-x:auto}.markdown-file-preview code,.markdown-file-preview pre{background:var(--bg-panel);font-family:var(--font-mono)}.markdown-file-preview code{border-radius:3px;padding:1px 5px;font-size:.9em}.markdown-file-preview pre code{background:0 0;padding:0}.markdown-body span.linenumber,span.linenumber{color:var(--text-dim)!important;font-style:normal!important}span.token.table{display:inline}@keyframes drop-zone-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes drop-ripple{0%{opacity:.6;transform:scale(0)}to{opacity:0;transform:scale(1)}}.drop-zone-overlay{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.drop-zone-overlay{background:color-mix(in srgb,var(--accent) 6%,transparent)}}.drop-zone-overlay{animation:drop-zone-in var(--dur-fast) var(--ease-out-warm) both}.drop-ripple-ring{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.drop-ripple-ring{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}}.drop-ripple-ring{animation:drop-ripple 2.4s var(--ease-out-warm) infinite backwards}.drop-zone-illustration{filter:drop-shadow(0 6px 18px var(--accent))}@supports (color:color-mix(in lab,red,red)){.drop-zone-illustration{filter:drop-shadow(0 6px 18px color-mix(in srgb,var(--accent) 18%,transparent))}}@keyframes spin{to{transform:rotate(1turn)}}.icon-spin{animation:spin var(--dur-spin) linear infinite}@keyframes pulse{50%{opacity:.5}}@keyframes skeleton-shimmer{0%{background-position:-150% 0}to{background-position:150% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-subtle) 0,var(--text-dim) 50%,var(--bg-subtle) 100%)}@supports (color:color-mix(in lab,red,red)){.skeleton{background:linear-gradient(90deg,var(--bg-subtle) 0,color-mix(in srgb,var(--text-dim) 10%,var(--bg-subtle)) 50%,var(--bg-subtle) 100%)}}.skeleton{background-size:200% 100%;border-radius:6px;animation:skeleton-shimmer 1.6s ease-in-out infinite}.chat-input-shell:focus-within{border-color:var(--accent)!important}@supports (color:color-mix(in lab,red,red)){.chat-input-shell:focus-within{border-color:color-mix(in srgb,var(--accent) 45%,transparent)!important}}.chat-input-shell:focus-within{box-shadow:var(--shadow-card),0 0 0 3px var(--accent)!important}@supports (color:color-mix(in lab,red,red)){.chat-input-shell:focus-within{box-shadow:var(--shadow-card),0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)!important}}@keyframes ui-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-scale-in{0%{opacity:0;transform:scale(.96)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes ui-slide-down{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes ui-slide-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:ui-fade-in var(--dur-fast) var(--ease-out-warm) both}.animate-scale-in{animation:ui-scale-in var(--dur-med) var(--ease-out-warm) both}.animate-slide-down{animation:ui-slide-down var(--dur-med) var(--ease-out-warm) both}.animate-slide-up{animation:ui-slide-up var(--dur-med) var(--ease-out-warm) both}@keyframes dialog-backdrop-in{0%{opacity:0}to{opacity:1}}.dialog-backdrop-animate{animation:dialog-backdrop-in var(--dur-med) var(--ease-out-warm) both;transition:opacity var(--dur-med) var(--ease-out-warm)}.dialog-popup-animate{animation:dialog-pop-in var(--dur-med) var(--ease-out-warm) both;transition:width var(--dur-med) var(--ease-out-warm),height var(--dur-med) var(--ease-out-warm),max-width var(--dur-med) var(--ease-out-warm),max-height var(--dur-med) var(--ease-out-warm),border-radius var(--dur-med) var(--ease-out-warm),box-shadow var(--dur-med) var(--ease-out-warm);will-change:transform,opacity}.accordion-flow{transition:grid-template-rows var(--dur-med) var(--ease-out-warm),opacity var(--dur-med) var(--ease-out-warm);opacity:0;grid-template-rows:0fr;display:grid}.accordion-flow.is-open{opacity:1;grid-template-rows:1fr}.accordion-flow-inner{min-height:0;overflow:hidden}.chevron-smooth{transition:transform var(--dur-med) var(--ease-out-warm)}@keyframes dialog-pop-in{0%{opacity:0;transform:translate(-50%,-46%)scale(.97)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.dropdown-surface{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-control);box-shadow:var(--shadow-pop);color:var(--text);animation:ui-scale-in var(--dur-fast) var(--ease-out-warm) both;overflow:hidden}.dropdown-item{color:var(--text-muted);transition:background-color var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm)}.dropdown-item:focus-visible,.dropdown-item:hover{background:var(--bg-hover);color:var(--text);outline:none}.dropdown-item[aria-current=true],.dropdown-item[aria-selected=true],.dropdown-item[data-active=true]{background:var(--bg-selected);color:var(--text)}.dropdown-surface :is(select,option){color-scheme:light}html.dark .dropdown-surface :is(select,option){color-scheme:dark}@keyframes chat-message-in{0%{opacity:0;transform:translateY(7px)scale(.995)}to{opacity:1;transform:translateY(0)scale(1)}}.chat-message-card{animation:chat-message-in var(--dur-med) var(--ease-out-warm) both;transition:border-color var(--dur-fast) var(--ease-out-warm),box-shadow var(--dur-fast) var(--ease-out-warm),transform var(--dur-fast) var(--ease-out-warm)}.chat-message-card:hover{border-color:var(--accent)!important}@supports (color:color-mix(in lab,red,red)){.chat-message-card:hover{border-color:color-mix(in srgb,var(--accent) 22%,var(--border))!important}}.chat-message-card:hover{transform:none;box-shadow:var(--shadow-card)!important}.chat-message,.chat-message--live{animation:chat-message-in var(--dur-med) var(--ease-out-warm) both}.chat-message--live{position:relative}.chat-message--live:before{content:"";background:var(--accent);opacity:0;width:3px;animation:live-text-pulse 2.4s ease-in-out var(--dur-med) infinite;pointer-events:none;border-radius:2px;position:absolute;top:4px;bottom:4px;left:0}@keyframes live-text-pulse{0%,to{opacity:0}50%{opacity:.3}}@keyframes toast-in{0%{opacity:0;transform:translate(18px,8px)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}.toast-card{animation:toast-in var(--dur-med) var(--ease-out-warm) both;transition:transform var(--dur-fast) var(--ease-out-warm),border-color var(--dur-fast) var(--ease-out-warm),box-shadow var(--dur-fast) var(--ease-out-warm)}.toast-card:hover{border-color:var(--accent)!important}@supports (color:color-mix(in lab,red,red)){.toast-card:hover{border-color:color-mix(in srgb,var(--accent) 30%,var(--border))!important}}.toast-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-modal)!important}.live-status-dot{isolation:isolate;box-shadow:0 0 0 3px var(--accent);position:relative}@supports (color:color-mix(in lab,red,red)){.live-status-dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}}.live-pulse:after{content:"";border:1.5px solid var(--accent);border-radius:9999px;position:absolute;inset:0}@supports (color:color-mix(in lab,red,red)){.live-pulse:after{border:1.5px solid color-mix(in srgb,var(--accent) 55%,transparent)}}.live-pulse:after{animation:live-dot-pulse 1.5s var(--ease-out-warm) infinite;pointer-events:none;will-change:transform,opacity}@keyframes live-dot-pulse{0%{opacity:.9;transform:scale(1)}70%{opacity:0;transform:scale(2.6)}to{opacity:0;transform:scale(2.6)}}.mcp-editor-grid>:first-child{min-width:0}@media (max-width:640px){.mcp-editor-grid{grid-template-columns:1fr!important}.mcp-editor-grid>:first-child{border-bottom:1px solid var(--border);border-right:0!important}.empty-chat-brand{margin-left:0!important;margin-right:0!important}.model-role-row{gap:6px!important}.model-detail-grid-2,.model-role-row{grid-template-columns:1fr!important}.model-detail-grid-4{grid-template-columns:1fr 1fr!important}}.ui-smooth{transition:background-color var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm),border-color var(--dur-fast) var(--ease-out-warm),opacity var(--dur-fast) var(--ease-out-warm),transform var(--dur-fast) var(--ease-out-warm)}.ui-focus-ring:focus-visible{outline-offset:-2px;outline:2px solid var(--accent)!important}.ui-control{min-height:var(--control-height);padding-inline:var(--control-padding-inline);font:inherit}.ui-control,.ui-icon-button{border-radius:var(--radius-control)}.ui-icon-button{width:var(--control-height);height:var(--control-height);flex:0 0 var(--control-height);justify-content:center;align-items:center;padding:0;display:inline-flex}.ui-compact-surface{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-panel);color:var(--text-muted)}.shell-toolbar-btn{width:28px;height:28px;color:var(--text);cursor:pointer;transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.shell-toolbar-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.shell-toolbar-btn:disabled{color:var(--text-dim);cursor:default;opacity:.5}.shell-toolbar-btn[aria-pressed=true]{background:var(--bg-selected);color:var(--text)}.shell-toolbar-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.shell-toolbar-utility{flex:none;order:1}.shell-session-actions,.shell-toolbar-utility{align-items:center;gap:var(--space-2);min-width:0;height:100%;display:flex}.shell-session-actions{flex:auto;order:3;overflow:hidden}.shell-session-actions>*{flex:none;min-width:0}.shell-toolbar-divider{width:1px;height:18px;margin:0 var(--space-4);background:var(--border);flex:none;order:2}.shell-topbar{min-width:0;height:var(--shell-topbar-height);border-bottom:1px solid var(--border);background:var(--bg-panel);padding-right:calc(var(--shell-file-toggle-size) + var(--space-3));flex-shrink:0}.shell-stats-btn,.shell-topbar{align-items:center;display:flex}.shell-stats-btn{min-width:var(--control-touch-icon);justify-content:center;gap:var(--control-padding-inline);padding:0 var(--control-padding-inline);height:100%;color:var(--text-muted);white-space:nowrap;cursor:pointer;font-variant-numeric:tabular-nums;transition:color var(--dur-fast) var(--ease-out-warm),background var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;flex:none;order:4;font-size:11px;overflow:hidden}.shell-stats-btn:hover{background:var(--bg-hover);color:var(--text)}.shell-stats-btn[aria-pressed=true]{background:var(--bg-selected);color:var(--text)}.shell-file-toggle{top:calc((var(--shell-topbar-height) - var(--shell-file-toggle-size)) / 2);right:calc((var(--shell-topbar-height) - var(--shell-file-toggle-size)) / 2);z-index:var(--z-file-toggle);width:var(--shell-file-toggle-size);height:var(--shell-file-toggle-size);border-radius:var(--radius-control);color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:fixed}.shell-file-toggle:hover,.shell-file-toggle[aria-pressed=true]{background:var(--bg-hover);color:var(--text)}@media (max-width:640px){:root{--shell-topbar-height:44px;--composer-ring-size:28px;--composer-control-h:var(--control-height);--composer-attachment-w:36px;--composer-thinking-max-w:66px;--composer-send-size:34px;--composer-shell-padding:var(--space-5) var(--space-5) var(--space-2) calc(var(--space-5) + var(--space-1))}.shell-session-actions,.shell-toolbar-utility{gap:var(--space-3)}.shell-stats-btn{order:3}.shell-session-actions{order:4}.shell-toolbar-btn{width:var(--control-touch-icon);height:var(--control-touch-icon)}.shell-toolbar-divider{margin:0 var(--space-3)}.shell-stats-btn{padding:0 var(--space-4);min-width:var(--control-touch-icon)}}.process-details-toggle{width:auto;min-height:24px;color:var(--text-muted);cursor:pointer;font:inherit;text-align:left;transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;margin-left:-8px;padding:2px 8px;font-size:12px;display:flex}.process-details-toggle:hover{background:var(--bg-hover);color:var(--text)}.process-details-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:0}.process-details-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tabbar-scroll{border-bottom:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border) transparent}.tabbar-tab{transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm)}.tabbar-tab[aria-selected=true]{box-shadow:inset 0 1px 0 var(--accent);background:var(--bg-selected)!important;color:var(--text)!important}@supports (color:color-mix(in lab,red,red)){.tabbar-tab[aria-selected=true]{box-shadow:inset 0 1px 0 color-mix(in srgb,var(--accent) 14%,transparent)}}.tabbar-tab:hover:not([aria-selected=true]){background:var(--bg-hover)!important;color:var(--text)!important}.tabbar-close{transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm)}@keyframes notice-shelf-in{0%{opacity:0;transform:translateY(-6px)scale(.995)}to{opacity:1;transform:translateY(0)}}@keyframes notice-shelf-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5px)}}@media (prefers-reduced-motion:reduce){.notice-shelf-item{animation-duration:.001ms!important}html{scroll-behavior:auto}*,:after,:before{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.skeleton{background:var(--bg-subtle);animation:none}}@keyframes saved-pop{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--status-success) 55%,transparent);transform:scale(1)}40%{box-shadow:0 0 0 6px color-mix(in srgb,var(--status-success) 25%,transparent);transform:scale(1.08)}to{box-shadow:0 0 0 0 color-mix(in srgb,var(--status-success) 0%,transparent);transform:scale(1)}}@keyframes saved-check-draw{0%{stroke-dashoffset:18px;opacity:0}to{stroke-dashoffset:0;opacity:1}}@media (min-width:641px){.sidebar-overlay-backdrop{display:none!important}.sidebar-container{--sidebar-width:260px;transition:width var(--dur-med) var(--ease-out-warm),min-width var(--dur-med) var(--ease-out-warm);position:relative;overflow:hidden}.sidebar-container.sidebar-open{width:var(--sidebar-width,260px);min-width:var(--sidebar-width,260px)}.sidebar-container.sidebar-closed{width:0;min-width:0;border-right:none!important}.sidebar-container>*{width:var(--sidebar-width,260px);min-width:var(--sidebar-width,260px)}.sidebar-container.sidebar-resizing{transition:none}.right-panel-container{transition:width var(--dur-med) var(--ease-out-warm),min-width var(--dur-med) var(--ease-out-warm);flex-shrink:0;overflow:hidden}.right-panel-container.right-panel-open{width:var(--right-panel-width);min-width:300px;max-width:calc(100vw - 360px)}.right-panel-container.right-panel-closed{width:0;min-width:0;border-left:none!important}.right-panel-container>*{width:var(--right-panel-width);min-width:300px}.right-panel-container.right-panel-resizing{transition:none}}.composer-attachment{width:var(--composer-attachment-w,var(--control-height-sm));height:var(--composer-control-h,var(--control-height-sm));border-radius:var(--radius-control);color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.composer-attachment[data-has-attachments=true]{color:var(--accent)}.composer-attachment:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.composer-attachment[data-has-attachments=true]:hover:not(:disabled){color:var(--accent)}.composer-attachment:disabled{cursor:not-allowed;opacity:.5}.composer-model-button,.composer-thinking-button{align-items:center;gap:var(--space-2,4px);height:var(--composer-control-h,var(--control-height-sm));padding:0 var(--space-4);border-radius:var(--radius-control);color:var(--text-muted);font-size:var(--text-md);transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm);border:none;display:flex}.composer-model-button{max-width:190px;overflow:hidden}.composer-model-button:disabled,.composer-thinking-button:disabled{cursor:not-allowed;opacity:.5}.composer-fast-toggle{gap:var(--space-2,4px);padding:0 var(--space-4);transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm);background:0 0}.composer-fast-toggle,.composer-primary-action{align-items:center;height:var(--composer-control-h,var(--control-height-sm));border-radius:var(--radius-control);font-size:var(--text-md);border:none;font-weight:600;display:flex}.composer-primary-action{justify-content:center;gap:var(--space-3,6px);padding:0 calc(var(--space-5) + var(--space-1))}.composer-primary-action[data-state=stop]{background:var(--accent-strong);color:var(--on-accent);cursor:pointer;transition:background var(--dur-fast) var(--ease-out-warm)}.composer-primary-action[data-state=send]{background:var(--accent-strong);color:var(--on-accent);cursor:pointer;box-shadow:var(--shadow-card);transition:background var(--dur-fast) var(--ease-out-warm),box-shadow var(--dur-fast) var(--ease-out-warm)}.composer-primary-action[data-state=send]:disabled{background:var(--bg-panel);color:var(--text-dim);cursor:not-allowed;box-shadow:none}.composer-context-ring-wrap{width:var(--composer-ring-size);height:var(--composer-ring-size)}.composer-context-ring,.composer-context-ring-wrap{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.composer-context-ring{width:100%;height:100%;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:9999px;padding:0}.composer-context-ring:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.composer-context-ring-popup{z-index:20;white-space:nowrap;min-width:142px;padding:8px 10px;position:absolute;bottom:calc(100% + 8px);right:0}.composer-context-ring-popup-summary{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.01em;font-size:12px;font-weight:600;display:block}.composer-context-ring-label{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:8px;font-weight:600}.composer-model-name{white-space:nowrap;text-align:left;direction:rtl;unicode-bidi:plaintext;min-width:0}.composer-model-name,.model-option-name{text-overflow:ellipsis;overflow:hidden}.composer-queue-action{align-items:center;gap:var(--space-2,4px);height:var(--composer-control-h,var(--control-height-sm));padding:0 var(--space-4,8px);border-radius:var(--radius-control);font-size:var(--text-md,12px);cursor:pointer;transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;flex-shrink:0;font-weight:600;display:inline-flex}.composer-queue-action-steer{color:var(--status-warning);background:var(--status-warning-subtle)}.composer-queue-action-followup{color:var(--accent);background:var(--accent-subtle)}.composer-queue-action:disabled{color:var(--text-dim);cursor:not-allowed;background:0 0}@media (max-width:640px){.chat-stats-center{display:none!important}.model-option-name{white-space:normal;overflow-wrap:anywhere;line-height:1.35}.composer-toolbar{grid-template-columns:var(--composer-attachment-w,36px) minmax(0,1fr) minmax(0,var(--composer-thinking-max-w,66px)) var(--composer-ring-size,28px) var(--composer-send-size,34px);align-items:center;gap:var(--space-3,6px)!important;display:grid!important}.composer-attachment{touch-action:manipulation;order:1;grid-area:1/1;width:var(--composer-attachment-w,36px)!important;height:var(--composer-control-h,44px)!important;border-radius:var(--radius-control)!important}.composer-model-control{order:2;grid-area:1/2;min-width:0}.composer-model-button{touch-action:manipulation;width:100%;max-width:none!important;height:var(--composer-control-h,44px)!important;padding-inline:var(--space-4,8px)!important;border-radius:var(--radius-control)!important;font-size:var(--text-base,13px)!important}.composer-thinking-control{min-width:0;max-width:var(--composer-thinking-max-w,66px);order:3;grid-area:1/3}.composer-thinking-button{width:100%;min-width:0;overflow:hidden;gap:var(--space-1,2px)!important;padding-inline:var(--space-2,4px)!important;font-size:var(--text-md,12px)!important}.composer-primary-action,.composer-thinking-button{touch-action:manipulation;justify-content:center;height:var(--composer-control-h,44px)!important;border-radius:var(--radius-control)!important}.composer-primary-action{width:var(--composer-send-size,34px);min-width:var(--composer-send-size,34px);order:5;grid-area:1/5;font-size:var(--text-base,13px)!important;padding-inline:0!important}.composer-primary-label{display:none}.composer-queue-action{width:var(--control-height,32px);height:var(--control-height,32px);touch-action:manipulation;border-radius:9999px;justify-content:center;padding:0!important}.composer-queue-action-label{display:none}.composer-queue-action-steer{order:6;grid-area:2/1;justify-self:start}.composer-queue-action-followup{order:7;grid-area:2/2;justify-self:start}.composer-fast-toggle{order:8;grid-area:2/1/auto/span 2;justify-self:start;height:var(--control-height-lg,36px)!important}.composer-toolbar-spacer{display:none}.composer-context-ring-wrap{order:4;grid-area:1/4;justify-self:end}.sidebar-container{width:var(--sidebar-mobile-width);max-width:85vw;transition:transform var(--dur-slow) var(--ease-out-warm),box-shadow var(--dur-slow) var(--ease-out-warm);top:0;bottom:0;left:0;position:fixed!important}.sidebar-container.sidebar-open{box-shadow:var(--shadow-modal);transform:translate(0)}.sidebar-container.sidebar-closed{box-shadow:none;transform:translate(-100%)}.right-panel-container{transition:width var(--dur-med) var(--ease-out-warm),min-width var(--dur-med) var(--ease-out-warm);flex-shrink:0;overflow:hidden}.right-panel-container.right-panel-open{width:100%;min-width:0}.right-panel-container.right-panel-closed{border-left:none!important;width:0!important;min-width:0!important;display:none!important}.directory-picker-action,.directory-picker-back,.directory-picker-entry{min-height:44px!important}.directory-picker-back{min-width:44px!important}.directory-picker-footer{flex-wrap:wrap;padding-bottom:max(10px,env(safe-area-inset-bottom))!important}}@media (max-width:420px){.composer-toolbar{grid-template-columns:var(--composer-attachment-w,36px) minmax(0,1fr) minmax(0,var(--composer-thinking-max-w,66px)) var(--composer-ring-size,28px) var(--composer-send-size,34px);gap:var(--space-1,2px)!important}}.sidebar-shell{word-break:keep-all;flex-direction:column;height:100%;display:flex;overflow:hidden}.sidebar-path-label{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;min-width:0;line-height:1.35;display:block;overflow:hidden}.sidebar-path-label-text{unicode-bidi:plaintext}.sidebar-icon-button{width:calc(var(--control-height-sm) - var(--space-1));height:calc(var(--control-height-sm) - var(--space-1));border-radius:var(--radius-control);color:var(--text-dim);cursor:pointer;transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm),border-color var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:0;display:flex}.sidebar-icon-button:hover:not(:disabled),.sidebar-icon-button[aria-pressed=true]{background:var(--bg-hover);color:var(--accent)}.sidebar-icon-button:disabled{cursor:default;opacity:.5}.sidebar-portal-menu{z-index:var(--z-dialog-backdrop);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-panel);box-shadow:var(--shadow-pop);position:fixed}.sidebar-worktree-menu{overflow:hidden}.sidebar-brand{min-width:6ch;color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-lg);letter-spacing:-.01em;background:0 0;border:none;padding:0;font-weight:700;line-height:1}.sidebar-brand-accent,.sidebar-brand-dynamic[data-version=true]{color:var(--accent)}.sidebar-brand-dynamic[data-version=false],.sidebar-brand-name{color:var(--text)}.sidebar-shell .sidebar-header{gap:var(--space-4);padding:calc(var(--space-5) - var(--space-1)) calc(var(--space-5) - var(--space-1)) var(--space-4);border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex}.sidebar-header-actions,.sidebar-header-row{align-items:center;display:flex}.sidebar-header-row{justify-content:space-between}.sidebar-header-actions{gap:var(--space-1)}.sidebar-import-input{display:none}.sidebar-new-session{width:100%;height:calc(var(--control-height-lg) + var(--space-1));box-sizing:border-box;justify-content:center;align-items:center;gap:calc(var(--space-4) - var(--space-1) / 2);padding:0 var(--space-5);border:1px solid var(--border);border-radius:calc(var(--radius-control) + var(--space-1) / 2);background:var(--bg-hover);color:var(--text);cursor:pointer;font-size:calc(var(--text-base) - var(--space-1) / 4);letter-spacing:-.01em;opacity:1;transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm),border-color var(--dur-fast) var(--ease-out-warm);font-weight:600;display:flex}.sidebar-new-session:hover:not(:disabled){background:var(--bg-selected);border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.sidebar-new-session:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 30%,transparent)}}.sidebar-new-session:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.65}.sidebar-new-session-icon{color:var(--accent);flex-shrink:0}.sidebar-workspaces-header{align-items:center;gap:var(--space-1);padding:var(--space-2) calc(var(--space-5) - var(--space-1)) var(--space-1);flex-shrink:0;display:flex}.sidebar-section-label{color:var(--text-muted);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;flex:1;font-weight:600}.sidebar-search-wrap{padding:0 calc(var(--space-5) - var(--space-1)) var(--space-3);flex-shrink:0}.sidebar-search-input{width:100%;height:calc(var(--control-height-sm) - var(--space-1) / 2);box-sizing:border-box;padding:0 calc(var(--space-4) + var(--space-1) / 2);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg);color:var(--text);font-size:var(--text-md);transition:border-color var(--dur-fast) var(--ease-out-warm),box-shadow var(--dur-fast) var(--ease-out-warm);outline:none;display:block}.sidebar-search-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.sidebar-workspaces-list{min-height:80px;padding:var(--space-1) calc(var(--space-5) - var(--space-1)) var(--space-4);transition:flex var(--dur-med) var(--ease-out-warm);overflow-y:auto}.sidebar-state-message{padding:var(--space-5) var(--space-2);font-size:var(--text-md);line-height:1.5}.sidebar-state-message-muted{color:var(--text-muted)}.sidebar-state-message-error{color:var(--accent)}.sidebar-state-message-dim{color:var(--text-dim);font-size:var(--text-sm)}.sidebar-state-message-empty{padding-block:var(--space-5)}.sidebar-state-message-no-matches{padding-block:calc(var(--space-5) + var(--space-1))}.sidebar-explorer{border-top:1px solid var(--border);min-height:0;transition:flex var(--dur-med) var(--ease-out-warm);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar-explorer-actions,.sidebar-explorer-header{align-items:center;display:flex}.sidebar-explorer-header{flex-shrink:0}.sidebar-explorer-toggle{align-items:center;gap:var(--space-3);padding:var(--space-3) calc(var(--space-5) - var(--space-1));color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);letter-spacing:.05em;text-align:left;text-transform:uppercase;background:0 0;border:none;flex:1;font-weight:600;display:flex}.sidebar-explorer-chevron{transition:transform var(--dur-med) var(--ease-out-warm);flex-shrink:0}.sidebar-explorer-chevron[data-open=true]{transform:rotate(90deg)}.sidebar-explorer-actions{opacity:1;pointer-events:auto;transition:opacity var(--dur-fast) var(--ease-out-warm)}.sidebar-explorer-actions[data-open=false]{opacity:0;pointer-events:none}.sidebar-explorer-icon-button{width:calc(var(--control-height-sm) - var(--space-1));height:calc(var(--control-height-sm) - var(--space-1));margin-right:var(--space-3);border-radius:var(--radius-control);color:var(--text-dim);cursor:pointer;transition:color var(--dur-fast) var(--ease-out-warm),background var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:0;display:flex}.sidebar-explorer-upload{margin-right:0}.sidebar-explorer-icon-button:hover:not(:disabled){background:var(--bg-hover);color:var(--text-muted)}.sidebar-explorer-icon-button:disabled{cursor:default;opacity:.6}.sidebar-explorer-refresh[data-refreshing=true]{color:var(--accent)}.sidebar-explorer-flow{min-height:0}.sidebar-explorer-flow-inner{height:100%;overflow:hidden auto}.sidebar-footer{border-top:1px solid var(--border);flex-shrink:0;display:flex}.sidebar-settings-row{min-width:0;height:var(--control-height-lg);box-sizing:border-box;align-items:center;gap:var(--space-4);padding:0 calc(var(--space-5) - var(--space-1));color:var(--text-muted);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;flex:1;display:flex}.sidebar-settings-row:hover{background:var(--bg-hover);color:var(--text)}.sidebar-footer-icon{color:var(--accent);flex-shrink:0;display:inline-flex;position:relative}.sidebar-update-dot{border:1px solid var(--bg-panel);background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:-3px;right:-4px}.sidebar-footer-label{min-width:0;color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);flex:1;font-weight:500;overflow:hidden}.sidebar-footer-chevron{color:var(--text-dim);flex-shrink:0}.sidebar-footer-divider{background:var(--border);align-self:stretch;width:1px}.sidebar-project{margin-bottom:var(--space-5)}.sidebar-project-header{align-items:center;gap:var(--space-1);height:calc(var(--control-height) - var(--space-1));padding:0 var(--space-3) 0 0;border-radius:var(--radius-control);transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm),border-color var(--dur-fast) var(--ease-out-warm);background:0 0;margin:0;display:flex}.sidebar-project-header:hover{background:var(--bg-hover)}.sidebar-project-identity{align-self:stretch;align-items:center;gap:calc(var(--space-4) - var(--space-1) / 2);min-width:0;padding:0 var(--space-2) 0 calc(var(--space-5) - var(--space-1));color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;flex:0 auto;display:flex}.sidebar-project-header:hover .sidebar-project-identity{color:var(--text)}.sidebar-project-folder-icon{color:var(--text-dim);transition:color var(--dur-fast) var(--ease-out-warm);flex-shrink:0}.sidebar-project-identity[data-active=true] .sidebar-project-folder-icon{color:var(--accent)}.sidebar-project-header:hover .sidebar-project-folder-icon{color:var(--text-muted)}.sidebar-project-header:hover .sidebar-project-identity[data-active=true] .sidebar-project-folder-icon,.sidebar-project-identity[data-active=true] .sidebar-project-folder-icon{color:var(--accent)}.sidebar-project-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);font-size:var(--text-md);letter-spacing:-.01em;font-weight:600;line-height:1.25;overflow:hidden}.sidebar-project-worktree-toggle{align-items:center;gap:calc(var(--space-4) - var(--space-3) / 2);min-width:0;max-width:104px;height:calc(var(--control-height-sm) - var(--space-2));padding:0 var(--space-3);border-radius:var(--radius-control);color:var(--text-dim);cursor:pointer;font-family:var(--font-mono);font-size:calc(var(--text-md) - var(--space-3) / 4);transition:color var(--dur-fast) var(--ease-out-warm),background var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;flex-shrink:0;line-height:1;display:inline-flex}.sidebar-project-header:hover .sidebar-project-worktree-toggle{color:var(--text-muted)}.sidebar-project-worktree-toggle[data-open=true]{background:var(--bg-selected);color:var(--accent)}.sidebar-project-worktree-dot{opacity:.7;flex-shrink:0}.sidebar-project-worktree-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sidebar-project-spacer{flex:1}.sidebar-project-activity{margin:0 var(--space-1) 0 0;flex-shrink:0;align-items:center;line-height:0;display:flex}.sidebar-project-activity-dot{background:var(--accent);border-radius:50%;width:7px;height:7px}.sidebar-project-activity[data-running=true] .sidebar-project-activity-dot{box-shadow:0 0 0 calc(var(--space-3) / 2) var(--accent)}@supports (color:color-mix(in lab,red,red)){.sidebar-project-activity[data-running=true] .sidebar-project-activity-dot{box-shadow:0 0 0 calc(var(--space-3) / 2) color-mix(in srgb,var(--accent) 13%,transparent)}}.sidebar-project-action-slot{flex-shrink:0}.sidebar-project-action{width:calc(var(--control-height-sm) - var(--space-2));height:calc(var(--control-height-sm) - var(--space-2));border-radius:var(--radius-control);color:var(--text-dim);cursor:pointer;transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm),border-color var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:0;display:flex}.sidebar-project-action[data-open=true]{background:var(--bg-selected)}.sidebar-project-action:disabled{cursor:default;opacity:.5}.sidebar-menu-item{padding:var(--space-3) calc(var(--space-4) + var(--space-1) / 2);border-radius:calc(var(--radius-control) - var(--space-1));color:var(--text-muted);font-size:var(--text-sm)}.sidebar-menu-item-danger{color:var(--status-error)}.sidebar-menu-item:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.55}.sidebar-project-remove-item:disabled{color:var(--status-error);cursor:default;opacity:1}.sidebar-project-toggle{width:calc(var(--control-height-sm) - var(--space-3));height:calc(var(--control-height-sm) - var(--space-1));border-radius:var(--radius-control);color:var(--text-dim);cursor:pointer;transition:color var(--dur-fast) var(--ease-out-warm),background var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:0;display:flex}.sidebar-project-toggle-icon,.sidebar-show-more-icon{transition:transform var(--dur-fast) var(--ease-out-warm)}.sidebar-project-toggle[data-expanded=true] .sidebar-project-toggle-icon{transform:rotate(90deg)}.sidebar-project-sessions{margin:var(--space-1) 0 0;animation:sidebar-sessions-in var(--dur-med) var(--ease-out-warm) both;transform-origin:top}.sidebar-project-empty{padding:var(--space-3) var(--space-5) var(--space-4) calc(var(--space-8) + var(--space-5) - var(--space-1))}.sidebar-project-empty,.sidebar-show-more{color:var(--text-dim);font-size:var(--text-sm)}.sidebar-show-more{align-items:center;gap:calc(var(--space-4) - var(--space-3) / 2);width:100%;margin:var(--space-1) 0 0;padding:calc(var(--space-3) - var(--space-1) / 2) var(--space-4) calc(var(--space-3) - var(--space-1) / 2) calc(var(--space-8) + var(--space-5) - var(--space-1));border-radius:var(--radius-control);cursor:pointer;font-variant-numeric:tabular-nums;text-align:left;transition:background var(--dur-fast) var(--ease-out-warm),color var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;font-weight:600;display:flex}.sidebar-show-more:hover{background:var(--bg-hover);color:var(--accent)}.sidebar-show-more-icon[data-expanded=true]{transform:rotate(180deg)}.sidebar-worktree-list{max-height:min(40vh,300px);overflow-y:auto}.sidebar-worktree-confirm-row{align-items:center;gap:var(--space-3);padding:calc(var(--space-4) - var(--space-1) / 2) var(--space-5);border-bottom:1px solid var(--border);background:var(--accent);display:flex}@supports (color:color-mix(in lab,red,red)){.sidebar-worktree-confirm-row{background:color-mix(in srgb,var(--accent) 6%,transparent)}}.sidebar-worktree-confirm-text{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);flex:1;overflow:hidden}.sidebar-worktree-cancel-button,.sidebar-worktree-force-button{padding:calc(var(--space-1) + 1px) calc(var(--space-4) + var(--space-1) / 2);border-radius:var(--radius-control);cursor:pointer;font-size:var(--text-sm);flex-shrink:0}.sidebar-worktree-force-button{background:var(--accent-strong);color:var(--on-accent);border:none;font-weight:600}.sidebar-worktree-cancel-button{border:1px solid var(--border);background:var(--bg-hover);color:var(--text-muted)}.sidebar-worktree-row{border-bottom:1px solid var(--border);align-items:center;display:flex}.sidebar-worktree-select{align-items:center;gap:calc(var(--space-4) - var(--space-3) / 2);min-width:0;padding:var(--space-4) calc(var(--space-5) - var(--space-1));background:var(--bg);color:var(--text-muted);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-sm);text-align:left;border:none;flex:1;display:flex}.sidebar-worktree-select[aria-pressed=true]{color:var(--text)}.sidebar-worktree-select .sidebar-path-label{flex:1}.sidebar-worktree-check,.sidebar-worktree-check-spacer{flex-shrink:0;width:10px}.sidebar-worktree-check{color:var(--accent)}.sidebar-worktree-main-badge{color:var(--text-dim);font-size:var(--text-xs);flex-shrink:0}.sidebar-worktree-remove{width:calc(var(--control-height-lg) - var(--space-1));height:var(--control-height);margin-right:var(--space-2);border-radius:var(--radius-control);color:var(--text-dim);cursor:pointer;transition:color var(--dur-fast) var(--ease-out-warm),background var(--dur-fast) var(--ease-out-warm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.sidebar-worktree-remove:hover:not(:disabled){background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.sidebar-worktree-remove:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 8%,transparent)}}.sidebar-worktree-remove:hover:not(:disabled){color:var(--accent)}.sidebar-worktree-new{align-items:center;gap:calc(var(--space-4) - var(--space-3) / 2);width:100%;padding:var(--space-4) calc(var(--space-5) - var(--space-1));color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);text-align:left;background:0 0;border:none;display:flex}.sidebar-worktree-new-icon{flex-shrink:0}.sidebar-worktree-form{padding:var(--space-3) var(--space-4)}.sidebar-worktree-input{box-sizing:border-box;width:100%;padding:calc(var(--space-2) + 1px) var(--space-4);border:1px solid var(--accent);border-radius:var(--radius-control);background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:var(--text-sm);outline:none;display:block}.sidebar-worktree-form-actions{gap:calc(var(--space-4) - var(--space-3) / 2);margin-top:calc(var(--space-3) - var(--space-1) / 2);display:flex}.sidebar-worktree-create,.sidebar-worktree-form-cancel{padding:var(--space-2) 0;border-radius:var(--radius-control);cursor:pointer;font-size:var(--text-sm);flex:1}.sidebar-worktree-create{background:var(--accent-strong);color:var(--on-accent);border:none;font-weight:600}.sidebar-worktree-form-cancel{border:1px solid var(--border);background:var(--bg-hover);color:var(--text-muted)}.sidebar-worktree-create:disabled{cursor:not-allowed;opacity:.65}.sidebar-worktree-error{padding:var(--space-2) var(--space-5) var(--space-4);overflow-wrap:anywhere;color:var(--accent);font-size:var(--text-sm);line-height:1.35}.sidebar-session-tree-row{position:relative}.sidebar-session-indent-line{pointer-events:none;background:var(--border);width:1px;position:absolute;top:0;bottom:0}.sidebar-session-indicator{color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-session-indicator-svg{display:block}.sidebar-session-row{align-items:center;gap:var(--space-3);width:100%;min-height:calc(var(--control-height) - var(--space-1));margin:calc(var(--space-1) / 2) 0;padding:0 var(--space-4) 0 0;cursor:pointer;transition:background var(--dur-fast) var(--ease-out-warm),opacity var(--dur-fast) var(--ease-out-warm);background:0 0;display:flex;position:relative;overflow:hidden}.sidebar-session-row[data-interactive=true]:hover{background:var(--bg-hover)}.sidebar-session-row[data-interactive=false]{cursor:default}.sidebar-session-row[data-selected=true]{background:var(--bg-selected)}@supports (color:color-mix(in lab,red,red)){.sidebar-session-row[data-selected=true]{background:color-mix(in srgb,var(--bg-selected) 70%,transparent)}}.sidebar-session-row[data-confirming=true]{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.sidebar-session-row[data-confirming=true]{background:color-mix(in srgb,var(--accent) 6%,transparent)}}.sidebar-session-row[data-deleting=true]{opacity:.5}.sidebar-session-selection-indicator{width:var(--space-1);border-radius:calc(var(--space-1) / 2);pointer-events:none;background:var(--accent);position:absolute;top:0;bottom:0}.sidebar-session-confirm-text{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);flex:1;overflow:hidden}.sidebar-session-cancel-button,.sidebar-session-confirm-button{height:var(--control-height);padding:0 var(--space-5);border-radius:var(--radius-control);cursor:pointer;font-size:var(--text-sm)}.sidebar-session-confirm-button{background:var(--accent-strong);color:var(--on-accent);border:none;font-weight:600}.sidebar-session-cancel-button{border:1px solid var(--border);background:var(--bg);color:var(--text-muted)}.sidebar-session-rename-input{height:calc(var(--control-height-sm) - var(--space-3) / 2);padding:calc(var(--space-2) - var(--space-1) / 2) calc(var(--space-3) + var(--space-1) / 2);border:1px solid var(--accent);border-radius:var(--radius-control);background:var(--bg);color:var(--text);font-size:var(--text-md);outline:none;flex:1}.sidebar-session-branch-icon{color:var(--text-dim);flex-shrink:0}.sidebar-session-content{flex:1;align-items:center;min-width:0;display:flex}.sidebar-session-title{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:calc(var(--text-base) - var(--space-1) / 4);letter-spacing:-.005em;font-weight:500;line-height:1.35;overflow:hidden}.sidebar-session-row[data-selected=true] .sidebar-session-title{font-weight:600}.sidebar-session-worktree{align-items:center;gap:var(--space-1);min-width:0;max-width:56px;color:var(--text-dim);font-size:var(--text-xs);flex-shrink:1;display:flex;overflow:hidden}.sidebar-session-worktree-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sidebar-session-time{min-width:30px;color:var(--text-dim);font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0}.sidebar-session-time[data-selected=true]{color:var(--accent)}.sidebar-session-action,.sidebar-session-collapse{width:calc(var(--control-height-sm) - var(--space-2));height:calc(var(--control-height-sm) - var(--space-2));border-radius:var(--radius-control);color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:0;display:flex}.sidebar-session-collapse[data-collapsed=true]{transform:rotate(-90deg)}.sidebar-session-collapse{transition:transform var(--dur-fast) var(--ease-out-warm),background var(--dur-fast) var(--ease-out-warm)}.sidebar-session-action-slot{flex-shrink:0;position:relative}.sidebar-session-action[data-open=true]{background:var(--bg-selected);color:var(--text)}@media (max-width:640px){.sidebar-brand,.sidebar-explorer-icon-button,.sidebar-explorer-toggle,.sidebar-icon-button,.sidebar-menu-item,.sidebar-new-session,.sidebar-project-action,.sidebar-project-identity,.sidebar-project-toggle,.sidebar-project-worktree-toggle,.sidebar-search-input,.sidebar-session-action,.sidebar-session-cancel-button,.sidebar-session-collapse,.sidebar-session-confirm-button,.sidebar-session-content,.sidebar-session-rename-input,.sidebar-session-row,.sidebar-settings-row,.sidebar-show-more,.sidebar-worktree-cancel-button,.sidebar-worktree-create,.sidebar-worktree-force-button,.sidebar-worktree-form-cancel,.sidebar-worktree-input,.sidebar-worktree-new,.sidebar-worktree-remove,.sidebar-worktree-select{min-height:var(--control-touch-anchor,var(--control-touch))}.sidebar-explorer-icon-button,.sidebar-icon-button,.sidebar-session-action,.sidebar-session-collapse{min-width:var(--control-touch-icon)}.sidebar-project-header{height:var(--control-touch)}.sidebar-project-worktree-toggle,.sidebar-session-cancel-button,.sidebar-session-confirm-button,.sidebar-worktree-cancel-button,.sidebar-worktree-create,.sidebar-worktree-force-button,.sidebar-worktree-form-cancel{min-height:var(--control-touch)}}@media (prefers-reduced-motion:reduce){.sidebar-new-session,.sidebar-project-header,.sidebar-project-sessions,.sidebar-search-input,.sidebar-session-collapse,.sidebar-settings-row{transition:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:42,errorRate:1e-4,numBits:806,numHashes:14,bitArray:[0,1,0,1,1,0,1,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,1,0,1,1,0,0,1,1,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,1,0,1,1,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,0,0,0,1,1,1,1,0,0,1,1,0,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,1,0,1,0,1,1,0,0,1,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,1,1,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,1,0,1,1,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,1,1,1,0,0,1,0,1,1,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1,1,0,0,1,0,0,1,0,1,1,1,0,1,1,0,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,1,0,1,1,0,1,1,1,1,1,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1,0,1,1,0,1,0,1,0,0,1,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,1,0,0,1,0,0,0,1,0,1,0,1,0,1,1,0,1,0,0,1,1,1,0,1,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,0,1,1,0,1,0,0,1,0,0,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,1,1,0,0,0,0,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,1,1,1,0,1,0,1,1,1,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,1,1,1,0,1,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,0,0,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,1,0,0,1,1,1,1,0,0,1,1,0,1,1,1,0,0,1,0,0,0,0,0]},__routerFilterDynamic:{numItems:7,errorRate:1e-4,numBits:135,numHashes:14,bitArray:[0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,0,1,1,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,1,0,0,1,1,1,1,1,0,1,0,0,1,1,1,1,0,1,0,0,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,1,1,1,1,0,0,1,0,1,0,1]},sortedPages:["/_app"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ompgui",
3
- "version": "0.5.1",
3
+ "version": "0.5.3",
4
4
  "description": "Web UI & Browser GUI for the oh-my-pi (omp) coding agent",
5
5
  "homepage": "https://github.com/dbc-hbin/ompgui#readme",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2201],{25182:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(99537).A)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},42201:(e,t,n)=>{n.r(t),n.d(t,{PluginsConfig:()=>W});var r=n(95155),i=n(12115),o=n(32383),a=n(31590),l=n(4315),s=n(18136),d=n(30808),c=n(69090),p=n(51087),u=n(2125),g=n(74519);function v({embedded:e,isMobile:t,onClose:n,children:i}){return e?(0,r.jsx)(r.Fragment,{children:i}):(0,r.jsx)(d.lG,{open:!0,onOpenChange:e=>{e||n()},children:(0,r.jsx)(d.Cf,{ariaLabel:"Plugins",style:{width:t?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:t?"calc(100dvh - 16px)":"78vh",maxHeight:"calc(100dvh - 16px)",padding:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:i})})}function x(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function f(e){return`${e.scope}\0${e.source}`}function h(e){if(e.disabled)return(0,l.Tl)("pluginsConfig.disabled");let t=[e.counts.extensions?(0,l.zw)("pluginsConfig.extCount",e.counts.extensions):"",e.counts.skills?(0,l.zw)("pluginsConfig.skillCount",e.counts.skills):"",e.counts.prompts?(0,l.zw)("pluginsConfig.promptCount",e.counts.prompts):"",e.counts.themes?(0,l.zw)("pluginsConfig.themeCount",e.counts.themes):""].filter(Boolean);return t.length?t.join(" \xb7 "):(0,l.Tl)("pluginsConfig.noResources")}function m(e){let t=[];return e.version&&t.push((0,l.Tl)("pluginsConfig.installedVersion",{version:e.version})),e.configuredVersion&&t.push((0,l.Tl)("pluginsConfig.configuredVersion",{version:e.configuredVersion})),t.length?t.join(" \xb7 "):(0,l.Tl)("pluginsConfig.unknown")}function y(e){return"loaded"===e?"var(--accent)":"installed"===e?"var(--status-warning)":"disabled"===e?"var(--text-dim)":"var(--status-error)"}function b(e){return"project"===e?"pluginsConfig.scopeProject":"pluginsConfig.scopeGlobal"}let j={loaded:"pluginsConfig.statusLoaded",installed:"pluginsConfig.statusInstalled",missing:"pluginsConfig.statusMissing",disabled:"pluginsConfig.statusDisabled"};function C({pkg:e}){let{t}=(0,l.s9)(),n=[["extension","pluginsConfig.extensions"],["skill","pluginsConfig.skills"],["prompt","pluginsConfig.prompts"],["theme","pluginsConfig.themes"]].map(([n,r])=>({kind:n,label:t(r),resources:e.resources.filter(e=>e.kind===n)})).filter(e=>e.resources.length>0);return 0===n.length?(0,r.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--text-dim)"},children:e.disabled?t("pluginsConfig.packageDisabled"):t("pluginsConfig.noResolvedResources")}):(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-5)"},children:n.map((e,t)=>(0,r.jsxs)("div",{style:{borderTop:0===t?"none":"1px solid var(--border)",paddingTop:12*(0!==t)},children:[(0,r.jsx)("div",{style:{fontSize:"var(--text-xs)",fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",marginBottom:6},children:e.label}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)"},children:e.resources.map(e=>(0,r.jsxs)("div",{style:{minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.path,children:e.name}),(0,r.jsx)("div",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:1},title:e.path,children:e.relativePath})]},`${e.kind}:${e.path}`))})]},e.kind))})}function k({scope:e}){let{t}=(0,l.s9)();return(0,r.jsx)("span",{style:{fontSize:"var(--text-xs)",padding:"1px 5px",borderRadius:3,flexShrink:0,background:"project"===e?"var(--accent-subtle)":"color-mix(in srgb, var(--text-dim) 12%, transparent)",color:"project"===e?"var(--accent)":"var(--text-dim)"},children:t(b(e))})}function w(e,t){return{padding:"6px 12px",background:t?"color-mix(in srgb, var(--status-error) 8%, transparent)":"none",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:t?"var(--status-error)":"var(--text-muted)",cursor:e?"not-allowed":"pointer",fontSize:"var(--text-md)",opacity:e?.5:1}}function S({enabled:e,loading:t,onToggle:n,label:i}){return(0,r.jsx)("button",{type:"button",onClick:n,disabled:t,title:i,"aria-label":i,"aria-pressed":e,style:{flexShrink:0,width:40,height:22,borderRadius:11,border:"none",padding:0,cursor:t?"wait":"pointer",background:e?"var(--accent)":"var(--border)",position:"relative",transition:"background var(--dur-med) var(--ease-out-warm)",opacity:t?.65:1},children:(0,r.jsx)("span",{style:{position:"absolute",top:3,left:3,width:16,height:16,borderRadius:"50%",background:"var(--bg)",boxShadow:"var(--shadow-card)",transform:e?"translateX(18px)":"translateX(0)",transition:"transform var(--dur-med) var(--ease-out-warm)"}})})}function z({value:e,onChange:t}){let{t:n}=(0,l.s9)();return(0,r.jsx)("div",{style:{display:"inline-flex",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",overflow:"hidden",height:30},children:["global","project"].map(i=>{let o=e===i;return(0,r.jsx)("button",{onClick:()=>t(i),style:{width:76,border:"none",borderRight:"global"===i?"1px solid var(--border)":"none",background:o?"var(--bg-selected)":"none",color:o?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)"},children:n(b(i))},i)})})}function T({cwd:e,source:t,scope:n,busy:o,actionError:a,onSourceChange:s,onScopeChange:d,onInstall:c}){let{t:p}=(0,l.s9)(),u=(0,i.useRef)(null);return(0,i.useEffect)(()=>{u.current?.focus()},[]),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:18,maxWidth:660,minHeight:"100%"},children:[(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,r.jsx)("div",{style:{fontSize:"var(--text-lg)",fontWeight:700,color:"var(--text)"},children:p("pluginsConfig.addPluginTitle")}),(0,r.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:"project"===n?`${x(e)}/.omp`:"~/.omp/plugins"})]}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,r.jsx)("label",{htmlFor:"plugin-source",style:{fontSize:"var(--text-md)",fontWeight:600,color:"var(--text-muted)"},children:p("pluginsConfig.source")}),(0,r.jsx)("input",{id:"plugin-source",ref:u,"aria-label":"Plugin package or repository",value:t,onChange:e=>s(e.target.value),placeholder:"npm:@scope/package",style:{width:"100%",height:"var(--control-height-lg)",padding:"0 11px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:"var(--text-base)",outline:"none"},onKeyDown:e=>{"Enter"===e.key&&t.trim()&&!o&&c()}})]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,r.jsx)(z,{value:n,onChange:d}),(0,r.jsx)("button",{type:"button",onClick:c,disabled:o||!t.trim(),style:{...w(o||!t.trim()),background:"var(--accent)",color:"var(--on-accent)",borderColor:"var(--accent)"},children:p(o?"pluginsConfig.installing":"pluginsConfig.install")})]}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,r.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:600,color:"var(--text-muted)"},children:p("pluginsConfig.examples")}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)"},children:["npm:@scope/pi-plugin","git:https://github.com/user/repo","/absolute/path/to/plugin"].map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>s(e),style:{width:"100%",minHeight:30,textAlign:"left",padding:"6px 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text-dim)",cursor:"pointer",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)",e.currentTarget.style.color="var(--text-dim)"},children:e},e))})]}),a&&(0,r.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--status-error)",whiteSpace:"pre-wrap"},children:a})]})}function R({pkg:e,cwd:t,busyKey:n,actionError:o,actionMessage:a,sessionId:s,onAction:d,onReloadSession:p}){let{t:u}=(0,l.s9)(),g=f(e),v=n?.endsWith(g)??!1,b="reload"===n,z=!e.disabled,[T,W]=(0,i.useState)(!1);return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:20,maxWidth:680},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"var(--space-5)",minWidth:0,flexWrap:"wrap"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",minWidth:180,flex:1},children:[(0,r.jsx)(S,{enabled:z,loading:v||b,onToggle:()=>d(e.disabled?"enable":"disable",e),label:u(e.disabled?"pluginsConfig.enablePackage":"pluginsConfig.disablePackage")}),(0,r.jsx)(k,{scope:e.scope}),e.disabled?(0,r.jsx)("span",{style:{fontSize:"var(--text-xs)",padding:"1px 5px",borderRadius:3,background:"var(--bg-subtle)",color:"var(--text-dim)"},children:u("pluginsConfig.badgeDisabled")}):e.filtered&&(0,r.jsx)("span",{style:{fontSize:"var(--text-xs)",padding:"1px 5px",borderRadius:3,background:"var(--status-warning-subtle)",color:"var(--status-warning)"},children:u("pluginsConfig.badgeFiltered")}),(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-md)",color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.source})]}),(0,r.jsxs)("div",{style:{display:"flex",gap:"var(--space-4)",flexWrap:"wrap"},children:[(0,r.jsx)("button",{onClick:()=>d("update",e),disabled:v||b,style:w(v||b),children:u(n===`update:${g}`?"pluginsConfig.updating":"pluginsConfig.update")}),(0,r.jsx)("button",{onClick:p,disabled:!s||b||v,style:w(!s||b||v),title:u(s?"pluginsConfig.reloadCurrentSession":"pluginsConfig.openSessionToReload"),children:u(b?"pluginsConfig.reloading":"pluginsConfig.reloadSession")}),(0,r.jsx)("button",{onClick:()=>W(!0),disabled:v||b,style:w(v||b,!0),children:u(n===`remove:${g}`?"pluginsConfig.removing":"pluginsConfig.remove")})]})]}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(96px, 130px) minmax(0, 1fr)",gap:"9px 14px",fontSize:"var(--text-md)",lineHeight:1.45},children:[(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:u("pluginsConfig.status")}),(0,r.jsx)("div",{style:{color:y(e.status)},children:u(j[e.status])}),(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:u("pluginsConfig.version")}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:m(e)}),(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:u("pluginsConfig.package")}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.packageName??u("pluginsConfig.unknown")}),(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:u("pluginsConfig.resources")}),(0,r.jsx)("div",{style:{color:"var(--text-muted)"},children:h(e)}),(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:u("pluginsConfig.installedPath")}),(0,r.jsx)("div",{style:{color:e.installedPath?"var(--text-muted)":"var(--status-error)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.installedPath?x(e.installedPath):u("pluginsConfig.notFound")}),(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:u("pluginsConfig.cwd")}),(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:x(t)})]}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-4)"},children:[(0,r.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:700,color:"var(--text)"},children:u("pluginsConfig.resolvedResources")}),(0,r.jsx)(C,{pkg:e})]}),a&&(0,r.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--status-success)"},children:a}),o&&(0,r.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--status-error)",whiteSpace:"pre-wrap"},children:o}),(0,r.jsx)(c.TM,{open:T,onOpenChange:W,title:u("pluginsConfig.removePluginTitle"),description:u("pluginsConfig.removePluginBody",{source:e.source}),confirmLabel:u("pluginsConfig.remove"),cancelLabel:u("pluginsConfig.cancel"),danger:!0,onConfirm:()=>{W(!1),d("remove",e)}})]})}function W({cwd:e,sessionId:t,onClose:n,onReloaded:d,onSelectTab:c,embedded:j=!1}){let C=(0,a.a)(),{t:k,tn:S}=(0,l.s9)(),[z,$]=(0,i.useState)(null),[E,F]=(0,i.useState)(!0),[D,M]=(0,i.useState)(null),[P,I]=(0,i.useState)(null),[O,L]=(0,i.useState)(!1),[H,A]=(0,i.useState)(""),[B,N]=(0,i.useState)("global"),[V,K]=(0,i.useState)(null),[_,J]=(0,i.useState)(null),[G,U]=(0,i.useState)(null),X=(0,i.useMemo)(()=>z?.packages??[],[z?.packages]),Y=X.find(e=>f(e)===P)??null,Z=(0,i.useMemo)(()=>["project","global"].map(e=>({scope:e,packages:X.filter(t=>t.scope===e)})).filter(e=>e.packages.length>0),[X]),q=(0,i.useCallback)(async()=>{F(!0),M(null);try{let t=await fetch(`/api/plugins?cwd=${encodeURIComponent(e)}`),n=await t.json();if(!t.ok||n.error)throw Error((0,s.K)(n.error?n:`HTTP ${t.status}`));$(n),L(e=>0===n.packages.length||e),I(e=>e&&n.packages.some(t=>f(t)===e)?e:n.packages[0]?f(n.packages[0]):null)}catch(e){M(e instanceof Error?e.message:String(e))}finally{F(!1)}},[e]);(0,i.useEffect)(()=>{q()},[q]);let Q=(0,i.useCallback)(async(t,n)=>{let r=f(n);K(`${t}:${r}`),J(null),U(null);try{let r=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:t,source:n.source,scope:n.scope,cwd:e})}),i=await r.json();if(!r.ok||i.error)throw Error((0,s.K)(i.error?i:`HTTP ${r.status}`));if($(i),"remove"===t)I(i.packages[0]?f(i.packages[0]):null),0===i.packages.length&&L(!0),U((0,l.Tl)("pluginsConfig.packageRemoved")),p.oR.success(k("pluginsConfig.packageRemoved"));else{let e={install:"pluginsConfig.packageInstalled",update:"pluginsConfig.packageUpdated",disable:"pluginsConfig.packageDisabledMsg",enable:"pluginsConfig.packageEnabledMsg"};U((0,l.Tl)(e[t])),p.oR.success((0,l.Tl)(e[t]))}}catch(n){let e=n instanceof Error?n.message:String(n);J(e),p.oR.error(k("pluginsConfig.actionErrorTitle",{action:k(`pluginsConfig.action_${t}`)}),e)}finally{K(null)}},[e,k]),ee=(0,i.useCallback)(async()=>{let t=H.trim();if(!t)return;let n=`${B}\0${t}`;K(`install:${n}`),J(null),U(null);try{var r;let i,o,a=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",source:t,scope:B,cwd:e})}),d=await a.json();if(!a.ok||d.error)throw Error((0,s.K)(d.error?d:`HTTP ${a.status}`));$(d);let c=(r=d.packages,o=(i=t.trim()).startsWith("npm:")?i.slice(4):i,r.find(e=>e.scope===B&&e.source===i)??r.find(e=>e.scope===B&&e.source===`npm:${o}`)??r.find(e=>e.scope===B&&e.source.endsWith(i)));I(c?f(c):n),L(!1),A(""),U((0,l.Tl)("pluginsConfig.packageInstalled"))}catch(e){J(e instanceof Error?e.message:String(e))}finally{K(null)}},[e,B,H]),et=(0,i.useCallback)(async()=>{if(t){K("reload"),J(null),U(null);try{await (0,o.$)(t,{type:"reload"}),d?.(),await q(),U((0,l.Tl)("pluginsConfig.sessionReloaded"))}catch(e){J(e instanceof Error?e.message:String(e))}finally{K(null)}}},[q,d,t]),en=V?.startsWith("install:")??!1;return(0,r.jsxs)(v,{embedded:j,isMobile:C,onClose:n,children:[!j&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0},children:[(0,r.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:k("pluginsConfig.title")}),(0,r.jsx)("code",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:x(e)})]}),(0,r.jsx)("button",{onClick:n,"aria-label":k("pluginsConfig.close"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),!j&&c&&(0,r.jsx)(g.mm,{active:"plugins",onSelect:c}),(0,r.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:C?"column":"row",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{width:C?"100%":245,maxHeight:C?"40vh":void 0,borderRight:C?"none":"1px solid var(--border)",borderBottom:C?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,r.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:E?(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:"var(--text-md)",color:"var(--text-muted)"},children:k("pluginsConfig.loading")}):D?(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:"var(--text-sm)",color:"var(--status-error)"},children:D}):0===X.length?(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:k("pluginsConfig.noPlugins")}):Z.map(e=>(0,r.jsxs)("div",{style:{marginBottom:6},children:[(0,r.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:"var(--text-xs)",fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase"},children:k(b(e.scope))}),e.packages.map(e=>{let t=f(e),n=!O&&P===t;return(0,r.jsxs)("button",{type:"button",onClick:()=>{I(t),L(!1),J(null),U(null)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:"var(--radius-control)",cursor:"pointer",width:"100%",border:"none",textAlign:"left",fontFamily:"inherit",background:n?"var(--bg-selected)":"none"},onMouseEnter:e=>{n||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{n||(e.currentTarget.style.background="none")},children:[(0,r.jsx)("span",{style:{flexShrink:0,width:7,height:7,borderRadius:"50%",background:y(e.status)}}),(0,r.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,r.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:n?600:400,color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.source}),(0,r.jsx)("div",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:h(e)}),(e.version||e.configuredVersion)&&(0,r.jsx)("div",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:m(e)})]})]},t)})]},e.scope))}),(0,r.jsx)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,r.jsxs)("button",{type:"button",onClick:()=>{L(!0),J(null),U(null)},style:{display:"flex",alignItems:"center",gap:"var(--space-3)",padding:"7px 8px",borderRadius:"var(--radius-control)",border:"none",width:"100%",cursor:"pointer",background:O?"var(--bg-selected)":"none",color:O?"var(--accent)":"var(--text-dim)",fontSize:"var(--text-md)"},onMouseEnter:e=>{O||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{O||(e.currentTarget.style.background="none")},children:[(0,r.jsx)(u.A,{size:13,"aria-hidden":"true"}),k("pluginsConfig.addPlugin")]})})]}),(0,r.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:O?(0,r.jsx)(T,{cwd:e,source:H,scope:B,busy:en,actionError:_,onSourceChange:A,onScopeChange:N,onInstall:ee}):E?(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,r.jsx)("div",{className:"skeleton",style:{height:18,width:"40%"}}),(0,r.jsx)("div",{className:"skeleton",style:{height:12,width:"70%"}}),(0,r.jsx)("div",{className:"skeleton",style:{height:12,width:"55%"}}),(0,r.jsx)("div",{className:"skeleton",style:{height:90,width:"100%"}})]}):Y?(0,r.jsx)(R,{pkg:Y,cwd:e,busyKey:V,actionError:_,actionMessage:G,sessionId:t,onAction:Q,onReloadSession:et},f(Y)):(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:"var(--text-base)"},children:k("pluginsConfig.selectPackage")})})]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-5)",padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsx)("div",{style:{minWidth:0,flex:1,fontSize:"var(--text-sm)",color:"var(--text-dim)",overflow:"hidden"},children:z?.diagnostics.length?(0,r.jsx)("span",{title:z.diagnostics.map(e=>`${e.type}: ${e.source?`${e.source}: `:""}${e.message}`).join("\n"),style:{color:z.diagnostics.some(e=>"error"===e.type)?"var(--status-error)":"var(--status-warning)"},children:S("pluginsConfig.diagnosticCount",z.diagnostics.length)}):(0,r.jsx)("span",{children:z?k("pluginsConfig.totalsSummary",{extensions:z.totals.extensions,skills:z.totals.skills,prompts:z.totals.prompts,themes:z.totals.themes}):""})}),(0,r.jsx)("button",{onClick:()=>void q(),disabled:E||null!==V,style:w(E||null!==V),children:k("pluginsConfig.refresh")}),(0,r.jsx)("button",{onClick:n,style:w(!1),children:k("pluginsConfig.close")})]})]})}},69090:(e,t,n)=>{n.d(t,{D0:()=>d,JT:()=>y,Jl:()=>m,L4:()=>f,M_:()=>p,TM:()=>b,XZ:()=>x,ks:()=>v,l6:()=>h});var r=n(95155),i=n(12115),o=n(35484),a=n(89034),l=n(25182),s=n(30808);function d({label:e,hint:t,error:n,required:o,children:a,style:l,id:s}){let p=(0,i.useId)(),u=(0,i.isValidElement)(a)?a.props.id:void 0,g=s||u||p,v=n?`${g}-error`:void 0,x=!n&&t?`${g}-hint`:void 0,f=a;return(0,i.isValidElement)(a)&&(f=(0,i.cloneElement)(a,{id:u||g,"aria-describedby":a.props["aria-describedby"]||v||x})),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-2)",minWidth:0,...l},children:[(0,r.jsxs)("label",{htmlFor:g,style:{fontSize:"var(--text-sm)",fontWeight:500,color:n?"var(--accent)":"var(--text-muted)",letterSpacing:"0.01em",display:"flex",alignItems:"center",gap:"var(--space-2)"},children:[e,o&&(0,r.jsx)("span",{style:{color:"var(--accent)"},children:"*"})]}),f,n?(0,r.jsx)(c,{id:v,children:n}):t?(0,r.jsx)("span",{id:x,style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",lineHeight:1.4},children:t}):null]})}function c({children:e,id:t}){return(0,r.jsxs)("span",{id:t,role:"alert",style:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",fontSize:"var(--text-md)",color:"var(--accent)",lineHeight:1.3,marginTop:"calc(var(--space-1) / 2)"},children:[(0,r.jsx)(o.A,{size:12,"aria-hidden":"true"}),e]})}function p({label:e,children:t,style:n}){return(0,r.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:"calc(var(--space-5) - var(--space-1))",padding:"var(--space-5) calc(var(--space-5) + var(--space-1))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",boxShadow:"var(--shadow-card)",minWidth:0,...n},children:[(0,r.jsx)("div",{style:{fontSize:"var(--text-sm)",fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.06em"},children:e}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"calc(var(--space-5) - var(--space-1))",minWidth:0},children:t})]})}function u({invalid:e}){return{padding:"var(--space-3) calc(var(--space-4) + var(--space-1) / 2)",background:"var(--bg)",border:`1px solid ${e?"var(--accent)":"var(--border)"}`,borderRadius:"var(--radius-control)",color:"var(--text)",fontSize:"var(--text-md)",outline:"none",width:"100%",boxSizing:"border-box",transition:"border-color var(--dur-fast) var(--ease-out-warm), box-shadow var(--dur-fast) var(--ease-out-warm)"}}function g(e,t){return e?{borderColor:"var(--accent)",boxShadow:"var(--focus-ring)"}:{}}function v({value:e,onChange:t,placeholder:n,mono:o,invalid:a,error:l,onBlurValidate:s,disabled:d,onKeyDown:c,autoComplete:p,spellCheck:x,id:f}){let[h,m]=(0,i.useState)(!1),y=!!(a||l);return(0,r.jsx)("input",{id:f,value:e,onChange:e=>t(e.target.value),placeholder:n,disabled:d,onKeyDown:c,autoComplete:p,spellCheck:x,"aria-invalid":y||void 0,onFocus:()=>m(!0),onBlur:()=>{m(!1),s?.()},style:{...u({invalid:y}),...g(h,y),fontFamily:o?"var(--font-mono)":"inherit",opacity:d?.6:1}})}function x({value:e,onChange:t,placeholder:n,invalid:o,error:a,onBlurValidate:l,disabled:s,id:d}){let[c,p]=(0,i.useState)(!1),v=!!(o||a);return(0,r.jsx)("input",{id:d,type:"number",value:e,onChange:e=>t(e.target.value),placeholder:n,disabled:s,"aria-invalid":v||void 0,onFocus:()=>p(!0),onBlur:()=>{p(!1),l?.()},style:{...u({invalid:v}),...g(c,v),opacity:s?.6:1}})}function f({value:e,onChange:t,placeholder:n,invalid:o,error:s,onBlurValidate:d,disabled:c,showLabel:p,hideLabel:v,id:x}){let[h,m]=(0,i.useState)(!1),[y,b]=(0,i.useState)(!1),j=!!(o||s);return(0,i.useEffect)(()=>{e||m(!1)},[e]),(0,r.jsxs)("div",{style:{position:"relative",width:"100%"},children:[(0,r.jsx)("input",{id:x,type:h?"text":"password",value:e,onChange:e=>t(e.target.value),placeholder:n,disabled:c,autoComplete:"off",spellCheck:!1,"aria-invalid":j||void 0,onFocus:()=>b(!0),onBlur:()=>{b(!1),d?.()},style:{...u({invalid:j}),...g(y,j),paddingRight:"calc(var(--control-height-lg) - var(--space-1))",fontFamily:"var(--font-mono)",opacity:c?.6:1}}),(0,r.jsx)("button",{type:"button",onClick:()=>m(e=>!e),"aria-label":h?v:p,title:h?v:p,style:{position:"absolute",right:"calc(var(--space-2) + var(--space-1) / 2)",top:"50%",transform:"translateY(-50%)",width:"calc(var(--control-height-sm) - var(--space-2))",height:"calc(var(--control-height-sm) - var(--space-2))",padding:0,border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"calc(var(--radius-control) / 2)"},children:h?(0,r.jsx)(a.A,{size:15,"aria-hidden":"true"}):(0,r.jsx)(l.A,{size:15,"aria-hidden":"true"})})]})}function h({value:e,onChange:t,options:n,required:o,placeholder:a,invalid:l,error:s,disabled:d,id:c}){let[p,v]=(0,i.useState)(!1),x=!!(l||s);return(0,r.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[(0,r.jsxs)("select",{id:c,value:e,onChange:e=>t(e.target.value),disabled:d,"aria-invalid":x||void 0,onFocus:()=>v(!0),onBlur:()=>v(!1),style:{...u({invalid:x}),...g(p,x),color:e?"var(--text)":"var(--text-dim)",appearance:"none",width:"100%",paddingRight:"var(--space-8)",opacity:d?.6:1},children:[!o&&(0,r.jsx)("option",{value:"",children:a??""}),n.map(e=>(0,r.jsx)("option",{value:e,children:e},e))]}),(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{position:"absolute",right:"var(--space-4)",color:"var(--text-dim)",pointerEvents:"none"},children:(0,r.jsx)("polyline",{points:"6 9 12 15 18 9"})})]})}function m({label:e,checked:t,onChange:n,disabled:i}){return(0,r.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:"var(--space-3)",cursor:i?"not-allowed":"pointer",fontSize:"var(--text-md)",color:i?"var(--text-dim)":"var(--text-muted)",opacity:i?.7:1},children:[(0,r.jsx)("input",{type:"checkbox",checked:t,disabled:i,onChange:e=>n(e.target.checked),style:{width:14,height:14,accentColor:"var(--accent)",cursor:i?"not-allowed":"pointer"}}),e]})}function y(e){let[t,n]=(0,i.useState)(null),r=(0,i.useRef)(e);r.current=e;let o=(0,i.useCallback)(()=>{n(r.current())},[]);return{error:t,onBlur:o,onChange:(0,i.useCallback)(()=>{n(e=>null)},[]),onSubmit:(0,i.useCallback)(()=>{let e=r.current();return n(e),e},[])}}function b({open:e,onOpenChange:t,title:n,description:i,confirmLabel:o,cancelLabel:a,danger:l,busy:d,onConfirm:c}){return(0,r.jsx)(s.lG,{open:e,onOpenChange:t,children:(0,r.jsxs)(s.Cf,{ariaLabel:"string"==typeof n?n:void 0,style:{width:420,maxWidth:"min(92vw, 420px)",padding:"calc(var(--space-8) - var(--space-1))"},children:[(0,r.jsx)(s.L3,{children:n}),(0,r.jsx)("div",{style:{height:"var(--space-4)"}}),i&&(0,r.jsx)("p",{style:{margin:"0 0 calc(var(--space-6) + var(--space-1))",fontSize:"var(--text-base)",lineHeight:1.55,color:"var(--text-muted)"},children:i}),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"var(--space-4)"},children:[(0,r.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"var(--space-3) calc(var(--space-5) + var(--space-1))",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-base)"},children:a??"Cancel"}),(0,r.jsx)("button",{type:"button",disabled:d,onClick:c,style:{padding:"var(--space-3) calc(var(--space-5) + var(--space-1))",background:"var(--accent-strong)",border:"none",borderRadius:"var(--radius-control)",color:"var(--on-accent)",cursor:d?"wait":"pointer",fontSize:"var(--text-base)",fontWeight:600,opacity:d?.7:1,transition:"background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{d||(e.currentTarget.style.background="var(--accent-hover)")},onMouseLeave:e=>{d||(e.currentTarget.style.background=l?"var(--accent-strong)":"var(--accent)")},children:o})]})]})})}},89034:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(99537).A)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3274],{33274:(e,r,t)=>{t.r(r),t.d(r,{ModelsConfig:()=>eM});var o=t(95155),n=t(12115),a=t(31590),i=t(4315);function l(e){if("string"!=typeof e)return!1;let r=e.trim();if(!r||r.startsWith("//"))return!1;try{let e=new URL(r);return"http:"===e.protocol||"https:"===e.protocol||"mailto:"===e.protocol}catch{return!1}}function s(e){return Object.entries(e).every(([e,r])=>"id"===e?"string"==typeof r&&""===r.trim():void 0===r)}var d=t(18136),c=t(30808),p=t(69090),x=t(38158),u=t(19805),v=t(65738),g=t(88074),h=t(12651),m=t(86272),f=t(82749),b=t(64577),y=t(35484),j=t(2125),C=t(19707),k=t(92298),S=t(40557),w=t(80846),z=t(51087),I=t(74519),R=t(84111);function T({open:e,providerName:r,providerBaseUrl:t,existingIds:a,onAdd:l,onClose:s}){let{t:d}=(0,i.s9)(),[p,x]=(0,n.useState)(""),[u,v]=(0,n.useState)(null),[g,h]=(0,n.useState)(!1),[m,f]=(0,n.useState)(null),b=(0,n.useRef)(null),y=(0,n.useRef)(0);(0,n.useEffect)(()=>{if(!e)return;b.current?.focus();let o=p.trim();if(!o){y.current+=1,v(null),f(null),h(!1);return}let n=new URLSearchParams({q:o,limit:String(30)});r&&n.set("provider",r),t&&n.set("baseUrl",t);let a=new AbortController,i=y.current+1;y.current=i,h(!0);let l=setTimeout(async()=>{try{let e=await fetch(`/api/models-config/catalog?${n.toString()}`,{signal:a.signal}),r=await e.json();if(y.current!==i)return;if(!e.ok)throw Error(r.error??`HTTP ${e.status}`);v(r.models??[]),f(null)}catch(e){if(y.current!==i)return;"AbortError"!==e.name&&f(e instanceof Error?e.message:String(e))}finally{y.current===i&&h(!1)}},250);return()=>{clearTimeout(l),a.abort()}},[p,e,r,t]);let j={display:"flex",flexDirection:"row",alignItems:"center",gap:10,padding:"9px 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",marginBottom:"var(--space-3)",minWidth:0};return(0,o.jsx)(c.lG,{open:!0,onOpenChange:e=>{e||s()},children:(0,o.jsxs)(c.Cf,{ariaLabel:d("modelsConfig.catalogTitle"),style:{width:720,maxWidth:"min(92vw, 720px)",maxHeight:"min(72dvh, calc(100dvh - 32px))",padding:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,o.jsx)(c.L3,{style:{margin:"14px 18px 8px",fontSize:18},children:d("modelsConfig.catalogTitle")}),(0,o.jsx)("div",{style:{padding:"8px 14px 12px",flexShrink:0},children:(0,o.jsx)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"6px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)"},children:(0,o.jsx)("input",{ref:b,value:p,onChange:e=>x(e.target.value),"aria-label":d("modelsConfig.catalogSearchPlaceholder"),placeholder:d("modelsConfig.catalogSearchPlaceholder"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:"var(--text-base)",boxSizing:"border-box",minWidth:0}})})}),(0,o.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"4px 14px 14px"},children:m?(0,o.jsx)("div",{role:"alert",style:{padding:"20px 0",fontSize:"var(--text-md)",color:"var(--status-error)",textAlign:"center"},children:d("modelsConfig.catalogError",{error:m})}):g?(0,o.jsx)("div",{role:"status","aria-live":"polite",style:{padding:"20px 0",fontSize:"var(--text-md)",color:"var(--text-dim)",textAlign:"center"},children:d("modelsConfig.catalogLoading")}):null===u?(0,o.jsx)("div",{style:{padding:"20px 0",fontSize:"var(--text-md)",color:"var(--text-dim)",textAlign:"center"},children:d("modelsConfig.catalogSearchPlaceholder")}):0===u.length?(0,o.jsx)("div",{style:{padding:"20px 0",fontSize:"var(--text-md)",color:"var(--text-dim)",textAlign:"center"},children:d("modelsConfig.catalogNoResults")}):u.map(e=>{var r;let n=a.has(e.id),i=!!e.providerBaseUrl&&!t;return(0,o.jsxs)("div",{style:j,children:[(0,o.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",minWidth:0},children:[(0,o.jsx)("span",{style:{fontSize:"var(--text-md)",fontFamily:"var(--font-mono)",color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.id}),e.reasoning&&(0,o.jsx)("span",{style:{fontSize:9,padding:"1px 4px",background:"var(--accent-subtle)",color:"var(--accent)",borderRadius:3,flexShrink:0},children:"T"})]}),(0,o.jsxs)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.providerName,void 0!==e.contextWindow?` \xb7 ${d("modelsConfig.catalogContext",{n:(r=e.contextWindow,(0,R.w)(r))})}`:"",void 0!==e.cost.input&&void 0!==e.cost.output?` \xb7 ${d("modelsConfig.catalogPrice",{input:e.cost.input,output:e.cost.output})}`:"",i?` \xb7 ${d("modelsConfig.catalogSetBaseUrl")}`:""]})]}),n?(0,o.jsx)("span",{style:{flexShrink:0,padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-dim)",fontSize:12},children:d("modelsConfig.catalogAdded")}):(0,o.jsx)("button",{type:"button","aria-label":"Add "+e.id+" ("+e.providerName+")",onClick:()=>{let r;return l((r=void 0!==e.cost.input&&void 0!==e.cost.output,{id:e.id,...e.name&&e.name!==e.id?{name:e.name}:{},...void 0!==e.reasoning?{reasoning:e.reasoning}:{},...e.input?{input:e.input}:{},...void 0!==e.contextWindow?{contextWindow:e.contextWindow}:{},...void 0!==e.maxTokens?{maxTokens:e.maxTokens}:{},...r?{cost:{input:e.cost.input,output:e.cost.output,cacheRead:e.cost.cacheRead??0,cacheWrite:e.cost.cacheWrite??0}}:{}}),e.providerBaseUrl)},style:{flexShrink:0,padding:"5px 12px",background:"var(--accent)",border:"none",borderRadius:"var(--radius-control)",color:"var(--on-accent)",cursor:"pointer",fontSize:"var(--text-md)",fontWeight:600},children:d("modelsConfig.catalogAdd")})]},e.key)})})]})})}var A=t(67381),M=t(64433),P=t(70350),W=t(88195),O=t(9312),$=t(87275),E=t(22008),N=t(95476),L=t(35029),D=t(14489),H=t(78728),U=t(19872),F=t(7751),B=t(92526),K=t(48238),_=t(57794),J=t(41098),q=t(84604),V=t(15315),Y=t(74278),X=t(55457),G=t(71437),Z=t(29167),Q=t(97283),ee=t(34166),er=t(33889),et=t(85486),eo=t(74068),en=t(83546),ea=t(83709);let ei={anthropic:{Icon:A.A,hasColor:!1},openai:{Icon:M.A,hasColor:!1},"openai-codex":{Icon:M.A,hasColor:!1},google:{Icon:P.A,hasColor:!0},"google-vertex":{Icon:P.A,hasColor:!0},"ant-ling":{Icon:er.A,hasColor:!0},deepseek:{Icon:W.A,hasColor:!0},groq:{Icon:O.A,hasColor:!1},mistral:{Icon:$.A,hasColor:!0},moonshotai:{Icon:E.A,hasColor:!1},"moonshotai-cn":{Icon:E.A,hasColor:!1},moonshot:{Icon:E.A,hasColor:!1},minimax:{Icon:N.A,hasColor:!0},"minimax-cn":{Icon:N.A,hasColor:!0},fireworks:{Icon:L.A,hasColor:!0},huggingface:{Icon:D.A,hasColor:!0},cerebras:{Icon:H.A,hasColor:!0},openrouter:{Icon:U.A,hasColor:!1},xai:{Icon:F.A,hasColor:!1},"cloudflare-ai-gateway":{Icon:B.A,hasColor:!0},"cloudflare-workers-ai":{Icon:B.A,hasColor:!0},"vercel-ai-gateway":{Icon:K.A,hasColor:!1},"github-copilot":{Icon:_.A,hasColor:!1},"amazon-bedrock":{Icon:J.A,hasColor:!0},"azure-openai-responses":{Icon:q.A,hasColor:!0},"kimi-coding":{Icon:V.A,hasColor:!0},nvidia:{Icon:et.A,hasColor:!0},opencode:{Icon:eo.A,hasColor:!1},"opencode-go":{Icon:eo.A,hasColor:!1},qwen:{Icon:Y.A,hasColor:!0},xiaomi:{Icon:en.A,hasColor:!1},"xiaomi-token-plan-ams":{Icon:en.A,hasColor:!1},"xiaomi-token-plan-cn":{Icon:en.A,hasColor:!1},"xiaomi-token-plan-sgp":{Icon:en.A,hasColor:!1},zai:{Icon:ea.A,hasColor:!1},"zai-coding-cn":{Icon:ea.A,hasColor:!1},zhipu:{Icon:X.A,hasColor:!0},cohere:{Icon:G.A,hasColor:!0},perplexity:{Icon:Z.A,hasColor:!0},together:{Icon:Q.A,hasColor:!0},grok:{Icon:ee.A,hasColor:!1}};function el({embedded:e,isMobile:r,onClose:t,children:n}){return e?(0,o.jsx)(o.Fragment,{children:n}):(0,o.jsx)(c.lG,{open:!0,onOpenChange:e=>{e||t()},children:(0,o.jsx)(c.Cf,{ariaLabel:"Models",style:{width:r?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:r?"calc(100dvh - 16px)":"78vh",maxHeight:"calc(100dvh - 16px)",padding:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:n})})}function es({models:e}){let[r,t]=(0,n.useState)(null),[a,i]=(0,n.useState)("default"),[l,s]=(0,n.useState)(""),[d,c]=(0,n.useState)(null);(0,n.useEffect)(()=>{fetch("/api/omp-settings").then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(e=>t(e.settings??{})).catch(e=>c(e instanceof Error?e.message:String(e)))},[]);let p=(0,n.useRef)(null),g=(0,n.useRef)(!1),h=e=>{t(e),c(null),p.current=e,g.current||(g.current=!0,(async()=>{try{for(;null!==p.current;){let e=p.current;p.current=null;try{let r=await fetch("/api/omp-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:e})}),o=await r.json();if(!r.ok||o.error)throw Error(o.error||`HTTP ${r.status}`);null===p.current&&t(o.settings??e)}catch(e){c(e instanceof Error?e.message:String(e));break}}}finally{g.current=!1}})())};if(!r)return(0,o.jsx)("div",{style:{color:"var(--text-muted)",fontSize:"var(--text-md)"},children:"Loading native OMP retry settings..."});let m=r.retry??{},f=m.fallbackChains?.[a]??[],b=e.map(e=>`${e.provider}/${e.id}`),y=e=>void h({...r,retry:{...m,fallbackChains:{...m.fallbackChains??{},[a]:e}}});return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,o.jsxs)("div",{children:[(0,o.jsx)(eg,{children:"Native OMP Retry & Fallback"}),(0,o.jsx)("p",{style:{margin:"4px 0 0",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5},children:"OMP switches through these ordered model chains when a provider is rate-limited or unavailable."})]}),(0,o.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:9},children:[(0,o.jsxs)("label",{style:{padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",fontSize:"var(--text-md)",color:"var(--text)"},children:[(0,o.jsx)("input",{type:"checkbox",checked:m.enabled??!0,onChange:e=>void h({...r,retry:{...m,enabled:e.target.checked}})})," Retry transient provider errors"]}),(0,o.jsxs)("label",{style:{padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",fontSize:"var(--text-md)",color:"var(--text)"},children:[(0,o.jsx)("input",{type:"checkbox",checked:m.modelFallback??!0,onChange:e=>void h({...r,retry:{...m,modelFallback:e.target.checked}})})," Allow model fallback"]}),(0,o.jsxs)("label",{style:{padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",color:"var(--text)",fontSize:"var(--text-md)"},children:["Retry attempts ",(0,o.jsx)("select",{value:m.maxRetries??10,onChange:e=>void h({...r,retry:{...m,maxRetries:Number(e.target.value)}}),style:{marginLeft:8,padding:"4px 8px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)"},children:[0,1,2,3,5,10,15,20].map(e=>(0,o.jsx)("option",{value:e,children:e},e))})]}),(0,o.jsxs)("label",{style:{padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",color:"var(--text)",fontSize:"var(--text-md)"},children:["Return to primary ",(0,o.jsxs)("select",{value:m.fallbackRevertPolicy??"cooldown-expiry",onChange:e=>void h({...r,retry:{...m,fallbackRevertPolicy:e.target.value}}),style:{marginLeft:8,padding:"4px 8px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)"},children:[(0,o.jsx)("option",{value:"cooldown-expiry",children:"After cooldown"}),(0,o.jsx)("option",{value:"never",children:"Never"})]})]})]}),(0,o.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{padding:"10px 12px",background:"var(--bg-panel)",display:"flex",alignItems:"center",gap:"var(--space-4)"},children:[(0,o.jsx)("span",{style:{color:"var(--text)",fontSize:"var(--text-md)",fontWeight:600},children:"Fallback chain for"}),(0,o.jsx)("select",{"aria-label":"Fallback chain role",value:a,onChange:e=>i(e.target.value),style:{padding:"4px 8px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)"},children:ep.map(e=>(0,o.jsx)("option",{value:e,children:e},e))})]}),(0,o.jsxs)("div",{style:{padding:"var(--space-5)",display:"flex",gap:"var(--space-4)"},children:[(0,o.jsxs)("select",{"aria-label":"Select a fallback model",value:l,onChange:e=>s(e.target.value),style:{flex:1,minWidth:0,padding:"6px 8px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)"},children:[(0,o.jsx)("option",{value:"",children:"Select a fallback model"}),b.filter(e=>!f.includes(e)).map(e=>(0,o.jsx)("option",{value:e,children:e},e))]}),(0,o.jsx)("button",{type:"button",disabled:!l,onClick:()=>{y([...f,l]),s("")},style:{padding:"6px 10px",border:"none",borderRadius:"var(--radius-control)",background:"var(--accent)",color:"var(--on-accent)",cursor:l?"pointer":"default"},children:"Add"})]}),0===f.length?(0,o.jsxs)("div",{style:{padding:"0 12px 12px",color:"var(--text-dim)",fontSize:"var(--text-md)"},children:["No explicit chain. OMP uses the ",(0,o.jsx)("code",{children:"default"})," chain when available."]}):(0,o.jsx)("div",{style:{borderTop:"1px solid var(--border)"},children:f.map((e,r)=>(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"7px 12px",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,o.jsx)("span",{style:{width:18,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:r+1}),(0,o.jsx)("code",{style:{flex:1},children:e}),(0,o.jsx)("button",{type:"button","aria-label":`Move ${e} up`,title:`Move ${e} up`,disabled:0===r,onClick:()=>{let e=[...f],t=e[r-1];e[r-1]=e[r],e[r]=t,y(e)},className:"ui-focus-ring",style:{width:24,height:24,padding:0,display:"inline-flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:0===r?"default":"pointer"},children:(0,o.jsx)(x.A,{size:14})}),(0,o.jsx)("button",{type:"button","aria-label":`Move ${e} down`,title:`Move ${e} down`,disabled:r===f.length-1,onClick:()=>{let e=[...f],t=e[r+1];e[r+1]=e[r],e[r]=t,y(e)},className:"ui-focus-ring",style:{width:24,height:24,padding:0,display:"inline-flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:r===f.length-1?"default":"pointer"},children:(0,o.jsx)(u.A,{size:14})}),(0,o.jsx)("button",{type:"button","aria-label":`Remove ${e} from chain`,title:`Remove ${e}`,onClick:()=>y(f.filter(r=>r!==e)),className:"ui-focus-ring",style:{width:24,height:24,padding:0,display:"inline-flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:(0,o.jsx)(v.A,{size:14})})]},e))})]}),d&&(0,o.jsx)("div",{role:"alert",style:{color:"var(--status-error)",fontSize:"var(--text-md)"},children:d})]})}function ed({models:e,connectedProviders:r,onChanged:t}){let[a,i]=(0,n.useState)(null),[l,s]=(0,n.useState)(null),[d,c]=(0,n.useState)(!1);(0,n.useEffect)(()=>{fetch("/api/omp-settings").then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(e=>i(e.settings??{})).catch(e=>s(e instanceof Error?e.message:String(e)))},[]);let p=(0,n.useRef)(null),v=(0,n.useRef)(!1),g=e=>{i(e),c(!0),s(null),p.current=e,v.current||(v.current=!0,(async()=>{try{for(;null!==p.current;){let e=p.current;p.current=null;try{let r=await fetch("/api/omp-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:e})}),o=await r.json();if(!r.ok||o.error)throw Error(o.error||`HTTP ${r.status}`);null===p.current&&i(o.settings??e),await t()}catch(e){s(e instanceof Error?e.message:String(e));break}}}finally{v.current=!1,c(!1)}})())};if(!a)return(0,o.jsx)("div",{style:{color:"var(--text-muted)",fontSize:"var(--text-md)"},children:"Loading native OMP registry settings..."});let h=!0===a.registryHasScopedEntries,m=e.map(e=>`${e.provider}/${e.id}`),f=(a.enabledModels?.length??0)>0,b=new Set(a.enabledModels??m),y=[...new Set([...e.map(e=>e.provider),...r.map(e=>e.id),...a.disabledProviders??[]])].sort(),j=new Set(a.disabledProviders??[]),C=a.modelProviderOrder??[],k=[...C,...y.filter(e=>!C.includes(e))];return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,o.jsxs)("div",{children:[(0,o.jsx)(eg,{children:"Native OMP Model Registry"}),(0,o.jsxs)("p",{style:{margin:"4px 0 0",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5},children:["These settings affect the models OMP itself can resolve. They are saved in ",(0,o.jsx)("code",{children:"~/.omp/agent/config.yml"}),", unlike the Composer picker."]})]}),(0,o.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",overflow:"hidden"},children:[(0,o.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"10px 12px",background:"var(--bg-panel)",color:"var(--text)",fontSize:"var(--text-md)",fontWeight:600},children:[(0,o.jsx)("input",{type:"checkbox",checked:f,disabled:d||h,onChange:e=>void g({...a,enabledModels:e.target.checked?m:[]})})," Restrict OMP to selected models"]}),(0,o.jsx)("p",{style:{margin:0,padding:"8px 12px",color:"var(--text-muted)",fontSize:"var(--text-sm)",lineHeight:1.45},children:f?"Unchecked models are unavailable to every OMP session.":"All currently available OMP models are allowed."}),f&&(0,o.jsx)("div",{style:{maxHeight:260,overflowY:"auto",borderTop:"1px solid var(--border)"},children:e.map(e=>{let r=`${e.provider}/${e.id}`;return(0,o.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"6px 12px",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,o.jsx)("input",{type:"checkbox",checked:b.has(r),disabled:d||h,onChange:e=>{let t=new Set(b);e.target.checked?t.add(r):t.delete(r),g({...a,enabledModels:[...t]})}}),(0,o.jsx)("code",{children:r})]},r)})})]}),(0,o.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",overflow:"hidden"},children:[(0,o.jsx)("div",{style:{padding:"10px 12px",background:"var(--bg-panel)",color:"var(--text)",fontSize:"var(--text-md)",fontWeight:600},children:"Disabled Providers"}),(0,o.jsx)("p",{style:{margin:0,padding:"8px 12px",color:"var(--text-muted)",fontSize:"var(--text-sm)",lineHeight:1.45},children:"Disabling a provider removes it from OMP's model registry, even if it has credentials."}),(0,o.jsx)("div",{style:{borderTop:"1px solid var(--border)"},children:y.map(e=>(0,o.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"7px 12px",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,o.jsx)("input",{type:"checkbox",checked:j.has(e),disabled:d||h,onChange:r=>{let t=new Set(j);r.target.checked?t.add(e):t.delete(e),g({...a,disabledProviders:[...t]})}}),(0,o.jsx)(eT,{id:e,size:14}),(0,o.jsx)("code",{children:e})]},e))})]}),(0,o.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",overflow:"hidden"},children:[(0,o.jsx)("div",{style:{padding:"10px 12px",background:"var(--bg-panel)",color:"var(--text)",fontSize:"var(--text-md)",fontWeight:600},children:"Provider Preference"}),(0,o.jsx)("p",{style:{margin:0,padding:"8px 12px",color:"var(--text-muted)",fontSize:"var(--text-sm)",lineHeight:1.45},children:"Sets OMP's provider order when a model id is ambiguous."}),(0,o.jsx)("div",{style:{borderTop:"1px solid var(--border)"},children:k.map((e,r)=>(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"7px 12px",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,o.jsx)(eT,{id:e,size:14}),(0,o.jsx)("code",{style:{flex:1},children:e}),(0,o.jsx)("button",{type:"button",disabled:d||h||0===r,onClick:()=>{let e=[...k];[e[r-1],e[r]]=[e[r],e[r-1]],g({...a,modelProviderOrder:e})},title:"Move provider up","aria-label":`Move provider ${e} up`,className:"ui-focus-ring",style:{width:24,height:24,padding:0,display:"inline-flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:(0,o.jsx)(x.A,{size:14})}),(0,o.jsx)("button",{type:"button",disabled:d||h||r===k.length-1,onClick:()=>{let e=[...k];[e[r+1],e[r]]=[e[r],e[r+1]],g({...a,modelProviderOrder:e})},title:"Move provider down","aria-label":`Move provider ${e} down`,className:"ui-focus-ring",style:{width:24,height:24,padding:0,display:"inline-flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:(0,o.jsx)(u.A,{size:14})})]},e))})]}),h&&(0,o.jsxs)("div",{role:"status",style:{padding:"9px 11px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.45},children:["OMP path-scoped registry entries are configured. Edit ",(0,o.jsx)("code",{children:"config.yml"})," directly to preserve their path rules."]}),l&&(0,o.jsx)("div",{role:"alert",style:{color:"var(--status-error)",fontSize:"var(--text-md)"},children:l})]})}let ec="omp-composer-models",ep=["default","smol","slow","vision","plan","designer","commit","tiny","task","advisor"];function ex({models:e}){let[r,t]=(0,n.useState)({}),[a,i]=(0,n.useState)(!0),[l,s]=(0,n.useState)(!1),[d,c]=(0,n.useState)(null);(0,n.useEffect)(()=>{fetch("/api/model-roles").then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(e=>t(e.roles??{})).catch(e=>c(e instanceof Error?e.message:String(e))).finally(()=>i(!1))},[]);let p=async()=>{s(!0),c(null);try{let e=await fetch("/api/model-roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({roles:r})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error||`HTTP ${e.status}`);z.oR.success("OMP model roles saved")}catch(e){c(e instanceof Error?e.message:String(e))}finally{s(!1)}};return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,o.jsxs)("div",{children:[(0,o.jsx)(eg,{children:"OMP Model Roles"}),(0,o.jsxs)("p",{style:{margin:"4px 0 0",fontSize:"var(--text-md)",color:"var(--text-muted)",lineHeight:1.5},children:["Saved natively in ",(0,o.jsx)("code",{children:"~/.omp/agent/config.yml"}),". Choose an OMP model and its supported reasoning level for each role."]})]}),a?(0,o.jsx)("div",{style:{color:"var(--text-muted)",fontSize:"var(--text-md)"},children:"Loading roles..."}):ep.map(n=>{let a,i,l,s,d;return(0,o.jsxs)("div",{className:"model-role-row",style:{display:"grid",gridTemplateColumns:"82px minmax(0, 1fr) minmax(110px, 0.35fr)",alignItems:"center",gap:10,fontSize:"var(--text-md)"},children:[(0,o.jsx)("code",{style:{color:"var(--text-muted)"},children:n}),(i=(a=r[n]??"").replace(/:([^,:]+)$/,""),l=a.match(/:([^,:]+)$/)?.[1]??"",s=e.find(e=>`${e.provider}/${e.id}`===i),d=!i||!!s,(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("select",{"aria-label":`Model override for ${n}`,value:i,onChange:e=>{var o;let a,i;return o=e.target.value,a=r[n]??"",i=a.match(/:([^,:]+)$/)?.[1]??"",void t(e=>({...e,[n]:o?`${o}${i?`:${i}`:""}`:""}))},style:{minWidth:0,padding:"7px 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)",fontSize:"var(--text-md)"},children:[(0,o.jsx)("option",{value:"",children:"No override"}),!d&&(0,o.jsxs)("option",{value:i,children:[i," (not currently available)"]}),e.map(e=>(0,o.jsxs)("option",{value:`${e.provider}/${e.id}`,children:[e.name||e.id," (",e.provider,"/",e.id,")"]},`${e.provider}:${e.id}`))]}),(0,o.jsxs)("select",{"aria-label":`Thinking level for ${n}`,value:l,disabled:!s,onChange:e=>{var o;let a;return o=e.target.value,a=(r[n]??"").replace(/:([^,:]+)$/,""),void t(e=>({...e,[n]:a?`${a}${o?`:${o}`:""}`:""}))},style:{minWidth:0,padding:"7px 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)",fontSize:"var(--text-md)",opacity:s?1:.55},children:[(0,o.jsx)("option",{value:"",children:"Model default"}),(s?.thinkingLevels??[]).filter(e=>"off"!==e).map(e=>(0,o.jsx)("option",{value:e,children:e},e))]})]}))]},n)}),d&&(0,o.jsx)("div",{role:"alert",style:{color:"var(--status-error)",fontSize:"var(--text-md)"},children:d}),(0,o.jsx)("button",{type:"button",onClick:()=>void p(),disabled:a||l,style:{alignSelf:"flex-start",padding:"7px 12px",border:"none",borderRadius:"var(--radius-control)",background:"var(--accent)",color:"var(--on-accent)",cursor:l?"wait":"pointer",fontSize:"var(--text-md)",fontWeight:600},children:l?"Saving...":"Save OMP roles"})]})}let eu=["openai-completions","openai-responses","openai-codex-responses","azure-openai-responses","anthropic-messages","bedrock-converse-stream","google-generative-ai","google-gemini-cli","google-vertex"];function ev({text:e}){let r=e.split("`");return 1===r.length?(0,o.jsx)(o.Fragment,{children:e}):(0,o.jsx)(o.Fragment,{children:r.map((e,r)=>r%2==1?(0,o.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:e},r):e)})}function eg({children:e}){return(0,o.jsx)("div",{style:{fontSize:"var(--text-sm)",fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:2},children:e})}function eh({icon:e,label:r,selected:t,onClick:n}){return(0,o.jsxs)("button",{type:"button",onClick:n,style:{width:"100%",padding:"8px 10px",border:"none",borderRadius:"var(--radius-control)",background:t?"var(--bg-selected)":"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)",textAlign:"left",display:"flex",alignItems:"center",gap:"var(--space-4)",fontWeight:t?600:400},children:[(0,o.jsx)(e,{size:14,style:{color:t?"var(--accent)":"currentColor",flexShrink:0}}),r]})}let em=e=>({onMouseEnter:r=>{e||(r.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:r=>{e||(r.currentTarget.style.background="none")}}),ef={onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.borderColor="var(--border)"}},eb=[{label:"\uD83E\uDD99 Ollama",baseUrl:"http://localhost:11434/v1",auth:"none"},{label:"⚡ LM Studio / vLLM",baseUrl:"http://localhost:1234/v1",auth:"none"},{label:"\uD83C\uDF10 OpenRouter",baseUrl:"https://openrouter.ai/api/v1",auth:"apiKey"},{label:"\uD83E\uDD16 Local Proxy (:2455)",baseUrl:"http://127.0.0.1:2455/v1",auth:"keep"}],ey={padding:"4px 8px",fontSize:"var(--text-sm)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)",cursor:"pointer"};function ej({name:e,provider:r,onChange:t,onRename:a,onDelete:l}){let{t:s}=(0,i.s9)(),[d,c]=(0,n.useState)(e),[x,u]=(0,n.useState)(!1);(0,n.useEffect)(()=>c(e),[e]);let h=(e,o)=>t({...r,[e]:o});(0,n.useEffect)(()=>{r.api||t({...r,api:"openai-completions"})},[r.api]);let m=(0,p.JT)(()=>d.trim()?null:s("modelsConfig.errorNameRequired")),f=(0,p.JT)(()=>{let e=r.baseUrl??"";if(!e.trim())return null;try{let r=new URL(e);if("http:"!==r.protocol&&"https:"!==r.protocol)return s("modelsConfig.errorUrlInvalid");return null}catch{return s("modelsConfig.errorUrlInvalid")}}),b=(0,p.JT)(()=>"none"===r.auth||r.apiKey&&r.apiKey.trim()?null:s("modelsConfig.errorApiKeyRequired")),y=d.trim(),j=r.baseUrl?r.baseUrl.replace(/^https?:\/\//,"").split("/")[0]||r.baseUrl:"Default endpoint";return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-6)"},children:[(0,o.jsxs)("div",{style:{padding:"14px 16px",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",display:"flex",flexDirection:"column",gap:10,boxShadow:"var(--shadow-card)"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-5)"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,o.jsx)("div",{style:{width:"var(--control-height-lg)",height:"var(--control-height-lg)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,o.jsx)(eT,{id:e,size:20})}),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[(0,o.jsx)("div",{style:{fontSize:15,fontWeight:700,fontFamily:"var(--font-mono)",color:"var(--text)"},children:e}),(0,o.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:j})]})]}),(0,o.jsx)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)"},children:"none"===r.auth?(0,o.jsx)("span",{style:{fontSize:"var(--text-xs)",padding:"2px 7px",borderRadius:4,background:"var(--bg-subtle)",color:"var(--text-muted)",fontWeight:500},children:"Auth: None"}):r.apiKey?(0,o.jsx)("span",{style:{fontSize:"var(--text-xs)",padding:"2px 7px",borderRadius:4,background:"color-mix(in srgb, var(--accent) 15%, transparent)",color:"var(--accent)",fontWeight:600},children:"Key Set"}):(0,o.jsx)("span",{style:{fontSize:"var(--text-xs)",padding:"2px 7px",borderRadius:4,background:"color-mix(in srgb, var(--status-error) 15%, transparent)",color:"var(--status-error)",fontWeight:600},children:"Key Missing"})})]}),(0,o.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:10,marginTop:4},children:[(0,o.jsx)("div",{style:{fontSize:"var(--text-xs)",fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:6},children:"Quick Endpoint Presets"}),(0,o.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"var(--space-3)"},children:eb.map(e=>(0,o.jsx)("button",{type:"button",onClick:()=>{t({...r,baseUrl:e.baseUrl,api:"openai-completions",auth:"keep"===e.auth?r.auth:e.auth}),z.oR.success(`Applied ${e.baseUrl} endpoint preset`)},style:ey,children:e.label},e.baseUrl))})]})]}),(0,o.jsxs)(p.M_,{label:(0,o.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:"var(--space-3)"},children:[(0,o.jsx)(g.A,{size:12,"aria-hidden":"true"})," Configuration Details"]}),children:[(0,o.jsx)(p.D0,{label:s("modelsConfig.providerName"),required:!0,error:m.error,children:(0,o.jsx)(p.ks,{value:d,onChange:e=>{c(e),m.onChange()},placeholder:"provider-name",mono:!0,invalid:!!m.error,error:m.error,onBlurValidate:m.onBlur})}),y!==e&&(0,o.jsx)("button",{type:"button",onClick:()=>{m.onSubmit()||a(y)},style:{alignSelf:"flex-start",padding:"5px 12px",background:"var(--accent)",border:"none",borderRadius:"var(--radius-control)",color:"var(--on-accent)",cursor:"pointer",fontSize:"var(--text-sm)",fontWeight:600},children:s("modelsConfig.rename")}),(0,o.jsx)(p.D0,{label:s("modelsConfig.baseUrl"),error:f.error,children:(0,o.jsx)(p.ks,{value:r.baseUrl??"",onChange:e=>{h("baseUrl",e||void 0),f.onChange()},placeholder:"https://api.example.com/v1",mono:!0,invalid:!!f.error,error:f.error,onBlurValidate:f.onBlur})}),(0,o.jsx)(p.D0,{label:s("modelsConfig.apiKey"),hint:(0,o.jsx)(ev,{text:s("modelsConfig.apiKeyHint")}),error:b.error,children:(0,o.jsx)(p.L4,{value:r.apiKey??"",onChange:e=>{h("apiKey",e||void 0),b.onChange()},placeholder:s("modelsConfig.apiKeyPlaceholder"),invalid:!!b.error,error:b.error,onBlurValidate:b.onBlur,showLabel:s("modelsConfig.showApiKey"),hideLabel:s("modelsConfig.hideApiKey")})}),(0,o.jsx)(p.Jl,{label:s("modelsConfig.noApiKeyRequired"),checked:"none"===r.auth,onChange:e=>{h("auth",e?"none":void 0),e&&b.onChange(),b.onBlur()}}),(0,o.jsx)(p.D0,{label:s("modelsConfig.api"),children:(0,o.jsx)(p.l6,{value:r.api??"openai-completions",onChange:e=>h("api",e),options:eu,required:!0,placeholder:s("modelsConfig.inheritNone")})})]}),(0,o.jsxs)("section",{style:{padding:"14px 16px",border:"1px solid color-mix(in srgb, var(--status-error) 25%, transparent)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-5)"},children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{style:{fontSize:12.5,fontWeight:600,color:"var(--text)"},children:"Remove Provider"}),(0,o.jsxs)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)",marginTop:2},children:["Delete ",e," and remove its models from models.yml configuration."]})]}),(0,o.jsxs)("button",{type:"button",onClick:()=>u(!0),style:{padding:"6px 12px",background:"none",border:"1px solid var(--status-error)",borderRadius:"var(--radius-control)",color:"var(--status-error)",cursor:"pointer",fontSize:"var(--text-md)",display:"inline-flex",alignItems:"center",gap:5,fontWeight:500,flexShrink:0},children:[(0,o.jsx)(v.A,{size:13,"aria-hidden":"true"})," ",s("modelsConfig.delete")]})]}),(0,o.jsx)(p.TM,{open:x,onOpenChange:u,title:s("modelsConfig.deleteProviderTitle",{name:e}),description:s("modelsConfig.deleteProviderBody",{name:e}),confirmLabel:s("modelsConfig.delete"),cancelLabel:s("modelsConfig.cancel"),danger:!0,onConfirm:()=>{u(!1),l()}})]})}let eC=["minimal","low","medium","high","xhigh","max"],ek={minimal:"var(--text-dim)",low:"color-mix(in srgb, var(--accent) 45%, var(--text-muted))",medium:"var(--accent)",high:"var(--accent-hover)",xhigh:"var(--status-warning)",max:"var(--status-error)"};function eS({value:e,onChange:r}){let{t}=(0,i.s9)(),n=e?.efforts,a=e?.effortMap??{},l=(t,o)=>{let i=new Set(n??[...eC]),l={...a};null===o?(i.delete(t),delete l[t]):(i.add(t),"omit"===o?delete l[t]:l[t]=o);let s=eC.filter(e=>i.has(e));0===s.length||s.length===eC.length&&0===Object.keys(l).length?r(void 0):r({...e??{},mode:e?.mode??"effort",efforts:s,effortMap:Object.keys(l).length?l:void 0})};return(0,o.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:eC.map(e=>{let r=void 0!==n&&!n.includes(e),i=r?null:a[e],s=r?"null":"string"==typeof i?"string":"omit",d="string"==typeof i?i:"",c=ek[e],p={padding:"4px 10px",fontSize:"var(--text-xs)",border:"none",cursor:"pointer",fontWeight:400,transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)",whiteSpace:"nowrap",background:"var(--bg-panel)",color:"var(--text-dim)"},x={background:"var(--accent)",color:"var(--on-accent)",fontWeight:600};return(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"5px 4px",borderRadius:"var(--radius-control)",background:"transparent",border:"1px solid transparent"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,width:68,flexShrink:0},children:[(0,o.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:c,flexShrink:0,opacity:"null"===s?.3:1}}),(0,o.jsx)("span",{style:{fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)",color:"null"===s?"var(--text-dim)":"var(--text-muted)",textDecoration:"null"===s?"line-through":"none"},children:e})]}),(0,o.jsxs)("div",{style:{display:"flex",borderRadius:"var(--radius-control)",border:"1px solid var(--border)",overflow:"hidden",flexShrink:0},children:[(0,o.jsx)("button",{onClick:()=>l(e,"omit"),style:{...p,..."omit"===s?x:{}},children:t("modelsConfig.default")}),(0,o.jsx)("button",{onClick:()=>l(e,null),style:{...p,borderLeft:"1px solid var(--border)",..."null"===s?{background:"var(--status-error)",color:"var(--on-accent)",fontWeight:600}:{}},children:t("modelsConfig.disabled")})]}),(0,o.jsxs)("div",{style:{display:"flex",borderRadius:"var(--radius-control)",border:`1px solid ${"string"===s?"var(--accent)":"var(--border)"}`,overflow:"hidden",transition:"border-color var(--dur-fast) var(--ease-out-warm)"},children:[(0,o.jsx)("button",{onClick:()=>l(e,d||e),style:{...p,..."string"===s?x:{},borderRight:"1px solid var(--border)",flexShrink:0},children:t("modelsConfig.custom")}),(0,o.jsx)("input",{value:d,onChange:r=>l(e,r.target.value),onFocus:()=>{"string"!==s&&l(e,d||e)},placeholder:e,maxLength:10,style:{width:"12ch",background:"string"===s?"var(--bg)":"var(--bg-panel)",border:"none",outline:"none",color:"string"===s?"var(--text)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",padding:"4px 7px",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"}})]})]},e)})})}let ew={input:"modelsConfig.costInput",output:"modelsConfig.costOutput",cacheRead:"modelsConfig.costCacheRead",cacheWrite:"modelsConfig.costCacheWrite"};function ez({providerName:e,provider:r,model:t,onChange:a,onDelete:l}){let{t:s}=(0,i.s9)(),[c,x]=(0,n.useState)({phase:"idle"}),[u,g]=(0,n.useState)(!1),j=(e,r)=>a({...t,[e]:r}),C=(0,p.JT)(()=>t.id.trim()?null:s("modelsConfig.errorIdRequired")),k=(()=>{if("idle"===c.phase)return null;if("testing"===c.phase)return s("modelsConfig.validatingConfig");let e=[void 0!==c.latencyMs?`${c.latencyMs}ms`:null,void 0!==c.status?`HTTP ${c.status}`:null].filter(Boolean);return"success"===c.phase?[s("modelsConfig.ok"),...e,c.responseText||null].filter(Boolean).join(" \xb7 "):[s("modelsConfig.failed"),...e,c.message].filter(Boolean).join(" \xb7 ")})();(0,n.useEffect)(()=>{x({phase:"idle"})},[e,r.baseUrl,r.api,r.apiKey,t.id,t.api]);let S=(0,n.useCallback)(async()=>{if(t.id.trim()&&"testing"!==c.phase){x({phase:"testing"});try{let o=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:e,provider:r,model:t})}),n=await o.json();if(!o.ok||!n.ok)return void x({phase:"error",message:n.error||n.code?(0,d.K)(n):`HTTP ${o.status}`,latencyMs:n.latencyMs,status:n.status});x({phase:"success",latencyMs:n.latencyMs,status:n.status,responseText:n.responseText})}catch(e){x({phase:"error",message:e instanceof Error?e.message:String(e)})}}},[t,r,e,c.phase]);return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,o.jsxs)(p.M_,{label:(0,o.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,o.jsx)(h.A,{size:11,"aria-hidden":"true"})," ",s("modelsConfig.model")]}),children:[(0,o.jsxs)("div",{className:"model-detail-grid-2",style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,o.jsx)(p.D0,{label:s("modelsConfig.idRequired"),required:!0,error:C.error,children:(0,o.jsx)(p.ks,{value:t.id,onChange:e=>{j("id",e),C.onChange()},placeholder:"model-id",mono:!0,invalid:!!C.error,error:C.error,onBlurValidate:C.onBlur})}),(0,o.jsx)(p.D0,{label:s("modelsConfig.name"),children:(0,o.jsx)(p.ks,{value:t.name??"",onChange:e=>j("name",e||void 0),placeholder:s("modelsConfig.displayNamePlaceholder")})})]}),(0,o.jsx)(p.D0,{label:s("modelsConfig.apiOverride"),children:(0,o.jsx)(p.l6,{value:t.api??"",onChange:e=>j("api",e||void 0),options:eu,placeholder:s("modelsConfig.inheritNone")})}),(0,o.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap"},children:[(0,o.jsx)(p.Jl,{label:s("modelsConfig.reasoningThinking"),checked:t.reasoning??!1,onChange:e=>j("reasoning",e||void 0)}),(0,o.jsx)(p.Jl,{label:s("modelsConfig.imageInput"),checked:t.input?.includes("image")??!1,onChange:e=>j("input",e?["text","image"]:void 0)})]})]}),t.reasoning&&(0,o.jsxs)(p.M_,{label:(0,o.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,o.jsx)(m.A,{size:11,"aria-hidden":"true"})," ",s("modelsConfig.thinkingLevels")]}),children:[(0,o.jsx)("div",{style:{display:"flex",justifyContent:"flex-end"},children:t.thinking&&(0,o.jsxs)("button",{type:"button",onClick:()=>j("thinking",void 0),style:{fontSize:"var(--text-xs)",padding:"3px 9px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-dim)",cursor:"pointer",display:"inline-flex",alignItems:"center",gap:"var(--space-2)"},children:[(0,o.jsx)(f.A,{size:10,"aria-hidden":"true"})," ",s("modelsConfig.resetToAuto")]})}),(0,o.jsx)(eS,{value:t.thinking,onChange:e=>j("thinking",e)})]}),(0,o.jsx)(p.M_,{label:s("modelsConfig.tokenLimits"),children:(0,o.jsxs)("div",{className:"model-detail-grid-2",style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,o.jsx)(p.D0,{label:s("modelsConfig.contextWindowTokens"),children:(0,o.jsx)(p.XZ,{value:void 0!==t.contextWindow?String(t.contextWindow):"",onChange:e=>j("contextWindow",e?parseInt(e):void 0),placeholder:"128000"})}),(0,o.jsx)(p.D0,{label:s("modelsConfig.maxOutputTokens"),children:(0,o.jsx)(p.XZ,{value:void 0!==t.maxTokens?String(t.maxTokens):"",onChange:e=>j("maxTokens",e?parseInt(e):void 0),placeholder:"16384"})})]})}),(0,o.jsx)(p.M_,{label:s("modelsConfig.costPerMillion"),children:(0,o.jsx)("div",{className:"model-detail-grid-4",style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr",gap:10},children:["input","output","cacheRead","cacheWrite"].map(e=>(0,o.jsx)(p.D0,{label:s(ew[e]),children:(0,o.jsx)(p.XZ,{value:t.cost?.[e]!==void 0?String(t.cost[e]):"",onChange:r=>{let o;return o=parseFloat(r),void a({...t,cost:{...t.cost??{},[e]:isNaN(o)?void 0:o}})},placeholder:"0"})},e))})}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:"var(--space-4)"},children:[k&&(0,o.jsxs)("span",{title:k,style:{maxWidth:360,padding:"4px 10px",border:`1px solid ${"error"===c.phase?"color-mix(in srgb, var(--accent) 30%, transparent)":"success"===c.phase?"color-mix(in srgb, var(--accent) 25%, transparent)":"var(--border)"}`,borderRadius:"var(--radius-control)",background:"error"===c.phase?"color-mix(in srgb, var(--accent) 10%, var(--bg-panel))":"success"===c.phase?"color-mix(in srgb, var(--accent) 8%, var(--bg-panel))":"var(--bg-panel)",color:"error"===c.phase||"success"===c.phase?"var(--text)":"var(--text-muted)",fontSize:"var(--text-sm)",display:"inline-flex",alignItems:"center",gap:"var(--space-3)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:["success"===c.phase?(0,o.jsx)(b.A,{size:11,"aria-hidden":"true"}):null,"error"===c.phase?(0,o.jsx)(y.A,{size:11,"aria-hidden":"true"}):null,k]}),(0,o.jsxs)("div",{style:{display:"flex",gap:"var(--space-4)",marginLeft:"auto"},children:[(0,o.jsxs)("button",{type:"button",onClick:S,disabled:!t.id.trim()||"testing"===c.phase,title:s("modelsConfig.testTitle"),style:{padding:"5px 12px",background:"success"===c.phase?"color-mix(in srgb, var(--accent) 18%, var(--bg-panel))":"none",border:`1px solid ${"success"===c.phase?"color-mix(in srgb, var(--accent) 30%, transparent)":"var(--border)"}`,borderRadius:"var(--radius-control)",color:"success"===c.phase?"var(--accent)":t.id.trim()&&"testing"!==c.phase?"var(--text-muted)":"var(--text-dim)",cursor:t.id.trim()&&"testing"!==c.phase?"pointer":"not-allowed",fontSize:"var(--text-sm)",display:"inline-flex",alignItems:"center",justifyContent:"center",gap:5},children:["success"===c.phase&&(0,o.jsx)(b.A,{size:11,"aria-hidden":"true"}),"testing"===c.phase?s("modelsConfig.testing"):"success"===c.phase?s("modelsConfig.ok"):s("modelsConfig.test")]}),(0,o.jsxs)("button",{type:"button",onClick:()=>g(!0),style:{padding:"5px 12px",background:"none",border:"1px solid color-mix(in srgb, var(--accent) 30%, transparent)",borderRadius:"var(--radius-control)",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-sm)",display:"inline-flex",alignItems:"center",gap:"var(--space-2)"},children:[(0,o.jsx)(v.A,{size:11,"aria-hidden":"true"})," ",s("modelsConfig.remove")]})]})]}),(0,o.jsx)(p.TM,{open:u,onOpenChange:g,title:s("modelsConfig.removeModelTitle",{id:t.id}),description:s("modelsConfig.removeModelBody",{id:t.id}),confirmLabel:s("modelsConfig.remove"),cancelLabel:s("modelsConfig.cancel"),danger:!0,onConfirm:()=>{g(!1),l()}})]})}function eI({provider:e,onRefresh:r}){let{t,tn:a}=(0,i.s9)(),[s,c]=(0,n.useState)({phase:"idle"}),[p,x]=(0,n.useState)(""),u=(0,n.useRef)(null),v=(0,n.useRef)(null);(0,n.useEffect)(()=>{("auth"===s.phase||"prompt"===s.phase)&&setTimeout(()=>v.current?.focus(),50)},[s.phase]),(0,n.useEffect)(()=>{c({phase:"idle"}),x(""),u.current?.close(),u.current=null},[e.id]),(0,n.useEffect)(()=>()=>{u.current?.close()},[]);let g=(0,n.useCallback)(()=>{u.current?.close(),c({phase:"connecting"}),x("");let o=new EventSource(`/api/auth/login/${encodeURIComponent(e.id)}`);u.current=o,o.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{return}"auth"===t.type?(c({phase:"auth",url:t.url,instructions:t.instructions??null,token:t.token}),l(t.url)&&window.open(t.url,"_blank","noopener,noreferrer")):"device_code"===t.type?(c({phase:"device_code",userCode:t.userCode,verificationUri:t.verificationUri,intervalSeconds:t.intervalSeconds??null,expiresInSeconds:t.expiresInSeconds??null}),l(t.verificationUri)&&window.open(t.verificationUri,"_blank","noopener,noreferrer")):"prompt_request"===t.type?c({phase:"prompt",message:t.message,placeholder:t.placeholder??null,token:t.token}):"select_request"===t.type?c({phase:"select",message:t.message,options:t.options??[],token:t.token}):"progress"===t.type?c({phase:"progress",message:t.message}):"success"===t.type?(o.close(),c({phase:"success"}),r()):"error"===t.type?(o.close(),c({phase:"error",message:t.message})):"cancelled"===t.type&&(o.close(),c({phase:"idle"}))},o.onerror=()=>{o.close(),c(e=>"success"===e.phase?e:{phase:"error",message:t("modelsConfig.connectionLost")})}},[e.id,r,t]),h=(0,n.useCallback)(async()=>{try{let t=await fetch(`/api/auth/logout/${encodeURIComponent(e.id)}`,{method:"POST"}),o=await t.json().catch(()=>({}));if(!t.ok||o.error)return void c({phase:"error",message:o.error||o.code?(0,d.K)(o):`HTTP ${t.status}`});c({phase:"idle"}),r()}catch(e){c({phase:"error",message:e instanceof Error?e.message:String(e)})}},[e.id,r]),m=(0,n.useCallback)(async(r,o)=>{if(o.trim()){c({phase:"progress",message:t("modelsConfig.verifying")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:r,code:o.trim()})});if(!n.ok){let e=await n.json().catch(()=>({}));c({phase:"error",message:e.error||e.code?(0,d.K)(e):t("modelsConfig.serverError",{status:n.status})});return}x("")}catch(e){c({phase:"error",message:e instanceof Error?e.message:t("modelsConfig.networkError")})}}},[e.id,t]),f=(0,n.useCallback)(async(r,o)=>{c({phase:"progress",message:t("modelsConfig.continuing")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:r,code:o})});if(!n.ok){let e=await n.json().catch(()=>({}));c({phase:"error",message:e.error||e.code?(0,d.K)(e):t("modelsConfig.serverError",{status:n.status})})}}catch(e){c({phase:"error",message:e instanceof Error?e.message:t("modelsConfig.networkError")})}},[e.id,t]),b="connecting"===s.phase||"progress"===s.phase||"auth"===s.phase||"device_code"===s.phase||"prompt"===s.phase||"select"===s.phase;return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-6)"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,o.jsx)(eg,{children:t("modelsConfig.subscription")}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)"},children:[(0,o.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.loggedIn?"var(--status-success)":"var(--border)",display:"inline-block"}}),(0,o.jsx)("span",{style:{fontSize:"var(--text-sm)",color:e.loggedIn?"var(--status-success)":"var(--text-dim)"},children:e.loggedIn?t("modelsConfig.connected"):t("modelsConfig.notConnected")})]})]}),(0,o.jsxs)("div",{style:{minHeight:48},children:["idle"===s.phase&&(0,o.jsx)("p",{style:{margin:0,fontSize:"var(--text-md)",color:"var(--text-muted)",lineHeight:1.5},children:e.loggedIn?t("modelsConfig.alreadyConnected"):t("modelsConfig.connectAccount",{name:e.name})}),"connecting"===s.phase&&(0,o.jsx)("p",{style:{margin:0,fontSize:"var(--text-md)",color:"var(--text-muted)"},children:t("modelsConfig.openingBrowser")}),"select"===s.phase&&(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,o.jsx)("p",{style:{margin:0,fontSize:"var(--text-md)",color:"var(--text-muted)",lineHeight:1.5},children:s.message}),(0,o.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)"},children:s.options.map(e=>(0,o.jsx)("button",{onClick:()=>f(s.token,e.id),style:{padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-md)",textAlign:"left"},children:e.label},e.id))})]}),("auth"===s.phase||"prompt"===s.phase)&&(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,o.jsx)("p",{style:{margin:0,fontSize:"var(--text-md)",color:"var(--text-muted)",lineHeight:1.5},children:"auth"===s.phase?t("modelsConfig.completeSignIn"):s.message}),"auth"===s.phase&&(0,o.jsx)("p",{style:{margin:0,fontSize:"var(--text-sm)",color:"var(--text-dim)",lineHeight:1.5},children:(0,o.jsx)("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:t("modelsConfig.browserNotOpened")})}),(0,o.jsxs)("div",{style:{display:"flex",gap:"var(--space-3)"},children:[(0,o.jsx)("input",{ref:v,value:p,onChange:e=>x(e.target.value),onKeyDown:e=>{"Enter"===e.key&&m(s.token,p)},placeholder:"auth"===s.phase?"http://localhost:1455/auth/callback?code=…":s.placeholder??t("modelsConfig.enterValue"),style:{flex:1,padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text)",fontSize:"var(--text-md)",outline:"none",fontFamily:"var(--font-mono)",boxSizing:"border-box"}}),(0,o.jsx)("button",{onClick:()=>m(s.token,p),disabled:!p.trim(),style:{padding:"6px 12px",background:p.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:"var(--radius-control)",color:p.trim()?"var(--on-accent)":"var(--text-dim)",cursor:p.trim()?"pointer":"not-allowed",fontSize:"var(--text-md)",fontWeight:600,flexShrink:0},children:t("modelsConfig.submit")})]})]}),"device_code"===s.phase&&(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,o.jsx)("p",{style:{margin:0,fontSize:"var(--text-md)",color:"var(--text-muted)",lineHeight:1.5},children:t("modelsConfig.deviceCodeInstructions")}),(0,o.jsx)("div",{style:{padding:"8px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text)",fontSize:16,fontWeight:700,fontFamily:"var(--font-mono)",letterSpacing:0},children:s.userCode}),(0,o.jsxs)("p",{style:{margin:0,fontSize:"var(--text-sm)",color:"var(--text-dim)",lineHeight:1.5},children:[(0,o.jsx)("a",{href:s.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:s.verificationUri}),s.expiresInSeconds?" "+a("modelsConfig.expiresInMinutes",Math.ceil(s.expiresInSeconds/60)):""]})]}),"progress"===s.phase&&(0,o.jsx)("p",{style:{margin:0,fontSize:"var(--text-md)",color:"var(--text-muted)"},children:s.message}),"success"===s.phase&&(0,o.jsx)("p",{style:{margin:0,fontSize:"var(--text-md)",color:"var(--status-success)"},children:t("modelsConfig.connectedSuccessfully")}),"error"===s.phase&&(0,o.jsx)("p",{style:{margin:0,fontSize:"var(--text-md)",color:"var(--status-error)"},children:s.message})]}),(0,o.jsx)("div",{style:{display:"flex",gap:"var(--space-4)"},children:b?(0,o.jsx)("button",{onClick:()=>{u.current?.close(),c({phase:"idle"})},style:{padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)"},children:t("modelsConfig.cancel")}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("button",{onClick:g,style:{padding:"5px 14px",background:"var(--accent)",border:"none",borderRadius:"var(--radius-control)",color:"var(--on-accent)",cursor:"pointer",fontSize:"var(--text-md)",fontWeight:600},children:e.loggedIn?t("modelsConfig.relogin"):t("modelsConfig.login")}),e.loggedIn&&(0,o.jsx)("button",{onClick:h,style:{padding:"5px 12px",background:"none",border:"1px solid color-mix(in srgb, var(--status-error) 30%, transparent)",borderRadius:"var(--radius-control)",color:"var(--status-error)",cursor:"pointer",fontSize:"var(--text-md)"},children:t("modelsConfig.disconnect")})]})})]})}function eR({provider:e}){let{t:r,tn:t}=(0,i.s9)();return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-6)"},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,o.jsx)(eg,{children:r("modelsConfig.apiKey")}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)"},children:[(0,o.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.configured?"var(--status-success)":"var(--border)",display:"inline-block"}}),(0,o.jsx)("span",{style:{fontSize:"var(--text-sm)",color:e.configured?"var(--status-success)":"var(--text-dim)"},children:r(e.configured?"modelsConfig.configured":"modelsConfig.notConfigured")})]})]}),(0,o.jsx)("p",{style:{margin:0,fontSize:"var(--text-md)",color:"var(--text-muted)",lineHeight:1.5},children:e.configured?t("modelsConfig.providerConfigured",e.modelCount,{name:e.displayName}):r("modelsConfig.providerNotConfigured",{name:e.displayName})}),(0,o.jsx)("p",{style:{margin:0,fontSize:"var(--text-sm)",color:"var(--text-dim)",lineHeight:1.5},children:(0,o.jsx)(ev,{text:r("modelsConfig.apiKeyManageHint")})})]})}function eT({id:e,size:r}){let t=ei[e];if(!t){let t=e.split(/[-_]/).filter(Boolean).slice(0,2).map(e=>e[0]).join("").toUpperCase()||"?";return(0,o.jsx)("span",{"aria-hidden":"true",style:{width:r,height:r,border:"1px solid var(--border)",borderRadius:4,color:"var(--text-dim)",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,fontSize:Math.max(8,Math.floor(.42*r)),fontWeight:700,lineHeight:1},children:t})}return t.hasColor?(0,o.jsx)(t.Icon,{size:r}):(0,o.jsx)(t.Icon,{size:r,style:{color:"var(--text-muted)"}})}function eA({oauthProviders:e,apiKeyProviders:r,onSelectOAuth:t,onSelectApiKey:a,onAddCustom:l,onClose:s}){let{t:d,tn:p}=(0,i.s9)(),[x,u]=(0,n.useState)(""),v=(0,n.useRef)(null),g=x.trim().toLowerCase(),h=e.filter(e=>!e.loggedIn&&(!g||e.name.toLowerCase().includes(g))),m=r.filter(e=>!e.configured&&(!g||e.displayName.toLowerCase().includes(g)||e.id.toLowerCase().includes(g))),f=!g||"custom".includes(g)||"openai-compatible".includes(g)||"anthropic-compatible".includes(g),b=h.length+m.length+ +!!f,y={display:"flex",flexDirection:"row",alignItems:"center",gap:"var(--space-4)",padding:"10px 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",boxSizing:"border-box",cursor:"pointer",minWidth:0,textAlign:"left",transition:"border-color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)",width:"100%"};return(0,o.jsx)(c.lG,{open:!0,onOpenChange:e=>{e||s()},children:(0,o.jsxs)(c.Cf,{ariaLabel:d("modelsConfig.addProvider"),style:{width:820,maxWidth:"min(92vw, 820px)",maxHeight:"min(72dvh, calc(100dvh - 32px))",padding:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,o.jsx)(c.L3,{style:{margin:"14px 18px 8px",fontSize:18},children:d("modelsConfig.addProvider")}),(0,o.jsx)("div",{style:{padding:"8px 14px 12px",flexShrink:0},children:(0,o.jsx)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"6px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)"},children:(0,o.jsx)("input",{ref:v,value:x,onChange:e=>u(e.target.value),placeholder:d("modelsConfig.searchProviders"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:"var(--text-base)",boxSizing:"border-box",minWidth:0}})})}),(0,o.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"4px 14px 14px"},children:0===b?(0,o.jsx)("div",{style:{padding:"20px 0",fontSize:"var(--text-md)",color:"var(--text-dim)",textAlign:"center"},children:d("modelsConfig.noProvidersMatch")}):(0,o.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(240px, 100%), 1fr))",gap:"var(--space-4)"},children:[f&&(0,o.jsx)("div",{style:{gridColumn:"1 / -1",fontSize:"var(--text-xs)",fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:d("modelsConfig.customSection")}),f&&(0,o.jsxs)("button",{type:"button",onClick:()=>{l(),s()},style:y,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,o.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,o.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d("modelsConfig.openaiAnthropicCompatible")}),(0,o.jsx)("div",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",marginTop:2},children:d("modelsConfig.customEndpointFormat")})]}),(0,o.jsx)("span",{style:{width:26,height:26,borderRadius:"var(--radius-control)",background:"var(--bg-hover)",border:"1px dashed var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,o.jsx)(j.A,{size:13,"aria-hidden":"true"})})]}),h.length>0&&(0,o.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*!!f,fontSize:"var(--text-xs)",fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:d("modelsConfig.subscriptions")}),h.map(e=>(0,o.jsxs)("button",{type:"button",onClick:()=>{t(e.id),s()},style:y,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,o.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,o.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,o.jsx)("div",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",marginTop:2},children:"OAuth"})]}),(0,o.jsx)(eT,{id:e.id,size:28})]},e.id)),m.length>0&&(0,o.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*(h.length>0),fontSize:"var(--text-xs)",fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:d("modelsConfig.apiKey")}),m.map(e=>(0,o.jsxs)("button",{type:"button",onClick:()=>{a(e.id),s()},style:y,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,o.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,o.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName}),(0,o.jsx)("div",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",marginTop:2},children:p("modelsConfig.modelCount",e.modelCount)})]}),(0,o.jsx)(eT,{id:e.id,size:28})]},e.id))]})})]})})}function eM({onClose:e,onSelectTab:r,onSaved:t,embedded:l=!1}){let{t:p}=(0,i.s9)(),x=(0,a.a)(),[u,v]=(0,n.useState)({providers:{}}),[g,h]=(0,n.useState)(!0),[m,b]=(0,n.useState)(!1),[y,R]=(0,n.useState)(null),[A,M]=(0,n.useState)(!1),[P,W]=(0,n.useState)(null),[O,$]=(0,n.useState)([]),[E,N]=(0,n.useState)([]),[L,D]=(0,n.useState)([]),[H,U]=(0,n.useState)([]),[F,B]=(0,n.useState)(!0),[K,_]=(0,n.useState)(null),[J,q]=(0,n.useState)(!1),[V,Y]=(0,n.useState)(null),[X,G]=(0,n.useState)(null),Z=(0,n.useCallback)(()=>{fetch("/api/auth/providers").then(e=>e.json()).then(e=>{Array.isArray(e.providers)&&$(e.providers)}).catch(()=>{})},[]),Q=(0,n.useCallback)(()=>{fetch("/api/auth/all-providers").then(e=>e.json()).then(e=>{Array.isArray(e.providers)&&N(e.providers)}).catch(()=>{})},[]),ee=(0,n.useCallback)(async()=>{B(!0);try{let e=await fetch("/api/models"),r=e.ok?await e.json():null;D(r?.modelList??[]),U(r?.connectedProviders??[])}catch{D([]),U([])}finally{B(!1)}},[]),er=(0,n.useCallback)(()=>{h(!0),fetch("/api/models-config").then(e=>e.json()).then(e=>{if(e.parseError){G({message:e.parseError,path:e.path}),v({providers:{}}),W(null);return}G(null);let r=e.providers?e:{...e,providers:{}};v(r);let t=Object.keys(r.providers??{});t.length>0&&W({type:"provider",name:t[0]})}).catch(()=>v({providers:{}})).finally(()=>h(!1))},[]);(0,n.useEffect)(()=>{er(),Z(),Q(),ee()},[er,Z,Q,ee]),(0,n.useEffect)(()=>{try{let e=JSON.parse(localStorage.getItem(ec)??"null");Array.isArray(e)&&_(new Set(e.filter(e=>"string"==typeof e)))}catch{}},[]);let et=(0,n.useCallback)((e,r)=>{_(t=>{let o=new Set(t??L.map(e=>`${e.provider}:${e.id}`)),n=`${e.provider}:${e.id}`;return r?o.add(n):o.delete(n),localStorage.setItem(ec,JSON.stringify([...o])),window.dispatchEvent(new Event("omp-composer-models-change")),o})},[L]),eo=(0,n.useCallback)((e,r)=>{_(t=>{let o=new Set(t??L.map(e=>`${e.provider}:${e.id}`));for(let t of L){if(t.provider!==e)continue;let n=`${t.provider}:${t.id}`;r?o.add(n):o.delete(n)}return localStorage.setItem(ec,JSON.stringify([...o])),window.dispatchEvent(new Event("omp-composer-models-change")),o})},[L]),en=(0,n.useCallback)(async e=>{let r=await fetch("/api/providers/enable",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})}),t=await r.json();if(!r.ok||t.error)throw Error(t.error||`HTTP ${r.status}`);await ee()},[ee]),ea=(0,n.useCallback)(()=>{let e="new-provider",r=1;for(;u.providers?.[e];)e=`new-provider-${r++}`;v(r=>({...r,providers:{...r.providers??{},[e]:{api:"openai-completions"}}})),W({type:"provider",name:e})},[u.providers]),ei=(0,n.useCallback)((e,r)=>{v(t=>({...t,providers:{...t.providers??{},[e]:r}}))},[]),ep=(0,n.useCallback)((e,r)=>{v(t=>{let o=Object.entries(t.providers??{}),n=o.findIndex(([r])=>r===e);return -1===n?t:(o[n]=[r,o[n][1]],{...t,providers:Object.fromEntries(o)})}),W(t=>t?"provider"===t.type&&t.name===e?{type:"provider",name:r}:"model"===t.type&&t.providerName===e?{...t,providerName:r}:t:t)},[]),eu=(0,n.useCallback)(e=>{v(r=>{let t={...r.providers??{}};return delete t[e],{...r,providers:t}}),v(e=>{let r=Object.keys(e.providers??{});return W(r.length>0?{type:"provider",name:r[0]}:null),e})},[]),ev=(0,n.useCallback)(e=>{v(r=>{let t=r.providers?.[e]??{},o=[...t.models??[],{id:""}];return{...r,providers:{...r.providers??{},[e]:{...t,models:o}}}}),v(r=>{let t=(r.providers?.[e]?.models?.length??1)-1;return W({type:"model",providerName:e,index:t}),r})},[]),eb=(0,n.useCallback)((e,r,t)=>{v(o=>{let n=o.providers?.[e]??{},a=[...n.models??[],r],i={...n,models:a};return t&&!n.baseUrl&&(i.baseUrl=t),{...o,providers:{...o.providers??{},[e]:i}}}),v(r=>{let t=(r.providers?.[e]?.models?.length??1)-1;return W({type:"model",providerName:e,index:t}),r}),Y(null)},[]),ey=(0,n.useCallback)((e,r,t)=>{v(o=>{let n=o.providers?.[e]??{},a=[...n.models??[]];return a[r]=t,{...o,providers:{...o.providers??{},[e]:{...n,models:a}}}})},[]),eC=(0,n.useCallback)((e,r)=>{v(t=>{let o=t.providers?.[e]??{},n=[...o.models??[]];return n.splice(r,1),{...t,providers:{...t.providers??{},[e]:{...o,models:n.length?n:void 0}}}}),W({type:"provider",name:e})},[]),ek=(0,n.useCallback)(async()=>{if(!X){b(!0),R(null),M(!1);try{let e=function(e){if(!e.providers)return e;let r=!1,t={};for(let[o,n]of Object.entries(e.providers)){let e=n.models;if(!e?.some(s)){t[o]=n;continue}r=!0;let a=e.filter(e=>!s(e));t[o]={...n,models:a.length>0?a:void 0}}return r?{...e,providers:t}:e}(u),r=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),o=await r.json();if(!r.ok||o.error){let e=o.error||o.code?(0,d.K)(o):`HTTP ${r.status}`;R(e),z.oR.error(p("modelsConfig.saveErrorTitle"),e),"models_config_unparseable"===o.code&&G({message:o.error??(0,d.K)(o)})}else er(),await ee(),Q(),t?.(),M(!0),setTimeout(()=>M(!1),2e3),z.oR.success(p("modelsConfig.saveSuccessTitle"))}catch(r){let e=r instanceof Error?r.message:String(r);R(e),z.oR.error(p("modelsConfig.saveErrorTitle"),e)}finally{b(!1)}}},[u,Q,er,ee,t,X,p]),eS=Object.entries(u.providers??{}),ew=O.filter(e=>e.loggedIn),eP=E.filter(e=>e.configured),eW=L.reduce((e,r)=>((e[r.provider]??=[]).push(r),e),{}),eO=(()=>{if(!P)return null;if("oauth"===P.type){let e=O.find(e=>e.id===P.providerId);return e?(0,o.jsx)(eI,{provider:e,onRefresh:()=>{Z(),Q(),ee()}},e.id):null}if("apikey"===P.type){let e=E.find(e=>e.id===P.providerId);return e?(0,o.jsx)(eR,{provider:e},e.id):null}if("roles"===P.type)return(0,o.jsx)(ex,{models:L});if("registry"===P.type)return(0,o.jsx)(ed,{models:L,connectedProviders:H,onChanged:ee});if("fallbacks"===P.type)return(0,o.jsx)(es,{models:L});if("picker"===P.type)return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"var(--space-5)"},children:[(0,o.jsxs)("div",{children:[(0,o.jsx)(eg,{children:"Composer Model Picker"}),(0,o.jsx)("p",{style:{margin:"4px 0 0",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5},children:"Choose which native OMP models are available in the composer. This changes only omp-web's picker, not OMP's model registry."})]}),(0,o.jsx)("button",{type:"button",onClick:()=>void ee(),disabled:F,title:"Refresh OMP runtime models",style:{padding:7,border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text-muted)",cursor:F?"wait":"pointer"},children:(0,o.jsx)(f.A,{size:14,"aria-hidden":"true"})})]}),F?(0,o.jsx)("div",{style:{color:"var(--text-muted)",fontSize:"var(--text-md)"},children:"Loading OMP runtime models..."}):Object.entries(eW).map(([e,r])=>{let t=r.every(e=>null===K||K.has(`${e.provider}:${e.id}`)),n=r.some(e=>null===K||K.has(`${e.provider}:${e.id}`));return(0,o.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",overflow:"hidden"},children:[(0,o.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"9px 11px",background:"var(--bg-panel)",color:"var(--text)",fontSize:"var(--text-md)",fontWeight:600},children:[(0,o.jsx)("input",{type:"checkbox",checked:t,ref:e=>{e&&(e.indeterminate=n&&!t)},onChange:r=>eo(e,r.target.checked),"aria-label":`Show all ${e} models in composer`}),(0,o.jsx)(eT,{id:e,size:15}),(0,o.jsx)("span",{children:e}),(0,o.jsxs)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:"var(--text-sm)",fontWeight:400},children:[r.length," model",1===r.length?"":"s"]})]}),(0,o.jsx)("div",{style:{padding:"4px 0"},children:r.map(e=>(0,o.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:9,padding:"7px 11px",color:"var(--text-muted)",cursor:"pointer"},children:[(0,o.jsx)("input",{type:"checkbox",checked:null===K||K.has(`${e.provider}:${e.id}`),onChange:r=>et(e,r.target.checked),"aria-label":`Show ${e.provider}/${e.id} in composer`}),(0,o.jsx)("span",{style:{minWidth:0,flex:1,fontSize:"var(--text-md)"},children:e.name||e.id}),(0,o.jsxs)("code",{style:{color:"var(--text-dim)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},children:[e.provider,"/",e.id]})]},`${e.provider}:${e.id}`))})]},e)}),!F&&0===L.length&&(0,o.jsx)("div",{style:{color:"var(--text-muted)",fontSize:"var(--text-md)"},children:"OMP did not report any configured models."}),H.filter(e=>!eW[e.id]).map(e=>(0,o.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",padding:12},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",color:"var(--text)",fontSize:"var(--text-md)",fontWeight:600},children:[(0,o.jsx)(eT,{id:e.id,size:15}),e.name]}),(0,o.jsx)("p",{style:{margin:"6px 0 0",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5},children:e.disabled?"Connected, but disabled in OMP. Enable it to discover its models.":"Connected, but OMP has not reported models for this provider yet."}),e.disabled&&(0,o.jsx)("button",{type:"button",onClick:()=>void en(e.id).catch(e=>z.oR.error("Could not enable provider",e instanceof Error?e.message:String(e))),style:{marginTop:8,padding:"6px 10px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-md)"},children:"Enable in OMP"})]},e.id))]});if("provider"===P.type){let e=u.providers?.[P.name];return e?(0,o.jsx)(ej,{name:P.name,provider:e,onChange:e=>ei(P.name,e),onRename:e=>ep(P.name,e),onDelete:()=>eu(P.name)},P.name):null}let e=u.providers?.[P.providerName],r=e?.models?.[P.index];return r?(0,o.jsx)(ez,{providerName:P.providerName,provider:e,model:r,onChange:e=>ey(P.providerName,P.index,e),onDelete:()=>eC(P.providerName,P.index)},`${P.providerName}-${P.index}`):null})();return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(el,{embedded:l,isMobile:x,onClose:e,children:[!l&&(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,o.jsx)(c.L3,{style:{fontSize:16,margin:0},children:p("modelsConfig.title")}),(0,o.jsx)("code",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:"~/.omp/agent/models.yml"})]}),(0,o.jsx)("button",{onClick:e,"aria-label":p("modelsConfig.close"),title:p("modelsConfig.close"),className:"ui-focus-ring",style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"4px 8px",minWidth:"var(--control-height-sm)",minHeight:"var(--control-height-sm)",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"var(--radius-control)"},children:"\xd7"})]}),!l&&r&&(0,o.jsx)(I.mm,{active:"models",onSelect:r}),X?(0,o.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"var(--space-8)",display:"flex",flexDirection:"column",gap:"var(--space-5)"},children:[(0,o.jsx)("div",{style:{fontSize:"var(--text-base)",fontWeight:600,color:"var(--status-error)"},children:p("modelsConfig.parseErrorTitle")}),(0,o.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--text-muted)",lineHeight:1.6},children:p("modelsConfig.parseErrorBody")}),X.path&&(0,o.jsx)("code",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:X.path}),(0,o.jsx)("pre",{style:{margin:0,padding:"10px 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap",wordBreak:"break-word",overflowX:"auto"},children:X.message}),(0,o.jsx)("button",{onClick:er,disabled:g,style:{alignSelf:"flex-start",padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",cursor:g?"default":"pointer",fontSize:"var(--text-md)"},children:g?p("modelsConfig.loading"):p("modelsConfig.reload")})]}):(0,o.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:x?"column":"row",overflow:"hidden"},children:[(0,o.jsxs)("div",{style:{width:x?"100%":235,maxHeight:x?"40vh":void 0,borderRight:x?"none":"1px solid var(--border)",borderBottom:x?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,o.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:[(0,o.jsx)(eh,{icon:C.A,label:"Native OMP registry",selected:P?.type==="registry",onClick:()=>W({type:"registry"})}),(0,o.jsx)(eh,{icon:k.A,label:"Retry & fallback",selected:P?.type==="fallbacks",onClick:()=>W({type:"fallbacks"})}),(0,o.jsx)(eh,{icon:S.A,label:"Composer model picker",selected:P?.type==="picker",onClick:()=>W({type:"picker"})}),(0,o.jsx)(eh,{icon:w.A,label:"OMP model roles",selected:P?.type==="roles",onClick:()=>W({type:"roles"})}),(ew.length>0||eP.length>0)&&(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",padding:"14px 10px 6px",color:"var(--text-dim)",fontSize:"var(--text-xs)",fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase"},children:[(0,o.jsx)("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",background:"var(--accent)",flexShrink:0}}),"Connected through OMP"]}),ew.map(e=>{let r=P?.type==="oauth"&&P.providerId===e.id;return(0,o.jsxs)("button",{type:"button",onClick:()=>W({type:"oauth",providerId:e.id}),style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"7px 10px",borderRadius:"var(--radius-control)",cursor:"pointer",width:"100%",border:"none",textAlign:"left",fontFamily:"inherit",background:r?"var(--bg-selected)":"none",fontWeight:r?600:400},...em(r),children:[(0,o.jsx)(eT,{id:e.id,size:16}),(0,o.jsx)("span",{style:{fontSize:"var(--text-md)",color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,o.jsx)("span",{title:`OMP OAuth provider: ${e.id}`,style:{padding:"2px 5px",borderRadius:4,background:"var(--bg-subtle)",color:"var(--text-muted)",fontSize:9,fontWeight:500,flexShrink:0},children:"OAuth"})]},e.id)}),eP.map(e=>{let r=P?.type==="apikey"&&P.providerId===e.id;return(0,o.jsxs)("button",{type:"button",onClick:()=>W({type:"apikey",providerId:e.id}),style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"7px 10px",borderRadius:"var(--radius-control)",cursor:"pointer",width:"100%",border:"none",textAlign:"left",fontFamily:"inherit",background:r?"var(--bg-selected)":"none",fontWeight:r?600:400},...em(r),children:[(0,o.jsx)(eT,{id:e.id,size:16}),(0,o.jsx)("span",{style:{fontSize:"var(--text-md)",color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName}),(0,o.jsx)("span",{title:`OMP API-key provider: ${e.id}`,style:{padding:"2px 5px",borderRadius:4,background:"var(--bg-subtle)",color:"var(--text-muted)",fontSize:9,fontWeight:500,flexShrink:0},children:"API key"})]},e.id)}),(ew.length>0||eP.length>0)&&eS.length>0&&(0,o.jsx)("div",{style:{margin:"8px 10px",borderTop:"1px solid var(--border)"}}),eS.length>0&&(0,o.jsx)("div",{style:{padding:"10px 10px 4px",fontSize:"var(--text-xs)",fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:"Configured Providers"}),g?(0,o.jsx)("div",{style:{padding:"10px 8px",fontSize:"var(--text-md)",color:"var(--text-muted)"},children:p("modelsConfig.loading")}):eS.map(([e,r])=>{let t=P?.type==="provider"&&P.name===e,n=r.models??[];return(0,o.jsxs)("div",{style:{marginBottom:6,padding:"4px 6px",borderRadius:"var(--radius-control)",background:t?"var(--bg-panel)":"transparent",border:t?"1px solid var(--border)":"1px solid transparent"},children:[(0,o.jsxs)("button",{type:"button",onClick:()=>W({type:"provider",name:e}),style:{display:"flex",alignItems:"center",gap:7,padding:"6px 8px",borderRadius:"var(--radius-control)",cursor:"pointer",width:"100%",border:"none",textAlign:"left",fontFamily:"inherit",background:t?"var(--bg-selected)":"none"},...em(t),children:[(0,o.jsx)(eT,{id:e,size:15}),(0,o.jsx)("span",{style:{fontSize:"var(--text-md)",fontWeight:t?600:500,color:"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),(0,o.jsxs)("span",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",padding:"1px 5px",borderRadius:4,background:"var(--bg-subtle)"},children:[n.length," model",1===n.length?"":"s"]})]}),n.map((r,t)=>{let n=P?.type==="model"&&P.providerName===e&&P.index===t;return(0,o.jsxs)("button",{type:"button",onClick:()=>W({type:"model",providerName:e,index:t}),style:{display:"flex",alignItems:"center",gap:"var(--space-3)",padding:"5px 8px 5px 28px",borderRadius:"var(--radius-control)",cursor:"pointer",width:"100%",border:"none",textAlign:"left",fontFamily:"inherit",background:n?"var(--bg-selected)":"none",marginTop:1},...em(n),children:[(0,o.jsx)("span",{style:{fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)",color:r.id?"var(--text-muted)":"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.id||p("modelsConfig.newModel")}),r.reasoning&&(0,o.jsx)("span",{style:{fontSize:9,padding:"1px 4px",background:"var(--accent-subtle)",color:"var(--accent)",borderRadius:3,flexShrink:0},children:"T"})]},t)}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",padding:"6px 8px 4px 10px",marginTop:2,flexWrap:"nowrap"},children:[(0,o.jsxs)("button",{type:"button",onClick:r=>{r.stopPropagation(),ev(e)},style:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",padding:"3px 8px",borderRadius:"var(--radius-control)",cursor:"pointer",color:"var(--text-muted)",border:"1px solid var(--border)",background:"var(--bg-subtle)",fontFamily:"inherit",fontSize:"var(--text-sm)",whiteSpace:"nowrap",flexShrink:0},...ef,children:[(0,o.jsx)(j.A,{size:11,"aria-hidden":"true"}),(0,o.jsx)("span",{children:p("modelsConfig.addModel")})]}),(0,o.jsxs)("button",{type:"button",onClick:r=>{r.stopPropagation(),Y(e)},style:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",padding:"3px 8px",borderRadius:"var(--radius-control)",cursor:"pointer",color:"var(--text-muted)",border:"1px solid var(--border)",background:"var(--bg-subtle)",fontFamily:"inherit",fontSize:"var(--text-sm)",whiteSpace:"nowrap",flexShrink:0},...ef,children:[(0,o.jsx)(S.A,{size:11,"aria-hidden":"true"}),(0,o.jsx)("span",{children:p("modelsConfig.addFromCatalog")})]})]})]},e)})]}),(0,o.jsx)("div",{style:{borderTop:"1px solid var(--border)",padding:"8px 6px"},children:(0,o.jsx)("button",{onClick:()=>q(!0),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,width:"100%",padding:"6px 0",background:"none",border:"1px dashed var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)"},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.color="var(--text-muted)"},children:p("modelsConfig.addProvider")})})]}),(0,o.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:g?(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,o.jsx)("div",{className:"skeleton",style:{height:18,width:"40%"}}),(0,o.jsx)("div",{className:"skeleton",style:{height:12,width:"70%"}}),(0,o.jsx)("div",{className:"skeleton",style:{height:12,width:"55%"}}),(0,o.jsx)("div",{className:"skeleton",style:{height:90,width:"100%"}})]}):eO??(0,o.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:"var(--text-base)"},children:p("modelsConfig.selectProviderOrModel")})})]}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:10,padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[y&&(0,o.jsx)("span",{style:{fontSize:"var(--text-md)",color:"var(--status-error)",flex:1},children:y}),(0,o.jsx)("button",{onClick:e,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-base)"},children:p("modelsConfig.cancel")}),(0,o.jsxs)("button",{onClick:ek,disabled:m||A||null!==X,style:{position:"relative",padding:"6px 16px",minWidth:92,background:A?"var(--status-success)":m||X?"var(--bg-panel)":"var(--accent)",border:"none",borderRadius:"var(--radius-control)",color:A?"var(--on-accent)":m||X?"var(--text-muted)":"var(--on-accent)",cursor:m||A||X?"default":"pointer",fontSize:"var(--text-base)",fontWeight:600,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"var(--space-3)",transition:"background-color var(--dur-med) var(--ease-out-warm), color var(--dur-med) var(--ease-out-warm)",animation:A?"saved-pop var(--dur-theme) var(--ease-out-warm)":void 0},children:[A&&(0,o.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",style:{strokeDasharray:18,animation:"saved-check-draw 0.35s ease forwards",flexShrink:0},children:(0,o.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,o.jsx)("span",{children:A?p("modelsConfig.saved"):m?p("modelsConfig.saving"):p("modelsConfig.save")})]})]})]}),J&&(0,o.jsx)(eA,{oauthProviders:O,apiKeyProviders:E,onSelectOAuth:e=>W({type:"oauth",providerId:e}),onSelectApiKey:e=>W({type:"apikey",providerId:e}),onAddCustom:ea,onClose:()=>q(!1)}),null!==V&&(0,o.jsx)(T,{open:!0,providerName:V,providerBaseUrl:u.providers?.[V]?.baseUrl??"",existingIds:new Set((u.providers?.[V]?.models??[]).map(e=>e.id)),onAdd:(e,r)=>eb(V,e,r),onClose:()=>Y(null)})]})}},69090:(e,r,t)=>{t.d(r,{D0:()=>d,JT:()=>b,Jl:()=>f,L4:()=>h,M_:()=>p,TM:()=>y,XZ:()=>g,ks:()=>v,l6:()=>m});var o=t(95155),n=t(12115),a=t(35484),i=t(89034),l=t(25182),s=t(30808);function d({label:e,hint:r,error:t,required:a,children:i,style:l,id:s}){let p=(0,n.useId)(),x=(0,n.isValidElement)(i)?i.props.id:void 0,u=s||x||p,v=t?`${u}-error`:void 0,g=!t&&r?`${u}-hint`:void 0,h=i;return(0,n.isValidElement)(i)&&(h=(0,n.cloneElement)(i,{id:x||u,"aria-describedby":i.props["aria-describedby"]||v||g})),(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-2)",minWidth:0,...l},children:[(0,o.jsxs)("label",{htmlFor:u,style:{fontSize:"var(--text-sm)",fontWeight:500,color:t?"var(--accent)":"var(--text-muted)",letterSpacing:"0.01em",display:"flex",alignItems:"center",gap:"var(--space-2)"},children:[e,a&&(0,o.jsx)("span",{style:{color:"var(--accent)"},children:"*"})]}),h,t?(0,o.jsx)(c,{id:v,children:t}):r?(0,o.jsx)("span",{id:g,style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",lineHeight:1.4},children:r}):null]})}function c({children:e,id:r}){return(0,o.jsxs)("span",{id:r,role:"alert",style:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",fontSize:"var(--text-md)",color:"var(--accent)",lineHeight:1.3,marginTop:"calc(var(--space-1) / 2)"},children:[(0,o.jsx)(a.A,{size:12,"aria-hidden":"true"}),e]})}function p({label:e,children:r,style:t}){return(0,o.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:"calc(var(--space-5) - var(--space-1))",padding:"var(--space-5) calc(var(--space-5) + var(--space-1))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",boxShadow:"var(--shadow-card)",minWidth:0,...t},children:[(0,o.jsx)("div",{style:{fontSize:"var(--text-sm)",fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.06em"},children:e}),(0,o.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"calc(var(--space-5) - var(--space-1))",minWidth:0},children:r})]})}function x({invalid:e}){return{padding:"var(--space-3) calc(var(--space-4) + var(--space-1) / 2)",background:"var(--bg)",border:`1px solid ${e?"var(--accent)":"var(--border)"}`,borderRadius:"var(--radius-control)",color:"var(--text)",fontSize:"var(--text-md)",outline:"none",width:"100%",boxSizing:"border-box",transition:"border-color var(--dur-fast) var(--ease-out-warm), box-shadow var(--dur-fast) var(--ease-out-warm)"}}function u(e,r){return e?{borderColor:"var(--accent)",boxShadow:"var(--focus-ring)"}:{}}function v({value:e,onChange:r,placeholder:t,mono:a,invalid:i,error:l,onBlurValidate:s,disabled:d,onKeyDown:c,autoComplete:p,spellCheck:g,id:h}){let[m,f]=(0,n.useState)(!1),b=!!(i||l);return(0,o.jsx)("input",{id:h,value:e,onChange:e=>r(e.target.value),placeholder:t,disabled:d,onKeyDown:c,autoComplete:p,spellCheck:g,"aria-invalid":b||void 0,onFocus:()=>f(!0),onBlur:()=>{f(!1),s?.()},style:{...x({invalid:b}),...u(m,b),fontFamily:a?"var(--font-mono)":"inherit",opacity:d?.6:1}})}function g({value:e,onChange:r,placeholder:t,invalid:a,error:i,onBlurValidate:l,disabled:s,id:d}){let[c,p]=(0,n.useState)(!1),v=!!(a||i);return(0,o.jsx)("input",{id:d,type:"number",value:e,onChange:e=>r(e.target.value),placeholder:t,disabled:s,"aria-invalid":v||void 0,onFocus:()=>p(!0),onBlur:()=>{p(!1),l?.()},style:{...x({invalid:v}),...u(c,v),opacity:s?.6:1}})}function h({value:e,onChange:r,placeholder:t,invalid:a,error:s,onBlurValidate:d,disabled:c,showLabel:p,hideLabel:v,id:g}){let[m,f]=(0,n.useState)(!1),[b,y]=(0,n.useState)(!1),j=!!(a||s);return(0,n.useEffect)(()=>{e||f(!1)},[e]),(0,o.jsxs)("div",{style:{position:"relative",width:"100%"},children:[(0,o.jsx)("input",{id:g,type:m?"text":"password",value:e,onChange:e=>r(e.target.value),placeholder:t,disabled:c,autoComplete:"off",spellCheck:!1,"aria-invalid":j||void 0,onFocus:()=>y(!0),onBlur:()=>{y(!1),d?.()},style:{...x({invalid:j}),...u(b,j),paddingRight:"calc(var(--control-height-lg) - var(--space-1))",fontFamily:"var(--font-mono)",opacity:c?.6:1}}),(0,o.jsx)("button",{type:"button",onClick:()=>f(e=>!e),"aria-label":m?v:p,title:m?v:p,style:{position:"absolute",right:"calc(var(--space-2) + var(--space-1) / 2)",top:"50%",transform:"translateY(-50%)",width:"calc(var(--control-height-sm) - var(--space-2))",height:"calc(var(--control-height-sm) - var(--space-2))",padding:0,border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"calc(var(--radius-control) / 2)"},children:m?(0,o.jsx)(i.A,{size:15,"aria-hidden":"true"}):(0,o.jsx)(l.A,{size:15,"aria-hidden":"true"})})]})}function m({value:e,onChange:r,options:t,required:a,placeholder:i,invalid:l,error:s,disabled:d,id:c}){let[p,v]=(0,n.useState)(!1),g=!!(l||s);return(0,o.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[(0,o.jsxs)("select",{id:c,value:e,onChange:e=>r(e.target.value),disabled:d,"aria-invalid":g||void 0,onFocus:()=>v(!0),onBlur:()=>v(!1),style:{...x({invalid:g}),...u(p,g),color:e?"var(--text)":"var(--text-dim)",appearance:"none",width:"100%",paddingRight:"var(--space-8)",opacity:d?.6:1},children:[!a&&(0,o.jsx)("option",{value:"",children:i??""}),t.map(e=>(0,o.jsx)("option",{value:e,children:e},e))]}),(0,o.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{position:"absolute",right:"var(--space-4)",color:"var(--text-dim)",pointerEvents:"none"},children:(0,o.jsx)("polyline",{points:"6 9 12 15 18 9"})})]})}function f({label:e,checked:r,onChange:t,disabled:n}){return(0,o.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:"var(--space-3)",cursor:n?"not-allowed":"pointer",fontSize:"var(--text-md)",color:n?"var(--text-dim)":"var(--text-muted)",opacity:n?.7:1},children:[(0,o.jsx)("input",{type:"checkbox",checked:r,disabled:n,onChange:e=>t(e.target.checked),style:{width:14,height:14,accentColor:"var(--accent)",cursor:n?"not-allowed":"pointer"}}),e]})}function b(e){let[r,t]=(0,n.useState)(null),o=(0,n.useRef)(e);o.current=e;let a=(0,n.useCallback)(()=>{t(o.current())},[]);return{error:r,onBlur:a,onChange:(0,n.useCallback)(()=>{t(e=>null)},[]),onSubmit:(0,n.useCallback)(()=>{let e=o.current();return t(e),e},[])}}function y({open:e,onOpenChange:r,title:t,description:n,confirmLabel:a,cancelLabel:i,danger:l,busy:d,onConfirm:c}){return(0,o.jsx)(s.lG,{open:e,onOpenChange:r,children:(0,o.jsxs)(s.Cf,{ariaLabel:"string"==typeof t?t:void 0,style:{width:420,maxWidth:"min(92vw, 420px)",padding:"calc(var(--space-8) - var(--space-1))"},children:[(0,o.jsx)(s.L3,{children:t}),(0,o.jsx)("div",{style:{height:"var(--space-4)"}}),n&&(0,o.jsx)("p",{style:{margin:"0 0 calc(var(--space-6) + var(--space-1))",fontSize:"var(--text-base)",lineHeight:1.55,color:"var(--text-muted)"},children:n}),(0,o.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"var(--space-4)"},children:[(0,o.jsx)("button",{type:"button",onClick:()=>r(!1),style:{padding:"var(--space-3) calc(var(--space-5) + var(--space-1))",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-base)"},children:i??"Cancel"}),(0,o.jsx)("button",{type:"button",disabled:d,onClick:c,style:{padding:"var(--space-3) calc(var(--space-5) + var(--space-1))",background:"var(--accent-strong)",border:"none",borderRadius:"var(--radius-control)",color:"var(--on-accent)",cursor:d?"wait":"pointer",fontSize:"var(--text-base)",fontWeight:600,opacity:d?.7:1,transition:"background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{d||(e.currentTarget.style.background="var(--accent-hover)")},onMouseLeave:e=>{d||(e.currentTarget.style.background=l?"var(--accent-strong)":"var(--accent)")},children:a})]})]})})}}}]);