ompgui 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -0
- package/.next/app-path-routes-manifest.json +59 -0
- package/.next/build-manifest.json +20 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +157 -0
- package/.next/react-loadable-manifest.json +480 -0
- package/.next/required-server-files.js +364 -0
- package/.next/required-server-files.json +364 -0
- package/.next/routes-manifest.json +471 -0
- package/.next/server/app/_global-error/page.js +31 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +27 -0
- package/.next/server/app/_global-error.rsc +15 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +21 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page.js +1 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +27 -0
- package/.next/server/app/_not-found.rsc +23 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +23 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +25 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +8 -0
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -0
- package/.next/server/app/api/agent/[id]/bash-output/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/[id]/events/route.js +5 -0
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/[id]/route.js +1 -0
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/new/route.js +1 -0
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agent/running/events/route.js +3 -0
- package/.next/server/app/api/agent/running/events/route.js.nft.json +1 -0
- package/.next/server/app/api/agent/running/events/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agents/[name]/route.js +6 -0
- package/.next/server/app/api/agents/[name]/route.js.nft.json +1 -0
- package/.next/server/app/api/agents/[name]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agents/route.js +6 -0
- package/.next/server/app/api/agents/route.js.nft.json +1 -0
- package/.next/server/app/api/agents/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/agents/unpack/route.js +6 -0
- package/.next/server/app/api/agents/unpack/route.js.nft.json +1 -0
- package/.next/server/app/api/agents/unpack/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/app-update/route.js +1 -0
- package/.next/server/app/api/app-update/route.js.nft.json +1 -0
- package/.next/server/app/api/app-update/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/all-providers/route.js +1 -0
- package/.next/server/app/api/auth/all-providers/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/all-providers/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/login/[provider]/route.js +3 -0
- package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/providers/route.js +1 -0
- package/.next/server/app/api/auth/providers/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/browse/route.js +1 -0
- package/.next/server/app/api/cwd/browse/route.js.nft.json +1 -0
- package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/validate/route.js +1 -0
- package/.next/server/app/api/cwd/validate/route.js.nft.json +1 -0
- package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/default-cwd/route.js +1 -0
- package/.next/server/app/api/default-cwd/route.js.nft.json +1 -0
- package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/file-index/route.js +1 -0
- package/.next/server/app/api/file-index/route.js.nft.json +1 -0
- package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/files/[...path]/route.js +49 -0
- package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -0
- package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/diff/route.js +6 -0
- package/.next/server/app/api/git/diff/route.js.nft.json +1 -0
- package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/git/status/route.js +6 -0
- package/.next/server/app/api/git/status/route.js.nft.json +1 -0
- package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/home/route.js +1 -0
- package/.next/server/app/api/home/route.js.nft.json +1 -0
- package/.next/server/app/api/home/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp/route.js +3 -0
- package/.next/server/app/api/mcp/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/model-roles/route.js +1 -0
- package/.next/server/app/api/model-roles/route.js.nft.json +1 -0
- package/.next/server/app/api/model-roles/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/route.js +1 -0
- package/.next/server/app/api/models/route.js.nft.json +1 -0
- package/.next/server/app/api/models/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/catalog/route.js +1 -0
- package/.next/server/app/api/models-config/catalog/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/route.js +1 -0
- package/.next/server/app/api/models-config/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models-config/test/route.js +1 -0
- package/.next/server/app/api/models-config/test/route.js.nft.json +1 -0
- package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/omp-settings/route.js +1 -0
- package/.next/server/app/api/omp-settings/route.js.nft.json +1 -0
- package/.next/server/app/api/omp-settings/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/omp-update/route.js +2 -0
- package/.next/server/app/api/omp-update/route.js.nft.json +1 -0
- package/.next/server/app/api/omp-update/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/omp-version/route.js +1 -0
- package/.next/server/app/api/omp-version/route.js.nft.json +1 -0
- package/.next/server/app/api/omp-version/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/route.js +1 -0
- package/.next/server/app/api/plugins/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/projects/route.js +2 -0
- package/.next/server/app/api/projects/route.js.nft.json +1 -0
- package/.next/server/app/api/projects/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/providers/enable/route.js +1 -0
- package/.next/server/app/api/providers/enable/route.js.nft.json +1 -0
- package/.next/server/app/api/providers/enable/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/archive/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/archive/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/export/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/subagents/[subagentId]/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/subagents/[subagentId]/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/subagents/[subagentId]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/subagents/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/subagents/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/subagents/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/import/route.js +1 -0
- package/.next/server/app/api/sessions/import/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/import/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/route.js +1 -0
- package/.next/server/app/api/sessions/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/check/route.js +1 -0
- package/.next/server/app/api/skills/check/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/install/route.js +1 -0
- package/.next/server/app/api/skills/install/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/route.js +4 -0
- package/.next/server/app/api/skills/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/search/route.js +1 -0
- package/.next/server/app/api/skills/search/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/update/route.js +1 -0
- package/.next/server/app/api/skills/update/route.js.nft.json +1 -0
- package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/web-auth/session/route.js +1 -0
- package/.next/server/app/api/web-auth/session/route.js.nft.json +1 -0
- package/.next/server/app/api/web-auth/session/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/route.js +1 -0
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -0
- package/.next/server/app/favicon.ico/route.js +1 -0
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
- package/.next/server/app/favicon.ico.body +0 -0
- package/.next/server/app/favicon.ico.meta +1 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +21 -0
- package/.next/server/app/index.rsc +22 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +23 -0
- package/.next/server/app/index.segments/_full.segment.rsc +22 -0
- package/.next/server/app/index.segments/_tree.segment.rsc +8 -0
- package/.next/server/app/login/page.js +1 -0
- package/.next/server/app/login/page.js.nft.json +1 -0
- package/.next/server/app/login/page_client-reference-manifest.js +1 -0
- package/.next/server/app/login.html +1 -0
- package/.next/server/app/login.meta +26 -0
- package/.next/server/app/login.rsc +24 -0
- package/.next/server/app/login.segments/_full.segment.rsc +24 -0
- package/.next/server/app/login.segments/_tree.segment.rsc +8 -0
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +26 -0
- package/.next/server/app/page.js +76 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +59 -0
- package/.next/server/chunks/1094.js +160 -0
- package/.next/server/chunks/1515.js +1 -0
- package/.next/server/chunks/1555.js +1 -0
- package/.next/server/chunks/1601.js +24 -0
- package/.next/server/chunks/1625.js +1 -0
- package/.next/server/chunks/1671.js +1 -0
- package/.next/server/chunks/1800.js +1 -0
- package/.next/server/chunks/1813.js +1 -0
- package/.next/server/chunks/1860.js +1 -0
- package/.next/server/chunks/2075.js +23 -0
- package/.next/server/chunks/2106.js +1 -0
- package/.next/server/chunks/2169.js +36 -0
- package/.next/server/chunks/2190.js +1 -0
- package/.next/server/chunks/2325.js +82 -0
- package/.next/server/chunks/2349.js +1 -0
- package/.next/server/chunks/2408.js +1 -0
- package/.next/server/chunks/2452.js +93 -0
- package/.next/server/chunks/2744.js +1 -0
- package/.next/server/chunks/2865.js +1 -0
- package/.next/server/chunks/2903.js +1 -0
- package/.next/server/chunks/295.js +1 -0
- package/.next/server/chunks/3012.js +1 -0
- package/.next/server/chunks/3186.js +86 -0
- package/.next/server/chunks/3294.js +25 -0
- package/.next/server/chunks/3379.js +1 -0
- package/.next/server/chunks/3383.js +27 -0
- package/.next/server/chunks/3425.js +163 -0
- package/.next/server/chunks/3569.js +1 -0
- package/.next/server/chunks/3798.js +5 -0
- package/.next/server/chunks/3869.js +8 -0
- package/.next/server/chunks/3894.js +1 -0
- package/.next/server/chunks/4267.js +1 -0
- package/.next/server/chunks/4315.js +1 -0
- package/.next/server/chunks/4367.js +1 -0
- package/.next/server/chunks/4372.js +1 -0
- package/.next/server/chunks/4445.js +1 -0
- package/.next/server/chunks/4538.js +24 -0
- package/.next/server/chunks/4548.js +1 -0
- package/.next/server/chunks/4563.js +38 -0
- package/.next/server/chunks/4674.js +1 -0
- package/.next/server/chunks/4741.js +165 -0
- package/.next/server/chunks/477.js +1 -0
- package/.next/server/chunks/4980.js +1 -0
- package/.next/server/chunks/5029.js +1 -0
- package/.next/server/chunks/5318.js +1 -0
- package/.next/server/chunks/5974.js +77 -0
- package/.next/server/chunks/6052.js +141 -0
- package/.next/server/chunks/611.js +1 -0
- package/.next/server/chunks/6209.js +12 -0
- package/.next/server/chunks/6253.js +104 -0
- package/.next/server/chunks/6337.js +1 -0
- package/.next/server/chunks/6366.js +80 -0
- package/.next/server/chunks/6465.js +1 -0
- package/.next/server/chunks/673.js +287 -0
- package/.next/server/chunks/6916.js +226 -0
- package/.next/server/chunks/6980.js +1 -0
- package/.next/server/chunks/703.js +1 -0
- package/.next/server/chunks/714.js +1 -0
- package/.next/server/chunks/7233.js +1 -0
- package/.next/server/chunks/7265.js +215 -0
- package/.next/server/chunks/7307.js +1 -0
- package/.next/server/chunks/7561.js +1 -0
- package/.next/server/chunks/7567.js +1 -0
- package/.next/server/chunks/7710.js +1 -0
- package/.next/server/chunks/7744.js +64 -0
- package/.next/server/chunks/7790.js +1 -0
- package/.next/server/chunks/7799.js +34 -0
- package/.next/server/chunks/7834.js +5 -0
- package/.next/server/chunks/7872.js +1 -0
- package/.next/server/chunks/8106.js +1 -0
- package/.next/server/chunks/8170.js +1 -0
- package/.next/server/chunks/8294.js +1 -0
- package/.next/server/chunks/8333.js +79 -0
- package/.next/server/chunks/835.js +1 -0
- package/.next/server/chunks/8353.js +4 -0
- package/.next/server/chunks/8397.js +41 -0
- package/.next/server/chunks/8501.js +1 -0
- package/.next/server/chunks/8604.js +115 -0
- package/.next/server/chunks/8713.js +148 -0
- package/.next/server/chunks/8782.js +153 -0
- package/.next/server/chunks/8920.js +62 -0
- package/.next/server/chunks/922.js +5 -0
- package/.next/server/chunks/9280.js +255 -0
- package/.next/server/chunks/9486.js +1 -0
- package/.next/server/chunks/9509.js +1 -0
- package/.next/server/chunks/9510.js +90 -0
- package/.next/server/functions-config-manifest.json +15 -0
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/middleware.js +163 -0
- package/.next/server/middleware.js.nft.json +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/prefetch-hints.json +53 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/YAZYeEe1KDqN7al9eJ-PR/_buildManifest.js +1 -0
- package/.next/static/YAZYeEe1KDqN7al9eJ-PR/_ssgManifest.js +1 -0
- package/.next/static/chunks/103.23142a67b02246a8.js +215 -0
- package/.next/static/chunks/1032.d9a9179233599785.js +1 -0
- package/.next/static/chunks/1063.775c442bdbeef08b.js +1 -0
- package/.next/static/chunks/1133.cec7d32308adb5b9.js +1 -0
- package/.next/static/chunks/1327.09252bb80616cc3a.js +1 -0
- package/.next/static/chunks/1708.c3a1896e4cc9f8d9.js +1 -0
- package/.next/static/chunks/1781.9072b4c9586df549.js +1 -0
- package/.next/static/chunks/1ba63609.b2ae90f43319a29e.js +153 -0
- package/.next/static/chunks/2081.47b6e9391094055f.js +1 -0
- package/.next/static/chunks/2181.ba21239d3ac39f81.js +1 -0
- package/.next/static/chunks/2201.9abd9168805e51f1.js +1 -0
- package/.next/static/chunks/2258.4defa30121ef44a5.js +1 -0
- package/.next/static/chunks/2325.23caf22075e51aa5.js +1 -0
- package/.next/static/chunks/2356.523277bb8c6bf72a.js +23 -0
- package/.next/static/chunks/2418.b5d9e177e10a686e.js +1 -0
- package/.next/static/chunks/2480.cf27ca02e5b19761.js +24 -0
- package/.next/static/chunks/2539.c5a4f2fd8e421c70.js +41 -0
- package/.next/static/chunks/2619.9431a3f48da8eef4.js +1 -0
- package/.next/static/chunks/268.ec500965c1761e26.js +80 -0
- package/.next/static/chunks/2695.b732ef1965253b3f.js +90 -0
- package/.next/static/chunks/2703.495a65ed14b2f094.js +36 -0
- package/.next/static/chunks/2821.934bcf60fbdc28c6.js +1 -0
- package/.next/static/chunks/3251.408c817adb161919.js +1 -0
- package/.next/static/chunks/3274.981684293bab3573.js +1 -0
- package/.next/static/chunks/3308.8e27b5c43a478f0d.js +73 -0
- package/.next/static/chunks/3336.a76f9485fe7cb762.js +1 -0
- package/.next/static/chunks/370.8e8f3cf8eb0e29dd.js +1 -0
- package/.next/static/chunks/3716.72bf4c9d7325debd.js +1 -0
- package/.next/static/chunks/3794-d7cddff008311ab3.js +52 -0
- package/.next/static/chunks/398.ffa02af9062a3950.js +77 -0
- package/.next/static/chunks/3995.eca0f5bef1fc3ae5.js +38 -0
- package/.next/static/chunks/4004.74b9bcf5478b1663.js +160 -0
- package/.next/static/chunks/4202.8440832386f023c7.js +226 -0
- package/.next/static/chunks/4238.6f102dcbcf2ae339.js +141 -0
- package/.next/static/chunks/4315-50f4eb7d435d214a.js +1 -0
- package/.next/static/chunks/4405.7a19458960a1058e.js +287 -0
- package/.next/static/chunks/4424.fd0c93a807a333e1.js +1 -0
- package/.next/static/chunks/4473.bb35c176b3f2bf32.js +1 -0
- package/.next/static/chunks/4559.2e7ed39ea2757280.js +1 -0
- package/.next/static/chunks/484.c74eeb0fca9a9ddf.js +1 -0
- package/.next/static/chunks/4854.b64a1daa15899219.js +1 -0
- package/.next/static/chunks/4866.d1060b4faf2ae1e2.js +1 -0
- package/.next/static/chunks/4970.8a63b4953b0e4946.js +1 -0
- package/.next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js +1 -0
- package/.next/static/chunks/5020.9ac8d0dc8390bb6e.js +1 -0
- package/.next/static/chunks/5137.f163e94c74a94d01.js +1 -0
- package/.next/static/chunks/5199.9ec1359b9aa220ab.js +1 -0
- package/.next/static/chunks/5242.7b643c6b3394cac1.js +1 -0
- package/.next/static/chunks/5361.afc00ab2626bacbf.js +1 -0
- package/.next/static/chunks/5521.cfdf2cfc6db31407.js +1 -0
- package/.next/static/chunks/5526.ff46471041fdcb79.js +86 -0
- package/.next/static/chunks/5658.d00c8405a87f7366.js +1 -0
- package/.next/static/chunks/5681.dd0e66b0de16e54b.js +27 -0
- package/.next/static/chunks/6121.eb9023b1cbc78ee2.js +1 -0
- package/.next/static/chunks/6161.4836cd7d031026bf.js +1 -0
- package/.next/static/chunks/6195.8710aa41b2319dff.js +24 -0
- package/.next/static/chunks/6202.f4317cf0a48876f9.js +1 -0
- package/.next/static/chunks/6294.24f510c0c3e3714c.js +1 -0
- package/.next/static/chunks/6522.a49bd5d1f0532830.js +1 -0
- package/.next/static/chunks/6654.41440ef667144967.js +1 -0
- package/.next/static/chunks/6794.57bf1aff78682f3a.js +93 -0
- package/.next/static/chunks/6876-5f6f58395158f0b8.js +1 -0
- package/.next/static/chunks/7256.e07cf52d87d40252.js +1 -0
- package/.next/static/chunks/7268.2f59c671f26160f3.js +1 -0
- package/.next/static/chunks/7331.2add3c4e125a2dba.js +104 -0
- package/.next/static/chunks/7543.89f7b805ed0f2901.js +1 -0
- package/.next/static/chunks/7570.db2b11eaf9806157.js +1 -0
- package/.next/static/chunks/8200.a36b9f8c983c6b9e.js +5 -0
- package/.next/static/chunks/869.7152372b662e31af.js +1 -0
- package/.next/static/chunks/8717.4e20eedf9544e286.js +1 -0
- package/.next/static/chunks/8863.fa0320ea586efb3b.js +1 -0
- package/.next/static/chunks/8885.d9308c756376780b.js +79 -0
- package/.next/static/chunks/8901.e117d206a917bda0.js +1 -0
- package/.next/static/chunks/90542734.ae439f2382f58c51.js +1 -0
- package/.next/static/chunks/918.6a9bbe564e4a2d0f.js +115 -0
- package/.next/static/chunks/934.9006461bd0548660.js +1 -0
- package/.next/static/chunks/9365.a3e0e5ac101ccd02.js +1 -0
- package/.next/static/chunks/9522.c7c6e9c330f9ba6b.js +1 -0
- package/.next/static/chunks/9614.3221013d7f0af27f.js +64 -0
- package/.next/static/chunks/9698.4d09a99b9d99f3e5.js +148 -0
- package/.next/static/chunks/9705.40a82b97f214e28b.js +1 -0
- package/.next/static/chunks/973.9efc01efd9d768a5.js +8 -0
- package/.next/static/chunks/9754.d67dec946fc871d4.js +25 -0
- package/.next/static/chunks/9764.2669775c6e107a01.js +62 -0
- package/.next/static/chunks/9793.4567af813117ad25.js +1 -0
- package/.next/static/chunks/993e5495.598a97aa1337298f.js +62 -0
- package/.next/static/chunks/9974.9a0f79beca65e8c4.js +34 -0
- package/.next/static/chunks/9981.64e2a4c3b53b3217.js +1 -0
- package/.next/static/chunks/app/_global-error/page-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/_not-found/page-29d942d61dc402df.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/agent/running/events/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/agents/[name]/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/agents/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/agents/unpack/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/app-update/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/home/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/model-roles/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/models/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/omp-settings/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/omp-update/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/omp-version/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/projects/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/providers/enable/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/archive/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/subagents/[subagentId]/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/subagents/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/sessions/import/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/skills/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/web-auth/session/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/app/error-b1ed788ca548b925.js +1 -0
- package/.next/static/chunks/app/global-error-d103ca6500636699.js +1 -0
- package/.next/static/chunks/app/layout-27cadb6f9894131c.js +1 -0
- package/.next/static/chunks/app/login/page-e9ec076f136fb627.js +1 -0
- package/.next/static/chunks/app/page-60629bbe3fe259ef.js +76 -0
- package/.next/static/chunks/bf2ff291.244c8a7c1c14966a.js +122 -0
- package/.next/static/chunks/d3ac728e.7964f816a1ca64e5.js +1 -0
- package/.next/static/chunks/da12927c.476aa688a637649c.js +82 -0
- package/.next/static/chunks/db9d41be.27ee8fcc7bf00d70.js +1 -0
- package/.next/static/chunks/framework-b33a8f5d57cd8d87.js +1 -0
- package/.next/static/chunks/main-354b27ede3eb835a.js +5 -0
- package/.next/static/chunks/main-app-0f81281390bb2b72.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-db1bed60c4bd0656.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-11f7dad1df4f814f.js +1 -0
- package/.next/static/css/14563335c571ff8f.css +1 -0
- package/.next/static/css/2f46e0db0d4a3aed.css +1 -0
- package/.next/static/css/5fe2a8af79a7efdf.css +1 -0
- package/.next/static/css/921bec6c70de20d4.css +1 -0
- package/.next/static/media/01bdb1c2bb2f530a-s.woff2 +0 -0
- package/.next/static/media/060fd7a2ba6f57dc-s.woff2 +0 -0
- package/.next/static/media/06d755a5cd3e2b96-s.woff2 +0 -0
- package/.next/static/media/09341845bc7215c3-s.woff2 +0 -0
- package/.next/static/media/09d8b46d011a8a55-s.woff2 +0 -0
- package/.next/static/media/0ac3ab6b6a54cd96-s.woff2 +0 -0
- package/.next/static/media/0cb7a0edc360425e-s.woff2 +0 -0
- package/.next/static/media/0de82041d2acf4c3-s.woff2 +0 -0
- package/.next/static/media/1249fbbadbb69451-s.woff2 +0 -0
- package/.next/static/media/15605e25b523335c-s.woff2 +0 -0
- package/.next/static/media/182682366c265526-s.woff2 +0 -0
- package/.next/static/media/1a3dce5cfb5f7760-s.woff2 +0 -0
- package/.next/static/media/1cdd02902f937a18-s.woff2 +0 -0
- package/.next/static/media/246116fa49278f72-s.woff2 +0 -0
- package/.next/static/media/2ad4a039dd2c0f35-s.woff2 +0 -0
- package/.next/static/media/2cd94acf7f6a8cd1-s.woff2 +0 -0
- package/.next/static/media/30af2a5bc088caeb-s.woff2 +0 -0
- package/.next/static/media/3117748ae3be552d-s.woff2 +0 -0
- package/.next/static/media/373befd5a68230ff-s.woff2 +0 -0
- package/.next/static/media/37ae20ae1d329cc2-s.woff2 +0 -0
- package/.next/static/media/3832bef2caf4f297-s.woff2 +0 -0
- package/.next/static/media/3b6ebd4dd223d8c1-s.woff2 +0 -0
- package/.next/static/media/3d165c286d94e27c-s.woff2 +0 -0
- package/.next/static/media/3da25081fc21e3b2-s.woff2 +0 -0
- package/.next/static/media/3eb545844a1630b6-s.woff2 +0 -0
- package/.next/static/media/41870aeb5505be99-s.woff2 +0 -0
- package/.next/static/media/45c8f5377f81d417-s.woff2 +0 -0
- package/.next/static/media/48d86e2f8821c61e-s.woff2 +0 -0
- package/.next/static/media/4957022da3161c6e-s.woff2 +0 -0
- package/.next/static/media/4be71ddc6c749643-s.woff2 +0 -0
- package/.next/static/media/4c4b3b30b6bcb2be-s.woff2 +0 -0
- package/.next/static/media/4dc4381bbf526d04-s.woff2 +0 -0
- package/.next/static/media/4eb0814ea9e22f45-s.woff2 +0 -0
- package/.next/static/media/4f86cf50532e0e9b-s.woff2 +0 -0
- package/.next/static/media/5022b11bb4a81e48-s.woff2 +0 -0
- package/.next/static/media/5080c55e2dccd63d-s.woff2 +0 -0
- package/.next/static/media/5348b1e69a651725-s.woff2 +0 -0
- package/.next/static/media/54c50561be23e605-s.woff2 +0 -0
- package/.next/static/media/567d6f765096ee76-s.woff2 +0 -0
- package/.next/static/media/58045d1f8695a418-s.woff2 +0 -0
- package/.next/static/media/591e43f23f51e5a5-s.woff2 +0 -0
- package/.next/static/media/5a274ddc03d9a5ab-s.woff2 +0 -0
- package/.next/static/media/5feee92221bb8605-s.woff2 +0 -0
- package/.next/static/media/6067d3f78ecc4535-s.woff2 +0 -0
- package/.next/static/media/61a11ca45429493a-s.woff2 +0 -0
- package/.next/static/media/63d030730737efae-s.woff2 +0 -0
- package/.next/static/media/641a7b8a5800ee0e-s.woff2 +0 -0
- package/.next/static/media/6bd056ddce336924-s.woff2 +0 -0
- package/.next/static/media/6dc0bae4a5666821-s.woff2 +0 -0
- package/.next/static/media/7513cc52807669ca-s.woff2 +0 -0
- package/.next/static/media/75ae81fea4aec8c5-s.woff2 +0 -0
- package/.next/static/media/77f6534b6a3eb37a-s.woff2 +0 -0
- package/.next/static/media/782d4006a26041e7-s.woff2 +0 -0
- package/.next/static/media/7c21074d9bafed1b-s.woff2 +0 -0
- package/.next/static/media/7d509f4f988023eb-s.woff2 +0 -0
- package/.next/static/media/7d58f39a50828c68-s.woff2 +0 -0
- package/.next/static/media/7db71cc013812f1c-s.woff2 +0 -0
- package/.next/static/media/7deddc85b7ffd1dc-s.p.woff2 +0 -0
- package/.next/static/media/7eb3f914ae6dd7a0-s.woff2 +0 -0
- package/.next/static/media/8051eb8307aa13c8-s.woff2 +0 -0
- package/.next/static/media/829dca987e1e010e-s.woff2 +0 -0
- package/.next/static/media/842f675c7a332a48-s.woff2 +0 -0
- package/.next/static/media/866e2e7b0cbc2cb4-s.woff2 +0 -0
- package/.next/static/media/86b38dc7f713ddda-s.woff2 +0 -0
- package/.next/static/media/8a3a66ae6bb27151-s.woff2 +0 -0
- package/.next/static/media/8b56b70f6d577d9f-s.woff2 +0 -0
- package/.next/static/media/8d93dbb77672da11-s.woff2 +0 -0
- package/.next/static/media/8f5c2d0a25b8f50c-s.woff2 +0 -0
- package/.next/static/media/916860560b9a2bc2-s.woff2 +0 -0
- package/.next/static/media/966e6d14b6c229fc-s.woff2 +0 -0
- package/.next/static/media/97ac91773d3121b2-s.p.woff2 +0 -0
- package/.next/static/media/9877fefe733dd250-s.woff2 +0 -0
- package/.next/static/media/9c57f4420502d43a-s.woff2 +0 -0
- package/.next/static/media/9cedd2ad7b0bcf3d-s.woff2 +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
- package/.next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
- package/.next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
- package/.next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
- package/.next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
- package/.next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
- package/.next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
- package/.next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
- package/.next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
- package/.next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
- package/.next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
- package/.next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
- package/.next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
- package/.next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
- package/.next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
- package/.next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
- package/.next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
- package/.next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
- package/.next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
- package/.next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
- package/.next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
- package/.next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
- package/.next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
- package/.next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
- package/.next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
- package/.next/static/media/a00fb5ef1ca68e5d-s.woff2 +0 -0
- package/.next/static/media/a171b1d72388367c-s.woff2 +0 -0
- package/.next/static/media/a310fb84e6868735-s.woff2 +0 -0
- package/.next/static/media/a53504b22c396db6-s.woff2 +0 -0
- package/.next/static/media/aabb87babcdda375-s.woff2 +0 -0
- package/.next/static/media/afe75c8050c8fd4e-s.woff2 +0 -0
- package/.next/static/media/b201193f76404e13-s.woff2 +0 -0
- package/.next/static/media/b20daecae68a588f-s.p.woff2 +0 -0
- package/.next/static/media/b2574bc564dca98d-s.woff2 +0 -0
- package/.next/static/media/b6a1339c290590d0-s.woff2 +0 -0
- package/.next/static/media/b6fe4b2295863fe4-s.woff2 +0 -0
- package/.next/static/media/bb8ff9c700288292-s.woff2 +0 -0
- package/.next/static/media/bc1ccfae4ae17995-s.woff2 +0 -0
- package/.next/static/media/be15c189f996aeb2-s.woff2 +0 -0
- package/.next/static/media/c0d1f6928a1dbc31-s.woff2 +0 -0
- package/.next/static/media/c36d8bb68a53eb60-s.woff2 +0 -0
- package/.next/static/media/c5db947ee2561e06-s.woff2 +0 -0
- package/.next/static/media/c77ac7f613b44045-s.woff2 +0 -0
- package/.next/static/media/ca73d0c74010e612-s.woff2 +0 -0
- package/.next/static/media/cfbad6ceeeca5c58-s.woff2 +0 -0
- package/.next/static/media/d24aebb82f01e48d-s.woff2 +0 -0
- package/.next/static/media/d2c6107607eb7d44-s.woff2 +0 -0
- package/.next/static/media/d2c7d5e8db7ce20a-s.woff2 +0 -0
- package/.next/static/media/d51f7558abc55aa6-s.woff2 +0 -0
- package/.next/static/media/da718921282f76d0-s.woff2 +0 -0
- package/.next/static/media/dae37106d788c7c9-s.woff2 +0 -0
- package/.next/static/media/e0d4cd45847004a4-s.woff2 +0 -0
- package/.next/static/media/e100c7a7874aebd9-s.woff2 +0 -0
- package/.next/static/media/e26dff18031f4a7e-s.woff2 +0 -0
- package/.next/static/media/e54d16b9f2c4535b-s.woff2 +0 -0
- package/.next/static/media/e5b759c1d5c42d99-s.woff2 +0 -0
- package/.next/static/media/ea21a07081db26d0-s.woff2 +0 -0
- package/.next/static/media/eaee7682c49bd1c2-s.woff2 +0 -0
- package/.next/static/media/ec14413c594b3356-s.p.woff2 +0 -0
- package/.next/static/media/ec408158b9e08aea-s.woff2 +0 -0
- package/.next/static/media/ee5d9aad76ea4c0a-s.woff2 +0 -0
- package/.next/static/media/efdbc7cff3271ee9-s.woff2 +0 -0
- package/.next/static/media/f128be4e72405705-s.woff2 +0 -0
- package/.next/static/media/fb6cfff6119f26e8-s.woff2 +0 -0
- package/.next/static/media/fd516adbc3328c82-s.woff2 +0 -0
- package/LICENSE +21 -0
- package/README.ja.md +169 -0
- package/README.ko.md +183 -0
- package/README.md +183 -0
- package/README.zh-CN.md +169 -0
- package/bin/node-version.js +35 -0
- package/bin/omp-web-options.js +86 -0
- package/bin/omp-web-security.test.mjs +9 -0
- package/bin/omp-web.js +155 -0
- package/bin/port-availability.js +27 -0
- package/bin/process-lifecycle.js +71 -0
- package/bin/process-lifecycle.test.mjs +83 -0
- package/next.config.ts +91 -0
- package/package.json +82 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3274],{33274:(e,r,o)=>{o.r(r),o.d(r,{ModelsConfig:()=>eP});var t=o(95155),n=o(12115),i=o(31590),a=o(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=o(18136),c=o(30808),p=o(69090),u=o(38158),x=o(19805),g=o(65738),h=o(88074),v=o(12651),f=o(86272),m=o(82749),b=o(64577),y=o(35484),j=o(2125),C=o(19707),k=o(92298),S=o(40557),w=o(80846),z=o(51087),I=o(74519),T=o(84111);function R({open:e,providerName:r,providerBaseUrl:o,existingIds:i,onAdd:l,onClose:s}){let{t:d}=(0,a.s9)(),[p,u]=(0,n.useState)(""),[x,g]=(0,n.useState)(null),[h,v]=(0,n.useState)(!1),[f,m]=(0,n.useState)(null),b=(0,n.useRef)(null),y=(0,n.useRef)(0);(0,n.useEffect)(()=>{if(!e)return;b.current?.focus();let t=p.trim();if(!t){y.current+=1,g(null),m(null),v(!1);return}let n=new URLSearchParams({q:t,limit:String(30)});r&&n.set("provider",r),o&&n.set("baseUrl",o);let i=new AbortController,a=y.current+1;y.current=a,v(!0);let l=setTimeout(async()=>{try{let e=await fetch(`/api/models-config/catalog?${n.toString()}`,{signal:i.signal}),r=await e.json();if(y.current!==a)return;if(!e.ok)throw Error(r.error??`HTTP ${e.status}`);g(r.models??[]),m(null)}catch(e){if(y.current!==a)return;"AbortError"!==e.name&&m(e instanceof Error?e.message:String(e))}finally{y.current===a&&v(!1)}},250);return()=>{clearTimeout(l),i.abort()}},[p,e,r,o]);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:6,minWidth:0};return(0,t.jsx)(c.lG,{open:!0,onOpenChange:e=>{e||s()},children:(0,t.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,t.jsx)(c.L3,{style:{margin:"14px 18px 8px",fontSize:18},children:d("modelsConfig.catalogTitle")}),(0,t.jsx)("div",{style:{padding:"8px 14px 12px",flexShrink:0},children:(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)"},children:(0,t.jsx)("input",{ref:b,value:p,onChange:e=>u(e.target.value),placeholder:d("modelsConfig.catalogSearchPlaceholder"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box",minWidth:0}})})}),(0,t.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"4px 14px 14px"},children:f?(0,t.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--status-error)",textAlign:"center"},children:d("modelsConfig.catalogError",{error:f})}):h?(0,t.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:d("modelsConfig.catalogLoading")}):null===x?(0,t.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:d("modelsConfig.catalogSearchPlaceholder")}):0===x.length?(0,t.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:d("modelsConfig.catalogNoResults")}):x.map(e=>{var r;let n=i.has(e.id),a=!!e.providerBaseUrl&&!o;return(0,t.jsxs)("div",{style:j,children:[(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[(0,t.jsx)("span",{style:{fontSize:12,fontFamily:"var(--font-mono)",color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.id}),e.reasoning&&(0,t.jsx)("span",{style:{fontSize:9,padding:"1px 4px",background:"color-mix(in srgb, var(--accent) 12%, transparent)",color:"var(--accent)",borderRadius:3,flexShrink:0},children:"T"})]}),(0,t.jsxs)("div",{style:{fontSize:11,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,T.w)(r))})}`:"",void 0!==e.cost.input&&void 0!==e.cost.output?` \xb7 ${d("modelsConfig.catalogPrice",{input:e.cost.input,output:e.cost.output})}`:"",a?` \xb7 ${d("modelsConfig.catalogSetBaseUrl")}`:""]})]}),n?(0,t.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,t.jsx)("button",{type:"button",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:12,fontWeight:600},children:d("modelsConfig.catalogAdd")})]},e.key)})})]})})}var A=o(67381),P=o(64433),M=o(70350),O=o(88195),W=o(9312),$=o(87275),E=o(22008),N=o(95476),L=o(35029),D=o(14489),H=o(78728),U=o(19872),F=o(7751),B=o(92526),K=o(48238),_=o(57794),J=o(41098),q=o(84604),Y=o(15315),V=o(74278),X=o(55457),G=o(71437),Z=o(29167),Q=o(97283),ee=o(34166),er=o(33889),eo=o(85486),et=o(74068),en=o(83546),ei=o(83709);let ea={anthropic:{Icon:A.A,hasColor:!1},openai:{Icon:P.A,hasColor:!1},"openai-codex":{Icon:P.A,hasColor:!1},google:{Icon:M.A,hasColor:!0},"google-vertex":{Icon:M.A,hasColor:!0},"ant-ling":{Icon:er.A,hasColor:!0},deepseek:{Icon:O.A,hasColor:!0},groq:{Icon:W.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:Y.A,hasColor:!0},nvidia:{Icon:eo.A,hasColor:!0},opencode:{Icon:et.A,hasColor:!1},"opencode-go":{Icon:et.A,hasColor:!1},qwen:{Icon:V.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:ei.A,hasColor:!1},"zai-coding-cn":{Icon:ei.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:o,children:n}){return e?(0,t.jsx)(t.Fragment,{children:n}):(0,t.jsx)(c.lG,{open:!0,onOpenChange:e=>{e||o()},children:(0,t.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,o]=(0,n.useState)(null),[i,a]=(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=>o(e.settings??{})).catch(e=>c(e instanceof Error?e.message:String(e)))},[]);let p=(0,n.useRef)(null),h=(0,n.useRef)(!1),v=e=>{o(e),c(null),p.current=e,h.current||(h.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})}),t=await r.json();if(!r.ok||t.error)throw Error(t.error||`HTTP ${r.status}`);null===p.current&&o(t.settings??e)}catch(e){c(e instanceof Error?e.message:String(e));break}}}finally{h.current=!1}})())};if(!r)return(0,t.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12},children:"Loading native OMP retry settings..."});let f=r.retry??{},m=f.fallbackChains?.[i]??[],b=e.map(e=>`${e.provider}/${e.id}`),y=e=>void v({...r,retry:{...f,fallbackChains:{...f.fallbackChains??{},[i]:e}}});return(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(eh,{children:"Native OMP Retry & Fallback"}),(0,t.jsx)("p",{style:{margin:"4px 0 0",color:"var(--text-muted)",fontSize:12,lineHeight:1.5},children:"OMP switches through these ordered model chains when a provider is rate-limited or unavailable."})]}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:9},children:[(0,t.jsxs)("label",{style:{padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",fontSize:12,color:"var(--text)"},children:[(0,t.jsx)("input",{type:"checkbox",checked:f.enabled??!0,onChange:e=>void v({...r,retry:{...f,enabled:e.target.checked}})})," Retry transient provider errors"]}),(0,t.jsxs)("label",{style:{padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",fontSize:12,color:"var(--text)"},children:[(0,t.jsx)("input",{type:"checkbox",checked:f.modelFallback??!0,onChange:e=>void v({...r,retry:{...f,modelFallback:e.target.checked}})})," Allow model fallback"]}),(0,t.jsxs)("label",{style:{padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",color:"var(--text)",fontSize:12},children:["Retry attempts ",(0,t.jsx)("select",{value:f.maxRetries??10,onChange:e=>void v({...r,retry:{...f,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,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("label",{style:{padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",color:"var(--text)",fontSize:12},children:["Return to primary ",(0,t.jsxs)("select",{value:f.fallbackRevertPolicy??"cooldown-expiry",onChange:e=>void v({...r,retry:{...f,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,t.jsx)("option",{value:"cooldown-expiry",children:"After cooldown"}),(0,t.jsx)("option",{value:"never",children:"Never"})]})]})]}),(0,t.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",overflow:"hidden"},children:[(0,t.jsxs)("div",{style:{padding:"10px 12px",background:"var(--bg-panel)",display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)("span",{style:{color:"var(--text)",fontSize:12,fontWeight:600},children:"Fallback chain for"}),(0,t.jsx)("select",{value:i,onChange:e=>a(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,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("div",{style:{padding:12,display:"flex",gap:8},children:[(0,t.jsxs)("select",{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,t.jsx)("option",{value:"",children:"Select a fallback model"}),b.filter(e=>!m.includes(e)).map(e=>(0,t.jsx)("option",{value:e,children:e},e))]}),(0,t.jsx)("button",{type:"button",disabled:!l,onClick:()=>{y([...m,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===m.length?(0,t.jsxs)("div",{style:{padding:"0 12px 12px",color:"var(--text-dim)",fontSize:12},children:["No explicit chain. OMP uses the ",(0,t.jsx)("code",{children:"default"})," chain when available."]}):(0,t.jsx)("div",{style:{borderTop:"1px solid var(--border)"},children:m.map((e,r)=>(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 12px",color:"var(--text-muted)",fontSize:12},children:[(0,t.jsx)("span",{style:{width:18,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:r+1}),(0,t.jsx)("code",{style:{flex:1},children:e}),(0,t.jsx)("button",{type:"button",disabled:0===r,onClick:()=>{let e=[...m],o=e[r-1];e[r-1]=e[r],e[r]=o,y(e)},style:{padding:2,border:"none",background:"transparent",color:"var(--text-muted)",cursor:0===r?"default":"pointer"},children:(0,t.jsx)(u.A,{size:14})}),(0,t.jsx)("button",{type:"button",disabled:r===m.length-1,onClick:()=>{let e=[...m],o=e[r+1];e[r+1]=e[r],e[r]=o,y(e)},style:{padding:2,border:"none",background:"transparent",color:"var(--text-muted)",cursor:r===m.length-1?"default":"pointer"},children:(0,t.jsx)(x.A,{size:14})}),(0,t.jsx)("button",{type:"button",onClick:()=>y(m.filter(r=>r!==e)),style:{padding:2,border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:(0,t.jsx)(g.A,{size:14})})]},e))})]}),d&&(0,t.jsx)("div",{role:"alert",style:{color:"var(--status-error)",fontSize:12},children:d})]})}function ed({models:e,connectedProviders:r,onChanged:o}){let[i,a]=(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=>a(e.settings??{})).catch(e=>s(e instanceof Error?e.message:String(e)))},[]);let p=(0,n.useRef)(null),g=(0,n.useRef)(!1),h=e=>{a(e),c(!0),s(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})}),t=await r.json();if(!r.ok||t.error)throw Error(t.error||`HTTP ${r.status}`);null===p.current&&a(t.settings??e),await o()}catch(e){s(e instanceof Error?e.message:String(e));break}}}finally{g.current=!1,c(!1)}})())};if(!i)return(0,t.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12},children:"Loading native OMP registry settings..."});let v=!0===i.registryHasScopedEntries,f=e.map(e=>`${e.provider}/${e.id}`),m=(i.enabledModels?.length??0)>0,b=new Set(i.enabledModels??f),y=[...new Set([...e.map(e=>e.provider),...r.map(e=>e.id),...i.disabledProviders??[]])].sort(),j=new Set(i.disabledProviders??[]),C=i.modelProviderOrder??[],k=[...C,...y.filter(e=>!C.includes(e))];return(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(eh,{children:"Native OMP Model Registry"}),(0,t.jsxs)("p",{style:{margin:"4px 0 0",color:"var(--text-muted)",fontSize:12,lineHeight:1.5},children:["These settings affect the models OMP itself can resolve. They are saved in ",(0,t.jsx)("code",{children:"~/.omp/agent/config.yml"}),", unlike the Composer picker."]})]}),(0,t.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",overflow:"hidden"},children:[(0,t.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,padding:"10px 12px",background:"var(--bg-panel)",color:"var(--text)",fontSize:12,fontWeight:600},children:[(0,t.jsx)("input",{type:"checkbox",checked:m,disabled:d||v,onChange:e=>void h({...i,enabledModels:e.target.checked?f:[]})})," Restrict OMP to selected models"]}),(0,t.jsx)("p",{style:{margin:0,padding:"8px 12px",color:"var(--text-muted)",fontSize:11,lineHeight:1.45},children:m?"Unchecked models are unavailable to every OMP session.":"All currently available OMP models are allowed."}),m&&(0,t.jsx)("div",{style:{maxHeight:260,overflowY:"auto",borderTop:"1px solid var(--border)"},children:e.map(e=>{let r=`${e.provider}/${e.id}`;return(0,t.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",color:"var(--text-muted)",fontSize:12},children:[(0,t.jsx)("input",{type:"checkbox",checked:b.has(r),disabled:d||v,onChange:e=>{let o=new Set(b);e.target.checked?o.add(r):o.delete(r),h({...i,enabledModels:[...o]})}}),(0,t.jsx)("code",{children:r})]},r)})})]}),(0,t.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",overflow:"hidden"},children:[(0,t.jsx)("div",{style:{padding:"10px 12px",background:"var(--bg-panel)",color:"var(--text)",fontSize:12,fontWeight:600},children:"Disabled Providers"}),(0,t.jsx)("p",{style:{margin:0,padding:"8px 12px",color:"var(--text-muted)",fontSize:11,lineHeight:1.45},children:"Disabling a provider removes it from OMP's model registry, even if it has credentials."}),(0,t.jsx)("div",{style:{borderTop:"1px solid var(--border)"},children:y.map(e=>(0,t.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 12px",color:"var(--text-muted)",fontSize:12},children:[(0,t.jsx)("input",{type:"checkbox",checked:j.has(e),disabled:d||v,onChange:r=>{let o=new Set(j);r.target.checked?o.add(e):o.delete(e),h({...i,disabledProviders:[...o]})}}),(0,t.jsx)(eR,{id:e,size:14}),(0,t.jsx)("code",{children:e})]},e))})]}),(0,t.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",overflow:"hidden"},children:[(0,t.jsx)("div",{style:{padding:"10px 12px",background:"var(--bg-panel)",color:"var(--text)",fontSize:12,fontWeight:600},children:"Provider Preference"}),(0,t.jsx)("p",{style:{margin:0,padding:"8px 12px",color:"var(--text-muted)",fontSize:11,lineHeight:1.45},children:"Sets OMP's provider order when a model id is ambiguous."}),(0,t.jsx)("div",{style:{borderTop:"1px solid var(--border)"},children:k.map((e,r)=>(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 12px",color:"var(--text-muted)",fontSize:12},children:[(0,t.jsx)(eR,{id:e,size:14}),(0,t.jsx)("code",{style:{flex:1},children:e}),(0,t.jsx)("button",{type:"button",disabled:d||v||0===r,onClick:()=>{let e=[...k];[e[r-1],e[r]]=[e[r],e[r-1]],h({...i,modelProviderOrder:e})},title:"Move provider up",style:{padding:3,border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:(0,t.jsx)(u.A,{size:14})}),(0,t.jsx)("button",{type:"button",disabled:d||v||r===k.length-1,onClick:()=>{let e=[...k];[e[r+1],e[r]]=[e[r],e[r+1]],h({...i,modelProviderOrder:e})},title:"Move provider down",style:{padding:3,border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:(0,t.jsx)(x.A,{size:14})})]},e))})]}),v&&(0,t.jsxs)("div",{role:"status",style:{padding:"9px 11px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",fontSize:12,lineHeight:1.45},children:["OMP path-scoped registry entries are configured. Edit ",(0,t.jsx)("code",{children:"config.yml"})," directly to preserve their path rules."]}),l&&(0,t.jsx)("div",{role:"alert",style:{color:"var(--status-error)",fontSize:12},children:l})]})}let ec="omp-composer-models",ep=["default","smol","slow","vision","plan","designer","commit","tiny","task","advisor"];function eu({models:e}){let[r,o]=(0,n.useState)({}),[i,a]=(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=>o(e.roles??{})).catch(e=>c(e instanceof Error?e.message:String(e))).finally(()=>a(!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})}),o=await e.json();if(!e.ok||o.error)throw Error(o.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,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(eh,{children:"OMP Model Roles"}),(0,t.jsxs)("p",{style:{margin:"4px 0 0",fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:["Saved natively in ",(0,t.jsx)("code",{children:"~/.omp/agent/config.yml"}),". Choose an OMP model and its supported reasoning level for each role."]})]}),i?(0,t.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12},children:"Loading roles..."}):ep.map(n=>{let i,a,l,s,d;return(0,t.jsxs)("div",{className:"model-role-row",style:{display:"grid",gridTemplateColumns:"82px minmax(0, 1fr) minmax(110px, 0.35fr)",alignItems:"center",gap:10,fontSize:12},children:[(0,t.jsx)("code",{style:{color:"var(--text-muted)"},children:n}),(a=(i=r[n]??"").replace(/:([^,:]+)$/,""),l=i.match(/:([^,:]+)$/)?.[1]??"",s=e.find(e=>`${e.provider}/${e.id}`===a),d=!a||!!s,(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("select",{value:a,onChange:e=>{var t;let i,a;return t=e.target.value,i=r[n]??"",a=i.match(/:([^,:]+)$/)?.[1]??"",void o(e=>({...e,[n]:t?`${t}${a?`:${a}`:""}`:""}))},style:{minWidth:0,padding:"7px 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)",fontSize:12},children:[(0,t.jsx)("option",{value:"",children:"No override"}),!d&&(0,t.jsxs)("option",{value:a,children:[a," (not currently available)"]}),e.map(e=>(0,t.jsxs)("option",{value:`${e.provider}/${e.id}`,children:[e.name||e.id," (",e.provider,"/",e.id,")"]},`${e.provider}:${e.id}`))]}),(0,t.jsxs)("select",{value:l,disabled:!s,onChange:e=>{var t;let i;return t=e.target.value,i=(r[n]??"").replace(/:([^,:]+)$/,""),void o(e=>({...e,[n]:i?`${i}${t?`:${t}`:""}`:""}))},style:{minWidth:0,padding:"7px 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)",fontSize:12,opacity:s?1:.55},children:[(0,t.jsx)("option",{value:"",children:"Model default"}),(s?.thinkingLevels??[]).filter(e=>"off"!==e).map(e=>(0,t.jsx)("option",{value:e,children:e},e))]})]}))]},n)}),d&&(0,t.jsx)("div",{role:"alert",style:{color:"var(--status-error)",fontSize:12},children:d}),(0,t.jsx)("button",{type:"button",onClick:()=>void p(),disabled:i||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:12,fontWeight:600},children:l?"Saving...":"Save OMP roles"})]})}let ex=["openai-completions","openai-responses","openai-codex-responses","azure-openai-responses","anthropic-messages","bedrock-converse-stream","google-generative-ai","google-gemini-cli","google-vertex"];function eg({text:e}){let r=e.split("`");return 1===r.length?(0,t.jsx)(t.Fragment,{children:e}):(0,t.jsx)(t.Fragment,{children:r.map((e,r)=>r%2==1?(0,t.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:e},r):e)})}function eh({children:e}){return(0,t.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:2},children:e})}function ev({icon:e,label:r,selected:o,onClick:n}){return(0,t.jsxs)("button",{type:"button",onClick:n,style:{width:"100%",padding:"8px 10px",border:"none",borderRadius:"var(--radius-control)",background:o?"var(--bg-selected)":"none",color:o?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",display:"flex",alignItems:"center",gap:8,fontWeight:o?600:400},children:[(0,t.jsx)(e,{size:14,style:{color:o?"var(--accent)":"currentColor",flexShrink:0}}),r]})}let ef=e=>({onMouseEnter:r=>{e||(r.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:r=>{e||(r.currentTarget.style.background="none")}}),em={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:11,border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)",cursor:"pointer"};function ej({name:e,provider:r,onChange:o,onRename:i,onDelete:l}){let{t:s}=(0,a.s9)(),[d,c]=(0,n.useState)(e),[u,x]=(0,n.useState)(!1);(0,n.useEffect)(()=>c(e),[e]);let v=(e,t)=>o({...r,[e]:t});(0,n.useEffect)(()=>{r.api||o({...r,api:"openai-completions"})},[r.api]);let f=(0,p.JT)(()=>d.trim()?null:s("modelsConfig.errorNameRequired")),m=(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,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,t.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,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,t.jsx)("div",{style:{width:36,height:36,borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,t.jsx)(eR,{id:e,size:20})}),(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[(0,t.jsx)("div",{style:{fontSize:15,fontWeight:700,fontFamily:"var(--font-mono)",color:"var(--text)"},children:e}),(0,t.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:j})]})]}),(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6},children:"none"===r.auth?(0,t.jsx)("span",{style:{fontSize:10,padding:"2px 7px",borderRadius:4,background:"var(--bg-subtle)",color:"var(--text-muted)",fontWeight:500},children:"Auth: None"}):r.apiKey?(0,t.jsx)("span",{style:{fontSize:10,padding:"2px 7px",borderRadius:4,background:"color-mix(in srgb, var(--accent) 15%, transparent)",color:"var(--accent)",fontWeight:600},children:"Key Set"}):(0,t.jsx)("span",{style:{fontSize:10,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,t.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:10,marginTop:4},children:[(0,t.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:6},children:"Quick Endpoint Presets"}),(0,t.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:eb.map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>{o({...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,t.jsxs)(p.M_,{label:(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,t.jsx)(h.A,{size:12,"aria-hidden":"true"})," Configuration Details"]}),children:[(0,t.jsx)(p.D0,{label:s("modelsConfig.providerName"),required:!0,error:f.error,children:(0,t.jsx)(p.ks,{value:d,onChange:e=>{c(e),f.onChange()},placeholder:"provider-name",mono:!0,invalid:!!f.error,error:f.error,onBlurValidate:f.onBlur})}),y!==e&&(0,t.jsx)("button",{type:"button",onClick:()=>{f.onSubmit()||i(y)},style:{alignSelf:"flex-start",padding:"5px 12px",background:"var(--accent)",border:"none",borderRadius:"var(--radius-control)",color:"var(--on-accent)",cursor:"pointer",fontSize:11,fontWeight:600},children:s("modelsConfig.rename")}),(0,t.jsx)(p.D0,{label:s("modelsConfig.baseUrl"),error:m.error,children:(0,t.jsx)(p.ks,{value:r.baseUrl??"",onChange:e=>{v("baseUrl",e||void 0),m.onChange()},placeholder:"https://api.example.com/v1",mono:!0,invalid:!!m.error,error:m.error,onBlurValidate:m.onBlur})}),(0,t.jsx)(p.D0,{label:s("modelsConfig.apiKey"),hint:(0,t.jsx)(eg,{text:s("modelsConfig.apiKeyHint")}),error:b.error,children:(0,t.jsx)(p.L4,{value:r.apiKey??"",onChange:e=>{v("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,t.jsx)(p.Jl,{label:s("modelsConfig.noApiKeyRequired"),checked:"none"===r.auth,onChange:e=>{v("auth",e?"none":void 0),e&&b.onChange(),b.onBlur()}}),(0,t.jsx)(p.D0,{label:s("modelsConfig.api"),children:(0,t.jsx)(p.l6,{value:r.api??"openai-completions",onChange:e=>v("api",e),options:ex,required:!0,placeholder:s("modelsConfig.inheritNone")})})]}),(0,t.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:12},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:12.5,fontWeight:600,color:"var(--text)"},children:"Remove Provider"}),(0,t.jsxs)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:["Delete ",e," and remove its models from models.yml configuration."]})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>x(!0),style:{padding:"6px 12px",background:"none",border:"1px solid var(--status-error)",borderRadius:"var(--radius-control)",color:"var(--status-error)",cursor:"pointer",fontSize:12,display:"inline-flex",alignItems:"center",gap:5,fontWeight:500,flexShrink:0},children:[(0,t.jsx)(g.A,{size:13,"aria-hidden":"true"})," ",s("modelsConfig.delete")]})]}),(0,t.jsx)(p.TM,{open:u,onOpenChange:x,title:s("modelsConfig.deleteProviderTitle",{name:e}),description:s("modelsConfig.deleteProviderBody",{name:e}),confirmLabel:s("modelsConfig.delete"),cancelLabel:s("modelsConfig.cancel"),danger:!0,onConfirm:()=>{x(!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:o}=(0,a.s9)(),n=e?.efforts,i=e?.effortMap??{},l=(o,t)=>{let a=new Set(n??[...eC]),l={...i};null===t?(a.delete(o),delete l[o]):(a.add(o),"omit"===t?delete l[o]:l[o]=t);let s=eC.filter(e=>a.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,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:eC.map(e=>{let r=void 0!==n&&!n.includes(e),a=r?null:i[e],s=r?"null":"string"==typeof a?"string":"omit",d="string"==typeof a?a:"",c=ek[e],p={padding:"4px 10px",fontSize:10,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)"},u={background:"var(--accent)",color:"var(--on-accent)",fontWeight:600};return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 4px",borderRadius:6,background:"transparent",border:"1px solid transparent"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,width:68,flexShrink:0},children:[(0,t.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:c,flexShrink:0,opacity:"null"===s?.3:1}}),(0,t.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"null"===s?"var(--text-dim)":"var(--text-muted)",textDecoration:"null"===s?"line-through":"none"},children:e})]}),(0,t.jsxs)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",flexShrink:0},children:[(0,t.jsx)("button",{onClick:()=>l(e,"omit"),style:{...p,..."omit"===s?u:{}},children:o("modelsConfig.default")}),(0,t.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:o("modelsConfig.disabled")})]}),(0,t.jsxs)("div",{style:{display:"flex",borderRadius:5,border:`1px solid ${"string"===s?"var(--accent)":"var(--border)"}`,overflow:"hidden",transition:"border-color var(--dur-fast) var(--ease-out-warm)"},children:[(0,t.jsx)("button",{onClick:()=>l(e,d||e),style:{...p,..."string"===s?u:{},borderRight:"1px solid var(--border)",flexShrink:0},children:o("modelsConfig.custom")}),(0,t.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:11,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:o,onChange:i,onDelete:l}){let{t:s}=(0,a.s9)(),[c,u]=(0,n.useState)({phase:"idle"}),[x,h]=(0,n.useState)(!1),j=(e,r)=>i({...o,[e]:r}),C=(0,p.JT)(()=>o.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)(()=>{u({phase:"idle"})},[e,r.baseUrl,r.api,r.apiKey,o.id,o.api]);let S=(0,n.useCallback)(async()=>{if(o.id.trim()&&"testing"!==c.phase){u({phase:"testing"});try{let t=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:e,provider:r,model:o})}),n=await t.json();if(!t.ok||!n.ok)return void u({phase:"error",message:n.error||n.code?(0,d.K)(n):`HTTP ${t.status}`,latencyMs:n.latencyMs,status:n.status});u({phase:"success",latencyMs:n.latencyMs,status:n.status,responseText:n.responseText})}catch(e){u({phase:"error",message:e instanceof Error?e.message:String(e)})}}},[o,r,e,c.phase]);return(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,t.jsxs)(p.M_,{label:(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,t.jsx)(v.A,{size:11,"aria-hidden":"true"})," ",s("modelsConfig.model")]}),children:[(0,t.jsxs)("div",{className:"model-detail-grid-2",style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,t.jsx)(p.D0,{label:s("modelsConfig.idRequired"),required:!0,error:C.error,children:(0,t.jsx)(p.ks,{value:o.id,onChange:e=>{j("id",e),C.onChange()},placeholder:"model-id",mono:!0,invalid:!!C.error,error:C.error,onBlurValidate:C.onBlur})}),(0,t.jsx)(p.D0,{label:s("modelsConfig.name"),children:(0,t.jsx)(p.ks,{value:o.name??"",onChange:e=>j("name",e||void 0),placeholder:s("modelsConfig.displayNamePlaceholder")})})]}),(0,t.jsx)(p.D0,{label:s("modelsConfig.apiOverride"),children:(0,t.jsx)(p.l6,{value:o.api??"",onChange:e=>j("api",e||void 0),options:ex,placeholder:s("modelsConfig.inheritNone")})}),(0,t.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap"},children:[(0,t.jsx)(p.Jl,{label:s("modelsConfig.reasoningThinking"),checked:o.reasoning??!1,onChange:e=>j("reasoning",e||void 0)}),(0,t.jsx)(p.Jl,{label:s("modelsConfig.imageInput"),checked:o.input?.includes("image")??!1,onChange:e=>j("input",e?["text","image"]:void 0)})]})]}),o.reasoning&&(0,t.jsxs)(p.M_,{label:(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,t.jsx)(f.A,{size:11,"aria-hidden":"true"})," ",s("modelsConfig.thinkingLevels")]}),children:[(0,t.jsx)("div",{style:{display:"flex",justifyContent:"flex-end"},children:o.thinking&&(0,t.jsxs)("button",{type:"button",onClick:()=>j("thinking",void 0),style:{fontSize:10,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:4},children:[(0,t.jsx)(m.A,{size:10,"aria-hidden":"true"})," ",s("modelsConfig.resetToAuto")]})}),(0,t.jsx)(eS,{value:o.thinking,onChange:e=>j("thinking",e)})]}),(0,t.jsx)(p.M_,{label:s("modelsConfig.tokenLimits"),children:(0,t.jsxs)("div",{className:"model-detail-grid-2",style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,t.jsx)(p.D0,{label:s("modelsConfig.contextWindowTokens"),children:(0,t.jsx)(p.XZ,{value:void 0!==o.contextWindow?String(o.contextWindow):"",onChange:e=>j("contextWindow",e?parseInt(e):void 0),placeholder:"128000"})}),(0,t.jsx)(p.D0,{label:s("modelsConfig.maxOutputTokens"),children:(0,t.jsx)(p.XZ,{value:void 0!==o.maxTokens?String(o.maxTokens):"",onChange:e=>j("maxTokens",e?parseInt(e):void 0),placeholder:"16384"})})]})}),(0,t.jsx)(p.M_,{label:s("modelsConfig.costPerMillion"),children:(0,t.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,t.jsx)(p.D0,{label:s(ew[e]),children:(0,t.jsx)(p.XZ,{value:o.cost?.[e]!==void 0?String(o.cost[e]):"",onChange:r=>{let t;return t=parseFloat(r),void i({...o,cost:{...o.cost??{},[e]:isNaN(t)?void 0:t}})},placeholder:"0"})},e))})}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:8},children:[k&&(0,t.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:11,display:"inline-flex",alignItems:"center",gap:6,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:["success"===c.phase?(0,t.jsx)(b.A,{size:11,"aria-hidden":"true"}):null,"error"===c.phase?(0,t.jsx)(y.A,{size:11,"aria-hidden":"true"}):null,k]}),(0,t.jsxs)("div",{style:{display:"flex",gap:8,marginLeft:"auto"},children:[(0,t.jsxs)("button",{type:"button",onClick:S,disabled:!o.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)":o.id.trim()&&"testing"!==c.phase?"var(--text-muted)":"var(--text-dim)",cursor:o.id.trim()&&"testing"!==c.phase?"pointer":"not-allowed",fontSize:11,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:5},children:["success"===c.phase&&(0,t.jsx)(b.A,{size:11,"aria-hidden":"true"}),"testing"===c.phase?s("modelsConfig.testing"):"success"===c.phase?s("modelsConfig.ok"):s("modelsConfig.test")]}),(0,t.jsxs)("button",{type:"button",onClick:()=>h(!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:11,display:"inline-flex",alignItems:"center",gap:4},children:[(0,t.jsx)(g.A,{size:11,"aria-hidden":"true"})," ",s("modelsConfig.remove")]})]})]}),(0,t.jsx)(p.TM,{open:x,onOpenChange:h,title:s("modelsConfig.removeModelTitle",{id:o.id}),description:s("modelsConfig.removeModelBody",{id:o.id}),confirmLabel:s("modelsConfig.remove"),cancelLabel:s("modelsConfig.cancel"),danger:!0,onConfirm:()=>{h(!1),l()}})]})}function eI({provider:e,onRefresh:r}){let{t:o,tn:i}=(0,a.s9)(),[s,c]=(0,n.useState)({phase:"idle"}),[p,u]=(0,n.useState)(""),x=(0,n.useRef)(null),g=(0,n.useRef)(null);(0,n.useEffect)(()=>{("auth"===s.phase||"prompt"===s.phase)&&setTimeout(()=>g.current?.focus(),50)},[s.phase]),(0,n.useEffect)(()=>{c({phase:"idle"}),u(""),x.current?.close(),x.current=null},[e.id]),(0,n.useEffect)(()=>()=>{x.current?.close()},[]);let h=(0,n.useCallback)(()=>{x.current?.close(),c({phase:"connecting"}),u("");let t=new EventSource(`/api/auth/login/${encodeURIComponent(e.id)}`);x.current=t,t.onmessage=e=>{let o;try{o=JSON.parse(e.data)}catch{return}"auth"===o.type?(c({phase:"auth",url:o.url,instructions:o.instructions??null,token:o.token}),l(o.url)&&window.open(o.url,"_blank","noopener,noreferrer")):"device_code"===o.type?(c({phase:"device_code",userCode:o.userCode,verificationUri:o.verificationUri,intervalSeconds:o.intervalSeconds??null,expiresInSeconds:o.expiresInSeconds??null}),l(o.verificationUri)&&window.open(o.verificationUri,"_blank","noopener,noreferrer")):"prompt_request"===o.type?c({phase:"prompt",message:o.message,placeholder:o.placeholder??null,token:o.token}):"select_request"===o.type?c({phase:"select",message:o.message,options:o.options??[],token:o.token}):"progress"===o.type?c({phase:"progress",message:o.message}):"success"===o.type?(t.close(),c({phase:"success"}),r()):"error"===o.type?(t.close(),c({phase:"error",message:o.message})):"cancelled"===o.type&&(t.close(),c({phase:"idle"}))},t.onerror=()=>{t.close(),c(e=>"success"===e.phase?e:{phase:"error",message:o("modelsConfig.connectionLost")})}},[e.id,r,o]),v=(0,n.useCallback)(async()=>{try{let o=await fetch(`/api/auth/logout/${encodeURIComponent(e.id)}`,{method:"POST"}),t=await o.json().catch(()=>({}));if(!o.ok||t.error)return void c({phase:"error",message:t.error||t.code?(0,d.K)(t):`HTTP ${o.status}`});c({phase:"idle"}),r()}catch(e){c({phase:"error",message:e instanceof Error?e.message:String(e)})}},[e.id,r]),f=(0,n.useCallback)(async(r,t)=>{if(t.trim()){c({phase:"progress",message:o("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:t.trim()})});if(!n.ok){let e=await n.json().catch(()=>({}));c({phase:"error",message:e.error||e.code?(0,d.K)(e):o("modelsConfig.serverError",{status:n.status})});return}u("")}catch(e){c({phase:"error",message:e instanceof Error?e.message:o("modelsConfig.networkError")})}}},[e.id,o]),m=(0,n.useCallback)(async(r,t)=>{c({phase:"progress",message:o("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:t})});if(!n.ok){let e=await n.json().catch(()=>({}));c({phase:"error",message:e.error||e.code?(0,d.K)(e):o("modelsConfig.serverError",{status:n.status})})}}catch(e){c({phase:"error",message:e instanceof Error?e.message:o("modelsConfig.networkError")})}},[e.id,o]),b="connecting"===s.phase||"progress"===s.phase||"auth"===s.phase||"device_code"===s.phase||"prompt"===s.phase||"select"===s.phase;return(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,t.jsx)(eh,{children:o("modelsConfig.subscription")}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,t.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.loggedIn?"var(--status-success)":"var(--border)",display:"inline-block"}}),(0,t.jsx)("span",{style:{fontSize:11,color:e.loggedIn?"var(--status-success)":"var(--text-dim)"},children:e.loggedIn?o("modelsConfig.connected"):o("modelsConfig.notConnected")})]})]}),(0,t.jsxs)("div",{style:{minHeight:48},children:["idle"===s.phase&&(0,t.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.loggedIn?o("modelsConfig.alreadyConnected"):o("modelsConfig.connectAccount",{name:e.name})}),"connecting"===s.phase&&(0,t.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:o("modelsConfig.openingBrowser")}),"select"===s.phase&&(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,t.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:s.message}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:s.options.map(e=>(0,t.jsx)("button",{onClick:()=>m(s.token,e.id),style:{padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left"},children:e.label},e.id))})]}),("auth"===s.phase||"prompt"===s.phase)&&(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,t.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"auth"===s.phase?o("modelsConfig.completeSignIn"):s.message}),"auth"===s.phase&&(0,t.jsx)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:(0,t.jsx)("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:o("modelsConfig.browserNotOpened")})}),(0,t.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,t.jsx)("input",{ref:g,value:p,onChange:e=>u(e.target.value),onKeyDown:e=>{"Enter"===e.key&&f(s.token,p)},placeholder:"auth"===s.phase?"http://localhost:1455/auth/callback?code=…":s.placeholder??o("modelsConfig.enterValue"),style:{flex:1,padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",fontFamily:"var(--font-mono)",boxSizing:"border-box"}}),(0,t.jsx)("button",{onClick:()=>f(s.token,p),disabled:!p.trim(),style:{padding:"6px 12px",background:p.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:p.trim()?"var(--on-accent)":"var(--text-dim)",cursor:p.trim()?"pointer":"not-allowed",fontSize:12,fontWeight:600,flexShrink:0},children:o("modelsConfig.submit")})]})]}),"device_code"===s.phase&&(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,t.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:o("modelsConfig.deviceCodeInstructions")}),(0,t.jsx)("div",{style:{padding:"8px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:16,fontWeight:700,fontFamily:"var(--font-mono)",letterSpacing:0},children:s.userCode}),(0,t.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,t.jsx)("a",{href:s.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:s.verificationUri}),s.expiresInSeconds?" "+i("modelsConfig.expiresInMinutes",Math.ceil(s.expiresInSeconds/60)):""]})]}),"progress"===s.phase&&(0,t.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:s.message}),"success"===s.phase&&(0,t.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--status-success)"},children:o("modelsConfig.connectedSuccessfully")}),"error"===s.phase&&(0,t.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--status-error)"},children:s.message})]}),(0,t.jsx)("div",{style:{display:"flex",gap:8},children:b?(0,t.jsx)("button",{onClick:()=>{x.current?.close(),c({phase:"idle"})},style:{padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:o("modelsConfig.cancel")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:h,style:{padding:"5px 14px",background:"var(--accent)",border:"none",borderRadius:5,color:"var(--on-accent)",cursor:"pointer",fontSize:12,fontWeight:600},children:e.loggedIn?o("modelsConfig.relogin"):o("modelsConfig.login")}),e.loggedIn&&(0,t.jsx)("button",{onClick:v,style:{padding:"5px 12px",background:"none",border:"1px solid color-mix(in srgb, var(--status-error) 30%, transparent)",borderRadius:5,color:"var(--status-error)",cursor:"pointer",fontSize:12},children:o("modelsConfig.disconnect")})]})})]})}function eT({provider:e}){let{t:r,tn:o}=(0,a.s9)();return(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,t.jsx)(eh,{children:r("modelsConfig.apiKey")}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,t.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.configured?"var(--status-success)":"var(--border)",display:"inline-block"}}),(0,t.jsx)("span",{style:{fontSize:11,color:e.configured?"var(--status-success)":"var(--text-dim)"},children:r(e.configured?"modelsConfig.configured":"modelsConfig.notConfigured")})]})]}),(0,t.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.configured?o("modelsConfig.providerConfigured",e.modelCount,{name:e.displayName}):r("modelsConfig.providerNotConfigured",{name:e.displayName})}),(0,t.jsx)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:(0,t.jsx)(eg,{text:r("modelsConfig.apiKeyManageHint")})})]})}function eR({id:e,size:r}){let o=ea[e];if(!o){let o=e.split(/[-_]/).filter(Boolean).slice(0,2).map(e=>e[0]).join("").toUpperCase()||"?";return(0,t.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:o})}return o.hasColor?(0,t.jsx)(o.Icon,{size:r}):(0,t.jsx)(o.Icon,{size:r,style:{color:"var(--text-muted)"}})}function eA({oauthProviders:e,apiKeyProviders:r,onSelectOAuth:o,onSelectApiKey:i,onAddCustom:l,onClose:s}){let{t:d,tn:p}=(0,a.s9)(),[u,x]=(0,n.useState)(""),g=(0,n.useRef)(null),h=u.trim().toLowerCase(),v=e.filter(e=>!e.loggedIn&&(!h||e.name.toLowerCase().includes(h))),f=r.filter(e=>!e.configured&&(!h||e.displayName.toLowerCase().includes(h)||e.id.toLowerCase().includes(h))),m=!h||"custom".includes(h)||"openai-compatible".includes(h)||"anthropic-compatible".includes(h),b=v.length+f.length+ +!!m,y={display:"flex",flexDirection:"row",alignItems:"center",gap:8,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,t.jsx)(c.lG,{open:!0,onOpenChange:e=>{e||s()},children:(0,t.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,t.jsx)(c.L3,{style:{margin:"14px 18px 8px",fontSize:18},children:d("modelsConfig.addProvider")}),(0,t.jsx)("div",{style:{padding:"8px 14px 12px",flexShrink:0},children:(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)"},children:(0,t.jsx)("input",{ref:g,value:u,onChange:e=>x(e.target.value),placeholder:d("modelsConfig.searchProviders"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box",minWidth:0}})})}),(0,t.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"4px 14px 14px"},children:0===b?(0,t.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:d("modelsConfig.noProvidersMatch")}):(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(240px, 100%), 1fr))",gap:8},children:[m&&(0,t.jsx)("div",{style:{gridColumn:"1 / -1",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:d("modelsConfig.customSection")}),m&&(0,t.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,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d("modelsConfig.openaiAnthropicCompatible")}),(0,t.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:d("modelsConfig.customEndpointFormat")})]}),(0,t.jsx)("span",{style:{width:26,height:26,borderRadius:5,background:"var(--bg-hover)",border:"1px dashed var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,t.jsx)(j.A,{size:13,"aria-hidden":"true"})})]}),v.length>0&&(0,t.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*!!m,fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:d("modelsConfig.subscriptions")}),v.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{o(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,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,t.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"OAuth"})]}),(0,t.jsx)(eR,{id:e.id,size:28})]},e.id)),f.length>0&&(0,t.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*(v.length>0),fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:d("modelsConfig.apiKey")}),f.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{i(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,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName}),(0,t.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:p("modelsConfig.modelCount",e.modelCount)})]}),(0,t.jsx)(eR,{id:e.id,size:28})]},e.id))]})})]})})}function eP({onClose:e,onSelectTab:r,onSaved:o,embedded:l=!1}){let{t:p}=(0,a.s9)(),u=(0,i.a)(),[x,g]=(0,n.useState)({providers:{}}),[h,v]=(0,n.useState)(!0),[f,b]=(0,n.useState)(!1),[y,T]=(0,n.useState)(null),[A,P]=(0,n.useState)(!1),[M,O]=(0,n.useState)(null),[W,$]=(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),[Y,V]=(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)(()=>{v(!0),fetch("/api/models-config").then(e=>e.json()).then(e=>{if(e.parseError){G({message:e.parseError,path:e.path}),g({providers:{}}),O(null);return}G(null);let r=e.providers?e:{...e,providers:{}};g(r);let o=Object.keys(r.providers??{});o.length>0&&O({type:"provider",name:o[0]})}).catch(()=>g({providers:{}})).finally(()=>v(!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 eo=(0,n.useCallback)((e,r)=>{_(o=>{let t=new Set(o??L.map(e=>`${e.provider}:${e.id}`)),n=`${e.provider}:${e.id}`;return r?t.add(n):t.delete(n),localStorage.setItem(ec,JSON.stringify([...t])),window.dispatchEvent(new Event("omp-composer-models-change")),t})},[L]),et=(0,n.useCallback)((e,r)=>{_(o=>{let t=new Set(o??L.map(e=>`${e.provider}:${e.id}`));for(let o of L){if(o.provider!==e)continue;let n=`${o.provider}:${o.id}`;r?t.add(n):t.delete(n)}return localStorage.setItem(ec,JSON.stringify([...t])),window.dispatchEvent(new Event("omp-composer-models-change")),t})},[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})}),o=await r.json();if(!r.ok||o.error)throw Error(o.error||`HTTP ${r.status}`);await ee()},[ee]),ei=(0,n.useCallback)(()=>{let e="new-provider",r=1;for(;x.providers?.[e];)e=`new-provider-${r++}`;g(r=>({...r,providers:{...r.providers??{},[e]:{api:"openai-completions"}}})),O({type:"provider",name:e})},[x.providers]),ea=(0,n.useCallback)((e,r)=>{g(o=>({...o,providers:{...o.providers??{},[e]:r}}))},[]),ep=(0,n.useCallback)((e,r)=>{g(o=>{let t=Object.entries(o.providers??{}),n=t.findIndex(([r])=>r===e);return -1===n?o:(t[n]=[r,t[n][1]],{...o,providers:Object.fromEntries(t)})}),O(o=>o?"provider"===o.type&&o.name===e?{type:"provider",name:r}:"model"===o.type&&o.providerName===e?{...o,providerName:r}:o:o)},[]),ex=(0,n.useCallback)(e=>{g(r=>{let o={...r.providers??{}};return delete o[e],{...r,providers:o}}),g(e=>{let r=Object.keys(e.providers??{});return O(r.length>0?{type:"provider",name:r[0]}:null),e})},[]),eg=(0,n.useCallback)(e=>{g(r=>{let o=r.providers?.[e]??{},t=[...o.models??[],{id:""}];return{...r,providers:{...r.providers??{},[e]:{...o,models:t}}}}),g(r=>{let o=(r.providers?.[e]?.models?.length??1)-1;return O({type:"model",providerName:e,index:o}),r})},[]),eb=(0,n.useCallback)((e,r,o)=>{g(t=>{let n=t.providers?.[e]??{},i=[...n.models??[],r],a={...n,models:i};return o&&!n.baseUrl&&(a.baseUrl=o),{...t,providers:{...t.providers??{},[e]:a}}}),g(r=>{let o=(r.providers?.[e]?.models?.length??1)-1;return O({type:"model",providerName:e,index:o}),r}),V(null)},[]),ey=(0,n.useCallback)((e,r,o)=>{g(t=>{let n=t.providers?.[e]??{},i=[...n.models??[]];return i[r]=o,{...t,providers:{...t.providers??{},[e]:{...n,models:i}}}})},[]),eC=(0,n.useCallback)((e,r)=>{g(o=>{let t=o.providers?.[e]??{},n=[...t.models??[]];return n.splice(r,1),{...o,providers:{...o.providers??{},[e]:{...t,models:n.length?n:void 0}}}}),O({type:"provider",name:e})},[]),ek=(0,n.useCallback)(async()=>{if(!X){b(!0),T(null),P(!1);try{let e=function(e){if(!e.providers)return e;let r=!1,o={};for(let[t,n]of Object.entries(e.providers)){let e=n.models;if(!e?.some(s)){o[t]=n;continue}r=!0;let i=e.filter(e=>!s(e));o[t]={...n,models:i.length>0?i:void 0}}return r?{...e,providers:o}:e}(x),r=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),t=await r.json();if(!r.ok||t.error){let e=t.error||t.code?(0,d.K)(t):`HTTP ${r.status}`;T(e),z.oR.error(p("modelsConfig.saveErrorTitle"),e),"models_config_unparseable"===t.code&&G({message:t.error??(0,d.K)(t)})}else er(),await ee(),Q(),o?.(),P(!0),setTimeout(()=>P(!1),2e3),z.oR.success(p("modelsConfig.saveSuccessTitle"))}catch(r){let e=r instanceof Error?r.message:String(r);T(e),z.oR.error(p("modelsConfig.saveErrorTitle"),e)}finally{b(!1)}}},[x,Q,er,ee,o,X,p]),eS=Object.entries(x.providers??{}),ew=W.filter(e=>e.loggedIn),eM=E.filter(e=>e.configured),eO=L.reduce((e,r)=>((e[r.provider]??=[]).push(r),e),{}),eW=(()=>{if(!M)return null;if("oauth"===M.type){let e=W.find(e=>e.id===M.providerId);return e?(0,t.jsx)(eI,{provider:e,onRefresh:()=>{Z(),Q(),ee()}},e.id):null}if("apikey"===M.type){let e=E.find(e=>e.id===M.providerId);return e?(0,t.jsx)(eT,{provider:e},e.id):null}if("roles"===M.type)return(0,t.jsx)(eu,{models:L});if("registry"===M.type)return(0,t.jsx)(ed,{models:L,connectedProviders:H,onChanged:ee});if("fallbacks"===M.type)return(0,t.jsx)(es,{models:L});if("picker"===M.type)return(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(eh,{children:"Composer Model Picker"}),(0,t.jsx)("p",{style:{margin:"4px 0 0",color:"var(--text-muted)",fontSize:12,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,t.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,t.jsx)(m.A,{size:14,"aria-hidden":"true"})})]}),F?(0,t.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12},children:"Loading OMP runtime models..."}):Object.entries(eO).map(([e,r])=>{let o=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,t.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",overflow:"hidden"},children:[(0,t.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,padding:"9px 11px",background:"var(--bg-panel)",color:"var(--text)",fontSize:12,fontWeight:600},children:[(0,t.jsx)("input",{type:"checkbox",checked:o,ref:e=>{e&&(e.indeterminate=n&&!o)},onChange:r=>et(e,r.target.checked),"aria-label":`Show all ${e} models in composer`}),(0,t.jsx)(eR,{id:e,size:15}),(0,t.jsx)("span",{children:e}),(0,t.jsxs)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:11,fontWeight:400},children:[r.length," model",1===r.length?"":"s"]})]}),(0,t.jsx)("div",{style:{padding:"4px 0"},children:r.map(e=>(0,t.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:9,padding:"7px 11px",color:"var(--text-muted)",cursor:"pointer"},children:[(0,t.jsx)("input",{type:"checkbox",checked:null===K||K.has(`${e.provider}:${e.id}`),onChange:r=>eo(e,r.target.checked),"aria-label":`Show ${e.provider}/${e.id} in composer`}),(0,t.jsx)("span",{style:{minWidth:0,flex:1,fontSize:12},children:e.name||e.id}),(0,t.jsxs)("code",{style:{color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},children:[e.provider,"/",e.id]})]},`${e.provider}:${e.id}`))})]},e)}),!F&&0===L.length&&(0,t.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12},children:"OMP did not report any configured models."}),H.filter(e=>!eO[e.id]).map(e=>(0,t.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-card)",padding:12},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,color:"var(--text)",fontSize:12,fontWeight:600},children:[(0,t.jsx)(eR,{id:e.id,size:15}),e.name]}),(0,t.jsx)("p",{style:{margin:"6px 0 0",color:"var(--text-muted)",fontSize:12,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,t.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:12},children:"Enable in OMP"})]},e.id))]});if("provider"===M.type){let e=x.providers?.[M.name];return e?(0,t.jsx)(ej,{name:M.name,provider:e,onChange:e=>ea(M.name,e),onRename:e=>ep(M.name,e),onDelete:()=>ex(M.name)},M.name):null}let e=x.providers?.[M.providerName],r=e?.models?.[M.index];return r?(0,t.jsx)(ez,{providerName:M.providerName,provider:e,model:r,onChange:e=>ey(M.providerName,M.index,e),onDelete:()=>eC(M.providerName,M.index)},`${M.providerName}-${M.index}`):null})();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(el,{embedded:l,isMobile:u,onClose:e,children:[!l&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,t.jsx)(c.L3,{style:{fontSize:16,margin:0},children:p("modelsConfig.title")}),(0,t.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:"~/.omp/agent/models.yml"})]}),(0,t.jsx)("button",{onClick:e,"aria-label":p("modelsConfig.close"),title:p("modelsConfig.close"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),!l&&r&&(0,t.jsx)(I.mm,{active:"models",onSelect:r}),X?(0,t.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:24,display:"flex",flexDirection:"column",gap:12},children:[(0,t.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--status-error)"},children:p("modelsConfig.parseErrorTitle")}),(0,t.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:p("modelsConfig.parseErrorBody")}),X.path&&(0,t.jsx)("code",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:X.path}),(0,t.jsx)("pre",{style:{margin:0,padding:"10px 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",fontSize:11,fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap",wordBreak:"break-word",overflowX:"auto"},children:X.message}),(0,t.jsx)("button",{onClick:er,disabled:h,style:{alignSelf:"flex-start",padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:h?"default":"pointer",fontSize:12},children:h?p("modelsConfig.loading"):p("modelsConfig.reload")})]}):(0,t.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:u?"column":"row",overflow:"hidden"},children:[(0,t.jsxs)("div",{style:{width:u?"100%":235,maxHeight:u?"40vh":void 0,borderRight:u?"none":"1px solid var(--border)",borderBottom:u?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,t.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:[(0,t.jsx)(ev,{icon:C.A,label:"Native OMP registry",selected:M?.type==="registry",onClick:()=>O({type:"registry"})}),(0,t.jsx)(ev,{icon:k.A,label:"Retry & fallback",selected:M?.type==="fallbacks",onClick:()=>O({type:"fallbacks"})}),(0,t.jsx)(ev,{icon:S.A,label:"Composer model picker",selected:M?.type==="picker",onClick:()=>O({type:"picker"})}),(0,t.jsx)(ev,{icon:w.A,label:"OMP model roles",selected:M?.type==="roles",onClick:()=>O({type:"roles"})}),(ew.length>0||eM.length>0)&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"14px 10px 6px",color:"var(--text-dim)",fontSize:10,fontWeight:700,letterSpacing:"0.06em",textTransform:"uppercase"},children:[(0,t.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=M?.type==="oauth"&&M.providerId===e.id;return(0,t.jsxs)("button",{type:"button",onClick:()=>O({type:"oauth",providerId:e.id}),style:{display:"flex",alignItems:"center",gap:8,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},...ef(r),children:[(0,t.jsx)(eR,{id:e.id,size:16}),(0,t.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,t.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)}),eM.map(e=>{let r=M?.type==="apikey"&&M.providerId===e.id;return(0,t.jsxs)("button",{type:"button",onClick:()=>O({type:"apikey",providerId:e.id}),style:{display:"flex",alignItems:"center",gap:8,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},...ef(r),children:[(0,t.jsx)(eR,{id:e.id,size:16}),(0,t.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName}),(0,t.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||eM.length>0)&&eS.length>0&&(0,t.jsx)("div",{style:{margin:"8px 10px",borderTop:"1px solid var(--border)"}}),eS.length>0&&(0,t.jsx)("div",{style:{padding:"10px 10px 4px",fontSize:10,fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:"Configured Providers"}),h?(0,t.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:p("modelsConfig.loading")}):eS.map(([e,r])=>{let o=M?.type==="provider"&&M.name===e,n=r.models??[];return(0,t.jsxs)("div",{style:{marginBottom:6,padding:"4px 6px",borderRadius:"var(--radius-control)",background:o?"var(--bg-panel)":"transparent",border:o?"1px solid var(--border)":"1px solid transparent"},children:[(0,t.jsxs)("button",{type:"button",onClick:()=>O({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:o?"var(--bg-selected)":"none"},...ef(o),children:[(0,t.jsx)(eR,{id:e,size:15}),(0,t.jsx)("span",{style:{fontSize:12,fontWeight:o?600:500,color:"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),(0,t.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",padding:"1px 5px",borderRadius:4,background:"var(--bg-subtle)"},children:[n.length," model",1===n.length?"":"s"]})]}),n.map((r,o)=>{let n=M?.type==="model"&&M.providerName===e&&M.index===o;return(0,t.jsxs)("button",{type:"button",onClick:()=>O({type:"model",providerName:e,index:o}),style:{display:"flex",alignItems:"center",gap:6,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},...ef(n),children:[(0,t.jsx)("span",{style:{fontSize:11,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,t.jsx)("span",{style:{fontSize:9,padding:"1px 4px",background:"color-mix(in srgb, var(--accent) 12%, transparent)",color:"var(--accent)",borderRadius:3,flexShrink:0},children:"T"})]},o)}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 8px 4px 10px",marginTop:2,flexWrap:"nowrap"},children:[(0,t.jsxs)("button",{type:"button",onClick:r=>{r.stopPropagation(),eg(e)},style:{display:"inline-flex",alignItems:"center",gap:4,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:11,whiteSpace:"nowrap",flexShrink:0},...em,children:[(0,t.jsx)(j.A,{size:11,"aria-hidden":"true"}),(0,t.jsx)("span",{children:p("modelsConfig.addModel")})]}),(0,t.jsxs)("button",{type:"button",onClick:r=>{r.stopPropagation(),V(e)},style:{display:"inline-flex",alignItems:"center",gap:4,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:11,whiteSpace:"nowrap",flexShrink:0},...em,children:[(0,t.jsx)(S.A,{size:11,"aria-hidden":"true"}),(0,t.jsx)("span",{children:p("modelsConfig.addFromCatalog")})]})]})]},e)})]}),(0,t.jsx)("div",{style:{borderTop:"1px solid var(--border)",padding:"8px 6px"},children:(0,t.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:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},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,t.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:h?(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,t.jsx)("div",{className:"skeleton",style:{height:18,width:"40%"}}),(0,t.jsx)("div",{className:"skeleton",style:{height:12,width:"70%"}}),(0,t.jsx)("div",{className:"skeleton",style:{height:12,width:"55%"}}),(0,t.jsx)("div",{className:"skeleton",style:{height:90,width:"100%"}})]}):eW??(0,t.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:p("modelsConfig.selectProviderOrModel")})})]}),(0,t.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,t.jsx)("span",{style:{fontSize:12,color:"var(--status-error)",flex:1},children:y}),(0,t.jsx)("button",{onClick:e,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:p("modelsConfig.cancel")}),(0,t.jsxs)("button",{onClick:ek,disabled:f||A||null!==X,style:{position:"relative",padding:"6px 16px",minWidth:92,background:A?"var(--status-success)":f||X?"var(--bg-panel)":"var(--accent)",border:"none",borderRadius:6,color:A?"var(--on-accent)":f||X?"var(--text-muted)":"var(--on-accent)",cursor:f||A||X?"default":"pointer",fontSize:13,fontWeight:600,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,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,t.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,t.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,t.jsx)("span",{children:A?p("modelsConfig.saved"):f?p("modelsConfig.saving"):p("modelsConfig.save")})]})]})]}),J&&(0,t.jsx)(eA,{oauthProviders:W,apiKeyProviders:E,onSelectOAuth:e=>O({type:"oauth",providerId:e}),onSelectApiKey:e=>O({type:"apikey",providerId:e}),onAddCustom:ei,onClose:()=>q(!1)}),null!==Y&&(0,t.jsx)(R,{open:!0,providerName:Y,providerBaseUrl:x.providers?.[Y]?.baseUrl??"",existingIds:new Set((x.providers?.[Y]?.models??[]).map(e=>e.id)),onAdd:(e,r)=>eb(Y,e,r),onClose:()=>V(null)})]})}},69090:(e,r,o)=>{o.d(r,{D0:()=>d,JT:()=>b,Jl:()=>m,L4:()=>v,M_:()=>p,TM:()=>y,XZ:()=>h,ks:()=>g,l6:()=>f});var t=o(95155),n=o(12115),i=o(35484),a=o(89034),l=o(25182),s=o(30808);function d({label:e,hint:r,error:o,required:n,children:i,style:a}){return(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,minWidth:0,...a},children:[(0,t.jsxs)("label",{style:{fontSize:11,fontWeight:500,color:o?"var(--accent)":"var(--text-muted)",letterSpacing:"0.01em",display:"flex",alignItems:"center",gap:4},children:[e,n&&(0,t.jsx)("span",{style:{color:"var(--accent)"},children:"*"})]}),i,o?(0,t.jsx)(c,{children:o}):r?(0,t.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",lineHeight:1.4},children:r}):null]})}function c({children:e}){return(0,t.jsxs)("span",{role:"alert",style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:12,color:"var(--accent)",lineHeight:1.3,marginTop:1},children:[(0,t.jsx)(i.A,{size:12,"aria-hidden":"true"}),e]})}function p({label:e,children:r,style:o}){return(0,t.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:10,padding:"12px 14px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",boxShadow:"var(--shadow-card)",minWidth:0,...o},children:[(0,t.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.06em"},children:e}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10,minWidth:0},children:r})]})}function u({invalid:e}){return{padding:"6px 9px",background:"var(--bg)",border:`1px solid ${e?"var(--accent)":"var(--border)"}`,borderRadius:"var(--radius-control)",color:"var(--text)",fontSize:12,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 x(e,r){return e?{borderColor:"var(--accent)",boxShadow:"var(--focus-ring)"}:{}}function g({value:e,onChange:r,placeholder:o,mono:i,invalid:a,error:l,onBlurValidate:s,disabled:d,onKeyDown:c,autoComplete:p,spellCheck:h,id:v}){let[f,m]=(0,n.useState)(!1),b=!!(a||l);return(0,t.jsx)("input",{id:v,value:e,onChange:e=>r(e.target.value),placeholder:o,disabled:d,onKeyDown:c,autoComplete:p,spellCheck:h,"aria-invalid":b||void 0,onFocus:()=>m(!0),onBlur:()=>{m(!1),s?.()},style:{...u({invalid:b}),...x(f,b),fontFamily:i?"var(--font-mono)":"inherit",opacity:d?.6:1}})}function h({value:e,onChange:r,placeholder:o,invalid:i,error:a,onBlurValidate:l,disabled:s,id:d}){let[c,p]=(0,n.useState)(!1),g=!!(i||a);return(0,t.jsx)("input",{id:d,type:"number",value:e,onChange:e=>r(e.target.value),placeholder:o,disabled:s,"aria-invalid":g||void 0,onFocus:()=>p(!0),onBlur:()=>{p(!1),l?.()},style:{...u({invalid:g}),...x(c,g),opacity:s?.6:1}})}function v({value:e,onChange:r,placeholder:o,invalid:i,error:s,onBlurValidate:d,disabled:c,showLabel:p,hideLabel:g,id:h}){let[f,m]=(0,n.useState)(!1),[b,y]=(0,n.useState)(!1),j=!!(i||s);return(0,n.useEffect)(()=>{e||m(!1)},[e]),(0,t.jsxs)("div",{style:{position:"relative",width:"100%"},children:[(0,t.jsx)("input",{id:h,type:f?"text":"password",value:e,onChange:e=>r(e.target.value),placeholder:o,disabled:c,autoComplete:"off",spellCheck:!1,"aria-invalid":j||void 0,onFocus:()=>y(!0),onBlur:()=>{y(!1),d?.()},style:{...u({invalid:j}),...x(b,j),paddingRight:34,fontFamily:"var(--font-mono)",opacity:c?.6:1}}),(0,t.jsx)("button",{type:"button",onClick:()=>m(e=>!e),"aria-label":f?g:p,title:f?g:p,style:{position:"absolute",right:5,top:"50%",transform:"translateY(-50%)",width:24,height:24,padding:0,border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:4},children:f?(0,t.jsx)(a.A,{size:15,"aria-hidden":"true"}):(0,t.jsx)(l.A,{size:15,"aria-hidden":"true"})})]})}function f({value:e,onChange:r,options:o,required:i,placeholder:a,invalid:l,error:s,disabled:d,id:c}){let[p,g]=(0,n.useState)(!1),h=!!(l||s);return(0,t.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[(0,t.jsxs)("select",{id:c,value:e,onChange:e=>r(e.target.value),disabled:d,"aria-invalid":h||void 0,onFocus:()=>g(!0),onBlur:()=>g(!1),style:{...u({invalid:h}),...x(p,h),color:e?"var(--text)":"var(--text-dim)",appearance:"none",width:"100%",paddingRight:24,opacity:d?.6:1},children:[!i&&(0,t.jsx)("option",{value:"",children:a??""}),o.map(e=>(0,t.jsx)("option",{value:e,children:e},e))]}),(0,t.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:8,color:"var(--text-dim)",pointerEvents:"none"},children:(0,t.jsx)("polyline",{points:"6 9 12 15 18 9"})})]})}function m({label:e,checked:r,onChange:o,disabled:n}){return(0,t.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:6,cursor:n?"not-allowed":"pointer",fontSize:12,color:n?"var(--text-dim)":"var(--text-muted)",opacity:n?.7:1},children:[(0,t.jsx)("input",{type:"checkbox",checked:r,disabled:n,onChange:e=>o(e.target.checked),style:{width:13,height:13,accentColor:"var(--accent)",cursor:n?"not-allowed":"pointer"}}),e]})}function b(e){let[r,o]=(0,n.useState)(null),t=(0,n.useRef)(e);t.current=e;let i=(0,n.useCallback)(()=>{o(t.current())},[]);return{error:r,onBlur:i,onChange:(0,n.useCallback)(()=>{o(e=>null)},[]),onSubmit:(0,n.useCallback)(()=>{let e=t.current();return o(e),e},[])}}function y({open:e,onOpenChange:r,title:o,description:n,confirmLabel:i,cancelLabel:a,danger:l,busy:d,onConfirm:c}){return(0,t.jsx)(s.lG,{open:e,onOpenChange:r,children:(0,t.jsxs)(s.Cf,{ariaLabel:"string"==typeof o?o:void 0,style:{width:420,maxWidth:"min(92vw, 420px)",padding:22},children:[(0,t.jsx)(s.L3,{children:o}),(0,t.jsx)("div",{style:{height:8}}),n&&(0,t.jsx)("p",{style:{margin:"0 0 18px",fontSize:13,lineHeight:1.55,color:"var(--text-muted)"},children:n}),(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8},children:[(0,t.jsx)("button",{type:"button",onClick:()=>r(!1),style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:a??"Cancel"}),(0,t.jsx)("button",{type:"button",disabled:d,onClick:c,style:{padding:"6px 14px",background:"var(--accent-strong)",border:"none",borderRadius:"var(--radius-control)",color:"var(--on-accent)",cursor:d?"wait":"pointer",fontSize:13,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:i})]})]})})}}}]);
|