flowent 0.0.1 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/README.md +19 -8
  2. package/backend/.python-version +1 -0
  3. package/backend/pyproject.toml +57 -0
  4. package/backend/src/flowent/__init__.py +3 -0
  5. package/backend/src/flowent/__pycache__/__init__.cpython-313.pyc +0 -0
  6. package/backend/src/flowent/__pycache__/_version.cpython-313.pyc +0 -0
  7. package/backend/src/flowent/__pycache__/access.cpython-313.pyc +0 -0
  8. package/backend/src/flowent/__pycache__/agent.cpython-313.pyc +0 -0
  9. package/backend/src/flowent/__pycache__/assistant_commands.cpython-313.pyc +0 -0
  10. package/backend/src/flowent/__pycache__/cli.cpython-313.pyc +0 -0
  11. package/backend/src/flowent/__pycache__/config.cpython-313.pyc +0 -0
  12. package/backend/src/flowent/__pycache__/events.cpython-313.pyc +0 -0
  13. package/backend/src/flowent/__pycache__/graph_runtime.cpython-313.pyc +0 -0
  14. package/backend/src/flowent/__pycache__/graph_service.cpython-313.pyc +0 -0
  15. package/backend/src/flowent/__pycache__/image_assets.cpython-313.pyc +0 -0
  16. package/backend/src/flowent/__pycache__/logging.cpython-313.pyc +0 -0
  17. package/backend/src/flowent/__pycache__/main.cpython-313.pyc +0 -0
  18. package/backend/src/flowent/__pycache__/mcp_service.cpython-313.pyc +0 -0
  19. package/backend/src/flowent/__pycache__/model_metadata.cpython-313.pyc +0 -0
  20. package/backend/src/flowent/__pycache__/network.cpython-313.pyc +0 -0
  21. package/backend/src/flowent/__pycache__/registry.cpython-313.pyc +0 -0
  22. package/backend/src/flowent/__pycache__/role_management.cpython-313.pyc +0 -0
  23. package/backend/src/flowent/__pycache__/runtime.cpython-313.pyc +0 -0
  24. package/backend/src/flowent/__pycache__/sandbox.cpython-313.pyc +0 -0
  25. package/backend/src/flowent/__pycache__/security.cpython-313.pyc +0 -0
  26. package/backend/src/flowent/__pycache__/settings.cpython-313.pyc +0 -0
  27. package/backend/src/flowent/__pycache__/settings_management.cpython-313.pyc +0 -0
  28. package/backend/src/flowent/__pycache__/state_db.cpython-313.pyc +0 -0
  29. package/backend/src/flowent/__pycache__/stats_service.cpython-313.pyc +0 -0
  30. package/backend/src/flowent/__pycache__/workspace_store.cpython-313.pyc +0 -0
  31. package/backend/src/flowent/_version.py +7 -0
  32. package/backend/src/flowent/access.py +247 -0
  33. package/backend/src/flowent/agent.py +2808 -0
  34. package/backend/src/flowent/assistant_commands.py +106 -0
  35. package/backend/src/flowent/channels/__init__.py +3 -0
  36. package/backend/src/flowent/channels/__pycache__/__init__.cpython-313.pyc +0 -0
  37. package/backend/src/flowent/channels/__pycache__/telegram.cpython-313.pyc +0 -0
  38. package/backend/src/flowent/channels/telegram.py +615 -0
  39. package/backend/src/flowent/cli.py +85 -0
  40. package/backend/src/flowent/config.py +14 -0
  41. package/backend/src/flowent/dev.py +3 -0
  42. package/backend/src/flowent/events.py +157 -0
  43. package/backend/src/flowent/graph_runtime.py +60 -0
  44. package/backend/src/flowent/graph_service.py +1346 -0
  45. package/backend/src/flowent/image_assets.py +356 -0
  46. package/backend/src/flowent/logging.py +155 -0
  47. package/backend/src/flowent/main.py +124 -0
  48. package/backend/src/flowent/mcp_service.py +1904 -0
  49. package/backend/src/flowent/model_metadata.py +98 -0
  50. package/backend/src/flowent/models/__init__.py +121 -0
  51. package/backend/src/flowent/models/__pycache__/__init__.cpython-313.pyc +0 -0
  52. package/backend/src/flowent/models/__pycache__/agent.cpython-313.pyc +0 -0
  53. package/backend/src/flowent/models/__pycache__/base.cpython-313.pyc +0 -0
  54. package/backend/src/flowent/models/__pycache__/blueprint.cpython-313.pyc +0 -0
  55. package/backend/src/flowent/models/__pycache__/content.cpython-313.pyc +0 -0
  56. package/backend/src/flowent/models/__pycache__/delta.cpython-313.pyc +0 -0
  57. package/backend/src/flowent/models/__pycache__/event.cpython-313.pyc +0 -0
  58. package/backend/src/flowent/models/__pycache__/graph.cpython-313.pyc +0 -0
  59. package/backend/src/flowent/models/__pycache__/history.cpython-313.pyc +0 -0
  60. package/backend/src/flowent/models/__pycache__/llm.cpython-313.pyc +0 -0
  61. package/backend/src/flowent/models/__pycache__/message.cpython-313.pyc +0 -0
  62. package/backend/src/flowent/models/__pycache__/tab.cpython-313.pyc +0 -0
  63. package/backend/src/flowent/models/__pycache__/todo.cpython-313.pyc +0 -0
  64. package/backend/src/flowent/models/agent.py +33 -0
  65. package/backend/src/flowent/models/base.py +24 -0
  66. package/backend/src/flowent/models/blueprint.py +176 -0
  67. package/backend/src/flowent/models/content.py +164 -0
  68. package/backend/src/flowent/models/delta.py +44 -0
  69. package/backend/src/flowent/models/event.py +51 -0
  70. package/backend/src/flowent/models/graph.py +437 -0
  71. package/backend/src/flowent/models/history.py +214 -0
  72. package/backend/src/flowent/models/llm.py +61 -0
  73. package/backend/src/flowent/models/message.py +27 -0
  74. package/backend/src/flowent/models/tab.py +48 -0
  75. package/backend/src/flowent/models/todo.py +10 -0
  76. package/backend/src/flowent/network.py +146 -0
  77. package/backend/src/flowent/prompts/__init__.py +67 -0
  78. package/backend/src/flowent/prompts/__pycache__/__init__.cpython-313.pyc +0 -0
  79. package/backend/src/flowent/prompts/__pycache__/common.cpython-313.pyc +0 -0
  80. package/backend/src/flowent/prompts/__pycache__/steward.cpython-313.pyc +0 -0
  81. package/backend/src/flowent/prompts/common.py +250 -0
  82. package/backend/src/flowent/prompts/steward.py +64 -0
  83. package/backend/src/flowent/providers/__init__.py +23 -0
  84. package/backend/src/flowent/providers/__pycache__/__init__.cpython-313.pyc +0 -0
  85. package/backend/src/flowent/providers/__pycache__/anthropic.cpython-313.pyc +0 -0
  86. package/backend/src/flowent/providers/__pycache__/base_url.cpython-313.pyc +0 -0
  87. package/backend/src/flowent/providers/__pycache__/configuration.cpython-313.pyc +0 -0
  88. package/backend/src/flowent/providers/__pycache__/content.cpython-313.pyc +0 -0
  89. package/backend/src/flowent/providers/__pycache__/errors.cpython-313.pyc +0 -0
  90. package/backend/src/flowent/providers/__pycache__/gateway.cpython-313.pyc +0 -0
  91. package/backend/src/flowent/providers/__pycache__/headers.cpython-313.pyc +0 -0
  92. package/backend/src/flowent/providers/__pycache__/management.cpython-313.pyc +0 -0
  93. package/backend/src/flowent/providers/__pycache__/openai.cpython-313.pyc +0 -0
  94. package/backend/src/flowent/providers/__pycache__/openai_responses.cpython-313.pyc +0 -0
  95. package/backend/src/flowent/providers/__pycache__/registry.cpython-313.pyc +0 -0
  96. package/backend/src/flowent/providers/__pycache__/sse.cpython-313.pyc +0 -0
  97. package/backend/src/flowent/providers/__pycache__/thinking.cpython-313.pyc +0 -0
  98. package/backend/src/flowent/providers/anthropic.py +468 -0
  99. package/backend/src/flowent/providers/base_url.py +60 -0
  100. package/backend/src/flowent/providers/configuration.py +182 -0
  101. package/backend/src/flowent/providers/content.py +122 -0
  102. package/backend/src/flowent/providers/errors.py +223 -0
  103. package/backend/src/flowent/providers/gateway.py +169 -0
  104. package/backend/src/flowent/providers/gemini.py +447 -0
  105. package/backend/src/flowent/providers/headers.py +20 -0
  106. package/backend/src/flowent/providers/management.py +96 -0
  107. package/backend/src/flowent/providers/ollama.py +293 -0
  108. package/backend/src/flowent/providers/openai.py +422 -0
  109. package/backend/src/flowent/providers/openai_responses.py +655 -0
  110. package/backend/src/flowent/providers/registry.py +144 -0
  111. package/backend/src/flowent/providers/sse.py +31 -0
  112. package/backend/src/flowent/providers/thinking.py +79 -0
  113. package/backend/src/flowent/registry.py +73 -0
  114. package/backend/src/flowent/role_management.py +255 -0
  115. package/backend/src/flowent/routes/__init__.py +30 -0
  116. package/backend/src/flowent/routes/__pycache__/__init__.cpython-313.pyc +0 -0
  117. package/backend/src/flowent/routes/__pycache__/access.cpython-313.pyc +0 -0
  118. package/backend/src/flowent/routes/__pycache__/assistant.cpython-313.pyc +0 -0
  119. package/backend/src/flowent/routes/__pycache__/image_assets.cpython-313.pyc +0 -0
  120. package/backend/src/flowent/routes/__pycache__/mcp.cpython-313.pyc +0 -0
  121. package/backend/src/flowent/routes/__pycache__/meta.cpython-313.pyc +0 -0
  122. package/backend/src/flowent/routes/__pycache__/nodes.cpython-313.pyc +0 -0
  123. package/backend/src/flowent/routes/__pycache__/prompts.cpython-313.pyc +0 -0
  124. package/backend/src/flowent/routes/__pycache__/providers_route.cpython-313.pyc +0 -0
  125. package/backend/src/flowent/routes/__pycache__/roles.cpython-313.pyc +0 -0
  126. package/backend/src/flowent/routes/__pycache__/settings.cpython-313.pyc +0 -0
  127. package/backend/src/flowent/routes/__pycache__/stats.cpython-313.pyc +0 -0
  128. package/backend/src/flowent/routes/__pycache__/tabs.cpython-313.pyc +0 -0
  129. package/backend/src/flowent/routes/__pycache__/ws.cpython-313.pyc +0 -0
  130. package/backend/src/flowent/routes/access.py +48 -0
  131. package/backend/src/flowent/routes/assistant.py +155 -0
  132. package/backend/src/flowent/routes/image_assets.py +33 -0
  133. package/backend/src/flowent/routes/mcp.py +125 -0
  134. package/backend/src/flowent/routes/meta.py +28 -0
  135. package/backend/src/flowent/routes/nodes.py +365 -0
  136. package/backend/src/flowent/routes/prompts.py +46 -0
  137. package/backend/src/flowent/routes/providers_route.py +364 -0
  138. package/backend/src/flowent/routes/roles.py +207 -0
  139. package/backend/src/flowent/routes/settings.py +324 -0
  140. package/backend/src/flowent/routes/stats.py +229 -0
  141. package/backend/src/flowent/routes/tabs.py +292 -0
  142. package/backend/src/flowent/routes/ws.py +33 -0
  143. package/backend/src/flowent/runtime.py +188 -0
  144. package/backend/src/flowent/sandbox.py +45 -0
  145. package/backend/src/flowent/security.py +42 -0
  146. package/backend/src/flowent/settings.py +2467 -0
  147. package/backend/src/flowent/settings_management.py +286 -0
  148. package/backend/src/flowent/state_db.py +120 -0
  149. package/backend/src/flowent/static/assets/AssistantPage-B3Xc08AS.js +1 -0
  150. package/backend/src/flowent/static/assets/ChannelsPage-ByLd28xk.js +1 -0
  151. package/backend/src/flowent/static/assets/HomePage-C0hAx9_l.js +3 -0
  152. package/backend/src/flowent/static/assets/McpPage-DkrYLvBv.js +7 -0
  153. package/backend/src/flowent/static/assets/PageScaffold-D4jO9ooX.js +1 -0
  154. package/backend/src/flowent/static/assets/PromptsPage-DWA7rRJd.js +1 -0
  155. package/backend/src/flowent/static/assets/ProvidersPage-PUWT8seJ.js +3 -0
  156. package/backend/src/flowent/static/assets/RolesPage-CqcclGRw.js +1 -0
  157. package/backend/src/flowent/static/assets/SettingsPage-8tS2cJgX.js +3 -0
  158. package/backend/src/flowent/static/assets/StatsPage-BX9khYzu.js +1 -0
  159. package/backend/src/flowent/static/assets/ToolsPage-9Tl9FdeD.js +1 -0
  160. package/backend/src/flowent/static/assets/WorkspaceCommandDialog-CCXxjDL8.js +1 -0
  161. package/backend/src/flowent/static/assets/WorkspacePanels-aMdJ7ZH7.js +1 -0
  162. package/backend/src/flowent/static/assets/alert-dialog-kFYVQ7oX.js +1 -0
  163. package/backend/src/flowent/static/assets/badge-74-3jsCg.js +1 -0
  164. package/backend/src/flowent/static/assets/constants-XUzFf6i1.js +1 -0
  165. package/backend/src/flowent/static/assets/datetime-m6_O_Ci9.js +1 -0
  166. package/backend/src/flowent/static/assets/dialog-BeGSweF6.js +1 -0
  167. package/backend/src/flowent/static/assets/elk-worker.min-C9JGDOE-.js +6312 -0
  168. package/backend/src/flowent/static/assets/graph-vendor-CHpVij2M.css +1 -0
  169. package/backend/src/flowent/static/assets/graph-vendor-DRq_-6fV.js +7 -0
  170. package/backend/src/flowent/static/assets/index-BHC1Vhy8.css +1 -0
  171. package/backend/src/flowent/static/assets/index-CL1ALZ3r.js +10 -0
  172. package/backend/src/flowent/static/assets/layout.worker-jMHqAFbP.js +24 -0
  173. package/backend/src/flowent/static/assets/markdown-vendor-DVdy_w12.js +29 -0
  174. package/backend/src/flowent/static/assets/modelParams-CaHd0903.js +1 -0
  175. package/backend/src/flowent/static/assets/react-vendor-mEs_JJxa.js +9 -0
  176. package/backend/src/flowent/static/assets/roles-2OLDeTc5.js +1 -0
  177. package/backend/src/flowent/static/assets/rolldown-runtime-BYbx6iT9.js +1 -0
  178. package/backend/src/flowent/static/assets/select-DL_LPeDj.js +1 -0
  179. package/backend/src/flowent/static/assets/shared-CMxbpLeQ.js +1 -0
  180. package/backend/src/flowent/static/assets/triState-DEr3NkXV.js +1 -0
  181. package/backend/src/flowent/static/assets/ui-vendor-Dg9NNnWX.js +51 -0
  182. package/backend/src/flowent/static/index.html +36 -0
  183. package/backend/src/flowent/stats_service.py +218 -0
  184. package/backend/src/flowent/tools/__init__.py +201 -0
  185. package/backend/src/flowent/tools/__pycache__/__init__.cpython-313.pyc +0 -0
  186. package/backend/src/flowent/tools/__pycache__/connect.cpython-313.pyc +0 -0
  187. package/backend/src/flowent/tools/__pycache__/contacts.cpython-313.pyc +0 -0
  188. package/backend/src/flowent/tools/__pycache__/create_agent.cpython-313.pyc +0 -0
  189. package/backend/src/flowent/tools/__pycache__/create_tab.cpython-313.pyc +0 -0
  190. package/backend/src/flowent/tools/__pycache__/delete_tab.cpython-313.pyc +0 -0
  191. package/backend/src/flowent/tools/__pycache__/edit.cpython-313.pyc +0 -0
  192. package/backend/src/flowent/tools/__pycache__/exec.cpython-313.pyc +0 -0
  193. package/backend/src/flowent/tools/__pycache__/fetch.cpython-313.pyc +0 -0
  194. package/backend/src/flowent/tools/__pycache__/idle.cpython-313.pyc +0 -0
  195. package/backend/src/flowent/tools/__pycache__/list_roles.cpython-313.pyc +0 -0
  196. package/backend/src/flowent/tools/__pycache__/list_tabs.cpython-313.pyc +0 -0
  197. package/backend/src/flowent/tools/__pycache__/list_tools.cpython-313.pyc +0 -0
  198. package/backend/src/flowent/tools/__pycache__/manage_prompts.cpython-313.pyc +0 -0
  199. package/backend/src/flowent/tools/__pycache__/manage_providers.cpython-313.pyc +0 -0
  200. package/backend/src/flowent/tools/__pycache__/manage_roles.cpython-313.pyc +0 -0
  201. package/backend/src/flowent/tools/__pycache__/manage_settings.cpython-313.pyc +0 -0
  202. package/backend/src/flowent/tools/__pycache__/mcp.cpython-313.pyc +0 -0
  203. package/backend/src/flowent/tools/__pycache__/read.cpython-313.pyc +0 -0
  204. package/backend/src/flowent/tools/__pycache__/send.cpython-313.pyc +0 -0
  205. package/backend/src/flowent/tools/__pycache__/set_permissions.cpython-313.pyc +0 -0
  206. package/backend/src/flowent/tools/__pycache__/sleep.cpython-313.pyc +0 -0
  207. package/backend/src/flowent/tools/__pycache__/todo.cpython-313.pyc +0 -0
  208. package/backend/src/flowent/tools/connect.py +156 -0
  209. package/backend/src/flowent/tools/contacts.py +22 -0
  210. package/backend/src/flowent/tools/create_agent.py +270 -0
  211. package/backend/src/flowent/tools/create_tab.py +59 -0
  212. package/backend/src/flowent/tools/delete_tab.py +39 -0
  213. package/backend/src/flowent/tools/edit.py +142 -0
  214. package/backend/src/flowent/tools/exec.py +117 -0
  215. package/backend/src/flowent/tools/fetch.py +85 -0
  216. package/backend/src/flowent/tools/idle.py +27 -0
  217. package/backend/src/flowent/tools/list_roles.py +50 -0
  218. package/backend/src/flowent/tools/list_tabs.py +96 -0
  219. package/backend/src/flowent/tools/list_tools.py +24 -0
  220. package/backend/src/flowent/tools/manage_prompts.py +102 -0
  221. package/backend/src/flowent/tools/manage_providers.py +220 -0
  222. package/backend/src/flowent/tools/manage_roles.py +275 -0
  223. package/backend/src/flowent/tools/manage_settings.py +346 -0
  224. package/backend/src/flowent/tools/mcp.py +199 -0
  225. package/backend/src/flowent/tools/read.py +152 -0
  226. package/backend/src/flowent/tools/send.py +50 -0
  227. package/backend/src/flowent/tools/set_permissions.py +84 -0
  228. package/backend/src/flowent/tools/sleep.py +41 -0
  229. package/backend/src/flowent/tools/todo.py +51 -0
  230. package/backend/src/flowent/workspace_store.py +479 -0
  231. package/backend/tests/__init__.py +0 -0
  232. package/backend/tests/__pycache__/__init__.cpython-313.pyc +0 -0
  233. package/backend/tests/__pycache__/conftest.cpython-313-pytest-9.0.3.pyc +0 -0
  234. package/backend/tests/conftest.py +6 -0
  235. package/backend/tests/integration/api/__pycache__/conftest.cpython-313-pytest-9.0.3.pyc +0 -0
  236. package/backend/tests/integration/api/__pycache__/test_access_api.cpython-313-pytest-9.0.3.pyc +0 -0
  237. package/backend/tests/integration/api/__pycache__/test_assistant_api.cpython-313-pytest-9.0.3.pyc +0 -0
  238. package/backend/tests/integration/api/__pycache__/test_frontend_mounting.cpython-313-pytest-9.0.3.pyc +0 -0
  239. package/backend/tests/integration/api/__pycache__/test_mcp_api.cpython-313-pytest-9.0.3.pyc +0 -0
  240. package/backend/tests/integration/api/__pycache__/test_meta_api.cpython-313-pytest-9.0.3.pyc +0 -0
  241. package/backend/tests/integration/api/__pycache__/test_nodes_api.cpython-313-pytest-9.0.3.pyc +0 -0
  242. package/backend/tests/integration/api/__pycache__/test_prompts_api.cpython-313-pytest-9.0.3.pyc +0 -0
  243. package/backend/tests/integration/api/__pycache__/test_roles_api.cpython-313-pytest-9.0.3.pyc +0 -0
  244. package/backend/tests/integration/api/__pycache__/test_tabs_api.cpython-313-pytest-9.0.3.pyc +0 -0
  245. package/backend/tests/integration/api/conftest.py +29 -0
  246. package/backend/tests/integration/api/test_access_api.py +182 -0
  247. package/backend/tests/integration/api/test_assistant_api.py +354 -0
  248. package/backend/tests/integration/api/test_frontend_mounting.py +61 -0
  249. package/backend/tests/integration/api/test_mcp_api.py +116 -0
  250. package/backend/tests/integration/api/test_meta_api.py +33 -0
  251. package/backend/tests/integration/api/test_nodes_api.py +486 -0
  252. package/backend/tests/integration/api/test_prompts_api.py +47 -0
  253. package/backend/tests/integration/api/test_roles_api.py +227 -0
  254. package/backend/tests/integration/api/test_tabs_api.py +501 -0
  255. package/backend/tests/unit/__pycache__/test_access.cpython-313-pytest-9.0.3.pyc +0 -0
  256. package/backend/tests/unit/__pycache__/test_cli.cpython-313-pytest-9.0.3.pyc +0 -0
  257. package/backend/tests/unit/__pycache__/test_graph_runtime.cpython-313-pytest-9.0.3.pyc +0 -0
  258. package/backend/tests/unit/__pycache__/test_network.cpython-313-pytest-9.0.3.pyc +0 -0
  259. package/backend/tests/unit/__pycache__/test_state_sqlite_storage.cpython-313-pytest-9.0.3.pyc +0 -0
  260. package/backend/tests/unit/__pycache__/test_workspace_store.cpython-313-pytest-9.0.3.pyc +0 -0
  261. package/backend/tests/unit/agent/__pycache__/test_agent_public_api.cpython-313-pytest-9.0.3.pyc +0 -0
  262. package/backend/tests/unit/agent/__pycache__/test_agent_runtime.cpython-313-pytest-9.0.3.pyc +0 -0
  263. package/backend/tests/unit/agent/test_agent_public_api.py +746 -0
  264. package/backend/tests/unit/agent/test_agent_runtime.py +2726 -0
  265. package/backend/tests/unit/channels/__pycache__/test_telegram_channel.cpython-313-pytest-9.0.3.pyc +0 -0
  266. package/backend/tests/unit/channels/test_telegram_channel.py +552 -0
  267. package/backend/tests/unit/logging/__pycache__/test_logging.cpython-313-pytest-9.0.3.pyc +0 -0
  268. package/backend/tests/unit/logging/test_logging.py +132 -0
  269. package/backend/tests/unit/prompts/__pycache__/test_prompts.cpython-313-pytest-9.0.3.pyc +0 -0
  270. package/backend/tests/unit/prompts/test_prompts.py +569 -0
  271. package/backend/tests/unit/providers/__pycache__/test_anthropic_provider.cpython-313-pytest-9.0.3.pyc +0 -0
  272. package/backend/tests/unit/providers/__pycache__/test_errors.cpython-313-pytest-9.0.3.pyc +0 -0
  273. package/backend/tests/unit/providers/__pycache__/test_extract_delta_parts.cpython-313-pytest-9.0.3.pyc +0 -0
  274. package/backend/tests/unit/providers/__pycache__/test_openai_provider.cpython-313-pytest-9.0.3.pyc +0 -0
  275. package/backend/tests/unit/providers/__pycache__/test_openai_responses.cpython-313-pytest-9.0.3.pyc +0 -0
  276. package/backend/tests/unit/providers/__pycache__/test_provider_gateway.cpython-313-pytest-9.0.3.pyc +0 -0
  277. package/backend/tests/unit/providers/__pycache__/test_think_tag_parser.cpython-313-pytest-9.0.3.pyc +0 -0
  278. package/backend/tests/unit/providers/test_anthropic_provider.py +185 -0
  279. package/backend/tests/unit/providers/test_errors.py +68 -0
  280. package/backend/tests/unit/providers/test_extract_delta_parts.py +22 -0
  281. package/backend/tests/unit/providers/test_openai_provider.py +139 -0
  282. package/backend/tests/unit/providers/test_openai_responses.py +402 -0
  283. package/backend/tests/unit/providers/test_provider_gateway.py +359 -0
  284. package/backend/tests/unit/providers/test_think_tag_parser.py +36 -0
  285. package/backend/tests/unit/routes/__pycache__/test_prompts_routes.cpython-313-pytest-9.0.3.pyc +0 -0
  286. package/backend/tests/unit/routes/__pycache__/test_providers_route.cpython-313-pytest-9.0.3.pyc +0 -0
  287. package/backend/tests/unit/routes/__pycache__/test_roles_routes.cpython-313-pytest-9.0.3.pyc +0 -0
  288. package/backend/tests/unit/routes/__pycache__/test_settings_routes.cpython-313-pytest-9.0.3.pyc +0 -0
  289. package/backend/tests/unit/routes/__pycache__/test_stats_routes.cpython-313-pytest-9.0.3.pyc +0 -0
  290. package/backend/tests/unit/routes/test_prompts_routes.py +104 -0
  291. package/backend/tests/unit/routes/test_providers_route.py +368 -0
  292. package/backend/tests/unit/routes/test_roles_routes.py +426 -0
  293. package/backend/tests/unit/routes/test_settings_routes.py +1138 -0
  294. package/backend/tests/unit/routes/test_stats_routes.py +149 -0
  295. package/backend/tests/unit/runtime/__pycache__/test_bootstrap_runtime.cpython-313-pytest-9.0.3.pyc +0 -0
  296. package/backend/tests/unit/runtime/test_bootstrap_runtime.py +1012 -0
  297. package/backend/tests/unit/sandbox/__pycache__/test_sandbox_tools.cpython-313-pytest-9.0.3.pyc +0 -0
  298. package/backend/tests/unit/sandbox/test_sandbox_tools.py +78 -0
  299. package/backend/tests/unit/security/__pycache__/test_security.cpython-313-pytest-9.0.3.pyc +0 -0
  300. package/backend/tests/unit/security/test_security.py +110 -0
  301. package/backend/tests/unit/settings/__pycache__/test_settings_roles.cpython-313-pytest-9.0.3.pyc +0 -0
  302. package/backend/tests/unit/settings/test_settings_roles.py +711 -0
  303. package/backend/tests/unit/test_access.py +45 -0
  304. package/backend/tests/unit/test_cli.py +124 -0
  305. package/backend/tests/unit/test_graph_runtime.py +72 -0
  306. package/backend/tests/unit/test_network.py +51 -0
  307. package/backend/tests/unit/test_state_sqlite_storage.py +93 -0
  308. package/backend/tests/unit/test_workspace_store.py +231 -0
  309. package/backend/tests/unit/tools/__pycache__/test_connect_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  310. package/backend/tests/unit/tools/__pycache__/test_create_agent_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  311. package/backend/tests/unit/tools/__pycache__/test_delete_tab_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  312. package/backend/tests/unit/tools/__pycache__/test_edit_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  313. package/backend/tests/unit/tools/__pycache__/test_exec_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  314. package/backend/tests/unit/tools/__pycache__/test_fetch_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  315. package/backend/tests/unit/tools/__pycache__/test_manage_prompts_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  316. package/backend/tests/unit/tools/__pycache__/test_manage_providers_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  317. package/backend/tests/unit/tools/__pycache__/test_manage_roles_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  318. package/backend/tests/unit/tools/__pycache__/test_manage_settings_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  319. package/backend/tests/unit/tools/__pycache__/test_read_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  320. package/backend/tests/unit/tools/__pycache__/test_set_permissions_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  321. package/backend/tests/unit/tools/__pycache__/test_todo_tool.cpython-313-pytest-9.0.3.pyc +0 -0
  322. package/backend/tests/unit/tools/__pycache__/test_tool_registry.cpython-313-pytest-9.0.3.pyc +0 -0
  323. package/backend/tests/unit/tools/test_connect_tool.py +229 -0
  324. package/backend/tests/unit/tools/test_create_agent_tool.py +524 -0
  325. package/backend/tests/unit/tools/test_delete_tab_tool.py +83 -0
  326. package/backend/tests/unit/tools/test_edit_tool.py +115 -0
  327. package/backend/tests/unit/tools/test_exec_tool.py +81 -0
  328. package/backend/tests/unit/tools/test_fetch_tool.py +65 -0
  329. package/backend/tests/unit/tools/test_manage_prompts_tool.py +117 -0
  330. package/backend/tests/unit/tools/test_manage_providers_tool.py +458 -0
  331. package/backend/tests/unit/tools/test_manage_roles_tool.py +411 -0
  332. package/backend/tests/unit/tools/test_manage_settings_tool.py +608 -0
  333. package/backend/tests/unit/tools/test_read_tool.py +33 -0
  334. package/backend/tests/unit/tools/test_set_permissions_tool.py +391 -0
  335. package/backend/tests/unit/tools/test_todo_tool.py +37 -0
  336. package/backend/tests/unit/tools/test_tool_registry.py +91 -0
  337. package/backend/uv.lock +1144 -0
  338. package/bin/flowent.mjs +62 -36
  339. package/dist/frontend/assets/AssistantPage-B3Xc08AS.js +1 -0
  340. package/dist/frontend/assets/ChannelsPage-ByLd28xk.js +1 -0
  341. package/dist/frontend/assets/HomePage-C0hAx9_l.js +3 -0
  342. package/dist/frontend/assets/McpPage-DkrYLvBv.js +7 -0
  343. package/dist/frontend/assets/PageScaffold-D4jO9ooX.js +1 -0
  344. package/dist/frontend/assets/PromptsPage-DWA7rRJd.js +1 -0
  345. package/dist/frontend/assets/ProvidersPage-PUWT8seJ.js +3 -0
  346. package/dist/frontend/assets/RolesPage-CqcclGRw.js +1 -0
  347. package/dist/frontend/assets/SettingsPage-8tS2cJgX.js +3 -0
  348. package/dist/frontend/assets/StatsPage-BX9khYzu.js +1 -0
  349. package/dist/frontend/assets/ToolsPage-9Tl9FdeD.js +1 -0
  350. package/dist/frontend/assets/WorkspaceCommandDialog-CCXxjDL8.js +1 -0
  351. package/dist/frontend/assets/WorkspacePanels-aMdJ7ZH7.js +1 -0
  352. package/dist/frontend/assets/alert-dialog-kFYVQ7oX.js +1 -0
  353. package/dist/frontend/assets/badge-74-3jsCg.js +1 -0
  354. package/dist/frontend/assets/constants-XUzFf6i1.js +1 -0
  355. package/dist/frontend/assets/datetime-m6_O_Ci9.js +1 -0
  356. package/dist/frontend/assets/dialog-BeGSweF6.js +1 -0
  357. package/dist/frontend/assets/elk-worker.min-C9JGDOE-.js +6312 -0
  358. package/dist/frontend/assets/graph-vendor-CHpVij2M.css +1 -0
  359. package/dist/frontend/assets/graph-vendor-DRq_-6fV.js +7 -0
  360. package/dist/frontend/assets/index-BHC1Vhy8.css +1 -0
  361. package/dist/frontend/assets/index-CL1ALZ3r.js +10 -0
  362. package/dist/frontend/assets/layout.worker-jMHqAFbP.js +24 -0
  363. package/dist/frontend/assets/markdown-vendor-DVdy_w12.js +29 -0
  364. package/dist/frontend/assets/modelParams-CaHd0903.js +1 -0
  365. package/dist/frontend/assets/react-vendor-mEs_JJxa.js +9 -0
  366. package/dist/frontend/assets/roles-2OLDeTc5.js +1 -0
  367. package/dist/frontend/assets/rolldown-runtime-BYbx6iT9.js +1 -0
  368. package/dist/frontend/assets/select-DL_LPeDj.js +1 -0
  369. package/dist/frontend/assets/shared-CMxbpLeQ.js +1 -0
  370. package/dist/frontend/assets/triState-DEr3NkXV.js +1 -0
  371. package/dist/frontend/assets/ui-vendor-Dg9NNnWX.js +51 -0
  372. package/dist/frontend/index.html +36 -0
  373. package/package.json +27 -41
  374. package/dist/.next/BUILD_ID +0 -1
  375. package/dist/.next/app-path-routes-manifest.json +0 -6
  376. package/dist/.next/build-manifest.json +0 -20
  377. package/dist/.next/package.json +0 -1
  378. package/dist/.next/prerender-manifest.json +0 -114
  379. package/dist/.next/required-server-files.json +0 -333
  380. package/dist/.next/routes-manifest.json +0 -69
  381. package/dist/.next/server/app/_global-error/page/app-paths-manifest.json +0 -3
  382. package/dist/.next/server/app/_global-error/page/build-manifest.json +0 -16
  383. package/dist/.next/server/app/_global-error/page/next-font-manifest.json +0 -6
  384. package/dist/.next/server/app/_global-error/page/react-loadable-manifest.json +0 -1
  385. package/dist/.next/server/app/_global-error/page/server-reference-manifest.json +0 -4
  386. package/dist/.next/server/app/_global-error/page.js +0 -9
  387. package/dist/.next/server/app/_global-error/page.js.map +0 -5
  388. package/dist/.next/server/app/_global-error/page.js.nft.json +0 -1
  389. package/dist/.next/server/app/_global-error/page_client-reference-manifest.js +0 -3
  390. package/dist/.next/server/app/_global-error.html +0 -1
  391. package/dist/.next/server/app/_global-error.meta +0 -15
  392. package/dist/.next/server/app/_global-error.rsc +0 -14
  393. package/dist/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +0 -5
  394. package/dist/.next/server/app/_global-error.segments/_full.segment.rsc +0 -14
  395. package/dist/.next/server/app/_global-error.segments/_head.segment.rsc +0 -5
  396. package/dist/.next/server/app/_global-error.segments/_index.segment.rsc +0 -5
  397. package/dist/.next/server/app/_global-error.segments/_tree.segment.rsc +0 -1
  398. package/dist/.next/server/app/_not-found/page/app-paths-manifest.json +0 -3
  399. package/dist/.next/server/app/_not-found/page/build-manifest.json +0 -16
  400. package/dist/.next/server/app/_not-found/page/next-font-manifest.json +0 -10
  401. package/dist/.next/server/app/_not-found/page/react-loadable-manifest.json +0 -1
  402. package/dist/.next/server/app/_not-found/page/server-reference-manifest.json +0 -4
  403. package/dist/.next/server/app/_not-found/page.js +0 -13
  404. package/dist/.next/server/app/_not-found/page.js.map +0 -5
  405. package/dist/.next/server/app/_not-found/page.js.nft.json +0 -1
  406. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +0 -3
  407. package/dist/.next/server/app/_not-found.html +0 -1
  408. package/dist/.next/server/app/_not-found.meta +0 -16
  409. package/dist/.next/server/app/_not-found.rsc +0 -16
  410. package/dist/.next/server/app/_not-found.segments/_full.segment.rsc +0 -16
  411. package/dist/.next/server/app/_not-found.segments/_head.segment.rsc +0 -6
  412. package/dist/.next/server/app/_not-found.segments/_index.segment.rsc +0 -5
  413. package/dist/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +0 -5
  414. package/dist/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -5
  415. package/dist/.next/server/app/_not-found.segments/_tree.segment.rsc +0 -2
  416. package/dist/.next/server/app/icon.svg/route/app-paths-manifest.json +0 -3
  417. package/dist/.next/server/app/icon.svg/route/build-manifest.json +0 -9
  418. package/dist/.next/server/app/icon.svg/route.js +0 -6
  419. package/dist/.next/server/app/icon.svg/route.js.map +0 -5
  420. package/dist/.next/server/app/icon.svg/route.js.nft.json +0 -1
  421. package/dist/.next/server/app/icon.svg.meta +0 -1
  422. package/dist/.next/server/app/index.html +0 -1
  423. package/dist/.next/server/app/index.meta +0 -14
  424. package/dist/.next/server/app/index.rsc +0 -15
  425. package/dist/.next/server/app/index.segments/__PAGE__.segment.rsc +0 -5
  426. package/dist/.next/server/app/index.segments/_full.segment.rsc +0 -15
  427. package/dist/.next/server/app/index.segments/_head.segment.rsc +0 -6
  428. package/dist/.next/server/app/index.segments/_index.segment.rsc +0 -5
  429. package/dist/.next/server/app/index.segments/_tree.segment.rsc +0 -3
  430. package/dist/.next/server/app/page/app-paths-manifest.json +0 -3
  431. package/dist/.next/server/app/page/build-manifest.json +0 -16
  432. package/dist/.next/server/app/page/next-font-manifest.json +0 -10
  433. package/dist/.next/server/app/page/react-loadable-manifest.json +0 -1
  434. package/dist/.next/server/app/page/server-reference-manifest.json +0 -4
  435. package/dist/.next/server/app/page.js +0 -14
  436. package/dist/.next/server/app/page.js.map +0 -5
  437. package/dist/.next/server/app/page.js.nft.json +0 -1
  438. package/dist/.next/server/app/page_client-reference-manifest.js +0 -3
  439. package/dist/.next/server/app-paths-manifest.json +0 -6
  440. package/dist/.next/server/chunks/[externals]_next_dist_0arv.vj._.js +0 -3
  441. package/dist/.next/server/chunks/[root-of-the-server]__0vcj1q1._.js +0 -13
  442. package/dist/.next/server/chunks/[turbopack]_runtime.js +0 -903
  443. package/dist/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_0-0ehc~.js +0 -3
  444. package/dist/.next/server/chunks/ssr/05w9_next_dist_0ihu0u9._.js +0 -6
  445. package/dist/.next/server/chunks/ssr/05w9_next_dist_client_components_12u3mib._.js +0 -3
  446. package/dist/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_forbidden_04fbe_..js +0 -3
  447. package/dist/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_global-error_0brpl_..js +0 -3
  448. package/dist/.next/server/chunks/ssr/05w9_next_dist_client_components_builtin_unauthorized_0~2g66g.js +0 -3
  449. package/dist/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_0~cyr1_.js +0 -4
  450. package/dist/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_1105emf.js +0 -4
  451. package/dist/.next/server/chunks/ssr/05w9_next_dist_esm_build_templates_app-page_11uhyqv.js +0 -4
  452. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0.t9_75._.js +0 -33
  453. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0c0ud_z._.js +0 -3
  454. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0f9_8d4._.js +0 -3
  455. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0l5ko41._.js +0 -19
  456. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0mn6z7i._.js +0 -3
  457. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0npxxst._.js +0 -33
  458. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0qjhaca._.js +0 -3
  459. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0rwgw3s._.js +0 -3
  460. package/dist/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -903
  461. package/dist/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js +0 -3
  462. package/dist/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js +0 -3
  463. package/dist/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js +0 -3
  464. package/dist/.next/server/chunks/ssr/node_modules__pnpm_056~6.6._.js +0 -3
  465. package/dist/.next/server/chunks/ssr/node_modules__pnpm_0~j0k.e._.js +0 -33
  466. package/dist/.next/server/functions-config-manifest.json +0 -4
  467. package/dist/.next/server/middleware-build-manifest.js +0 -20
  468. package/dist/.next/server/middleware-manifest.json +0 -6
  469. package/dist/.next/server/next-font-manifest.js +0 -1
  470. package/dist/.next/server/next-font-manifest.json +0 -13
  471. package/dist/.next/server/pages/404.html +0 -1
  472. package/dist/.next/server/pages/500.html +0 -1
  473. package/dist/.next/server/pages-manifest.json +0 -4
  474. package/dist/.next/server/prefetch-hints.json +0 -1
  475. package/dist/.next/server/server-reference-manifest.js +0 -1
  476. package/dist/.next/server/server-reference-manifest.json +0 -5
  477. package/dist/.next/static/SMWpxFVvkpYFxY7uuFvGB/_buildManifest.js +0 -11
  478. package/dist/.next/static/SMWpxFVvkpYFxY7uuFvGB/_clientMiddlewareManifest.js +0 -1
  479. package/dist/.next/static/SMWpxFVvkpYFxY7uuFvGB/_ssgManifest.js +0 -1
  480. package/dist/.next/static/chunks/01qk2~bgf76vu.js +0 -1
  481. package/dist/.next/static/chunks/03~yq9q893hmn.js +0 -1
  482. package/dist/.next/static/chunks/080queev.r2uy.js +0 -31
  483. package/dist/.next/static/chunks/0v3lyuj75aq50.js +0 -1
  484. package/dist/.next/static/chunks/10b~xdx5c-i7s.js +0 -5
  485. package/dist/.next/static/chunks/14gla2ascffgv.css +0 -2
  486. package/dist/.next/static/chunks/turbopack-0m-970~qvs7sc.js +0 -1
  487. package/dist/.next/static/media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2 +0 -0
  488. package/dist/.next/static/media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2 +0 -0
  489. package/dist/.next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2 +0 -0
  490. package/dist/package.json +0 -88
  491. package/dist/server.js +0 -38
  492. /package/{dist/.next/server/app/icon.svg.body → backend/src/flowent/static/favicon.svg} +0 -0
  493. /package/dist/{.next/static/media/icon.0.r~afrtrocz9.svg → frontend/favicon.svg} +0 -0
