agor-live 0.21.2 β†’ 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/dist/cli/commands/branch/env/restart.js +1 -1
  2. package/dist/cli/commands/branch/env/start.js +1 -1
  3. package/dist/cli/commands/branch/env/stop.js +1 -1
  4. package/dist/core/api/index.cjs +5 -1
  5. package/dist/core/api/index.d.ts +6 -1
  6. package/dist/core/api/index.d.ts.map +1 -1
  7. package/dist/core/api/index.js +5 -1
  8. package/dist/core/claude/index.cjs +162 -14
  9. package/dist/core/claude/index.js +166 -18
  10. package/dist/core/client/index.cjs +43 -3
  11. package/dist/core/client/index.js +37 -3
  12. package/dist/core/config/browser.cjs +2 -2
  13. package/dist/core/config/browser.js +2 -2
  14. package/dist/core/config/config-manager.d.ts.map +1 -1
  15. package/dist/core/config/constants.d.ts +1 -1
  16. package/dist/core/config/index.cjs +174 -20
  17. package/dist/core/config/index.js +178 -24
  18. package/dist/core/config/types.d.ts +8 -0
  19. package/dist/core/config/types.d.ts.map +1 -1
  20. package/dist/core/db/index.cjs +495 -86
  21. package/dist/core/db/index.js +482 -75
  22. package/dist/core/db/repositories/artifacts.d.ts.map +1 -1
  23. package/dist/core/db/repositories/branches.d.ts +13 -1
  24. package/dist/core/db/repositories/branches.d.ts.map +1 -1
  25. package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
  26. package/dist/core/db/repositories/index.d.ts +1 -0
  27. package/dist/core/db/repositories/index.d.ts.map +1 -1
  28. package/dist/core/db/repositories/session-relationships.d.ts +30 -0
  29. package/dist/core/db/repositories/session-relationships.d.ts.map +1 -0
  30. package/dist/core/db/repositories/users.d.ts +11 -0
  31. package/dist/core/db/repositories/users.d.ts.map +1 -1
  32. package/dist/core/db/schema.d.ts +421 -4
  33. package/dist/core/db/schema.d.ts.map +1 -1
  34. package/dist/core/db/schema.postgres.d.ts +226 -2
  35. package/dist/core/db/schema.postgres.d.ts.map +1 -1
  36. package/dist/core/db/schema.sqlite.d.ts +228 -2
  37. package/dist/core/db/schema.sqlite.d.ts.map +1 -1
  38. package/dist/core/drizzle/postgres/0050_artifact_source_session.sql +3 -0
  39. package/dist/core/drizzle/postgres/0051_session_relationships.sql +26 -0
  40. package/dist/core/drizzle/postgres/meta/_journal.json +14 -0
  41. package/dist/core/drizzle/sqlite/0059_artifact_source_session.sql +2 -0
  42. package/dist/core/drizzle/sqlite/0060_session_relationships.sql +23 -0
  43. package/dist/core/drizzle/sqlite/meta/_journal.json +14 -0
  44. package/dist/core/gateway/connector-registry.d.ts.map +1 -1
  45. package/dist/core/gateway/connector.d.ts +22 -0
  46. package/dist/core/gateway/connector.d.ts.map +1 -1
  47. package/dist/core/gateway/connectors/slack.d.ts +35 -3
  48. package/dist/core/gateway/connectors/slack.d.ts.map +1 -1
  49. package/dist/core/gateway/connectors/teams.d.ts +107 -0
  50. package/dist/core/gateway/connectors/teams.d.ts.map +1 -0
  51. package/dist/core/gateway/context.d.ts.map +1 -1
  52. package/dist/core/gateway/index.cjs +552 -52
  53. package/dist/core/gateway/index.d.ts +3 -2
  54. package/dist/core/gateway/index.d.ts.map +1 -1
  55. package/dist/core/gateway/index.js +544 -52
  56. package/dist/core/gateway/system-message.d.ts +21 -0
  57. package/dist/core/gateway/system-message.d.ts.map +1 -1
  58. package/dist/core/index.cjs +616 -127
  59. package/dist/core/index.js +597 -116
  60. package/dist/core/mcp/index.cjs +146 -9
  61. package/dist/core/mcp/index.js +146 -9
  62. package/dist/core/mcp/template-resolver.d.ts.map +1 -1
  63. package/dist/core/seed/index.cjs +375 -59
  64. package/dist/core/seed/index.js +378 -62
  65. package/dist/core/sessions/index.cjs +19 -0
  66. package/dist/core/sessions/index.js +19 -0
  67. package/dist/core/templates/agor-system-prompt.md +21 -53
  68. package/dist/core/templates/session-context.cjs +2 -73
  69. package/dist/core/templates/session-context.d.ts +9 -53
  70. package/dist/core/templates/session-context.d.ts.map +1 -1
  71. package/dist/core/templates/session-context.js +2 -72
  72. package/dist/core/tools/mcp/jwt-auth.cjs +2 -20
  73. package/dist/core/tools/mcp/jwt-auth.d.ts.map +1 -1
  74. package/dist/core/tools/mcp/jwt-auth.js +2 -20
  75. package/dist/core/tools/mcp/oauth-mcp-transport.cjs +2 -15
  76. package/dist/core/tools/mcp/oauth-mcp-transport.d.ts.map +1 -1
  77. package/dist/core/tools/mcp/oauth-mcp-transport.js +2 -15
  78. package/dist/core/tools/mcp/oauth-refresh.cjs +167 -19
  79. package/dist/core/tools/mcp/oauth-refresh.js +167 -19
  80. package/dist/core/types/artifact.d.ts +5 -1
  81. package/dist/core/types/artifact.d.ts.map +1 -1
  82. package/dist/core/types/branch.d.ts +14 -0
  83. package/dist/core/types/branch.d.ts.map +1 -1
  84. package/dist/core/types/gateway.d.ts +1 -1
  85. package/dist/core/types/gateway.d.ts.map +1 -1
  86. package/dist/core/types/id.d.ts +1 -0
  87. package/dist/core/types/id.d.ts.map +1 -1
  88. package/dist/core/types/index.cjs +36 -0
  89. package/dist/core/types/index.js +30 -0
  90. package/dist/core/types/session.d.ts +65 -1
  91. package/dist/core/types/session.d.ts.map +1 -1
  92. package/dist/core/types/task.d.ts +9 -0
  93. package/dist/core/types/task.d.ts.map +1 -1
  94. package/dist/core/unix/index.cjs +371 -55
  95. package/dist/core/unix/index.js +374 -58
  96. package/dist/core/unix/unix-integration-service.d.ts +10 -7
  97. package/dist/core/unix/unix-integration-service.d.ts.map +1 -1
  98. package/dist/core/utils/permission-mode-mapper.cjs +19 -0
  99. package/dist/core/utils/permission-mode-mapper.js +19 -0
  100. package/dist/daemon/declarations.d.ts +7 -0
  101. package/dist/daemon/declarations.d.ts.map +1 -1
  102. package/dist/daemon/hooks/gateway-route.d.ts.map +1 -1
  103. package/dist/daemon/hooks/gateway-route.js +53 -1
  104. package/dist/daemon/index.js +3760 -2107
  105. package/dist/daemon/main.js +3760 -2107
  106. package/dist/daemon/mcp/server.js +155 -17
  107. package/dist/daemon/mcp/tools/analytics.js +6 -7
  108. package/dist/daemon/mcp/tools/artifacts.d.ts.map +1 -1
  109. package/dist/daemon/mcp/tools/artifacts.js +7 -7
  110. package/dist/daemon/mcp/tools/boards.js +6 -7
  111. package/dist/daemon/mcp/tools/branches.js +6 -7
  112. package/dist/daemon/mcp/tools/card-types.js +6 -7
  113. package/dist/daemon/mcp/tools/cards.js +6 -7
  114. package/dist/daemon/mcp/tools/environment.d.ts.map +1 -1
  115. package/dist/daemon/mcp/tools/environment.js +19 -12
  116. package/dist/daemon/mcp/tools/knowledge.js +6 -7
  117. package/dist/daemon/mcp/tools/mcp-servers.js +6 -7
  118. package/dist/daemon/mcp/tools/messages.js +6 -7
  119. package/dist/daemon/mcp/tools/proxies.js +6 -7
  120. package/dist/daemon/mcp/tools/repos.js +6 -7
  121. package/dist/daemon/mcp/tools/schedules.js +6 -7
  122. package/dist/daemon/mcp/tools/search.js +6 -7
  123. package/dist/daemon/mcp/tools/sessions.d.ts.map +1 -1
  124. package/dist/daemon/mcp/tools/sessions.js +140 -11
  125. package/dist/daemon/mcp/tools/tasks.js +6 -7
  126. package/dist/daemon/mcp/tools/users.js +6 -7
  127. package/dist/daemon/mcp/tools/widgets.js +7 -8
  128. package/dist/daemon/register-hooks.d.ts +5 -1
  129. package/dist/daemon/register-hooks.d.ts.map +1 -1
  130. package/dist/daemon/register-hooks.js +404 -179
  131. package/dist/daemon/register-routes.d.ts.map +1 -1
  132. package/dist/daemon/register-routes.js +360 -162
  133. package/dist/daemon/register-services.d.ts.map +1 -1
  134. package/dist/daemon/register-services.js +1928 -671
  135. package/dist/daemon/services/artifacts.d.ts +10 -1
  136. package/dist/daemon/services/artifacts.d.ts.map +1 -1
  137. package/dist/daemon/services/artifacts.js +25 -1
  138. package/dist/daemon/services/branches.d.ts +11 -1
  139. package/dist/daemon/services/branches.d.ts.map +1 -1
  140. package/dist/daemon/services/branches.js +470 -184
  141. package/dist/daemon/services/claude-models.js +879 -339
  142. package/dist/daemon/services/gateway.d.ts +58 -2
  143. package/dist/daemon/services/gateway.d.ts.map +1 -1
  144. package/dist/daemon/services/gateway.js +590 -47
  145. package/dist/daemon/services/groups.d.ts +2 -0
  146. package/dist/daemon/services/groups.d.ts.map +1 -1
  147. package/dist/daemon/services/groups.js +56 -0
  148. package/dist/daemon/services/mcp-servers.d.ts.map +1 -1
  149. package/dist/daemon/services/mcp-servers.js +0 -6
  150. package/dist/daemon/services/scheduler.d.ts.map +1 -1
  151. package/dist/daemon/services/scheduler.js +6 -2
  152. package/dist/daemon/services/sessions.d.ts +11 -3
  153. package/dist/daemon/services/sessions.d.ts.map +1 -1
  154. package/dist/daemon/services/sessions.js +68 -7
  155. package/dist/daemon/services/tasks.d.ts +13 -2
  156. package/dist/daemon/services/tasks.d.ts.map +1 -1
  157. package/dist/daemon/services/tasks.js +42 -26
  158. package/dist/daemon/startup.js +6 -2
  159. package/dist/daemon/utils/session-stop.d.ts +43 -0
  160. package/dist/daemon/utils/session-stop.d.ts.map +1 -0
  161. package/dist/daemon/utils/session-stop.js +102 -0
  162. package/dist/daemon/utils/session-task-state.d.ts +7 -2
  163. package/dist/daemon/utils/session-task-state.d.ts.map +1 -1
  164. package/dist/daemon/utils/session-task-state.js +9 -3
  165. package/dist/daemon/utils/session-tasks.d.ts +4 -4
  166. package/dist/daemon/utils/session-tasks.d.ts.map +1 -1
  167. package/dist/daemon/utils/session-tasks.js +4 -8
  168. package/dist/executor/commands/environment.d.ts +13 -0
  169. package/dist/executor/commands/environment.d.ts.map +1 -0
  170. package/dist/executor/commands/environment.js +287 -0
  171. package/dist/executor/commands/index.d.ts.map +1 -1
  172. package/dist/executor/commands/index.js +5 -1
  173. package/dist/executor/commands/unix.d.ts +8 -1
  174. package/dist/executor/commands/unix.d.ts.map +1 -1
  175. package/dist/executor/commands/unix.js +157 -2
  176. package/dist/executor/payload-types.d.ts +201 -5
  177. package/dist/executor/payload-types.d.ts.map +1 -1
  178. package/dist/executor/payload-types.js +98 -0
  179. package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +1 -1
  180. package/dist/executor/sdk-handlers/base/mcp-scoping.js +14 -0
  181. package/dist/executor/sdk-handlers/claude/message-processor.d.ts.map +1 -1
  182. package/dist/executor/sdk-handlers/claude/message-processor.js +0 -1
  183. package/dist/executor/sdk-handlers/claude/query-builder.d.ts +1 -0
  184. package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
  185. package/dist/executor/sdk-handlers/claude/query-builder.js +91 -39
  186. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +12 -5
  187. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
  188. package/dist/executor/sdk-handlers/codex/prompt-service.js +72 -30
  189. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts +2 -4
  190. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -1
  191. package/dist/executor/sdk-handlers/copilot/prompt-service.js +4 -13
  192. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +2 -4
  193. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
  194. package/dist/executor/sdk-handlers/gemini/prompt-service.js +4 -13
  195. package/dist/ui/assets/App-DcEY8Ota.js +3 -0
  196. package/dist/ui/assets/App-DcEY8Ota.js.gz +0 -0
  197. package/dist/ui/assets/{ArtifactConsentModal-ParNk5kW.js β†’ ArtifactConsentModal-CiCbK9iv.js} +1 -1
  198. package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js.gz +0 -0
  199. package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js +9 -0
  200. package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js.gz +0 -0
  201. package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js +18 -0
  202. package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js.gz +0 -0
  203. package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js +34 -0
  204. package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js.gz +0 -0
  205. package/dist/ui/assets/{CodeEditor.inner-D51Z_CLQ.js β†’ CodeEditor.inner-DBgsP4tn.js} +2 -2
  206. package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js.gz +0 -0
  207. package/dist/ui/assets/ConversationView-CUWR0gR6.js +1 -0
  208. package/dist/ui/assets/ConversationView-CUWR0gR6.js.gz +0 -0
  209. package/dist/ui/assets/KnowledgePage-B2bzlXfn.js +24 -0
  210. package/dist/ui/assets/KnowledgePage-B2bzlXfn.js.gz +0 -0
  211. package/dist/ui/assets/MarketingScreenshotPage-9Qd7eZsm.css +1 -0
  212. package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js +143 -0
  213. package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js.gz +0 -0
  214. package/dist/ui/assets/MobileApp-VgVnsnsN.js +1 -0
  215. package/dist/ui/assets/MobileApp-VgVnsnsN.js.gz +0 -0
  216. package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js +20 -0
  217. package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js.gz +0 -0
  218. package/dist/ui/assets/{App-BAdBsEnV.css β†’ SessionCanvas-mEmYGZhC.css} +1 -1
  219. package/dist/ui/assets/SessionCanvas-mEmYGZhC.css.gz +0 -0
  220. package/dist/ui/assets/{StreamdownDemoPage-B9wbgp2s.js β†’ StreamdownDemoPage-wzWaqWwr.js} +1 -1
  221. package/dist/ui/assets/StreamdownDemoPage-wzWaqWwr.js.gz +0 -0
  222. package/dist/ui/assets/{ThemeSwitcher-ubn6IOz9.js β†’ ThemeSwitcher-Dly2y9pi.js} +1 -1
  223. package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js.gz +0 -0
  224. package/dist/ui/assets/antd-CfbbHJOz.js +401 -0
  225. package/dist/ui/assets/antd-CfbbHJOz.js.gz +0 -0
  226. package/dist/ui/assets/architecture-U656AL7Q-CykGFbQU.js +1 -0
  227. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-ChmZt3zk.js β†’ architectureDiagram-VXUJARFQ-C8HXAenz.js} +1 -1
  228. package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js.gz +0 -0
  229. package/dist/ui/assets/{blockDiagram-VD42YOAC-CzGHAHao.js β†’ blockDiagram-VD42YOAC-BhZaEN19.js} +1 -1
  230. package/dist/ui/assets/blockDiagram-VD42YOAC-BhZaEN19.js.gz +0 -0
  231. package/dist/ui/assets/{c4Diagram-YG6GDRKO-DscJyaWN.js β†’ c4Diagram-YG6GDRKO-Dk_UH-sY.js} +1 -1
  232. package/dist/ui/assets/c4Diagram-YG6GDRKO-Dk_UH-sY.js.gz +0 -0
  233. package/dist/ui/assets/channel-D6_nUWlW.js +1 -0
  234. package/dist/ui/assets/{chunk-4BX2VUAB-DoWpTvP8.js β†’ chunk-4BX2VUAB-XprbG2TG.js} +1 -1
  235. package/dist/ui/assets/chunk-55IACEB6-ByzqIgSb.js +1 -0
  236. package/dist/ui/assets/{chunk-ABZYJK2D-RzDCrjE6.js β†’ chunk-ABZYJK2D-BJcrryHK.js} +1 -1
  237. package/dist/ui/assets/chunk-ABZYJK2D-BJcrryHK.js.gz +0 -0
  238. package/dist/ui/assets/{chunk-AGHRB4JF-jidCS5Of.js β†’ chunk-AGHRB4JF-DvxmfbM0.js} +1 -1
  239. package/dist/ui/assets/chunk-AGHRB4JF-DvxmfbM0.js.gz +0 -0
  240. package/dist/ui/assets/{chunk-ATLVNIR6-BEIIfJtC.js β†’ chunk-ATLVNIR6-DbeJ0OrR.js} +1 -1
  241. package/dist/ui/assets/chunk-ATLVNIR6-DbeJ0OrR.js.gz +0 -0
  242. package/dist/ui/assets/{chunk-B4BG7PRW-B8b6dQQ2.js β†’ chunk-B4BG7PRW-C53q2ggf.js} +1 -1
  243. package/dist/ui/assets/chunk-B4BG7PRW-C53q2ggf.js.gz +0 -0
  244. package/dist/ui/assets/{chunk-CVBHYZKI-D-mQAfrk.js β†’ chunk-CVBHYZKI-B3EBSlb3.js} +1 -1
  245. package/dist/ui/assets/{chunk-DI55MBZ5-BfATX3V8.js β†’ chunk-DI55MBZ5-vIyNEQN-.js} +1 -1
  246. package/dist/ui/assets/chunk-DI55MBZ5-vIyNEQN-.js.gz +0 -0
  247. package/dist/ui/assets/chunk-EXTU4WIE-B3ObkuOm.js +1 -0
  248. package/dist/ui/assets/{chunk-FMBD7UC4-fqXscNvc.js β†’ chunk-FMBD7UC4-rddmfK-Z.js} +1 -1
  249. package/dist/ui/assets/{chunk-HN2XXSSU-BCHvD80g.js β†’ chunk-HN2XXSSU-Dttqcg3b.js} +1 -1
  250. package/dist/ui/assets/chunk-HN2XXSSU-Dttqcg3b.js.gz +0 -0
  251. package/dist/ui/assets/{chunk-JA3XYJ7Z-Cp6dqHnY.js β†’ chunk-JA3XYJ7Z-DbNDev3D.js} +1 -1
  252. package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js.gz +0 -0
  253. package/dist/ui/assets/{chunk-JZLCHNYA-cKMooY3y.js β†’ chunk-JZLCHNYA-EUmx2y4H.js} +1 -1
  254. package/dist/ui/assets/chunk-JZLCHNYA-EUmx2y4H.js.gz +0 -0
  255. package/dist/ui/assets/{chunk-MI3HLSF2-BlzO5wOE.js β†’ chunk-MI3HLSF2-65n9Mkyc.js} +1 -1
  256. package/dist/ui/assets/chunk-MI3HLSF2-65n9Mkyc.js.gz +0 -0
  257. package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js +2 -0
  258. package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js.gz +0 -0
  259. package/dist/ui/assets/{chunk-QN33PNHL-DIHGQ_pd.js β†’ chunk-QN33PNHL-DsRKK6NR.js} +1 -1
  260. package/dist/ui/assets/{chunk-QXUST7PY-C9l0muI0.js β†’ chunk-QXUST7PY-BCYnMiS3.js} +1 -1
  261. package/dist/ui/assets/chunk-QXUST7PY-BCYnMiS3.js.gz +0 -0
  262. package/dist/ui/assets/chunk-QZHKN3VN-HucAw4xW.js +1 -0
  263. package/dist/ui/assets/{chunk-S3R3BYOJ-VJiLzt2o.js β†’ chunk-S3R3BYOJ-CWMEa9Dc.js} +1 -1
  264. package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js.gz +0 -0
  265. package/dist/ui/assets/{chunk-TZMSLE5B-DZwI0C_2.js β†’ chunk-TZMSLE5B-BuQUQcTr.js} +1 -1
  266. package/dist/ui/assets/chunk-TZMSLE5B-BuQUQcTr.js.gz +0 -0
  267. package/dist/ui/assets/classDiagram-2ON5EDUG-CUT3rPTB.js +1 -0
  268. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CUT3rPTB.js +1 -0
  269. package/dist/ui/assets/{cose-bilkent-S5V4N54A-Ipik-oSD.js β†’ cose-bilkent-S5V4N54A-CnPB3ARO.js} +1 -1
  270. package/dist/ui/assets/cose-bilkent-S5V4N54A-CnPB3ARO.js.gz +0 -0
  271. package/dist/ui/assets/cursor-QEb7m-rN.png +0 -0
  272. package/dist/ui/assets/{dagre-6UL2VRFP-BDpyWQnh.js β†’ dagre-6UL2VRFP-DhS-k_Se.js} +1 -1
  273. package/dist/ui/assets/dagre-6UL2VRFP-DhS-k_Se.js.gz +0 -0
  274. package/dist/ui/assets/{dagre-CgA4KhUX.js β†’ dagre-KgLoHEuy.js} +1 -1
  275. package/dist/ui/assets/dagre-KgLoHEuy.js.gz +0 -0
  276. package/dist/ui/assets/{diagram-PSM6KHXK-B4GRzxLJ.js β†’ diagram-PSM6KHXK-BZg3MJmb.js} +1 -1
  277. package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js.gz +0 -0
  278. package/dist/ui/assets/{diagram-QEK2KX5R-BWPW28XI.js β†’ diagram-QEK2KX5R-BPCitvbo.js} +1 -1
  279. package/dist/ui/assets/diagram-QEK2KX5R-BPCitvbo.js.gz +0 -0
  280. package/dist/ui/assets/{diagram-S2PKOQOG-BIHhcGoV.js β†’ diagram-S2PKOQOG-NW4uK6sx.js} +1 -1
  281. package/dist/ui/assets/diagram-S2PKOQOG-NW4uK6sx.js.gz +0 -0
  282. package/dist/ui/assets/{editor-C-HJ7Yw0.js β†’ editor-CzFWIUw2.js} +1 -1
  283. package/dist/ui/assets/editor-CzFWIUw2.js.gz +0 -0
  284. package/dist/ui/assets/{emoji-D8F6B62m.js β†’ emoji-Dkz4Zzv_.js} +1 -1
  285. package/dist/ui/assets/emoji-Dkz4Zzv_.js.gz +0 -0
  286. package/dist/ui/assets/{erDiagram-Q2GNP2WA-ubTaAFcK.js β†’ erDiagram-Q2GNP2WA-me1fboaf.js} +1 -1
  287. package/dist/ui/assets/erDiagram-Q2GNP2WA-me1fboaf.js.gz +0 -0
  288. package/dist/ui/assets/{flowDiagram-NV44I4VS-BHLCTYjI.js β†’ flowDiagram-NV44I4VS-DzE8dGsh.js} +1 -1
  289. package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js.gz +0 -0
  290. package/dist/ui/assets/{ganttDiagram-LVOFAZNH-ClC3pay1.js β†’ ganttDiagram-LVOFAZNH-CFQD09Mi.js} +2 -2
  291. package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js.gz +0 -0
  292. package/dist/ui/assets/{gitGraph-F6HP7TQM-DghoobE6.js β†’ gitGraph-F6HP7TQM-CfFE_uAC.js} +1 -1
  293. package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-Clqpiswu.js β†’ gitGraphDiagram-NY62KEGX-CaVoxU4C.js} +1 -1
  294. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js.gz +0 -0
  295. package/dist/ui/assets/index-BN5_Qq7R.js +324 -0
  296. package/dist/ui/assets/index-BN5_Qq7R.js.gz +0 -0
  297. package/dist/ui/assets/index-DxuPq13l.css +1 -0
  298. package/dist/ui/assets/index-DxuPq13l.css.gz +0 -0
  299. package/dist/ui/assets/{info-NVLQJR56-0ZldEXPQ.js β†’ info-NVLQJR56-i_xHYg3f.js} +1 -1
  300. package/dist/ui/assets/{infoDiagram-ER5ION4S-DMmPX-il.js β†’ infoDiagram-ER5ION4S-2NL93b78.js} +1 -1
  301. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CrVickA2.js β†’ journeyDiagram-XKPGCS4Q-CZF-2DHU.js} +1 -1
  302. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CZF-2DHU.js.gz +0 -0
  303. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-C_BsdHYL.js β†’ kanban-definition-3W4ZIXB7-CfvJIOny.js} +1 -1
  304. package/dist/ui/assets/kanban-definition-3W4ZIXB7-CfvJIOny.js.gz +0 -0
  305. package/dist/ui/assets/{line-CfBP7Yic.js β†’ line-DDv8kOJk.js} +1 -1
  306. package/dist/ui/assets/{linear-BsjageUB.js β†’ linear-Daef-l29.js} +1 -1
  307. package/dist/ui/assets/linear-Daef-l29.js.gz +0 -0
  308. package/dist/ui/assets/{mermaid-parser.core-DZdP-NFq.js β†’ mermaid-parser.core-CdK9QgYV.js} +2 -2
  309. package/dist/ui/assets/mermaid-parser.core-CdK9QgYV.js.gz +0 -0
  310. package/dist/ui/assets/{mermaid.core-TNrI0pHG.js β†’ mermaid.core-D6GS9mU-.js} +3 -3
  311. package/dist/ui/assets/mermaid.core-D6GS9mU-.js.gz +0 -0
  312. package/dist/ui/assets/message-SqLqNYcv.js +36 -0
  313. package/dist/ui/assets/message-SqLqNYcv.js.gz +0 -0
  314. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-BbmaUjMY.js β†’ mindmap-definition-VGOIOE7T-Cb3QMflX.js} +1 -1
  315. package/dist/ui/assets/mindmap-definition-VGOIOE7T-Cb3QMflX.js.gz +0 -0
  316. package/dist/ui/assets/{packet-BFZMPI3H-D_ZhkXuT.js β†’ packet-BFZMPI3H-Bm2uwz4i.js} +1 -1
  317. package/dist/ui/assets/{particles-Dv28pjOd.js β†’ particles-DsJFOarW.js} +1 -1
  318. package/dist/ui/assets/particles-DsJFOarW.js.gz +0 -0
  319. package/dist/ui/assets/{pie-7BOR55EZ-Dn0Q3qNx.js β†’ pie-7BOR55EZ-5i17tVnF.js} +1 -1
  320. package/dist/ui/assets/{pieDiagram-ADFJNKIX-BbyjfYu8.js β†’ pieDiagram-ADFJNKIX-BxIwQWvw.js} +1 -1
  321. package/dist/ui/assets/pieDiagram-ADFJNKIX-BxIwQWvw.js.gz +0 -0
  322. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-Bc3GqMKz.js β†’ quadrantDiagram-AYHSOK5B-B5HPe4ga.js} +1 -1
  323. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-B5HPe4ga.js.gz +0 -0
  324. package/dist/ui/assets/{radar-NHE76QYJ-BHwoAy1q.js β†’ radar-NHE76QYJ-BTn-tq0k.js} +1 -1
  325. package/dist/ui/assets/{reactflow-BVYPxNhc.js β†’ reactflow-Bf74ngoo.js} +2 -2
  326. package/dist/ui/assets/reactflow-Bf74ngoo.js.gz +0 -0
  327. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-BQaKKL09.js β†’ requirementDiagram-UZGBJVZJ-YfI6llkX.js} +1 -1
  328. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-YfI6llkX.js.gz +0 -0
  329. package/dist/ui/assets/{sandpack-BQW_FQ7G.js β†’ sandpack-D7koO5op.js} +1 -1
  330. package/dist/ui/assets/sandpack-D7koO5op.js.gz +0 -0
  331. package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-DiJvDvhb.js β†’ sankeyDiagram-TZEHDZUN-DOk_B10B.js} +1 -1
  332. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js.gz +0 -0
  333. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-Dw32824o.js β†’ sequenceDiagram-WL72ISMW-DAe4Um17.js} +1 -1
  334. package/dist/ui/assets/sequenceDiagram-WL72ISMW-DAe4Um17.js.gz +0 -0
  335. package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BCOpNdHV.js β†’ stateDiagram-FKZM4ZOC-CCesDu_C.js} +1 -1
  336. package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js.gz +0 -0
  337. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CMlIrsoO.js +1 -0
  338. package/dist/ui/assets/{syntax-VJrU5BEu.js β†’ syntax-C-M-8jOU.js} +1 -1
  339. package/dist/ui/assets/syntax-C-M-8jOU.js.gz +0 -0
  340. package/dist/ui/assets/{theme-DZtFA8b4.js β†’ theme-BQZdiqwv.js} +1 -1
  341. package/dist/ui/assets/{timeline-definition-IT6M3QCI-Jh_WZzXv.js β†’ timeline-definition-IT6M3QCI-D6P5txjT.js} +1 -1
  342. package/dist/ui/assets/timeline-definition-IT6M3QCI-D6P5txjT.js.gz +0 -0
  343. package/dist/ui/assets/{treemap-KMMF4GRG-CPYIgjxE.js β†’ treemap-KMMF4GRG-Bitm3gy4.js} +1 -1
  344. package/dist/ui/assets/{knowledgeRoutes-CivaUqha.js β†’ useUserLocalStorage-Ckb8HsIw.js} +1 -1
  345. package/dist/ui/assets/useUserLocalStorage-Ckb8HsIw.js.gz +0 -0
  346. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CERc7Rdb.js β†’ xychartDiagram-PRI3JC2R-CsybjUbd.js} +1 -1
  347. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CsybjUbd.js.gz +0 -0
  348. package/dist/ui/index.html +13 -11
  349. package/dist/ui/index.html.gz +0 -0
  350. package/package.json +10 -9
  351. package/dist/ui/assets/App-9s2WHM6S.js +0 -22
  352. package/dist/ui/assets/App-9s2WHM6S.js.gz +0 -0
  353. package/dist/ui/assets/App-BAdBsEnV.css.gz +0 -0
  354. package/dist/ui/assets/ArtifactConsentModal-ParNk5kW.js.gz +0 -0
  355. package/dist/ui/assets/ArtifactFullscreenPage-VQxLMCiN.js +0 -9
  356. package/dist/ui/assets/ArtifactFullscreenPage-VQxLMCiN.js.gz +0 -0
  357. package/dist/ui/assets/AutocompleteTextarea-3RchrIgk.js +0 -18
  358. package/dist/ui/assets/AutocompleteTextarea-3RchrIgk.js.gz +0 -0
  359. package/dist/ui/assets/CodeEditor.inner-D51Z_CLQ.js.gz +0 -0
  360. package/dist/ui/assets/ConversationView-Dyddw2b1.js +0 -34
  361. package/dist/ui/assets/ConversationView-Dyddw2b1.js.gz +0 -0
  362. package/dist/ui/assets/KnowledgePage-CdftslnF.js +0 -24
  363. package/dist/ui/assets/KnowledgePage-CdftslnF.js.gz +0 -0
  364. package/dist/ui/assets/MobileApp-BdBMpnJ1.js +0 -1
  365. package/dist/ui/assets/MobileApp-BdBMpnJ1.js.gz +0 -0
  366. package/dist/ui/assets/StreamdownDemoPage-B9wbgp2s.js.gz +0 -0
  367. package/dist/ui/assets/ThemeSwitcher-ubn6IOz9.js.gz +0 -0
  368. package/dist/ui/assets/antd-C-HfEC4E.js +0 -400
  369. package/dist/ui/assets/antd-C-HfEC4E.js.gz +0 -0
  370. package/dist/ui/assets/architecture-U656AL7Q-dkBewUpN.js +0 -1
  371. package/dist/ui/assets/architectureDiagram-VXUJARFQ-ChmZt3zk.js.gz +0 -0
  372. package/dist/ui/assets/blockDiagram-VD42YOAC-CzGHAHao.js.gz +0 -0
  373. package/dist/ui/assets/c4Diagram-YG6GDRKO-DscJyaWN.js.gz +0 -0
  374. package/dist/ui/assets/channel-DvRQqEqC.js +0 -1
  375. package/dist/ui/assets/chunk-55IACEB6-DojF2pZN.js +0 -1
  376. package/dist/ui/assets/chunk-ABZYJK2D-RzDCrjE6.js.gz +0 -0
  377. package/dist/ui/assets/chunk-AGHRB4JF-jidCS5Of.js.gz +0 -0
  378. package/dist/ui/assets/chunk-ATLVNIR6-BEIIfJtC.js.gz +0 -0
  379. package/dist/ui/assets/chunk-B4BG7PRW-B8b6dQQ2.js.gz +0 -0
  380. package/dist/ui/assets/chunk-DI55MBZ5-BfATX3V8.js.gz +0 -0
  381. package/dist/ui/assets/chunk-EXTU4WIE-BKt6lPJM.js +0 -1
  382. package/dist/ui/assets/chunk-HN2XXSSU-BCHvD80g.js.gz +0 -0
  383. package/dist/ui/assets/chunk-JA3XYJ7Z-Cp6dqHnY.js.gz +0 -0
  384. package/dist/ui/assets/chunk-JZLCHNYA-cKMooY3y.js.gz +0 -0
  385. package/dist/ui/assets/chunk-MI3HLSF2-BlzO5wOE.js.gz +0 -0
  386. package/dist/ui/assets/chunk-N4CR4FBY-pASDorUx.js +0 -2
  387. package/dist/ui/assets/chunk-N4CR4FBY-pASDorUx.js.gz +0 -0
  388. package/dist/ui/assets/chunk-QXUST7PY-C9l0muI0.js.gz +0 -0
  389. package/dist/ui/assets/chunk-QZHKN3VN-CZskCFCf.js +0 -1
  390. package/dist/ui/assets/chunk-S3R3BYOJ-VJiLzt2o.js.gz +0 -0
  391. package/dist/ui/assets/chunk-TZMSLE5B-DZwI0C_2.js.gz +0 -0
  392. package/dist/ui/assets/classDiagram-2ON5EDUG-BFASUbmZ.js +0 -1
  393. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BFASUbmZ.js +0 -1
  394. package/dist/ui/assets/cose-bilkent-S5V4N54A-Ipik-oSD.js.gz +0 -0
  395. package/dist/ui/assets/dagre-6UL2VRFP-BDpyWQnh.js.gz +0 -0
  396. package/dist/ui/assets/dagre-CgA4KhUX.js.gz +0 -0
  397. package/dist/ui/assets/diagram-PSM6KHXK-B4GRzxLJ.js.gz +0 -0
  398. package/dist/ui/assets/diagram-QEK2KX5R-BWPW28XI.js.gz +0 -0
  399. package/dist/ui/assets/diagram-S2PKOQOG-BIHhcGoV.js.gz +0 -0
  400. package/dist/ui/assets/editor-C-HJ7Yw0.js.gz +0 -0
  401. package/dist/ui/assets/emoji-D8F6B62m.js.gz +0 -0
  402. package/dist/ui/assets/erDiagram-Q2GNP2WA-ubTaAFcK.js.gz +0 -0
  403. package/dist/ui/assets/flowDiagram-NV44I4VS-BHLCTYjI.js.gz +0 -0
  404. package/dist/ui/assets/ganttDiagram-LVOFAZNH-ClC3pay1.js.gz +0 -0
  405. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-Clqpiswu.js.gz +0 -0
  406. package/dist/ui/assets/index-D9OElx9A.css +0 -1
  407. package/dist/ui/assets/index-D9OElx9A.css.gz +0 -0
  408. package/dist/ui/assets/index-DxPuzG7E.js +0 -350
  409. package/dist/ui/assets/index-DxPuzG7E.js.gz +0 -0
  410. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CrVickA2.js.gz +0 -0
  411. package/dist/ui/assets/kanban-definition-3W4ZIXB7-C_BsdHYL.js.gz +0 -0
  412. package/dist/ui/assets/knowledgeRoutes-CivaUqha.js.gz +0 -0
  413. package/dist/ui/assets/linear-BsjageUB.js.gz +0 -0
  414. package/dist/ui/assets/mermaid-parser.core-DZdP-NFq.js.gz +0 -0
  415. package/dist/ui/assets/mermaid.core-TNrI0pHG.js.gz +0 -0
  416. package/dist/ui/assets/message-BtWWJ9Af.js +0 -36
  417. package/dist/ui/assets/message-BtWWJ9Af.js.gz +0 -0
  418. package/dist/ui/assets/mindmap-definition-VGOIOE7T-BbmaUjMY.js.gz +0 -0
  419. package/dist/ui/assets/particles-Dv28pjOd.js.gz +0 -0
  420. package/dist/ui/assets/pieDiagram-ADFJNKIX-BbyjfYu8.js.gz +0 -0
  421. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-Bc3GqMKz.js.gz +0 -0
  422. package/dist/ui/assets/reactflow-BVYPxNhc.js.gz +0 -0
  423. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-BQaKKL09.js.gz +0 -0
  424. package/dist/ui/assets/sandpack-BQW_FQ7G.js.gz +0 -0
  425. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DiJvDvhb.js.gz +0 -0
  426. package/dist/ui/assets/sequenceDiagram-WL72ISMW-Dw32824o.js.gz +0 -0
  427. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BCOpNdHV.js.gz +0 -0
  428. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-Cuqwvgfg.js +0 -1
  429. package/dist/ui/assets/syntax-VJrU5BEu.js.gz +0 -0
  430. package/dist/ui/assets/timeline-definition-IT6M3QCI-Jh_WZzXv.js.gz +0 -0
  431. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CERc7Rdb.js.gz +0 -0
