agor-live 0.22.0 → 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 (1006) hide show
  1. package/dist/cli/commands/admin/add-to-branch-group.d.ts +2 -13
  2. package/dist/cli/commands/admin/add-to-branch-group.d.ts.map +1 -1
  3. package/dist/cli/commands/admin/add-to-branch-group.js +133 -33
  4. package/dist/cli/commands/admin/create-branch-group.d.ts +2 -13
  5. package/dist/cli/commands/admin/create-branch-group.d.ts.map +1 -1
  6. package/dist/cli/commands/admin/create-branch-group.js +132 -38
  7. package/dist/cli/commands/admin/create-symlink.d.ts +2 -14
  8. package/dist/cli/commands/admin/create-symlink.d.ts.map +1 -1
  9. package/dist/cli/commands/admin/create-symlink.js +138 -61
  10. package/dist/cli/commands/admin/delete-branch-group.d.ts +2 -13
  11. package/dist/cli/commands/admin/delete-branch-group.d.ts.map +1 -1
  12. package/dist/cli/commands/admin/delete-branch-group.js +132 -28
  13. package/dist/cli/commands/admin/delete-user.d.ts +2 -13
  14. package/dist/cli/commands/admin/delete-user.d.ts.map +1 -1
  15. package/dist/cli/commands/admin/delete-user.js +132 -38
  16. package/dist/cli/commands/admin/ensure-user.d.ts +2 -14
  17. package/dist/cli/commands/admin/ensure-user.d.ts.map +1 -1
  18. package/dist/cli/commands/admin/ensure-user.js +131 -46
  19. package/dist/cli/commands/admin/remove-from-branch-group.d.ts +2 -13
  20. package/dist/cli/commands/admin/remove-from-branch-group.d.ts.map +1 -1
  21. package/dist/cli/commands/admin/remove-from-branch-group.js +133 -33
  22. package/dist/cli/commands/admin/remove-symlink.d.ts +2 -14
  23. package/dist/cli/commands/admin/remove-symlink.d.ts.map +1 -1
  24. package/dist/cli/commands/admin/remove-symlink.js +136 -49
  25. package/dist/cli/commands/admin/scrub-git-remotes.d.ts +2 -2
  26. package/dist/cli/commands/admin/scrub-git-remotes.d.ts.map +1 -1
  27. package/dist/cli/commands/admin/scrub-git-remotes.js +128 -86
  28. package/dist/cli/commands/admin/sync-user-symlinks.d.ts +2 -14
  29. package/dist/cli/commands/admin/sync-user-symlinks.d.ts.map +1 -1
  30. package/dist/cli/commands/admin/sync-user-symlinks.js +132 -43
  31. package/dist/cli/commands/auth/whoami.d.ts.map +1 -1
  32. package/dist/cli/commands/auth/whoami.js +2 -1
  33. package/dist/cli/commands/branch/env/request.test.d.ts +2 -0
  34. package/dist/cli/commands/branch/env/request.test.d.ts.map +1 -0
  35. package/dist/cli/commands/branch/env/request.test.js +17723 -0
  36. package/dist/cli/commands/branch/env/restart.d.ts.map +1 -1
  37. package/dist/cli/commands/branch/env/restart.js +7 -1
  38. package/dist/cli/commands/branch/env/start.d.ts.map +1 -1
  39. package/dist/cli/commands/branch/env/start.js +7 -1
  40. package/dist/cli/commands/branch/env/stop.d.ts.map +1 -1
  41. package/dist/cli/commands/branch/env/stop.js +7 -1
  42. package/dist/cli/commands/daemon/status.d.ts.map +1 -1
  43. package/dist/cli/commands/daemon/status.js +2 -1
  44. package/dist/cli/commands/init.d.ts +6 -0
  45. package/dist/cli/commands/init.d.ts.map +1 -1
  46. package/dist/cli/commands/init.js +140 -2
  47. package/dist/cli/commands/local/add-to-branch-group.d.ts +13 -0
  48. package/dist/cli/commands/local/add-to-branch-group.d.ts.map +1 -0
  49. package/dist/cli/commands/local/add-to-branch-group.js +37 -0
  50. package/dist/cli/commands/local/create-branch-group.d.ts +12 -0
  51. package/dist/cli/commands/local/create-branch-group.d.ts.map +1 -0
  52. package/dist/cli/commands/local/create-branch-group.js +35 -0
  53. package/dist/cli/commands/local/create-symlink.d.ts +14 -0
  54. package/dist/cli/commands/local/create-symlink.d.ts.map +1 -0
  55. package/dist/cli/commands/local/create-symlink.js +45 -0
  56. package/dist/cli/commands/{daemon → local/daemon}/sync.d.ts +1 -1
  57. package/dist/cli/commands/local/daemon/sync.d.ts.map +1 -0
  58. package/dist/cli/commands/{daemon → local/daemon}/sync.js +7 -6
  59. package/dist/cli/commands/local/delete-branch-group.d.ts +12 -0
  60. package/dist/cli/commands/local/delete-branch-group.d.ts.map +1 -0
  61. package/dist/cli/commands/local/delete-branch-group.js +35 -0
  62. package/dist/cli/commands/local/delete-user.d.ts +12 -0
  63. package/dist/cli/commands/local/delete-user.d.ts.map +1 -0
  64. package/dist/cli/commands/local/delete-user.js +36 -0
  65. package/dist/cli/commands/local/ensure-user.d.ts +12 -0
  66. package/dist/cli/commands/local/ensure-user.d.ts.map +1 -0
  67. package/dist/cli/commands/local/ensure-user.js +41 -0
  68. package/dist/cli/commands/local/remove-from-branch-group.d.ts +13 -0
  69. package/dist/cli/commands/local/remove-from-branch-group.d.ts.map +1 -0
  70. package/dist/cli/commands/local/remove-from-branch-group.js +37 -0
  71. package/dist/cli/commands/local/remove-symlink.d.ts +13 -0
  72. package/dist/cli/commands/local/remove-symlink.d.ts.map +1 -0
  73. package/dist/cli/commands/local/remove-symlink.js +39 -0
  74. package/dist/cli/commands/local/scrub-git-remotes.d.ts +9 -0
  75. package/dist/cli/commands/local/scrub-git-remotes.d.ts.map +1 -0
  76. package/dist/cli/commands/local/scrub-git-remotes.js +23 -0
  77. package/dist/cli/commands/{admin → local}/sync-unix.d.ts.map +1 -1
  78. package/dist/cli/commands/{admin → local}/sync-unix.js +3 -3
  79. package/dist/cli/commands/local/sync-user-symlinks.d.ts +12 -0
  80. package/dist/cli/commands/local/sync-user-symlinks.d.ts.map +1 -0
  81. package/dist/cli/commands/local/sync-user-symlinks.js +37 -0
  82. package/dist/cli/commands/telemetry/index.d.ts +7 -0
  83. package/dist/cli/commands/telemetry/index.d.ts.map +1 -0
  84. package/dist/cli/commands/telemetry/index.js +40 -0
  85. package/dist/cli/commands/telemetry/off.d.ts +6 -0
  86. package/dist/cli/commands/telemetry/off.d.ts.map +1 -0
  87. package/dist/cli/commands/telemetry/off.js +35 -0
  88. package/dist/cli/commands/telemetry/on.d.ts +6 -0
  89. package/dist/cli/commands/telemetry/on.d.ts.map +1 -0
  90. package/dist/cli/commands/telemetry/on.js +37 -0
  91. package/dist/cli/commands/telemetry/test.d.ts +6 -0
  92. package/dist/cli/commands/telemetry/test.d.ts.map +1 -0
  93. package/dist/cli/commands/telemetry/test.js +56 -0
  94. package/dist/cli/commands/user/create-admin.d.ts.map +1 -1
  95. package/dist/cli/commands/user/create-admin.js +81 -72
  96. package/dist/cli/commands/user/list.d.ts.map +1 -1
  97. package/dist/cli/commands/user/list.js +1 -0
  98. package/dist/cli/commands/whoami.js +2 -1
  99. package/dist/cli/lib/branch-environment-action.d.ts +21 -0
  100. package/dist/cli/lib/branch-environment-action.d.ts.map +1 -0
  101. package/dist/cli/lib/branch-environment-action.js +8 -0
  102. package/dist/core/api/index.cjs +7 -2
  103. package/dist/core/api/index.d.ts +13 -4
  104. package/dist/core/api/index.d.ts.map +1 -1
  105. package/dist/core/api/index.js +7 -2
  106. package/dist/core/claude/index.cjs +518 -89
  107. package/dist/core/claude/index.js +515 -88
  108. package/dist/core/claude-cli/index.cjs +24 -0
  109. package/dist/core/claude-cli/index.js +24 -0
  110. package/dist/core/claude-cli/pricing.d.ts.map +1 -1
  111. package/dist/core/client/index.cjs +52 -7
  112. package/dist/core/client/index.js +48 -7
  113. package/dist/core/config/browser.cjs +3 -5
  114. package/dist/core/config/browser.js +3 -5
  115. package/dist/core/config/config-manager.d.ts +33 -13
  116. package/dist/core/config/config-manager.d.ts.map +1 -1
  117. package/dist/core/config/index.cjs +4259 -4527
  118. package/dist/core/config/index.d.ts +1 -0
  119. package/dist/core/config/index.d.ts.map +1 -1
  120. package/dist/core/config/index.js +4295 -4583
  121. package/dist/core/config/key-resolver.d.ts.map +1 -1
  122. package/dist/core/config/multitenancy.d.ts +33 -0
  123. package/dist/core/config/multitenancy.d.ts.map +1 -0
  124. package/dist/core/config/security-resolver.d.ts +1 -0
  125. package/dist/core/config/security-resolver.d.ts.map +1 -1
  126. package/dist/core/config/types.d.ts +67 -4
  127. package/dist/core/config/types.d.ts.map +1 -1
  128. package/dist/core/db/client.d.ts +34 -2
  129. package/dist/core/db/client.d.ts.map +1 -1
  130. package/dist/core/db/database-wrapper.d.ts.map +1 -1
  131. package/dist/core/db/first-run-bootstrap.d.ts.map +1 -1
  132. package/dist/core/db/index.cjs +2767 -1232
  133. package/dist/core/db/index.d.ts +2 -1
  134. package/dist/core/db/index.d.ts.map +1 -1
  135. package/dist/core/db/index.js +2601 -1094
  136. package/dist/core/db/migrate.d.ts.map +1 -1
  137. package/dist/core/db/repositories/artifacts.d.ts +27 -2
  138. package/dist/core/db/repositories/artifacts.d.ts.map +1 -1
  139. package/dist/core/db/repositories/base.d.ts +18 -0
  140. package/dist/core/db/repositories/base.d.ts.map +1 -1
  141. package/dist/core/db/repositories/board-comments.d.ts +17 -1
  142. package/dist/core/db/repositories/board-comments.d.ts.map +1 -1
  143. package/dist/core/db/repositories/board-objects.d.ts.map +1 -1
  144. package/dist/core/db/repositories/boards.d.ts +54 -3
  145. package/dist/core/db/repositories/boards.d.ts.map +1 -1
  146. package/dist/core/db/repositories/branch-access.d.ts +32 -0
  147. package/dist/core/db/repositories/branch-access.d.ts.map +1 -1
  148. package/dist/core/db/repositories/branches.d.ts +52 -2
  149. package/dist/core/db/repositories/branches.d.ts.map +1 -1
  150. package/dist/core/db/repositories/cards.d.ts +15 -1
  151. package/dist/core/db/repositories/cards.d.ts.map +1 -1
  152. package/dist/core/db/repositories/gateway-channels.d.ts +9 -0
  153. package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
  154. package/dist/core/db/repositories/gateway-outbound-messages.d.ts +19 -0
  155. package/dist/core/db/repositories/gateway-outbound-messages.d.ts.map +1 -0
  156. package/dist/core/db/repositories/index.d.ts +2 -0
  157. package/dist/core/db/repositories/index.d.ts.map +1 -1
  158. package/dist/core/db/repositories/messages.d.ts +9 -2
  159. package/dist/core/db/repositories/messages.d.ts.map +1 -1
  160. package/dist/core/db/repositories/repos.d.ts.map +1 -1
  161. package/dist/core/db/repositories/schedules.d.ts +12 -1
  162. package/dist/core/db/repositories/schedules.d.ts.map +1 -1
  163. package/dist/core/db/repositories/sessions.d.ts +56 -5
  164. package/dist/core/db/repositories/sessions.d.ts.map +1 -1
  165. package/dist/core/db/repositories/tasks.d.ts +7 -2
  166. package/dist/core/db/repositories/tasks.d.ts.map +1 -1
  167. package/dist/core/db/repositories/user-api-keys.d.ts +10 -1
  168. package/dist/core/db/repositories/user-api-keys.d.ts.map +1 -1
  169. package/dist/core/db/repositories/users.d.ts +8 -8
  170. package/dist/core/db/repositories/users.d.ts.map +1 -1
  171. package/dist/core/db/schema.d.ts +1460 -38
  172. package/dist/core/db/schema.d.ts.map +1 -1
  173. package/dist/core/db/schema.postgres.d.ts +1082 -37
  174. package/dist/core/db/schema.postgres.d.ts.map +1 -1
  175. package/dist/core/db/schema.sqlite.d.ts +397 -1
  176. package/dist/core/db/schema.sqlite.d.ts.map +1 -1
  177. package/dist/core/db/tenant-context.d.ts +26 -0
  178. package/dist/core/db/tenant-context.d.ts.map +1 -0
  179. package/dist/core/db/tenant-scope.d.ts +31 -0
  180. package/dist/core/db/tenant-scope.d.ts.map +1 -0
  181. package/dist/core/db/user-utils.d.ts +2 -2
  182. package/dist/core/db/user-utils.d.ts.map +1 -1
  183. package/dist/core/drizzle/postgres/0052_gateway_outbound_messages.sql +45 -0
  184. package/dist/core/drizzle/postgres/0053_user_token_invalidation.sql +1 -0
  185. package/dist/core/drizzle/postgres/0054_app_level_multitenancy.sql +219 -0
  186. package/dist/core/drizzle/postgres/0055_app_level_multitenancy_rls.sql +411 -0
  187. package/dist/core/drizzle/postgres/0056_composite_indexes.sql +15 -0
  188. package/dist/core/drizzle/postgres/0057_message_timestamp_indexes.sql +3 -0
  189. package/dist/core/drizzle/postgres/meta/_journal.json +42 -0
  190. package/dist/core/drizzle/sqlite/0061_gateway_outbound_messages.sql +38 -0
  191. package/dist/core/drizzle/sqlite/0062_user_token_invalidation.sql +1 -0
  192. package/dist/core/drizzle/sqlite/0063_composite_indexes.sql +10 -0
  193. package/dist/core/drizzle/sqlite/0064_message_timestamp_indexes.sql +2 -0
  194. package/dist/core/drizzle/sqlite/meta/_journal.json +28 -0
  195. package/dist/core/environment/render-snapshot.cjs +7 -6
  196. package/dist/core/environment/render-snapshot.d.ts +2 -0
  197. package/dist/core/environment/render-snapshot.d.ts.map +1 -1
  198. package/dist/core/environment/render-snapshot.js +7 -6
  199. package/dist/core/environment/variable-resolver.cjs +3 -1
  200. package/dist/core/environment/variable-resolver.js +3 -1
  201. package/dist/core/environment/webhook.cjs +1 -4
  202. package/dist/core/environment/webhook.js +1 -4
  203. package/dist/core/gateway/connector.d.ts +10 -1
  204. package/dist/core/gateway/connector.d.ts.map +1 -1
  205. package/dist/core/gateway/connectors/slack-manifest.cjs +108 -0
  206. package/dist/core/gateway/connectors/slack-manifest.d.ts +85 -0
  207. package/dist/core/gateway/connectors/slack-manifest.d.ts.map +1 -0
  208. package/dist/core/gateway/connectors/slack-manifest.js +81 -0
  209. package/dist/core/gateway/connectors/slack.d.ts +101 -4
  210. package/dist/core/gateway/connectors/slack.d.ts.map +1 -1
  211. package/dist/core/gateway/index.cjs +495 -29
  212. package/dist/core/gateway/index.d.ts +4 -1
  213. package/dist/core/gateway/index.d.ts.map +1 -1
  214. package/dist/core/gateway/index.js +490 -28
  215. package/dist/core/gateway/system-message.d.ts.map +1 -1
  216. package/dist/core/git/exec.cjs +24 -0
  217. package/dist/core/git/exec.d.ts +6 -4
  218. package/dist/core/git/exec.d.ts.map +1 -1
  219. package/dist/core/git/exec.js +2 -0
  220. package/dist/core/git/index.cjs +3 -1363
  221. package/dist/core/git/index.d.ts +4 -614
  222. package/dist/core/git/index.d.ts.map +1 -1
  223. package/dist/core/git/index.js +1 -1304
  224. package/dist/core/git/pure.cjs +24 -0
  225. package/dist/core/git/pure.d.ts +2 -27
  226. package/dist/core/git/pure.d.ts.map +1 -1
  227. package/dist/core/git/pure.js +2 -0
  228. package/dist/core/index.cjs +11563 -10832
  229. package/dist/core/index.d.ts +2 -0
  230. package/dist/core/index.d.ts.map +1 -1
  231. package/dist/core/index.js +12203 -10962
  232. package/dist/core/lib/feathers-validation.cjs +9 -1
  233. package/dist/core/lib/feathers-validation.d.ts +2 -0
  234. package/dist/core/lib/feathers-validation.d.ts.map +1 -1
  235. package/dist/core/lib/feathers-validation.js +9 -1
  236. package/dist/core/local-actions/git-remotes.d.ts +7 -0
  237. package/dist/core/local-actions/git-remotes.d.ts.map +1 -0
  238. package/dist/core/local-actions/index.cjs +8008 -0
  239. package/dist/core/local-actions/index.d.ts +6 -0
  240. package/dist/core/local-actions/index.d.ts.map +1 -0
  241. package/dist/core/local-actions/index.js +8010 -0
  242. package/dist/core/local-actions/symlinks.d.ts +20 -0
  243. package/dist/core/local-actions/symlinks.d.ts.map +1 -0
  244. package/dist/core/local-actions/types.d.ts +14 -0
  245. package/dist/core/local-actions/types.d.ts.map +1 -0
  246. package/dist/core/local-actions/unix-groups.d.ts +16 -0
  247. package/dist/core/local-actions/unix-groups.d.ts.map +1 -0
  248. package/dist/core/local-actions/unix-users.d.ts +12 -0
  249. package/dist/core/local-actions/unix-users.d.ts.map +1 -0
  250. package/dist/core/mcp/index.cjs +373 -28
  251. package/dist/core/mcp/index.d.ts +1 -1
  252. package/dist/core/mcp/index.d.ts.map +1 -1
  253. package/dist/core/mcp/index.js +369 -27
  254. package/dist/core/mcp/template-patterns.d.ts +15 -0
  255. package/dist/core/mcp/template-patterns.d.ts.map +1 -0
  256. package/dist/core/mcp/template-resolver.d.ts +13 -0
  257. package/dist/core/mcp/template-resolver.d.ts.map +1 -1
  258. package/dist/core/models/browser.cjs +154 -25
  259. package/dist/core/models/browser.js +150 -25
  260. package/dist/core/models/claude.d.ts +2 -2
  261. package/dist/core/models/claude.d.ts.map +1 -1
  262. package/dist/core/models/codex.d.ts +205 -21
  263. package/dist/core/models/codex.d.ts.map +1 -1
  264. package/dist/core/models/index.cjs +154 -25
  265. package/dist/core/models/index.js +150 -25
  266. package/dist/core/package.json +24 -0
  267. package/dist/core/seed/demo-fixtures.d.ts +87 -0
  268. package/dist/core/seed/demo-fixtures.d.ts.map +1 -0
  269. package/dist/core/seed/dev-fixtures.d.ts.map +1 -1
  270. package/dist/core/seed/index.cjs +8569 -5519
  271. package/dist/core/seed/index.d.ts +1 -0
  272. package/dist/core/seed/index.d.ts.map +1 -1
  273. package/dist/core/seed/index.js +8580 -5535
  274. package/dist/core/sessions/index.cjs +110 -24
  275. package/dist/core/sessions/index.js +110 -24
  276. package/dist/core/telemetry/index.cjs +361 -0
  277. package/dist/core/telemetry/index.d.ts +5 -0
  278. package/dist/core/telemetry/index.d.ts.map +1 -0
  279. package/dist/core/telemetry/index.js +315 -0
  280. package/dist/core/telemetry/logger.d.ts +44 -0
  281. package/dist/core/telemetry/logger.d.ts.map +1 -0
  282. package/dist/core/telemetry/model-normalization.d.ts +3 -0
  283. package/dist/core/telemetry/model-normalization.d.ts.map +1 -0
  284. package/dist/core/telemetry/types.d.ts +47 -0
  285. package/dist/core/telemetry/types.d.ts.map +1 -0
  286. package/dist/core/telemetry/version.d.ts +9 -0
  287. package/dist/core/telemetry/version.d.ts.map +1 -0
  288. package/dist/core/templates/agor-system-prompt.md +1 -0
  289. package/dist/core/templates/handlebars-helpers.cjs +3 -1
  290. package/dist/core/templates/handlebars-helpers.d.ts +5 -0
  291. package/dist/core/templates/handlebars-helpers.d.ts.map +1 -1
  292. package/dist/core/templates/handlebars-helpers.js +3 -1
  293. package/dist/core/tools/mcp/auth-secrets.cjs +3460 -3
  294. package/dist/core/tools/mcp/auth-secrets.d.ts.map +1 -1
  295. package/dist/core/tools/mcp/auth-secrets.js +3477 -3
  296. package/dist/core/tools/mcp/http-headers.cjs +17 -1
  297. package/dist/core/tools/mcp/http-headers.d.ts.map +1 -1
  298. package/dist/core/tools/mcp/http-headers.js +15 -1
  299. package/dist/core/tools/mcp/oauth-refresh.cjs +568 -114
  300. package/dist/core/tools/mcp/oauth-refresh.js +566 -115
  301. package/dist/core/types/board.d.ts +14 -0
  302. package/dist/core/types/board.d.ts.map +1 -1
  303. package/dist/core/types/branch.d.ts +13 -0
  304. package/dist/core/types/branch.d.ts.map +1 -1
  305. package/dist/core/types/config-services.d.ts.map +1 -1
  306. package/dist/core/types/feathers.d.ts +6 -0
  307. package/dist/core/types/feathers.d.ts.map +1 -1
  308. package/dist/core/types/gateway.d.ts +90 -1
  309. package/dist/core/types/gateway.d.ts.map +1 -1
  310. package/dist/core/types/index.cjs +42 -0
  311. package/dist/core/types/index.d.ts +1 -0
  312. package/dist/core/types/index.d.ts.map +1 -1
  313. package/dist/core/types/index.js +38 -0
  314. package/dist/core/types/schedule.d.ts +4 -3
  315. package/dist/core/types/schedule.d.ts.map +1 -1
  316. package/dist/core/types/session.d.ts +7 -1
  317. package/dist/core/types/session.d.ts.map +1 -1
  318. package/dist/core/types/tenant.d.ts +15 -0
  319. package/dist/core/types/tenant.d.ts.map +1 -0
  320. package/dist/core/types/user.d.ts +61 -0
  321. package/dist/core/types/user.d.ts.map +1 -1
  322. package/dist/core/unix/index.cjs +1123 -674
  323. package/dist/core/unix/index.js +1071 -624
  324. package/dist/core/utils/emoji-shortcodes.d.ts +13 -0
  325. package/dist/core/utils/emoji-shortcodes.d.ts.map +1 -0
  326. package/dist/core/yaml/index.cjs +8 -8
  327. package/dist/core/yaml/index.d.ts +1 -1
  328. package/dist/core/yaml/index.d.ts.map +1 -1
  329. package/dist/core/yaml/index.js +7 -7
  330. package/dist/daemon/adapters/drizzle.d.ts +26 -4
  331. package/dist/daemon/adapters/drizzle.d.ts.map +1 -1
  332. package/dist/daemon/adapters/drizzle.js +68 -7
  333. package/dist/daemon/auth/api-key-strategy.js +1 -1
  334. package/dist/daemon/auth/executor-runtime-scope.d.ts.map +1 -1
  335. package/dist/daemon/auth/executor-runtime-scope.js +34 -6
  336. package/dist/daemon/auth/executor-session-token.d.ts +15 -0
  337. package/dist/daemon/auth/executor-session-token.d.ts.map +1 -0
  338. package/dist/daemon/auth/executor-session-token.js +17 -0
  339. package/dist/daemon/auth/issue-browser-tokens-hook.d.ts +24 -0
  340. package/dist/daemon/auth/issue-browser-tokens-hook.d.ts.map +1 -0
  341. package/dist/daemon/auth/issue-browser-tokens-hook.js +95 -0
  342. package/dist/daemon/auth/launch-auth.d.ts +5 -4
  343. package/dist/daemon/auth/launch-auth.d.ts.map +1 -1
  344. package/dist/daemon/auth/launch-auth.js +123 -39
  345. package/dist/daemon/auth/refresh-token-service.d.ts +22 -0
  346. package/dist/daemon/auth/refresh-token-service.d.ts.map +1 -0
  347. package/dist/daemon/auth/refresh-token-service.js +133 -0
  348. package/dist/daemon/auth/runtime-tokens.d.ts +3 -1
  349. package/dist/daemon/auth/runtime-tokens.d.ts.map +1 -1
  350. package/dist/daemon/auth/runtime-tokens.js +17 -4
  351. package/dist/daemon/auth/service-jwt-strategy.d.ts +2 -1
  352. package/dist/daemon/auth/service-jwt-strategy.d.ts.map +1 -1
  353. package/dist/daemon/auth/service-jwt-strategy.js +141 -3
  354. package/dist/daemon/auth/token-invalidation.d.ts +11 -0
  355. package/dist/daemon/auth/token-invalidation.d.ts.map +1 -0
  356. package/dist/daemon/auth/token-invalidation.js +38 -0
  357. package/dist/daemon/auth/user-redaction.d.ts +12 -0
  358. package/dist/daemon/auth/user-redaction.d.ts.map +1 -0
  359. package/dist/daemon/auth/user-redaction.js +13 -0
  360. package/dist/daemon/declarations.d.ts +5 -4
  361. package/dist/daemon/declarations.d.ts.map +1 -1
  362. package/dist/daemon/hooks/gateway-route.d.ts.map +1 -1
  363. package/dist/daemon/hooks/gateway-route.js +23 -13
  364. package/dist/daemon/index.d.ts.map +1 -1
  365. package/dist/daemon/index.js +8271 -2956
  366. package/dist/daemon/knowledge/pgvector.d.ts +3 -3
  367. package/dist/daemon/knowledge/pgvector.d.ts.map +1 -1
  368. package/dist/daemon/knowledge/pgvector.js +24 -0
  369. package/dist/daemon/knowledge/units.d.ts +2 -2
  370. package/dist/daemon/knowledge/units.d.ts.map +1 -1
  371. package/dist/daemon/main.js +8271 -2956
  372. package/dist/daemon/mcp/server.d.ts +3 -3
  373. package/dist/daemon/mcp/server.d.ts.map +1 -1
  374. package/dist/daemon/mcp/server.js +1740 -81
  375. package/dist/daemon/mcp/tokens.d.ts +2 -2
  376. package/dist/daemon/mcp/tokens.d.ts.map +1 -1
  377. package/dist/daemon/mcp/tokens.js +5 -1
  378. package/dist/daemon/mcp/tool-registry.d.ts.map +1 -1
  379. package/dist/daemon/mcp/tool-registry.js +1 -0
  380. package/dist/daemon/mcp/tools/analytics.d.ts.map +1 -1
  381. package/dist/daemon/mcp/tools/analytics.js +598 -24
  382. package/dist/daemon/mcp/tools/artifacts.js +560 -20
  383. package/dist/daemon/mcp/tools/boards.d.ts.map +1 -1
  384. package/dist/daemon/mcp/tools/boards.js +567 -21
  385. package/dist/daemon/mcp/tools/branches.d.ts.map +1 -1
  386. package/dist/daemon/mcp/tools/branches.js +624 -50
  387. package/dist/daemon/mcp/tools/card-types.js +558 -18
  388. package/dist/daemon/mcp/tools/cards.js +558 -18
  389. package/dist/daemon/mcp/tools/environment.js +566 -18
  390. package/dist/daemon/mcp/tools/gateway-channels.d.ts +4 -0
  391. package/dist/daemon/mcp/tools/gateway-channels.d.ts.map +1 -0
  392. package/dist/daemon/mcp/tools/gateway-channels.js +16187 -0
  393. package/dist/daemon/mcp/tools/knowledge.js +558 -18
  394. package/dist/daemon/mcp/tools/mcp-servers.d.ts.map +1 -1
  395. package/dist/daemon/mcp/tools/mcp-servers.js +893 -18
  396. package/dist/daemon/mcp/tools/messages.d.ts.map +1 -1
  397. package/dist/daemon/mcp/tools/messages.js +618 -32
  398. package/dist/daemon/mcp/tools/proxies.js +568 -20
  399. package/dist/daemon/mcp/tools/repos.js +558 -18
  400. package/dist/daemon/mcp/tools/schedules.d.ts.map +1 -1
  401. package/dist/daemon/mcp/tools/schedules.js +561 -19
  402. package/dist/daemon/mcp/tools/search.js +558 -18
  403. package/dist/daemon/mcp/tools/sessions.d.ts.map +1 -1
  404. package/dist/daemon/mcp/tools/sessions.js +571 -24
  405. package/dist/daemon/mcp/tools/tasks.js +558 -18
  406. package/dist/daemon/mcp/tools/users.d.ts.map +1 -1
  407. package/dist/daemon/mcp/tools/users.js +577 -23
  408. package/dist/daemon/mcp/tools/widgets.d.ts.map +1 -1
  409. package/dist/daemon/mcp/tools/widgets.js +759 -83
  410. package/dist/daemon/oauth-auth-helpers.d.ts +35 -0
  411. package/dist/daemon/oauth-auth-helpers.d.ts.map +1 -0
  412. package/dist/daemon/oauth-auth-helpers.js +14 -0
  413. package/dist/daemon/register-hooks.d.ts +4 -2
  414. package/dist/daemon/register-hooks.d.ts.map +1 -1
  415. package/dist/daemon/register-hooks.js +1158 -595
  416. package/dist/daemon/register-routes.d.ts +3 -2
  417. package/dist/daemon/register-routes.d.ts.map +1 -1
  418. package/dist/daemon/register-routes.js +3161 -812
  419. package/dist/daemon/register-services.d.ts +2 -2
  420. package/dist/daemon/register-services.d.ts.map +1 -1
  421. package/dist/daemon/register-services.js +2782 -739
  422. package/dist/daemon/services/artifacts.d.ts +34 -6
  423. package/dist/daemon/services/artifacts.d.ts.map +1 -1
  424. package/dist/daemon/services/artifacts.js +109 -8
  425. package/dist/daemon/services/assistant-knowledge.d.ts +2 -2
  426. package/dist/daemon/services/assistant-knowledge.d.ts.map +1 -1
  427. package/dist/daemon/services/board-comments.d.ts +8 -5
  428. package/dist/daemon/services/board-comments.d.ts.map +1 -1
  429. package/dist/daemon/services/board-comments.js +78 -13
  430. package/dist/daemon/services/board-objects.d.ts +8 -5
  431. package/dist/daemon/services/board-objects.d.ts.map +1 -1
  432. package/dist/daemon/services/board-objects.js +14 -4
  433. package/dist/daemon/services/boards.d.ts +39 -5
  434. package/dist/daemon/services/boards.d.ts.map +1 -1
  435. package/dist/daemon/services/boards.js +123 -8
  436. package/dist/daemon/services/branch-owners.d.ts +3 -1
  437. package/dist/daemon/services/branch-owners.d.ts.map +1 -1
  438. package/dist/daemon/services/branch-owners.js +31 -4
  439. package/dist/daemon/services/branches.d.ts +31 -8
  440. package/dist/daemon/services/branches.d.ts.map +1 -1
  441. package/dist/daemon/services/branches.js +272 -36
  442. package/dist/daemon/services/card-types.d.ts +3 -3
  443. package/dist/daemon/services/card-types.d.ts.map +1 -1
  444. package/dist/daemon/services/card-types.js +68 -7
  445. package/dist/daemon/services/cards.d.ts +19 -4
  446. package/dist/daemon/services/cards.d.ts.map +1 -1
  447. package/dist/daemon/services/cards.js +92 -8
  448. package/dist/daemon/services/check-auth.d.ts +2 -2
  449. package/dist/daemon/services/check-auth.d.ts.map +1 -1
  450. package/dist/daemon/services/claude-cli-integration.d.ts +4 -1
  451. package/dist/daemon/services/claude-cli-integration.d.ts.map +1 -1
  452. package/dist/daemon/services/claude-cli-integration.js +117 -65
  453. package/dist/daemon/services/claude-models.d.ts +3 -3
  454. package/dist/daemon/services/claude-models.d.ts.map +1 -1
  455. package/dist/daemon/services/claude-models.js +387 -273
  456. package/dist/daemon/services/config.d.ts +12 -4
  457. package/dist/daemon/services/config.d.ts.map +1 -1
  458. package/dist/daemon/services/config.js +39 -3
  459. package/dist/daemon/services/copilot-models.d.ts +3 -3
  460. package/dist/daemon/services/copilot-models.d.ts.map +1 -1
  461. package/dist/daemon/services/cursor-models.d.ts +3 -3
  462. package/dist/daemon/services/cursor-models.d.ts.map +1 -1
  463. package/dist/daemon/services/files.d.ts +3 -3
  464. package/dist/daemon/services/files.d.ts.map +1 -1
  465. package/dist/daemon/services/files.js +24 -5
  466. package/dist/daemon/services/gateway-channels-test.d.ts +24 -0
  467. package/dist/daemon/services/gateway-channels-test.d.ts.map +1 -0
  468. package/dist/daemon/services/gateway-channels-test.js +66 -0
  469. package/dist/daemon/services/gateway-channels.d.ts +3 -3
  470. package/dist/daemon/services/gateway-channels.d.ts.map +1 -1
  471. package/dist/daemon/services/gateway-channels.js +68 -7
  472. package/dist/daemon/services/gateway.d.ts +63 -3
  473. package/dist/daemon/services/gateway.d.ts.map +1 -1
  474. package/dist/daemon/services/gateway.js +640 -60
  475. package/dist/daemon/services/github-app-setup.d.ts +3 -3
  476. package/dist/daemon/services/github-app-setup.d.ts.map +1 -1
  477. package/dist/daemon/services/groups.d.ts +5 -5
  478. package/dist/daemon/services/groups.d.ts.map +1 -1
  479. package/dist/daemon/services/health-monitor.d.ts +34 -2
  480. package/dist/daemon/services/health-monitor.d.ts.map +1 -1
  481. package/dist/daemon/services/health-monitor.js +155 -30
  482. package/dist/daemon/services/knowledge-document-edits.d.ts +3 -3
  483. package/dist/daemon/services/knowledge-document-edits.d.ts.map +1 -1
  484. package/dist/daemon/services/knowledge-documents.d.ts +3 -3
  485. package/dist/daemon/services/knowledge-documents.d.ts.map +1 -1
  486. package/dist/daemon/services/knowledge-documents.js +92 -7
  487. package/dist/daemon/services/knowledge-embedding-indexer.d.ts +7 -2
  488. package/dist/daemon/services/knowledge-embedding-indexer.d.ts.map +1 -1
  489. package/dist/daemon/services/knowledge-embedding-indexer.js +37 -3
  490. package/dist/daemon/services/knowledge-graph.d.ts +3 -3
  491. package/dist/daemon/services/knowledge-graph.d.ts.map +1 -1
  492. package/dist/daemon/services/knowledge-indexing.d.ts +3 -3
  493. package/dist/daemon/services/knowledge-indexing.d.ts.map +1 -1
  494. package/dist/daemon/services/knowledge-namespaces.d.ts +3 -3
  495. package/dist/daemon/services/knowledge-namespaces.d.ts.map +1 -1
  496. package/dist/daemon/services/knowledge-namespaces.js +72 -8
  497. package/dist/daemon/services/knowledge-reindex.d.ts +3 -3
  498. package/dist/daemon/services/knowledge-reindex.d.ts.map +1 -1
  499. package/dist/daemon/services/knowledge-reindex.js +28 -1
  500. package/dist/daemon/services/knowledge-search.d.ts +3 -3
  501. package/dist/daemon/services/knowledge-search.d.ts.map +1 -1
  502. package/dist/daemon/services/knowledge-settings.d.ts +3 -3
  503. package/dist/daemon/services/knowledge-settings.d.ts.map +1 -1
  504. package/dist/daemon/services/knowledge-settings.js +24 -0
  505. package/dist/daemon/services/knowledge-versions.d.ts +3 -3
  506. package/dist/daemon/services/knowledge-versions.d.ts.map +1 -1
  507. package/dist/daemon/services/knowledge-versions.js +68 -7
  508. package/dist/daemon/services/leaderboard.d.ts +14 -6
  509. package/dist/daemon/services/leaderboard.d.ts.map +1 -1
  510. package/dist/daemon/services/leaderboard.js +74 -15
  511. package/dist/daemon/services/local-actions.d.ts +13 -0
  512. package/dist/daemon/services/local-actions.d.ts.map +1 -0
  513. package/dist/daemon/services/local-actions.js +120 -0
  514. package/dist/daemon/services/mcp-servers.d.ts +3 -3
  515. package/dist/daemon/services/mcp-servers.d.ts.map +1 -1
  516. package/dist/daemon/services/mcp-servers.js +68 -7
  517. package/dist/daemon/services/messages.d.ts +10 -6
  518. package/dist/daemon/services/messages.d.ts.map +1 -1
  519. package/dist/daemon/services/messages.js +87 -7
  520. package/dist/daemon/services/repos.d.ts +6 -6
  521. package/dist/daemon/services/repos.d.ts.map +1 -1
  522. package/dist/daemon/services/repos.js +131 -32
  523. package/dist/daemon/services/scheduler.d.ts +23 -27
  524. package/dist/daemon/services/scheduler.d.ts.map +1 -1
  525. package/dist/daemon/services/scheduler.js +55 -28
  526. package/dist/daemon/services/schedules.d.ts +3 -3
  527. package/dist/daemon/services/schedules.d.ts.map +1 -1
  528. package/dist/daemon/services/schedules.js +68 -7
  529. package/dist/daemon/services/session-env-selections.d.ts +3 -3
  530. package/dist/daemon/services/session-env-selections.d.ts.map +1 -1
  531. package/dist/daemon/services/session-mcp-servers.d.ts +3 -3
  532. package/dist/daemon/services/session-mcp-servers.d.ts.map +1 -1
  533. package/dist/daemon/services/session-streams.d.ts +29 -0
  534. package/dist/daemon/services/session-streams.d.ts.map +1 -0
  535. package/dist/daemon/services/session-streams.js +84 -0
  536. package/dist/daemon/services/session-token-service.d.ts.map +1 -1
  537. package/dist/daemon/services/session-token-service.js +11 -4
  538. package/dist/daemon/services/sessions.d.ts +9 -5
  539. package/dist/daemon/services/sessions.d.ts.map +1 -1
  540. package/dist/daemon/services/sessions.js +143 -10
  541. package/dist/daemon/services/tasks.d.ts +11 -5
  542. package/dist/daemon/services/tasks.d.ts.map +1 -1
  543. package/dist/daemon/services/tasks.js +199 -39
  544. package/dist/daemon/services/terminals.d.ts +21 -3
  545. package/dist/daemon/services/terminals.d.ts.map +1 -1
  546. package/dist/daemon/services/terminals.js +81 -25
  547. package/dist/daemon/services/thread-session-map.d.ts +3 -3
  548. package/dist/daemon/services/thread-session-map.d.ts.map +1 -1
  549. package/dist/daemon/services/thread-session-map.js +68 -7
  550. package/dist/daemon/services/user-avatar-sync.d.ts +21 -0
  551. package/dist/daemon/services/user-avatar-sync.d.ts.map +1 -0
  552. package/dist/daemon/services/user-avatar-sync.js +267 -0
  553. package/dist/daemon/services/users.d.ts +29 -9
  554. package/dist/daemon/services/users.d.ts.map +1 -1
  555. package/dist/daemon/services/users.js +383 -30
  556. package/dist/daemon/services/zone-trigger.d.ts.map +1 -1
  557. package/dist/daemon/services/zone-trigger.js +17 -4
  558. package/dist/daemon/setup/build-info.d.ts +1 -1
  559. package/dist/daemon/setup/build-info.d.ts.map +1 -1
  560. package/dist/daemon/setup/build-info.js +5 -1
  561. package/dist/daemon/setup/database.d.ts +8 -3
  562. package/dist/daemon/setup/database.d.ts.map +1 -1
  563. package/dist/daemon/setup/database.js +26 -6
  564. package/dist/daemon/setup/first-run-admin.d.ts +2 -2
  565. package/dist/daemon/setup/first-run-admin.d.ts.map +1 -1
  566. package/dist/daemon/setup/index.js +137 -25
  567. package/dist/daemon/setup/socketio.d.ts +10 -1
  568. package/dist/daemon/setup/socketio.d.ts.map +1 -1
  569. package/dist/daemon/setup/socketio.js +108 -18
  570. package/dist/daemon/startup.d.ts +13 -2
  571. package/dist/daemon/startup.d.ts.map +1 -1
  572. package/dist/daemon/startup.js +377 -94
  573. package/dist/daemon/utils/append-system-message.d.ts +2 -2
  574. package/dist/daemon/utils/append-system-message.d.ts.map +1 -1
  575. package/dist/daemon/utils/apply-session-config-defaults.d.ts.map +1 -1
  576. package/dist/daemon/utils/apply-session-config-defaults.js +12 -1
  577. package/dist/daemon/utils/authorization.d.ts +3 -1
  578. package/dist/daemon/utils/authorization.d.ts.map +1 -1
  579. package/dist/daemon/utils/authorization.js +36 -7
  580. package/dist/daemon/utils/branch-authorization.d.ts +30 -0
  581. package/dist/daemon/utils/branch-authorization.d.ts.map +1 -1
  582. package/dist/daemon/utils/branch-authorization.js +63 -5
  583. package/dist/daemon/utils/branch-inspect.d.ts +1 -0
  584. package/dist/daemon/utils/branch-inspect.d.ts.map +1 -1
  585. package/dist/daemon/utils/branch-inspect.js +11 -3
  586. package/dist/daemon/utils/emit-service-event.d.ts +56 -0
  587. package/dist/daemon/utils/emit-service-event.d.ts.map +1 -0
  588. package/dist/daemon/utils/emit-service-event.js +23 -0
  589. package/dist/daemon/utils/executor-read-impersonation.d.ts +2 -2
  590. package/dist/daemon/utils/executor-read-impersonation.d.ts.map +1 -1
  591. package/dist/daemon/utils/git-impersonation.d.ts +10 -10
  592. package/dist/daemon/utils/git-impersonation.d.ts.map +1 -1
  593. package/dist/daemon/utils/git-remote-credential-scan.d.ts +3 -3
  594. package/dist/daemon/utils/git-remote-credential-scan.d.ts.map +1 -1
  595. package/dist/daemon/utils/git-remote-credential-scan.js +6 -2
  596. package/dist/daemon/utils/mcp-header-secrets.d.ts +3 -5
  597. package/dist/daemon/utils/mcp-header-secrets.d.ts.map +1 -1
  598. package/dist/daemon/utils/mcp-header-secrets.js +31 -2
  599. package/dist/daemon/utils/mcp-token-authorization.d.ts +18 -13
  600. package/dist/daemon/utils/mcp-token-authorization.d.ts.map +1 -1
  601. package/dist/daemon/utils/mcp-token-authorization.js +11 -5
  602. package/dist/daemon/utils/open-source-telemetry-config.d.ts +6 -0
  603. package/dist/daemon/utils/open-source-telemetry-config.d.ts.map +1 -0
  604. package/dist/daemon/utils/open-source-telemetry-config.js +21 -0
  605. package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts +7 -0
  606. package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts.map +1 -0
  607. package/dist/daemon/utils/open-source-telemetry-heartbeat.js +15 -0
  608. package/dist/daemon/utils/open-source-telemetry-usage.d.ts +9 -0
  609. package/dist/daemon/utils/open-source-telemetry-usage.d.ts.map +1 -0
  610. package/dist/daemon/utils/open-source-telemetry-usage.js +121 -0
  611. package/dist/daemon/utils/realign-repo-origin.d.ts +3 -3
  612. package/dist/daemon/utils/realign-repo-origin.d.ts.map +1 -1
  613. package/dist/daemon/utils/realign-repo-origin.js +47 -16
  614. package/dist/daemon/utils/realtime-access-cache.d.ts +9 -0
  615. package/dist/daemon/utils/realtime-access-cache.d.ts.map +1 -1
  616. package/dist/daemon/utils/realtime-access-cache.js +24 -0
  617. package/dist/daemon/utils/realtime-publish.d.ts +26 -0
  618. package/dist/daemon/utils/realtime-publish.d.ts.map +1 -1
  619. package/dist/daemon/utils/realtime-publish.js +171 -12
  620. package/dist/daemon/utils/session-queue-tenant-scope.d.ts +24 -0
  621. package/dist/daemon/utils/session-queue-tenant-scope.d.ts.map +1 -0
  622. package/dist/daemon/utils/session-queue-tenant-scope.js +133 -0
  623. package/dist/daemon/utils/session-state-hooks.d.ts +3 -3
  624. package/dist/daemon/utils/session-state-hooks.d.ts.map +1 -1
  625. package/dist/daemon/utils/session-turn-lock.d.ts +8 -1
  626. package/dist/daemon/utils/session-turn-lock.d.ts.map +1 -1
  627. package/dist/daemon/utils/session-turn-lock.js +25 -2
  628. package/dist/daemon/utils/spawn-executor.d.ts +23 -1
  629. package/dist/daemon/utils/spawn-executor.d.ts.map +1 -1
  630. package/dist/daemon/utils/spawn-executor.js +34 -4
  631. package/dist/daemon/utils/tenant-db-scope.d.ts +20 -0
  632. package/dist/daemon/utils/tenant-db-scope.d.ts.map +1 -0
  633. package/dist/daemon/utils/tenant-db-scope.js +114 -0
  634. package/dist/daemon/utils/unix-group-init.d.ts +3 -3
  635. package/dist/daemon/utils/unix-group-init.d.ts.map +1 -1
  636. package/dist/daemon/utils/upload.d.ts +6 -9
  637. package/dist/daemon/utils/upload.d.ts.map +1 -1
  638. package/dist/daemon/utils/upload.js +30 -37
  639. package/dist/daemon/widgets/env-vars/index.d.ts +26 -1
  640. package/dist/daemon/widgets/env-vars/index.d.ts.map +1 -1
  641. package/dist/daemon/widgets/env-vars/index.js +145 -21
  642. package/dist/daemon/widgets/gateway-token/index.d.ts +114 -0
  643. package/dist/daemon/widgets/gateway-token/index.d.ts.map +1 -0
  644. package/dist/daemon/widgets/gateway-token/index.js +14711 -0
  645. package/dist/daemon/widgets/index.d.ts.map +1 -1
  646. package/dist/daemon/widgets/index.js +327 -37
  647. package/dist/daemon/widgets/registry.d.ts +7 -0
  648. package/dist/daemon/widgets/registry.d.ts.map +1 -1
  649. package/dist/daemon/widgets/submissions.js +12 -9
  650. package/dist/executor/commands/environment.d.ts.map +1 -1
  651. package/dist/executor/commands/environment.js +9 -5
  652. package/dist/executor/commands/git.d.ts.map +1 -1
  653. package/dist/executor/commands/git.js +3 -1
  654. package/dist/executor/db/feathers-repositories.d.ts +19 -1
  655. package/dist/executor/db/feathers-repositories.d.ts.map +1 -1
  656. package/dist/executor/db/feathers-repositories.js +31 -1
  657. package/dist/executor/git/index.d.ts +8 -0
  658. package/dist/executor/git/index.d.ts.map +1 -0
  659. package/dist/executor/git/index.js +7 -0
  660. package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
  661. package/dist/executor/handlers/sdk/base-executor.js +4 -1
  662. package/dist/executor/handlers/sdk/claude.d.ts.map +1 -1
  663. package/dist/executor/handlers/sdk/claude.js +1 -1
  664. package/dist/executor/handlers/sdk/codex.d.ts.map +1 -1
  665. package/dist/executor/handlers/sdk/codex.js +1 -1
  666. package/dist/executor/handlers/sdk/copilot.d.ts.map +1 -1
  667. package/dist/executor/handlers/sdk/copilot.js +1 -1
  668. package/dist/executor/handlers/sdk/cursor.d.ts.map +1 -1
  669. package/dist/executor/handlers/sdk/cursor.js +1 -0
  670. package/dist/executor/handlers/sdk/gemini.d.ts.map +1 -1
  671. package/dist/executor/handlers/sdk/gemini.js +1 -1
  672. package/dist/executor/handlers/sdk/git-safe-directory.d.ts.map +1 -1
  673. package/dist/executor/handlers/sdk/git-safe-directory.js +1 -1
  674. package/dist/executor/handlers/sdk/opencode.d.ts.map +1 -1
  675. package/dist/executor/handlers/sdk/opencode.js +1 -1
  676. package/dist/executor/payload-types.d.ts +5 -5
  677. package/dist/executor/sdk-handlers/base/diff-enrichment.js +1 -1
  678. package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts +8 -1
  679. package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +1 -1
  680. package/dist/executor/sdk-handlers/base/mcp-scoping.js +58 -6
  681. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts +2 -2
  682. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +1 -1
  683. package/dist/executor/sdk-handlers/claude/claude-tool.js +2 -2
  684. package/dist/executor/sdk-handlers/claude/prompt-service.d.ts +13 -3
  685. package/dist/executor/sdk-handlers/claude/prompt-service.d.ts.map +1 -1
  686. package/dist/executor/sdk-handlers/claude/prompt-service.js +16 -3
  687. package/dist/executor/sdk-handlers/claude/query-builder.d.ts +2 -1
  688. package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
  689. package/dist/executor/sdk-handlers/claude/query-builder.js +2 -1
  690. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +8 -12
  691. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
  692. package/dist/executor/sdk-handlers/codex/codex-tool.js +14 -17
  693. package/dist/executor/sdk-handlers/codex/normalizer.d.ts.map +1 -1
  694. package/dist/executor/sdk-handlers/codex/normalizer.js +11 -1
  695. package/dist/executor/sdk-handlers/codex/pricing/litellm-openai-model-prices.json +3663 -0
  696. package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts +31 -0
  697. package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts.map +1 -0
  698. package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.js +46 -0
  699. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +3 -2
  700. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
  701. package/dist/executor/sdk-handlers/codex/prompt-service.js +131 -12
  702. package/dist/executor/sdk-handlers/codex/usage.d.ts +14 -23
  703. package/dist/executor/sdk-handlers/codex/usage.d.ts.map +1 -1
  704. package/dist/executor/sdk-handlers/codex/usage.js +18 -33
  705. package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts +2 -2
  706. package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts.map +1 -1
  707. package/dist/executor/sdk-handlers/copilot/copilot-tool.js +2 -2
  708. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts +3 -2
  709. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -1
  710. package/dist/executor/sdk-handlers/copilot/prompt-service.js +4 -1
  711. package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts +2 -2
  712. package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts.map +1 -1
  713. package/dist/executor/sdk-handlers/gemini/gemini-tool.js +2 -2
  714. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +3 -2
  715. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
  716. package/dist/executor/sdk-handlers/gemini/prompt-service.js +4 -1
  717. package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts +3 -2
  718. package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts.map +1 -1
  719. package/dist/executor/sdk-handlers/opencode/opencode-tool.js +4 -1
  720. package/dist/executor/services/feathers-client.d.ts.map +1 -1
  721. package/dist/executor/services/feathers-client.js +124 -25
  722. package/dist/git/index.cjs +1101 -0
  723. package/dist/git/index.d.ts +533 -0
  724. package/dist/git/index.d.ts.map +1 -0
  725. package/dist/git/index.js +1022 -0
  726. package/dist/git/package.json +21 -0
  727. package/dist/git/pure.cjs +185 -0
  728. package/dist/git/pure.d.ts +39 -0
  729. package/dist/git/pure.d.ts.map +1 -0
  730. package/dist/git/pure.js +139 -0
  731. package/dist/ui/assets/AgorEmojiPickerInner-leeNywMc.js +1 -0
  732. package/dist/ui/assets/App-Dpl4Cc0U.js +4 -0
  733. package/dist/ui/assets/App-Dpl4Cc0U.js.gz +0 -0
  734. package/dist/ui/assets/AppNode-wN3UZlFK.js +1 -0
  735. package/dist/ui/assets/AppNode-wN3UZlFK.js.gz +0 -0
  736. package/dist/ui/assets/ArtifactConsentModal-DjzXcP_L.js +1 -0
  737. package/dist/ui/assets/ArtifactConsentModal-DjzXcP_L.js.gz +0 -0
  738. package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js +9 -0
  739. package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js.gz +0 -0
  740. package/dist/ui/assets/ArtifactNode-DISy2T-6.js +9 -0
  741. package/dist/ui/assets/ArtifactNode-DISy2T-6.js.gz +0 -0
  742. package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js +19 -0
  743. package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js.gz +0 -0
  744. package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js +34 -0
  745. package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js.gz +0 -0
  746. package/dist/ui/assets/CodeEditor.inner-HmSdTLW5.js +7 -0
  747. package/dist/ui/assets/CodeEditor.inner-HmSdTLW5.js.gz +0 -0
  748. package/dist/ui/assets/ConversationView-mWaA-B1f.js +1 -0
  749. package/dist/ui/assets/ConversationView-mWaA-B1f.js.gz +0 -0
  750. package/dist/ui/assets/EmbeddedTerminal-NNoyPA81.js +2 -0
  751. package/dist/ui/assets/EmbeddedTerminal-NNoyPA81.js.gz +0 -0
  752. package/dist/ui/assets/KnowledgePage-CkxVnRvz.js +24 -0
  753. package/dist/ui/assets/KnowledgePage-CkxVnRvz.js.gz +0 -0
  754. package/dist/ui/assets/{MarketingScreenshotPage-zv5RUCuV.js → MarketingScreenshotPage-B86Gs8jx.js} +2 -2
  755. package/dist/ui/assets/MarketingScreenshotPage-B86Gs8jx.js.gz +0 -0
  756. package/dist/ui/assets/MobileApp-BPs-SXvz.js +1 -0
  757. package/dist/ui/assets/MobileApp-BPs-SXvz.js.gz +0 -0
  758. package/dist/ui/assets/{SessionCanvas-mEmYGZhC.css → SessionCanvas-Bh7Yg5dZ.css} +1 -1
  759. package/dist/ui/assets/SessionCanvas-Bh7Yg5dZ.css.gz +0 -0
  760. package/dist/ui/assets/SessionCanvas-xVfDoEtz.js +13 -0
  761. package/dist/ui/assets/SessionCanvas-xVfDoEtz.js.gz +0 -0
  762. package/dist/ui/assets/{StreamdownDemoPage-wzWaqWwr.js → StreamdownDemoPage-CvWLzVsv.js} +2 -2
  763. package/dist/ui/assets/StreamdownDemoPage-CvWLzVsv.js.gz +0 -0
  764. package/dist/ui/assets/TerminalModal-ExOgsuOP.js +2 -0
  765. package/dist/ui/assets/TerminalModal-ExOgsuOP.js.gz +0 -0
  766. package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js +1 -0
  767. package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js.gz +0 -0
  768. package/dist/ui/assets/ThemedSyntaxHighlighter.inner-rpCN9S6K.js +1 -0
  769. package/dist/ui/assets/{antd-CfbbHJOz.js → antd-BCqimh1J.js} +5 -5
  770. package/dist/ui/assets/{antd-CfbbHJOz.js.gz → antd-BCqimh1J.js.gz} +0 -0
  771. package/dist/ui/assets/architecture-U656AL7Q-BxSQIjrE.js +1 -0
  772. package/dist/ui/assets/architectureDiagram-VXUJARFQ-pDpGHSqT.js +36 -0
  773. package/dist/ui/assets/architectureDiagram-VXUJARFQ-pDpGHSqT.js.gz +0 -0
  774. package/dist/ui/assets/{blockDiagram-VD42YOAC-BhZaEN19.js → blockDiagram-VD42YOAC-uP8JTJpK.js} +4 -4
  775. package/dist/ui/assets/blockDiagram-VD42YOAC-uP8JTJpK.js.gz +0 -0
  776. package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dk_UH-sY.js → c4Diagram-YG6GDRKO-qQe72Mm7.js} +2 -2
  777. package/dist/ui/assets/c4Diagram-YG6GDRKO-qQe72Mm7.js.gz +0 -0
  778. package/dist/ui/assets/channel-CoUBs6Zn.js +1 -0
  779. package/dist/ui/assets/{chunk-4BX2VUAB-XprbG2TG.js → chunk-4BX2VUAB-sz-YE8Nt.js} +1 -1
  780. package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js +3 -0
  781. package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js.gz +0 -0
  782. package/dist/ui/assets/chunk-55IACEB6-BS04dgKF.js +1 -0
  783. package/dist/ui/assets/{chunk-ABZYJK2D-BJcrryHK.js → chunk-ABZYJK2D-t3Gkphds.js} +3 -3
  784. package/dist/ui/assets/chunk-ABZYJK2D-t3Gkphds.js.gz +0 -0
  785. package/dist/ui/assets/{chunk-AGHRB4JF-DvxmfbM0.js → chunk-AGHRB4JF-D_QmWxbY.js} +1 -1
  786. package/dist/ui/assets/chunk-AGHRB4JF-D_QmWxbY.js.gz +0 -0
  787. package/dist/ui/assets/{chunk-ATLVNIR6-DbeJ0OrR.js → chunk-ATLVNIR6-Bmg7-Ufz.js} +1 -1
  788. package/dist/ui/assets/chunk-ATLVNIR6-Bmg7-Ufz.js.gz +0 -0
  789. package/dist/ui/assets/{chunk-B4BG7PRW-C53q2ggf.js → chunk-B4BG7PRW-dnSEE1u-.js} +3 -3
  790. package/dist/ui/assets/chunk-B4BG7PRW-dnSEE1u-.js.gz +0 -0
  791. package/dist/ui/assets/{chunk-CVBHYZKI-B3EBSlb3.js → chunk-CVBHYZKI-BStaYnF0.js} +1 -1
  792. package/dist/ui/assets/{chunk-DI55MBZ5-vIyNEQN-.js → chunk-DI55MBZ5-28dvx6o3.js} +1 -1
  793. package/dist/ui/assets/chunk-DI55MBZ5-28dvx6o3.js.gz +0 -0
  794. package/dist/ui/assets/chunk-EXTU4WIE-X-FURkEh.js +1 -0
  795. package/dist/ui/assets/{chunk-FMBD7UC4-rddmfK-Z.js → chunk-FMBD7UC4-C_63gC9S.js} +1 -1
  796. package/dist/ui/assets/{chunk-HN2XXSSU-Dttqcg3b.js → chunk-HN2XXSSU-UFD374KI.js} +1 -1
  797. package/dist/ui/assets/chunk-HN2XXSSU-UFD374KI.js.gz +0 -0
  798. package/dist/ui/assets/chunk-JA3XYJ7Z-B60hLNeR.js +11 -0
  799. package/dist/ui/assets/chunk-JA3XYJ7Z-B60hLNeR.js.gz +0 -0
  800. package/dist/ui/assets/{chunk-JZLCHNYA-EUmx2y4H.js → chunk-JZLCHNYA-ButC6pwN.js} +5 -5
  801. package/dist/ui/assets/chunk-JZLCHNYA-ButC6pwN.js.gz +0 -0
  802. package/dist/ui/assets/{chunk-MI3HLSF2-65n9Mkyc.js → chunk-MI3HLSF2-BivYzoSV.js} +1 -1
  803. package/dist/ui/assets/chunk-MI3HLSF2-BivYzoSV.js.gz +0 -0
  804. package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js +2 -0
  805. package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js.gz +0 -0
  806. package/dist/ui/assets/{chunk-QN33PNHL-DsRKK6NR.js → chunk-QN33PNHL-tXtHZpaG.js} +1 -1
  807. package/dist/ui/assets/{chunk-QXUST7PY-BCYnMiS3.js → chunk-QXUST7PY-DATib_Vv.js} +2 -2
  808. package/dist/ui/assets/chunk-QXUST7PY-DATib_Vv.js.gz +0 -0
  809. package/dist/ui/assets/chunk-QZHKN3VN-y6l249e5.js +1 -0
  810. package/dist/ui/assets/chunk-S3R3BYOJ-BEtfmflI.js +2 -0
  811. package/dist/ui/assets/chunk-S3R3BYOJ-BEtfmflI.js.gz +0 -0
  812. package/dist/ui/assets/{chunk-TZMSLE5B-BuQUQcTr.js → chunk-TZMSLE5B-BY1ZtogK.js} +1 -1
  813. package/dist/ui/assets/chunk-TZMSLE5B-BY1ZtogK.js.gz +0 -0
  814. package/dist/ui/assets/classDiagram-2ON5EDUG-BYvq-uPY.js +1 -0
  815. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BYvq-uPY.js +1 -0
  816. package/dist/ui/assets/constants-CYzQKfD1.js +1 -0
  817. package/dist/ui/assets/{cose-bilkent-S5V4N54A-CnPB3ARO.js → cose-bilkent-S5V4N54A-DPvYrqGG.js} +1 -1
  818. package/dist/ui/assets/cose-bilkent-S5V4N54A-DPvYrqGG.js.gz +0 -0
  819. package/dist/ui/assets/{dagre-6UL2VRFP-DhS-k_Se.js → dagre-6UL2VRFP-D800J6qb.js} +1 -1
  820. package/dist/ui/assets/dagre-6UL2VRFP-D800J6qb.js.gz +0 -0
  821. package/dist/ui/assets/{dagre-KgLoHEuy.js → dagre-TNc4wezg.js} +1 -1
  822. package/dist/ui/assets/dagre-TNc4wezg.js.gz +0 -0
  823. package/dist/ui/assets/diagram-PSM6KHXK-CGdP9F-X.js +24 -0
  824. package/dist/ui/assets/diagram-PSM6KHXK-CGdP9F-X.js.gz +0 -0
  825. package/dist/ui/assets/{diagram-QEK2KX5R-BPCitvbo.js → diagram-QEK2KX5R-BD5lOCe5.js} +1 -1
  826. package/dist/ui/assets/diagram-QEK2KX5R-BD5lOCe5.js.gz +0 -0
  827. package/dist/ui/assets/{diagram-S2PKOQOG-NW4uK6sx.js → diagram-S2PKOQOG-cp3l22vN.js} +1 -1
  828. package/dist/ui/assets/diagram-S2PKOQOG-cp3l22vN.js.gz +0 -0
  829. package/dist/ui/assets/editor-Cr0W5BQI.js +39 -0
  830. package/dist/ui/assets/editor-Cr0W5BQI.js.gz +0 -0
  831. package/dist/ui/assets/emoji-Bv3m24sO.js +3 -0
  832. package/dist/ui/assets/emoji-Bv3m24sO.js.gz +0 -0
  833. package/dist/ui/assets/{erDiagram-Q2GNP2WA-me1fboaf.js → erDiagram-Q2GNP2WA-CQSXRgqr.js} +2 -2
  834. package/dist/ui/assets/erDiagram-Q2GNP2WA-CQSXRgqr.js.gz +0 -0
  835. package/dist/ui/assets/flowDiagram-NV44I4VS-CKcKpkph.js +162 -0
  836. package/dist/ui/assets/flowDiagram-NV44I4VS-CKcKpkph.js.gz +0 -0
  837. package/dist/ui/assets/ganttDiagram-LVOFAZNH-DlAHzXO5.js +267 -0
  838. package/dist/ui/assets/ganttDiagram-LVOFAZNH-DlAHzXO5.js.gz +0 -0
  839. package/dist/ui/assets/{gitGraph-F6HP7TQM-CfFE_uAC.js → gitGraph-F6HP7TQM-DeuXy4B1.js} +1 -1
  840. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-aB-AI4Vq.js +65 -0
  841. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-aB-AI4Vq.js.gz +0 -0
  842. package/dist/ui/assets/index-B-qHc0o5.js +63 -0
  843. package/dist/ui/assets/index-B-qHc0o5.js.gz +0 -0
  844. package/dist/ui/assets/{index-DxuPq13l.css → index-qkT7Qqm2.css} +1 -1
  845. package/dist/ui/assets/index-qkT7Qqm2.css.gz +0 -0
  846. package/dist/ui/assets/{info-NVLQJR56-i_xHYg3f.js → info-NVLQJR56-B9PG7xsc.js} +1 -1
  847. package/dist/ui/assets/{infoDiagram-ER5ION4S-2NL93b78.js → infoDiagram-ER5ION4S-C5Wpoqim.js} +1 -1
  848. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CZF-2DHU.js → journeyDiagram-XKPGCS4Q-CHLziqfS.js} +3 -3
  849. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHLziqfS.js.gz +0 -0
  850. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-CfvJIOny.js → kanban-definition-3W4ZIXB7-Dq7GzQE_.js} +1 -1
  851. package/dist/ui/assets/kanban-definition-3W4ZIXB7-Dq7GzQE_.js.gz +0 -0
  852. package/dist/ui/assets/{line-DDv8kOJk.js → line-DHKNg83I.js} +1 -1
  853. package/dist/ui/assets/{linear-Daef-l29.js → linear-BvUfn0I8.js} +1 -1
  854. package/dist/ui/assets/linear-BvUfn0I8.js.gz +0 -0
  855. package/dist/ui/assets/{mermaid-parser.core-CdK9QgYV.js → mermaid-parser.core-C6d9tKoo.js} +2 -2
  856. package/dist/ui/assets/mermaid-parser.core-C6d9tKoo.js.gz +0 -0
  857. package/dist/ui/assets/mermaid.core-CxE5KezR.js +11 -0
  858. package/dist/ui/assets/mermaid.core-CxE5KezR.js.gz +0 -0
  859. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-Cb3QMflX.js → mindmap-definition-VGOIOE7T-DmPoQ48w.js} +1 -1
  860. package/dist/ui/assets/mindmap-definition-VGOIOE7T-DmPoQ48w.js.gz +0 -0
  861. package/dist/ui/assets/{packet-BFZMPI3H-Bm2uwz4i.js → packet-BFZMPI3H-JZEkVZxU.js} +1 -1
  862. package/dist/ui/assets/{particles-DsJFOarW.js → particles-CxMmUw86.js} +1 -1
  863. package/dist/ui/assets/particles-CxMmUw86.js.gz +0 -0
  864. package/dist/ui/assets/{pie-7BOR55EZ-5i17tVnF.js → pie-7BOR55EZ-_1II5pYQ.js} +1 -1
  865. package/dist/ui/assets/{pieDiagram-ADFJNKIX-BxIwQWvw.js → pieDiagram-ADFJNKIX-DrNkH33i.js} +1 -1
  866. package/dist/ui/assets/pieDiagram-ADFJNKIX-DrNkH33i.js.gz +0 -0
  867. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-B5HPe4ga.js → quadrantDiagram-AYHSOK5B-DOpC-HEF.js} +3 -3
  868. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DOpC-HEF.js.gz +0 -0
  869. package/dist/ui/assets/{radar-NHE76QYJ-BTn-tq0k.js → radar-NHE76QYJ-DDmqhzEZ.js} +1 -1
  870. package/dist/ui/assets/reactflow-D98uPOMq.js +2 -0
  871. package/dist/ui/assets/reactflow-D98uPOMq.js.gz +0 -0
  872. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-YfI6llkX.js → requirementDiagram-UZGBJVZJ-Bzx0iEPP.js} +1 -1
  873. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bzx0iEPP.js.gz +0 -0
  874. package/dist/ui/assets/{sandpack-D7koO5op.js → sandpack-059Z4UWP.js} +38 -38
  875. package/dist/ui/assets/sandpack-059Z4UWP.js.gz +0 -0
  876. package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js +1 -0
  877. package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js.gz +0 -0
  878. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-Do9pvfDv.js +10 -0
  879. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-Do9pvfDv.js.gz +0 -0
  880. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-DAe4Um17.js → sequenceDiagram-WL72ISMW-CN8neUTA.js} +6 -6
  881. package/dist/ui/assets/sequenceDiagram-WL72ISMW-CN8neUTA.js.gz +0 -0
  882. package/dist/ui/assets/src-DEbsv3pp.js +34 -0
  883. package/dist/ui/assets/src-DEbsv3pp.js.gz +0 -0
  884. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BluWJi8n.js +1 -0
  885. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BluWJi8n.js.gz +0 -0
  886. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-DeyqBMDR.js +1 -0
  887. package/dist/ui/assets/streamdown-BT1twtFc.js +521 -0
  888. package/dist/ui/assets/streamdown-BT1twtFc.js.gz +0 -0
  889. package/dist/ui/assets/syntax-CBu6nLfm.js +9 -0
  890. package/dist/ui/assets/syntax-CBu6nLfm.js.gz +0 -0
  891. package/dist/ui/assets/{timeline-definition-IT6M3QCI-D6P5txjT.js → timeline-definition-IT6M3QCI-WdUNkiRj.js} +16 -16
  892. package/dist/ui/assets/timeline-definition-IT6M3QCI-WdUNkiRj.js.gz +0 -0
  893. package/dist/ui/assets/{treemap-KMMF4GRG-Bitm3gy4.js → treemap-KMMF4GRG-CoriU4Jl.js} +1 -1
  894. package/dist/ui/assets/{useUserLocalStorage-Ckb8HsIw.js → useUserLocalStorage-GidNiOPC.js} +1 -1
  895. package/dist/ui/assets/useUserLocalStorage-GidNiOPC.js.gz +0 -0
  896. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CsybjUbd.js → xychartDiagram-PRI3JC2R-CgBAKNt2.js} +1 -1
  897. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CgBAKNt2.js.gz +0 -0
  898. package/dist/ui/index.html +11 -11
  899. package/dist/ui/index.html.gz +0 -0
  900. package/package.json +6 -5
  901. package/scripts/postinstall.js +27 -19
  902. package/dist/cli/commands/daemon/sync.d.ts.map +0 -1
  903. package/dist/ui/assets/App-DcEY8Ota.js +0 -3
  904. package/dist/ui/assets/App-DcEY8Ota.js.gz +0 -0
  905. package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js +0 -1
  906. package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js.gz +0 -0
  907. package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js +0 -9
  908. package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js.gz +0 -0
  909. package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js +0 -18
  910. package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js.gz +0 -0
  911. package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js +0 -34
  912. package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js.gz +0 -0
  913. package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js +0 -8
  914. package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js.gz +0 -0
  915. package/dist/ui/assets/ConversationView-CUWR0gR6.js +0 -1
  916. package/dist/ui/assets/ConversationView-CUWR0gR6.js.gz +0 -0
  917. package/dist/ui/assets/KnowledgePage-B2bzlXfn.js +0 -24
  918. package/dist/ui/assets/KnowledgePage-B2bzlXfn.js.gz +0 -0
  919. package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js.gz +0 -0
  920. package/dist/ui/assets/MobileApp-VgVnsnsN.js +0 -1
  921. package/dist/ui/assets/MobileApp-VgVnsnsN.js.gz +0 -0
  922. package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js +0 -20
  923. package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js.gz +0 -0
  924. package/dist/ui/assets/SessionCanvas-mEmYGZhC.css.gz +0 -0
  925. package/dist/ui/assets/StreamdownDemoPage-wzWaqWwr.js.gz +0 -0
  926. package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js +0 -1
  927. package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js.gz +0 -0
  928. package/dist/ui/assets/architecture-U656AL7Q-CykGFbQU.js +0 -1
  929. package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js +0 -36
  930. package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js.gz +0 -0
  931. package/dist/ui/assets/blockDiagram-VD42YOAC-BhZaEN19.js.gz +0 -0
  932. package/dist/ui/assets/c4Diagram-YG6GDRKO-Dk_UH-sY.js.gz +0 -0
  933. package/dist/ui/assets/channel-D6_nUWlW.js +0 -1
  934. package/dist/ui/assets/chunk-55IACEB6-ByzqIgSb.js +0 -1
  935. package/dist/ui/assets/chunk-ABZYJK2D-BJcrryHK.js.gz +0 -0
  936. package/dist/ui/assets/chunk-AGHRB4JF-DvxmfbM0.js.gz +0 -0
  937. package/dist/ui/assets/chunk-ATLVNIR6-DbeJ0OrR.js.gz +0 -0
  938. package/dist/ui/assets/chunk-B4BG7PRW-C53q2ggf.js.gz +0 -0
  939. package/dist/ui/assets/chunk-DI55MBZ5-vIyNEQN-.js.gz +0 -0
  940. package/dist/ui/assets/chunk-EXTU4WIE-B3ObkuOm.js +0 -1
  941. package/dist/ui/assets/chunk-HN2XXSSU-Dttqcg3b.js.gz +0 -0
  942. package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js +0 -11
  943. package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js.gz +0 -0
  944. package/dist/ui/assets/chunk-JZLCHNYA-EUmx2y4H.js.gz +0 -0
  945. package/dist/ui/assets/chunk-MI3HLSF2-65n9Mkyc.js.gz +0 -0
  946. package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js +0 -2
  947. package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js.gz +0 -0
  948. package/dist/ui/assets/chunk-QXUST7PY-BCYnMiS3.js.gz +0 -0
  949. package/dist/ui/assets/chunk-QZHKN3VN-HucAw4xW.js +0 -1
  950. package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js +0 -2
  951. package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js.gz +0 -0
  952. package/dist/ui/assets/chunk-TZMSLE5B-BuQUQcTr.js.gz +0 -0
  953. package/dist/ui/assets/classDiagram-2ON5EDUG-CUT3rPTB.js +0 -1
  954. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CUT3rPTB.js +0 -1
  955. package/dist/ui/assets/cose-bilkent-S5V4N54A-CnPB3ARO.js.gz +0 -0
  956. package/dist/ui/assets/dagre-6UL2VRFP-DhS-k_Se.js.gz +0 -0
  957. package/dist/ui/assets/dagre-KgLoHEuy.js.gz +0 -0
  958. package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js +0 -24
  959. package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js.gz +0 -0
  960. package/dist/ui/assets/diagram-QEK2KX5R-BPCitvbo.js.gz +0 -0
  961. package/dist/ui/assets/diagram-S2PKOQOG-NW4uK6sx.js.gz +0 -0
  962. package/dist/ui/assets/editor-CzFWIUw2.js +0 -39
  963. package/dist/ui/assets/editor-CzFWIUw2.js.gz +0 -0
  964. package/dist/ui/assets/emoji-Dkz4Zzv_.js +0 -3
  965. package/dist/ui/assets/emoji-Dkz4Zzv_.js.gz +0 -0
  966. package/dist/ui/assets/erDiagram-Q2GNP2WA-me1fboaf.js.gz +0 -0
  967. package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js +0 -162
  968. package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js.gz +0 -0
  969. package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js +0 -267
  970. package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js.gz +0 -0
  971. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js +0 -65
  972. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js.gz +0 -0
  973. package/dist/ui/assets/index-BN5_Qq7R.js +0 -324
  974. package/dist/ui/assets/index-BN5_Qq7R.js.gz +0 -0
  975. package/dist/ui/assets/index-DxuPq13l.css.gz +0 -0
  976. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CZF-2DHU.js.gz +0 -0
  977. package/dist/ui/assets/kanban-definition-3W4ZIXB7-CfvJIOny.js.gz +0 -0
  978. package/dist/ui/assets/katex-CamJ39w1.js +0 -257
  979. package/dist/ui/assets/katex-CamJ39w1.js.gz +0 -0
  980. package/dist/ui/assets/linear-Daef-l29.js.gz +0 -0
  981. package/dist/ui/assets/mermaid-parser.core-CdK9QgYV.js.gz +0 -0
  982. package/dist/ui/assets/mermaid.core-D6GS9mU-.js +0 -11
  983. package/dist/ui/assets/mermaid.core-D6GS9mU-.js.gz +0 -0
  984. package/dist/ui/assets/message-SqLqNYcv.js +0 -36
  985. package/dist/ui/assets/message-SqLqNYcv.js.gz +0 -0
  986. package/dist/ui/assets/mindmap-definition-VGOIOE7T-Cb3QMflX.js.gz +0 -0
  987. package/dist/ui/assets/particles-DsJFOarW.js.gz +0 -0
  988. package/dist/ui/assets/pieDiagram-ADFJNKIX-BxIwQWvw.js.gz +0 -0
  989. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-B5HPe4ga.js.gz +0 -0
  990. package/dist/ui/assets/reactflow-Bf74ngoo.js +0 -2
  991. package/dist/ui/assets/reactflow-Bf74ngoo.js.gz +0 -0
  992. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-YfI6llkX.js.gz +0 -0
  993. package/dist/ui/assets/sandpack-D7koO5op.js.gz +0 -0
  994. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js +0 -10
  995. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js.gz +0 -0
  996. package/dist/ui/assets/sequenceDiagram-WL72ISMW-DAe4Um17.js.gz +0 -0
  997. package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js +0 -1
  998. package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js.gz +0 -0
  999. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CMlIrsoO.js +0 -1
  1000. package/dist/ui/assets/syntax-C-M-8jOU.js +0 -10
  1001. package/dist/ui/assets/syntax-C-M-8jOU.js.gz +0 -0
  1002. package/dist/ui/assets/theme-BQZdiqwv.js +0 -1
  1003. package/dist/ui/assets/timeline-definition-IT6M3QCI-D6P5txjT.js.gz +0 -0
  1004. package/dist/ui/assets/useUserLocalStorage-Ckb8HsIw.js.gz +0 -0
  1005. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CsybjUbd.js.gz +0 -0
  1006. /package/dist/cli/commands/{admin → local}/sync-unix.d.ts +0 -0