@@ -0,0 +1 @@
1
+ @import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer components;@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-3xl:48rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}html,body,#root{min-height:100%}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-sans);-webkit-user-select:none;user-select:none;letter-spacing:-.012em;font-feature-settings:"cv02" 1, "cv03" 1, "cv04" 1, "cv11" 1}input,textarea,[contenteditable=""],[contenteditable=true]{-webkit-user-select:text;user-select:text}code,kbd,pre,samp{font-family:var(--font-mono)}::selection{color:var(--foreground);background:oklch(96% .002 260/.18)}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-x-3{inset-inline:calc(var(--spacing) * 3)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.inset-y-1{inset-block:calc(var(--spacing) * 1)}.inset-y-2\.5{inset-block:calc(var(--spacing) * 2.5)}.inset-y-3{inset-block:calc(var(--spacing) * 3)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.\!top-\[36\%\]{top:36%!important}.\!top-\[64\%\]{top:64%!important}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\/2{top:50%}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-4{top:calc(var(--spacing) * 4)}.-right-1\.5{right:calc(var(--spacing) * -1.5)}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.right-4{right:calc(var(--spacing) * 4)}.right-6{right:calc(var(--spacing) * 6)}.-bottom-6{bottom:calc(var(--spacing) * -6)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-1\.5{left:calc(var(--spacing) * -1.5)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-3\.5{left:calc(var(--spacing) * 3.5)}.left-4{left:calc(var(--spacing) * 4)}.left-14{left:calc(var(--spacing) * 14)}.isolate{isolation:isolate}.\!z-10{z-index:10!important}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[120\]{z-index:120}.z-\[200\]{z-index:200}.z-\[210\]{z-index:210}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-7{margin-bottom:calc(var(--spacing) * 7)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.\!size-2{width:calc(var(--spacing) * 2)!important;height:calc(var(--spacing) * 2)!important}.size-1{width:calc(var(--spacing) * 1);height:calc(var(--spacing) * 1)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-full{width:100%;height:100%}.\!h-\[72\%\]{height:72%!important}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-36{height:calc(var(--spacing) * 36)}.h-\[72\%\]{height:72%}.h-\[220px\]{height:220px}.h-auto{height:auto}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-\[78vh\]{max-height:78vh}.max-h-\[240px\]{max-height:240px}.max-h-\[300px\]{max-height:300px}.max-h-\[420px\]{max-height:420px}.max-h-\[calc\(100svh-2rem\)\]{max-height:calc(100svh - 2rem)}.max-h-\[var\(--radix-select-content-available-height\)\]{max-height:var(--radix-select-content-available-height)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-\[15rem\]{min-height:15rem}.min-h-\[24rem\]{min-height:24rem}.min-h-\[44px\]{min-height:44px}.min-h-\[80px\]{min-height:80px}.min-h-\[108px\]{min-height:108px}.min-h-\[120px\]{min-height:120px}.min-h-\[132px\]{min-height:132px}.min-h-\[140px\]{min-height:140px}.min-h-\[180px\]{min-height:180px}.min-h-\[280px\]{min-height:280px}.min-h-dvh{min-height:100dvh}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.\!w-5{width:calc(var(--spacing) * 5)!important}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-6{width:calc(var(--spacing) * 6)}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-52{width:calc(var(--spacing) * 52)}.w-\[2px\]{width:2px}.w-\[3px\]{width:3px}.w-\[72px\]{width:72px}.w-\[120px\]{width:120px}.w-\[170px\]{width:170px}.w-\[180px\]{width:180px}.w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.w-\[min\(24rem\,calc\(100\%-1\.5rem\)\)\]{width:min(24rem,100% - 1.5rem)}.w-\[min\(24rem\,calc\(100vw-1\.5rem\)\)\]{width:min(24rem,100vw - 1.5rem)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[15rem\]{max-width:15rem}.max-w-\[22rem\]{max-width:22rem}.max-w-\[30rem\]{max-width:30rem}.max-w-\[34rem\]{max-width:34rem}.max-w-\[80\%\]{max-width:80%}.max-w-\[84\%\]{max-width:84%}.max-w-\[88vw\]{max-width:88vw}.max-w-\[220px\]{max-width:220px}.max-w-\[240px\]{max-width:240px}.max-w-\[260px\]{max-width:260px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[360px\]{max-width:360px}.max-w-\[420px\]{max-width:420px}.max-w-\[680px\]{max-width:680px}.max-w-\[720px\]{max-width:720px}.max-w-\[800px\]{max-width:800px}.max-w-\[1320px\]{max-width:1320px}.max-w-\[calc\(100\%-2\.5rem\)\]{max-width:calc(100% - 2.5rem)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[100px\]{min-width:100px}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-2{--tw-translate-x:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-2{--tw-translate-x:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[40px\]{--tw-translate-x:40px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\!-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1)!important;translate:var(--tw-translate-x) var(--tw-translate-y)!important}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-\[0\.7px\]{--tw-translate-y:calc(.7px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-px{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.transform-gpu{transform:translateZ(0) var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-none{animation:none}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-none{resize:none}.resize-y{resize:vertical}.scroll-py-1{scroll-padding-block:calc(var(--spacing) * 1)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[220px_1fr_100px_80px\]{grid-template-columns:220px 1fr 100px 80px}.grid-cols-\[260px_1fr_120px_100px\]{grid-template-columns:260px 1fr 120px 100px}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-columns:auto minmax(0,1fr) auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}.rounded-\[2px\]{border-radius:2px}.rounded-\[10px\]{border-radius:10px}.rounded-\[20px\]{border-radius:20px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-double{--tw-border-style:double;border-style:double}.\!border-graph-handle-border{border-color:var(--graph-handle-border)!important}.border-accent{border-color:var(--accent)}.border-border,.border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/40{border-color:color-mix(in oklab, var(--border) 40%, transparent)}}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.border-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.border-border\/70{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/70{border-color:color-mix(in oklab, var(--border) 70%, transparent)}}.border-border\/80{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/80{border-color:color-mix(in oklab, var(--border) 80%, transparent)}}.border-card{border-color:var(--card)}.border-destructive\/12{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/12{border-color:color-mix(in oklab, var(--destructive) 12%, transparent)}}.border-destructive\/16{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/16{border-color:color-mix(in oklab, var(--destructive) 16%, transparent)}}.border-destructive\/20{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/20{border-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/30{border-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.border-graph-attention\/24{border-color:var(--graph-attention)}@supports (color:color-mix(in lab, red, red)){.border-graph-attention\/24{border-color:color-mix(in oklab, var(--graph-attention) 24%, transparent)}}.border-graph-attention\/70{border-color:var(--graph-attention)}@supports (color:color-mix(in lab, red, red)){.border-graph-attention\/70{border-color:color-mix(in oklab, var(--graph-attention) 70%, transparent)}}.border-graph-node-border{border-color:var(--graph-node-border)}.border-graph-selection\/45{border-color:var(--graph-selection)}@supports (color:color-mix(in lab, red, red)){.border-graph-selection\/45{border-color:color-mix(in oklab, var(--graph-selection) 45%, transparent)}}.border-graph-selection\/55{border-color:var(--graph-selection)}@supports (color:color-mix(in lab, red, red)){.border-graph-selection\/55{border-color:color-mix(in oklab, var(--graph-selection) 55%, transparent)}}.border-graph-selection\/75{border-color:var(--graph-selection)}@supports (color:color-mix(in lab, red, red)){.border-graph-selection\/75{border-color:color-mix(in oklab, var(--graph-selection) 75%, transparent)}}.border-graph-selection\/80{border-color:var(--graph-selection)}@supports (color:color-mix(in lab, red, red)){.border-graph-selection\/80{border-color:color-mix(in oklab, var(--graph-selection) 80%, transparent)}}.border-graph-selection\/90{border-color:var(--graph-selection)}@supports (color:color-mix(in lab, red, red)){.border-graph-selection\/90{border-color:color-mix(in oklab, var(--graph-selection) 90%, transparent)}}.border-graph-status-error\/16{border-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-error\/16{border-color:color-mix(in oklab, var(--graph-status-error) 16%, transparent)}}.border-graph-status-error\/20{border-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-error\/20{border-color:color-mix(in oklab, var(--graph-status-error) 20%, transparent)}}.border-graph-status-error\/28{border-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-error\/28{border-color:color-mix(in oklab, var(--graph-status-error) 28%, transparent)}}.border-graph-status-error\/30{border-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-error\/30{border-color:color-mix(in oklab, var(--graph-status-error) 30%, transparent)}}.border-graph-status-error\/40{border-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-error\/40{border-color:color-mix(in oklab, var(--graph-status-error) 40%, transparent)}}.border-graph-status-idle\/10{border-color:var(--graph-status-idle)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-idle\/10{border-color:color-mix(in oklab, var(--graph-status-idle) 10%, transparent)}}.border-graph-status-idle\/12{border-color:var(--graph-status-idle)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-idle\/12{border-color:color-mix(in oklab, var(--graph-status-idle) 12%, transparent)}}.border-graph-status-idle\/18{border-color:var(--graph-status-idle)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-idle\/18{border-color:color-mix(in oklab, var(--graph-status-idle) 18%, transparent)}}.border-graph-status-idle\/20{border-color:var(--graph-status-idle)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-idle\/20{border-color:color-mix(in oklab, var(--graph-status-idle) 20%, transparent)}}.border-graph-status-initializing\/14{border-color:var(--graph-status-initializing)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-initializing\/14{border-color:color-mix(in oklab, var(--graph-status-initializing) 14%, transparent)}}.border-graph-status-initializing\/16{border-color:var(--graph-status-initializing)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-initializing\/16{border-color:color-mix(in oklab, var(--graph-status-initializing) 16%, transparent)}}.border-graph-status-running\/14{border-color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-running\/14{border-color:color-mix(in oklab, var(--graph-status-running) 14%, transparent)}}.border-graph-status-running\/18{border-color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-running\/18{border-color:color-mix(in oklab, var(--graph-status-running) 18%, transparent)}}.border-graph-status-running\/20{border-color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-running\/20{border-color:color-mix(in oklab, var(--graph-status-running) 20%, transparent)}}.border-graph-status-running\/28{border-color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-running\/28{border-color:color-mix(in oklab, var(--graph-status-running) 28%, transparent)}}.border-graph-status-running\/30{border-color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-running\/30{border-color:color-mix(in oklab, var(--graph-status-running) 30%, transparent)}}.border-graph-status-sleeping\/18{border-color:var(--graph-status-sleeping)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-sleeping\/18{border-color:color-mix(in oklab, var(--graph-status-sleeping) 18%, transparent)}}.border-graph-status-sleeping\/26{border-color:var(--graph-status-sleeping)}@supports (color:color-mix(in lab, red, red)){.border-graph-status-sleeping\/26{border-color:color-mix(in oklab, var(--graph-status-sleeping) 26%, transparent)}}.border-input{border-color:var(--input)}.border-muted-foreground{border-color:var(--muted-foreground)}.border-primary,.border-primary\/15{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/15{border-color:color-mix(in oklab, var(--primary) 15%, transparent)}}.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/20{border-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.border-ring\/25{border-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.border-ring\/25{border-color:color-mix(in oklab, var(--ring) 25%, transparent)}}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.\!bg-graph-handle-bg{background-color:var(--graph-handle-bg)!important}.\!bg-transparent{background-color:#0000!important}.bg-accent\/10{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/10{background-color:color-mix(in oklab, var(--accent) 10%, transparent)}}.bg-accent\/15{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/15{background-color:color-mix(in oklab, var(--accent) 15%, transparent)}}.bg-accent\/20{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/20{background-color:color-mix(in oklab, var(--accent) 20%, transparent)}}.bg-accent\/25{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/25{background-color:color-mix(in oklab, var(--accent) 25%, transparent)}}.bg-accent\/30{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/30{background-color:color-mix(in oklab, var(--accent) 30%, transparent)}}.bg-accent\/35{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/35{background-color:color-mix(in oklab, var(--accent) 35%, transparent)}}.bg-accent\/45{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/45{background-color:color-mix(in oklab, var(--accent) 45%, transparent)}}.bg-accent\/50{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/50{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.bg-accent\/55{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/55{background-color:color-mix(in oklab, var(--accent) 55%, transparent)}}.bg-accent\/60{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/60{background-color:color-mix(in oklab, var(--accent) 60%, transparent)}}.bg-accent\/65{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/65{background-color:color-mix(in oklab, var(--accent) 65%, transparent)}}.bg-accent\/70{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/70{background-color:color-mix(in oklab, var(--accent) 70%, transparent)}}.bg-accent\/80{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/80{background-color:color-mix(in oklab, var(--accent) 80%, transparent)}}.bg-background,.bg-background\/20{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/20{background-color:color-mix(in oklab, var(--background) 20%, transparent)}}.bg-background\/24{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/24{background-color:color-mix(in oklab, var(--background) 24%, transparent)}}.bg-background\/28{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/28{background-color:color-mix(in oklab, var(--background) 28%, transparent)}}.bg-background\/30{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/30{background-color:color-mix(in oklab, var(--background) 30%, transparent)}}.bg-background\/35{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/35{background-color:color-mix(in oklab, var(--background) 35%, transparent)}}.bg-background\/40{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/40{background-color:color-mix(in oklab, var(--background) 40%, transparent)}}.bg-background\/42{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/42{background-color:color-mix(in oklab, var(--background) 42%, transparent)}}.bg-background\/44{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/44{background-color:color-mix(in oklab, var(--background) 44%, transparent)}}.bg-background\/45{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/45{background-color:color-mix(in oklab, var(--background) 45%, transparent)}}.bg-background\/50{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/50{background-color:color-mix(in oklab, var(--background) 50%, transparent)}}.bg-background\/55{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/55{background-color:color-mix(in oklab, var(--background) 55%, transparent)}}.bg-background\/60{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/60{background-color:color-mix(in oklab, var(--background) 60%, transparent)}}.bg-background\/72{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/72{background-color:color-mix(in oklab, var(--background) 72%, transparent)}}.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab, var(--background) 80%, transparent)}}.bg-background\/88{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/88{background-color:color-mix(in oklab, var(--background) 88%, transparent)}}.bg-background\/92{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/92{background-color:color-mix(in oklab, var(--background) 92%, transparent)}}.bg-border{background-color:var(--border)}.bg-card\/20{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/20{background-color:color-mix(in oklab, var(--card) 20%, transparent)}}.bg-card\/25{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/25{background-color:color-mix(in oklab, var(--card) 25%, transparent)}}.bg-card\/30{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/30{background-color:color-mix(in oklab, var(--card) 30%, transparent)}}.bg-card\/40{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/40{background-color:color-mix(in oklab, var(--card) 40%, transparent)}}.bg-card\/85{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/85{background-color:color-mix(in oklab, var(--card) 85%, transparent)}}.bg-card\/\[0\.14\]{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/\[0\.14\]{background-color:color-mix(in oklab, var(--card) 14.0%, transparent)}}.bg-card\/\[0\.18\]{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/\[0\.18\]{background-color:color-mix(in oklab, var(--card) 18%, transparent)}}.bg-destructive,.bg-destructive\/6{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/6{background-color:color-mix(in oklab, var(--destructive) 6%, transparent)}}.bg-destructive\/8{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/8{background-color:color-mix(in oklab, var(--destructive) 8%, transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-destructive\/18{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/18{background-color:color-mix(in oklab, var(--destructive) 18%, transparent)}}.bg-foreground,.bg-foreground\/70{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/70{background-color:color-mix(in oklab, var(--foreground) 70%, transparent)}}.bg-graph-attention{background-color:var(--graph-attention)}.bg-graph-bg{background-color:var(--graph-bg)}.bg-graph-node-bg,.bg-graph-node-bg\/50{background-color:var(--graph-node-bg)}@supports (color:color-mix(in lab, red, red)){.bg-graph-node-bg\/50{background-color:color-mix(in oklab, var(--graph-node-bg) 50%, transparent)}}.bg-graph-node-bg\/72{background-color:var(--graph-node-bg)}@supports (color:color-mix(in lab, red, red)){.bg-graph-node-bg\/72{background-color:color-mix(in oklab, var(--graph-node-bg) 72%, transparent)}}.bg-graph-selection\/10{background-color:var(--graph-selection)}@supports (color:color-mix(in lab, red, red)){.bg-graph-selection\/10{background-color:color-mix(in oklab, var(--graph-selection) 10%, transparent)}}.bg-graph-selection\/14{background-color:var(--graph-selection)}@supports (color:color-mix(in lab, red, red)){.bg-graph-selection\/14{background-color:color-mix(in oklab, var(--graph-selection) 14%, transparent)}}.bg-graph-status-error,.bg-graph-status-error\/10{background-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-error\/10{background-color:color-mix(in oklab, var(--graph-status-error) 10%, transparent)}}.bg-graph-status-error\/94{background-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-error\/94{background-color:color-mix(in oklab, var(--graph-status-error) 94%, transparent)}}.bg-graph-status-error\/\[0\.1\]{background-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-error\/\[0\.1\]{background-color:color-mix(in oklab, var(--graph-status-error) 10%, transparent)}}.bg-graph-status-error\/\[0\.05\]{background-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-error\/\[0\.05\]{background-color:color-mix(in oklab, var(--graph-status-error) 5%, transparent)}}.bg-graph-status-error\/\[0\.09\]{background-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-error\/\[0\.09\]{background-color:color-mix(in oklab, var(--graph-status-error) 9%, transparent)}}.bg-graph-status-error\/\[0\.038\]{background-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-error\/\[0\.038\]{background-color:color-mix(in oklab, var(--graph-status-error) 3.8%, transparent)}}.bg-graph-status-idle,.bg-graph-status-idle\/20{background-color:var(--graph-status-idle)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-idle\/20{background-color:color-mix(in oklab, var(--graph-status-idle) 20%, transparent)}}.bg-graph-status-idle\/\[0\.04\]{background-color:var(--graph-status-idle)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-idle\/\[0\.04\]{background-color:color-mix(in oklab, var(--graph-status-idle) 4%, transparent)}}.bg-graph-status-idle\/\[0\.06\]{background-color:var(--graph-status-idle)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-idle\/\[0\.06\]{background-color:color-mix(in oklab, var(--graph-status-idle) 6%, transparent)}}.bg-graph-status-idle\/\[0\.12\]{background-color:var(--graph-status-idle)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-idle\/\[0\.12\]{background-color:color-mix(in oklab, var(--graph-status-idle) 12%, transparent)}}.bg-graph-status-initializing,.bg-graph-status-initializing\/62{background-color:var(--graph-status-initializing)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-initializing\/62{background-color:color-mix(in oklab, var(--graph-status-initializing) 62%, transparent)}}.bg-graph-status-initializing\/\[0\.07\]{background-color:var(--graph-status-initializing)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-initializing\/\[0\.07\]{background-color:color-mix(in oklab, var(--graph-status-initializing) 7.0%, transparent)}}.bg-graph-status-initializing\/\[0\.08\]{background-color:var(--graph-status-initializing)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-initializing\/\[0\.08\]{background-color:color-mix(in oklab, var(--graph-status-initializing) 8%, transparent)}}.bg-graph-status-running,.bg-graph-status-running\/15{background-color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-running\/15{background-color:color-mix(in oklab, var(--graph-status-running) 15%, transparent)}}.bg-graph-status-running\/80{background-color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-running\/80{background-color:color-mix(in oklab, var(--graph-status-running) 80%, transparent)}}.bg-graph-status-running\/\[0\.06\]{background-color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-running\/\[0\.06\]{background-color:color-mix(in oklab, var(--graph-status-running) 6%, transparent)}}.bg-graph-status-running\/\[0\.08\]{background-color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-running\/\[0\.08\]{background-color:color-mix(in oklab, var(--graph-status-running) 8%, transparent)}}.bg-graph-status-running\/\[0\.12\]{background-color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-running\/\[0\.12\]{background-color:color-mix(in oklab, var(--graph-status-running) 12%, transparent)}}.bg-graph-status-sleeping,.bg-graph-status-sleeping\/\[0\.12\]{background-color:var(--graph-status-sleeping)}@supports (color:color-mix(in lab, red, red)){.bg-graph-status-sleeping\/\[0\.12\]{background-color:color-mix(in oklab, var(--graph-status-sleeping) 12%, transparent)}}.bg-graph-status-terminated{background-color:var(--graph-status-terminated)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\/30{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/30{background-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.bg-muted-foreground\/80{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/80{background-color:color-mix(in oklab, var(--muted-foreground) 80%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/8{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/8{background-color:color-mix(in oklab, var(--primary) 8%, transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.bg-primary\/50{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/50{background-color:color-mix(in oklab, var(--primary) 50%, transparent)}}.bg-primary\/\[0\.1\]{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/\[0\.1\]{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.bg-ring,.bg-ring\/28{background-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.bg-ring\/28{background-color:color-mix(in oklab, var(--ring) 28%, transparent)}}.bg-ring\/30{background-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.bg-ring\/30{background-color:color-mix(in oklab, var(--ring) 30%, transparent)}}.bg-ring\/60{background-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.bg-ring\/60{background-color:color-mix(in oklab, var(--ring) 60%, transparent)}}.bg-ring\/82{background-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.bg-ring\/82{background-color:color-mix(in oklab, var(--ring) 82%, transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent\/25{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab, red, red)){.bg-sidebar-accent\/25{background-color:color-mix(in oklab, var(--sidebar-accent) 25%, transparent)}}.bg-sidebar-accent\/60{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab, red, red)){.bg-sidebar-accent\/60{background-color:color-mix(in oklab, var(--sidebar-accent) 60%, transparent)}}.bg-sidebar\/80{background-color:var(--sidebar)}@supports (color:color-mix(in lab, red, red)){.bg-sidebar\/80{background-color:color-mix(in oklab, var(--sidebar) 80%, transparent)}}.bg-surface-1,.bg-surface-1\/20{background-color:var(--surface-1)}@supports (color:color-mix(in lab, red, red)){.bg-surface-1\/20{background-color:color-mix(in oklab, var(--surface-1) 20%, transparent)}}.bg-surface-1\/24{background-color:var(--surface-1)}@supports (color:color-mix(in lab, red, red)){.bg-surface-1\/24{background-color:color-mix(in oklab, var(--surface-1) 24%, transparent)}}.bg-surface-1\/28{background-color:var(--surface-1)}@supports (color:color-mix(in lab, red, red)){.bg-surface-1\/28{background-color:color-mix(in oklab, var(--surface-1) 28%, transparent)}}.bg-surface-2,.bg-surface-2\/62{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.bg-surface-2\/62{background-color:color-mix(in oklab, var(--surface-2) 62%, transparent)}}.bg-surface-2\/90{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.bg-surface-2\/90{background-color:color-mix(in oklab, var(--surface-2) 90%, transparent)}}.bg-surface-2\/92{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.bg-surface-2\/92{background-color:color-mix(in oklab, var(--surface-2) 92%, transparent)}}.bg-surface-3{background-color:var(--surface-3)}.bg-surface-overlay,.bg-surface-overlay\/60{background-color:var(--surface-overlay)}@supports (color:color-mix(in lab, red, red)){.bg-surface-overlay\/60{background-color:color-mix(in oklab, var(--surface-overlay) 60%, transparent)}}.bg-surface-overlay\/80{background-color:var(--surface-overlay)}@supports (color:color-mix(in lab, red, red)){.bg-surface-overlay\/80{background-color:color-mix(in oklab, var(--surface-overlay) 80%, transparent)}}.bg-surface-overlay\/88{background-color:var(--surface-overlay)}@supports (color:color-mix(in lab, red, red)){.bg-surface-overlay\/88{background-color:color-mix(in oklab, var(--surface-overlay) 88%, transparent)}}.bg-surface-overlay\/90{background-color:var(--surface-overlay)}@supports (color:color-mix(in lab, red, red)){.bg-surface-overlay\/90{background-color:color-mix(in oklab, var(--surface-overlay) 90%, transparent)}}.bg-surface-overlay\/92{background-color:var(--surface-overlay)}@supports (color:color-mix(in lab, red, red)){.bg-surface-overlay\/92{background-color:color-mix(in oklab, var(--surface-overlay) 92%, transparent)}}.bg-surface-overlay\/94{background-color:var(--surface-overlay)}@supports (color:color-mix(in lab, red, red)){.bg-surface-overlay\/94{background-color:color-mix(in oklab, var(--surface-overlay) 94%, transparent)}}.bg-transparent{background-color:#0000}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-l{--tw-gradient-position:to left in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-background\/28{--tw-gradient-from:var(--background)}@supports (color:color-mix(in lab, red, red)){.from-background\/28{--tw-gradient-from:color-mix(in oklab, var(--background) 28%, transparent)}}.from-background\/28{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-foreground\/\[0\.04\]{--tw-gradient-from:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.from-foreground\/\[0\.04\]{--tw-gradient-from:color-mix(in oklab, var(--foreground) 4%, transparent)}}.from-foreground\/\[0\.04\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-background\/70{--tw-gradient-via:var(--background)}@supports (color:color-mix(in lab, red, red)){.via-background\/70{--tw-gradient-via:color-mix(in oklab, var(--background) 70%, transparent)}}.via-background\/70{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-background\/80{--tw-gradient-via:var(--background)}@supports (color:color-mix(in lab, red, red)){.via-background\/80{--tw-gradient-via:color-mix(in oklab, var(--background) 80%, transparent)}}.via-background\/80{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-background\/90{--tw-gradient-via:var(--background)}@supports (color:color-mix(in lab, red, red)){.via-background\/90{--tw-gradient-via:color-mix(in oklab, var(--background) 90%, transparent)}}.via-background\/90{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-background{--tw-gradient-to:var(--background);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-background\/95{--tw-gradient-to:var(--background)}@supports (color:color-mix(in lab, red, red)){.to-background\/95{--tw-gradient-to:color-mix(in oklab, var(--background) 95%, transparent)}}.to-background\/95{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.fill-foreground{fill:var(--foreground)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-px{padding:1px}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-1\.75{padding-block:calc(var(--spacing) * 1.75)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pt-12{padding-top:calc(var(--spacing) * 12)}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pr-14{padding-right:calc(var(--spacing) * 14)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-\[10vh\]{padding-bottom:10vh}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.9em\]{font-size:.9em}.text-\[1\.1rem\]{font-size:1.1rem}.text-\[1\.15rem\]{font-size:1.15rem}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[22px\]{font-size:22px}.text-\[26px\]{font-size:26px}.text-\[28px\]{font-size:28px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.03em\]{--tw-tracking:-.03em;letter-spacing:-.03em}.tracking-\[-0\.04em\]{--tw-tracking:-.04em;letter-spacing:-.04em}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#6366F1\]{color:#6366f1}.text-accent-foreground,.text-accent-foreground\/90{color:var(--accent-foreground)}@supports (color:color-mix(in lab, red, red)){.text-accent-foreground\/90{color:color-mix(in oklab, var(--accent-foreground) 90%, transparent)}}.text-background{color:var(--background)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-foreground,.text-foreground\/58{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/58{color:color-mix(in oklab, var(--foreground) 58%, transparent)}}.text-foreground\/62{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/62{color:color-mix(in oklab, var(--foreground) 62%, transparent)}}.text-foreground\/66{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/66{color:color-mix(in oklab, var(--foreground) 66%, transparent)}}.text-foreground\/68{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/68{color:color-mix(in oklab, var(--foreground) 68%, transparent)}}.text-foreground\/70{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/70{color:color-mix(in oklab, var(--foreground) 70%, transparent)}}.text-foreground\/72{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/72{color:color-mix(in oklab, var(--foreground) 72%, transparent)}}.text-foreground\/74{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/74{color:color-mix(in oklab, var(--foreground) 74%, transparent)}}.text-foreground\/75{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/75{color:color-mix(in oklab, var(--foreground) 75%, transparent)}}.text-foreground\/78{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/78{color:color-mix(in oklab, var(--foreground) 78%, transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab, var(--foreground) 80%, transparent)}}.text-foreground\/82{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/82{color:color-mix(in oklab, var(--foreground) 82%, transparent)}}.text-foreground\/84{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/84{color:color-mix(in oklab, var(--foreground) 84%, transparent)}}.text-foreground\/85{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/85{color:color-mix(in oklab, var(--foreground) 85%, transparent)}}.text-foreground\/86{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/86{color:color-mix(in oklab, var(--foreground) 86%, transparent)}}.text-foreground\/88{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/88{color:color-mix(in oklab, var(--foreground) 88%, transparent)}}.text-foreground\/90{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/90{color:color-mix(in oklab, var(--foreground) 90%, transparent)}}.text-graph-attention-text{color:var(--graph-attention-text)}.text-graph-status-error,.text-graph-status-error\/72{color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-error\/72{color:color-mix(in oklab, var(--graph-status-error) 72%, transparent)}}.text-graph-status-error\/78{color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-error\/78{color:color-mix(in oklab, var(--graph-status-error) 78%, transparent)}}.text-graph-status-error\/82{color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-error\/82{color:color-mix(in oklab, var(--graph-status-error) 82%, transparent)}}.text-graph-status-error\/84{color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-error\/84{color:color-mix(in oklab, var(--graph-status-error) 84%, transparent)}}.text-graph-status-error\/90{color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-error\/90{color:color-mix(in oklab, var(--graph-status-error) 90%, transparent)}}.text-graph-status-idle,.text-graph-status-idle\/72{color:var(--graph-status-idle)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-idle\/72{color:color-mix(in oklab, var(--graph-status-idle) 72%, transparent)}}.text-graph-status-idle\/78{color:var(--graph-status-idle)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-idle\/78{color:color-mix(in oklab, var(--graph-status-idle) 78%, transparent)}}.text-graph-status-idle\/88{color:var(--graph-status-idle)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-idle\/88{color:color-mix(in oklab, var(--graph-status-idle) 88%, transparent)}}.text-graph-status-initializing\/38{color:var(--graph-status-initializing)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-initializing\/38{color:color-mix(in oklab, var(--graph-status-initializing) 38%, transparent)}}.text-graph-status-initializing\/84{color:var(--graph-status-initializing)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-initializing\/84{color:color-mix(in oklab, var(--graph-status-initializing) 84%, transparent)}}.text-graph-status-running,.text-graph-status-running\/72{color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-running\/72{color:color-mix(in oklab, var(--graph-status-running) 72%, transparent)}}.text-graph-status-running\/80{color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-running\/80{color:color-mix(in oklab, var(--graph-status-running) 80%, transparent)}}.text-graph-status-running\/90{color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.text-graph-status-running\/90{color:color-mix(in oklab, var(--graph-status-running) 90%, transparent)}}.text-graph-status-sleeping{color:var(--graph-status-sleeping)}.text-muted-foreground,.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/50{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/60{color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.text-muted-foreground\/62{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/62{color:color-mix(in oklab, var(--muted-foreground) 62%, transparent)}}.text-muted-foreground\/64{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/64{color:color-mix(in oklab, var(--muted-foreground) 64%, transparent)}}.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/70{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}}.text-muted-foreground\/72{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/72{color:color-mix(in oklab, var(--muted-foreground) 72%, transparent)}}.text-muted-foreground\/75{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/75{color:color-mix(in oklab, var(--muted-foreground) 75%, transparent)}}.text-muted-foreground\/78{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/78{color:color-mix(in oklab, var(--muted-foreground) 78%, transparent)}}.text-muted-foreground\/80{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/80{color:color-mix(in oklab, var(--muted-foreground) 80%, transparent)}}.text-muted-foreground\/82{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/82{color:color-mix(in oklab, var(--muted-foreground) 82%, transparent)}}.text-muted-foreground\/84{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/84{color:color-mix(in oklab, var(--muted-foreground) 84%, transparent)}}.text-popover-foreground,.text-popover-foreground\/90{color:var(--popover-foreground)}@supports (color:color-mix(in lab, red, red)){.text-popover-foreground\/90{color:color-mix(in oklab, var(--popover-foreground) 90%, transparent)}}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/48{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab, red, red)){.text-sidebar-foreground\/48{color:color-mix(in oklab, var(--sidebar-foreground) 48%, transparent)}}.text-sidebar-foreground\/62{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab, red, red)){.text-sidebar-foreground\/62{color:color-mix(in oklab, var(--sidebar-foreground) 62%, transparent)}}.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab, red, red)){.text-sidebar-foreground\/70{color:color-mix(in oklab, var(--sidebar-foreground) 70%, transparent)}}.text-sidebar-foreground\/74{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab, red, red)){.text-sidebar-foreground\/74{color:color-mix(in oklab, var(--sidebar-foreground) 74%, transparent)}}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.\!opacity-0{opacity:0!important}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_var\(--graph-glow\)\,0_0_18px_var\(--graph-glow\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--graph-glow)), 0 0 18px var(--tw-shadow-color,var(--graph-glow));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_var\(--graph-glow\)\,0_0_24px_var\(--graph-glow\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--graph-glow)), 0 0 24px var(--tw-shadow-color,var(--graph-glow));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_var\(--graph-glow\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--graph-glow));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_8px_color-mix\(in_srgb\,var\(--foreground\)_30\%\,transparent\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,var(--foreground))}@supports (color:color-mix(in lab, red, red)){.shadow-\[0_0_8px_color-mix\(in_srgb\,var\(--foreground\)_30\%\,transparent\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,color-mix(in srgb,var(--foreground) 30%,transparent))}}.shadow-\[0_0_8px_color-mix\(in_srgb\,var\(--foreground\)_30\%\,transparent\)\]{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_10px_var\(--graph-status-idle\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,var(--graph-status-idle));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_10px_var\(--graph-status-running\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,var(--graph-status-running));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_10px_24px_var\(--shell-scrim\)\]{--tw-shadow:0 10px 24px var(--tw-shadow-color,var(--shell-scrim));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_18px_36px_-26px_var\(--shell-scrim\)\]{--tw-shadow:0 18px 36px -26px var(--tw-shadow-color,var(--shell-scrim));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_28px_80px_-32px_var\(--shell-scrim\)\]{--tw-shadow:0 28px 80px -32px var(--tw-shadow-color,var(--shell-scrim));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-black\/40{--tw-shadow-color:#0006}@supports (color:color-mix(in lab, red, red)){.shadow-black\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-ring\/5{--tw-shadow-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.shadow-ring\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--ring) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-ring\/10{--tw-shadow-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.shadow-ring\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--ring) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-graph-selection\/25{--tw-ring-color:var(--graph-selection)}@supports (color:color-mix(in lab, red, red)){.ring-graph-selection\/25{--tw-ring-color:color-mix(in oklab, var(--graph-selection) 25%, transparent)}}.ring-graph-selection\/35{--tw-ring-color:var(--graph-selection)}@supports (color:color-mix(in lab, red, red)){.ring-graph-selection\/35{--tw-ring-color:color-mix(in oklab, var(--graph-selection) 35%, transparent)}}.ring-ring\/35{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.ring-ring\/35{--tw-ring-color:color-mix(in oklab, var(--ring) 35%, transparent)}}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.ring-white\/\[0\.04\]{--tw-ring-color:#ffffff0a}@supports (color:color-mix(in lab, red, red)){.ring-white\/\[0\.04\]{--tw-ring-color:color-mix(in oklab, var(--color-white) 4%, transparent)}}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[1px\]{--tw-backdrop-blur:blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\[6px\]{--tw-backdrop-blur:blur(6px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,border-color\,color\]{transition-property:background-color,border-color,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,border-color\,transform\]{transition-property:background-color,border-color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,color\]{transition-property:background-color,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,background-color\,box-shadow\]{transition-property:border-color,background-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,box-shadow\,background-color\]{transition-property:border-color,box-shadow,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,box-shadow\]{transition-property:border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\]{transition-property:border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,border-color\,background-color\]{transition-property:color,border-color,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,border-color\,box-shadow\]{transition-property:opacity,border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,transform\,box-shadow\]{transition-property:opacity,transform,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.delay-100{transition-delay:.1s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.\[contain\:paint\]{contain:paint}.delay-100{--tw-animation-delay:.1s;animation-delay:.1s}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.zoom-in-95{--tw-enter-scale:.95}.\[contain-intrinsic-size\:auto_100px\]{contain-intrinsic-size:auto 100px}.\[content-visibility\:auto\]{content-visibility:auto}.running{animation-play-state:running}@media (hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:bg-accent\/40:is(:where(.group):hover *){background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-accent\/40:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--accent) 40%, transparent)}}.group-hover\:bg-primary\/30:is(:where(.group):hover *){background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-primary\/30:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--primary) 30%, transparent)}}.group-hover\:text-sidebar-accent-foreground\/88:is(:where(.group):hover *){color:var(--sidebar-accent-foreground)}@supports (color:color-mix(in lab, red, red)){.group-hover\:text-sidebar-accent-foreground\/88:is(:where(.group):hover *){color:color-mix(in oklab, var(--sidebar-accent-foreground) 88%, transparent)}}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder,.placeholder\:text-muted-foreground\/70::placeholder{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-muted-foreground\/70::placeholder{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-3:after{content:var(--tw-content);inset:calc(var(--spacing) * -3)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing) * 0)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.focus-within\:border-ring\/40:focus-within{border-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-within\:border-ring\/40:focus-within{border-color:color-mix(in oklab, var(--ring) 40%, transparent)}}.focus-within\:border-ring\/45:focus-within{border-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-within\:border-ring\/45:focus-within{border-color:color-mix(in oklab, var(--ring) 45%, transparent)}}.focus-within\:opacity-100:focus-within{opacity:1}.focus-within\:ring-\[3px\]:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-ring\/30:focus-within{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-within\:ring-ring\/30:focus-within{--tw-ring-color:color-mix(in oklab, var(--ring) 30%, transparent)}}.focus-within\:ring-ring\/35:focus-within{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-within\:ring-ring\/35:focus-within{--tw-ring-color:color-mix(in oklab, var(--ring) 35%, transparent)}}@media (hover:hover){.hover\:border-border:hover{border-color:var(--border)}.hover\:border-graph-node-border-hover:hover{border-color:var(--graph-node-border-hover)}.hover\:border-ring\/25:hover{border-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.hover\:border-ring\/25:hover{border-color:color-mix(in oklab, var(--ring) 25%, transparent)}}.hover\:border-ring\/30:hover{border-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.hover\:border-ring\/30:hover{border-color:color-mix(in oklab, var(--ring) 30%, transparent)}}.hover\:border-ring\/35:hover{border-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.hover\:border-ring\/35:hover{border-color:color-mix(in oklab, var(--ring) 35%, transparent)}}.hover\:bg-accent:hover,.hover\:bg-accent\/15:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/15:hover{background-color:color-mix(in oklab, var(--accent) 15%, transparent)}}.hover\:bg-accent\/20:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/20:hover{background-color:color-mix(in oklab, var(--accent) 20%, transparent)}}.hover\:bg-accent\/25:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/25:hover{background-color:color-mix(in oklab, var(--accent) 25%, transparent)}}.hover\:bg-accent\/30:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/30:hover{background-color:color-mix(in oklab, var(--accent) 30%, transparent)}}.hover\:bg-accent\/35:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/35:hover{background-color:color-mix(in oklab, var(--accent) 35%, transparent)}}.hover\:bg-accent\/45:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/45:hover{background-color:color-mix(in oklab, var(--accent) 45%, transparent)}}.hover\:bg-accent\/60:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/60:hover{background-color:color-mix(in oklab, var(--accent) 60%, transparent)}}.hover\:bg-accent\/65:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/65:hover{background-color:color-mix(in oklab, var(--accent) 65%, transparent)}}.hover\:bg-accent\/80:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/80:hover{background-color:color-mix(in oklab, var(--accent) 80%, transparent)}}.hover\:bg-background\/90:hover{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-background\/90:hover{background-color:color-mix(in oklab, var(--background) 90%, transparent)}}.hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.hover\:bg-destructive\/18:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/18:hover{background-color:color-mix(in oklab, var(--destructive) 18%, transparent)}}.hover\:bg-destructive\/24:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/24:hover{background-color:color-mix(in oklab, var(--destructive) 24%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-graph-status-error\/\[0\.1\]:hover{background-color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-graph-status-error\/\[0\.1\]:hover{background-color:color-mix(in oklab, var(--graph-status-error) 10%, transparent)}}.hover\:bg-graph-status-running\/\[0\.1\]:hover{background-color:var(--graph-status-running)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-graph-status-running\/\[0\.1\]:hover{background-color:color-mix(in oklab, var(--graph-status-running) 10%, transparent)}}.hover\:bg-inherit:hover{background-color:inherit}.hover\:bg-muted\/30:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/30:hover{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:bg-sidebar-accent:hover,.hover\:bg-sidebar-accent\/45:hover{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-sidebar-accent\/45:hover{background-color:color-mix(in oklab, var(--sidebar-accent) 45%, transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-graph-status-error:hover,.hover\:text-graph-status-error\/84:hover{color:var(--graph-status-error)}@supports (color:color-mix(in lab, red, red)){.hover\:text-graph-status-error\/84:hover{color:color-mix(in oklab, var(--graph-status-error) 84%, transparent)}}.hover\:text-graph-status-running:hover{color:var(--graph-status-running)}.hover\:text-inherit:hover{color:inherit}.hover\:text-popover-foreground:hover{color:var(--popover-foreground)}.hover\:text-primary\/80:hover{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab, var(--primary) 80%, transparent)}}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-ring:focus{border-color:var(--ring)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:bg-background\/35:focus{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.focus\:bg-background\/35:focus{background-color:color-mix(in oklab, var(--background) 35%, transparent)}}.focus\:bg-background\/65:focus{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.focus\:bg-background\/65:focus{background-color:color-mix(in oklab, var(--background) 65%, transparent)}}.focus\:bg-background\/70:focus{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.focus\:bg-background\/70:focus{background-color:color-mix(in oklab, var(--background) 70%, transparent)}}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:opacity-100:focus{opacity:1}.focus\:ring-\[3px\]:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring\/50:focus{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-ring\/50:focus{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-destructive\/50:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-destructive\/50:focus-visible{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:border-transparent:focus-visible{border-color:#0000}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/40:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 40%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.96\]:active{scale:.96}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-transparent:disabled{border-color:#0000}.disabled\:text-muted-foreground\/50:disabled{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.disabled\:text-muted-foreground\/50:disabled{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-45:disabled{opacity:.45}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[active\=true\]\:bg-sidebar-accent\/50[data-active=true]{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab, red, red)){.data-\[active\=true\]\:bg-sidebar-accent\/50[data-active=true]{background-color:color-mix(in oklab, var(--sidebar-accent) 50%, transparent)}}.data-\[active\=true\]\:font-bold[data-active=true]{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.data-\[active\=true\]\:text-\[\#6366F1\][data-active=true]{color:#6366f1}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing) * 12)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media (width>=40rem){.sm\:right-5{right:calc(var(--spacing) * 5)}.sm\:bottom-5{bottom:calc(var(--spacing) * 5)}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.sm\:border-border{border-color:var(--border)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}}@media (width>=48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:w-80{width:calc(var(--spacing) * 80)}.md\:w-\[35\%\]{width:35%}.md\:w-\[65\%\]{width:65%}.md\:max-w-md{max-width:var(--container-md)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[minmax\(0\,1\.1fr\)_minmax\(0\,0\.8fr\)_repeat\(5\,minmax\(0\,0\.72fr\)\)\]{grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr) repeat(5,minmax(0,.72fr))}.md\:grid-cols-\[minmax\(0\,1\.2fr\)_repeat\(6\,minmax\(0\,0\.8fr\)\)\]{grid-template-columns:minmax(0,1.2fr) repeat(6,minmax(0,.8fr))}.md\:grid-cols-\[minmax\(0\,1\.15fr\)_repeat\(6\,minmax\(0\,0\.75fr\)\)\]{grid-template-columns:minmax(0,1.15fr) repeat(6,minmax(0,.75fr))}.md\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1\.05fr\)_minmax\(0\,1\.2fr\)_minmax\(0\,1\.2fr\)_minmax\(0\,1\.25fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,1.25fr)}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-between{justify-content:space-between}.md\:justify-end{justify-content:flex-end}.md\:gap-4{gap:calc(var(--spacing) * 4)}.md\:px-12{padding-inline:calc(var(--spacing) * 12)}.md\:py-10{padding-block:calc(var(--spacing) * 10)}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (width>=64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[320px_minmax\(0\,1fr\)\]{grid-template-columns:320px minmax(0,1fr)}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media (width>=80rem){.xl\:col-span-1{grid-column:span 1/span 1}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[360px_minmax\(0\,1fr\)\]{grid-template-columns:360px minmax(0,1fr)}.xl\:grid-cols-\[minmax\(0\,0\.9fr\)_minmax\(0\,1\.1fr\)\]{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.xl\:grid-cols-\[minmax\(0\,1\.4fr\)_minmax\(260px\,0\.6fr\)\]{grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr)}}@media (width>=96rem){.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing) * 0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing) * 12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing) * 3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing) * 5)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab, var(--secondary) 90%, transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}a.\[a\&\]\:hover\:underline:hover{text-decoration-line:underline}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.75rem;--font-sans:"IBM Plex Sans", "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Menlo, monospace;--background:oklch(9% .002 260);--foreground:oklch(96.5% .002 260);--card:oklch(12.5% .002 260);--card-foreground:oklch(96.5% .002 260);--popover:oklch(12.5% .002 260);--popover-foreground:oklch(96.5% .002 260);--primary:oklch(96% .002 260);--primary-foreground:oklch(11% .002 260);--secondary:oklch(17% .002 260);--secondary-foreground:oklch(93% .002 260);--muted:oklch(15% .002 260);--muted-foreground:oklch(74% .003 260);--accent:oklch(20% .002 260);--accent-foreground:oklch(95% .002 260);--destructive:oklch(72% .002 260);--border:oklch(92% .002 260/.14);--input:oklch(92% .002 260/.18);--ring:oklch(96% .002 260/.88);--chart-1:oklch(84% .002 260);--chart-2:oklch(72% .002 260);--chart-3:oklch(60% .002 260);--chart-4:oklch(48% .002 260);--chart-5:oklch(36% .002 260);--sidebar:oklch(10.5% .002 260);--sidebar-foreground:oklch(93% .002 260);--sidebar-primary:oklch(96% .002 260);--sidebar-primary-foreground:oklch(11% .002 260);--sidebar-accent:oklch(16.5% .002 260);--sidebar-accent-foreground:oklch(93% .002 260);--sidebar-border:oklch(92% .002 260/.14);--sidebar-ring:oklch(96% .002 260/.88);--surface-1:oklch(10.5% .002 260);--surface-2:oklch(13% .002 260);--surface-3:oklch(16.5% .002 260);--surface-raised:oklch(14.5% .002 260);--surface-overlay:oklch(10.5% .002 260/.92);--glass-bg:oklch(12% .002 260/.94);--glass-border:oklch(95% .002 260/.1);--graph-bg:oklch(7.8% 0 0);--graph-node-bg:oklch(13.5% 0 0/.96);--graph-node-border:oklch(98% 0 0/.1);--graph-node-border-hover:oklch(98% 0 0/.24);--graph-selection:oklch(96% 0 0);--graph-handle-bg:oklch(92% 0 0/.2);--graph-handle-border:oklch(8% 0 0/.94);--graph-attention:oklch(96% 0 0);--graph-attention-text:oklch(96% 0 0);--graph-grid:oklch(98% 0 0/.07);--graph-edge:oklch(98% 0 0/.15);--graph-edge-active:oklch(98% 0 0/.86);--graph-glow:oklch(98% 0 0/.12);--graph-assistant:oklch(94% .002 260);--graph-status-running:oklch(72% .16 148);--graph-status-idle:oklch(74% .11 82);--graph-status-sleeping:oklch(72% .13 225);--graph-status-initializing:oklch(64% 0 0);--graph-status-error:oklch(63% .19 25);--graph-status-terminated:oklch(42% 0 0);--scrollbar-thumb:oklch(34% .002 260);--scrollbar-thumb-hover:oklch(44% .002 260);--shell-hairline:oklch(98% .002 260/.08);--shell-noise-dot:oklch(98% .002 260);--shell-noise-opacity:.022;--shell-scrim:oklch(3% .002 260/.58);--shell-spotlight-primary:oklch(98% .002 260/.032);--shell-spotlight-secondary:oklch(98% .002 260/.012);--shell-app-bg:linear-gradient(180deg, oklch(7% .002 260) 0%, oklch(8% .002 260) 100%);--shell-access-bg:linear-gradient(180deg, oklch(7% .002 260) 0%, oklch(8% .002 260) 100%);--shell-app-spotlight-primary:radial-gradient(circle at top left, var(--shell-spotlight-primary), transparent 18%);--shell-app-spotlight-secondary:radial-gradient(circle at 72% 12%, var(--shell-spotlight-secondary), transparent 18%);--shell-access-spotlight-primary:radial-gradient(circle at top left, var(--shell-spotlight-primary), transparent 18%);--shell-access-spotlight-secondary:radial-gradient(circle at 72% 12%, var(--shell-spotlight-secondary), transparent 18%);--shell-sweep:linear-gradient(180deg, oklch(98% .002 260/.02) 0%, transparent 16%, transparent 86%, oklch(98% .002 260/.012) 100%);--shell-surface-workspace:linear-gradient(180deg, oklch(11.5% .002 260/.9), oklch(10% .002 260/.86));--shell-surface-page:linear-gradient(180deg, oklch(13% .002 260/.9), oklch(11% .002 260/.88));--shell-surface-access:linear-gradient(180deg, oklch(13.5% .002 260/.96), oklch(11% .002 260/.94));--shell-surface-sweep:linear-gradient(180deg, oklch(98% .002 260/.026), transparent 14%, transparent 84%, oklch(98% .002 260/.012))}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.scrollbar-none{scrollbar-width:none;-ms-overflow-style:none}.scrollbar-none::-webkit-scrollbar{display:none}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.streaming-cursor{vertical-align:baseline;line-height:1;display:inline-block}.streaming-cursor:after{content:"";background:currentColor;border-radius:999px;width:.38em;height:1em;margin-left:.08em;animation:1s step-end infinite blink-cursor;display:inline-block;transform:translateY(1px)}@keyframes tool-call-pulse{0%,to{box-shadow:0 0 #ffffff1f}50%{box-shadow:0 0 10px 2px #ffffff2e}}.tool-call-pulse{animation:1s ease-in-out infinite tool-call-pulse}@keyframes idle-breathe{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.8;transform:scale(1.3)}}.idle-breathe{animation:3s ease-in-out infinite idle-breathe}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-shimmer{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 50%, var(--surface-2) 75%);background-size:200% 100%;animation:1.8s ease-in-out infinite shimmer}@keyframes fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:.3s ease-out both fade-in-up}@property --border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.agent-loading-border{border-radius:inherit;pointer-events:none;background:conic-gradient(from var(--border-angle) at 50% 50%, transparent 0%, transparent 36%, color-mix(in srgb, var(--graph-status-running) 8%, transparent) 45%, color-mix(in srgb, var(--graph-status-running) 20%, transparent) 54%, color-mix(in srgb, var(--graph-status-running) 38%, transparent) 63%, color-mix(in srgb, var(--graph-status-running) 62%, transparent) 72%, var(--graph-status-running) 82%, color-mix(in srgb, var(--graph-status-running) 72%, white) 89%, color-mix(in srgb, var(--graph-status-running) 20%, transparent) 95%, transparent 100%);-webkit-mask-composite:xor;opacity:0;padding:2px;transition:opacity .4s;animation:2s linear infinite paused agent-border-rotate;position:absolute;inset:-2px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.agent-loading-border-active{opacity:1;animation-play-state:running}@keyframes agent-border-rotate{to{--border-angle:360deg}}.agent-state-ring{pointer-events:none;border-radius:inherit;--agent-ring-gradient:conic-gradient(from calc(var(--mouse-angle,135deg) - 180deg), transparent 0deg 120deg, color-mix(in srgb, var(--status-color) 50%, transparent) 150deg, color-mix(in srgb, var(--status-color) 100%, white 20%) 180deg, color-mix(in srgb, var(--status-color) 50%, transparent) 210deg, transparent 240deg 360deg);background:linear-gradient(var(--graph-node-bg), var(--graph-node-bg)) padding-box, var(--agent-ring-gradient) border-box;opacity:calc(var(--base-ring-opacity,.4) + var(--mouse-intensity,0) * var(--hover-ring-opacity,.6));box-shadow:0 0 calc(8px + 10px * var(--mouse-intensity,0)) 0 var(--agent-ring-shadow), 0 0 calc(16px + 18px * var(--mouse-intensity,0)) 0 var(--agent-ring-shadow-soft);border:1px solid #0000;position:absolute;inset:-1px}.agent-state-ring-running{--status-color:var(--graph-status-running);--agent-ring-shadow:color-mix(in srgb, var(--status-color) 26%, transparent);--agent-ring-shadow-soft:color-mix(in srgb, var(--status-color) 10%, transparent);--base-ring-opacity:.52;--hover-ring-opacity:.34}.agent-state-ring-idle{--status-color:var(--graph-status-idle);--agent-ring-shadow:color-mix(in srgb, var(--status-color) 20%, transparent);--agent-ring-shadow-soft:color-mix(in srgb, var(--status-color) 8%, transparent);--base-ring-opacity:.3;--hover-ring-opacity:.7}.agent-state-ring-sleeping{--status-color:var(--graph-status-sleeping);--agent-ring-shadow:color-mix(in srgb, var(--status-color) 24%, transparent);--agent-ring-shadow-soft:color-mix(in srgb, var(--status-color) 9%, transparent);--base-ring-opacity:.34;--hover-ring-opacity:.56}.agent-state-ring-initializing{--status-color:var(--graph-status-initializing);--agent-ring-shadow:color-mix(in srgb, var(--status-color) 24%, transparent);--agent-ring-shadow-soft:color-mix(in srgb, var(--status-color) 9%, transparent);--base-ring-opacity:.36;--hover-ring-opacity:.6}.agent-state-ring-error{--status-color:var(--graph-status-error);--agent-ring-shadow:color-mix(in srgb, var(--status-color) 28%, transparent);--agent-ring-shadow-soft:color-mix(in srgb, var(--status-color) 10%, transparent);--base-ring-opacity:.42;--hover-ring-opacity:.5}.agent-state-ring-terminated{--status-color:var(--graph-status-terminated);--agent-ring-shadow:color-mix(in srgb, var(--status-color) 12%, transparent);--agent-ring-shadow-soft:color-mix(in srgb, var(--status-color) 4%, transparent);--base-ring-opacity:.16;--hover-ring-opacity:.36}.react-flow__node.agent-graph-node-shell{will-change:transform, width, height;transition:transform .36s cubic-bezier(.23,1,.32,1),width .32s cubic-bezier(.23,1,.32,1),height .32s cubic-bezier(.23,1,.32,1),opacity .24s}.react-flow__edge.agent-graph-edge-shell,.agent-graph-edge-shell{will-change:opacity;transition:opacity .24s}
@@ -0,0 +1,10 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/HomePage-C0hAx9_l.js","assets/rolldown-runtime-BYbx6iT9.js","assets/WorkspacePanels-aMdJ7ZH7.js","assets/badge-74-3jsCg.js","assets/shared-CMxbpLeQ.js","assets/ui-vendor-Dg9NNnWX.js","assets/react-vendor-mEs_JJxa.js","assets/graph-vendor-DRq_-6fV.js","assets/graph-vendor-CHpVij2M.css","assets/constants-XUzFf6i1.js","assets/markdown-vendor-DVdy_w12.js","assets/WorkspaceCommandDialog-CCXxjDL8.js","assets/dialog-BeGSweF6.js","assets/alert-dialog-kFYVQ7oX.js","assets/select-DL_LPeDj.js","assets/roles-2OLDeTc5.js","assets/AssistantPage-B3Xc08AS.js","assets/StatsPage-BX9khYzu.js","assets/PageScaffold-D4jO9ooX.js","assets/datetime-m6_O_Ci9.js","assets/ProvidersPage-PUWT8seJ.js","assets/triState-DEr3NkXV.js","assets/McpPage-DkrYLvBv.js","assets/RolesPage-CqcclGRw.js","assets/modelParams-CaHd0903.js","assets/PromptsPage-DWA7rRJd.js","assets/ToolsPage-9Tl9FdeD.js","assets/ChannelsPage-ByLd28xk.js","assets/SettingsPage-8tS2cJgX.js"])))=>i.map(i=>d[i]);
2
+ import{a as e}from"./rolldown-runtime-BYbx6iT9.js";import{d as t,l as n,u as r}from"./graph-vendor-DRq_-6fV.js";import{u as i}from"./react-vendor-mEs_JJxa.js";import{$ as a,B as o,Bt as s,H as c,I as l,L as u,Q as d,R as f,Tt as p,Z as m,Zt as h,a as g,an as _,bt as v,cn as y,gt as b,ht as x,i as S,in as C,ln as w,lt as T,n as E,nn as D,o as ee,on as O,ot as k,r as te,rn as A,sn as ne,t as re,un as ie,xt as ae,yt as j,z as oe,zt as se}from"./ui-vendor-Dg9NNnWX.js";import{a as M,i as ce,n as N,o as le,r as ue,s as de,t as P}from"./shared-CMxbpLeQ.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var F=e(t(),1),fe=i();function pe(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function me(...e){return t=>{let n=!1,r=e.map(e=>{let r=pe(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():pe(e[t],null)}}}}function he(...e){return F.useCallback(me(...e),e)}var I=n(),ge=class extends F.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(O(t)&&e.isPresent&&!this.props.isPresent&&this.props.pop!==!1){let e=t.offsetParent,n=O(e)&&e.offsetWidth||0,r=O(e)&&e.offsetHeight||0,i=getComputedStyle(t),a=this.props.sizeRef.current;a.height=parseFloat(i.height),a.width=parseFloat(i.width),a.top=t.offsetTop,a.left=t.offsetLeft,a.right=n-a.width-a.left,a.bottom=r-a.height-a.top}return null}componentDidUpdate(){}render(){return this.props.children}};function _e({children:e,isPresent:t,anchorX:n,anchorY:r,root:i,pop:a}){let o=(0,F.useId)(),s=(0,F.useRef)(null),c=(0,F.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:l}=(0,F.useContext)(_),u=he(s,e.props?.ref??e?.ref);return(0,F.useInsertionEffect)(()=>{let{width:e,height:u,top:d,left:f,right:p,bottom:m}=c.current;if(t||a===!1||!s.current||!e||!u)return;let h=n===`left`?`left: ${f}`:`right: ${p}`,g=r===`bottom`?`bottom: ${m}`:`top: ${d}`;s.current.dataset.motionPopId=o;let _=document.createElement(`style`);l&&(_.nonce=l);let v=i??document.head;return v.appendChild(_),_.sheet&&_.sheet.insertRule(`
3
+ [data-motion-pop-id="${o}"] {
4
+ position: absolute !important;
5
+ width: ${e}px !important;
6
+ height: ${u}px !important;
7
+ ${h}px !important;
8
+ ${g}px !important;
9
+ }
10
+ `),()=>{s.current?.removeAttribute(`data-motion-pop-id`),v.contains(_)&&v.removeChild(_)}},[t]),(0,I.jsx)(ge,{isPresent:t,childRef:s,sizeRef:c,pop:a,children:a===!1?e:F.cloneElement(e,{ref:u})})}var ve=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:a,mode:o,anchorX:s,anchorY:c,root:l})=>{let u=w(ye),d=(0,F.useId)(),f=!0,p=(0,F.useMemo)(()=>(f=!1,{id:d,initial:t,isPresent:n,custom:i,onExitComplete:e=>{u.set(e,!0);for(let e of u.values())if(!e)return;r&&r()},register:e=>(u.set(e,!1),()=>u.delete(e))}),[n,u,r]);return a&&f&&(p={...p}),(0,F.useMemo)(()=>{u.forEach((e,t)=>u.set(t,!1))},[n]),F.useEffect(()=>{!n&&!u.size&&r&&r()},[n]),e=(0,I.jsx)(_e,{pop:o===`popLayout`,isPresent:n,anchorX:s,anchorY:c,root:l,children:e}),(0,I.jsx)(ne.Provider,{value:p,children:e})};function ye(){return new Map}var L=e=>e.key||``;function be(e){let t=[];return F.Children.forEach(e,e=>{(0,F.isValidElement)(e)&&t.push(e)}),t}var R=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:a=`sync`,propagate:o=!1,anchorX:s=`left`,anchorY:c=`top`,root:l})=>{let[u,d]=C(o),f=(0,F.useMemo)(()=>be(e),[e]),p=o&&!u?[]:f.map(L),m=(0,F.useRef)(!0),h=(0,F.useRef)(f),g=w(()=>new Map),_=(0,F.useRef)(new Set),[v,b]=(0,F.useState)(f),[x,S]=(0,F.useState)(f);y(()=>{m.current=!1,h.current=f;for(let e=0;e<x.length;e++){let t=L(x[e]);p.includes(t)?(g.delete(t),_.current.delete(t)):g.get(t)!==!0&&g.set(t,!1)}},[x,p.length,p.join(`-`)]);let T=[];if(f!==v){let e=[...f];for(let t=0;t<x.length;t++){let n=x[t],r=L(n);p.includes(r)||(e.splice(t,0,n),T.push(n))}return a===`wait`&&T.length&&(e=T),S(be(e)),b(f),null}let{forceRender:E}=(0,F.useContext)(ie);return(0,I.jsx)(I.Fragment,{children:x.map(e=>{let v=L(e),y=o&&!u?!1:f===x||p.includes(v);return(0,I.jsx)(ve,{isPresent:y,initial:!m.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:a,root:l,onExitComplete:y?void 0:()=>{if(_.current.has(v))return;if(g.has(v))_.current.add(v),g.set(v,!0);else return;let e=!0;g.forEach(t=>{t||(e=!1)}),e&&(E?.(),S(h.current),o&&d?.(),r&&r())},anchorX:s,anchorY:c,children:e},v)})})},xe=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,Se=de,Ce=(e,t)=>n=>{if(t?.variants==null)return Se(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=xe(t)||xe(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return Se(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},we=Ce(`inline-flex items-center justify-center shrink-0 whitespace-nowrap rounded-md text-sm font-medium transition-all duration-200 outline-none cursor-pointer focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-primary text-primary-foreground shadow-xs hover:bg-primary/90`,destructive:`bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60`,outline:`border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-9 gap-2 px-4 py-2 has-[>svg]:px-3`,xs:`h-6 gap-1 px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-8 gap-1.5 px-3 text-xs has-[>svg]:px-2.5`,lg:`h-10 gap-2 px-6 has-[>svg]:px-4`,icon:`size-9`,"icon-xs":`size-6 [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});function z({className:e,variant:t=`default`,size:n=`default`,asChild:r=!1,...i}){return(0,I.jsx)(r?l:`button`,{"data-slot":`button`,"data-variant":t,"data-size":n,className:M(we({variant:t,size:n,className:e})),...i})}function Te({className:e,type:t,...n}){return(0,I.jsx)(`input`,{type:t,"data-slot":`input`,className:M(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-8 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,e),...n})}function Ee({className:e,...t}){return(0,I.jsx)(`textarea`,{"data-slot":`textarea`,className:M(`border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex min-h-24 w-full rounded-md border bg-transparent px-3 py-2.5 text-sm leading-6 text-foreground shadow-xs outline-none transition-[color,box-shadow] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,e),...t})}var De=`text-[12px] font-medium text-foreground/80`,Oe=`text-[11px] leading-relaxed text-muted-foreground`,ke=`bg-background/50 text-[13px] focus:bg-background/65`,Ae=`${ke} font-mono`,je=`bg-background/50 text-[13px] leading-relaxed focus:bg-background/65`,Me=`${je} font-mono`,Ne=`h-8 w-full rounded-md bg-background/50 text-[13px]`,Pe=`cursor-default opacity-60 focus:outline-none`,Fe=`rounded-md border border-border/70 bg-accent/20 text-muted-foreground hover:bg-accent/45 hover:text-foreground`;function Ie({className:e,mono:t=!1,...n}){return(0,I.jsx)(Te,{className:M(t?Ae:ke,e),...n})}function Le({className:e,mono:t=!1,...n}){return(0,I.jsx)(Ee,{className:M(t?Me:je,e),...n})}function Re({className:e,size:t=`compact`,type:n=`button`,variant:r=`ghost`,...i}){return(0,I.jsx)(z,{type:n,variant:r,size:t===`default`?`icon-sm`:`icon-xs`,className:M(Fe,e),...i})}function ze({buttonSize:e=`compact`,className:t,hideLabel:n,mono:r=!1,showLabel:i,...a}){let[o,c]=(0,F.useState)(!1);return(0,I.jsxs)(`div`,{className:`relative`,children:[(0,I.jsx)(Ie,{type:o?`text`:`password`,mono:r,className:M(`pr-10`,t),...a}),(0,I.jsx)(Re,{"aria-label":o?n:i,size:e,className:`absolute right-2 top-1/2 -translate-y-1/2`,onClick:()=>c(e=>!e),children:o?(0,I.jsx)(s,{className:e===`default`?`size-4`:`size-3.5`}):(0,I.jsx)(se,{className:e===`default`?`size-4`:`size-3.5`})})]})}function Be({checked:e,className:t,disabled:n=!1,label:r,offText:i=`OFF`,onCheckedChange:a,onText:o=`ON`,showStateText:s=!1}){return(0,I.jsxs)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":r,disabled:n,onClick:()=>a(!e),className:M(`relative inline-flex shrink-0 items-center rounded-full border transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50`,s?`h-8 w-[72px] px-1`:`h-5 w-9 justify-center border-2 border-transparent focus-visible:ring-offset-2 focus-visible:ring-offset-background`,e?`border-graph-status-running/30 bg-graph-status-running/15`:`border-border bg-accent/30`,t),children:[r?(0,I.jsx)(`span`,{className:`sr-only`,children:r}):null,(0,I.jsx)(`span`,{"aria-hidden":`true`,className:M(`pointer-events-none inline-flex items-center justify-center rounded-full transition-all duration-200 ease-in-out`,s?`h-6 w-6 text-[10px] font-semibold`:`size-4 bg-background shadow-xs ring-0`,e?s?`translate-x-[40px] bg-graph-status-running text-background`:`translate-x-2`:s?`translate-x-0 bg-foreground text-background`:`-translate-x-2`),children:s?e?o:i:null})]})}var Ve=e(r(),1),He=(0,F.createContext)(null);function Ue(){let e=(0,F.useContext)(He);if(!e)throw Error(`useImageViewer must be used within ImageViewerProvider`);return e}var We=.05,Ge=64,B=1e-4,Ke=.0018,qe=.88,Je=.78,Ye={panX:0,panY:0,zoom:1};function Xe(e){return e<=We+B?We:e>=Ge-B?Ge:Math.min(Ge,Math.max(We,Number(e.toFixed(6))))}function Ze(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function Qe(e){return!e||!Ze(e.width)||!Ze(e.height)?null:{width:e.width,height:e.height}}function $e(){return{width:typeof window>`u`?0:window.innerWidth,height:typeof window>`u`?0:window.innerHeight}}function V(e,t,n){if(!e)return null;let r=e.getBoundingClientRect();return{x:t-r.left,y:n-r.top}}function et(e,t,n,r){return{x:(e.x-r.width/2-t.panX)/t.zoom+n.width/2,y:(e.y-r.height/2-t.panY)/t.zoom+n.height/2}}function tt(e,t,n,r,i){return{x:t.x-i.width/2-(e.x-r.width/2)*n,y:t.y-i.height/2-(e.y-r.height/2)*n}}function nt(e,t){if(!e||t.width<=0||t.height<=0||e.width<=0||e.height<=0)return null;let n=Math.min(t.width*qe/e.width,t.height*Je/e.height,1);return{width:e.width*n,height:e.height*n}}function rt(e){return!!e.closest(`[data-pan-exempt="true"]`)}function it(e,t,n){if(!e)return!1;let r=e.getBoundingClientRect();return t>=r.left&&t<=r.right&&n>=r.top&&n<=r.bottom}function at(e,t,n,r,i){let a=Xe(e.zoom*t);if(!n||!r||i.width<=0||i.height<=0||Math.abs(a-e.zoom)<=B)return a===e.zoom?e:{...e,zoom:a};let o=tt(et(n,e,r,i),n,a,r,i);return{panX:o.x,panY:o.y,zoom:a}}function ot(e){let t=(0,F.useMemo)(()=>Qe(e),[e]),[n,r]=(0,F.useState)(null);return(0,F.useEffect)(()=>{if(!e||t)return;let n=!0,i=new Image,a=()=>{n&&i.naturalWidth>0&&i.naturalHeight>0&&r({src:e.src,size:{width:i.naturalWidth,height:i.naturalHeight}})};return i.addEventListener(`load`,a),i.src=e.src,i.complete&&a(),()=>{n=!1,i.removeEventListener(`load`,a)}},[e,t]),t||(e&&n?.src===e.src?n.size:null)}function st(e,t){let[n,r]=(0,F.useState)($e);return(0,F.useLayoutEffect)(()=>{if(!e||!t.current)return;let n=t.current,i=()=>{let e=n.getBoundingClientRect();r({width:n.clientWidth||e.width||window.innerWidth,height:n.clientHeight||e.height||window.innerHeight})};if(i(),typeof ResizeObserver>`u`)return;let a=new ResizeObserver(()=>{i()});return a.observe(n),()=>{a.disconnect()}},[e,t]),n}function ct(e,t){(0,F.useEffect)(()=>{if(!e)return;let n=document.body.style.overflow;document.body.style.overflow=`hidden`;let r=e=>{e.key===`Escape`&&(e.preventDefault(),t())};return window.addEventListener(`keydown`,r),()=>{document.body.style.overflow=n,window.removeEventListener(`keydown`,r)}},[e,t])}function lt({active:e,baseImageSize:t,imageRef:n,onClose:r,viewportRef:i,viewportSize:a}){let[o,s]=(0,F.useState)(Ye),[c,l]=(0,F.useState)(!1),u=(0,F.useRef)(!1),d=(0,F.useRef)(null),f=(0,F.useCallback)(()=>{s(Ye),l(!1),u.current=!1,d.current=null},[]);(0,F.useEffect)(()=>{if(!c)return;let e=e=>{let t=d.current;if(!t)return;let n=V(i.current,e.clientX,e.clientY);n&&((n.x!==t.startPoint.x||n.y!==t.startPoint.y)&&(u.current=!0),s(e=>({...e,panX:t.originPanX+n.x-t.startPoint.x,panY:t.originPanY+n.y-t.startPoint.y})))},t=()=>{l(!1),d.current=null};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[c,i]);let p=(0,F.useCallback)((e,n)=>{s(r=>at(r,e,n,t,a))},[t,a]),m=(0,F.useCallback)(e=>{let t=V(i.current,e.clientX,e.clientY);t&&(e.preventDefault(),p(Math.exp(-e.deltaY*Ke),t))},[i,p]);(0,F.useEffect)(()=>{if(!e||!i.current)return;let t=i.current,n=e=>{m(e)};return t.addEventListener(`wheel`,n,{passive:!1}),()=>{t.removeEventListener(`wheel`,n)}},[e,m,i]);let h=(0,F.useCallback)(e=>{if(e.button!==0)return;let t=e.target;if(rt(t))return;let n=V(i.current,e.clientX,e.clientY);n&&(e.preventDefault(),u.current=!1,d.current={originPanX:o.panX,originPanY:o.panY,startPoint:n},l(!0))},[o.panX,o.panY,i]);return{dragging:c,handleViewportClick:(0,F.useCallback)(e=>{if(u.current){u.current=!1;return}let t=e.target;rt(t)||it(n.current,e.clientX,e.clientY)||r()},[n,r]),handleViewportMouseDown:h,reset:f,view:o}}function ut({children:e}){let[t,n]=(0,F.useState)(null),r=(0,F.useRef)(null),i=(0,F.useRef)(null),a=(0,F.useRef)(()=>{}),o=ot(t),s=st(!!t,r),c=(0,F.useMemo)(()=>nt(o,s),[o,s]),l=(0,F.useCallback)(()=>{a.current()},[]),{dragging:u,handleViewportClick:d,handleViewportMouseDown:f,reset:p,view:m}=lt({active:!!t,baseImageSize:c,imageRef:i,onClose:l,viewportRef:r,viewportSize:s}),h=(0,F.useCallback)(()=>{p(),n(null)},[p]);(0,F.useLayoutEffect)(()=>{a.current=h},[h]);let g=(0,F.useCallback)(e=>{p(),n(e)},[p]);ct(!!t,h);let _=(0,F.useMemo)(()=>({openImage:g}),[g]);return(0,I.jsxs)(He.Provider,{value:_,children:[e,t&&typeof document<`u`?(0,Ve.createPortal)((0,I.jsx)(dt,{baseImageSize:c,closeImage:h,dragging:u,handleViewportClick:d,handleViewportMouseDown:f,imageRef:i,payload:t,view:m,viewportRef:r}),document.body):null]})}function dt({baseImageSize:e,closeImage:t,dragging:n,handleViewportClick:r,handleViewportMouseDown:i,imageRef:a,payload:o,view:s,viewportRef:c}){let l=o.alt||`Image`;return(0,I.jsx)(`div`,{"aria-modal":`true`,className:`fixed inset-0 z-[120] bg-background/92 backdrop-blur-md`,role:`dialog`,children:(0,I.jsxs)(`div`,{ref:c,className:`absolute inset-0 flex items-center justify-center p-4 sm:p-6`,"data-testid":`global-image-viewer-backdrop`,onClick:r,onMouseDown:i,children:[(0,I.jsxs)(`div`,{className:`absolute right-4 top-4 z-20 flex items-center gap-2`,"data-pan-exempt":`true`,children:[(0,I.jsx)(`div`,{className:`rounded-full border border-border bg-surface-overlay/88 px-3 py-1 text-[11px] font-medium text-foreground/88 shadow-md`,"data-pan-exempt":`true`,"data-testid":`global-image-viewer-zoom`,children:le(s.zoom)}),(0,I.jsx)(ft,{ariaLabel:`Close image preview`,onClick:t,children:(0,I.jsx)(oe,{className:`size-4`})})]}),(0,I.jsx)(`div`,{className:`absolute bottom-4 left-1/2 z-20 w-full max-w-3xl -translate-x-1/2 px-2`,"data-pan-exempt":`true`,children:(0,I.jsxs)(`div`,{className:`rounded-xl border border-border bg-surface-overlay/88 px-4 py-3 text-center shadow-md`,children:[(0,I.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:l}),o.meta?(0,I.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:o.meta}):null]})}),e?(0,I.jsx)(`div`,{className:`absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2`,"data-testid":`global-image-viewer-viewport`,children:(0,I.jsx)(`div`,{className:M(`relative transform-gpu will-change-transform`,n?`transition-none`:`transition-transform duration-120 ease-out`),"data-testid":`global-image-viewer-stage`,style:{height:`${e.height}px`,transform:`translate3d(${s.panX}px, ${s.panY}px, 0px) scale(${s.zoom})`,transformOrigin:`center center`,width:`${e.width}px`},children:(0,I.jsx)(`img`,{alt:l,className:M(`block h-full w-full select-none object-contain shadow-[0_28px_80px_-32px_var(--shell-scrim)]`,n?`cursor-grabbing`:`cursor-grab`),"data-testid":`global-image-viewer-image`,draggable:!1,ref:a,src:o.src})})}):(0,I.jsx)(`img`,{alt:l,className:`max-h-[78vh] max-w-[88vw] select-none object-contain shadow-[0_28px_80px_-32px_var(--shell-scrim)]`,"data-testid":`global-image-viewer-image`,draggable:!1,ref:a,src:o.src})]})})}function ft({ariaLabel:e,children:t,onClick:n}){return(0,I.jsx)(z,{type:`button`,variant:`ghost`,size:`icon-lg`,"aria-label":e,className:`rounded-full border border-border bg-surface-overlay/88 text-foreground/82 shadow-md hover:bg-accent/60 hover:text-foreground`,"data-pan-exempt":`true`,onClick:n,children:t})}async function pt(){return P(`/api/access/state`,{errorMessage:`Failed to fetch access state`})}async function mt(e){return P(`/api/access/login`,{method:`POST`,body:{code:e},errorMessage:`Failed to verify access code`})}async function ht(){return P(`/api/access/logout`,{method:`POST`,errorMessage:`Failed to logout`})}async function gt(){return P(`/api/nodes`,{errorMessage:`Failed to fetch nodes`,fallback:[],map:e=>(e?.nodes??[]).map(e=>({...e,tab_id:typeof e.workflow_id==`string`?e.workflow_id:null}))})}async function _t(e,t){return P(`/api/nodes/${e}`,{errorMessage:`Failed to fetch node detail`,fallback:null,signal:t,swallowHttpError:!0,map:e=>!e||!Array.isArray(e.history)?null:{...e,tab_id:typeof e.workflow_id==`string`?e.workflow_id:null}})}async function vt(e){await N(`/api/nodes/${e}/interrupt`,{method:`POST`,errorMessage:`Failed to interrupt node`})}async function yt(e){await N(`/api/nodes/${e}/clear-chat`,{method:`POST`,errorMessage:`Failed to clear assistant chat`})}async function bt(e,t){return P(`/api/nodes/${e}/messages`,{method:`POST`,body:{content:t.content,parts:t.parts},errorMessage:`Failed to send node message`,map:e=>({message_id:typeof e?.message_id==`string`?e.message_id:void 0})})}async function xt(e,t){return P(`/api/nodes/${e}/messages/${t}/retry`,{method:`POST`,errorMessage:`Failed to retry node message`,map:e=>{if(typeof e?.message_id!=`string`)throw Error(`Failed to retry node message`);return{message_id:e.message_id}}})}async function St(e){return P(`/api/workflows`,{method:`GET`,signal:e,errorMessage:`Failed to fetch workflows`,fallback:[],map:e=>e?.workflows??[]})}async function Ct(e,t=!1,n=[]){return P(`/api/workflows`,{method:`POST`,body:{title:e,allow_network:t,write_dirs:n},errorMessage:`Failed to create workflow`})}async function wt(e){return P(`/api/workflows/${e}/duplicate`,{method:`POST`,errorMessage:`Failed to duplicate workflow`})}async function Tt(e,t){return P(`/api/workflows/${e}/definition`,{method:`PUT`,body:{definition:t},errorMessage:`Failed to update workflow definition`})}async function Et(e){await N(`/api/workflows/${e}`,{method:`DELETE`,errorMessage:`Failed to delete workflow`})}async function Dt(e,t){return P(`/api/workflows/${e}/nodes`,{method:`POST`,body:t,errorMessage:`Failed to create node`,map:e=>({id:typeof e?.id==`string`?e.id:``,node_type:typeof e?.node_type==`string`?e.node_type:`agent`,workflow_id:typeof e?.workflow_id==`string`?e.workflow_id:null,role_name:typeof e?.role_name==`string`?e.role_name:null,is_leader:e?.is_leader===!0,state:typeof e?.state==`string`?e.state:`idle`,connections:Array.isArray(e?.connections)?e.connections.filter(e=>typeof e==`string`):[],name:typeof e?.name==`string`?e.name:null,todos:Array.isArray(e?.todos)?e.todos:[],position:e?.position&&typeof e.position==`object`&&typeof e.position.x==`number`&&typeof e.position.y==`number`?e.position:null,config:e?.config&&typeof e.config==`object`?e.config:void 0,inputs:Array.isArray(e?.inputs)?e.inputs:void 0,outputs:Array.isArray(e?.outputs)?e.outputs:void 0})}).then(e=>({...e,tab_id:e.workflow_id}))}async function Ot(e,t){await N(`/api/workflows/${e}/nodes/${t}`,{method:`DELETE`,errorMessage:`Failed to delete node`})}async function kt(e,t){return P(`/api/workflows/${e}/edges`,{method:`POST`,body:{from_node_id:t.fromNodeId,from_port_key:t.fromPortKey??`out`,to_node_id:t.toNodeId,to_port_key:t.toPortKey??`in`,kind:t.kind??`control`},errorMessage:`Failed to create edge`})}async function At(e,t){let n=new URLSearchParams;t.edgeId&&n.set(`edge_id`,t.edgeId),t.fromNodeId&&n.set(`from_node_id`,t.fromNodeId),t.fromPortKey&&n.set(`from_port_key`,t.fromPortKey),t.toNodeId&&n.set(`to_node_id`,t.toNodeId),t.toPortKey&&n.set(`to_port_key`,t.toPortKey),await N(`/api/workflows/${e}/edges?${n.toString()}`,{method:`DELETE`,errorMessage:`Failed to delete edge`})}var jt=Object.prototype.hasOwnProperty,Mt=new Set([`agent`,`trigger`,`code`,`if`,`merge`]),Nt=new Set([`input`,`output`]),Pt=new Set([`control`,`data`,`event`]);function H(e,t){return jt.call(e,t)}function U(e,t){return typeof e[t]==`number`?e[t]:void 0}function Ft(e){if(H(e,`leader_id`))return typeof e.leader_id==`string`||e.leader_id===null?e.leader_id:void 0}function W(e,t){if(H(e,t))return U(e,t)}function It(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.key==`string`&&Nt.has(t.direction)&&Pt.has(t.kind)&&typeof t.required==`boolean`&&typeof t.multiple==`boolean`}function Lt(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&typeof t.from_node_id==`string`&&typeof t.from_port_key==`string`&&typeof t.to_node_id==`string`&&typeof t.to_port_key==`string`&&Pt.has(t.kind)}function Rt(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&Mt.has(t.type)&&typeof t.config==`object`&&t.config!==null&&Array.isArray(t.inputs)&&t.inputs.every(It)&&Array.isArray(t.outputs)&&t.outputs.every(It)}function zt(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.positions===void 0?!0:!t.positions||typeof t.positions!=`object`?!1:Object.values(t.positions).every(e=>!!e&&typeof e==`object`&&typeof e.x==`number`&&typeof e.y==`number`)}function Bt(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.version==`number`&&Array.isArray(t.nodes)&&t.nodes.every(Rt)&&Array.isArray(t.edges)&&t.edges.every(Lt)&&(t.view===void 0||zt(t.view))}var Vt={version:1,nodes:[],edges:[],view:{}};function G(e){return typeof e.id==`string`?e.id:null}function Ht(e,t=Date.now()){let n=G(e);return n===null||typeof e.title!=`string`?null:{id:n,title:e.title,leader_id:Ft(e)??null,created_at:U(e,`created_at`)??t,updated_at:U(e,`updated_at`)??t,definition:Bt(e.definition)?e.definition:Vt,node_count:W(e,`node_count`),edge_count:W(e,`edge_count`)}}function Ut(e,t,n=Date.now()){if(!e)return Ht(t,n);let r=Ft(t);return{...e,title:typeof t.title==`string`?t.title:e.title,leader_id:H(t,`leader_id`)&&r!==void 0?r:e.leader_id,created_at:U(t,`created_at`)??e.created_at,updated_at:U(t,`updated_at`)??e.updated_at,definition:H(t,`definition`)&&Bt(t.definition)?t.definition:e.definition,node_count:H(t,`node_count`)?W(t,`node_count`):e.node_count,edge_count:H(t,`edge_count`)?W(t,`edge_count`):e.edge_count}}function Wt(e,t){let n=Array.isArray(e.removed_node_ids)?e.removed_node_ids.filter(e=>typeof e==`string`):[],r=new Set(n),i=G(e);if(i===null)return r;for(let[e,n]of t.entries())n.tab_id===i&&r.add(e);return r}function Gt(){let[e,t]=(0,F.useState)(new Map);return(0,F.useEffect)(()=>{gt().then(e=>{let n=new Map;for(let t of e)n.set(t.id,{...t,name:t.name??null});t(n)}).catch(()=>{})},[]),{agents:e,handleUpdateEvent:(0,F.useCallback)(e=>{if(e.type===`node_created`){let n=e.data;t(t=>{let r=new Map(t);return r.set(e.agent_id,{id:e.agent_id,node_type:n.node_type,tab_id:n.tab_id??null,is_leader:n.is_leader??!1,role_name:n.role_name??null,state:`initializing`,connections:[],name:n.name??null,todos:[]}),r})}else if(e.type===`node_state_changed`||e.type===`node_todos_changed`)t(t=>{let n=t.get(e.agent_id);if(!n)return t;let r=new Map(t),i=e.data.todos,a=e.data.role_name,o=e.data.tab_id,s=e.data.is_leader,c=e.data.name;return r.set(e.agent_id,{...n,state:e.type===`node_state_changed`?e.data.new_state:n.state,tab_id:o??n.tab_id,is_leader:s??n.is_leader,role_name:a??n.role_name,name:c??n.name,todos:i??n.todos}),r});else if(e.type===`node_terminated`)t(t=>{let n=t.get(e.agent_id);if(!n)return t;let r=new Map(t);return r.set(e.agent_id,{...n,state:`terminated`}),r});else if(e.type===`node_deleted`)t(t=>{if(!t.has(e.agent_id))return t;let n=new Map(t);n.delete(e.agent_id);for(let[t,r]of n.entries()){let i=r.connections.filter(t=>t!==e.agent_id);i.length!==r.connections.length&&n.set(t,{...r,connections:i})}return n});else if(e.type===`tab_deleted`)t(t=>{let n=Wt(e.data,t);if(n.size===0)return t;let r=new Map(t);for(let e of n)r.delete(e);for(let[e,t]of r.entries()){let i=t.connections.filter(e=>!n.has(e));i.length!==t.connections.length&&r.set(e,{...t,connections:i})}return r});else if(e.type===`node_connected`){let{from_id:n,to_id:r}=e.data;t(e=>{let t=new Map(e),i=t.get(n);return i&&!i.connections.includes(r)&&t.set(n,{...i,connections:[...i.connections,r]}),t})}else if(e.type===`node_disconnected`){let{from_id:n,to_id:r}=e.data;t(e=>{let t=new Map(e),i=t.get(n);return i?(t.set(n,{...i,connections:i.connections.filter(e=>e!==r)}),t):e})}},[])}}function Kt(){let[e,t]=(0,F.useState)(new Map);return(0,F.useEffect)(()=>{St().then(e=>{let n=new Map;for(let t of e)n.set(t.id,t);t(n)}).catch(()=>{})},[]),{tabs:e,handleUpdateEvent:(0,F.useCallback)(e=>{if(e.type===`tab_created`){let n=Ht(e.data);if(!n)return;t(e=>{let t=new Map(e);return t.set(n.id,n),t});return}if(e.type===`tab_updated`){let n=G(e.data);if(n===null)return;t(t=>{let r=Ut(t.get(n),e.data);if(!r)return t;let i=new Map(t);return i.set(r.id,r),i});return}if(e.type!==`tab_deleted`)return;let n=G(e.data);n!==null&&t(e=>{if(!e.has(n))return e;let t=new Map(e);return t.delete(n),t})},[])}}var qt=1e3,Jt=1e4;function Yt(e){let t=e.reason.trim().toLowerCase();return e.code===4401||e.code===4001&&t.startsWith(`access `)}function Xt({path:e,onMessage:t,setConnected:n,onAccessDenied:r},i){let a=qt,o=null,s=null,c=!1,l=null,u=()=>{o!==null&&(window.clearTimeout(o),o=null)},d=()=>{s!==null&&(window.clearTimeout(s),s=null)},p=(e=0)=>{d(),s=window.setTimeout(()=>{s=null,m()},e)},m=()=>{if(i())return;u();let s=window.location.protocol===`https:`?`wss:`:`ws:`;l=new WebSocket(`${s}//${window.location.host}${e}`),l.onopen=()=>{n(!0),a=qt,c&&f.success(`Reconnected ${e}`),c=!0},l.onmessage=e=>{try{let n=JSON.parse(e.data);t.current(n)}catch{}},l.onclose=t=>{if(n(!1),l=null,Yt(t)){r();return}if(i())return;c&&f.error(`Connection lost ${e}, reconnecting...`);let s=a;a=Math.min(s*2,Jt),o=window.setTimeout(()=>{o=null,p()},s)},l.onerror=()=>{l?.close()}};return p(),()=>{d(),u(),n(!1),l?.close(),l=null}}function Zt({onDisplayEvent:e,onUpdateEvent:t}){let[n,r]=(0,F.useState)(!1),[i,a]=(0,F.useState)(!1),o=(0,F.useRef)(e),s=(0,F.useRef)(t),c=(0,F.useRef)(!1);return(0,F.useEffect)(()=>{o.current=e},[e]),(0,F.useEffect)(()=>{s.current=t},[t]),(0,F.useEffect)(()=>{let e=!1,t=()=>{c.current||(c.current=!0,ue())},n=[Xt({path:`/ws/events`,onMessage:o,setConnected:r,onAccessDenied:t},()=>e),Xt({path:`/ws/updates`,onMessage:s,setConnected:a,onAccessDenied:t},()=>e)];return()=>{e=!0;for(let e of n)e()}},[]),{connected:n&&i}}var Qt=(0,F.createContext)(null);function K(e){return Math.round(e>0xe8d4a51000?e:e*1e3)}function $t(){let e=(0,F.useContext)(Qt);if(!e)throw Error(`useAgentFeedRuntime must be used within AgentProvider`);return e}function en(e,t){return e&&e.length>0?e:t?[{type:`text`,text:t}]:[]}function tn(e,t){return en(e,t).map(e=>e.type===`text`?e.text:e.alt?`[image: ${e.alt}]`:`[image]`).join(``)}function nn(e,t){let n=e.findIndex(t);if(n<0)return e;let r=[...e];return r.splice(n,1),r}function rn(e,t,n){let r=typeof t==`string`?{content:t,timestamp:n}:t;return nn(e,e=>{let t=tn(e.parts,e.content);return r.messageId&&e.message_id===r.messageId?!0:(r.content===e.content||r.content===t)&&(r.timestamp===void 0||e.timestamp===r.timestamp)})}function q(e,t){let n=null;for(let r of t)e.has(r)&&(n===null&&(n=new Map(e)),n.delete(r));return n??e}function J(e,t){return q(e,[t])}function an(e,t,n){let r=e.get(t);if(!r||r.length===0)return e;let i=r.filter(n);if(i.length===0)return J(e,t);let a=new Map(e);return a.set(t,i),a}var on=(0,F.createContext)(null),sn=(0,F.createContext)(null),cn=(0,F.createContext)(null),ln=(0,F.createContext)(null),un=(0,F.createContext)(null),dn=(0,F.createContext)(null),fn=2e3,pn=2e3,mn=256;function hn(e){return e.type===`ReceivedMessage`||e.type===`AssistantText`||e.type===`SentMessage`||e.type===`AssistantThinking`||e.type===`ToolCall`||e.type===`ErrorEntry`}function gn({children:e}){let{agents:t,handleUpdateEvent:n}=Gt(),{tabs:r,handleUpdateEvent:i}=Kt(),[a,o]=(0,F.useState)(null),[s,c]=(0,F.useState)(null),[l,u]=(0,F.useState)(null),[d,f]=(0,F.useState)(()=>new Map),[p,m]=(0,F.useState)(()=>new Map),[h,g]=(0,F.useState)(()=>new Map),[_,v]=(0,F.useState)(()=>new Map),[y,b]=(0,F.useState)(()=>new Map),[x,S]=(0,F.useState)([]),[C,w]=(0,F.useState)(()=>new Map),[T,E]=(0,F.useState)([]),[D,ee]=(0,F.useState)(`assistant`),O=(0,F.useRef)(new Map),k=(0,F.useRef)(new Map),te=(0,F.useRef)(0),A=(0,F.useRef)(new Set),ne=(0,F.useMemo)(()=>{if(l&&r.has(l))return l;let e=r.keys().next().value;return typeof e==`string`?e:null},[l,r]),re=(0,F.useCallback)(e=>{f(t=>J(t,e))},[]),ie=(0,F.useCallback)(e=>{b(t=>J(t,e))},[]),{connected:ae}=Zt({onDisplayEvent:(0,F.useCallback)(()=>{},[]),onUpdateEvent:(0,F.useCallback)(e=>{if(n(e),i(e),e.type===`tab_deleted`){let n=Wt(e.data,t),r=G(e.data);r&&u(e=>e===r?null:e),n.size>0&&(o(e=>e&&n.has(e)?null:e),c(e=>e&&n.has(e)?null:e)),n.size>0&&(f(e=>q(e,n)),m(e=>q(e,n)),S(e=>e.filter(e=>!n.has(e.fromId)&&!n.has(e.toId))),w(e=>q(e,n)),E(e=>e.filter(e=>!n.has(e.agentId))))}if(e.type===`node_deleted`){let t=e.agent_id;o(e=>e===t?null:e),c(e=>e===t?null:e),f(e=>J(e,t)),m(e=>J(e,t)),S(e=>e.filter(e=>e.fromId!==t&&e.toId!==t)),w(e=>J(e,t)),E(e=>e.filter(e=>e.agentId!==t))}if(e.type===`node_message`){let t=e.agent_id,n=e.data.to_id;if(t&&n){let e=`msg-${Date.now()}-${Math.random()}`,r={id:e,fromId:t,toId:n,timestamp:Date.now()};S(e=>[...e,r]);let i=setTimeout(()=>{S(t=>t.filter(t=>t.id!==e)),O.current.delete(e)},fn);O.current.set(e,i)}}if(e.type===`tool_called`){let t=e.data.tool,n=e.agent_id,r=k.current.get(n);r&&clearTimeout(r),w(e=>{let r=new Map(e);return r.set(n,t),r});let i=setTimeout(()=>{w(e=>J(e,n)),k.current.delete(n)},pn);k.current.set(n,i)}if(e.type===`history_entry_delta`){let t=e.data;m(n=>{let r=new Map(n),i=r.get(e.agent_id)??[];return r.set(e.agent_id,[...i,t]),r})}if(e.type===`history_cleared`){let t=e.agent_id,n=K(e.timestamp);v(e=>{let r=new Map(e);return r.set(t,n),r}),g(e=>{let r=new Map(e);return r.set(t,n),r}),b(e=>J(e,t)),f(e=>J(e,t)),m(e=>J(e,t)),w(e=>J(e,t)),E(e=>e.filter(e=>e.agentId!==t))}if(e.type===`history_replaced`){let t=e.agent_id,n=K(e.timestamp);v(e=>{let r=new Map(e);return r.set(t,n),r}),b(n=>{let r=new Map(n),i=Array.isArray(e.data.history)?e.data.history:null;return i?r.set(t,i):r.delete(t),r}),f(e=>J(e,t)),m(e=>J(e,t)),w(e=>J(e,t)),E(e=>e.filter(e=>e.agentId!==t))}if(e.type===`history_entry_added`){let t=e.data;if(hn(t)){let n=!0,r=null;if(t.type===`ToolCall`&&t.tool_call_id){if(A.current.has(t.tool_call_id))n=!1,r=t.tool_call_id;else if(A.current.add(t.tool_call_id),A.current.size>mn){let e=A.current.values().next().value;e&&A.current.delete(e)}}if(n){let n=K(e.timestamp),r={id:`activity-${n}-${te.current++}`,agentId:e.agent_id,entry:t,timestampMs:n};E(e=>[...e,r].slice(-48))}else if(r){let n=K(e.timestamp);E(e=>{let i=[...e];for(let e=i.length-1;e>=0;--e){let a=i[e];if(a.entry.type===`ToolCall`&&a.entry.tool_call_id===r){i[e]={...a,entry:t,timestampMs:n};break}}return i})}}t.type===`AssistantText`||t.type===`AssistantThinking`?m(t=>an(t,e.agent_id,e=>e.type!==`ContentDelta`&&e.type!==`ThinkingDelta`)):t.type===`ToolCall`&&t.tool_call_id&&!t.streaming?m(n=>an(n,e.agent_id,e=>!(e.type===`ToolResultDelta`&&e.tool_call_id===t.tool_call_id))):(t.type===`SentMessage`||t.type===`ReceivedMessage`)&&t.message_id&&m(n=>an(n,e.agent_id,e=>e.type===`SentMessageDelta`||e.type===`ReceivedMessageDelta`?e.message_id!==t.message_id:!0)),f(n=>{let r=new Map(n),i=r.get(e.agent_id)??[];if(t.type===`ToolCall`&&t.tool_call_id&&!t.streaming){let n=i.findIndex(e=>e.type===`ToolCall`&&e.tool_call_id===t.tool_call_id&&e.streaming===!0);if(n>=0){let a=[...i];return a[n]=t,r.set(e.agent_id,a),r}}return r.set(e.agent_id,[...i,t]),r})}},[t,i,n])}),j=(0,F.useCallback)(e=>{if(e){let n=t.get(e);n?.tab_id&&u(n.tab_id)}o(e)},[t]),oe=(0,F.useMemo)(()=>({agents:t}),[t]),se=(0,F.useMemo)(()=>({tabs:r}),[r]),M=(0,F.useMemo)(()=>({connected:ae}),[ae]),ce=(0,F.useMemo)(()=>({agentHistories:d,clearAgentHistory:re,clearHistorySnapshot:ie,historyInvalidatedAt:_,historyClearedAt:h,historySnapshots:y,streamingDeltas:p}),[d,re,ie,_,h,y,p]),N=(0,F.useMemo)(()=>({activeMessages:x,activeToolCalls:C}),[x,C]),le=(0,F.useMemo)(()=>({recentActivities:T}),[T]),ue=(0,F.useMemo)(()=>({selectedAgentId:a,selectAgent:j,hoveredAgentId:s,setHoveredAgentId:c,activeTabId:ne,setActiveTabId:u,currentPage:D,setCurrentPage:ee}),[a,j,s,ne,D]);return(0,I.jsx)(on.Provider,{value:oe,children:(0,I.jsx)(sn.Provider,{value:se,children:(0,I.jsx)(cn.Provider,{value:M,children:(0,I.jsx)(ln.Provider,{value:ce,children:(0,I.jsx)(un.Provider,{value:N,children:(0,I.jsx)(Qt.Provider,{value:le,children:(0,I.jsx)(dn.Provider,{value:ue,children:e})})})})})})})}function _n(){let e=(0,F.useContext)(on);if(!e)throw Error(`useAgentNodesRuntime must be used within AgentProvider`);return e}function vn(){let e=(0,F.useContext)(cn);if(!e)throw Error(`useAgentConnectionRuntime must be used within AgentProvider`);return e}function yn(){let e=(0,F.useContext)(sn);if(!e)throw Error(`useAgentTabsRuntime must be used within AgentProvider`);return e}function bn(){let e=(0,F.useContext)(ln);if(!e)throw Error(`useAgentHistoryRuntime must be used within AgentProvider`);return e}function xn(){let e=(0,F.useContext)(un);if(!e)throw Error(`useAgentActivityRuntime must be used within AgentProvider`);return e}function Sn(){let e=(0,F.useContext)(dn);if(!e)throw Error(`useAgentUI must be used within AgentProvider`);return e}var Cn=(0,F.createContext)(null);function Y(){let e=(0,F.useContext)(Cn);if(!e)throw Error(`useAccess must be used within AccessProvider`);return e}var wn={};function Tn(e){return Object.hasOwn(wn,e)}function En(e,t,n,r){let[i,a]=(0,F.useState)(()=>wn[e]??t);return[i,(0,F.useCallback)(t=>{let i=Math.max(n,Math.min(r,t));a(i),wn[e]=i},[e,n,r])]}function Dn(e,t,n=`right`){let[r,i]=(0,F.useState)(!1);return{isDragging:r,startDrag:(0,F.useCallback)(r=>{r.preventDefault(),i(!0);let a=r.clientX,o=e,s=e=>{let r=e.clientX-a;t(o+(n===`right`?r:-r))},c=()=>{i(!1),document.removeEventListener(`mousemove`,s),document.removeEventListener(`mouseup`,c),document.body.style.cursor=``};document.addEventListener(`mousemove`,s),document.addEventListener(`mouseup`,c),document.body.style.cursor=`col-resize`},[e,t,n])}}function On({onMouseDown:e,isDragging:t,position:n,className:r}){return(0,I.jsx)(`div`,{onMouseDown:e,className:M(`absolute top-0 bottom-0 z-50 w-2 cursor-col-resize flex items-center justify-center -mx-1 group`,n===`left`?`left-0`:`right-0`,r),children:(0,I.jsx)(`div`,{className:M(`w-[2px] h-full transition-colors delay-100`,t?`bg-primary/50`:`bg-transparent group-hover:bg-primary/30`)})})}function kn(e,t){return!t||e.length<=t?e:`${e.slice(0,Math.max(0,t-3))}...`}function X(e,t,n){if(!e)return`unknown`;if(e===`human`)return`Human`;if(e===`assistant`)return`Assistant`;let r=t?.get(e),i=r?.name?.trim();if(i)return kn(i,n);if(r?.is_leader)return kn(`Leader`,n);let a=r?.role_name?.trim();return kn(a||e.slice(0,8),n)}var An=8e3,jn=24,Mn=`clamp(9.5px, calc(9.5px + (var(--sidebar-activity-width) - 180px) * 0.003636), 10.3px)`,Nn=`clamp(10px, calc(10px + (var(--sidebar-activity-width) - 180px) * 0.002273), 10.6px)`,Pn=`clamp(20px, calc(20px + (var(--sidebar-activity-width) - 180px) * 0.016364), 24px)`,Fn=`clamp(7px, calc(7px + (var(--sidebar-activity-width) - 180px) * 0.013636), 10px)`,In=`clamp(4px, calc(4px + (var(--sidebar-activity-width) - 180px) * 0.004545), 5px)`;function Ln(e,t,n,r,i){let a=X(e,n,r);switch(t.type){case`ReceivedMessage`:{let i=t.from_id===`human`?`Human`:X(t.from_id??`unknown`,n,r);return{id:`${e}-${t.timestamp}-received-${t.from_id??`unknown`}`,text:`${a} <- ${i}`,tone:`active`}}case`AssistantText`:return{id:`${e}-${t.timestamp}-text`,text:`${a} replied`,tone:`active`};case`SentMessage`:{let i=t.to_id==null?(t.to_ids??[]).filter(e=>!!e):[t.to_id],o=i.map(e=>X(e,n,r));return{id:`${e}-${t.timestamp}-sent-${i.join(`,`)}`,text:`${a} -> ${o.join(`, `)||`unknown`}`,tone:`active`}}case`AssistantThinking`:return{id:`${e}-${t.timestamp}-thinking`,text:`${a} thinking`,tone:`thinking`};case`ToolCall`:{let n=t.tool_name??`tool`,r=n.length>i?`${n.slice(0,Math.max(0,i-3))}...`:n;if(n===`idle`){let n=typeof t.result==`string`&&t.result.trim()?t.result.trim():`idle`;return{id:`${e}-${t.timestamp}-idle`,text:`${a} ${n}`,tone:`quiet`}}if(n===`sleep`){let n=typeof t.result==`string`&&t.result.trim()?t.result.trim():`sleep`;return{id:`${e}-${t.timestamp}-sleep`,text:`${a} ${n}`,tone:`quiet`}}if(n===`todo`){let n=(Array.isArray(t.arguments?.todos)?t.arguments?.todos:[]).length;return{id:`${e}-${t.timestamp}-todo-${n}`,text:n>0?`${a} todo x${n}`:`${a} todo clear`,tone:n>0?`active`:`quiet`}}return{id:`${e}-${t.timestamp}-tool-${n}`,text:`${a} · ${r}`,tone:`active`}}case`ErrorEntry`:return{id:`${e}-${t.timestamp}-error`,text:`${a} error`,tone:`alert`};default:return null}}function Rn({width:e}){let{agents:t}=_n(),{recentActivities:n}=$t(),[r,i]=(0,F.useState)(()=>Date.now()),a=e<220?12:e<280?16:22,o=e<220?10:e<280?14:18,s={"--sidebar-activity-width":`${e}px`};(0,F.useEffect)(()=>{let e=window.setInterval(()=>{i(Date.now())},1e3);return()=>{window.clearInterval(e)}},[]);let c=(0,F.useMemo)(()=>n.slice(-jn).map(e=>Ln(e.agentId,e.entry,t,a,o)).filter(e=>e!==null),[t,a,n,o]),l=(0,F.useMemo)(()=>n.filter(e=>r-e.timestampMs<=An).length,[r,n]),u=c[c.length-1]??null;return(0,I.jsxs)(`div`,{className:`flex items-center gap-2.5 overflow-hidden`,style:s,children:[(0,I.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 text-[10px] font-semibold text-muted-foreground/62`,children:[(0,I.jsx)(`span`,{className:M(`size-1.5 rounded-full transition-all duration-300`,l>0?`bg-graph-status-idle shadow-[0_0_10px_var(--graph-status-idle)]`:`bg-graph-status-idle/20`)}),(0,I.jsx)(`span`,{style:{fontSize:Mn},children:`Live`})]}),(0,I.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:u?(0,I.jsx)(`div`,{className:`relative min-w-0 overflow-hidden`,style:{height:Pn},children:(0,I.jsx)(R,{initial:!1,children:(0,I.jsxs)(A.div,{initial:{y:16,opacity:0},animate:{y:0,opacity:1},exit:{y:-16,opacity:0},transition:{duration:.24,ease:[.22,1,.36,1]},className:`absolute inset-0 flex min-w-0 items-center text-muted-foreground/84`,style:{fontSize:Nn,gap:Fn},children:[(0,I.jsx)(`span`,{className:M(`shrink-0 rounded-full`,u.tone===`alert`?`bg-graph-status-error/94`:u.tone===`thinking`?`bg-graph-status-initializing/62`:u.tone===`active`?`bg-graph-status-running/80`:`bg-muted-foreground/30`),style:{width:In,height:In}}),(0,I.jsx)(`span`,{className:`block min-w-0 truncate`,children:u.text})]},u.id)})}):(0,I.jsx)(`div`,{className:`flex min-w-0 items-center text-muted-foreground/72`,style:{height:Pn,fontSize:Nn},children:(0,I.jsx)(`span`,{className:`block truncate`,children:`Waiting for agent activity`})})})]})}var zn=[{label:`Core`,items:[{id:`assistant`,label:`Assistant`,icon:m},{id:`workspace`,label:`Workspace`,icon:p},{id:`stats`,label:`Stats`,icon:h}]},{label:`Configuration`,items:[{id:`providers`,label:`Providers`,icon:a},{id:`roles`,label:`Roles`,icon:c},{id:`prompts`,label:`Prompts`,icon:j},{id:`tools`,label:`Tools`,icon:o}]},{label:`Integrations & System`,items:[{id:`mcp`,label:`MCP`,icon:T},{id:`channels`,label:`Channels`,icon:k},{id:`settings`,label:`Settings`,icon:d}]}];zn.flatMap(e=>e.items);function Bn({autoHide:e=!1,className:t,onNavigate:n,width:r,onWidthChange:i}){let{connected:a}=vn(),{currentPage:o,setCurrentPage:s}=Sn(),{logout:c}=Y(),{isDragging:l,startDrag:u}=Dn(r,i,`right`),d=Math.max(0,Math.min(1,(r-180)/220)),f=16+d*4,p=1.05+d*.1,m=e=>{s(e),n?.()};return(0,I.jsxs)(`aside`,{style:{width:`${r}px`},className:M(`text-sidebar-foreground relative isolate z-40 flex flex-col overflow-hidden border-r border-sidebar-border bg-sidebar transition-colors`,e?`h-full`:`fixed inset-y-0 left-0 h-auto`,t),children:[(0,I.jsx)(`div`,{className:`pointer-events-none absolute inset-0 opacity-20`,style:{background:`var(--shell-surface-sweep)`}}),(0,I.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:[(0,I.jsx)(`div`,{className:`shrink-0 px-5`,style:{paddingTop:`${f}px`,paddingBottom:`${f}px`},children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,I.jsx)(`h1`,{className:`truncate font-medium tracking-tight text-sidebar-foreground`,style:{fontSize:`${p.toFixed(3)}rem`},children:`Flowent`}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 rounded-full border border-sidebar-border bg-sidebar-accent/60 px-2 py-0.5`,children:[(0,I.jsx)(`span`,{className:M(`size-1.5 rounded-full`,a?`bg-graph-status-running shadow-[0_0_10px_var(--graph-status-running)]`:`bg-graph-status-idle shadow-[0_0_10px_var(--graph-status-idle)]`)}),(0,I.jsx)(`span`,{className:`text-[9px] font-medium uppercase tracking-wider text-sidebar-foreground/62`,children:a?`Connected`:`Reconnecting`})]})]}),(0,I.jsx)(`p`,{className:`text-[11px] font-medium text-sidebar-foreground/48`,children:`Agent Studio`})]})}),(0,I.jsx)(`div`,{className:`relative flex min-h-0 flex-1 flex-col overflow-y-auto scrollbar-none`,children:(0,I.jsx)(`div`,{className:`flex flex-col gap-2 p-2`,children:zn.map((e,t)=>(0,I.jsxs)(`div`,{className:M(`relative flex w-full min-w-0 flex-col py-0`,t>0&&`pt-4`),children:[(0,I.jsx)(`div`,{className:`ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 text-xs font-normal text-muted-foreground`,children:e.label}),(0,I.jsx)(`div`,{className:`w-full text-sm py-1`,children:(0,I.jsx)(`ul`,{className:`flex w-full min-w-0 flex-col gap-1`,children:e.items.map(({id:e,label:t,icon:n})=>{let r=o===e;return(0,I.jsx)(`li`,{className:`group/menu-item relative`,children:(0,I.jsxs)(`button`,{type:`button`,onClick:()=>m(e),"data-active":r,className:M(`flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-hidden ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[active=true]:font-bold data-[active=true]:text-[#6366F1] data-[active=true]:bg-sidebar-accent/50 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm`,!r&&`text-sidebar-foreground/70`),children:[(0,I.jsx)(n,{className:M(`size-4 shrink-0 transition-colors duration-200`,r?`text-[#6366F1]`:`text-sidebar-foreground/48 group-hover:text-sidebar-accent-foreground/88`)}),(0,I.jsx)(`span`,{className:`block truncate flex-1`,children:t})]})},e)})})})]},e.label))})}),(0,I.jsxs)(`div`,{className:`shrink-0 border-t border-sidebar-border bg-sidebar/80 px-3 py-3`,children:[(0,I.jsxs)(z,{type:`button`,variant:`ghost`,onClick:()=>{c()},className:`mb-3 flex w-full items-center justify-start gap-2.5 rounded-md border border-sidebar-border bg-sidebar-accent/25 px-3 py-2 text-left text-[12px] font-medium text-sidebar-foreground/74 transition-colors hover:bg-sidebar-accent/45 hover:text-sidebar-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,children:[(0,I.jsx)(v,{className:`size-3.5`}),(0,I.jsx)(`span`,{children:`Logout`})]}),(0,I.jsx)(Rn,{width:r})]})]}),(0,I.jsx)(On,{position:`right`,isDragging:l,onMouseDown:u})]})}var Vn={app:{base:`var(--shell-app-bg)`,primarySpotlight:`var(--shell-app-spotlight-primary)`,secondarySpotlight:`var(--shell-app-spotlight-secondary)`},access:{base:`var(--shell-access-bg)`,primarySpotlight:`var(--shell-access-spotlight-primary)`,secondarySpotlight:`var(--shell-access-spotlight-secondary)`}},Hn={workspace:`var(--shell-surface-workspace)`,page:`var(--shell-surface-page)`,access:`var(--shell-surface-access)`};function Un({children:e,className:t,style:n,variant:r,...i}){let a=Vn[r];return(0,I.jsxs)(`div`,{...i,className:M(`relative overflow-hidden`,r===`app`?`h-screen`:`min-h-screen`,t),style:{...n,background:a.base},children:[(0,I.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0`,style:{background:`${a.primarySpotlight}, ${a.secondarySpotlight}`}}),(0,I.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0`,style:{background:`var(--shell-sweep)`}}),(0,I.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0`,style:{opacity:`var(--shell-noise-opacity)`,backgroundImage:`radial-gradient(circle at 1px 1px, var(--shell-noise-dot) 1px, transparent 0)`,backgroundSize:`20px 20px`}}),e]})}function Wn({children:e,className:t,style:n,variant:r,...i}){return(0,I.jsxs)(`div`,{...i,className:M(`relative isolate overflow-hidden`,t),style:{...n,background:Hn[r]},children:[(0,I.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0`,style:{background:`var(--shell-surface-sweep)`}}),(0,I.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-x-0 top-0 h-px`,style:{background:`var(--shell-hairline)`}}),e]})}function Z({barClassName:e,className:t,label:n,textClassName:r}){return(0,I.jsx)(`div`,{className:M(`flex h-full items-center justify-center`,t),children:(0,I.jsxs)(`div`,{className:`space-y-3 text-center`,children:[(0,I.jsx)(`div`,{className:M(`mx-auto h-2 w-32 animate-pulse rounded-full bg-accent/30`,e)}),(0,I.jsx)(`p`,{className:M(`text-sm text-muted-foreground`,r),children:n})]})})}function Gn({compact:e,onOpenNavigation:t}){return e?(0,I.jsx)(`div`,{className:`shrink-0 border-b border-border/70 py-3`,children:(0,I.jsx)(`div`,{className:`flex items-center`,children:(0,I.jsx)(z,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":`Open navigation`,onClick:t,className:`size-9 shrink-0 rounded-md border border-border/70 bg-card/20 text-muted-foreground hover:bg-accent/35 hover:text-foreground`,children:(0,I.jsx)(x,{className:`size-4`})})})}):null}function Kn({delayDuration:e=0,...t}){return(0,I.jsx)(S,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function qn({...e}){return(0,I.jsx)(g,{"data-slot":`tooltip`,...e})}function Jn({...e}){return(0,I.jsx)(ee,{"data-slot":`tooltip-trigger`,...e})}function Yn({className:e,sideOffset:t=0,children:n,...r}){return(0,I.jsx)(te,{children:(0,I.jsxs)(E,{"data-slot":`tooltip-content`,sideOffset:t,className:M(`bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-2 py-1 text-[11px] text-balance shadow-sm`,e),...r,children:[n,(0,I.jsx)(re,{className:`bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]`})]})})}var Xn={authenticated:!1,configured:!1,bootstrap_generated:!1,requires_restart:!1};function Zn({children:e}){let[t,n]=(0,F.useState)(Xn),[r,i]=(0,F.useState)(!0),a=(0,F.useCallback)(async()=>{try{let e=await pt();return n(e),e}catch{let e=Xn;return n(t=>(e=t,t)),e}},[]),o=(0,F.useCallback)(()=>{n(e=>e.authenticated?{...e,authenticated:!1}:e),a()},[a]);(0,F.useEffect)(()=>{let e=!1;return pt().then(t=>{e||n(t)}).catch(()=>{e||n(Xn)}).finally(()=>{e||i(!1)}),()=>{e=!0}},[]),(0,F.useEffect)(()=>ce(o),[o]);let s=(0,F.useCallback)(async e=>{let t=await mt(e);return n(t),t},[]),c=(0,F.useCallback)(async()=>{let e=await ht();return n(e),e},[]),l=(0,F.useMemo)(()=>({loading:r,state:t,login:s,logout:c,refresh:a,requireReauth:o}),[r,t,s,c,a,o]);return(0,I.jsx)(Cn.Provider,{value:l,children:e})}var Qn=`flowent-theme`;function $n(){document.documentElement.style.colorScheme=`dark`,document.documentElement.classList.add(`dark`),document.documentElement.classList.remove(`light`),localStorage.removeItem(Qn)}function er({children:e}){return(0,F.useEffect)(()=>{$n()},[]),e}function tr(e){return typeof window>`u`?!1:window.matchMedia(e).matches}function nr(e){let[t,n]=(0,F.useState)(()=>tr(e));return(0,F.useEffect)(()=>{if(typeof window>`u`)return;let t=window.matchMedia(e),r=()=>{n(t.matches)};return r(),t.addEventListener(`change`,r),()=>{t.removeEventListener(`change`,r)}},[e]),t}var rr=`modulepreload`,ir=function(e){return`/`+e},ar={},Q=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=ir(t,n),t in ar)return;ar[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:rr,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function $(e,t){return(0,F.lazy)(async()=>({default:(await e())[t]}))}var or=$(()=>Q(()=>import(`./HomePage-C0hAx9_l.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])),`HomePage`),sr=$(()=>Q(()=>import(`./AssistantPage-B3Xc08AS.js`),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),`AssistantPage`),cr=$(()=>Q(()=>import(`./StatsPage-BX9khYzu.js`),__vite__mapDeps([17,1,18,4,5,6,7,8,14,9,19])),`StatsPage`),lr={assistant:sr,workspace:or,providers:$(()=>Q(()=>import(`./ProvidersPage-PUWT8seJ.js`),__vite__mapDeps([20,1,18,4,5,6,7,8,13,12,14,21])),`ProvidersPage`),mcp:$(()=>Q(()=>import(`./McpPage-DkrYLvBv.js`),__vite__mapDeps([22,1,11,12,4,5,6,7,8,18,14,19])),`McpPage`),roles:$(()=>Q(()=>import(`./RolesPage-CqcclGRw.js`),__vite__mapDeps([23,1,24,14,4,5,6,7,8,18,13,3,15])),`RolesPage`),prompts:$(()=>Q(()=>import(`./PromptsPage-DWA7rRJd.js`),__vite__mapDeps([25,1,18,4,5,6,7,8])),`PromptsPage`),tools:$(()=>Q(()=>import(`./ToolsPage-9Tl9FdeD.js`),__vite__mapDeps([26,1,18,4,5,6,7,8])),`ToolsPage`),channels:$(()=>Q(()=>import(`./ChannelsPage-ByLd28xk.js`),__vite__mapDeps([27,1,18,4,5,6,7,8,19])),`ChannelsPage`),stats:cr,settings:$(()=>Q(()=>import(`./SettingsPage-8tS2cJgX.js`),__vite__mapDeps([28,1,24,14,4,5,6,7,8,18,21])),`SettingsPage`)},ur=`z-30 flex items-center justify-center border border-border bg-surface-overlay text-muted-foreground backdrop-blur-xl transition-colors hover:bg-accent/80 hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,dr=`h-12 w-full rounded-xl border border-input bg-background/55 px-4 pr-12 font-mono text-[15px] tracking-[0.04em] text-foreground transition-[border-color,box-shadow,background-color] placeholder:text-muted-foreground/70 focus:bg-background/70 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/40 disabled:cursor-not-allowed disabled:opacity-50`,fr=`group flex h-11 w-full items-center justify-center gap-2 rounded-full bg-primary text-[13px] font-medium text-primary-foreground shadow-xs transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50`;function pr(){let{currentPage:e}=Sn(),{logout:t}=Y(),n=e===`workspace`,r=nr(`(max-width: 980px)`),[i,a]=En(`sidebar-width`,232,196,320),[o,s]=(0,F.useState)(!1),c=lr[e],l=r&&o,u=()=>(0,I.jsx)(F.Suspense,{fallback:(0,I.jsx)(Z,{label:`Loading page...`,barClassName:`skeleton-shimmer animate-none`}),children:(0,I.jsx)(c,{})}),d=(0,I.jsx)(R,{mode:`wait`,children:(0,I.jsx)(A.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.2,ease:`easeInOut`},className:`relative h-full`,children:n?u():(0,I.jsxs)(`div`,{className:`mx-auto flex h-full w-full max-w-[1320px] min-h-0 flex-col px-4 sm:px-6 lg:px-8`,children:[(0,I.jsx)(Gn,{compact:r,onOpenNavigation:()=>s(!0)}),(0,I.jsx)(`div`,{className:`min-h-0 flex-1`,children:u()})]})},e)});return(0,I.jsxs)(Un,{variant:`app`,children:[r?(0,I.jsx)(R,{children:l?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(A.button,{type:`button`,"aria-label":`Close navigation`,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.18},className:`absolute inset-0 z-40 bg-background/72 backdrop-blur-[2px]`,onClick:()=>s(!1)}),(0,I.jsx)(A.div,{initial:{x:-24,opacity:0},animate:{x:0,opacity:1},exit:{x:-24,opacity:0},transition:{duration:.22,ease:[.22,1,.36,1]},className:`absolute inset-y-0 left-0 z-50`,children:(0,I.jsx)(Bn,{autoHide:!0,width:Math.min(i,320),onWidthChange:a,onNavigate:()=>s(!1)})})]}):null}):(0,I.jsx)(Bn,{width:i,onWidthChange:a}),(0,I.jsx)(`main`,{className:`relative z-10 h-full isolate`,style:r?void 0:{marginLeft:`${i}px`,width:`calc(100% - ${i}px)`},children:n?(0,I.jsxs)(Wn,{variant:`workspace`,className:M(`h-full backdrop-blur-xl [contain:paint]`),children:[r?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(z,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":l?`Close navigation`:`Open navigation`,onClick:()=>s(e=>!e),className:M(ur,`absolute left-3.5 top-3.5 size-9 rounded-md`),children:l?(0,I.jsx)(b,{className:`size-4`}):(0,I.jsx)(x,{className:`size-4`})}),(0,I.jsxs)(z,{type:`button`,variant:`ghost`,"aria-label":`Logout`,onClick:()=>{t()},className:M(ur,`absolute right-3.5 top-3.5 h-9 gap-2 rounded-full px-3 text-[12px] font-medium`),children:[(0,I.jsx)(v,{className:`size-3.5`}),`Logout`]})]}):null,d]}):(0,I.jsx)(`div`,{className:`h-full [contain:paint]`,children:d})})]})}function mr(e){return e instanceof Error?e.message.replace(/^Failed to verify access code:\s*/u,``):`Failed to verify access code`}function hr(){let{login:e,state:t}=Y(),[n,r]=(0,F.useState)(``),[i,a]=(0,F.useState)(``),[o,s]=(0,F.useState)(!1),c=t.requires_restart,l=c?`Access was reset locally. Restart Flowent to generate a new access code.`:i,u=async t=>{if(t?.preventDefault(),!c){if(!n.trim()){a(`Enter the access code`);return}s(!0),a(``);try{await e(n),r(``)}catch(e){a(mr(e))}finally{s(!1)}}};return(0,I.jsx)(Un,{variant:`access`,children:(0,I.jsxs)(`div`,{className:`relative z-10 flex min-h-screen flex-col items-center justify-center px-5 py-12`,children:[(0,I.jsxs)(A.div,{initial:{opacity:0,y:-4},animate:{opacity:1,y:0},transition:{duration:.32,delay:.04,ease:`easeOut`},className:`mb-7 flex items-center gap-2 text-[12px] font-medium tracking-[0.04em] text-muted-foreground/80`,children:[(0,I.jsx)(`span`,{"aria-hidden":`true`,className:`size-1 rounded-full bg-foreground/70 shadow-[0_0_8px_color-mix(in_srgb,var(--foreground)_30%,transparent)]`}),`Flowent`]}),(0,I.jsx)(A.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.32,delay:.08,ease:`easeOut`},className:`w-full max-w-[420px]`,children:(0,I.jsx)(Wn,{variant:`access`,className:`rounded-2xl border border-border/80 p-7 text-popover-foreground shadow-2xl shadow-black/40 sm:p-8`,children:(0,I.jsxs)(`form`,{className:`relative z-10`,onSubmit:e=>void u(e),children:[(0,I.jsx)(`div`,{className:`flex flex-col items-center text-center`,children:(0,I.jsx)(`h1`,{className:`text-[22px] font-medium leading-tight tracking-tight text-foreground`,children:`Enter access code`})}),(0,I.jsxs)(`div`,{className:`mt-6 space-y-3.5`,children:[(0,I.jsxs)(`div`,{className:`space-y-2`,children:[(0,I.jsx)(`label`,{htmlFor:`access-code`,className:`block text-[12px] font-medium text-foreground/80`,children:`Startup Log Access Code`}),(0,I.jsx)(ze,{id:`access-code`,autoFocus:!c,autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,value:n,disabled:o||c,"aria-describedby":l?`access-code-feedback`:void 0,"aria-invalid":!!l,onChange:e=>{r(e.target.value),i&&a(``)},placeholder:`Paste access code`,showLabel:`Show access code`,hideLabel:`Hide access code`,buttonSize:`default`,mono:!0,className:dr})]}),(0,I.jsx)(R,{mode:`wait`,initial:!1,children:l?(0,I.jsx)(A.p,{id:`access-code-feedback`,role:`alert`,initial:{opacity:0,y:-4},animate:{opacity:1,y:0},exit:{opacity:0,y:4},transition:{duration:.16},className:`rounded-xl border border-graph-status-error/30 bg-graph-status-error/10 px-3.5 py-3 text-[12px] leading-5 text-graph-status-error`,children:l},c?`restart`:`error`):null}),(0,I.jsx)(z,{type:`submit`,variant:`default`,disabled:o||c,className:fr,children:o?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(ae,{className:`size-4 animate-spin`,"aria-hidden":`true`}),`Verifying`]}):(0,I.jsxs)(I.Fragment,{children:[`Unlock`,(0,I.jsx)(D,{className:`size-4 transition-transform duration-200 group-hover:translate-x-0.5`,"aria-hidden":`true`})]})})]})]})})})]})})}function gr(){let{loading:e,state:t}=Y();return e?(0,I.jsx)(Un,{variant:`access`,className:`flex min-h-screen items-center justify-center`,children:(0,I.jsx)(Z,{label:`Loading access...`,barClassName:`skeleton-shimmer animate-none`})}):t.authenticated?(0,I.jsx)(gn,{children:(0,I.jsx)(ut,{children:(0,I.jsx)(pr,{})})}):(0,I.jsx)(hr,{})}function _r(){return(0,I.jsx)(er,{children:(0,I.jsxs)(Zn,{children:[(0,I.jsx)(u,{theme:`dark`,position:`bottom-right`,toastOptions:{className:`rounded-md border border-border bg-surface-overlay text-foreground shadow-md`}}),(0,I.jsx)(Kn,{delayDuration:300,children:(0,I.jsx)(gr,{})})]})})}(0,fe.createRoot)(document.getElementById(`root`)).render((0,I.jsxs)(F.StrictMode,{children:[(0,I.jsx)(_r,{}),!1]}));export{Tt as A,Le as B,kt as C,Ot as D,At as E,xt as F,Ne as G,Oe as H,Ue as I,z as J,Ee as K,Re as L,bt as M,_t as N,Et as O,vt as P,Ie as R,Vt as S,Ct as T,De as U,ze as V,Pe as W,Ce as X,we as Y,R as Z,yn as _,Jn as a,tn as b,On as c,En as d,Y as f,_n as g,bn as h,Kn as i,yt as j,wt as k,Tn as l,vn as m,qn as n,Z as o,xn as p,Te as q,Yn as r,X as s,nr as t,Dn as u,Sn as v,Dt as w,en as x,rn as y,Be as z};