agor-live 0.23.1 → 0.23.2

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 (469) hide show
  1. package/dist/core/claude/index.cjs +51 -27
  2. package/dist/core/claude/index.js +51 -27
  3. package/dist/core/claude-cli/index.cjs +13 -0
  4. package/dist/core/claude-cli/index.js +13 -0
  5. package/dist/core/claude-cli/pricing.d.ts.map +1 -1
  6. package/dist/core/client/index.cjs +17 -0
  7. package/dist/core/client/index.js +16 -0
  8. package/dist/core/db/index.cjs +618 -421
  9. package/dist/core/db/index.js +550 -353
  10. package/dist/core/db/repositories/boards.d.ts +27 -0
  11. package/dist/core/db/repositories/boards.d.ts.map +1 -1
  12. package/dist/core/db/repositories/branches.d.ts +11 -1
  13. package/dist/core/db/repositories/branches.d.ts.map +1 -1
  14. package/dist/core/db/repositories/gateway-channels.d.ts +9 -0
  15. package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
  16. package/dist/core/db/repositories/sessions.d.ts +7 -0
  17. package/dist/core/db/repositories/sessions.d.ts.map +1 -1
  18. package/dist/core/environment/render-snapshot.cjs +6 -2
  19. package/dist/core/environment/render-snapshot.d.ts +2 -0
  20. package/dist/core/environment/render-snapshot.d.ts.map +1 -1
  21. package/dist/core/environment/render-snapshot.js +6 -2
  22. package/dist/core/environment/variable-resolver.cjs +3 -1
  23. package/dist/core/environment/variable-resolver.js +3 -1
  24. package/dist/core/index.cjs +684 -486
  25. package/dist/core/index.js +684 -486
  26. package/dist/core/lib/feathers-validation.cjs +3 -0
  27. package/dist/core/lib/feathers-validation.d.ts +1 -0
  28. package/dist/core/lib/feathers-validation.d.ts.map +1 -1
  29. package/dist/core/lib/feathers-validation.js +3 -0
  30. package/dist/core/local-actions/index.cjs +123 -56
  31. package/dist/core/local-actions/index.js +121 -54
  32. package/dist/core/mcp/index.cjs +21 -3
  33. package/dist/core/mcp/index.d.ts +1 -1
  34. package/dist/core/mcp/index.d.ts.map +1 -1
  35. package/dist/core/mcp/index.js +18 -3
  36. package/dist/core/mcp/template-patterns.d.ts +15 -0
  37. package/dist/core/mcp/template-patterns.d.ts.map +1 -0
  38. package/dist/core/mcp/template-resolver.d.ts +13 -0
  39. package/dist/core/mcp/template-resolver.d.ts.map +1 -1
  40. package/dist/core/models/browser.cjs +6 -0
  41. package/dist/core/models/browser.js +6 -0
  42. package/dist/core/models/claude.d.ts.map +1 -1
  43. package/dist/core/models/index.cjs +6 -0
  44. package/dist/core/models/index.js +6 -0
  45. package/dist/core/seed/index.cjs +360 -216
  46. package/dist/core/seed/index.js +329 -185
  47. package/dist/core/templates/handlebars-helpers.cjs +3 -1
  48. package/dist/core/templates/handlebars-helpers.d.ts +5 -0
  49. package/dist/core/templates/handlebars-helpers.d.ts.map +1 -1
  50. package/dist/core/templates/handlebars-helpers.js +3 -1
  51. package/dist/core/tools/mcp/auth-secrets.cjs +3460 -3
  52. package/dist/core/tools/mcp/auth-secrets.d.ts.map +1 -1
  53. package/dist/core/tools/mcp/auth-secrets.js +3477 -3
  54. package/dist/core/tools/mcp/http-headers.cjs +17 -1
  55. package/dist/core/tools/mcp/http-headers.d.ts.map +1 -1
  56. package/dist/core/tools/mcp/http-headers.js +15 -1
  57. package/dist/core/tools/mcp/oauth-refresh.cjs +67 -43
  58. package/dist/core/tools/mcp/oauth-refresh.js +65 -41
  59. package/dist/core/types/board.d.ts +12 -0
  60. package/dist/core/types/board.d.ts.map +1 -1
  61. package/dist/core/types/gateway.d.ts +14 -0
  62. package/dist/core/types/gateway.d.ts.map +1 -1
  63. package/dist/core/types/index.cjs +17 -0
  64. package/dist/core/types/index.js +16 -0
  65. package/dist/core/unix/index.cjs +67 -0
  66. package/dist/core/unix/index.js +67 -0
  67. package/dist/daemon/auth/executor-runtime-scope.d.ts.map +1 -1
  68. package/dist/daemon/auth/executor-runtime-scope.js +19 -5
  69. package/dist/daemon/auth/executor-session-token.d.ts +15 -0
  70. package/dist/daemon/auth/executor-session-token.d.ts.map +1 -0
  71. package/dist/daemon/auth/executor-session-token.js +17 -0
  72. package/dist/daemon/auth/issue-browser-tokens-hook.d.ts +24 -0
  73. package/dist/daemon/auth/issue-browser-tokens-hook.d.ts.map +1 -0
  74. package/dist/daemon/auth/issue-browser-tokens-hook.js +95 -0
  75. package/dist/daemon/auth/service-jwt-strategy.d.ts.map +1 -1
  76. package/dist/daemon/auth/service-jwt-strategy.js +14 -2
  77. package/dist/daemon/declarations.d.ts +1 -0
  78. package/dist/daemon/declarations.d.ts.map +1 -1
  79. package/dist/daemon/index.js +1365 -418
  80. package/dist/daemon/main.js +1365 -418
  81. package/dist/daemon/mcp/server.js +294 -31
  82. package/dist/daemon/mcp/tools/analytics.js +73 -24
  83. package/dist/daemon/mcp/tools/artifacts.js +73 -24
  84. package/dist/daemon/mcp/tools/boards.js +73 -24
  85. package/dist/daemon/mcp/tools/branches.js +73 -24
  86. package/dist/daemon/mcp/tools/card-types.js +73 -24
  87. package/dist/daemon/mcp/tools/cards.js +73 -24
  88. package/dist/daemon/mcp/tools/environment.js +73 -24
  89. package/dist/daemon/mcp/tools/gateway-channels.d.ts.map +1 -1
  90. package/dist/daemon/mcp/tools/gateway-channels.js +190 -38
  91. package/dist/daemon/mcp/tools/knowledge.js +73 -24
  92. package/dist/daemon/mcp/tools/mcp-servers.js +73 -24
  93. package/dist/daemon/mcp/tools/messages.js +73 -24
  94. package/dist/daemon/mcp/tools/proxies.js +73 -24
  95. package/dist/daemon/mcp/tools/repos.js +73 -24
  96. package/dist/daemon/mcp/tools/schedules.js +73 -24
  97. package/dist/daemon/mcp/tools/search.js +73 -24
  98. package/dist/daemon/mcp/tools/sessions.js +73 -24
  99. package/dist/daemon/mcp/tools/tasks.js +73 -24
  100. package/dist/daemon/mcp/tools/users.js +76 -27
  101. package/dist/daemon/mcp/tools/widgets.d.ts.map +1 -1
  102. package/dist/daemon/mcp/tools/widgets.js +257 -99
  103. package/dist/daemon/oauth-auth-helpers.d.ts +35 -0
  104. package/dist/daemon/oauth-auth-helpers.d.ts.map +1 -0
  105. package/dist/daemon/oauth-auth-helpers.js +14 -0
  106. package/dist/daemon/register-hooks.d.ts +1 -0
  107. package/dist/daemon/register-hooks.d.ts.map +1 -1
  108. package/dist/daemon/register-hooks.js +304 -53
  109. package/dist/daemon/register-routes.d.ts.map +1 -1
  110. package/dist/daemon/register-routes.js +738 -288
  111. package/dist/daemon/register-services.d.ts.map +1 -1
  112. package/dist/daemon/register-services.js +386 -155
  113. package/dist/daemon/services/boards.d.ts +5 -0
  114. package/dist/daemon/services/boards.d.ts.map +1 -1
  115. package/dist/daemon/services/boards.js +7 -0
  116. package/dist/daemon/services/branches.d.ts.map +1 -1
  117. package/dist/daemon/services/branches.js +31 -2
  118. package/dist/daemon/services/claude-models.d.ts.map +1 -1
  119. package/dist/daemon/services/claude-models.js +4 -1
  120. package/dist/daemon/services/gateway.d.ts +15 -0
  121. package/dist/daemon/services/gateway.d.ts.map +1 -1
  122. package/dist/daemon/services/gateway.js +34 -0
  123. package/dist/daemon/services/health-monitor.d.ts.map +1 -1
  124. package/dist/daemon/services/health-monitor.js +10 -7
  125. package/dist/daemon/services/session-streams.d.ts +29 -0
  126. package/dist/daemon/services/session-streams.d.ts.map +1 -0
  127. package/dist/daemon/services/session-streams.js +84 -0
  128. package/dist/daemon/services/session-token-service.d.ts.map +1 -1
  129. package/dist/daemon/services/session-token-service.js +8 -4
  130. package/dist/daemon/setup/index.js +43 -11
  131. package/dist/daemon/setup/socketio.d.ts.map +1 -1
  132. package/dist/daemon/setup/socketio.js +43 -11
  133. package/dist/daemon/startup.d.ts.map +1 -1
  134. package/dist/daemon/startup.js +37 -16
  135. package/dist/daemon/utils/authorization.js +19 -5
  136. package/dist/daemon/utils/emit-service-event.d.ts +56 -0
  137. package/dist/daemon/utils/emit-service-event.d.ts.map +1 -0
  138. package/dist/daemon/utils/emit-service-event.js +23 -0
  139. package/dist/daemon/utils/mcp-header-secrets.d.ts +3 -5
  140. package/dist/daemon/utils/mcp-header-secrets.d.ts.map +1 -1
  141. package/dist/daemon/utils/mcp-header-secrets.js +31 -2
  142. package/dist/daemon/utils/realtime-access-cache.d.ts +9 -0
  143. package/dist/daemon/utils/realtime-access-cache.d.ts.map +1 -1
  144. package/dist/daemon/utils/realtime-access-cache.js +24 -0
  145. package/dist/daemon/utils/realtime-publish.d.ts +24 -0
  146. package/dist/daemon/utils/realtime-publish.d.ts.map +1 -1
  147. package/dist/daemon/utils/realtime-publish.js +120 -2
  148. package/dist/daemon/utils/session-queue-tenant-scope.d.ts +24 -0
  149. package/dist/daemon/utils/session-queue-tenant-scope.d.ts.map +1 -0
  150. package/dist/daemon/utils/session-queue-tenant-scope.js +133 -0
  151. package/dist/daemon/widgets/gateway-token/index.d.ts +114 -0
  152. package/dist/daemon/widgets/gateway-token/index.d.ts.map +1 -0
  153. package/dist/daemon/widgets/gateway-token/index.js +14711 -0
  154. package/dist/daemon/widgets/index.d.ts.map +1 -1
  155. package/dist/daemon/widgets/index.js +190 -16
  156. package/dist/daemon/widgets/registry.d.ts +7 -0
  157. package/dist/daemon/widgets/registry.d.ts.map +1 -1
  158. package/dist/daemon/widgets/submissions.js +12 -9
  159. package/dist/executor/commands/git.d.ts.map +1 -1
  160. package/dist/executor/commands/git.js +2 -0
  161. package/dist/executor/db/feathers-repositories.d.ts +19 -1
  162. package/dist/executor/db/feathers-repositories.d.ts.map +1 -1
  163. package/dist/executor/db/feathers-repositories.js +31 -1
  164. package/dist/executor/handlers/sdk/claude.d.ts.map +1 -1
  165. package/dist/executor/handlers/sdk/claude.js +1 -1
  166. package/dist/executor/handlers/sdk/codex.d.ts.map +1 -1
  167. package/dist/executor/handlers/sdk/codex.js +1 -1
  168. package/dist/executor/handlers/sdk/copilot.d.ts.map +1 -1
  169. package/dist/executor/handlers/sdk/copilot.js +1 -1
  170. package/dist/executor/handlers/sdk/cursor.d.ts.map +1 -1
  171. package/dist/executor/handlers/sdk/cursor.js +1 -0
  172. package/dist/executor/handlers/sdk/gemini.d.ts.map +1 -1
  173. package/dist/executor/handlers/sdk/gemini.js +1 -1
  174. package/dist/executor/handlers/sdk/opencode.d.ts.map +1 -1
  175. package/dist/executor/handlers/sdk/opencode.js +1 -1
  176. package/dist/executor/payload-types.d.ts +5 -5
  177. package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts +8 -1
  178. package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +1 -1
  179. package/dist/executor/sdk-handlers/base/mcp-scoping.js +58 -6
  180. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts +2 -2
  181. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +1 -1
  182. package/dist/executor/sdk-handlers/claude/claude-tool.js +2 -2
  183. package/dist/executor/sdk-handlers/claude/prompt-service.d.ts +13 -3
  184. package/dist/executor/sdk-handlers/claude/prompt-service.d.ts.map +1 -1
  185. package/dist/executor/sdk-handlers/claude/prompt-service.js +16 -3
  186. package/dist/executor/sdk-handlers/claude/query-builder.d.ts +2 -1
  187. package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
  188. package/dist/executor/sdk-handlers/claude/query-builder.js +2 -1
  189. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +2 -2
  190. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
  191. package/dist/executor/sdk-handlers/codex/codex-tool.js +2 -2
  192. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +3 -2
  193. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
  194. package/dist/executor/sdk-handlers/codex/prompt-service.js +70 -6
  195. package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts +2 -2
  196. package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts.map +1 -1
  197. package/dist/executor/sdk-handlers/copilot/copilot-tool.js +2 -2
  198. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts +3 -2
  199. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -1
  200. package/dist/executor/sdk-handlers/copilot/prompt-service.js +4 -1
  201. package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts +2 -2
  202. package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts.map +1 -1
  203. package/dist/executor/sdk-handlers/gemini/gemini-tool.js +2 -2
  204. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +3 -2
  205. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
  206. package/dist/executor/sdk-handlers/gemini/prompt-service.js +4 -1
  207. package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts +3 -2
  208. package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts.map +1 -1
  209. package/dist/executor/sdk-handlers/opencode/opencode-tool.js +4 -1
  210. package/dist/executor/services/feathers-client.d.ts.map +1 -1
  211. package/dist/executor/services/feathers-client.js +119 -20
  212. package/dist/ui/assets/AgorEmojiPickerInner-leeNywMc.js +1 -0
  213. package/dist/ui/assets/App-Dpl4Cc0U.js +4 -0
  214. package/dist/ui/assets/App-Dpl4Cc0U.js.gz +0 -0
  215. package/dist/ui/assets/AppNode-wN3UZlFK.js +1 -0
  216. package/dist/ui/assets/AppNode-wN3UZlFK.js.gz +0 -0
  217. package/dist/ui/assets/{ArtifactConsentModal-oMMzRn8L.js → ArtifactConsentModal-DjzXcP_L.js} +1 -1
  218. package/dist/ui/assets/ArtifactConsentModal-DjzXcP_L.js.gz +0 -0
  219. package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js +9 -0
  220. package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js.gz +0 -0
  221. package/dist/ui/assets/ArtifactNode-DISy2T-6.js +9 -0
  222. package/dist/ui/assets/ArtifactNode-DISy2T-6.js.gz +0 -0
  223. package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js +19 -0
  224. package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js.gz +0 -0
  225. package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js +34 -0
  226. package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js.gz +0 -0
  227. package/dist/ui/assets/{CodeEditor.inner-Cuj6RuLL.js → CodeEditor.inner-HmSdTLW5.js} +1 -1
  228. package/dist/ui/assets/CodeEditor.inner-HmSdTLW5.js.gz +0 -0
  229. package/dist/ui/assets/ConversationView-mWaA-B1f.js +1 -0
  230. package/dist/ui/assets/ConversationView-mWaA-B1f.js.gz +0 -0
  231. package/dist/ui/assets/{EmbeddedTerminal-Lx5I9EOJ.js → EmbeddedTerminal-NNoyPA81.js} +1 -1
  232. package/dist/ui/assets/EmbeddedTerminal-NNoyPA81.js.gz +0 -0
  233. package/dist/ui/assets/KnowledgePage-CkxVnRvz.js +24 -0
  234. package/dist/ui/assets/KnowledgePage-CkxVnRvz.js.gz +0 -0
  235. package/dist/ui/assets/{MarketingScreenshotPage-CmDPBHOl.js → MarketingScreenshotPage-B86Gs8jx.js} +2 -2
  236. package/dist/ui/assets/MarketingScreenshotPage-B86Gs8jx.js.gz +0 -0
  237. package/dist/ui/assets/MobileApp-BPs-SXvz.js +1 -0
  238. package/dist/ui/assets/MobileApp-BPs-SXvz.js.gz +0 -0
  239. package/dist/ui/assets/SessionCanvas-xVfDoEtz.js +13 -0
  240. package/dist/ui/assets/SessionCanvas-xVfDoEtz.js.gz +0 -0
  241. package/dist/ui/assets/{StreamdownDemoPage-okKKR2QH.js → StreamdownDemoPage-CvWLzVsv.js} +2 -2
  242. package/dist/ui/assets/StreamdownDemoPage-CvWLzVsv.js.gz +0 -0
  243. package/dist/ui/assets/{TerminalModal-D9jMGZXv.js → TerminalModal-ExOgsuOP.js} +2 -2
  244. package/dist/ui/assets/TerminalModal-ExOgsuOP.js.gz +0 -0
  245. package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js +1 -0
  246. package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js.gz +0 -0
  247. package/dist/ui/assets/{ThemedSyntaxHighlighter.inner-C1FdIHn0.js → ThemedSyntaxHighlighter.inner-rpCN9S6K.js} +1 -1
  248. package/dist/ui/assets/{antd-DT5ackd0.js → antd-BCqimh1J.js} +5 -5
  249. package/dist/ui/assets/{antd-DT5ackd0.js.gz → antd-BCqimh1J.js.gz} +0 -0
  250. package/dist/ui/assets/architecture-U656AL7Q-BxSQIjrE.js +1 -0
  251. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-DwTJGGoj.js → architectureDiagram-VXUJARFQ-pDpGHSqT.js} +1 -1
  252. package/dist/ui/assets/architectureDiagram-VXUJARFQ-pDpGHSqT.js.gz +0 -0
  253. package/dist/ui/assets/{blockDiagram-VD42YOAC-Dh1_TVW2.js → blockDiagram-VD42YOAC-uP8JTJpK.js} +1 -1
  254. package/dist/ui/assets/blockDiagram-VD42YOAC-uP8JTJpK.js.gz +0 -0
  255. package/dist/ui/assets/{c4Diagram-YG6GDRKO-B1e96AcB.js → c4Diagram-YG6GDRKO-qQe72Mm7.js} +1 -1
  256. package/dist/ui/assets/c4Diagram-YG6GDRKO-qQe72Mm7.js.gz +0 -0
  257. package/dist/ui/assets/channel-CoUBs6Zn.js +1 -0
  258. package/dist/ui/assets/{chunk-4BX2VUAB-BODpCjJx.js → chunk-4BX2VUAB-sz-YE8Nt.js} +1 -1
  259. package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js +3 -0
  260. package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js.gz +0 -0
  261. package/dist/ui/assets/chunk-55IACEB6-BS04dgKF.js +1 -0
  262. package/dist/ui/assets/{chunk-ABZYJK2D-DCTXWSzV.js → chunk-ABZYJK2D-t3Gkphds.js} +3 -3
  263. package/dist/ui/assets/chunk-ABZYJK2D-t3Gkphds.js.gz +0 -0
  264. package/dist/ui/assets/{chunk-AGHRB4JF-CbNphBjE.js → chunk-AGHRB4JF-D_QmWxbY.js} +1 -1
  265. package/dist/ui/assets/chunk-AGHRB4JF-D_QmWxbY.js.gz +0 -0
  266. package/dist/ui/assets/{chunk-ATLVNIR6-rWg3qxof.js → chunk-ATLVNIR6-Bmg7-Ufz.js} +1 -1
  267. package/dist/ui/assets/chunk-ATLVNIR6-Bmg7-Ufz.js.gz +0 -0
  268. package/dist/ui/assets/{chunk-B4BG7PRW-CgtLCbpE.js → chunk-B4BG7PRW-dnSEE1u-.js} +1 -1
  269. package/dist/ui/assets/chunk-B4BG7PRW-dnSEE1u-.js.gz +0 -0
  270. package/dist/ui/assets/{chunk-CVBHYZKI-DTL6Zgr0.js → chunk-CVBHYZKI-BStaYnF0.js} +1 -1
  271. package/dist/ui/assets/{chunk-DI55MBZ5-Dwvx2Kva.js → chunk-DI55MBZ5-28dvx6o3.js} +1 -1
  272. package/dist/ui/assets/chunk-DI55MBZ5-28dvx6o3.js.gz +0 -0
  273. package/dist/ui/assets/chunk-EXTU4WIE-X-FURkEh.js +1 -0
  274. package/dist/ui/assets/{chunk-FMBD7UC4-BogA_9CV.js → chunk-FMBD7UC4-C_63gC9S.js} +1 -1
  275. package/dist/ui/assets/{chunk-HN2XXSSU-2blQO3Gb.js → chunk-HN2XXSSU-UFD374KI.js} +1 -1
  276. package/dist/ui/assets/chunk-HN2XXSSU-UFD374KI.js.gz +0 -0
  277. package/dist/ui/assets/{chunk-JA3XYJ7Z-Cr1rmOui.js → chunk-JA3XYJ7Z-B60hLNeR.js} +1 -1
  278. package/dist/ui/assets/chunk-JA3XYJ7Z-B60hLNeR.js.gz +0 -0
  279. package/dist/ui/assets/{chunk-JZLCHNYA-BsgZ79Fa.js → chunk-JZLCHNYA-ButC6pwN.js} +1 -1
  280. package/dist/ui/assets/chunk-JZLCHNYA-ButC6pwN.js.gz +0 -0
  281. package/dist/ui/assets/{chunk-MI3HLSF2-dwYeUy5S.js → chunk-MI3HLSF2-BivYzoSV.js} +1 -1
  282. package/dist/ui/assets/chunk-MI3HLSF2-BivYzoSV.js.gz +0 -0
  283. package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js +2 -0
  284. package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js.gz +0 -0
  285. package/dist/ui/assets/{chunk-QN33PNHL-DxdIDCAa.js → chunk-QN33PNHL-tXtHZpaG.js} +1 -1
  286. package/dist/ui/assets/{chunk-QXUST7PY-BCK2V0i-.js → chunk-QXUST7PY-DATib_Vv.js} +1 -1
  287. package/dist/ui/assets/chunk-QXUST7PY-DATib_Vv.js.gz +0 -0
  288. package/dist/ui/assets/chunk-QZHKN3VN-y6l249e5.js +1 -0
  289. package/dist/ui/assets/{chunk-S3R3BYOJ-GP3zIxrB.js → chunk-S3R3BYOJ-BEtfmflI.js} +1 -1
  290. package/dist/ui/assets/chunk-S3R3BYOJ-BEtfmflI.js.gz +0 -0
  291. package/dist/ui/assets/{chunk-TZMSLE5B-dX5RaM6g.js → chunk-TZMSLE5B-BY1ZtogK.js} +1 -1
  292. package/dist/ui/assets/chunk-TZMSLE5B-BY1ZtogK.js.gz +0 -0
  293. package/dist/ui/assets/classDiagram-2ON5EDUG-BYvq-uPY.js +1 -0
  294. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BYvq-uPY.js +1 -0
  295. package/dist/ui/assets/constants-CYzQKfD1.js +1 -0
  296. package/dist/ui/assets/{cose-bilkent-S5V4N54A-Dx0BJVDl.js → cose-bilkent-S5V4N54A-DPvYrqGG.js} +1 -1
  297. package/dist/ui/assets/cose-bilkent-S5V4N54A-DPvYrqGG.js.gz +0 -0
  298. package/dist/ui/assets/{dagre-6UL2VRFP-DiQSUxqN.js → dagre-6UL2VRFP-D800J6qb.js} +1 -1
  299. package/dist/ui/assets/dagre-6UL2VRFP-D800J6qb.js.gz +0 -0
  300. package/dist/ui/assets/{dagre-Bekd9Vdj.js → dagre-TNc4wezg.js} +1 -1
  301. package/dist/ui/assets/dagre-TNc4wezg.js.gz +0 -0
  302. package/dist/ui/assets/{diagram-PSM6KHXK-DtJnDQjc.js → diagram-PSM6KHXK-CGdP9F-X.js} +1 -1
  303. package/dist/ui/assets/diagram-PSM6KHXK-CGdP9F-X.js.gz +0 -0
  304. package/dist/ui/assets/{diagram-QEK2KX5R-CobkCRdj.js → diagram-QEK2KX5R-BD5lOCe5.js} +1 -1
  305. package/dist/ui/assets/diagram-QEK2KX5R-BD5lOCe5.js.gz +0 -0
  306. package/dist/ui/assets/{diagram-S2PKOQOG-DHEZYivc.js → diagram-S2PKOQOG-cp3l22vN.js} +1 -1
  307. package/dist/ui/assets/diagram-S2PKOQOG-cp3l22vN.js.gz +0 -0
  308. package/dist/ui/assets/editor-Cr0W5BQI.js +39 -0
  309. package/dist/ui/assets/editor-Cr0W5BQI.js.gz +0 -0
  310. package/dist/ui/assets/{emoji-B0hLmSLZ.js → emoji-Bv3m24sO.js} +1 -1
  311. package/dist/ui/assets/emoji-Bv3m24sO.js.gz +0 -0
  312. package/dist/ui/assets/{erDiagram-Q2GNP2WA-BVNeTZPQ.js → erDiagram-Q2GNP2WA-CQSXRgqr.js} +1 -1
  313. package/dist/ui/assets/erDiagram-Q2GNP2WA-CQSXRgqr.js.gz +0 -0
  314. package/dist/ui/assets/{flowDiagram-NV44I4VS-C73VFdyk.js → flowDiagram-NV44I4VS-CKcKpkph.js} +1 -1
  315. package/dist/ui/assets/flowDiagram-NV44I4VS-CKcKpkph.js.gz +0 -0
  316. package/dist/ui/assets/{ganttDiagram-LVOFAZNH-B_RosuD1.js → ganttDiagram-LVOFAZNH-DlAHzXO5.js} +1 -1
  317. package/dist/ui/assets/ganttDiagram-LVOFAZNH-DlAHzXO5.js.gz +0 -0
  318. package/dist/ui/assets/{gitGraph-F6HP7TQM-DMFIqn4h.js → gitGraph-F6HP7TQM-DeuXy4B1.js} +1 -1
  319. package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-hxbgwNA1.js → gitGraphDiagram-NY62KEGX-aB-AI4Vq.js} +1 -1
  320. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-aB-AI4Vq.js.gz +0 -0
  321. package/dist/ui/assets/index-B-qHc0o5.js +63 -0
  322. package/dist/ui/assets/index-B-qHc0o5.js.gz +0 -0
  323. package/dist/ui/assets/{info-NVLQJR56-DZ3K-w48.js → info-NVLQJR56-B9PG7xsc.js} +1 -1
  324. package/dist/ui/assets/{infoDiagram-ER5ION4S-CxnBJQu6.js → infoDiagram-ER5ION4S-C5Wpoqim.js} +1 -1
  325. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CHYNj-f8.js → journeyDiagram-XKPGCS4Q-CHLziqfS.js} +1 -1
  326. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHLziqfS.js.gz +0 -0
  327. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-DQPCCsj2.js → kanban-definition-3W4ZIXB7-Dq7GzQE_.js} +1 -1
  328. package/dist/ui/assets/kanban-definition-3W4ZIXB7-Dq7GzQE_.js.gz +0 -0
  329. package/dist/ui/assets/{line-DBRjKmfa.js → line-DHKNg83I.js} +1 -1
  330. package/dist/ui/assets/{linear-DFao5Wyp.js → linear-BvUfn0I8.js} +1 -1
  331. package/dist/ui/assets/linear-BvUfn0I8.js.gz +0 -0
  332. package/dist/ui/assets/{mermaid-parser.core-DYCfacHj.js → mermaid-parser.core-C6d9tKoo.js} +2 -2
  333. package/dist/ui/assets/mermaid-parser.core-C6d9tKoo.js.gz +0 -0
  334. package/dist/ui/assets/{mermaid.core-C6xGFSdE.js → mermaid.core-CxE5KezR.js} +3 -3
  335. package/dist/ui/assets/mermaid.core-CxE5KezR.js.gz +0 -0
  336. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-L3Pw-YM7.js → mindmap-definition-VGOIOE7T-DmPoQ48w.js} +1 -1
  337. package/dist/ui/assets/mindmap-definition-VGOIOE7T-DmPoQ48w.js.gz +0 -0
  338. package/dist/ui/assets/{packet-BFZMPI3H-CpL6iNoa.js → packet-BFZMPI3H-JZEkVZxU.js} +1 -1
  339. package/dist/ui/assets/{particles-CT8hcJOA.js → particles-CxMmUw86.js} +1 -1
  340. package/dist/ui/assets/particles-CxMmUw86.js.gz +0 -0
  341. package/dist/ui/assets/{pie-7BOR55EZ-hTqChbTo.js → pie-7BOR55EZ-_1II5pYQ.js} +1 -1
  342. package/dist/ui/assets/{pieDiagram-ADFJNKIX-Bf4Nou75.js → pieDiagram-ADFJNKIX-DrNkH33i.js} +1 -1
  343. package/dist/ui/assets/pieDiagram-ADFJNKIX-DrNkH33i.js.gz +0 -0
  344. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-DpjUTLB1.js → quadrantDiagram-AYHSOK5B-DOpC-HEF.js} +1 -1
  345. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DOpC-HEF.js.gz +0 -0
  346. package/dist/ui/assets/{radar-NHE76QYJ-myy7OENC.js → radar-NHE76QYJ-DDmqhzEZ.js} +1 -1
  347. package/dist/ui/assets/{reactflow-Cubtnk8i.js → reactflow-D98uPOMq.js} +1 -1
  348. package/dist/ui/assets/reactflow-D98uPOMq.js.gz +0 -0
  349. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-Bfrfh-0-.js → requirementDiagram-UZGBJVZJ-Bzx0iEPP.js} +1 -1
  350. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bzx0iEPP.js.gz +0 -0
  351. package/dist/ui/assets/{sandpack-C58bwfIS.js → sandpack-059Z4UWP.js} +1 -1
  352. package/dist/ui/assets/sandpack-059Z4UWP.js.gz +0 -0
  353. package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js +1 -0
  354. package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js.gz +0 -0
  355. package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-ClZAZ6va.js → sankeyDiagram-TZEHDZUN-Do9pvfDv.js} +1 -1
  356. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-Do9pvfDv.js.gz +0 -0
  357. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-CNgly63p.js → sequenceDiagram-WL72ISMW-CN8neUTA.js} +1 -1
  358. package/dist/ui/assets/sequenceDiagram-WL72ISMW-CN8neUTA.js.gz +0 -0
  359. package/dist/ui/assets/{src-DAeyG22O.js → src-DEbsv3pp.js} +2 -2
  360. package/dist/ui/assets/src-DEbsv3pp.js.gz +0 -0
  361. package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BrEAoDpE.js → stateDiagram-FKZM4ZOC-BluWJi8n.js} +1 -1
  362. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BluWJi8n.js.gz +0 -0
  363. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-DeyqBMDR.js +1 -0
  364. package/dist/ui/assets/{streamdown-BdAVfkeF.js → streamdown-BT1twtFc.js} +5 -5
  365. package/dist/ui/assets/streamdown-BT1twtFc.js.gz +0 -0
  366. package/dist/ui/assets/{syntax-BOfTnQiy.js → syntax-CBu6nLfm.js} +1 -1
  367. package/dist/ui/assets/syntax-CBu6nLfm.js.gz +0 -0
  368. package/dist/ui/assets/{timeline-definition-IT6M3QCI-CaRH3k4l.js → timeline-definition-IT6M3QCI-WdUNkiRj.js} +1 -1
  369. package/dist/ui/assets/timeline-definition-IT6M3QCI-WdUNkiRj.js.gz +0 -0
  370. package/dist/ui/assets/{treemap-KMMF4GRG-CUaLOV_B.js → treemap-KMMF4GRG-CoriU4Jl.js} +1 -1
  371. package/dist/ui/assets/{useUserLocalStorage-C8sgXgXR.js → useUserLocalStorage-GidNiOPC.js} +1 -1
  372. package/dist/ui/assets/useUserLocalStorage-GidNiOPC.js.gz +0 -0
  373. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-BlhkI9T_.js → xychartDiagram-PRI3JC2R-CgBAKNt2.js} +1 -1
  374. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CgBAKNt2.js.gz +0 -0
  375. package/dist/ui/index.html +9 -8
  376. package/dist/ui/index.html.gz +0 -0
  377. package/package.json +2 -2
  378. package/dist/ui/assets/AgorEmojiPickerInner-DQjr8M3_.js +0 -1
  379. package/dist/ui/assets/App-hJtcOxHv.js +0 -5
  380. package/dist/ui/assets/App-hJtcOxHv.js.gz +0 -0
  381. package/dist/ui/assets/AppNode-BhuMpn8O.js +0 -1
  382. package/dist/ui/assets/AppNode-BhuMpn8O.js.gz +0 -0
  383. package/dist/ui/assets/ArtifactConsentModal-oMMzRn8L.js.gz +0 -0
  384. package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js +0 -9
  385. package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js.gz +0 -0
  386. package/dist/ui/assets/ArtifactNode-BzQcrwFS.js +0 -9
  387. package/dist/ui/assets/ArtifactNode-BzQcrwFS.js.gz +0 -0
  388. package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js +0 -19
  389. package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js.gz +0 -0
  390. package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js +0 -34
  391. package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js.gz +0 -0
  392. package/dist/ui/assets/CodeEditor.inner-Cuj6RuLL.js.gz +0 -0
  393. package/dist/ui/assets/ConversationView-9-3ma1u-.js +0 -1
  394. package/dist/ui/assets/ConversationView-9-3ma1u-.js.gz +0 -0
  395. package/dist/ui/assets/EmbeddedTerminal-Lx5I9EOJ.js.gz +0 -0
  396. package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js +0 -24
  397. package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js.gz +0 -0
  398. package/dist/ui/assets/MarketingScreenshotPage-CmDPBHOl.js.gz +0 -0
  399. package/dist/ui/assets/MobileApp-BpgSG_gz.js +0 -1
  400. package/dist/ui/assets/MobileApp-BpgSG_gz.js.gz +0 -0
  401. package/dist/ui/assets/SessionCanvas-B6_mtlxK.js +0 -13
  402. package/dist/ui/assets/SessionCanvas-B6_mtlxK.js.gz +0 -0
  403. package/dist/ui/assets/StreamdownDemoPage-okKKR2QH.js.gz +0 -0
  404. package/dist/ui/assets/TerminalModal-D9jMGZXv.js.gz +0 -0
  405. package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js +0 -1
  406. package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js.gz +0 -0
  407. package/dist/ui/assets/architecture-U656AL7Q-DMnxkQRZ.js +0 -1
  408. package/dist/ui/assets/architectureDiagram-VXUJARFQ-DwTJGGoj.js.gz +0 -0
  409. package/dist/ui/assets/blockDiagram-VD42YOAC-Dh1_TVW2.js.gz +0 -0
  410. package/dist/ui/assets/c4Diagram-YG6GDRKO-B1e96AcB.js.gz +0 -0
  411. package/dist/ui/assets/channel-Jv4dT4S5.js +0 -1
  412. package/dist/ui/assets/chunk-55IACEB6-lJXvUquf.js +0 -1
  413. package/dist/ui/assets/chunk-ABZYJK2D-DCTXWSzV.js.gz +0 -0
  414. package/dist/ui/assets/chunk-AGHRB4JF-CbNphBjE.js.gz +0 -0
  415. package/dist/ui/assets/chunk-ATLVNIR6-rWg3qxof.js.gz +0 -0
  416. package/dist/ui/assets/chunk-B4BG7PRW-CgtLCbpE.js.gz +0 -0
  417. package/dist/ui/assets/chunk-DI55MBZ5-Dwvx2Kva.js.gz +0 -0
  418. package/dist/ui/assets/chunk-EXTU4WIE-DHyaqTsP.js +0 -1
  419. package/dist/ui/assets/chunk-HN2XXSSU-2blQO3Gb.js.gz +0 -0
  420. package/dist/ui/assets/chunk-JA3XYJ7Z-Cr1rmOui.js.gz +0 -0
  421. package/dist/ui/assets/chunk-JZLCHNYA-BsgZ79Fa.js.gz +0 -0
  422. package/dist/ui/assets/chunk-MI3HLSF2-dwYeUy5S.js.gz +0 -0
  423. package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js +0 -2
  424. package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js.gz +0 -0
  425. package/dist/ui/assets/chunk-QXUST7PY-BCK2V0i-.js.gz +0 -0
  426. package/dist/ui/assets/chunk-QZHKN3VN-CALjGrEE.js +0 -1
  427. package/dist/ui/assets/chunk-S3R3BYOJ-GP3zIxrB.js.gz +0 -0
  428. package/dist/ui/assets/chunk-TZMSLE5B-dX5RaM6g.js.gz +0 -0
  429. package/dist/ui/assets/classDiagram-2ON5EDUG-C3_RVP70.js +0 -1
  430. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-C3_RVP70.js +0 -1
  431. package/dist/ui/assets/constants-GjIDNVyt.js +0 -1
  432. package/dist/ui/assets/cose-bilkent-S5V4N54A-Dx0BJVDl.js.gz +0 -0
  433. package/dist/ui/assets/dagre-6UL2VRFP-DiQSUxqN.js.gz +0 -0
  434. package/dist/ui/assets/dagre-Bekd9Vdj.js.gz +0 -0
  435. package/dist/ui/assets/diagram-PSM6KHXK-DtJnDQjc.js.gz +0 -0
  436. package/dist/ui/assets/diagram-QEK2KX5R-CobkCRdj.js.gz +0 -0
  437. package/dist/ui/assets/diagram-S2PKOQOG-DHEZYivc.js.gz +0 -0
  438. package/dist/ui/assets/editor-DQIG-JYZ.js +0 -43
  439. package/dist/ui/assets/editor-DQIG-JYZ.js.gz +0 -0
  440. package/dist/ui/assets/emoji-B0hLmSLZ.js.gz +0 -0
  441. package/dist/ui/assets/erDiagram-Q2GNP2WA-BVNeTZPQ.js.gz +0 -0
  442. package/dist/ui/assets/flowDiagram-NV44I4VS-C73VFdyk.js.gz +0 -0
  443. package/dist/ui/assets/ganttDiagram-LVOFAZNH-B_RosuD1.js.gz +0 -0
  444. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-hxbgwNA1.js.gz +0 -0
  445. package/dist/ui/assets/index-DTz1Dif6.js +0 -64
  446. package/dist/ui/assets/index-DTz1Dif6.js.gz +0 -0
  447. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHYNj-f8.js.gz +0 -0
  448. package/dist/ui/assets/kanban-definition-3W4ZIXB7-DQPCCsj2.js.gz +0 -0
  449. package/dist/ui/assets/linear-DFao5Wyp.js.gz +0 -0
  450. package/dist/ui/assets/mermaid-parser.core-DYCfacHj.js.gz +0 -0
  451. package/dist/ui/assets/mermaid.core-C6xGFSdE.js.gz +0 -0
  452. package/dist/ui/assets/mindmap-definition-VGOIOE7T-L3Pw-YM7.js.gz +0 -0
  453. package/dist/ui/assets/particles-CT8hcJOA.js.gz +0 -0
  454. package/dist/ui/assets/pieDiagram-ADFJNKIX-Bf4Nou75.js.gz +0 -0
  455. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DpjUTLB1.js.gz +0 -0
  456. package/dist/ui/assets/reactflow-Cubtnk8i.js.gz +0 -0
  457. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bfrfh-0-.js.gz +0 -0
  458. package/dist/ui/assets/sandpack-C58bwfIS.js.gz +0 -0
  459. package/dist/ui/assets/sandpackDefaults-Bkga8XAE.js +0 -1
  460. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-ClZAZ6va.js.gz +0 -0
  461. package/dist/ui/assets/sequenceDiagram-WL72ISMW-CNgly63p.js.gz +0 -0
  462. package/dist/ui/assets/src-DAeyG22O.js.gz +0 -0
  463. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BrEAoDpE.js.gz +0 -0
  464. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-BNL52_oN.js +0 -1
  465. package/dist/ui/assets/streamdown-BdAVfkeF.js.gz +0 -0
  466. package/dist/ui/assets/syntax-BOfTnQiy.js.gz +0 -0
  467. package/dist/ui/assets/timeline-definition-IT6M3QCI-CaRH3k4l.js.gz +0 -0
  468. package/dist/ui/assets/useUserLocalStorage-C8sgXgXR.js.gz +0 -0
  469. package/dist/ui/assets/xychartDiagram-PRI3JC2R-BlhkI9T_.js.gz +0 -0
@@ -1,5 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/EmbeddedTerminal-Lx5I9EOJ.js","assets/rolldown-runtime--c01j_DQ.js","assets/antd-DT5ackd0.js","assets/editor-DQIG-JYZ.js","assets/xterm-BkujP7YO.js","assets/xterm-BrP-ENHg.css","assets/TerminalModal-D9jMGZXv.js","assets/constants-GjIDNVyt.js","assets/src-DAeyG22O.js","assets/sandpack-C58bwfIS.js","assets/__vite-browser-external-BBPYNvOp.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{$ as t,$n as n,$t as r,An as i,At as a,Bn as o,Bt as s,Cn as c,Ct as l,D as u,Dn as d,E as f,En as p,Fn as m,Ft as h,G as g,Gn as _,Gt as v,H as y,Hn as b,I as x,In as S,It as C,Jn as w,K as T,Kn as E,Kt as D,Ln as O,Lt as k,M as A,Mn as ee,Mt as j,N as M,Nn as te,O as N,On as P,Ot as F,P as I,Pn as L,Pt as ne,Q as re,Qn as R,R as ie,Rn as z,Rt as ae,Sn as oe,St as se,Tn as ce,U as le,Un as ue,Ut as de,Vn as B,W as fe,Wn as V,Xn as pe,Xt as me,Zt as H,_t as he,a as ge,b as U,cn as _e,d as ve,dn as ye,en as be,fn as W,ft as xe,gn as Se,hn as Ce,ht as we,ir as Te,it as Ee,jt as De,k as Oe,kt as G,l as ke,ln as Ae,m as je,n as Me,nn as Ne,nt as Pe,o as Fe,ot as Ie,q as Le,r as Re,rn as ze,sn as K,tn as Be,u as Ve,vt as He,x as Ue,xt as We,yt as Ge,zt as q}from"./antd-DT5ackd0.js";import{$ as Ke,D as qe,L as Je,M as Ye,O as Xe,S as Ze,j as Qe,k as $e,nt as et,q as tt,rt as nt,x as rt}from"./src-DAeyG22O.js";import{c as it}from"./sandpack-C58bwfIS.js";import{N as at}from"./editor-DQIG-JYZ.js";import{$ as ot,$t as st,A as ct,At as lt,B as ut,Bn as dt,Bt as ft,C as pt,Cn as mt,Ct as ht,D as gt,Dn as _t,Dt as vt,E as yt,En as bt,Et as xt,Fn as St,Ft as Ct,G as J,H as wt,Ht as Tt,I as Et,K as Dt,Kt as Ot,Lt as kt,Mn as At,Nn as jt,Nt as Mt,O as Y,On as Nt,P as Pt,Pn as Ft,Q as It,Qt as Lt,S as Rt,Sn as zt,St as Bt,T as Vt,Tt as Ht,U as Ut,Vn as Wt,W as Gt,X as Kt,Xt as qt,Y as Jt,Z as Yt,Zt as Xt,_n as Zt,_t as Qt,a as $t,an as en,at as tn,b as nn,bn as X,cn as rn,d as an,dn as on,dt as sn,en as cn,f as ln,fn as un,ft as dn,g as fn,gn as pn,gt as mn,h as hn,hn as gn,i as _n,in as vn,it as yn,j as bn,kn as xn,kt as Sn,l as Cn,ln as wn,lt as Tn,m as En,mn as Dn,mt as On,n as kn,nt as An,o as jn,on as Mn,p as Nn,pn as Pn,pt as Fn,qt as In,r as Ln,rn as Rn,sn as zn,st as Bn,t as Vn,u as Hn,un as Un,v as Wn,vn as Gn,vt as Kn,w as qn,wt as Jn,x as Yn,xn as Xn,xt as Zn,yt as Qn,zn as $n,zt as er}from"./index-DTz1Dif6.js";import{i as tr,n as nr,r as rr,t as ir}from"./useUserLocalStorage-C8sgXgXR.js";import{_ as ar,a as or,c as sr,d as cr,f as lr,g as ur,h as dr,i as fr,l as pr,m as mr,n as hr,o as gr,p as _r,r as vr,s as yr,t as br,u as xr}from"./SessionCanvas-B6_mtlxK.js";import{o as Sr}from"./BoardObjectNodes-DdKWv_ZT.js";import{i as Cr,s as wr,t as Tr}from"./AutocompleteTextarea-Dau-V_30.js";import{n as Er,t as Dr}from"./ConversationView-9-3ma1u-.js";import{t as Or}from"./constants-GjIDNVyt.js";var Z=e(Te(),1),kr=_t();function Ar(e){(0,Z.useEffect)(()=>(e?.icon&&e?.name?document.title=`${e.icon} ${e.name}`:e?.name?document.title=e.name:document.title=kr,()=>{document.title=kr}),[e?.icon,e?.name])}function jr(e){let{client:t,enabled:n,maxEvents:r=500}=e,[i,a]=(0,Z.useState)([]),o=(0,Z.useCallback)(()=>{a([])},[]);return(0,Z.useEffect)(()=>{if(!n||!t?.io){a([]);return}let e=(e,...t)=>{if(e===`created`||e===`patched`||e===`updated`||e===`removed`)return;let n=`other`;if(e===`cursor-move`||e===`cursor-leave`||e===`cursor-moved`||e===`cursor-left`||e===`presence-updated`)n=`cursor`;else if(e.includes(`message`)||e===`thinking:chunk`){n=`message`;let e=t.length===1?t[0]:void 0;if(e&&typeof e==`object`&&`content`in e){let t=e.content;Array.isArray(t)&&t.some(e=>{if(typeof e==`object`&&e&&`type`in e){let t=e.type;return t===`tool_use`||t===`tool_result`}return!1})&&(n=`tool`)}}else e.includes(`created`)||e.includes(`patched`)||e.includes(`updated`)||e.includes(`removed`)?n=`crud`:(e===`connect`||e===`disconnect`||e.includes(`connect`))&&(n=`connection`);let i=t.length===0?void 0:t.length===1?t[0]:t,o={id:`${Date.now()}-${Math.random().toString(36).substr(2,9)}`,timestamp:new Date,type:n,eventName:e,data:i};a(e=>[o,...e].slice(0,r))};return t.io.onAny(e),()=>{t.io.offAny(e)}},[t,n,r]),{events:i,clearEvents:o}}function Mr(e,t,n,r){return new Promise((i,a)=>{let o=document.createElement(`canvas`);o.width=32,o.height=32;let s=o.getContext(`2d`),c=new Image;c.onload=()=>{s.drawImage(c,0,0,32,32),t&&(s.beginPath(),s.arc(7,25,6,0,2*Math.PI),s.fillStyle=`#000000`,s.fill(),s.beginPath(),s.arc(7,25,10/2,0,2*Math.PI),s.fillStyle=`#ffffff`,s.fill()),n&&(s.beginPath(),s.arc(25,25,6,0,2*Math.PI),s.fillStyle=`#000000`,s.fill(),s.beginPath(),s.arc(25,25,10/2,0,2*Math.PI),s.fillStyle=r,s.fill()),i(o.toDataURL())},c.onerror=e=>{a(e)},c.src=e})}function Nr(e,t,n){let[r]=(0,Z.useState)(bt()),{token:i}=q.useToken();(0,Z.useEffect)(()=>{let a=!1,o=e=>{if(a)return;let t=document.querySelector(`link[rel~='icon']`);t&&(t.href=e)};if(!e)return Mr(r,!1,!1,i.colorSuccessText).then(o),()=>{a=!0};let s=new Set(n.filter(e=>e.branch_id).map(e=>e.branch_id)),c=Array.from(s).flatMap(e=>t.get(e)||[]).filter(e=>!e.archived);return Mr(r,c.some(e=>e.status===Qe.RUNNING),c.some(e=>e.ready_for_prompt),i.colorSuccessText).then(o),()=>{a=!0}},[e,t,n,r,i.colorSuccessText])}function Pr(e,t,n){let r=(0,Z.useRef)(new Set),i=(0,Z.useRef)(n);(0,Z.useEffect)(()=>{i.current=n},[n]),(0,Z.useEffect)(()=>{if(!e||!t)return;let n=e.service(`tasks`),a=r.current,o=!1,s=e=>e?.created_by===t,c=e=>{if(!(!e?.task_id||!s(e))){if(e.status===Xe.RUNNING){a.add(e.task_id);return}a.delete(e.task_id)&&$e(e.status)&&$t(e,i.current)}},l=e=>{e?.task_id&&a.delete(e.task_id)};return n.on(`created`,c),n.on(`patched`,c),n.on(`updated`,c),n.on(`removed`,l),n.findAll({query:{status:Xe.RUNNING,created_by:t}}).then(e=>{if(!o)for(let t of e)t?.task_id&&a.add(t.task_id)}).catch(()=>{}),()=>{o=!0,n.removeListener(`created`,c),n.removeListener(`patched`,c),n.removeListener(`updated`,c),n.removeListener(`removed`,l),a.clear()}},[e,t])}async function Fr(e,t){let n=t.repoById.get(e.repoId),r=e.branchName||`private-${Lt(e.displayName)}`,i=e.sourceBranch||n?.default_branch||`main`;if(!t.client)throw Error(`Not connected`);let a=e.displayName.trim()||`My Assistant`,o=(await t.client.service(`boards`).create({name:`${a}'s Board`,icon:e.emoji||`🤖`})).board_id;await st({client:t.client,boardId:o,assistantName:a,assistantEmoji:e.emoji});let s={kind:`assistant`,displayName:e.displayName.trim(),emoji:e.emoji||void 0,frameworkRepo:n?.slug,createdViaOnboarding:!1},c=await t.onCreateBranch(e.repoId,{name:r,ref:r,createBranch:!0,sourceBranch:i,pullLatest:!0,boardId:o,custom_context:{assistant:s},...e.description?.trim()?{notes:e.description.trim()}:{}});return c&&(o&&!c.board_id&&await t.onUpdateBranch(c.branch_id,{board_id:o}),o&&await t.client?.service(`boards`).setPrimaryAssistant({boardId:o,branchId:c.branch_id})),c}function Ir(e){return!!(e.sessionShortId||e.branchShortId||e.artifactShortId)}var Q=at(),Lr=22,Rr={height:Lr,width:Lr,minWidth:Lr,padding:0};function zr({repo:e,branch:t,sessionCount:n,onOpenBranch:r,onStartEnvironment:o,onStopEnvironment:s,onNukeEnvironment:c,onViewLogs:u,canControlEnvironment:d,connectionDisabled:f=!1,showEnvButtons:p=!0,showNukeEnvironment:m=!0,identityLink:h,compact:g=!1}){let{token:_}=q.useToken(),v=Mt(),y=Cn(e),b=y.hasConfig,x=t.environment_instance,S=wt(x),C=t.app_url,w=d??!0,T=w?void 0:`Requires branch 'all' permission or admin access`,E=x?.status||`stopped`,D=E===`running`,O=E===`starting`,ee=E===`stopping`,j=E===`running`||E===`starting`,M=f||!w||!b||!o||O||ee||D,te=f||!w||!b||!s||ee||!j,N=e=>n=>{n.stopPropagation(),r?.(t.branch_id,e)},P=()=>{r?.(t.branch_id)},F=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(l,{style:{fontSize:12}}),!g&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{style:{fontFamily:_.fontFamilyCode,fontSize:_.fontSizeSM},children:e.slug}),(0,Q.jsx)(a,{style:{fontSize:10,opacity:.6}})]}),(0,Q.jsx)(`span`,{style:{fontFamily:_.fontFamilyCode,fontSize:_.fontSizeSM,maxWidth:g?220:180,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:t.name})]}),I=()=>{switch(S){case`stopped`:return(0,Q.jsx)(je,{style:{color:_.colorTextDisabled,fontSize:11}});case`starting`:case`stopping`:return(0,Q.jsx)(Be,{size:`small`,style:{fontSize:11}});case`healthy`:return(0,Q.jsx)(We,{style:{color:_.colorSuccess,fontSize:11}});case`unhealthy`:return(0,Q.jsx)(Me,{style:{color:_.colorWarning,fontSize:11}});case`running`:return(0,Q.jsx)(We,{style:{color:_.colorInfo,fontSize:11}});case`error`:return(0,Q.jsx)(Ge,{style:{color:_.colorError,fontSize:11}});default:return(0,Q.jsx)(je,{style:{color:_.colorTextDisabled,fontSize:11}})}},L=()=>{if(!b)return`Click to configure environment`;let e=x?.last_health_check,t=e?.message?` - ${e.message}`:``;switch(S){case`healthy`:return C?`Healthy - ${C}${t}`:`Healthy${t}`;case`unhealthy`:return C?`Unhealthy - ${C}${t}`:`Unhealthy${t}`;case`running`:return C?`Running - ${C}`:`Running (no health check)`;case`starting`:return`Starting...`;case`stopping`:return`Stopping...`;case`error`:return`Failed to start`;default:return`Stopped`}},ne=h?`${e.slug} / ${t.name} · Open session`:g?`${e.slug} / ${t.name} · Open branch settings`:`Open branch settings`,R={display:`inline-flex`,alignItems:`center`,gap:4,padding:g?`0 6px`:`0 8px`,cursor:`pointer`,height:Lr,color:`inherit`,textDecoration:`none`},ie=h?.startsWith(`/`);return(0,Q.jsxs)(Ft,{color:An.branch,style:{userSelect:`none`,padding:0,overflow:`hidden`,lineHeight:`${Lr}px`,display:`inline-flex`,alignItems:`stretch`,cursor:`default`},children:[(0,Q.jsx)(z,{title:ne,children:h&&ie?(0,Q.jsx)(St,{to:h,onClick:e=>e.stopPropagation(),style:R,children:F}):h?(0,Q.jsx)(`a`,{href:h,onClick:e=>e.stopPropagation(),style:R,children:F}):(0,Q.jsx)(`button`,{type:`button`,onClick:P,style:{display:`inline-flex`,alignItems:`center`,gap:4,padding:g?`0 6px`:`0 8px`,cursor:`pointer`,height:Lr,background:`none`,border:`none`,color:`inherit`,font:`inherit`},children:F})}),p&&(0,Q.jsx)(`div`,{style:{display:`inline-flex`,alignItems:`center`,gap:2,padding:`0 4px`,height:Lr,borderLeft:`1px solid ${_.colorBorderSecondary}`},children:b?(0,Q.jsxs)(Q.Fragment,{children:[D&&C?(0,Q.jsx)(z,{title:`Open ${C}`,children:(0,Q.jsxs)(`a`,{href:C,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),style:{display:`inline-flex`,alignItems:`center`,gap:3,color:`inherit`,textDecoration:`none`,padding:`0 2px`},children:[I(),(0,Q.jsx)(`span`,{style:{fontFamily:_.fontFamilyCode,fontSize:11},children:`env`})]})}):(0,Q.jsx)(z,{title:L(),children:(0,Q.jsxs)(`button`,{type:`button`,onClick:N(`environment`),style:{display:`inline-flex`,alignItems:`center`,gap:3,cursor:`pointer`,padding:`0 2px`,background:`none`,border:`none`,color:`inherit`,font:`inherit`},children:[I(),(0,Q.jsx)(`span`,{style:{fontFamily:_.fontFamilyCode,fontSize:11},children:`env`})]})}),o&&(0,Q.jsx)(z,{title:T??(D?`Environment running`:`Start environment`),children:(0,Q.jsx)(i,{type:`text`,size:`small`,"aria-label":`Start environment`,icon:(0,Q.jsx)(A,{}),onClick:e=>{e.stopPropagation(),M||o(t.branch_id)},disabled:M,style:Rr})}),s&&(0,Q.jsx)(z,{title:T??(D?`Stop environment`:O?`Cancel startup`:ee?`Stopping...`:`Not running`),children:(0,Q.jsx)(i,{type:`text`,size:`small`,"aria-label":`Stop environment`,icon:(0,Q.jsx)(je,{}),onClick:e=>{e.stopPropagation(),te||s(t.branch_id)},disabled:te,style:Rr})}),u&&y.logs&&(0,Q.jsx)(z,{title:T??`View logs`,children:(0,Q.jsx)(i,{type:`text`,size:`small`,"aria-label":`View environment logs`,icon:(0,Q.jsx)(Ae,{}),onClick:e=>{e.stopPropagation(),w&&u(t.branch_id)},disabled:!w,style:Rr})}),m&&!g&&c&&t.nuke_command&&(0,Q.jsx)(z,{title:T??`Nuke environment (destructive)`,children:(0,Q.jsx)(i,{type:`text`,size:`small`,danger:!0,"aria-label":`Nuke environment`,icon:(0,Q.jsx)(Ee,{}),onClick:e=>{e.stopPropagation(),w&&!f&&v(()=>c(t.branch_id))},disabled:f||!w,style:Rr})})]}):(0,Q.jsx)(z,{title:`Configure environment`,children:(0,Q.jsxs)(`button`,{type:`button`,onClick:N(`environment`),style:{display:`inline-flex`,alignItems:`center`,gap:3,cursor:`pointer`,opacity:.5,padding:`0 2px`,background:`none`,border:`none`,color:`inherit`,font:`inherit`},children:[(0,Q.jsx)(re,{style:{fontSize:11}}),(0,Q.jsx)(`span`,{style:{fontFamily:_.fontFamilyCode,fontSize:11},children:`env`})]})})}),(0,Q.jsxs)(`div`,{style:{display:`inline-flex`,alignItems:`center`,gap:1,padding:`0 3px`,height:Lr,borderLeft:`1px solid ${_.colorBorderSecondary}`},children:[(0,Q.jsx)(z,{title:`Sessions${n==null?``:` (${n})`}`,children:(0,Q.jsx)(i,{type:`text`,size:`small`,"aria-label":`Sessions`,icon:(0,Q.jsx)(ve,{}),onClick:N(`sessions`),style:Rr})}),(0,Q.jsx)(z,{title:`Files`,children:(0,Q.jsx)(i,{type:`text`,size:`small`,"aria-label":`Files`,icon:(0,Q.jsx)(de,{}),onClick:N(`files`),style:Rr})}),(0,Q.jsx)(z,{title:`Schedule`,children:(0,Q.jsx)(i,{type:`text`,size:`small`,"aria-label":`Schedule`,icon:(0,Q.jsx)(Se,{}),onClick:N(`schedule`),style:Rr})}),(0,Q.jsx)(z,{title:`Edit branch`,children:(0,Q.jsx)(i,{type:`text`,size:`small`,"aria-label":`Edit branch`,icon:(0,Q.jsx)(k,{}),onClick:e=>{e.stopPropagation(),P()},style:Rr})})]})]})}var Br=({branch:e,size:t=12})=>{let n=Ot(),r=e?.board_id;return!e||!r?null:(0,Q.jsx)(z,{title:`Go to card on board`,children:(0,Q.jsx)(De,{style:{fontSize:t,cursor:`pointer`,flexShrink:0,opacity:.5},onClick:t=>{t.stopPropagation(),n(e.branch_id,{boardId:r})}})})},Vr=e=>{let t=nn(e);return t===`success`||t==="default"?null:t},Hr=({board:e,currentBoardId:t,branchById:n,repoById:r,sessionsByBranch:i,onSessionClick:a,onAfterSessionClick:o})=>{let{token:s}=q.useToken(),[c,l]=(0,Z.useState)(``),[u,d]=lt(pr,`recent`),f=(0,Z.useMemo)(()=>{let e=[];for(let r of n.values())r.board_id===t&&e.push(r.branch_id);return e.flatMap(e=>i.get(e)||[])},[i,n,t]),p=c.trim(),m=cr(p),g=(0,Z.useMemo)(()=>m?lr(f,p).map(({session:e})=>e):mr(f,u),[f,m,p,u]);return(0,Q.jsxs)(`div`,{style:{height:`100%`,position:`relative`,overflow:`hidden`},children:[(0,Q.jsx)(`div`,{style:{padding:`16px 24px`,borderBottom:`1px solid ${s.colorBorder}`},children:(0,Q.jsx)(or,{value:c,onChange:l,sort:u,onSortChange:d,searching:m})}),(0,Q.jsx)(`div`,{style:{padding:`8px 0`},children:g.length===0?m?(0,Q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,alignItems:`center`,padding:`28px 16px`,gap:6},children:[(0,Q.jsx)(`div`,{style:{width:36,height:36,borderRadius:`50%`,background:s.colorFillTertiary,display:`flex`,alignItems:`center`,justifyContent:`center`,marginBottom:2},children:(0,Q.jsx)(B,{style:{fontSize:16,color:s.colorTextTertiary}})}),(0,Q.jsx)(h.Text,{strong:!0,style:{fontSize:13},children:`No results`}),(0,Q.jsxs)(h.Text,{type:`secondary`,style:{fontSize:12,textAlign:`center`,lineHeight:1.5,maxWidth:200},children:[`Nothing matched `,(0,Q.jsx)(h.Text,{code:!0,children:p})]})]}):(0,Q.jsx)(h.Text,{type:`secondary`,style:{display:`block`,textAlign:`center`,padding:`24px 0`,fontSize:12},children:`No sessions in this board`}):g.map(e=>{let t=e.branch_id?n.get(e.branch_id):void 0,i=t?r.get(t.repo_id):void 0,c=Jt(e,{includeAgentFallback:!0}),l=m&&e.title&&e.description?xr(e.description,p):null,u=m&&_r(e,p);return(0,Q.jsxs)(`div`,{style:{cursor:`pointer`,padding:`10px 24px`,transition:`background 0.2s`},onMouseEnter:e=>{e.currentTarget.style.background=s.colorBgTextHover},onMouseLeave:e=>{e.currentTarget.style.background=`transparent`},onClick:()=>{a(e.session_id),o?.()},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:8,minWidth:0},children:[(0,Q.jsx)(`span`,{style:{flexShrink:0,display:`inline-flex`},children:(()=>{let t=Vr(e.status),n=(0,Q.jsx)(jt,{tool:e.agentic_tool,size:18});return t?(0,Q.jsx)(L,{dot:!0,status:t,offset:[-3,3],children:n}):n})()}),(0,Q.jsx)(h.Text,{ellipsis:{tooltip:c},style:{flex:1,minWidth:0},children:(0,Q.jsx)(Bt,{text:c,query:p})}),(0,Q.jsx)(gr,{session:e}),(0,Q.jsx)(Br,{branch:t})]}),u&&(0,Q.jsxs)(h.Text,{type:`secondary`,style:{display:`block`,fontSize:11,marginTop:3,marginLeft:26},children:[`Agent: `,(0,Q.jsx)(Bt,{text:e.agentic_tool,query:p})]}),l&&l!==c&&(0,Q.jsx)(h.Text,{type:`secondary`,style:{fontSize:11,display:`block`,marginTop:3,marginLeft:26,lineHeight:1.4,fontStyle:`italic`},children:(0,Q.jsx)(Bt,{text:l,query:p})}),(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8,marginTop:6,marginLeft:26,minWidth:0},children:[(0,Q.jsx)(`div`,{style:{minWidth:0,overflow:`hidden`},children:t?(0,Q.jsx)(ot,{branch:t.name,compact:!0,title:i?`${i.slug} / ${t.name}`:t.name}):(0,Q.jsx)(h.Text,{type:`secondary`,style:{fontSize:12},children:`No branch`})}),(0,Q.jsx)(z,{title:Zn(e.last_updated),children:(0,Q.jsx)(h.Text,{type:`secondary`,style:{fontSize:11,whiteSpace:`nowrap`,flexShrink:0},children:Qn(e.last_updated)})})]})]},e.session_id)})}),e&&(0,Q.jsx)(`div`,{style:{position:`absolute`,bottom:0,left:0,right:0,padding:`16px 24px`,borderTop:`1px solid ${s.colorBorder}`,background:s.colorBgContainer},children:(0,Q.jsx)(h.Text,{type:`secondary`,style:{fontSize:12},children:m?(0,Q.jsxs)(Q.Fragment,{children:[g.length,` of `,f.length,` · `,(0,Q.jsx)(fr,{}),e.description&&` • ${e.description}`]}):`${f.length} session${f.length===1?``:`s`}${e.description?` • ${e.description}`:``}`})})]})},Ur=(0,Z.memo)(({board:e,activeTab:t,onTabChange:n,primaryAssistantBranch:r,primaryAssistantRepo:a,primaryAssistantInaccessible:s,currentUserId:c,selectedSessionId:l,onSessionClick:u,onCreateSession:p,onForkSession:m,onSpawnSession:g,onOpenSettings:v,onOpenSessionSettings:y,onSendComment:b,onReplyComment:x,onResolveComment:S,onToggleReaction:C,onDeleteComment:w,hoveredCommentId:T,selectedCommentId:E,onCollapse:D,client:O})=>{let{token:k}=q.useToken(),{message:A}=_.useApp(),ee=X(pn),j=X(zn),M=X(Pn),N=X(Gn),P=X(Un),F=(0,Z.useMemo)(()=>ht(P).filter(t=>t.board_id===e?.board_id),[P,e?.board_id]),I=e?.objects,L=s?`all-sessions`:`assistant`,[ne,re]=(0,Z.useState)(L),ie=t!==void 0,ae=t??ne,oe=e=>{re(e),n?.(e)};(0,Z.useEffect)(()=>{re(L),ie||n?.(L)},[L,e?.board_id,ie,n]);let se=(0,Z.useMemo)(()=>Array.from(j.values()).filter(e=>nt(e)&&!e.archived).sort((e,t)=>{let n=et(e),r=et(t);return(n?.displayName??e.name).localeCompare(r?.displayName??t.name)}).map(e=>{let t=et(e),n=M.get(e.repo_id),r=t?.displayName??e.name;return{value:e.branch_id,label:r,searchText:`${r} ${e.name} ${n?.slug??``}`,branch:e,repo:n}}),[j,M]),[ce,le]=(0,Z.useState)(),[ue,de]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{ce&&se.some(e=>e.value===ce)||le(se[0]?.value)},[se,ce]);let B=async()=>{if(!e||!O||!ce)return;let t=j.get(ce);if(t){de(!0);try{t.board_id!==e.board_id&&await O.service(`branches`).patch(ce,{board_id:e.board_id}),await O.service(`boards`).setPrimaryAssistant({boardId:e.board_id,branchId:ce}),A.success(`Assistant assigned`)}catch(e){A.error(`Failed to assign assistant: ${e instanceof Error?e.message:String(e)}`)}finally{de(!1)}}},fe=(0,Z.useMemo)(()=>r&&ee.get(r.branch_id)||[],[r,ee]),pe=(()=>{if(r&&a){let e=et(r),t=r.notes?.trim(),n=r.filesystem_status===`creating`;return(0,Q.jsxs)(`div`,{style:{padding:16},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:10,paddingBottom:12,marginBottom:4,borderBottom:`1px solid ${k.colorBorderSecondary}`},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,minWidth:0},children:[(0,Q.jsx)(`div`,{style:{width:36,height:36,display:`flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0},children:n?(0,Q.jsx)(Be,{}):e?.emoji?(0,Q.jsx)(`span`,{style:{fontSize:30},children:e.emoji}):(0,Q.jsx)(f,{style:{fontSize:30,color:k.colorInfo}})}),(0,Q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,minWidth:0},children:[(0,Q.jsx)(h.Title,{level:4,style:{margin:0,fontWeight:600},ellipsis:{tooltip:e?.displayName??r.name},children:e?.displayName??r.name}),(0,Q.jsx)(h.Text,{type:`secondary`,style:{fontSize:12},children:`Primary assistant`})]})]}),(0,Q.jsxs)(W,{size:4,wrap:!0,children:[(0,Q.jsx)(zr,{repo:a,branch:r,sessionCount:fe.length,onOpenBranch:v,showEnvButtons:!1,compact:!0}),r.created_by&&(0,Q.jsx)(Dt,{createdBy:r.created_by,currentUserId:c,userById:N,prefix:`Created by`}),r.issue_url&&(0,Q.jsx)(yn,{issueUrl:r.issue_url,currentRepo:a}),r.pull_request_url&&(0,Q.jsx)(Bn,{prUrl:r.pull_request_url,currentRepo:a})]}),t&&(0,Q.jsx)(`div`,{className:`markdown-compact`,style:{color:k.colorTextSecondary},children:(0,Q.jsx)(Pt,{content:t,compact:!0,showControls:!1})})]}),(0,Q.jsx)(vr,{branch:r,sessions:fe,userById:N,currentUserId:c,selectedSessionId:l,onSessionClick:u,onCreateSession:p,onForkSession:m,onSpawnSession:g,onOpenSessionSettings:y,mode:`panel`,client:O})]})}return s?(0,Q.jsx)(`div`,{style:{padding:16},children:(0,Q.jsx)(R,{type:`info`,showIcon:!0,message:`Assistant unavailable`,description:`This board has a primary assistant, but you do not have access to that assistant branch.`})}):(0,Q.jsxs)(`div`,{style:{padding:16},children:[(0,Q.jsx)(V,{image:V.PRESENTED_IMAGE_SIMPLE,description:(0,Q.jsx)(h.Text,{type:`secondary`,children:`This board does not have a primary assistant yet.`}),style:{padding:`24px 0 16px`}}),(0,Q.jsxs)(W,{orientation:`vertical`,size:12,style:{width:`100%`},children:[(0,Q.jsx)(h.Text,{strong:!0,children:`Assign an existing assistant`}),(0,Q.jsx)(o,{showSearch:!0,placeholder:`Select an assistant`,value:ce,onChange:le,options:se,optionFilterProp:`searchText`,disabled:ue||se.length===0,style:{width:`100%`}}),se.length===0&&(0,Q.jsx)(h.Text,{type:`secondary`,style:{fontSize:12},children:`No existing assistants are available to assign.`}),(0,Q.jsx)(i,{type:`primary`,onClick:B,loading:ue,disabled:!ce||!e||!O,children:`Assign`})]})]})})();return(0,Q.jsx)(`div`,{style:{height:`100%`,background:k.colorBgContainer,borderRight:`1px solid ${k.colorBorderSecondary}`,overflow:`hidden`},children:(0,Q.jsx)(d,{activeKey:ae,onChange:e=>oe(e),items:[{key:`assistant`,label:`Assistant`,children:(0,Q.jsx)(`div`,{style:{height:`calc(100vh - 112px)`,overflow:`auto`},children:pe})},{key:`all-sessions`,label:`All sessions`,children:e?(0,Q.jsx)(`div`,{style:{height:`calc(100vh - 112px)`,overflow:`auto`},children:(0,Q.jsx)(Hr,{board:e,currentBoardId:e.board_id,branchById:j,repoById:M,sessionsByBranch:ee,onSessionClick:u})}):(0,Q.jsx)(V,{image:V.PRESENTED_IMAGE_SIMPLE,description:`No board selected`})},{key:`comments`,label:`Comments`,children:e?(0,Q.jsx)(`div`,{style:{height:`calc(100vh - 112px)`},children:(0,Q.jsx)(Er,{client:O,boardId:e.board_id,comments:F,userById:N,currentUserId:c||`unknown`,boardObjects:I,branchById:j,onSendComment:e=>b?.(e),onReplyComment:x,onResolveComment:S,onToggleReaction:C,onDeleteComment:w,hoveredCommentId:T,selectedCommentId:E})}):(0,Q.jsx)(V,{image:V.PRESENTED_IMAGE_SIMPLE,description:`No board selected`})}],style:{height:`100%`},tabBarStyle:{margin:0,padding:`0 12px`},tabBarExtraContent:{right:D?(0,Q.jsx)(z,{title:`Collapse panel`,placement:`bottom`,children:(0,Q.jsx)(i,{type:`text`,size:`small`,icon:(0,Q.jsx)(te,{style:{fontSize:11}}),onClick:D,style:{marginRight:4}})}):void 0}})})});function Wr(e){let[t]=K.useForm(),[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(!1),o=(0,Z.useRef)(``),s=(0,Z.useCallback)(()=>{let n=t.getFieldsValue(),i=!!n.displayName?.trim(),a=!!(n.repoId||e?.repo_id);r(i&&a)},[t,e]);return(0,Z.useEffect)(()=>{e&&!t.getFieldValue(`repoId`)&&t.setFieldValue(`repoId`,e.repo_id),s()},[e,t,s]),{form:t,isFormValid:n,setIsFormValid:r,customRepoSelected:i,setCustomRepoSelected:a,validateForm:s,handleDisplayNameChange:(0,Z.useCallback)(e=>{let n=e.target.value,r=t.getFieldValue(`name`),i=`private-${Lt(n)}`;(!r||r===o.current)&&(t.setFieldValue(`name`,i),o.current=i),s()},[t,s]),resetForm:(0,Z.useCallback)(()=>{t.resetFields(),r(!1),a(!1),o.current=``},[t])}}var Gr=12e4;function Kr(e,t,{enabled:n=!0}={}){let r=mt(e),[i,a]=(0,Z.useState)(!1),o=(0,Z.useRef)(!1);return(0,Z.useEffect)(()=>{if(r){a(!1),o.current=!1;return}if(!n||!t||o.current)return;o.current=!0,a(!0),Promise.resolve(t({url:zt,slug:Xn,default_branch:`main`})).catch(()=>{});let e=setTimeout(()=>{a(!1),o.current=!1},Gr);return()=>clearTimeout(e)},[r,t,n]),(0,Z.useEffect)(()=>{!n&&!r&&(o.current=!1)},[n,r]),{frameworkRepo:r,isCloning:i&&!r}}var qr=({form:e,repos:t,frameworkRepo:n,isCloning:r,onDisplayNameChange:i,customRepoSelected:a,onCustomRepoChange:s,extraBeforeAdvanced:c})=>{let l=n?`${n.name||n.slug} (default)`:r?`Setting up framework repository...`:`No framework repository found`;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K.Item,{label:`Name`,required:!0,tooltip:`Human-friendly name and icon for this assistant`,children:(0,Q.jsxs)(W.Compact,{style:{display:`flex`},children:[(0,Q.jsx)(qt,{form:e,fieldName:`emoji`,defaultEmoji:`🤖`}),(0,Q.jsx)(K.Item,{name:`displayName`,noStyle:!0,rules:[{required:!0,message:`Please enter a name`}],children:(0,Q.jsx)(ze,{placeholder:`e.g. PR Reviewer, Command Center`,autoFocus:!0,onChange:i,style:{flex:1}})})]})}),(0,Q.jsx)(K.Item,{name:`description`,label:`Description`,tooltip:`What does this assistant do? Visible to other agents via MCP.`,children:(0,Q.jsx)(ze.TextArea,{placeholder:`e.g. Reviews PRs and provides feedback, Monitors CI/CD pipelines`,rows:2})}),(0,Q.jsx)(R,{type:`info`,showIcon:!1,style:{marginBottom:16},title:(0,Q.jsx)(h.Text,{type:`secondary`,style:{fontSize:12},children:`Each assistant gets a fresh board and becomes that board's primary assistant.`})}),c,r&&!n&&(0,Q.jsx)(R,{type:`info`,showIcon:!0,icon:(0,Q.jsx)(pe,{}),style:{marginBottom:16},title:`Setting up framework repository`,description:(0,Q.jsx)(h.Text,{type:`secondary`,style:{fontSize:12},children:`Cloning preset-io/agor-assistant. This usually takes 10-30 seconds.`})}),(0,Q.jsx)(E,{ghost:!0,size:`small`,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,Q.jsx)(b,{rotate:e?180:0}),items:[{key:`advanced`,label:(0,Q.jsxs)(W,{size:6,children:[(0,Q.jsx)(h.Text,{type:`secondary`,children:`Advanced Assistant Settings`}),(0,Q.jsx)(z,{title:`Assistants live in an Agor branch. These settings control the framework repository, branch name, and source branch used to create that assistant branch.`,children:(0,Q.jsx)(g,{style:{color:`var(--ant-color-text-tertiary)`}})})]}),children:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K.Item,{name:`repoId`,label:`Framework Repository`,children:(0,Q.jsx)(o,{placeholder:l,allowClear:!0,showSearch:!0,disabled:r&&!n,filterOption:(e,t)=>String(t?.label??``).toLowerCase().includes(e.toLowerCase()),options:[...t].sort((e,t)=>(e.name||e.slug).localeCompare(t.name||t.slug)).map(e=>({value:e.repo_id,label:`${e.name||e.slug}${e.repo_id===n?.repo_id?` (default)`:``}`})),onChange:e=>{s(!!e&&e!==n?.repo_id)},onClear:()=>s(!1)})}),a&&(0,Q.jsx)(R,{type:`warning`,showIcon:!0,icon:(0,Q.jsx)(g,{}),style:{marginBottom:16},title:`Custom repository selected`,description:(0,Q.jsx)(h.Text,{type:`secondary`,style:{fontSize:12},children:`The repository should be preset-io/agor-assistant or a fork/derivative. It contains an OpenClaw-inspired agent framework adapted for Agor that your assistant needs to operate.`})}),(0,Q.jsx)(K.Item,{name:`name`,label:`Branch Name`,rules:[{pattern:/^[a-z0-9-]+$/,message:`Only lowercase letters, numbers, and hyphens allowed`}],tooltip:`Auto-generated from display name. Override if needed.`,children:(0,Q.jsx)(ze,{placeholder:`private-my-assistant`})}),(0,Q.jsx)(K.Item,{name:`sourceBranch`,label:`Source Branch`,children:(0,Q.jsx)(ze,{placeholder:`main`})})]})}]})]})},Jr=({repoById:e,onValidityChange:t,formRef:n,onCreateRepo:r,availableAgents:i,mcpServerById:a=new Map,currentUser:o,client:s})=>{let c=Array.from(e.values()),{frameworkRepo:l,isCloning:u}=Kr(c,r),[d,f]=(0,Z.useState)(`claude-code`),{form:p,isFormValid:m,customRepoSelected:g,setCustomRepoSelected:_,validateForm:v,handleDisplayNameChange:y}=Wr(l);return(0,Z.useEffect)(()=>{!i.some(e=>e.id===d)&&i[0]?.id&&f(i[0].id)},[i,d]),(0,Z.useEffect)(()=>{let e=o?.default_agentic_config?.[d];p.setFieldsValue({...Yn(d,e),...d!==`codex`&&{codexSandboxMode:void 0,codexApprovalPolicy:void 0,codexNetworkAccess:void 0}})},[d,o,p]),(0,Z.useEffect)(()=>{t(m)},[m,t]),n.current=async()=>{try{let e=await p.validateFields(),t=o?.default_agentic_config?.[d],n=e.permissionMode??t?.permissionMode??Ye(d),r={displayName:e.displayName.trim(),description:e.description||void 0,emoji:e.emoji||void 0,repoId:e.repoId||l?.repo_id,branchName:e.name||`private-${Lt(e.displayName)}`,sourceBranch:e.sourceBranch||`main`,agent:d,modelConfig:e.modelConfig??t?.modelConfig,effort:e.effort??t?.modelConfig?.effort,mcpServerIds:e.mcpServerIds??t?.mcpServerIds,permissionMode:n};if(d===`codex`){let i=Ze(n);r.codexSandboxMode=e.codexSandboxMode??t?.codexSandboxMode??i.sandboxMode,r.codexApprovalPolicy=e.codexApprovalPolicy??t?.codexApprovalPolicy??i.approvalPolicy,r.codexNetworkAccess=e.codexNetworkAccess??t?.codexNetworkAccess??i.networkAccess}return r}catch{return null}},(0,Q.jsx)(K,{form:p,layout:`vertical`,onFieldsChange:v,initialValues:{sourceBranch:`main`},children:(0,Q.jsx)(qr,{form:p,repos:c,frameworkRepo:l,isCloning:u,onDisplayNameChange:y,customRepoSelected:g,onCustomRepoChange:_,extraBeforeAdvanced:(0,Q.jsx)(E,{ghost:!0,size:`small`,defaultActiveKey:[`first-session`],destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,Q.jsx)(b,{rotate:e?180:0}),items:[{key:`first-session`,label:(0,Q.jsx)(h.Text,{strong:!0,children:`First Session Configuration`}),children:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K.Item,{label:`Agentic Tool`,required:!0,children:(0,Q.jsx)(At,{agents:i,selectedAgentId:d,onSelect:e=>f(e),variant:`select`,showComparisonLink:!0})}),(0,Q.jsx)(E,{ghost:!0,size:`small`,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,Q.jsx)(b,{rotate:e?180:0}),items:[{key:`session-config`,label:(0,Q.jsx)(h.Text,{type:`secondary`,children:`Session Configuration`}),children:(0,Q.jsx)(Rt,{agenticTool:d,mcpServerById:a,showHelpText:!1,client:s})}]})]})}],style:{marginBottom:8}})})})},Yr=({onValidityChange:e,formRef:t})=>{let[n]=K.useForm(),r=(0,Z.useCallback)(()=>{setTimeout(()=>{e(!!n.getFieldsValue().name?.trim())},0)},[n,e]);return t.current=async()=>{try{return await n.validateFields(),hn(n)}catch{return null}},(0,Q.jsx)(K,{form:n,layout:`vertical`,preserve:!0,onValuesChange:r,children:(0,Q.jsx)(En,{form:n,autoFocus:!0})})},Xr=({repoById:e,boardById:t=new Map,currentBoardId:n,defaultPosition:r,onValidityChange:i,formRef:a,branchStorageConfig:o})=>{let[s]=K.useForm(),[c,l]=(0,Z.useState)(null),u=c?e.get(c):void 0,d=(0,Z.useCallback)(()=>{setTimeout(()=>{let e=s.getFieldsValue();i(!!(e.repoId&&e.sourceBranch&&e.name&&e.boardId))},0)},[s,i]),f=(0,Z.useRef)(!1);return(0,Z.useEffect)(()=>{if(f.current||e.size===0)return;let t=localStorage.getItem(`agor-last-repo-id`);if(t&&e.has(t))f.current=!0,s.setFieldsValue({repoId:t,sourceBranch:e.get(t)?.default_branch,...n?{boardId:n}:{}}),l(t),d();else if(e.size>0){f.current=!0;let t=ht(e)[0];s.setFieldsValue({repoId:t.repo_id,sourceBranch:t.default_branch,...n?{boardId:n}:{}}),l(t.repo_id),d()}},[e,n,s,d]),a.current=async()=>{try{let e=await s.validateFields(),t=e.refType||`branch`,n=an(e.storage_mode,o),i=n===`clone`&&typeof e.clone_depth==`number`&&e.clone_depth>0?e.clone_depth:void 0,a={repoId:e.repoId,name:e.name,ref:e.name,refType:t,createBranch:!0,sourceBranch:e.sourceBranch||u?.default_branch||`main`,pullLatest:!0,issue_url:e.issue_url,pull_request_url:e.pull_request_url,board_id:e.boardId,position:r,storage_mode:n,...i===void 0?{}:{clone_depth:i}};return e.repoId&&localStorage.setItem(`agor-last-repo-id`,e.repoId),a}catch{return null}},(0,Q.jsx)(K,{form:s,layout:`vertical`,onValuesChange:d,children:(0,Q.jsx)(Hn,{repoById:e,boardById:t,selectedRepoId:c,onRepoChange:t=>{l(t);let n=e.get(t);n?.default_branch&&s.setFieldValue(`sourceBranch`,n.default_branch)},defaultBranch:u?.default_branch||`main`,showUrlFields:!0,showBoardSelector:!0,requireBoard:!0,onFormChange:d,branchStorageConfig:o})})},Zr=({onValidityChange:e,formRef:t})=>{let[n]=K.useForm(),[r,i]=(0,Z.useState)(`remote`),a=(0,Z.useCallback)(()=>{setTimeout(()=>{let t=n.getFieldsValue();e(r===`local`?!!t.path?.trim():!!(t.url?.trim()&&t.slug?.trim()))},0)},[n,e,r]);return t.current=async()=>{try{let e=await n.validateFields();return r===`local`?{mode:`local`,local:{path:e.path,slug:e.slug||void 0}}:{mode:`remote`,remote:{url:e.url,slug:e.slug,default_branch:e.default_branch||`main`}}}catch{return null}},(0,Q.jsx)(K,{form:n,layout:`vertical`,onValuesChange:a,initialValues:{default_branch:`main`},children:(0,Q.jsx)(jn,{form:n,mode:`create`,repoMode:r,onRepoModeChange:t=>{let r=t.target.value;i(r),n.resetFields(),n.setFieldsValue({default_branch:r===`remote`?`main`:void 0}),e(!1)}})})},Qr={branch:!1,assistant:!1,board:!1,repository:!1},$r={branch:(0,Q.jsxs)(Q.Fragment,{children:[`A branch (built on`,` `,(0,Q.jsx)(`a`,{href:`https://git-scm.com/docs/git-branch`,target:`_blank`,rel:`noopener noreferrer`,children:`git branches`}),`) is essentially a place in the filesystem representing an isolated development branch. This is where one or more coding sessions take place. In Agor, they're generally ephemeral and follow the lifecycle of a given feature.`]}),assistant:`Assistants are long-lived agents with an identity, purpose, and goals. Think of them like employees. They have memory, can build their own skills, coordinate multiple coding agents, typically operate on their own Agor board, and can act proactively.`,board:`Boards are spatial canvases for organizing work. They contain branches, zones, cards, and other visual elements. Use boards to create workspaces for teams, projects, or assistants.`,repository:`Repositories connect your code to Agor. They can be cloned from GitHub or registered from a local path. Once connected, you can create branches for coding tasks.`},ei={branch:`Create Branch`,assistant:`Create Assistant`,board:`Create Board`,repository:`Add Repository`};function ti(e){Promise.resolve(e).catch(()=>{})}var ni=({open:e,onClose:t,currentBoardId:n,defaultPosition:a,availableAgents:o,currentUser:s,client:c,defaultTab:u=`assistant`,onCreateBranch:p,onCreateBoard:m,onCreateRepo:h,onCreateLocalRepo:g,onCreateAssistant:_,branchStorageConfig:v})=>{let y=X(Pn),b=X(vn),x=X(un),[S,C]=(0,Z.useState)(u),[w,T]=(0,Z.useState)(Qr),E=w[S],[D,O]=(0,Z.useState)(!1),[k,A]=(0,Z.useState)(null),[ee,j]=(0,Z.useState)(null),M=(0,Z.useRef)(null),te=(0,Z.useRef)(null),N=(0,Z.useRef)(null),P=(0,Z.useRef)(null);(0,Z.useEffect)(()=>{e?C(u):(T(Qr),O(!1),A(null),j(null))},[e,u]);let I=(0,Z.useCallback)((e,t)=>{T(n=>n[e]===t?n:{...n,[e]:t})},[]),L=(0,Z.useCallback)(e=>I(`branch`,e),[I]),ne=(0,Z.useCallback)(e=>I(`assistant`,e),[I]),re=(0,Z.useCallback)(e=>I(`board`,e),[I]),ie=(0,Z.useCallback)(e=>I(`repository`,e),[I]),z=e=>{C(e),j(null),A(null)},ae=async()=>{O(!0),j(null),A(null);try{switch(S){case`branch`:{let e=await M.current?.();e&&(ti(p(e)),t());break}case`board`:{let e=await te.current?.();e&&(ti(m(e)),t());break}case`repository`:{let e=await N.current?.();e&&(e.mode===`local`&&e.local?ti(g(e.local)):e.remote&&ti(h(e.remote)),t());break}case`assistant`:{let e=await P.current?.();e&&(A(`Creating assistant…`),await _(e,{onStatusChange:A}),t());break}}}catch(e){j(e instanceof Error?e.message:String(e))}finally{O(!1)}},oe=()=>{D||t()},se=[{key:`assistant`,label:(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(f,{style:{marginRight:8}}),`Assistant`]}),children:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(R,{type:`info`,showIcon:!0,description:$r.assistant,style:{marginBottom:16}}),(0,Q.jsx)(Jr,{repoById:y,onValidityChange:ne,formRef:P,onCreateRepo:h,availableAgents:o,mcpServerById:x,currentUser:s,client:c})]})},{key:`branch`,label:(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(l,{style:{marginRight:8}}),`Branch`]}),children:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(R,{type:`info`,showIcon:!0,description:$r.branch,style:{marginBottom:16}}),(0,Q.jsx)(Xr,{repoById:y,boardById:b,currentBoardId:n,defaultPosition:a,onValidityChange:L,formRef:M,branchStorageConfig:v})]})},{key:`board`,label:(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(F,{style:{marginRight:8}}),`Board`]}),children:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(R,{type:`info`,showIcon:!0,description:$r.board,style:{marginBottom:16}}),(0,Q.jsx)(Yr,{onValidityChange:re,formRef:te})]})},{key:`repository`,label:(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(de,{style:{marginRight:8}}),`Repository`]}),children:(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(R,{type:`info`,showIcon:!0,description:$r.repository,style:{marginBottom:16}}),(0,Q.jsx)(Zr,{onValidityChange:ie,formRef:N})]})}];return(0,Q.jsxs)(r,{title:`Create New...`,open:e,onCancel:oe,destroyOnHidden:!0,width:720,closable:!D,maskClosable:!1,keyboard:!D,footer:[(0,Q.jsx)(i,{onClick:oe,disabled:D,children:`Cancel`},`cancel`),(0,Q.jsx)(i,{type:`primary`,onClick:ae,disabled:!E,loading:D,children:D&&k?k:ei[S]},`create`)],styles:{body:{padding:`8px 0 0`}},children:[(0,Q.jsx)(d,{activeKey:S,onChange:z,items:se,style:{minHeight:360}}),ee&&(0,Q.jsx)(R,{type:`error`,showIcon:!0,message:`Couldn't finish creating this item`,description:ee,style:{marginTop:16}})]})},{Text:ri}=h,ii=Z.memo(({event:e,branchById:t,sessionById:n,sessionsByBranch:r,repos:a,userById:o,currentUserId:s,selectedSessionId:c,branchActions:l,client:u})=>{let{token:d}=q.useToken(),f=()=>{switch(e.type){case`cursor`:return(0,Q.jsx)(De,{style:{color:d.colorInfo}});case`message`:return(0,Q.jsx)(ie,{style:{color:d.colorSuccess}});case`tool`:return(0,Q.jsx)(ke,{style:{color:d.colorPrimary}});case`crud`:return(0,Q.jsx)(Ve,{style:{color:d.colorWarning}});case`connection`:return(0,Q.jsx)(G,{style:{color:d.colorError}});default:return(0,Q.jsx)(ke,{style:{color:d.colorTextSecondary}})}},p=()=>{switch(e.type){case`cursor`:return`blue`;case`message`:return`green`;case`tool`:return`purple`;case`crud`:return`orange`;case`connection`:return`red`;default:return`default`}},m=e=>e.toLocaleTimeString(`en-US`,{hour12:!1,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,fractionalSecondDigits:3}),h=e=>{if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}},_=e=>{let t=[`created`,`patched`,`updated`,`removed`].find(t=>e.includes(t));return t?{entity:e.replace(t,``).trim(),action:t}:{entity:e}},v=e.data&&typeof e.data==`object`&&`session_id`in e.data?e.data.session_id:void 0,y=e.data&&typeof e.data==`object`&&`branch_id`in e.data?e.data.branch_id:void 0,b=e.data&&typeof e.data==`object`&&`created_by`in e.data?e.data.created_by:void 0,x=v?n.get(v):void 0,S=y||x?.branch_id,C=S?t.get(S):void 0,w=C?a.find(e=>e.repo_id===C.repo_id):void 0,T=C&&r.get(C.branch_id)||[],E=b?o.get(b):void 0,{entity:D,action:k}=_(e.eventName),A=e.data?(0,Q.jsx)(`div`,{style:{maxWidth:400,maxHeight:400,overflow:`auto`},children:(0,Q.jsx)(`pre`,{style:{margin:0,padding:12,background:d.colorBgLayout,borderRadius:d.borderRadiusSM,fontSize:11,wordBreak:`break-all`,whiteSpace:`pre-wrap`},children:h(e.data)})}):(0,Q.jsx)(ri,{type:`secondary`,children:`No data`});return(0,Q.jsxs)(`div`,{style:{padding:`6px 12px`,borderLeft:`3px solid ${d.colorPrimary}`,borderBottom:`1px solid ${d.colorBorderSecondary}`,background:d.colorBgContainer,display:`flex`,flexWrap:`wrap`,alignItems:`center`,gap:4,fontSize:12},children:[f(),(0,Q.jsx)(ri,{code:!0,style:{fontSize:11,color:d.colorTextSecondary,minWidth:85},children:m(e.timestamp)}),(0,Q.jsx)(Ft,{color:p(),style:{margin:0,fontSize:11,minWidth:70,textAlign:`center`},children:e.type}),D&&(0,Q.jsx)(Ft,{style:{margin:0,fontSize:11,backgroundColor:d.colorBgContainer,borderColor:d.colorBorder,color:d.colorText},children:D}),k&&(0,Q.jsx)(Ft,{color:k===`created`?`green`:k===`removed`?`red`:k===`patched`||k===`updated`?`orange`:`default`,style:{margin:0,fontSize:11},children:k}),!D&&!k&&(0,Q.jsx)(ri,{strong:!0,style:{fontSize:12,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.eventName}),(0,Q.jsx)(`div`,{style:{flex:1}}),v&&(0,Q.jsx)(Kn,{id:v,icon:He,color:An.session,copyLabel:`Session ID`,metadataCard:x?(0,Q.jsx)(J,{session:x,branch:C,repo:w,userById:o,currentUserId:s,compact:!0}):void 0}),S&&C&&w&&(0,Q.jsx)(Kn,{id:S,label:C.name,icon:de,color:An.branch,copyLabel:`Branch ID`,metadataCard:(0,Q.jsx)(hr,{branch:C,repo:w,sessions:T,userById:o,currentUserId:s,selectedSessionId:c,inPopover:!0,client:u,...l})}),E&&(0,Q.jsx)(sn,{user:E,compact:!0,style:{margin:0,fontSize:11}}),e.data?(0,Q.jsx)(O,{content:A,title:`Event Data`,trigger:`click`,placement:`left`,children:(0,Q.jsx)(i,{type:`text`,size:`small`,icon:(0,Q.jsx)(g,{}),style:{padding:`0 4px`}})}):null]})}),{Text:ai,Title:oi}=h,si=({collapsed:e,onToggleCollapse:t,events:r,onClear:a,width:s=700,currentUserId:c,selectedSessionId:l,branchActions:u,currentBoard:d,client:f})=>{let{token:p}=q.useToken(),m=X(zn),h=X(Dn),g=X(pn),_=X(Pn),v=X(Gn),y=(0,Z.useMemo)(()=>Array.from(_.values()),[_]),{onFork:b,onSubsession:x,onOpenTerminal:S,onStartEnvironment:C,onStopEnvironment:w,onViewLogs:T}=ar(),E=(0,Z.useMemo)(()=>({...u,onForkSession:b,onSpawnSession:x,onOpenTerminal:S,onStartEnvironment:C,onStopEnvironment:w,onViewLogs:T}),[u,b,x,S,C,w,T]),[D,O]=(0,Z.useState)(!1),[k,ee]=(0,Z.useState)(!1),[j,M]=(0,Z.useState)(!1),[te,N]=(0,Z.useState)(!1),[P,F]=(0,Z.useState)(new Set),[ne,re]=(0,Z.useState)(new Set),[R,ie]=(0,Z.useState)([]),z=()=>{te||ie(r),N(!te)},oe=te?R:r,se=(0,Z.useMemo)(()=>oe.filter(e=>{if(!D&&e.type===`cursor`||!k&&e.type===`message`||!j&&e.eventName.includes(`terminals`)||P.size>0&&!P.has(e.type))return!1;if(ne.size>0&&e.type===`crud`){let t=[`created`,`patched`,`updated`,`removed`].find(t=>e.eventName.includes(t));if(!t||!ne.has(t))return!1}return!0}),[oe,D,k,j,P,ne]),le=oe.length,ue=se.length,de=te?r.length-R.length:0;return e?null:(0,Q.jsxs)(`div`,{style:{width:`100%`,height:`100%`,backgroundColor:p.colorBgContainer,borderLeft:`1px solid ${p.colorBorder}`,display:`flex`,flexDirection:`column`},children:[(0,Q.jsxs)(`div`,{style:{padding:12,borderBottom:`1px solid ${p.colorBorder}`,display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,Q.jsxs)(W,{children:[(0,Q.jsx)(G,{}),(0,Q.jsx)(oi,{level:5,style:{margin:0},children:`Live Event Stream`}),(0,Q.jsx)(Ft,{color:`blue`,style:{fontSize:10,marginLeft:4},children:`BETA`}),d&&(0,Q.jsx)(Ft,{icon:d.icon?(0,Q.jsx)(`span`,{children:d.icon}):void 0,style:{fontSize:11,marginLeft:4},children:d.name})]}),t&&(0,Q.jsx)(i,{type:`text`,size:`small`,icon:(0,Q.jsx)(n,{}),onClick:t,danger:!0})]}),(0,Q.jsx)(`div`,{style:{padding:`12px 12px 8px`,borderBottom:`1px solid ${p.colorBorder}`,backgroundColor:p.colorBgContainer},children:(0,Q.jsxs)(W,{size:`small`,children:[(0,Q.jsx)(i,{icon:te?(0,Q.jsx)(A,{}):(0,Q.jsx)(I,{}),onClick:z,type:te?`primary`:`default`,size:`small`,children:te?`Resume`:`Pause`}),(0,Q.jsx)(i,{icon:(0,Q.jsx)(ae,{}),onClick:a,disabled:le===0,type:`text`,size:`small`,danger:!0,children:`Clear`})]})}),(0,Q.jsxs)(`div`,{style:{padding:12,borderBottom:`1px solid ${p.colorBorder}`,backgroundColor:p.colorBgContainer},children:[(0,Q.jsxs)(`div`,{style:{marginBottom:12,display:`flex`,alignItems:`center`,gap:4},children:[(0,Q.jsx)(ai,{type:`secondary`,style:{fontSize:12},children:`Showing`}),(0,Q.jsx)(L,{count:ue,showZero:!0,style:{backgroundColor:p.colorPrimaryBgHover,color:p.colorText}}),(0,Q.jsx)(ai,{type:`secondary`,style:{fontSize:12},children:`out of`}),(0,Q.jsx)(L,{count:le,showZero:!0,style:{backgroundColor:p.colorPrimaryBgHover,color:p.colorText}}),(0,Q.jsx)(ai,{type:`secondary`,style:{fontSize:12},children:`events`}),te&&de>0&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ai,{type:`secondary`,style:{fontSize:12,marginLeft:8},children:`•`}),(0,Q.jsx)(L,{count:de,style:{backgroundColor:p.colorWarningBg,color:p.colorWarning}}),(0,Q.jsx)(ai,{type:`warning`,style:{fontSize:11},children:`new while paused`})]})]}),(0,Q.jsx)(ai,{type:`secondary`,style:{display:`block`,marginBottom:8,fontSize:12},children:`Quick Filters:`}),(0,Q.jsxs)(W,{wrap:!0,size:`middle`,style:{width:`100%`},children:[(0,Q.jsx)(ce,{checked:D,onChange:e=>O(e.target.checked),children:(0,Q.jsx)(ai,{style:{fontSize:12},children:`Cursor movement`})}),(0,Q.jsx)(ce,{checked:k,onChange:e=>ee(e.target.checked),children:(0,Q.jsx)(ai,{style:{fontSize:12},children:`Message streams`})}),(0,Q.jsx)(ce,{checked:j,onChange:e=>M(e.target.checked),children:(0,Q.jsx)(ai,{style:{fontSize:12},children:`Terminal data`})})]}),(0,Q.jsxs)(W,{orientation:`horizontal`,size:`small`,style:{width:`100%`,marginTop:12},wrap:!0,children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,flex:1,minWidth:200},children:[(0,Q.jsx)(ai,{type:`secondary`,style:{marginBottom:4,fontSize:11},children:`Event Types:`}),(0,Q.jsx)(o,{mode:`multiple`,placeholder:`Filter by type`,value:Array.from(P),onChange:e=>F(new Set(e)),style:{width:`100%`},size:`small`,allowClear:!0,maxTagCount:`responsive`,children:[`cursor`,`message`,`tool`,`crud`,`connection`,`other`].map(e=>(0,Q.jsx)(o.Option,{value:e,children:e},e))})]}),(0,Q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,flex:1,minWidth:200},children:[(0,Q.jsx)(ai,{type:`secondary`,style:{marginBottom:4,fontSize:11},children:`CRUD Operations:`}),(0,Q.jsx)(o,{mode:`multiple`,placeholder:`Filter by operation`,value:Array.from(ne),onChange:e=>re(new Set(e)),style:{width:`100%`},size:`small`,allowClear:!0,maxTagCount:`responsive`,children:[`created`,`patched`,`updated`,`removed`].map(e=>(0,Q.jsx)(o.Option,{value:e,children:e},e))})]})]})]}),(0,Q.jsx)(`div`,{style:{flex:1,overflow:`auto`},children:se.length===0?(0,Q.jsx)(V,{description:le===0?`No events captured yet`:`No events match current filters`,style:{marginTop:60}}):(0,Q.jsx)(`div`,{style:{border:`1px solid ${p.colorBorderSecondary}`,borderRadius:p.borderRadius,overflow:`hidden`,margin:12},children:se.map(e=>(0,Q.jsx)(ii,{event:e,branchById:m,sessionById:h,sessionsByBranch:g,repos:y,userById:v,currentUserId:c,selectedSessionId:l,branchActions:E,client:f},e.id))})})]})},ci=(e,t)=>{if(e.startsWith(`#`)){let n=e.slice(1),r=n.length===3?n.split(``).map(e=>`${e}${e}`).join(``):n;if(r.length===6){let e=Number.parseInt(r,16);return`rgba(${e>>16&255}, ${e>>8&255}, ${e&255}, ${t})`}}let n=e.match(/^rgba?\(([^)]+)\)$/);if(n){let[r,i,a]=n[1].split(`,`).map(e=>e.trim()).slice(0,3);return r==null||i==null||a==null?e:`rgba(${r}, ${i}, ${a}, ${t})`}return e},li=(e,t=.3)=>({background:ci(e.colorBgContainer,t),backdropFilter:`blur(20px) saturate(180%)`,WebkitBackdropFilter:`blur(20px) saturate(180%)`,boxShadow:`inset 0 1px 0 rgba(255, 255, 255, 0.12)`}),{Text:ui}=h,di=100,fi=({icon:e,message:t,time:n})=>{let{token:r}=q.useToken();return(0,Q.jsx)(be.Item,{style:{padding:`10px 0`},children:(0,Q.jsxs)(W,{align:`start`,children:[(0,Q.jsx)(S,{size:`small`,style:{background:r.colorFillSecondary,color:r.colorText},children:e}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{children:t}),n&&(0,Q.jsx)(ui,{type:`secondary`,style:{fontSize:12},children:Qn(n)})]})]})})},pi=({branchById:e,boardById:t,sessionById:n,userById:r,onBoardClick:i,onBranchClick:a,onSessionClick:o})=>{let{token:s}=q.useToken(),c=li(s),[u,d]=(0,Z.useState)(`all`),m=(0,Z.useMemo)(()=>({cursor:`pointer`,marginInlineEnd:0}),[]),h=(0,Z.useCallback)((e,n)=>{let o=e.board_id?t.get(e.board_id):void 0,s=r.get(e.created_by),c=et(e),l=c?.displayName??e.name;return(0,Q.jsxs)(W,{size:4,wrap:!0,children:[s?(0,Q.jsx)(sn,{user:s,compact:!0}):(0,Q.jsx)(ui,{strong:!0,children:`Someone`}),(0,Q.jsx)(ui,{type:`secondary`,children:`created`}),n?(0,Q.jsx)(Yt,{name:l,emoji:c?.emoji,compact:!0,title:e.name,onClick:()=>a(e.branch_id),style:m}):(0,Q.jsx)(ot,{branch:l,compact:!0,title:e.name,onClick:()=>a(e.branch_id)}),o&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ui,{type:`secondary`,children:`on`}),(0,Q.jsx)(It,{board:o,compact:!0,onClick:()=>i(o.board_id),style:m})]})]})},[t,m,i,a,r]),g=(0,Z.useCallback)(n=>{let s=e.get(n.branch_id),c=s?.board_id?t.get(s.board_id):void 0,l=r.get(n.created_by),u=Jt(n,{includeAgentFallback:!0,includeIdFallback:!0}),d=new Date(n.created_at).getTime(),f=new Date(n.last_updated).getTime(),p=Math.abs(f-d)<1e3?`started`:`updated`;return(0,Q.jsxs)(W,{size:4,wrap:!0,children:[l?(0,Q.jsx)(sn,{user:l,compact:!0}):(0,Q.jsx)(ui,{strong:!0,children:`Someone`}),(0,Q.jsx)(ui,{type:`secondary`,children:p}),(0,Q.jsx)(O,{trigger:`hover`,title:(0,Q.jsx)(ui,{style:{maxWidth:320,display:`block`},children:u}),content:(0,Q.jsxs)(ui,{type:`secondary`,style:{fontSize:12},children:[n.agentic_tool,` · `,n.status.replaceAll(`_`,` `)]}),children:(0,Q.jsx)(Tn,{ariaLabel:u,title:u,onClick:()=>o(n.session_id),style:{...m,display:`inline-flex`,alignItems:`center`,paddingInline:6}})}),s&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ui,{type:`secondary`,children:`in`}),(0,Q.jsx)(ot,{branch:s.name,compact:!0,onClick:()=>a(s.branch_id)})]}),c&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ui,{type:`secondary`,children:`on`}),(0,Q.jsx)(It,{board:c,compact:!0,onClick:()=>i(c.board_id),style:m})]})]})},[t,e,i,a,o,m,r]),_=(0,Z.useMemo)(()=>[...Array.from(e.values()).filter(e=>!e.archived).map(e=>{let t=nt(e);return{id:`branch:${e.branch_id}`,type:t?`assistants`:`branches`,dttm:e.created_at,entityId:e.branch_id}}),...Array.from(n.values()).filter(e=>!e.archived).map(e=>({id:`session:${e.session_id}`,type:`sessions`,dttm:e.last_updated,entityId:e.session_id}))].filter(e=>u===`all`||e.type===u).sort((e,t)=>new Date(t.dttm).getTime()-new Date(e.dttm).getTime()).slice(0,di),[e,n,u]),v=(0,Z.useCallback)(e=>e.type===`sessions`?(0,Q.jsx)(Fe,{}):e.type===`assistants`?(0,Q.jsx)(f,{}):(0,Q.jsx)(l,{}),[]),y=(0,Z.useCallback)(t=>{if(t.type===`sessions`){let e=n.get(t.entityId);return e?g(e):null}let r=e.get(t.entityId);return r?h(r,t.type===`assistants`):null},[e,h,n,g]);return(0,Q.jsxs)(`section`,{"aria-label":`Team activity`,style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,flexWrap:`wrap`,marginBottom:8,gap:6},children:[(0,Q.jsxs)(W,{size:6,children:[(0,Q.jsx)(ve,{style:{color:s.colorTextSecondary,fontSize:13}}),(0,Q.jsx)(ui,{strong:!0,style:{fontSize:14},children:`Team activity`})]}),(0,Q.jsx)(oe,{size:`small`,value:u,onChange:d,options:[{label:(0,Q.jsx)(z,{title:`All activity`,children:`All`}),value:`all`},{label:(0,Q.jsx)(z,{title:`Branches`,children:(0,Q.jsx)(l,{"aria-label":`Branches`})}),value:`branches`},{label:(0,Q.jsx)(z,{title:`Sessions`,children:(0,Q.jsx)(Fe,{"aria-label":`Sessions`})}),value:`sessions`},{label:(0,Q.jsx)(z,{title:`Assistants`,children:(0,Q.jsx)(f,{"aria-label":`Assistants`})}),value:`assistants`}]})]}),(0,Q.jsx)(p,{style:{flex:1,minHeight:0,border:`1px solid ${s.colorBorderSecondary}`,borderRadius:s.borderRadiusLG,...c},styles:{body:{padding:0,height:`100%`,overflow:`auto`,background:`transparent`}},children:_.length===0?(0,Q.jsx)(V,{image:V.PRESENTED_IMAGE_SIMPLE,description:`No recent activity`,style:{padding:`24px 0`}}):(0,Q.jsx)(be,{rowKey:`id`,dataSource:_,renderItem:e=>{let t=y(e);return t?(0,Q.jsx)(fi,{icon:v(e),message:t,time:e.dttm}):null},style:{padding:`0 12px`}})})]})},{Text:mi}=h,hi=50,gi=e=>{let t=new Map;for(let n of e.values()){if(n.archived||!n.board_id)continue;let e=t.get(n.board_id)??[];e.push(n),t.set(n.board_id,e)}return t},_i=e=>{let t=new Map;for(let[n,r]of e){let e=r.filter(e=>!e.archived);e.length>0&&t.set(n,e)}return t},vi=e=>e.filter(e=>e.status===`running`||e.status===`awaiting_permission`||e.status===`awaiting_input`),yi=({board:e,branches:t,sessions:n,onClick:r})=>{let{token:i}=q.useToken(),[a,o]=(0,Z.useState)(!1),[s,c]=(0,Z.useState)(!1),l=vi(n).length,u=(0,Z.useMemo)(()=>[...n].sort((e,t)=>new Date(t.last_updated).getTime()-new Date(e.last_updated).getTime())[0],[n]);return(0,Q.jsx)(`button`,{type:`button`,onClick:r,onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),onFocus:()=>c(!0),onBlur:()=>c(!1),style:{display:`block`,width:`100%`,height:`100%`,textAlign:`left`,border:`1px solid ${a?i.colorPrimary:i.colorBorderSecondary}`,borderRadius:i.borderRadiusLG,padding:`12px 14px`,cursor:`pointer`,...li(i,.3),boxShadow:a?`${i.boxShadowSecondary}, inset 0 1px 0 rgba(255, 255, 255, 0.12)`:void 0,outline:s?`2px solid ${i.colorPrimary}`:void 0,outlineOffset:s?2:void 0,transition:`border-color 0.2s, box-shadow 0.2s`,fontFamily:`inherit`},children:(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:10},children:[(0,Q.jsx)(`div`,{style:{width:36,height:36,borderRadius:8,background:i.colorFillTertiary,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:20,flexShrink:0},children:e.icon||`📋`}),(0,Q.jsxs)(`div`,{style:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,gap:4},children:[(0,Q.jsx)(z,{title:e.name,children:(0,Q.jsx)(mi,{strong:!0,style:{fontSize:14,display:`block`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name})}),(0,Q.jsxs)(`div`,{style:{display:`flex`,gap:10},children:[(0,Q.jsxs)(mi,{type:`secondary`,style:{fontSize:12},children:[t.length,` branch`,t.length===1?``:`es`]}),l>0&&(0,Q.jsxs)(mi,{type:`secondary`,style:{fontSize:12},children:[(0,Q.jsx)(Ve,{style:{marginRight:2}}),l,` active`]})]}),(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[(0,Q.jsx)(Ce,{style:{fontSize:11,color:i.colorTextSecondary}}),(0,Q.jsx)(mi,{type:`secondary`,style:{fontSize:12},children:u?`Last session ${Qn(u.last_updated)}`:`No sessions yet`})]})]})]})})},bi=({boardById:e,recentBoardIds:t=[],branchById:n,sessionsByBranch:r,onBoardClick:a,onOpenCreateDialog:o})=>{let s=(0,Z.useRef)(null),[c,l]=(0,Z.useState)(4),u=(0,Z.useMemo)(()=>{let i=new Map((t??[]).map((e,t)=>[e,t])),a=gi(n),o=_i(r);return Array.from(e.values()).filter(e=>!e.archived).map(e=>{let t=a.get(e.board_id)??[],n=t.flatMap(e=>o.get(e.branch_id)??[]),r=Math.max(new Date(e.last_updated).getTime(),...t.map(e=>new Date(e.updated_at||e.created_at).getTime()),...n.map(e=>new Date(e.last_updated).getTime()));return{board:e,branches:t,sessions:n,latest:Number.isFinite(r)?r:0,visitRank:i.get(e.board_id)??1/0}}).sort((e,t)=>e.visitRank-t.visitRank||t.latest-e.latest||e.board.name.localeCompare(t.board.name)).slice(0,hi)},[e,t,n,r]);return(0,Z.useEffect)(()=>{if(!s.current)return;let e=new ResizeObserver(([e])=>{let t=e.contentRect.width;l(t<400?1:t<700?2:4)});return e.observe(s.current),()=>e.disconnect()},[u.length>0]),(0,Q.jsxs)(`section`,{"aria-label":`Boards`,style:{marginBottom:24},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:12},children:[(0,Q.jsx)(mi,{strong:!0,style:{fontSize:14},children:`Boards`}),(0,Q.jsx)(i,{type:`link`,size:`small`,icon:(0,Q.jsx)(P,{}),style:{padding:0},onClick:()=>o(`board`),children:`New board`})]}),u.length===0?(0,Q.jsx)(V,{image:V.PRESENTED_IMAGE_SIMPLE,description:`No boards yet`,style:{padding:`24px 0`},children:(0,Q.jsx)(i,{type:`primary`,onClick:()=>o(`board`),children:`Create your first board`})}):(0,Q.jsx)(`div`,{ref:s,style:{display:`grid`,gridTemplateColumns:`repeat(${c}, minmax(0, 1fr))`,gap:12},children:u.map(({board:e,branches:t,sessions:n})=>(0,Q.jsx)(yi,{board:e,branches:t,sessions:n,onClick:()=>a(e.board_id)},e.board_id))})]})},{Text:xi}=h,Si=50,Ci=e=>Array.isArray(e)?e:e.data??[],wi=({doc:e})=>{let{token:t}=q.useToken(),n=dt(),r=wr(e.uri),i=Cr(`/knowledge`,r,e.path);return(0,Q.jsx)(be.Item,{onClick:()=>n(i),style:{cursor:`pointer`,padding:`10px 0`},children:(0,Q.jsx)(be.Item.Meta,{avatar:e.icon_emoji?(0,Q.jsx)(`span`,{style:{fontSize:18,lineHeight:`22px`},children:e.icon_emoji}):(0,Q.jsx)(v,{style:{color:t.colorTextTertiary}}),title:(0,Q.jsxs)(W,{size:6,style:{maxWidth:`100%`},children:[(0,Q.jsx)(xi,{ellipsis:{tooltip:e.title||e.path},style:{minWidth:0},children:e.title||e.path}),(0,Q.jsx)(tn,{namespace:r||`Knowledge`,style:{marginInlineEnd:0}})]}),description:(0,Q.jsxs)(W,{size:6,wrap:!0,children:[(0,Q.jsx)(xi,{type:`secondary`,style:{fontSize:12},children:e.path}),e.updated_at&&(0,Q.jsxs)(xi,{type:`secondary`,style:{fontSize:12},children:[`· `,Qn(e.updated_at)]})]})})})},Ti=({client:e,connected:t})=>{let{token:n}=q.useToken(),r=li(n),[i,a]=(0,Z.useState)([]),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(null),[u,d]=(0,Z.useState)(``),f=(0,Z.useMemo)(()=>{let e=u.trim().toLowerCase();return e?i.filter(t=>(t.title||t.path).toLowerCase().includes(e)||t.path.toLowerCase().includes(e)):i},[i,u]);return(0,Z.useEffect)(()=>{let n=!1;if(!e||!t){s(!1);return}return s(!0),l(null),e.service(`kb/documents`).find({query:{archived:!1,$limit:Si,$sort:{updated_at:-1}}}).then(e=>{n||a(Ci(e))}).catch(()=>{n||l(`Failed to load knowledge docs`)}).finally(()=>{n||s(!1)}),()=>{n=!0}},[e,t]),(0,Q.jsxs)(`section`,{"aria-label":`Knowledge base`,style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,marginBottom:8,gap:6},children:[(0,Q.jsx)(se,{style:{color:n.colorTextSecondary,fontSize:13}}),(0,Q.jsx)(xi,{strong:!0,style:{fontSize:14,flex:1},children:`Knowledge`}),(0,Q.jsx)(ze,{size:`small`,placeholder:`Search...`,prefix:(0,Q.jsx)(B,{style:{color:n.colorTextQuaternary,fontSize:11}}),value:u,onChange:e=>d(e.target.value),allowClear:!0,style:{flex:`0 1 120px`,minWidth:80,fontSize:12}})]}),(0,Q.jsx)(p,{loading:o,style:{flex:1,minHeight:0,border:`1px solid ${n.colorBorderSecondary}`,borderRadius:n.borderRadiusLG,...r},styles:{body:{padding:0,height:`100%`,overflow:`auto`,background:`transparent`}},children:c?(0,Q.jsx)(V,{image:V.PRESENTED_IMAGE_SIMPLE,description:c,style:{padding:`24px 0`}}):i.length===0&&!t?(0,Q.jsx)(V,{image:V.PRESENTED_IMAGE_SIMPLE,description:`Reconnect to refresh Knowledge`,style:{padding:`24px 0`}}):i.length===0?(0,Q.jsx)(V,{image:V.PRESENTED_IMAGE_SIMPLE,description:`No Knowledge docs yet`,style:{padding:`24px 0`}}):f.length===0?(0,Q.jsx)(V,{image:V.PRESENTED_IMAGE_SIMPLE,description:`No matching docs`,style:{padding:`24px 0`}}):(0,Q.jsx)(be,{rowKey:`document_id`,dataSource:f,renderItem:e=>(0,Q.jsx)(wi,{doc:e})})})]})},Ei={running:`Running`,awaiting_permission:`Awaiting permission`,awaiting_input:`Awaiting input`,stopping:`Stopping`,timed_out:`Timed out`,failed:`Failed`,idle:`Idle`,completed:`Completed`},Di={running:`status-dot-run`,awaiting_permission:`status-dot-wait`,awaiting_input:`status-dot-wait`,stopping:`status-dot-wait`},Oi=({status:e,size:t=7})=>{let{token:n}=q.useToken(),r=(()=>{switch(e){case`running`:return n.colorSuccess;case`awaiting_permission`:case`awaiting_input`:case`stopping`:return n.colorWarning;case`timed_out`:case`failed`:return n.colorError;default:return n.colorTextQuaternary}})(),i=Di[e]??``,a=Ei[e]??e.replaceAll(`_`,` `);return(0,Q.jsx)(z,{title:a,children:(0,Q.jsx)(`span`,{role:`img`,"aria-label":`Status: ${a}`,className:i,style:{display:`inline-block`,width:t,height:t,borderRadius:`50%`,background:r,flexShrink:0}})})},{Text:ki}=h,Ai=100,ji=({session:e,branch:t,board:n,onClick:r})=>{let{token:i}=q.useToken(),a=Jt(e,{includeAgentFallback:!0}),o=!!(e.genealogy.parent_session_id||e.genealogy.forked_from_session_id),s=!!(n||t);return(0,Q.jsxs)(be.Item,{onClick:r,style:{cursor:`pointer`,padding:`8px 14px`,borderBlockEnd:`1px solid ${i.colorBorderSecondary}`,display:`flex`,flexDirection:`column`,alignItems:`stretch`,gap:4},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,Q.jsx)(Oi,{status:e.status}),o&&(0,Q.jsx)(Pe,{style:{fontSize:11,color:i.colorTextTertiary,flexShrink:0}}),(0,Q.jsx)(z,{title:a,children:(0,Q.jsx)(ki,{ellipsis:!0,style:{fontSize:13,fontWeight:500,flex:1,minWidth:0},children:a})}),(0,Q.jsx)(ki,{type:`secondary`,style:{fontSize:12,flexShrink:0,whiteSpace:`nowrap`},children:Qn(e.last_updated)})]}),s&&(0,Q.jsxs)(W,{size:4,style:{paddingLeft:13},children:[n&&(0,Q.jsx)(It,{board:n,compact:!0}),t&&(0,Q.jsx)(ot,{branch:t.name,compact:!0})]})]})},Mi=({sessionById:e,branchById:t,boardById:n,currentUserId:r,onSessionClick:i})=>{let{token:a}=q.useToken(),[o,s]=(0,Z.useState)(``),[c,l]=lt(pr,`recent`),u=(0,Z.useMemo)(()=>Array.from(e.values()).filter(e=>!e.archived&&(!r||e.created_by===r)),[r,e]),d=o.trim(),f=cr(d),m=(0,Z.useMemo)(()=>(f?lr(u,d).map(({session:e})=>e):mr(u,c)).slice(0,Ai),[u,f,d,c]);return(0,Q.jsxs)(`section`,{"aria-label":r?`My sessions`:`Sessions`,style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:12,gap:8},children:[(0,Q.jsx)(ki,{strong:!0,style:{fontSize:14},children:r?`My Sessions`:`Sessions`}),(0,Q.jsx)(`div`,{style:{display:`flex`,gap:8,alignItems:`center`},children:(0,Q.jsx)(or,{value:o,onChange:s,sort:c,onSortChange:l,searching:f,placeholder:`Filter sessions...`})})]}),(0,Q.jsx)(p,{styles:{body:{padding:0,flex:1,minHeight:240,overflowY:`auto`}},style:{flex:1,display:`flex`,flexDirection:`column`,border:`1px solid ${a.colorBorderSecondary}`,borderRadius:a.borderRadiusLG,...li(a,.3)},children:m.length===0?(0,Q.jsx)(V,{image:V.PRESENTED_IMAGE_SIMPLE,description:f?`No matching sessions`:`No sessions yet`,style:{padding:`28px 0`}}):(0,Q.jsx)(be,{rowKey:`session_id`,dataSource:m,renderItem:e=>{let r=t.get(e.branch_id);return(0,Q.jsx)(ji,{session:e,branch:r,board:r?.board_id?n.get(r.board_id):void 0,onClick:()=>i(e.session_id)})}})})]})},{Text:Ni}=h,Pi=({icon:e,value:t,valueTooltip:n,label:r,iconBg:i,iconColor:a})=>{let{token:o}=q.useToken();return(0,Q.jsxs)(`div`,{style:{flex:1,position:`relative`,padding:`14px 16px`,...li(o,.3),border:`1px solid ${o.colorBorderSecondary}`,borderRadius:o.borderRadiusLG,minWidth:0,overflow:`hidden`},children:[(0,Q.jsx)(`div`,{style:{position:`absolute`,top:12,right:12,width:30,height:30,borderRadius:o.borderRadiusSM,background:i,display:`flex`,alignItems:`center`,justifyContent:`center`,color:a,fontSize:14},children:e}),(0,Q.jsx)(z,{title:n,children:(0,Q.jsx)(`div`,{style:{fontSize:28,fontWeight:700,lineHeight:1,color:o.colorText,marginBottom:4,paddingRight:46,cursor:n?`default`:void 0},children:t})}),(0,Q.jsx)(Ni,{type:`secondary`,style:{fontSize:12,display:`block`},children:r})]})},Fi=({sessionById:e,currentUserId:t,teamSize:n})=>{let{token:r}=q.useToken(),[i,a]=(0,Z.useState)(()=>Date.now());(0,Z.useEffect)(()=>{let e=setInterval(()=>a(Date.now()),6e4);return()=>clearInterval(e)},[]);let{activeTeammates:o,myThisWeek:s,runningNow:c,activeThisWeek:l}=(0,Z.useMemo)(()=>{let n=i-10080*60*1e3,r=new Set,a=0,o=0,s=0;for(let i of e.values()){if(i.archived)continue;let e=i.last_updated?new Date(i.last_updated).getTime():i.created_at?new Date(i.created_at).getTime():NaN;i.status===`running`&&o++,!Number.isNaN(e)&&e>n&&(s++,i.created_by&&r.add(i.created_by),i.created_by===t&&a++)}return{activeTeammates:r.size,myThisWeek:a,runningNow:o,activeThisWeek:s}},[e,t,i]),d=(n??0)>1,f=d&&t&&l>0?`${s}/${l}`:l,p=d&&t&&l>0?`${s} by you, ${l} by the team`:void 0;return(0,Q.jsxs)(`div`,{style:{display:`flex`,gap:12,marginBottom:24},children:[(0,Q.jsx)(Pi,{icon:(0,Q.jsx)(ve,{}),value:o,label:`Teammates active this week`,iconBg:r.colorWarningBg,iconColor:r.colorWarning}),(0,Q.jsx)(Pi,{icon:(0,Q.jsx)(Ve,{}),value:c,label:`Sessions running now`,iconBg:r.colorPrimaryBg,iconColor:r.colorPrimary}),(0,Q.jsx)(Pi,{icon:(0,Q.jsx)(u,{}),value:f,valueTooltip:p,label:`Sessions active this week`,iconBg:r.colorSuccessBg,iconColor:r.colorSuccess})]})},{Text:Ii}=h,Li=5,Ri=({session:e,onSessionClick:t})=>{let{token:n}=q.useToken(),[r,i]=(0,Z.useState)(!1),a=Jt(e,{includeAgentFallback:!0});return(0,Q.jsxs)(`button`,{type:`button`,onFocus:()=>i(!0),onBlur:()=>i(!1),style:{display:`flex`,width:`100%`,alignItems:`center`,gap:10,padding:`8px 12px`,cursor:`pointer`,background:`none`,border:`none`,borderBottom:`1px solid ${n.colorBorderSecondary}`,fontFamily:`inherit`,textAlign:`left`,outline:r?`2px solid ${n.colorPrimary}`:void 0,outlineOffset:r?-2:void 0},onClick:()=>t(e.session_id),children:[(0,Q.jsx)(Oi,{status:e.status}),(0,Q.jsx)(z,{title:e.description||a,children:(0,Q.jsx)(Ii,{ellipsis:!0,style:{flex:1,fontSize:14,fontWeight:500,minWidth:0},children:a})}),(0,Q.jsx)(Ii,{type:`secondary`,style:{fontSize:12,flexShrink:0,whiteSpace:`nowrap`},children:Qn(e.last_updated)})]})},zi=({sessions:e,onSessionClick:t})=>{let{token:n}=q.useToken(),r=e.slice(0,Li),i=e.length-r.length;return(0,Q.jsxs)(`div`,{style:{marginBottom:24},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,marginBottom:8},children:[(0,Q.jsx)(Ve,{style:{color:n.colorWarning}}),(0,Q.jsxs)(Ii,{strong:!0,style:{fontSize:14},children:[`Jump back in — `,e.length,` session`,e.length===1?``:`s`,` waiting for your reply`]})]}),(0,Q.jsxs)(`div`,{style:{border:`1px solid ${n.colorBorderSecondary}`,borderRadius:n.borderRadiusLG,overflow:`hidden`,...li(n,.3)},children:[r.map(e=>(0,Q.jsx)(Ri,{session:e,onSessionClick:t},e.session_id)),i>0&&(0,Q.jsx)(`div`,{style:{padding:`8px 12px`,textAlign:`center`},children:(0,Q.jsxs)(Ii,{type:`secondary`,style:{fontSize:12},children:[`and `,i,` more`]})})]})]})},{Text:Bi}=h,Vi=({steps:e,onDismiss:t})=>{let{token:n}=q.useToken(),r=e.filter(e=>e.done).length,a=e.length===0?0:Math.round(r/e.length*100);return(0,Q.jsxs)(`div`,{style:{border:`1px solid ${n.colorBorderSecondary}`,borderRadius:n.borderRadiusLG,padding:`16px 20px`,marginBottom:24,...li(n,.3)},children:[(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,marginBottom:12},children:[(0,Q.jsx)(Bi,{strong:!0,style:{fontSize:14,flex:1},children:`Get started with Agor`}),(0,Q.jsxs)(Bi,{type:`secondary`,style:{fontSize:12,flexShrink:0},children:[r,`/`,e.length]}),(0,Q.jsx)(H,{percent:a,showInfo:!1,style:{width:60,margin:0,flexShrink:0},size:`small`,strokeColor:n.colorPrimary})]}),(0,Q.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8},children:e.map(e=>(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10},children:[(0,Q.jsx)(`span`,{style:{width:16,height:16,borderRadius:`50%`,flexShrink:0,display:`flex`,alignItems:`center`,justifyContent:`center`,background:e.done?n.colorPrimary:`transparent`,border:e.done?`none`:`1.5px solid ${n.colorBorderSecondary}`},children:e.done&&(0,Q.jsx)(ue,{style:{fontSize:9,color:n.colorTextLightSolid}})}),(0,Q.jsx)(Bi,{style:{fontSize:14,flex:1,color:e.done?n.colorTextTertiary:n.colorText,textDecoration:e.done?`line-through`:`none`},children:e.label}),!e.done&&(0,Q.jsx)(i,{type:`link`,size:`small`,href:e.onClick?void 0:e.href,onClick:e.onClick,style:{padding:0,fontSize:12,height:`auto`},children:e.cta})]},e.id))}),(0,Q.jsx)(`div`,{style:{marginTop:12},children:(0,Q.jsx)(i,{type:`text`,size:`small`,onClick:t,style:{padding:0,fontSize:12,color:n.colorTextQuaternary,height:`auto`},children:`Don't show again`})})]})},{Content:Hi}=Ne,{Text:Ui,Title:Wi}=h,Gi=`agor:onboarding-card-hidden`,Ki=`agor:homepage-sidebar-width`,qi=340,Ji=240,Yi=.5,Xi=new Set([`awaiting_permission`,`awaiting_input`]),Zi=[{key:`assistant`,label:`New assistant`,icon:(0,Q.jsx)(f,{})},{key:`branch`,label:`New branch`,icon:(0,Q.jsx)(l,{})},{key:`board`,label:`New board`,icon:(0,Q.jsx)(F,{})}],Qi=(0,Z.memo)(function(e){let{token:t}=q.useToken(),n=Sr[Et(t)?`dark`:`light`],a=X(vn),s=X(zn),c=X(Pn),u=X(Dn),d=X(pn),p=X(Gn),m=X(un),[g,_]=(0,Z.useState)(()=>localStorage.getItem(Gi)===`true`),v=(e.currentUserId?p.get(e.currentUserId):null)?.name||`there`,[y,b]=(0,Z.useState)(()=>{try{let e=Number(localStorage.getItem(Ki));if(!Number.isFinite(e)||e<=0)return qi;let t=typeof window<`u`?window.innerWidth*Yi:1/0;return Math.min(Math.max(Ji,e),Math.max(Ji,t))}catch{return qi}}),[x,S]=(0,Z.useState)(()=>typeof window<`u`&&window.innerWidth>=992),[C,w]=(0,Z.useState)(!1),T=(0,Z.useRef)(!1),E=(0,Z.useRef)(0),D=(0,Z.useRef)(0),O=(0,Z.useRef)(null),k=(0,Z.useRef)(y);k.current=y,(0,Z.useEffect)(()=>{let e=()=>S(window.innerWidth>=992);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let A=(0,Z.useCallback)(e=>{e.preventDefault(),T.current=!0,E.current=e.clientX,D.current=k.current;let t=e=>{if(!T.current)return;let t=window.innerWidth*Yi;b(Math.max(Ji,Math.min(t,D.current-(e.clientX-E.current))))};function n(){T.current=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,r),document.body.style.cursor=``,document.body.style.userSelect=``,O.current=null}function r(){b(e=>{try{localStorage.setItem(Ki,String(Math.round(e)))}catch{}return e}),n()}O.current=n,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`,document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,r)},[]);(0,Z.useEffect)(()=>()=>O.current?.(),[]);let ee=(0,Z.useMemo)(()=>Array.from(u.values()).filter(t=>!t.archived&&Xi.has(t.status)&&(!e.currentUserId||t.created_by===e.currentUserId)),[u,e.currentUserId]),j=(0,Z.useMemo)(()=>{let t=(e.recentBoardIds??[]).find(e=>a.get(e)?.archived===!1);if(t)return t;for(let e of a.values())if(!e.archived)return e.board_id},[a,e.recentBoardIds]),M=(0,Z.useMemo)(()=>Array.from(a.values()).filter(e=>!e.archived).map(e=>({value:e.board_id,label:`${e.icon||`📋`} ${e.name}`})),[a]),[te,N]=(0,Z.useState)(!1),[F,I]=(0,Z.useState)(),[L,ne]=(0,Z.useState)(`assistant`),re=(0,Z.useCallback)((e=`assistant`)=>{ne(e),I(j),N(!0)},[j]),R=(0,Z.useCallback)(()=>{N(!1),e.onOpenCreateDialog(L,F)},[e.onOpenCreateDialog,L,F]),ie=(0,Z.useMemo)(()=>{let t=a.size>0,n=c.size>0,r=(m?.size??0)>0,i=p.size>1,o=Array.from(u.values()).some(t=>!t.archived&&(!e.currentUserId||t.created_by===e.currentUserId));return[{id:`repo`,label:`Connect a repository`,done:n,cta:`Connect →`,onClick:()=>e.onOpenSettings(`repos`)},{id:`board`,label:`Create your first board`,done:t,cta:`Create →`,onClick:()=>e.onOpenCreateDialog(`board`)},{id:`session`,label:`Launch an AI session`,done:o,cta:`Start →`,onClick:re},{id:`mcp`,label:`Configure MCP tools`,done:r,cta:`Set up →`,onClick:()=>e.onOpenSettings(`mcp`)},{id:`invite`,label:`Invite a teammate`,done:i,cta:`Invite →`,onClick:()=>e.onOpenSettings(`users`)}]},[a,u,c,p,m,e.currentUserId,e.onOpenCreateDialog,e.onOpenSettings,re]),z=!g&&ie.some(e=>!e.done);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{style:{height:`100%`,overflow:`hidden`,background:n},children:(0,Q.jsxs)(Ne,{hasSider:!0,style:{height:`100%`,background:`transparent`},children:[(0,Q.jsx)(Hi,{style:{overflowY:`auto`,padding:`clamp(16px, 3vw, 28px) clamp(16px, 3vw, 32px) 80px`},children:(0,Q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,minHeight:`100%`},children:[(0,Q.jsxs)(`header`,{style:{display:`flex`,alignItems:`flex-start`,justifyContent:`space-between`,gap:16,marginBottom:24},children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(Wi,{level:5,style:{margin:0,fontWeight:700},children:[`Hi, `,v,`! 👋`]}),(0,Q.jsx)(Ui,{type:`secondary`,style:{fontSize:14},children:`Here's an overview of your workspace.`})]}),(0,Q.jsx)(ye,{menu:{items:Zi,onClick:({key:t})=>{t===`assistant`||t===`branch`?re(t):e.onOpenCreateDialog(t)}},trigger:[`click`],children:(0,Q.jsx)(i,{type:`primary`,icon:(0,Q.jsx)(P,{}),children:`New`})})]}),z&&(0,Q.jsx)(Vi,{steps:ie,onDismiss:()=>{localStorage.setItem(Gi,`true`),_(!0)}}),ee.length>0&&(0,Q.jsx)(zi,{sessions:ee,onSessionClick:e.onSessionClick}),(0,Q.jsx)(Fi,{sessionById:u,currentUserId:e.currentUserId,teamSize:p.size}),(0,Q.jsx)(Mi,{sessionById:u,branchById:s,boardById:a,currentUserId:e.currentUserId,onSessionClick:e.onSessionClick}),(0,Q.jsx)(`div`,{style:{marginTop:24},children:(0,Q.jsx)(bi,{boardById:a,recentBoardIds:e.recentBoardIds,branchById:s,sessionsByBranch:d,onBoardClick:e.onBoardClick,onOpenCreateDialog:e.onOpenCreateDialog})})]})}),x&&(0,Q.jsxs)(`aside`,{style:{width:y,flexShrink:0,position:`relative`,borderLeft:`1px solid ${t.colorBorderSecondary}`,...li(t,.5),overflow:`hidden`,display:`flex`,flexDirection:`column`},children:[(0,Q.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize sidebar`,"aria-valuenow":Math.round(y),"aria-valuemin":Ji,"aria-valuemax":Math.round(typeof window<`u`?window.innerWidth*Yi:qi),tabIndex:0,onMouseDown:A,onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),onKeyDown:e=>{let t=e.key===`ArrowLeft`?8:e.key===`ArrowRight`?-8:0;t&&(e.preventDefault(),b(e=>{let n=typeof window<`u`?window.innerWidth*Yi:qi,r=Math.max(Ji,Math.min(n,e+t));try{localStorage.setItem(Ki,String(Math.round(r)))}catch{}return r}))},title:`Drag or use arrow keys to resize`,style:{position:`absolute`,left:0,top:0,bottom:0,width:4,cursor:`col-resize`,zIndex:10,background:C?t.colorPrimary:`transparent`,transition:`background 0.15s`}}),(0,Q.jsxs)(`div`,{style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`,overflow:`hidden`,padding:`16px 12px 16px 16px`,gap:32},children:[(0,Q.jsx)(pi,{branchById:s,boardById:a,sessionById:u,userById:p,onBoardClick:e.onBoardClick,onBranchClick:e.onBranchClick,onSessionClick:e.onSessionClick}),(0,Q.jsx)(Ti,{client:e.client,connected:e.connected})]})]})]})}),(0,Q.jsx)(r,{title:L===`branch`?`New branch`:`New assistant`,open:te,onCancel:()=>N(!1),width:420,footer:M.length===0?[(0,Q.jsx)(i,{onClick:()=>N(!1),children:`Cancel`},`cancel`),(0,Q.jsx)(i,{type:`primary`,onClick:()=>{N(!1),e.onOpenCreateDialog(`board`)},children:`Create a board first`},`create`)]:[(0,Q.jsx)(i,{onClick:()=>N(!1),children:`Cancel`},`cancel`),(0,Q.jsx)(i,{type:`primary`,disabled:!F,onClick:R,children:L===`assistant`?`Start assistant`:`Create branch`},`start`)],children:M.length===0?(0,Q.jsx)(`div`,{style:{padding:`8px 0 4px`},children:(0,Q.jsx)(h.Text,{type:`secondary`,style:{display:`block`,fontSize:13},children:`You don't have any boards yet. Create one first to organise your work.`})}):(0,Q.jsxs)(`div`,{style:{padding:`8px 0 4px`,display:`flex`,flexDirection:`column`,gap:14},children:[(0,Q.jsx)(oe,{value:L,onChange:e=>ne(e),block:!0,options:[{value:`assistant`,label:`AI assistant`,icon:(0,Q.jsx)(f,{})},{value:`branch`,label:`Branch / Worktree`,icon:(0,Q.jsx)(l,{})}]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(h.Text,{style:{display:`block`,marginBottom:8,fontSize:13},children:`Which board?`}),(0,Q.jsx)(o,{value:F,onChange:I,options:M,placeholder:`Select a board`,style:{width:`100%`}})]})]})})]})}),$i=({onClick:e})=>{let t=Tt();return(0,Q.jsx)(z,{title:t?`Disconnected from daemon`:`Create new...`,placement:`left`,children:(0,Q.jsx)(i,{type:`primary`,shape:`circle`,size:`large`,icon:(0,Q.jsx)(P,{style:{fontSize:20}}),onClick:e,disabled:t,style:{position:`absolute`,right:24,top:24,width:56,height:56,boxShadow:`0 4px 12px rgba(0, 0, 0, 0.15)`,zIndex:100}})})},ea=({open:e,onClose:t,onCreate:n,availableAgents:i,branchId:a,branch:o,currentUser:s,client:c})=>{let l=X(un),u=X(Gn),[d]=K.useForm(),[f,p]=(0,Z.useState)(`claude-code`),[m,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)([]),y=!!f;return(0,Z.useEffect)(()=>{if(!e)return;p(`claude-code`),g(!1),v([]);let t=s?.default_agentic_config?.[`claude-code`],n=Yn(`claude-code`,t),r=o?.mcp_server_ids;d.setFieldsValue({title:``,initialPrompt:``,...n,mcpServerIds:r&&r.length>0?r:n.mcpServerIds})},[e,d]),(0,Z.useEffect)(()=>{if(f){let e=f,t=s?.default_agentic_config?.[e],n=Yn(e,t);d.setFieldsValue({...n,mcpServerIds:o?.mcp_server_ids&&o.mcp_server_ids.length>0?o.mcp_server_ids:n.mcpServerIds,...e!==`codex`&&{codexSandboxMode:void 0,codexApprovalPolicy:void 0,codexNetworkAccess:void 0}})}},[f,d,s,o?.mcp_server_ids]),(0,Q.jsx)(r,{title:`Create New Session`,open:e,onOk:()=>{d.validateFields().then(()=>{let e=d.getFieldsValue(!0);g(!0);let t=s?.default_agentic_config?.[f],r=o?.mcp_server_ids,i=r&&r.length>0?r:t?.mcpServerIds,c=e.permissionMode??t?.permissionMode??Ye(f),l={branch_id:a,agent:f,title:e.title,initialPrompt:e.initialPrompt,modelConfig:e.modelConfig??t?.modelConfig,effort:e.effort??t?.modelConfig?.effort,mcpServerIds:e.mcpServerIds??i,permissionMode:c,envVarNames:_.length>0?_:void 0};if(f===`codex`){let n=Ze(c);l.codexSandboxMode=e.codexSandboxMode??t?.codexSandboxMode??n.sandboxMode,l.codexApprovalPolicy=e.codexApprovalPolicy??t?.codexApprovalPolicy??n.approvalPolicy,l.codexNetworkAccess=e.codexNetworkAccess??t?.codexNetworkAccess??n.networkAccess}n(l)})},onCancel:()=>{d.resetFields(),t()},okText:`Create Session`,cancelText:`Cancel`,width:700,maskClosable:!1,okButtonProps:{disabled:!y||m,loading:m},children:(0,Q.jsxs)(K,{form:d,layout:`vertical`,style:{marginTop:16},preserve:!1,children:[o&&(0,Q.jsx)(R,{title:(0,Q.jsxs)(Q.Fragment,{children:[`Creating session in branch: `,(0,Q.jsx)(`strong`,{children:o.name}),` (`,o.ref,`)`]}),type:`info`,showIcon:!0,style:{marginBottom:16}}),(0,Q.jsx)(K.Item,{label:`Select Coding Agent`,required:!0,children:(0,Q.jsx)(At,{agents:i,selectedAgentId:f,onSelect:p,columns:2,showHelperText:!0,showComparisonLink:!0})}),(0,Q.jsx)(K.Item,{name:`title`,label:`Title (optional)`,children:(0,Q.jsx)(ze,{placeholder:`e.g., Add authentication system`})}),(0,Q.jsx)(K.Item,{name:`initialPrompt`,label:`Initial Prompt (optional)`,help:`First message to send to the agent when session starts`,children:(0,Q.jsx)(Tr,{value:d.getFieldValue(`initialPrompt`)||``,onChange:e=>d.setFieldValue(`initialPrompt`,e),placeholder:`e.g., Build a JWT authentication system with secure password storage... (type @ for autocomplete)`,autoSize:{minRows:4,maxRows:8},client:c,sessionId:null,userById:u,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`})}),(0,Q.jsx)(ct,{mcpServerById:l}),(0,Q.jsx)(E,{ghost:!0,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,Q.jsx)(b,{rotate:e?180:0}),items:[{key:`agentic-tool-config`,label:(0,Q.jsx)(h.Text,{strong:!0,children:`Agentic Tool Configuration`}),children:(0,Q.jsx)(Rt,{agenticTool:f||`claude-code`,mcpServerById:l,showHelpText:!0,hideMcpServers:!0,client:c})},...s&&c?[{key:`env-vars`,label:(0,Q.jsx)(h.Text,{strong:!0,children:`Environment Variables`}),children:(0,Q.jsx)(sr,{ownerUserId:s.user_id,client:c,value:_,onChange:v})}]:[]],style:{marginTop:16}})]})})};function ta(e,t){if(e?.auth?.type!==`oauth`)return!1;let n=e.auth.oauth_token_expires_at,r=!!(n&&n<=Date.now());return!(e.auth.oauth_access_token&&!r||t.has(e.mcp_server_id)&&!r)}async function na({sessionId:e,daemonUrl:t,files:n,destination:r,notifyAgent:i=!1,message:a=``}){let o=new FormData;n.forEach(e=>{o.append(`files`,e)}),o.append(`notifyAgent`,String(i)),o.append(`message`,a);let s=`${t}/sessions/${e}/upload${r?`?destination=${encodeURIComponent(r)}`:``}`,c=localStorage.getItem(kt),l={};c?l.Authorization=`Bearer ${c}`:console.warn(`[FileUpload] No access token found in localStorage`);let u=await fetch(s,{method:`POST`,headers:l,body:o});if(!u.ok){let e=await u.text(),t={};try{t=JSON.parse(e)}catch{t={error:e||`Upload failed`}}throw Error(t.error||`Upload failed`)}return u.json()}var{TextArea:ra}=ze,{Text:ia}=h,aa=`Note: the user uploaded file(s): {filepath}
3
-
4
- Please review and use them as context for this task.`,oa=({sessionId:e,daemonUrl:t,open:n,onClose:a,onUploadComplete:o,onInsertMention:s,initialFiles:c})=>{let{showSuccess:l,showWarning:u,showError:d}=Ct(),[f,p]=(0,Z.useState)([]),[m,h]=(0,Z.useState)(!0),[g,_]=(0,Z.useState)(aa),[v,y]=(0,Z.useState)(!1),b=(0,Z.useRef)([]);b.current=f;let x=(0,Z.useCallback)(e=>{let t=e,n=e.type.startsWith(`image/`);return{uid:t.uid||`${Date.now()}-${e.name}`,name:e.name,status:`done`,originFileObj:t,thumbUrl:n?URL.createObjectURL(e):void 0}},[]),S=(0,Z.useCallback)(e=>{e.thumbUrl?.startsWith(`blob:`)&&URL.revokeObjectURL(e.thumbUrl)},[]),C=(0,Z.useCallback)(()=>{b.current.forEach(S),p([])},[S]);return(0,Z.useEffect)(()=>()=>b.current.forEach(S),[S]),(0,Z.useEffect)(()=>{c&&c.length>0&&n&&(b.current.forEach(S),p(c.map(x)))},[c,n,x,S]),(0,Q.jsx)(r,{title:`Upload File(s)`,open:n,onCancel:()=>{C(),h(!0),_(aa),a()},onOk:async()=>{if(f.length===0){u(`Please select at least one file`);return}y(!0);try{let n=await na({sessionId:e,daemonUrl:t,files:f.flatMap(e=>e.originFileObj?[e.originFileObj]:(console.warn(`[FileUpload] File missing originFileObj:`,e.name),[])),notifyAgent:m,message:g});if(n.files.length===1?l(`Uploaded as: ${n.files[0].filename}`):l(`Uploaded ${n.files.length} files successfully`),o&&o(n.files),!m&&s&&n.files.length>0){let e=n.files[0];s(e.path.includes(` `)?`"${e.path}"`:e.path)}C(),h(!0),_(aa),a()}catch(e){console.error(`Upload error:`,e),d(e instanceof Error?e.message:`Failed to upload files`)}finally{y(!1)}},confirmLoading:v,okText:`Upload`,cancelText:`Cancel`,width:600,children:(0,Q.jsxs)(W,{orientation:`vertical`,style:{width:`100%`},size:`large`,children:[(0,Q.jsx)(j,{multiple:!0,listType:`picture`,fileList:f,beforeUpload:e=>(p(t=>[...t,x(e)]),!1),onRemove:e=>{S(e),p(t=>t.filter(t=>t.uid!==e.uid))},children:(0,Q.jsx)(i,{icon:(0,Q.jsx)(ge,{}),children:`Select Files`})}),(0,Q.jsxs)(ia,{type:`secondary`,style:{fontSize:`12px`},children:[`Files are uploaded to `,(0,Q.jsx)(ia,{code:!0,children:`~/.agor/uploads/`}),`. When notified, the agent receives the full file path and can copy or move it into the branch if needed.`]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(ce,{checked:m,onChange:e=>h(e.target.checked),children:`Notify the agent about this file`}),m&&(0,Q.jsxs)(`div`,{style:{marginTop:8},children:[(0,Q.jsx)(ra,{value:g,onChange:e=>_(e.target.value),placeholder:`Message to agent (use {filepath} for file path)`,autoSize:{minRows:2,maxRows:4}}),(0,Q.jsxs)(ia,{type:`secondary`,style:{fontSize:`12px`,marginTop:4},children:[`Use `,`{filepath}`,` to reference the uploaded file path`]})]})]})]})})};(0,Z.forwardRef)(({onClick:e,disabled:t,size:n=`middle`,title:r=`Upload files`},a)=>(0,Q.jsx)(i,{ref:a,icon:(0,Q.jsx)(ne,{}),onClick:e,disabled:t,size:n,title:r}));var sa=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`]),ca=new Set([...sa,`text/plain`,`text/markdown`,`text/csv`,`application/json`,`application/pdf`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,`application/zip`,`application/gzip`,`application/x-tar`]),la=new Map([[`.png`,`image/png`],[`.jpg`,`image/jpeg`],[`.jpeg`,`image/jpeg`],[`.gif`,`image/gif`],[`.webp`,`image/webp`],[`.txt`,`text/plain`],[`.md`,`text/markdown`],[`.markdown`,`text/markdown`],[`.csv`,`text/csv`],[`.json`,`application/json`],[`.pdf`,`application/pdf`],[`.docx`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`],[`.xlsx`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`],[`.zip`,`application/zip`],[`.gz`,`application/gzip`],[`.tgz`,`application/gzip`],[`.tar`,`application/x-tar`]]),ua=50*1024*1024,da=100*1024*1024,fa=`Composer supports up to 10 pending files`;function pa(e){return e.split(`;`)[0].trim().toLowerCase()}function ma(e){let t=pa(e.type||``);if(t)return t;let n=e.name.toLowerCase(),r=Array.from(la.keys()).sort((e,t)=>t.length-e.length).find(e=>n.endsWith(e));return r?la.get(r)??``:``}function ha(e){let t=ma(e),n=pa(e.type||``);return!t||n?e:new File([e],e.name,{type:t,lastModified:e.lastModified})}function ga(e){return sa.has(ma(e))}function _a(e){return ca.has(ma(e))}function va(e){let t=e/(1024*1024);return`${Number.isInteger(t)?t:t.toFixed(1)} MB`}function ya(e,t=[],n=`branch`){let r=[],i=t.filter(e=>e.destination===n&&e.status!==`uploaded`),a=i.reduce((e,t)=>e+t.file.size,0),o=[];for(let t of e){if(!_a(t)){r.push({file:t,reason:`Unsupported file type: ${t.type||`unknown`}`});continue}if(t.size>52428800){r.push({file:t,reason:`File is larger than ${va(ua)}`});continue}o.push(ha(t))}if(i.length+o.length>10)return r.push(...o.map(e=>({file:e,reason:fa}))),{acceptedFiles:[],rejections:r};let s=[];for(let e of o){if(a+e.size>104857600){r.push({file:e,reason:`Selected files exceed ${va(da)} total`});continue}s.push(e),a+=e.size}return{acceptedFiles:s,rejections:r}}function ba(e){if(e.length===0)return``;let t=e.find(e=>e.reason===fa)??e[0],n=e.length>1?` (+${e.length-1} more)`:``;return`${t.file.name}: ${t.reason}${n}`}function xa(e){return e.status===`failed`}function Sa(){return Array.from(ca).join(`,`)}function Ca({promptHandle:e,inputValueRefValue:t,sendStartValue:n}){return e?.getValue()??t??n}function wa(e,t){let n=e.trim();if(t.length===0)return n;let r=[`Attached files:`,...t.map(e=>`- ${e}`)].join(`
5
- `);return n.startsWith(`/`)?`${n}\n\n${r}`:n?`${r}\n\n${n}`:r}function Ta(e){try{let{hostname:n}=new URL(e);if(n===`github.com`||n.endsWith(`.github.com`))return(0,Q.jsx)(t,{})}catch{}return(0,Q.jsx)(re,{})}var Ea=({items:e})=>{let{token:t}=q.useToken();return e.length===0?null:(0,Q.jsx)(ye,{menu:{items:e.map(e=>({key:e.key,icon:Ta(e.url),label:(0,Q.jsx)(z,{title:e.name.length>40?e.name:void 0,placement:`left`,children:(0,Q.jsx)(`span`,{style:{display:`inline-block`,maxWidth:200,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name})}),onClick:()=>window.open(e.url,`_blank`)}))},trigger:[`click`],placement:`bottomRight`,children:(0,Q.jsx)(z,{title:`Links`,children:(0,Q.jsx)(L,{count:e.length,color:t.colorPrimary,size:`small`,offset:[-4,4],children:(0,Q.jsx)(i,{type:`text`,icon:(0,Q.jsx)(le,{style:{color:t.colorPrimary}})})})})})};function Da(e){let t=e.type.toLowerCase(),n=e.name.toLowerCase();return t===`application/pdf`||n.endsWith(`.pdf`)?Ie:t.startsWith(`text/`)||n.endsWith(`.md`)||n.endsWith(`.markdown`)?Ae:v}var Oa=({attachments:e,disabled:t=!1,onRemove:a})=>{let{token:o}=q.useToken(),[s,c]=Z.useState(null);if(e.length===0)return null;let l=e.filter(e=>e.status===`failed`).length,u=e.find(e=>e.id===s)??null;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(W,{orientation:`vertical`,style:{width:`100%`},size:6,children:[t&&(0,Q.jsx)(h.Text,{type:`secondary`,style:{fontSize:o.fontSizeSM},children:`Files are uploading. Attachment changes are locked until upload finishes.`}),(0,Q.jsx)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:o.paddingSM},children:(0,Q.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:o.paddingSM,flex:1},children:e.map(e=>{let r=e.status===`uploading`,s=e.status===`failed`,l=!!e.previewUrl,u=Da(e.file);return(0,Q.jsxs)(`div`,{style:{position:`relative`,width:96,height:72,borderRadius:o.borderRadiusLG,overflow:`visible`,border:`1px solid ${s?o.colorError:o.colorBorderSecondary}`,background:o.colorBgLayout},children:[(0,Q.jsxs)(`button`,{type:`button`,"aria-label":`Preview ${e.file.name}`,onClick:()=>c(e.id),style:{width:`100%`,height:`100%`,padding:0,border:0,borderRadius:o.borderRadiusLG,background:`transparent`,cursor:`zoom-in`,display:`block`},children:[l?(0,Q.jsx)(`img`,{src:e.previewUrl,alt:e.file.name,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`,borderRadius:o.borderRadiusLG,opacity:r||s?.42:1}}):(0,Q.jsxs)(`div`,{role:`img`,"aria-label":e.file.name,style:{width:`100%`,height:`100%`,borderRadius:o.borderRadiusLG,display:`flex`,alignItems:`center`,justifyContent:`center`,flexDirection:`column`,gap:4,color:o.colorTextSecondary,opacity:r||s?.42:1,padding:o.paddingXS},children:[(0,Q.jsx)(u,{style:{fontSize:26}}),(0,Q.jsx)(h.Text,{ellipsis:!0,style:{maxWidth:78,fontSize:o.fontSizeSM},children:e.file.name})]}),(r||s)&&(0,Q.jsxs)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,flexDirection:`column`,gap:2,color:s?o.colorError:o.colorPrimary,fontSize:o.fontSizeSM,fontWeight:600,pointerEvents:`none`},children:[r?(0,Q.jsx)(pe,{style:{fontSize:24}}):(0,Q.jsx)(xe,{}),(0,Q.jsx)(`span`,{children:r?`Uploading`:`Failed`})]})]}),(0,Q.jsx)(z,{title:t?`Files are uploading…`:`Remove file`,children:(0,Q.jsx)(i,{"aria-label":`Remove ${e.file.name}`,icon:(0,Q.jsx)(n,{}),shape:`circle`,size:`small`,onClick:()=>a(e.id),disabled:t,style:{position:`absolute`,top:-8,left:-8,zIndex:2,background:o.colorBgElevated}})})]},e.id)})})}),l>0&&(0,Q.jsx)(R,{type:`error`,showIcon:!0,message:`${l} file${l===1?``:`s`} failed or cannot be uploaded. Remove failed files before sending.`,style:{paddingBlock:o.paddingXXS}})]}),u&&(0,Q.jsx)(r,{open:!0,title:`Preview ${u.file.name}`,footer:null,centered:!0,width:720,onCancel:()=>c(null),children:u.previewUrl?(0,Q.jsx)(`img`,{src:u.previewUrl,alt:`Preview of ${u.file.name}`,style:{display:`block`,maxWidth:`100%`,maxHeight:`70vh`,margin:`0 auto`,objectFit:`contain`}}):(0,Q.jsxs)(W,{direction:`vertical`,align:`center`,style:{width:`100%`,padding:24},children:[Z.createElement(Da(u.file),{style:{fontSize:48}}),(0,Q.jsx)(h.Text,{strong:!0,children:u.file.name}),(0,Q.jsx)(h.Text,{type:`secondary`,children:u.file.type||`Unknown file type`})]})})]})};function ka(e){return Array.from(e.types).includes(`Files`)}var Aa=({children:e,disabled:t=!1,onDragActiveChange:n,onFilesDrop:r})=>{let{token:i}=q.useToken(),[a,o]=(0,Z.useState)(!1),s=(0,Z.useCallback)(e=>{ka(e.dataTransfer)&&(e.preventDefault(),o(!t))},[t]),c=(0,Z.useCallback)(e=>{ka(e.dataTransfer)&&(e.preventDefault(),o(!t))},[t]),l=(0,Z.useCallback)(e=>{let t=e.relatedTarget;t instanceof Node&&e.currentTarget.contains(t)||o(!1)},[]),u=(0,Z.useCallback)(()=>{o(!1)},[]),d=(0,Z.useCallback)(e=>{if(o(!1),e.defaultPrevented)return;let n=Array.from(e.dataTransfer.files);n.length!==0&&(e.preventDefault(),e.stopPropagation(),!t&&r(n))},[t,r]);return(0,Z.useEffect)(()=>{if(!a)return;let e=()=>o(!1);return window.addEventListener(`drop`,e),window.addEventListener(`dragend`,e),window.addEventListener(`blur`,e),()=>{window.removeEventListener(`drop`,e),window.removeEventListener(`dragend`,e),window.removeEventListener(`blur`,e)}},[a]),(0,Z.useEffect)(()=>{n?.(a)},[a,n]),(0,Q.jsxs)(`section`,{"aria-label":`Composer attachments and input drop zone`,"aria-disabled":t,onDragEnter:s,onDragOver:c,onDragLeave:l,onDropCapture:u,onDrop:d,style:{position:`relative`,display:`flex`,flexDirection:`column`,gap:i.sizeUnit*2,borderRadius:i.borderRadiusLG},children:[e,a&&(0,Q.jsx)(`div`,{style:{position:`absolute`,inset:0,backgroundColor:`${i.colorBgContainer}CC`,border:`1px solid ${i.colorPrimary}`,borderRadius:i.borderRadius,boxShadow:`0 0 0 ${i.controlOutlineWidth}px ${i.controlOutline}`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:10,pointerEvents:`none`},children:(0,Q.jsx)(h.Text,{strong:!0,style:{color:i.colorPrimary},children:`Drop files here to attach`})})]})},ja={showToolsChip:!0,showStatsChip:!0,showForkInBar:!0,showUploadInBar:!0,pinnedItems:[`fork`,`upload`],pinnedChips:[`timer`,`tools`,`model`,`tokens`,`context`]},Ma=`agor-footer-prefs`;function Na(){let[e,t]=Z.useState(()=>{try{let e=JSON.parse(localStorage.getItem(Ma)??`null`);if(e&&typeof e==`object`)return{...ja,...e,pinnedItems:Array.isArray(e.pinnedItems)?e.pinnedItems:ja.pinnedItems,pinnedChips:Array.isArray(e.pinnedChips)?e.pinnedChips:ja.pinnedChips}}catch{}return ja});return[e,Z.useCallback(e=>{t(t=>{let n={...t,...e};try{localStorage.setItem(Ma,JSON.stringify(n))}catch{}return n})},[])]}function Pa(e,t,n){let r=0,i=0;for(let a of e){let e=t.get(a);if(!e){r+=1;continue}ta(e,n)&&(i+=1)}let a=e.length,o=Math.max(0,a-r-i),s=r+i;return{attachedCount:a,missingCount:r,needsAuthCount:i,healthyCount:o,tone:r>0?`error`:i>0?`warning`:`default`,label:`MCP (${a})`,tooltip:s>0?`${s} MCP server${s===1?``:`s`} need attention`:a>0?`${a} MCP server${a===1?``:`s`} attached`:`No MCP servers attached`}}var Fa=({client:e,sessionId:t,sessionMcpServerIds:n,mcpServerById:r,userAuthenticatedMcpServerIds:a,onOpenSessionSettings:o})=>{let{token:l}=q.useToken(),{showSuccess:u,showError:d}=Ct(),[f,p]=Z.useState(!1),[m,g]=Z.useState(!1),_=Z.useMemo(()=>Pa(n,r,a),[n,r,a]),v=Z.useMemo(()=>n.map(e=>r.get(e)).filter(e=>!!e),[n,r]);return(0,Q.jsx)(O,{open:f,onOpenChange:p,trigger:`click`,placement:`top`,getPopupContainer:e=>e.parentElement??document.body,title:null,content:(0,Q.jsx)(`div`,{style:{width:340,maxWidth:`min(340px, 80vw)`},children:(0,Q.jsxs)(W,{direction:`vertical`,size:10,style:{width:`100%`},children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(h.Text,{strong:!0,children:`Session MCP servers`}),(0,Q.jsx)(h.Paragraph,{type:`secondary`,style:{margin:`${l.sizeUnit}px 0 0`},children:`Attach tools/connectors that the agent can use in this conversation.`})]}),v.length>0&&(0,Q.jsx)(W,{size:6,wrap:!0,children:v.map(t=>(0,Q.jsx)(Ut,{server:t,needsAuth:ta(t,a),client:e},t.mcp_server_id))}),(0,Q.jsx)(bn,{mcpServers:Array.from(r.values()),placeholder:`Attach MCP servers…`,value:n,onChange:async r=>{if(e){g(!0);try{await Vn(e,t,n,r),u(`Session MCP servers updated`)}catch(e){d(`Failed to update MCP servers: ${e instanceof Error?e.message:String(e)}`)}finally{g(!1)}}},loading:m,disabled:!e,style:{width:`100%`}}),(0,Q.jsx)(c,{style:{margin:`${l.sizeUnit}px 0`}}),(0,Q.jsx)(i,{block:!0,icon:(0,Q.jsx)(U,{}),onClick:()=>{p(!1),o?.(t)},children:`Open session settings`})]})}),children:(0,Q.jsxs)(Ft,{icon:(0,Q.jsx)(G,{}),color:`default`,title:`${_.tooltip}. Click to add or change MCP servers.`,style:{cursor:`pointer`,height:22,display:`inline-flex`,alignItems:`center`},children:[(0,Q.jsx)(`span`,{children:`MCP`}),(0,Q.jsx)(s,{color:_.tone===`error`?`error`:_.tone===`warning`?`warning`:void 0,style:{marginInlineStart:l.sizeUnit,marginInlineEnd:0,minWidth:16,height:14,paddingInline:4,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,lineHeight:`12px`,fontSize:10,textAlign:`center`,fontVariantNumeric:`tabular-nums`,verticalAlign:`middle`},children:_.attachedCount})]})})},Ia=({session:e,footerTimerTask:t,tokenBreakdown:n,latestContextWindow:r,footerGradient:a,sessionMcpServerIds:o,unauthedMcpServers:s,mcpServerById:u,userAuthenticatedMcpServerIds:d,isRunning:p,isStopping:m,stopRequestInFlight:g,hasInput:_,composerAttachmentsPresent:v=!1,composerAttachmentUploading:b=!1,connectionDisabled:S,toolCaps:C,queuedTasks:w,effortLevel:T,permissionMode:E,codexSandboxMode:D,codexApprovalPolicy:k,client:A,modelLabel:j,modelConfig:te,onModelConfigChange:P,onOpenSessionSettings:F,onSendPrompt:I,onStop:re,onFork:R,onBtwSend:ie,onSpawnOpen:ae,onAttachFiles:oe,onUploadOpen:se,onEffortChange:ce,onPermissionModeChange:le,onCodexPermissionChange:ue,promptInputSlot:de})=>{let{token:B}=q.useToken(),[fe,V]=Z.useState(!1),[pe,me]=Na(),H=pe.pinnedItems,he=e=>{me({pinnedItems:H.includes(e)?H.filter(t=>t!==e):[...H,e]})},U=pe.pinnedChips,ve=e=>{me({pinnedChips:U.includes(e)?U.filter(t=>t!==e):[...U,e]})},ye=e.model_config?.model?Fn(e.model_config.provider?`${e.model_config.provider}/${e.model_config.model}`:e.model_config.model):null,be=n.total>=1e3?`${Math.round(n.total/1e3)}k`:n.total>0?String(n.total):null,xe=Z.useMemo(()=>{if(!r)return 0;let e=r.taskMetadata?.normalized_sdk_response?.contextUsageSnapshot;return Qt(r.used,r.limit,e)/100},[r]),Se=xe>.8,we=`Attachments are only supported for normal Send for now`,Te=`Uploading files...`,Ee=S||b,De=Ee,G=S||v,Ae=S||!_||v,Me=S||p||v,Ne=S||b||!_,Fe={padding:`6px 12px 3px`,fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.4px`,color:B.colorTextTertiary,userSelect:`none`},Ie={display:`flex`,alignItems:`center`,gap:8,padding:`0 6px 0 12px`,height:32},Re=(0,Q.jsxs)(`div`,{style:{width:260,paddingTop:6,paddingBottom:6},children:[(0,Q.jsx)(`div`,{style:Fe,children:`Settings`}),(0,Q.jsxs)(`div`,{style:{...Ie,height:`auto`,paddingTop:6,paddingBottom:6,alignItems:`flex-start`,cursor:`default`},children:[(0,Q.jsx)(f,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0,marginTop:7}}),(0,Q.jsx)(h.Text,{style:{fontSize:12,color:B.colorTextSecondary,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0,marginTop:7},children:`Model`}),(0,Q.jsx)(`div`,{style:{maxWidth:160,flexShrink:0},children:(0,Q.jsx)(yt,{value:te,onChange:P,agentic_tool:e.agentic_tool,client:A,compact:!0})})]}),e.agentic_tool===`claude-code`&&(0,Q.jsxs)(`div`,{style:{...Ie,cursor:`default`},children:[(0,Q.jsx)(M,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:12,flex:1,color:B.colorTextSecondary,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Effort`}),(0,Q.jsx)(gt,{value:T,onChange:ce,size:`small`,compact:!0,plain:!0})]}),(0,Q.jsxs)(`div`,{style:{...Ie,cursor:`default`},children:[(0,Q.jsx)(y,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:12,flex:1,color:B.colorTextSecondary,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Permissions`}),(0,Q.jsx)(Vt,{value:E,onChange:le,agentic_tool:e.agentic_tool,codexSandboxMode:D,codexApprovalPolicy:k,onCodexChange:ue,compact:!0,iconOnly:!1,plain:!0,size:`small`})]}),(0,Q.jsx)(c,{style:{margin:`4px 0`}}),(0,Q.jsx)(`div`,{style:Fe,children:`Actions`}),(0,Q.jsxs)(`div`,{role:`button`,tabIndex:Ee?-1:0,style:{...Ie,opacity:Ee?.4:1,cursor:Ee?`not-allowed`:`pointer`},onClick:Ee?void 0:()=>{V(!1),oe()},onKeyDown:Ee?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),V(!1),oe())},children:[(0,Q.jsx)(z,{title:b?Te:S?`Disconnected from daemon`:`Attach files to prompt`,placement:`left`,children:(0,Q.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0,overflow:`hidden`},children:[(0,Q.jsx)(ne,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:`Attach files`})]})}),(0,Q.jsx)(z,{title:H.includes(`upload`)?`Unpin from bar`:`Pin to bar`,placement:`right`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":H.includes(`upload`)?`Unpin Upload`:`Pin Upload`,style:{background:`none`,border:`none`,cursor:`pointer`,color:H.includes(`upload`)?B.colorPrimary:B.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:B.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),he(`upload`)},children:H.includes(`upload`)?(0,Q.jsx)(Oe,{style:{fontSize:12}}):(0,Q.jsx)(N,{style:{fontSize:12}})})})]}),(0,Q.jsxs)(`div`,{role:`button`,tabIndex:De?-1:0,style:{...Ie,opacity:De?.4:1,cursor:De?`not-allowed`:`pointer`},onClick:De?void 0:()=>{V(!1),se()},onKeyDown:De?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),V(!1),se())},children:[(0,Q.jsx)(z,{title:b?Te:S?`Disconnected from daemon`:`Upload files with options`,placement:`left`,children:(0,Q.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0,overflow:`hidden`},children:[(0,Q.jsx)(ge,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:`Advanced upload`})]})}),(0,Q.jsx)(z,{title:H.includes(`advanced-upload`)?`Unpin from bar`:`Pin to bar`,placement:`right`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":H.includes(`advanced-upload`)?`Unpin Advanced upload`:`Pin Advanced upload`,style:{background:`none`,border:`none`,cursor:`pointer`,color:H.includes(`advanced-upload`)?B.colorPrimary:B.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:B.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),he(`advanced-upload`)},children:H.includes(`advanced-upload`)?(0,Q.jsx)(Oe,{style:{fontSize:12}}):(0,Q.jsx)(N,{style:{fontSize:12}})})})]}),C?.supportsSessionFork!==!1&&(0,Q.jsxs)(`div`,{role:`button`,"aria-disabled":G,"aria-label":`Fork session`,tabIndex:G?-1:0,style:{...Ie,opacity:G?.4:1,cursor:G?`not-allowed`:`pointer`},onClick:G?void 0:()=>{V(!1),R()},onKeyDown:G?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),V(!1),R())},children:[(0,Q.jsx)(z,{title:S?`Disconnected from daemon`:v?we:`Fork this session`,placement:`left`,children:(0,Q.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0,overflow:`hidden`},children:[(0,Q.jsx)(Pe,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:`Fork session`})]})}),(0,Q.jsx)(z,{title:H.includes(`fork`)?`Unpin from bar`:`Pin to bar`,placement:`right`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":H.includes(`fork`)?`Unpin Fork`:`Pin Fork`,style:{background:`none`,border:`none`,cursor:`pointer`,color:H.includes(`fork`)?B.colorPrimary:B.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:B.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),he(`fork`)},children:H.includes(`fork`)?(0,Q.jsx)(Oe,{style:{fontSize:12}}):(0,Q.jsx)(N,{style:{fontSize:12}})})})]}),C?.supportsSessionFork!==!1&&(0,Q.jsxs)(`div`,{role:`button`,"aria-disabled":Ae,"aria-label":`Ask side question via BTW fork`,tabIndex:Ae?-1:0,style:{...Ie,opacity:Ae?.4:1,cursor:Ae?`not-allowed`:`pointer`},onClick:Ae?void 0:()=>{V(!1),ie()},onKeyDown:Ae?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),V(!1),ie())},children:[(0,Q.jsx)(z,{title:v?we:S||!_?`Needs input and a live connection`:`Ask a side question via an ephemeral fork`,placement:`left`,children:(0,Q.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0,overflow:`hidden`},children:[(0,Q.jsx)(_e,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:`BTW fork`})]})}),(0,Q.jsx)(z,{title:H.includes(`btw-fork`)?`Unpin from bar`:`Pin to bar`,placement:`right`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":H.includes(`btw-fork`)?`Unpin BTW fork`:`Pin BTW fork`,style:{background:`none`,border:`none`,cursor:`pointer`,color:H.includes(`btw-fork`)?B.colorPrimary:B.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:B.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),he(`btw-fork`)},children:H.includes(`btw-fork`)?(0,Q.jsx)(Oe,{style:{fontSize:12}}):(0,Q.jsx)(N,{style:{fontSize:12}})})})]}),C?.supportsChildSpawn!==!1&&(0,Q.jsxs)(`div`,{role:`button`,"aria-disabled":Me,"aria-label":`Spawn subsession`,tabIndex:Me?-1:0,style:{...Ie,opacity:Me?.4:1,cursor:Me?`not-allowed`:`pointer`},onClick:Me?void 0:()=>{V(!1),ae()},onKeyDown:Me?void 0:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),V(!1),ae())},children:[(0,Q.jsx)(z,{title:S?`Disconnected`:v?we:p?`Session is running`:`Spawn a child subsession`,placement:`left`,children:(0,Q.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0,overflow:`hidden`},children:[(0,Q.jsx)(l,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:`Spawn subsession`})]})}),(0,Q.jsx)(z,{title:H.includes(`spawn`)?`Unpin from bar`:`Pin to bar`,placement:`right`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":H.includes(`spawn`)?`Unpin Spawn`:`Pin Spawn`,style:{background:`none`,border:`none`,cursor:`pointer`,color:H.includes(`spawn`)?B.colorPrimary:B.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:B.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),he(`spawn`)},children:H.includes(`spawn`)?(0,Q.jsx)(Oe,{style:{fontSize:12}}):(0,Q.jsx)(N,{style:{fontSize:12}})})})]}),(0,Q.jsx)(c,{style:{margin:`4px 0`}}),(0,Q.jsx)(`div`,{style:Fe,children:`Info bar`}),t&&(0,Q.jsxs)(`div`,{style:{...Ie,cursor:`default`},children:[(0,Q.jsx)(Ce,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Timer`}),(0,Q.jsx)(z,{title:U.includes(`timer`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":U.includes(`timer`)?`Hide timer`:`Show timer`,style:{background:`none`,border:`none`,cursor:`pointer`,color:U.includes(`timer`)?B.colorPrimary:B.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:B.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>ve(`timer`),children:U.includes(`timer`)?(0,Q.jsx)(Oe,{style:{fontSize:12}}):(0,Q.jsx)(N,{style:{fontSize:12}})})})]}),(0,Q.jsxs)(`div`,{style:{...Ie,cursor:`default`},children:[(0,Q.jsx)(ke,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Tools`}),(0,Q.jsx)(z,{title:U.includes(`tools`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":U.includes(`tools`)?`Hide tools`:`Show tools`,style:{background:`none`,border:`none`,cursor:`pointer`,color:U.includes(`tools`)?B.colorPrimary:B.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:B.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>ve(`tools`),children:U.includes(`tools`)?(0,Q.jsx)(Oe,{style:{fontSize:12}}):(0,Q.jsx)(N,{style:{fontSize:12}})})})]}),ye&&(0,Q.jsxs)(`div`,{style:{...Ie,cursor:`default`},children:[(0,Q.jsx)(f,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Model`}),(0,Q.jsx)(z,{title:U.includes(`model`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":U.includes(`model`)?`Hide model`:`Show model`,style:{background:`none`,border:`none`,cursor:`pointer`,color:U.includes(`model`)?B.colorPrimary:B.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:B.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>ve(`model`),children:U.includes(`model`)?(0,Q.jsx)(Oe,{style:{fontSize:12}}):(0,Q.jsx)(N,{style:{fontSize:12}})})})]}),be!==null&&(0,Q.jsxs)(`div`,{style:{...Ie,cursor:`default`},children:[(0,Q.jsx)(x,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Tokens`}),(0,Q.jsx)(z,{title:U.includes(`tokens`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":U.includes(`tokens`)?`Hide tokens`:`Show tokens`,style:{background:`none`,border:`none`,cursor:`pointer`,color:U.includes(`tokens`)?B.colorPrimary:B.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:B.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>ve(`tokens`),children:U.includes(`tokens`)?(0,Q.jsx)(Oe,{style:{fontSize:12}}):(0,Q.jsx)(N,{style:{fontSize:12}})})})]}),r&&r.limit>0&&(0,Q.jsxs)(`div`,{style:{...Ie,cursor:`default`},children:[(0,Q.jsx)(M,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Context %`}),(0,Q.jsx)(z,{title:U.includes(`context`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":U.includes(`context`)?`Hide context`:`Show context`,style:{background:`none`,border:`none`,cursor:`pointer`,color:U.includes(`context`)?B.colorPrimary:B.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:B.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>ve(`context`),children:U.includes(`context`)?(0,Q.jsx)(Oe,{style:{fontSize:12}}):(0,Q.jsx)(N,{style:{fontSize:12}})})})]}),(0,Q.jsx)(c,{style:{margin:`4px 0`}}),(0,Q.jsx)(O,{trigger:`click`,placement:`topLeft`,title:(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(Le,{style:{marginRight:8}}),`Session IDs`]}),content:(0,Q.jsx)(`div`,{style:{width:400,maxWidth:`90vw`},children:(0,Q.jsx)(On,{session:e})}),children:(0,Q.jsxs)(`div`,{role:`button`,tabIndex:0,style:{...Ie,cursor:`pointer`},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.currentTarget.click())},children:[(0,Q.jsx)(Le,{style:{fontSize:14,color:B.colorTextSecondary,flexShrink:0}}),(0,Q.jsx)(h.Text,{style:{fontSize:13,flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0},children:`Session IDs`}),(0,Q.jsx)(z,{title:U.includes(`session-ids`)?`Hide from info bar`:`Show in info bar`,placement:`right`,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":U.includes(`session-ids`)?`Unpin Session IDs`:`Pin Session IDs`,style:{background:`none`,border:`none`,cursor:`pointer`,color:U.includes(`session-ids`)?B.colorPrimary:B.colorTextTertiary,lineHeight:1,padding:`4px`,flexShrink:0,borderRadius:B.borderRadiusSM,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:e=>{e.stopPropagation(),ve(`session-ids`)},children:U.includes(`session-ids`)?(0,Q.jsx)(Oe,{style:{fontSize:12}}):(0,Q.jsx)(N,{style:{fontSize:12}})})})]})})]}),ze=g?`Sending stop request...`:m?`Stopping... (Click again to retry if stuck)`:`Stop Execution`,K=p||g,Ve=p&&_?`Queue`:`Send`,He=S?`Disconnected from daemon`:b?Te:p?`Queue Message`:`Send Prompt`;return(0,Q.jsxs)(`div`,{style:{position:`relative`,flexShrink:0,background:B.colorBgContainer,borderTop:`1px solid ${B.colorBorder}`,padding:`${B.sizeUnit*2}px ${B.sizeUnit*6}px ${B.sizeUnit*3}px`,marginLeft:-B.sizeUnit*6,marginRight:-B.sizeUnit*6},children:[a&&(0,Q.jsx)(`div`,{style:{position:`absolute`,top:0,left:0,right:0,bottom:0,background:a,pointerEvents:`none`,zIndex:0}}),(0,Q.jsxs)(`div`,{style:{position:`relative`,zIndex:1},children:[(U.includes(`tools`)||t&&U.includes(`timer`)||ye&&U.includes(`model`)||be!==null&&U.includes(`tokens`)||r&&r.limit>0&&U.includes(`context`)||U.includes(`session-ids`))&&(0,Q.jsxs)(`div`,{style:{display:`flex`,gap:B.sizeUnit,alignItems:`center`,marginBottom:B.sizeUnit*2,flexWrap:`wrap`},children:[t&&U.includes(`timer`)&&(0,Q.jsx)(`div`,{style:{display:`inline-flex`,alignItems:`center`,height:22},"data-testid":`timer-chip`,children:(0,Q.jsx)(Gt,{status:t.status,startedAt:t.message_range?.start_timestamp||t.created_at,endedAt:t.message_range?.end_timestamp||t.completed_at,durationMs:t.duration_ms,lastExecutorHeartbeatAt:t.last_executor_heartbeat_at})}),U.includes(`tools`)&&(0,Q.jsx)(Fa,{client:A,sessionId:e.session_id,sessionMcpServerIds:o,mcpServerById:u,userAuthenticatedMcpServerIds:d,onOpenSessionSettings:F}),ye&&U.includes(`model`)&&(0,Q.jsx)(O,{trigger:`click`,placement:`topLeft`,title:`Model`,overlayStyle:{maxWidth:`none`},overlayInnerStyle:{padding:8},content:(0,Q.jsx)(`div`,{style:{width:420},children:(0,Q.jsx)(yt,{value:te,onChange:P,agentic_tool:e.agentic_tool,client:A})}),children:(0,Q.jsx)(Ft,{icon:(0,Q.jsx)(f,{}),color:`default`,style:{cursor:`pointer`,height:22,display:`inline-flex`,alignItems:`center`,maxWidth:180},"data-testid":`model-chip`,children:(0,Q.jsx)(`span`,{style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:ye})})}),be!==null&&U.includes(`tokens`)&&(0,Q.jsx)(z,{title:n.total>0?(0,Q.jsxs)(`div`,{style:{fontSize:12},children:[(0,Q.jsxs)(`div`,{children:[`Total: `,n.total.toLocaleString()]}),n.input>0&&(0,Q.jsxs)(`div`,{children:[`Input: `,n.input.toLocaleString()]}),n.output>0&&(0,Q.jsxs)(`div`,{children:[`Output: `,n.output.toLocaleString()]}),n.cacheRead>0&&(0,Q.jsxs)(`div`,{children:[`Cache read: `,n.cacheRead.toLocaleString()]}),n.cost>0&&(0,Q.jsxs)(`div`,{children:[`Est. cost: $`,n.cost.toFixed(4)]})]}):void 0,placement:`top`,children:(0,Q.jsxs)(Ft,{color:`default`,style:{cursor:`default`,height:22,display:`inline-flex`,alignItems:`center`},"data-testid":`tokens-chip`,children:[be,` tokens`]})}),r&&r.limit>0&&U.includes(`context`)&&(0,Q.jsxs)(Ft,{icon:(0,Q.jsx)(M,{style:{color:Se?B.colorWarning:void 0}}),color:Se?`warning`:`default`,style:{cursor:`default`,height:22,display:`inline-flex`,alignItems:`center`},"data-testid":`context-chip`,"data-warning":Se?`true`:void 0,children:[Math.round(xe*100),`%`]}),U.includes(`session-ids`)&&(0,Q.jsx)(O,{trigger:`click`,placement:`topLeft`,title:(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(Le,{style:{marginRight:8}}),`Session IDs`]}),content:(0,Q.jsx)(`div`,{style:{width:400,maxWidth:`90vw`},children:(0,Q.jsx)(On,{session:e})}),children:(0,Q.jsx)(Ft,{icon:(0,Q.jsx)(Le,{}),color:`default`,style:{cursor:`pointer`,height:22,display:`inline-flex`,alignItems:`center`},"data-testid":`session-ids-chip`,children:`IDs`})})]}),de,(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:B.sizeUnit,marginTop:B.sizeUnit*2},children:[(0,Q.jsxs)(W,{size:4,children:[H.includes(`upload`)&&(0,Q.jsx)(z,{title:b?Te:S?`Disconnected from daemon`:`Attach Files`,children:(0,Q.jsx)(i,{size:`small`,type:`text`,"aria-label":`Attach files`,title:`Attach files`,icon:(0,Q.jsx)(ne,{}),onClick:oe,disabled:Ee,"data-testid":`upload-bar-btn`})}),H.includes(`advanced-upload`)&&(0,Q.jsx)(z,{title:b?Te:S?`Disconnected from daemon`:`Advanced upload`,children:(0,Q.jsx)(i,{size:`small`,type:`text`,"aria-label":`Advanced upload`,title:`Advanced upload`,icon:(0,Q.jsx)(ge,{}),onClick:se,disabled:De})}),H.includes(`fork`)&&C?.supportsSessionFork!==!1&&(0,Q.jsx)(z,{title:S?`Disconnected from daemon`:`Fork Session`,children:(0,Q.jsx)(i,{size:`small`,type:`text`,"aria-label":`Fork session`,icon:(0,Q.jsx)(Pe,{}),onClick:R,disabled:G,"data-testid":`fork-bar-btn`})}),H.includes(`btw-fork`)&&C?.supportsSessionFork!==!1&&(0,Q.jsx)(z,{title:`BTW fork`,children:(0,Q.jsx)(i,{size:`small`,type:`text`,"aria-label":`Ask side question via BTW fork`,icon:(0,Q.jsx)(_e,{}),onClick:ie,disabled:Ae,"data-testid":`btw-fork-bar-btn`})}),H.includes(`spawn`)&&C?.supportsChildSpawn!==!1&&(0,Q.jsx)(z,{title:`Spawn subsession`,children:(0,Q.jsx)(i,{size:`small`,type:`text`,"aria-label":`Spawn subsession`,icon:(0,Q.jsx)(l,{}),onClick:ae,disabled:Me})}),(0,Q.jsx)(O,{open:fe,onOpenChange:V,trigger:`click`,placement:`topLeft`,content:Re,title:null,children:(0,Q.jsx)(z,{title:`More options`,children:(0,Q.jsx)(i,{size:`small`,type:`text`,icon:(0,Q.jsx)(ee,{})})})})]}),(0,Q.jsx)(`div`,{style:{flex:1}}),(0,Q.jsxs)(W,{size:4,children:[K&&(0,Q.jsx)(z,{title:ze,children:(0,Q.jsx)(i,{danger:!0,size:`small`,icon:m&&!g?(0,Q.jsx)(Be,{size:`small`}):(0,Q.jsx)(je,{}),onClick:re,disabled:!p||g,children:`Stop`})}),(0,Q.jsx)(z,{title:He,children:(0,Q.jsx)(L,{count:w.length>0?w.length:0,size:`small`,offset:[-2,2],style:{boxShadow:`none`,backgroundColor:B.colorTextTertiary,fontSize:10},children:(0,Q.jsx)(i,{type:`primary`,size:`small`,icon:(0,Q.jsx)(Ue,{}),onClick:I,disabled:Ne,children:Ve})})})]})]})]})]})},La=(0,Z.lazy)(()=>it(()=>import(`./EmbeddedTerminal-Lx5I9EOJ.js`).then(e=>({default:e.EmbeddedTerminal})),__vite__mapDeps([0,1,2,3,4,5]))),Ra=e=>(0,Q.jsx)(Z.Suspense,{fallback:null,children:(0,Q.jsx)(La,{...e})}),za=Z.memo(({client:e,session:t,branch:n=null,currentUserId:r,scrollToBottom:a,scrollToTop:o,setScrollToBottom:s,setScrollToTop:l,queuedTasks:u,setQueuedTasks:f,spawnModalOpen:p,setSpawnModalOpen:g,onSpawnModalConfirm:_,inputValueRef:v,isOpen:y,cliViewMode:b=`terminal`,setCliViewMode:x})=>{let{token:S}=q.useToken(),{showSuccess:w,showError:T}=Ct(),[E,D]=Z.useState(!1),O=u.length>0&&t.status===`failed`,k=Z.useCallback(async()=>{if(!(!e||E)){D(!0);try{await e.service(`sessions`).patch(t.session_id,{ready_for_prompt:!0}),w(`Resuming queued prompts`)}catch(e){T(`Failed to resume queue: ${e instanceof Error?e.message:String(e)}`)}finally{D(!1)}}},[e,E,t.session_id,T,w]),A=X(Gn),ee=X(Pn),j=X(un),{onOpenBranch:M,onStartEnvironment:te,onStopEnvironment:N,onNukeEnvironment:P,onViewLogs:F,onPermissionDecision:I}=ar(),L=n&&ee.get(n.repo_id)||null,ne=Z.useCallback((e,t)=>{s(()=>e),l(()=>t)},[s,l]);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{style:{marginBottom:S.sizeUnit,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:S.sizeUnit*2},children:[n&&(0,Q.jsxs)(W,{size:8,wrap:!0,style:{flex:1},children:[n&&L&&(0,Q.jsx)(zr,{repo:L,branch:n,onOpenBranch:M,onStartEnvironment:te,onStopEnvironment:N,onNukeEnvironment:P,onViewLogs:F,identityLink:rt(t.session_id)}),n?.issue_url&&(0,Q.jsx)(yn,{issueUrl:n.issue_url,currentRepo:L??void 0}),n?.pull_request_url&&(0,Q.jsx)(Bn,{prUrl:n.pull_request_url,currentRepo:L??void 0})]}),!n&&(0,Q.jsx)(`div`,{style:{flex:1}}),(0,Q.jsxs)(W,{size:4,children:[(0,Q.jsx)(z,{title:`Scroll to top of conversation`,children:(0,Q.jsx)(i,{type:`text`,size:`small`,icon:(0,Q.jsx)(m,{}),onClick:()=>o?.(),disabled:!o})}),(0,Q.jsx)(z,{title:`Scroll to bottom of conversation`,children:(0,Q.jsx)(i,{type:`text`,size:`small`,icon:(0,Q.jsx)(Re,{}),onClick:()=>a?.(),disabled:!a})})]})]}),t.agentic_tool===`claude-code-cli`&&x?(0,Q.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-end`,justifyContent:`space-between`,gap:S.sizeUnit*2,marginTop:S.sizeUnit*2},children:[(0,Q.jsx)(d,{activeKey:b,onChange:e=>x(e),size:`small`,style:{flex:1,marginBottom:-1},items:[{key:`terminal`,label:(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(He,{style:{marginRight:6}}),`CLI terminal`]})},{key:`conversation`,label:(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(he,{style:{marginRight:6}}),`Agor conversation`]})}]}),b===`terminal`&&e&&(0,Q.jsx)(z,{title:`Restart claude REPL in this tab (closes the Zellij tab and re-spawns claude — JSONL transcript preserved, watcher resumes from offset)`,children:(0,Q.jsx)(i,{size:`small`,icon:(0,Q.jsx)(me,{}),onClick:async()=>{try{await e.service(`sessions/${t.session_id}/restart-cli`).create({}),w(`Restarting claude…`)}catch(e){T(`Failed to restart: ${e instanceof Error?e.message:String(e)}`)}},style:{marginBottom:S.sizeUnit},children:`Restart`})})]}):(0,Q.jsx)(c,{style:{margin:`${S.sizeUnit*2}px 0`}}),t.agentic_tool===`claude-code-cli`&&(0,Q.jsx)(`div`,{style:{display:b===`terminal`?`flex`:`none`,flex:1,minHeight:0,flexDirection:`column`},children:(0,Q.jsx)(Ra,{client:e,userId:r,branchId:t.branch_id,focusTabName:`cli-${tt(t.session_id)}`,ensureCliSessionId:t.session_id,fill:!0,visible:b===`terminal`})}),(0,Q.jsx)(`div`,{style:{display:t.agentic_tool===`claude-code-cli`&&b===`terminal`?`none`:`contents`},children:(0,Q.jsx)(Dr,{client:e,sessionId:t.session_id,agentic_tool:t.agentic_tool,sessionModel:t.model_config?.model,userById:A,currentUserId:r,onScrollRef:ne,onPermissionDecision:I,branchName:n?.name,scheduledFromBranch:t.scheduled_from_branch,scheduledRunAt:t.scheduled_run_at,isActive:y,genealogy:t.genealogy,assistantEmoji:n&&nt(n)?et(n)?.emoji:void 0})}),u.length>0&&(0,Q.jsxs)(`div`,{style:{flexShrink:0,background:S.colorBgElevated,borderTop:`1px solid ${S.colorBorderSecondary}`,borderTopLeftRadius:S.borderRadiusLG,borderTopRightRadius:S.borderRadiusLG,padding:`${S.sizeUnit*3}px ${S.sizeUnit*6}px`,marginLeft:-S.sizeUnit*6+S.sizeUnit*2,marginRight:-S.sizeUnit*6+S.sizeUnit*2,marginTop:S.sizeUnit*2,boxShadow:`0 -2px 8px ${S.colorBgMask}`},children:[(0,Q.jsxs)(h.Text,{type:`secondary`,style:{fontSize:S.fontSizeSM,display:`block`,marginBottom:S.sizeUnit*2,fontWeight:500,textTransform:`uppercase`,letterSpacing:`0.5px`},children:[`Queued Tasks (`,u.length,`)`]}),O&&(0,Q.jsx)(R,{type:`warning`,showIcon:!0,style:{marginBottom:S.sizeUnit*2},message:`Queue paused by failed session`,description:`Queued prompts are preserved. Resume the queue to run the next prompt without copy/paste.`,action:(0,Q.jsx)(i,{size:`small`,type:`primary`,loading:E,disabled:!e,onClick:k,children:`Resume queue`})}),(0,Q.jsx)(W,{orientation:`vertical`,size:8,style:{width:`100%`},children:u.map((n,r)=>(0,Q.jsxs)(`div`,{style:{background:S.colorBgContainer,padding:`${S.sizeUnit*2}px ${S.sizeUnit*3}px`,borderRadius:S.borderRadius,border:`1px solid ${S.colorBorder}`,display:`flex`,justifyContent:`space-between`,alignItems:`center`,gap:S.sizeUnit*2},children:[(0,Q.jsxs)(h.Text,{ellipsis:!0,style:{flex:1},children:[(0,Q.jsxs)(`span`,{style:{color:S.colorTextSecondary,marginRight:S.sizeUnit},children:[r+1,`.`]}),n.full_prompt]}),(0,Q.jsxs)(W,{size:4,children:[O&&r===0&&(0,Q.jsx)(i,{size:`small`,type:`link`,loading:E,disabled:!e,onClick:k,children:`Run next`}),(0,Q.jsx)(i,{type:`text`,size:`small`,icon:(0,Q.jsx)(C,{}),onClick:async()=>{await xn(n.full_prompt),w(`Message copied to clipboard`)}}),(0,Q.jsx)(i,{type:`text`,size:`small`,danger:!0,icon:(0,Q.jsx)(ae,{}),onClick:async()=>{if(e)try{f(e=>e.filter(e=>e.task_id!==n.task_id)),await e.service(`tasks`).remove(n.task_id)}catch(n){T(`Failed to remove queued task: ${n instanceof Error?n.message:String(n)}`),f((await e.service(`sessions/${t.session_id}/tasks/queue`).find()).data||[])}}})]})]},n.task_id))})]}),(0,Q.jsx)(yr,{open:p,action:`spawn`,session:t,currentUser:r&&A.get(r)||null,mcpServerById:j,initialPrompt:v.current??``,onConfirm:_,onCancel:()=>g(!1),client:e,userById:A})]})});function Ba({sessionId:e,showError:t}){let[n,r]=Z.useState([]),[i,a]=Z.useState(null),[o,s]=Z.useState(!1),c=Z.useRef(e),l=Z.useRef([]),u=Z.useRef(!1);l.current=n,u.current=o;let d=Z.useCallback(e=>{e.previewUrl?.startsWith(`blob:`)&&URL.revokeObjectURL(e.previewUrl)},[]),f=Z.useCallback(()=>{l.current.forEach(d),r([])},[d]);Z.useEffect(()=>()=>{l.current.forEach(d)},[d]),Z.useEffect(()=>{c.current!==e&&(f(),a(null),c.current=e)},[e,f]);let p=Z.useCallback(e=>{if(u.current||e.length===0)return;let{acceptedFiles:n,rejections:i}=ya(e,l.current);if(i.length>0){let e=ba(i);a(e),t(e)}else a(null);n.length!==0&&r(e=>[...e,...n.map(e=>{let t=ga(e);return{id:typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${e.name}`,file:e,previewUrl:t?URL.createObjectURL(e):void 0,destination:`branch`,status:`pending`}})])},[t]),m=Z.useCallback(e=>{u.current||(a(null),r(t=>{let n=t.find(t=>t.id===e);return n&&d(n),t.filter(t=>t.id!==e)}))},[d]),h=Z.useCallback(async(t=l.current,n=e)=>{if(!n)throw Error(`Cannot upload attachments without an active session.`);let i=t;if(i.length===0)return[];let a=i.find(xa);if(a)throw Error(`${a.file.name} failed or cannot be uploaded. Remove failed files before sending.`);let o=i.flatMap(e=>e.uploadedFile?[e.uploadedFile]:[]),c=i.filter(e=>e.status!==`uploaded`);if(c.length===0)return o;s(!0),u.current=!0,r(e=>e.map(e=>c.some(t=>t.id===e.id)?{...e,status:`uploading`,error:void 0}:e));let d=new Map;try{let e=await na({sessionId:n,daemonUrl:er(),files:c.map(e=>e.file),notifyAgent:!1});if(e.files.length!==c.length)throw Error(`Upload response did not include every selected file`);c.forEach((t,n)=>{let r=e.files[n];r&&d.set(t.id,r)}),r(e=>e.map(e=>{let t=d.get(e.id);return t?{...e,status:`uploaded`,uploadedFile:t,error:void 0}:e}));let t=new Map;return i.forEach(e=>{e.uploadedFile&&t.set(e.id,e.uploadedFile)}),d.forEach((e,n)=>{t.set(n,e)}),i.flatMap(e=>{let n=t.get(e.id);return n?[n]:[]})}catch(e){let t=e instanceof Error?e.message:`Failed to upload files`;throw r(e=>e.map(e=>c.some(t=>t.id===e.id)?{...e,status:`failed`,error:t}:e)),e}finally{u.current=!1,s(!1)}},[e]);return{attachments:n,attachmentsRef:l,clearAttachments:f,hasAttachments:n.length>0,hasBlockingAttachments:n.some(xa),addAttachments:p,removeAttachment:m,uploadAttachments:h,uploading:o,uploadingRef:u,validationError:i,setValidationError:a}}var Va=Z.forwardRef(({sessionId:e,getDraft:t,saveDraft:n,deleteDraft:r,onHasInputChange:i,inputValueRef:a,onSubmit:o,hasExternalInput:s=!1,placeholder:c,autoSize:l,client:u,userById:d,onFilesDrop:f,filesDropDisabled:p=!1,showFilesDropOverlay:m=!0,suppressEmptyHighlight:h=!1,slashCommands:g,skills:_},v)=>{let[y,b]=Z.useState(()=>t(e)),x=Z.useRef(y),S=Z.useRef(null);x.current=y,a.current=y;let C=Z.useCallback(e=>{x.current=e,a.current=e,b(e)},[a]),w=Z.useRef(!!y.trim());Z.useEffect(()=>{let e=!!y.trim();e!==w.current&&(w.current=e,i(e))},[y,i]),Z.useImperativeHandle(v,()=>({getValue:()=>S.current?.value??x.current,clear:()=>{x.current=``,a.current=``,S.current&&(S.current.value=``),b(``),r(e)},insertText:e=>{b(t=>{let n=t.trim(),r=`${n}${n?` `:``}${e}`;return x.current=r,a.current=r,r})}}),[e,r,a]);let T=Z.useRef(e);Z.useEffect(()=>{T.current!==e&&(n(T.current,x.current),b(t(e)),T.current=e)},[e,n,t]),Z.useEffect(()=>{let t=setTimeout(()=>n(e,y),300);return()=>clearTimeout(t)},[y,e,n]);let E=Z.useRef(n);E.current=n;let D=Z.useRef(e);return D.current=e,Z.useEffect(()=>()=>E.current(D.current,x.current),[]),(0,Q.jsx)(Tr,{ref:S,value:y,onChange:C,placeholder:c,autoSize:l,onKeyPress:Z.useCallback(e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),(x.current.trim()||s)&&o())},[s,o]),client:u,sessionId:e,userById:d,onFilesDrop:f,filesDropDisabled:p,showFilesDropOverlay:m,suppressEmptyHighlight:h,slashCommands:g,skills:_,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`,highlightWhenEmpty:!0})});Va.displayName=`PromptInput`;var Ha=Z.memo(({client:e,session:t,branch:r=null,currentUserId:a,sessionMcpServerIds:o=[],open:s,onClose:c})=>{let{token:l}=q.useToken(),{modal:u}=_.useApp(),{showSuccess:d,showInfo:f,showError:p}=Ct(),m=Tt(),g=Ot(),v=X(Gn),y=X(un),b=X(Zt),{onSendPrompt:x,onFork:S,onBtwFork:C,onOpenSettings:w,onUpdateSession:E,onOpenTerminal:D}=ar(),{archiveSession:O}=vt(e),k=t?.agentic_tool?Ke[t.agentic_tool]:void 0,A=Z.useMemo(()=>o.map(e=>y.get(e)).filter(e=>ta(e,b)).map(e=>e),[o,y,b]),j=`agor-draft-`,M=Z.useCallback(e=>{try{return localStorage.getItem(`${j}${e}`)||``}catch{return``}},[]),te=Z.useCallback((e,t)=>{try{t.trim()?localStorage.setItem(`${j}${e}`,t):localStorage.removeItem(`${j}${e}`)}catch{}},[]),N=Z.useCallback(e=>{try{localStorage.removeItem(`${j}${e}`)}catch{}},[]),P=Z.useRef(null),F=Z.useRef(t?M(t.session_id):``),[I,ne]=Z.useState(()=>!!F.current.trim()),re=Z.useCallback(e=>ne(e),[]),ie=t?.permission_config?.mode??(t?.agentic_tool?Ye(t.agentic_tool):Ye(`claude-code`)),ae=Ze(ie),[oe,se]=Z.useState(ie),[ce,le]=Z.useState(t?.permission_config?.codex?.sandboxMode??ae.sandboxMode),[ue,de]=Z.useState(t?.permission_config?.codex?.approvalPolicy??ae.approvalPolicy),[B,fe]=Z.useState(t?.model_config?.effort||`high`),[V,pe]=Z.useState(`terminal`),[me,H]=Z.useState(null),[he,ge]=Z.useState(null),[_e,ve]=Z.useState([]),[be,xe]=Z.useState(!1),[Se,Ce]=Z.useState(!1),[we,Te]=Z.useState(!1),[Ee,Oe]=Z.useState([]),[G,ke]=Z.useState(!1),[Ae,je]=Z.useState(!1),{state:Me}=Ht(e,t?.session_id??null,{enabled:s,reactiveOptions:{taskHydration:`none`}}),Ne=Me?.tasks||[],Pe=Z.useRef(null),Fe=Z.useRef({sessionId:t?.session_id??null,generation:0}),Ie=t?.session_id??null;Fe.current.sessionId!==Ie&&(Fe.current={sessionId:Ie,generation:Fe.current.generation+1});let{attachments:Le,attachmentsRef:Re,clearAttachments:ze,hasAttachments:K,addAttachments:Be,removeAttachment:Ve,uploadAttachments:Ue,uploading:We,uploadingRef:Ge,validationError:qe,setValidationError:Je}=Ba({sessionId:t?.session_id??null,showError:p}),$e=Z.useRef(!1);Z.useEffect(()=>{if(!e||!t)return;(async()=>{try{ve((await e.service(`/sessions/${t.session_id}/tasks/queue`).find()).data||[])}catch(e){console.error(`[SessionPanel] Failed to fetch queue:`,e)}})();let n=e.service(`tasks`),r=e=>{e.session_id===t.session_id&&ve(t=>t.some(t=>t.task_id===e.task_id)?t:[...t,e].sort((e,t)=>(e.queue_position??0)-(t.queue_position??0)))},i=e=>{e.session_id===t.session_id&&e.status!==Xe.QUEUED&&ve(t=>t.filter(t=>t.task_id!==e.task_id))},a=e=>{e.session_id===t.session_id&&ve(t=>t.filter(t=>t.task_id!==e.task_id))};return n.on(`queued`,r),n.on(`patched`,i),n.on(`updated`,i),n.on(`removed`,a),()=>{n.off(`queued`,r),n.off(`patched`,i),n.off(`updated`,i),n.off(`removed`,a)}},[e,t]);let et=Z.useMemo(()=>t?.agentic_tool?Ne.reduce((e,t)=>{if(!t.normalized_sdk_response)return e;let{tokenUsage:n,costUsd:r}=t.normalized_sdk_response;return{total:e.total+n.totalTokens,input:e.input+n.inputTokens,output:e.output+n.outputTokens,cacheRead:e.cacheRead+(n.cacheReadTokens||0),cacheCreation:e.cacheCreation+(n.cacheCreationTokens||0),cost:e.cost+(r||0)}},{total:0,input:0,output:0,cacheRead:0,cacheCreation:0,cost:0}):{total:0,input:0,output:0,cacheRead:0,cacheCreation:0,cost:0},[Ne,t?.agentic_tool]),tt=Z.useMemo(()=>{if(!t?.agentic_tool)return null;for(let e=Ne.length-1;e>=0;e--){let n=Ne[e];if(n.computed_context_window!==void 0&&n.normalized_sdk_response){let{contextWindowLimit:e}=n.normalized_sdk_response;if(n.computed_context_window>0)return{used:n.computed_context_window,limit:e||0,taskMetadata:{model:n.model,duration_ms:n.duration_ms,agentic_tool:t.agentic_tool,raw_sdk_response:n.raw_sdk_response,normalized_sdk_response:n.normalized_sdk_response}}}}return null},[Ne,t?.agentic_tool]),nt=Z.useMemo(()=>{let e=[];return r?.issue_url&&e.push({key:`issue`,name:`Issue: ${dn(r.issue_url)}`,url:r.issue_url}),r?.pull_request_url&&e.push({key:`pr`,name:`PR: ${dn(r.pull_request_url)}`,url:r.pull_request_url}),e},[r?.issue_url,r?.pull_request_url]),rt=Z.useMemo(()=>{if(tt)return mn(tt.used,tt.limit,tt.taskMetadata.normalized_sdk_response?.contextUsageSnapshot)},[tt]),it=Z.useMemo(()=>{if(Ne.length===0)return null;for(let e=Ne.length-1;e>=0;--e){let t=Ne[e];if(t.status===Xe.RUNNING||t.status===Xe.STOPPING||t.status===Xe.AWAITING_PERMISSION||t.status===Xe.AWAITING_INPUT)return t}return Ne[Ne.length-1]},[Ne]);if(Z.useEffect(()=>{t?.permission_config?.mode?se(t.permission_config.mode):t?.agentic_tool&&se(Ye(t.agentic_tool)),t?.agentic_tool===`codex`&&t?.permission_config?.codex&&(le(t.permission_config.codex.sandboxMode),de(t.permission_config.codex.approvalPolicy))},[t?.permission_config?.mode,t?.permission_config?.codex,t?.agentic_tool]),Z.useEffect(()=>{fe(t?.model_config?.effort||`high`)},[t?.model_config?.effort]),!t)return null;let at=()=>{if(!e||m){p(`Cannot archive while disconnected from the daemon.`);return}u.confirm({title:`Archive session?`,content:`Are you sure you want to archive this session?`,okText:`Archive`,cancelText:`Cancel`,onOk:async()=>{await O(t.session_id)?(d(`Session archived`),c()):p(`Failed to archive session`)}})},ot=!!r,st=[...r?[{key:`center-map`,icon:(0,Q.jsx)(De,{}),label:`Center map on branch`,onClick:()=>g(r.branch_id,{boardId:r.board_id??void 0})}]:[],...D&&r?[{key:`terminal`,icon:(0,Q.jsx)(He,{}),label:`Open terminal`,onClick:()=>D([],r.branch_id)}]:[],...ot?[{type:`divider`}]:[],...w?[{key:`settings`,icon:(0,Q.jsx)(U,{}),label:`Session Settings`,onClick:()=>w(t.session_id)}]:[],{key:`archive`,icon:(0,Q.jsx)(T,{}),label:m?`Archive (disconnected)`:`Archive session`,disabled:m||!e,onClick:at}],ct=t.status===Qe.RUNNING||t.status===Qe.STOPPING,lt=t.status===Qe.STOPPING,ut=(e=[])=>{Ge.current||(Oe(e),Te(!0))},dt=async()=>{if(!($e.current||Ge.current||m)){$e.current=!0;try{let e=t.session_id,n=Fe.current,r=P.current?.getValue()??``,i=Re.current,a=i.length>0;if(!r.trim()&&!a)return;let o=i.find(xa);if(o){p(`${o.file.name} failed or cannot be uploaded. Remove failed files before sending.`);return}if(!x){p(`Cannot send prompt from this view.`);return}let s=(await Ue(i,e)).map(e=>e.path),c=Fe.current.sessionId===e&&Fe.current.generation===n.generation,l=wa(c?Ca({promptHandle:P.current,inputValueRefValue:F.current,sendStartValue:r}):r,s);if(!l.trim()||await x?.(e,l,oe)===!1)return;c?(P.current?.clear(),ze(),Je(null)):N(e),c&&me?.()}catch(e){console.error(`Composer send failed — keeping prompt and files in composer:`,e),p(e instanceof Error?e.message:`Failed to send prompt`)}finally{$e.current=!1}}},ft=async()=>{if(!(!t||!e||Ae)){lt&&f(`Retrying stop request...`),je(!0);try{await e.service(`sessions/${t.session_id}/stop`).create({})}catch(e){console.error(`Failed to stop execution:`,e),p(`Failed to stop execution. You can try again.`)}finally{je(!1)}}},pt=async()=>{if(!t)return;if(Re.current.length>0){p(`Attachments are only supported for normal Send for now. Remove attachments to fork.`);return}let e=(P.current?.getValue()??``).trim();if(!e){xe(!0);return}try{await S?.(t.session_id,e),P.current?.clear()}catch(e){console.error(`Fork failed — keeping prompt in compose box:`,e)}},mt=async e=>{if(!t)return;let n=typeof e==`string`?e:e.prompt??``;n&&await S?.(t.session_id,n)},ht=async()=>{if(Re.current.length>0){p(`Attachments are only supported for normal Send for now. Remove attachments to send BTW.`);return}let e=P.current?.getValue()??``;if(!e.trim()||m)return;let n=e.trim();try{await C?.(t.session_id,n),P.current?.clear()}catch(e){console.error(`BTW fork failed — keeping prompt in compose box:`,e)}},gt=()=>{if(Re.current.length>0){p(`Attachments are only supported for normal Send for now. Remove attachments to spawn.`);return}Ce(!0)},_t=async n=>{if(!t||!e)return;let r=typeof n==`string`?{userPrompt:n}:{userPrompt:n.prompt||``,agenticTool:n.agent,permissionMode:n.permissionMode,modelConfig:n.modelConfig,codexSandboxMode:n.codexSandboxMode,codexApprovalPolicy:n.codexApprovalPolicy,codexNetworkAccess:n.codexNetworkAccess,mcpServerIds:n.mcpServerIds,callbackConfig:{enableCallback:n.enableCallback,includeLastMessage:n.includeLastMessage,includeOriginalPrompt:n.includeOriginalPrompt},extraInstructions:n.extraInstructions};await e.service(`sessions/${t.session_id}/spawn-prompt`).create({...r,parentPermissionMode:oe}),Ce(!1),P.current?.clear()},yt=e=>{se(e),t&&E&&E(t.session_id,{permission_config:{...t.permission_config,mode:e}})},bt=(e,n)=>{le(e),de(n),t&&E&&E(t.session_id,{permission_config:{...t.permission_config,codex:{...t.permission_config?.codex,sandboxMode:e,approvalPolicy:n}}})},xt=e=>{fe(e),t&&E&&t.model_config&&E(t.session_id,{model_config:{...t.model_config,effort:e}})},St=e=>{if(t&&E){let n={...t.model_config,mode:e.mode,model:e.model,...e.provider?{provider:e.provider}:{},updated_at:new Date().toISOString()};e.advisorModel?n.advisorModel=e.advisorModel:delete n.advisorModel,E(t.session_id,{model_config:n})}},J=()=>{switch(t.status){case`running`:return`processing`;case`completed`:return`success`;case`failed`:return`error`;case`timed_out`:return`warning`;default:return`default`}},wt=t.model_config?.model&&t.agentic_tool===`opencode`&&t.model_config.provider?`${t.model_config.provider}/${t.model_config.model}`:t.model_config?.model,Et=t.model_config?.model?{mode:t.model_config.mode||`alias`,model:t.model_config.model,provider:t.model_config.provider,advisorModel:t.model_config.advisorModel}:void 0,kt=(0,Q.jsx)(Ia,{session:t,footerTimerTask:it,tokenBreakdown:et,latestContextWindow:tt,footerGradient:rt,sessionMcpServerIds:o,unauthedMcpServers:A,mcpServerById:y,userAuthenticatedMcpServerIds:b,isRunning:ct,isStopping:lt,stopRequestInFlight:Ae,hasInput:I||K,composerAttachmentsPresent:K,composerAttachmentUploading:We,connectionDisabled:m,toolCaps:k,effortLevel:B,permissionMode:oe,codexSandboxMode:ce,codexApprovalPolicy:ue,queuedTasks:_e,client:e,modelLabel:wt,modelConfig:Et,onModelConfigChange:St,onOpenSessionSettings:w,onSendPrompt:dt,onStop:ft,onFork:pt,onBtwSend:ht,onSpawnOpen:gt,onAttachFiles:()=>Pe.current?.click(),onUploadOpen:()=>ut(),onEffortChange:xt,onPermissionModeChange:yt,onCodexPermissionChange:bt,promptInputSlot:(0,Q.jsxs)(Aa,{disabled:We,onDragActiveChange:ke,onFilesDrop:Be,children:[qe&&(0,Q.jsx)(R,{type:`error`,showIcon:!0,message:qe,style:{marginBottom:0,borderRadius:l.borderRadius}}),(0,Q.jsx)(Oa,{attachments:Le,disabled:We,onRemove:Ve}),(0,Q.jsx)(Va,{ref:P,sessionId:t.session_id,getDraft:M,saveDraft:te,deleteDraft:N,onHasInputChange:re,inputValueRef:F,onSubmit:dt,hasExternalInput:K,placeholder:ct?`Queue here… @ for mentions, : for emoji`:`Prompt here… @ for mentions, : for emoji`,autoSize:{minRows:1,maxRows:10},client:e,userById:v,onFilesDrop:Be,filesDropDisabled:We,showFilesDropOverlay:!1,suppressEmptyHighlight:G,slashCommands:(()=>{let e=t?.custom_context;return Array.isArray(e?.slash_commands)?e.slash_commands:void 0})(),skills:(()=>{let e=t?.custom_context;return Array.isArray(e?.skills)?e.skills:void 0})()}),(0,Q.jsx)(`input`,{ref:Pe,type:`file`,accept:Sa(),multiple:!0,disabled:We,style:{display:`none`},onChange:e=>{Be(Array.from(e.target.files??[])),e.target.value=``}})]})});return(0,Q.jsxs)(`div`,{style:{width:`100%`,height:`100%`,display:s?`flex`:`none`,flexDirection:`column`,background:l.colorBgElevated,borderLeft:`1px solid ${l.colorBorder}`},children:[(0,Q.jsx)(`div`,{style:{flexShrink:0,padding:`${l.sizeUnit*3}px ${l.sizeUnit*6}px`,borderBottom:`1px solid ${l.colorBorder}`,background:l.colorBgContainer},children:(0,Q.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`flex-start`},children:[(0,Q.jsxs)(W,{size:12,align:`start`,style:{flex:1},children:[(0,Q.jsx)(jt,{tool:t.agentic_tool,size:40}),(0,Q.jsxs)(`div`,{style:{flex:1},children:[(0,Q.jsxs)(`div`,{style:{marginBottom:4},children:[(0,Q.jsx)(h.Text,{strong:!0,style:{fontSize:18,...Kt(2)},children:Jt(t,{includeAgentFallback:!0})}),(0,Q.jsx)(L,{status:J(),text:t.status.toUpperCase(),style:{marginLeft:12}})]}),t.created_by&&(0,Q.jsx)(`div`,{children:(0,Q.jsx)(Dt,{createdBy:t.created_by,currentUserId:a,userById:v,prefix:`Created by`})})]})]}),(0,Q.jsxs)(W,{size:4,children:[(0,Q.jsx)(Ea,{items:nt}),(0,Q.jsx)(ye,{menu:{items:st},trigger:[`click`],placement:`bottomRight`,children:(0,Q.jsx)(z,{title:`More actions`,children:(0,Q.jsx)(i,{type:`text`,icon:(0,Q.jsx)(ee,{})})})}),(0,Q.jsx)(z,{title:`Close Panel`,children:(0,Q.jsx)(i,{type:`text`,icon:(0,Q.jsx)(n,{}),onClick:c,style:{marginLeft:l.sizeUnit}})})]})]})}),(0,Q.jsxs)(`div`,{style:{flex:1,overflow:`hidden`,display:`flex`,flexDirection:`column`,padding:`${l.sizeUnit*3}px ${l.sizeUnit*6}px 0`},children:[(0,Q.jsx)(za,{client:e,session:t,branch:r,currentUserId:a,sessionMcpServerIds:o,scrollToBottom:me,scrollToTop:he,setScrollToBottom:H,setScrollToTop:ge,queuedTasks:_e,setQueuedTasks:ve,spawnModalOpen:Se,setSpawnModalOpen:Ce,onSpawnModalConfirm:_t,inputValueRef:F,isOpen:s,cliViewMode:V,setCliViewMode:pe}),!(t.agentic_tool===`claude-code-cli`&&V===`terminal`)&&kt,(0,Q.jsx)(oa,{sessionId:t.session_id,daemonUrl:er(),open:we,onClose:()=>{Te(!1),Oe([])},initialFiles:Ee,onUploadComplete:e=>{d(`Uploaded ${e.length} file(s)`)},onInsertMention:e=>{P.current?.insertText(`@${e}`)}}),(0,Q.jsx)(yr,{open:be,action:`fork`,session:t,currentUser:a?v.get(a)??null:null,onConfirm:mt,onCancel:()=>xe(!1),client:e,userById:v})]})]})}),Ua=({showHelpText:e=!0})=>(0,Q.jsx)(K.Item,{name:`custom_context`,label:`Custom Context (JSON)`,help:e?`Add custom fields for use in zone trigger templates (e.g., {{ session.context.yourField }})`:void 0,rules:[{validator:Nn}],children:(0,Q.jsx)(ln,{placeholder:`{"teamName": "Backend", "sprintNumber": 42}`,rows:4})}),{Text:Wa,Paragraph:Ga}=h,{TextArea:Ka}=ze,qa=({showHelpText:e=!1})=>(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K.Item,{name:[`callbackConfig`,`enabled`],label:`Enable Child Completion Callbacks`,valuePropName:`checked`,children:(0,Q.jsx)(D,{})}),e&&(0,Q.jsx)(Ga,{type:`secondary`,style:{fontSize:12,marginTop:-16,marginBottom:16},children:`When enabled, this session will receive notifications when spawned child sessions complete their tasks. The callback message includes the child's final result inline.`}),(0,Q.jsx)(K.Item,{name:[`callbackConfig`,`includeLastMessage`],label:`Include Child's Final Answer`,valuePropName:`checked`,children:(0,Q.jsx)(D,{defaultChecked:!0})}),e&&(0,Q.jsx)(Ga,{type:`secondary`,style:{fontSize:12,marginTop:-16,marginBottom:16},children:`Include the child session's last assistant message in the callback. Disable if you only want task status and statistics.`}),(0,Q.jsx)(K.Item,{name:[`callbackConfig`,`template`],label:(0,Q.jsxs)(Q.Fragment,{children:[`Custom Template `,(0,Q.jsx)(Wa,{type:`secondary`,children:`(Optional)`})]}),children:(0,Q.jsx)(Ka,{placeholder:`Leave empty to use default template...`,autoSize:{minRows:4,maxRows:12},style:{fontFamily:`monospace`,fontSize:12}})}),e&&(0,Q.jsxs)(Ga,{type:`secondary`,style:{fontSize:12,marginTop:-16},children:[`Advanced: Customize the callback message template using Handlebars syntax. Available variables: `,(0,Q.jsx)(Wa,{code:!0,children:`childSessionId`}),`, `,(0,Q.jsx)(Wa,{code:!0,children:`spawnPrompt`}),`,`,` `,(0,Q.jsx)(Wa,{code:!0,children:`status`}),`, `,(0,Q.jsx)(Wa,{code:!0,children:`messageCount`}),`, `,(0,Q.jsx)(Wa,{code:!0,children:`toolUseCount`}),`,`,` `,(0,Q.jsx)(Wa,{code:!0,children:`lastAssistantMessage`})]})]});function Ja(e){switch(e){case`running`:return`processing`;case`completed`:return`success`;case`failed`:return`error`;case`timed_out`:return`warning`;default:return`default`}}var Ya=({session:e,onNavigate:t})=>{let{token:n}=q.useToken(),{onSessionClick:r}=ar(),i=X(Dn),a=e.remote_relationships?.as_target?.find(e=>e.relationship_type===`remote_create`),o=a?.source_session_id,s=e.callback_config?.callback_session_id??a?.callback_session_id??o??e.genealogy?.parent_session_id;if(!s)return null;let c=i.get(s),l=e.callback_config?.enabled??a?.callback_enabled??!0,u=c?.archived===!0,d=c?Jt(c,{includeAgentFallback:!0,includeIdFallback:!0}):`${tt(s)} (not loaded)`,f=r?(0,Q.jsxs)(h.Link,{onClick:e=>{e.preventDefault(),r&&(r(s),t?.())},children:[(0,Q.jsx)(le,{style:{marginRight:4}}),(0,Q.jsx)(`strong`,{children:d})]}):(0,Q.jsx)(`strong`,{children:d}),p=u?`archived`:c?.status,m=l?n.colorPrimaryBorder:n.colorBorder,g=l?n.colorPrimaryBg:n.colorFillTertiary,_=l?n.colorPrimary:n.colorTextSecondary;return(0,Q.jsx)(`div`,{style:{marginBottom:12,padding:`${n.sizeUnit*2}px ${n.sizeUnit*3}px`,border:`1px solid ${m}`,background:g,borderRadius:n.borderRadius},children:(0,Q.jsxs)(W,{size:6,wrap:!0,children:[l?(0,Q.jsx)(le,{style:{color:_}}):(0,Q.jsx)(we,{style:{color:_}}),(0,Q.jsxs)(h.Text,{strong:!0,style:{color:_},children:[`Callbacks `,l?`ON`:`OFF`]}),(0,Q.jsxs)(h.Text,{type:`secondary`,children:[` — `,l?`notifying`:`would notify`]}),f,c&&(0,Q.jsxs)(W,{size:4,children:[(0,Q.jsx)(L,{status:Ja(c.status)}),(0,Q.jsx)(h.Text,{type:`secondary`,style:{fontSize:12},children:p})]})]})})},Xa=({showHelpText:e=!0})=>(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(K.Item,{name:`codexSandboxMode`,label:`Sandbox Mode`,help:e?`Controls where Codex can write files (workspace vs. full access)`:void 0,children:(0,Q.jsx)(o,{placeholder:`Select sandbox mode`,options:qn.map(({value:e,label:t,description:n})=>({value:e,label:`${t} · ${n}`}))})}),(0,Q.jsx)(K.Item,{name:`codexApprovalPolicy`,label:`Approval Policy`,help:e?`Controls whether Codex must ask before executing commands`:void 0,children:(0,Q.jsx)(o,{placeholder:`Select approval policy`,options:pt.map(({value:e,label:t,description:n})=>({value:e,label:`${t} · ${n}`}))})}),(0,Q.jsx)(K.Item,{name:`codexNetworkAccess`,label:`Network Access`,help:e?`Allow outbound HTTP/HTTPS requests (workspace-write sandbox only)`:void 0,valuePropName:`checked`,children:(0,Q.jsx)(Y,{showWarning:e})})]}),Za=({showHelpText:e=!0,titleRequired:t=!1,titleLabel:n=`Session Title`})=>(0,Q.jsx)(K.Item,{name:`title`,label:n,rules:[{required:t,message:`Please enter a session title`}],help:e&&!t?`A short descriptive name for this session`:void 0,children:(0,Q.jsx)(ze,{placeholder:`e.g., Auth System Implementation`})}),Qa=[];function $a(e,t){let n=e.permission_config?.mode??Ye(e.agentic_tool),r=Ze(n);return{title:e.title||``,mcpServerIds:t,modelConfig:e.model_config,permissionMode:n,codexSandboxMode:e.permission_config?.codex?.sandboxMode??r.sandboxMode,codexApprovalPolicy:e.permission_config?.codex?.approvalPolicy??r.approvalPolicy,codexNetworkAccess:e.permission_config?.codex?.networkAccess??r.networkAccess,custom_context:e.custom_context?JSON.stringify(e.custom_context,null,2):``,callbackConfig:{enabled:e.callback_config?.enabled??!0,includeLastMessage:e.callback_config?.include_last_message??!0,template:e.callback_config?.template}}}function eo(e,t){let n={};if(e.title!==t.title&&(n.title=e.title),e.modelConfig&&(n.model_config={...e.modelConfig,updated_at:new Date().toISOString()}),e.permissionMode&&(n.permission_config={...t.permission_config,mode:e.permissionMode}),t.agentic_tool===`codex`&&(n.permission_config={...t.permission_config,...n.permission_config,codex:{sandboxMode:e.codexSandboxMode||t.permission_config?.codex?.sandboxMode||`workspace-write`,approvalPolicy:e.codexApprovalPolicy||t.permission_config?.codex?.approvalPolicy||`on-request`,networkAccess:e.codexNetworkAccess??t.permission_config?.codex?.networkAccess??!1}}),e.custom_context)try{n.custom_context=JSON.parse(e.custom_context)}catch{}else e.custom_context===``&&(n.custom_context=void 0);return e.callbackConfig&&(n.callback_config={enabled:e.callbackConfig.enabled??!0,include_last_message:e.callbackConfig.includeLastMessage??!0,template:e.callbackConfig.template||void 0}),n}var to=({open:e,onClose:t,session:n,onUpdate:i,onUpdateSessionMcpServers:a,onUpdateSessionEnvSelections:o,client:s,currentUser:l})=>{let u=X(un),d=X(gn).get(n.session_id)??Qa,[f]=K.useForm(),[p,m]=Z.useState(()=>$a(n,d)),[g,_]=Z.useState([]),[v,y]=Z.useState([]),x=Z.useRef(!1),S=Z.useRef(n.session_id),C=Z.useMemo(()=>{if(!l)return!1;if(l.user_id===n.created_by)return!0;let e=l.role;return e===`admin`||e===`superadmin`},[l,n.created_by]);Z.useEffect(()=>{let t=x.current,r=n.session_id!==S.current;if(x.current=e,S.current=n.session_id,e&&!t||e&&r){let e=$a(n,d);m(e),f.setFieldsValue(e)}},[e,n,d,f]),Z.useEffect(()=>{if(!e||!s||!C)return;let t=!1;return(async()=>{try{let e=await s.service(`sessions/${n.session_id}/env-selections`).find();t||(_(e),y(e))}catch{t||(_([]),y([]))}})(),()=>{t=!0}},[e,s,C,n.session_id]);let w=()=>{f.validateFields().then(()=>{let e=f.getFieldsValue(!0),r=eo(e,n);Object.keys(r).length>0&&i&&i(n.session_id,r),a&&a(n.session_id,e.mcpServerIds||[]),C&&o&&(g.length!==v.length||g.some(e=>!v.includes(e)))&&o(n.session_id,g),t()})},T=()=>{f.resetFields(),t()},D=n.agentic_tool===`codex`,O=[];return D&&O.push({key:`codex-settings`,label:(0,Q.jsxs)(h.Text,{strong:!0,children:[(0,Q.jsx)(U,{style:{marginRight:8}}),`Codex Sandbox & Policies`]}),children:(0,Q.jsx)(Xa,{showHelpText:!0})}),C&&s&&O.push({key:`env-selections`,label:(0,Q.jsxs)(h.Text,{strong:!0,children:[(0,Q.jsx)(fe,{style:{marginRight:8}}),`Environment Variables`]}),children:(0,Q.jsx)(sr,{ownerUserId:n.created_by,client:s,value:g,onChange:_})}),O.push({key:`callback-config`,label:(0,Q.jsxs)(h.Text,{strong:!0,children:[(0,Q.jsx)(Ve,{style:{marginRight:8}}),`Callbacks`]}),children:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Ya,{session:n,onNavigate:t}),(0,Q.jsx)(qa,{showHelpText:!0})]})}),O.push({key:`advanced`,label:(0,Q.jsxs)(h.Text,{strong:!0,children:[(0,Q.jsx)(U,{style:{marginRight:8}}),`Advanced`]}),children:(0,Q.jsx)(Nt,{fallbackTitle:`Failed to load Advanced settings.`,resetKey:n.session_id,children:(0,Q.jsx)(Ua,{showHelpText:!0})})}),(0,Q.jsx)(r,{title:`Session Settings`,open:e,onOk:w,onCancel:T,okText:`Save`,cancelText:`Cancel`,width:600,children:(0,Q.jsxs)(K,{form:f,layout:`vertical`,initialValues:p,children:[(0,Q.jsx)(Za,{showHelpText:!1,titleRequired:!1,titleLabel:`Title`}),(0,Q.jsx)(K.Item,{label:`Session IDs`,children:(0,Q.jsx)(On,{session:n})}),(0,Q.jsx)(Rt,{agenticTool:n.agentic_tool,mcpServerById:u,showHelpText:!1,compact:!0,client:s}),(0,Q.jsx)(c,{dashed:!0,style:{margin:`8px 0 16px`}}),(0,Q.jsx)(E,{ghost:!0,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,Q.jsx)(b,{rotate:e?180:0}),items:O})]})})},no=(0,Z.lazy)(()=>it(()=>import(`./TerminalModal-D9jMGZXv.js`).then(e=>({default:e.TerminalModal})),__vite__mapDeps([6,1,7,8,9,2,3,10,4,5]))),ro=e=>{let[t,n]=(0,Z.useState)(e.open);return(0,Z.useEffect)(()=>{e.open&&n(!0)},[e.open]),t?(0,Q.jsx)(Z.Suspense,{fallback:null,children:(0,Q.jsx)(no,{...e})}):null},{Text:io,Link:ao}=h,oo=({open:e,onClose:t})=>{let{customTheme:n,setCustomTheme:a,setThemeMode:o}=ft(),[s]=K.useForm();(0,Z.useEffect)(()=>{if(e){let e=n?JSON.stringify(n,null,2):so();s.setFieldsValue({themeConfig:e})}},[e,n,s]);let c=async()=>{try{let e=await s.validateFields();a(JSON.parse(e.themeConfig)),o(`custom`),t()}catch(e){console.error(`Theme validation failed:`,e)}},l=()=>{s.setFieldsValue({themeConfig:so()})},u=()=>{s.resetFields(),t()};return(0,Q.jsxs)(r,{title:`Custom Theme Editor`,open:e,onCancel:u,width:700,footer:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(i,{onClick:l,children:`Reset to Default`}),(0,Q.jsx)(i,{onClick:u,children:`Cancel`}),(0,Q.jsx)(i,{type:`primary`,onClick:c,children:`Save & Apply`})]}),children:[(0,Q.jsx)(R,{title:`Edit your custom theme configuration`,description:(0,Q.jsxs)(io,{children:[`Modify the JSON below to customize your Ant Design theme. See the`,` `,(0,Q.jsx)(ao,{href:`https://ant.design/docs/react/customize-theme`,target:`_blank`,rel:`noopener noreferrer`,children:`Ant Design theme documentation`}),` `,`for available options.`]}),type:`info`,showIcon:!0,style:{marginBottom:16}}),(0,Q.jsx)(K,{form:s,layout:`vertical`,children:(0,Q.jsx)(K.Item,{name:`themeConfig`,rules:[{required:!0,message:`Please enter theme configuration`},{validator:Nn}],children:(0,Q.jsx)(ln,{placeholder:`Enter your custom theme JSON configuration...`,rows:16})})})]})};function so(){return JSON.stringify({token:{colorPrimary:`#2e9a92`,colorSuccess:`#52c41a`,colorWarning:`#faad14`,colorError:`#ff4d4f`,colorInfo:`#2e9a92`,colorLink:`#2e9a92`,borderRadius:8}},null,2)}var co=e=>({...e,collapsed:!1,activeTab:`comments`}),lo=e=>e.collapsed?{collapsed:!1,activeTab:`assistant`}:{...e,collapsed:!0},{Content:uo}=Ne,fo=({setCurrentBoardId:e})=>(In(e),null),po=Object.freeze([]),mo=Object.freeze([]),ho=320,go=45,_o=44,vo=30,yo=e=>Math.min(go,ho/e*100),bo=(e,t,n)=>Math.min(n,Math.max(t,e));function $(e){let t=(0,Z.useRef)(e);(0,Z.useLayoutEffect)(()=>{t.current=e});let n=(0,Z.useCallback)(((...e)=>t.current?.(...e)),[]);return e?n:void 0}var xo=({client:e,user:t,connected:n=!1,connecting:r=!1,availableAgents:i,initialBoardId:a,openSettingsTab:o,onSettingsClose:s,openUserSettings:c,onUserSettingsClose:l,openNewBranchModal:u,onNewBranchModalClose:d,suppressLeftPanel:f=!1,onCreateSession:p,onForkSession:m,onBtwForkSession:h,onSpawnSession:g,onSendPrompt:_,onUpdateSession:v,onDeleteSession:y,onCreateBoard:b,onUpdateBoard:x,onDeleteBoard:S,onArchiveBoard:C,onUnarchiveBoard:T,onCreateRepo:E,onCreateLocalRepo:D,onUpdateRepo:O,onDeleteRepo:k,onArchiveOrDeleteBranch:A,onUnarchiveBranch:ee,onUpdateBranch:M,onCreateBranch:N,onStartEnvironment:P,onStopEnvironment:F,onNukeEnvironment:I,onExecuteScheduleNow:L,onCreateUser:ne,onUpdateUser:re,onDeleteUser:R,onCreateMCPServer:ie,onDeleteMCPServer:ae,onCreateGatewayChannel:oe,onUpdateGatewayChannel:se,onDeleteGatewayChannel:ce,onUpdateArtifact:le,onDeleteArtifact:ue,onUpdateSessionMcpServers:de,onUpdateSessionEnvSelections:B,onSendComment:fe,onReplyComment:V,onResolveComment:pe,onToggleReaction:me,onDeleteComment:H,onLogout:he,onRetryConnection:ge,onRestartOnboarding:U,instanceLabel:_e,instanceDescription:ve,webTerminalEnabled:ye=!1,branchStorageConfig:be})=>{let W=X(Dn),xe=X(pn),Se=X(vn),Ce=X(en),we=X(Mn),Te=X(Un),Ee=X(rn),De=X(wn),Oe=X(Pn),G=X(zn),ke=X(Gn),Ae=X(un),je=X(gn),Me=X(on),Pe=X(Rn),{showWarning:Fe}=Ct(),Ie=$n(),Le=Wt(),Re=Ie.pathname===`/`,ze=Ir(Le),[K,Be]=(0,Z.useState)(!1),Ve=(0,Z.useRef)(null),[He,Ue]=(0,Z.useState)(null),[We,Ge]=(0,Z.useState)(!1),[q,Ke]=(0,Z.useState)(`assistant`),[Ye,Xe]=(0,Z.useState)(null),[Ze,Qe]=(0,Z.useState)(null),[$e,et]=(0,Z.useState)(null),tt=$e?.kind===`branch`?$e.id:null,nt=$e?.kind===`artifact`?$e.id:null,rt=(0,Z.useMemo)(()=>!Re&&!K&&Ze&&W.has(Ze)?Ze:null,[Re,K,Ze,W]),[it,at]=(0,Z.useState)(`assistant`),[ot,st]=(0,Z.useState)(!1),[ct,dt]=(0,Z.useState)(()=>typeof window>`u`?1440:window.innerWidth);(0,Z.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>dt(window.innerWidth);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let ft=(0,Z.useMemo)(()=>yo(ct),[ct]),{isOpen:pt,section:mt,openSettings:gt,closeSettings:_t,setSection:vt}=xt(),yt=pt||!!o,bt=o||mt,St=ot||!!c,[J,wt]=(0,Z.useState)(()=>a||``),[Tt,Et]=lt(`agor:commentsPanelCollapsed`,!1),[Dt,Ot]=ir(t?.user_id,`panel:left:size`,24),kt=Se.get(J),At=(Re||K)&&!ze,jt=At?``:J,Mt=At?void 0:kt;(0,Z.useLayoutEffect)(()=>{!Re||ze||(J&&wt(``),Ze&&Qe(null),$e&&et(null),K&&Be(!1))},[$e,J,ze,Re,K,Ze]);let Y=Tt||f||At,Nt=(0,Z.useRef)(null),Pt=bo(Dt,ft,go),[Ft,It]=ir(t?.user_id,`panel:right:size`,50),Lt=bo(Ft,15,75),Rt=(0,Z.useRef)(null),zt=(0,Z.useRef)(!1),Bt=(0,Z.useRef)(!1),[Vt,Ht]=(0,Z.useState)(null),[Ut,Gt]=(0,Z.useState)(null),[Kt,qt]=(0,Z.useState)(!1),[Jt,Yt]=(0,Z.useState)([]),[Zt,Qt]=(0,Z.useState)(void 0),[$t,tn]=(0,Z.useState)(null),[nn,an]=(0,Z.useState)(null),[sn,ln]=(0,Z.useState)(void 0),[dn,mn]=(0,Z.useState)(null),[hn,yn]=(0,Z.useState)(!1),[bn,xn]=lt(`agor:eventStreamPanelCollapsed`,!0),{recentBoardIds:Cn,trackBoardVisit:Tn}=Sn(ht(Se),J);(0,Z.useEffect)(()=>{J&&(localStorage.setItem(`agor:currentBoardId`,J),Tn(J))},[J,Tn]),(0,Z.useEffect)(()=>{_n()},[]),Pr(e,t?.user_id,t?.preferences?.audio),(0,Z.useEffect)(()=>{Nt.current&&(Y?Nt.current.collapse():(Nt.current.expand(),Nt.current.resize(Pt)))},[Pt,Y]),(0,Z.useEffect)(()=>{Rt.current&&(rt||!bn)&&Rt.current.resize(Lt)},[rt,Lt,bn]),Jn({currentBoardId:J,currentSessionId:rt,boardById:Se,sessionById:W,branchById:G,artifactById:Pe,onBoardChange:e=>{wt(e)},onSessionChange:e=>{Qe(e)},onActiveUrlTargetChange:et});let En=fn({boardById:Se,sessionById:W,branchById:G,artifactById:Pe}),On=(0,Z.useCallback)(e=>{e!==J&&Qe(null),wt(e)},[J]);(0,Z.useEffect)(()=>{if(Se.size===0){if(!n)return;J&&On(``);return}J&&!Se.has(J)&&On(ht(Se)[0]?.board_id||``)},[Se,J,On,n]),(0,Z.useEffect)(()=>{if(We){let e=Ve.current?.getViewportCenter();Xe(e||null)}},[J,We]);let An=(0,Z.useMemo)(()=>J&&we.get(J)||mo,[we,J]);Nr(J,xe,An);let jn=t?.preferences?.eventStream?.enabled??!0,{events:Nn,clearEvents:Fn}=jr({client:e,enabled:!bn}),In=(0,Z.useCallback)((e=[],t)=>{Yt(e),Qt(t),qt(!0)},[]),Bn=(0,Z.useCallback)(e=>{at(e.activeTab),Et(e.collapsed)},[Et]),Vn=(0,Z.useCallback)(()=>{Bn(lo({collapsed:Y,activeTab:it}))},[Bn,Y,it]),Hn=(0,Z.useCallback)(()=>{Bn(co({collapsed:!0,activeTab:`assistant`}))},[Bn]),Kn=(0,Z.useCallback)(e=>{Gt(t=>t===e?null:e)},[]),qn=(0,Z.useCallback)(()=>{J&&En.goToBoard(J)},[En,J]),Yn=()=>{qt(!1),Yt([]),Qt(void 0)},Xn=async e=>{let t=await p?.(e,J);Ue(null),t&&En.goToSession(t)},Zn=async e=>{let t=await N?.(e.repoId,{name:e.name,ref:e.ref,refType:e.refType,createBranch:e.createBranch,sourceBranch:e.sourceBranch,pullLatest:e.pullLatest,issue_url:e.issue_url,pull_request_url:e.pull_request_url,...e.board_id?{boardId:e.board_id}:{},...e.position?{position:e.position}:{},...e.storage_mode?{storage_mode:e.storage_mode}:{},...e.clone_depth===void 0?{}:{clone_depth:e.clone_depth}});Ge(!1),t&&En.goToBranch(t.branch_id)},Qn=async e=>{if(!b)return;let t=await b(e);t?.board_id&&En.goToBoard(t.board_id)},er=async(n,r)=>{let i=n.repoId;if(!i||!N||!M)throw Error(`Missing repository or branch creation handler for assistant creation.`);r?.onStatusChange?.(`Creating assistant branch…`);let a=await Fr({displayName:n.displayName,description:n.description,emoji:n.emoji,repoId:i,branchName:n.branchName,sourceBranch:n.sourceBranch},{client:e,repoById:Oe,onCreateBranch:N,onUpdateBranch:M});if(!a)throw Error(`Assistant branch could not be created. Please check the branch details and try again.`);let o={branch_id:a.branch_id,agent:n.agent,title:`${n.emoji?`${n.emoji} `:``}${n.displayName} bootstrap`,initialPrompt:cn({displayName:n.displayName,emoji:n.emoji,description:n.description,userName:t?.name,userEmail:t?.email}),modelConfig:n.modelConfig,effort:n.effort,mcpServerIds:n.mcpServerIds,permissionMode:n.permissionMode,codexSandboxMode:n.codexSandboxMode,codexApprovalPolicy:n.codexApprovalPolicy,codexNetworkAccess:n.codexNetworkAccess};try{if(!p)throw Error(`Missing session creation handler.`);let t=await Xt({client:e,branchId:a.branch_id,boardId:a.board_id||J,sessionConfig:o,onCreateSession:p,onStatusChange:r?.onStatusChange});En.goToSession(t);return}catch(e){console.error(`Assistant session bootstrap failed:`,e),Fe(`Assistant branch was created, but the first session could not start: ${e instanceof Error?e.message:String(e)}. Opening the branch instead.`,{key:`assistant-bootstrap-session`,duration:8})}r?.onStatusChange?.(`Opening assistant branch…`),En.goToBranch(a.branch_id)},ar=(0,Z.useRef)(W);ar.current=W;let or=(0,Z.useRef)(G);or.current=G;let sr=(0,Z.useCallback)(t=>{let n=ar.current.get(t);e&&n?.ready_for_prompt&&e.service(`sessions`).patch(t,{ready_for_prompt:!1}).catch(()=>{});let r=n?.branch_id?or.current.get(n.branch_id):void 0;e&&r?.needs_attention&&e.service(`branches`).patch(r.branch_id,{needs_attention:!1}).catch(()=>{}),En.goToSession(t)},[e,En]),cr=(0,Z.useCallback)(async(n,r,i,a,o)=>{if(e)try{await e.service(`sessions/${n}/permission-decision`).create({requestId:r,taskId:i,allow:a,reason:a?`Approved by user`:`Denied by user`,remember:o!==Je.ONCE,scope:o,decidedBy:t?.user_id||`unknown`})}catch(e){console.error(`❌ Failed to send permission decision:`,e)}},[e,t?.user_id]),lr=rt&&W.get(rt)||null,fr=lr?G.get(lr.branch_id):null;(0,Z.useEffect)(()=>{Ze&&!W.has(Ze)&&(Le.sessionShortId&&J&&En.goToBoard(J,{replace:!0}),Qe(null))},[J,En,Le.sessionShortId,Ze,W]);let pr=$t?W.get($t):null,mr=kt?.primary_assistant_id??null,hr=mr?G.get(mr):void 0,gr=hr?Oe.get(hr.repo_id):void 0,_r=!!(mr&&!hr);(0,Z.useEffect)(()=>{at(_r?`all-sessions`:`assistant`)},[kt?.board_id,_r]),Ar(kt);let vr=nn?G.get(nn):null,yr=vr?Oe.get(vr.repo_id):null,xr=vr&&xe.get(vr.branch_id)||[],Sr=He?G.get(He):null,Cr=(0,Z.useMemo)(()=>An.filter(e=>e.branch_id).map(e=>G.get(e.branch_id)).filter(e=>e!==void 0),[An,G]),wr=ht(Te).filter(e=>e.board_id===J&&!e.resolved),Tr=t?.name||t?.email?.split(`@`)[0]||``,Er=!!Tr&&wr.some(e=>[`@${Tr}`,`@"${Tr}"`,`@${t?.email}`,`@"${t?.email}"`].some(t=>e.content.includes(t))),Dr=ye&&qe(t?.role,Or),kr=(0,Z.useMemo)(()=>({onSendPrompt:_,onFork:m,onBtwFork:h,onSubsession:g,onUpdateSession:v,onDeleteSession:y,onPermissionDecision:cr,onStartEnvironment:P,onStopEnvironment:F,onNukeEnvironment:I,onViewLogs:e=>mn(e),onOpenSettings:e=>tn(e),onSessionClick:sr,onOpenBranch:(e,t)=>{an(e),ln(t)},onOpenTerminal:Dr?In:void 0}),[_,m,h,g,v,y,cr,P,F,I,sr,In,Dr]),Mr=$(v),Lr=$(y),Rr=$(m),zr=$(g),Br=$(de),Vr=$(A),Hr=$(P),Wr=$(F),Gr=$(I),Kr=$(L),qr=$(V),Jr=$(pe),Yr=$(me),Xr=$(H),Zr=$((e,t)=>{an(e),ln(t)}),Qr=$(e=>fe?.(J||``,e)),$r=$(()=>Et(!0)),ei=$(()=>{Be(!0),En.goHome()}),ti=$(()=>{rt?(J&&En.goToBoard(J),xn(!1)):xn(!bn)}),ri=$(()=>gt()),ii=$(()=>st(!0)),ai=$(()=>yn(!0)),oi=$((e,t,n)=>{t&&En.goToBoard(t)}),ci=$(he),li=$(ge);return(0,Q.jsxs)(ur,{value:kr,children:[(0,Q.jsx)(fo,{setCurrentBoardId:On}),(0,Q.jsxs)(Ne,{style:{height:`100vh`},children:[(0,Q.jsx)(dr,{user:t,presenceClient:e,currentUserId:t?.user_id,connected:n,connecting:r,onMenuClick:Vn,onCommentsClick:Hn,onEventStreamClick:ti,onSettingsClick:ri,onUserSettingsClick:ii,onThemeEditorClick:ai,onLogout:ci,onRetryConnection:li,currentBoardName:Mt?.name,currentBoardIcon:Mt?.icon,unreadCommentsCount:wr.filter(e=>!e.parent_comment_id).length,eventStreamEnabled:jn,hasUserMentions:Er,currentBoardId:jt,onBoardChange:En.goToBoard,onHomeClick:ei,onUserClick:oi,instanceLabel:_e,instanceDescription:ve}),(0,Q.jsxs)(uo,{style:{position:`relative`,overflow:`hidden`,display:`flex`},children:[(0,Q.jsxs)(rr,{id:`main-layout`,direction:`horizontal`,style:{flex:1},onLayout:e=>{!Y&&zt.current&&e.length>=2&&Ot(bo(e[0],ft,go))},children:[(0,Q.jsx)(nr,{id:`assistant-panel`,order:1,ref:Nt,collapsible:!0,defaultSize:Y?0:Pt,collapsedSize:0,minSize:Y?0:ft,maxSize:go,style:{minWidth:Y?0:ho},children:!Y&&(0,Q.jsx)(Ur,{client:e,board:kt||null,activeTab:it,onTabChange:at,primaryAssistantBranch:hr,primaryAssistantRepo:gr,primaryAssistantInaccessible:_r,currentUserId:t?.user_id,selectedSessionId:rt,onSessionClick:sr,onCreateSession:Ue,onForkSession:Rr,onSpawnSession:zr,onArchiveOrDelete:Vr,onOpenSettings:Zr,onOpenSessionSettings:tn,onOpenTerminal:Dr?In:void 0,onStartEnvironment:Hr,onStopEnvironment:Wr,onViewLogs:mn,onNukeEnvironment:Gr,onExecuteScheduleNow:Kr,onSendComment:Qr,onReplyComment:qr,onResolveComment:Jr,onToggleReaction:Yr,onDeleteComment:Xr,hoveredCommentId:Vt,selectedCommentId:Ut,onCollapse:$r})}),(0,Q.jsx)(tr,{style:{position:`relative`,width:Y?`0px`:`4px`,background:`var(--ant-color-border-secondary)`,cursor:Y?`default`:`col-resize`,transition:`background 0.2s`,pointerEvents:Y?`none`:`auto`,overflow:`visible`,zIndex:10},onDragging:e=>{zt.current=e},onMouseEnter:e=>{Y||(e.currentTarget.style.background=`var(--ant-color-primary)`)},onMouseLeave:e=>{Y||(e.currentTarget.style.background=`var(--ant-color-border-secondary)`)}}),(0,Q.jsx)(nr,{id:`content-panel`,order:2,defaultSize:Y?100:100-Pt,minSize:40,children:(0,Q.jsxs)(rr,{id:`canvas-session`,direction:`horizontal`,style:{flex:1},onLayout:e=>{rt&&Bt.current&&e.length===2&&It(bo(e[1],15,75))},children:[(0,Q.jsx)(nr,{id:`canvas-panel`,order:1,defaultSize:rt?100-Lt:100,minSize:20,children:(0,Q.jsxs)(`div`,{style:{position:`relative`,overflow:`hidden`,height:`100%`},children:[At?(0,Q.jsx)(Qi,{client:e,connected:n,recentBoardIds:Cn,currentUserId:t?.user_id,onBoardClick:En.goToBoard,onBranchClick:En.goToBranch,onSessionClick:sr,onOpenCreateDialog:(e,t)=>{t&&En.goToBoard(t),Xe(null),Ke(e),Ge(!0)},onOpenSettings:gt}):(0,Q.jsx)(br,{ref:Ve,board:kt||null,client:e,branches:Cr,primaryAssistantId:mr,currentUserId:t?.user_id,selectedSessionId:rt,activeUrlTargetBranchId:tt,activeUrlTargetArtifactId:nt,availableAgents:i,onSessionClick:sr,onSessionUpdate:Mr,onSessionDelete:Lr,onForkSession:Rr,onSpawnSession:zr,onUpdateSessionMcpServers:Br,onOpenSettings:tn,onCreateSessionForBranch:Ue,onOpenBranch:an,onArchiveOrDeleteBranch:Vr,onOpenTerminal:Dr?In:void 0,onStartEnvironment:Hr,onStopEnvironment:Wr,onViewLogs:mn,onNukeEnvironment:Gr,onOpenCommentsPanel:Hn,onCommentHover:Ht,onCommentSelect:Kn}),(0,Q.jsx)($i,{onClick:()=>{Xe((At?null:Ve.current?.getViewportCenter())||null),Ke(`assistant`),Ge(!0)}})]})}),(rt||!bn)&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(tr,{style:{width:`4px`,background:`var(--ant-color-border-secondary)`,cursor:`col-resize`,transition:`background 0.2s`},onDragging:e=>{Bt.current=e},onMouseEnter:e=>{e.currentTarget.style.background=`var(--ant-color-primary)`},onMouseLeave:e=>{e.currentTarget.style.background=`var(--ant-color-border-secondary)`}}),(0,Q.jsx)(nr,{id:`session-panel`,order:2,ref:Rt,defaultSize:Lt,minSize:15,maxSize:75,children:rt?(0,Q.jsx)(Ha,{client:e,session:lr,branch:fr,currentUserId:t?.user_id,sessionMcpServerIds:je.get(rt)??po,open:!!rt,onClose:qn}):(0,Q.jsx)(si,{collapsed:!1,onToggleCollapse:()=>xn(!0),events:Nn,onClear:Fn,currentUserId:t?.user_id,selectedSessionId:rt,currentBoard:kt,client:e,branchActions:{onSessionClick:sr,onCreateSession:e=>Ue(e),onOpenSettings:e=>an(e),onNukeEnvironment:I}})})]})]})})]}),kt&&(0,Q.jsx)(z,{title:Y?`Open side panel`:`Close side panel`,placement:`right`,getPopupContainer:()=>document.body,children:(0,Q.jsx)(`button`,{type:`button`,"aria-label":Y?`Open side panel`:`Close side panel`,onClick:()=>Et(!Tt),style:{position:`absolute`,top:`50%`,left:Y?0:`calc(${Pt}% + 2px)`,transform:`translate(-50%, -50%)`,width:_o,height:_o,padding:0,border:0,background:`transparent`,cursor:`pointer`,pointerEvents:`auto`,zIndex:20,display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,Q.jsx)(`span`,{"aria-hidden":`true`,style:{width:vo,height:vo,borderRadius:`50%`,border:`1px solid var(--ant-color-border)`,background:`var(--ant-color-bg-container)`,boxShadow:`0 1px 4px rgba(0,0,0,0.18)`,color:`var(--ant-color-text)`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:Y?(0,Q.jsx)(w,{style:{fontSize:12}}):(0,Q.jsx)(te,{style:{fontSize:12}})})})})]}),(0,Q.jsx)(j,{style:{display:`none`},openFileDialogOnClick:!1,showUploadList:!1}),He&&(0,Q.jsx)(ea,{open:!0,onClose:()=>Ue(null),onCreate:Xn,availableAgents:i,branchId:He,branch:Sr||void 0,currentUser:t,client:e}),(0,Q.jsx)(kn,{open:yt,onClose:()=>{_t(),s?.()},client:e,currentUser:t,boardById:Se,boardObjects:ht(Ce),repoById:Oe,branchById:G,sessionsByBranch:xe,userById:ke,mcpServerById:Ae,cardById:Ee,cardTypeById:De,activeTab:bt,onTabChange:e=>{vt(e),o&&s?.()},onCreateBoard:b,onUpdateBoard:x,onDeleteBoard:S,onArchiveBoard:C,onUnarchiveBoard:T,onCreateRepo:E,onCreateLocalRepo:D,onUpdateRepo:O,onDeleteRepo:k,onArchiveOrDeleteBranch:A,onUnarchiveBranch:ee,onUpdateBranch:M,onCreateBranch:N,onStartEnvironment:P,onStopEnvironment:F,onCreateUser:ne,onUpdateUser:re,onDeleteUser:R,onCreateMCPServer:ie,onDeleteMCPServer:ae,gatewayChannelById:Me,onCreateGatewayChannel:oe,onUpdateGatewayChannel:se,onDeleteGatewayChannel:ce,artifactById:Pe,onUpdateArtifact:le,onDeleteArtifact:ue,onCreateAssistant:()=>{_t(),s?.(),Xe(null),Ke(`assistant`),Ge(!0)},branchStorageConfig:be}),pr&&(0,Q.jsx)(to,{open:!!$t,onClose:()=>tn(null),session:pr,onUpdate:v,onUpdateSessionMcpServers:de,onUpdateSessionEnvSelections:B,client:e,currentUser:t}),(0,Q.jsx)(Wn,{open:!!nn,onClose:()=>{an(null),ln(void 0)},defaultTab:sn,branch:vr||null,repo:yr||null,sessions:xr,client:e,currentUser:t,onUpdateBranch:M,onUpdateRepo:O,onArchiveOrDelete:A,onOpenSettings:()=>{an(null),gt()},onSessionClick:sr,onExecuteScheduleNow:L}),(0,Q.jsx)(ro,{open:Kt,onClose:Yn,client:e,user:t,branchId:Zt,initialCommands:Jt}),(0,Q.jsx)(ni,{open:We,onClose:()=>{Ge(!1),Ke(`assistant`),Xe(null)},defaultTab:q,currentBoardId:J,defaultPosition:Ye||void 0,onCreateBranch:Zn,onCreateBoard:Qn,onCreateRepo:e=>E?.(e),onCreateLocalRepo:e=>D?.(e),onCreateAssistant:er,availableAgents:i,currentUser:t,client:e,branchStorageConfig:be}),dn&&(0,Q.jsx)(ut,{open:!!dn,onClose:()=>mn(null),branch:G.get(dn),client:e}),(0,Q.jsx)(oo,{open:hn,onClose:()=>yn(!1)}),(0,Q.jsx)(Ln,{open:St,onClose:()=>{st(!1),l?.()},user:t||null,currentUser:t||null,client:e,onUpdate:re,onRestartOnboarding:async()=>{st(!1),l?.(),await U?.()}})]})]})};export{xo as App};
Binary file
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{An as t,En as n,Ft as r,Rn as i,Rt as a,in as o,ir as s,vt as c,zt as l}from"./antd-DT5ackd0.js";import{n as u,t as d}from"./sandpack-C58bwfIS.js";import{N as f}from"./editor-DQIG-JYZ.js";import{t as p}from"./reactflow-Cubtnk8i.js";import{t as m}from"./sandpackDefaults-Bkga8XAE.js";var h=e(s(),1),g=f(),_=300,v=200,y=({data:e,selected:s})=>{let{token:f}=l.useToken(),[y,b]=(0,h.useState)(!1),x=(0,h.useRef)(null),S=(0,h.useCallback)((t,n)=>{let r={type:`app`,x:n.x,y:n.y,width:Math.max(n.width,_),height:Math.max(n.height,v),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,h.useCallback)(()=>{b(e=>!e)},[]),w=e.height-40-16;return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(p,{isVisible:s,minWidth:_,minHeight:v,onResize:S,lineStyle:{borderColor:f.colorPrimary},handleStyle:{backgroundColor:f.colorPrimary,width:8,height:8}}),(0,g.jsx)(n,{style:{width:e.width,height:e.height,background:f.colorBgContainer,border:`2px solid ${s?f.colorPrimary:f.colorBorder}`,borderRadius:8,boxShadow:f.boxShadowSecondary,overflow:`hidden`,display:`flex`,flexDirection:`column`},styles:{body:{padding:0,flex:1,display:`flex`,flexDirection:`column`,overflow:`hidden`}},size:`small`,title:(0,g.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,g.jsx)(r.Text,{style:{fontSize:12,fontWeight:600,maxWidth:e.width-120},ellipsis:!0,children:e.title}),(0,g.jsxs)(`div`,{style:{display:`flex`,gap:2},children:[(0,g.jsx)(i,{title:y?`Exit interact mode`:`Interact with app`,children:(0,g.jsx)(t,{type:y?`primary`:`text`,size:`small`,icon:y?(0,g.jsx)(o,{}):(0,g.jsx)(c,{}),onClick:e=>{e.stopPropagation(),C()}})}),e.onDelete&&(0,g.jsx)(t,{type:`text`,size:`small`,danger:!0,icon:(0,g.jsx)(a,{}),onClick:t=>{t.stopPropagation(),e.onDelete?.(e.objectId)}})]})]}),children:(0,g.jsx)(`div`,{ref:x,className:y?`nodrag nopan nowheel`:void 0,style:{flex:1,position:`relative`,pointerEvents:y?`auto`:`none`},children:(0,g.jsx)(u,{template:e.template,files:m(e.files),customSetup:e.dependencies?{dependencies:e.dependencies}:void 0,options:{initMode:`user-visible`,...e.entryFile?{activeFile:e.entryFile}:{}},children:(0,g.jsx)(d,{style:{height:w>0?w:200,border:`none`},showNavigator:!1,showOpenInCodeSandbox:!1,showRefreshButton:y})})})})]})};export{y as AppNode};
@@ -1,9 +0,0 @@
1
- import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{An as t,Dt as n,Ft as r,Qn as i,R as a,Rn as o,Xt as s,an as c,fn as l,ir as u,n as d,nn as f,tn as p,zt as m}from"./antd-DT5ackd0.js";import{x as h}from"./src-DAeyG22O.js";import{n as g,t as _}from"./sandpack-C58bwfIS.js";import{N as v}from"./editor-DQIG-JYZ.js";import{Hn as y,Vn as b,_ as x,wn as S,zt as C}from"./index-DTz1Dif6.js";import{n as w,t as T}from"./ThemeSwitcher-D9HgT37l.js";import{t as E}from"./sandpackDefaults-Bkga8XAE.js";import{a as D,i as O,n as k,o as A,r as j,s as M,t as N}from"./ArtifactConsentModal-oMMzRn8L.js";var P=e(u(),1),F=v();k();var{Header:I,Content:L}=f,{Title:R}=r;function z({artifact:e,payload:r,title:i,loading:u,currentUser:d,onReload:f,onTrustClick:p,onHideNavbar:g,onUserSettingsClick:_,onLogout:v}){let{token:y}=m.useToken();return(0,F.jsxs)(I,{style:{height:56,padding:`0 16px`,background:y.colorBgContainer,borderBottom:`1px solid ${y.colorBorderSecondary}`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:16},children:[(0,F.jsxs)(l,{size:12,style:{minWidth:0,flex:1,overflow:`hidden`},children:[(0,F.jsx)(t,{type:`text`,icon:(0,F.jsx)(n,{}),href:e?.url??void 0,disabled:!e?.url,children:`Board`}),(0,F.jsx)(S,{level:5}),(0,F.jsxs)(`div`,{style:{minWidth:0,maxWidth:420,display:`flex`,alignItems:`center`,gap:4},children:[(0,F.jsx)(R,{level:5,style:{margin:0,lineHeight:1.2,minWidth:0,flex:`1 1 auto`},ellipsis:!0,children:i}),r&&(0,F.jsx)(A,{payload:r,onTrustClick:p}),(0,F.jsx)(o,{title:`Hide navbar`,children:(0,F.jsx)(t,{type:`text`,size:`small`,"aria-label":`Hide navbar`,icon:(0,F.jsx)(c,{}),onClick:g,style:{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0}})})]})]}),(0,F.jsxs)(l,{style:{flexShrink:0},children:[(r?.source_session_id||e?.source_session_id)&&(0,F.jsx)(o,{title:`Open session that created this artifact`,children:(0,F.jsx)(t,{icon:(0,F.jsx)(a,{}),href:x(h(r?.source_session_id??e?.source_session_id)),target:`_blank`,rel:`noopener noreferrer`,children:`Session`})}),e?.url&&(0,F.jsx)(t,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:`Open board link`}),(0,F.jsx)(t,{icon:(0,F.jsx)(s,{}),onClick:f,loading:u,children:`Reload`}),(0,F.jsx)(T,{}),(0,F.jsx)(w,{user:d,onUserSettingsClick:_,onLogout:v})]})]})}function B({client:e,currentUser:n,onUserSettingsClick:r,onLogout:a}){let{token:o}=m.useToken(),{artifactShortId:s}=b(),[c,l]=y(),u=c.get(`show_navbar`)!==`false`&&c.get(`chrome`)!==`0`&&c.get(`navbar`)!==`0`,[h,v]=(0,P.useState)(null),[x,S]=(0,P.useState)(null),[w,T]=(0,P.useState)(!0),[k,A]=(0,P.useState)(null),[I,R]=(0,P.useState)(!1),B=(0,P.useRef)(null),V=s??``,H=(0,P.useCallback)(async()=>{if(V)try{T(!0),A(null);let t=await fetch(`${C()}/artifacts/${V}/payload`,{headers:M()});if(!t.ok)throw Error(`Failed to load artifact: ${t.statusText}`);let n=await t.json();if(S(n),e)try{v(await e.service(`artifacts`).get(n.artifact_id))}catch{v(null)}B.current=n.content_hash}catch(e){A(e instanceof Error?e.message:String(e))}finally{T(!1)}},[V,e]);(0,P.useEffect)(()=>{H()},[H]),(0,P.useEffect)(()=>{if(!e)return;let t=e.service(`artifacts`),n=e=>{window.dispatchEvent(new CustomEvent(`agor:artifact-runtime-query`,{detail:e}))};return t.on(`agor-query`,n),()=>{t.removeListener(`agor-query`,n)}},[e]),(0,P.useEffect)(()=>{if(!e)return;let t=e.service(`artifacts`),n=e=>{let t=x?.artifact_id??h?.artifact_id;!t||e.artifact_id!==t||(v(e),e.content_hash&&e.content_hash!==B.current&&H())};return t.on(`patched`,n),t.on(`updated`,n),()=>{t.removeListener(`patched`,n),t.removeListener(`updated`,n)}},[h?.artifact_id,e,H,x?.artifact_id]);let U=x?.sandpack_config??{},W=U.options??{},G=x?{...U.customSetup??{},...x.dependencies&&!U.customSetup?.dependencies?{dependencies:x.dependencies}:{}}:{},K=U.template??x?.template??`react`,q=x?.name??h?.name??`Artifact ${V}`,J=(0,P.useCallback)(()=>{let e=new URLSearchParams(c);e.set(`show_navbar`,`false`),e.delete(`chrome`),e.delete(`navbar`),l(e,{replace:!0})},[c,l]),Y=(0,P.useCallback)(()=>{let e=new URLSearchParams(c);e.delete(`show_navbar`),e.delete(`chrome`),e.delete(`navbar`),l(e,{replace:!0})},[c,l]),X=w&&!x?(0,F.jsx)(p,{size:`large`,tip:`Loading artifact...`}):k?(0,F.jsx)(i,{type:`error`,showIcon:!0,title:`Failed to load artifact`,description:k,action:(0,F.jsx)(t,{onClick:H,children:`Retry`})}):x?(0,F.jsxs)(`div`,{style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`},children:[x.legacy?.is_legacy&&(0,F.jsx)(i,{type:`warning`,showIcon:!0,icon:(0,F.jsx)(d,{}),message:`Legacy artifact — may not render correctly`,description:`Open the board artifact card for the copyable upgrade prompt.`,style:{borderRadius:0}}),(0,F.jsx)(`style`,{children:`
2
- .artifact-fullscreen-sandpack .sp-wrapper,
3
- .artifact-fullscreen-sandpack .sp-layout,
4
- .artifact-fullscreen-sandpack .sp-stack,
5
- .artifact-fullscreen-sandpack .sp-preview,
6
- .artifact-fullscreen-sandpack .sp-preview-container {
7
- height: 100% !important;
8
- }
9
- `}),(0,F.jsx)(`div`,{className:`artifact-fullscreen-sandpack`,style:{flex:1,minHeight:0},children:(0,F.jsxs)(g,{template:K,files:E(x.files),customSetup:Object.keys(G).length>0?G:void 0,theme:U.theme,options:{initMode:`user-visible`,...W,...x.entry&&!W.activeFile?{activeFile:x.entry}:{}},children:[(0,F.jsx)(_,{style:{height:`100%`,border:`none`},showNavigator:!1,showOpenInCodeSandbox:!1,showRefreshButton:!0}),(0,F.jsx)(j,{artifactId:x.artifact_id,contentHash:x.runtime_report_hash??x.content_hash}),(0,F.jsx)(D,{artifactId:x.artifact_id,contentHash:x.runtime_report_hash??x.content_hash}),(0,F.jsx)(O,{artifactId:x.artifact_id})]},x.content_hash)})]}):null;return(0,F.jsxs)(f,{style:{minHeight:`100vh`,background:o.colorBgLayout},children:[u?(0,F.jsx)(z,{artifact:h,payload:x,title:q,loading:w,currentUser:n,onReload:H,onTrustClick:()=>R(!0),onHideNavbar:J,onUserSettingsClick:r,onLogout:a}):(0,F.jsx)(t,{size:`small`,onClick:Y,style:{position:`fixed`,top:12,right:12,zIndex:10},children:`Show navbar`}),(0,F.jsx)(L,{style:{height:u?`calc(100vh - 56px)`:`100vh`,display:`flex`,alignItems:w&&!x?`center`:`stretch`,justifyContent:w&&!x?`center`:`stretch`,overflow:`hidden`,background:o.colorBgContainer},children:X}),x&&I&&(0,F.jsx)(N,{open:I,artifactId:x.artifact_id,name:x.name,files:x.files,requiredEnvVars:x.required_env_vars??[],grants:x.agor_grants??{},onClose:()=>R(!1),onGranted:()=>{R(!1),H()}})]})}export{B as ArtifactFullscreenPage};
@@ -1,9 +0,0 @@
1
- import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{An as t,En as n,Ft as r,H as i,It as a,Pn as o,Qn as s,Qt as c,R as l,Rn as u,Rt as ee,Xn as te,Xt as d,et as f,in as p,ir as m,lt as h,n as g,s as ne,tn as _,xt as v,yt as y,zt as b}from"./antd-DT5ackd0.js";import{g as re,q as ie,x}from"./src-DAeyG22O.js";import{a as S,n as C,r as w,t as T}from"./sandpack-C58bwfIS.js";import{N as E}from"./editor-DQIG-JYZ.js";import{t as ae}from"./reactflow-Cubtnk8i.js";import{Ft as D,_ as O,kn as k,zt as oe}from"./index-DTz1Dif6.js";import{t as se}from"./sandpackDefaults-Bkga8XAE.js";import{a as A,i as j,n as M,o as N,r as P,s as F,t as I}from"./ArtifactConsentModal-oMMzRn8L.js";var L=e(S(),1),R=e(m(),1),z=E();M();var B=300,V=200,H=new Set([`agor.config.js`,`agor.artifact.json`,`.env`]);function U({artifactId:e}){let{sandpack:t}=w(),{showError:n}=D(),r=(0,R.useRef)(t);return r.current=t,(0,R.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;H.has(e)||(t[e]={content:r.code,isBinary:!1})}let i={files:t};e.environment&&(i.template=e.environment);let a=(0,L.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 W=({data:e,selected:a})=>{let{token:s}=b.useToken(),[m,g]=(0,R.useState)(!1),[S,w]=(0,R.useState)(null),[E,D]=(0,R.useState)(!0),[k,M]=(0,R.useState)(null),[L,H]=(0,R.useState)(!1),W=(0,R.useRef)(null),G=(0,R.useCallback)(async()=>{try{D(!0),M(null);let t=await fetch(`${oe()}/artifacts/${e.artifactId}/payload`,{headers:F()});if(!t.ok)throw Error(`Failed to load artifact: ${t.statusText}`);let n=await t.json();W.current=n.content_hash,w(n)}catch(e){M(e instanceof Error?e.message:String(e))}finally{D(!1)}},[e.artifactId]);(0,R.useEffect)(()=>{G()},[G]),(0,R.useEffect)(()=>{let t=t=>{let{artifactId:n,contentHash:r}=t.detail;n===e.artifactId&&r!==W.current&&G()};return window.addEventListener(`agor:artifact-patched`,t),()=>window.removeEventListener(`agor:artifact-patched`,t)},[e.artifactId,G]);let le=(0,R.useCallback)((t,n)=>{let r={type:`artifact`,x:n.x,y:n.y,width:Math.max(n.width,B),height:Math.max(n.height,V),artifact_id:e.artifactId,locked:e.locked};e.onUpdate(e.objectId,r)},[e]),ue=(0,R.useCallback)(()=>{let t={type:`artifact`,x:e.x,y:e.y,width:e.width,height:e.height,artifact_id:e.artifactId,locked:!e.locked};e.onUpdate(e.objectId,t)},[e]),de=(0,R.useCallback)(()=>{window.dispatchEvent(new CustomEvent(`agor:export-codesandbox-${e.artifactId}`))},[e.artifactId]),fe=(0,R.useCallback)(()=>{S?.source_session_id&&window.open(O(x(S.source_session_id)),`_blank`,`noopener,noreferrer`)},[S?.source_session_id]),pe=(0,R.useCallback)(()=>{window.open(O(re(e.artifactId)),`_blank`,`noopener,noreferrer`)},[e.artifactId]),K=`Artifact ${ie(e.artifactId)}`,me=k?`error`:E?`processing`:`success`,he=k?`Failed to load`:E?`Reloading...`:`Live`,q=!!S&&!k,J=(0,z.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,z.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,minWidth:0},children:[(0,z.jsx)(o,{status:me,title:he}),(0,z.jsx)(r.Text,{style:{fontSize:12,fontWeight:600,maxWidth:e.width-200},ellipsis:!0,children:S?.name??K}),q&&(0,z.jsx)(N,{payload:S,onTrustClick:()=>H(!0),className:`nodrag nopan`})]}),(0,z.jsxs)(`div`,{className:`nodrag nopan`,style:{display:`flex`,gap:2},children:[(0,z.jsx)(u,{title:e.locked?`Unlock artifact card`:`Lock artifact card`,children:(0,z.jsx)(t,{type:`text`,size:`small`,icon:e.locked?(0,z.jsx)(i,{}):(0,z.jsx)(ne,{}),onClick:e=>{e.stopPropagation(),ue()},style:{backgroundColor:e.locked?s.colorWarningBg:void 0,color:e.locked?s.colorWarning:void 0}})}),S?.source_session_id&&(0,z.jsx)(u,{title:`Open session that created this artifact`,children:(0,z.jsx)(t,{type:`text`,size:`small`,icon:(0,z.jsx)(l,{}),onClick:e=>{e.stopPropagation(),fe()}})}),(0,z.jsx)(u,{title:`Open fullscreen`,children:(0,z.jsx)(t,{type:`text`,size:`small`,icon:(0,z.jsx)(f,{}),onClick:e=>{e.stopPropagation(),pe()}})}),q&&(0,z.jsx)(u,{title:`Open in CodeSandbox (eject — daemon-injected env vars/AGOR_TOKEN won't carry over)`,children:(0,z.jsx)(t,{type:`text`,size:`small`,icon:(0,z.jsx)(h,{}),onClick:e=>{e.stopPropagation(),de()}})}),(0,z.jsx)(u,{title:`Reload`,children:(0,z.jsx)(t,{type:`text`,size:`small`,icon:(0,z.jsx)(d,{spin:E}),onClick:e=>{e.stopPropagation(),G()}})}),q&&(0,z.jsx)(u,{title:m?`Exit interact mode`:`Interact with app`,children:(0,z.jsx)(t,{type:m?`primary`:`text`,size:`small`,icon:m?(0,z.jsx)(v,{}):(0,z.jsx)(p,{}),onClick:e=>{e.stopPropagation(),g(e=>!e)}})}),e.onDeleteArtifact&&(0,z.jsx)(c,{title:`Delete artifact?`,description:`This will delete "${S?.name??K}" 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,z.jsx)(u,{title:`Delete artifact`,children:(0,z.jsx)(t,{type:`text`,size:`small`,danger:!0,icon:(0,z.jsx)(ee,{}),onClick:e=>e.stopPropagation()})})})]})]}),ge=k?s.colorErrorBorder:a?s.colorPrimary:s.colorBorder,Y={width:e.width,height:e.height,background:s.colorBgContainer,border:`2px solid ${ge}`,borderRadius:8,boxShadow:s.boxShadowSecondary,overflow:`hidden`,display:`flex`,flexDirection:`column`,...e.isActiveUrlTarget?{outline:`2px dashed ${s.colorTextBase}`,outlineOffset:-3}:{}},X=(0,z.jsx)(ae,{isVisible:a&&!e.locked,minWidth:B,minHeight:V,onResize:le,lineStyle:{borderColor:s.colorPrimary},handleStyle:{backgroundColor:s.colorPrimary,width:8,height:8}});if(E&&!S)return(0,z.jsxs)(z.Fragment,{children:[X,(0,z.jsx)(n,{style:Y,styles:{body:{padding:0,flex:1,display:`flex`,alignItems:`center`,justifyContent:`center`}},size:`small`,title:J,children:(0,z.jsx)(_,{indicator:(0,z.jsx)(te,{}),description:`Loading artifact...`})})]});if(k)return(0,z.jsxs)(z.Fragment,{children:[X,(0,z.jsxs)(n,{style:Y,styles:{body:{padding:0,flex:1,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:8}},size:`small`,title:J,children:[(0,z.jsx)(y,{style:{fontSize:24,color:s.colorError}}),(0,z.jsx)(r.Text,{type:`danger`,style:{fontSize:12,textAlign:`center`,padding:`0 16px`},children:k}),(0,z.jsx)(t,{className:`nodrag nopan`,size:`small`,icon:(0,z.jsx)(d,{}),onClick:e=>{e.stopPropagation(),G()},children:`Retry`})]})]});if(!S)return null;let Z=S.sandpack_config??{},Q=Z.options??{},$={...Z.customSetup??{},...S.dependencies&&!Z.customSetup?.dependencies?{dependencies:S.dependencies}:{}},_e=Z.template??S.template,ve=S.legacy?.is_legacy?(0,z.jsx)(ce,{upgradeInstructions:S.legacy.upgrade_instructions}):null;return(0,z.jsxs)(z.Fragment,{children:[X,(0,z.jsxs)(n,{style:Y,styles:{body:{padding:0,flex:1,display:`flex`,flexDirection:`column`,overflow:`hidden`}},size:`small`,title:J,children:[(0,z.jsx)(`style`,{children:`
2
- .artifact-sandpack-wrapper .sp-wrapper,
3
- .artifact-sandpack-wrapper .sp-layout,
4
- .artifact-sandpack-wrapper .sp-stack,
5
- .artifact-sandpack-wrapper .sp-preview,
6
- .artifact-sandpack-wrapper .sp-preview-container {
7
- height: 100% !important;
8
- }
9
- `}),(0,z.jsxs)(`div`,{className:`artifact-sandpack-wrapper${m?` nodrag nopan nowheel`:``}`,style:{flex:1,position:`relative`,display:`flex`,flexDirection:`column`},children:[ve,!m&&(0,z.jsx)(`div`,{style:{position:`absolute`,inset:0,zIndex:1}}),(0,z.jsxs)(C,{template:_e,files:se(S.files),customSetup:Object.keys($).length>0?$:void 0,theme:Z.theme,options:{initMode:`user-visible`,...Q,...S.entry&&!Q.activeFile?{activeFile:S.entry}:{}},children:[(0,z.jsx)(T,{style:{height:`100%`,border:`none`},showNavigator:!1,showOpenInCodeSandbox:!1,showRefreshButton:m}),(0,z.jsx)(P,{artifactId:e.artifactId,contentHash:S.runtime_report_hash??S.content_hash}),(0,z.jsx)(A,{artifactId:e.artifactId,contentHash:S.runtime_report_hash??S.content_hash}),(0,z.jsx)(j,{artifactId:e.artifactId}),(0,z.jsx)(U,{artifactId:e.artifactId})]},S.content_hash)]})]}),L&&(0,z.jsx)(I,{open:L,artifactId:S.artifact_id,name:S.name,files:S.files,requiredEnvVars:S.required_env_vars??[],grants:S.agor_grants??{},onClose:()=>H(!1),onGranted:()=>{H(!1),G()}})]})};function ce({upgradeInstructions:e}){let{token:n}=b.useToken(),{showSuccess:r,showError:i}=D();return(0,z.jsx)(s,{type:`warning`,showIcon:!0,icon:(0,z.jsx)(g,{}),className:`nodrag nopan`,style:{borderRadius:0,fontSize:11,padding:`10px 14px`},title:`Legacy artifact — won't render correctly`,description:(0,z.jsxs)(`details`,{style:{marginTop:4},children:[(0,z.jsx)(`summary`,{style:{cursor:`pointer`,color:n.colorTextSecondary},children:`Show upgrade prompt for an agent`}),(0,z.jsxs)(`div`,{style:{position:`relative`,marginTop:6},children:[(0,z.jsx)(t,{type:`text`,size:`small`,icon:(0,z.jsx)(a,{}),onClick:async()=>{await k(e)?r(`Upgrade prompt copied — paste it to an agent`):i(`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,z.jsx)(`pre`,{style:{whiteSpace:`pre-wrap`,fontSize:10,margin:0,padding:8,paddingRight:64,background:n.colorFillTertiary,borderRadius:4,maxHeight:180,overflow:`auto`,userSelect:`text`,cursor:`text`},children:e})]})]})})}export{W as ArtifactNode};
@@ -1,19 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/emoji-B0hLmSLZ.js","assets/rolldown-runtime--c01j_DQ.js","assets/antd-DT5ackd0.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{Ft as t,Hn as n,It as r,Jn as i,Ln as a,Rn as o,ir as s,rn as c,tn as l,zt as u}from"./antd-DT5ackd0.js";import{B as d,V as f}from"./src-DAeyG22O.js";import{c as p}from"./sandpack-C58bwfIS.js";import{N as m}from"./editor-DQIG-JYZ.js";import{Ct as h,Ft as ee,I as te,kn as ne}from"./index-DTz1Dif6.js";var g=class{diff(e,t,n={}){let r;typeof n==`function`?(r=n,n={}):`callback`in n&&(r=n.callback);let i=this.castInput(e,n),a=this.castInput(t,n),o=this.removeEmpty(this.tokenize(i,n)),s=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,s,n,r)}diffWithOptionsObj(e,t,n,r){let i=e=>{if(e=this.postProcess(e,n),r){setTimeout(function(){r(e)},0);return}else return e},a=t.length,o=e.length,s=1,c=a+o;n.maxEditLength!=null&&(c=Math.min(c,n.maxEditLength));let l=n.timeout??1/0,u=Date.now()+l,d=[{oldPos:-1,lastComponent:void 0}],f=this.extractCommon(d[0],t,e,0,n);if(d[0].oldPos+1>=o&&f+1>=a)return i(this.buildValues(d[0].lastComponent,t,e));let p=-1/0,m=1/0,h=()=>{for(let r=Math.max(p,-s);r<=Math.min(m,s);r+=2){let s,c=d[r-1],l=d[r+1];c&&(d[r-1]=void 0);let u=!1;if(l){let e=l.oldPos-r;u=l&&0<=e&&e<a}let h=c&&c.oldPos+1<o;if(!u&&!h){d[r]=void 0;continue}if(s=!h||u&&c.oldPos<l.oldPos?this.addToPath(l,!0,!1,0,n):this.addToPath(c,!1,!0,1,n),f=this.extractCommon(s,t,e,r,n),s.oldPos+1>=o&&f+1>=a)return i(this.buildValues(s.lastComponent,t,e))||!0;d[r]=s,s.oldPos+1>=o&&(m=Math.min(m,r-1)),f+1>=a&&(p=Math.max(p,r+1))}s++};if(r)(function e(){setTimeout(function(){if(s>c||Date.now()>u)return r(void 0);h()||e()},0)})();else for(;s<=c&&Date.now()<=u;){let e=h();if(e)return e}}addToPath(e,t,n,r,i){let a=e.lastComponent;return a&&!i.oneChangePerToken&&a.added===t&&a.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:a.count+1,added:t,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:a}}}extractCommon(e,t,n,r,i){let a=t.length,o=n.length,s=e.oldPos,c=s-r,l=0;for(;c+1<a&&s+1<o&&this.equals(n[s+1],t[c+1],i);)c++,s++,l++,i.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,c}equals(e,t,n){return n.comparator?n.comparator(e,t):e===t||!!n.ignoreCase&&e.toLowerCase()===t.toLowerCase()}removeEmpty(e){let t=[];for(let n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}castInput(e,t){return e}tokenize(e,t){return Array.from(e)}join(e){return e.join(``)}postProcess(e,t){return e}get useLongestToken(){return!1}buildValues(e,t,n){let r=[],i;for(;e;)r.push(e),i=e.previousComponent,delete e.previousComponent,e=i;r.reverse();let a=r.length,o=0,s=0,c=0;for(;o<a;o++){let e=r[o];if(e.removed)e.value=this.join(n.slice(c,c+e.count)),c+=e.count;else{if(!e.added&&this.useLongestToken){let r=t.slice(s,s+e.count);r=r.map(function(e,t){let r=n[c+t];return r.length>e.length?r:e}),e.value=this.join(r)}else e.value=this.join(t.slice(s,s+e.count));s+=e.count,e.added||(c+=e.count)}}return r}};new class extends g{};function _(e,t){let n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function v(e,t){let n;if(!e||!t||e[e.length-1]!=t[t.length-1])return``;for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function y(e,t,n){if(e.slice(0,t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);return n+e.slice(t.length)}function b(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);return e.slice(0,-t.length)+n}function x(e,t){return y(e,t,``)}function S(e,t){return b(e,t,``)}function C(e,t){return t.slice(0,w(e,t))}function w(e,t){let n=0;e.length>t.length&&(n=e.length-t.length);let r=t.length;e.length<t.length&&(r=e.length);let i=Array(r),a=0;i[0]=0;for(let e=1;e<r;e++){for(t[e]==t[a]?i[e]=i[a]:i[e]=a;a>0&&t[e]!=t[a];)a=i[a];t[e]==t[a]&&a++}a=0;for(let r=n;r<e.length;r++){for(;a>0&&e[r]!=t[a];)a=i[a];e[r]==t[a]&&a++}return a}function T(e){let t;for(t=e.length-1;t>=0&&e[t].match(/\s/);t--);return e.substring(t+1)}function E(e){let t=e.match(/^\s*/);return t?t[0]:``}var D=`a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,re=RegExp(`[${D}]+|\\s+|[^${D}]`,`ug`),O=new class extends g{equals(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()}tokenize(e,t={}){let n;if(t.intlSegmenter){let r=t.intlSegmenter;if(r.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);n=[];for(let t of Array.from(r.segment(e))){let e=t.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(e)?n[n.length-1]+=e:n.push(e)}}else n=e.match(re)||[];let r=[],i=null;return n.forEach(e=>{/\s/.test(e)?i==null?r.push(e):r.push(r.pop()+e):i!=null&&/\s/.test(i)?r[r.length-1]==i?r.push(r.pop()+e):r.push(i+e):r.push(e),i=e}),r}join(e){return e.map((e,t)=>t==0?e:e.replace(/^\s+/,``)).join(``)}postProcess(e,t){if(!e||t.oneChangePerToken)return e;let n=null,r=null,i=null;return e.forEach(e=>{e.added?r=e:e.removed?i=e:((r||i)&&A(n,i,r,e),n=e,r=null,i=null)}),(r||i)&&A(n,i,r,null),e}};function k(e,t,n){return n?.ignoreWhitespace!=null&&!n.ignoreWhitespace?M(e,t,n):O.diff(e,t,n)}function A(e,t,n,r){if(t&&n){let i=E(t.value),a=T(t.value),o=E(n.value),s=T(n.value);if(e){let r=_(i,o);e.value=b(e.value,o,r),t.value=x(t.value,r),n.value=x(n.value,r)}if(r){let e=v(a,s);r.value=y(r.value,s,e),t.value=S(t.value,e),n.value=S(n.value,e)}}else if(n){if(e){let e=E(n.value);n.value=n.value.substring(e.length)}if(r){let e=E(r.value);r.value=r.value.substring(e.length)}}else if(e&&r){let n=E(r.value),i=E(t.value),a=T(t.value),o=_(n,i);t.value=x(t.value,o);let s=v(x(n,o),a);t.value=S(t.value,s),r.value=y(r.value,n,s),e.value=b(e.value,n,n.slice(0,n.length-s.length))}else if(r){let e=E(r.value),n=C(T(t.value),e);t.value=S(t.value,n)}else if(e){let n=C(T(e.value),E(t.value));t.value=x(t.value,n)}}var j=new class extends g{tokenize(e){let t=RegExp(`(\\r?\\n)|[${D}]+|[^\\S\\n\\r]+|[^${D}]`,`ug`);return e.match(t)||[]}};function M(e,t,n){return j.diff(e,t,n)}var N=new class extends g{constructor(){super(...arguments),this.tokenize=ie}equals(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
3
- `))&&(e=e.trim()),(!n.newlineIsToken||!t.includes(`
4
- `))&&(t=t.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith(`
5
- `)&&(e=e.slice(0,-1)),t.endsWith(`
6
- `)&&(t=t.slice(0,-1))),super.equals(e,t,n)}};function P(e,t,n){return N.diff(e,t,n)}function ie(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,`
7
- `));let n=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(let e=0;e<r.length;e++){let i=r[e];e%2&&!t.newlineIsToken?n[n.length-1]+=i:n.push(i)}return n}function F(e){return e==`.`||e==`!`||e==`?`}new class extends g{tokenize(e){let t=[],n=0;for(let r=0;r<e.length;r++){if(r==e.length-1){t.push(e.slice(n));break}if(F(e[r])&&e[r+1].match(/\s/)){for(t.push(e.slice(n,r+1)),r=n=r+1;e[r+1]?.match(/\s/);)r++;t.push(e.slice(n,r+1)),n=r+1}}return t}},new class extends g{tokenize(e){return e.split(/([{}:;,]|\s+)/)}},new class extends g{constructor(){super(...arguments),this.tokenize=ie}get useLongestToken(){return!0}castInput(e,t){let{undefinedReplacement:n,stringifyReplacer:r=(e,t)=>t===void 0?n:t}=t;return typeof e==`string`?e:JSON.stringify(I(e,null,null,r),null,` `)}equals(e,t,n){return super.equals(e.replace(/,([\r\n])/g,`$1`),t.replace(/,([\r\n])/g,`$1`),n)}};function I(e,t,n,r,i){t||=[],n||=[],r&&(e=r(i===void 0?``:i,e));let a;for(a=0;a<t.length;a+=1)if(t[a]===e)return n[a];let o;if(Object.prototype.toString.call(e)===`[object Array]`){for(t.push(e),o=Array(e.length),n.push(o),a=0;a<e.length;a+=1)o[a]=I(e[a],t,n,r,String(a));return t.pop(),n.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),typeof e==`object`&&e){t.push(e),o={},n.push(o);let i=[],s;for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&i.push(s);for(i.sort(),a=0;a<i.length;a+=1)s=i[a],o[s]=I(e[s],t,n,r,s);t.pop(),n.pop()}else o=e;return o}new class extends g{tokenize(e){return e.slice()}join(e){return e}removeEmpty(e){return e}};var ae={includeIndex:!0,includeUnderline:!0,includeFileHeaders:!0};function L(e,t,n,r,i,a,o){let s;s=o?typeof o==`function`?{callback:o}:o:{},s.context===void 0&&(s.context=4);let c=s.context;if(s.newlineIsToken)throw Error(`newlineIsToken may not be used with patch-generation functions, only with diffing functions`);if(s.callback){let{callback:e}=s;P(n,r,Object.assign(Object.assign({},s),{callback:t=>{e(l(t))}}))}else return l(P(n,r,s));function l(n){if(!n)return;n.push({value:``,lines:[]});function r(e){return e.map(function(e){return` `+e})}let o=[],s=0,l=0,u=[],d=1,f=1;for(let e=0;e<n.length;e++){let t=n[e],i=t.lines||z(t.value);if(t.lines=i,t.added||t.removed){if(!s){let t=n[e-1];s=d,l=f,t&&(u=c>0?r(t.lines.slice(-c)):[],s-=u.length,l-=u.length)}for(let e of i)u.push((t.added?`+`:`-`)+e);t.added?f+=i.length:d+=i.length}else{if(s)if(i.length<=c*2&&e<n.length-2)for(let e of r(i))u.push(e);else{let e=Math.min(i.length,c);for(let t of r(i.slice(0,e)))u.push(t);let t={oldStart:s,oldLines:d-s+e,newStart:l,newLines:f-l+e,lines:u};o.push(t),s=0,l=0,u=[]}d+=i.length,f+=i.length}}for(let e of o)for(let t=0;t<e.lines.length;t++)e.lines[t].endsWith(`
8
- `)?e.lines[t]=e.lines[t].slice(0,-1):(e.lines.splice(t+1,0,`\`),t++);return{oldFileName:e,newFileName:t,oldHeader:i,newHeader:a,hunks:o}}}function oe(e,t){if(t||=ae,Array.isArray(e)){if(e.length>1&&!t.includeFileHeaders)throw Error(`Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)`);return e.map(e=>oe(e,t)).join(`
9
- `)}let n=[];t.includeIndex&&e.oldFileName==e.newFileName&&n.push(`Index: `+e.oldFileName),t.includeUnderline&&n.push(`===================================================================`),t.includeFileHeaders&&(n.push(`--- `+e.oldFileName+(e.oldHeader===void 0?``:` `+e.oldHeader)),n.push(`+++ `+e.newFileName+(e.newHeader===void 0?``:` `+e.newHeader)));for(let t=0;t<e.hunks.length;t++){let r=e.hunks[t];r.oldLines===0&&--r.oldStart,r.newLines===0&&--r.newStart,n.push(`@@ -`+r.oldStart+`,`+r.oldLines+` +`+r.newStart+`,`+r.newLines+` @@`);for(let e of r.lines)n.push(e)}return n.join(`
10
- `)+`
11
- `}function R(e,t,n,r,i,a,o){if(typeof o==`function`&&(o={callback:o}),o?.callback){let{callback:s}=o;L(e,t,n,r,i,a,Object.assign(Object.assign({},o),{callback:e=>{s(e?oe(e,o.headerOptions):void 0)}}))}else{let s=L(e,t,n,r,i,a,o);return s?oe(s,o?.headerOptions):void 0}}function se(e,t,n,r,i,a){return R(e,e,t,n,r,i,a)}function z(e){let t=e.endsWith(`
12
- `),n=e.split(`
13
- `).map(e=>e+`
14
- `);return t?n.pop():n.push(n.pop().slice(0,-1)),n}var B=e(s(),1);function ce(e,t,n){return(0,B.useMemo)(()=>n?.length?V(n):e!==void 0&&t!==void 0?le(e,t):t===void 0?{lines:[],stats:{additions:0,deletions:0},hasLineNumbers:!1,totalLines:0}:H(t),[e,t,n])}function V(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];i>0&&t.push({type:`context`,content:`...`});let o=a.oldStart,s=a.newStart;for(let e of a.lines)if(e.startsWith(`+`))t.push({type:`add`,content:e.slice(1),newLineNumber:s}),s++,n++;else if(e.startsWith(`-`))t.push({type:`remove`,content:e.slice(1),oldLineNumber:o}),o++,r++;else{let n=e.startsWith(` `)?e.slice(1):e;t.push({type:`context`,content:n,oldLineNumber:o,newLineNumber:s}),o++,s++}}return ue(t),{lines:t,stats:{additions:n,deletions:r},hasLineNumbers:!0,totalLines:t.length}}function le(e,t){let n=P(e,t),r=[],i=0,a=0;for(let e of n){let t=e.value.replace(/\n$/,``).split(`
15
- `);for(let n of t)e.added?(r.push({type:`add`,content:n}),i++):e.removed?(r.push({type:`remove`,content:n}),a++):r.push({type:`context`,content:n})}return ue(r),{lines:r,stats:{additions:i,deletions:a},hasLineNumbers:!1,totalLines:r.length}}function H(e){let t=e.split(`
16
- `),n=t.map((e,t)=>({type:`add`,content:e,newLineNumber:t+1}));return{lines:n,stats:{additions:t.length,deletions:0},hasLineNumbers:!0,totalLines:n.length}}function ue(e){let t=0;for(;t<e.length;){if(e[t].type!==`remove`){t++;continue}let n=t;for(;t<e.length&&e[t].type===`remove`;)t++;let r=t,i=t;for(;t<e.length&&e[t].type===`add`;)t++;let a=t;if(i===a)continue;let o=Math.min(r-n,a-i);for(let t=0;t<o;t++){let r=e[n+t],a=e[i+t],o=k(r.content,a.content),s=[],c=[];for(let e of o)e.added?c.push({text:e.value,type:`changed`}):e.removed?s.push({text:e.value,type:`changed`}):(s.push({text:e.value,type:`unchanged`}),c.push({text:e.value,type:`unchanged`}));r.wordSegments=s,a.wordSegments=c}}}var U=m(),W=10,de=50,G=20,K=e=>{for(let t of[`/branches/`,`/home/`,`/Users/`]){let n=e.indexOf(t);if(n!==-1){let r=e.slice(n+t.length),i=r.split(`/`);return i.length>3?i.slice(i.length>5?-4:2).join(`/`):r}}let t=e.split(`/`);return t.length>4?t.slice(-4).join(`/`):e},q=e=>{switch(e){case`create`:return`Create`;case`delete`:return`Delete`;default:return`Update`}},J=({filePath:e,operationType:a,oldContent:s,newContent:c,structuredPatch:l,isError:d,errorMessage:f,forceExpanded:p})=>{let{token:m}=u.useToken(),{showSuccess:h}=ee(),g=te(m),_=ce(s,c,l),[v,y]=(0,B.useState)(p??(_.totalLines<=W&&_.totalLines>0)),[b,x]=(0,B.useState)(!1),S=g?`rgba(46, 160, 67, 0.15)`:`rgba(46, 160, 67, 0.1)`,C=g?`rgba(218, 54, 51, 0.15)`:`rgba(218, 54, 51, 0.1)`,w=g?`#3fb950`:`#1a7f37`,T=g?`#f85149`:`#cf222e`,E=g?`rgba(46, 160, 67, 0.4)`:`rgba(46, 160, 67, 0.3)`,D=g?`rgba(218, 54, 51, 0.4)`:`rgba(218, 54, 51, 0.3)`,re=m.colorTextTertiary,O=m.colorTextQuaternary,k=m.colorBorderSecondary;if(d)return(0,U.jsx)(`div`,{style:{padding:m.sizeUnit,borderRadius:m.borderRadius,background:`rgba(255, 77, 79, 0.05)`,border:`1px solid ${m.colorErrorBorder}`},children:(0,U.jsx)(t.Text,{type:`danger`,style:{fontSize:m.fontSizeSM},children:f||`Edit failed`})});if(_.totalLines===0)return null;let A=async()=>{let t;t=s!==void 0&&c!==void 0?se(e,s,c):c===void 0?_.lines.map(e=>e.type===`add`?`+${e.content}`:e.type===`remove`?`-${e.content}`:` ${e.content}`).join(`
17
- `):se(e,``,c),await ne(t),h(`Diff copied`)},j=_.totalLines>de&&!b,M=j?_.lines.slice(0,G):_.lines,N=(e,t)=>{let n=[];for(let t of e){let e=t.type===`changed`,r=n[n.length-1];r&&r.changed===e?r.text+=t.text:n.push({text:t.text,changed:e})}return n.map(e=>e.changed?(0,U.jsx)(`span`,{style:{background:t,borderRadius:2},children:e.text},e.text):e.text)};return(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`div`,{onClick:()=>y(!v),style:{display:`flex`,alignItems:`center`,gap:6,minWidth:0,padding:`${m.sizeUnit*.75}px ${m.sizeUnit}px`,cursor:`pointer`,borderRadius:v?`${m.borderRadius}px ${m.borderRadius}px 0 0`:m.borderRadius,background:m.colorBgLayout,border:`1px solid ${m.colorBorderSecondary}`,borderBottom:v?`none`:void 0,fontSize:m.fontSizeSM,userSelect:`none`},children:[v?(0,U.jsx)(n,{style:{fontSize:10,color:m.colorTextSecondary}}):(0,U.jsx)(i,{style:{fontSize:10,color:m.colorTextSecondary}}),(0,U.jsx)(o,{title:q(a),children:(0,U.jsx)(t.Text,{strong:!0,style:{fontSize:m.fontSizeSM,maxWidth:96,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,flexShrink:0},children:q(a)})}),(0,U.jsx)(o,{title:e,children:(0,U.jsx)(t.Text,{code:!0,style:{fontSize:m.fontSizeSM-1,minWidth:0,flex:`1 1 auto`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:K(e)})}),(0,U.jsx)(`span`,{style:{flex:1}}),_.stats.additions>0&&(0,U.jsxs)(`span`,{style:{color:w,fontWeight:600,fontSize:11},children:[`+`,_.stats.additions]}),_.stats.deletions>0&&(0,U.jsxs)(`span`,{style:{color:T,fontWeight:600,fontSize:11},children:[`-`,_.stats.deletions]})]}),v&&(0,U.jsxs)(`div`,{style:{border:`1px solid ${m.colorBorderSecondary}`,borderTop:`none`,borderRadius:`0 0 ${m.borderRadius}px ${m.borderRadius}px`,overflow:`hidden`},children:[(0,U.jsx)(`div`,{style:{overflowX:`auto`},children:M.map((e,t)=>{if(e.type===`context`&&e.content===`...`)return(0,U.jsx)(`div`,{style:{padding:`2px 8px`,color:k,fontSize:m.fontSizeSM,fontStyle:`italic`,borderTop:`1px dashed ${k}`,borderBottom:`1px dashed ${k}`},children:`...`},t);let n=e.type===`add`?S:e.type===`remove`?C:void 0,r=e.type===`add`?w:e.type===`remove`?T:re,i=e.type===`add`?`+`:e.type===`remove`?`-`:` `,a=e.type===`remove`?e.oldLineNumber:e.newLineNumber;return(0,U.jsxs)(`div`,{style:{display:`flex`,background:n,fontFamily:`Monaco, Menlo, Ubuntu Mono, Consolas, source-code-pro, monospace`,fontSize:m.fontSizeSM,lineHeight:`20px`,minHeight:20},children:[_.hasLineNumbers&&(0,U.jsx)(`span`,{style:{width:48,minWidth:48,textAlign:`right`,paddingRight:8,color:O,userSelect:`none`,flexShrink:0},children:a??``}),(0,U.jsx)(`span`,{style:{width:16,minWidth:16,textAlign:`center`,color:r,userSelect:`none`,flexShrink:0,fontWeight:e.type===`context`?void 0:600},children:i}),(0,U.jsx)(`span`,{style:{color:e.type===`context`?re:r,whiteSpace:`pre-wrap`,wordBreak:`break-all`,flex:1,paddingRight:8},children:e.wordSegments?N(e.wordSegments,e.type===`add`?E:D):e.content||` `})]},t)})}),j&&(0,U.jsxs)(`div`,{onClick:e=>{e.stopPropagation(),x(!0)},style:{padding:`${m.sizeUnit*.75}px ${m.sizeUnit}px`,textAlign:`center`,cursor:`pointer`,color:m.colorPrimary,fontSize:m.fontSizeSM,borderTop:`1px dashed ${k}`,background:m.colorBgLayout},children:[`Show `,_.totalLines-G,` more lines`]}),(0,U.jsx)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,padding:`3px ${m.sizeUnit}px`,borderTop:`1px solid ${m.colorBorderSecondary}`,background:m.colorBgLayout},children:(0,U.jsx)(o,{title:`Copy diff`,children:(0,U.jsx)(r,{onClick:e=>{e.stopPropagation(),A()},style:{fontSize:12,color:m.colorTextTertiary,cursor:`pointer`,padding:4}})})})]})]})},Y=null,X=null,Z=()=>Y?Promise.resolve(Y):X||(X=(async()=>{try{let[e,t]=await Promise.all([p(()=>import(`./emoji-B0hLmSLZ.js`).then(e=>e.n),__vite__mapDeps([0,1,2])),p(()=>import(`./emoji-B0hLmSLZ.js`).then(e=>e.t),__vite__mapDeps([0,1,2]))]),n=e.default,r=t.default,i=new Map;for(let e of n)e.unicode&&i.set(e.hexcode,{emoji:e.unicode,tags:e.tags||[]});let a=[];for(let[e,t]of Object.entries(r)){let n=i.get(e);if(!n)continue;let r=Array.isArray(t)?t:[t];for(let e of r)a.push({shortcode:e,emoji:n.emoji,keywords:n.tags})}return Y=a,a}catch(e){return console.error(`Failed to load emoji autocomplete data.`,e),X=null,[]}})(),X),fe=()=>{let[e,t]=(0,B.useState)(()=>Y??[]);return(0,B.useEffect)(()=>{if(Y)return;let e=!1,n=()=>{Z().then(n=>{e||t(n)})},r=window.requestIdleCallback,i,a;return typeof r==`function`?i=r(n):a=setTimeout(n,1500),()=>{e=!0,i!==void 0&&typeof window.cancelIdleCallback==`function`&&window.cancelIdleCallback(i),a!==void 0&&clearTimeout(a)}},[]),{searchEmojis:(0,B.useMemo)(()=>n=>{if(e.length===0)return Y||Z().then(t),[];if(!n)return e.slice(0,20);let r=n.toLowerCase();return e.filter(e=>{let t=e.shortcode.toLowerCase().includes(r),n=e.keywords?.some(e=>e.toLowerCase().includes(r))||!1;return t||n}).sort((e,t)=>{let n=e.shortcode.toLowerCase(),i=t.shortcode.toLowerCase();if(n===r)return-1;if(i===r)return 1;let a=n.startsWith(r),o=i.startsWith(r);if(a&&!o)return-1;if(!a&&o)return 1;let s=n.includes(r),c=i.includes(r);return s&&!c?-1:!s&&c?1:n.localeCompare(i)}).slice(0,20)},[e]),allEmojis:e}},pe=`agor://kb/`,me=e=>{try{return decodeURIComponent(e)}catch{return e}},he=e=>(e??``).split(`/`).filter(Boolean).map(me).join(`/`),ge=e=>e.split(`/`).filter(Boolean).map(e=>encodeURIComponent(e)).join(`/`),_e=e=>e.startsWith(`/knowledge`)?`/knowledge`:`/kb`,ve=(e,t,n)=>{if(!t||t===`all`)return e;let r=encodeURIComponent(t),i=n?ge(n):``;return i?`${e}/${r}/${i}`:`${e}/${r}`},ye=e=>{if(!e?.startsWith(pe))return null;let t=e.slice(10),n=t.indexOf(`/`);return n>0?t.slice(0,n):null},be=e=>(e.split(`/`).filter(Boolean).pop()??e).replace(/\.(md|markdown)$/i,``).replace(/[-_]+/g,` `).trim()||e;function xe(e,t=`/kb`){let n=e.path?.trim();if(!n)return null;let r=ye(e.uri);return r?{title:e.title?.trim()||be(n),documentId:e.document_id,path:n,uri:e.uri,routePath:ve(t,r,n)}:null}var Se=e=>{let t=new Set,n=[];for(let r of e)t.has(r.documentId)||(t.add(r.documentId),n.push(r));return n};function Ce(e,t,n=8){let r=t.trim().toLowerCase();if(!r)return e.slice(0,n);let i=e=>{let t=e.title.toLowerCase(),n=e.path.toLowerCase();return t===r?0:t.startsWith(r)?1:t.includes(r)?2:n.includes(r)?3:4};return e.map(e=>({doc:e,score:i(e)})).filter(({score:e})=>e<4).sort((e,t)=>e.score-t.score||e.doc.title.localeCompare(t.doc.title)).slice(0,n).map(({doc:e})=>e)}function we(e,t){return`[${e.replace(/[[\]]/g,`\\$&`).trim()||`Untitled`}](${t})`}function Te(e,t){return we(e,f(t))}var Ee=RegExp(`${d.replace(/[/]/g,`\\$&`)}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})`,`gi`);function De(e,t){return e&&e.replace(Ee,(e,n)=>t(n.toLowerCase())??e)}var{TextArea:Oe}=c,{Text:ke}=t,Ae=10,je=5,Me=15,Ne=300,Pe=8,Fe=320,Ie=300,Le=[],Re=[],ze=2,Q=2,Be=e=>{if(!e)return!1;let t=e.codePointAt(0);return t?t>=128512&&t<=128591||t>=127744&&t<=128511||t>=128640&&t<=128767||t>=9728&&t<=9983||t>=9984&&t<=10175||t>=127456&&t<=127487||t>=129280&&t<=129535||t>=129536&&t<=129647:!1},Ve=(e,t)=>{if(t<=0)return``;let n=e.charAt(t-1),r=t>=2?e.charAt(t-2):``,i=n.charCodeAt(0);if(i>=56320&&i<=57343&&r){let e=r.charCodeAt(0);if(e>=55296&&e<=56319)return r+n}return n},He=(e,t,n)=>{let r=e.substring(0,t),i=r.lastIndexOf(n);if(i===-1)return null;let a=Ve(r,i),o=i===0,s=a===` `||a===`
18
- `,c=Be(a);if(n===`/`){if(i!==0)return null}else if(n===`@`){if(!o&&!s)return null}else if(n===`:`&&!o&&!s&&!c)return null;let l=r.substring(i+1);return l.includes(` `)||l.includes(`
19
- `)||n===`:`&&l.length<Q?null:{query:l,triggerIndex:i}},Ue=e=>e.includes(` `)?`"${e}"`:e,We=e=>Array.isArray(e)?e:e.data??[],Ge=(e,t)=>{let n=/@(?:"[^"]*"|[^\s]+)/g,r=[],i=0,a=n.exec(e);for(;a!==null;)a.index>i&&r.push(e.substring(i,a.index)),r.push((0,U.jsx)(`span`,{style:{backgroundColor:t,borderRadius:`3px`,padding:`0 2px`,fontWeight:600},children:a[0]},`mention-${a.index}`)),i=a.index+a[0].length,a=n.exec(e);return i<e.length&&r.push(e.substring(i)),r},$=[`boxSizing`,`width`,`paddingTop`,`paddingRight`,`paddingBottom`,`paddingLeft`,`borderTopWidth`,`borderRightWidth`,`borderBottomWidth`,`borderLeftWidth`,`fontStyle`,`fontVariant`,`fontWeight`,`fontStretch`,`fontSize`,`fontFamily`,`lineHeight`,`letterSpacing`,`wordSpacing`,`textIndent`,`textTransform`,`tabSize`],Ke=(e,t,n)=>{let r=window.getComputedStyle(e),i=document.createElement(`div`),a=i.style;a.position=`absolute`,a.visibility=`hidden`,a.whiteSpace=`pre-wrap`,a.wordWrap=`break-word`,a.top=`0`,a.left=`-9999px`;for(let e of $)a[e]=r[e];i.textContent=t.slice(0,n);let o=document.createElement(`span`);o.textContent=t.slice(n)||`.`,i.appendChild(o),document.body.appendChild(i);let s=Number.parseFloat(r.lineHeight),c=Number.isNaN(s)?Number.parseFloat(r.fontSize)*1.4:s,l=o.offsetLeft,u=o.offsetTop;return document.body.removeChild(i),{left:l,top:u,lineHeight:c}},qe=B.forwardRef(({value:e,onChange:t,onKeyPress:n,placeholder:r=`Send a prompt, fork, or create a subsession... (type @ for files/users, : for emojis)`,client:i,sessionId:o,userById:s,autoSize:c,onFilesDrop:d,filesDropDisabled:f=!1,showFilesDropOverlay:p=!0,suppressEmptyHighlight:m=!1,slashCommands:ee=Le,skills:te=Re,enableKnowledgeMentions:ne=!1,kbDocs:g,kbLinkTarget:_=`stable-uri`,highlightWhenEmpty:v=!1},y)=>{let{token:b}=u.useToken(),x=(0,B.useRef)({current:null}),S=(0,B.useRef)(null),C=(0,B.useRef)(null),w=(0,B.useRef)(null),T=(0,B.useRef)(null),E=(0,B.useRef)(0),D=(0,B.useRef)(0),[re,O]=(0,B.useState)(!1),{searchEmojis:k}=fe(),[A,j]=(0,B.useState)(!1),[M,N]=(0,B.useState)(null),[P,ie]=(0,B.useState)(-1),[F,I]=(0,B.useState)(``),[ae,L]=(0,B.useState)(!1),[oe,R]=(0,B.useState)(!1),[se,z]=(0,B.useState)(null),[ce,V]=(0,B.useState)([]),[le,H]=(0,B.useState)([]),[ue,W]=(0,B.useState)([]),[de,G]=(0,B.useState)([]),[K,q]=(0,B.useState)(-1),J=g!==void 0,Y=ne||J,X=Y?g??de:[],Z=ae||oe,[pe,me]=(0,B.useState)(0),he=(0,B.useRef)(null),[ge,_e]=(0,B.useState)([0,0]),[ve,ye]=(0,B.useState)(`bottomLeft`);B.useEffect(()=>{let e=x.current?.current;if(!e)return;let t=()=>{me(e.scrollTop)};return e.addEventListener(`scroll`,t),()=>{e.removeEventListener(`scroll`,t)}},[]),B.useEffect(()=>()=>{T.current&&clearTimeout(T.current),E.current+=1,D.current+=1},[]),B.useEffect(()=>{M===`:`&&H(k(F).slice(0,Me).map(e=>({emoji:e.emoji,shortcode:e.shortcode,type:`emoji`})))},[M,F,k]),B.useLayoutEffect(()=>{if(!A||P<0)return;let t=x.current?.current,n=S.current;if(!t||!n)return;let{left:r,top:i,lineHeight:a}=Ke(t,e,P),o=t.getBoundingClientRect(),s=n.getBoundingClientRect(),c=o.top-s.top+i-pe,l=o.top+i-pe,u=l+a,d=l,f=window.innerHeight-u,p=f<308&&d>f;ye(p?`topLeft`:`bottomLeft`),_e([o.left-s.left+Math.max(0,r-t.scrollLeft),p?c:c+a])},[A,P,pe,e]),B.useEffect(()=>{if(K>=0&&w.current){let e=w.current.children;if(K<e.length){let t=e[K];t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({behavior:`smooth`,block:`nearest`})}}},[K]);let be=(0,B.useCallback)(async e=>{let t=E.current+1;if(E.current=t,!i||!o||!e.trim()){V([]),L(!1);return}L(!0);try{let n=await i.service(`files`).findAll({query:{sessionId:o,search:e}});if(E.current!==t)return;V(n.slice(0,Ae))}catch(e){if(E.current!==t)return;console.error(`File search error:`,e),V([])}finally{E.current===t&&L(!1)}},[i,o]),Ee=(0,B.useCallback)(async e=>{let t=D.current+1;if(D.current=t,!Y||J||!i){G([]),z(null),R(!1);return}let n=e.trim();if(n.length<ze){G([]),z(null),R(!1);return}R(!0),z(null);try{let e=We(await i.service(`kb/search`).find({query:{q:n,mode:`text`,limit:8,include_chunks:!1}})).map(e=>xe(e.document)).filter(e=>!!e);if(D.current!==t)return;G(Se(e).slice(0,8))}catch(e){if(D.current!==t)return;console.error(`Knowledge mention search error:`,e),G([]),z(e instanceof Error?e.message:`Unable to search Knowledge`)}finally{D.current===t&&R(!1)}},[i,J,Y]),De=(0,B.useCallback)(e=>{let t=h(s);if(!e.trim())return t.slice(0,je).map(e=>({name:e.name||e.email,email:e.email,type:`user`}));let n=e.toLowerCase();return t.filter(e=>e.name?.toLowerCase().includes(n)||e.email.toLowerCase().includes(n)).slice(0,je).map(e=>({name:e.name||e.email,email:e.email,type:`user`}))},[s]),Q=(0,B.useMemo)(()=>{let e=[];if(M===`@`){if(ce.length>0&&(e.push({heading:`FILES & FOLDERS`}),e.push(...ce)),X.length>0){let t=(J?Ce(X,F):X).map(e=>({kbTitle:e.title,kbDocumentId:e.documentId,kbUri:e.uri,kbRoutePath:e.routePath,type:`kb_doc`}));t.length>0&&(e.push({heading:`KNOWLEDGE BASE`}),e.push(...t))}let t=De(F);t.length>0&&(e.push({heading:`USERS`}),e.push(...t))}else M===`:`?le.length>0&&(e.push({heading:`EMOJIS`}),e.push(...le)):M===`/`&&ue.length>0&&(e.push({heading:`COMMANDS`}),e.push(...ue));return e},[M,ce,le,ue,X,F,De,J]),Be=`${ve}:${ge[0]}:${ge[1]}`;B.useLayoutEffect(()=>{if(!A||Q.length===0)return;C.current?.forceAlign();let e=Be,t=window.setTimeout(()=>{e===Be&&C.current?.forceAlign()},0);return()=>{window.clearTimeout(t)}},[A,Q.length,Be]),B.useLayoutEffect(()=>{if(Q.length>0&&A){let e=Q.findIndex(e=>!(`heading`in e));e>=0&&q(e)}else q(-1)},[Q,A]),B.useEffect(()=>{if(K>=Q.length){let e=-1;for(let t=Q.length-1;t>=0;t--)if(!(`heading`in Q[t])){e=t;break}q(e)}},[Q,K]);let Ve=(0,B.useCallback)(e=>{let n=e.target.value;t(n);let r=e.target.selectionStart||0,i=He(n,r,`/`);if(i){N(`/`),I(i.query),ie(i.triggerIndex),T.current&&clearTimeout(T.current),E.current+=1,D.current+=1,V([]),H([]),G([]),z(null),L(!1),R(!1);let e=i.query.toLowerCase(),t=new Set,n=[];for(let r of ee){let i=r.toLowerCase();i.includes(e)&&!t.has(i)&&(t.add(i),n.push({command:r,source:`built-in`,type:`slash_command`}))}for(let r of te){let i=r.toLowerCase();i.includes(e)&&!t.has(i)&&(t.add(i),n.push({command:r,source:`project`,type:`slash_command`}))}n.sort((e,t)=>e.command.toLowerCase().localeCompare(t.command.toLowerCase())),W(n),j(!0);return}let a=He(n,r,`@`);if(a){N(`@`),I(a.query),ie(a.triggerIndex),H([]),W([]),T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{be(a.query),Y&&Ee(a.query)},Ne),j(!0);return}let o=He(n,r,`:`);if(o){N(`:`),I(o.query),ie(o.triggerIndex),T.current&&clearTimeout(T.current),E.current+=1,D.current+=1,V([]),G([]),z(null),W([]),L(!1),R(!1),H(k(o.query).slice(0,Me).map(e=>({emoji:e.emoji,shortcode:e.shortcode,type:`emoji`}))),j(!0);return}T.current&&clearTimeout(T.current),j(!1),N(null),V([]),H([]),W([]),G([]),z(null),L(!1),R(!1),E.current+=1,D.current+=1,q(-1)},[t,be,Ee,k,ee,te,Y]),$=(0,B.useCallback)(n=>{if(P===-1)return;let r=x.current.current?.selectionStart||0,i=e.substring(0,r).substring(P+1).length,a=``,o=!0;`kbDocumentId`in n?a=_===`absolute-route`?we(n.kbTitle,`${window.location.origin}${n.kbRoutePath}`):Te(n.kbTitle,n.kbDocumentId):`command`in n?a=`/${n.command}`:`emoji`in n?(a=n.emoji,o=!1):a=`path`in n?`@${Ue(n.path)}`:`@${n.name}`,t(e.substring(0,P)+a+(o?` `:``)+e.substring(P+1+i)),j(!1),N(null),V([]),H([]),W([]),G([]),z(null),L(!1),R(!1),E.current+=1,D.current+=1,q(-1),setTimeout(()=>{let e=P+a.length+ +!!o;x.current.current?.setSelectionRange(e,e),x.current.current?.focus()},0)},[P,e,t,_]),qe=(0,B.useCallback)(e=>{let t=A&&Q.length>0;switch(e.key){case`ArrowDown`:t&&(e.preventDefault(),e.stopPropagation(),q(e=>{let t=e+1;for(;t<Q.length;){if(!(`heading`in Q[t]))return t;t++}return e}));break;case`ArrowUp`:t&&(e.preventDefault(),e.stopPropagation(),q(e=>{let t=e-1;for(;t>=0;){if(!(`heading`in Q[t]))return t;t--}return-1}));break;case`Tab`:if(t){if(e.preventDefault(),e.stopPropagation(),K>=0){let e=Q[K];`heading`in e||$(e)}else if(Q.length>0){let e=Q.find(e=>!(`heading`in e));e&&q(Q.indexOf(e))}}break;case`Enter`:if(t)if(e.preventDefault(),e.stopPropagation(),K>=0){let e=Q[K];`heading`in e||$(e)}else{let e=Q.find(e=>!(`heading`in e));e&&$(e)}else !t&&n&&n(e);break;case`Escape`:t&&(e.preventDefault(),e.stopPropagation(),j(!1));break;default:!t&&n&&n(e)}},[A,Q,K,$,n]),Je=(0,B.useCallback)(e=>{if(d){if(e.preventDefault(),e.stopPropagation(),f){O(!1);return}O(p)}},[f,d,p]),Ye=(0,B.useCallback)(e=>{d&&(e.preventDefault(),e.stopPropagation(),O(!1))},[d]),Xe=(0,B.useCallback)(e=>{if(!d||(e.preventDefault(),e.stopPropagation(),O(!1),f))return;let t=Array.from(e.dataTransfer.files);t.length>0&&d(t)},[f,d]),Ze=(0,B.useCallback)(e=>{if(!d)return;let t=[];for(let n of Array.from(e.clipboardData.items)){if(n.kind!==`file`)continue;let e=n.getAsFile();if(!e)continue;let r=n.type||e.type;if(r.startsWith(`image/`)){let n=r.split(`/`)[1]||`png`,i=`pasted-screenshot-${new Date().toISOString().replace(/[:.]/g,`-`)}.${n}`;t.push(new File([e],i,{type:e.type||r}));continue}if(e.name){t.push(e);continue}let i=r.split(`/`)[1]||`bin`,a=`pasted-file-${new Date().toISOString().replace(/[:.]/g,`-`)}.${i}`;t.push(new File([e],a,{type:e.type||r}))}t.length!==0&&(e.preventDefault(),!f&&d(t))},[f,d]),Qe=(0,U.jsxs)(`div`,{ref:w,onMouseDown:e=>{e.preventDefault()},style:{width:`min(${Fe}px, calc(100vw - ${Pe*2}px))`,maxWidth:`calc(100vw - ${Pe*2}px)`,maxHeight:`min(${Ie}px, calc(100vh - ${Pe*2}px))`,overflowY:`auto`,minWidth:`min(250px, calc(100vw - ${Pe*2}px))`},children:[Z&&(0,U.jsx)(`div`,{style:{padding:`${b.paddingXS}px ${b.paddingSM}px`,textAlign:`center`},children:(0,U.jsx)(l,{size:`small`})}),!Z&&se&&(0,U.jsx)(`div`,{style:{padding:`${b.paddingXS}px ${b.paddingSM}px`,color:b.colorError,fontSize:b.fontSizeSM},children:`Unable to search Knowledge`}),!Z&&Q.length===0&&(0,U.jsx)(`div`,{style:{padding:`${b.paddingXS}px ${b.paddingSM}px`,color:b.colorTextSecondary,fontSize:b.fontSizeSM},children:`No results`}),!Z&&Q.map((e,t)=>{if(`heading`in e)return(0,U.jsx)(`div`,{style:{position:`sticky`,top:0,padding:`${b.paddingXS}px ${b.paddingSM}px`,fontSize:b.fontSizeSM,fontWeight:600,color:b.colorTextSecondary,backgroundColor:b.colorBgContainer,textTransform:`uppercase`,borderBottom:`1px solid ${b.colorBorder}`,marginTop:t>0?b.paddingXS:0,zIndex:10},children:e.heading},`heading-${e.heading}`);let n=``,r=``,i=!1,a=!1,o=!1;`kbRoutePath`in e?(n=e.kbTitle,r=`kb-${e.kbUri}`,o=!0):`command`in e?(n=`/${e.command}`,r=`cmd-${e.command}`,a=!0):`emoji`in e?(n=`${e.emoji} :${e.shortcode}:`,r=`emoji-${e.shortcode}`):`path`in e?(n=e.path,r=`file-${e.path}`,i=e.type===`folder`):(n=`${e.name} (${e.email})`,r=`user-${e.name}`);let s=K===t;return(0,U.jsxs)(`div`,{onClick:()=>$(e),style:{padding:`${b.paddingXS}px ${b.paddingSM}px`,cursor:`pointer`,transition:`background-color 0.2s`,fontSize:b.fontSize,lineHeight:1.4,backgroundColor:s?b.colorPrimaryBg:`transparent`,color:s?b.colorPrimary:b.colorText,display:`flex`,alignItems:`center`,gap:b.paddingXS},onMouseEnter:e=>{q(t),e.currentTarget.style.backgroundColor=b.colorBgTextHover},onMouseLeave:e=>{q(-1),e.currentTarget.style.backgroundColor=`transparent`},children:[a&&(0,U.jsx)(`span`,{style:{fontFamily:`monospace`,fontSize:b.fontSizeSM,opacity:.6,fontWeight:600},children:`/`}),`emoji`in e&&(0,U.jsx)(`span`,{style:{fontSize:20,lineHeight:1},children:e.emoji}),i&&(0,U.jsx)(`span`,{style:{opacity:.6},children:`📁`}),o&&(0,U.jsx)(`span`,{style:{opacity:.6},children:`📄`}),(0,U.jsx)(ke,{ellipsis:!0,style:{flex:1},children:`emoji`in e?`:${e.shortcode}:`:a?`command`in e?e.command:``:n}),a&&`source`in e&&(0,U.jsx)(ke,{style:{fontSize:b.fontSizeSM-1,color:b.colorTextDescription,flexShrink:0},children:e.source})]},r)})]}),$e=b.colorBgTextHover,et=e?.includes(`@`)??!1,tt=v&&!e.trim()&&!m;return(0,U.jsxs)(`div`,{ref:S,style:{position:`relative`,width:`100%`},onDragOver:Je,onDragLeave:Ye,onDrop:Xe,onPaste:Ze,children:[(0,U.jsx)(a,{ref:C,content:Qe,open:A&&Q.length>0,trigger:[],placement:ve,autoAdjustOverflow:!0,arrow:!1,children:(0,U.jsx)(`span`,{"aria-hidden":`true`,"data-popover-anchor-key":Be,tabIndex:-1,style:{position:`absolute`,left:ge[0],top:ge[1],width:0,height:0,pointerEvents:`none`}},Be)}),re&&(0,U.jsx)(`div`,{style:{position:`absolute`,top:0,left:0,right:0,bottom:0,backgroundColor:`${b.colorPrimary}10`,border:`2px dashed ${b.colorPrimary}`,borderRadius:b.borderRadius,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:10,pointerEvents:`none`},children:(0,U.jsx)(ke,{strong:!0,style:{color:b.colorPrimary},children:`Drop files here to upload`})}),et&&(0,U.jsx)(`div`,{ref:he,style:{position:`absolute`,top:0,left:0,right:0,bottom:0,pointerEvents:`none`,whiteSpace:`pre-wrap`,wordWrap:`break-word`,color:`transparent`,overflow:`hidden`,fontFamily:b.fontFamily,fontSize:b.fontSize,lineHeight:b.lineHeight,padding:`4px 11px`,border:`1px solid transparent`,borderRadius:b.borderRadius,zIndex:0},"aria-hidden":`true`,children:(0,U.jsx)(`div`,{style:{transform:`translateY(-${pe}px)`},children:Ge(e,$e)})}),(0,U.jsx)(Oe,{ref:e=>{let t=null;if(e&&typeof e==`object`&&`resizableTextArea`in e&&e.resizableTextArea&&typeof e.resizableTextArea==`object`&&`textArea`in e.resizableTextArea&&e.resizableTextArea.textArea instanceof HTMLTextAreaElement&&(t=e.resizableTextArea.textArea),t){if(x.current.current=t,typeof y==`function`)y(t);else if(y)try{y.current=t}catch{}}},value:e,onChange:Ve,onKeyDown:qe,placeholder:r,autoSize:c||{minRows:2,maxRows:10},className:`agor-textarea agor-textarea-with-highlights`,style:{borderColor:tt&&!m?b.colorPrimary:b.colorBorder,boxShadow:m?`none`:tt?`0 0 0 ${b.controlOutlineWidth}px ${b.controlOutline}`:void 0,backgroundColor:et?`transparent`:void 0,transition:`border-color 0.2s ease, box-shadow 0.2s ease`,position:`relative`,zIndex:1}})]})});qe.displayName=`AutocompleteTextarea`;export{he as a,me as c,ve as i,J as l,De as n,_e as o,xe as r,ye as s,qe as t};