@@ -0,0 +1,13 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AppNode-wN3UZlFK.js","assets/rolldown-runtime--c01j_DQ.js","assets/sandpack-059Z4UWP.js","assets/antd-BCqimh1J.js","assets/editor-Cr0W5BQI.js","assets/sandpackDefaults-CPMNDsw7.js","assets/reactflow-D98uPOMq.js","assets/reactflow-8hax8RNO.css","assets/ArtifactNode-DISy2T-6.js","assets/index-B-qHc0o5.js","assets/src-DEbsv3pp.js","assets/__vite-browser-external-BBPYNvOp.js","assets/streamdown-BT1twtFc.js","assets/particles-CxMmUw86.js","assets/chunk-4ZMWKKQ3-3oKtfWXp.js","assets/index-qkT7Qqm2.css","assets/ArtifactConsentModal-DjzXcP_L.js"])))=>i.map(i=>d[i]);
2
+ import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{$ as t,An as n,At as r,Bt as i,Cn as a,Ct as o,Dn as s,Dt as c,E as l,En as u,Fn as d,G as f,Gn as p,Gt as m,Hn as h,It as g,Jn as _,Kn as v,Kt as y,M as b,Nn as x,On as S,Pn as C,Q as w,Qn as T,R as E,Rt as D,S as O,St as k,Tt as ee,U as A,Un as j,Vn as M,Vt as N,Xn as te,Y as P,Yn as ne,Zt as re,_ as ie,_n as F,ar as ae,at as oe,b as I,bn as L,bt as R,cn as se,ct as z,dn as B,dt as ce,fn as V,ft as le,g as ue,gn as de,gt as fe,ht as pe,in as me,ir as he,j as ge,jn as _e,k as ve,kt as ye,l as be,ln as xe,m as H,mn as Se,mt as Ce,n as we,nr as Te,nt as Ee,on as U,p as W,pn as G,qn as K,qt as De,rr as Oe,sn as ke,tn as q,tr as J,ur as Ae,ut as je,vt as Me,wt as Ne,yt as Pe,zn as Fe,zt as Ie}from"./antd-BCqimh1J.js";import{A as Le,F as Re,M as ze,N as Be,O as Ve,P as He,j as Ue,nt as We,q as Ge,rt as Ke,tt as qe}from"./src-DEbsv3pp.js";import{c as Je}from"./sandpack-059Z4UWP.js";import{N as Ye}from"./editor-Cr0W5BQI.js";import{c as Xe,o as Ze}from"./chunk-4ZMWKKQ3-3oKtfWXp.js";import{a as Qe,d as $e,f as et,i as tt,l as nt,n as rt,p as it,r as at}from"./reactflow-D98uPOMq.js";import{$n as Y,An as ot,At as st,Dt as ct,En as lt,Et as ut,F as dt,Ft as ft,Gt as pt,H as mt,Hn as ht,Ht as gt,I as _t,In as X,J as vt,Jt as yt,K as bt,Lt as xt,M as St,Mn as Ct,Mt as wt,N as Tt,On as Et,P as Dt,Pn as Ot,Qn as Z,S as kt,Sn as At,St as jt,Tn as Mt,Un as Nt,Ut as Pt,Wn as Ft,Wt as It,X as Lt,Y as Rt,Zn as zt,bt as Bt,c as Vt,er as Ht,et as Ut,g as Wt,ht as Gt,it as Kt,jt as qt,kn as Jt,kt as Yt,l as Xt,ln as Zt,nr as Qt,q as $t,rr as en,st as tn,tr as nn,wn as rn,wt as an,xn as on,y as sn,yn as cn}from"./index-B-qHc0o5.js";import{n as ln,t as un}from"./ThemeSwitcher-Cgyp5ruu.js";import{i as dn,o as fn,r as pn,s as mn,t as hn}from"./BoardObjectNodes-BakeGpIX.js";import{t as gn}from"./AutocompleteTextarea-DUpsoEGr.js";var Q=e(Ae(),1),$=Ye(),_n=(0,Q.createContext)(void 0),vn=({children:e,value:t})=>(0,$.jsx)(_n.Provider,{value:t,children:e}),yn=()=>{let e=(0,Q.useContext)(_n);if(!e)throw Error(`useAppActions must be used within an AppActionsProvider`);return e},{Text:bn}=g,{useToken:xn}=i,Sn=8,Cn=({boards:e,currentBoardId:t,onBoardChange:n,onHomeClick:r,branchById:i})=>{let{token:a}=xn(),[o,s]=(0,Q.useState)(``),[c,l]=(0,Q.useState)(!1),u=e.find(e=>e.board_id===t),f=(0,Q.useMemo)(()=>{let t=new Map;e.forEach(e=>{t.set(e.board_id,0)});for(let e of i.values())e.board_id&&t.set(e.board_id,(t.get(e.board_id)||0)+1);return t},[e,i]),p=e.length>=Sn,m=(0,Q.useCallback)(()=>{l(!1),s(``)},[]),h=(0,Q.useCallback)(()=>{r?.(),m()},[m,r]),g=(0,Q.useCallback)(e=>{n(e),m()},[n,m]),_=(0,Q.useMemo)(()=>{let n=e.filter(e=>!e.archived).sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`})),r=o?n.filter(e=>e.name.toLowerCase().includes(o.toLowerCase())):n;return p&&r.length===0?[{key:`__empty__`,label:(0,$.jsx)(bn,{type:`secondary`,style:{fontStyle:`italic`},children:`No boards found`}),disabled:!0}]:r.map(e=>{let n=f.get(e.board_id)||0,r=e.board_id===t;return{key:e.board_id,label:(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,minWidth:250,padding:`4px 0`},children:[(0,$.jsxs)(F,{size:8,children:[(0,$.jsx)(`span`,{style:{fontSize:18},children:e.icon||`📋`}),(0,$.jsx)(bn,{strong:r,children:e.name})]}),(0,$.jsx)(Fe,{count:n,showZero:!0,style:{backgroundColor:r?a.colorPrimary:a.colorBgTextHover}})]}),onClick:()=>g(e.board_id)}})},[e,t,f,g,a,o,p]),y=(0,$.jsxs)(d,{type:`text`,onClick:h,style:{width:`100%`,height:38,padding:`4px 12px`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,background:t?void 0:a.colorFillSecondary,borderRadius:a.borderRadiusSM},children:[(0,$.jsxs)(F,{size:8,children:[(0,$.jsx)(`span`,{style:{fontSize:18},children:`🏠`}),(0,$.jsx)(bn,{strong:!t,children:`Home`})]}),(0,$.jsx)(P,{style:{color:a.colorTextTertiary}})]});return(0,$.jsx)(de,{menu:{items:_},trigger:[`click`],placement:`bottomLeft`,open:c,onOpenChange:e=>{l(e),e||s(``)},popupRender:e=>(0,$.jsxs)(`div`,{style:{backgroundColor:a.colorBgElevated,borderRadius:a.borderRadiusLG,boxShadow:a.boxShadowSecondary,minWidth:290},children:[(0,$.jsxs)(`div`,{style:{position:`sticky`,top:0,zIndex:1,padding:`8px 8px 0`,background:a.colorBgElevated,borderTopLeftRadius:a.borderRadiusLG,borderTopRightRadius:a.borderRadiusLG},children:[y,(0,$.jsx)(S,{style:{margin:`8px 0 0`}})]}),p&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{style:{padding:`8px 12px`},children:(0,$.jsx)(se,{placeholder:`Filter boards...`,prefix:(0,$.jsx)(v,{style:{color:a.colorTextQuaternary}}),value:o,onChange:e=>s(e.target.value),size:`small`,allowClear:!0,autoFocus:!0,"aria-label":`Filter boards`})}),(0,$.jsx)(S,{style:{margin:0}})]}),(0,$.jsx)(`div`,{style:{maxHeight:`calc(100vh - 240px)`,overflowY:`auto`},children:e})]}),children:(0,$.jsxs)(d,{type:`text`,style:{width:`100%`,height:`auto`,padding:`8px 12px`,textAlign:`left`,display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,$.jsxs)(F,{size:8,children:[(0,$.jsx)(`span`,{style:{fontSize:18},children:u?u.icon||`📋`:`🏠`}),(0,$.jsx)(bn,{strong:!0,children:u?.name||`Home`})]}),(0,$.jsx)(K,{style:{fontSize:12,color:a.colorTextSecondary}})]})})},wn=2e4,Tn=1e4,En=6e4,Dn=3e3,On=({tooltip:e,icon:t,color:n,onClick:r,children:i})=>(0,$.jsx)(j,{title:e,placement:`bottom`,children:(0,$.jsx)(Ht,{icon:t,color:n,onClick:r,style:{margin:0,display:`flex`,alignItems:`center`,cursor:r?`pointer`:`default`},children:(0,$.jsx)(F,{size:4,children:i})})}),kn=({connected:e,connecting:t,onRetry:n})=>{let{outOfSync:r,capturedSha:i,currentSha:a}=Pt(),o=(0,Q.useRef)(null),[s,c]=(0,Q.useState)(null),[l,u]=(0,Q.useState)(null),[d,f]=(0,Q.useState)(!1),[,p]=(0,Q.useState)(0);return(0,Q.useEffect)(()=>{if(!t)return;let e=setInterval(()=>p(e=>e+1),1e3);return()=>clearInterval(e)},[t]),(0,Q.useEffect)(()=>{if(t){if(o.current===null){let e=Date.now();o.current=e,c(e)}return}if(e&&o.current!==null){let e=Date.now()-o.current;o.current=null,c(null),e>=Tn?u(Date.now()):f(!0)}},[t,e]),(0,Q.useEffect)(()=>{if(!d)return;let e=setTimeout(()=>f(!1),Dn);return()=>clearTimeout(e)},[d]),(0,Q.useEffect)(()=>{if(l===null)return;let e=setTimeout(()=>u(null),En);return()=>clearTimeout(e)},[l]),r?(0,$.jsx)(On,{tooltip:i&&a?`Daemon was upgraded from ${i} to ${a} since this tab loaded. Click to reload and pick up the latest UI. Anything unsaved (form text, etc.) will be lost.`:`Backend was updated — click to reload for the latest UI. Anything unsaved will be lost.`,icon:(0,$.jsx)(q,{}),color:`warning`,onClick:()=>window.location.reload(),children:(0,$.jsx)(`span`,{children:`Out of sync — refresh`})}):t&&s!==null&&Date.now()-s>=wn?(0,$.jsx)(On,{tooltip:`Can't reconnect to the daemon. Click to reload the page — anything unsaved will be lost.`,icon:(0,$.jsx)(q,{}),color:`error`,onClick:()=>window.location.reload(),children:(0,$.jsx)(`span`,{children:`Can't reconnect — reload`})}):!e&&!t?(0,$.jsx)(On,{tooltip:`Connection lost. Click to retry connection.`,icon:(0,$.jsx)(we,{}),color:`error`,onClick:n,children:(0,$.jsx)(`span`,{children:`Disconnected`})}):t?(0,$.jsx)(On,{tooltip:`Reconnecting to daemon… Click to retry immediately.`,icon:(0,$.jsx)(Te,{spin:!0}),color:`warning`,onClick:n,children:(0,$.jsx)(`span`,{children:`Reconnecting`})}):l===null?d?(0,$.jsx)(On,{tooltip:`Connected to daemon`,icon:(0,$.jsx)(k,{}),color:`success`,children:(0,$.jsx)(`span`,{children:`Connected`})}):null:(0,$.jsxs)(On,{tooltip:`You were disconnected long enough that some data may be stale. Click to reload, or × to dismiss.`,icon:(0,$.jsx)(q,{}),color:`warning`,onClick:()=>window.location.reload(),children:[(0,$.jsx)(`span`,{children:`Reconnected — refresh?`}),(0,$.jsx)(ae,{"aria-label":`Dismiss`,onClick:e=>{e.stopPropagation(),u(null)},style:{fontSize:10,opacity:.7}})]})},{Text:An}=g,jn=({result:e,selected:t,onClick:n,onHover:r,rowId:a,tokens:o=[]})=>{let{token:s}=i.useToken(),{title:c,tag:l,secondary:u,time:d,icon:f}=Mn(e);return(0,$.jsxs)(`button`,{type:`button`,onClick:n,onMouseEnter:r,"aria-label":c,role:`option`,"aria-selected":t,id:a,style:{display:`flex`,alignItems:`flex-start`,gap:12,width:`100%`,padding:`4px 12px`,border:`none`,background:t?s.colorBgTextHover:`transparent`,cursor:`pointer`,textAlign:`left`,borderRadius:s.borderRadiusSM},children:[f&&(0,$.jsx)(`span`,{style:{fontSize:18,lineHeight:`20px`,flexShrink:0},children:f}),(0,$.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`baseline`,gap:8,width:`100%`},children:[(0,$.jsx)(An,{strong:!0,style:{flex:1,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:(0,$.jsx)(jt,{text:c,terms:o})}),l&&(0,$.jsx)(An,{type:`secondary`,style:{fontSize:12,whiteSpace:`nowrap`,flexShrink:0},children:(0,$.jsx)(jt,{text:l,terms:o})}),d&&(0,$.jsx)(An,{type:`secondary`,style:{fontSize:12,whiteSpace:`nowrap`,flexShrink:0},children:d})]}),u&&(0,$.jsx)(An,{type:`secondary`,style:{display:`block`,fontSize:12,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:(0,$.jsx)(jt,{text:u,terms:o})})]})]})};function Mn(e){switch(e.type){case`session`:return{title:Rt(e.item,{includeAgentFallback:!0}),tag:e.item.agentic_tool,secondary:e.parentBranch?`in ${e.parentBranch.name}`:void 0,time:Bt(e.item.last_updated)};case`branch`:return{title:e.item.name,tag:e.item.ref,time:Bt(e.item.updated_at)};case`assistant`:{let t=We(e.item);return{icon:t?.emoji,title:t?.displayName??e.item.name,time:Bt(e.item.updated_at)}}case`artifact`:return{title:e.item.name,tag:e.item.template,secondary:e.parentBranch?`in ${e.parentBranch.name}`:void 0,time:Bt(e.item.updated_at)};case`board`:return{icon:e.item.icon,title:e.item.name,time:Bt(e.item.last_updated)};case`mcp`:return{title:e.item.display_name||e.item.name,tag:e.item.transport,secondary:e.item.description}}}var Nn=[`session`,`branch`,`assistant`,`artifact`,`board`,`mcp`],Pn=[`all`,`session`,`branch`,`assistant`,`artifact`,`board`,`mcp`],Fn={all:`All`,session:`Session`,branch:`Branch`,assistant:`Assistant`,artifact:`Artifact`,board:`Board`,mcp:`MCP`},In={session:`Sessions`,branch:`Branches`,assistant:`Assistants`,artifact:`Artifacts`,board:`Boards`,mcp:`MCP`},Ln={session:[],branch:[],assistant:[],artifact:[],board:[],mcp:[]},Rn={session:0,branch:0,assistant:0,artifact:0,board:0,mcp:0};function zn(e){if(!e)return 0;if(e instanceof Date)return e.getTime();let t=Date.parse(e);return Number.isNaN(t)?0:t}function Bn(e){return(t,n)=>zn(e(n))-zn(e(t))}function Vn(e){return Nn.some(t=>e[t].length>0)}function Hn(e){return Nn.flatMap(t=>e[t])}function Un(e){return Nn.reduce((t,n)=>t+e[n],0)}function Wn(e){let t=new Map,n=0;for(let r of Nn)t.set(r,n),n+=e[r].length;return t}var{Text:Gn}=g,Kn={session:(0,$.jsx)(E,{}),branch:(0,$.jsx)(Ne,{}),assistant:(0,$.jsx)(l,{}),artifact:(0,$.jsx)(ce,{}),board:(0,$.jsx)(ye,{}),mcp:(0,$.jsx)(r,{})},qn=({query:e,results:t,hasAnyResults:n,recents:r,hasAnyRecents:a,selectedIndex:o,onResultClick:s,onResultHover:c})=>{let{token:l}=i.useToken(),u=e.length===0,d=u?r:t,f=(0,Q.useMemo)(()=>u?[]:en(e),[u,e]),p=(0,Q.useMemo)(()=>Wn(d),[d]);return(0,$.jsx)(`div`,{role:`listbox`,id:Zn,style:{flex:1,minHeight:0,overflowY:`auto`,padding:`2px 0`},children:u&&!a?(0,$.jsx)(Yn,{text:`Recent items you've created will show up here.`,token:l}):!u&&!n?(0,$.jsx)(Yn,{text:`No matches for "${e}"`,token:l}):Nn.map(e=>{let t=d[e];if(t.length===0)return null;let n=p.get(e)??0;return(0,$.jsx)(Jn,{title:In[e],icon:Kn[e],token:l,children:t.map((e,t)=>{let r=n+t;return(0,$.jsx)(jn,{rowId:Qn(e),result:e,selected:r===o,onClick:()=>s(e),onHover:()=>c(r),tokens:f},Xn(e))})},e)})})},Jn=({title:e,icon:t,token:n,children:r})=>(0,$.jsxs)(`div`,{style:{padding:`2px 0`},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,padding:`2px 16px 1px`,fontSize:11,textTransform:`uppercase`,letterSpacing:.5,color:n.colorTextTertiary},children:[t,e]}),r]}),Yn=({text:e,token:t})=>(0,$.jsx)(`div`,{style:{padding:`24px 16px`,textAlign:`center`},children:(0,$.jsx)(Gn,{type:`secondary`,style:{fontSize:13,color:t.colorTextSecondary},children:e})});function Xn(e){switch(e.type){case`session`:return`session-${e.item.session_id}`;case`branch`:case`assistant`:return`${e.type}-${e.item.branch_id}`;case`artifact`:return`artifact-${e.item.artifact_id}`;case`board`:return`board-${e.item.board_id}`;case`mcp`:return`mcp-${e.item.mcp_server_id}`}}var Zn=`global-search-listbox`;function Qn(e){return`global-search-row-${Xn(e)}`}var $n=({activeChip:e,onChipChange:t,ownedByMe:n,onOwnedByMeToggle:r,counts:a})=>{let{token:o}=i.useToken(),c=a?Un(a):0,l=!!a&&c>0;return(0,$.jsxs)(`div`,{style:{padding:`6px 12px`,borderBottom:`1px solid ${o.colorBorderSecondary}`},children:[(0,$.jsx)(s,{size:`small`,value:e,onChange:e=>t(e),options:Pn.map(t=>({label:(0,$.jsx)(er,{label:Fn[t],count:l?t===`all`?c:a?.[t]??0:void 0,isActive:e===t,token:o}),value:t})),style:{marginBottom:4,fontSize:12},"aria-label":`Filter by entity type`}),(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8},children:[(0,$.jsxs)(`label`,{htmlFor:`global-search-created-by-me`,style:{display:`inline-flex`,alignItems:`center`,gap:6,fontSize:12,cursor:`pointer`,userSelect:`none`},children:[(0,$.jsx)(re,{id:`global-search-created-by-me`,size:`small`,checked:n,onChange:r,"aria-label":`Created by me`}),`Created by me`]}),(0,$.jsx)(j,{title:`Global search is in beta — some click targets are still stubs (e.g. MCP opens Settings) and message-content search isn't wired up yet. Expect rough edges.`,placement:`bottom`,children:(0,$.jsx)(N,{color:`orange`,style:{fontSize:10,lineHeight:`16px`,padding:`0 6px`,margin:0,cursor:`help`,userSelect:`none`},children:`BETA`})})]})]})},er=({label:e,count:t,isActive:n,token:r})=>(0,$.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:4},children:[e,t!==void 0&&(0,$.jsx)(N,{style:{margin:0,padding:`0 5px`,fontSize:10,lineHeight:`14px`,border:`none`,background:n?r.colorFillSecondary:r.colorFillTertiary,color:r.colorTextSecondary},children:t})]});function tr({query:e,ownedByMe:t,activeTypeChip:n,currentUserId:r,sessionById:i,branchById:a,artifactById:o,boardById:s,mcpServerById:c}){let[l,u]=(0,Q.useState)(e);(0,Q.useEffect)(()=>{let t=setTimeout(()=>u(e),220);return()=>clearTimeout(t)},[e]);let d=(0,Q.useCallback)(()=>u(e),[e]),{results:f,counts:p}=(0,Q.useMemo)(()=>{let e=l.trim();if(e.length<2)return{results:Ln,counts:Rn};let u=en(e);if(u.length===0)return{results:Ln,counts:Rn};let d=e=>n===e?15:5,f=e=>n===`all`||n===e,p=Array.from(i.values()).filter(e=>!t||e.created_by===r).filter(e=>Qt(u,nn.session(e))).sort(Bn(e=>e.last_updated)),m=Array.from(a.values()).filter(e=>!t||e.created_by===r).filter(e=>Qt(u,nn.branch(e))).sort(Bn(e=>e.updated_at)),h=m.filter(e=>!Ke(e)),g=m.filter(e=>Ke(e)),_=Array.from(o.values()).filter(e=>!e.archived).filter(e=>!t||e.created_by===r).filter(e=>Qt(u,nn.artifact(e))).sort(Bn(e=>e.updated_at)),v=Array.from(s.values()).filter(e=>!e.archived).filter(e=>!t||e.created_by===r).filter(e=>Qt(u,nn.board(e))).sort(Bn(e=>e.last_updated)),y=Array.from(c.values()).filter(e=>!t||e.owner_user_id===r).filter(e=>Qt(u,nn.mcp(e))).sort(Bn(e=>e.updated_at)),b={session:p.length,branch:h.length,assistant:g.length,artifact:_.length,board:v.length,mcp:y.length};return{results:{session:f(`session`)?p.slice(0,d(`session`)).map(e=>({type:`session`,item:e,parentBranch:a.get(e.branch_id)})):[],branch:f(`branch`)?h.slice(0,d(`branch`)).map(e=>({type:`branch`,item:e})):[],assistant:f(`assistant`)?g.slice(0,d(`assistant`)).map(e=>({type:`assistant`,item:e})):[],artifact:f(`artifact`)?_.slice(0,d(`artifact`)).map(e=>({type:`artifact`,item:e,parentBranch:e.branch_id?a.get(e.branch_id):void 0})):[],board:f(`board`)?v.slice(0,d(`board`)).map(e=>({type:`board`,item:e})):[],mcp:f(`mcp`)?y.slice(0,d(`mcp`)).map(e=>({type:`mcp`,item:e})):[]},counts:b}},[l,t,n,r,i,a,o,s,c]);return{results:f,counts:p,hasAnyResults:Vn(f),debouncedQuery:l,flush:d}}function nr({currentUserId:e,sessionById:t,branchById:n,artifactById:r,boardById:i,mcpServerById:a}){return(0,Q.useMemo)(()=>{if(!e)return Ln;let o=Array.from(t.values()).filter(t=>t.created_by===e).sort(Bn(e=>e.last_updated)).slice(0,3),s=Array.from(n.values()).filter(t=>t.created_by===e).sort(Bn(e=>e.updated_at)),c=s.filter(e=>!Ke(e)).slice(0,3),l=s.filter(e=>Ke(e)).slice(0,3),u=Array.from(r.values()).filter(e=>!e.archived).filter(t=>t.created_by===e).sort(Bn(e=>e.updated_at)).slice(0,3),d=Array.from(i.values()).filter(e=>!e.archived).filter(t=>t.created_by===e).sort(Bn(e=>e.last_updated)).slice(0,3),f=Array.from(a.values()).filter(t=>t.owner_user_id===e).sort(Bn(e=>e.updated_at)).slice(0,3);return{session:o.map(e=>({type:`session`,item:e,parentBranch:n.get(e.branch_id)})),branch:c.map(e=>({type:`branch`,item:e})),assistant:l.map(e=>({type:`assistant`,item:e})),artifact:u.map(e=>({type:`artifact`,item:e,parentBranch:e.branch_id?n.get(e.branch_id):void 0})),board:d.map(e=>({type:`board`,item:e})),mcp:f.map(e=>({type:`mcp`,item:e}))}},[e,t,n,r,i,a])}var rr=260,ir=({currentUserId:e,sessionById:t,branchById:n,artifactById:r,boardById:a,mcpServerById:o,onSettingsClick:s})=>{let{token:c}=i.useToken(),l=(0,Q.useRef)(null),u=(0,Q.useRef)(null),[f,p]=(0,Q.useState)(``),[m,h]=(0,Q.useState)(!1),[g,_]=(0,Q.useState)(`all`),[v,y]=(0,Q.useState)(!0),[b,x]=(0,Q.useState)(0),S=Wt({boardById:a,sessionById:t,branchById:n,artifactById:r}),{results:C,counts:w,hasAnyResults:T,debouncedQuery:E,flush:D}=tr({query:f,ownedByMe:v,activeTypeChip:g,currentUserId:e,sessionById:t,branchById:n,artifactById:r,boardById:a,mcpServerById:o}),O=nr({currentUserId:e,sessionById:t,branchById:n,artifactById:r,boardById:a,mcpServerById:o}),k=Vn(O),ee=f.trim().length<2,A=ee?``:E.trim(),j=(0,Q.useMemo)(()=>Hn(ee?O:C),[ee,O,C]);(0,Q.useEffect)(()=>{x(e=>Math.min(Math.max(e,0),Math.max(j.length-1,0)))},[j.length]),(0,Q.useEffect)(()=>{if(!m)return;let e=j[b];e&&document.getElementById(Qn(e))?.scrollIntoView({block:`nearest`})},[b,j,m]),(0,Q.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&(e.key===`k`||e.key===`K`)&&(e.preventDefault(),l.current?.focus(),h(!0))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,Q.useEffect)(()=>{if(!m)return;let e=e=>{u.current?.contains(e.target)||h(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[m]);let M=(0,Q.useCallback)(e=>{switch(e.type){case`board`:S.goToBoard(e.item.board_id);break;case`branch`:case`assistant`:S.goToBranch(e.item.branch_id);break;case`session`:S.goToSession(e.item.session_id);break;case`artifact`:S.goToArtifact(e.item.artifact_id);break;case`mcp`:s?.();break}h(!1),p(``)},[S,s]),N=(0,Q.useCallback)(()=>{h(!1),p(``),l.current?.blur()},[]);return(0,$.jsxs)(`div`,{ref:u,style:{position:`relative`,width:rr},children:[(0,$.jsx)(se.Search,{ref:l,placeholder:`Search… ⌘K`,value:f,onChange:e=>{p(e.target.value),h(!0),x(0)},onFocus:()=>h(!0),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),f?p(``):(h(!1),l.current?.blur());return}if(e.key===`ArrowDown`){e.preventDefault(),x(e=>Math.min(e+1,Math.max(j.length-1,0)));return}if(e.key===`ArrowUp`){e.preventDefault(),x(e=>Math.max(e-1,0));return}},onSearch:e=>{if(e.trim()!==E.trim()){D();return}let t=j[b];t&&M(t)},allowClear:!0,"aria-label":`Global search`,"aria-autocomplete":`list`,"aria-expanded":m,"aria-controls":Zn,"aria-activedescendant":m&&j[b]?Qn(j[b]):void 0,role:`combobox`,style:{width:`100%`}}),m&&(0,$.jsxs)(`div`,{style:{position:`absolute`,top:`100%`,right:0,width:600,maxHeight:`85vh`,display:`flex`,flexDirection:`column`,marginTop:4,background:c.colorBgElevated,border:`1px solid ${c.colorBorderSecondary}`,borderRadius:c.borderRadiusLG,boxShadow:c.boxShadowSecondary,zIndex:1e3},children:[(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(ae,{}),onClick:N,"aria-label":`Close search`,style:{position:`absolute`,top:4,right:4,width:24,height:24,minWidth:24,padding:0,color:c.colorTextTertiary,zIndex:1}}),(0,$.jsx)($n,{activeChip:g,onChipChange:e=>{_(e),x(0)},ownedByMe:v,onOwnedByMeToggle:()=>{y(e=>!e),x(0)},counts:ee?void 0:w}),(0,$.jsx)(qn,{query:A,results:C,hasAnyResults:T,recents:O,hasAnyRecents:k,selectedIndex:b,onResultClick:M,onResultHover:x})]})]})},ar=(0,Q.memo)(function({currentUserId:e,branchById:t,boardById:n,onSettingsClick:r}){return(0,$.jsx)(ir,{currentUserId:e,sessionById:X(ot),branchById:t,artifactById:X(on),boardById:n,mcpServerById:X(Et),onSettingsClick:r})}),or={CURSOR_EMIT_THROTTLE_MS:100,FACEPILE_REFRESH_MS:1e4,CURSOR_HIDE_AFTER_MS:5e3,ACTIVE_USER_TIMEOUT_MS:300*1e3,TYPING_TIMEOUT_MS:3e3};function sr(e){let{client:t,boardId:n,users:r,enabled:i=!0,globalPresence:a=!1,presenceMinUpdateIntervalMs:o=0}=e,s=(0,Q.useRef)(r);s.current=r;let[c,l]=(0,Q.useState)(new Map),[u,d]=(0,Q.useState)(new Map);(0,Q.useEffect)(()=>{if(!i||!t?.io){l(new Map),d(new Map);return}if(!a&&!n){l(new Map),d(new Map);return}let e=e=>{if(n&&e.boardId===n){let t={x:e.x,y:e.y,timestamp:e.timestamp};l(n=>{let r=n.get(e.userId);if(r&&e.timestamp<r.timestamp||r&&r.x===t.x&&r.y===t.y&&r.timestamp===t.timestamp)return n;let i=new Map(n);return i.set(e.userId,t),i})}if(!a&&e.boardId===n){let t={boardId:e.boardId,x:e.x,y:e.y,timestamp:e.timestamp};d(n=>{let r=n.get(e.userId);if(r&&e.timestamp<r.timestamp||r&&r.boardId===t.boardId&&o>0&&e.timestamp-r.timestamp<o||r&&r.boardId===t.boardId&&r.x===t.x&&r.y===t.y&&r.timestamp===t.timestamp)return n;let i=new Map(n);return i.set(e.userId,t),i})}},r=e=>{if(!a)return;let t={boardId:e.boardId,timestamp:e.timestamp};d(n=>{let r=n.get(e.userId);if(r&&e.timestamp<r.timestamp||r&&r.boardId===t.boardId&&o>0&&e.timestamp-r.timestamp<o||r&&r.boardId===t.boardId&&r.timestamp===t.timestamp)return n;let i=new Map(n);return i.set(e.userId,t),i})},s=e=>{n&&e.boardId===n&&l(t=>{if(!t.has(e.userId))return t;let n=new Map(t);return n.delete(e.userId),n}),!a&&e.boardId===n&&d(t=>{if(!t.has(e.userId))return t;let n=new Map(t);return n.delete(e.userId),n})};t.io.on(`cursor-moved`,e),t.io.on(`presence-updated`,r),t.io.on(`cursor-left`,s);let c=setInterval(()=>{l(e=>{if(e.size===0)return e;let t=Date.now(),n=!1;for(let[r,i]of e.entries())if(t-i.timestamp>or.CURSOR_HIDE_AFTER_MS){n=!0;break}if(!n)return e;let r=new Map(e);for(let[n,i]of e.entries())t-i.timestamp>or.CURSOR_HIDE_AFTER_MS&&r.delete(n);return r})},5e3),u=setInterval(()=>{d(e=>{if(e.size===0)return e;let t=Date.now(),n=!1;for(let[r,i]of e.entries())if(t-i.timestamp>or.ACTIVE_USER_TIMEOUT_MS){n=!0;break}if(!n)return e;let r=new Map(e);for(let[n,i]of e.entries())t-i.timestamp>or.ACTIVE_USER_TIMEOUT_MS&&r.delete(n);return r})},3e4);return()=>{t.io.off(`cursor-moved`,e),t.io.off(`presence-updated`,r),t.io.off(`cursor-left`,s),clearInterval(c),clearInterval(u)}},[t,n,i,a,o]);let{activeUsers:f,remoteCursors:p}=(0,Q.useMemo)(()=>{let e=[],t=new Map;for(let[t,n]of u.entries()){let r=s.current.find(e=>e.user_id===t);r&&e.push({user:r,lastSeen:n.timestamp,boardId:n.boardId,cursor:typeof n.x==`number`&&typeof n.y==`number`?{x:n.x,y:n.y}:void 0})}for(let[e,n]of c.entries()){let r=s.current.find(t=>t.user_id===e);r&&t.set(e,{x:n.x,y:n.y,user:r,timestamp:n.timestamp})}return{activeUsers:e,remoteCursors:t}},[u,c]);return{activeUsers:f,remoteCursors:p}}var cr=({activeUsers:e,maxVisible:t=5,onUserClick:n,boardById:r,style:a})=>{let{token:o}=i.useToken(),s=e.slice(0,t),c=e.slice(t),l=c.length;return e.length===0?null:(0,$.jsxs)(`div`,{className:`facepile`,style:a,children:[s.map(({user:e,cursor:t,boardId:i})=>{let a=i&&r?r.get(i):null,o=a?.name||`Unknown Board`,s=a?.icon||`📋`,c=n&&i;return(0,$.jsx)(j,{title:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{children:e.name||e.email}),i&&(0,$.jsxs)(`div`,{style:{fontSize:`11px`,opacity:.7,marginTop:`4px`},children:[s,` `,o]}),c&&(0,$.jsx)(`div`,{style:{fontSize:`11px`,opacity:.7,marginTop:`4px`},children:`Click to go to board`})]}),children:(0,$.jsx)(`span`,{children:(0,$.jsx)($t,{user:e,style:{cursor:c?`pointer`:`default`},onClick:()=>{c&&n(e.user_id,i,t)}})})},e.user_id)}),l>0&&(0,$.jsx)(j,{title:(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:c.map(({user:e})=>(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,$.jsx)($t,{user:e,size:20,fontSize:`16px`}),(0,$.jsx)(`span`,{children:e.name||e.email})]},e.user_id))}),children:(0,$.jsx)(`span`,{children:(0,$.jsxs)(M,{shape:`square`,size:40,style:{borderRadius:vt(40),backgroundColor:o.colorPrimaryBg,color:o.colorText,fontSize:12,fontWeight:`bold`},children:[`+`,l]})})})]})},lr=({client:e,currentBoardId:t,users:n,currentUser:r,boardById:i,onUserClick:a,staticActiveUsers:o,maxVisible:s=5})=>{let{activeUsers:c}=sr({client:e,boardId:t??null,users:n,enabled:!!e&&!o,globalPresence:!0,presenceMinUpdateIntervalMs:or.FACEPILE_REFRESH_MS}),l=(0,Q.useMemo)(()=>o||(r?[{user:r,lastSeen:Date.now(),boardId:t??void 0,cursor:void 0},...c.filter(e=>e.user.user_id!==r.user_id)]:c),[c,t,r,o]);return l.length===0?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(cr,{activeUsers:l,currentUserId:r?.user_id,maxVisible:s,boardById:i,onUserClick:a,style:{marginRight:8}}),(0,$.jsx)(S,{orientation:`vertical`,style:{height:32,margin:`0 8px`}})]})},{Header:ur}=ke,dr=({recentBoards:e,onBoardChange:t,token:n})=>e.length===0?null:(0,$.jsx)(F,{size:4,children:e.map(e=>(0,$.jsx)(j,{title:e.name,placement:`bottom`,children:(0,$.jsx)(d,{type:`text`,size:`small`,"aria-label":`Switch to board ${e.name}`,onClick:()=>t(e.board_id),style:{width:30,height:30,minWidth:30,padding:0,borderRadius:`50%`,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:16,border:`1px solid ${n.colorBorderSecondary}`,background:n.colorBgElevated},children:e.icon||`📋`})},e.board_id))}),fr=(0,Q.memo)(({user:e,presenceClient:t=null,currentUserId:n,staticActiveUsers:a,presenceMaxVisible:s,connected:c=!1,connecting:l=!1,onCommentsClick:u,onEventStreamClick:f,onSettingsClick:p,onUserSettingsClick:m,onThemeEditorClick:g,onLogout:_,onRetryConnection:v,currentBoardName:y,currentBoardIcon:b,unreadCommentsCount:x=0,eventStreamEnabled:C=!1,hasUserMentions:w=!1,currentBoardId:T,onBoardChange:E,onHomeClick:D,onUserClick:O,instanceLabel:k,instanceDescription:ee})=>{let{token:A}=i.useToken(),M=Xe(),te=Ze(`/knowledge`),P=X(At),ne=X(Ot),re=X(rn),ie=(0,Q.useMemo)(()=>an(P),[P]),ae=(0,Q.useMemo)(()=>an(ne),[ne]),{recentBoards:oe}=qt(ie,T??``),L=gt(),R={display:`flex`,alignItems:`center`,justifyContent:`center`};return(0,$.jsxs)(ur,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`0 24px`,background:A.colorBgContainer,borderBottom:`1px solid ${A.colorBorderSecondary}`},children:[(0,$.jsxs)(F,{size:16,align:`center`,children:[(0,$.jsxs)(`button`,{type:`button`,"aria-label":`Go to Home`,onClick:D,style:{height:54,padding:0,display:`flex`,alignItems:`center`,gap:10,background:`transparent`,border:0,cursor:`pointer`},children:[(0,$.jsx)(`img`,{src:Ft(),alt:Nt.name,style:{height:50,borderRadius:`50%`,objectFit:`cover`,display:`block`}}),(0,$.jsx)(ht,{level:3,style:{marginTop:-6}})]}),k&&(ee?(0,$.jsx)(h,{content:(0,$.jsx)(`div`,{style:{maxWidth:400},children:(0,$.jsx)(Dt,{content:ee})}),title:k,trigger:`hover`,placement:`bottomLeft`,children:(0,$.jsx)(N,{color:`cyan`,style:{cursor:`help`,marginLeft:8},children:k})}):(0,$.jsx)(N,{color:`cyan`,style:{marginLeft:8},children:k})),(0,$.jsx)(S,{orientation:`vertical`,style:{height:32,margin:`0 8px`}}),(0,$.jsx)(`div`,{style:{minWidth:200},children:(0,$.jsx)(Cn,{boards:ie,currentBoardId:T,onBoardChange:E||(()=>{}),onHomeClick:D,branchById:re})}),ie.length>0&&(0,$.jsx)(dr,{recentBoards:oe,onBoardChange:E||(()=>{}),token:A}),y&&(0,$.jsx)(Fe,{count:x,offset:[-2,2],style:{backgroundColor:w?A.colorError:A.colorPrimaryBgHover},className:`app-header-icon-badge`,children:(0,$.jsx)(j,{title:`Show comments tab`,placement:`bottom`,children:(0,$.jsx)(d,{type:`text`,icon:(0,$.jsx)(Me,{style:{fontSize:A.fontSizeLG}}),style:R,onClick:u,disabled:L})})})]}),(0,$.jsxs)(F,{children:[(0,$.jsx)(kn,{connected:c,connecting:l,onRetry:v}),(0,$.jsx)(lr,{client:t,currentBoardId:T||null,users:ae,currentUser:e,boardById:P,onUserClick:O,staticActiveUsers:a,maxVisible:s}),(0,$.jsx)(ar,{currentUserId:n,branchById:re,boardById:P,onSettingsClick:p}),(0,$.jsx)(S,{orientation:`vertical`,style:{height:32,margin:`0 8px`}}),C&&(0,$.jsx)(j,{title:`Live Event Stream`,placement:`bottom`,children:(0,$.jsx)(d,{type:`text`,icon:(0,$.jsx)(r,{style:{fontSize:A.fontSizeLG}}),style:R,onClick:f,disabled:L})}),(0,$.jsx)(j,{title:`Knowledge`,placement:`bottom`,children:(0,$.jsx)(d,{type:`text`,icon:(0,$.jsx)(o,{style:{fontSize:A.fontSizeLG}}),style:R,href:te,"aria-label":`Knowledge`,onClick:e=>{e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),M(`/knowledge`))}})}),(0,$.jsx)(j,{title:`Documentation`,placement:`bottom`,children:(0,$.jsx)(d,{type:`text`,icon:(0,$.jsx)(G,{style:{fontSize:A.fontSizeLG}}),style:R,href:`https://agor.live/guide/getting-started`,target:`_blank`,rel:`noopener noreferrer`})}),(0,$.jsx)(un,{onOpenThemeEditor:g}),(0,$.jsx)(j,{title:`Settings`,placement:`bottom`,children:(0,$.jsx)(d,{type:`text`,icon:(0,$.jsx)(I,{style:{fontSize:A.fontSizeLG}}),style:R,onClick:p,disabled:L})}),(0,$.jsx)(ln,{user:e,disabled:L,onUserSettingsClick:m,onLogout:_})]})]})}),pr=3,mr=[],hr=!1,gr=0;function _r(){if(hr=!1,mr.length===0)return;mr.sort((e,t)=>t.priority-e.priority||e.seq-t.seq);let e=mr.splice(0,pr);for(let t of e)t.fire();mr.length>0&&vr()}function vr(){hr||(hr=!0,typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>setTimeout(_r,0)):setTimeout(_r,0))}function yr({enabled:e,priority:t=0,resetKey:n=`default`}){let[r,i]=(0,Q.useState)(()=>({ready:!e,resetKey:n})),a=r.resetKey===n?r.ready:!e,o=(0,Q.useRef)(t);return o.current=t,(0,Q.useEffect)(()=>{if(r.resetKey!==n){i({ready:!e,resetKey:n});return}if(!e){r.ready||i({ready:!0,resetKey:n});return}if(r.ready)return;let t=!1,a={priority:o.current,seq:gr++,fire:()=>{t||i(e=>e.resetKey===n?{ready:!0,resetKey:n}:e)}};return mr.push(a),vr(),()=>{t=!0,mr=mr.filter(e=>e!==a)}},[e,n,r.ready,r.resetKey]),a}var br=`drag-handle`,xr=`.${br}`,Sr=`nodrag`;function Cr({repo:e,branch:t,onEdit:n,onStartEnvironment:r,onStopEnvironment:a,onNukeEnvironment:o,onViewLogs:s,canControlEnvironment:c,connectionDisabled:l=!1,showNukeEnvironment:u=!0}){let{token:f}=i.useToken(),p=ft(),m=Xt(e),h=m.hasConfig,g=t.environment_instance,_=c??!0,v=_?void 0:`Requires branch 'all' permission or admin access`,y=t.app_url;if(!h)return(0,$.jsx)(j,{title:`Click to configure environment (optional)`,children:(0,$.jsx)(Ht,{color:`default`,style:{cursor:`pointer`,userSelect:`none`,opacity:.6},onClick:e=>{e.stopPropagation(),n?.()},children:(0,$.jsxs)(F,{size:4,children:[(0,$.jsx)(w,{style:{fontSize:12}}),(0,$.jsx)(`span`,{style:{fontFamily:f.fontFamilyCode},children:`env`}),(0,$.jsx)(D,{style:{fontSize:12}})]})})});let x=mt(g),S=()=>{switch(x){case`stopped`:return(0,$.jsx)(H,{style:{color:f.colorTextDisabled,fontSize:12}});case`starting`:case`stopping`:return(0,$.jsx)(U,{size:`small`,style:{display:`inline-flex`,alignItems:`center`,fontSize:12}});case`healthy`:return(0,$.jsx)(k,{style:{color:f.colorSuccess,fontSize:12}});case`unhealthy`:return(0,$.jsx)(we,{style:{color:f.colorWarning,fontSize:12}});case`running`:return(0,$.jsx)(k,{style:{color:f.colorInfo,fontSize:12}});case`error`:return(0,$.jsx)(R,{style:{color:f.colorError,fontSize:12}});default:return(0,$.jsx)(H,{style:{color:f.colorTextDisabled,fontSize:12}})}},C=e=>{e.stopPropagation(),n?.()},T=g?.status||`stopped`,E=T===`running`,O=T===`starting`,ee=T===`stopping`,A=T===`running`||T===`starting`,M=l||!_||!h||!r||O||ee||E,N=l||!_||!h||!a||ee||!A;return(0,$.jsx)(Ht,{color:(()=>{switch(x){case`healthy`:return`green`;case`unhealthy`:return`orange`;case`running`:return`blue`;case`starting`:case`stopping`:return`blue`;case`error`:return`red`;default:return`default`}})(),style:{userSelect:`none`,padding:0,overflow:`hidden`,lineHeight:`20px`,display:`inline-flex`,alignItems:`stretch`},children:(0,$.jsxs)(F,{size:0,style:{width:`100%`,display:`inline-flex`,alignItems:`center`},orientation:`horizontal`,children:[g?.status===`running`&&y?(0,$.jsx)(j,{title:`Open environment - ${y}`,children:(0,$.jsx)(`a`,{href:y,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),style:{display:`inline-flex`,alignItems:`center`,color:`inherit`,padding:`0 7px`,textDecoration:`none`,height:`22px`},children:(0,$.jsxs)(F,{size:4,align:`center`,children:[S(),(0,$.jsx)(`span`,{style:{fontFamily:f.fontFamilyCode,lineHeight:1},children:`env`})]})})}):(0,$.jsx)(j,{title:(()=>{if(!h)return`Click to configure environment`;let e=g?.last_health_check,t=e?.message?` - ${e.message}`:``;switch(x){case`healthy`:return y?`Healthy - ${y}${t}`:`Healthy${t}`;case`unhealthy`:return y?`Unhealthy - ${y}${t}`:`Unhealthy - check failed${t}`;case`running`:return y?`Running - ${y} (health check not configured)`:`Running (health check not configured)`;case`starting`:return y?`Starting... - ${y}`:`Starting...`;case`stopping`:return`Stopping...`;case`error`:return`Failed to start - click to configure`;default:return`Stopped - click to configure`}})(),children:(0,$.jsx)(`div`,{style:{padding:`0 7px`,height:`22px`,display:`inline-flex`,alignItems:`center`},children:(0,$.jsxs)(F,{size:4,align:`center`,children:[S(),(0,$.jsx)(`span`,{style:{fontFamily:f.fontFamilyCode,lineHeight:1},children:`env`})]})})}),(r||a)&&h&&(0,$.jsxs)(F,{size:2,style:{padding:`0 6px`,borderLeft:`1px solid rgba(255, 255, 255, 0.2)`,height:`22px`,display:`inline-flex`,alignItems:`center`},children:[r&&(0,$.jsx)(j,{title:v??(T===`running`?`Environment running`:`Start environment`),children:(0,$.jsx)(d,{type:`text`,size:`small`,"aria-label":`Start environment`,icon:(0,$.jsx)(b,{}),onClick:e=>{e.stopPropagation(),M||r(t.branch_id)},disabled:M,style:{height:22,width:22,minWidth:22,padding:0}})}),a&&(0,$.jsx)(j,{title:v??(T===`running`?`Stop environment`:T===`starting`?`Stop environment (cancel startup)`:T===`stopping`?`Environment is stopping`:`Environment not running`),children:(0,$.jsx)(d,{type:`text`,size:`small`,"aria-label":`Stop environment`,icon:(0,$.jsx)(H,{}),onClick:e=>{e.stopPropagation(),N||a(t.branch_id)},disabled:N,style:{height:22,width:22,minWidth:22,padding:0}})}),s&&(0,$.jsx)(j,{title:v??(m.logs?`View environment logs`:`Configure logs command to enable`),children:(0,$.jsx)(d,{type:`text`,size:`small`,"aria-label":`View environment logs`,icon:(0,$.jsx)(Se,{}),onClick:e=>{e.stopPropagation(),_&&m.logs&&s(t.branch_id)},disabled:!_||!m.logs,style:{height:22,width:22,minWidth:22,padding:0}})}),u&&o&&t.nuke_command&&(0,$.jsx)(j,{title:v??`Nuke environment (destructive - removes all data and volumes)`,children:(0,$.jsx)(d,{type:`text`,size:`small`,danger:!0,"aria-label":`Nuke environment`,icon:(0,$.jsx)(oe,{}),onClick:e=>{e.stopPropagation(),_&&!l&&p(()=>o(t.branch_id))},disabled:l||!_,style:{height:22,width:22,minWidth:22,padding:0}})})]}),(0,$.jsx)(j,{title:`Configure environment`,children:(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(D,{}),onClick:C,style:{padding:0,height:22,width:22,minWidth:22,borderLeft:`1px solid rgba(255, 255, 255, 0.2)`}})})]})})}function wr(e){if(!e)return 0;let t=Date.parse(e);return Number.isNaN(t)?0:t}function Tr(e){return Math.max(wr(e.last_executor_heartbeat_at),wr(e.completed_at),wr(e.message_range?.end_timestamp),wr(e.started_at),wr(e.message_range?.start_timestamp),wr(e.created_at))}function Er(e,t){let n=e.status===Ve.CREATED||Le(e);if(n!==(t.status===Ve.CREATED||Le(t)))return n?1:-1;let r=e.status===Ve.QUEUED;if(r!==(t.status===Ve.QUEUED))return r?-1:1;let i=!!e.started_at||(e.message_range?.start_index??-1)>=0;if(i!==(!!t.started_at||(t.message_range?.start_index??-1)>=0))return i?1:-1;let a=Tr(e)-Tr(t);return a===0?e.created_at.localeCompare(t.created_at):a}function Dr(e){let t=new Map;for(let n of e)t.set(n.task_id,n);return Array.from(t.values()).sort(Er).at(-1)||null}var Or=[],kr=new Map;function Ar(e){return e instanceof Error&&e.message.includes(` is disposed`)}var jr=Q.memo(({client:e,session:t,userById:n,currentUserId:r,branchName:a,enabled:o})=>{let{token:s}=i.useToken(),{onPermissionDecision:c,onSendPrompt:l}=yn(),u=gt(),f=(0,Q.useRef)(null),p=(0,Q.useRef)(!1),m=(0,Q.useRef)(!1),h=(0,Q.useRef)(null),[g,_]=(0,Q.useState)(!1),[v,y]=(0,Q.useState)(``),b=t.session_id,{handle:x,state:S}=ct(e,b,{enabled:o,reactiveOptions:{taskHydration:`lazy`}}),C=S?.sessionId===b?S:null,w=C?.session||t,T=(0,Q.useMemo)(()=>C?Dr([...C.tasks,...C.queuedTasks]):null,[C]),E=C?.streamingMessages||kr,D=mn(E),O=T?.task_id??null,k=!!O&&!!C?.loadedTaskIds.has(O),ee=(0,Q.useCallback)(()=>{if(!f.current)return!0;let{scrollTop:e,scrollHeight:t,clientHeight:n}=f.current;return t-e-n<24},[]),A=(0,Q.useCallback)(()=>{f.current&&(f.current.scrollTop=f.current.scrollHeight)},[]),j=(0,Q.useCallback)(()=>{requestAnimationFrame(A)},[A]);(0,Q.useEffect)(()=>{p.current=!1,m.current=!1,h.current=null,j()},[j,O]),(0,Q.useEffect)(()=>{!o||p.current||j()},[E,o,j,T?.status]),(0,Q.useEffect)(()=>{!o||!O||!k||h.current!==O&&(h.current=O,p.current||j())},[o,j,O,k]),(0,Q.useEffect)(()=>{let e=f.current;if(!e||!o)return;let t=()=>{m.current=!0},n=()=>{if(ee()){p.current=!1,m.current=!1;return}m.current&&(p.current=!0)};return e.addEventListener(`wheel`,t,{passive:!0}),e.addEventListener(`touchstart`,t,{passive:!0}),e.addEventListener(`pointerdown`,t),e.addEventListener(`scroll`,n,{passive:!0}),()=>{e.removeEventListener(`wheel`,t),e.removeEventListener(`touchstart`,t),e.removeEventListener(`pointerdown`,t),e.removeEventListener(`scroll`,n)}},[o,ee]);let M=(0,Q.useCallback)(()=>{},[]),N=(0,Q.useCallback)(e=>{if(x)return x.loadTaskMessages(e).then(()=>void 0).catch(e=>{if(!Ar(e))throw e})},[x]),te=(0,Q.useCallback)(e=>{if(x)try{x.unloadTaskMessages(e)}catch(e){if(Ar(e))return;throw e}},[x]);(0,Q.useEffect)(()=>{if(O)return()=>{te(O)}},[te,O]);let P=o&&(!C||C.loading&&!T),re=C?.error||null,ie=!!C?.terminal,F=v.trim(),ae=!!l&&!u,oe=w.permission_config?.mode,I=w.status===`running`?`Queue a prompt for this session…`:`Prompt this session…`,L=(0,Q.useCallback)(async()=>{if(!(!l||!F||u))try{await l(w.session_id,F,oe)!==!1&&y(``)}catch(e){console.error(`Failed to send prompt from task peek:`,e)}},[u,w.session_id,l,oe,F]);return(0,$.jsxs)(`div`,{className:`nodrag`,children:[(0,$.jsx)(`div`,{ref:f,style:{height:360,overflowY:`auto`},children:re?(0,$.jsx)(he,{type:`error`,message:`Failed to load session task`,description:re,showIcon:!0,action:x&&C&&!ie?(0,$.jsx)(d,{size:`small`,loading:g,onClick:async()=>{_(!0);try{await x.resync()}finally{_(!1)}},children:`Reload`}):void 0}):P?(0,$.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:s.sizeXL},children:(0,$.jsx)(U,{})}):T?T.status===Ve.QUEUED?(0,$.jsx)(he,{type:`info`,showIcon:!0,message:`Latest task is queued`,description:T.full_prompt||`Waiting for the session to become available.`}):(0,$.jsx)(dn,{task:T,agentic_tool:w.agentic_tool,sessionModel:w.model_config?.model,userById:n,currentUserId:r,isExpanded:!0,onExpandChange:M,sessionId:w.session_id,onPermissionDecision:c,branchName:a,scheduledFromBranch:w.scheduled_from_branch,scheduledRunAt:w.scheduled_run_at,streamingMessages:D.get(T.task_id),taskMessages:C?.messagesByTask.get(T.task_id)||Or,taskMessagesLoaded:!!C?.loadedTaskIds.has(T.task_id),onLoadTaskMessages:N,onUnloadTaskMessages:te,assistantEmoji:void 0,isLatestTask:!0,client:e}):(0,$.jsx)(ne,{image:ne.PRESENTED_IMAGE_SIMPLE,description:`No task output yet for this session`,style:{marginTop:s.sizeXL}})}),(0,$.jsxs)(`div`,{className:`nodrag nopan nowheel`,style:{display:`flex`,gap:s.sizeUnit,alignItems:`flex-end`,marginTop:s.sizeUnit},children:[(0,$.jsx)(`div`,{style:{flex:1,minWidth:0},children:(0,$.jsx)(se.TextArea,{value:v,onChange:e=>y(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),L())},disabled:!ae,placeholder:ae?I:`Session prompting is unavailable…`,autoSize:{minRows:1,maxRows:4}})}),(0,$.jsx)(d,{type:`primary`,onClick:L,disabled:!ae||!F,children:`Prompt`})]})]})});jr.displayName=`SessionLatestTaskPeek`;var Mr=Q.memo(({client:e,sessions:t,userById:n,currentUserId:r,branchName:a,onCloseSession:o})=>{let{token:s}=i.useToken();return t.length===0?null:(0,$.jsxs)(`div`,{className:`nodrag`,style:{marginTop:s.sizeSM},children:[(0,$.jsxs)(F,{size:6,align:`baseline`,style:{marginBottom:s.sizeXS},children:[(0,$.jsx)(g.Text,{strong:!0,children:`Peek`}),(0,$.jsxs)(g.Text,{type:`secondary`,style:{fontSize:12},children:[t.length,` session`,t.length===1?``:`s`]})]}),(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:s.sizeSM},children:t.map(t=>(0,$.jsxs)(`section`,{style:{borderTop:`1px solid ${s.colorBorderSecondary}`,paddingTop:s.sizeSM},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:s.sizeSM,marginBottom:s.sizeXS},children:[(0,$.jsxs)(F,{size:6,align:`center`,style:{minWidth:0},children:[(0,$.jsx)(Y,{tool:t.agentic_tool,size:16}),(0,$.jsx)(g.Text,{ellipsis:!0,style:{maxWidth:480,fontSize:12},children:Rt(t,{includeAgentFallback:!0})})]}),(0,$.jsx)(d,{className:`nodrag nopan`,type:`text`,size:`small`,icon:(0,$.jsx)(ae,{}),onClick:()=>o(t.session_id),title:`Stop peeking this session`})]}),(0,$.jsx)(jr,{client:e,session:t,userById:n,currentUserId:r,branchName:a,enabled:!0})]},t.session_id))})]})});Mr.displayName=`BranchSessionPeekSection`;var Nr=new WeakMap;function Pr(e,t){if(!e)return NaN;let n=Nr.get(e);n||(n={},Nr.set(e,n));let r=n[t];if(r!==void 0)return r;let i=e[t],a=i?new Date(i).getTime():NaN;return n[t]=a,a}var Fr=`agor:session-sort`,Ir=[{value:`recent`,label:`Most recent`},{value:`oldest`,label:`Oldest first`},{value:`alpha`,label:`A–Z`}],Lr={TITLE_EXACT:1e3,TITLE_STARTS:800,TITLE_PHRASE:600,TITLE_ALL_WORDS:400,TITLE_PARTIAL_WORDS:200,DESC_PHRASE:120,DESC_ALL_WORDS:80,DESC_PARTIAL_WORDS:40,TOOL_MATCH:30,STATUS_ACTIVE:20,STATUS_AWAITING:15,RECENCY_MAX:50};function Rr(e){return e.trim().toLowerCase()}function zr(e,t=1){return Yr(en(e).filter(e=>e.length>=t))}function Br(e,t,n=Date.now()){let r=Rr(t);if(!r)return 0;let i=zr(r),a=(e.title||e.description||``).toLowerCase(),o=(e.description??``).toLowerCase(),s=e.agentic_tool.toLowerCase(),c=0;if(a===r)c+=Lr.TITLE_EXACT;else if(a.startsWith(r))c+=Lr.TITLE_STARTS;else if(a.includes(r))c+=Lr.TITLE_PHRASE;else{let e=i.filter(e=>a.includes(e));e.length===i.length?c+=Lr.TITLE_ALL_WORDS:e.length>0&&(c+=Math.round(Lr.TITLE_PARTIAL_WORDS*(e.length/i.length)))}if(o&&o!==a)if(o.includes(r))c+=Lr.DESC_PHRASE;else{let e=i.filter(e=>o.includes(e));e.length===i.length?c+=Lr.DESC_ALL_WORDS:e.length>0&&(c+=Math.round(Lr.DESC_PARTIAL_WORDS*(e.length/i.length)))}if(i.some(e=>s.includes(e))&&(c+=Lr.TOOL_MATCH),c===0)return 0;let l=Pr(e,`last_updated`);if(Number.isFinite(l)){let e=Math.max(0,(n-l)/864e5);c+=Math.round(Lr.RECENCY_MAX*Math.exp(-e))}return e.status===`running`||e.status===`stopping`?c+=Lr.STATUS_ACTIVE:e.status===`awaiting_permission`&&(c+=Lr.STATUS_AWAITING),c}function Vr(e,t,n={}){let r=Rr(t);if(!Hr(r))return[];let i=en(r);return e.filter(e=>Qt(i,nn.session(e))).map(e=>({session:e,score:Br(e,r,n.now)})).filter(({score:e})=>e>0).sort((e,t)=>t.score-e.score||Kr(e.session,t.session))}function Hr(e){return Rr(e).length>=2}function Ur(e,t){let n=zr(t);if(n.length===0)return!1;let r=e.agentic_tool.toLowerCase();return n.some(e=>r.includes(e))}function Wr(e,t,n=60){if(!e||!t.trim())return null;let r=e.toLowerCase(),i=[Rr(t),...zr(t)].filter(Boolean),a=-1,o=0;for(let e of i.sort((e,t)=>t.length-e.length)){let t=r.indexOf(e);if(t!==-1){a=t,o=e.length;break}}if(a===-1)return null;let s=Math.max(0,a-n),c=Math.min(e.length,a+Math.max(o,10)+n),l=s>0?`…`:``,u=c<e.length?`…`:``;return`${l}${e.slice(s,c)}${u}`}function Gr(e,t){let n=[...e];switch(t){case`oldest`:return n.sort(qr);case`alpha`:return n.sort(Jr);default:return n.sort(Kr)}}function Kr(e,t){return Pr(t,`last_updated`)-Pr(e,`last_updated`)}function qr(e,t){return Pr(e,`last_updated`)-Pr(t,`last_updated`)}function Jr(e,t){return Rt(e,{includeAgentFallback:!0}).localeCompare(Rt(t,{includeAgentFallback:!0}),void 0,{sensitivity:`base`})}function Yr(e){let t=new Set,n=[];for(let r of e)t.has(r)||(t.add(r),n.push(r));return n}var{Text:Xr}=g,Zr=({ownerUserId:e,value:t,onChange:n,client:r,envVars:i,disabled:a,hideEmptyMessage:o})=>{let[s,c]=(0,Q.useState)(i),[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{if(i){c(i);return}if(!r||!e)return;let t=!1;return u(!0),f(null),(async()=>{try{let n=await r.service(`users`).get(e);t||c(n.env_vars??{})}catch(e){t||f(e instanceof Error?e.message:`Failed to load env vars`)}finally{t||u(!1)}})(),()=>{t=!0}},[r,e,i]);let m=(0,Q.useMemo)(()=>s?Object.entries(s).filter(([,e])=>e.scope===`session`).map(([e])=>e).sort():[],[s]);return d?(0,$.jsx)(he,{type:`error`,title:d}):!l&&m.length===0?o?null:(0,$.jsxs)(Xr,{type:`secondary`,children:[`No session-scope environment variables. Add some under `,(0,$.jsx)(`b`,{children:`User Settings → Env vars`}),` with scope = `,(0,$.jsx)(`b`,{children:`Session`}),`, then select them here to expose to this session's executor.`]}):(0,$.jsxs)(F,{orientation:`vertical`,size:`small`,style:{width:`100%`},children:[(0,$.jsx)(p,{mode:`multiple`,value:t,onChange:n,loading:l,disabled:a,placeholder:`Select session-scope env vars to export to this session`,options:m.map(e=>({value:e,label:e})),style:{width:`100%`}}),(0,$.jsx)(Xr,{type:`secondary`,style:{fontSize:12},children:`Global-scope vars are exported automatically. Only vars listed here (scope = session, set by the session's creator) are added to this session's executor process.`})]})},Qr=({open:e,action:t,session:r,currentUser:i=null,mcpServerById:a=new Map,initialPrompt:o=``,onConfirm:s,onCancel:c,client:l,userById:u})=>{let[d]=V.useForm(),[f,p]=(0,Q.useState)(!1),[m,h]=(0,Q.useState)(`parent`),[_,v]=(0,Q.useState)(r?.agentic_tool||`claude-code`),[y,b]=(0,Q.useState)([]),x=(0,Q.useCallback)(e=>{let t=i?.default_agentic_config?.[e],n=e===r?.agentic_tool;return{agent:e,permissionMode:t?.permissionMode||(n?r?.permission_config?.mode:void 0)||ze(e),modelConfig:t?.modelConfig??(n?r?.model_config:void 0),codexSandboxMode:t?.codexSandboxMode,codexApprovalPolicy:t?.codexApprovalPolicy,codexNetworkAccess:t?.codexNetworkAccess,mcpServerIds:t?.mcpServerIds||[]}},[i,r]);(0,Q.useEffect)(()=>{if(e&&r){h(`parent`),b([]);let e=r.agentic_tool||`claude-code`;d.setFieldsValue({prompt:o,enableCallback:r.callback_config?.enabled,includeLastMessage:r.callback_config?.include_last_message,includeOriginalPrompt:r.callback_config?.include_original_prompt}),v(e)}},[e,r,d,o]),(0,Q.useEffect)(()=>{if(!e||!r||m!==`custom`)return;let t=r.agentic_tool||`claude-code`;d.setFieldsValue(x(t)),v(t)},[e,r,m,d,x]);let S=async()=>{try{await d.validateFields()}catch(e){console.error(`Form validation failed:`,e);return}let e=d.getFieldsValue(!0),n=e.prompt?.trim();if(n){p(!0);try{if(t===`fork`)await s(n);else{let t={prompt:n};m===`custom`&&(t.agent=e.agent||_,t.permissionMode=e.permissionMode,t.modelConfig=e.modelConfig,t.codexSandboxMode=e.codexSandboxMode,t.codexApprovalPolicy=e.codexApprovalPolicy,t.codexNetworkAccess=e.codexNetworkAccess,t.mcpServerIds=e.mcpServerIds,t.extraInstructions=e.extraInstructions,t.envVarNames=y),e.enableCallback!==void 0&&(t.enableCallback=e.enableCallback),e.includeLastMessage!==void 0&&(t.includeLastMessage=e.includeLastMessage),e.includeOriginalPrompt!==void 0&&(t.includeOriginalPrompt=e.includeOriginalPrompt),await s(t)}d.resetFields(),c()}catch(e){console.error(`Failed to ${t} session — keeping modal open so prompt is preserved:`,e)}finally{p(!1)}}},w=()=>{d.resetFields(),c()},E=t===`fork`?`Fork`:`Spawn`,D=t===`fork`?`Create a sibling session to explore an alternative approach`:`Create a child session to work on a focused subsession`;return(0,$.jsxs)(me,{title:(0,$.jsx)(`div`,{children:(0,$.jsxs)(g.Text,{strong:!0,children:[E,` Session: `,r?.title||r?.description||`Untitled`]})}),open:e,onOk:S,onCancel:w,okText:`${E} Session`,confirmLoading:f,width:700,forceRender:!0,children:[(0,$.jsx)(`div`,{style:{marginBottom:16},children:(0,$.jsx)(g.Text,{type:`secondary`,style:{fontSize:13},children:D})}),(0,$.jsxs)(V,{form:d,layout:`vertical`,children:[(0,$.jsx)(V.Item,{name:`prompt`,label:`Prompt for ${t===`fork`?`forked`:`spawned`} session`,rules:[{required:!0,message:`Please enter a prompt`}],children:(0,$.jsx)(gn,{value:d.getFieldValue(`prompt`)||``,onChange:e=>d.setFieldValue(`prompt`,e),placeholder:t===`fork`?`Try a different approach by... (type @ for autocomplete)`:`Work on this subsession... (type @ for autocomplete)`,autoSize:{minRows:3,maxRows:8},client:l,sessionId:r?.session_id||null,userById:u,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`})}),t===`spawn`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(V.Item,{label:`Configuration`,children:(0,$.jsxs)(C.Group,{value:m,onChange:e=>h(e.target.value),buttonStyle:`solid`,children:[(0,$.jsx)(C.Button,{value:`parent`,children:`Same as parent`}),(0,$.jsx)(C.Button,{value:`custom`,children:`Custom config`})]})}),m===`custom`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(V.Item,{name:`agent`,label:`Agent`,children:(0,$.jsx)(Z,{agents:zt,selectedAgentId:_,onSelect:e=>{let t=e;v(t),d.setFieldsValue(x(t))},columns:2})}),(0,$.jsx)(T,{ghost:!0,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(K,{rotate:e?180:0}),items:[{key:`agentic-tool-config`,label:(0,$.jsx)(g.Text,{strong:!0,children:`Agentic Tool Configuration`}),children:(0,$.jsx)(kt,{agenticTool:_,mcpServerById:a,showHelpText:!1})}]}),i&&l&&(0,$.jsx)(V.Item,{label:`Environment Variables`,style:{marginTop:16},children:(0,$.jsx)(Zr,{ownerUserId:i.user_id,client:l,value:y,onChange:b,hideEmptyMessage:!0})}),(0,$.jsx)(V.Item,{name:`extraInstructions`,label:`Extra Instructions (optional)`,help:`Append additional context or constraints to the spawn prompt`,style:{marginTop:16},children:(0,$.jsx)(gn,{value:d.getFieldValue(`extraInstructions`)||``,onChange:e=>d.setFieldValue(`extraInstructions`,e),placeholder:`e.g., "Only use safe operations", "Prioritize performance" (type @ for autocomplete)`,autoSize:{minRows:2,maxRows:4},client:l,sessionId:r?.session_id||null,userById:u,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`})})]}),(0,$.jsxs)(`div`,{style:{marginTop:16,marginBottom:16},children:[(0,$.jsx)(g.Text,{strong:!0,children:`Callback Options`}),(0,$.jsx)(V.Item,{name:`enableCallback`,valuePropName:`checked`,style:{marginTop:8},children:(0,$.jsx)(n,{children:`Notify parent on completion`})}),(0,$.jsx)(V.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.enableCallback!==t.enableCallback,children:({getFieldValue:e})=>e(`enableCallback`)&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(V.Item,{name:`includeLastMessage`,valuePropName:`checked`,style:{marginLeft:24},children:(0,$.jsx)(n,{children:`Include child's final result`})}),(0,$.jsx)(V.Item,{name:`includeOriginalPrompt`,valuePropName:`checked`,style:{marginLeft:24},children:(0,$.jsx)(n,{children:`Include original prompt`})})]})})]})]})]})]})},$r=({session:e,size:t=11})=>{let{token:n}=i.useToken(),r=e.genealogy?.parent_session_id,a=e.genealogy?.forked_from_session_id;return a&&e.fork_origin===`btw`?(0,$.jsx)(j,{title:`Forked (btw) from ${Ge(a)}`,children:(0,$.jsx)(g.Text,{style:{fontSize:Math.round(t*.85),color:n.colorWarning,fontWeight:`bold`,whiteSpace:`nowrap`,flexShrink:0},children:`btw`})}):r?(0,$.jsx)(j,{title:`Spawned from ${Ge(r)}`,children:(0,$.jsx)(W,{style:{fontSize:t,color:n.colorInfo,flexShrink:0}})}):a?(0,$.jsx)(j,{title:`Forked from ${Ge(a)}`,children:(0,$.jsx)(Ee,{style:{fontSize:t,color:n.colorWarning,flexShrink:0}})}):null},ei=`Matched by title, description, and agent. Active and recently updated sessions rank higher within matches.`,ti=({sort:e,onSortChange:t,compact:n=!1,stopPropagation:r=!1})=>{let{token:a}=i.useToken();return(0,$.jsx)(de,{menu:{items:Ir.map(t=>({key:t.value,label:t.label,icon:e===t.value?(0,$.jsx)(_,{}):(0,$.jsx)(`span`,{style:{width:12,display:`inline-block`}})})),onClick:({key:e})=>t(e),selectedKeys:[e]},trigger:[`click`],children:(0,$.jsx)(d,{type:`text`,size:`small`,icon:e===`oldest`?(0,$.jsx)(ie,{}):(0,$.jsx)(ue,{}),style:{flexShrink:0,padding:`0 6px`,color:a.colorTextSecondary,background:e===`recent`?void 0:a.colorFillSecondary,borderRadius:a.borderRadiusSM},onClick:e=>{r&&e.stopPropagation()},children:n?ii(e):ai(e)})})},ni=({value:e,onChange:t,sort:n,onSortChange:r,searching:a=!1,placeholder:o=`Search sessions...`})=>{let{token:s}=i.useToken();return(0,$.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`},children:[(0,$.jsx)(se,{style:{flex:1},placeholder:o,prefix:(0,$.jsx)(v,{}),value:e,onChange:e=>t(e.target.value),allowClear:!0}),(0,$.jsx)(`div`,{style:{flexShrink:0,minWidth:96,display:`flex`,justifyContent:`flex-end`},children:a?(0,$.jsx)(j,{title:ei,placement:`topRight`,children:(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(f,{style:{color:s.colorTextTertiary}}),style:{padding:`0 6px`,color:s.colorTextTertiary},children:`Relevance`})}):(0,$.jsx)(ti,{sort:n,onSortChange:r,compact:!0})})]})},ri=()=>{let{token:e}=i.useToken();return(0,$.jsx)(j,{title:ei,children:(0,$.jsx)(`span`,{style:{borderBottom:`1px dashed ${e.colorTextTertiary}`,cursor:`help`},children:`by relevance`})})};function ii(e){return e===`alpha`?`A–Z`:e===`oldest`?`Oldest`:`Recent`}function ai(e){return e===`alpha`?`A–Z`:e===`oldest`?`Oldest first`:`Most recent`}function oi(e){let t=new Map,n=new Map,r=[];for(let n of e)t.set(n.session_id,n);for(let i of e){let e=i.genealogy?.parent_session_id||i.genealogy?.forked_from_session_id;if(e&&t.has(e)){let t=n.get(e)||[];t.push(i),n.set(e,t)}else r.push(i)}function i(e,t=!1){let r=n.get(e.session_id)||[],a=`root`;e.remote_surrogate?a=`remote`:t||(e.genealogy?.parent_session_id?a=`spawn`:e.genealogy?.forked_from_session_id&&(a=`fork`));let o={key:e.session_id,title:``,session:e,relationshipType:a};return r.length>0&&(o.children=r.map(e=>i(e,!1))),o}return r.map(e=>i(e,!0))}var si={token:{motion:!1}},ci=({sessionId:e,isArchiving:t,isPeeked:n=!1,onArchive:r,onSettings:a,onTogglePeek:o,onToggleCallback:s,onOpenRemoteParent:l,callbackToggle:u,remoteParentLink:f,children:p})=>{let[m,h]=(0,Q.useState)(!1),{token:g}=i.useToken(),_={background:`${g.colorBgContainer}cc`,borderRadius:4,width:24,height:24,minWidth:24,display:`flex`,alignItems:`center`,justifyContent:`center`},v=n?{..._,color:g.colorPrimary,background:g.colorPrimaryBg}:_;return(0,$.jsxs)(`div`,{style:{position:`relative`,minWidth:0,width:`100%`},onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),children:[p,(0,$.jsxs)(`div`,{style:{position:`absolute`,right:4,top:`50%`,transform:`translateY(-50%)`,opacity:+!!m,transition:`opacity 0.15s ease-in-out`,pointerEvents:m?`auto`:`none`,display:`flex`,gap:2,width:`fit-content`},children:[a&&(0,$.jsx)(j,{title:`Session settings`,children:(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(I,{}),onClick:t=>a(e,t),style:_})}),o&&(0,$.jsx)(j,{title:n?`Stop peeking at latest prompt`:`Peek at latest prompt`,children:(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(xe,{}),onClick:t=>o(e,t),style:v})}),l&&f&&(0,$.jsx)(j,{title:f.tooltip,children:(0,$.jsx)(d,{type:`text`,size:`small`,disabled:f.disabled,icon:(0,$.jsx)(c,{}),onClick:t=>l(e,t),style:{..._,color:g.colorTextSecondary}})}),s&&u&&(0,$.jsx)(j,{title:u.tooltip,children:(0,$.jsx)(d,{type:`text`,size:`small`,disabled:u.disabled,icon:u.enabled?(0,$.jsx)(A,{}):(0,$.jsx)(fe,{}),onClick:t=>s(e,t),style:{..._,color:u.enabled?g.colorPrimary:g.colorTextTertiary,background:u.enabled?g.colorPrimaryBg:_.background}})}),(0,$.jsx)(Tt,{tooltip:`Archive session`,loading:t,onClick:t=>r(e,t),style:_})]})]})},li=({branch:e,sessions:t,userById:n,currentUserId:r,selectedSessionId:a,onSessionClick:o,onCreateSession:s,onForkSession:c,onSpawnSession:l,onOpenSessionSettings:u,peekedSessionIds:f,onTogglePeekSession:p,defaultExpanded:h=!0,mode:_=`card`,client:v})=>{let{token:b}=i.useToken(),{modal:S}=te.useApp(),{showSuccess:C,showError:w}=xt(),D=gt(),O=st(`scheduler`),k=st(`gateway`),{archiveSession:ee}=Yt(v),[A,M]=(0,Q.useState)({open:!1,action:`fork`,session:null}),[N,P]=(0,Q.useState)([]),ne=(0,Q.useRef)(null),re=(0,Q.useRef)(new Set),[ie,ae]=(0,Q.useState)(new Set),[oe,I]=(0,Q.useState)(``),[R,se]=wt(Fr,`recent`),z=_===`panel`,[B,ce]=(0,Q.useState)(()=>h?[`sessions`]:[]),V=B.includes(`sessions`),le=B.includes(`scheduled-runs`),ue=B.includes(`gateway-sessions`),de=(0,Q.useCallback)((e,t)=>{let n=Array.isArray(t)?t.includes(e):t===e;ce(t=>{let r=t.includes(e);return n?r?t:[...t,e]:r?t.filter(t=>t!==e):t})},[]),fe=(0,Q.useCallback)(e=>de(`sessions`,e),[de]),pe=(0,Q.useCallback)(e=>de(`scheduled-runs`,e),[de]),me=(0,Q.useCallback)(e=>de(`gateway-sessions`,e),[de]);(0,Q.useEffect)(()=>{h&&ce(e=>e.includes(`sessions`)?e:[...e,`sessions`])},[h]);let he=f??new Set,ge=oe.trim(),_e=Hr(ge),ve=(0,Q.useCallback)((e,t)=>{t.stopPropagation(),p?.(e)},[p]),ye=(0,Q.useCallback)(e=>e.remote_surrogate?.relationship??e.remote_relationships?.as_target?.find(e=>e.relationship_type===`remote_create`),[]),be=(0,Q.useCallback)(e=>{if(e.remote_surrogate)return;let n=e.remote_relationships?.as_target?.find(e=>e.relationship_type===`remote_create`)?.source_session_id;if(n)return n;let r=e.callback_config?.callback_session_id,i=r?t.find(e=>e.session_id===r):void 0;if(i&&i.branch_id!==e.branch_id)return r},[t]),xe=(0,Q.useCallback)(e=>{let t=ye(e);return e.callback_config?.callback_session_id??t?.callback_session_id??e.genealogy?.parent_session_id??e.remote_surrogate?.source_session_id},[ye]),H=(0,Q.useCallback)(e=>{if(!xe(e))return null;let t=ye(e),n=e.callback_config?.enabled??t?.callback_enabled??!0;return{enabled:n,disabled:D||!v,tooltip:n?`Callbacks linked — click to stop callback notifications while keeping the relationship`:`Callbacks unlinked — click to resume callback notifications for this relationship`}},[v,D,ye,xe]),Se=(0,Q.useCallback)(async(e,n)=>{if(n.stopPropagation(),!v)return;let r=t.find(t=>t.session_id===e);if(!r)return;let i=xe(r);if(!i)return;let a=!(H(r)?.enabled??!1);try{await v.service(`sessions`).patch(r.session_id,{callback_config:{...r.callback_config??{},callback_session_id:i,enabled:a}}),C(a?`Callbacks linked`:`Callbacks unlinked`)}catch(e){w(`Failed to update callbacks: ${e instanceof Error?e.message:String(e)}`)}},[v,xe,H,t,w,C]),we=(0,Q.useCallback)((e,n)=>{n.stopPropagation();let r=t.find(t=>t.session_id===e),i=r?be(r):void 0;i&&o?.(i)},[be,o,t]),Te=async e=>{if(A.session)if(A.action===`fork`){let t=typeof e==`string`?e:e.prompt||``;await c?.(A.session.session_id,t)}else await l?.(A.session.session_id,e)},Ee=(0,Q.useCallback)((e,t)=>{t.stopPropagation(),S.confirm({title:`Archive session?`,content:`Are you sure you want to archive this session?`,okText:`Archive`,cancelText:`Cancel`,onOk:async()=>{ae(t=>new Set(t).add(e));try{await ee(e)?C(`Session archived`):w(`Failed to archive session`)}finally{ae(t=>{let n=new Set(t);return n.delete(e),n})}}})},[ee,S,C,w]),W=(0,Q.useCallback)(e=>Be(e)??void 0,[]),G=(0,Q.useCallback)(e=>He(e),[]),K=(0,Q.useMemo)(()=>t.filter(e=>!e.archived),[t]),ke=(0,Q.useMemo)(()=>K.filter(e=>!e.scheduled_from_branch&&!G(e)),[K,G]),q=(0,Q.useMemo)(()=>K.filter(e=>e.scheduled_from_branch).sort((e,t)=>(t.scheduled_run_at||0)-(e.scheduled_run_at||0)),[K]),J=(0,Q.useMemo)(()=>K.filter(e=>G(e)),[K,G]),Ae=(0,Q.useMemo)(()=>[...ke,...O?q:[],...k?J:[]],[k,J,ke,q,O]),Me=(0,Q.useMemo)(()=>V?Gr(ke,R):[],[V,ke,R]),Ne=(0,Q.useMemo)(()=>V?oi(Me):[],[V,Me]),Pe=(0,Q.useMemo)(()=>{let e=t=>{let n=[];for(let r of t)r.children&&r.children.length>0&&(n.push(r.key),n.push(...e(r.children)));return n};return e(Ne)},[Ne]),Ie=(0,Q.useMemo)(()=>z&&_e?Vr(Ae,ge).map(({session:e})=>e):[],[z,_e,Ae,ge]),Le=(0,Q.useMemo)(()=>q.some(Re),[q]),ze=(0,Q.useMemo)(()=>J.some(Re),[J]),Ve=e.filesystem_status===`creating`,We=e.filesystem_status===`failed`,Ge=e=>e.status===Ue.FAILED;(0,Q.useEffect)(()=>{if(!V)return;let e=new Set(Pe),t=ne.current,n=re.current;P(r=>{if(!t)return Pe.filter(e=>!n.has(e));let i=r.filter(t=>e.has(t)),a=new Set(i);for(let e of Pe)!t.has(e)&&!a.has(e)&&!n.has(e)&&(i.push(e),a.add(e));return i}),ne.current=e},[Pe,V]);let Ke=(0,Q.useCallback)(e=>{P(t=>{let n=[...e],r=new Set(t),i=new Set(n);for(let e of r)i.has(e)||re.current.add(e);for(let e of i)r.has(e)||re.current.delete(e);return n})},[]),qe=e=>{let t=e.session_id===a,n=!!e.remote_surrogate;return{border:e.ready_for_prompt?`1px solid ${b.colorPrimary}`:n?`1px dashed ${b.colorBorderSecondary}`:`1px solid ${z?b.colorBorderSecondary:`rgba(255, 255, 255, 0.1)`}`,borderRadius:z?6:4,padding:z?10:8,background:n?b.colorFillQuaternary:z?b.colorBgContainer:`transparent`,display:`flex`,alignItems:`center`,width:`100%`,boxSizing:`border-box`,cursor:`pointer`,marginBottom:4,opacity:n?.78:void 0,boxShadow:e.ready_for_prompt?`0 0 12px ${b.colorPrimary}30`:void 0,...t?{outline:`1px dashed ${b.colorTextBase}`,outlineOffset:-2}:{}}},Je=(e,t={})=>{let n=Rt(e,{includeAgentFallback:!0}),r=Ge(e);return(0,$.jsx)(g.Text,{strong:t.strong,type:r?`danger`:t.secondary?`secondary`:void 0,style:{fontSize:z?13:12,flex:1,minWidth:0,...Lt(2)},children:(0,$.jsx)(jt,{text:n,query:t.query??``})})},Ye=e=>Ge(e)?(0,$.jsx)(j,{title:`Latest task failed`,children:(0,$.jsx)(Ce,{"aria-label":`Latest task failed`,style:{color:b.colorErrorText,fontSize:12,flex:`0 0 auto`}})}):null,Xe=(e,t={})=>(0,$.jsxs)($.Fragment,{children:[Ye(e),Je(e,t)]}),Ze=(e,t=``)=>{let n=Re(e),r=H(e),i=be(e),a=Rt(e,{includeAgentFallback:!0}),s=t&&e.title&&e.description?Wr(e.description,t):null,c=t?Ur(e,t):!1,l=e.scheduled_from_branch?`Scheduled`:G(e)?`Gateway`:null;return(0,$.jsx)(ci,{sessionId:e.session_id,isArchiving:ie.has(e.session_id),onArchive:Ee,callbackToggle:r??void 0,onToggleCallback:r?Se:void 0,remoteParentLink:i?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:i?we:void 0,onSettings:u?(e,t)=>{t.stopPropagation(),u(e)}:void 0,children:(0,$.jsx)(`div`,{style:qe(e),onClick:()=>o?.(e.session_id),children:(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:4,flex:1,minWidth:0},children:[n?(0,$.jsx)(U,{size:`small`}):(0,$.jsx)(Y,{tool:e.agentic_tool,size:20}),(0,$.jsx)($r,{session:e,size:10}),(0,$.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,$.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,minWidth:0},children:Xe(e,{query:t})}),(l||c)&&(0,$.jsxs)(g.Text,{type:`secondary`,style:{fontSize:11,display:`block`,marginTop:2},children:[l,l&&c?` · `:``,c&&(0,$.jsxs)($.Fragment,{children:[`Agent: `,(0,$.jsx)(jt,{text:e.agentic_tool,query:t})]})]}),s&&s!==a&&(0,$.jsx)(g.Text,{type:`secondary`,style:{fontSize:11,fontStyle:`italic`,lineHeight:1.4,display:`block`,marginTop:2},children:(0,$.jsx)(jt,{text:s,query:t})})]})]})})},e.session_id)},Qe=(0,Q.useCallback)(e=>{let t=e.eventKey;if(e.isLeaf||t==null)return null;let n=!!e.expanded,r=e.session?Rt(e.session,{includeAgentFallback:!0}):`session`,i=n?De:y;return(0,$.jsx)(`button`,{type:`button`,"aria-label":`${n?`Collapse`:`Expand`} ${r}`,"aria-expanded":n,onClick:e=>{e.stopPropagation(),P(e=>e.includes(t)?(re.current.add(t),e.filter(e=>e!==t)):(re.current.delete(t),[...e,t]))},style:{border:0,background:`transparent`,padding:0,lineHeight:0,cursor:`pointer`,color:`inherit`},children:(0,$.jsx)(i,{})})},[]),$e=V?(0,$.jsx)(Oe,{theme:{components:{Tree:{colorBgContainer:`transparent`}}},children:(0,$.jsx)(m,{className:`agor-flat-tree`,treeData:Ne,expandedKeys:N,onExpand:e=>Ke(e),showLine:!0,switcherIcon:Qe,showIcon:!1,blockNode:!0,selectable:!1,style:{background:`transparent`,borderRadius:0,padding:0},titleRender:e=>{let t=e.session,n=Re(t),r=e.relationshipType===`remote`,i=H(t),a=be(t);return(0,$.jsx)(ci,{sessionId:t.session_id,isArchiving:ie.has(t.session_id),isPeeked:he.has(t.session_id),onArchive:Ee,onTogglePeek:p?ve:void 0,callbackToggle:i??void 0,onToggleCallback:i?Se:void 0,remoteParentLink:a?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:a?we:void 0,onSettings:u?(e,t)=>{t.stopPropagation(),u(e)}:void 0,children:(0,$.jsx)(`div`,{style:qe(t),onClick:()=>o?.(t.session_id),onContextMenu:e=>{(c||l)&&e.preventDefault()},children:(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,flex:1,minWidth:0},children:[n?(0,$.jsx)(U,{size:`small`}):(0,$.jsx)(Y,{tool:t.agentic_tool,size:20}),r?(0,$.jsx)(j,{title:`Remote session created from this session. Click to open it in its own branch.`,children:(0,$.jsx)(je,{style:{fontSize:11,color:b.colorTextTertiary}})}):(0,$.jsx)($r,{session:t,size:10}),Xe(t)]})})})}})}):null,et=(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:[(0,$.jsxs)(F,{size:4,align:`center`,children:[(0,$.jsx)(g.Text,{strong:!0,children:`Sessions`}),(0,$.jsx)(Fe,{count:ke.length,showZero:!0,style:{backgroundColor:b.colorPrimaryBgHover}}),!z&&(0,$.jsx)(ti,{sort:R,onSortChange:se,compact:!0,stopPropagation:!0})]}),s&&(0,$.jsx)(`div`,{className:`nodrag`,children:(0,$.jsx)(d,{type:`default`,size:`small`,icon:(0,$.jsx)(x,{}),disabled:D||Ve,onClick:t=>{t.stopPropagation(),s(e.branch_id)},title:Ve?`Branch is being created...`:void 0,children:`New Session`})})]}),tt=(0,$.jsx)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:(0,$.jsxs)(F,{size:4,align:`center`,children:[(0,$.jsx)(L,{style:{color:b.colorInfo}}),(0,$.jsx)(g.Text,{strong:!0,children:`Scheduled Runs`}),(0,$.jsx)(Fe,{count:q.length,showZero:!0,style:{backgroundColor:b.colorInfoBgHover}}),Le&&(0,$.jsx)(U,{size:`small`})]})}),nt=le?(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:q.map(e=>{let t=Re(e),n=H(e),r=be(e);return(0,$.jsx)(ci,{sessionId:e.session_id,isArchiving:ie.has(e.session_id),isPeeked:he.has(e.session_id),onArchive:Ee,onTogglePeek:p?ve:void 0,callbackToggle:n??void 0,onToggleCallback:n?Se:void 0,remoteParentLink:r?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:r?we:void 0,onSettings:u?(e,t)=>{t.stopPropagation(),u(e)}:void 0,children:(0,$.jsx)(`div`,{style:qe(e),onClick:()=>o?.(e.session_id),children:(0,$.jsxs)(F,{size:4,align:`center`,style:{flex:1,minWidth:0},children:[t?(0,$.jsx)(U,{size:`small`}):(0,$.jsx)(Y,{tool:e.agentic_tool,size:20}),Xe(e,{secondary:!0})]})})},e.session_id)})}):null,rt=(0,$.jsx)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:(0,$.jsxs)(F,{size:4,align:`center`,children:[(0,$.jsx)(E,{style:{color:b.colorSuccess}}),(0,$.jsx)(g.Text,{strong:!0,children:`Gateway Sessions`}),(0,$.jsx)(Fe,{count:J.length,showZero:!0,style:{backgroundColor:b.colorSuccessBgHover}}),ze&&(0,$.jsx)(U,{size:`small`})]})}),it=ue?(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:J.map(e=>{let t=W(e),n=Re(e),r=H(e),i=be(e);return(0,$.jsx)(ci,{sessionId:e.session_id,isArchiving:ie.has(e.session_id),isPeeked:he.has(e.session_id),onArchive:Ee,onTogglePeek:p?ve:void 0,callbackToggle:r??void 0,onToggleCallback:r?Se:void 0,remoteParentLink:i?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:i?we:void 0,onSettings:u?(e,t)=>{t.stopPropagation(),u(e)}:void 0,children:(0,$.jsx)(`div`,{style:qe(e),onClick:()=>o?.(e.session_id),children:(0,$.jsxs)(F,{size:4,align:`center`,style:{flex:1,minWidth:0},children:[n?(0,$.jsx)(U,{size:`small`}):(0,$.jsx)(Y,{tool:e.agentic_tool,size:20}),(0,$.jsxs)(`div`,{style:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,gap:4},children:[(0,$.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,minWidth:0},children:Xe(e)}),(0,$.jsx)(`div`,{style:{alignSelf:`flex-start`},children:t?(0,$.jsx)(Ut,{channelType:t.channel_type,channelName:t.channel_name}):(0,$.jsx)(g.Text,{type:`secondary`,style:{fontSize:11,fontStyle:`italic`},children:`(Gateway - metadata unavailable)`})})]})]})})},e.session_id)})}):null,at=z&&K.length>0?(0,$.jsx)(`div`,{style:{paddingBottom:12,paddingTop:4},children:(0,$.jsx)(ni,{value:oe,onChange:I,sort:R,onSortChange:se,searching:_e})}):null;return z&&_e&&Ae.length>0?(0,$.jsxs)($.Fragment,{children:[at,Ie.length>0&&(0,$.jsxs)(g.Text,{type:`secondary`,style:{fontSize:11,padding:`2px 8px 4px`,display:`block`},children:[Ie.length,` of `,Ae.length,` · `,(0,$.jsx)(ri,{})]}),Ie.length===0?(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,alignItems:`center`,padding:`24px 16px`,gap:6},children:[(0,$.jsx)(g.Text,{strong:!0,style:{fontSize:13},children:`No results`}),(0,$.jsxs)(g.Text,{type:`secondary`,style:{fontSize:12,textAlign:`center`,lineHeight:1.5,maxWidth:180},children:[`Nothing matched `,(0,$.jsx)(g.Text,{code:!0,children:ge})]})]}):(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:Ie.map(e=>Ze(e,ge))}),(0,$.jsx)(Qr,{open:A.open,action:A.action,session:A.session,currentUser:r?n.get(r):void 0,onConfirm:Te,onCancel:()=>M({open:!1,action:`fork`,session:null}),client:v,userById:n})]}):(0,$.jsxs)(Oe,{theme:z?void 0:si,children:[at,K.length===0?(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8,alignItems:`center`,padding:z?`24px 0`:`16px 0`,marginTop:8},children:Ve?(0,$.jsx)(g.Text,{type:`secondary`,children:`Creating branch on filesystem...`}):We?(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8,textAlign:`center`},children:[(0,$.jsx)(g.Text,{type:`danger`,strong:!0,children:`Branch creation failed`}),e.error_message&&(0,$.jsx)(j,{title:e.error_message,placement:`bottom`,children:(0,$.jsx)(g.Text,{type:`secondary`,style:{fontSize:12,maxWidth:220,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,cursor:`help`},children:e.error_message})})]}):s?(0,$.jsx)(d,{type:`primary`,icon:(0,$.jsx)(x,{}),disabled:D,onClick:t=>{t.stopPropagation(),s(e.branch_id)},size:`middle`,children:`Create Session`}):null}):(0,$.jsxs)($.Fragment,{children:[ke.length>0?(0,$.jsx)(T,{activeKey:B,onChange:fe,items:[{key:`sessions`,label:et,children:$e,styles:{body:{background:`transparent`,paddingInline:z?0:void 0}}}],ghost:!0,style:{marginTop:8}}):s?(0,$.jsx)(`div`,{style:{marginTop:8},children:et}):null,O&&q.length>0&&(0,$.jsx)(T,{activeKey:B,onChange:pe,items:[{key:`scheduled-runs`,label:tt,children:nt,styles:{body:{background:`transparent`,paddingInline:z?0:void 0}}}],ghost:!0,style:{marginTop:ke.length>0?0:8}}),k&&J.length>0&&(0,$.jsx)(T,{activeKey:B,onChange:me,items:[{key:`gateway-sessions`,label:rt,children:it,styles:{body:{background:`transparent`,paddingInline:z?0:void 0}}}],ghost:!0,style:{marginTop:ke.length>0||q.length>0?0:8}})]}),(0,$.jsx)(Qr,{open:A.open,action:A.action,session:A.session,currentUser:r?n.get(r):void 0,onConfirm:Te,onCancel:()=>M({open:!1,action:`fork`,session:null}),client:v,userById:n})]})},ui=72,di=46,fi=42,pi=8;function mi(e,{defaultExpanded:t=!0}={}){let n=e.filter(e=>!e.archived);if(n.length===0)return ui;let r=n.filter(e=>!e.scheduled_from_branch&&!He(e)).length,i=n.filter(e=>e.scheduled_from_branch).length,a=n.filter(e=>He(e)).length,o=pi;return r>0?(o+=di,t&&(o+=r*fi)):o+=di,i>0&&(o+=di),a>0&&(o+=di),o}var hi=200,gi=`agor:branch-card:peeked-session-ids:`,_i=Q.memo(({branch:e,repo:t,sessions:n,userById:r,currentUserId:a,selectedSessionId:o,onSessionClick:s,onCreateSession:c,onForkSession:u,onSpawnSession:f,onArchiveOrDelete:p,onOpenSettings:m,onOpenSessionSettings:h,onOpenTerminal:_,onStartEnvironment:v,onStopEnvironment:y,onViewLogs:b,onNukeEnvironment:x,onUnpin:S,isPinned:C=!1,zoneName:w,zoneColor:T,defaultExpanded:E=!0,inPopover:O=!1,panelMode:k=!1,progressiveMountKey:ee,isActiveUrlTarget:A=!1,client:M})=>{let{token:N}=i.useToken(),te=gt(),P=e.board_id,ne=yr({enabled:!O&&!k,priority:A||n.some(e=>e.session_id===o)?2:0,resetKey:ee??P??`unassigned`}),re=(0,Q.useMemo)(()=>mi(n,{defaultExpanded:E}),[E,n]),[ie,ae]=(0,Q.useState)(!1),[oe,I]=(0,Q.useState)(!1),[L,R]=wt(`${gi}${e.branch_id}`,[]),se=(0,Q.useMemo)(()=>n.filter(e=>!e.archived),[n]),z=(0,Q.useMemo)(()=>new Map(se.map(e=>[e.session_id,e])),[se]),B=(0,Q.useMemo)(()=>{if(O||k)return[];let e=[],t=new Set;for(let n of L){let r=n.trim();if(!r)continue;let i=se.find(e=>e.session_id===r);i&&!t.has(i.session_id)&&(e.push(i.session_id),t.add(i.session_id))}return e},[O,k,se,L]),ce=(0,Q.useMemo)(()=>new Set(B),[B]),V=(0,Q.useMemo)(()=>B.map(e=>z.get(e)).filter(e=>!!e),[z,B]),le=(0,Q.useCallback)(e=>R(e),[R]);(0,Q.useEffect)(()=>{O||k||L.join(`|`)!==B.join(`|`)&&R(B)},[O,k,B,R,L]);let ue=(0,Q.useCallback)(e=>{le(ce.has(e)?B.filter(t=>t!==e):[...B,e])},[ce,B,le]),de=se,fe=(0,Q.useMemo)(()=>de.some(Re),[de]),me=e.filesystem_status===`creating`,he=e.filesystem_status===`failed`,ge=(0,Q.useMemo)(()=>We(e),[e]),ye=Ke(e),be=(0,Q.useMemo)(()=>de.some(e=>e.session_id===o),[de,o]),xe=(0,Q.useMemo)(()=>{let t=de.some(e=>e.ready_for_prompt===!0);return(e.needs_attention||t)&&!be},[de,e.needs_attention,be]),H=_t(N),Se=H?`color-mix(in srgb, ${N.colorPrimaryBg} 67%, ${N.colorBgBase})`:N.colorPrimaryBg,Ce=fe?Se:ye?N.colorInfoBg:void 0,we=(0,Q.useMemo)(()=>{let e=N.colorTextBase||(H?`#ffffff`:`#000000`),t;try{t=new J(e).toHexString()}catch{t=H?`#ffffff`:`#000000`}return`0 0 0 3px ${t}, 0 0 24px 6px ${t}99`},[N.colorTextBase,H]),Te=be||A,Ee=`2px dashed ${N.colorTextBase}`,W=(0,Q.useMemo)(()=>{if(T)return dt(T,H,50,50)},[T,H]),G=e.notes&&e.notes.length>hi,K=(0,Q.useMemo)(()=>{if(!e.notes)return``;if(!G||oe)return e.notes;let t=e.notes.slice(0,hi),n=t.lastIndexOf(` `);return n>hi*.8?`${t.slice(0,n)}...`:`${t}...`},[e.notes,G,oe]),De=(()=>{if(O)return{};let e={};return xe&&(e.boxShadow=we),Te&&(e.outline=Ee,e.outlineOffset=-3),C&&T&&(e.borderColor=T,e.borderWidth=1),ye&&(e.borderLeft=`4px solid ${N.colorInfo}`),e})();return(0,$.jsxs)(_e,{style:{width:k?`100%`:V.length>0?880:500,cursor:`default`,transition:`background-color 0.2s ease-in-out, box-shadow 0.6s ease-in-out, outline 0.2s ease-in-out, border 0.6s ease-in-out, opacity 0.2s ease-in-out`,willChange:xe&&!O?`box-shadow`:`auto`,...De,...Ce?{backgroundColor:Ce}:{},...te&&!O?{pointerEvents:`none`,opacity:.55}:{}},styles:{body:{padding:16}},children:[(0,$.jsxs)(`div`,{className:!O&&!k?br:void 0,style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:12,gap:8,cursor:!O&&!k?`grab`:void 0},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0},children:[!O&&(0,$.jsx)(`div`,{className:`drag-handle`,style:{display:`flex`,alignItems:`center`,cursor:k?`default`:`grab`,width:32,height:32,justifyContent:`center`,flexShrink:0},children:me||fe?(0,$.jsx)(U,{size:`large`}):ye&&ge?.emoji?(0,$.jsx)(`span`,{style:{fontSize:32},children:ge.emoji}):ye?(0,$.jsx)(l,{style:{fontSize:32,color:he?N.colorError:N.colorInfo}}):(0,$.jsx)(Ne,{style:{fontSize:32,color:he?N.colorError:N.colorPrimary}})}),(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,flex:1,minWidth:0},children:ye?(0,$.jsx)(g.Title,{level:4,style:{margin:0,fontWeight:600},ellipsis:{tooltip:ge?.displayName??e.name},children:ge?.displayName??e.name}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(g.Text,{strong:!0,ellipsis:{tooltip:e.name},children:e.name}),(0,$.jsx)(g.Text,{type:`secondary`,style:{fontSize:12},ellipsis:{tooltip:t.slug},children:t.slug})]})})]}),(0,$.jsxs)(F,{size:4,style:{flexShrink:0},children:[!O&&!k&&C&&(0,$.jsx)(j,{title:w?`Pinned to [${w}] zone (click to unpin)`:`Pinned (click to unpin)`,children:(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(ve,{style:{color:W}}),onClick:t=>{t.stopPropagation(),S?.(e.branch_id)},className:`nodrag`})}),!O&&!k&&(0,$.jsx)(d,{type:`text`,icon:(0,$.jsx)(pe,{style:{fontSize:16}}),className:`drag-handle`,title:`Drag to reposition`,style:{cursor:`grab`,padding:`4px 8px`}}),(0,$.jsxs)(`div`,{className:Sr,children:[_&&(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(Pe,{}),onClick:t=>{t.stopPropagation(),_([],e.branch_id)},title:`Open terminal in branch directory`}),m&&(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(D,{}),onClick:t=>{t.stopPropagation(),m(e.branch_id)},title:`Edit branch`}),!O&&!k&&p&&(0,$.jsx)(Tt,{tooltip:`Archive or delete branch`,disabled:te,onClick:()=>ae(!0)})]})]})]}),(0,$.jsx)(`div`,{className:Sr,style:{marginBottom:8},children:(0,$.jsxs)(F,{size:4,wrap:!0,children:[e.created_by&&(0,$.jsx)(bt,{createdBy:e.created_by,currentUserId:a,userById:r,prefix:`Created by`}),e.issue_url&&(0,$.jsx)(Kt,{issueUrl:e.issue_url,currentRepo:t}),e.pull_request_url&&(0,$.jsx)(tn,{prUrl:e.pull_request_url,currentRepo:t}),(0,$.jsx)(Cr,{repo:t,branch:e,onEdit:()=>m?.(e.branch_id),onStartEnvironment:v,onStopEnvironment:y,onViewLogs:b,onNukeEnvironment:x,connectionDisabled:te,showNukeEnvironment:!1})]})}),e.notes&&(0,$.jsxs)(`div`,{className:`nodrag`,style:{marginBottom:8},children:[(0,$.jsx)(`div`,{className:`markdown-compact`,style:{maxHeight:oe?`none`:`120px`,overflow:`hidden`,transition:`max-height 0.3s ease`},children:(0,$.jsx)(Dt,{content:K,style:{fontSize:12,color:N.colorTextSecondary,lineHeight:`1.5`},compact:!1,showControls:!1})}),G&&(0,$.jsx)(d,{type:`link`,size:`small`,onClick:e=>{e.stopPropagation(),I(!oe)},style:{padding:0,height:`auto`,fontSize:12,color:N.colorLink},children:oe?`See less`:`See more`})]}),(0,$.jsx)(`div`,{className:Sr,style:ne?void 0:{minHeight:re},children:ne?(0,$.jsx)(li,{branch:e,sessions:n,userById:r,currentUserId:a,selectedSessionId:o,onSessionClick:s,onCreateSession:c,onForkSession:u,onSpawnSession:f,onOpenSessionSettings:h,peekedSessionIds:ce,onTogglePeekSession:!O&&!k?ue:void 0,defaultExpanded:E,mode:`card`,client:M}):(0,$.jsxs)(g.Text,{type:`secondary`,style:{fontSize:12,display:`block`,padding:`4px 0`},children:[`Sessions (`,se.length,`)`]})}),!O&&!k&&V.length>0&&(0,$.jsx)(Mr,{client:M,sessions:V,userById:r,currentUserId:a,branchName:e.name,onCloseSession:ue}),(0,$.jsx)(St,{open:ie,branch:e,sessionCount:n.length,environmentRunning:e.environment_instance?.status===`running`,onConfirm:t=>{p?.(e.branch_id,t),ae(!1)},onCancel:()=>ae(!1)})]})});function vi(e){let{client:t,boardId:n,reactFlowInstance:r,enabled:i=!0}=e,[a,o]=(0,Q.useState)(typeof document<`u`?!document.hidden:!0);(0,Q.useEffect)(()=>{if(typeof document>`u`)return;let e=()=>o(!document.hidden);return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]);let s=(0,Q.useRef)(a);s.current=a;let c=(0,Q.useRef)(0),l=(0,Q.useRef)(null),u=(0,Q.useRef)(null),d=(0,Q.useCallback)((e,r)=>{if(!t?.io||!n||!i||!s.current)return;u.current={x:e,y:r};let a=Date.now(),o=a-c.current;if(o<or.CURSOR_EMIT_THROTTLE_MS){l.current||=setTimeout(()=>{if(l.current=null,u.current){let e=u.current,r={boardId:n,x:e.x,y:e.y,timestamp:Date.now()};t.io.emit(`cursor-move`,r),c.current=Date.now()}},or.CURSOR_EMIT_THROTTLE_MS-o);return}let d={boardId:n,x:e,y:r,timestamp:a};t.io.emit(`cursor-move`,d),c.current=a},[t,n,i]);return(0,Q.useEffect)(()=>{if(!i||!a||!t?.io||!n||!r)return;let e=e=>{let t=r.screenToFlowPosition({x:e.clientX,y:e.clientY});d(t.x,t.y)},o=()=>{t?.io&&n&&t.io.emit(`cursor-leave`,{boardId:n})};return window.addEventListener(`mousemove`,e),()=>{window.removeEventListener(`mousemove`,e),o(),l.current&&=(clearTimeout(l.current),null)}},[t,n,r,i,a,d]),{emitCursorPosition:d}}var yi=[/url\s*\(/gi,/expression\s*\(/gi,/javascript\s*:/gi,/behavior\s*:/gi,/-moz-binding\s*:/gi,/@import/gi,/@charset/gi,/@font-face/gi,/@namespace/gi,/\\00/gi];function bi(e){for(let t of yi)if(t.lastIndex=0,t.test(e))return t.source;return null}function xi(e,t){if(!e?.trim())return``;let n=e;for(let e of yi)e.lastIndex=0,n=n.replace(e,`/* blocked */`);let r=[],i=n.replace(/@keyframes\s+[\w-]+\s*\{[^{}]*(?:\{[^{}]*\}[^{}]*)*\}/gi,e=>(bi(e)||r.push(e),``)).trim(),a=[];i&&(/[^{}]+\{/.test(i)?a.push(`${t} { }\n${i.replace(/([^{}]+)\{/g,`${t} $1{`)}`):a.push(`${t} {\n${i}\n}`));for(let e of r)a.push(e);return a.join(`
3
+
4
+ `)}function Si(e){try{let t=new URL(e);return[`http:`,`https:`,`mailto:`].includes(t.protocol)}catch{return!1}}var Ci=100,wi=380,Ti=Q.memo(({data:e})=>{let{token:t}=i.useToken(),{card:n,isPinned:r,zoneName:a,zoneColor:o,onClick:s,onUnpin:c}=e,[l,u]=(0,Q.useState)(!1),f=n.effective_color||t.colorBorder,p=n.effective_emoji,m=t.colorBgContainer!==`#ffffff`,h=(0,Q.useMemo)(()=>{if(o)return dt(o,m,50,50)},[o,m]),_=(0,Q.useMemo)(()=>{if(!n.description)return``;if(n.description.length<=Ci||l)return n.description;let e=n.description.slice(0,Ci),t=e.lastIndexOf(` `);return`${t>Ci*.7?e.slice(0,t):e}...`},[n.description,l]),v=(n.description?.length??0)>Ci;return(0,$.jsxs)(`div`,{onClick:()=>s?.(n.card_id),style:{width:wi,background:t.colorBgContainer,border:r&&o?`1px solid ${o}`:`1px solid ${t.colorBorderSecondary}`,borderLeft:`4px solid ${r&&o?o:f}`,borderRadius:t.borderRadiusLG,cursor:`pointer`,overflow:`hidden`,boxShadow:t.boxShadowTertiary,transition:`box-shadow 0.2s, border-color 0.3s`},children:[(0,$.jsxs)(`div`,{className:br,style:{display:`flex`,alignItems:`center`,gap:8,padding:`10px 12px`,cursor:`grab`,borderBottom:n.description||n.note?`1px solid ${t.colorBorderSecondary}`:`none`},children:[p&&(0,$.jsx)(`span`,{style:{fontSize:16,flexShrink:0},children:p}),(0,$.jsx)(g.Text,{strong:!0,style:{flex:1,fontSize:13,lineHeight:`1.3`,overflow:`hidden`,textOverflow:`ellipsis`,display:`-webkit-box`,WebkitLineClamp:2,WebkitBoxOrient:`vertical`},children:n.title}),n.url&&Si(n.url)&&(0,$.jsx)(`a`,{href:n.url,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),className:`nodrag`,style:{color:t.colorTextSecondary,flexShrink:0},children:(0,$.jsx)(A,{style:{fontSize:12}})}),r&&(0,$.jsx)(j,{title:a?`Pinned to [${a}] zone (click to unpin)`:`Pinned (click to unpin)`,children:(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(ve,{style:{color:h}}),onClick:e=>{e.stopPropagation(),c?.(n.card_id)},className:`nodrag`,style:{flexShrink:0,width:24,height:24,padding:0}})}),(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(pe,{}),className:br,style:{cursor:`grab`,flexShrink:0,width:24,height:24,padding:0}})]}),n.description&&(0,$.jsxs)(`div`,{className:`nodrag`,style:{padding:`8px 12px`,borderBottom:n.note?`1px solid ${t.colorBorderSecondary}`:`none`},children:[(0,$.jsx)(g.Text,{style:{fontSize:12,color:t.colorTextSecondary,lineHeight:`1.5`,whiteSpace:`pre-wrap`,wordBreak:`break-word`},children:_}),v&&(0,$.jsx)(d,{type:`link`,size:`small`,onClick:e=>{e.stopPropagation(),u(!l)},style:{padding:0,height:`auto`,fontSize:11,color:t.colorLink,marginLeft:4},children:l?`less`:`more`})]}),n.note&&(0,$.jsx)(`div`,{style:{padding:`8px 12px`,background:t.colorFillQuaternary,borderTop:n.description?`none`:`1px solid ${t.colorBorderSecondary}`},children:(0,$.jsx)(g.Text,{style:{fontSize:12,color:t.colorText,lineHeight:`1.5`,whiteSpace:`pre-wrap`,wordBreak:`break-word`},children:n.note})})]})}),{useToken:Ei}=i,Di=120,Oi=({task:e,onClick:n,compact:r=!1})=>{let{token:i}=Ei(),a=e.message_range.end_index-e.message_range.start_index+1,o=!!e.report,s=e.git_state.sha_at_start,c=e.git_state.sha_at_end,l=c&&c!==`unknown`&&c!==s,{cleanSha:u,isDirty:d}=Gt(c&&c!==`unknown`?c:s),f=e.full_prompt||`Untitled task`,p=f.length>Di?`${f.substring(0,Di)}...`:f;return(0,$.jsx)(`div`,{onClick:n,style:{cursor:`pointer`,padding:r?`4px 8px`:`8px 12px`,borderRadius:i.borderRadius},children:(0,$.jsxs)(`div`,{style:{width:`100%`},children:[(0,$.jsx)(`div`,{style:{marginBottom:4},children:(0,$.jsxs)(F,{size:8,children:[(0,$.jsx)(j,{title:(0,$.jsx)(`div`,{style:{whiteSpace:`pre-wrap`},children:e.full_prompt}),children:(0,$.jsx)(`span`,{children:(0,$.jsx)(sn,{status:e.status,size:16})})}),(0,$.jsx)(g.Text,{style:{fontSize:r?13:14,fontWeight:500},children:p})]})}),(0,$.jsx)(`div`,{style:{marginLeft:r?20:24},children:(0,$.jsxs)(F,{size:4,wrap:!0,children:[(0,$.jsx)(Ht,{icon:(0,$.jsx)(E,{}),color:`default`,children:a}),(0,$.jsx)(Ht,{icon:(0,$.jsx)(be,{}),color:`default`,children:e.tool_use_count}),o&&(0,$.jsx)(Ht,{icon:(0,$.jsx)(Se,{}),color:`blue`,children:`report`}),!r&&u&&(0,$.jsx)(j,{title:l?`Git state changed during task`:d?`Uncommitted changes`:`Clean git state`,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(Ht,{icon:(0,$.jsx)(t,{}),color:d?`orange`:`purple`,children:(0,$.jsxs)(F,{size:4,children:[(0,$.jsxs)(g.Text,{style:{fontSize:11,fontFamily:`monospace`},children:[l&&`→ `,u.substring(0,7)]}),d&&(0,$.jsx)(D,{style:{fontSize:10}})]})})})})]})})]})})},ki=560,Ai=({session:e,tasks:t=[],userById:n,currentUserId:r,onTaskClick:i,onSessionClick:a,onDelete:o,onOpenSettings:s,onUnpin:c,isPinned:l=!1,zoneName:u,zoneColor:f,defaultExpanded:p=!0})=>{let{modal:m}=te.useApp(),h=gt(),_=()=>{m.confirm({title:`Delete Session`,content:`Are you sure you want to delete this session? This action cannot be undone.`,okText:`Delete`,okType:`danger`,cancelText:`Cancel`,onOk:()=>{o?.(e.session_id)}})},v=t.slice(-5),y=t.length-v.length,b=!!e.genealogy.forked_from_session_id,x=!!e.genealogy.parent_session_id,{cleanSha:S,isDirty:C}=Gt(e.git_state.current_sha),w=(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:[(0,$.jsx)(g.Text,{strong:!0,children:`Tasks`}),t.length>5&&(0,$.jsxs)(g.Text,{type:`secondary`,style:{fontSize:12},children:[`(showing latest 5 of `,t.length,`)`]})]}),E=(0,$.jsxs)(`div`,{children:[y>0&&(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsxs)(d,{type:`text`,icon:(0,$.jsx)(ge,{}),size:`small`,onClick:e=>{e.stopPropagation(),a?.()},children:[`See `,y,` more `,y===1?`task`:`tasks`]})}),v.map(e=>(0,$.jsx)(Oi,{task:e,onClick:()=>i?.(e.task_id)},e.task_id))]});return(0,$.jsxs)(_e,{style:{maxWidth:ki,...l&&f?{borderColor:f,borderWidth:1}:{}},styles:{body:{padding:16}},children:[(0,$.jsxs)(`div`,{className:br,style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:12},children:[(0,$.jsxs)(F,{size:8,align:`center`,children:[(0,$.jsx)(`div`,{className:br,style:{display:`flex`,alignItems:`center`},children:(0,$.jsx)(Y,{tool:e.agentic_tool,size:32})}),(0,$.jsx)(g.Text,{strong:!0,children:e.agentic_tool}),(0,$.jsx)(sn,{status:e.status,size:16})]}),(0,$.jsxs)(F,{size:4,children:[(0,$.jsxs)(`div`,{className:Sr,children:[b&&e.fork_origin===`btw`?(0,$.jsx)(Ht,{icon:(0,$.jsx)(Ee,{}),color:`orange`,children:`BTW`}):b?(0,$.jsx)(Ht,{icon:(0,$.jsx)(Ee,{}),color:`cyan`,children:`FORK`}):null,x&&(0,$.jsx)(Ht,{icon:(0,$.jsx)(Ne,{}),color:`purple`,children:`SPAWN`}),l&&u&&(0,$.jsx)(Ht,{icon:(0,$.jsx)(ve,{}),color:`blue`,onClick:t=>{t.stopPropagation(),c?.(e.session_id)},style:{cursor:`pointer`},title:`Pinned to ${u} (click to unpin)`,children:u})]}),(0,$.jsx)(d,{type:`text`,icon:(0,$.jsx)(pe,{style:{fontSize:16}}),className:br,title:`Drag to reposition`,style:{cursor:`grab`,padding:`4px 8px`}}),(0,$.jsxs)(`div`,{className:Sr,children:[a&&(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(le,{}),onClick:e=>{e.stopPropagation(),a()},title:`Open in drawer`}),s&&(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(I,{}),onClick:t=>{t.stopPropagation(),s(e.session_id)},title:`Session settings`}),o&&(0,$.jsx)(d,{type:`text`,size:`small`,icon:(0,$.jsx)(ae,{}),disabled:h,onClick:e=>{e.stopPropagation(),_()},title:`Delete session`,danger:!0})]})]})]}),(0,$.jsxs)(`div`,{className:Sr,children:[(e.title||e.description)&&(0,$.jsx)(g.Text,{strong:!0,style:{fontSize:16,marginBottom:8,...Lt(2)},children:Rt(e)}),e.created_by&&(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsx)(bt,{createdBy:e.created_by,currentUserId:r,userById:n,prefix:`Created by`})}),(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsxs)(F,{size:4,children:[(0,$.jsxs)(g.Text,{type:`secondary`,children:[`📍 `,e.git_state.ref,` @ `,S.substring(0,7)]}),C&&(0,$.jsx)(Ht,{icon:(0,$.jsx)(D,{}),color:`orange`,style:{fontSize:11},children:`uncommitted`})]})})]}),(0,$.jsxs)(`div`,{className:Sr,children:[(0,$.jsx)(T,{defaultActiveKey:p?[`tasks`]:[],items:[{key:`tasks`,label:w,children:E}],ghost:!0,style:{marginTop:8}}),(0,$.jsx)(`div`,{style:{marginTop:12}})]})]})};function ji(e,t=`200px`){let[n,r]=(0,Q.useState)(!1);return(0,Q.useEffect)(()=>{if(n)return;let i=e.current;if(!i)return;if(typeof IntersectionObserver>`u`){r(!0);return}let a=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&r(!0)},{rootMargin:t});return a.observe(i),()=>a.disconnect()},[n,e,t]),n}var Mi=({title:e,width:t,height:n})=>(0,$.jsx)(`div`,{style:{width:t??`100%`,height:n??`100%`,minWidth:t??120,minHeight:n??80,display:`flex`,alignItems:`center`,justifyContent:`center`,boxSizing:`border-box`,padding:8,borderRadius:8,border:`1px solid var(--ant-color-border, #424242)`,background:`var(--ant-color-fill-alter, rgba(255,255,255,0.02))`,color:`var(--ant-color-text-secondary, #888)`,fontSize:12,textAlign:`center`,overflow:`hidden`},children:e?`Loading ${e}…`:`Loading…`}),Ni=(0,Q.lazy)(()=>Je(()=>import(`./AppNode-wN3UZlFK.js`).then(e=>({default:e.AppNode})),__vite__mapDeps([0,1,2,3,4,5,6,7]))),Pi=e=>{let t=(0,Q.useRef)(null),n=ji(t),r=(0,$.jsx)(Mi,{title:e.data.title,width:e.data.width,height:e.data.height});return(0,$.jsx)(`div`,{ref:t,children:n?(0,$.jsx)(Q.Suspense,{fallback:r,children:(0,$.jsx)(Ni,{...e})}):r})},Fi=(0,Q.lazy)(()=>Je(()=>import(`./ArtifactNode-DISy2T-6.js`).then(e=>({default:e.ArtifactNode})),__vite__mapDeps([8,1,9,2,3,4,10,11,6,7,12,13,14,15,16,5]))),Ii=e=>{let t=(0,Q.useRef)(null),n=ji(t),r=(0,$.jsx)(Mi,{width:e.data.width,height:e.data.height});return(0,$.jsx)(`div`,{ref:t,children:n?(0,$.jsx)(Q.Suspense,{fallback:r,children:(0,$.jsx)(Fi,{...e})}):r})},Li=({data:e})=>{let{token:t}=i.useToken(),{modal:n}=te.useApp(),r=!It().canMutate,a=()=>{r||e.onEdit&&e.onEdit(e.objectId,e.content,e.width)},o=()=>{r||!e.onDelete||n.confirm({title:`Delete note?`,content:`This note will be removed from the board.`,okText:`Delete`,okButtonProps:{danger:!0},cancelText:`Cancel`,onOk:()=>e.onDelete?.(e.objectId)})};return(0,$.jsx)(_e,{style:{width:e.width,minHeight:100,background:t.colorBgContainer,border:`2px solid ${t.colorBorder}`,borderRadius:8,boxShadow:t.boxShadowSecondary,cursor:`move`},size:`small`,title:(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,$.jsx)(g.Text,{type:`secondary`,style:{fontSize:12},children:`Markdown Note`}),(0,$.jsxs)(F,{size:2,children:[(0,$.jsx)(d,{className:`nodrag nopan`,type:`text`,size:`small`,icon:(0,$.jsx)(D,{}),onClick:e=>{e.stopPropagation(),a()},disabled:r,title:`Edit note`}),(0,$.jsx)(d,{className:`nodrag nopan`,type:`text`,size:`small`,danger:!0,icon:(0,$.jsx)(Ie,{}),onClick:e=>{e.stopPropagation(),o()},disabled:r,title:`Delete note`})]})]}),styles:{body:{padding:t.sizeUnit*8}},children:(0,$.jsx)(`div`,{className:`markdown-content`,style:{fontSize:t.fontSize,color:t.colorText,lineHeight:1.6},children:(0,$.jsx)(Dt,{content:e.content})})})};function Ri(e){let{client:t,boardId:n,enabled:r=!0}=e;(0,Q.useEffect)(()=>{if(!r||!t?.io||!n)return;let e=()=>{t.io.emit(`presence:watch-board`,n)};return e(),t.io.on(`connect`,e),t.on(`authenticated`,e),()=>{t.io.off(`connect`,e),t.off(`authenticated`,e),t.io.emit(`presence:unwatch-board`,n)}},[n,t,r])}var zi=({client:e,boardId:t,users:n,enabled:r=!0,staticCursors:a,staticCursorScale:o=1})=>{let{token:s}=i.useToken(),c=it();Ri({client:e,boardId:t,enabled:r&&!a});let{remoteCursors:l}=sr({client:e,boardId:t,users:n,enabled:r&&!a}),u=(0,Q.useMemo)(()=>a?a.map(e=>[e.userId,e]):Array.from(l.entries()),[l,a]);return u.length===0?null:(0,$.jsx)(`div`,{style:{position:`absolute`,inset:0,pointerEvents:`none`,zIndex:2e3},children:u.map(([e,t])=>{let{x:n,y:r,user:i}=t,a=`color`in t?t.color:void 0;return(0,$.jsx)(`div`,{style:{position:`absolute`,transform:`translate3d(${n*c.zoom+c.x}px, ${r*c.zoom+c.y}px, 0) scale(${o})`,transformOrigin:`top left`,willChange:`transform`},children:(0,$.jsxs)(`div`,{style:{pointerEvents:`none`,position:`relative`,width:`24px`,height:`24px`},children:[(0,$.jsxs)(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{color:a??s.colorPrimary,filter:`drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3))`},children:[(0,$.jsx)(`title`,{children:`${i.name||i.email}'s cursor`}),(0,$.jsx)(`path`,{d:`M5.5 3.5L18.5 12L11 14L8 20.5L5.5 3.5Z`,fill:`currentColor`,stroke:s.colorBgElevated,strokeWidth:`1.5`,strokeLinejoin:`round`})]}),(0,$.jsxs)(`div`,{style:{position:`absolute`,top:`24px`,left:`12px`,display:`flex`,alignItems:`center`,gap:`4px`,padding:`4px 8px`,borderRadius:`4px`,fontSize:`12px`,whiteSpace:`nowrap`,background:a||s.colorBgElevated,color:a?`#ffffff`:s.colorText,boxShadow:s.boxShadowSecondary},children:[(0,$.jsx)($t,{user:i,size:18,fontSize:`14px`}),(0,$.jsx)(`span`,{style:{fontWeight:500},children:i.name||i.email})]})]})},e)})})},Bi={zone:100,markdown:300,app:400,artifact:400,text:100};function Vi(e,t){return typeof e!=`number`||!Number.isFinite(e)?t:Math.min(499,Math.max(1,e))}function Hi(e,t){return t?Math.min(e+1,499):e}function Ui(e,t,n){let r=n.find(e=>e.id===t);if(!r)return[];let i=n.filter(e=>e.id!==t);if(i.length===0)return[];switch(e){case`front`:{let e=Math.max(...i.map(e=>e.zIndex));return r.zIndex>e?[]:e<499?[{id:t,zIndex:e+1}]:[...r.zIndex===499?[]:[{id:t,zIndex:499}],...i.filter(e=>e.zIndex>=499).map(e=>({id:e.id,zIndex:498}))]}case`back`:{let e=Math.min(...i.map(e=>e.zIndex));return r.zIndex<e?[]:e>1?[{id:t,zIndex:e-1}]:[...r.zIndex===1?[]:[{id:t,zIndex:1}],...i.filter(e=>e.zIndex<=1).map(e=>({id:e.id,zIndex:2}))]}case`forward`:{let e=i.filter(e=>e.zIndex>r.zIndex).sort((e,t)=>e.zIndex-t.zIndex)[0];if(e)return[{id:t,zIndex:Math.min(e.zIndex,499)},{id:e.id,zIndex:Math.max(r.zIndex,1)}];let n=i.filter(e=>e.zIndex===r.zIndex);if(n.length===0)return[];let a=Math.min(r.zIndex+1,499);return a===r.zIndex?n.filter(e=>e.zIndex-1>=1).map(e=>({id:e.id,zIndex:e.zIndex-1})):[{id:t,zIndex:a}]}case`backward`:{let e=i.filter(e=>e.zIndex<r.zIndex).sort((e,t)=>t.zIndex-e.zIndex)[0];if(e)return[{id:t,zIndex:Math.max(e.zIndex,1)},{id:e.id,zIndex:Math.min(r.zIndex,499)}];let n=i.filter(e=>e.zIndex===r.zIndex);if(n.length===0)return[];let a=Math.max(r.zIndex-1,1);return a===r.zIndex?n.filter(e=>e.zIndex+1<=499).map(e=>({id:e.id,zIndex:e.zIndex+1})):[{id:t,zIndex:a}]}default:return[]}}var Wi=({board:e,client:t,boardObjectsForBoard:n,setNodes:r,deletedObjectsRef:i,eraserMode:a=!1,activeUrlTargetArtifactId:o,onEditMarkdown:s})=>{let c=(0,Q.useRef)(e);c.current=e;let{showError:l}=xt(),u=e?.objects,d=(0,Q.useCallback)(async(e,n)=>{let r=c.current;if(!(!r||!t))try{await t.service(`boards`).patch(r.board_id,{_action:`upsertObject`,objectId:e,objectData:n})}catch(e){console.error(`Failed to update object:`,e)}},[t]),f=(0,Q.useCallback)(async(e,n)=>{let r=c.current;if(!r||!t)return;let i=r.objects??{},a=i[e];if(!a)return;let o=Ui(n,e,Object.entries(i).filter(([,e])=>e.type===a.type).map(([e,t])=>({id:e,zIndex:Vi(t.zIndex,Bi[t.type])})));if(o.length===0)return;let s={};for(let{id:e,zIndex:t}of o)i[e]&&(s[e]={zIndex:t});if(Object.keys(s).length!==0)try{await t.service(`boards`).patch(r.board_id,{_action:`mergeObjectFields`,objects:s})}catch(e){console.error(`Failed to reorder object:`,e),l(`Failed to reorder zone`)}},[t,l]),p=(0,Q.useCallback)(async(n,a)=>{if(!(!e||!t)){i.current.add(n),r(e=>e.filter(e=>e.id!==n));try{await t.service(`boards`).patch(e.board_id,{_action:`deleteZone`,objectId:n}),setTimeout(()=>{i.current.delete(n)},1e3)}catch(e){console.error(`Failed to delete zone:`,e),i.current.delete(n)}}},[e,t,r,i]),m=(0,Q.useCallback)(async e=>{let n=c.current;if(!(!n||!t)){i.current.add(e),r(t=>t.filter(t=>t.id!==e));try{await t.service(`boards`).patch(n.board_id,{_action:`removeObject`,objectId:e}),setTimeout(()=>{i.current.delete(e)},1e3)}catch(t){console.error(`Failed to delete object:`,t),i.current.delete(e)}}},[t,r,i]),h=(0,Q.useCallback)(async(e,n)=>{if(t){i.current.add(e),r(t=>t.filter(t=>t.id!==e));try{await t.service(`artifacts`).remove(n),setTimeout(()=>{i.current.delete(e)},1e3)}catch(t){console.error(`Failed to delete artifact:`,t),i.current.delete(e)}}},[t,r,i]);return{getBoardObjectNodes:(0,Q.useCallback)(()=>u?Object.entries(u).filter(([,e])=>{let t=typeof e.x==`number`&&typeof e.y==`number`&&!Number.isNaN(e.x)&&!Number.isNaN(e.y);return t||console.warn(`Skipping board object with invalid position:`,e),t}).map(([e,t])=>{if(t.type===`app`)return{id:e,type:`appNode`,position:{x:t.x,y:t.y},selectable:!0,zIndex:Vi(t.zIndex,Bi.app),className:a?`eraser-mode`:void 0,data:{objectId:e,title:t.title,description:t.description,template:t.template,files:t.files,dependencies:t.dependencies,entryFile:t.entryFile,showEditor:t.showEditor,showConsole:t.showConsole,width:t.width,height:t.height,onUpdate:d,onDelete:m}};if(t.type===`artifact`){let n=t.locked??!1;return{id:e,type:`artifactNode`,position:{x:t.x,y:t.y},...n?{draggable:!1}:{},selectable:!0,zIndex:Vi(t.zIndex,Bi.artifact),className:a?`eraser-mode`:void 0,data:{objectId:e,artifactId:t.artifact_id,width:t.width,height:t.height,locked:n,x:t.x,y:t.y,isActiveUrlTarget:t.artifact_id===o,onUpdate:d,onDeleteArtifact:h}}}if(t.type===`markdown`)return{id:e,type:`markdown`,position:{x:t.x,y:t.y},selectable:!0,zIndex:Vi(t.zIndex,Bi.markdown),className:a?`eraser-mode`:void 0,data:{objectId:e,content:t.content,width:t.width,onUpdate:d,onEdit:s,onDelete:m}};let r=0;if(t.type===`zone`)for(let t of n)t.zone_id===e&&(t.branch_id||t.card_id)&&(r+=1);let i=t.type===`zone`?t.locked:!1;return{id:e,type:`zone`,position:{x:t.x,y:t.y},...i?{draggable:!1}:{},zIndex:Vi(t.zIndex,Bi.zone),className:a?`eraser-mode`:void 0,width:t.width,height:t.height,style:{width:t.width,height:t.height},data:{objectId:e,label:t.type===`zone`?t.label:``,width:t.width,height:t.height,borderColor:t.type===`zone`?t.borderColor:void 0,backgroundColor:t.type===`zone`?t.backgroundColor:void 0,color:t.color,status:t.type===`zone`?t.status:void 0,locked:i,fontSize:t.type===`zone`?t.fontSize:void 0,zIndex:Vi(t.zIndex,Bi.zone),x:t.x,y:t.y,trigger:t.type===`zone`?t.trigger:void 0,pinnedItemCount:r,onUpdate:d,onDelete:p,onReorder:f}}}):[],[u,n,d,p,m,h,f,a,o,s]),addZoneNode:(0,Q.useCallback)(async(e,n)=>{let i=c.current;if(!i||!t)return;let a=`zone-${Date.now()}`;r(t=>[...t,{id:a,type:`zone`,position:{x:e,y:n},zIndex:Bi.zone,style:{width:400,height:600},data:{objectId:a,label:`New Zone`,width:400,height:600,color:void 0,onUpdate:d}}]);try{await t.service(`boards`).patch(i.board_id,{_action:`upsertObject`,objectId:a,objectData:{type:`zone`,x:e,y:n,width:400,height:600,label:`New Zone`}})}catch(e){console.error(`Failed to add zone node:`,e),r(e=>e.filter(e=>e.id!==a))}},[t,r,d]),deleteObject:m,deleteZone:p,reorderObject:f,batchUpdateObjectPositions:(0,Q.useCallback)(async e=>{let n=c.current;if(!(!n||!t||Object.keys(e).length===0))try{let r={};for(let[t,a]of Object.entries(e)){if(i.current.has(t))continue;let e=n.objects?.[t];e&&(r[t]={...e,x:a.x,y:a.y})}if(Object.keys(r).length===0)return;await t.service(`boards`).patch(n.board_id,{_action:`batchUpsertObjects`,objects:r})}catch(e){console.error(`Failed to persist object positions:`,e)}},[t,i])}};function Gi(e,t){if(e.positionAbsolute)return{x:e.positionAbsolute.x,y:e.positionAbsolute.y};if(e.parentId){let n=t.find(t=>t.id===e.parentId);if(n){let r=Gi(n,t);return{x:r.x+e.position.x,y:r.y+e.position.y}}}return{x:e.position.x,y:e.position.y}}function Ki(e,t){return e.positionAbsolute?{x:e.positionAbsolute.x,y:e.positionAbsolute.y}:Gi(e,t)}function qi(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ji(e,t){return{x:e.x+t.x,y:e.y+t.y}}function Yi(e,t){return t?qi(e,t.position):e}function Xi(e,t){let n=t.filter(n=>{if(n.type!==`zone`&&n.type!==`branchNode`)return!1;let r=n,i=r.measured?.width||n.width||(typeof n.style?.width==`number`?n.style.width:0),a=r.measured?.height||n.height||(typeof n.style?.height==`number`?n.style.height:0),{x:o,y:s}=Gi(n,t);return e.x>=o&&e.x<=o+i&&e.y>=s&&e.y<=s+a});return{branchNode:n.find(e=>e.type===`branchNode`),zoneNode:n.find(e=>e.type===`zone`)}}function Zi(e,t){if(!t)return null;for(let[n,r]of Object.entries(t))if(r.type===`zone`&&e.x>=r.x&&e.x<=r.x+r.width&&e.y>=r.y&&e.y<=r.y+r.height)return{zoneId:n,zoneData:r};return null}function Qi(e,t){let n=t?.objects?.[e];return{parentId:`zone-${e}`,parentLabel:n?.type===`zone`?`📍 ${n.label}`:void 0,parentColor:n?.type===`zone`?n.color:void 0}}function $i(e,t){let n=t.find(t=>t.branch_id===e);return{parentId:e,parentLabel:n?`🌳 ${n.name}`:void 0,parentColor:void 0}}function ea(e,t){let n=new Set(e.map(e=>e.id)),r=!1,i=e.map(e=>e.parentId&&!n.has(e.parentId)?(r=!0,t?.onOrphan?.(e,e.parentId),{...e,parentId:void 0}):e);return r?i:e}function ta(e){return e?.type===`zone`&&Number.isFinite(e.x)&&Number.isFinite(e.y)&&Number.isFinite(e.width)&&Number.isFinite(e.height)}function na(e,t,n){if(!e)return;let r=t?.[e];if(!r){n?.onInvalid?.(n.entityId,e,`missing zone object`);return}if(!ta(r)){n?.onInvalid?.(n.entityId,e,`zone object is not renderable`);return}return e}async function ra(e,t,n={},r=`empty`){if(!t||typeof t!=`string`)return``;try{return(await e.service(`templates`).create({template:t,context:n,onError:r})).rendered}catch(e){return console.error(`Template render failed:`,e),r===`raw`?t:``}}var ia=({open:e,onCancel:t,client:n,branchId:r,branch:i,sessionsByBranch:a,zoneName:o,trigger:s,boardName:c,boardDescription:l,boardCustomContext:u,availableAgents:d,mcpServerById:f,currentUser:m,onExecute:h})=>{let[_]=V.useForm(),[v,y]=(0,Q.useState)(`create_new`),[b,x]=(0,Q.useState)(`claude-code`),[S,w]=(0,Q.useState)(``),[E,D]=(0,Q.useState)(`prompt`),[O,k]=(0,Q.useState)(``),[ee,A]=(0,Q.useState)(!0),[j,M]=(0,Q.useState)({}),N=(0,Q.useMemo)(()=>a.get(r)||[],[a,r]),te=(0,Q.useMemo)(()=>{if(N.length===0)return``;let e=N.filter(e=>e.status===`running`);return e.length>0?e.sort((e,t)=>new Date(t.last_updated||t.created_at).getTime()-new Date(e.last_updated||e.created_at).getTime())[0].session_id:[...N].sort((e,t)=>new Date(t.last_updated||t.created_at).getTime()-new Date(e.last_updated||e.created_at).getTime())[0].session_id},[N]),P=(0,Q.useMemo)(()=>N.find(e=>e.session_id===S),[S,N]);return(0,Q.useEffect)(()=>{e&&(y(N.length>0?`reuse_existing`:`create_new`),w(te),D(`prompt`),_.resetFields(),M({}))},[e,te,_,N.length]),(0,Q.useEffect)(()=>{if(v===`create_new`&&b){let e=N.length>0?[...N].sort((e,t)=>new Date(t.last_updated||t.created_at).getTime()-new Date(e.last_updated||e.created_at).getTime())[0]:null,t=m?.default_agentic_config?.[b],n=i?.mcp_server_ids&&i.mcp_server_ids.length>0?i.mcp_server_ids:t?.mcpServerIds||[],r={permissionMode:e?.permission_config?.mode||t?.permissionMode,modelConfig:e?.model_config||t?.modelConfig,mcpServerIds:n};_.setFieldsValue(r),M(r)}},[v,b,m,N,_,i?.mcp_server_ids]),(0,Q.useEffect)(()=>{v===`reuse_existing`&&P&&_.setFieldsValue({agent:P.agentic_tool,permissionMode:P.permission_config?.mode,modelConfig:P.model_config})},[v,P,_]),(0,Q.useEffect)(()=>{let e=!1;if(!n){k(s.template),A(!1);return}let t=v===`reuse_existing`&&S?N.find(e=>e.session_id===S):void 0,r=qe({branch:i,board:{name:c,description:l,custom_context:u},zone:{label:o},session:t?{description:t.description,custom_context:t.custom_context}:void 0});return A(!0),ra(n,s.template,r,`raw`).then(t=>{e||(k(t),A(!1))}),()=>{e=!0}},[n,s.template,i,c,l,u,o,v,S,N]),(0,$.jsx)(me,{title:`Zone Trigger: ${o}`,open:e,onCancel:t,onOk:async()=>{if(v===`create_new`)await h({sessionId:`new`,action:`prompt`,renderedTemplate:O,agent:b,modelConfig:j.modelConfig,permissionMode:j.permissionMode,mcpServerIds:j.mcpServerIds});else{let e=_.getFieldsValue(!0),t={sessionId:S,action:E,renderedTemplate:O,permissionMode:e.permissionMode||P?.permission_config?.mode};(E===`fork`||E===`spawn`)&&(t.agent=e.agent||P?.agentic_tool,t.modelConfig=e.modelConfig,t.mcpServerIds=e.mcpServerIds),await h(t)}},okText:`Execute Trigger`,okButtonProps:{disabled:ee},cancelText:`Cancel`,width:700,children:(0,$.jsxs)(F,{orientation:`vertical`,size:`large`,style:{width:`100%`},children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(C.Group,{value:v,onChange:e=>y(e.target.value),style:{width:`100%`},children:(0,$.jsxs)(F,{orientation:`vertical`,size:`middle`,style:{width:`100%`},children:[(0,$.jsx)(C,{value:`create_new`,children:`Create a new session`}),(0,$.jsx)(C,{value:`reuse_existing`,disabled:N.length===0,children:`Reuse a session`})]})}),N.length===0&&(0,$.jsx)(he,{title:`No existing sessions in this branch`,type:`info`,showIcon:!0,style:{marginTop:12}})]}),v===`reuse_existing`&&(0,$.jsxs)(V,{form:_,layout:`vertical`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(g.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Select Session`}),(0,$.jsx)(p,{value:S,onChange:w,style:{width:`100%`},size:`large`,options:N.map(e=>({value:e.session_id,label:(0,$.jsxs)(`span`,{children:[Rt(e,{fallbackChars:50,includeIdFallback:!0}),` `,`(`,e.status,`)`]})}))})]}),(0,$.jsxs)(`div`,{style:{marginTop:24},children:[(0,$.jsx)(g.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Choose Action`}),(0,$.jsx)(C.Group,{value:E,onChange:e=>D(e.target.value),style:{width:`100%`},children:(0,$.jsxs)(F,{orientation:`vertical`,style:{width:`100%`},children:[(0,$.jsx)(C,{value:`prompt`,children:`Prompt - Send message to selected session`}),(0,$.jsx)(C,{value:`fork`,children:`Fork - Fork selected session and send message`}),(0,$.jsx)(C,{value:`spawn`,children:`Spawn - Spawn child session and send message`})]})})]})]}),(0,$.jsxs)(V,{form:_,layout:`vertical`,onValuesChange:e=>{v===`create_new`&&M(t=>({...t,...e}))},children:[v===`create_new`&&(0,$.jsxs)(`div`,{children:[(0,$.jsx)(g.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Select Agent`}),(0,$.jsx)(Z,{agents:d,selectedAgentId:b,onSelect:x,columns:2,showHelperText:!1,showComparisonLink:!1})]}),(0,$.jsx)(T,{ghost:!0,destroyOnHidden:!1,defaultActiveKey:[],expandIcon:({isActive:e})=>(0,$.jsx)(K,{rotate:e?180:0}),items:[{key:`agentic-tool-config`,label:(0,$.jsx)(g.Text,{strong:!0,children:v===`create_new`?`Agentic Tool Configuration (optional)`:`Session Configuration (${P?.agentic_tool||`unknown`})`}),children:(0,$.jsxs)(F,{orientation:`vertical`,size:`middle`,style:{width:`100%`},children:[v===`reuse_existing`&&(0,$.jsx)(he,{title:`Showing current configuration. These settings are for reference.`,type:`info`,showIcon:!0}),(0,$.jsx)(kt,{agenticTool:(v===`create_new`?b:P?.agentic_tool)||`claude-code`,mcpServerById:f,showHelpText:!0})]})}],style:{marginTop:16}})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(g.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Prompt (editable)`}),(0,$.jsx)(U,{spinning:ee,delay:200,description:`Rendering template…`,children:(0,$.jsx)(se.TextArea,{value:O,onChange:e=>k(e.target.value),rows:8,style:{fontFamily:`monospace`,fontSize:`13px`,lineHeight:`1.5`},placeholder:`Edit the rendered prompt before executing...`})})]})]})})},aa=[],oa=Q.memo(({data:e})=>(0,$.jsx)(`div`,{className:`session-node`,children:(0,$.jsx)(Ai,{session:e.session,userById:e.userById,currentUserId:e.currentUserId,onTaskClick:e.onTaskClick,onSessionClick:e.onSessionClick,onDelete:e.onDelete,onOpenSettings:e.onOpenSettings,onUnpin:e.onUnpin,isPinned:e.isPinned,zoneName:e.zoneName,zoneColor:e.zoneColor,defaultExpanded:!e.compact})})),sa=Q.memo(({data:e})=>(0,$.jsx)(`div`,{className:`card-node`,children:(0,$.jsx)(Ti,{data:e})})),ca={sessionNode:oa,branchNode:Q.memo(({data:e})=>{let t=X((0,Q.useMemo)(()=>cn(e.branch.branch_id),[e.branch.branch_id]))??aa,n=X(Ot);return(0,$.jsx)(`div`,{className:`branch-node`,children:(0,$.jsx)(_i,{branch:e.branch,repo:e.repo,sessions:t,progressiveMountKey:e.boardId??`no-board`,userById:n,currentUserId:e.currentUserId,selectedSessionId:e.selectedSessionId,isActiveUrlTarget:e.isActiveUrlTarget,onTaskClick:e.onTaskClick,onSessionClick:e.onSessionClick,onCreateSession:e.onCreateSession,onForkSession:e.onForkSession,onSpawnSession:e.onSpawnSession,onArchiveOrDelete:e.onArchiveOrDelete,onOpenSettings:e.onOpenSettings,onOpenSessionSettings:e.onOpenSessionSettings,onOpenTerminal:e.onOpenTerminal,onStartEnvironment:e.onStartEnvironment,onStopEnvironment:e.onStopEnvironment,onViewLogs:e.onViewLogs,onNukeEnvironment:e.onNukeEnvironment,onExecuteScheduleNow:e.onExecuteScheduleNow,onUnpin:e.onUnpin,isPinned:e.isPinned,zoneName:e.zoneName,client:e.client,zoneColor:e.zoneColor,defaultExpanded:!e.compact})})},(e,t)=>{let n=e.data,r=t.data;return n.branch===r.branch&&n.repo===r.repo&&n.boardId===r.boardId&&n.currentUserId===r.currentUserId&&n.selectedSessionId===r.selectedSessionId&&n.isActiveUrlTarget===r.isActiveUrlTarget&&n.isPinned===r.isPinned&&n.zoneName===r.zoneName&&n.zoneColor===r.zoneColor&&n.compact===r.compact&&n.client===r.client&&n.onTaskClick===r.onTaskClick&&n.onSessionClick===r.onSessionClick&&n.onCreateSession===r.onCreateSession&&n.onForkSession===r.onForkSession&&n.onSpawnSession===r.onSpawnSession&&n.onArchiveOrDelete===r.onArchiveOrDelete&&n.onOpenSettings===r.onOpenSettings&&n.onOpenSessionSettings===r.onOpenSessionSettings&&n.onOpenTerminal===r.onOpenTerminal&&n.onStartEnvironment===r.onStartEnvironment&&n.onStopEnvironment===r.onStopEnvironment&&n.onViewLogs===r.onViewLogs&&n.onNukeEnvironment===r.onNukeEnvironment&&n.onExecuteScheduleNow===r.onExecuteScheduleNow&&n.onUnpin===r.onUnpin}),cardNode:sa,zone:pn,comment:hn,markdown:Li,appNode:Pi,artifactNode:Ii},la=Object.freeze([]),ua=Q.memo(({modal:e,client:t,branches:n,board:r,availableAgents:i,mcpServerById:a,currentUser:o,onCancel:s,onExecute:c})=>{let l=X(Ct);return(0,$.jsx)(ia,{open:!0,onCancel:s,client:t,branchId:e.branchId,branch:n.find(t=>t.branch_id===e.branchId),sessionsByBranch:l,zoneName:e.zoneName,trigger:e.trigger,boardName:r?.name,boardDescription:r?.description,boardCustomContext:r?.custom_context,availableAgents:i,mcpServerById:a,currentUser:o,onExecute:c})}),da=(0,Q.forwardRef)(({board:e,client:t,branches:n,primaryAssistantId:r,currentUserId:o,selectedSessionId:s,activeUrlTargetBranchId:c,activeUrlTargetArtifactId:l,availableAgents:f=[],onSessionClick:p,onTaskClick:m,onSessionUpdate:_,onSessionDelete:v,onForkSession:y,onSpawnSession:b,onUpdateSessionMcpServers:S,onOpenSettings:C,onCreateSessionForBranch:w,onOpenBranch:T,onArchiveOrDeleteBranch:E,onOpenTerminal:D,onStartEnvironment:k,onStopEnvironment:A,onViewLogs:M,onNukeEnvironment:N,onExecuteScheduleNow:te,onOpenCommentsPanel:P,onCommentHover:ne,onCommentSelect:re,staticCursors:ie,staticCursorScale:F,height:ae=`100vh`},oe)=>{let{token:I}=i.useToken(),L=It(),R=X(Jt),ce=X(rn),V=X(lt),le=X(Mt),ue=X(Ot),de=X(Et),fe=fn[_t(I)?`dark`:`light`],pe=!!e?.custom_css?.trim(),he=!!e?.background_color?.trim(),ge=pe||he,_e=ge?void 0:fe,ve=e?.board_id?`board-css-${Ge(e.board_id)}`:``,ye=(0,Q.useMemo)(()=>ge?xi((he?`background: ${e?.background_color};\n`:``)+(e?.custom_css||``),`.${ve}`):``,[e?.custom_css,e?.background_color,ve,ge,he]),be=e?.board_id,xe=X((0,Q.useMemo)(()=>Zt(be),[be]))||la,H=(0,Q.useMemo)(()=>{let e=new Map;for(let t of xe)t.branch_id&&e.set(t.branch_id,t);return e},[xe]),Se=(0,Q.useMemo)(()=>{let e=new Map;for(let t of xe)t.card_id&&e.set(t.card_id,t);return e},[xe]),[Ce,we]=(0,Q.useState)(null),[Te,Ee]=(0,Q.useState)(!1),[U,W]=(0,Q.useState)(`select`),[G,K]=(0,Q.useState)(null),[De,Oe]=(0,Q.useState)(null),[ke,q]=(0,Q.useState)(``),[J,Ae]=(0,Q.useState)(null),[je,Ne]=(0,Q.useState)(``),[Pe,Fe]=(0,Q.useState)(500),[Le,Re]=(0,Q.useState)(null),ze=(0,Q.useRef)(null),Be=(0,Q.useRef)({}),Ve=(0,Q.useRef)(!1);(0,Q.useCallback)((t,n=400,r=200)=>{if(!e?.objects)return null;for(let[i,a]of Object.entries(e.objects)){if(a.type!==`zone`)continue;let e=t.x+n/2,o=t.y+r/2;if(e>=a.x&&e<=a.x+a.width&&o>=a.y&&o<=a.y+a.height)return{zoneId:i,zoneData:a}}return null},[e?.objects]);let He=(0,Q.useRef)({}),Ue=(0,Q.useRef)(new Set),[We,Ke,qe]=et([]),[Je,Ye,Xe]=$e([]),Ze=(0,Q.useRef)(new Set),it=(0,Q.useCallback)((e,t)=>{let n=`${e.id}:${t}`;Ze.current.has(n)||(Ze.current.add(n),console.warn(`Ignoring stale React Flow parentId on board node`,{nodeId:e.id,nodeType:e.type,missingParentId:t}))},[]),Y=(0,Q.useCallback)(e=>{Ke(t=>ea(typeof e==`function`?e(t):e,{onOrphan:it}))},[Ke,it]),ot=(0,Q.useRef)(null),st=(0,Q.useRef)({}),ct=(0,Q.useCallback)((e,t,n)=>{let r=Z.current?.getNode(e);r&&(Ne(t),Fe(n),Ae({position:r.position,objectId:e}),W(`markdown`))},[]),{getBoardObjectNodes:dt,batchUpdateObjectPositions:ft,deleteObject:mt}=Wi({board:e,client:t,boardObjectsForBoard:xe,setNodes:Y,deletedObjectsRef:Ue,eraserMode:U===`eraser`,activeUrlTargetArtifactId:l,onEditMarkdown:ct}),ht=(0,Q.useMemo)(()=>{if(!e?.objects)return{};let t={};return Object.entries(e.objects).forEach(([e,n])=>{n.type===`zone`&&(t[e]=n.label)}),t},[e?.objects]),gt=(0,Q.useRef)(new Set),vt=(0,Q.useCallback)((e,t,n,r)=>{let i=`${e}:${t??`unknown`}:${n}`;gt.current.has(i)||(gt.current.add(i),console.warn(`Ignoring stale board zone reference for ${e} node`,{entityId:t,zoneId:n,reason:r}))},[]),bt=ut(async n=>{if(!e||!t)return;let r=H.get(n);if(!r?.zone_id)return;let i=e.objects?.[r.zone_id];if(!i){console.error(`Cannot unpin: zone not found`,{zoneId:r.zone_id});return}let a=r.position.x+i.x,o=r.position.y+i.y;He.current[n]={x:a,y:o},Y(e=>e.map(e=>e.id===n?{...e,position:{x:a,y:o},parentId:void 0}:e)),await t.service(`board-objects`).patch(r.object_id,{position:{x:a,y:o},zone_id:null})}),xt=(0,Q.useMemo)(()=>{let i=[];return n.forEach((n,a)=>{if(r&&n.branch_id===r)return;let l=H.get(n.branch_id),u=l?{x:l.position.x,y:l.position.y}:{x:100,y:100+a*500},d=l?.zone_id,f=d?ht[d]||`Unknown Zone`:void 0,h=na(d,e?.objects,{entityId:n.branch_id,onInvalid:(e,t,n)=>vt(`branch`,e,t,n)}),g=h?e?.objects?.[h]:void 0,_=g&&g.type===`zone`?g.borderColor||g.color:void 0,v=R.get(n.repo_id);if(!v){console.error(`Repo not found for branch ${n.branch_id}`);return}i.push({id:n.branch_id,type:`branchNode`,dragHandle:xr,position:u,zIndex:500,width:500,height:200,parentId:h,extent:void 0,data:{branch:n,repo:v,boardId:e?.board_id??null,currentUserId:o,selectedSessionId:s,isActiveUrlTarget:n.branch_id===c,onTaskClick:m,onSessionClick:p,onCreateSession:w,onForkSession:y,onSpawnSession:b,onArchiveOrDelete:E,onOpenSettings:T,onOpenSessionSettings:C,onOpenTerminal:D,onStartEnvironment:k,onStopEnvironment:A,onViewLogs:M,onNukeEnvironment:N,onExecuteScheduleNow:te,onUnpin:bt,compact:!1,isPinned:!!h,zoneName:f,zoneColor:_,client:t}})}),i},[e?.objects,e?.board_id,n,r,H,R,o,s,c,p,m,w,y,b,E,T,C,D,k,A,M,N,te,bt,ht,vt,t]),St=ut(e=>{let t=le.get(e);t&&(we(t),Ee(!0))}),Ct=ut(async n=>{if(!e||!t)return;let r=Se.get(n);if(!r?.zone_id)return;let i=e.objects?.[r.zone_id];if(!i)return;let a=r.position.x+i.x,o=r.position.y+i.y;He.current[`card-${n}`]={x:a,y:o},Y(e=>e.map(e=>e.id===`card-${n}`?{...e,position:{x:a,y:o},parentId:void 0}:e)),await t.service(`board-objects`).patch(r.object_id,{position:{x:a,y:o},zone_id:null})}),wt=(0,Q.useMemo)(()=>{let t=[];for(let[n,r]of Se.entries()){let i=le.get(n);if(!i||i.archived)continue;let a={x:r.position.x,y:r.position.y},o=r.zone_id,s=o?ht[o]||`Unknown Zone`:void 0,c=na(o,e?.objects,{entityId:n,onInvalid:(e,t,n)=>vt(`card`,e,t,n)}),l=c?e?.objects?.[c]:void 0,u=l&&l.type===`zone`?l.borderColor||l.color:void 0;t.push({id:`card-${n}`,type:`cardNode`,dragHandle:xr,position:a,zIndex:500,width:380,height:120,parentId:c,extent:void 0,data:{card:i,isPinned:!!c,zoneName:s,zoneColor:u,onClick:St,onUnpin:Ct}})}return t},[e?.objects,Se,le,ht,St,Ct,vt]),Tt=(0,Q.useMemo)(()=>[],[]),Z=(0,Q.useRef)(null),kt=(0,Q.useRef)(null),[At,jt]=(0,Q.useState)(!1),Nt=(0,Q.useRef)(null);(0,Q.useImperativeHandle)(oe,()=>({getViewportCenter:()=>{if(!Z.current||!kt.current)return null;let e=kt.current.getBoundingClientRect(),t=e.left+e.width/2,n=e.top+e.height/2;return Z.current.screenToFlowPosition({x:t,y:n})}}),[]);let Pt=(0,Q.useCallback)(e=>{let t=Z.current;if(!t)return!1;let n=t.getNodes(),r=t.getNode(e);if(r||=n.find(t=>t.data?.artifactId===e),!r)return!1;let i=Ki(r,n),a=r.width??500,o=r.height??200;return t.setCenter(i.x+a/2,i.y+o/2,{zoom:t.getZoom(),duration:400}),!0},[]);yt(Pt);let Ft=pt();vi({client:t,boardId:e?.board_id,reactFlowInstance:Z.current,enabled:!!e&&!!t&&!ie});let Lt=(0,Q.useMemo)(()=>{let t=[],r=an(V),i=r.filter(t=>(t.position?.absolute||t.position?.relative)&&t.board_id===e?.board_id&&!t.resolved),a=new Map;for(let e of r)e.parent_comment_id&&a.set(e.parent_comment_id,(a.get(e.parent_comment_id)||0)+1);for(let r of i){let i=r.created_by?ue.get(r.created_by):void 0,o,s,c,l;if(r.position?.relative){let t=r.position.relative;if(o={x:t.offset_x,y:t.offset_y},t.parent_type===`zone`){let n=`zone-${t.parent_id}`;if(e?.objects?.[n]?.type===`zone`){let n=Qi(t.parent_id,e??void 0);s=n.parentId,c=n.parentLabel,l=n.parentColor}else continue}else if(t.parent_type===`branch`)if(ce.get(t.parent_id)){let e=$i(t.parent_id,n);s=e.parentId,c=e.parentLabel,l=e.parentColor}else continue}else if(r.position?.absolute)o=r.position.absolute,s=void 0,c=void 0,l=void 0;else continue;t.push({id:`comment-${r.comment_id}`,type:`comment`,position:o,parentId:s,selectable:!0,zIndex:1e3,data:{comment:r,replyCount:a.get(r.comment_id)||0,user:i,parentLabel:c,parentColor:l,onClick:e=>{re?.(e),P?.()},onHover:e=>{ne?.(e)},onLeave:()=>{ne?.(null)}}})}return t},[V,e,n,ue,ce,P,ne,re]),Rt=(0,Q.useCallback)((e,t,n)=>{let r=new Map;for(let e of n)r.set(e.id,e);for(let t of e)r.set(t.id,t);return e.map(e=>{let n=t.get(e.id),i=He.current[e.id];if(i){let t=e.position;if(e.parentId){let n=r.get(e.parentId);n&&(t=Ji(e.position,n.position))}if(Math.abs(i.x-t.x)<=1&&Math.abs(i.y-t.y)<=1)return delete He.current[e.id],{...e,selected:n?.selected,zIndex:n?.zIndex??e.zIndex};let a=i;if(e.parentId){let t=r.get(e.parentId);t&&(a=qi(i,t.position))}return{...e,position:a,selected:n?.selected,zIndex:n?.zIndex??e.zIndex}}return{...e,selected:n?.selected,zIndex:n?.zIndex??e.zIndex}})},[]),zt=(0,Q.useCallback)(e=>{if(e.type===`comment`)return I.colorText;if(e.type===`markdown`)return`${I.colorText}B3`;if(e.type===`zone`)return`${I.colorText}66`;if(e.type===`cardNode`)return e.data.card?.effective_color||I.colorPrimaryBorder;let t=e.data.session;if(!t)return I.colorPrimaryBorder;switch(t.status){case`running`:return I.colorPrimary;case`completed`:return I.colorSuccess;case`failed`:return I.colorError;default:return I.colorPrimaryBorder}},[I.colorText,I.colorPrimaryBorder,I.colorPrimary,I.colorSuccess,I.colorError]),Bt=(0,Q.useCallback)(e=>{let t=[],n=[],r=[],i=[],a=[],o=[];for(let s of e)switch(s.type){case`zone`:t.push(s);break;case`markdown`:n.push(s);break;case`branchNode`:r.push(s);break;case`cardNode`:i.push(s);break;case`appNode`:case`artifactNode`:a.push(s);break;case`comment`:o.push(s);break}return{zones:t,markdown:n,branches:r,cards:i,apps:a,comments:o}},[]),Ht=(0,Q.useCallback)((e,t,n,r,i,a=[])=>ea([...e,...n,...r,...a,...t,...i],{onOrphan:it}),[it]);(0,Q.useEffect)(()=>{if(Ve.current)return;let e=dt();Y(t=>{let{comments:n}=Bt(t),r=new Map(t.map(e=>[e.id,e])),i=e.filter(e=>e.type===`zone`&&!Ue.current.has(e.id)).map(e=>{let t=r.get(e.id),n=e.zIndex??Bi.zone;return{...e,selected:t?.selected,zIndex:Hi(n,!!t?.selected)}}),a=e.filter(e=>e.type===`markdown`&&!Ue.current.has(e.id)).map(e=>{let t=r.get(e.id);return{...e,selected:t?.selected}}),o=e.filter(e=>(e.type===`appNode`||e.type===`artifactNode`)&&!Ue.current.has(e.id)).map(e=>{let t=r.get(e.id);return{...e,selected:t?.selected}});return Ht(i,a,Rt(xt,r,i),Rt(wt,r,i),n,o)})},[xt,wt,dt,Y,Ht,Rt,Bt]),(0,Q.useEffect)(()=>{Ve.current||Y(e=>{let{zones:t,markdown:n,branches:r,cards:i,apps:a}=Bt(e),o=new Map;for(let e of t)o.set(e.id,e);for(let e of r)o.set(e.id,e);return Ht(t,n,r,i,Lt.map(e=>{let t=He.current[e.id];if(t){let n=e.position;if(e.parentId){let t=o.get(e.parentId);t&&(n=Ji(e.position,t.position))}if(Math.abs(t.x-n.x)<=1&&Math.abs(t.y-n.y)<=1)return delete He.current[e.id],e;let r=t;if(e.parentId){let n=o.get(e.parentId);n&&(r=qi(t,n.position))}return{...e,position:r}}return e}),a)})},[Lt,Y,Ht,Bt]),(0,Q.useEffect)(()=>{Ye(Tt)},[Tt,Ye]),(0,Q.useEffect)(()=>{if(!At||!Z.current||We.length===0||e?.board_id===Nt.current)return;let t=setTimeout(()=>{let t=Ft();if(t&&Pt(t)){Nt.current=e?.board_id??null;return}Z.current?.fitView({padding:.2,minZoom:.1,maxZoom:1,duration:200}),Nt.current=e?.board_id??null},100);return()=>clearTimeout(t)},[At,We.length,e?.board_id,Ft,Pt]);let Ut=(0,Q.useCallback)(n=>{let r=n.filter(e=>e.type===`select`);r.length>0&&Y(e=>{let t=new Map(r.map(e=>[e.id,e])),n=!1,i=e.map(e=>{if(e.type!==`zone`)return e;let r=t.get(e.id);if(!r)return e;let i=Hi(e.data?.zIndex??Bi.zone,!!r.selected);return e.zIndex===i?e:(n=!0,{...e,zIndex:i})});return n?i:e}),n.forEach(n=>{if(n.type===`dimensions`&&n.dimensions){let r=Z.current?.getNode(n.id);if(r?.type===`zone`){let i=r.style?.width,a=r.style?.height,o=n.dimensions.width,s=n.dimensions.height;if(i&&a&&Math.abs(Number(i)-o)<1&&Math.abs(Number(a)-s)<1)return;st.current[n.id]={width:o,height:s},ot.current&&clearTimeout(ot.current),ot.current=setTimeout(async()=>{let n=st.current;if(st.current={},!(!e||!t))for(let[r,i]of Object.entries(n)){let n=e.objects?.[r];if(n&&n.type===`zone`){let a={...n,width:i.width,height:i.height};try{await t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:r,objectData:a})}catch(e){console.error(`Failed to persist zone resize:`,e)}}}},500)}}}),qe(n)},[e,t,qe,Y]),Wt=(0,Q.useCallback)(()=>{Ve.current=!0},[]),Gt=(0,Q.useCallback)((e,t)=>{let n=t.positionAbsolute||t.position;He.current[t.id]={x:n.x,y:n.y}},[]),Kt=(0,Q.useCallback)((n,r)=>{if(!e||!t||!Z.current)return;Ve.current=!1;let i=r.positionAbsolute||r.position;He.current[r.id]={x:i.x,y:i.y},Be.current[r.id]={x:i.x,y:i.y},ze.current&&clearTimeout(ze.current),ze.current=setTimeout(async()=>{let n=Be.current;Be.current={};try{let r=[],i={},a={},o={},s=[],c=We;for(let[l,u]of Object.entries(n)){let n=c.find(e=>e.id===l);if(n?.type===`zone`)i[l]=u;else if(n?.type===`markdown`)a[l]=u;else if(n?.type===`artifactNode`)o[l]=u;else if(n?.type===`comment`){let e=l.replace(`comment-`,``),t=u,{branchNode:n,zoneNode:r}=Xi(t,c),i,a,o;n?(i=n.id,a=`branch`,o=n.id):r&&(i=r.id.replace(`zone-`,``),a=`zone`,o=r.id),s.push({comment_id:e,position:t,parentId:i,parentType:a,newReactFlowParentId:o})}else if(n?.type===`cardNode`){let r=l.replace(`card-`,``),i=u,a=n.width||380,o=n.height||120,s=Zi({x:i.x+a/2,y:i.y+o/2},e.objects),d=s?.zoneId,f=s?{x:s.zoneData.x,y:s.zoneData.y}:null;if(d){let e=c.find(e=>e.id===d);e&&(f={x:e.position.x,y:e.position.y})}let p=Yi(i,d&&f?{id:d,position:f}:null),m=Se.get(r);if(m){let e={position:p,zone_id:d??null};await t.service(`board-objects`).patch(m.object_id,e)}}else if(n?.type===`branchNode`){let i=u,a=n.width||500,o=n.height||200,s=Zi({x:i.x+a/2,y:i.y+o/2},e.objects),d=s?.zoneId,f=s?{x:s.zoneData.x,y:s.zoneData.y}:null;if(d){let e=c.find(e=>e.id===d);e&&(f={x:e.position.x,y:e.position.y})}let p=H.get(l)?.zone_id,m=Yi(i,d&&f?{id:d,position:f}:null);if(r.push({branch_id:l,position:m,zone_id:d??null}),s){let{zoneId:e,zoneData:n}=s,r=p!==e,i=n.trigger;i&&r&&(i.behavior===`always_new`?(async()=>{try{await t.service(`branches/${l}/fire-zone-trigger`).create({zoneId:e})}catch(e){console.error(`❌ Failed to execute always_new trigger:`,e)}})():Re({branchId:l,zoneName:n.label,zoneId:e,trigger:i}))}}}if(r.length>0)for(let{branch_id:n,position:i,zone_id:a}of r){let r=H.get(n);if(r){let e={position:i,zone_id:a};await t.service(`board-objects`).patch(r.object_id,e)}else await t.service(`board-objects`).create({board_id:e.board_id,branch_id:n,position:i,...a?{zone_id:a}:{}})}Object.keys(i).length>0&&await ft(i),Object.keys(a).length>0&&await ft(a),Object.keys(o).length>0&&await ft(o);for(let{comment_id:e,position:n,parentId:r,parentType:i,newReactFlowParentId:a}of s){let o={};if(r&&i===`zone`){let e=c.find(e=>e.id===`zone-${r}`);if(e){let t=Yi(n,{id:r,position:Ki(e,c)});o.position={relative:{parent_id:r,parent_type:`zone`,offset_x:t.x,offset_y:t.y}}}else o.position={absolute:n},o.branch_id=null}else if(r&&i===`branch`){let e=c.find(e=>e.id===r);if(e){let t=Yi(n,{id:r,position:Ki(e,c)});o.branch_id=r,o.position={relative:{parent_id:r,parent_type:`branch`,offset_x:t.x,offset_y:t.y}}}else o.position={absolute:n},o.branch_id=null}else o.position={absolute:n},o.branch_id=null;await t.service(`board-comments`).patch(e,o),delete He.current[`comment-${e}`],Y(t=>t.map(r=>{if(r.id===`comment-${e}`){let e={parentId:a};if(a!==r.parentId)if(a){let r=t.find(e=>e.id===a);r&&(e.position=Yi(n,{id:a,position:Ki(r,t)}))}else e.position=n;return{...r,...e}}return r}))}}catch(e){console.error(`Failed to persist layout:`,e)}},500)},[e,t,ft,We,H,Se,Y]);(0,Q.useEffect)(()=>()=>{ze.current&&clearTimeout(ze.current),ot.current&&clearTimeout(ot.current)},[]);let qt=(0,Q.useCallback)(e=>{Z.current&&U===`zone`&&K({start:{x:e.clientX,y:e.clientY},end:{x:e.clientX,y:e.clientY}})},[U]),Yt=(0,Q.useCallback)(e=>{U===`zone`&&G&&e.buttons===1&&K({start:G.start,end:{x:e.clientX,y:e.clientY}})},[U,G]),Xt=(0,Q.useCallback)(()=>{if(U===`zone`&&G&&Z.current){if(!L.canMutate){K(null),W(`select`);return}let{start:n,end:r}=G,i=Math.min(n.x,r.x),a=Math.min(n.y,r.y),o=Math.abs(r.x-n.x),s=Math.abs(r.y-n.y);if(o>50&&s>50){let n=Z.current.screenToFlowPosition({x:i,y:a}),r=Z.current.getViewport(),c=o/r.zoom,l=s/r.zoom,u=`zone-${Date.now()}`,d=`#d9d9d9`,f=`#d9d9d91a`;Y(r=>[...r,{id:u,type:`zone`,position:n,zIndex:Bi.zone,style:{width:c,height:l},data:{objectId:u,label:`New Zone`,width:c,height:l,borderColor:d,backgroundColor:f,onUpdate:(n,r)=>{e&&t&&t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:n,objectData:r}).catch(console.error)}}}]),e&&t&&t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:u,objectData:{type:`zone`,x:n.x,y:n.y,width:c,height:l,label:`New Zone`,borderColor:d,backgroundColor:f}}).catch(e=>{console.error(`Failed to add zone:`,e),Y(e=>e.filter(e=>e.id!==u))})}K(null),W(`select`)}},[U,G,e,t,Y,L.canMutate]),Qt=(0,Q.useCallback)(e=>!L.canMutate||!Z.current?!1:(Ae({position:Z.current.screenToFlowPosition({x:e.clientX,y:e.clientY})}),!0),[L.canMutate]),$t=(0,Q.useCallback)(e=>{U===`comment`&&Z.current&&Oe({position:Z.current.screenToFlowPosition({x:e.clientX,y:e.clientY}),screenPosition:{x:e.clientX,y:e.clientY}}),U===`markdown`&&Qt(e)},[U,Qt]),en=(0,Q.useCallback)(async()=>{if(!(!De||!e||!t||!o||!ke.trim())&&L.canMutate)try{let n=De.position,{branchNode:r,zoneNode:i}=Xi(n,Z.current?.getNodes()||[]),a={board_id:e.board_id,created_by:o,content:ke.trim(),resolved:!1,edited:!1,reactions:[]};if(r){let e=r.id;a.branch_id=e,a.position={relative:{parent_id:e,parent_type:`branch`,offset_x:n.x-r.position.x,offset_y:n.y-r.position.y}}}else i?a.position={relative:{parent_id:i.id.replace(`zone-`,``),parent_type:`zone`,offset_x:n.x-i.position.x,offset_y:n.y-i.position.y}}:a.position={absolute:n};await t.service(`board-comments`).create(a),Oe(null),q(``),W(`select`)}catch(e){console.error(`Failed to create spatial comment:`,e)}},[De,e,t,o,ke,L.canMutate]),tn=(0,Q.useCallback)(async()=>{if(!J||!e||!t||!je.trim()||!L.canMutate)return;let n=J.objectId||`markdown-${Date.now()}`,r=J.position;Y(i=>J.objectId?i.map(e=>e.id===n?{...e,data:{...e.data,content:je,width:Pe}}:e):[...i,{id:n,type:`markdown`,position:r,zIndex:300,data:{objectId:n,content:je,width:Pe,onUpdate:(n,r)=>{e&&t&&t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:n,objectData:r}).catch(console.error)},onEdit:ct,onDelete:mt}}]);try{await t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:n,objectData:{type:`markdown`,x:r.x,y:r.y,width:Pe,content:je}})}catch(e){console.error(`Failed to save markdown note:`,e),J.objectId||Y(e=>e.filter(e=>e.id!==n))}Ae(null),Ne(``),Fe(500),W(`select`)},[J,e,t,je,Pe,Y,ct,mt,L.canMutate]),nn=(0,Q.useCallback)((e,t)=>{if(U===`eraser`){if(!L.canMutate)return;(t.type===`zone`||t.type===`markdown`)&&mt(t.id);return}if(U===`comment`&&Z.current){(t.type===`branchNode`||t.type===`zone`)&&Oe({position:Z.current.screenToFlowPosition({x:e.clientX,y:e.clientY}),screenPosition:{x:e.clientX,y:e.clientY}});return}if(U===`markdown`){Qt(e);return}t.type!==`zone`&&t.type!==`comment`&&Y(e=>{let n=e.filter(e=>e.type!==`zone`&&e.type!==`comment`),r=e.find(e=>e.id===t.id)?.zIndex??0;if(n.every(e=>e.id===t.id||(e.zIndex??0)<r))return e;let i=Math.max(0,...n.map(e=>e.zIndex??0));return e.map(e=>e.id===t.id?{...e,zIndex:i+1}:e)})},[U,mt,L.canMutate,Qt,Y]);return(0,Q.useEffect)(()=>{U!==`comment`&&De&&(Oe(null),q(``))},[U,De]),(0,Q.useEffect)(()=>{!L.canMutate&&U!==`select`&&(W(`select`),K(null),Oe(null),q(``),Ae(null))},[L.canMutate,U]),(0,$.jsxs)(`div`,{style:{width:`100%`,height:ae,position:`relative`},onPointerDown:qt,onPointerMove:Yt,onPointerUp:Xt,children:[G&&(0,$.jsx)(`div`,{style:{position:`fixed`,left:Math.min(G.start.x,G.end.x),top:Math.min(G.start.y,G.end.y),width:Math.abs(G.end.x-G.start.x),height:Math.abs(G.end.y-G.start.y),border:`2px dashed #1677ff`,background:`rgba(22, 119, 255, 0.1)`,pointerEvents:`none`,zIndex:1e3}}),ye&&(0,$.jsx)(`style`,{children:ye}),(0,$.jsx)(`div`,{ref:kt,className:ve||void 0,style:{width:`100%`,height:`100%`,background:_e},children:(0,$.jsxs)(nt,{nodes:We,edges:Je,onNodesChange:Ut,onEdgesChange:Xe,onNodeDragStart:Wt,onNodeDrag:Gt,onNodeDragStop:Kt,onNodeClick:nn,onPaneClick:$t,onInit:e=>{Z.current=e,jt(!0)},nodeTypes:ca,snapToGrid:!0,snapGrid:[20,20],minZoom:.1,maxZoom:1.5,nodesDraggable:L.canMutate,nodesConnectable:!1,elementsSelectable:!0,elevateNodesOnSelect:!1,panOnScroll:U===`select`&&!G,panOnDrag:!G,selectionOnDrag:!1,className:`tool-mode-${U}`,deleteKeyCode:null,selectionKeyCode:null,multiSelectionKeyCode:null,panActivationKeyCode:null,zoomActivationKeyCode:[`Meta`,`Control`],disableKeyboardA11y:!0,style:{background:`transparent`},children:[!_e&&(0,$.jsx)(rt,{}),(0,$.jsxs)(tt,{position:`top-left`,showZoom:!1,showFitView:!1,showInteractive:!1,children:[(0,$.jsx)(j,{title:`Zoom In`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(at,{onClick:e=>{e.stopPropagation(),Z.current?.zoomIn()},children:(0,$.jsx)(x,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(j,{title:`Zoom Out`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(at,{onClick:e=>{e.stopPropagation(),Z.current?.zoomOut()},children:(0,$.jsx)(u,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(j,{title:`Fit View`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(at,{onClick:e=>{e.stopPropagation(),Z.current?.fitView()},children:(0,$.jsx)(B,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(j,{title:`Select`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(at,{onClick:e=>{e.stopPropagation(),W(`select`)},style:{borderLeft:U===`select`?`3px solid #1677ff`:`none`},children:(0,$.jsx)(O,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(j,{title:L.canMutate?`Add Zone`:L.message??`Add Zone`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(at,{disabled:!L.canMutate,onClick:e=>{e.stopPropagation(),W(`zone`)},style:{borderLeft:U===`zone`?`3px solid #1677ff`:`none`,opacity:L.canMutate?1:.4,cursor:L.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(ee,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(j,{title:L.canMutate?`Add Comment`:L.message??`Add Comment`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(at,{disabled:!L.canMutate,onClick:e=>{e.stopPropagation(),W(`comment`)},style:{borderLeft:U===`comment`?`3px solid #1677ff`:`none`,opacity:L.canMutate?1:.4,cursor:L.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(Me,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(j,{title:L.canMutate?`Add Markdown Note — click canvas to place`:L.message??`Add Markdown Note — click canvas to place`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(at,{"aria-label":`Add Markdown Note`,disabled:!L.canMutate,onClick:e=>{e.stopPropagation(),W(`markdown`)},style:{borderLeft:U===`markdown`?`3px solid #1677ff`:`none`,opacity:L.canMutate?1:.4,cursor:L.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(z,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(j,{title:L.canMutate?`Eraser - Click to toggle`:L.message??`Eraser`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(at,{disabled:!L.canMutate,onClick:e=>{e.stopPropagation(),W(U===`eraser`?`select`:`eraser`)},style:{borderLeft:U===`eraser`?`3px solid ${I.colorError}`:`none`,color:U===`eraser`?I.colorError:`inherit`,backgroundColor:U===`eraser`?`${I.colorError}15`:`transparent`,opacity:L.canMutate?1:.4,cursor:L.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(Ie,{style:{fontSize:`16px`}})})})})]}),(0,$.jsx)(Qe,{nodeColor:zt,pannable:!0,zoomable:!0,style:{backgroundColor:I.colorBgElevated,border:`1px solid ${I.colorBorder}`},maskColor:`rgba(0, 0, 0, 0.5)`,maskStrokeColor:I.colorPrimary,maskStrokeWidth:2}),(0,$.jsx)(zi,{client:t,boardId:e?.board_id??null,users:an(ue),enabled:!!e&&!!t,staticCursors:ie,staticCursorScale:F})]})}),De&&(0,$.jsx)(h,{open:!0,content:(0,$.jsxs)(`div`,{style:{width:300},children:[(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsx)(gn,{placeholder:`Add a comment... (type @ for users, : for emojis)`,value:ke,onChange:q,onKeyPress:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),ke.trim()&&en())},autoSize:{minRows:3,maxRows:6},client:t,sessionId:null,userById:ue})}),(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,gap:8},children:[(0,$.jsx)(d,{onClick:()=>{Oe(null),q(``),W(`select`)},children:`Cancel`}),(0,$.jsx)(d,{type:`primary`,onClick:en,disabled:!ke.trim(),children:`Comment`})]})]}),getPopupContainer:()=>document.body,children:(0,$.jsx)(`div`,{style:{position:`fixed`,left:De.screenPosition.x,top:De.screenPosition.y,width:1,height:1,pointerEvents:`none`}})}),J&&(0,$.jsxs)(me,{open:!0,title:J.objectId?`Edit Markdown Note`:`Add Markdown Note`,onCancel:()=>{Ae(null),Ne(``),Fe(500),W(`select`)},onOk:tn,okText:J.objectId?`Save`:`Create`,okButtonProps:{disabled:!je.trim()},width:1e3,children:[(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:16,marginBottom:16},children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(g.Text,{strong:!0,children:`Width:`}),(0,$.jsx)(a,{min:200,max:2e3,step:100,value:Pe,onChange:Fe,marks:{200:`200px`,500:`500px`,1e3:`1000px`,1500:`1500px`,2e3:`2000px`},style:{marginTop:8}})]})}),(0,$.jsxs)(`div`,{style:{display:`flex`,gap:16},children:[(0,$.jsxs)(`div`,{style:{flex:1},children:[(0,$.jsx)(g.Text,{strong:!0,children:`Content (Markdown supported):`}),(0,$.jsx)(se.TextArea,{value:je,onChange:e=>Ne(e.target.value),placeholder:`# Title
5
+
6
+ - Bullet point
7
+ - Another point
8
+
9
+ **Bold** and *italic*
10
+
11
+ \`\`\`javascript
12
+ const code = "example";
13
+ \`\`\``,autoFocus:!0,rows:20,style:{fontFamily:`monospace`,marginTop:8,height:`500px`}})]}),(0,$.jsxs)(`div`,{style:{flex:1},children:[(0,$.jsx)(g.Text,{strong:!0,children:`Preview:`}),(0,$.jsx)(`div`,{style:{marginTop:8,padding:12,border:`1px solid ${I.colorBorder}`,borderRadius:4,height:`500px`,overflow:`auto`,background:I.colorBgContainer},children:je.trim()?(0,$.jsx)(Dt,{content:je}):(0,$.jsx)(g.Text,{type:`secondary`,children:`Preview will appear here...`})})]})]})]}),Le&&(0,$.jsx)(ua,{modal:Le,onCancel:()=>Re(null),client:t,branches:n,board:e,availableAgents:f,mcpServerById:de,currentUser:o&&ue.get(o)||null,onExecute:async({sessionId:e,action:n,renderedTemplate:r,agent:i,modelConfig:a,permissionMode:o,mcpServerIds:s})=>{if(!t){console.error(`❌ Cannot execute trigger: client not available`),Re(null);return}try{let c=e;if(e===`new`&&(c=(await t.service(`sessions`).create({branch_id:Le.branchId,agentic_tool:i||`claude-code`,description:`Session from zone "${Le.zoneName}"`,status:`idle`,model_config:a?{...a,updated_at:new Date().toISOString()}:void 0,permission_config:o?{mode:o}:void 0})).session_id,s&&s.length>0))for(let e of s)await t.service(`sessions/${c}/mcp-servers`).create({mcpServerId:e});let l;switch(n){case`prompt`:await t.sessions.prompt(c,r,{permissionMode:o,messageSource:`agor`}),l=c;break;case`fork`:{let e=await t.service(`sessions/${c}/fork`).create({});await t.sessions.prompt(e.session_id,r,{permissionMode:o,messageSource:`agor`}),l=e.session_id;break}case`spawn`:{let e=await t.service(`sessions/${c}/spawn`).create({});await t.sessions.prompt(e.session_id,r,{permissionMode:o,messageSource:`agor`}),l=e.session_id;break}}l&&p?.(l)}catch(e){console.error(`❌ Failed to execute zone trigger:`,e)}finally{Re(null)}}}),(0,$.jsx)(Vt,{open:Te,card:Ce,board:e,zoneName:Ce?(()=>{let e=Se.get(Ce.card_id);return e?.zone_id&&ht[e.zone_id]||void 0})():void 0,zoneColor:Ce?(()=>{let t=Se.get(Ce.card_id);if(!t?.zone_id)return;let n=e?.objects?.[t.zone_id];return n&&n.type===`zone`?n.borderColor||n.color:void 0})():void 0,client:t,onClose:()=>{Ee(!1),we(null)},onCardUpdated:e=>{we(e)},onCardDeleted:()=>{Ee(!1),we(null)}})]})});da.displayName=`SessionCanvas`;var fa=Q.memo(da);export{vn as _,ni as a,Zr as c,Hr as d,Vr as f,fr as g,Pr as h,ri as i,Fr as l,Gr as m,_i as n,$r as o,Ur as p,li as r,Qr as s,fa as t,Wr as u,yn as v};
@@ -1,4 +1,4 @@
1
- import{At as e,bn as t,on as n}from"./antd-CfbbHJOz.js";import{N as r}from"./editor-CzFWIUw2.js";import{P as i}from"./index-BN5_Qq7R.js";var a=r(),{Title:o}=e,s=`# Streamdown Feature Showcase
1
+ import{It as e,_n as t,jn as n}from"./antd-BCqimh1J.js";import{N as r}from"./editor-Cr0W5BQI.js";import{P as i}from"./index-B-qHc0o5.js";var a=r(),{Title:o}=e,s=`# Streamdown Feature Showcase
2
2
 