@@ -0,0 +1,20 @@
1
+ import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{$ as t,A as n,At as r,B as i,Bn as a,Cn as o,Ct as s,D as c,E as l,F as u,Fn as d,Ft as f,Gn as p,Gt as m,H as h,In as g,K as _,Kn as v,Kt as y,Ln as b,Lt as x,Mn as S,Mt as C,Nt as w,On as T,Pn as E,Pt as D,Qn as O,Qt as k,Rn as A,S as j,Sn as M,Un as N,Vt as P,Wn as ee,X as F,Xt as I,Y as L,Yt as te,Z as ne,Zt as R,_ as z,_n as B,_t as re,an as V,at as ie,b as ae,bn as oe,ct as se,en as ce,fn as le,ft as ue,g as H,gn as U,gt as de,hn as fe,jn as pe,jt as me,k as he,l as ge,ln as _e,lt as ve,m as ye,mt as be,n as W,nn as xe,on as G,ot as Se,p as Ce,pt as we,qn as Te,qt as Ee,rn as K,rt as De,st as q,tn as J,tt as Oe,ut as ke,vt as Ae,wn as Y,wt as je,xt as Me,yn as Ne,yt as Pe,z as Fe,zn as Ie}from"./antd-CfbbHJOz.js";import{G as Le,J as Re,K as ze,P as Be,U as Ve,V as He,W as Ue,d as We,ht as Ge,k as Ke,l as qe,mt as Je,n as Ye,ot as Xe,pt as Ze,q as Qe,t as $e}from"./message-SqLqNYcv.js";import{a as et,n as tt,r as X,t as nt}from"./sandpack-D7koO5op.js";import{N as rt}from"./editor-CzFWIUw2.js";import{n as it,t as at}from"./theme-BQZdiqwv.js";import{At as ot,Bt as st,Dt as ct,Ft as lt,G as ut,K as dt,M as ft,N as pt,P as mt,Rt as ht,S as gt,St as _t,Tt as vt,V as yt,Vt as bt,Wt as xt,Z,_ as St,_t as Ct,an as wt,bt as Tt,c as Et,cn as Dt,dn as Ot,en as kt,g as At,it as jt,l as Mt,ln as Nt,nn as Pt,on as Ft,pt as It,q as Lt,sn as Rt,tn as zt,tt as Bt,un as Vt,wt as Ht,y as Ut,yt as Wt,zt as Gt}from"./index-BN5_Qq7R.js";import{n as Kt,t as qt}from"./ThemeSwitcher-Dly2y9pi.js";import{a as Jt,i as Yt,o as Xt,r as Zt,s as Qt,t as $t}from"./BoardObjectNodes-D-O6bZIG.js";import{a as en,d as tn,f as nn,i as rn,l as an,n as on,p as sn,r as cn,t as ln}from"./reactflow-Bf74ngoo.js";import{t as un}from"./AutocompleteTextarea-BAFFH_5e.js";import{a as dn,c as fn,i as pn,n as mn,o as hn,r as gn,s as _n,t as vn}from"./ArtifactConsentModal-CiCbK9iv.js";var Q=e(O(),1),$=rt(),yn=(0,Q.createContext)(void 0),bn=({children:e,value:t})=>(0,$.jsx)(yn.Provider,{value:t,children:e}),xn=()=>{let e=(0,Q.useContext)(yn);if(!e)throw Error(`useAppActions must be used within an AppActionsProvider`);return e},{Text:Sn}=r,{useToken:Cn}=D,wn=8,Tn=({boards:e,currentBoardId:t,onBoardChange:n,onHomeClick:r,branchById:i})=>{let{token:a}=Cn(),[o,s]=(0,Q.useState)(``),[c,l]=(0,Q.useState)(!1),u=e.find(e=>e.board_id===t),f=(0,Q.useMemo)(()=>{let t=new Map;e.forEach(e=>{t.set(e.board_id,0)});for(let e of i.values())e.board_id&&t.set(e.board_id,(t.get(e.board_id)||0)+1);return t},[e,i]),p=e.length>=wn,m=(0,Q.useCallback)(()=>{l(!1),s(``)},[]),h=(0,Q.useCallback)(()=>{r?.(),m()},[m,r]),v=(0,Q.useCallback)(e=>{n(e),m()},[n,m]),y=(0,Q.useMemo)(()=>{let n=e.filter(e=>!e.archived).sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`})),r=o?n.filter(e=>e.name.toLowerCase().includes(o.toLowerCase())):n;return p&&r.length===0?[{key:`__empty__`,label:(0,$.jsx)(Sn,{type:`secondary`,style:{fontStyle:`italic`},children:`No boards found`}),disabled:!0}]:r.map(e=>{let n=f.get(e.board_id)||0,r=e.board_id===t;return{key:e.board_id,label:(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,minWidth:250,padding:`4px 0`},children:[(0,$.jsxs)(G,{size:8,children:[(0,$.jsx)(`span`,{style:{fontSize:18},children:e.icon||`πŸ“‹`}),(0,$.jsx)(Sn,{strong:r,children:e.name})]}),(0,$.jsx)(T,{count:n,showZero:!0,style:{backgroundColor:r?a.colorPrimary:a.colorBgTextHover}})]}),onClick:()=>v(e.board_id)}})},[e,t,f,v,a,o,p]),b=(0,$.jsxs)(Y,{type:`text`,onClick:h,style:{width:`100%`,height:38,padding:`4px 12px`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,background:t?void 0:a.colorFillSecondary,borderRadius:a.borderRadiusSM},children:[(0,$.jsxs)(G,{size:8,children:[(0,$.jsx)(`span`,{style:{fontSize:18},children:`🏠`}),(0,$.jsx)(Sn,{strong:!t,children:`Home`})]}),(0,$.jsx)(_,{style:{color:a.colorTextTertiary}})]});return(0,$.jsx)(V,{menu:{items:y},trigger:[`click`],placement:`bottomLeft`,open:c,onOpenChange:e=>{l(e),e||s(``)},popupRender:e=>(0,$.jsxs)(`div`,{style:{backgroundColor:a.colorBgElevated,borderRadius:a.borderRadiusLG,boxShadow:a.boxShadowSecondary,minWidth:290},children:[(0,$.jsxs)(`div`,{style:{position:`sticky`,top:0,zIndex:1,padding:`8px 8px 0`,background:a.colorBgElevated,borderTopLeftRadius:a.borderRadiusLG,borderTopRightRadius:a.borderRadiusLG},children:[b,(0,$.jsx)(B,{style:{margin:`8px 0 0`}})]}),p&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{style:{padding:`8px 12px`},children:(0,$.jsx)(R,{placeholder:`Filter boards...`,prefix:(0,$.jsx)(d,{style:{color:a.colorTextQuaternary}}),value:o,onChange:e=>s(e.target.value),size:`small`,allowClear:!0,autoFocus:!0,"aria-label":`Filter boards`})}),(0,$.jsx)(B,{style:{margin:0}})]}),(0,$.jsx)(`div`,{style:{maxHeight:`calc(100vh - 240px)`,overflowY:`auto`},children:e})]}),children:(0,$.jsxs)(Y,{type:`text`,style:{width:`100%`,height:`auto`,padding:`8px 12px`,textAlign:`left`,display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,$.jsxs)(G,{size:8,children:[(0,$.jsx)(`span`,{style:{fontSize:18},children:u?u.icon||`πŸ“‹`:`🏠`}),(0,$.jsx)(Sn,{strong:!0,children:u?.name||`Home`})]}),(0,$.jsx)(g,{style:{fontSize:12,color:a.colorTextSecondary}})]})})},En=2e4,Dn=1e4,On=6e4,kn=3e3,An=({tooltip:e,icon:t,color:n,onClick:r,children:i})=>(0,$.jsx)(S,{title:e,placement:`bottom`,children:(0,$.jsx)(Dt,{icon:t,color:n,onClick:r,style:{margin:0,display:`flex`,alignItems:`center`,cursor:r?`pointer`:`default`},children:(0,$.jsx)(G,{size:4,children:i})})}),jn=({connected:e,connecting:t,onRetry:n})=>{let{outOfSync:r,capturedSha:i,currentSha:a}=Gt(),o=(0,Q.useRef)(null),[s,c]=(0,Q.useState)(null),[l,u]=(0,Q.useState)(null),[d,f]=(0,Q.useState)(!1),[,p]=(0,Q.useState)(0);return(0,Q.useEffect)(()=>{if(!t)return;let e=setInterval(()=>p(e=>e+1),1e3);return()=>clearInterval(e)},[t]),(0,Q.useEffect)(()=>{if(t){if(o.current===null){let e=Date.now();o.current=e,c(e)}return}if(e&&o.current!==null){let e=Date.now()-o.current;o.current=null,c(null),e>=Dn?u(Date.now()):f(!0)}},[t,e]),(0,Q.useEffect)(()=>{if(!d)return;let e=setTimeout(()=>f(!1),kn);return()=>clearTimeout(e)},[d]),(0,Q.useEffect)(()=>{if(l===null)return;let e=setTimeout(()=>u(null),On);return()=>clearTimeout(e)},[l]),r?(0,$.jsx)(An,{tooltip:i&&a?`Daemon was upgraded from ${i} to ${a} since this tab loaded. Click to reload and pick up the latest UI. Anything unsaved (form text, etc.) will be lost.`:`Backend was updated β€” click to reload for the latest UI. Anything unsaved will be lost.`,icon:(0,$.jsx)(m,{}),color:`warning`,onClick:()=>window.location.reload(),children:(0,$.jsx)(`span`,{children:`Out of sync β€” refresh`})}):t&&s!==null&&Date.now()-s>=En?(0,$.jsx)(An,{tooltip:`Can't reconnect to the daemon. Click to reload the page β€” anything unsaved will be lost.`,icon:(0,$.jsx)(m,{}),color:`error`,onClick:()=>window.location.reload(),children:(0,$.jsx)(`span`,{children:`Can't reconnect β€” reload`})}):!e&&!t?(0,$.jsx)(An,{tooltip:`Connection lost. Click to retry connection.`,icon:(0,$.jsx)(W,{}),color:`error`,onClick:n,children:(0,$.jsx)(`span`,{children:`Disconnected`})}):t?(0,$.jsx)(An,{tooltip:`Reconnecting to daemon… Click to retry immediately.`,icon:(0,$.jsx)(ee,{spin:!0}),color:`warning`,onClick:n,children:(0,$.jsx)(`span`,{children:`Reconnecting`})}):l===null?d?(0,$.jsx)(An,{tooltip:`Connected to daemon`,icon:(0,$.jsx)(de,{}),color:`success`,children:(0,$.jsx)(`span`,{children:`Connected`})}):null:(0,$.jsxs)(An,{tooltip:`You were disconnected long enough that some data may be stale. Click to reload, or Γ— to dismiss.`,icon:(0,$.jsx)(m,{}),color:`warning`,onClick:()=>window.location.reload(),children:[(0,$.jsx)(`span`,{children:`Reconnected β€” refresh?`}),(0,$.jsx)(Te,{"aria-label":`Dismiss`,onClick:e=>{e.stopPropagation(),u(null)},style:{fontSize:10,opacity:.7}})]})},{Text:Mn}=r,Nn=({result:e,selected:t,onClick:n,onHover:r,rowId:i,tokens:a=[]})=>{let{token:o}=D.useToken(),{title:s,tag:c,secondary:l,time:u,icon:d}=Pn(e);return(0,$.jsxs)(`button`,{type:`button`,onClick:n,onMouseEnter:r,"aria-label":s,role:`option`,"aria-selected":t,id:i,style:{display:`flex`,alignItems:`flex-start`,gap:12,width:`100%`,padding:`4px 12px`,border:`none`,background:t?o.colorBgTextHover:`transparent`,cursor:`pointer`,textAlign:`left`,borderRadius:o.borderRadiusSM},children:[d&&(0,$.jsx)(`span`,{style:{fontSize:18,lineHeight:`20px`,flexShrink:0},children:d}),(0,$.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`baseline`,gap:8,width:`100%`},children:[(0,$.jsx)(Mn,{strong:!0,style:{flex:1,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:(0,$.jsx)(Wt,{text:s,terms:a})}),c&&(0,$.jsx)(Mn,{type:`secondary`,style:{fontSize:12,whiteSpace:`nowrap`,flexShrink:0},children:(0,$.jsx)(Wt,{text:c,terms:a})}),u&&(0,$.jsx)(Mn,{type:`secondary`,style:{fontSize:12,whiteSpace:`nowrap`,flexShrink:0},children:u})]}),l&&(0,$.jsx)(Mn,{type:`secondary`,style:{display:`block`,fontSize:12,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:(0,$.jsx)(Wt,{text:l,terms:a})})]})]})};function Pn(e){switch(e.type){case`session`:return{title:dt(e.item,{includeAgentFallback:!0}),tag:e.item.agentic_tool,secondary:e.parentBranch?`in ${e.parentBranch.name}`:void 0,time:Ct(e.item.last_updated)};case`branch`:return{title:e.item.name,tag:e.item.ref,time:Ct(e.item.updated_at)};case`assistant`:{let t=Je(e.item);return{icon:t?.emoji,title:t?.displayName??e.item.name,time:Ct(e.item.updated_at)}}case`artifact`:return{title:e.item.name,tag:e.item.template,secondary:e.parentBranch?`in ${e.parentBranch.name}`:void 0,time:Ct(e.item.updated_at)};case`board`:return{icon:e.item.icon,title:e.item.name,time:Ct(e.item.last_updated)};case`mcp`:return{title:e.item.display_name||e.item.name,tag:e.item.transport,secondary:e.item.description}}}var Fn=[`session`,`branch`,`assistant`,`artifact`,`board`,`mcp`],In=[`all`,`session`,`branch`,`assistant`,`artifact`,`board`,`mcp`],Ln={all:`All`,session:`Session`,branch:`Branch`,assistant:`Assistant`,artifact:`Artifact`,board:`Board`,mcp:`MCP`},Rn={session:`Sessions`,branch:`Branches`,assistant:`Assistants`,artifact:`Artifacts`,board:`Boards`,mcp:`MCP`},zn={session:[],branch:[],assistant:[],artifact:[],board:[],mcp:[]},Bn={session:0,branch:0,assistant:0,artifact:0,board:0,mcp:0};function Vn(e){if(!e)return 0;if(e instanceof Date)return e.getTime();let t=Date.parse(e);return Number.isNaN(t)?0:t}function Hn(e){return(t,n)=>Vn(e(n))-Vn(e(t))}function Un(e){return Fn.some(t=>e[t].length>0)}function Wn(e){return Fn.flatMap(t=>e[t])}function Gn(e){return Fn.reduce((t,n)=>t+e[n],0)}function Kn(e){let t=new Map,n=0;for(let r of Fn)t.set(r,n),n+=e[r].length;return t}var{Text:qn}=r,Jn={session:(0,$.jsx)(u,{}),branch:(0,$.jsx)(Ae,{}),assistant:(0,$.jsx)(l,{}),artifact:(0,$.jsx)(Se,{}),board:(0,$.jsx)(s,{}),mcp:(0,$.jsx)(je,{})},Yn=({query:e,results:t,hasAnyResults:n,recents:r,hasAnyRecents:i,selectedIndex:a,onResultClick:o,onResultHover:s})=>{let{token:c}=D.useToken(),l=e.length===0,u=l?r:t,d=(0,Q.useMemo)(()=>l?[]:Ot(e),[l,e]),f=(0,Q.useMemo)(()=>Kn(u),[u]);return(0,$.jsx)(`div`,{role:`listbox`,id:$n,style:{flex:1,minHeight:0,overflowY:`auto`,padding:`2px 0`},children:l&&!i?(0,$.jsx)(Zn,{text:`Recent items you've created will show up here.`,token:c}):!l&&!n?(0,$.jsx)(Zn,{text:`No matches for "${e}"`,token:c}):Fn.map(e=>{let t=u[e];if(t.length===0)return null;let n=f.get(e)??0;return(0,$.jsx)(Xn,{title:Rn[e],icon:Jn[e],token:c,children:t.map((e,t)=>{let r=n+t;return(0,$.jsx)(Nn,{rowId:er(e),result:e,selected:r===a,onClick:()=>o(e),onHover:()=>s(r),tokens:d},Qn(e))})},e)})})},Xn=({title:e,icon:t,token:n,children:r})=>(0,$.jsxs)(`div`,{style:{padding:`2px 0`},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,padding:`2px 16px 1px`,fontSize:11,textTransform:`uppercase`,letterSpacing:.5,color:n.colorTextTertiary},children:[t,e]}),r]}),Zn=({text:e,token:t})=>(0,$.jsx)(`div`,{style:{padding:`24px 16px`,textAlign:`center`},children:(0,$.jsx)(qn,{type:`secondary`,style:{fontSize:13,color:t.colorTextSecondary},children:e})});function Qn(e){switch(e.type){case`session`:return`session-${e.item.session_id}`;case`branch`:case`assistant`:return`${e.type}-${e.item.branch_id}`;case`artifact`:return`artifact-${e.item.artifact_id}`;case`board`:return`board-${e.item.board_id}`;case`mcp`:return`mcp-${e.item.mcp_server_id}`}}var $n=`global-search-listbox`;function er(e){return`global-search-row-${Qn(e)}`}var tr=({activeChip:e,onChipChange:t,ownedByMe:n,onOwnedByMeToggle:r,counts:i})=>{let{token:a}=D.useToken(),o=i?Gn(i):0,s=!!i&&o>0;return(0,$.jsxs)(`div`,{style:{padding:`6px 12px`,borderBottom:`1px solid ${a.colorBorderSecondary}`},children:[(0,$.jsx)(U,{size:`small`,value:e,onChange:e=>t(e),options:In.map(t=>({label:(0,$.jsx)(nr,{label:Ln[t],count:s?t===`all`?o:i?.[t]??0:void 0,isActive:e===t,token:a}),value:t})),style:{marginBottom:4,fontSize:12},"aria-label":`Filter by entity type`}),(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8},children:[(0,$.jsxs)(`label`,{htmlFor:`global-search-created-by-me`,style:{display:`inline-flex`,alignItems:`center`,gap:6,fontSize:12,cursor:`pointer`,userSelect:`none`},children:[(0,$.jsx)(P,{id:`global-search-created-by-me`,size:`small`,checked:n,onChange:r,"aria-label":`Created by me`}),`Created by me`]}),(0,$.jsx)(S,{title:`Global search is in beta β€” some click targets are still stubs (e.g. MCP opens Settings) and message-content search isn't wired up yet. Expect rough edges.`,placement:`bottom`,children:(0,$.jsx)(f,{color:`orange`,style:{fontSize:10,lineHeight:`16px`,padding:`0 6px`,margin:0,cursor:`help`,userSelect:`none`},children:`BETA`})})]})]})},nr=({label:e,count:t,isActive:n,token:r})=>(0,$.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:4},children:[e,t!==void 0&&(0,$.jsx)(f,{style:{margin:0,padding:`0 5px`,fontSize:10,lineHeight:`14px`,border:`none`,background:n?r.colorFillSecondary:r.colorFillTertiary,color:r.colorTextSecondary},children:t})]});function rr({query:e,ownedByMe:t,activeTypeChip:n,currentUserId:r,sessionById:i,branchById:a,artifactById:o,boardById:s,mcpServerById:c}){let[l,u]=(0,Q.useState)(e);(0,Q.useEffect)(()=>{let t=setTimeout(()=>u(e),220);return()=>clearTimeout(t)},[e]);let d=(0,Q.useCallback)(()=>u(e),[e]),{results:f,counts:p}=(0,Q.useMemo)(()=>{let e=l.trim();if(e.length<2)return{results:zn,counts:Bn};let u=Ot(e);if(u.length===0)return{results:zn,counts:Bn};let d=e=>n===e?15:5,f=e=>n===`all`||n===e,p=Array.from(i.values()).filter(e=>!t||e.created_by===r).filter(e=>Vt(u,Nt.session(e))).sort(Hn(e=>e.last_updated)),m=Array.from(a.values()).filter(e=>!t||e.created_by===r).filter(e=>Vt(u,Nt.branch(e))).sort(Hn(e=>e.updated_at)),h=m.filter(e=>!Ge(e)),g=m.filter(e=>Ge(e)),_=Array.from(o.values()).filter(e=>!e.archived).filter(e=>!t||e.created_by===r).filter(e=>Vt(u,Nt.artifact(e))).sort(Hn(e=>e.updated_at)),v=Array.from(s.values()).filter(e=>!e.archived).filter(e=>!t||e.created_by===r).filter(e=>Vt(u,Nt.board(e))).sort(Hn(e=>e.last_updated)),y=Array.from(c.values()).filter(e=>!t||e.owner_user_id===r).filter(e=>Vt(u,Nt.mcp(e))).sort(Hn(e=>e.updated_at)),b={session:p.length,branch:h.length,assistant:g.length,artifact:_.length,board:v.length,mcp:y.length};return{results:{session:f(`session`)?p.slice(0,d(`session`)).map(e=>({type:`session`,item:e,parentBranch:a.get(e.branch_id)})):[],branch:f(`branch`)?h.slice(0,d(`branch`)).map(e=>({type:`branch`,item:e})):[],assistant:f(`assistant`)?g.slice(0,d(`assistant`)).map(e=>({type:`assistant`,item:e})):[],artifact:f(`artifact`)?_.slice(0,d(`artifact`)).map(e=>({type:`artifact`,item:e,parentBranch:e.branch_id?a.get(e.branch_id):void 0})):[],board:f(`board`)?v.slice(0,d(`board`)).map(e=>({type:`board`,item:e})):[],mcp:f(`mcp`)?y.slice(0,d(`mcp`)).map(e=>({type:`mcp`,item:e})):[]},counts:b}},[l,t,n,r,i,a,o,s,c]);return{results:f,counts:p,hasAnyResults:Un(f),debouncedQuery:l,flush:d}}function ir({currentUserId:e,sessionById:t,branchById:n,artifactById:r,boardById:i,mcpServerById:a}){return(0,Q.useMemo)(()=>{if(!e)return zn;let o=Array.from(t.values()).filter(t=>t.created_by===e).sort(Hn(e=>e.last_updated)).slice(0,3),s=Array.from(n.values()).filter(t=>t.created_by===e).sort(Hn(e=>e.updated_at)),c=s.filter(e=>!Ge(e)).slice(0,3),l=s.filter(e=>Ge(e)).slice(0,3),u=Array.from(r.values()).filter(e=>!e.archived).filter(t=>t.created_by===e).sort(Hn(e=>e.updated_at)).slice(0,3),d=Array.from(i.values()).filter(e=>!e.archived).filter(t=>t.created_by===e).sort(Hn(e=>e.last_updated)).slice(0,3),f=Array.from(a.values()).filter(t=>t.owner_user_id===e).sort(Hn(e=>e.updated_at)).slice(0,3);return{session:o.map(e=>({type:`session`,item:e,parentBranch:n.get(e.branch_id)})),branch:c.map(e=>({type:`branch`,item:e})),assistant:l.map(e=>({type:`assistant`,item:e})),artifact:u.map(e=>({type:`artifact`,item:e,parentBranch:e.branch_id?n.get(e.branch_id):void 0})),board:d.map(e=>({type:`board`,item:e})),mcp:f.map(e=>({type:`mcp`,item:e}))}},[e,t,n,r,i,a])}var ar=260,or=({currentUserId:e,sessionById:t,branchById:n,artifactById:r,boardById:i,mcpServerById:a,onSettingsClick:o})=>{let{token:s}=D.useToken(),c=(0,Q.useRef)(null),l=(0,Q.useRef)(null),[u,d]=(0,Q.useState)(``),[f,p]=(0,Q.useState)(!1),[m,h]=(0,Q.useState)(`all`),[g,_]=(0,Q.useState)(!0),[v,y]=(0,Q.useState)(0),b=At({boardById:i,sessionById:t,branchById:n,artifactById:r}),{results:x,counts:S,hasAnyResults:C,debouncedQuery:w,flush:T}=rr({query:u,ownedByMe:g,activeTypeChip:m,currentUserId:e,sessionById:t,branchById:n,artifactById:r,boardById:i,mcpServerById:a}),E=ir({currentUserId:e,sessionById:t,branchById:n,artifactById:r,boardById:i,mcpServerById:a}),O=Un(E),k=u.trim().length<2,A=k?``:w.trim(),j=(0,Q.useMemo)(()=>Wn(k?E:x),[k,E,x]);(0,Q.useEffect)(()=>{y(e=>Math.min(Math.max(e,0),Math.max(j.length-1,0)))},[j.length]),(0,Q.useEffect)(()=>{if(!f)return;let e=j[v];e&&document.getElementById(er(e))?.scrollIntoView({block:`nearest`})},[v,j,f]),(0,Q.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&(e.key===`k`||e.key===`K`)&&(e.preventDefault(),c.current?.focus(),p(!0))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,Q.useEffect)(()=>{if(!f)return;let e=e=>{l.current?.contains(e.target)||p(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[f]);let M=(0,Q.useCallback)(e=>{switch(e.type){case`board`:b.goToBoard(e.item.board_id);break;case`branch`:case`assistant`:b.goToBranch(e.item.branch_id);break;case`session`:b.goToSession(e.item.session_id);break;case`artifact`:b.goToArtifact(e.item.artifact_id);break;case`mcp`:o?.();break}p(!1),d(``)},[b,o]),N=(0,Q.useCallback)(()=>{p(!1),d(``),c.current?.blur()},[]);return(0,$.jsxs)(`div`,{ref:l,style:{position:`relative`,width:ar},children:[(0,$.jsx)(R.Search,{ref:c,placeholder:`Search… ⌘K`,value:u,onChange:e=>{d(e.target.value),p(!0),y(0)},onFocus:()=>p(!0),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),u?d(``):(p(!1),c.current?.blur());return}if(e.key===`ArrowDown`){e.preventDefault(),y(e=>Math.min(e+1,Math.max(j.length-1,0)));return}if(e.key===`ArrowUp`){e.preventDefault(),y(e=>Math.max(e-1,0));return}},onSearch:e=>{if(e.trim()!==w.trim()){T();return}let t=j[v];t&&M(t)},allowClear:!0,"aria-label":`Global search`,"aria-autocomplete":`list`,"aria-expanded":f,"aria-controls":$n,"aria-activedescendant":f&&j[v]?er(j[v]):void 0,role:`combobox`,style:{width:`100%`}}),f&&(0,$.jsxs)(`div`,{style:{position:`absolute`,top:`100%`,right:0,width:600,maxHeight:`85vh`,display:`flex`,flexDirection:`column`,marginTop:4,background:s.colorBgElevated,border:`1px solid ${s.colorBorderSecondary}`,borderRadius:s.borderRadiusLG,boxShadow:s.boxShadowSecondary,zIndex:1e3},children:[(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(Te,{}),onClick:N,"aria-label":`Close search`,style:{position:`absolute`,top:4,right:4,width:24,height:24,minWidth:24,padding:0,color:s.colorTextTertiary,zIndex:1}}),(0,$.jsx)(tr,{activeChip:m,onChipChange:e=>{h(e),y(0)},ownedByMe:g,onOwnedByMeToggle:()=>{_(e=>!e),y(0)},counts:k?void 0:S}),(0,$.jsx)(Yn,{query:A,results:x,hasAnyResults:C,recents:E,hasAnyRecents:O,selectedIndex:v,onResultClick:M,onResultHover:y})]})]})},sr={CURSOR_EMIT_THROTTLE_MS:100,FACEPILE_REFRESH_MS:1e4,CURSOR_HIDE_AFTER_MS:5e3,ACTIVE_USER_TIMEOUT_MS:300*1e3,TYPING_TIMEOUT_MS:3e3};function cr(e){let{client:t,boardId:n,users:r,enabled:i=!0,globalPresence:a=!1,presenceMinUpdateIntervalMs:o=0}=e,s=(0,Q.useRef)(r);s.current=r;let[c,l]=(0,Q.useState)(new Map),[u,d]=(0,Q.useState)(new Map);(0,Q.useEffect)(()=>{if(!i||!t?.io){l(new Map),d(new Map);return}if(!a&&!n){l(new Map),d(new Map);return}let e=e=>{if(n&&e.boardId===n){let t={x:e.x,y:e.y,timestamp:e.timestamp};l(n=>{let r=n.get(e.userId);if(r&&e.timestamp<r.timestamp||r&&r.x===t.x&&r.y===t.y&&r.timestamp===t.timestamp)return n;let i=new Map(n);return i.set(e.userId,t),i})}if(!a&&e.boardId===n){let t={boardId:e.boardId,x:e.x,y:e.y,timestamp:e.timestamp};d(n=>{let r=n.get(e.userId);if(r&&e.timestamp<r.timestamp||r&&r.boardId===t.boardId&&o>0&&e.timestamp-r.timestamp<o||r&&r.boardId===t.boardId&&r.x===t.x&&r.y===t.y&&r.timestamp===t.timestamp)return n;let i=new Map(n);return i.set(e.userId,t),i})}},r=e=>{if(!a)return;let t={boardId:e.boardId,timestamp:e.timestamp};d(n=>{let r=n.get(e.userId);if(r&&e.timestamp<r.timestamp||r&&r.boardId===t.boardId&&o>0&&e.timestamp-r.timestamp<o||r&&r.boardId===t.boardId&&r.timestamp===t.timestamp)return n;let i=new Map(n);return i.set(e.userId,t),i})},s=e=>{n&&e.boardId===n&&l(t=>{if(!t.has(e.userId))return t;let n=new Map(t);return n.delete(e.userId),n}),!a&&e.boardId===n&&d(t=>{if(!t.has(e.userId))return t;let n=new Map(t);return n.delete(e.userId),n})};t.io.on(`cursor-moved`,e),t.io.on(`presence-updated`,r),t.io.on(`cursor-left`,s);let c=setInterval(()=>{l(e=>{if(e.size===0)return e;let t=Date.now(),n=!1;for(let[r,i]of e.entries())if(t-i.timestamp>sr.CURSOR_HIDE_AFTER_MS){n=!0;break}if(!n)return e;let r=new Map(e);for(let[n,i]of e.entries())t-i.timestamp>sr.CURSOR_HIDE_AFTER_MS&&r.delete(n);return r})},5e3),u=setInterval(()=>{d(e=>{if(e.size===0)return e;let t=Date.now(),n=!1;for(let[r,i]of e.entries())if(t-i.timestamp>sr.ACTIVE_USER_TIMEOUT_MS){n=!0;break}if(!n)return e;let r=new Map(e);for(let[n,i]of e.entries())t-i.timestamp>sr.ACTIVE_USER_TIMEOUT_MS&&r.delete(n);return r})},3e4);return()=>{t.io.off(`cursor-moved`,e),t.io.off(`presence-updated`,r),t.io.off(`cursor-left`,s),clearInterval(c),clearInterval(u)}},[t,n,i,a,o]);let{activeUsers:f,remoteCursors:p}=(0,Q.useMemo)(()=>{let e=[],t=new Map;for(let[t,n]of u.entries()){let r=s.current.find(e=>e.user_id===t);r&&e.push({user:r,lastSeen:n.timestamp,boardId:n.boardId,cursor:typeof n.x==`number`&&typeof n.y==`number`?{x:n.x,y:n.y}:void 0})}for(let[e,n]of c.entries()){let r=s.current.find(t=>t.user_id===e);r&&t.set(e,{x:n.x,y:n.y,user:r,timestamp:n.timestamp})}return{activeUsers:e,remoteCursors:t}},[u,c]);return{activeUsers:f,remoteCursors:p}}var lr=({activeUsers:e,maxVisible:t=5,onUserClick:n,boardById:r,style:i})=>{let a=e.slice(0,t),o=e.slice(t),s=o.length;return e.length===0?null:(0,$.jsxs)(`div`,{className:`facepile`,style:i,children:[a.map(({user:e,cursor:t,boardId:i})=>{let a=i&&r?r.get(i):null,o=a?.name||`Unknown Board`,s=a?.icon||`πŸ“‹`,c=n&&i;return(0,$.jsx)(S,{title:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{children:e.name||e.email}),i&&(0,$.jsxs)(`div`,{style:{fontSize:`11px`,opacity:.7,marginTop:`4px`},children:[s,` `,o]}),c&&(0,$.jsx)(`div`,{style:{fontSize:`11px`,opacity:.7,marginTop:`4px`},children:`Click to go to board`})]}),children:(0,$.jsx)(`span`,{children:(0,$.jsx)(Qt,{style:{cursor:c?`pointer`:`default`},onClick:()=>{c&&n(e.user_id,i,t)},children:e.emoji||`πŸ‘€`})})},e.user_id)}),s>0&&(0,$.jsx)(S,{title:(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:o.map(({user:e})=>(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,$.jsx)(`span`,{style:{fontSize:16},children:e.emoji||`πŸ‘€`}),(0,$.jsx)(`span`,{children:e.name||e.email})]},e.user_id))}),children:(0,$.jsx)(`span`,{children:(0,$.jsxs)(Qt,{fontSize:`12px`,style:{fontWeight:`bold`},children:[`+`,s]})})})]})},ur=({client:e,currentBoardId:t,users:n,currentUser:r,boardById:i,onUserClick:a,staticActiveUsers:o,maxVisible:s=5})=>{let{activeUsers:c}=cr({client:e,boardId:t??null,users:n,enabled:!!e&&!o,globalPresence:!0,presenceMinUpdateIntervalMs:sr.FACEPILE_REFRESH_MS}),l=(0,Q.useMemo)(()=>o||(r?[{user:r,lastSeen:Date.now(),boardId:t??void 0,cursor:void 0},...c.filter(e=>e.user.user_id!==r.user_id)]:c),[c,t,r,o]);return l.length===0?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(lr,{activeUsers:l,currentUserId:r?.user_id,maxVisible:s,boardById:i,onUserClick:a,style:{marginRight:8}}),(0,$.jsx)(B,{orientation:`vertical`,style:{height:32,margin:`0 8px`}})]})},{Header:dr}=I,fr=({recentBoards:e,onBoardChange:t,token:n})=>e.length===0?null:(0,$.jsx)(G,{size:4,children:e.map(e=>(0,$.jsx)(S,{title:e.name,placement:`bottom`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,"aria-label":`Switch to board ${e.name}`,onClick:()=>t(e.board_id),style:{width:30,height:30,minWidth:30,padding:0,borderRadius:`50%`,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:16,border:`1px solid ${n.colorBorderSecondary}`,background:n.colorBgElevated},children:e.icon||`πŸ“‹`})},e.board_id))}),pr=({user:e,presenceClient:t=null,presenceUsers:n=[],currentUserId:r,staticActiveUsers:i,presenceMaxVisible:a,connected:o=!1,connecting:s=!1,onCommentsClick:c,onEventStreamClick:l,onSettingsClick:u,onUserSettingsClick:d,onThemeEditorClick:p,onLogout:m,onRetryConnection:h,currentBoardName:g,currentBoardIcon:_,unreadCommentsCount:v=0,eventStreamEnabled:y=!1,hasUserMentions:b=!1,boards:x=[],currentBoardId:C,onBoardChange:w,onHomeClick:E,branchById:O,boardById:k,onUserClick:A,recentBoards:j=[],instanceLabel:M,instanceDescription:N,sessionById:P,artifactById:ee,mcpServerById:F})=>{let{token:I}=D.useToken(),L=We(),te=qe(`/knowledge`),ne=ht(),R={display:`flex`,alignItems:`center`,justifyContent:`center`};return(0,$.jsxs)(dr,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`0 24px`,background:I.colorBgContainer,borderBottom:`1px solid ${I.colorBorderSecondary}`},children:[(0,$.jsxs)(G,{size:16,align:`center`,children:[(0,$.jsxs)(`button`,{type:`button`,"aria-label":`Go to Home`,onClick:E,style:{height:54,padding:0,display:`flex`,alignItems:`center`,gap:10,background:`transparent`,border:0,cursor:`pointer`},children:[(0,$.jsx)(`img`,{src:Pt(),alt:zt.name,style:{height:50,borderRadius:`50%`,objectFit:`cover`,display:`block`}}),(0,$.jsx)(kt,{level:3,style:{marginTop:-6}})]}),M&&(N?(0,$.jsx)(pe,{content:(0,$.jsx)(`div`,{style:{maxWidth:400},children:(0,$.jsx)(mt,{content:N})}),title:M,trigger:`hover`,placement:`bottomLeft`,children:(0,$.jsx)(f,{color:`cyan`,style:{cursor:`help`,marginLeft:8},children:M})}):(0,$.jsx)(f,{color:`cyan`,style:{marginLeft:8},children:M})),(0,$.jsx)(B,{orientation:`vertical`,style:{height:32,margin:`0 8px`}}),(0,$.jsx)(`div`,{style:{minWidth:200},children:(0,$.jsx)(Tn,{boards:x,currentBoardId:C,onBoardChange:w||(()=>{}),onHomeClick:E,branchById:O})}),x.length>0&&(0,$.jsx)(fr,{recentBoards:j,onBoardChange:w||(()=>{}),token:I}),g&&(0,$.jsx)(T,{count:v,offset:[-2,2],style:{backgroundColor:b?I.colorError:I.colorPrimaryBgHover},className:`app-header-icon-badge`,children:(0,$.jsx)(S,{title:`Show comments tab`,placement:`bottom`,children:(0,$.jsx)(Y,{type:`text`,icon:(0,$.jsx)(ue,{style:{fontSize:I.fontSizeLG}}),style:R,onClick:c,disabled:ne})})})]}),(0,$.jsxs)(G,{children:[(0,$.jsx)(jn,{connected:o,connecting:s,onRetry:h}),(0,$.jsx)(ur,{client:t,currentBoardId:C||null,users:n,currentUser:e,boardById:k,onUserClick:A,staticActiveUsers:i,maxVisible:a}),(0,$.jsx)(or,{currentUserId:r,sessionById:P,branchById:O,artifactById:ee,boardById:k,mcpServerById:F,onSettingsClick:u}),(0,$.jsx)(B,{orientation:`vertical`,style:{height:32,margin:`0 8px`}}),y&&(0,$.jsx)(S,{title:`Live Event Stream`,placement:`bottom`,children:(0,$.jsx)(Y,{type:`text`,icon:(0,$.jsx)(je,{style:{fontSize:I.fontSizeLG}}),style:R,onClick:l,disabled:ne})}),(0,$.jsx)(S,{title:`Knowledge`,placement:`bottom`,children:(0,$.jsx)(Y,{type:`text`,icon:(0,$.jsx)(re,{style:{fontSize:I.fontSizeLG}}),style:R,href:te,"aria-label":`Knowledge`,onClick:e=>{e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),L(`/knowledge`))}})}),(0,$.jsx)(S,{title:`Documentation`,placement:`bottom`,children:(0,$.jsx)(Y,{type:`text`,icon:(0,$.jsx)(xe,{style:{fontSize:I.fontSizeLG}}),style:R,href:`https://agor.live/guide/getting-started`,target:`_blank`,rel:`noopener noreferrer`})}),(0,$.jsx)(qt,{onOpenThemeEditor:p}),(0,$.jsx)(S,{title:`Settings`,placement:`bottom`,children:(0,$.jsx)(Y,{type:`text`,icon:(0,$.jsx)(ae,{style:{fontSize:I.fontSizeLG}}),style:R,onClick:u,disabled:ne})}),(0,$.jsx)(Kt,{user:e,disabled:ne,onUserSettingsClick:d,onLogout:m})]})]})},mr=`drag-handle`,hr=`.${mr}`,gr=`nodrag`;function _r({repo:e,branch:t,onEdit:r,onStartEnvironment:i,onStopEnvironment:a,onNukeEnvironment:o,onViewLogs:s,canControlEnvironment:c,connectionDisabled:l=!1,showNukeEnvironment:u=!0}){let{token:d}=D.useToken(),f=ot(),p=Mt(e),m=p.hasConfig,h=t.environment_instance,g=c??!0,_=g?void 0:`Requires branch 'all' permission or admin access`,v=t.app_url;if(!m)return(0,$.jsx)(S,{title:`Click to configure environment (optional)`,children:(0,$.jsx)(Dt,{color:`default`,style:{cursor:`pointer`,userSelect:`none`,opacity:.6},onClick:e=>{e.stopPropagation(),r?.()},children:(0,$.jsxs)(G,{size:4,children:[(0,$.jsx)(L,{style:{fontSize:12}}),(0,$.jsx)(`span`,{style:{fontFamily:d.fontFamilyCode},children:`env`}),(0,$.jsx)(C,{style:{fontSize:12}})]})})});let y=yt(h),b=()=>{switch(y){case`stopped`:return(0,$.jsx)(ye,{style:{color:d.colorTextDisabled,fontSize:12}});case`starting`:case`stopping`:return(0,$.jsx)(te,{size:`small`,style:{display:`inline-flex`,alignItems:`center`,fontSize:12}});case`healthy`:return(0,$.jsx)(de,{style:{color:d.colorSuccess,fontSize:12}});case`unhealthy`:return(0,$.jsx)(W,{style:{color:d.colorWarning,fontSize:12}});case`running`:return(0,$.jsx)(de,{style:{color:d.colorInfo,fontSize:12}});case`error`:return(0,$.jsx)(be,{style:{color:d.colorError,fontSize:12}});default:return(0,$.jsx)(ye,{style:{color:d.colorTextDisabled,fontSize:12}})}},x=e=>{e.stopPropagation(),r?.()},w=h?.status||`stopped`,T=w===`running`,E=w===`starting`,O=w===`stopping`,k=w===`running`||w===`starting`,A=l||!g||!m||!i||E||O||T,j=l||!g||!m||!a||O||!k;return(0,$.jsx)(Dt,{color:(()=>{switch(y){case`healthy`:return`green`;case`unhealthy`:return`orange`;case`running`:return`blue`;case`starting`:case`stopping`:return`blue`;case`error`:return`red`;default:return`default`}})(),style:{userSelect:`none`,padding:0,overflow:`hidden`,lineHeight:`20px`,display:`inline-flex`,alignItems:`stretch`},children:(0,$.jsxs)(G,{size:0,style:{width:`100%`,display:`inline-flex`,alignItems:`center`},orientation:`horizontal`,children:[h?.status===`running`&&v?(0,$.jsx)(S,{title:`Open environment - ${v}`,children:(0,$.jsx)(`a`,{href:v,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),style:{display:`inline-flex`,alignItems:`center`,color:`inherit`,padding:`0 7px`,textDecoration:`none`,height:`22px`},children:(0,$.jsxs)(G,{size:4,align:`center`,children:[b(),(0,$.jsx)(`span`,{style:{fontFamily:d.fontFamilyCode,lineHeight:1},children:`env`})]})})}):(0,$.jsx)(S,{title:(()=>{if(!m)return`Click to configure environment`;let e=h?.last_health_check,t=e?.message?` - ${e.message}`:``;switch(y){case`healthy`:return v?`Healthy - ${v}${t}`:`Healthy${t}`;case`unhealthy`:return v?`Unhealthy - ${v}${t}`:`Unhealthy - check failed${t}`;case`running`:return v?`Running - ${v} (health check not configured)`:`Running (health check not configured)`;case`starting`:return v?`Starting... - ${v}`:`Starting...`;case`stopping`:return`Stopping...`;case`error`:return`Failed to start - click to configure`;default:return`Stopped - click to configure`}})(),children:(0,$.jsx)(`div`,{style:{padding:`0 7px`,height:`22px`,display:`inline-flex`,alignItems:`center`},children:(0,$.jsxs)(G,{size:4,align:`center`,children:[b(),(0,$.jsx)(`span`,{style:{fontFamily:d.fontFamilyCode,lineHeight:1},children:`env`})]})})}),(i||a)&&m&&(0,$.jsxs)(G,{size:2,style:{padding:`0 6px`,borderLeft:`1px solid rgba(255, 255, 255, 0.2)`,height:`22px`,display:`inline-flex`,alignItems:`center`},children:[i&&(0,$.jsx)(S,{title:_??(w===`running`?`Environment running`:`Start environment`),children:(0,$.jsx)(Y,{type:`text`,size:`small`,"aria-label":`Start environment`,icon:(0,$.jsx)(n,{}),onClick:e=>{e.stopPropagation(),A||i(t.branch_id)},disabled:A,style:{height:22,width:22,minWidth:22,padding:0}})}),a&&(0,$.jsx)(S,{title:_??(w===`running`?`Stop environment`:w===`starting`?`Stop environment (cancel startup)`:w===`stopping`?`Environment is stopping`:`Environment not running`),children:(0,$.jsx)(Y,{type:`text`,size:`small`,"aria-label":`Stop environment`,icon:(0,$.jsx)(ye,{}),onClick:e=>{e.stopPropagation(),j||a(t.branch_id)},disabled:j,style:{height:22,width:22,minWidth:22,padding:0}})}),s&&(0,$.jsx)(S,{title:_??(p.logs?`View environment logs`:`Configure logs command to enable`),children:(0,$.jsx)(Y,{type:`text`,size:`small`,"aria-label":`View environment logs`,icon:(0,$.jsx)(K,{}),onClick:e=>{e.stopPropagation(),g&&p.logs&&s(t.branch_id)},disabled:!g||!p.logs,style:{height:22,width:22,minWidth:22,padding:0}})}),u&&o&&t.nuke_command&&(0,$.jsx)(S,{title:_??`Nuke environment (destructive - removes all data and volumes)`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,danger:!0,"aria-label":`Nuke environment`,icon:(0,$.jsx)(Oe,{}),onClick:e=>{e.stopPropagation(),g&&!l&&f(()=>o(t.branch_id))},disabled:l||!g,style:{height:22,width:22,minWidth:22,padding:0}})})]}),(0,$.jsx)(S,{title:`Configure environment`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(C,{}),onClick:x,style:{padding:0,height:22,width:22,minWidth:22,borderLeft:`1px solid rgba(255, 255, 255, 0.2)`}})})]})})}function vr(e){if(!e)return 0;let t=Date.parse(e);return Number.isNaN(t)?0:t}function yr(e){return Math.max(vr(e.last_executor_heartbeat_at),vr(e.completed_at),vr(e.message_range?.end_timestamp),vr(e.started_at),vr(e.message_range?.start_timestamp),vr(e.created_at))}function br(e,t){let n=e.status===He.CREATED||Ve(e);if(n!==(t.status===He.CREATED||Ve(t)))return n?1:-1;let r=e.status===He.QUEUED;if(r!==(t.status===He.QUEUED))return r?-1:1;let i=!!e.started_at||(e.message_range?.start_index??-1)>=0;if(i!==(!!t.started_at||(t.message_range?.start_index??-1)>=0))return i?1:-1;let a=yr(e)-yr(t);return a===0?e.created_at.localeCompare(t.created_at):a}function xr(e){let t=new Map;for(let n of e)t.set(n.task_id,n);return Array.from(t.values()).sort(br).at(-1)||null}var Sr=[],Cr=new Map;function wr(e){return e instanceof Error&&e.message.includes(` is disposed`)}var Tr=Q.memo(({client:e,session:t,userById:n,currentUserId:r,branchName:i,enabled:a})=>{let{token:o}=D.useToken(),{onPermissionDecision:s,onSendPrompt:c}=xn(),l=ht(),u=(0,Q.useRef)(null),d=(0,Q.useRef)(!1),f=(0,Q.useRef)(!1),p=(0,Q.useRef)(null),[m,h]=(0,Q.useState)(!1),[g,_]=(0,Q.useState)(``),y=t.session_id,{handle:b,state:x}=_t(e,y,{enabled:a,reactiveOptions:{taskHydration:`lazy`}}),S=x?.sessionId===y?x:null,C=S?.session||t,w=(0,Q.useMemo)(()=>S?xr([...S.tasks,...S.queuedTasks]):null,[S]),T=S?.streamingMessages||Cr,E=Xt(T),O=w?.task_id??null,k=!!O&&!!S?.loadedTaskIds.has(O),j=(0,Q.useCallback)(()=>{if(!u.current)return!0;let{scrollTop:e,scrollHeight:t,clientHeight:n}=u.current;return t-e-n<24},[]),M=(0,Q.useCallback)(()=>{u.current&&(u.current.scrollTop=u.current.scrollHeight)},[]),N=(0,Q.useCallback)(()=>{requestAnimationFrame(M)},[M]);(0,Q.useEffect)(()=>{d.current=!1,f.current=!1,p.current=null,N()},[N,O]),(0,Q.useEffect)(()=>{!a||d.current||N()},[T,a,N,w?.status]),(0,Q.useEffect)(()=>{!a||!O||!k||p.current!==O&&(p.current=O,d.current||N())},[a,N,O,k]),(0,Q.useEffect)(()=>{let e=u.current;if(!e||!a)return;let t=()=>{f.current=!0},n=()=>{if(j()){d.current=!1,f.current=!1;return}f.current&&(d.current=!0)};return e.addEventListener(`wheel`,t,{passive:!0}),e.addEventListener(`touchstart`,t,{passive:!0}),e.addEventListener(`pointerdown`,t),e.addEventListener(`scroll`,n,{passive:!0}),()=>{e.removeEventListener(`wheel`,t),e.removeEventListener(`touchstart`,t),e.removeEventListener(`pointerdown`,t),e.removeEventListener(`scroll`,n)}},[a,j]);let P=(0,Q.useCallback)(()=>{},[]),ee=(0,Q.useCallback)(e=>{if(b)return b.loadTaskMessages(e).then(()=>void 0).catch(e=>{if(!wr(e))throw e})},[b]),F=(0,Q.useCallback)(e=>{if(b)try{b.unloadTaskMessages(e)}catch(e){if(wr(e))return;throw e}},[b]);(0,Q.useEffect)(()=>{if(O)return()=>{F(O)}},[F,O]);let I=a&&(!S||S.loading&&!w),L=S?.error||null,ne=!!S?.terminal,z=g.trim(),B=!!c&&!l,re=C.permission_config?.mode,V=C.status===`running`?`Queue a prompt for this session…`:`Prompt this session…`,ie=(0,Q.useCallback)(()=>{!c||!z||l||(c(C.session_id,z,re),_(``))},[l,C.session_id,c,re,z]);return(0,$.jsxs)(`div`,{className:`nodrag`,children:[(0,$.jsx)(`div`,{ref:u,style:{height:360,overflowY:`auto`},children:L?(0,$.jsx)(v,{type:`error`,message:`Failed to load session task`,description:L,showIcon:!0,action:b&&S&&!ne?(0,$.jsx)(Y,{size:`small`,loading:m,onClick:async()=>{h(!0);try{await b.resync()}finally{h(!1)}},children:`Reload`}):void 0}):I?(0,$.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:o.sizeXL},children:(0,$.jsx)(te,{})}):w?w.status===He.QUEUED?(0,$.jsx)(v,{type:`info`,showIcon:!0,message:`Latest task is queued`,description:w.full_prompt||`Waiting for the session to become available.`}):(0,$.jsx)(Yt,{task:w,agentic_tool:C.agentic_tool,sessionModel:C.model_config?.model,userById:n,currentUserId:r,isExpanded:!0,onExpandChange:P,sessionId:C.session_id,onPermissionDecision:s,branchName:i,scheduledFromBranch:C.scheduled_from_branch,scheduledRunAt:C.scheduled_run_at,streamingMessages:E.get(w.task_id),taskMessages:S?.messagesByTask.get(w.task_id)||Sr,taskMessagesLoaded:!!S?.loadedTaskIds.has(w.task_id),onLoadTaskMessages:ee,onUnloadTaskMessages:F,assistantEmoji:void 0,isLatestTask:!0,client:e}):(0,$.jsx)(A,{image:A.PRESENTED_IMAGE_SIMPLE,description:`No task output yet for this session`,style:{marginTop:o.sizeXL}})}),(0,$.jsxs)(`div`,{className:`nodrag nopan nowheel`,style:{display:`flex`,gap:o.sizeUnit,alignItems:`flex-end`,marginTop:o.sizeUnit},children:[(0,$.jsx)(`div`,{style:{flex:1,minWidth:0},children:(0,$.jsx)(R.TextArea,{value:g,onChange:e=>_(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),ie())},disabled:!B,placeholder:B?V:`Session prompting is unavailable…`,autoSize:{minRows:1,maxRows:4}})}),(0,$.jsx)(Y,{type:`primary`,onClick:ie,disabled:!B||!z,children:`Prompt`})]})]})});Tr.displayName=`SessionLatestTaskPeek`;var Er=Q.memo(({client:e,sessions:t,userById:n,currentUserId:i,branchName:a,onCloseSession:o})=>{let{token:s}=D.useToken();return t.length===0?null:(0,$.jsxs)(`div`,{className:`nodrag`,style:{marginTop:s.sizeSM},children:[(0,$.jsxs)(G,{size:6,align:`baseline`,style:{marginBottom:s.sizeXS},children:[(0,$.jsx)(r.Text,{strong:!0,children:`Peek`}),(0,$.jsxs)(r.Text,{type:`secondary`,style:{fontSize:12},children:[t.length,` session`,t.length===1?``:`s`]})]}),(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:s.sizeSM},children:t.map(t=>(0,$.jsxs)(`section`,{style:{borderTop:`1px solid ${s.colorBorderSecondary}`,paddingTop:s.sizeSM},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:s.sizeSM,marginBottom:s.sizeXS},children:[(0,$.jsxs)(G,{size:6,align:`center`,style:{minWidth:0},children:[(0,$.jsx)(Rt,{tool:t.agentic_tool,size:16}),(0,$.jsx)(r.Text,{ellipsis:!0,style:{maxWidth:480,fontSize:12},children:dt(t,{includeAgentFallback:!0})})]}),(0,$.jsx)(Y,{className:`nodrag nopan`,type:`text`,size:`small`,icon:(0,$.jsx)(Te,{}),onClick:()=>o(t.session_id),title:`Stop peeking this session`})]}),(0,$.jsx)(Tr,{client:e,session:t,userById:n,currentUserId:i,branchName:a,enabled:!0})]},t.session_id))})]})});Er.displayName=`BranchSessionPeekSection`;var Dr=`agor:session-sort`,Or=[{value:`recent`,label:`Most recent`},{value:`oldest`,label:`Oldest first`},{value:`alpha`,label:`A–Z`}],kr={TITLE_EXACT:1e3,TITLE_STARTS:800,TITLE_PHRASE:600,TITLE_ALL_WORDS:400,TITLE_PARTIAL_WORDS:200,DESC_PHRASE:120,DESC_ALL_WORDS:80,DESC_PARTIAL_WORDS:40,TOOL_MATCH:30,STATUS_ACTIVE:20,STATUS_AWAITING:15,RECENCY_MAX:50};function Ar(e){return e.trim().toLowerCase()}function jr(e,t=1){return Vr(Ot(e).filter(e=>e.length>=t))}function Mr(e,t,n=Date.now()){let r=Ar(t);if(!r)return 0;let i=jr(r),a=(e.title||e.description||``).toLowerCase(),o=(e.description??``).toLowerCase(),s=e.agentic_tool.toLowerCase(),c=0;if(a===r)c+=kr.TITLE_EXACT;else if(a.startsWith(r))c+=kr.TITLE_STARTS;else if(a.includes(r))c+=kr.TITLE_PHRASE;else{let e=i.filter(e=>a.includes(e));e.length===i.length?c+=kr.TITLE_ALL_WORDS:e.length>0&&(c+=Math.round(kr.TITLE_PARTIAL_WORDS*(e.length/i.length)))}if(o&&o!==a)if(o.includes(r))c+=kr.DESC_PHRASE;else{let e=i.filter(e=>o.includes(e));e.length===i.length?c+=kr.DESC_ALL_WORDS:e.length>0&&(c+=Math.round(kr.DESC_PARTIAL_WORDS*(e.length/i.length)))}if(i.some(e=>s.includes(e))&&(c+=kr.TOOL_MATCH),c===0)return 0;let l=new Date(e.last_updated).getTime();if(Number.isFinite(l)){let e=Math.max(0,(n-l)/864e5);c+=Math.round(kr.RECENCY_MAX*Math.exp(-e))}return e.status===`running`||e.status===`stopping`?c+=kr.STATUS_ACTIVE:e.status===`awaiting_permission`&&(c+=kr.STATUS_AWAITING),c}function Nr(e,t,n={}){let r=Ar(t);if(!Pr(r))return[];let i=Ot(r);return e.filter(e=>Vt(i,Nt.session(e))).map(e=>({session:e,score:Mr(e,r,n.now)})).filter(({score:e})=>e>0).sort((e,t)=>t.score-e.score||Rr(e.session,t.session))}function Pr(e){return Ar(e).length>=2}function Fr(e,t){let n=jr(t);if(n.length===0)return!1;let r=e.agentic_tool.toLowerCase();return n.some(e=>r.includes(e))}function Ir(e,t,n=60){if(!e||!t.trim())return null;let r=e.toLowerCase(),i=[Ar(t),...jr(t)].filter(Boolean),a=-1,o=0;for(let e of i.sort((e,t)=>t.length-e.length)){let t=r.indexOf(e);if(t!==-1){a=t,o=e.length;break}}if(a===-1)return null;let s=Math.max(0,a-n),c=Math.min(e.length,a+Math.max(o,10)+n),l=s>0?`…`:``,u=c<e.length?`…`:``;return`${l}${e.slice(s,c)}${u}`}function Lr(e,t){let n=[...e];switch(t){case`oldest`:return n.sort(zr);case`alpha`:return n.sort(Br);default:return n.sort(Rr)}}function Rr(e,t){return new Date(t.last_updated).getTime()-new Date(e.last_updated).getTime()}function zr(e,t){return new Date(e.last_updated).getTime()-new Date(t.last_updated).getTime()}function Br(e,t){return dt(e,{includeAgentFallback:!0}).localeCompare(dt(t,{includeAgentFallback:!0}),void 0,{sensitivity:`base`})}function Vr(e){let t=new Set,n=[];for(let r of e)t.has(r)||(t.add(r),n.push(r));return n}var{Text:Hr}=r,Ur=({ownerUserId:e,value:t,onChange:n,client:r,envVars:i,disabled:a,hideEmptyMessage:o})=>{let[s,c]=(0,Q.useState)(i),[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{if(i){c(i);return}if(!r||!e)return;let t=!1;return u(!0),f(null),(async()=>{try{let n=await r.service(`users`).get(e);t||c(n.env_vars??{})}catch(e){t||f(e instanceof Error?e.message:`Failed to load env vars`)}finally{t||u(!1)}})(),()=>{t=!0}},[r,e,i]);let p=(0,Q.useMemo)(()=>s?Object.entries(s).filter(([,e])=>e.scope===`session`).map(([e])=>e).sort():[],[s]);return d?(0,$.jsx)(v,{type:`error`,title:d}):!l&&p.length===0?o?null:(0,$.jsxs)(Hr,{type:`secondary`,children:[`No session-scope environment variables. Add some under `,(0,$.jsx)(`b`,{children:`User Settings β†’ Env vars`}),` with scope = `,(0,$.jsx)(`b`,{children:`Session`}),`, then select them here to expose to this session's executor.`]}):(0,$.jsxs)(G,{orientation:`vertical`,size:`small`,style:{width:`100%`},children:[(0,$.jsx)(E,{mode:`multiple`,value:t,onChange:n,loading:l,disabled:a,placeholder:`Select session-scope env vars to export to this session`,options:p.map(e=>({value:e,label:e})),style:{width:`100%`}}),(0,$.jsx)(Hr,{type:`secondary`,style:{fontSize:12},children:`Global-scope vars are exported automatically. Only vars listed here (scope = session, set by the session's creator) are added to this session's executor process.`})]})},Wr=({open:e,action:t,session:n,currentUser:i=null,mcpServerById:s=new Map,initialPrompt:c=``,onConfirm:l,onCancel:u,client:d,userById:f})=>{let[p]=J.useForm(),[m,h]=(0,Q.useState)(!1),[_,v]=(0,Q.useState)(`parent`),[y,b]=(0,Q.useState)(n?.agentic_tool||`claude-code`),[x,S]=(0,Q.useState)([]),C=(0,Q.useCallback)(e=>{let t=i?.default_agentic_config?.[e],r=e===n?.agentic_tool;return{agent:e,permissionMode:t?.permissionMode||(r?n?.permission_config?.mode:void 0)||Le(e),modelConfig:t?.modelConfig??(r?n?.model_config:void 0),codexSandboxMode:t?.codexSandboxMode,codexApprovalPolicy:t?.codexApprovalPolicy,codexNetworkAccess:t?.codexNetworkAccess,mcpServerIds:t?.mcpServerIds||[]}},[i,n]);(0,Q.useEffect)(()=>{if(e&&n){v(`parent`),S([]);let e=n.agentic_tool||`claude-code`;p.setFieldsValue({prompt:c,enableCallback:n.callback_config?.enabled,includeLastMessage:n.callback_config?.include_last_message,includeOriginalPrompt:n.callback_config?.include_original_prompt}),b(e)}},[e,n,p,c]),(0,Q.useEffect)(()=>{if(!e||!n||_!==`custom`)return;let t=n.agentic_tool||`claude-code`;p.setFieldsValue(C(t)),b(t)},[e,n,_,p,C]);let w=async()=>{try{await p.validateFields()}catch(e){console.error(`Form validation failed:`,e);return}let e=p.getFieldsValue(!0),n=e.prompt?.trim();if(n){h(!0);try{if(t===`fork`)await l(n);else{let t={prompt:n};_===`custom`&&(t.agent=e.agent||y,t.permissionMode=e.permissionMode,t.modelConfig=e.modelConfig,t.codexSandboxMode=e.codexSandboxMode,t.codexApprovalPolicy=e.codexApprovalPolicy,t.codexNetworkAccess=e.codexNetworkAccess,t.mcpServerIds=e.mcpServerIds,t.extraInstructions=e.extraInstructions,t.envVarNames=x),e.enableCallback!==void 0&&(t.enableCallback=e.enableCallback),e.includeLastMessage!==void 0&&(t.includeLastMessage=e.includeLastMessage),e.includeOriginalPrompt!==void 0&&(t.includeOriginalPrompt=e.includeOriginalPrompt),await l(t)}p.resetFields(),u()}catch(e){console.error(`Failed to ${t} session β€” keeping modal open so prompt is preserved:`,e)}finally{h(!1)}}},T=()=>{p.resetFields(),u()},E=t===`fork`?`Fork`:`Spawn`,D=t===`fork`?`Create a sibling session to explore an alternative approach`:`Create a child session to work on a focused subsession`;return(0,$.jsxs)(Ee,{title:(0,$.jsx)(`div`,{children:(0,$.jsxs)(r.Text,{strong:!0,children:[E,` Session: `,n?.title||n?.description||`Untitled`]})}),open:e,onOk:w,onCancel:T,okText:`${E} Session`,confirmLoading:m,width:700,forceRender:!0,children:[(0,$.jsx)(`div`,{style:{marginBottom:16},children:(0,$.jsx)(r.Text,{type:`secondary`,style:{fontSize:13},children:D})}),(0,$.jsxs)(J,{form:p,layout:`vertical`,children:[(0,$.jsx)(J.Item,{name:`prompt`,label:`Prompt for ${t===`fork`?`forked`:`spawned`} session`,rules:[{required:!0,message:`Please enter a prompt`}],children:(0,$.jsx)(un,{value:p.getFieldValue(`prompt`)||``,onChange:e=>p.setFieldValue(`prompt`,e),placeholder:t===`fork`?`Try a different approach by... (type @ for autocomplete)`:`Work on this subsession... (type @ for autocomplete)`,autoSize:{minRows:3,maxRows:8},client:d,sessionId:n?.session_id||null,userById:f,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`})}),t===`spawn`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(J.Item,{label:`Configuration`,children:(0,$.jsxs)(o.Group,{value:_,onChange:e=>v(e.target.value),buttonStyle:`solid`,children:[(0,$.jsx)(o.Button,{value:`parent`,children:`Same as parent`}),(0,$.jsx)(o.Button,{value:`custom`,children:`Custom config`})]})}),_===`custom`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(J.Item,{name:`agent`,label:`Agent`,children:(0,$.jsx)(Ft,{agents:wt,selectedAgentId:y,onSelect:e=>{let t=e;b(t),p.setFieldsValue(C(t))},columns:2})}),(0,$.jsx)(a,{ghost:!0,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(g,{rotate:e?180:0}),items:[{key:`agentic-tool-config`,label:(0,$.jsx)(r.Text,{strong:!0,children:`Agentic Tool Configuration`}),children:(0,$.jsx)(gt,{agenticTool:y,mcpServerById:s,showHelpText:!1})}]}),i&&d&&(0,$.jsx)(J.Item,{label:`Environment Variables`,style:{marginTop:16},children:(0,$.jsx)(Ur,{ownerUserId:i.user_id,client:d,value:x,onChange:S,hideEmptyMessage:!0})}),(0,$.jsx)(J.Item,{name:`extraInstructions`,label:`Extra Instructions (optional)`,help:`Append additional context or constraints to the spawn prompt`,style:{marginTop:16},children:(0,$.jsx)(un,{value:p.getFieldValue(`extraInstructions`)||``,onChange:e=>p.setFieldValue(`extraInstructions`,e),placeholder:`e.g., "Only use safe operations", "Prioritize performance" (type @ for autocomplete)`,autoSize:{minRows:2,maxRows:4},client:d,sessionId:n?.session_id||null,userById:f,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`})})]}),(0,$.jsxs)(`div`,{style:{marginTop:16,marginBottom:16},children:[(0,$.jsx)(r.Text,{strong:!0,children:`Callback Options`}),(0,$.jsx)(J.Item,{name:`enableCallback`,valuePropName:`checked`,style:{marginTop:8},children:(0,$.jsx)(Ne,{children:`Notify parent on completion`})}),(0,$.jsx)(J.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.enableCallback!==t.enableCallback,children:({getFieldValue:e})=>e(`enableCallback`)&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(J.Item,{name:`includeLastMessage`,valuePropName:`checked`,style:{marginLeft:24},children:(0,$.jsx)(Ne,{children:`Include child's final result`})}),(0,$.jsx)(J.Item,{name:`includeOriginalPrompt`,valuePropName:`checked`,style:{marginLeft:24},children:(0,$.jsx)(Ne,{children:`Include original prompt`})})]})})]})]})]})]})},Gr=({session:e,size:n=11})=>{let{token:i}=D.useToken(),a=e.genealogy?.parent_session_id,o=e.genealogy?.forked_from_session_id;return o&&e.fork_origin===`btw`?(0,$.jsx)(S,{title:`Forked (btw) from ${Xe(o)}`,children:(0,$.jsx)(r.Text,{style:{fontSize:Math.round(n*.85),color:i.colorWarning,fontWeight:`bold`,whiteSpace:`nowrap`,flexShrink:0},children:`btw`})}):a?(0,$.jsx)(S,{title:`Spawned from ${Xe(a)}`,children:(0,$.jsx)(Ce,{style:{fontSize:n,color:i.colorInfo,flexShrink:0}})}):o?(0,$.jsx)(S,{title:`Forked from ${Xe(o)}`,children:(0,$.jsx)(t,{style:{fontSize:n,color:i.colorWarning,flexShrink:0}})}):null},Kr=`Matched by title, description, and agent. Active and recently updated sessions rank higher within matches.`,qr=({sort:e,onSortChange:t,compact:n=!1,stopPropagation:r=!1})=>{let{token:i}=D.useToken();return(0,$.jsx)(V,{menu:{items:Or.map(t=>({key:t.value,label:t.label,icon:e===t.value?(0,$.jsx)(b,{}):(0,$.jsx)(`span`,{style:{width:12,display:`inline-block`}})})),onClick:({key:e})=>t(e),selectedKeys:[e]},trigger:[`click`],children:(0,$.jsx)(Y,{type:`text`,size:`small`,icon:e===`oldest`?(0,$.jsx)(z,{}):(0,$.jsx)(H,{}),style:{flexShrink:0,padding:`0 6px`,color:i.colorTextSecondary,background:e===`recent`?void 0:i.colorFillSecondary,borderRadius:i.borderRadiusSM},onClick:e=>{r&&e.stopPropagation()},children:n?Xr(e):Zr(e)})})},Jr=({value:e,onChange:t,sort:n,onSortChange:r,searching:i=!1,placeholder:a=`Search sessions...`})=>{let{token:o}=D.useToken();return(0,$.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`},children:[(0,$.jsx)(R,{style:{flex:1},placeholder:a,prefix:(0,$.jsx)(d,{}),value:e,onChange:e=>t(e.target.value),allowClear:!0}),(0,$.jsx)(`div`,{style:{flexShrink:0,minWidth:96,display:`flex`,justifyContent:`flex-end`},children:i?(0,$.jsx)(S,{title:Kr,placement:`topRight`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(h,{style:{color:o.colorTextTertiary}}),style:{padding:`0 6px`,color:o.colorTextTertiary},children:`Relevance`})}):(0,$.jsx)(qr,{sort:n,onSortChange:r,compact:!0})})]})},Yr=()=>{let{token:e}=D.useToken();return(0,$.jsx)(S,{title:Kr,children:(0,$.jsx)(`span`,{style:{borderBottom:`1px dashed ${e.colorTextTertiary}`,cursor:`help`},children:`by relevance`})})};function Xr(e){return e===`alpha`?`A–Z`:e===`oldest`?`Oldest`:`Recent`}function Zr(e){return e===`alpha`?`A–Z`:e===`oldest`?`Oldest first`:`Most recent`}function Qr(e){let t=new Map,n=new Map,r=[];for(let n of e)t.set(n.session_id,n);for(let i of e){let e=i.genealogy?.parent_session_id||i.genealogy?.forked_from_session_id;if(e&&t.has(e)){let t=n.get(e)||[];t.push(i),n.set(e,t)}else r.push(i)}function i(e,t=!1){let r=n.get(e.session_id)||[],a=`root`;e.remote_surrogate?a=`remote`:t||(e.genealogy?.parent_session_id?a=`spawn`:e.genealogy?.forked_from_session_id&&(a=`fork`));let o={key:e.session_id,title:``,session:e,relationshipType:a};return r.length>0&&(o.children=r.map(e=>i(e,!1))),o}return r.map(e=>i(e,!0))}var $r=({sessionId:e,isArchiving:t,isPeeked:n=!1,onArchive:r,onSettings:a,onTogglePeek:o,onToggleCallback:s,onOpenRemoteParent:c,callbackToggle:l,remoteParentLink:u,children:d})=>{let[f,p]=(0,Q.useState)(!1),{token:m}=D.useToken(),h={background:`${m.colorBgContainer}cc`,borderRadius:4,width:24,height:24,minWidth:24,display:`flex`,alignItems:`center`,justifyContent:`center`},g=n?{...h,color:m.colorPrimary,background:m.colorPrimaryBg}:h;return(0,$.jsxs)(`div`,{style:{position:`relative`,minWidth:120},onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),children:[d,(0,$.jsxs)(`div`,{style:{position:`absolute`,right:4,top:`50%`,transform:`translateY(-50%)`,opacity:+!!f,transition:`opacity 0.15s ease-in-out`,pointerEvents:f?`auto`:`none`,display:`flex`,gap:2,width:`fit-content`},children:[a&&(0,$.jsx)(S,{title:`Session settings`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(ae,{}),onClick:t=>a(e,t),style:h})}),o&&(0,$.jsx)(S,{title:n?`Stop peeking at latest prompt`:`Peek at latest prompt`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(k,{}),onClick:t=>o(e,t),style:g})}),c&&u&&(0,$.jsx)(S,{title:u.tooltip,children:(0,$.jsx)(Y,{type:`text`,size:`small`,disabled:u.disabled,icon:(0,$.jsx)(Me,{}),onClick:t=>c(e,t),style:{...h,color:m.colorTextSecondary}})}),s&&l&&(0,$.jsx)(S,{title:l.tooltip,children:(0,$.jsx)(Y,{type:`text`,size:`small`,disabled:l.disabled,icon:l.enabled?(0,$.jsx)(i,{}):(0,$.jsx)(ke,{}),onClick:t=>s(e,t),style:{...h,color:l.enabled?m.colorPrimary:m.colorTextTertiary,background:l.enabled?m.colorPrimaryBg:h.background}})}),(0,$.jsx)(pt,{tooltip:`Archive session`,loading:t,onClick:t=>r(e,t),style:h})]})]})},ei=({branch:e,sessions:t,userById:n,currentUserId:i,selectedSessionId:o,onSessionClick:s,onCreateSession:c,onForkSession:l,onSpawnSession:d,onOpenSessionSettings:f,peekedSessionIds:m,onTogglePeekSession:h,defaultExpanded:g=!0,mode:_=`card`,client:v})=>{let{token:y}=D.useToken(),{modal:b}=Ie.useApp(),{showSuccess:C,showError:w}=$e(),E=ht(),O=vt(`scheduler`),k=vt(`gateway`),{archiveSession:A}=Ht(v),[j,N]=(0,Q.useState)({open:!1,action:`fork`,session:null}),[P,ee]=(0,Q.useState)([]),[F,I]=(0,Q.useState)(new Set),[L,ne]=(0,Q.useState)(``),[R,z]=ct(Dr,`recent`),B=_===`panel`,re=m??new Set,V=L.trim(),ae=Pr(V),oe=(0,Q.useCallback)((e,t)=>{t.stopPropagation(),h?.(e)},[h]),ce=(0,Q.useCallback)(e=>e.remote_surrogate?.relationship??e.remote_relationships?.as_target?.find(e=>e.relationship_type===`remote_create`),[]),le=(0,Q.useCallback)(e=>{if(e.remote_surrogate)return;let n=e.remote_relationships?.as_target?.find(e=>e.relationship_type===`remote_create`)?.source_session_id;if(n)return n;let r=e.callback_config?.callback_session_id,i=r?t.find(e=>e.session_id===r):void 0;if(i&&i.branch_id!==e.branch_id)return r},[t]),ue=(0,Q.useCallback)(e=>{let t=ce(e);return e.callback_config?.callback_session_id??t?.callback_session_id??e.genealogy?.parent_session_id??e.remote_surrogate?.source_session_id},[ce]),H=(0,Q.useCallback)(e=>{if(!ue(e))return null;let t=ce(e),n=e.callback_config?.enabled??t?.callback_enabled??!0;return{enabled:n,disabled:E||!v,tooltip:n?`Callbacks linked β€” click to stop callback notifications while keeping the relationship`:`Callbacks unlinked β€” click to resume callback notifications for this relationship`}},[v,E,ce,ue]),U=(0,Q.useCallback)(async(e,n)=>{if(n.stopPropagation(),!v)return;let r=t.find(t=>t.session_id===e);if(!r)return;let i=ue(r);if(!i)return;let a=!(H(r)?.enabled??!1);try{await v.service(`sessions`).patch(r.session_id,{callback_config:{...r.callback_config??{},callback_session_id:i,enabled:a}}),C(a?`Callbacks linked`:`Callbacks unlinked`)}catch(e){w(`Failed to update callbacks: ${e instanceof Error?e.message:String(e)}`)}},[v,ue,H,t,w,C]),de=(0,Q.useCallback)((e,n)=>{n.stopPropagation();let r=t.find(t=>t.session_id===e),i=r?le(r):void 0;i&&s?.(i)},[le,s,t]),fe=async e=>{if(j.session)if(j.action===`fork`){let t=typeof e==`string`?e:e.prompt||``;await l?.(j.session.session_id,t)}else await d?.(j.session.session_id,e)},pe=(0,Q.useCallback)((e,t)=>{t.stopPropagation(),b.confirm({title:`Archive session?`,content:`Are you sure you want to archive this session?`,okText:`Archive`,cancelText:`Cancel`,onOk:async()=>{I(t=>new Set(t).add(e));try{await A(e)?C(`Session archived`):w(`Failed to archive session`)}finally{I(t=>{let n=new Set(t);return n.delete(e),n})}}})},[A,b,C,w]),me=(0,Q.useCallback)(e=>ze(e)??void 0,[]),he=(0,Q.useCallback)(e=>Qe(e),[]),ge=(0,Q.useMemo)(()=>t.filter(e=>!e.archived),[t]),ve=(0,Q.useMemo)(()=>ge.filter(e=>!e.scheduled_from_branch&&!he(e)),[ge,he]),ye=(0,Q.useMemo)(()=>ge.filter(e=>e.scheduled_from_branch).sort((e,t)=>(t.scheduled_run_at||0)-(e.scheduled_run_at||0)),[ge]),be=(0,Q.useMemo)(()=>ge.filter(e=>he(e)),[ge,he]),W=(0,Q.useMemo)(()=>[...ve,...O?ye:[],...k?be:[]],[k,be,ve,ye,O]),xe=(0,Q.useMemo)(()=>Lr(ve,R),[ve,R]),Se=(0,Q.useMemo)(()=>Qr(xe),[xe]),Ce=(0,Q.useMemo)(()=>B&&ae?Nr(W,V).map(({session:e})=>e):[],[B,ae,W,V]),we=(0,Q.useMemo)(()=>ye.some(Re),[ye]),Te=(0,Q.useMemo)(()=>be.some(Re),[be]),Ee=e.filesystem_status===`creating`,K=e.filesystem_status===`failed`,De=e=>e.status===Ue.FAILED;(0,Q.useEffect)(()=>{let e=t=>{let n=[];for(let r of t)r.children&&r.children.length>0&&(n.push(r.key),n.push(...e(r.children)));return n};ee(e(Se))},[Se]);let q=e=>{let t=e.session_id===o,n=!!e.remote_surrogate;return{border:e.ready_for_prompt?`1px solid ${y.colorPrimary}`:n?`1px dashed ${y.colorBorderSecondary}`:`1px solid ${B?y.colorBorderSecondary:`rgba(255, 255, 255, 0.1)`}`,borderRadius:B?6:4,padding:B?10:8,background:n?y.colorFillQuaternary:B?y.colorBgContainer:`transparent`,display:`flex`,alignItems:`center`,cursor:`pointer`,marginBottom:4,opacity:n?.78:void 0,boxShadow:e.ready_for_prompt?`0 0 12px ${y.colorPrimary}30`:void 0,...t?{outline:`1px dashed ${y.colorTextBase}`,outlineOffset:-2}:{}}},J=(e,t={})=>{let n=dt(e,{includeAgentFallback:!0}),i=De(e);return(0,$.jsx)(r.Text,{strong:t.strong,type:i?`danger`:t.secondary?`secondary`:void 0,style:{fontSize:B?13:12,flex:1,minWidth:0,...Lt(2)},children:(0,$.jsx)(Wt,{text:n,query:t.query??``})})},Oe=e=>De(e)?(0,$.jsx)(S,{title:`Latest task failed`,children:(0,$.jsx)(se,{"aria-label":`Latest task failed`,style:{color:y.colorErrorText,fontSize:12,flex:`0 0 auto`}})}):null,ke=(e,t={})=>(0,$.jsxs)($.Fragment,{children:[Oe(e),J(e,t)]}),Ae=(e,t=``)=>{let n=Re(e),i=H(e),a=le(e),o=dt(e,{includeAgentFallback:!0}),c=t&&e.title&&e.description?Ir(e.description,t):null,l=t?Fr(e,t):!1,u=e.scheduled_from_branch?`Scheduled`:he(e)?`Gateway`:null;return(0,$.jsx)($r,{sessionId:e.session_id,isArchiving:F.has(e.session_id),onArchive:pe,callbackToggle:i??void 0,onToggleCallback:i?U:void 0,remoteParentLink:a?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:a?de:void 0,onSettings:f?(e,t)=>{t.stopPropagation(),f(e)}:void 0,children:(0,$.jsx)(`div`,{style:q(e),onClick:()=>s?.(e.session_id),children:(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:4,flex:1,minWidth:0},children:[n?(0,$.jsx)(te,{size:`small`}):(0,$.jsx)(Rt,{tool:e.agentic_tool,size:20}),(0,$.jsx)(Gr,{session:e,size:10}),(0,$.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,$.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,minWidth:0},children:ke(e,{query:t})}),(u||l)&&(0,$.jsxs)(r.Text,{type:`secondary`,style:{fontSize:11,display:`block`,marginTop:2},children:[u,u&&l?` Β· `:``,l&&(0,$.jsxs)($.Fragment,{children:[`Agent: `,(0,$.jsx)(Wt,{text:e.agentic_tool,query:t})]})]}),c&&c!==o&&(0,$.jsx)(r.Text,{type:`secondary`,style:{fontSize:11,fontStyle:`italic`,lineHeight:1.4,display:`block`,marginTop:2},children:(0,$.jsx)(Wt,{text:c,query:t})})]})]})})},e.session_id)},je=(0,$.jsx)(p,{theme:{components:{Tree:{colorBgContainer:`transparent`}}},children:(0,$.jsx)(x,{className:`agor-flat-tree`,treeData:Se,expandedKeys:P,onExpand:e=>ee(e),showLine:!0,showIcon:!1,selectable:!1,style:{background:`transparent`,borderRadius:0,padding:0},titleRender:e=>{let t=e.session,n=Re(t),r=e.relationshipType===`remote`,i=H(t),a=le(t);return(0,$.jsx)($r,{sessionId:t.session_id,isArchiving:F.has(t.session_id),isPeeked:re.has(t.session_id),onArchive:pe,onTogglePeek:h?oe:void 0,callbackToggle:i??void 0,onToggleCallback:i?U:void 0,remoteParentLink:a?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:a?de:void 0,onSettings:f?(e,t)=>{t.stopPropagation(),f(e)}:void 0,children:(0,$.jsx)(`div`,{style:q(t),onClick:()=>s?.(t.session_id),onContextMenu:e=>{(l||d)&&e.preventDefault()},children:(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,flex:1,minWidth:0},children:[n?(0,$.jsx)(te,{size:`small`}):(0,$.jsx)(Rt,{tool:t.agentic_tool,size:20}),r?(0,$.jsx)(S,{title:`Remote session created from this session. Click to open it in its own branch.`,children:(0,$.jsx)(ie,{style:{fontSize:11,color:y.colorTextTertiary}})}):(0,$.jsx)(Gr,{session:t,size:10}),ke(t)]})})})}})}),Me=(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:[(0,$.jsxs)(G,{size:4,align:`center`,children:[(0,$.jsx)(r.Text,{strong:!0,children:`Sessions`}),(0,$.jsx)(T,{count:ve.length,showZero:!0,style:{backgroundColor:y.colorPrimaryBgHover}}),!B&&(0,$.jsx)(qr,{sort:R,onSortChange:z,compact:!0,stopPropagation:!0})]}),c&&(0,$.jsx)(`div`,{className:`nodrag`,children:(0,$.jsx)(Y,{type:`default`,size:`small`,icon:(0,$.jsx)(M,{}),disabled:E||Ee,onClick:t=>{t.stopPropagation(),c(e.branch_id)},title:Ee?`Branch is being created...`:void 0,children:`New Session`})})]}),Ne=(0,$.jsx)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:(0,$.jsxs)(G,{size:4,align:`center`,children:[(0,$.jsx)(_e,{style:{color:y.colorInfo}}),(0,$.jsx)(r.Text,{strong:!0,children:`Scheduled Runs`}),(0,$.jsx)(T,{count:ye.length,showZero:!0,style:{backgroundColor:y.colorInfoBgHover}}),we&&(0,$.jsx)(te,{size:`small`})]})}),Pe=(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:ye.map(e=>{let t=Re(e),n=H(e),r=le(e);return(0,$.jsx)($r,{sessionId:e.session_id,isArchiving:F.has(e.session_id),isPeeked:re.has(e.session_id),onArchive:pe,onTogglePeek:h?oe:void 0,callbackToggle:n??void 0,onToggleCallback:n?U:void 0,remoteParentLink:r?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:r?de:void 0,onSettings:f?(e,t)=>{t.stopPropagation(),f(e)}:void 0,children:(0,$.jsx)(`div`,{style:q(e),onClick:()=>s?.(e.session_id),children:(0,$.jsxs)(G,{size:4,align:`center`,style:{flex:1,minWidth:0},children:[t?(0,$.jsx)(te,{size:`small`}):(0,$.jsx)(Rt,{tool:e.agentic_tool,size:20}),ke(e,{secondary:!0})]})})},e.session_id)})}),Fe=(0,$.jsx)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:(0,$.jsxs)(G,{size:4,align:`center`,children:[(0,$.jsx)(u,{style:{color:y.colorSuccess}}),(0,$.jsx)(r.Text,{strong:!0,children:`Gateway Sessions`}),(0,$.jsx)(T,{count:be.length,showZero:!0,style:{backgroundColor:y.colorSuccessBgHover}}),Te&&(0,$.jsx)(te,{size:`small`})]})}),Le=(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:be.map(e=>{let t=me(e),n=Re(e),i=H(e),a=le(e);return(0,$.jsx)($r,{sessionId:e.session_id,isArchiving:F.has(e.session_id),isPeeked:re.has(e.session_id),onArchive:pe,onTogglePeek:h?oe:void 0,callbackToggle:i??void 0,onToggleCallback:i?U:void 0,remoteParentLink:a?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:a?de:void 0,onSettings:f?(e,t)=>{t.stopPropagation(),f(e)}:void 0,children:(0,$.jsx)(`div`,{style:q(e),onClick:()=>s?.(e.session_id),children:(0,$.jsxs)(G,{size:4,align:`center`,style:{flex:1,minWidth:0},children:[n?(0,$.jsx)(te,{size:`small`}):(0,$.jsx)(Rt,{tool:e.agentic_tool,size:20}),(0,$.jsxs)(`div`,{style:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,gap:4},children:[(0,$.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,minWidth:0},children:ke(e)}),(0,$.jsx)(`div`,{style:{alignSelf:`flex-start`},children:t?(0,$.jsx)(Z,{channelType:t.channel_type,channelName:t.channel_name}):(0,$.jsx)(r.Text,{type:`secondary`,style:{fontSize:11,fontStyle:`italic`},children:`(Gateway - metadata unavailable)`})})]})]})})},e.session_id)})}),Be=B&&ge.length>0?(0,$.jsx)(`div`,{style:{paddingBottom:12,paddingTop:4},children:(0,$.jsx)(Jr,{value:L,onChange:ne,sort:R,onSortChange:z,searching:ae})}):null;return B&&ae&&W.length>0?(0,$.jsxs)($.Fragment,{children:[Be,Ce.length>0&&(0,$.jsxs)(r.Text,{type:`secondary`,style:{fontSize:11,padding:`2px 8px 4px`,display:`block`},children:[Ce.length,` of `,W.length,` Β· `,(0,$.jsx)(Yr,{})]}),Ce.length===0?(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,alignItems:`center`,padding:`24px 16px`,gap:6},children:[(0,$.jsx)(r.Text,{strong:!0,style:{fontSize:13},children:`No results`}),(0,$.jsxs)(r.Text,{type:`secondary`,style:{fontSize:12,textAlign:`center`,lineHeight:1.5,maxWidth:180},children:[`Nothing matched `,(0,$.jsx)(r.Text,{code:!0,children:V})]})]}):(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:Ce.map(e=>Ae(e,V))}),(0,$.jsx)(Wr,{open:j.open,action:j.action,session:j.session,currentUser:i?n.get(i):void 0,onConfirm:fe,onCancel:()=>N({open:!1,action:`fork`,session:null}),client:v,userById:n})]}):(0,$.jsxs)($.Fragment,{children:[Be,ge.length===0?(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8,alignItems:`center`,padding:B?`24px 0`:`16px 0`,marginTop:8},children:Ee?(0,$.jsx)(r.Text,{type:`secondary`,children:`Creating branch on filesystem...`}):K?(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8,textAlign:`center`},children:[(0,$.jsx)(r.Text,{type:`danger`,strong:!0,children:`Branch creation failed`}),e.error_message&&(0,$.jsx)(S,{title:e.error_message,placement:`bottom`,children:(0,$.jsx)(r.Text,{type:`secondary`,style:{fontSize:12,maxWidth:220,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,cursor:`help`},children:e.error_message})})]}):c?(0,$.jsx)(Y,{type:`primary`,icon:(0,$.jsx)(M,{}),disabled:E,onClick:t=>{t.stopPropagation(),c(e.branch_id)},size:`middle`,children:`Create Session`}):null}):(0,$.jsxs)($.Fragment,{children:[ve.length>0?(0,$.jsx)(a,{defaultActiveKey:g?[`sessions`]:[],items:[{key:`sessions`,label:Me,children:je,styles:{body:{background:`transparent`,paddingInline:B?0:void 0}}}],ghost:!0,style:{marginTop:8}}):c?(0,$.jsx)(`div`,{style:{marginTop:8},children:Me}):null,O&&ye.length>0&&(0,$.jsx)(a,{defaultActiveKey:[],items:[{key:`scheduled-runs`,label:Ne,children:Pe,styles:{body:{background:`transparent`,paddingInline:B?0:void 0}}}],ghost:!0,style:{marginTop:ve.length>0?0:8}}),k&&be.length>0&&(0,$.jsx)(a,{defaultActiveKey:[],items:[{key:`gateway-sessions`,label:Fe,children:Le,styles:{body:{background:`transparent`,paddingInline:B?0:void 0}}}],ghost:!0,style:{marginTop:ve.length>0||ye.length>0?0:8}})]}),(0,$.jsx)(Wr,{open:j.open,action:j.action,session:j.session,currentUser:i?n.get(i):void 0,onConfirm:fe,onCancel:()=>N({open:!1,action:`fork`,session:null}),client:v,userById:n})]})},ti=200,ni=`agor:branch-card:peeked-session-ids:`,ri=Q.memo(({branch:e,repo:t,sessions:n,userById:i,currentUserId:a,selectedSessionId:o,onSessionClick:s,onCreateSession:u,onForkSession:d,onSpawnSession:f,onArchiveOrDelete:p,onOpenSettings:m,onOpenSessionSettings:h,onOpenTerminal:g,onStartEnvironment:_,onStopEnvironment:v,onViewLogs:y,onNukeEnvironment:b,onUnpin:x,isPinned:w=!1,zoneName:T,zoneColor:E,defaultExpanded:O=!0,inPopover:k=!1,panelMode:A=!1,isActiveUrlTarget:j=!1,client:M})=>{let{token:P}=D.useToken(),ee=ht(),[F,I]=(0,Q.useState)(!1),[L,ne]=(0,Q.useState)(!1),[R,z]=ct(`${ni}${e.branch_id}`,[]),B=(0,Q.useMemo)(()=>n.filter(e=>!e.archived),[n]),re=(0,Q.useMemo)(()=>new Map(B.map(e=>[e.session_id,e])),[B]),V=(0,Q.useMemo)(()=>{if(k||A)return[];let e=[],t=new Set;for(let n of R){let r=n.trim();if(!r)continue;let i=B.find(e=>e.session_id===r);i&&!t.has(i.session_id)&&(e.push(i.session_id),t.add(i.session_id))}return e},[k,A,B,R]),ie=(0,Q.useMemo)(()=>new Set(V),[V]),ae=(0,Q.useMemo)(()=>V.map(e=>re.get(e)).filter(e=>!!e),[re,V]),se=(0,Q.useCallback)(e=>z(e),[z]);(0,Q.useEffect)(()=>{k||A||R.join(`|`)!==V.join(`|`)&&z(V)},[k,A,V,z,R]);let ce=(0,Q.useCallback)(e=>{se(ie.has(e)?V.filter(t=>t!==e):[...V,e])},[ie,V,se]),le=B,ue=(0,Q.useMemo)(()=>le.some(Re),[le]),H=e.filesystem_status===`creating`,U=e.filesystem_status===`failed`,de=(0,Q.useMemo)(()=>Je(e),[e]),fe=Ge(e),pe=(0,Q.useMemo)(()=>le.some(e=>e.session_id===o),[le,o]),me=(0,Q.useMemo)(()=>{let t=le.some(e=>e.ready_for_prompt===!0);return(e.needs_attention||t)&&!pe},[le,e.needs_attention,pe]),he=it(P),ge=(0,Q.useMemo)(()=>{let e=P.colorTextBase||(he?`#ffffff`:`#000000`),t;try{t=new N(e).toHexString()}catch{t=he?`#ffffff`:`#000000`}return`0 0 0 3px ${t}, 0 0 24px 6px ${t}99`},[P.colorTextBase,he]),_e=pe||j,ye=`2px dashed ${P.colorTextBase}`,be=(0,Q.useMemo)(()=>{if(E)return at(E,he,50,50)},[E,he]),W=e.notes&&e.notes.length>ti,xe=(0,Q.useMemo)(()=>{if(!e.notes)return``;if(!W||L)return e.notes;let t=e.notes.slice(0,ti),n=t.lastIndexOf(` `);return n>ti*.8?`${t.slice(0,n)}...`:`${t}...`},[e.notes,W,L]),Se=(()=>{if(k)return{};let e={};return me&&(e.boxShadow=ge),_e&&(e.outline=ye,e.outlineOffset=-3),w&&E&&(e.borderColor=E,e.borderWidth=1),fe&&(e.borderLeft=`4px solid ${P.colorInfo}`),e})();return(0,$.jsxs)(oe,{style:{width:A?`100%`:ae.length>0?880:500,cursor:`default`,transition:`box-shadow 0.6s ease-in-out, outline 0.2s ease-in-out, border 0.6s ease-in-out, opacity 0.2s ease-in-out`,willChange:me&&!k?`box-shadow`:`auto`,...Se,...fe?{backgroundColor:P.colorInfoBg}:{},...ee&&!k?{pointerEvents:`none`,opacity:.55}:{}},styles:{body:{padding:16}},children:[(0,$.jsxs)(`div`,{className:!k&&!A?mr:void 0,style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:12,gap:8,cursor:!k&&!A?`grab`:void 0},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0},children:[!k&&(0,$.jsx)(`div`,{className:`drag-handle`,style:{display:`flex`,alignItems:`center`,cursor:A?`default`:`grab`,width:32,height:32,justifyContent:`center`,flexShrink:0},children:H||ue?(0,$.jsx)(te,{size:`large`}):fe&&de?.emoji?(0,$.jsx)(`span`,{style:{fontSize:32},children:de.emoji}):fe?(0,$.jsx)(l,{style:{fontSize:32,color:U?P.colorError:P.colorInfo}}):(0,$.jsx)(Ae,{style:{fontSize:32,color:U?P.colorError:P.colorPrimary}})}),(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,flex:1,minWidth:0},children:fe?(0,$.jsx)(r.Title,{level:4,style:{margin:0,fontWeight:600},ellipsis:{tooltip:de?.displayName??e.name},children:de?.displayName??e.name}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(r.Text,{strong:!0,ellipsis:{tooltip:e.name},children:e.name}),(0,$.jsx)(r.Text,{type:`secondary`,style:{fontSize:12},ellipsis:{tooltip:t.slug},children:t.slug})]})})]}),(0,$.jsxs)(G,{size:4,style:{flexShrink:0},children:[!k&&!A&&w&&(0,$.jsx)(S,{title:T?`Pinned to [${T}] zone (click to unpin)`:`Pinned (click to unpin)`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(c,{style:{color:be}}),onClick:t=>{t.stopPropagation(),x?.(e.branch_id)},className:`nodrag`})}),!k&&!A&&(0,$.jsx)(Y,{type:`text`,icon:(0,$.jsx)(ve,{style:{fontSize:16}}),className:`drag-handle`,title:`Drag to reposition`,style:{cursor:`grab`,padding:`4px 8px`}}),(0,$.jsxs)(`div`,{className:gr,children:[g&&(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(we,{}),onClick:t=>{t.stopPropagation(),g([`cd ${e.path}`],e.branch_id)},title:`Open terminal in branch directory`}),m&&(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(C,{}),onClick:t=>{t.stopPropagation(),m(e.branch_id)},title:`Edit branch`}),!k&&!A&&p&&(0,$.jsx)(pt,{tooltip:`Archive or delete branch`,disabled:ee,onClick:()=>I(!0)})]})]})]}),(0,$.jsx)(`div`,{className:gr,style:{marginBottom:8},children:(0,$.jsxs)(G,{size:4,wrap:!0,children:[e.created_by&&(0,$.jsx)(ut,{createdBy:e.created_by,currentUserId:a,userById:i,prefix:`Created by`}),e.issue_url&&(0,$.jsx)(Bt,{issueUrl:e.issue_url,currentRepo:t}),e.pull_request_url&&(0,$.jsx)(jt,{prUrl:e.pull_request_url,currentRepo:t}),(0,$.jsx)(_r,{repo:t,branch:e,onEdit:()=>m?.(e.branch_id),onStartEnvironment:_,onStopEnvironment:v,onViewLogs:y,onNukeEnvironment:b,connectionDisabled:ee,showNukeEnvironment:!1})]})}),e.notes&&(0,$.jsxs)(`div`,{className:`nodrag`,style:{marginBottom:8},children:[(0,$.jsx)(`div`,{className:`markdown-compact`,style:{maxHeight:L?`none`:`120px`,overflow:`hidden`,transition:`max-height 0.3s ease`},children:(0,$.jsx)(mt,{content:xe,style:{fontSize:12,color:P.colorTextSecondary,lineHeight:`1.5`},compact:!1,showControls:!1})}),W&&(0,$.jsx)(Y,{type:`link`,size:`small`,onClick:e=>{e.stopPropagation(),ne(!L)},style:{padding:0,height:`auto`,fontSize:12,color:P.colorLink},children:L?`See less`:`See more`})]}),(0,$.jsx)(`div`,{className:gr,children:(0,$.jsx)(ei,{branch:e,sessions:n,userById:i,currentUserId:a,selectedSessionId:o,onSessionClick:s,onCreateSession:u,onForkSession:d,onSpawnSession:f,onOpenSessionSettings:h,peekedSessionIds:ie,onTogglePeekSession:!k&&!A?ce:void 0,defaultExpanded:O,mode:`card`,client:M})}),!k&&!A&&ae.length>0&&(0,$.jsx)(Er,{client:M,sessions:ae,userById:i,currentUserId:a,branchName:e.name,onCloseSession:ce}),(0,$.jsx)(ft,{open:F,branch:e,sessionCount:n.length,environmentRunning:e.environment_instance?.status===`running`,onConfirm:t=>{p?.(e.branch_id,t),I(!1)},onCancel:()=>I(!1)})]})});function ii(e){let{client:t,boardId:n,reactFlowInstance:r,enabled:i=!0}=e,[a,o]=(0,Q.useState)(typeof document<`u`?!document.hidden:!0);(0,Q.useEffect)(()=>{if(typeof document>`u`)return;let e=()=>o(!document.hidden);return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]);let s=(0,Q.useRef)(a);s.current=a;let c=(0,Q.useRef)(0),l=(0,Q.useRef)(null),u=(0,Q.useRef)(null),d=(0,Q.useCallback)((e,r)=>{if(!t?.io||!n||!i||!s.current)return;u.current={x:e,y:r};let a=Date.now(),o=a-c.current;if(o<sr.CURSOR_EMIT_THROTTLE_MS){l.current||=setTimeout(()=>{if(l.current=null,u.current){let e=u.current,r={boardId:n,x:e.x,y:e.y,timestamp:Date.now()};t.io.emit(`cursor-move`,r),c.current=Date.now()}},sr.CURSOR_EMIT_THROTTLE_MS-o);return}let d={boardId:n,x:e,y:r,timestamp:a};t.io.emit(`cursor-move`,d),c.current=a},[t,n,i]);return(0,Q.useEffect)(()=>{if(!i||!a||!t?.io||!n||!r)return;let e=e=>{let t=r.screenToFlowPosition({x:e.clientX,y:e.clientY});d(t.x,t.y)},o=()=>{t?.io&&n&&t.io.emit(`cursor-leave`,{boardId:n})};return window.addEventListener(`mousemove`,e),()=>{window.removeEventListener(`mousemove`,e),o(),l.current&&=(clearTimeout(l.current),null)}},[t,n,r,i,a,d]),{emitCursorPosition:d}}var ai=[/url\s*\(/gi,/expression\s*\(/gi,/javascript\s*:/gi,/behavior\s*:/gi,/-moz-binding\s*:/gi,/@import/gi,/@charset/gi,/@font-face/gi,/@namespace/gi,/\\00/gi];function oi(e){for(let t of ai)if(t.lastIndex=0,t.test(e))return t.source;return null}function si(e,t){if(!e?.trim())return``;let n=e;for(let e of ai)e.lastIndex=0,n=n.replace(e,`/* blocked */`);let r=[],i=n.replace(/@keyframes\s+[\w-]+\s*\{[^{}]*(?:\{[^{}]*\}[^{}]*)*\}/gi,e=>(oi(e)||r.push(e),``)).trim(),a=[];i&&(/[^{}]+\{/.test(i)?a.push(`${t} { }\n${i.replace(/([^{}]+)\{/g,`${t} $1{`)}`):a.push(`${t} {\n${i}\n}`));for(let e of r)a.push(e);return a.join(`
2
+
3
+ `)}function ci(e){try{let t=new URL(e);return[`http:`,`https:`,`mailto:`].includes(t.protocol)}catch{return!1}}var li=100,ui=380,di=Q.memo(({data:e})=>{let{token:t}=D.useToken(),{card:n,isPinned:a,zoneName:o,zoneColor:s,onClick:l,onUnpin:u}=e,[d,f]=(0,Q.useState)(!1),p=n.effective_color||t.colorBorder,m=n.effective_emoji,h=t.colorBgContainer!==`#ffffff`,g=(0,Q.useMemo)(()=>{if(s)return at(s,h,50,50)},[s,h]),_=(0,Q.useMemo)(()=>{if(!n.description)return``;if(n.description.length<=li||d)return n.description;let e=n.description.slice(0,li),t=e.lastIndexOf(` `);return`${t>li*.7?e.slice(0,t):e}...`},[n.description,d]),v=(n.description?.length??0)>li;return(0,$.jsxs)(`div`,{onClick:()=>l?.(n.card_id),style:{width:ui,background:t.colorBgContainer,border:a&&s?`1px solid ${s}`:`1px solid ${t.colorBorderSecondary}`,borderLeft:`4px solid ${a&&s?s:p}`,borderRadius:t.borderRadiusLG,cursor:`pointer`,overflow:`hidden`,boxShadow:t.boxShadowTertiary,transition:`box-shadow 0.2s, border-color 0.3s`},children:[(0,$.jsxs)(`div`,{className:mr,style:{display:`flex`,alignItems:`center`,gap:8,padding:`10px 12px`,cursor:`grab`,borderBottom:n.description||n.note?`1px solid ${t.colorBorderSecondary}`:`none`},children:[m&&(0,$.jsx)(`span`,{style:{fontSize:16,flexShrink:0},children:m}),(0,$.jsx)(r.Text,{strong:!0,style:{flex:1,fontSize:13,lineHeight:`1.3`,overflow:`hidden`,textOverflow:`ellipsis`,display:`-webkit-box`,WebkitLineClamp:2,WebkitBoxOrient:`vertical`},children:n.title}),n.url&&ci(n.url)&&(0,$.jsx)(`a`,{href:n.url,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),className:`nodrag`,style:{color:t.colorTextSecondary,flexShrink:0},children:(0,$.jsx)(i,{style:{fontSize:12}})}),a&&(0,$.jsx)(S,{title:o?`Pinned to [${o}] zone (click to unpin)`:`Pinned (click to unpin)`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(c,{style:{color:g}}),onClick:e=>{e.stopPropagation(),u?.(n.card_id)},className:`nodrag`,style:{flexShrink:0,width:24,height:24,padding:0}})}),(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(ve,{}),className:mr,style:{cursor:`grab`,flexShrink:0,width:24,height:24,padding:0}})]}),n.description&&(0,$.jsxs)(`div`,{className:`nodrag`,style:{padding:`8px 12px`,borderBottom:n.note?`1px solid ${t.colorBorderSecondary}`:`none`},children:[(0,$.jsx)(r.Text,{style:{fontSize:12,color:t.colorTextSecondary,lineHeight:`1.5`,whiteSpace:`pre-wrap`,wordBreak:`break-word`},children:_}),v&&(0,$.jsx)(Y,{type:`link`,size:`small`,onClick:e=>{e.stopPropagation(),f(!d)},style:{padding:0,height:`auto`,fontSize:11,color:t.colorLink,marginLeft:4},children:d?`less`:`more`})]}),n.note&&(0,$.jsx)(`div`,{style:{padding:`8px 12px`,background:t.colorFillQuaternary,borderTop:n.description?`none`:`1px solid ${t.colorBorderSecondary}`},children:(0,$.jsx)(r.Text,{style:{fontSize:12,color:t.colorText,lineHeight:`1.5`,whiteSpace:`pre-wrap`,wordBreak:`break-word`},children:n.note})})]})}),{useToken:fi}=D,pi=120,mi=({task:e,onClick:t,compact:n=!1})=>{let{token:i}=fi(),a=e.message_range.end_index-e.message_range.start_index+1,o=!!e.report,s=e.git_state.sha_at_start,c=e.git_state.sha_at_end,l=c&&c!==`unknown`&&c!==s,{cleanSha:d,isDirty:f}=It(c&&c!==`unknown`?c:s),p=e.full_prompt||`Untitled task`,m=p.length>pi?`${p.substring(0,pi)}...`:p;return(0,$.jsx)(`div`,{onClick:t,style:{cursor:`pointer`,padding:n?`4px 8px`:`8px 12px`,borderRadius:i.borderRadius},children:(0,$.jsxs)(`div`,{style:{width:`100%`},children:[(0,$.jsx)(`div`,{style:{marginBottom:4},children:(0,$.jsxs)(G,{size:8,children:[(0,$.jsx)(S,{title:(0,$.jsx)(`div`,{style:{whiteSpace:`pre-wrap`},children:e.full_prompt}),children:(0,$.jsx)(`span`,{children:(0,$.jsx)(Ut,{status:e.status,size:16})})}),(0,$.jsx)(r.Text,{style:{fontSize:n?13:14,fontWeight:500},children:m})]})}),(0,$.jsx)(`div`,{style:{marginLeft:n?20:24},children:(0,$.jsxs)(G,{size:4,wrap:!0,children:[(0,$.jsx)(Dt,{icon:(0,$.jsx)(u,{}),color:`default`,children:a}),(0,$.jsx)(Dt,{icon:(0,$.jsx)(ge,{}),color:`default`,children:e.tool_use_count}),o&&(0,$.jsx)(Dt,{icon:(0,$.jsx)(K,{}),color:`blue`,children:`report`}),!n&&d&&(0,$.jsx)(S,{title:l?`Git state changed during task`:f?`Uncommitted changes`:`Clean git state`,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(Dt,{icon:(0,$.jsx)(F,{}),color:f?`orange`:`purple`,children:(0,$.jsxs)(G,{size:4,children:[(0,$.jsxs)(r.Text,{style:{fontSize:11,fontFamily:`monospace`},children:[l&&`β†’ `,d.substring(0,7)]}),f&&(0,$.jsx)(C,{style:{fontSize:10}})]})})})})]})})]})})},hi=560,gi=({session:e,tasks:n=[],userById:i,currentUserId:o,onTaskClick:s,onSessionClick:l,onDelete:u,onOpenSettings:d,onUnpin:f,isPinned:p=!1,zoneName:m,zoneColor:h,defaultExpanded:g=!0})=>{let{modal:_}=Ie.useApp(),v=ht(),y=()=>{_.confirm({title:`Delete Session`,content:`Are you sure you want to delete this session? This action cannot be undone.`,okText:`Delete`,okType:`danger`,cancelText:`Cancel`,onOk:()=>{u?.(e.session_id)}})},b=n.slice(-5),x=n.length-b.length,S=!!e.genealogy.forked_from_session_id,w=!!e.genealogy.parent_session_id,{cleanSha:T,isDirty:E}=It(e.git_state.current_sha),D=(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:[(0,$.jsx)(r.Text,{strong:!0,children:`Tasks`}),n.length>5&&(0,$.jsxs)(r.Text,{type:`secondary`,style:{fontSize:12},children:[`(showing latest 5 of `,n.length,`)`]})]}),O=(0,$.jsxs)(`div`,{children:[x>0&&(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsxs)(Y,{type:`text`,icon:(0,$.jsx)(he,{}),size:`small`,onClick:e=>{e.stopPropagation(),l?.()},children:[`See `,x,` more `,x===1?`task`:`tasks`]})}),b.map(e=>(0,$.jsx)(mi,{task:e,onClick:()=>s?.(e.task_id)},e.task_id))]});return(0,$.jsxs)(oe,{style:{maxWidth:hi,...p&&h?{borderColor:h,borderWidth:1}:{}},styles:{body:{padding:16}},children:[(0,$.jsxs)(`div`,{className:mr,style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:12},children:[(0,$.jsxs)(G,{size:8,align:`center`,children:[(0,$.jsx)(`div`,{className:mr,style:{display:`flex`,alignItems:`center`},children:(0,$.jsx)(Rt,{tool:e.agentic_tool,size:32})}),(0,$.jsx)(r.Text,{strong:!0,children:e.agentic_tool}),(0,$.jsx)(Ut,{status:e.status,size:16})]}),(0,$.jsxs)(G,{size:4,children:[(0,$.jsxs)(`div`,{className:gr,children:[S&&e.fork_origin===`btw`?(0,$.jsx)(Dt,{icon:(0,$.jsx)(t,{}),color:`orange`,children:`BTW`}):S?(0,$.jsx)(Dt,{icon:(0,$.jsx)(t,{}),color:`cyan`,children:`FORK`}):null,w&&(0,$.jsx)(Dt,{icon:(0,$.jsx)(Ae,{}),color:`purple`,children:`SPAWN`}),p&&m&&(0,$.jsx)(Dt,{icon:(0,$.jsx)(c,{}),color:`blue`,onClick:t=>{t.stopPropagation(),f?.(e.session_id)},style:{cursor:`pointer`},title:`Pinned to ${m} (click to unpin)`,children:m})]}),(0,$.jsx)(Y,{type:`text`,icon:(0,$.jsx)(ve,{style:{fontSize:16}}),className:mr,title:`Drag to reposition`,style:{cursor:`grab`,padding:`4px 8px`}}),(0,$.jsxs)(`div`,{className:gr,children:[l&&(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(q,{}),onClick:e=>{e.stopPropagation(),l()},title:`Open in drawer`}),d&&(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(ae,{}),onClick:t=>{t.stopPropagation(),d(e.session_id)},title:`Session settings`}),u&&(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(Te,{}),disabled:v,onClick:e=>{e.stopPropagation(),y()},title:`Delete session`,danger:!0})]})]})]}),(0,$.jsxs)(`div`,{className:gr,children:[(e.title||e.description)&&(0,$.jsx)(r.Text,{strong:!0,style:{fontSize:16,marginBottom:8,...Lt(2)},children:dt(e)}),e.created_by&&(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsx)(ut,{createdBy:e.created_by,currentUserId:o,userById:i,prefix:`Created by`})}),(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsxs)(G,{size:4,children:[(0,$.jsxs)(r.Text,{type:`secondary`,children:[`πŸ“ `,e.git_state.ref,` @ `,T.substring(0,7)]}),E&&(0,$.jsx)(Dt,{icon:(0,$.jsx)(C,{}),color:`orange`,style:{fontSize:11},children:`uncommitted`})]})})]}),(0,$.jsxs)(`div`,{className:gr,children:[(0,$.jsx)(a,{defaultActiveKey:g?[`tasks`]:[],items:[{key:`tasks`,label:D,children:O}],ghost:!0,style:{marginTop:8}}),(0,$.jsx)(`div`,{style:{marginTop:12}})]})]})},_i=300,vi=200,yi=({data:e,selected:t})=>{let{token:n}=D.useToken(),[i,a]=(0,Q.useState)(!1),o=(0,Q.useRef)(null),s=(0,Q.useCallback)((t,n)=>{let r={type:`app`,x:0,y:0,width:Math.max(n.width,_i),height:Math.max(n.height,vi),title:e.title,description:e.description,template:e.template,files:e.files,dependencies:e.dependencies,entryFile:e.entryFile,showEditor:e.showEditor,showConsole:e.showConsole};e.onUpdate(e.objectId,r)},[e]),c=(0,Q.useCallback)(()=>{a(e=>!e)},[]),l=e.height-40-16;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ln,{isVisible:t,minWidth:_i,minHeight:vi,onResize:s,lineStyle:{borderColor:n.colorPrimary},handleStyle:{backgroundColor:n.colorPrimary,width:8,height:8}}),(0,$.jsx)(oe,{style:{width:e.width,height:e.height,background:n.colorBgContainer,border:`2px solid ${t?n.colorPrimary:n.colorBorder}`,borderRadius:8,boxShadow:n.boxShadowSecondary,overflow:`hidden`,display:`flex`,flexDirection:`column`},styles:{body:{padding:0,flex:1,display:`flex`,flexDirection:`column`,overflow:`hidden`}},size:`small`,title:(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,$.jsx)(r.Text,{style:{fontSize:12,fontWeight:600,maxWidth:e.width-120},ellipsis:!0,children:e.title}),(0,$.jsxs)(`div`,{style:{display:`flex`,gap:2},children:[(0,$.jsx)(S,{title:i?`Exit interact mode`:`Interact with app`,children:(0,$.jsx)(Y,{type:i?`primary`:`text`,size:`small`,icon:i?(0,$.jsx)(k,{}):(0,$.jsx)(we,{}),onClick:e=>{e.stopPropagation(),c()}})}),e.onDelete&&(0,$.jsx)(Y,{type:`text`,size:`small`,danger:!0,icon:(0,$.jsx)(w,{}),onClick:t=>{t.stopPropagation(),e.onDelete?.(e.objectId)}})]})]}),children:(0,$.jsx)(`div`,{ref:o,className:i?`nodrag nopan nowheel`:void 0,style:{flex:1,position:`relative`,pointerEvents:i?`auto`:`none`},children:(0,$.jsx)(tt,{template:e.template,files:fn(e.files),customSetup:e.dependencies?{dependencies:e.dependencies}:void 0,options:{initMode:`user-visible`,...e.entryFile?{activeFile:e.entryFile}:{}},children:(0,$.jsx)(nt,{style:{height:l>0?l:200,border:`none`},showNavigator:!1,showOpenInCodeSandbox:!1,showRefreshButton:i})})})})]})},bi=e(et(),1);mn();var xi=300,Si=200,Ci=new Set([`agor.config.js`,`agor.artifact.json`,`.env`]);function wi({artifactId:e}){let{sandpack:t}=X(),{showError:n}=$e(),r=(0,Q.useRef)(t);return r.current=t,(0,Q.useEffect)(()=>{let t=()=>{let e=r.current,t={};for(let[n,r]of Object.entries(e.files)){let e=n.startsWith(`/`)?n.slice(1):n;Ci.has(e)||(t[e]={content:r.code,isBinary:!1})}let i={files:t};e.environment&&(i.template=e.environment);let a=(0,bi.compressToBase64)(JSON.stringify(i)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``),o=document.createElement(`form`);o.method=`POST`,o.action=`https://codesandbox.io/api/v1/sandboxes/define`,o.target=`_blank`;let s=document.createElement(`input`);if(s.type=`hidden`,s.name=`parameters`,s.value=a,o.appendChild(s),e.environment){let t=document.createElement(`input`);t.type=`hidden`,t.name=`environment`,t.value=e.environment,o.appendChild(t)}document.body.appendChild(o);try{o.submit()}catch(e){n(`Open in CodeSandbox failed: ${e instanceof Error?e.message:String(e)}`)}finally{o.remove()}},i=`agor:export-codesandbox-${e}`;return window.addEventListener(i,t),()=>window.removeEventListener(i,t)},[e,n]),null}var Ti=({data:e,selected:t})=>{let{token:n}=D.useToken(),[i,a]=(0,Q.useState)(!1),[o,s]=(0,Q.useState)(null),[c,l]=(0,Q.useState)(!0),[d,f]=(0,Q.useState)(null),[p,h]=(0,Q.useState)(!1),g=(0,Q.useRef)(null),_=(0,Q.useCallback)(async()=>{try{l(!0),f(null);let t=await fetch(`${lt()}/artifacts/${e.artifactId}/payload`,{headers:_n()});if(!t.ok)throw Error(`Failed to load artifact: ${t.statusText}`);let n=await t.json();g.current=n.content_hash,s(n)}catch(e){f(e instanceof Error?e.message:String(e))}finally{l(!1)}},[e.artifactId]);(0,Q.useEffect)(()=>{_()},[_]),(0,Q.useEffect)(()=>{let t=t=>{let{artifactId:n,contentHash:r}=t.detail;n===e.artifactId&&r!==g.current&&_()};return window.addEventListener(`agor:artifact-patched`,t),()=>window.removeEventListener(`agor:artifact-patched`,t)},[e.artifactId,_]);let v=(0,Q.useCallback)((t,n)=>{let r={type:`artifact`,x:0,y:0,width:Math.max(n.width,xi),height:Math.max(n.height,Si),artifact_id:e.artifactId};e.onUpdate(e.objectId,r)},[e]),b=(0,Q.useCallback)(()=>{window.dispatchEvent(new CustomEvent(`agor:export-codesandbox-${e.artifactId}`))},[e.artifactId]),x=(0,Q.useCallback)(()=>{o?.source_session_id&&window.open(St(Be(o.source_session_id)),`_blank`,`noopener,noreferrer`)},[o?.source_session_id]),C=(0,Q.useCallback)(()=>{window.open(St(Ke(e.artifactId)),`_blank`,`noopener,noreferrer`)},[e.artifactId]),E=`Artifact ${Xe(e.artifactId)}`,O=d?`error`:c?`processing`:`success`,A=d?`Failed to load`:c?`Reloading...`:`Live`,j=o?hn(o,()=>h(!0),{className:`nodrag nopan`}):null,M=!!o&&!d,N=(o?.required_env_vars?.length??0)>0,P=Object.keys(o?.agor_grants??{}).length>0,F=M&&o?.trust_state===`untrusted`&&(N||P),I=(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,minWidth:0},children:[(0,$.jsx)(T,{status:O,title:A}),(0,$.jsx)(r.Text,{style:{fontSize:12,fontWeight:600,maxWidth:e.width-200},ellipsis:!0,children:o?.name??E}),j]}),(0,$.jsxs)(`div`,{className:`nodrag nopan`,style:{display:`flex`,gap:2},children:[F&&(0,$.jsx)(S,{title:`Trust this artifact to inject secrets`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,danger:!0,icon:(0,$.jsx)(Fe,{}),onClick:e=>{e.stopPropagation(),h(!0)}})}),o?.source_session_id&&(0,$.jsx)(S,{title:`Open session that created this artifact`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(u,{}),onClick:e=>{e.stopPropagation(),x()}})}),(0,$.jsx)(S,{title:`Open fullscreen`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(ne,{}),onClick:e=>{e.stopPropagation(),C()}})}),M&&(0,$.jsx)(S,{title:`Open in CodeSandbox (eject β€” daemon-injected env vars/AGOR_TOKEN won't carry over)`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(ie,{}),onClick:e=>{e.stopPropagation(),b()}})}),(0,$.jsx)(S,{title:`Reload`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(m,{spin:c}),onClick:e=>{e.stopPropagation(),_()}})}),M&&(0,$.jsx)(S,{title:i?`Exit interact mode`:`Interact with app`,children:(0,$.jsx)(Y,{type:i?`primary`:`text`,size:`small`,icon:i?(0,$.jsx)(de,{}):(0,$.jsx)(k,{}),onClick:e=>{e.stopPropagation(),a(e=>!e)}})}),e.onDeleteArtifact&&(0,$.jsx)(y,{title:`Delete artifact?`,description:`This will delete "${o?.name??E}" and its files.`,onConfirm:t=>{t?.stopPropagation(),e.onDeleteArtifact?.(e.objectId,e.artifactId)},onCancel:e=>e?.stopPropagation(),okText:`Delete`,cancelText:`Cancel`,okButtonProps:{danger:!0},children:(0,$.jsx)(S,{title:`Delete artifact`,children:(0,$.jsx)(Y,{type:`text`,size:`small`,danger:!0,icon:(0,$.jsx)(w,{}),onClick:e=>e.stopPropagation()})})})]})]}),L=d?n.colorErrorBorder:t?n.colorPrimary:n.colorBorder,R={width:e.width,height:e.height,background:n.colorBgContainer,border:`2px solid ${L}`,borderRadius:8,boxShadow:n.boxShadowSecondary,overflow:`hidden`,display:`flex`,flexDirection:`column`,...e.isActiveUrlTarget?{outline:`2px dashed ${n.colorTextBase}`,outlineOffset:-3}:{}},z=(0,$.jsx)(ln,{isVisible:t,minWidth:xi,minHeight:Si,onResize:v,lineStyle:{borderColor:n.colorPrimary},handleStyle:{backgroundColor:n.colorPrimary,width:8,height:8}});if(c&&!o)return(0,$.jsxs)($.Fragment,{children:[z,(0,$.jsx)(oe,{style:R,styles:{body:{padding:0,flex:1,display:`flex`,alignItems:`center`,justifyContent:`center`}},size:`small`,title:I,children:(0,$.jsx)(te,{indicator:(0,$.jsx)(ee,{}),description:`Loading artifact...`})})]});if(d)return(0,$.jsxs)($.Fragment,{children:[z,(0,$.jsxs)(oe,{style:R,styles:{body:{padding:0,flex:1,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:8}},size:`small`,title:I,children:[(0,$.jsx)(be,{style:{fontSize:24,color:n.colorError}}),(0,$.jsx)(r.Text,{type:`danger`,style:{fontSize:12,textAlign:`center`,padding:`0 16px`},children:d}),(0,$.jsx)(Y,{className:`nodrag nopan`,size:`small`,icon:(0,$.jsx)(m,{}),onClick:e=>{e.stopPropagation(),_()},children:`Retry`})]})]});if(!o)return null;let B=o.sandpack_config??{},re=B.options??{},V={...B.customSetup??{},...o.dependencies&&!B.customSetup?.dependencies?{dependencies:o.dependencies}:{}},ae=B.template??o.template,se=o.legacy?.is_legacy?(0,$.jsx)(Ei,{upgradeInstructions:o.legacy.upgrade_instructions}):null;return(0,$.jsxs)($.Fragment,{children:[z,(0,$.jsxs)(oe,{style:R,styles:{body:{padding:0,flex:1,display:`flex`,flexDirection:`column`,overflow:`hidden`}},size:`small`,title:I,children:[(0,$.jsx)(`style`,{children:`
4
+ .artifact-sandpack-wrapper .sp-wrapper,
5
+ .artifact-sandpack-wrapper .sp-layout,
6
+ .artifact-sandpack-wrapper .sp-stack,
7
+ .artifact-sandpack-wrapper .sp-preview,
8
+ .artifact-sandpack-wrapper .sp-preview-container {
9
+ height: 100% !important;
10
+ }
11
+ `}),(0,$.jsxs)(`div`,{className:`artifact-sandpack-wrapper${i?` nodrag nopan nowheel`:``}`,style:{flex:1,position:`relative`,display:`flex`,flexDirection:`column`},children:[se,!i&&(0,$.jsx)(`div`,{style:{position:`absolute`,inset:0,zIndex:1}}),(0,$.jsxs)(tt,{template:ae,files:fn(o.files),customSetup:Object.keys(V).length>0?V:void 0,theme:B.theme,options:{initMode:`user-visible`,...re,...o.entry&&!re.activeFile?{activeFile:o.entry}:{}},children:[(0,$.jsx)(nt,{style:{height:`100%`,border:`none`},showNavigator:!1,showOpenInCodeSandbox:!1,showRefreshButton:i}),(0,$.jsx)(gn,{artifactId:e.artifactId,contentHash:o.runtime_report_hash??o.content_hash}),(0,$.jsx)(dn,{artifactId:e.artifactId,contentHash:o.runtime_report_hash??o.content_hash}),(0,$.jsx)(pn,{artifactId:e.artifactId}),(0,$.jsx)(wi,{artifactId:e.artifactId})]},o.content_hash)]})]}),p&&(0,$.jsx)(vn,{open:p,artifactId:o.artifact_id,name:o.name,files:o.files,requiredEnvVars:o.required_env_vars??[],grants:o.agor_grants??{},onClose:()=>h(!1),onGranted:()=>{h(!1),_()}})]})};function Ei({upgradeInstructions:e}){let{token:t}=D.useToken(),{showSuccess:n,showError:r}=$e();return(0,$.jsx)(v,{type:`warning`,showIcon:!0,icon:(0,$.jsx)(W,{}),className:`nodrag nopan`,style:{borderRadius:0,fontSize:11,padding:`10px 14px`},title:`Legacy artifact β€” won't render correctly`,description:(0,$.jsxs)(`details`,{style:{marginTop:4},children:[(0,$.jsx)(`summary`,{style:{cursor:`pointer`,color:t.colorTextSecondary},children:`Show upgrade prompt for an agent`}),(0,$.jsxs)(`div`,{style:{position:`relative`,marginTop:6},children:[(0,$.jsx)(Y,{type:`text`,size:`small`,icon:(0,$.jsx)(me,{}),onClick:async()=>{await Ye(e)?n(`Upgrade prompt copied β€” paste it to an agent`):r(`Failed to copy β€” select the text manually and copy with the keyboard`)},style:{position:`absolute`,top:4,right:4,zIndex:1,fontSize:11},children:`Copy`}),(0,$.jsx)(`pre`,{style:{whiteSpace:`pre-wrap`,fontSize:10,margin:0,padding:8,paddingRight:64,background:t.colorFillTertiary,borderRadius:4,maxHeight:180,overflow:`auto`,userSelect:`text`,cursor:`text`},children:e})]})]})})}var Di=({data:e})=>{let{token:t}=D.useToken(),{modal:n}=Ie.useApp(),i=!st().canMutate,a=()=>{i||e.onEdit&&e.onEdit(e.objectId,e.content,e.width)},o=()=>{i||!e.onDelete||n.confirm({title:`Delete note?`,content:`This note will be removed from the board.`,okText:`Delete`,okButtonProps:{danger:!0},cancelText:`Cancel`,onOk:()=>e.onDelete?.(e.objectId)})};return(0,$.jsx)(oe,{style:{width:e.width,minHeight:100,background:t.colorBgContainer,border:`2px solid ${t.colorBorder}`,borderRadius:8,boxShadow:t.boxShadowSecondary,cursor:`move`},size:`small`,title:(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,$.jsx)(r.Text,{type:`secondary`,style:{fontSize:12},children:`Markdown Note`}),(0,$.jsxs)(G,{size:2,children:[(0,$.jsx)(Y,{className:`nodrag nopan`,type:`text`,size:`small`,icon:(0,$.jsx)(C,{}),onClick:e=>{e.stopPropagation(),a()},disabled:i,title:`Edit note`}),(0,$.jsx)(Y,{className:`nodrag nopan`,type:`text`,size:`small`,danger:!0,icon:(0,$.jsx)(w,{}),onClick:e=>{e.stopPropagation(),o()},disabled:i,title:`Delete note`})]})]}),styles:{body:{padding:t.sizeUnit*8}},children:(0,$.jsx)(`div`,{className:`markdown-content`,style:{fontSize:t.fontSize,color:t.colorText,lineHeight:1.6},children:(0,$.jsx)(mt,{content:e.content})})})};function Oi(e){let{client:t,boardId:n,enabled:r=!0}=e;(0,Q.useEffect)(()=>{if(!r||!t?.io||!n)return;let e=()=>{t.io.emit(`presence:watch-board`,n)};return e(),t.io.on(`connect`,e),t.on(`authenticated`,e),()=>{t.io.off(`connect`,e),t.off(`authenticated`,e),t.io.emit(`presence:unwatch-board`,n)}},[n,t,r])}var ki=({client:e,boardId:t,users:n,enabled:r=!0,staticCursors:i,staticCursorScale:a=1})=>{let{token:o}=D.useToken(),s=sn();Oi({client:e,boardId:t,enabled:r&&!i});let{remoteCursors:c}=cr({client:e,boardId:t,users:n,enabled:r&&!i}),l=(0,Q.useMemo)(()=>i?i.map(e=>[e.userId,e]):Array.from(c.entries()),[c,i]);return l.length===0?null:(0,$.jsx)(`div`,{style:{position:`absolute`,inset:0,pointerEvents:`none`,zIndex:2e3},children:l.map(([e,t])=>{let{x:n,y:r,user:i}=t,c=`color`in t?t.color:void 0;return(0,$.jsx)(`div`,{style:{position:`absolute`,transform:`translate3d(${n*s.zoom+s.x}px, ${r*s.zoom+s.y}px, 0) scale(${a})`,transformOrigin:`top left`,willChange:`transform`},children:(0,$.jsxs)(`div`,{style:{pointerEvents:`none`,position:`relative`,width:`24px`,height:`24px`},children:[(0,$.jsxs)(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{color:c??o.colorPrimary,filter:`drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3))`},children:[(0,$.jsx)(`title`,{children:`${i.name||i.email}'s cursor`}),(0,$.jsx)(`path`,{d:`M5.5 3.5L18.5 12L11 14L8 20.5L5.5 3.5Z`,fill:`currentColor`,stroke:o.colorBgElevated,strokeWidth:`1.5`,strokeLinejoin:`round`})]}),(0,$.jsxs)(`div`,{style:{position:`absolute`,top:`24px`,left:`12px`,display:`flex`,alignItems:`center`,gap:`4px`,padding:`4px 8px`,borderRadius:`4px`,fontSize:`12px`,whiteSpace:`nowrap`,background:c||o.colorBgElevated,color:c?`#ffffff`:o.colorText,boxShadow:o.boxShadowSecondary},children:[(0,$.jsx)(`span`,{style:{fontSize:`14px`},children:i.emoji||`πŸ‘€`}),(0,$.jsx)(`span`,{style:{fontWeight:500},children:i.name||i.email})]})]})},e)})})},Ai=({board:e,client:t,sessionsByBranch:n,branches:r,boardObjectsForBoard:i,setNodes:a,deletedObjectsRef:o,eraserMode:s=!1,selectedSessionId:c,activeUrlTargetArtifactId:l,onEditMarkdown:u})=>{let d=(0,Q.useRef)(e);d.current=e;let f=(0,Q.useMemo)(()=>e?.objects,[e?.objects?JSON.stringify(e.objects):null]);(0,Q.useMemo)(()=>e?r.filter(t=>t.board_id===e.board_id).map(e=>e.branch_id).flatMap(e=>n.get(e)||[]).map(e=>e.session_id):[],[e,r,n]);let p=(0,Q.useCallback)(async(e,n)=>{let r=d.current;if(!(!r||!t))try{await t.service(`boards`).patch(r.board_id,{_action:`upsertObject`,objectId:e,objectData:n})}catch(e){console.error(`Failed to update object:`,e)}},[t]),m=(0,Q.useCallback)(async(n,r)=>{if(!(!e||!t)){o.current.add(n),a(e=>e.filter(e=>e.id!==n));try{await t.service(`boards`).patch(e.board_id,{_action:`deleteZone`,objectId:n}),setTimeout(()=>{o.current.delete(n)},1e3)}catch(e){console.error(`Failed to delete zone:`,e),o.current.delete(n)}}},[e,t,a,o]),h=(0,Q.useCallback)(async e=>{let n=d.current;if(!(!n||!t)){o.current.add(e),a(t=>t.filter(t=>t.id!==e));try{await t.service(`boards`).patch(n.board_id,{_action:`removeObject`,objectId:e}),setTimeout(()=>{o.current.delete(e)},1e3)}catch(t){console.error(`Failed to delete object:`,t),o.current.delete(e)}}},[t,a,o]),g=(0,Q.useCallback)(async(e,n)=>{if(t){o.current.add(e),a(t=>t.filter(t=>t.id!==e));try{await t.service(`artifacts`).remove(n),setTimeout(()=>{o.current.delete(e)},1e3)}catch(t){console.error(`Failed to delete artifact:`,t),o.current.delete(e)}}},[t,a,o]);return{getBoardObjectNodes:(0,Q.useCallback)(()=>f?Object.entries(f).filter(([,e])=>{let t=typeof e.x==`number`&&typeof e.y==`number`&&!Number.isNaN(e.x)&&!Number.isNaN(e.y);return t||console.warn(`Skipping board object with invalid position:`,e),t}).map(([e,t])=>{if(t.type===`app`)return{id:e,type:`appNode`,position:{x:t.x,y:t.y},selectable:!0,zIndex:400,className:s?`eraser-mode`:void 0,data:{objectId:e,title:t.title,description:t.description,template:t.template,files:t.files,dependencies:t.dependencies,entryFile:t.entryFile,showEditor:t.showEditor,showConsole:t.showConsole,width:t.width,height:t.height,onUpdate:p,onDelete:h}};if(t.type===`artifact`)return{id:e,type:`artifactNode`,position:{x:t.x,y:t.y},selectable:!0,zIndex:400,className:s?`eraser-mode`:void 0,data:{objectId:e,artifactId:t.artifact_id,width:t.width,height:t.height,isActiveUrlTarget:t.artifact_id===l,onUpdate:p,onDeleteArtifact:g}};if(t.type===`markdown`)return{id:e,type:`markdown`,position:{x:t.x,y:t.y},selectable:!0,zIndex:300,className:s?`eraser-mode`:void 0,data:{objectId:e,content:t.content,width:t.width,onUpdate:p,onEdit:u,onDelete:h}};let r=0;if(t.type===`zone`){for(let t of i)if(t.zone_id===e){let e=t.branch_id&&n.get(t.branch_id)||[];r+=e.length}}let a=t.type===`zone`?t.locked:!1;return{id:e,type:`zone`,position:{x:t.x,y:t.y},...a?{draggable:!1}:{},zIndex:100,className:s?`eraser-mode`:void 0,width:t.width,height:t.height,style:{width:t.width,height:t.height},data:{objectId:e,label:t.type===`zone`?t.label:``,width:t.width,height:t.height,borderColor:t.type===`zone`?t.borderColor:void 0,backgroundColor:t.type===`zone`?t.backgroundColor:void 0,color:t.color,status:t.type===`zone`?t.status:void 0,locked:a,x:t.x,y:t.y,trigger:t.type===`zone`?t.trigger:void 0,sessionCount:r,onUpdate:p,onDelete:m}}}):[],[f,i,n,p,m,h,g,s,l,u]),addZoneNode:(0,Q.useCallback)(async(e,n)=>{let r=d.current;if(!r||!t)return;let i=`zone-${Date.now()}`;a(t=>[...t,{id:i,type:`zone`,position:{x:e,y:n},zIndex:100,style:{width:400,height:600},data:{objectId:i,label:`New Zone`,width:400,height:600,color:void 0,onUpdate:p}}]);try{await t.service(`boards`).patch(r.board_id,{_action:`upsertObject`,objectId:i,objectData:{type:`zone`,x:e,y:n,width:400,height:600,label:`New Zone`}})}catch(e){console.error(`Failed to add zone node:`,e),a(e=>e.filter(e=>e.id!==i))}},[t,a,p]),deleteObject:h,deleteZone:m,batchUpdateObjectPositions:(0,Q.useCallback)(async e=>{let n=d.current;if(!(!n||!t||Object.keys(e).length===0))try{let r={};for(let[t,i]of Object.entries(e)){if(o.current.has(t))continue;let e=n.objects?.[t];e&&(r[t]={...e,x:i.x,y:i.y})}if(Object.keys(r).length===0)return;await t.service(`boards`).patch(n.board_id,{_action:`batchUpsertObjects`,objects:r})}catch(e){console.error(`Failed to persist object positions:`,e)}},[t,o])}};function ji(e,t){if(e.positionAbsolute)return{x:e.positionAbsolute.x,y:e.positionAbsolute.y};if(e.parentId){let n=t.find(t=>t.id===e.parentId);if(n){let r=ji(n,t);return{x:r.x+e.position.x,y:r.y+e.position.y}}}return{x:e.position.x,y:e.position.y}}function Mi(e,t){return e.positionAbsolute?{x:e.positionAbsolute.x,y:e.positionAbsolute.y}:ji(e,t)}function Ni(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Pi(e,t){return{x:e.x+t.x,y:e.y+t.y}}function Fi(e,t){return t?Ni(e,t.position):e}function Ii(e,t){let n=t.filter(n=>{if(n.type!==`zone`&&n.type!==`branchNode`)return!1;let r=n,i=r.measured?.width||n.width||(typeof n.style?.width==`number`?n.style.width:0),a=r.measured?.height||n.height||(typeof n.style?.height==`number`?n.style.height:0),{x:o,y:s}=ji(n,t);return e.x>=o&&e.x<=o+i&&e.y>=s&&e.y<=s+a});return{branchNode:n.find(e=>e.type===`branchNode`),zoneNode:n.find(e=>e.type===`zone`)}}function Li(e,t){if(!t)return null;for(let[n,r]of Object.entries(t))if(r.type===`zone`&&e.x>=r.x&&e.x<=r.x+r.width&&e.y>=r.y&&e.y<=r.y+r.height)return{zoneId:n,zoneData:r};return null}function Ri(e,t){let n=t?.objects?.[e];return{parentId:`zone-${e}`,parentLabel:n?.type===`zone`?`πŸ“ ${n.label}`:void 0,parentColor:n?.type===`zone`?n.color:void 0}}function zi(e,t){let n=t.find(t=>t.branch_id===e);return{parentId:e,parentLabel:n?`🌳 ${n.name}`:void 0,parentColor:void 0}}function Bi(e,t){let n=new Set(e.map(e=>e.id)),r=!1,i=e.map(e=>e.parentId&&!n.has(e.parentId)?(r=!0,t?.onOrphan?.(e,e.parentId),{...e,parentId:void 0}):e);return r?i:e}function Vi(e){return e?.type===`zone`&&Number.isFinite(e.x)&&Number.isFinite(e.y)&&Number.isFinite(e.width)&&Number.isFinite(e.height)}function Hi(e,t,n){if(!e)return;let r=t?.[e];if(!r){n?.onInvalid?.(n.entityId,e,`missing zone object`);return}if(!Vi(r)){n?.onInvalid?.(n.entityId,e,`zone object is not renderable`);return}return e}async function Ui(e,t,n={},r=`empty`){if(!t||typeof t!=`string`)return``;try{return(await e.service(`templates`).create({template:t,context:n,onError:r})).rendered}catch(e){return console.error(`Template render failed:`,e),r===`raw`?t:``}}var Wi=({open:e,onCancel:t,client:n,branchId:i,branch:s,sessionsByBranch:c,zoneName:l,trigger:u,boardName:d,boardDescription:f,boardCustomContext:p,availableAgents:m,mcpServerById:h,currentUser:_,onExecute:y})=>{let[b]=J.useForm(),[x,S]=(0,Q.useState)(`create_new`),[C,w]=(0,Q.useState)(`claude-code`),[T,D]=(0,Q.useState)(``),[O,k]=(0,Q.useState)(`prompt`),[A,j]=(0,Q.useState)(``),[M,N]=(0,Q.useState)(!0),[P,ee]=(0,Q.useState)({}),F=(0,Q.useMemo)(()=>c.get(i)||[],[c,i]),I=(0,Q.useMemo)(()=>{if(F.length===0)return``;let e=F.filter(e=>e.status===`running`);return e.length>0?e.sort((e,t)=>new Date(t.last_updated||t.created_at).getTime()-new Date(e.last_updated||e.created_at).getTime())[0].session_id:F.sort((e,t)=>new Date(t.last_updated||t.created_at).getTime()-new Date(e.last_updated||e.created_at).getTime())[0].session_id},[F]),L=(0,Q.useMemo)(()=>F.find(e=>e.session_id===T),[T,F]);return(0,Q.useEffect)(()=>{e&&(S(F.length>0?`reuse_existing`:`create_new`),D(I),k(`prompt`),b.resetFields(),ee({}))},[e,I,b,F.length]),(0,Q.useEffect)(()=>{if(x===`create_new`&&C){let e=F.length>0?[...F].sort((e,t)=>new Date(t.last_updated||t.created_at).getTime()-new Date(e.last_updated||e.created_at).getTime())[0]:null,t=_?.default_agentic_config?.[C],n=s?.mcp_server_ids&&s.mcp_server_ids.length>0?s.mcp_server_ids:t?.mcpServerIds||[],r={permissionMode:e?.permission_config?.mode||t?.permissionMode,modelConfig:e?.model_config||t?.modelConfig,mcpServerIds:n};b.setFieldsValue(r),ee(r)}},[x,C,_,F,b,s?.mcp_server_ids]),(0,Q.useEffect)(()=>{x===`reuse_existing`&&L&&b.setFieldsValue({agent:L.agentic_tool,permissionMode:L.permission_config?.mode,modelConfig:L.model_config})},[x,L,b]),(0,Q.useEffect)(()=>{let e=!1;if(!n){j(u.template),N(!1);return}let t=x===`reuse_existing`&&T?F.find(e=>e.session_id===T):void 0,r=Ze({branch:s,board:{name:d,description:f,custom_context:p},zone:{label:l},session:t?{description:t.description,custom_context:t.custom_context}:void 0});return N(!0),Ui(n,u.template,r,`raw`).then(t=>{e||(j(t),N(!1))}),()=>{e=!0}},[n,u.template,s,d,f,p,l,x,T,F]),(0,$.jsx)(Ee,{title:`Zone Trigger: ${l}`,open:e,onCancel:t,onOk:async()=>{if(x===`create_new`)await y({sessionId:`new`,action:`prompt`,renderedTemplate:A,agent:C,modelConfig:P.modelConfig,permissionMode:P.permissionMode,mcpServerIds:P.mcpServerIds});else{let e=b.getFieldsValue(!0),t={sessionId:T,action:O,renderedTemplate:A,permissionMode:e.permissionMode||L?.permission_config?.mode};(O===`fork`||O===`spawn`)&&(t.agent=e.agent||L?.agentic_tool,t.modelConfig=e.modelConfig,t.mcpServerIds=e.mcpServerIds),await y(t)}},okText:`Execute Trigger`,okButtonProps:{disabled:M},cancelText:`Cancel`,width:700,children:(0,$.jsxs)(G,{orientation:`vertical`,size:`large`,style:{width:`100%`},children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(o.Group,{value:x,onChange:e=>S(e.target.value),style:{width:`100%`},children:(0,$.jsxs)(G,{orientation:`vertical`,size:`middle`,style:{width:`100%`},children:[(0,$.jsx)(o,{value:`create_new`,children:`Create a new session`}),(0,$.jsx)(o,{value:`reuse_existing`,disabled:F.length===0,children:`Reuse a session`})]})}),F.length===0&&(0,$.jsx)(v,{title:`No existing sessions in this branch`,type:`info`,showIcon:!0,style:{marginTop:12}})]}),x===`reuse_existing`&&(0,$.jsxs)(J,{form:b,layout:`vertical`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(r.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Select Session`}),(0,$.jsx)(E,{value:T,onChange:D,style:{width:`100%`},size:`large`,options:F.map(e=>({value:e.session_id,label:(0,$.jsxs)(`span`,{children:[dt(e,{fallbackChars:50,includeIdFallback:!0}),` `,`(`,e.status,`)`]})}))})]}),(0,$.jsxs)(`div`,{style:{marginTop:24},children:[(0,$.jsx)(r.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Choose Action`}),(0,$.jsx)(o.Group,{value:O,onChange:e=>k(e.target.value),style:{width:`100%`},children:(0,$.jsxs)(G,{orientation:`vertical`,style:{width:`100%`},children:[(0,$.jsx)(o,{value:`prompt`,children:`Prompt - Send message to selected session`}),(0,$.jsx)(o,{value:`fork`,children:`Fork - Fork selected session and send message`}),(0,$.jsx)(o,{value:`spawn`,children:`Spawn - Spawn child session and send message`})]})})]})]}),(0,$.jsxs)(J,{form:b,layout:`vertical`,onValuesChange:e=>{x===`create_new`&&ee(t=>({...t,...e}))},children:[x===`create_new`&&(0,$.jsxs)(`div`,{children:[(0,$.jsx)(r.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Select Agent`}),(0,$.jsx)(Ft,{agents:m,selectedAgentId:C,onSelect:w,columns:2,showHelperText:!1,showComparisonLink:!1})]}),(0,$.jsx)(a,{ghost:!0,destroyOnHidden:!1,defaultActiveKey:[],expandIcon:({isActive:e})=>(0,$.jsx)(g,{rotate:e?180:0}),items:[{key:`agentic-tool-config`,label:(0,$.jsx)(r.Text,{strong:!0,children:x===`create_new`?`Agentic Tool Configuration (optional)`:`Session Configuration (${L?.agentic_tool||`unknown`})`}),children:(0,$.jsxs)(G,{orientation:`vertical`,size:`middle`,style:{width:`100%`},children:[x===`reuse_existing`&&(0,$.jsx)(v,{title:`Showing current configuration. These settings are for reference.`,type:`info`,showIcon:!0}),(0,$.jsx)(gt,{agenticTool:(x===`create_new`?C:L?.agentic_tool)||`claude-code`,mcpServerById:h,showHelpText:!0})]})}],style:{marginTop:16}})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(r.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Prompt (editable)`}),(0,$.jsx)(te,{spinning:M,delay:200,description:`Rendering template…`,children:(0,$.jsx)(R.TextArea,{value:A,onChange:e=>j(e.target.value),rows:8,style:{fontFamily:`monospace`,fontSize:`13px`,lineHeight:`1.5`},placeholder:`Edit the rendered prompt before executing...`})})]})]})})},Gi=[],Ki=Q.memo(({data:e})=>(0,$.jsx)(`div`,{className:`session-node`,children:(0,$.jsx)(gi,{session:e.session,userById:e.userById,currentUserId:e.currentUserId,onTaskClick:e.onTaskClick,onSessionClick:e.onSessionClick,onDelete:e.onDelete,onOpenSettings:e.onOpenSettings,onUnpin:e.onUnpin,isPinned:e.isPinned,zoneName:e.zoneName,zoneColor:e.zoneColor,defaultExpanded:!e.compact})})),qi=Q.memo(({data:e})=>(0,$.jsx)(`div`,{className:`card-node`,children:(0,$.jsx)(di,{data:e})})),Ji={sessionNode:Ki,branchNode:Q.memo(({data:e})=>(0,$.jsx)(`div`,{className:`branch-node`,children:(0,$.jsx)(ri,{branch:e.branch,repo:e.repo,sessions:e.sessions,userById:e.userById,currentUserId:e.currentUserId,selectedSessionId:e.selectedSessionId,isActiveUrlTarget:e.isActiveUrlTarget,onTaskClick:e.onTaskClick,onSessionClick:e.onSessionClick,onCreateSession:e.onCreateSession,onForkSession:e.onForkSession,onSpawnSession:e.onSpawnSession,onArchiveOrDelete:e.onArchiveOrDelete,onOpenSettings:e.onOpenSettings,onOpenSessionSettings:e.onOpenSessionSettings,onOpenTerminal:e.onOpenTerminal,onStartEnvironment:e.onStartEnvironment,onStopEnvironment:e.onStopEnvironment,onViewLogs:e.onViewLogs,onNukeEnvironment:e.onNukeEnvironment,onExecuteScheduleNow:e.onExecuteScheduleNow,onUnpin:e.onUnpin,isPinned:e.isPinned,zoneName:e.zoneName,client:e.client,zoneColor:e.zoneColor,defaultExpanded:!e.compact})}),(e,t)=>{let n=e.data,r=t.data;return n.branch===r.branch&&n.repo===r.repo&&n.sessions===r.sessions&&n.userById===r.userById&&n.currentUserId===r.currentUserId&&n.selectedSessionId===r.selectedSessionId&&n.isActiveUrlTarget===r.isActiveUrlTarget&&n.isPinned===r.isPinned&&n.zoneName===r.zoneName&&n.zoneColor===r.zoneColor&&n.compact===r.compact&&n.client===r.client&&n.onTaskClick===r.onTaskClick&&n.onSessionClick===r.onSessionClick&&n.onCreateSession===r.onCreateSession&&n.onForkSession===r.onForkSession&&n.onSpawnSession===r.onSpawnSession&&n.onArchiveOrDelete===r.onArchiveOrDelete&&n.onOpenSettings===r.onOpenSettings&&n.onOpenSessionSettings===r.onOpenSessionSettings&&n.onOpenTerminal===r.onOpenTerminal&&n.onStartEnvironment===r.onStartEnvironment&&n.onStopEnvironment===r.onStopEnvironment&&n.onViewLogs===r.onViewLogs&&n.onNukeEnvironment===r.onNukeEnvironment&&n.onExecuteScheduleNow===r.onExecuteScheduleNow&&n.onUnpin===r.onUnpin}),cardNode:qi,zone:Zt,comment:$t,markdown:Di,appNode:yi,artifactNode:Ti},Yi=Object.freeze([]),Xi=(0,Q.forwardRef)(({board:e,client:t,sessionById:n,sessionsByBranch:i,repoById:a,branches:o,primaryAssistantId:s,branchById:c,boardObjectsByBoardId:l,commentById:u,cardById:d,userById:f,currentUserId:p,selectedSessionId:m,activeUrlTargetBranchId:h,activeUrlTargetArtifactId:g,availableAgents:_=[],mcpServerById:v=new Map,sessionMcpServerIds:y=new Map,onSessionClick:b,onTaskClick:x,onSessionUpdate:C,onSessionDelete:T,onForkSession:E,onSpawnSession:O,onUpdateSessionMcpServers:k,onOpenSettings:A,onCreateSessionForBranch:N,onOpenBranch:P,onArchiveOrDeleteBranch:ee,onOpenTerminal:F,onStartEnvironment:I,onStopEnvironment:L,onViewLogs:te,onNukeEnvironment:ne,onExecuteScheduleNow:z,onOpenCommentsPanel:B,onCommentHover:re,onCommentSelect:V,staticCursors:ie,staticCursorScale:ae,height:oe=`100vh`},se)=>{let{token:H}=D.useToken(),U=st(),de=Jt[it(H)?`dark`:`light`],me=!!e?.custom_css?.trim(),he=!!e?.background_color?.trim(),ge=me||he,_e=ge?void 0:de,ve=e?.board_id?`board-css-${Xe(e.board_id)}`:``,ye=(0,Q.useMemo)(()=>ge?si((he?`background: ${e?.background_color};\n`:``)+(e?.custom_css||``),`.${ve}`):``,[e?.custom_css,e?.background_color,ve,ge,he]),be=e?.board_id,W=(0,Q.useMemo)(()=>be&&l.get(be)||Yi,[be,l]),xe=(0,Q.useMemo)(()=>{let e=new Map;for(let t of W)t.branch_id&&e.set(t.branch_id,t);return e},[W]),G=(0,Q.useMemo)(()=>{let e=new Map;for(let t of W)t.card_id&&e.set(t.card_id,t);return e},[W]),[Se,Ce]=(0,Q.useState)(null),[we,Te]=(0,Q.useState)(!1),[K,q]=(0,Q.useState)(`select`),[J,Oe]=(0,Q.useState)(null),[ke,Ae]=(0,Q.useState)(null),[je,Me]=(0,Q.useState)(``),[Ne,Fe]=(0,Q.useState)(null),[Ie,Le]=(0,Q.useState)(``),[Re,ze]=(0,Q.useState)(500),[Be,Ve]=(0,Q.useState)(null),He=(0,Q.useRef)(null),Ue=(0,Q.useRef)({}),We=(0,Q.useRef)(!1);(0,Q.useCallback)((t,n=400,r=200)=>{if(!e?.objects)return null;for(let[i,a]of Object.entries(e.objects)){if(a.type!==`zone`)continue;let e=t.x+n/2,o=t.y+r/2;if(e>=a.x&&e<=a.x+a.width&&o>=a.y&&o<=a.y+a.height)return{zoneId:i,zoneData:a}}return null},[e?.objects]);let Ge=(0,Q.useRef)({}),Ke=(0,Q.useRef)(new Set),[qe,Je,Ye]=nn([]),[Ze,Qe,$e]=tn([]),et=(0,Q.useRef)(new Set),tt=(0,Q.useCallback)((e,t)=>{let n=`${e.id}:${t}`;et.current.has(n)||(et.current.add(n),console.warn(`Ignoring stale React Flow parentId on board node`,{nodeId:e.id,nodeType:e.type,missingParentId:t}))},[]),X=(0,Q.useCallback)(e=>{Je(t=>Bi(typeof e==`function`?e(t):e,{onOrphan:tt}))},[Je,tt]),nt=(0,Q.useRef)(null),rt=(0,Q.useRef)({}),at=(0,Q.useCallback)((e,t,n)=>{let r=Z.current?.getNode(e);r&&(Le(t),ze(n),Fe({position:r.position,objectId:e}),q(`markdown`))},[]),{getBoardObjectNodes:ot,batchUpdateObjectPositions:ct,deleteObject:lt}=Ai({board:e,client:t,sessionsByBranch:i,branches:o,boardObjectsForBoard:W,setNodes:X,deletedObjectsRef:Ke,eraserMode:K===`eraser`,selectedSessionId:m,activeUrlTargetArtifactId:g,onEditMarkdown:at}),ut=(0,Q.useMemo)(()=>{if(!e?.objects)return{};let t={};return Object.entries(e.objects).forEach(([e,n])=>{n.type===`zone`&&(t[e]=n.label)}),t},[e]),dt=(0,Q.useRef)(new Set),ft=(0,Q.useCallback)((e,t,n,r)=>{let i=`${e}:${t??`unknown`}:${n}`;dt.current.has(i)||(dt.current.add(i),console.warn(`Ignoring stale board zone reference for ${e} node`,{entityId:t,zoneId:n,reason:r}))},[]),pt=(0,Q.useCallback)(async n=>{if(!e||!t)return;let r=xe.get(n);if(!r?.zone_id)return;let i=e.objects?.[r.zone_id];if(!i){console.error(`Cannot unpin: zone not found`,{zoneId:r.zone_id});return}let a=r.position.x+i.x,o=r.position.y+i.y;Ge.current[n]={x:a,y:o},X(e=>e.map(e=>e.id===n?{...e,position:{x:a,y:o},parentId:void 0}:e)),await t.service(`board-objects`).patch(r.object_id,{position:{x:a,y:o},zone_id:null})},[e,t,xe,X]),ht=(0,Q.useMemo)(()=>{let n=[];return o.forEach((r,o)=>{if(s&&r.branch_id===s)return;let c=xe.get(r.branch_id),l=c?{x:c.position.x,y:c.position.y}:{x:100,y:100+o*500},u=c?.zone_id,d=u?ut[u]||`Unknown Zone`:void 0,g=Hi(u,e?.objects,{entityId:r.branch_id,onInvalid:(e,t,n)=>ft(`branch`,e,t,n)}),_=g?e?.objects?.[g]:void 0,v=_&&_.type===`zone`?_.borderColor||_.color:void 0,y=i.get(r.branch_id)||Gi,S=a.get(r.repo_id);if(!S){console.error(`Repo not found for branch ${r.branch_id}`);return}n.push({id:r.branch_id,type:`branchNode`,dragHandle:hr,position:l,zIndex:500,width:500,height:200,parentId:g,extent:void 0,data:{branch:r,repo:S,sessions:y,userById:f,currentUserId:p,selectedSessionId:m,isActiveUrlTarget:r.branch_id===h,onTaskClick:x,onSessionClick:b,onCreateSession:N,onForkSession:E,onSpawnSession:O,onArchiveOrDelete:ee,onOpenSettings:P,onOpenSessionSettings:A,onOpenTerminal:F,onStartEnvironment:I,onStopEnvironment:L,onViewLogs:te,onNukeEnvironment:ne,onExecuteScheduleNow:z,onUnpin:pt,compact:!1,isPinned:!!g,zoneName:d,zoneColor:v,client:t}})}),n},[e,o,s,xe,a,i,p,m,h,b,x,N,E,O,ee,P,A,F,I,L,te,ne,z,pt,ut,ft,f,t]),gt=(0,Q.useCallback)(e=>{let t=d.get(e);t&&(Ce(t),Te(!0))},[d]),_t=(0,Q.useCallback)(async n=>{if(!e||!t)return;let r=G.get(n);if(!r?.zone_id)return;let i=e.objects?.[r.zone_id];if(!i)return;let a=r.position.x+i.x,o=r.position.y+i.y;Ge.current[`card-${n}`]={x:a,y:o},X(e=>e.map(e=>e.id===`card-${n}`?{...e,position:{x:a,y:o},parentId:void 0}:e)),await t.service(`board-objects`).patch(r.object_id,{position:{x:a,y:o},zone_id:null})},[e,t,G,X]),vt=(0,Q.useMemo)(()=>{let t=[];for(let[n,r]of G.entries()){let i=d.get(n);if(!i||i.archived)continue;let a={x:r.position.x,y:r.position.y},o=r.zone_id,s=o?ut[o]||`Unknown Zone`:void 0,c=Hi(o,e?.objects,{entityId:n,onInvalid:(e,t,n)=>ft(`card`,e,t,n)}),l=c?e?.objects?.[c]:void 0,u=l&&l.type===`zone`?l.borderColor||l.color:void 0;t.push({id:`card-${n}`,type:`cardNode`,dragHandle:hr,position:a,zIndex:500,width:380,height:120,parentId:c,extent:void 0,data:{card:i,isPinned:!!c,zoneName:s,zoneColor:u,onClick:gt,onUnpin:_t}})}return t},[e,G,d,ut,gt,_t,ft]),yt=(0,Q.useMemo)(()=>[],[]),Z=(0,Q.useRef)(null),St=(0,Q.useRef)(null),[Ct,wt]=(0,Q.useState)(!1),Dt=(0,Q.useRef)(null);(0,Q.useImperativeHandle)(se,()=>({getViewportCenter:()=>{if(!Z.current||!St.current)return null;let e=St.current.getBoundingClientRect(),t=e.left+e.width/2,n=e.top+e.height/2;return Z.current.screenToFlowPosition({x:t,y:n})}}),[]);let Ot=(0,Q.useCallback)(e=>{let t=Z.current;if(!t)return!1;let n=t.getNodes(),r=t.getNode(e);if(r||=n.find(t=>t.data?.artifactId===e),!r)return!1;let i=Mi(r,n),a=r.width??500,o=r.height??200;return t.setCenter(i.x+a/2,i.y+o/2,{zoom:t.getZoom(),duration:400}),!0},[]);xt(Ot);let kt=bt();ii({client:t,boardId:e?.board_id,reactFlowInstance:Z.current,enabled:!!e&&!!t&&!ie});let At=(0,Q.useMemo)(()=>{let t=[],n=Tt(u),r=n.filter(t=>(t.position?.absolute||t.position?.relative)&&t.board_id===e?.board_id&&!t.resolved),i=new Map;for(let e of n)e.parent_comment_id&&i.set(e.parent_comment_id,(i.get(e.parent_comment_id)||0)+1);for(let n of r){let r=n.created_by?f.get(n.created_by):void 0,a,s,l,u;if(n.position?.relative){let t=n.position.relative;if(a={x:t.offset_x,y:t.offset_y},t.parent_type===`zone`){let n=`zone-${t.parent_id}`;if(e?.objects?.[n]?.type===`zone`){let n=Ri(t.parent_id,e??void 0);s=n.parentId,l=n.parentLabel,u=n.parentColor}else continue}else if(t.parent_type===`branch`)if(c.get(t.parent_id)){let e=zi(t.parent_id,o);s=e.parentId,l=e.parentLabel,u=e.parentColor}else continue}else if(n.position?.absolute)a=n.position.absolute,s=void 0,l=void 0,u=void 0;else continue;t.push({id:`comment-${n.comment_id}`,type:`comment`,position:a,parentId:s,selectable:!0,zIndex:1e3,data:{comment:n,replyCount:i.get(n.comment_id)||0,user:r,parentLabel:l,parentColor:u,onClick:e=>{V?.(e),B?.()},onHover:e=>{re?.(e)},onLeave:()=>{re?.(null)}}})}return t},[u,e,o,f,c,B,re,V]),jt=(0,Q.useCallback)((e,t,n)=>e.map(r=>{let i=t.find(e=>e.id===r.id),a=Ge.current[r.id];if(a){let t=r.position;if(r.parentId){let i=[...e,...n].find(e=>e.id===r.parentId);i&&(t=Pi(r.position,i.position))}if(Math.abs(a.x-t.x)<=1&&Math.abs(a.y-t.y)<=1)return delete Ge.current[r.id],{...r,selected:i?.selected,zIndex:i?.zIndex??r.zIndex};let o=a;if(r.parentId){let t=[...e,...n].find(e=>e.id===r.parentId);t&&(o=Ni(a,t.position))}return{...r,position:o,selected:i?.selected,zIndex:i?.zIndex??r.zIndex}}return{...r,selected:i?.selected,zIndex:i?.zIndex??r.zIndex}}),[]),Mt=(0,Q.useCallback)(e=>{if(e.type===`comment`)return H.colorText;if(e.type===`markdown`)return`${H.colorText}B3`;if(e.type===`zone`)return`${H.colorText}66`;if(e.type===`cardNode`)return e.data.card?.effective_color||H.colorPrimaryBorder;let t=e.data.session;if(!t)return H.colorPrimaryBorder;switch(t.status){case`running`:return H.colorPrimary;case`completed`:return H.colorSuccess;case`failed`:return H.colorError;default:return H.colorPrimaryBorder}},[H.colorText,H.colorPrimaryBorder,H.colorPrimary,H.colorSuccess,H.colorError]),Nt=(0,Q.useCallback)(e=>({zones:e.filter(e=>e.type===`zone`),markdown:e.filter(e=>e.type===`markdown`),branches:e.filter(e=>e.type===`branchNode`),cards:e.filter(e=>e.type===`cardNode`),apps:e.filter(e=>e.type===`appNode`||e.type===`artifactNode`),comments:e.filter(e=>e.type===`comment`)}),[]),Pt=(0,Q.useCallback)((e,t,n,r,i,a=[])=>Bi([...e,...n,...r,...a,...t,...i],{onOrphan:tt}),[tt]);(0,Q.useEffect)(()=>{if(We.current)return;let e=ot();X(t=>{let{comments:n}=Nt(t),r=e.filter(e=>e.type===`zone`&&!Ke.current.has(e.id)).map(e=>{let n=t.find(t=>t.id===e.id);return{...e,selected:n?.selected}}),i=e.filter(e=>e.type===`markdown`&&!Ke.current.has(e.id)).map(e=>{let n=t.find(t=>t.id===e.id);return{...e,selected:n?.selected}}),a=e.filter(e=>(e.type===`appNode`||e.type===`artifactNode`)&&!Ke.current.has(e.id)).map(e=>{let n=t.find(t=>t.id===e.id);return{...e,selected:n?.selected}});return Pt(r,i,jt(ht,t,r),jt(vt,t,r),n,a)})},[ht,vt,ot,X,Pt,jt,Nt]),(0,Q.useEffect)(()=>{We.current||X(e=>{let{zones:t,markdown:n,branches:r,cards:i,apps:a}=Nt(e);return Pt(t,n,r,i,At.map(e=>{let n=Ge.current[e.id];if(n){let i=e.position;if(e.parentId){let n=[...r,...t].find(t=>t.id===e.parentId);n&&(i=Pi(e.position,n.position))}if(Math.abs(n.x-i.x)<=1&&Math.abs(n.y-i.y)<=1)return delete Ge.current[e.id],e;let a=n;if(e.parentId){let i=[...r,...t].find(t=>t.id===e.parentId);i&&(a=Ni(n,i.position))}return{...e,position:a}}return e}),a)})},[At,X,Pt,Nt]),(0,Q.useEffect)(()=>{Qe(yt)},[yt,Qe]),(0,Q.useEffect)(()=>{if(!Ct||!Z.current||qe.length===0||e?.board_id===Dt.current)return;let t=setTimeout(()=>{let t=kt();if(t&&Ot(t)){Dt.current=e?.board_id??null;return}Z.current?.fitView({padding:.2,minZoom:.1,maxZoom:1,duration:200}),Dt.current=e?.board_id??null},100);return()=>clearTimeout(t)},[Ct,qe.length,e?.board_id,kt,Ot]);let Ft=(0,Q.useCallback)(n=>{n.forEach(n=>{if(n.type===`dimensions`&&n.dimensions){let r=qe.find(e=>e.id===n.id);if(r?.type===`zone`){let i=r.style?.width,a=r.style?.height,o=n.dimensions.width,s=n.dimensions.height;if(i&&a&&Math.abs(Number(i)-o)<1&&Math.abs(Number(a)-s)<1)return;rt.current[n.id]={width:o,height:s},nt.current&&clearTimeout(nt.current),nt.current=setTimeout(async()=>{let n=rt.current;if(rt.current={},!(!e||!t))for(let[r,i]of Object.entries(n)){let n=e.objects?.[r];if(n&&n.type===`zone`){let a={...n,width:i.width,height:i.height};try{await t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:r,objectData:a})}catch(e){console.error(`Failed to persist zone resize:`,e)}}}},500)}}}),Ye(n)},[qe,e,t,Ye]),It=(0,Q.useCallback)(()=>{We.current=!0},[]),Lt=(0,Q.useCallback)((e,t)=>{let n=t.positionAbsolute||t.position;Ge.current[t.id]={x:n.x,y:n.y}},[]),Rt=(0,Q.useCallback)((n,r)=>{if(!e||!t||!Z.current)return;We.current=!1;let i=r.positionAbsolute||r.position;Ge.current[r.id]={x:i.x,y:i.y},Ue.current[r.id]={x:i.x,y:i.y},He.current&&clearTimeout(He.current),He.current=setTimeout(async()=>{let n=Ue.current;Ue.current={};try{let r=[],i={},a={},o={},s=[],c=qe;for(let[l,u]of Object.entries(n)){let n=c.find(e=>e.id===l);if(n?.type===`zone`)i[l]=u;else if(n?.type===`markdown`)a[l]=u;else if(n?.type===`artifactNode`)o[l]=u;else if(n?.type===`comment`){let e=l.replace(`comment-`,``),t=u,{branchNode:n,zoneNode:r}=Ii(t,c),i,a,o;n?(i=n.id,a=`branch`,o=n.id):r&&(i=r.id.replace(`zone-`,``),a=`zone`,o=r.id),s.push({comment_id:e,position:t,parentId:i,parentType:a,newReactFlowParentId:o})}else if(n?.type===`cardNode`){let r=l.replace(`card-`,``),i=u,a=n.width||380,o=n.height||120,s=Li({x:i.x+a/2,y:i.y+o/2},e.objects),d=s?.zoneId,f=s?{x:s.zoneData.x,y:s.zoneData.y}:null;if(d){let e=c.find(e=>e.id===d);e&&(f={x:e.position.x,y:e.position.y})}let p=Fi(i,d&&f?{id:d,position:f}:null),m=G.get(r);if(m){let e={position:p,zone_id:d??null};await t.service(`board-objects`).patch(m.object_id,e)}}else if(n?.type===`branchNode`){let i=u,a=n.width||500,o=n.height||200,s=Li({x:i.x+a/2,y:i.y+o/2},e.objects),d=s?.zoneId,f=s?{x:s.zoneData.x,y:s.zoneData.y}:null;if(d){let e=c.find(e=>e.id===d);e&&(f={x:e.position.x,y:e.position.y})}let p=xe.get(l)?.zone_id,m=Fi(i,d&&f?{id:d,position:f}:null);if(r.push({branch_id:l,position:m,zone_id:d??null}),s){let{zoneId:e,zoneData:n}=s,r=p!==e,i=n.trigger;i&&r&&(i.behavior===`always_new`?(async()=>{try{await t.service(`branches/${l}/fire-zone-trigger`).create({zoneId:e})}catch(e){console.error(`❌ Failed to execute always_new trigger:`,e)}})():Ve({branchId:l,zoneName:n.label,zoneId:e,trigger:i}))}}}if(r.length>0)for(let{branch_id:n,position:i,zone_id:a}of r){let r=xe.get(n);if(r){let e={position:i,zone_id:a};await t.service(`board-objects`).patch(r.object_id,e)}else await t.service(`board-objects`).create({board_id:e.board_id,branch_id:n,position:i,...a?{zone_id:a}:{}})}Object.keys(i).length>0&&await ct(i),Object.keys(a).length>0&&await ct(a),Object.keys(o).length>0&&await ct(o);for(let{comment_id:e,position:n,parentId:r,parentType:i,newReactFlowParentId:a}of s){let o={};if(r&&i===`zone`){let e=c.find(e=>e.id===`zone-${r}`);if(e){let t=Fi(n,{id:r,position:Mi(e,c)});o.position={relative:{parent_id:r,parent_type:`zone`,offset_x:t.x,offset_y:t.y}}}else o.position={absolute:n},o.branch_id=null}else if(r&&i===`branch`){let e=c.find(e=>e.id===r);if(e){let t=Fi(n,{id:r,position:Mi(e,c)});o.branch_id=r,o.position={relative:{parent_id:r,parent_type:`branch`,offset_x:t.x,offset_y:t.y}}}else o.position={absolute:n},o.branch_id=null}else o.position={absolute:n},o.branch_id=null;await t.service(`board-comments`).patch(e,o),delete Ge.current[`comment-${e}`],X(t=>t.map(r=>{if(r.id===`comment-${e}`){let e={parentId:a};if(a!==r.parentId)if(a){let r=t.find(e=>e.id===a);r&&(e.position=Fi(n,{id:a,position:Mi(r,t)}))}else e.position=n;return{...r,...e}}return r}))}}catch(e){console.error(`Failed to persist layout:`,e)}},500)},[e,t,ct,qe,xe,G,X]);(0,Q.useEffect)(()=>()=>{He.current&&clearTimeout(He.current),nt.current&&clearTimeout(nt.current)},[]);let zt=(0,Q.useCallback)(e=>{Z.current&&K===`zone`&&Oe({start:{x:e.clientX,y:e.clientY},end:{x:e.clientX,y:e.clientY}})},[K]),Bt=(0,Q.useCallback)(e=>{K===`zone`&&J&&e.buttons===1&&Oe({start:J.start,end:{x:e.clientX,y:e.clientY}})},[K,J]),Vt=(0,Q.useCallback)(()=>{if(K===`zone`&&J&&Z.current){if(!U.canMutate){Oe(null),q(`select`);return}let{start:n,end:r}=J,i=Math.min(n.x,r.x),a=Math.min(n.y,r.y),o=Math.abs(r.x-n.x),s=Math.abs(r.y-n.y);if(o>50&&s>50){let n=Z.current.screenToFlowPosition({x:i,y:a}),r=Z.current.getViewport(),c=o/r.zoom,l=s/r.zoom,u=`zone-${Date.now()}`,d=`#d9d9d9`,f=`#d9d9d91a`;X(r=>[...r,{id:u,type:`zone`,position:n,zIndex:100,style:{width:c,height:l},data:{objectId:u,label:`New Zone`,width:c,height:l,borderColor:d,backgroundColor:f,onUpdate:(n,r)=>{e&&t&&t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:n,objectData:r}).catch(console.error)}}}]),e&&t&&t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:u,objectData:{type:`zone`,x:n.x,y:n.y,width:c,height:l,label:`New Zone`,borderColor:d,backgroundColor:f}}).catch(e=>{console.error(`Failed to add zone:`,e),X(e=>e.filter(e=>e.id!==u))})}Oe(null),q(`select`)}},[K,J,e,t,X,U.canMutate]),Ht=(0,Q.useCallback)(e=>!U.canMutate||!Z.current?!1:(Fe({position:Z.current.screenToFlowPosition({x:e.clientX,y:e.clientY})}),!0),[U.canMutate]),Ut=(0,Q.useCallback)(e=>{K===`comment`&&Z.current&&Ae({position:Z.current.screenToFlowPosition({x:e.clientX,y:e.clientY}),screenPosition:{x:e.clientX,y:e.clientY}}),K===`markdown`&&Ht(e)},[K,Ht]),Wt=(0,Q.useCallback)(async()=>{if(!(!ke||!e||!t||!p||!je.trim())&&U.canMutate)try{let n=ke.position,{branchNode:r,zoneNode:i}=Ii(n,Z.current?.getNodes()||[]),a={board_id:e.board_id,created_by:p,content:je.trim(),resolved:!1,edited:!1,reactions:[]};if(r){let e=r.id;a.branch_id=e,a.position={relative:{parent_id:e,parent_type:`branch`,offset_x:n.x-r.position.x,offset_y:n.y-r.position.y}}}else i?a.position={relative:{parent_id:i.id.replace(`zone-`,``),parent_type:`zone`,offset_x:n.x-i.position.x,offset_y:n.y-i.position.y}}:a.position={absolute:n};await t.service(`board-comments`).create(a),Ae(null),Me(``),q(`select`)}catch(e){console.error(`Failed to create spatial comment:`,e)}},[ke,e,t,p,je,U.canMutate]),Gt=(0,Q.useCallback)(async()=>{if(!Ne||!e||!t||!Ie.trim()||!U.canMutate)return;let n=Ne.objectId||`markdown-${Date.now()}`,r=Ne.position;X(i=>Ne.objectId?i.map(e=>e.id===n?{...e,data:{...e.data,content:Ie,width:Re}}:e):[...i,{id:n,type:`markdown`,position:r,zIndex:300,data:{objectId:n,content:Ie,width:Re,onUpdate:(n,r)=>{e&&t&&t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:n,objectData:r}).catch(console.error)},onEdit:at,onDelete:lt}}]);try{await t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:n,objectData:{type:`markdown`,x:r.x,y:r.y,width:Re,content:Ie}})}catch(e){console.error(`Failed to save markdown note:`,e),Ne.objectId||X(e=>e.filter(e=>e.id!==n))}Fe(null),Le(``),ze(500),q(`select`)},[Ne,e,t,Ie,Re,X,at,lt,U.canMutate]),Kt=(0,Q.useCallback)((e,t)=>{if(K===`eraser`){if(!U.canMutate)return;(t.type===`zone`||t.type===`markdown`)&&lt(t.id);return}if(K===`comment`&&Z.current){(t.type===`branchNode`||t.type===`zone`)&&Ae({position:Z.current.screenToFlowPosition({x:e.clientX,y:e.clientY}),screenPosition:{x:e.clientX,y:e.clientY}});return}if(K===`markdown`){Ht(e);return}t.type!==`zone`&&t.type!==`comment`&&X(e=>{let n=e.filter(e=>e.type!==`zone`&&e.type!==`comment`),r=e.find(e=>e.id===t.id)?.zIndex??0;if(n.every(e=>e.id===t.id||(e.zIndex??0)<r))return e;let i=Math.max(0,...n.map(e=>e.zIndex??0));return e.map(e=>e.id===t.id?{...e,zIndex:i+1}:e)})},[K,lt,U.canMutate,Ht,X]);return(0,Q.useEffect)(()=>{K!==`comment`&&ke&&(Ae(null),Me(``))},[K,ke]),(0,Q.useEffect)(()=>{!U.canMutate&&K!==`select`&&(q(`select`),Oe(null),Ae(null),Me(``),Fe(null))},[U.canMutate,K]),(0,$.jsxs)(`div`,{style:{width:`100%`,height:oe,position:`relative`},onPointerDown:zt,onPointerMove:Bt,onPointerUp:Vt,children:[J&&(0,$.jsx)(`div`,{style:{position:`fixed`,left:Math.min(J.start.x,J.end.x),top:Math.min(J.start.y,J.end.y),width:Math.abs(J.end.x-J.start.x),height:Math.abs(J.end.y-J.start.y),border:`2px dashed #1677ff`,background:`rgba(22, 119, 255, 0.1)`,pointerEvents:`none`,zIndex:1e3}}),ye&&(0,$.jsx)(`style`,{children:ye}),(0,$.jsx)(`div`,{ref:St,className:ve||void 0,style:{width:`100%`,height:`100%`,background:_e},children:(0,$.jsxs)(an,{nodes:qe,edges:Ze,onNodesChange:Ft,onEdgesChange:$e,onNodeDragStart:It,onNodeDrag:Lt,onNodeDragStop:Rt,onNodeClick:Kt,onPaneClick:Ut,onInit:e=>{Z.current=e,wt(!0)},nodeTypes:Ji,snapToGrid:!0,snapGrid:[20,20],minZoom:.1,maxZoom:1.5,nodesDraggable:U.canMutate,nodesConnectable:!1,elementsSelectable:!0,elevateNodesOnSelect:!1,panOnScroll:K===`select`&&!J,panOnDrag:!J,selectionOnDrag:!1,className:`tool-mode-${K}`,deleteKeyCode:null,selectionKeyCode:null,multiSelectionKeyCode:null,panActivationKeyCode:null,zoomActivationKeyCode:[`Meta`,`Control`],disableKeyboardA11y:!0,style:{background:`transparent`},children:[!_e&&(0,$.jsx)(on,{}),(0,$.jsxs)(rn,{position:`top-left`,showZoom:!1,showFitView:!1,showInteractive:!1,children:[(0,$.jsx)(S,{title:`Zoom In`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(cn,{onClick:e=>{e.stopPropagation(),Z.current?.zoomIn()},children:(0,$.jsx)(M,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(S,{title:`Zoom Out`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(cn,{onClick:e=>{e.stopPropagation(),Z.current?.zoomOut()},children:(0,$.jsx)(fe,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(S,{title:`Fit View`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(cn,{onClick:e=>{e.stopPropagation(),Z.current?.fitView()},children:(0,$.jsx)(ce,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(S,{title:`Select`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(cn,{onClick:e=>{e.stopPropagation(),q(`select`)},style:{borderLeft:K===`select`?`3px solid #1677ff`:`none`},children:(0,$.jsx)(j,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(S,{title:U.canMutate?`Add Zone`:U.message??`Add Zone`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(cn,{disabled:!U.canMutate,onClick:e=>{e.stopPropagation(),q(`zone`)},style:{borderLeft:K===`zone`?`3px solid #1677ff`:`none`,opacity:U.canMutate?1:.4,cursor:U.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(Pe,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(S,{title:U.canMutate?`Add Comment`:U.message??`Add Comment`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(cn,{disabled:!U.canMutate,onClick:e=>{e.stopPropagation(),q(`comment`)},style:{borderLeft:K===`comment`?`3px solid #1677ff`:`none`,opacity:U.canMutate?1:.4,cursor:U.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(ue,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(S,{title:U.canMutate?`Add Markdown Note β€” click canvas to place`:U.message??`Add Markdown Note β€” click canvas to place`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(cn,{"aria-label":`Add Markdown Note`,disabled:!U.canMutate,onClick:e=>{e.stopPropagation(),q(`markdown`)},style:{borderLeft:K===`markdown`?`3px solid #1677ff`:`none`,opacity:U.canMutate?1:.4,cursor:U.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(De,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(S,{title:U.canMutate?`Eraser - Click to toggle`:U.message??`Eraser`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(cn,{disabled:!U.canMutate,onClick:e=>{e.stopPropagation(),q(K===`eraser`?`select`:`eraser`)},style:{borderLeft:K===`eraser`?`3px solid ${H.colorError}`:`none`,color:K===`eraser`?H.colorError:`inherit`,backgroundColor:K===`eraser`?`${H.colorError}15`:`transparent`,opacity:U.canMutate?1:.4,cursor:U.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(w,{style:{fontSize:`16px`}})})})})]}),(0,$.jsx)(en,{nodeColor:Mt,pannable:!0,zoomable:!0,style:{backgroundColor:H.colorBgElevated,border:`1px solid ${H.colorBorder}`},maskColor:`rgba(0, 0, 0, 0.5)`,maskStrokeColor:H.colorPrimary,maskStrokeWidth:2}),(0,$.jsx)(ki,{client:t,boardId:e?.board_id??null,users:Tt(f),enabled:!!e&&!!t,staticCursors:ie,staticCursorScale:ae})]})}),ke&&(0,$.jsx)(pe,{open:!0,content:(0,$.jsxs)(`div`,{style:{width:300},children:[(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsx)(un,{placeholder:`Add a comment... (type @ for users, : for emojis)`,value:je,onChange:Me,onKeyPress:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),je.trim()&&Wt())},autoSize:{minRows:3,maxRows:6},client:t,sessionId:null,userById:f})}),(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,gap:8},children:[(0,$.jsx)(Y,{onClick:()=>{Ae(null),Me(``),q(`select`)},children:`Cancel`}),(0,$.jsx)(Y,{type:`primary`,onClick:Wt,disabled:!je.trim(),children:`Comment`})]})]}),getPopupContainer:()=>document.body,children:(0,$.jsx)(`div`,{style:{position:`fixed`,left:ke.screenPosition.x,top:ke.screenPosition.y,width:1,height:1,pointerEvents:`none`}})}),Ne&&(0,$.jsxs)(Ee,{open:!0,title:Ne.objectId?`Edit Markdown Note`:`Add Markdown Note`,onCancel:()=>{Fe(null),Le(``),ze(500),q(`select`)},onOk:Gt,okText:Ne.objectId?`Save`:`Create`,okButtonProps:{disabled:!Ie.trim()},width:1e3,children:[(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:16,marginBottom:16},children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(r.Text,{strong:!0,children:`Width:`}),(0,$.jsx)(le,{min:200,max:2e3,step:100,value:Re,onChange:ze,marks:{200:`200px`,500:`500px`,1e3:`1000px`,1500:`1500px`,2e3:`2000px`},style:{marginTop:8}})]})}),(0,$.jsxs)(`div`,{style:{display:`flex`,gap:16},children:[(0,$.jsxs)(`div`,{style:{flex:1},children:[(0,$.jsx)(r.Text,{strong:!0,children:`Content (Markdown supported):`}),(0,$.jsx)(R.TextArea,{value:Ie,onChange:e=>Le(e.target.value),placeholder:`# Title
12
+
13
+ - Bullet point
14
+ - Another point
15
+
16
+ **Bold** and *italic*
17
+
18
+ \`\`\`javascript
19
+ const code = "example";
20
+ \`\`\``,autoFocus:!0,rows:20,style:{fontFamily:`monospace`,marginTop:8,height:`500px`}})]}),(0,$.jsxs)(`div`,{style:{flex:1},children:[(0,$.jsx)(r.Text,{strong:!0,children:`Preview:`}),(0,$.jsx)(`div`,{style:{marginTop:8,padding:12,border:`1px solid ${H.colorBorder}`,borderRadius:4,height:`500px`,overflow:`auto`,background:H.colorBgContainer},children:Ie.trim()?(0,$.jsx)(mt,{content:Ie}):(0,$.jsx)(r.Text,{type:`secondary`,children:`Preview will appear here...`})})]})]})]}),Be&&(0,$.jsx)(Wi,{open:!0,onCancel:()=>Ve(null),client:t,branchId:Be.branchId,branch:o.find(e=>e.branch_id===Be.branchId),sessionsByBranch:i,zoneName:Be.zoneName,trigger:Be.trigger,boardName:e?.name,boardDescription:e?.description,boardCustomContext:e?.custom_context,availableAgents:_,mcpServerById:v,currentUser:p&&f.get(p)||null,onExecute:async({sessionId:e,action:n,renderedTemplate:r,agent:i,modelConfig:a,permissionMode:o,mcpServerIds:s})=>{if(!t){console.error(`❌ Cannot execute trigger: client not available`),Ve(null);return}try{let c=e;if(e===`new`&&(c=(await t.service(`sessions`).create({branch_id:Be.branchId,agentic_tool:i||`claude-code`,description:`Session from zone "${Be.zoneName}"`,status:`idle`,model_config:a?{...a,updated_at:new Date().toISOString()}:void 0,permission_config:o?{mode:o}:void 0})).session_id,s&&s.length>0))for(let e of s)await t.service(`sessions/${c}/mcp-servers`).create({mcpServerId:e});let l;switch(n){case`prompt`:await t.sessions.prompt(c,r,{permissionMode:o,messageSource:`agor`}),l=c;break;case`fork`:{let e=await t.service(`sessions/${c}/fork`).create({});await t.sessions.prompt(e.session_id,r,{permissionMode:o,messageSource:`agor`}),l=e.session_id;break}case`spawn`:{let e=await t.service(`sessions/${c}/spawn`).create({});await t.sessions.prompt(e.session_id,r,{permissionMode:o,messageSource:`agor`}),l=e.session_id;break}}l&&b?.(l)}catch(e){console.error(`❌ Failed to execute zone trigger:`,e)}finally{Ve(null)}}}),(0,$.jsx)(Et,{open:we,card:Se,board:e,zoneName:Se?(()=>{let e=G.get(Se.card_id);return e?.zone_id&&ut[e.zone_id]||void 0})():void 0,zoneColor:Se?(()=>{let t=G.get(Se.card_id);if(!t?.zone_id)return;let n=e?.objects?.[t.zone_id];return n&&n.type===`zone`?n.borderColor||n.color:void 0})():void 0,client:t,onClose:()=>{Te(!1),Ce(null)},onCardUpdated:e=>{Ce(e)},onCardDeleted:()=>{Te(!1),Ce(null)}})]})});Xi.displayName=`SessionCanvas`;export{xn as _,Jr as a,Ur as c,Pr as d,Nr as f,bn as g,pr as h,Yr as i,Dr as l,Lr as m,ri as n,Gr as o,Fr as p,ei as r,Wr as s,Xi as t,Ir as u};
@@ -1 +1 @@
1
- .facepile{vertical-align:middle;align-items:center;gap:8px;line-height:1;display:inline-flex}.facepile>span{line-height:1;display:inline-flex}.react-flow__panel.react-flow__minimap.bottom.right{margin-bottom:75px}.react-flow__controls{background:#141414d9;border:1px solid #ffffff1f}.react-flow__controls-button{color:#ffffffd9;background:0 0;border-bottom:1px solid #ffffff1f}.react-flow__controls-button:hover{background:#ffffff14}.react-flow__controls-button svg{fill:#ffffffd9}.react-flow.tool-mode-zone .react-flow__pane{cursor:crosshair}.react-flow.tool-mode-comment .react-flow__pane,.react-flow.tool-mode-comment .react-flow__node{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%231677ff'%3E%3Cpath d='M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z' fill='white'/%3E%3C/svg%3E") 12 12,crosshair}.react-flow.tool-mode-markdown .react-flow__pane,.react-flow.tool-mode-markdown .react-flow__node{cursor:crosshair}.react-flow.tool-mode-eraser .react-flow__pane,.react-flow.tool-mode-eraser .react-flow__node.zone{cursor:pointer}.drag-handle{cursor:grab}.drag-handle:active{cursor:grabbing}.nodrag,.nodrag *{cursor:auto}
1
+ .facepile{vertical-align:middle;align-items:center;gap:8px;line-height:1;display:inline-flex}.facepile>span{line-height:1;display:inline-flex}.react-flow__panel.react-flow__minimap.bottom.right{margin-bottom:75px}.react-flow__controls{background:#141414d9;border:1px solid #ffffff1f}.react-flow__controls-button{color:#ffffffd9;background:0 0;border-bottom:1px solid #ffffff1f}.react-flow__controls-button:hover{background:#ffffff14}.react-flow__controls-button svg{fill:#ffffffd9}.react-flow.tool-mode-zone .react-flow__pane{cursor:crosshair}.react-flow.tool-mode-comment .react-flow__pane,.react-flow.tool-mode-comment .react-flow__node{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%231677ff'%3E%3Cpath d='M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z' fill='white'/%3E%3C/svg%3E") 12 12,crosshair}.react-flow.tool-mode-markdown .react-flow__pane,.react-flow.tool-mode-markdown .react-flow__node{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h8l4 4v16H6z' fill='white' stroke='%231677ff' stroke-width='2'/%3E%3Cpath d='M14 2v5h5' fill='none' stroke='%231677ff' stroke-width='2'/%3E%3Cpath d='M8 12h8M8 16h8' stroke='%231677ff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 12 12,pointer}.react-flow.tool-mode-eraser .react-flow__pane,.react-flow.tool-mode-eraser .react-flow__node.zone{cursor:pointer}.drag-handle{cursor:grab}.drag-handle:active{cursor:grabbing}.nodrag,.nodrag *{cursor:auto}
@@ -1,4 +1,4 @@
1
- import{At as e,bn as t,on as n}from"./antd-C-HfEC4E.js";import{N as r}from"./editor-C-HJ7Yw0.js";import{R as i}from"./index-DxPuzG7E.js";var a=r(),{Title:o}=e,s=`# Streamdown Feature Showcase
1
+ import{At as e,bn as t,on as n}from"./antd-CfbbHJOz.js";import{N as r}from"./editor-CzFWIUw2.js";import{P as i}from"./index-BN5_Qq7R.js";var a=r(),{Title:o}=e,s=`# Streamdown Feature Showcase
2
2
 
3
3
  ## 🎨 Mermaid Diagrams
4
4
 
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{An as t,Fn as n,Mt as r,Pt as i,R as a,Xn as o,an as s,bt as c,h as l,i as u,on as d,wn as f}from"./antd-C-HfEC4E.js";import{N as p}from"./editor-C-HJ7Yw0.js";import{zt as m}from"./index-DxPuzG7E.js";var h=e(o(),1),g=p(),_=({user:e,disabled:n=!1,onUserSettingsClick:r,onLogout:o})=>{let{token:c}=i.useToken(),[p,m]=(0,h.useState)(!1),_=e?.emoji||`πŸ‘€`,v=e?.preferences?.audio?.enabled??!1;return(0,g.jsx)(s,{menu:{items:[{key:`user-info`,label:(0,g.jsxs)(`div`,{style:{padding:`4px 0`,display:`flex`,alignItems:`center`,gap:8},children:[(0,g.jsx)(`span`,{style:{fontSize:20},children:_}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`div`,{style:{fontWeight:500},children:e?.name||`User`}),(0,g.jsx)(`div`,{style:{fontSize:12,color:c.colorTextDescription},children:e?.email})]})]}),disabled:!0},{type:`divider`},{key:`user-settings`,label:(0,g.jsxs)(d,{children:[(0,g.jsx)(`span`,{children:`User Settings`}),v&&(0,g.jsx)(t,{title:`Audio notifications enabled`,children:(0,g.jsx)(l,{style:{color:c.colorSuccess,fontSize:12}})})]}),icon:(0,g.jsx)(u,{}),onClick:()=>{m(!1),r?.()}},{key:`logout`,label:`Logout`,icon:(0,g.jsx)(a,{}),onClick:()=>{m(!1),o?.()}}]},placement:`bottomRight`,trigger:[`click`],open:p,onOpenChange:m,disabled:n,children:(0,g.jsx)(t,{title:e?.name||`User menu`,placement:`bottom`,children:(0,g.jsx)(f,{type:`text`,icon:(0,g.jsx)(u,{style:{fontSize:c.fontSizeLG}}),style:{display:`flex`,alignItems:`center`,justifyContent:`center`},disabled:n})})})},v=({onOpenThemeEditor:e})=>{let{token:t}=i.useToken(),{themeMode:a,setThemeMode:o}=m();return(0,g.jsx)(s,{menu:{items:[{key:`dark`,label:`Dark`,icon:a===`dark`?(0,g.jsx)(n,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>o(`dark`)},{key:`light`,label:`Light`,icon:a===`light`?(0,g.jsx)(n,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>o(`light`)},{key:`custom`,label:`Custom`,icon:a===`custom`?(0,g.jsx)(n,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>o(`custom`),disabled:!e},{type:`divider`},{key:`edit-theme`,label:`Edit Custom Theme`,icon:(0,g.jsx)(r,{}),onClick:e,disabled:!e}]},placement:`bottomRight`,trigger:[`click`],children:(0,g.jsx)(f,{type:`text`,icon:(0,g.jsx)(c,{style:{fontSize:t.fontSizeLG}}),title:`Change theme`,style:{display:`flex`,alignItems:`center`,justifyContent:`center`}})})};export{_ as n,v as t};
1
+ import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{L as t,Ln as n,Mn as r,Mt as i,Pt as a,Qn as o,an as s,bt as c,h as l,i as u,on as d,wn as f}from"./antd-CfbbHJOz.js";import{N as p}from"./editor-CzFWIUw2.js";import{It as m}from"./index-BN5_Qq7R.js";var h=e(o(),1),g=p(),_=({user:e,disabled:n=!1,onUserSettingsClick:i,onLogout:o})=>{let{token:c}=a.useToken(),[p,m]=(0,h.useState)(!1),_=e?.emoji||`πŸ‘€`,v=e?.preferences?.audio?.enabled??!1;return(0,g.jsx)(s,{menu:{items:[{key:`user-info`,label:(0,g.jsxs)(`div`,{style:{padding:`4px 0`,display:`flex`,alignItems:`center`,gap:8},children:[(0,g.jsx)(`span`,{style:{fontSize:20},children:_}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`div`,{style:{fontWeight:500},children:e?.name||`User`}),(0,g.jsx)(`div`,{style:{fontSize:12,color:c.colorTextDescription},children:e?.email})]})]}),disabled:!0},{type:`divider`},{key:`user-settings`,label:(0,g.jsxs)(d,{children:[(0,g.jsx)(`span`,{children:`User Settings`}),v&&(0,g.jsx)(r,{title:`Audio notifications enabled`,children:(0,g.jsx)(l,{style:{color:c.colorSuccess,fontSize:12}})})]}),icon:(0,g.jsx)(u,{}),onClick:()=>{m(!1),i?.()}},{key:`logout`,label:`Logout`,icon:(0,g.jsx)(t,{}),onClick:()=>{m(!1),o?.()}}]},placement:`bottomRight`,trigger:[`click`],open:p,onOpenChange:m,disabled:n,children:(0,g.jsx)(r,{title:e?.name||`User menu`,placement:`bottom`,children:(0,g.jsx)(f,{type:`text`,icon:(0,g.jsx)(u,{style:{fontSize:c.fontSizeLG}}),style:{display:`flex`,alignItems:`center`,justifyContent:`center`},disabled:n})})})},v=({onOpenThemeEditor:e})=>{let{token:t}=a.useToken(),{themeMode:r,setThemeMode:o}=m();return(0,g.jsx)(s,{menu:{items:[{key:`dark`,label:`Dark`,icon:r===`dark`?(0,g.jsx)(n,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>o(`dark`)},{key:`light`,label:`Light`,icon:r===`light`?(0,g.jsx)(n,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>o(`light`)},{key:`custom`,label:`Custom`,icon:r===`custom`?(0,g.jsx)(n,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>o(`custom`),disabled:!e},{type:`divider`},{key:`edit-theme`,label:`Edit Custom Theme`,icon:(0,g.jsx)(i,{}),onClick:e,disabled:!e}]},placement:`bottomRight`,trigger:[`click`],children:(0,g.jsx)(f,{type:`text`,icon:(0,g.jsx)(c,{style:{fontSize:t.fontSizeLG}}),title:`Change theme`,style:{display:`flex`,alignItems:`center`,justifyContent:`center`}})})};export{_ as n,v as t};