3
3
  ## 🎨 Mermaid Diagrams
4
4
 
@@ -173,4 +173,4 @@ Check out the [Streamdown documentation](https://streamdown.ai) for more details
173
173
  ---
174
174
 
175
175
  *This demo showcases the power of Streamdown for rendering rich markdown content in AI-powered applications!*
176
- `,c=()=>(0,a.jsx)(`div`,{style:{padding:`24px`,maxWidth:`1200px`,margin:`0 auto`},children:(0,a.jsxs)(n,{orientation:`vertical`,size:`large`,style:{width:`100%`},children:[(0,a.jsx)(o,{level:2,children:`Streamdown Feature Showcase`}),(0,a.jsx)(t,{children:(0,a.jsx)(i,{content:s})})]})}),l=()=>(0,a.jsx)(c,{});export{l as StreamdownDemoPage};
176
+ `,c=()=>(0,a.jsx)(`div`,{style:{padding:`24px`,maxWidth:`1200px`,margin:`0 auto`},children:(0,a.jsxs)(t,{orientation:`vertical`,size:`large`,style:{width:`100%`},children:[(0,a.jsx)(o,{level:2,children:`Streamdown Feature Showcase`}),(0,a.jsx)(n,{children:(0,a.jsx)(i,{content:s})})]})}),l=()=>(0,a.jsx)(c,{});export{l as StreamdownDemoPage};
@@ -0,0 +1,2 @@
1
+ import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{Xn as t,in as n,ur as r}from"./antd-BCqimh1J.js";import{D as i}from"./src-DEbsv3pp.js";import{N as a}from"./editor-Cr0W5BQI.js";import{t as o}from"./constants-CYzQKfD1.js";import{n as s,r as c,t as l}from"./xterm-BkujP7YO.js";var u=e(r(),1),d=a(),f=`\x1B]8;`,p=`\x1B]8;;\x07`,m=`\x07`,h=e=>{let t=``,n=0;for(;n<e.length;){let r=e.indexOf(f,n);if(r===-1){t+=e.slice(n);break}t+=e.slice(n,r);let i=r+4,a=e.indexOf(m,i);if(a===-1){t+=e.slice(r);break}let o=e.slice(i,a),s=o.lastIndexOf(`;`),c=(s===-1?o:o.slice(s+1)).trim(),l=a+1,u=e.indexOf(p,l);if(u===-1){t+=e.slice(l);break}let d=e.slice(l,u);if(!c)t+=d;else if(d.includes(c))t+=d;else{let e=d.trim(),n=e.length>0?e:c;t+=`${n} (${c})`}n=u+6}return t},g=({open:e,onClose:r,client:a,user:f,branchId:p,initialCommands:m=[]})=>{let{modal:g}=t.useApp(),_=(0,u.useRef)(null),v=(0,u.useRef)(null),[y,b]=(0,u.useState)(!1),[x,S]=(0,u.useState)(!1),[C,w]=(0,u.useState)(!1),[T,E]=(0,u.useState)({}),D=i(f?.role,o);return(0,u.useEffect)(()=>{if(!e||!x||!_.current||!a||!D)return;if(!f?.user_id){console.error(`[Terminal] Terminal requires authenticated user`);return}let t=!0,n=null,r=e=>e,i=a.io,o=()=>{i&&(i.off(`terminal:output`,u),i.off(`terminal:exit`,d),n&&i.emit(`leave`,n))},u=e=>{v.current&&e.userId===f?.user_id&&v.current.write(r(e.data))},d=e=>{v.current&&e.userId===f?.user_id&&(v.current.writeln(`\r\n\r\n[Terminal exited with code ${e.exitCode}]`),v.current.writeln(`[Close and reopen terminal to start a new session]`),b(!1))},g=()=>{let e=new l({allowProposedApi:!0,fontSize:14,fontFamily:`Menlo, Monaco, "Courier New", monospace`,cursorBlink:!0,scrollback:1e3,rows:40,cols:160,linkHandler:{activate:(e,t)=>{window.open(t,`_blank`,`noopener,noreferrer`)},hover:()=>{}},theme:{background:`#141414`,foreground:`#ffffff`,cursor:`#2e9a92`,cursorAccent:`#141414`,black:`#000000`,red:`#ff4d4f`,green:`#52c41a`,yellow:`#faad14`,blue:`#1890ff`,magenta:`#eb2f96`,cyan:`#2e9a92`,white:`#f0f0f0`,brightBlack:`#8c8c8c`,brightRed:`#ff7875`,brightGreen:`#95de64`,brightYellow:`#ffc53d`,brightBlue:`#40a9ff`,brightMagenta:`#f759ab`,brightCyan:`#3db5ab`,brightWhite:`#ffffff`}});e.open(_.current),v.current=e;let t=new c;e.loadAddon(t);let n=new s((e,t)=>{window.open(t,`_blank`,`noopener,noreferrer`)});return e.loadAddon(n),e};return(async()=>{let e=g();try{let o=await a.service(`terminals`).create({rows:40,cols:160,branchId:p});if(!t)return;if(n=o.channel,b(!0),r=h,E({zellijSession:o.sessionName,zellijReused:!o.isNew,branchName:o.branchName}),o.isNew&&e.clear(),i.emit(`join`,o.channel),i.on(`terminal:output`,u),i.on(`terminal:exit`,d),e.onData(e=>{i.emit(`terminal:input`,{userId:f?.user_id,input:e})}),e.onResize(({cols:e,rows:t})=>{i.emit(`terminal:resize`,{userId:f?.user_id,cols:e,rows:t})}),i.emit(`terminal:resize`,{userId:f?.user_id,cols:e.cols,rows:e.rows}),m.length>0)for(let e of m)i.emit(`terminal:input`,{userId:f?.user_id,input:`${e}\r`})}catch(e){console.error(`[Terminal] Failed to create terminal:`,e);let t=e instanceof Error?e.message:String(e);if(/zellij is not installed/i.test(t)){w(!0),v.current&&=(v.current.dispose(),null);return}v.current&&(v.current.writeln(`\r
2
+ Failed to connect to terminal`),v.current.writeln(`Error: ${t}`))}})(),()=>{t=!1,v.current&&=(v.current.dispose(),null),o(),b(!1),E({}),w(!1)}},[e,x,a,m,D,p,f?.user_id]),(0,d.jsx)(n,{title:`Terminal${T.branchName?` - ${T.branchName}`:``}`,open:e,onCancel:()=>{y?g.confirm({title:`Close Terminal?`,content:`The Zellij session will continue running in the background. You can reconnect by reopening the terminal.`,okText:`Close`,okType:`primary`,cancelText:`Cancel`,onOk:()=>{r()}}):r()},afterOpenChange:S,footer:null,width:`auto`,styles:{body:{padding:`16px`,background:`#000`}},centered:!0,children:D?C?(0,d.jsxs)(`div`,{style:{padding:`24px`,color:`#fff`,maxWidth:560},children:[(0,d.jsx)(`p`,{style:{marginTop:0},children:(0,d.jsx)(`strong`,{children:`Zellij isn't installed on the daemon host.`})}),(0,d.jsxs)(`p`,{children:[`The web terminal uses`,` `,(0,d.jsx)(`a`,{href:`https://zellij.dev/`,target:`_blank`,rel:`noopener noreferrer`,style:{color:`#3db5ab`},children:`Zellij`}),` `,`for persistent, multiplexed sessions. Install it to enable terminals — everything else in Agor works without it.`]}),(0,d.jsx)(`p`,{style:{marginBottom:0},children:(0,d.jsx)(`a`,{href:`https://agor.live/guide/extended-install#optional-zellij-for-the-web-terminal`,target:`_blank`,rel:`noopener noreferrer`,style:{color:`#3db5ab`},children:`Extended install guide →`})})]}):(0,d.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:12,color:`#fff`},children:(0,d.jsx)(`div`,{ref:_})}):(0,d.jsxs)(`div`,{style:{padding:`24px`,color:`#fff`},children:[(0,d.jsxs)(`p`,{children:[`Terminal access requires at least `,(0,d.jsx)(`strong`,{children:o}),` role.`]}),(0,d.jsx)(`p`,{style:{marginBottom:0},children:`Contact your Agor administrator to request elevated permissions.`})]})})};export{g as TerminalModal};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{B as t,Bt as n,Et as r,Fn as i,Jn as a,Rt as o,Un as s,_n as c,gn as l,h as u,i as d,ur as f}from"./antd-BCqimh1J.js";import{N as p}from"./editor-Cr0W5BQI.js";import{Bt as m}from"./index-B-qHc0o5.js";var h=e(f(),1),g=p(),_=({user:e,disabled:r=!1,onUserSettingsClick:a,onLogout:o})=>{let{token:f}=n.useToken(),[p,m]=(0,h.useState)(!1),_=e?.emoji||`👤`,v=e?.preferences?.audio?.enabled??!1;return(0,g.jsx)(l,{menu:{items:[{key:`user-info`,label:(0,g.jsxs)(`div`,{style:{padding:`4px 0`,display:`flex`,alignItems:`center`,gap:8},children:[(0,g.jsx)(`span`,{style:{fontSize:20},children:_}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`div`,{style:{fontWeight:500},children:e?.name||`User`}),(0,g.jsx)(`div`,{style:{fontSize:12,color:f.colorTextDescription},children:e?.email})]})]}),disabled:!0},{type:`divider`},{key:`user-settings`,label:(0,g.jsxs)(c,{children:[(0,g.jsx)(`span`,{children:`User Settings`}),v&&(0,g.jsx)(s,{title:`Audio notifications enabled`,children:(0,g.jsx)(u,{style:{color:f.colorSuccess,fontSize:12}})})]}),icon:(0,g.jsx)(d,{}),onClick:()=>{m(!1),a?.()}},{key:`logout`,label:`Logout`,icon:(0,g.jsx)(t,{}),onClick:()=>{m(!1),o?.()}}]},placement:`bottomRight`,trigger:[`click`],open:p,onOpenChange:m,disabled:r,children:(0,g.jsx)(s,{title:e?.name||`User menu`,placement:`bottom`,children:(0,g.jsx)(i,{type:`text`,icon:(0,g.jsx)(d,{style:{fontSize:f.fontSizeLG}}),style:{display:`flex`,alignItems:`center`,justifyContent:`center`},disabled:r})})})},v=({onOpenThemeEditor:e})=>{let{token:t}=n.useToken(),{themeMode:s,setThemeMode:c}=m();return(0,g.jsx)(l,{menu:{items:[{key:`dark`,label:`Dark`,icon:s===`dark`?(0,g.jsx)(a,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>c(`dark`)},{key:`light`,label:`Light`,icon:s===`light`?(0,g.jsx)(a,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>c(`light`)},{key:`custom`,label:`Custom`,icon:s===`custom`?(0,g.jsx)(a,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>c(`custom`),disabled:!e},{type:`divider`},{key:`edit-theme`,label:`Edit Custom Theme`,icon:(0,g.jsx)(o,{}),onClick:e,disabled:!e}]},placement:`bottomRight`,trigger:[`click`],children:(0,g.jsx)(i,{type:`text`,icon:(0,g.jsx)(r,{style:{fontSize:t.fontSizeLG}}),title:`Change theme`,style:{display:`flex`,alignItems:`center`,justifyContent:`center`}})})};export{_ as n,v as t};
@@ -0,0 +1 @@
1
+ import{Bt as e}from"./antd-BCqimh1J.js";import{N as t}from"./editor-Cr0W5BQI.js";import{I as n}from"./index-B-qHc0o5.js";import{n as r,r as i,t as a}from"./syntax-CBu6nLfm.js";var o=t(),s=({children:t,language:s=`typescript`,showLineNumbers:c=!1,customStyle:l,PreTag:u=`pre`,codeTagProps:d})=>{let{token:f}=e.useToken();return(0,o.jsx)(i,{language:s,style:n(f)?r:a,showLineNumbers:c,customStyle:{margin:0,borderRadius:f.borderRadius,...l},PreTag:u,codeTagProps:d,children:t})};export{s as default};